Create new (empty) branch for board themes
authorH.G.Muller <hgm@hgm-xboard.(none)>
Mon, 18 Apr 2016 10:30:15 +0000 (12:30 +0200)
committerH.G.Muller <hgm@hgm-xboard.(none)>
Mon, 18 Apr 2016 10:30:15 +0000 (12:30 +0200)
1221 files changed:
.gitignore [deleted file]
AUTHORS [deleted file]
COPYING [deleted file]
COPYRIGHT [deleted file]
ChangeLog [deleted file]
DIFFSTAT [deleted file]
FAQ.html [deleted file]
INSTALL [deleted file]
Makefile.am [deleted file]
NEWS [deleted file]
README [deleted file]
SHORTLOG [deleted file]
TODO [deleted file]
args.h [deleted file]
autogen.sh [deleted file]
backend.c [deleted file]
backend.h [deleted file]
backendz.h [deleted file]
bitmaps/checkmark.bm [deleted file]
bitmaps/icon_black.bm [deleted file]
bitmaps/icon_white.bm [deleted file]
board.c [deleted file]
board.h [deleted file]
book.c [deleted file]
childio.c [deleted file]
childio.h [deleted file]
cmail.in [deleted file]
common.h [deleted file]
conf/chu [deleted file]
conf/ics [deleted file]
conf/judkins [deleted file]
conf/judkins.fen [deleted file]
conf/mini [deleted file]
conf/mini.fen [deleted file]
conf/sho [deleted file]
conf/sho.fen [deleted file]
conf/shogi [deleted file]
conf/xiangqi [deleted file]
conf/xq [deleted file]
configure.ac [deleted file]
copyright.texi [deleted file]
dialogs.c [deleted file]
dialogs.h [deleted file]
doc-maint/coding-standards.org [deleted file]
doc-maint/gendocs.sh [deleted file]
doc-maint/make-xboard-release [deleted file]
doc-maint/release.org [deleted file]
doc-maint/web-pages.org [deleted file]
draw.c [deleted file]
draw.h [deleted file]
engine-intf.html [deleted file]
engineoutput.c [deleted file]
engineoutput.h [deleted file]
evalgraph.c [deleted file]
evalgraph.h [deleted file]
frontend.h [deleted file]
gamelist.c [deleted file]
gettext.h [deleted file]
gpl.texinfo [deleted file]
gtk/.dirstamp [deleted file]
gtk/xboard.c [deleted file]
gtk/xboard.h [deleted file]
gtk/xengineoutput.c [deleted file]
gtk/xoptions.c [deleted file]
gtk/xtimer.c [deleted file]
history.c [deleted file]
ics-parsing.txt [deleted file]
install-sh [deleted file]
lists.c [deleted file]
lists.h [deleted file]
menus.c [deleted file]
menus.h [deleted file]
mkinstalldirs [deleted file]
moves.c [deleted file]
moves.h [deleted file]
nengineoutput.c [deleted file]
nevalgraph.c [deleted file]
ngamelist.c [deleted file]
nhistory.c [deleted file]
osxapp/Info.plist.in [deleted file]
osxapp/PkgInfo [deleted file]
osxapp/XBoard.gtklauncher [deleted file]
osxapp/gtk2-themes/Mac/gtk-2.0/gtkrc [deleted file]
osxapp/gtkrc [deleted file]
osxapp/icons/XBoard.icns [deleted file]
osxapp/icons/fen.icns [deleted file]
osxapp/icons/pgn.icns [deleted file]
osxapp/icons/trn.icns [deleted file]
osxapp/icons/xop.icns [deleted file]
osxapp/launcher_rc [deleted file]
osxapp/logos/207.99.83.228.png [deleted file]
osxapp/logos/dummy.png [deleted file]
osxapp/logos/freechess.org.png [deleted file]
osxapp/logos/winboard.nl.png [deleted file]
osxapp/themes/default/eo_Analyzing.png [deleted file]
osxapp/themes/default/eo_Black.png [deleted file]
osxapp/themes/default/eo_Clear.png [deleted file]
osxapp/themes/default/eo_Ponder.png [deleted file]
osxapp/themes/default/eo_Thinking.png [deleted file]
osxapp/themes/default/eo_Unknown.png [deleted file]
osxapp/themes/default/eo_White.png [deleted file]
osxapp/themes/default/icon_black.png [deleted file]
osxapp/themes/default/icon_white.png [deleted file]
parser.c [deleted file]
parser.h [deleted file]
pgntags.c [deleted file]
pixmaps/board32.png [deleted file]
pixmaps/board48.png [deleted file]
pixmaps/cross32.png [deleted file]
pixmaps/cross48.png [deleted file]
pixmaps/ini32.png [deleted file]
pixmaps/ini48.png [deleted file]
png/BlackAdvisor.png [deleted file]
png/BlackArchbishop.png [deleted file]
png/BlackBishop.png [deleted file]
png/BlackCanon.png [deleted file]
png/BlackChancellor.png [deleted file]
png/BlackCobra.png [deleted file]
png/BlackCommoner.png [deleted file]
png/BlackCrownedBishop.png [deleted file]
png/BlackCrownedRook.png [deleted file]
png/BlackElephant.png [deleted file]
png/BlackGold.png [deleted file]
png/BlackGoldKnight.png [deleted file]
png/BlackGoldLance.png [deleted file]
png/BlackGoldPawn.png [deleted file]
png/BlackGoldSilver.png [deleted file]
png/BlackHawk.png [deleted file]
png/BlackKing.png [deleted file]
png/BlackKnight.png [deleted file]
png/BlackLance.png [deleted file]
png/BlackMarshall.png [deleted file]
png/BlackNightrider.png [deleted file]
png/BlackPawn.png [deleted file]
png/BlackPrincess.png [deleted file]
png/BlackQueen.png [deleted file]
png/BlackRook.png [deleted file]
png/BlackUnicorn.png [deleted file]
png/WhiteAdvisor.png [deleted file]
png/WhiteArchbishop.png [deleted file]
png/WhiteBishop.png [deleted file]
png/WhiteCanon.png [deleted file]
png/WhiteChancellor.png [deleted file]
png/WhiteCobra.png [deleted file]
png/WhiteCommoner.png [deleted file]
png/WhiteCrownedBishop.png [deleted file]
png/WhiteCrownedRook.png [deleted file]
png/WhiteElephant.png [deleted file]
png/WhiteGold.png [deleted file]
png/WhiteGoldKnight.png [deleted file]
png/WhiteGoldLance.png [deleted file]
png/WhiteGoldPawn.png [deleted file]
png/WhiteGoldSilver.png [deleted file]
png/WhiteHawk.png [deleted file]
png/WhiteKing.png [deleted file]
png/WhiteKnight.png [deleted file]
png/WhiteLance.png [deleted file]
png/WhiteMarshall.png [deleted file]
png/WhiteNightrider.png [deleted file]
png/WhitePawn.png [deleted file]
png/WhitePrincess.png [deleted file]
png/WhiteQueen.png [deleted file]
png/WhiteRook.png [deleted file]
png/WhiteUnicorn.png [deleted file]
png/hatch.png [deleted file]
png/marble_d.png [deleted file]
png/marble_l.png [deleted file]
png/wood_d.png [deleted file]
png/wood_l.png [deleted file]
png/xqboard-9x10.png [deleted file]
png/xqwood-9x10.png [deleted file]
po/LINGUAS [deleted file]
po/Makevars [deleted file]
po/POTFILES.in [deleted file]
po/da.po [deleted file]
po/de.po [deleted file]
po/es.po [deleted file]
po/fr.po [deleted file]
po/it.po [deleted file]
po/lng2po.sh [deleted file]
po/metascript [deleted file]
po/nl.po [deleted file]
po/normalize.pl [deleted file]
po/pl.po [deleted file]
po/ru.po [deleted file]
po/sr.po [deleted file]
po/strip-bad-utf8.pl [deleted file]
po/tr.po [deleted file]
po/uk.po [deleted file]
po/vi.po [deleted file]
po/xboard.pot [deleted file]
po/zh_CN.po [deleted file]
po/zh_HK.po [deleted file]
po/zh_TW.po [deleted file]
pxboard [deleted file]
readme.htm [deleted file]
sounds/README [deleted file]
sounds/alarm.wav [deleted file]
sounds/challenge.wav [deleted file]
sounds/channel.wav [deleted file]
sounds/channel1.wav [deleted file]
sounds/ching.wav [deleted file]
sounds/click.wav [deleted file]
sounds/cymbal.wav [deleted file]
sounds/ding1.wav [deleted file]
sounds/draw.wav [deleted file]
sounds/drip.wav [deleted file]
sounds/gong.wav [deleted file]
sounds/honkhonk.wav [deleted file]
sounds/kibitz.wav [deleted file]
sounds/laser.wav [deleted file]
sounds/lose.wav [deleted file]
sounds/move.wav [deleted file]
sounds/penalty.wav [deleted file]
sounds/phone.wav [deleted file]
sounds/pop.wav [deleted file]
sounds/pop2.wav [deleted file]
sounds/request.wav [deleted file]
sounds/roar.wav [deleted file]
sounds/seek.wav [deleted file]
sounds/shout.wav [deleted file]
sounds/slap.wav [deleted file]
sounds/squeak.wav [deleted file]
sounds/sshout.wav [deleted file]
sounds/swish.wav [deleted file]
sounds/tell.wav [deleted file]
sounds/thud.wav [deleted file]
sounds/unfinished.wav [deleted file]
sounds/whipcrak.wav [deleted file]
sounds/win.wav [deleted file]
sounds/woodthunk.wav [deleted file]
svg/BlackAdvisor.svg [deleted file]
svg/BlackArchbishop.svg [deleted file]
svg/BlackAxe.svg [deleted file]
svg/BlackBishop.svg [deleted file]
svg/BlackButterfly.svg [deleted file]
svg/BlackCamel.svg [deleted file]
svg/BlackCanon.svg [deleted file]
svg/BlackChancellor.svg [deleted file]
svg/BlackClaw.svg [deleted file]
svg/BlackCobra.svg [deleted file]
svg/BlackCommoner.svg [deleted file]
svg/BlackCopper.svg [deleted file]
svg/BlackCrownedBishop.svg [deleted file]
svg/BlackCrownedRook.svg [deleted file]
svg/BlackCub.svg [deleted file]
svg/BlackDolphin.svg [deleted file]
svg/BlackDragon.svg [deleted file]
svg/BlackDuck.svg [deleted file]
svg/BlackElephant.svg [deleted file]
svg/BlackFlag.svg [deleted file]
svg/BlackGnu.svg [deleted file]
svg/BlackGold.svg [deleted file]
svg/BlackGoldKnight.svg [deleted file]
svg/BlackGoldLance.svg [deleted file]
svg/BlackGoldPawn.svg [deleted file]
svg/BlackGoldSilver.svg [deleted file]
svg/BlackHCrown.svg [deleted file]
svg/BlackHSword.svg [deleted file]
svg/BlackHat.svg [deleted file]
svg/BlackHawk.svg [deleted file]
svg/BlackIron.svg [deleted file]
svg/BlackKing.svg [deleted file]
svg/BlackKnight.svg [deleted file]
svg/BlackLShield.svg [deleted file]
svg/BlackLance.svg [deleted file]
svg/BlackLeft.svg [deleted file]
svg/BlackLeopard.svg [deleted file]
svg/BlackLion.svg [deleted file]
svg/BlackMarshall.svg [deleted file]
svg/BlackNightrider.svg [deleted file]
svg/BlackPawn.svg [deleted file]
svg/BlackPegasus.svg [deleted file]
svg/BlackPrincess.svg [deleted file]
svg/BlackPromoBishop.svg [deleted file]
svg/BlackPromoDragon.svg [deleted file]
svg/BlackPromoHSword.svg [deleted file]
svg/BlackPromoHorse.svg [deleted file]
svg/BlackPromoRook.svg [deleted file]
svg/BlackPromoSword.svg [deleted file]
svg/BlackQueen.svg [deleted file]
svg/BlackRShield.svg [deleted file]
svg/BlackRight.svg [deleted file]
svg/BlackRook.svg [deleted file]
svg/BlackSword.svg [deleted file]
svg/BlackTower.svg [deleted file]
svg/BlackUnicorn.svg [deleted file]
svg/BlackViking.svg [deleted file]
svg/BlackWizard.svg [deleted file]
svg/BlackWolf.svg [deleted file]
svg/BlackZebra.svg [deleted file]
svg/WhiteAdvisor.svg [deleted file]
svg/WhiteArchbishop.svg [deleted file]
svg/WhiteAxe.svg [deleted file]
svg/WhiteBishop.svg [deleted file]
svg/WhiteButterfly.svg [deleted file]
svg/WhiteCamel.svg [deleted file]
svg/WhiteCanon.svg [deleted file]
svg/WhiteChancellor.svg [deleted file]
svg/WhiteClaw.svg [deleted file]
svg/WhiteCobra.svg [deleted file]
svg/WhiteCommoner.svg [deleted file]
svg/WhiteCopper.svg [deleted file]
svg/WhiteCrownedBishop.svg [deleted file]
svg/WhiteCrownedRook.svg [deleted file]
svg/WhiteCub.svg [deleted file]
svg/WhiteDolphin.svg [deleted file]
svg/WhiteDragon.svg [deleted file]
svg/WhiteDuck.svg [deleted file]
svg/WhiteElephant.svg [deleted file]
svg/WhiteFlag.svg [deleted file]
svg/WhiteGnu.svg [deleted file]
svg/WhiteGold.svg [deleted file]
svg/WhiteGoldKnight.svg [deleted file]
svg/WhiteGoldLance.svg [deleted file]
svg/WhiteGoldPawn.svg [deleted file]
svg/WhiteGoldSilver.svg [deleted file]
svg/WhiteHCrown.svg [deleted file]
svg/WhiteHSword.svg [deleted file]
svg/WhiteHat.svg [deleted file]
svg/WhiteHawk.svg [deleted file]
svg/WhiteIron.svg [deleted file]
svg/WhiteKing.svg [deleted file]
svg/WhiteKnight.svg [deleted file]
svg/WhiteLShield.svg [deleted file]
svg/WhiteLance.svg [deleted file]
svg/WhiteLeft.svg [deleted file]
svg/WhiteLeopard.svg [deleted file]
svg/WhiteLion.svg [deleted file]
svg/WhiteMarshall.svg [deleted file]
svg/WhiteNightrider.svg [deleted file]
svg/WhitePawn.svg [deleted file]
svg/WhitePegasus.svg [deleted file]
svg/WhitePrincess.svg [deleted file]
svg/WhitePromoBishop.svg [deleted file]
svg/WhitePromoDragon.svg [deleted file]
svg/WhitePromoHSword.svg [deleted file]
svg/WhitePromoHorse.svg [deleted file]
svg/WhitePromoRook.svg [deleted file]
svg/WhitePromoSword.svg [deleted file]
svg/WhiteQueen.svg [deleted file]
svg/WhiteRShield.svg [deleted file]
svg/WhiteRight.svg [deleted file]
svg/WhiteRook.svg [deleted file]
svg/WhiteSword.svg [deleted file]
svg/WhiteTower.svg [deleted file]
svg/WhiteUnicorn.svg [deleted file]
svg/WhiteViking.svg [deleted file]
svg/WhiteWizard.svg [deleted file]
svg/WhiteWolf.svg [deleted file]
svg/WhiteZebra.svg [deleted file]
svg/eo_Analyzing.svg [deleted file]
svg/eo_Black.svg [deleted file]
svg/eo_Clear.svg [deleted file]
svg/eo_Ponder.svg [deleted file]
svg/eo_Thinking.svg [deleted file]
svg/eo_Unknown.svg [deleted file]
svg/eo_White.svg [deleted file]
svg/icon_black.svg [deleted file]
svg/icon_white.svg [deleted file]
texi2man [deleted file]
themes/Mono/BlackAdvisor.svg [deleted file]
themes/Mono/BlackArchbishop.svg [deleted file]
themes/Mono/BlackBishop.svg [deleted file]
themes/Mono/BlackCanon.svg [deleted file]
themes/Mono/BlackChancellor.svg [deleted file]
themes/Mono/BlackCobra.svg [deleted file]
themes/Mono/BlackCommoner.svg [deleted file]
themes/Mono/BlackCrownedBishop.svg [deleted file]
themes/Mono/BlackCrownedRook.svg [deleted file]
themes/Mono/BlackElephant.svg [deleted file]
themes/Mono/BlackGold.svg [deleted file]
themes/Mono/BlackGoldKnight.svg [deleted file]
themes/Mono/BlackGoldLance.svg [deleted file]
themes/Mono/BlackGoldPawn.svg [deleted file]
themes/Mono/BlackGoldSilver.svg [deleted file]
themes/Mono/BlackHawk.svg [deleted file]
themes/Mono/BlackKing.svg [deleted file]
themes/Mono/BlackKnight.svg [deleted file]
themes/Mono/BlackLance.svg [deleted file]
themes/Mono/BlackMarshall.svg [deleted file]
themes/Mono/BlackNightrider.svg [deleted file]
themes/Mono/BlackPawn.svg [deleted file]
themes/Mono/BlackPrincess.svg [deleted file]
themes/Mono/BlackQueen.svg [deleted file]
themes/Mono/BlackRook.svg [deleted file]
themes/Mono/BlackUnicorn.svg [deleted file]
themes/Mono/WhiteAdvisor.svg [deleted file]
themes/Mono/WhiteArchbishop.svg [deleted file]
themes/Mono/WhiteBishop.svg [deleted file]
themes/Mono/WhiteCanon.svg [deleted file]
themes/Mono/WhiteChancellor.svg [deleted file]
themes/Mono/WhiteCobra.svg [deleted file]
themes/Mono/WhiteCommoner.svg [deleted file]
themes/Mono/WhiteCrownedBishop.svg [deleted file]
themes/Mono/WhiteCrownedRook.svg [deleted file]
themes/Mono/WhiteElephant.svg [deleted file]
themes/Mono/WhiteGold.svg [deleted file]
themes/Mono/WhiteGoldKnight.svg [deleted file]
themes/Mono/WhiteGoldLance.svg [deleted file]
themes/Mono/WhiteGoldPawn.svg [deleted file]
themes/Mono/WhiteGoldSilver.svg [deleted file]
themes/Mono/WhiteHawk.svg [deleted file]
themes/Mono/WhiteKing.svg [deleted file]
themes/Mono/WhiteKnight.svg [deleted file]
themes/Mono/WhiteLance.svg [deleted file]
themes/Mono/WhiteMarshall.svg [deleted file]
themes/Mono/WhiteNightrider.svg [deleted file]
themes/Mono/WhitePawn.svg [deleted file]
themes/Mono/WhitePrincess.svg [deleted file]
themes/Mono/WhiteQueen.svg [deleted file]
themes/Mono/WhiteRook.svg [deleted file]
themes/Mono/WhiteUnicorn.svg [deleted file]
themes/Mono/eo_Analyzing.svg [deleted file]
themes/Mono/eo_Black.svg [deleted file]
themes/Mono/eo_Clear.svg [deleted file]
themes/Mono/eo_Ponder.svg [deleted file]
themes/Mono/eo_Thinking.svg [deleted file]
themes/Mono/eo_Unknown.svg [deleted file]
themes/Mono/eo_White.svg [deleted file]
themes/Mono/icon_black.svg [deleted file]
themes/Mono/icon_white.svg [deleted file]
themes/Mono/shogi_bishop.svg [deleted file]
themes/Mono/shogi_bishop_promoted.svg [deleted file]
themes/Mono/shogi_gold.svg [deleted file]
themes/Mono/shogi_king.svg [deleted file]
themes/Mono/shogi_knight.svg [deleted file]
themes/Mono/shogi_knight_promoted.svg [deleted file]
themes/Mono/shogi_lance.svg [deleted file]
themes/Mono/shogi_lance_promoted.svg [deleted file]
themes/Mono/shogi_pawn.svg [deleted file]
themes/Mono/shogi_pawn_promoted.svg [deleted file]
themes/Mono/shogi_rook.svg [deleted file]
themes/Mono/shogi_rook_promoted.svg [deleted file]
themes/Mono/shogi_silver.svg [deleted file]
themes/Mono/shogi_silver_promoted.svg [deleted file]
themes/shogi/BlackAdvisor.svg [deleted file]
themes/shogi/BlackBishop.svg [deleted file]
themes/shogi/BlackCrownedBishop.svg [deleted file]
themes/shogi/BlackCrownedRook.svg [deleted file]
themes/shogi/BlackElephant.svg [deleted file]
themes/shogi/BlackGold.svg [deleted file]
themes/shogi/BlackGoldKnight.svg [deleted file]
themes/shogi/BlackGoldLance.svg [deleted file]
themes/shogi/BlackGoldPawn.svg [deleted file]
themes/shogi/BlackGoldSilver.svg [deleted file]
themes/shogi/BlackJewled.svg [deleted file]
themes/shogi/BlackKing.svg [deleted file]
themes/shogi/BlackKnight.svg [deleted file]
themes/shogi/BlackLance.svg [deleted file]
themes/shogi/BlackPawn.svg [deleted file]
themes/shogi/BlackPrince.svg [deleted file]
themes/shogi/BlackRook.svg [deleted file]
themes/shogi/WhiteAdvisor.svg [deleted file]
themes/shogi/WhiteBishop.svg [deleted file]
themes/shogi/WhiteCrownedBishop.svg [deleted file]
themes/shogi/WhiteCrownedRook.svg [deleted file]
themes/shogi/WhiteElephant.svg [deleted file]
themes/shogi/WhiteGold.svg [deleted file]
themes/shogi/WhiteGoldKnight.svg [deleted file]
themes/shogi/WhiteGoldLance.svg [deleted file]
themes/shogi/WhiteGoldPawn.svg [deleted file]
themes/shogi/WhiteGoldSilver.svg [deleted file]
themes/shogi/WhiteJewled.svg [deleted file]
themes/shogi/WhiteKing.svg [deleted file]
themes/shogi/WhiteKnight.svg [deleted file]
themes/shogi/WhiteLance.svg [deleted file]
themes/shogi/WhitePawn.svg [deleted file]
themes/shogi/WhitePrince.svg [deleted file]
themes/shogi/WhiteRook.svg [deleted file]
themes/xiangqi/BlackAdvisor.svg [deleted file]
themes/xiangqi/BlackCanon.svg [deleted file]
themes/xiangqi/BlackElephant.svg [deleted file]
themes/xiangqi/BlackGold.svg [deleted file]
themes/xiangqi/BlackKnight.svg [deleted file]
themes/xiangqi/BlackPawn.svg [deleted file]
themes/xiangqi/BlackRook.svg [deleted file]
themes/xiangqi/WhiteAdvisor.svg [deleted file]
themes/xiangqi/WhiteCanon.svg [deleted file]
themes/xiangqi/WhiteElephant.svg [deleted file]
themes/xiangqi/WhiteGold.svg [deleted file]
themes/xiangqi/WhiteKnight.svg [deleted file]
themes/xiangqi/WhitePawn.svg [deleted file]
themes/xiangqi/WhiteRook.svg [deleted file]
uci.c [deleted file]
usounds.c [deleted file]
usystem.c [deleted file]
usystem.h [deleted file]
winboard/COMPILING [deleted file]
winboard/WB4Jaws.dev [deleted file]
winboard/Winboard.dev [deleted file]
winboard/bitmaps/README.bitmaps [deleted file]
winboard/bitmaps/a33o.bmp [deleted file]
winboard/bitmaps/a33s.bmp [deleted file]
winboard/bitmaps/a33w.bmp [deleted file]
winboard/bitmaps/a37o.bmp [deleted file]
winboard/bitmaps/a37s.bmp [deleted file]
winboard/bitmaps/a37w.bmp [deleted file]
winboard/bitmaps/a40o.bmp [deleted file]
winboard/bitmaps/a40s.bmp [deleted file]
winboard/bitmaps/a40w.bmp [deleted file]
winboard/bitmaps/a45o.bmp [deleted file]
winboard/bitmaps/a45s.bmp [deleted file]
winboard/bitmaps/a45w.bmp [deleted file]
winboard/bitmaps/a49c.bmp [deleted file]
winboard/bitmaps/a49o.bmp [deleted file]
winboard/bitmaps/a49s.bmp [deleted file]
winboard/bitmaps/a49w.bmp [deleted file]
winboard/bitmaps/a54o.bmp [deleted file]
winboard/bitmaps/a54s.bmp [deleted file]
winboard/bitmaps/a54w.bmp [deleted file]
winboard/bitmaps/a58o.bmp [deleted file]
winboard/bitmaps/a58s.bmp [deleted file]
winboard/bitmaps/a58w.bmp [deleted file]
winboard/bitmaps/a64o.bmp [deleted file]
winboard/bitmaps/a64s.bmp [deleted file]
winboard/bitmaps/a64w.bmp [deleted file]
winboard/bitmaps/a72o.bmp [deleted file]
winboard/bitmaps/a72s.bmp [deleted file]
winboard/bitmaps/a72w.bmp [deleted file]
winboard/bitmaps/analyze2_14.ico [deleted file]
winboard/bitmaps/analyze_14.ico [deleted file]
winboard/bitmaps/as33o.bmp [deleted file]
winboard/bitmaps/as33s.bmp [deleted file]
winboard/bitmaps/as33w.bmp [deleted file]
winboard/bitmaps/as49o.bmp [deleted file]
winboard/bitmaps/as49s.bmp [deleted file]
winboard/bitmaps/as49w.bmp [deleted file]
winboard/bitmaps/as72o.bmp [deleted file]
winboard/bitmaps/as72s.bmp [deleted file]
winboard/bitmaps/as72w.bmp [deleted file]
winboard/bitmaps/b108o.bmp [deleted file]
winboard/bitmaps/b108s.bmp [deleted file]
winboard/bitmaps/b108w.bmp [deleted file]
winboard/bitmaps/b116o.bmp [deleted file]
winboard/bitmaps/b116s.bmp [deleted file]
winboard/bitmaps/b116w.bmp [deleted file]
winboard/bitmaps/b129o.bmp [deleted file]
winboard/bitmaps/b129s.bmp [deleted file]
winboard/bitmaps/b129w.bmp [deleted file]
winboard/bitmaps/b21o.bmp [deleted file]
winboard/bitmaps/b21s.bmp [deleted file]
winboard/bitmaps/b21w.bmp [deleted file]
winboard/bitmaps/b25o.bmp [deleted file]
winboard/bitmaps/b25s.bmp [deleted file]
winboard/bitmaps/b25w.bmp [deleted file]
winboard/bitmaps/b29o.bmp [deleted file]
winboard/bitmaps/b29s.bmp [deleted file]
winboard/bitmaps/b29w.bmp [deleted file]
winboard/bitmaps/b33o.bmp [deleted file]
winboard/bitmaps/b33s.bmp [deleted file]
winboard/bitmaps/b33w.bmp [deleted file]
winboard/bitmaps/b37o.bmp [deleted file]
winboard/bitmaps/b37s.bmp [deleted file]
winboard/bitmaps/b37w.bmp [deleted file]
winboard/bitmaps/b40o.bmp [deleted file]
winboard/bitmaps/b40s.bmp [deleted file]
winboard/bitmaps/b40w.bmp [deleted file]
winboard/bitmaps/b45o.bmp [deleted file]
winboard/bitmaps/b45s.bmp [deleted file]
winboard/bitmaps/b45w.bmp [deleted file]
winboard/bitmaps/b49o.bmp [deleted file]
winboard/bitmaps/b49s.bmp [deleted file]
winboard/bitmaps/b49w.bmp [deleted file]
winboard/bitmaps/b54o.bmp [deleted file]
winboard/bitmaps/b54s.bmp [deleted file]
winboard/bitmaps/b54w.bmp [deleted file]
winboard/bitmaps/b58o.bmp [deleted file]
winboard/bitmaps/b58s.bmp [deleted file]
winboard/bitmaps/b58w.bmp [deleted file]
winboard/bitmaps/b64o.bmp [deleted file]
winboard/bitmaps/b64s.bmp [deleted file]
winboard/bitmaps/b64w.bmp [deleted file]
winboard/bitmaps/b72o.bmp [deleted file]
winboard/bitmaps/b72s.bmp [deleted file]
winboard/bitmaps/b72w.bmp [deleted file]
winboard/bitmaps/b80o.bmp [deleted file]
winboard/bitmaps/b80s.bmp [deleted file]
winboard/bitmaps/b80w.bmp [deleted file]
winboard/bitmaps/b87o.bmp [deleted file]
winboard/bitmaps/b87s.bmp [deleted file]
winboard/bitmaps/b87w.bmp [deleted file]
winboard/bitmaps/b95o.bmp [deleted file]
winboard/bitmaps/b95s.bmp [deleted file]
winboard/bitmaps/b95w.bmp [deleted file]
winboard/bitmaps/baloon_14.ico [deleted file]
winboard/bitmaps/black_14.ico [deleted file]
winboard/bitmaps/board.ico [deleted file]
winboard/bitmaps/c33o.bmp [deleted file]
winboard/bitmaps/c33s.bmp [deleted file]
winboard/bitmaps/c33w.bmp [deleted file]
winboard/bitmaps/c37o.bmp [deleted file]
winboard/bitmaps/c37s.bmp [deleted file]
winboard/bitmaps/c37w.bmp [deleted file]
winboard/bitmaps/c40o.bmp [deleted file]
winboard/bitmaps/c40s.bmp [deleted file]
winboard/bitmaps/c40w.bmp [deleted file]
winboard/bitmaps/c45o.bmp [deleted file]
winboard/bitmaps/c45s.bmp [deleted file]
winboard/bitmaps/c45w.bmp [deleted file]
winboard/bitmaps/c49o.bmp [deleted file]
winboard/bitmaps/c49s.bmp [deleted file]
winboard/bitmaps/c49w.bmp [deleted file]
winboard/bitmaps/c54o.bmp [deleted file]
winboard/bitmaps/c54s.bmp [deleted file]
winboard/bitmaps/c54w.bmp [deleted file]
winboard/bitmaps/c58o.bmp [deleted file]
winboard/bitmaps/c58s.bmp [deleted file]
winboard/bitmaps/c58w.bmp [deleted file]
winboard/bitmaps/c64o.bmp [deleted file]
winboard/bitmaps/c64s.bmp [deleted file]
winboard/bitmaps/c64w.bmp [deleted file]
winboard/bitmaps/c72o.bmp [deleted file]
winboard/bitmaps/c72s.bmp [deleted file]
winboard/bitmaps/c72w.bmp [deleted file]
winboard/bitmaps/camel49o.bmp [deleted file]
winboard/bitmaps/camel49s.bmp [deleted file]
winboard/bitmaps/camel49w.bmp [deleted file]
winboard/bitmaps/camel72o.bmp [deleted file]
winboard/bitmaps/camel72s.bmp [deleted file]
winboard/bitmaps/camel72w.bmp [deleted file]
winboard/bitmaps/clock_14.ico [deleted file]
winboard/bitmaps/convert.c [deleted file]
winboard/bitmaps/convert.exe [deleted file]
winboard/bitmaps/cross.ico [deleted file]
winboard/bitmaps/cv33o.bmp [deleted file]
winboard/bitmaps/cv33s.bmp [deleted file]
winboard/bitmaps/cv33w.bmp [deleted file]
winboard/bitmaps/cv37o.bmp [deleted file]
winboard/bitmaps/cv37s.bmp [deleted file]
winboard/bitmaps/cv37w.bmp [deleted file]
winboard/bitmaps/cv40o.bmp [deleted file]
winboard/bitmaps/cv40s.bmp [deleted file]
winboard/bitmaps/cv40w.bmp [deleted file]
winboard/bitmaps/cv45o.bmp [deleted file]
winboard/bitmaps/cv45s.bmp [deleted file]
winboard/bitmaps/cv45w.bmp [deleted file]
winboard/bitmaps/cv49o.bmp [deleted file]
winboard/bitmaps/cv49s.bmp [deleted file]
winboard/bitmaps/cv49w.bmp [deleted file]
winboard/bitmaps/cv54o.bmp [deleted file]
winboard/bitmaps/cv54s.bmp [deleted file]
winboard/bitmaps/cv54w.bmp [deleted file]
winboard/bitmaps/cv58o.bmp [deleted file]
winboard/bitmaps/cv58s.bmp [deleted file]
winboard/bitmaps/cv58w.bmp [deleted file]
winboard/bitmaps/cv64o.bmp [deleted file]
winboard/bitmaps/cv64s.bmp [deleted file]
winboard/bitmaps/cv64w.bmp [deleted file]
winboard/bitmaps/cv72o.bmp [deleted file]
winboard/bitmaps/cv72s.bmp [deleted file]
winboard/bitmaps/cv72w.bmp [deleted file]
winboard/bitmaps/dk33o.bmp [deleted file]
winboard/bitmaps/dk33s.bmp [deleted file]
winboard/bitmaps/dk33w.bmp [deleted file]
winboard/bitmaps/dk49o.bmp [deleted file]
winboard/bitmaps/dk49s.bmp [deleted file]
winboard/bitmaps/dk49w.bmp [deleted file]
winboard/bitmaps/dk72o.bmp [deleted file]
winboard/bitmaps/dk72s.bmp [deleted file]
winboard/bitmaps/dk72w.bmp [deleted file]
winboard/bitmaps/e129o.bmp [deleted file]
winboard/bitmaps/e33o.bmp [deleted file]
winboard/bitmaps/e33s.bmp [deleted file]
winboard/bitmaps/e33w.bmp [deleted file]
winboard/bitmaps/e49o.bmp [deleted file]
winboard/bitmaps/e49s.bmp [deleted file]
winboard/bitmaps/e49w.bmp [deleted file]
winboard/bitmaps/e72o.bmp [deleted file]
winboard/bitmaps/e72s.bmp [deleted file]
winboard/bitmaps/e72w.bmp [deleted file]
winboard/bitmaps/f33o.bmp [deleted file]
winboard/bitmaps/f33s.bmp [deleted file]
winboard/bitmaps/f33w.bmp [deleted file]
winboard/bitmaps/f49o.bmp [deleted file]
winboard/bitmaps/f49s.bmp [deleted file]
winboard/bitmaps/f49w.bmp [deleted file]
winboard/bitmaps/f72o.bmp [deleted file]
winboard/bitmaps/f72s.bmp [deleted file]
winboard/bitmaps/f72w.bmp [deleted file]
winboard/bitmaps/g33o.bmp [deleted file]
winboard/bitmaps/g33s.bmp [deleted file]
winboard/bitmaps/g33w.bmp [deleted file]
winboard/bitmaps/g49o.bmp [deleted file]
winboard/bitmaps/g49s.bmp [deleted file]
winboard/bitmaps/g49w.bmp [deleted file]
winboard/bitmaps/g72o.bmp [deleted file]
winboard/bitmaps/g72s.bmp [deleted file]
winboard/bitmaps/g72w.bmp [deleted file]
winboard/bitmaps/galactic.bmp [deleted file]
winboard/bitmaps/h33o.bmp [deleted file]
winboard/bitmaps/h33s.bmp [deleted file]
winboard/bitmaps/h33w.bmp [deleted file]
winboard/bitmaps/h49o.bmp [deleted file]
winboard/bitmaps/h49s.bmp [deleted file]
winboard/bitmaps/h49w.bmp [deleted file]
winboard/bitmaps/h72o.bmp [deleted file]
winboard/bitmaps/h72s.bmp [deleted file]
winboard/bitmaps/h72w.bmp [deleted file]
winboard/bitmaps/icon_b.bmp [deleted file]
winboard/bitmaps/icon_b.ico [deleted file]
winboard/bitmaps/icon_o.ico [deleted file]
winboard/bitmaps/icon_ob.ico [deleted file]
winboard/bitmaps/icon_ow.ico [deleted file]
winboard/bitmaps/icon_w.bmp [deleted file]
winboard/bitmaps/icon_w.ico [deleted file]
winboard/bitmaps/icon_whi.ico [deleted file]
winboard/bitmaps/k108o.bmp [deleted file]
winboard/bitmaps/k108s.bmp [deleted file]
winboard/bitmaps/k108w.bmp [deleted file]
winboard/bitmaps/k116o.bmp [deleted file]
winboard/bitmaps/k116s.bmp [deleted file]
winboard/bitmaps/k116w.bmp [deleted file]
winboard/bitmaps/k129o.bmp [deleted file]
winboard/bitmaps/k129s.bmp [deleted file]
winboard/bitmaps/k129w.bmp [deleted file]
winboard/bitmaps/k21o.bmp [deleted file]
winboard/bitmaps/k21s.bmp [deleted file]
winboard/bitmaps/k21w.bmp [deleted file]
winboard/bitmaps/k25o.bmp [deleted file]
winboard/bitmaps/k25s.bmp [deleted file]
winboard/bitmaps/k25w.bmp [deleted file]
winboard/bitmaps/k29o.bmp [deleted file]
winboard/bitmaps/k29s.bmp [deleted file]
winboard/bitmaps/k29w.bmp [deleted file]
winboard/bitmaps/k33o.bmp [deleted file]
winboard/bitmaps/k33s.bmp [deleted file]
winboard/bitmaps/k33w.bmp [deleted file]
winboard/bitmaps/k37o.bmp [deleted file]
winboard/bitmaps/k37s.bmp [deleted file]
winboard/bitmaps/k37w.bmp [deleted file]
winboard/bitmaps/k40o.bmp [deleted file]
winboard/bitmaps/k40s.bmp [deleted file]
winboard/bitmaps/k40w.bmp [deleted file]
winboard/bitmaps/k45o.bmp [deleted file]
winboard/bitmaps/k45s.bmp [deleted file]
winboard/bitmaps/k45w.bmp [deleted file]
winboard/bitmaps/k49o.bmp [deleted file]
winboard/bitmaps/k49s.bmp [deleted file]
winboard/bitmaps/k49w.bmp [deleted file]
winboard/bitmaps/k54o.bmp [deleted file]
winboard/bitmaps/k54s.bmp [deleted file]
winboard/bitmaps/k54w.bmp [deleted file]
winboard/bitmaps/k58o.bmp [deleted file]
winboard/bitmaps/k58s.bmp [deleted file]
winboard/bitmaps/k58w.bmp [deleted file]
winboard/bitmaps/k64o.bmp [deleted file]
winboard/bitmaps/k64s.bmp [deleted file]
winboard/bitmaps/k64w.bmp [deleted file]
winboard/bitmaps/k72o.bmp [deleted file]
winboard/bitmaps/k72s.bmp [deleted file]
winboard/bitmaps/k72w.bmp [deleted file]
winboard/bitmaps/k80o.bmp [deleted file]
winboard/bitmaps/k80s.bmp [deleted file]
winboard/bitmaps/k80w.bmp [deleted file]
winboard/bitmaps/k87o.bmp [deleted file]
winboard/bitmaps/k87s.bmp [deleted file]
winboard/bitmaps/k87w.bmp [deleted file]
winboard/bitmaps/k95o.bmp [deleted file]
winboard/bitmaps/k95s.bmp [deleted file]
winboard/bitmaps/k95w.bmp [deleted file]
winboard/bitmaps/l33o.bmp [deleted file]
winboard/bitmaps/l33s.bmp [deleted file]
winboard/bitmaps/l33w.bmp [deleted file]
winboard/bitmaps/l37o.bmp [deleted file]
winboard/bitmaps/l37s.bmp [deleted file]
winboard/bitmaps/l37w.bmp [deleted file]
winboard/bitmaps/l40o.bmp [deleted file]
winboard/bitmaps/l40s.bmp [deleted file]
winboard/bitmaps/l40w.bmp [deleted file]
winboard/bitmaps/l45o.bmp [deleted file]
winboard/bitmaps/l45s.bmp [deleted file]
winboard/bitmaps/l45w.bmp [deleted file]
winboard/bitmaps/l49o.bmp [deleted file]
winboard/bitmaps/l49s.bmp [deleted file]
winboard/bitmaps/l49w.bmp [deleted file]
winboard/bitmaps/l54o.bmp [deleted file]
winboard/bitmaps/l54s.bmp [deleted file]
winboard/bitmaps/l54w.bmp [deleted file]
winboard/bitmaps/l58o.bmp [deleted file]
winboard/bitmaps/l58s.bmp [deleted file]
winboard/bitmaps/l58w.bmp [deleted file]
winboard/bitmaps/l64o.bmp [deleted file]
winboard/bitmaps/l64s.bmp [deleted file]
winboard/bitmaps/l64w.bmp [deleted file]
winboard/bitmaps/l72o.bmp [deleted file]
winboard/bitmaps/l72s.bmp [deleted file]
winboard/bitmaps/l72w.bmp [deleted file]
winboard/bitmaps/ln33o.bmp [deleted file]
winboard/bitmaps/ln33s.bmp [deleted file]
winboard/bitmaps/ln33w.bmp [deleted file]
winboard/bitmaps/ln49o.bmp [deleted file]
winboard/bitmaps/ln49s.bmp [deleted file]
winboard/bitmaps/ln49w.bmp [deleted file]
winboard/bitmaps/ln72o.bmp [deleted file]
winboard/bitmaps/ln72s.bmp [deleted file]
winboard/bitmaps/ln72w.bmp [deleted file]
winboard/bitmaps/m33o.bmp [deleted file]
winboard/bitmaps/m33s.bmp [deleted file]
winboard/bitmaps/m33w.bmp [deleted file]
winboard/bitmaps/m49o.bmp [deleted file]
winboard/bitmaps/m49s.bmp [deleted file]
winboard/bitmaps/m49w.bmp [deleted file]
winboard/bitmaps/m72o.bmp [deleted file]
winboard/bitmaps/m72s.bmp [deleted file]
winboard/bitmaps/m72w.bmp [deleted file]
winboard/bitmaps/n108o.bmp [deleted file]
winboard/bitmaps/n108s.bmp [deleted file]
winboard/bitmaps/n108w.bmp [deleted file]
winboard/bitmaps/n116o.bmp [deleted file]
winboard/bitmaps/n116s.bmp [deleted file]
winboard/bitmaps/n116w.bmp [deleted file]
winboard/bitmaps/n129o.bmp [deleted file]
winboard/bitmaps/n129s.bmp [deleted file]
winboard/bitmaps/n129w.bmp [deleted file]
winboard/bitmaps/n21o.bmp [deleted file]
winboard/bitmaps/n21s.bmp [deleted file]
winboard/bitmaps/n21w.bmp [deleted file]
winboard/bitmaps/n25o.bmp [deleted file]
winboard/bitmaps/n25s.bmp [deleted file]
winboard/bitmaps/n25w.bmp [deleted file]
winboard/bitmaps/n29o.bmp [deleted file]
winboard/bitmaps/n29s.bmp [deleted file]
winboard/bitmaps/n29w.bmp [deleted file]
winboard/bitmaps/n33o.bmp [deleted file]
winboard/bitmaps/n33s.bmp [deleted file]
winboard/bitmaps/n33w.bmp [deleted file]
winboard/bitmaps/n37o.bmp [deleted file]
winboard/bitmaps/n37s.bmp [deleted file]
winboard/bitmaps/n37w.bmp [deleted file]
winboard/bitmaps/n40o.bmp [deleted file]
winboard/bitmaps/n40s.bmp [deleted file]
winboard/bitmaps/n40w.bmp [deleted file]
winboard/bitmaps/n45o.bmp [deleted file]
winboard/bitmaps/n45s.bmp [deleted file]
winboard/bitmaps/n45w.bmp [deleted file]
winboard/bitmaps/n49o.bmp [deleted file]
winboard/bitmaps/n49s.bmp [deleted file]
winboard/bitmaps/n49w.bmp [deleted file]
winboard/bitmaps/n54o.bmp [deleted file]
winboard/bitmaps/n54s.bmp [deleted file]
winboard/bitmaps/n54w.bmp [deleted file]
winboard/bitmaps/n58o.bmp [deleted file]
winboard/bitmaps/n58s.bmp [deleted file]
winboard/bitmaps/n58w.bmp [deleted file]
winboard/bitmaps/n64o.bmp [deleted file]
winboard/bitmaps/n64s.bmp [deleted file]
winboard/bitmaps/n64w.bmp [deleted file]
winboard/bitmaps/n72o.bmp [deleted file]
winboard/bitmaps/n72s.bmp [deleted file]
winboard/bitmaps/n72w.bmp [deleted file]
winboard/bitmaps/n80o.bmp [deleted file]
winboard/bitmaps/n80s.bmp [deleted file]
winboard/bitmaps/n80w.bmp [deleted file]
winboard/bitmaps/n87o.bmp [deleted file]
winboard/bitmaps/n87s.bmp [deleted file]
winboard/bitmaps/n87w.bmp [deleted file]
winboard/bitmaps/n95o.bmp [deleted file]
winboard/bitmaps/n95s.bmp [deleted file]
winboard/bitmaps/n95w.bmp [deleted file]
winboard/bitmaps/o33o.bmp [deleted file]
winboard/bitmaps/o33s.bmp [deleted file]
winboard/bitmaps/o33w.bmp [deleted file]
winboard/bitmaps/o49o.bmp [deleted file]
winboard/bitmaps/o49s.bmp [deleted file]
winboard/bitmaps/o49w.bmp [deleted file]
winboard/bitmaps/o72o.bmp [deleted file]
winboard/bitmaps/o72s.bmp [deleted file]
winboard/bitmaps/o72w.bmp [deleted file]
winboard/bitmaps/p108o.bmp [deleted file]
winboard/bitmaps/p108s.bmp [deleted file]
winboard/bitmaps/p108w.bmp [deleted file]
winboard/bitmaps/p116o.bmp [deleted file]
winboard/bitmaps/p116s.bmp [deleted file]
winboard/bitmaps/p116w.bmp [deleted file]
winboard/bitmaps/p129o.bmp [deleted file]
winboard/bitmaps/p129s.bmp [deleted file]
winboard/bitmaps/p129w.bmp [deleted file]
winboard/bitmaps/p21o.bmp [deleted file]
winboard/bitmaps/p21s.bmp [deleted file]
winboard/bitmaps/p21w.bmp [deleted file]
winboard/bitmaps/p25o.bmp [deleted file]
winboard/bitmaps/p25s.bmp [deleted file]
winboard/bitmaps/p25w.bmp [deleted file]
winboard/bitmaps/p29o.bmp [deleted file]
winboard/bitmaps/p29s.bmp [deleted file]
winboard/bitmaps/p29w.bmp [deleted file]
winboard/bitmaps/p33o.bmp [deleted file]
winboard/bitmaps/p33s.bmp [deleted file]
winboard/bitmaps/p33w.bmp [deleted file]
winboard/bitmaps/p37o.bmp [deleted file]
winboard/bitmaps/p37s.bmp [deleted file]
winboard/bitmaps/p37w.bmp [deleted file]
winboard/bitmaps/p40o.bmp [deleted file]
winboard/bitmaps/p40s.bmp [deleted file]
winboard/bitmaps/p40w.bmp [deleted file]
winboard/bitmaps/p45o.bmp [deleted file]
winboard/bitmaps/p45s.bmp [deleted file]
winboard/bitmaps/p45w.bmp [deleted file]
winboard/bitmaps/p49o.bmp [deleted file]
winboard/bitmaps/p49s.bmp [deleted file]
winboard/bitmaps/p49w.bmp [deleted file]
winboard/bitmaps/p54o.bmp [deleted file]
winboard/bitmaps/p54s.bmp [deleted file]
winboard/bitmaps/p54w.bmp [deleted file]
winboard/bitmaps/p58o.bmp [deleted file]
winboard/bitmaps/p58s.bmp [deleted file]
winboard/bitmaps/p58w.bmp [deleted file]
winboard/bitmaps/p64o.bmp [deleted file]
winboard/bitmaps/p64s.bmp [deleted file]
winboard/bitmaps/p64w.bmp [deleted file]
winboard/bitmaps/p72o.bmp [deleted file]
winboard/bitmaps/p72s.bmp [deleted file]
winboard/bitmaps/p72w.bmp [deleted file]
winboard/bitmaps/p80o.bmp [deleted file]
winboard/bitmaps/p80s.bmp [deleted file]
winboard/bitmaps/p80w.bmp [deleted file]
winboard/bitmaps/p87o.bmp [deleted file]
winboard/bitmaps/p87s.bmp [deleted file]
winboard/bitmaps/p87w.bmp [deleted file]
winboard/bitmaps/p95o.bmp [deleted file]
winboard/bitmaps/p95s.bmp [deleted file]
winboard/bitmaps/p95w.bmp [deleted file]
winboard/bitmaps/ponder_14.ico [deleted file]
winboard/bitmaps/q108o.bmp [deleted file]
winboard/bitmaps/q108s.bmp [deleted file]
winboard/bitmaps/q108w.bmp [deleted file]
winboard/bitmaps/q116o.bmp [deleted file]
winboard/bitmaps/q116s.bmp [deleted file]
winboard/bitmaps/q116w.bmp [deleted file]
winboard/bitmaps/q129o.bmp [deleted file]
winboard/bitmaps/q129s.bmp [deleted file]
winboard/bitmaps/q129w.bmp [deleted file]
winboard/bitmaps/q21o.bmp [deleted file]
winboard/bitmaps/q21s.bmp [deleted file]
winboard/bitmaps/q21w.bmp [deleted file]
winboard/bitmaps/q25o.bmp [deleted file]
winboard/bitmaps/q25s.bmp [deleted file]
winboard/bitmaps/q25w.bmp [deleted file]
winboard/bitmaps/q29o.bmp [deleted file]
winboard/bitmaps/q29s.bmp [deleted file]
winboard/bitmaps/q29w.bmp [deleted file]
winboard/bitmaps/q33o.bmp [deleted file]
winboard/bitmaps/q33s.bmp [deleted file]
winboard/bitmaps/q33w.bmp [deleted file]
winboard/bitmaps/q37o.bmp [deleted file]
winboard/bitmaps/q37s.bmp [deleted file]
winboard/bitmaps/q37w.bmp [deleted file]
winboard/bitmaps/q40o.bmp [deleted file]
winboard/bitmaps/q40s.bmp [deleted file]
winboard/bitmaps/q40w.bmp [deleted file]
winboard/bitmaps/q45o.bmp [deleted file]
winboard/bitmaps/q45s.bmp [deleted file]
winboard/bitmaps/q45w.bmp [deleted file]
winboard/bitmaps/q49o.bmp [deleted file]
winboard/bitmaps/q49s.bmp [deleted file]
winboard/bitmaps/q49w.bmp [deleted file]
winboard/bitmaps/q54o.bmp [deleted file]
winboard/bitmaps/q54s.bmp [deleted file]
winboard/bitmaps/q54w.bmp [deleted file]
winboard/bitmaps/q58o.bmp [deleted file]
winboard/bitmaps/q58s.bmp [deleted file]
winboard/bitmaps/q58w.bmp [deleted file]
winboard/bitmaps/q64o.bmp [deleted file]
winboard/bitmaps/q64s.bmp [deleted file]
winboard/bitmaps/q64w.bmp [deleted file]
winboard/bitmaps/q72o.bmp [deleted file]
winboard/bitmaps/q72s.bmp [deleted file]
winboard/bitmaps/q72w.bmp [deleted file]
winboard/bitmaps/q80o.bmp [deleted file]
winboard/bitmaps/q80s.bmp [deleted file]
winboard/bitmaps/q80w.bmp [deleted file]
winboard/bitmaps/q87o.bmp [deleted file]
winboard/bitmaps/q87s.bmp [deleted file]
winboard/bitmaps/q87w.bmp [deleted file]
winboard/bitmaps/q95o.bmp [deleted file]
winboard/bitmaps/q95s.bmp [deleted file]
winboard/bitmaps/q95w.bmp [deleted file]
winboard/bitmaps/r108o.bmp [deleted file]
winboard/bitmaps/r108s.bmp [deleted file]
winboard/bitmaps/r108w.bmp [deleted file]
winboard/bitmaps/r116o.bmp [deleted file]
winboard/bitmaps/r116s.bmp [deleted file]
winboard/bitmaps/r116w.bmp [deleted file]
winboard/bitmaps/r129o.bmp [deleted file]
winboard/bitmaps/r129s.bmp [deleted file]
winboard/bitmaps/r129w.bmp [deleted file]
winboard/bitmaps/r21o.bmp [deleted file]
winboard/bitmaps/r21s.bmp [deleted file]
winboard/bitmaps/r21w.bmp [deleted file]
winboard/bitmaps/r25o.bmp [deleted file]
winboard/bitmaps/r25s.bmp [deleted file]
winboard/bitmaps/r25w.bmp [deleted file]
winboard/bitmaps/r29o.bmp [deleted file]
winboard/bitmaps/r29s.bmp [deleted file]
winboard/bitmaps/r29w.bmp [deleted file]
winboard/bitmaps/r33o.bmp [deleted file]
winboard/bitmaps/r33s.bmp [deleted file]
winboard/bitmaps/r33w.bmp [deleted file]
winboard/bitmaps/r37o.bmp [deleted file]
winboard/bitmaps/r37s.bmp [deleted file]
winboard/bitmaps/r37w.bmp [deleted file]
winboard/bitmaps/r40o.bmp [deleted file]
winboard/bitmaps/r40s.bmp [deleted file]
winboard/bitmaps/r40w.bmp [deleted file]
winboard/bitmaps/r45o.bmp [deleted file]
winboard/bitmaps/r45s.bmp [deleted file]
winboard/bitmaps/r45w.bmp [deleted file]
winboard/bitmaps/r49o.bmp [deleted file]
winboard/bitmaps/r49s.bmp [deleted file]
winboard/bitmaps/r49w.bmp [deleted file]
winboard/bitmaps/r54o.bmp [deleted file]
winboard/bitmaps/r54s.bmp [deleted file]
winboard/bitmaps/r54w.bmp [deleted file]
winboard/bitmaps/r58o.bmp [deleted file]
winboard/bitmaps/r58s.bmp [deleted file]
winboard/bitmaps/r58w.bmp [deleted file]
winboard/bitmaps/r64o.bmp [deleted file]
winboard/bitmaps/r64s.bmp [deleted file]
winboard/bitmaps/r64w.bmp [deleted file]
winboard/bitmaps/r72o.bmp [deleted file]
winboard/bitmaps/r72s.bmp [deleted file]
winboard/bitmaps/r72w.bmp [deleted file]
winboard/bitmaps/r80o.bmp [deleted file]
winboard/bitmaps/r80s.bmp [deleted file]
winboard/bitmaps/r80w.bmp [deleted file]
winboard/bitmaps/r87o.bmp [deleted file]
winboard/bitmaps/r87s.bmp [deleted file]
winboard/bitmaps/r87w.bmp [deleted file]
winboard/bitmaps/r95o.bmp [deleted file]
winboard/bitmaps/r95s.bmp [deleted file]
winboard/bitmaps/r95w.bmp [deleted file]
winboard/bitmaps/s49o.bmp [deleted file]
winboard/bitmaps/s49s.bmp [deleted file]
winboard/bitmaps/s49w.bmp [deleted file]
winboard/bitmaps/s72o.bmp [deleted file]
winboard/bitmaps/s72s.bmp [deleted file]
winboard/bitmaps/s72w.bmp [deleted file]
winboard/bitmaps/tim.bmp [deleted file]
winboard/bitmaps/trans_14.ico [deleted file]
winboard/bitmaps/u49o.bmp [deleted file]
winboard/bitmaps/u49s.bmp [deleted file]
winboard/bitmaps/u49w.bmp [deleted file]
winboard/bitmaps/u72o.bmp [deleted file]
winboard/bitmaps/u72s.bmp [deleted file]
winboard/bitmaps/u72w.bmp [deleted file]
winboard/bitmaps/unknown_14.ico [deleted file]
winboard/bitmaps/v33o.bmp [deleted file]
winboard/bitmaps/v33s.bmp [deleted file]
winboard/bitmaps/v33w.bmp [deleted file]
winboard/bitmaps/v49o.bmp [deleted file]
winboard/bitmaps/v49s.bmp [deleted file]
winboard/bitmaps/v49w.bmp [deleted file]
winboard/bitmaps/v72o.bmp [deleted file]
winboard/bitmaps/v72s.bmp [deleted file]
winboard/bitmaps/v72w.bmp [deleted file]
winboard/bitmaps/w33o.bmp [deleted file]
winboard/bitmaps/w33s.bmp [deleted file]
winboard/bitmaps/w33w.bmp [deleted file]
winboard/bitmaps/w49o.bmp [deleted file]
winboard/bitmaps/w49s.bmp [deleted file]
winboard/bitmaps/w49w.bmp [deleted file]
winboard/bitmaps/w72o.bmp [deleted file]
winboard/bitmaps/w72s.bmp [deleted file]
winboard/bitmaps/w72w.bmp [deleted file]
winboard/bitmaps/white_14.ico [deleted file]
winboard/bitmaps/wl33o.bmp [deleted file]
winboard/bitmaps/wl33s.bmp [deleted file]
winboard/bitmaps/wl49o.bmp [deleted file]
winboard/bitmaps/wl49s.bmp [deleted file]
winboard/bitmaps/wl72o.bmp [deleted file]
winboard/bitmaps/wl72s.bmp [deleted file]
winboard/bitmaps/wn33o.bmp [deleted file]
winboard/bitmaps/wn33s.bmp [deleted file]
winboard/bitmaps/wn49o.bmp [deleted file]
winboard/bitmaps/wn49s.bmp [deleted file]
winboard/bitmaps/wn72o.bmp [deleted file]
winboard/bitmaps/wn72s.bmp [deleted file]
winboard/bitmaps/wolf49o.bmp [deleted file]
winboard/bitmaps/wolf49s.bmp [deleted file]
winboard/bitmaps/wolf49w.bmp [deleted file]
winboard/bitmaps/wolf72o.bmp [deleted file]
winboard/bitmaps/wolf72s.bmp [deleted file]
winboard/bitmaps/wolf72w.bmp [deleted file]
winboard/bitmaps/wp33o.bmp [deleted file]
winboard/bitmaps/wp33s.bmp [deleted file]
winboard/bitmaps/wp49o.bmp [deleted file]
winboard/bitmaps/wp49s.bmp [deleted file]
winboard/bitmaps/wp72o.bmp [deleted file]
winboard/bitmaps/wp72s.bmp [deleted file]
winboard/bitmaps/ws33o.bmp [deleted file]
winboard/bitmaps/ws33s.bmp [deleted file]
winboard/bitmaps/ws49o.bmp [deleted file]
winboard/bitmaps/ws49s.bmp [deleted file]
winboard/bitmaps/ws72o.bmp [deleted file]
winboard/bitmaps/ws72s.bmp [deleted file]
winboard/bitmaps/zebra49o.bmp [deleted file]
winboard/bitmaps/zebra49s.bmp [deleted file]
winboard/bitmaps/zebra72o.bmp [deleted file]
winboard/bitmaps/zebra72s.bmp [deleted file]
winboard/config.h [deleted file]
winboard/defaults.h [deleted file]
winboard/help.c [deleted file]
winboard/help.h [deleted file]
winboard/help/contents.hhc [deleted file]
winboard/help/html/01.htm [deleted file]
winboard/help/html/02.htm [deleted file]
winboard/help/html/03.htm [deleted file]
winboard/help/html/04.htm [deleted file]
winboard/help/html/05.htm [deleted file]
winboard/help/html/06.htm [deleted file]
winboard/help/html/07.htm [deleted file]
winboard/help/html/08.htm [deleted file]
winboard/help/html/09.htm [deleted file]
winboard/help/html/10.htm [deleted file]
winboard/help/html/11.htm [deleted file]
winboard/help/html/12.htm [deleted file]
winboard/help/html/13.htm [deleted file]
winboard/help/html/14.htm [deleted file]
winboard/help/html/15.htm [deleted file]
winboard/help/html/16.htm [deleted file]
winboard/help/html/17.htm [deleted file]
winboard/help/html/18.htm [deleted file]
winboard/help/html/19.htm [deleted file]
winboard/help/html/20.htm [deleted file]
winboard/help/html/21.htm [deleted file]
winboard/help/html/22.htm [deleted file]
winboard/help/html/23.htm [deleted file]
winboard/help/html/24.htm [deleted file]
winboard/help/winboard [deleted file]
winboard/help/winboard.chm [deleted file]
winboard/help/winboard.hhk [deleted file]
winboard/help/winboard.hhp [deleted file]
winboard/internationalize [deleted file]
winboard/jaws.c [deleted file]
winboard/language.txt [deleted file]
winboard/language/chinese(simp).lng [deleted file]
winboard/language/chinese(trad).lng [deleted file]
winboard/language/deutsch.lng [deleted file]
winboard/language/italiano.lng [deleted file]
winboard/language/nederlands.lng [deleted file]
winboard/language/romanian.lng [deleted file]
winboard/language/russian.lng [deleted file]
winboard/language/spanish.lng [deleted file]
winboard/language/vietnamese.lng [deleted file]
winboard/makefile.gcc [deleted file]
winboard/makefile.ms [deleted file]
winboard/metascript.txt [deleted file]
winboard/res/winboard.exe.manifest [deleted file]
winboard/resource.h [deleted file]
winboard/shogibitmaps/README [deleted file]
winboard/shogibitmaps/bamazon.bmp [deleted file]
winboard/shogibitmaps/king.bmp [deleted file]
winboard/shogibitmaps/largeking.bmp [deleted file]
winboard/shogibitmaps/sa58o.bmp [deleted file]
winboard/shogibitmaps/sb58o.bmp [deleted file]
winboard/shogibitmaps/sc58o.bmp [deleted file]
winboard/shogibitmaps/sf58o.bmp [deleted file]
winboard/shogibitmaps/sg58o.bmp [deleted file]
winboard/shogibitmaps/sh58o.bmp [deleted file]
winboard/shogibitmaps/sk58o.bmp [deleted file]
winboard/shogibitmaps/sk58w.bmp [deleted file]
winboard/shogibitmaps/sl58o.bmp [deleted file]
winboard/shogibitmaps/sl58w.bmp [deleted file]
winboard/shogibitmaps/sn58o.bmp [deleted file]
winboard/shogibitmaps/sn58w.bmp [deleted file]
winboard/shogibitmaps/sp58o.bmp [deleted file]
winboard/shogibitmaps/sp58w.bmp [deleted file]
winboard/shogibitmaps/sr58o.bmp [deleted file]
winboard/shogibitmaps/sr58w.bmp [deleted file]
winboard/shogibitmaps/ss58o.bmp [deleted file]
winboard/shogibitmaps/su58o.bmp [deleted file]
winboard/shogibitmaps/sw58o.bmp [deleted file]
winboard/shogibitmaps/sw58w.bmp [deleted file]
winboard/wchat.c [deleted file]
winboard/wclipbrd.c [deleted file]
winboard/wclipbrd.h [deleted file]
winboard/wedittags.c [deleted file]
winboard/wengineoutput.c [deleted file]
winboard/wevalgraph.c [deleted file]
winboard/wgamelist.c [deleted file]
winboard/whistory.c [deleted file]
winboard/winboard.c [deleted file]
winboard/winboard.dsp [deleted file]
winboard/winboard.dsw [deleted file]
winboard/winboard.h [deleted file]
winboard/winboard.hpj [deleted file]
winboard/winboard.rc [deleted file]
winboard/winboard.rtf [deleted file]
winboard/wlayout.c [deleted file]
winboard/woptions.c [deleted file]
winboard/woptions.h [deleted file]
winboard/wsettings.c [deleted file]
winboard/wsnap.c [deleted file]
winboard/wsnap.h [deleted file]
winboard/wsockerr.c [deleted file]
winboard/wsockerr.h [deleted file]
xaw/.dirstamp [deleted file]
xaw/xboard.c [deleted file]
xaw/xboard.h [deleted file]
xaw/xengineoutput.c [deleted file]
xaw/xgamelist.c [deleted file]
xaw/xgamelist.h [deleted file]
xaw/xhistory.c [deleted file]
xaw/xhistory.h [deleted file]
xaw/xoptions.c [deleted file]
xboard-config.desktop [deleted file]
xboard-fen-viewer.desktop [deleted file]
xboard-pgn-viewer.desktop [deleted file]
xboard-tourney.desktop [deleted file]
xboard.conf [deleted file]
xboard.desktop [deleted file]
xboard.png [deleted file]
xboard.svg [deleted file]
xboard.texi [deleted file]
xboard.xml [deleted file]
xboard2.h [deleted file]
zippy.README [deleted file]
zippy.c [deleted file]
zippy.h [deleted file]
zippy.lines [deleted file]

diff --git a/.gitignore b/.gitignore
deleted file mode 100644 (file)
index c9e73f0..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-*~
-*.o
-.deps/
-Makefile
-Makefile.in
-aclocal.m4
-autom4te.cache/
-cmail
-./config.h
-config.log
-config.status
-configure
-copyright.info
-config.h.in
-depcomp
-mdate-sh
-missing
-./parser.c
-po/*gmo
-po/POTFILES
-po/stamp-po
-stamp-h
-stamp-h1
-stamp-vti
-texinfo.tex
-version.texi
-xboard
-xboard.info
-xboard.man
-ylwrap
-config.guess
-config.h
-config.sub
-copyright.aux
-copyright.cp
-copyright.dvi
-copyright.fn
-copyright.ky
-copyright.log
-copyright.pg
-copyright.tp
-copyright.vr
-parser.c
-xboard.aux
-xboard.cp
-xboard.cps
-xboard.fn
-xboard.ky
-xboard.log
-xboard.pdf
-xboard.pg
-xboard.toc
-xboard.tp
-xboard.vr
-
-# gettextize -f files
-ABOUT-NLS
-config.rpath
-m4/gettext.m4
-m4/iconv.m4
-m4/lib-ld.m4
-m4/lib-link.m4
-m4/lib-prefix.m4
-m4/nls.m4
-m4/po.m4
-m4/progtest.m4
-po/Makefile.in.in
-po/Makevars.template
-po/Rules-quot
-po/boldquot.sed
-po/en@boldquot.header
-po/en@quot.header
-po/insert-header.sin
-po/quot.sed
-po/remove-potcdate.sin
diff --git a/AUTHORS b/AUTHORS
deleted file mode 100644 (file)
index f19c6ff..0000000
--- a/AUTHORS
+++ /dev/null
@@ -1,270 +0,0 @@
-Contributions of xboard and WinBoard authors by file
-(get files names via git log --pretty=oneline --name-only --author=<AUTHORNAME>  v4.2.7..HEAD  |sort |uniq)
-
-0. Files covered
-
-The first group are included in the xboard distribution.  The second
-group are included in the WinBoard source distribution but not in the
-xboard distribution.  All are part of the joint xboard/WinBoard source
-base and are covered by the same copyrights and licensing terms.
-
-AUTHORS
-autogen.sh
-backend.c
-backend.h
-backendz.h
-bitmaps/*
-book.c
-ChangeLog
-childio.c
-childio.h
-cmail.in
-cmail.man
-common.h
-config.h.in
-configure.ac
-COPYING
-COPYRIGHT
-engine-intf.txt
-FAQ.html
-frontend.h
-gamelist.c
-gettext.h
-ics-parsing.txt
-INSTALL
-lists.c
-lists.h
-Makefile.am
-moves.c
-moves.h
-NEWS
-parser.h
-parser.l
-pgntags.c
-pixmaps/*
-po/*
-README
-shogibitmaps/*
-sounds/*
-ToDo
-uci.c
-xboard.c
-xboard.h
-xboard.texi
-xedittags.c
-xedittags.h
-xengineoutput.c
-xgamelist.c
-xgamelist.h
-xhistory.c
-xhistory.h
-xoptions.c
-zic2xpm.c
-zic2xpm.man
-zippy.c
-zippy.h
-zippy.README
-
-winboard/bitmaps/*
-winboard/COMPILING
-winboard/config.h
-winboard/defaults.h
-winboard/help/*
-winboard/help.c
-winboard/help.h
-winboard/jaws.c
-winboard/makefile.gcc
-winboard/makefile.ms
-winboard/parser.c
-winboard/resource.h
-winboard/shogibitmaps/*
-winboard/WB4Jaws.dev
-winboard/wclipbrd.c
-winboard/wclipbrd.h
-winboard/wedittags.c
-winboard/wedittags.h
-winboard/wengineo.c
-winboard/wevalgraph.c
-winboard/wgamelist.c
-winboard/wgamelist.h
-winboard/whistory.c
-winboard/winboard.c
-winboard/winboard.h
-winboard/winboard.rc
-winboard/winboard.rtf (compiles to winboard.hlp)
-winboard/wlayout.c
-winboard/woptions.c
-winboard/woptions.h
-winboard/wsettings.c
-winboard/wsnap.c
-winboard/wsnap.h
-winboard/wsockerr.c
-winboard/wsockerr.h
-
-
-1. Wayne Christopher
-
-Wrote from scratch (I believe) bitmaps.xchess/*80*.bm.  Other bitmaps
-in the bitmaps.xchess directory were derived from these by shrinking
-and some hand-tuning.  By default these bitmaps are no longer used.
-Their copyright status is unclear.
-
-2. Chris Sears and Dan Sears
-
-Wrote from scratch parser.l, xboard.c, xboard.h, xboard.man.  Parts
-(sometimes small) of these files were later moved by Tim Mann to
-backend.c, backend.h, childio.c, common.h, frontend.h, and parser.h.
-
-Chris and Dan's original work is copyrighted by Digital Equipment
-Corporation with licensing terms similar to what the X Consortium uses
-(see the file COPYRIGHT).  All the work listed below is copyrighted by
-the Free Software Foundation and covered by the GPL (see the files
-COPYRIGHT and COPYING).
-
-3. Tim Mann <tim@tim-mann.org>
-
-Wrote from scratch FAQ.html, backendz.h, childio.h, comment.in,
-config.h.in, configure.in, engine-intf.txt, ics-parsing.txt, moves.c,
-moves.h, pgntags.c (split from backend.c by Jochen Wiedmann),
-xedittags.c, xedittags.h, xgamelist.c, xgamelist.h, zippy.README,
-zippy.c, zippy.h, winboard.rtf, config.h, defaults.h, resource.h,
-wedittags.c, wedittags.h, wgamelist.c, wgamelist.h, winboard.c,
-winboard.h, winboard.rc.
-
-Major additions and changes to nearly all other files listed in
-section 0.
-
-4. John Chanak
-
-Addition to xboard.c, mostly later moved into backend.c.
-
-5. Evan Welsh <Evan.Welsh@msdw.com>
-
-Wrote from scratch cmail.in and cmail.man.  Additions to backend.c and
-xboard.c.
-
-6. Elmar Bartel <bartel@informatik.tu-muenchen.de>
-
-Wrote from scratch the Metafont code from which bitmaps/* were
-generated.  The Metafont code itself is not included in the package.
-
-7. Jochen Wiedmann
-
-Wrote from scratch gamelist.c, lists.c, lists.h.  Wrote xboard.texi,
-mostly based on xboard.man and cmail.man.  Minor additions to backend.c.
-
-8. Frank McIngvale <frankm@hiwaay.net>
-
-Wrote from scratch zic2xpm.c and zic2xpm.man.  Additions to backend.c,
-xboard.c, and xboard.man.
-
-9. Hugh Fisher <Hugh.Fisher@cs.anu.edu.au>
-
-Additions to backend.c and xboard.c.
-
-10. Allessandro Scotti
-
-Made many additions to the WinBoard user interface and graphics 
-capabilities, such as new windows for engine output, board textures 
-and font-based piece rendering. These changes became collectively known
-as Winboard_x.
-
-change to: backend.c, backend.h, backendz.h, bitmaps/analyze_14.ico,
-bitmaps/analyze2_14.ico, bitmaps/baloon_14.ico, bitmaps/black_14.ico,
-bitmaps/clock_14.ico, bitmaps/ponder_14.ico, bitmaps/trans_14.ico,
-bitmaps/unknown_14.ico, bitmaps/white_14.ico, common.h, config.h,
-frontend.h, gamelist.c, lists.c, lists.h, moves.c, moves.h, parser.c,
-parser.h, pgntags.c, readme.htm, uci.c, winboard/defaults.h,
-winboard/resource.h, winboard/wclipbrd.c, winboard/wclipbrd.h,
-winboard/wedittags.c, winboard/wedittags.h, winboard/wengineoutput.c,
-winboard/wevalgraph.c, winboard/wgamelist.c, winboard/wgamelist.h,
-winboard/whistory.c, winboard/winboard.c, winboard/winboard.h,
-winboard/winboard.ini, winboard/winboard.rc, winboard/wlayout.c,
-winboard/woptions.c, winboard/woptions.h, winboard/wplugin.c,
-winboard/wplugin.h, winboard/wsnap.c, winboard/wsnap.h, zippy.c,
-zippy.h
-
-
-11. H.G. Muller <h.g.muller AT hccnet DOT nl>
-
-Heaviliy modified winboard.c, backend.c, moves.c and parser.l, to
-allow board sizes other than 8x8, and many non-orthodox Chess pieces,
-so that WinBoard is now capable of playing variants like Shogi and Xiangqi.
-Also implemented displaying of the Crazyhouse holdings, and many adjudication
-and other backend options. This version of WinBoard, (4.3.xx) containing all 
-of the WinBoard_x options, became known as WinBoard_F.
-
-changes to: acconfig.h, aclocal.m4, AUTHORS, backend.c, backend.h,
-backendz.h, bitmaps/*, book.c, childio.h, cmail.in, common.h,
-config.guess, config.h, config.h.in, config.sub, configure,
-configure.ac, configure.in, copyright.texi, engine-intf.html,
-FAQ.html, frontend.h, gamelist.c, ics-parsing.txt, install-sh,
-lists.c, lists.h, Makefile.am, Makefile.in, manual.html,
-mkinstalldirs, moves.c, moves.h, parser.c, parser.h, parser.l,
-pg_key.c, pgntags.c, pg_show.c, pixmaps/*, pxboard, README, READ_ME,
-readme_HGM.txt, shiphtml, shogibitmaps/*, texi2man, ToDo, uci.c,
-winboard/bitmaps/*, winboard/config.h, winboard/cygwin.mak,
-winboard/defaults.h, winboard/help.c, winboard/help/*,
-winboard/internationalize, winboard/jaws.c, winboard/jaws.h, 
-winboard/jaws.rc,winboard/language.txt, winboard/makefile.gcc,
- winboard/makefile.ms, winboard/metascript.txt, winboard/parser.c,
-winboard/readme.txt, winboard/resource.h, winboard/shogibitmaps/*,
-winboard/wchat.c, winboard/wclipbrd.c, winboard/wclipbrd.h, winboard/wedittags.c,
-winboard/wedittags.h, winboard/wengineo.c, winboard/wengineoutput.c,
-winboard/wevalgraph.c, winboard/wgamelist.c, winboard/wgamelist.h,
-winboard/whistory.c, winboard/winboard.c, winboard/winboard.h,
-winboard/winboard.htm, winboard/winboard.ini, winboard/winboard.rc,
-winboard/winboard.rtf, winboard/wlayout.c, winboard/woptions.c,
-winboard/woptions.h, winboard/wplugin.c, winboard/wplugin.h,
-winboard/wsettings.c, winboard/wsnap.c, winboard/wsnap.h, xboard.c,
-xboard.h, xboard.texi, xedittags.c, xedittags.h, xengineoutput.c,
-xgamelist.c, xgamelist.h, xhistory.c, xhistory.h, xoptions.c, zippy.c,
-zippy.h, zippy.README
-
-also: worked on the installer files (not in the tar-ball, but available via Savannah)
-
-12. Arun Persaud <arun AT nubati DOT net> 
-changes to: acconfig.h, AUTHORS, autogen.sh, backend.c, backend.h,
-backendz.h, book.c, ChangeLog, childio.c, childio.h, cmail.in,
-common.h, config.h.in, configure.ac, COPYING, COPYRIGHT,
-copyright.texi, FAQ.html, frontend.h, gamelist.c, gettext.h,
-.gitignore, gpl.texinfo, ics-parsing.txt, INSTALL, install-sh,
-lists.c, lists.h, Makefile.am, moves.c, moves.h, NEWS, parser.c,
-parser.h, parser.l, pgntags.c, pixmaps/pixmaps.h, po/de.po,
-po/LINGUAS, po/Makefile.in.in, README, READ_ME, shogibitmaps/README,
-texi2man, ToDo, TODO,  uci.c, uci/uci_protocol.txt, winboard/bitmaps/bitmaps.h,
-winboard/wchat.c, winboard/config.h, winboard/defaults.h,
-winboard/jaws.c, winboard/parser.c, winboard/readme.txt,
-winboard/shogibitmaps/README, winboard/WB4Jaws.dev,
-winboard/wclipbrd.c, winboard/wclipbrd.h, winboard/wedittags.c,
-winboard/wedittags.h, winboard/wengineo.c, winboard/wengineoutput.c,
-winboard/wevalgraph.c, winboard/wgamelist.c, winboard/wgamelist.h,
-winboard/whistory.c, winboard/winboard.c, winboard/winboard.h,
-winboard/winboard.rc, winboard/wlayout.c, winboard/woptions.c,
-winboard/woptions.h, winboard/wsnap.c, winboard/wsnap.h,
-winboard/wsockerr.c, winboard/wsockerr.h, xboard.c, xboard.h,
-xboard.texi, xedittags.c, xedittags.h, xengineoutput.c, xgamelist.c,
-xgamelist.h, xhistory.c, xhistory.h, xoptions.c, zic2xpm.c,
-zic2xpm.man, zippy.c, zippy.h, zippy.README
-
-
-13. Eric Mullins <emwine AT earthlink DOT net>
-
-Makefiles for different compilers for windows, several changes for
-those compilers
-
-change to: AUTHORS, backend.c, backend.h, backendz.h, 
-common.h, frontend.h, gamelist.c, README, winboard/bcc32.cfg,
-winboard/borland.mak, winboard/COMPILING, winboard/config.h,
-winboard/cygwin.mak, winboard/help.c, winboard/help.h,
-winboard/jaws.c, winboard/makefile.gcc, winboard/makefile.ms,
-winboard/mingw32.mak, winboard/msvc7.mak, winboard/msvc.mak,
-winboard/resource.h, winboard/res/winboard.exe.manifest,
-winboard/WB4Jaws.dev, winboard/wevalgraph.c, winboard/winboard.c,
-winboard/Winboard.dev, winboard/winboard.dsp, winboard/winboard.dsw,
-winboard/winboard.h, winboard/winboard.ini, winboard/winboard.rc,
-winboard/woptions.c, winboard/wsettings.c, 
-xboard.c
-
-also: prepared installer files for winboard (not in the tar-ball, but available via Savannah)
diff --git a/COPYING b/COPYING
deleted file mode 100644 (file)
index 94a9ed0..0000000
--- a/COPYING
+++ /dev/null
@@ -1,674 +0,0 @@
-                    GNU GENERAL PUBLIC LICENSE
-                       Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-                            Preamble
-
-  The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
-  The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works.  By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users.  We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors.  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
-  To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights.  Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received.  You must make sure that they, too, receive
-or can get the source code.  And you must show them these terms so they
-know their rights.
-
-  Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
-  For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software.  For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
-  Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so.  This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software.  The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable.  Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products.  If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
-  Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary.  To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-                       TERMS AND CONDITIONS
-
-  0. Definitions.
-
-  "This License" refers to version 3 of the GNU General Public License.
-
-  "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
-  "The Program" refers to any copyrightable work licensed under this
-License.  Each licensee is addressed as "you".  "Licensees" and
-"recipients" may be individuals or organizations.
-
-  To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy.  The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
-  A "covered work" means either the unmodified Program or a work based
-on the Program.
-
-  To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy.  Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
-  To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies.  Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
-  An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License.  If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
-  1. Source Code.
-
-  The "source code" for a work means the preferred form of the work
-for making modifications to it.  "Object code" means any non-source
-form of a work.
-
-  A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
-  The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form.  A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
-  The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities.  However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work.  For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
-  The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
-  The Corresponding Source for a work in source code form is that
-same work.
-
-  2. Basic Permissions.
-
-  All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met.  This License explicitly affirms your unlimited
-permission to run the unmodified Program.  The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work.  This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
-  You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force.  You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright.  Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
-  Conveying under any other circumstances is permitted solely under
-the conditions stated below.  Sublicensing is not allowed; section 10
-makes it unnecessary.
-
-  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
-  No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
-  When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
-  4. Conveying Verbatim Copies.
-
-  You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
-  You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
-  5. Conveying Modified Source Versions.
-
-  You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
-    a) The work must carry prominent notices stating that you modified
-    it, and giving a relevant date.
-
-    b) The work must carry prominent notices stating that it is
-    released under this License and any conditions added under section
-    7.  This requirement modifies the requirement in section 4 to
-    "keep intact all notices".
-
-    c) You must license the entire work, as a whole, under this
-    License to anyone who comes into possession of a copy.  This
-    License will therefore apply, along with any applicable section 7
-    additional terms, to the whole of the work, and all its parts,
-    regardless of how they are packaged.  This License gives no
-    permission to license the work in any other way, but it does not
-    invalidate such permission if you have separately received it.
-
-    d) If the work has interactive user interfaces, each must display
-    Appropriate Legal Notices; however, if the Program has interactive
-    interfaces that do not display Appropriate Legal Notices, your
-    work need not make them do so.
-
-  A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit.  Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
-  6. Conveying Non-Source Forms.
-
-  You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
-    a) Convey the object code in, or embodied in, a physical product
-    (including a physical distribution medium), accompanied by the
-    Corresponding Source fixed on a durable physical medium
-    customarily used for software interchange.
-
-    b) Convey the object code in, or embodied in, a physical product
-    (including a physical distribution medium), accompanied by a
-    written offer, valid for at least three years and valid for as
-    long as you offer spare parts or customer support for that product
-    model, to give anyone who possesses the object code either (1) a
-    copy of the Corresponding Source for all the software in the
-    product that is covered by this License, on a durable physical
-    medium customarily used for software interchange, for a price no
-    more than your reasonable cost of physically performing this
-    conveying of source, or (2) access to copy the
-    Corresponding Source from a network server at no charge.
-
-    c) Convey individual copies of the object code with a copy of the
-    written offer to provide the Corresponding Source.  This
-    alternative is allowed only occasionally and noncommercially, and
-    only if you received the object code with such an offer, in accord
-    with subsection 6b.
-
-    d) Convey the object code by offering access from a designated
-    place (gratis or for a charge), and offer equivalent access to the
-    Corresponding Source in the same way through the same place at no
-    further charge.  You need not require recipients to copy the
-    Corresponding Source along with the object code.  If the place to
-    copy the object code is a network server, the Corresponding Source
-    may be on a different server (operated by you or a third party)
-    that supports equivalent copying facilities, provided you maintain
-    clear directions next to the object code saying where to find the
-    Corresponding Source.  Regardless of what server hosts the
-    Corresponding Source, you remain obligated to ensure that it is
-    available for as long as needed to satisfy these requirements.
-
-    e) Convey the object code using peer-to-peer transmission, provided
-    you inform other peers where the object code and Corresponding
-    Source of the work are being offered to the general public at no
-    charge under subsection 6d.
-
-  A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
-  A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling.  In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage.  For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product.  A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
-  "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source.  The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
-  If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information.  But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
-  The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed.  Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
-  Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
-  7. Additional Terms.
-
-  "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law.  If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
-  When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it.  (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.)  You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
-  Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
-    a) Disclaiming warranty or limiting liability differently from the
-    terms of sections 15 and 16 of this License; or
-
-    b) Requiring preservation of specified reasonable legal notices or
-    author attributions in that material or in the Appropriate Legal
-    Notices displayed by works containing it; or
-
-    c) Prohibiting misrepresentation of the origin of that material, or
-    requiring that modified versions of such material be marked in
-    reasonable ways as different from the original version; or
-
-    d) Limiting the use for publicity purposes of names of licensors or
-    authors of the material; or
-
-    e) Declining to grant rights under trademark law for use of some
-    trade names, trademarks, or service marks; or
-
-    f) Requiring indemnification of licensors and authors of that
-    material by anyone who conveys the material (or modified versions of
-    it) with contractual assumptions of liability to the recipient, for
-    any liability that these contractual assumptions directly impose on
-    those licensors and authors.
-
-  All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10.  If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term.  If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
-  If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
-  Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
-  8. Termination.
-
-  You may not propagate or modify a covered work except as expressly
-provided under this License.  Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
-  However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
-  Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
-  Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License.  If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
-  9. Acceptance Not Required for Having Copies.
-
-  You are not required to accept this License in order to receive or
-run a copy of the Program.  Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance.  However,
-nothing other than this License grants you permission to propagate or
-modify any covered work.  These actions infringe copyright if you do
-not accept this License.  Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
-  10. Automatic Licensing of Downstream Recipients.
-
-  Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License.  You are not responsible
-for enforcing compliance by third parties with this License.
-
-  An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations.  If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
-  You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License.  For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
-  11. Patents.
-
-  A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based.  The
-work thus licensed is called the contributor's "contributor version".
-
-  A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version.  For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
-  Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
-  In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement).  To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
-  If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients.  "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
-  If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
-  A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License.  You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
-  Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
-  12. No Surrender of Others' Freedom.
-
-  If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all.  For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
-  13. Use with the GNU Affero General Public License.
-
-  Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work.  The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
-  14. Revised Versions of this License.
-
-  The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-  Each version is given a distinguishing version number.  If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation.  If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
-  If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
-  Later license versions may give you additional or different
-permissions.  However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
-  15. Disclaimer of Warranty.
-
-  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. Limitation of Liability.
-
-  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
-  17. Interpretation of Sections 15 and 16.
-
-  If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
-                     END OF TERMS AND CONDITIONS
-
-            How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This program is free software: you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation, either version 3 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-Also add information on how to contact you by electronic and paper mail.
-
-  If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
-    <program>  Copyright (C) <year>  <name of author>
-    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
-  You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-<http://www.gnu.org/licenses/>.
-
-  The GNU General Public License does not permit incorporating your program
-into proprietary programs.  If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library.  If this is what you want to do, use the GNU Lesser General
-Public License instead of this License.  But first, please read
-<http://www.gnu.org/philosophy/why-not-lgpl.html>.
diff --git a/COPYRIGHT b/COPYRIGHT
deleted file mode 100644 (file)
index 10aa927..0000000
--- a/COPYRIGHT
+++ /dev/null
@@ -1,56 +0,0 @@
-XBoard -- a graphical chessboard for X
-
-Original authors:  Dan Sears and Chris Sears
-Enhancements (Version 2.0 and later):  Tim Mann
-
-Copyright 1991 by Digital Equipment Corporation, Maynard,
-Massachusetts.
-
-Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006, 2007,
-2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free Software Foundation, Inc.
-
-Enhancements Copyright 2005 Alessandro Scotti
-
-
-XBoard's alternative piece bitmaps (bitmaps.xchess) are derived from the
-bitmaps in the XChess program, which was written and is copyrighted by
-Wayne Christopher.
-
-The following terms apply to Digital Equipment Corporation's copyright
-interest in XBoard:
-------------------------------------------------------------------------
-All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-------------------------------------------------------------------------
-
-The following terms apply to the enhanced version of XBoard distributed
-by the Free Software Foundation:
-------------------------------------------------------------------------
-GNU XBoard is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or (at
-your option) any later version.
-
-GNU XBoard is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see http://www.gnu.org/licenses/.  *
-------------------------------------------------------------------------
diff --git a/ChangeLog b/ChangeLog
deleted file mode 100644 (file)
index 500bdd4..0000000
--- a/ChangeLog
+++ /dev/null
@@ -1,18806 +0,0 @@
-ChangeLog for XBoard/WinBoard
------------------------------
-
-(latest entries created by git log --no-merges --pretty="%ai %an <%ae>:%n%s%n%n%b" vlast.. )
-
-2014-10-24 00:04:22 -0700 Joshua Pettus <jshpettus@gmail.com>:
-removed gtk theme from OSX app
-
-2014-10-23 23:33:18 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Add persistent Boolean option -fixedSize
-
-When set, this option suppresses sizing of the board and clocks when
-the window is sized by the user. This is achieved by wrapping the entire
-dialog in a non-expanding hbox.
-
-2014-10-23 21:23:14 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Also do dual-royal test in variant shogi
-
-For the benefit of Sho Shogi we also have to be prepared to find a
-Crown Prince in variant shogi, so it can be used as a parent variant
-for Sho Shogi with legality testing on.
-
-2014-10-23 16:22:54 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix promotion in Betza move generator
-
-The Betza move generator was geenrating allmoves as NormalMove, but in
-that case XBoard would not allow the move to have a promotion suffix.
-Now Pawns and Lances reaching last rank will be assumed to promote.
-
-2014-10-22 13:06:25 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Attempt to make GTK sizing work with tiling WM
-
-The Rezise routine now takes the size of the entire dialog table
-(for me always equal to the outer-window size), and checks if the
-actual outer window is smaller. If it is, it shrinks the board to fit,
-under the assumption that a tiling window manager offers only a limited
-'viewport' to our dialog, and we want everything to be visible inside that.
-
-2014-10-22 11:04:47 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix -xbuttons window width GTK
-
-Because Label options not followed by a SAME_ROW element were only
-packed into the first two columns of the dialog table, the board window
-reserved space for a third column behind the message window if there
-was no button bar.
-
-2014-10-21 20:37:41 -0700 Arun Persaud <arun@nubati.net>:
-mac: only use gtk compile flag, if osxapp is enabled
-
-
-2014-10-21 22:40:39 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Prevent unknown variant getting button in -ncp mode
-
-Normally we fake the engines play the requested variant, for the benefit
-of engines that do not send a variants feature (e.g. v1 engines). But this
-should not be done if there is no engine, as it would lead XBoard to
-believe an unknown variant name is an engine-defined variant supported
-by a currently loaded engine, and create a button for it in the New Variant
-dialog.
-
-2014-10-21 22:07:09 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix variant-name recognition
-
-StringToVariant did recognize whether the name to recognize had suffuxes
-compared to the tabulated name, but not if it had prefixes. So 'shoshogi'
-would be recognized as 'shogi'.
-
-2014-10-21 21:52:21 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Suppress duplicat autoInstalls
-
-If the engine line constructed for -autoInstall already occurs in
-the engine list, we should not install it again.
-
-2014-10-21 18:41:03 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Base new square size on board widget allocation GTK
-
-No longer pay attention to the size of the top-level window, but base
-everything on the size of the board widget itself.
-
-2014-10-21 13:45:51 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Ignore first configure event
-
-The first configure event will be the one that adds the window decorations
-to the board window, and must not be used to calculate a new square size,
-but to expand the outer window instead.
-
-2014-10-21 11:35:21 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Let GTK dialogs open with actual-size Graph widgets
-
-The Graph Option size values are now uses as size_request, to give
-proper dialog sizing at popup. But the size_request is then reset
-so that free sizing by the user becomes possible.
-
-2014-10-19 13:16:43 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix display of Spin Options with negative range
-
-
-2014-10-17 21:35:25 -0700 Arun Persaud <arun@nubati.net>:
-line numbers in PO got updated
-
-
-2014-10-17 21:23:47 -0700 Arun Persaud <arun@nubati.net>:
-updated ChangeLog, DIFFSTAT and SHORTLOG
-
-
-2014-10-17 21:17:56 -0700 Arun Persaud <arun@nubati.net>:
-updated NEWS
-
-
-2014-10-17 21:17:28 -0700 Arun Persaud <arun@nubati.net>:
-forget a few __APPLE__ ifdefs; changed to OSXAPP
-
-
-2014-10-17 00:01:44 -0700 Arun Persaud <arun@nubati.net>:
-fix typo and prefix
-
-AC_PREFIX_DEFAULT was always set, even if AS_IF didn't get called? Some kind of caching?
-Using just prefix=... seems to work though
-
-2014-10-16 23:34:22 -0700 Arun Persaud <arun@nubati.net>:
-USE OSXAPP instead of APPLE and fix withval->enableval in AC_ARG_ENABLE
-
-
-2014-10-16 21:44:33 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix loading of engine-defined PGN games
-
-Somehow there could be disagreement over what the official opening
-position of an engine-defined variant was during loading of the game.
-It then refused Betza-defined castling, which tests the corner pieces
-based on this initial position. We now assume the FEN tag, which such
-a PGN game will always contain, holds the official opening position,
-so that castling will always be assumed possible (if there is a corner
-piece).
-
-2014-10-16 20:29:27 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Preserve parent variant for PGN of engine-defined game
-
-Rather than decoding an unknown variant name, (which will result in
-'normal'), we keep the currently set (parent) variant when an
-engine-defined variant is currently set that matches the name in
-the PGN variant tag of the loaded game.
-
-2014-10-16 17:54:13 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix some uninitialized variable bugs
-
-The writing of Seirawan castling rights in FEN was still dependent on a
-now unused variable, and encountering a VariantMen tag in a PGN file
-could have created the misconception the memory was full.
-
-2014-10-16 17:41:01 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Update Game List after tag selection changed
-
-When the Game List Options dialog changes the tags to be displayed in
-the Game List lines, we now automatically redo the entire Game List.
-
-2014-10-16 16:38:00 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Always accept piece commands in variant great
-
-Great Shatranj belongs to the variants XBoard does not know the rules of,
-and should thus always accept engine piece commands.
-
-2014-10-15 21:28:36 -0700 Arun Persaud <arun@nubati.net>:
-make all tests for strings in configure use the same scheme
-
-
-2014-10-15 21:23:26 -0700 Arun Persaud <arun@nubati.net>:
-updated Changelog, DIFFSTAT, and SHORTLOG
-
-2014-10-15 21:06:36 -0700 Arun Persaud <arun@nubati.net>:
-fix osxapp enable option in configure.ac
-
-
-2014-10-15 21:06:00 -0700 Arun Persaud <arun@nubati.net>:
-remove experimental from gtk build option
-
-
-2014-10-15 21:02:38 -0700 Arun Persaud <arun@nubati.net>:
-only enable osxapp build target on apple systems, clean up configure.ac a tiny bit
-
-
-2014-10-15 20:57:28 -0700 Arun Persaud <arun@nubati.net>:
-update NEWS file
-
-
-2014-10-15 23:48:14 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Don't switch to engine-defined variant on game loading
-
-When loading a game from PGN the variant tag will have been decoded as
-'normal' in case of an engine-defined variant, and we certainly would
-not want to switch to that. Better stay in the variant the user had
-selected before, and hope for the best.
-
-2014-10-15 21:50:44 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Implement displaying of variant tag in Game List
-
-The variant tag was displayed as an empty string in game-header lines.
-Processing it during PGN load was not able to handle engine-defined
-variants anyway; they were recognized as 'normal'. A new field in the
-GameInfo struct now holds variantName in text form, and this is the
-primary place from which it is displayed in the Game List.
-
-2014-10-15 21:06:53 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Update Game List when setting new Game List Tags
-
-Using the Game List Tags dialog to alter the gae header lines now
-automatically causes an update of the Game list according to the new
-tags specification.
-
-2014-10-15 20:26:31 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Reset move entry on Clear Board
-
-The board markers would stay on when the board was cleared, and a
-no-longer-present piece would stay selected, leading to deletion of the
-first piece that you tried to select.
-
-2014-10-14 09:38:05 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Split Tournament dialog in side-by-side panes
-
-This seems to cure a sickness in some Xaw versions, which refused
-to display text in the text widgets, or make them sensitive for mouse
-clicks if the last three buttons were added. It also helps keeping
-the 'OK' button on-screen in the GTK version.
-
-2014-10-12 19:43:24 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Remember position obtained from setup
-
-When the engine sends a setup command, it should be remembered as
-initialPosition, in order for the castling 'rook' test of the Betza
-move generator to work.
-
-2014-09-13 12:35:12 -0700 Joshua Pettus <jshpettus@gmail.com>:
-Add build script to configure for a XBoard.app for OS X
-
-This relies on the the gtk build and adds some special code in
-gtk/xboard.c so that XBoard can be installed inside the app directory
-independ on where the app file is located.
-
-2014-10-12 10:09:51 -0700 Arun Persaud <arun@nubati.net>:
-replaced hardcoded pngdir with built-in ~~
-
-don't need to create xboard.conf from xboard.conf.in anymore
-
-2014-10-12 00:18:50 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Some improvement on new Shogi SVG pieces
-
-
-2014-10-11 10:55:41 -0700 Arun Persaud <arun@nubati.net>:
-updated spanish, ukranian, and dutch translation
-
-
-2014-10-11 19:42:03 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix logos Xaw
-
-The patch for logo standard left a typo and an excess line in the Xaw
-version. This is fixed, and also implements the user-logo cascade for
-the Xaw version.
-
-2014-10-11 19:26:23 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Try also /home/<user>/.logo.pgn for user logo
-
-The user logo now also has a cascade, first looking in the user's home
-folder for a file .logo.png, and then in the -logoDir for <user>.png.
-
-2014-10-11 16:38:03 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix ICS logo display
-
-
-2014-10-10 18:14:09 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Show current variant on New Variant buttons GTK in bold
-
-If an engine-defined variant is selected, we compare its name to the
-inscription on the button, otherwise we compare the variant numbers.
-(Test to trigger this is a bit awkward, to not inadvertantly apply it
-to the ICS Text Menu, which also has colored buttoms.)
-
-2014-10-10 17:01:51 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Increase number of engine-defined-variants Buttons XB
-
-An third column is added to the New Variant dialog when necessary.
-
-2014-10-09 23:25:26 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Force GTK logo size to quarter board width
-
-This is what GTK will do anyway, because clocks and logos are in a hbox
-that equally divides space, so telling XBoard different just misinforms it.
-
-2014-10-09 17:08:45 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Replace default Shogi pieces
-
-The SVG Shogi pieces are replaced by a new set, made by Joshua Pettus.
-This set also contains and Elephant and Crown Prince.
-
-2014-10-09 09:35:33 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Implement new logo standard
-
-XBoard now looks in the system directories for plugin logos,
-/usr/(local/)share/games/plugins/logos, according to the cascade
--logoDir, engine dir (-fd,-sd), /usr/local/..., /usr/...
-
-2014-10-09 08:47:25 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Relocate OS X' LOCALEDIR
-
-
-2014-10-08 21:56:28 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix check test with multi-leg moves
-
-The check test after a multi-leg move was still using the same kill
-square in the opponent's reply, making it blind to King captures in
-a second leg. So far we got away with that because the Shogi multi-leg
-pieces also can reach all their potential victims in a single step,
-but with engine-defined multi-leg moves there is no guarantee this
-will always be the case.
-
-2014-10-08 21:55:17 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix infinite loop in cylinder moves
-
-
-2014-10-07 19:13:54 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Let t on final leg in Betza notation forbid checking
-
-To allow approximate definition of pieces that are too difficult to
-describe exactly, we can revoke their capture rights on Kings,
-to prevent imagined moves that happen to threaten a King forces the
-opponent to evade this imagined check, making most of his moves illegal.
-Then the piece can be safely replaced by an upward-compatible one,
-leaving rejection of the extra moves to the engine.
-
-2014-10-07 18:56:59 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Implement Betza hr and hr as chiral move sets
-
-To easily separate right- and left-handed moves on oblique atoms
-(which needs opposite use of l and r in their multi-leg continuations),
-the direction sets hr and hl are added.
-
-2014-10-07 08:20:06 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Preserve other Betza mode bits on setting default modality
-
-
-2014-10-06 20:20:00 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Switch to new Betza orth-diag conversion standard
-
-The interconversion from orthogonal to diagonal atoms is now possible
-for any 4-way atom, based on specification of an 'in-between' direction,
-irrespective of modality. Also take backward out of default continuation
-direction-set.
-
-2014-10-03 10:31:47 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Implement Betza t modifier for hop-own
-
-The 't' modifier will restrict any form of hopping as specified by
-p or g modifiers to friendly pieces. This only works on non-final legs.
-
-2014-10-02 19:32:45 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Implement directional modifiers on KQ, and let y&g upgrade
-
-The Betza y and g modifiers now not only change range, but also upgrade
-the directional capabilities of the atom to full non-degenerate 8-fold.
-Directional modifiers can now be used in that symmetry too, to maximally
-exploit this, and implement 4-fold pieces that make 45-degree turns.
-Let oblique continuation legs also use the non-degenerate system.
-
-2014-10-02 15:19:09 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Implement Betza y modifier
-
-The non-standard modifier 'y' is the spontaneous counterpart of 'g',
-changing the range of the atom, and upgrading its directionality.
-
-2014-10-02 10:21:43 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Implement Betza g modifier for non-final legs
-
-The g modifier is implemented as a p that turns a rider into the
-corresponding leaper when it hops, and vice versa. This is done by
-stripping off any existing range indicator, and making the range
-infinite by suffixing '0' when the old range was 1 (whether implied
-or explicitly written). Except that for sliders/steppers this is done
-by atom-name conversion after stripping off the range. Limited range
-thus in general turns into leaper (D -> D0, Dn -> D), but with FWK
-W3 -> R and R3 -> W, etc.
-
-2014-10-01 15:32:14 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Implement Betza a modifier
-
-This is pretty complex, and might overload the current primitive two-leg
-legality testing when pieces are defined that can reach squares only in
-two legs.
-
-2014-10-01 09:28:32 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Implement Betza j on W,F as skip first square
-
-
-2014-10-04 21:56:14 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Always accept piece commands for Falcon and Cobra
-
-The wild-card pieces Falcon and Cobra do not have any moves assigned to
-them, and XBoard would accept any move for them even when legality
-checking is on. So for these pieces it is always better to trust the
-engine's piece definition.
-
-2014-10-04 21:52:51 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix pieceToCharTable of Falcon Chess
-
-This variant was using the Falcon piece, but defining ID F for the
-unused Lance instead.
-
-2014-10-04 19:59:13 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Don't preserve setup position on board-size change
-
-Normally the setup command sent by an engine is ignored if the user
-already has set up a position, to not render it impossible to do the
-latter. But if the setup command orders a different board size nothing
-the user has set up can possibly remain valid.
-
-2014-10-04 19:39:06 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Reset move entry on stepping through game
-
-A forward or backward step through the game after selecting a from-square
-did not erase the latter, so that it became impossible to select a
-from-square for an opponent move, as it would be interpreted as the
-to-square for the patially entered move. This was especially annoying
-with legality testing off, as the legality test there, based on the
-square markings, does not reset the entry state either, but waits
-until you do click a legal to-square, so that you had to attempt
-moving with pieces of the side not to move to get out of this state.
-Now stepping through another position will reset the move-entry state
-completely, always considering the first click a from-square selection.
-
-2014-10-07 20:55:00 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix engine-defined variant as startup
-
-Non-standard names were all recognized as 'normal' in InitBackend1().
-Now if the -variant argument was not "normal", it is assumed to be an
-engine-defined variant if we run with engine.
-
-2014-10-07 18:53:50 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix clipping of board GTK
-
-ResizeBoardWindow now measures the with of the window dressing by
-brute force, interrogating GTK both for the width of the top-level
-window and the board widget, and subtracting the two.
-
-2014-10-08 18:28:09 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix writing of Seirawan960 virginity in FEN
-
-When variant seirawan was played with Fischer castling, only the
-castling rights were written, and not the virginity of other pieces.
-Now all virgin files are dumped in Shredder-FEN style.
-
-2014-09-29 21:07:17 -0700 Arun Persaud <arun@nubati.net>:
-update po/pot files
-
-
-2014-09-29 21:00:42 -0700 Arun Persaud <arun@nubati.net>:
-new version number for release 4.8.0
-
-
-2014-09-13 14:33:37 -0700 Arun Persaud <arun@nubati.net>:
-fixed whitespace error in configure.ac for os x
-
-
-2014-09-20 10:06:17 -0700 Arun Persaud <arun@nubati.net>:
-update gettext configuration to not include any generated files in git
-
-before we had a somewhat mixed setup, which seems to create problems
-when a different gettext version was installed on the users machine compared
-to the version used to generate the files in git. This should solve
-the problem. The user will now have to generate these files using autopoint,
-which we call from autogen.sh.
-
-2014-09-28 22:19:00 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Configure XBoard for -size 49 in master settings
-
-Now the code for auto-sizing works, it turns out this does more harm than
-good in the GTK build, as it takes maximum size that fits the screen as
-initial size, and the board window then cannot be shrunk below that.
-So we configure a hard -size 49 for a cold startup.
-
-2014-09-28 21:27:22 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Implement ff etc. in Betza parser
-
-Dupliacated directional modifiers can be needed with oblique moves
-to unambiguously specify a direction set, e.g. ffrrN.
-
-2014-09-28 13:40:13 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Rename PGN Pieces tag to VariantMen
-
-Following a suggestion from Steven Edwards, this indeed makes a much
-clearer name. Also add code to skip the tag on reading, rather than
-allowing it to end up with the 'extra tags', as the latter could lead
-to duplication of the tag on subsequent saves.
-
-2014-09-28 11:18:10 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Suppress use of promo-Gold bitmaps in Tori Shogi (WB)
-
-In Tori Shogi the Swallow Pawn does not promote to Tokin, so the use
-of a Gold General pictogram would only be confusing. So we stick to
-the regular fairy bitmaps in Tori, which is recognized by the board
-having 7 ranks in Shogi.
-
-2014-09-28 10:55:10 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Prevent board-size oscillations
-
-It could happen that after resize there was room for enlarging the
-squares by one pixel, but that this crossed the boundary where the line
-gaps also become wider, and there is no room for making both squares
-and line gap. This would cause perpetual oscillations of the window size.
-Resizing is now suppressed when a 1-pixel square-size increase would also
-result in a line-gap increase.
-
-2014-09-28 10:09:17 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Allow use of second-row pieces for non-promoted in drop games
-
-Second-row pieces were automatically demoted on capture, but this
-should really happen only when the piece-to-char table says it is a
-shogi-promoted piece (assigned a '+' there). Pieces assigned a letter
-should really stay themselves.
- PieceToNumber had to be adapted to skip '+' pieces in order to count
-correctly for second-row pieces, as did the code in UserMoveEvent() that
-mapped the from-square onto the piece type. (Why do we do that anyway?
-The piece type was displayed on the from-square!)
-
-2014-09-26 20:24:05 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix reset of 50-move counter on FRC castling
-
-The FxR internal representation was taken a bit too seriously!
-
-2014-09-26 20:15:33 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix abort of machine game on variant mismatch
-
-When the second engine did not support the current variant, and we clicked
-Two Machines, there was an error popup, but the Two Machines menu item
-stayed checkmarked. Now we explicitly uncheck it, and switch to EditGame
-mode.
-
-2014-09-26 19:47:08 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Make unsupported variant on loading 1st engine non-fatal
-
-Like in the startup code, when the loaded engine does not play the
-currently selected variant, we now figure out what the engine does play,
-and switch to that. The error message still pops up, but not non-fatal.
-
-2014-09-25 23:37:24 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Print PGN Piece tag listing engine-defined pieces
-
-A newly defined PGN tag is printed, which summarizes all non-standard
-pieces. Black copies of identically named white pieces are suppressed.
-In the future also non-standard naming should be reported here.
-
-2014-09-25 19:11:21 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Always accept piece commands in partly supported variants
-
-Normally piece commands are ignored when legality checking is on, as
-XBoard's idea of legality should obviously overrule the engine's.
-In variants that are not or only partly supported, however, XBoard has
-no own idea of what is legal, so it is better to take the engine's
-advice than enforcing wrong rules.
-
-2014-09-25 12:29:15 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Size seek graph to also cover board rim WinBoard
-
-The seek graph always used the plain board size, but in WB it is
-possible to diplay a rim around the board, and the seekgraph would
-then be positioned in the upper-left corner of the rim, leaving the
-lower and right board edge and rim uncovered. Its size is now increased
-to fill the entire window (as leaving a rim around it seems not useful).
-
-2014-09-25 11:48:00 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Reparse ambiguous move under built-in rules
-
-When a move parses as ambiguous under engine-defined piece locomotion,
-we re-parse it with XBoard's native idea of the pieces, just in case
-it is a move from a game that was saved without the engine having
-redefined the pieces. This keeps games created before the introduction
-of the 'piece' command loadable.
-
-2014-09-25 11:14:06 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Prevent multi-path moves from parsing as ambiguous
-
-In Cylinder Chess the MovesFromString() generator might generate duplicate
-moves, one wrapping, the other direct. When they were both counted as
-matching the SAN input move, Disambiguate() would think it an ambiguous
-move. So a move that came from the same square as the one we already
-have must not be counted.
-
-2014-09-24 21:47:59 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix cross-edge e.p. capture in Cylinder Chess
-
-ApplyMove() did not remove the e.p. victim when an edge-crossing e.p.
-capture was made, because e.p. rights are only set to neighboring files
-(after checking there is a Pawn there to capture). The e.p. heuristic
-has now been changed to also assume e.p. on file-changing Pawn moves
-that span a large number of files, assuming that these will be wrapping
-moves. Eventually we should change to better e.p. logic that can be
-integrated with engine-configured move generation, as the current system
-would fail for any Pawn that captures more than just neighbor ranks.
-
-2014-09-24 19:43:27 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Implement Betza o modifier for cylinder boards
-
-
-2014-09-24 17:02:37 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Improve virginity test for engine-defined pieces
-
-Two squares in the board are now reserved for flags that indicate
-whether back-rank pieces have been touched. This allows MovesFromString()
-to accurately test virginity of these pieces, rather than having to assume
-it when the piece matches that in the opening position. For other ranks
-the latter test is still used, as these are normally (irreversible) Pawns,
-which cannot return there (and in drop games, when they would, would again
-be considered virgin enough for the purpose of double-pushing!).
-
-2014-09-24 13:20:31 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Implement Betza p and g modifiers in piece command
-
-
-2014-09-24 08:28:40 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Repair piece defs with showTargetSquares off
-
-The proxy legality checking based on marking of target square was
-rejecting all moves when target squares were not highlighted.
-
-2014-09-23 21:53:55 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Allow definition of castling in piece command
-
-Castling is defined by the O atom, with a suffix indicating the number
-of steps the King must step in the direction of the corner. Kings keep
-their normal castling unless overruled by this. Can currently only be
-used on the variant's royal piece, as XBoard's ApplyMove() is not smart
-enough to understand displacing the corner piece is implied when it is
-used on other pieces.
-
-2014-09-23 21:49:44 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Update description of piece command in protocol specs
-
-
-2014-09-23 14:52:16 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Improve SAN of Pawn moves and allow Betza e.p. definition
-
-The move descriptions in 'piece' commands can now use 'i' and 'n'
-modifiers to define a blockable double push. ('n' only work for moves
-of stride 2!) The test for initial moves now is based on comparison with
-the opening position, rather than on a way-to-generous heuristic. (This
-still does not prove in generak the piece did not move, though, but it
-does for Pawns.) A new 'e' modifier stands for e.p. capture; to implement
-this the rank and file of the e.p. square are now stored in the board.
-(EP_STATUS was holding the file of the moved Pawn, which in Berolina Chess
-is not the file of the e.p. square!)
- The generation of SAN moves for Pawns can now reliably distinguish between
-captures and non-captures even in Berolina, when the move generator informs
-it whether the move was e.p. capture.
-
-2014-09-22 22:48:50 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Retune -stickyWindows GTK
-
-This still does not work well, and in particular windows refuse to stick
-to the top of the board window.
-
-2014-09-22 21:59:00 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix detection of screen size GTK
-
-A gdk call that can get the screen without there first being a window
-mapped to it is used now. This fixes initial sizing of the board window
-on a cold start.
-
-2014-09-22 21:57:23 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Configure a size for the Eval Graph
-
-If no size for the Eval Graph window is configured in the master
-settings file, the window will pop up as 2x4 pixels.
-
-2014-09-22 20:39:21 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Prevent crash on specifying non-existent texture XB
-
-By setting the texture width to 0 when the texture could not be loaded,
-XBoard will never attempt to draw it.
-
-2014-09-22 20:30:50 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Configure some themes in XBoard master settings
-
-The -themeNames option is set to contain some themes that could be
-defined with the default pieces and textures that come with XBoard.
-
-2014-09-22 18:48:00 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Remove debug printf
-
-
-2014-09-21 16:47:41 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Control Eval Graph with mouse
-
-Let mousewheel control evalZoom, and right-click toggle between
-normal view and differential view ('blunder graph').
-
-2014-09-21 16:10:19 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Add extra font field to Option struct
-
-Storing the font in the textValue field was too kludgy, as this field
-is already heavily used in the various Option types, for storing handles,
-or defining colors and callbacks. A 'font' field is now added at the end,
-so that it can be optionally initialized in the rare case it is needed.
-
-2014-09-21 13:44:11 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Repair damage done by merging with v4.7.x
-
-
-2014-09-21 08:36:22 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Sort fail lows and fail highs below others
-
-Every more recent line should always float up aove lines that were
-indicated to be fail lows or fail highs through ? or ! PV suffixes.
-
-2014-09-20 12:58:32 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Describe the new texture conventions in manual
-
-The exact rules for how textures are scaled in response to their
-filename is described in the manual.
-
-2014-09-19 10:22:14 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Force exactly overlayed texture scaling through filename
-
-A filename suffix -NxM.png on a texture image will cause XBoard to scale
-the image as if it were the image of a complete board of N files and M
-ranks, to make the square size equal to that of the current board,
-and adjust the cutting parameters such that contiguous squares are cut
-out of it. (If the current board format is larger than NxM, the remaining
-space will be padded with white!)
- If N=M=0, N and M are assumed to correspond to the current board size,
-and the bitmap will be scaled to fit the height of the board.
- If no suffix is present, the old cut-and-tile algorithm is used. It will
-be assumed the texture bitmap is intended for a single square, unless the
-pathname contains a file that starts with "xq", in which case it is assumed
-that the file contains a Xiangqi board.
-
-2014-09-18 23:30:09 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Allow two Pawns per file in Tori Shogi
-
-When the board has 7 ranks it is assumed to be Tori Shogi, and the
-requirement for maximally one Pawn per file is relaxed to two.
-
-2014-09-18 23:08:36 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Test legality even when off if engine defined pieces
-
-After reception of a piece command XBoard will mark target squares
-even when legality testing is off, and now also will require the lifted
-piece to land on a marked square (like when the engine highlighted them
-through a highlight command).
- A problem is that this does not work for drops, as drops do not mark
-target squares. So drops are always accepted. Which of course is bad
-for Pawn drops. But there really is no way yet for an engine to specify
-how pieces can be dropped, similar to the 'piece' command.
-
-2014-09-17 22:32:43 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix texture scaling
-
-
-2014-09-17 13:41:58 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Implement engine-defined pieces
-
-When legality testing is off, XBoard now listens to 'piece' commands
-to redefine its move generator. After such a piece command is received,
-target-square marking also can be used when legality testing is off.
-The engine keeps in charge of legality testing, though.
- Only a very basic version of Betza notation is currently understood for
-the move description: mode modifiers have to appear in the order mcd,
-and gpz modifiers are ignored. Multi-leg moves as in Betza 2.0 is not
-implemented at all. A leading i modifier limits the moves to the first
-two ranks, which is no good at all. (But XBoard does not keep track of
-which pieces have moved, and this at least would work for Pawns in a
-FIDE-like setup, in particular Berolina.)
-
-2014-09-17 09:44:15 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Scale texture bitmaps that are not large enough
-
-Texture bitmaps are now sized up by an integer factor to be at least
-as large as the board (if they seem intended for a full XQ board, which is
-assumed when they are larger than 256x256) or the square. This necessitated
-the textures to be re-initialized in InitDrawingSizes whenever the window
-size changes.
-
-2014-09-16 19:04:19 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Ignore color arguments not starting with #
-
-Old settings files from xpm-using version might still contain color
-designations like 'white' or 'red'. Since Cairo would interpret these
-as black, it is better to ignore them, so the default color is used.
-
-2014-09-15 15:30:40 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Implement -autoInstall option
-
-When -autoInstall is a non-empty string, XBoard will scan the system's
-plugin specs directories for UCI and WB protocol, to see if new engines
-were added since the last settings save. If so, they are added to the
-list of installed engines.
- The variants listed in the plugin-spec files are currently ignored,
-but the option is already configured to install engines for all variants.
-
-2014-09-14 22:47:55 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix typo
-
-
-2014-09-14 21:41:04 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Make inlined functions static
-
-Clang apparently chokes on non-static inline functions,
-and they were not used from other files anyway.
-
-2014-09-09 20:29:15 -0700 Arun Persaud <arun@nubati.net>:
-updated spanish translation, added new polish translation
-
-
-2014-09-13 09:12:54 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Look for logo in engine dir first (GTK)
-
-When setting engine logos, we look for a file logo.png in the engine
-directory, before trying <enginename>.png in the -logoDir. This is useful
-on OS X. Fix bug that checks for existence of -fd/sd rather than -logoDir,
-when using the latter (also in Xaw).
-
-2014-09-11 23:10:59 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix checkmarking of OS X menu items
-
-The routine MarkMenuItem() was moved to xboard.c, where it can see
-the OSX-specific #defines, and calls to sync_menu_bar were added
-to it, and to EnableNamendMenuItem().
-
-2014-09-11 22:48:10 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix crash of tournament dialog GTK
-
-The font/color disambiguation of the Option.textField in Label and
-ulti-line TextBox options cannot stand it if unused elements are
-initialized as "" rather than NULL.
-
-2014-09-11 19:17:55 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Let OS X display dock icon
-
-
-2014-09-11 12:41:50 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix Xaw button color error
-
-The textValue field, now also used to indicate font, was used in two
-places when popping up buttons, and the font patch only addressed one.
-
-2014-09-11 10:23:42 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Make SVGDIR a variable
-
-Replace all occurrences of SVGDIR in the source by svgDir, a char array
-that is initialized to SVGDIR, so that it can be altered at run time.
-This is needed to make portable apps. Where SVGDIR was used in string
-concatenation, the code had to be re-written to use snprintf to do the
-concatenation at run time, through a new function LoadIconFile.
-The extension of image files used there is now made dependent on the
-__APPLE__ switch, so that it can use .png in OS X (which does not seem
-to understand SVG icons).
-
-2014-09-10 21:20:40 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix warning in dead code Show
-
-
-2014-09-10 20:49:38 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Reorder variants, to comply with Polyglot book specs
-
-XBoard's variant number is used as a key to access Polyglot opening
-books, and thus cannot be changed without consequences. (As it was when
-we introduced ASEAN and Chu Shogi.)
-  We also renamed Chu Chess to Elven Chess (under which name it is now
-described on chessvariants.org).
-
-2014-09-10 19:52:12 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Reserve piece command in protocol specs
-
-
-2014-09-10 18:54:45 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-suppress Alien Edition standard variants
-
-Variants that are standard in the Alien Edition should not be
-recognized as engine-defined variants: the engines that announce
-them will not respond with the required setup command, so allowing
-the user to select them just leads to trouble.
-
-2014-09-10 13:51:44 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix SetWidgetFont GTK
-
-This was testing for an empty font spec in the wrong way, with as a side
-effect that some pointers to font strings would be interpreted as colors.
-
-2014-09-10 15:56:59 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Update protocol specs
-
-
-2014-09-09 21:43:39 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Let message field and button bar use GTK -messageFont
-
-The -messageFont spec (using the default coordFont pixel size, like the
-others) is now used to modify the fonts of message field and buttons
-in the button bar. They pass a pointer to the appData font variable in
-their Option's textField. This conflicts with the use of this field in
-buttons for specifying a color, as done in the New Variant buttons.
-This is resolved by checking if the first byte of the pointed-to value
-is a #. The Xaw version must ignore the textField if it does not
-specify a color.
-
-2014-09-09 20:51:54 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix GTK fonts
-
-
-2014-09-09 19:57:52 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Use coordFont default pixel size for other fonts
-
-The message-font is way too large for the dialogs. A better solution
-would be to redo the entire table of SIZE_DEFAULTS in xboard.h, as
-this file is front-end-specific anyway.
-
-2014-09-09 19:39:50 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Use -gameListFont in Game List
-
-Not implemented in a very generic way, but hacked into the code that
-added the handler. There aren't many other listboxes that would need
-adjustable font.
-
-2014-09-09 16:49:18 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix Chat window for Xaw build
-
-The ICS output field and Hide button are removed from the ICS Interaction
-window, to make it similar to the old Chat window. This required adding
-some tests in the handlers of this window, to prevent segfaults due to
-accessing it.
-
-2014-09-09 15:53:29 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix infinite-regression problem on OS X
-
-Apparently the OpenFile handler can already be called during
-gtkosx_application_ready (or gtk_signal_connect), so we have to make
-sure 'suppress' is set before we call those.
-
-2014-09-09 10:47:41 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Correct for .Xresources form->paneA renaming in manual
-
-In the Xaw build the name of the form widget of dialog.layout.form...
-hierarchy was changed to paneA, paneB, ... when allowing multi-pane
-dialogs through the Break Option (such as the Engine Output window).
-
-2014-09-09 10:36:42 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Use GTK fonts in Engine Output and Move History
-
-
-2014-09-08 20:42:11 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Include some conditional OS X fixes
-
-DATADIR must be corrected to ~~ in the OS X app, and the info command
-must be started in a different way.
-
-2014-09-08 20:12:08 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix WB DoEvents error
-
-
-2014-09-08 19:06:35 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Limit auto-extending to click on first move of PV
-
-Even when auto-exted on clicks on the tail of a PV will no longer cause
-any moves to be added to the game. Only clicks on or before the first
-move can do that now.
-
-2014-09-08 16:20:26 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Animate multi-leg in auto-play and forward event
-
-Replaying multi-leg moves is now also done by animating both legs.
-In addition, the highlights are set on final and intermediate square,
-rather than from-square.
-(There seems to be a great deal of code duplication here. Why doesn't
-AutoPlayOneMove simply call ForwardInner?)
-
-2014-09-08 14:45:51 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix key bindings for non-menu functions
-
-The accelerator keystrokes for next game, previous game and debug mode,
-which don't have menu items, and are grouped in the menu table 'noMenu',
-were not treated in the building of the translation table, as 'noMenu'
-does not occur on the menu bar. An extra iteration is done now to
-treat this menu group.
-
-2014-09-08 14:24:59 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix Xaw key bindings
-
-The routine to automatically construct the translation table for
-accelerator keys did not respect the rule that more specific keystrokes
-(like :Meta<Key>Home:) have to be defined before more general ones
-(like :<Key>Home:). As a result Alt+Home would activate the Revert
-item, intended for plain Home.
-
-2014-09-08 14:20:08 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Define default font names
-
-
-2014-09-08 09:25:18 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix MSVC problems
-
-Book.c did not include config.h, and thus missed the redefinition of
-snprintf (which is not known in MSVC). The use of 'inline' in parser.c
-also needed an MSVC redefinition, now added to winboard/config.h.
-
-2014-09-08 09:22:55 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix GTK font patch
-
-
-2014-09-07 23:35:22 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Replace strcasecmp by StrCaseCmp
-
-The MicroSoft compiler does not know strcasecmp, so we better use
-our own function for this everywhere.
-
-2014-09-07 23:28:29 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Let GTK build pay attention to font arguments
-
-Multi-line text edits now use the initial value of the Option.textValue
-field as a pointer to a (char*) holding a font name, to be used for
-the text displayed in it. (After which they overwrite the field with
-the textView handle.) The font options -tagsFont, -commentFont, icsFont,
--moveHistoryFont and -gameListFont are now activated in the GTK build,
-to control the corresponding memos.
-
-2014-09-07 13:58:15 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix auto-display comment option in General Options
-
-This options had the same ID as auto-Queen, making it ignored.
-
-2014-09-07 13:43:48 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Call DoEvents during time-consuming operations
-
-Processing of a game file for reading it, searching positions, saving
-selected games or creating a book from them can take minutes. To keep
-the application responsive during that time, the main loops of those
-tasks calls DoEvents(). A possible risk is that the user can now do
-too much, and will initiate actions that interfere with the tast in
-progress.
-
-2014-09-07 13:32:49 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix GameListHighlight WB
-
-The routine to highlight a game line in the Game List listbox of WinBoard
-used an extremely inefficient linear search to find the game amongst the
-selected games. This has now been replaced by bisection, after finding
-an upper limit to the number of entries in the listbox by doubling
-a trial size.
-
-2014-09-07 12:10:50 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Provide DoEvents function in front-ends
-
-A routine to process all pending events in a non-blocking way is now
-provided in the Xaw, GTK+ and WinBoard front-ends, so that time-consuming
-tasks (such as PGN loading or opening-book creation) can call it to keep
-the user control over the application alive.
-
-2014-09-06 23:13:01 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix syntax error in bitbase code
-
-
-2014-09-06 22:35:22 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Describe Save Selected Games menu in manual
-
-
-2014-09-06 22:29:43 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Let Save Games as Book only use selected games
-
-The book-creation code now only takes games into account that are
-selected for display in the Game List.
-
-2014-09-06 22:20:19 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Rewrite key-binding section of manual
-
-This section still wrongly described the key-binding procedure from
-before the rewrite of the XBoard front-end.
-
-2014-09-06 13:21:13 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Connect scroll event to Graph Option in GTK
-
-The mouse wheel is now detected in graphics widgets, and passed to
-the user handler as button 4/5 mouse events.
-
-2014-09-06 13:15:55 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Make sure node count is positive
-
-Engines that print the node count as an int overflow into negative values
-when the count exceeds 2G. This is really an engine bug, but as it
-interferes extremely annoyingly with the alignment of the Thinking Output
-XBoard now repairs it by adding 4G to undo the overflow.
-
-2014-09-05 14:03:49 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Connect mousewheel to Forward/BackwardEvent (XB)
-
-The mouse buttons 4 and 5 are now processed in the handler for the
-board widget.
-
-2014-09-05 13:41:34 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix size of time in Engine Output window
-
-When the thinking time exceeds an hour, the format hr:min:sec is now used,
-in stead of min:sec.cents. This prevents the field from extending beyond
-the tab stop when thr hours kick in, and should work upto 100 hrs.
-(Going beyond that at the moment does not seem useful.)
-
-2014-09-04 22:57:07 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Verify if font-spec looks like one in Xaw
-
-To make XBoard resistant to mixed use of Xaw and GTK builds, which
-would not understand each others font specs stored in the settings
-file (they have in common), we now determine if the value looks like
-an X-font. If it doesn't, the Xaw version ignores it. The GTK build already
-ignored it if it did lool like an X-font spec.
-
-2014-09-04 17:03:55 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix alignment in Engine Output window
-
-Numbers above 1000M would become too wide for their field. This is
-solved by introducing the abbreviation 'G'. Values below 10M or 10G
-now get an extra digit in their fraction, so that the precision is
-at least 1%.
-
-2014-09-01 14:44:54 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Add Save Selected Games menu item
-
-A menu item to save all selected games in the Game List on a single
-file is added.
-
-2014-09-01 12:03:58 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Add final piece count to search criteria
-
-The Load Options dialog now has a text field in which a range can be
-entered (like 8-10). Position search will then only select games that
-had their final number of pieces in this range.
-
-2014-08-29 21:15:29 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix castling rights on using -lgf
-
-The dummy InitPosition to force loading pieces was taking place after
-InitBackend2(), while the latter could have already loaded a game
-from an -lgf argument (which would then be spoiled by the InitPosition).
-It has been moved to before InitBackend2() now.
-
-2014-07-29 15:03:04 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix crash on double-click in Game List Tags
-
-A double-click in the Game List Tags listbox has no function, but it
-crashed XBoard, because the textValue field of teh ListBox Option definition,
-supposed to contain a pointer to the user-supplied handler, contained a
-pointer to an empty string.
-
-2014-07-02 14:34:53 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix typing of null moves
-
-Entering a null move through the move type-in could fail because the
-to-square coordinates (not used in its encoding) could have invalid values,
-which would reject the move in an early stage of UserMoveEvent().
-Null moves are now exempted from this vaidity test, while variants where
-null moves are legal now accept them in any gameMode.
-
-2014-07-02 14:04:22 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix adjusting clocks in Xaw version
-
-The handler attached to Label options failed to flip the sign of the
-option number when a button other than Button1 was pressed, so that time
-would always be subtracted on Shift + ClockClick and never added.
-Shift now also suppresses interpretation as null move when playing.
-(In Analyze / EditGame mode it is still null move starting a variation.)
-
-2014-07-02 12:37:18 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix null-move entry during play
-
-Null moving by clicking the clock was only accepted in Edit Game and Analyze
-mode, while in Chu Shogi and spin-offs it is also allowed during play.
-An F_NULL_MOVE flag was introduced to make it easy to test for such variants,
-and Machine White/Black mode now also interpret clock clicks as a null move
-if the opponent's flag has not yet fallen.
-
-2014-04-09 09:53:56 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Let EditPosition double-click on piece promote it
-
-For pieces with Shogi-like promotion (i.e. if the promoted piece has
-pieceToChar defined as '+'), let a second click on it in Edit Position
-mode promote or demote it (as the case requires) when the piece menu is off,
-rather than remove it (as was the old behavior.
-
-2014-04-09 09:19:43 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Make EditPosition pallette work in Asian variants
-
-Construction of the pallette position was not working in variants that
-did not have Pawns start on 2nd rank, or that had multiple ranks of pieces.
-Now the algorithm is applied to all ranks.
-
-2014-04-05 23:00:17 +0200 H.G.Muller <hgm@hgm-xboard.(none)>:
-Fix crash on opening Tags window Xaw
-
-Suppressing the optional book button made the Xaw generic popup crash,
-because the following button had the SAME_ROW modality, and was thus
-positioned w.r.t. a non-existent widget.
-
-2014-04-05 20:39:55 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix writing of Chu-Shogi FENs
-
-Promoted pieces were getting the wrong ID letter, of the piece demoted
-by 11, rather than 22.
-
-2014-04-01 18:20:29 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow pseudo-engines to adjust the clocks
-
-Implement new options -first/secondPseudo, which declare the corresponding
-engine to be a pseudo-engine, which will then be granted super-powers
-through some new engine->GUI commands. For instance, to adjust the time
-remaining on the GUI clocks through wtime and btime commands (using msec).
-
-2014-04-01 12:00:14 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix piece inscriptions
-
-
-2014-04-01 11:16:48 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix reading Chu Shogi FENs
-
-The X (for Phoenix) was interpreted a 10 empty squares.
-
-2014-03-17 23:26:08 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix loading positions in engine-defined variant
-
-Paste Position did not work when an engine-defined variant had redefined
-the pieceToCharTable, as the position would be interpreted and sent to the
-engine before receiving the setup command. Copying the pieceToCharTable
-received from an earlier game to appData cures this, because it will then
-be used by InitPosition, which would reset the table to default otherwise.
- Another problem was that setupSpoiledMachineBlack would not be reset
-after a game with no moves, leading to a spurious 'go' command to the engine.
-
-2014-03-17 23:05:33 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Render inscriptions on Chu-promoted pieces in red
-
-
-2014-03-17 22:56:07 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow writing text on pieces
-
-A new persistent string option -inscriptions allows the user to define
-characters to be written on the various piece types. The string is
-interpreted as UTF-8. This option is useful for on-the-fly synthesis
-of Shogi pieces, where the string can contain the various kanji in
-the canonical pieceToCharTable order. Except that only a single color
-has to be given.
-
-2014-03-12 22:08:04 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix initial sizing of board
-
-Previous patches had destroyed the ability to obey the -size option.
-
-2014-03-10 21:15:30 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix width of menu bar
-
-The truncated name might not have been terminated with '\0'.
-TinyLayout now specifies the number of characters kept in the menu names.
-In the OS X version truncating is never needed, as the menu bar is
-at the top of the screen, independent of board size.
-
-2014-03-09 20:38:51 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix warnings fonts patch
-
-
-2014-03-02 23:10:50 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement (clock-)font handling in GTK
-
-The options -clockFont, -coordFont and -messageFont are activated,
-and supposed to have string values like "Sans Bold 12". The default
-values have the point size as 'wild-card' %d, however "Sans Bold %d",
-and are expanded by a printf with the point size taken from the defaults
-table. The expanded versions are saved back into the settings file,
-prefixed with a size tag, as usual.
- So far -clockFont is the only font that is actually applied while
-writing.
- The 'clock kludge' was interfering with the initial sizing, as for some
-sizes the initial clock-widget height happened to be equal to the final
-height. It was therefore abandoned, and we seem to be able to live without
-it.
- Sizes smaller than 49 were dominated (for 8-wide boards) by the menu bar.
-Therefore tinyLayout now uses single-letter menu labels.
-
-2014-03-02 20:45:57 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Also search indirection files in user's .xboard tree
-
-
-2014-03-02 18:53:17 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix error Engine Output text highlighting
-
-In wengineoutput.c higeTextStart and End where decalred both static and
-extern, which somecompilers justifiably don't like.
-
-2014-03-01 16:09:09 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix Board-dialog bug WB
-
-The drawing code for the sample square did ot restore the correct brush.
-
-2014-02-28 21:48:19 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix various warnings
-
-Mostly written but never read errors. Also removed a debug printf that was
-causing a format warning.
-
-2014-02-26 16:34:52 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Kludge repair of expose after startup resize
-
-Redraw of the main board after resize is delegated to DragProc, which is
-scheduled after a delay, to make sure the user is done sizing (mainly to
-reposition docked windows). But at startup the program-requested resize when
-an engine does not support variant normal and needs a different board format
-takes so long that the finale size expose occurs after the DragProc timeout.
-As a result, the board was never drawn on the resized canvas.
-  This is quite hard to fix in a satisfactory way. For now the suppression
-of board redrawing during resize is disabled during the first 10 seconds
-after startup, as any resize during that time is likely to be the result
-of a program request.
-
-2014-02-26 13:08:50 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Use first engine as default for second
-
-Rather than having the same fixed default for both engines, we noww only
-have a fixed default for the first, and use the actual first as default
-for the second. One advantage is that this guarantees the second engine
-plays the same variants as the first by default.
-
-2014-02-23 23:51:20 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow adding played move to book
-
-A button is added in the Edit Book dialog to prime XBoard for adding the
-next move entered through the user interface to the book window, without
-actually playing it.
-
-2014-02-23 22:54:55 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Play move right-clicked in Edit Book dialog
-
-A handler for button-3 down-clicks is added to the Edit Tags dialog,
-which fakes the clicked word was typed in the move type-in box.
-
-2014-02-23 19:23:28 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix pop-down of ChatDlg and TextMenuDlg from menu
-
-Unlike other windows these two would not react to clicking the menu item
-once they were up. Now they pop down in that case.
-
-2014-02-21 11:10:41 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Preserve window width on board-format change
-
-When a variant switch would cause recalculation of the board window,
-we now first recalculate square size to keep the window width fixed.
-Also adapt initial width on high boards.
-
-2014-02-18 22:37:31 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Equip Board Options dialog with themes listbox
-
-The option -themeNames is made persistent for XBoard, and its value is
-displayed in a listbox added to the View -> Board dialog. The user
-can select themes from this, and manipulate the contents similar to
-the engine list in Load Engine. A textedit allows the user to define a
-theme name for the current settings, and doing so adds the theme to the
--themeNames list.
-
-2014-02-07 11:22:44 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement copy function in ICS Text Menu
-
-A command consisting of the word $copy will place the clicked word on
-the clipboard. When there was already text selected during the click,
-that selected text will be used for $copy and $name, rather than the
-right-clicked word.
-
-2014-02-07 09:48:31 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-When ICS Console open EOF from keyboard is no error
-
-In case the user started without a terminal, we just close the input source,
-and suppress future writing to the xterm.
-
-2014-02-06 18:46:21 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Leave xterm at start of new line after quitting XBoard
-
-
-2014-02-06 18:36:41 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Also display channel tell in ICS Console during private chat
-
-Channel tells of players for which a chat wa opened were displayed in that
-chat, as well as in the channel chatbox, if the latter was open. But when
-there was no channel chatbox it would not appear as colorized channel tell
-in the console. This is now fixed, and in the private chat box such a
-message is indicated as 'broadcast'.
-
-2014-02-05 23:08:50 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Write broadcasts also to private chatbox of talker
-
-The shouts or channel chatboxes capture messages first, but if a private
-chat with the talker is opened, it now goes there too. Prefixed with
-the type of broadcast.
-
-2014-03-02 13:18:34 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix Xaw Chat Console
-
-
-2014-02-05 22:38:09 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Let Ctrl-O key open chat for last talker
-
-
-2014-02-05 22:15:03 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add End Chat button
-
-This button clears the current chat, so that it becomes free for
-assignement to another partner.
-
-2014-02-05 21:59:10 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Ctrl-N in chat opens empty chat
-
-This key isequivalent to pressing the left-most New Chat button.
-If no unused chat present, it the command will be ignored.
-
-2014-02-05 21:29:42 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Preserve unfinished input lines during chat switch
-
-This is problematic, as apparently we cannot write in widgets that are
-active with key hits, so attempting to write it back in response to Tab
-did not work. This is now done with a delay, for lack of a better method.
-
-2014-02-04 13:57:16 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Recognize Esc and Tab in ICS Console input
-
-Esc is used to close the chat, or transfer focus to the board window.
-Tab is used to navigate between chats (or open the first). Priority
-is given to dirty chats.
-
-2014-02-03 20:35:31 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Let ICS Console pop up GTK in stead of ICS Input Box
-
-
-2014-02-03 19:45:44 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add context menu to ICS console XB-GTK
-
-A right-click handler is added to the output memos of the ICS Interaction
-window. It pops up the ICS text menu. It is remembered whether the menu
-was already up; if not, it will be popped down after a command is selected
-from it. Like the WinBoard context menu, the commands will be able to use
-the clicked word.
-The -icsMenu 'command' $chat is now recognized as a special case, not to
-be sent to the ICS, but executed by XBoard. It will assign one of the
-five chats to the clicked name. If no empty chat is available, the last
-chat will be used (but not cleared).
- The -icsMenu in the master config file is now configured to contain
-this command, but unfortunately this will not become effective for users
-that already have a settings file.
-The Text Menu now puts $input commands in ICS Console Input field when the
-ICS Input Box is not up.
- The text placed in the input field for completion (as per $input directive)
-turned out to be selected in GTK, so that when you stated typing, it was
-erased again!
- By making the Text menu dialog subject to WindowPlacement control,
-and interrogating the poition of the ICS Console window, the Text Menu
-can be popped up such that the mouse pointer is on the bottom-left button.
-
-2014-02-02 21:17:00 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Integrate ICS output into Chat Window
-
-An extra pane has been added to the Chat Window to display the ICS output.
-In GTK this output is colorized just as in the xterm. For Xaw this is not
-possible. This pane is always visible, and the chat output can be hidden,
-to double its size. Entered input will go to the selected chat (when not
-hidden) as a tell or shout, or to the ICS as a command. The Chat-Partner
-field is hidden together with the chat pane and the Hide button. Each of
-the five chats now has a dedicated button; for unused chats (empty Chat-
-Partner field) these now gets the text 'New Chat' inscribed on it.
-Focussing is made more intelligent (to the Partner field when shown and
-empty, otherwise to the input field).
-The Up and Down arrows now work in the input field to recall old input.
- ScrollToCursor() was broken in GTK, because a mark was made for only
-a single buffer. Now each buffer has its own end mark.
- Another problem was that using ScrollToCursow immediately after a memo
-was shrunk (because a neighboring one expanded) it would still use the
-old memo size, so that the bottom part remained out of view. Delaying it
-50 ms solved that problem.
- A new option -icsUp was added to store the visibility in the settings.
-It is updated only in ICS mode. The ICS Console pops up automatically
-when the stored parameters say so. It is also made sticky.
- Unlike the xterm the textView does not extend background color to unwritten
-positions behind the line. A separate GTK call is now added to set the
-unwritten part to the same color as the background in normal text.
- A  control was added in the ICS Options dialog for setting the colors
-of normal text (-colorNormal).
-
-2014-02-02 17:27:26 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add logo-size control XBoard
-
-This is mainly for the benefit of OS X useres who cannot find their
-settings file. It requires a restart to become effective, which is
-really sub-standard.
-
-2014-02-02 17:18:56 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add Edit Engine List menu item to XBoard
-
-In OS X the settings file is hard to find...
-
-2014-02-02 16:41:13 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix warnings
-
-Some unread variables are commented out, rather than removed, because they
-can be useful for future development.
-
-2014-02-02 16:33:34 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix moves of Spartan Captain
-
-The rewrite of the move generator did no longer pay attention to rookRange,
-so that the Spartan Captain moved like a Rook.
-
-2014-02-02 16:18:07 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add Option type 'Skip'
-
-The value -1 used to suppress rendering of option controls was drawing
-error messages, because enums are unsigned. So a new member Skip was added
-to the enum.
-
-2014-02-02 14:40:16 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Detect Fischer castling in FENs
-
-Castling rights with unorthodox piece placement imply Fischer castling.
-Make sure shuffling is done after detecting this, because it means K & R
-can also be shuffled (as long as K remains between both R).
-
-2014-02-02 14:09:19 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow shuffling indicators in FEN
-
-If the back ranks are enclosed by < > in a FEN, the route to shuffle
-initial positions is invoked on it.
-
-2014-02-02 13:51:37 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow wild-cards in FEN
-
-A question mark in a FEN will now be interpreted as a piece randomly
-chosen from the holdings. (From which it will be removed.) Intended
-for use in symmetric black/white pairs; when used on asymetric locations
-or with non-identical holdings the results will be undefined.
-
-2014-02-02 10:40:18 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix Seirawan reverse-castling animation
-
-In Chess960 animation of castlings is suppressed, because the move is encoded
-as KxR, so that the to-square in general is not the final destination of the
-King. So it is just confusing to the eye to see the King slide to the Rook,
-and then jump to an entirely different square. In S-Chess castlings can
-similarly be encoded as RxK (to indicate gating at the Rook square), and
-animation of those moves should be suppressed for the same reason. But it
-wasn't, and in Fischer castlings denoted as RxK this even caused the Rook
-to disappear when it didn't need to moved.
- Perhaps one day a smart method of animating Fischer castlings can be
-designed. (E.g. remove Rook, animate King move to true to-square, place Rook?
-But what if the King doesn't move at all? Animate Rook then? Normal castlings
-now animate the King, and then just displace the Rook.)
-
-2014-02-02 10:22:25 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Make Fischer castling generally available
-
-A new volatile option -fischerCastlings allows every variant to be played
-with Fischer castling, which so far was only allowed in variants FRC/CRC.
-This only makes sense in shuffle variants, where King and Rooks might not
-be in their orthodox locations. But even when they are, it has consequences
-for the user interface, which will require dragging King on Rook as the only
-way to enter castling. Like -shuffleOpenings the setting will be cleared
-as soon as you switch variant (unless you switch to FRC/CRC, where they
-Fischer castling is on by default). It can be set from the New Shuffle dialog.
-
-2014-01-19 22:41:52 -0800 Arun Persaud <arun@nubati.net>:
-updated po/pot files
-
-
-2014-01-19 22:19:10 -0800 Arun Persaud <arun@nubati.net>:
-new version number for developer release
-
-
-2014-01-19 22:15:33 -0800 Arun Persaud <arun@nubati.net>:
-updated Dutch translation
-
-
-2014-01-19 20:44:33 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Put ponder checkbox in Common Engine dialog WB
-
-This is yet another duplicate of the one in General Options and Adjudiactions.
-
-2014-01-19 20:27:59 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Expand %s in -openCommand to DATADIR and fix OSX settings-file name
-
-This can be used in OS X to biggy-back a cd to a directory in the App
-on the open command.
-
-2014-01-18 23:42:01 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add some checkboxes in General Options dialog WB
-
-Checkboxes are added for -variations, -memoHeaders and -autoExtend.
-
-2014-01-18 23:26:03 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix warning in CheckTest
-
-
-2014-01-18 22:40:27 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix printing of engine-output headers
-
-They were not printed on analyis of the first position after opening
-the Engine Output window.
-
-2014-01-16 23:07:28 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix sticky windows on Win8
-
-
-2014-01-16 22:54:32 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Drag touching edges together (WB)
-
-When an auxiliary window is dragged by an edge, the snap code now checks
-if that edge was touching another window. If so, that other window is sized
-to keep touching the dragged edge. Unless it was also touching the main
-window.
-
-2014-01-15 22:35:23 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement new mate-score standard
-
-Matescores are now indicated in the protocol as +/- 100000+DTM,
-and in the Engine Output window as #DTM or #-DTM.
-
-2014-01-15 21:28:51 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Put fail-high/fail-low indicators in protocol specs
-
-
-2014-01-15 20:43:55 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-switch to new tbhits protocol
-
-The extended info is now expected as 3 bare integers, the last one
-separated from the PV by at least one tab character.
-The protocol extension is described in the CECP specs document.
-
-2014-01-14 22:37:30 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix sorting of Engine Output
-
-The moveKey of the top line was never stored, so that more recent
-lower scores could not pass it even if they had the same move.
-
-2014-01-14 22:35:22 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Handle fali-low & fail high
-
-A ? or ! at the end of the PV are now also written behind the score.
-
-2014-01-14 20:31:46 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement extended thinking output
-
-The PV field can now start with three quantities, selective depth,
-engine speed and tablebase hits, disguised as PGN comment. XBoard will
-strip that off, and allow them to be displayed in separate columns of
-the engine-output window.
-
-2014-01-14 14:46:47 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow hide/show of columns in Engine Output
-
-A new persistent Boolean option -memoHeaders enables a new feature:
-text headers are shown above the depth, score, nodes, time columns in the
-engine output. Right-clicking them will subsequently hide the corresponding
-data, and move the column header to above the PV in a 'not shown' list,
-where it can be clicked again to re-open the column.
-Configure maseter settings to switch -memoHeaders on by default.
-
-2014-01-14 09:55:40 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix ManProc for OS X
-
-
-2014-01-14 10:02:22 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix access to ~~/themes/conf for OS X
-
-In OS X DATADIR is a variable.
-
-2014-01-13 19:23:30 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add 'Continue later' button to Tournament dialog XB
-
-To do GenericReadout without triggering a call to the OK function,
-we introduced a new value for the option-number parameter, -2.
-
-2014-01-13 17:32:28 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix Tournament Options dialog
-
-Deleting a Label option had renumbered the remaining Options, breaking
-the dialog and causing a crash when an engine was selected. A considyency
-check is now added to catch this condition, and throw an error popup
-when we mess up again.
-
-2014-01-13 17:09:01 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow popup of TC and Common Engine from Tournament dialog
-
-A new dialog class MasterDlg was added, similar to TransientDlg,
-but to allow two dialogs to be up simultaneously. The Tournament Options
-dialog was migrated to this class, so it can now get buttons to pop up
-the Time Control and Common Engine dialog, like WinBoard. It even has
-a button for the General options dialog.
-Special care had to be taken to prevent popdown of the MasterDlg when
-a Transient child is still up (similar to browser or error childs).
-
-2014-01-13 16:21:59 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add --show-config special option
-
-This prints a list of configure parameters, and then exits. If a second
-argument is given, it only prints the value of that config parameter,
-so that tricks like cp *.svg `xboard --show-config Datadir`/themes/chu
-can be used in install scripts of packages with piece images.
-
-2014-01-13 14:25:30 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Overhaul kill code
-
-Engines were not always forcefully killed in XBoard, which could make
-the tournament manager hang when an engine became unresponsive to "quit".
-The various levels of killing are now revised, and the -delayAfterQuit
-is absorbed in DestroyChildProcess(). There is a hard killing mode 9,
-which immediately sends SIGKILL, intended for engines that have already
-proven to malfunction or could not start at all. In other cases SIGTERM
-is sent according to specs, but a SIGKILL is scheduled -delayAfterQuit + 1
-sec later just in case the SIGTERM would be ignored.
-
-2014-01-13 13:38:47 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix name of master settings file in OS X
-
-The name needs to be relative to the bundle path, but ~~ expansion
-did not work for compiled-in defaults, as the expansion takes place
-when parsing an option. The dataDir is now also kept in an array rather
-than as a pointer, to allow it to appear in statically initialized tables.
-
-2014-01-08 16:25:25 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix Chu promotion of L, HM and GB
-
-The promotion popup would not be shown for HM and GB with legality testing
-on because the piece types used for them were wild-card pieces. The Lance
-was treated as a Pawn in HasPrmotionChoice().
-
-2014-01-08 16:09:15 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Remove redefine of DATADIR that leaked in from v4.7.x
-
-2014-01-05 12:52:46 -0800 Arun Persaud <arun@nubati.net>:
-updated po/pot files
-
-
-2014-01-05 12:51:50 -0800 Arun Persaud <arun@nubati.net>:
-new version number for release 4.7.3
-
-
-2014-01-05 10:58:48 -0800 Arun Persaud <arun@nubati.net>:
-updated copyright to 2014 in menu.c
-
-
-2014-01-05 10:37:56 -0800 Arun Persaud <arun@nubati.net>:
-removed .DS_Store file from git
-
-
-2014-01-05 10:34:08 -0800 Arun Persaud <arun@nubati.net>:
-Updated copyright notice to 2014
-
-
-2014-01-05 10:27:53 -0800 Arun Persaud <arun@nubati.net>:
-cleanup some trailing whitespaces
-
-
-2013-12-29 13:46:40 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix crash on use of dialog Browse buttons GTK
-
-The code to set a filter did not expect multiple extensions, and would
-cause a buffer overrun when there were.
-
-2013-12-27 20:12:23 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Make building of Windows .hlp file optional
-
-By using && and || operators in the build recipe, the building of WinBoard
-with Cygwin is now not aborted whe the Help Compiler is not installed.
-
-2014-01-05 11:47:18 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Use __APPLE__ compile switch for OS X
-
-It seems that on Apple machines the compiler will always define the
-symbol __APPLE__, so this is now used instead of OSX, which had to
-be defined with a -DOSX compiler flag. The gtkmacintegration header
-is now using <> in stead of "" in its #include. (Strange enough both
-were working.)
-
-2014-01-04 12:18:30 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Expand ~~/ to bundle path (OSX)
-
-DATADIR is #defined in WinBoard as "~~" to make the expansion a no-op
-there. Same for Linux compiles. For OS X it is #defined as a variable,
-obtained from GTK-OSX at startup.
-
-2013-12-29 23:27:12 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Activate ManProc in GTK
-
-
-2013-12-29 22:14:06 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Remove use of strndup
-
-The use of strndup was actually unsafe, as the length was passed using
-an ordinary strlen. strndup was not availableon OS X 10.6, and is now
-replaced by an ordinary strdup, which should be save enough.
-
-2013-12-29 22:09:10 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Put some OSX code into gtk version
-
-Under control of #ifdef OSX code is added to integrate the GTK front-end
-into OS X. This involves moving the menu bar to outside the window, and
-catching the signal that OS X sends to running applications when opening
-another instance was requested. Som files are renamed to conform to the
-file tree of the OS X App package.
-
-2013-12-27 21:47:55 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Cure weirdness when dragging outside of board
-
-Dragging outside the board (when people maximized the window) did not
-properly restore background, (leaving a trail of dragged piece). Filling
-the canvas with white when it is creatd cured this. The problem most likely
-was that unitialized cairo surfaces had transparancy, and writing back
-transparancy doesn't helpmuch to erase things.
-
-2013-12-09 14:52:32 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix sorting of lines in Engine Output
-
-Lines tat were fail-lows or fail-ighs should get the scores on the basis
-of wich they are sorted corrected to that of te line (for the same move)
-superceding them, so that other moves can rise to above them, when they
-score higher than the corrected score.
-
-2013-12-05 20:08:35 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Make filler variant button inactive
-
-
-2013-12-05 17:50:21 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix packing of FRC castlings
-
-The routine for packing moves to the internal database format was not
-working for FRC castlings, totally messing up position search for FRC
-and CRC.
-
-2013-12-05 16:23:53 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix Xaw file-browser New Directory
-
-Prevent people from using the error messages that will be printed here
-as directory name by pressing New Directory a second time after first
-pressing it with an empty or existing name.
-
-2013-12-05 16:14:02 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Widen Xaw text entries for larger square sizes
-
-Presumably people will use larger fonts if they use larger board squares.
-(And in any case te default fonts would be larger.) This means they need
-more space to see what is the current value of text options.
-
-2013-12-05 15:47:26 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Remove width limiting of shuffle checkbox
-
-
-2013-11-28 13:30:40 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow castling and e.p. to be edited in opening book
-
-
-2013-09-16 22:32:32 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Repair FRC A-side castling legality testing
-
-XBoard allowed A-side castling when a rook started on the a-file,
-and the b-file was blocked.
-
-2013-09-16 22:27:50 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Repair XBoard from node-count patch
-
-u64 was #defined in backend.h, which unfortunately was almost alwats
-(Not sure why WinBoard did not suffer from this!) This, and related
-definitions have now been moved to common.h (which is always #included
-first).
-
-2013-09-15 20:13:06 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-WinBoard multi-monitor support
-
-A patch provided by Tim Kosse
-
-2013-09-15 19:28:54 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix node count range
-
-The node count was still clipped to 32 bit because one of the structs
-it passes through (FrontEndProgramStats) had the nodes field declared
-as an unsigned long.
-
-2013-09-15 19:12:42 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix adjudication of Giveaway stalemates
-
-The case where the side-to-move would win by stalemate was not treated
-in the Adjudicate switch.
-
-2013-08-30 17:33:59 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix buffer overflow in parser
-
-When a line ended with a comment, the parser had to read a line ahead
-to check if there was a PGNresult following, without being able to
-throw away the previous line yet. This could lead to buffer overflow
-in a long game where every line ended in a comment. The buffer now is
-cleansed of already parsed data when starting on a new syntactical unit.
-
-2013-08-27 22:55:52 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix -zippyVariants option
-
-Due to the change of cps->variants from (char []) to (char *), copying
-zippyVariants to it on behalf of v1 engines would no longer work. This
-is fixed by using ASSIGN() in stead of safeStrCpy().
-
-2013-08-26 18:25:55 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix initial board sizing WB
-
-The initial board size was based on the assumption the board would be 8x8.
-This could push auxiliary windows off screen if the board was smaller,
-after which EnsureOnScreen would undock them and park them in the upper-
-right corner before the board assumed its true size. InitPos() is now called
-before the initial sizing to et the board format correctly, InitDrawingSizes()
-had to be made resitant to calling before a board size was picked for this
-(because InitPos() might call that too).
-  ActivateTheme() now uses the new board size, not the previous one (as was
-indicated by size -2), so that -boardSize specifications inside a theme
-will take effect.
-  Board size petite should not be forbidden for Shogi; all pieces exist there.
-
-2013-08-26 14:40:57 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix grabbing of selected piece
-
-A second static click on a selected piece should deselect it, but an attempt
-to drag an already selected piece should not 'bounce off'. It was already
-possible to move a selected piece to another square, but the dragging was
-not animated. This is now fixed, by only skipping the code to start dragging
-when the second click is part of the only-move double-click for only capture.
-(Before it was skipped on any second click.)
-
-2013-08-26 13:35:47 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow entry of negative numbers in spin control (WB)
-
-Windows numeric controls do not accept negative numbers, so in case the
-range of a spin option can go negative, the style ES_NUMBER should not be
-set on the control.
-
-2013-08-26 11:37:27 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow drops / promotions/ deferrals to be edited into book
-
-For no real reason only NormalMove would be accepted when parsing the list
-of book moves.
-
-2013-08-26 11:28:54 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix GUI book after setup position
-
-The routine to send move to the engine would automatically append a 'go'
-is a preious setboard had put the engine in force mode, but this should
-not happen on a book hit, where the engine should even be put in force mode
-if it was not yet there.
-
-2013-07-05 18:32:46 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix book creation
-
-Due to duplicate use of the same file pointer variable the game file would be
-closed before any games were read from it.
-
-2013-05-20 11:14:01 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Make PGN parser immune to unprotected time stamps
-
-The parser choked on time stamps of the form dd:dd or dd:dd:dd if one
-of the fields happened to be 00, because it wouldmistake that for a
-non-compliant king-side castling. By excluding this interpretation when
-the 00 is immediately preceded or followed by ':' this is now prevented.
-
-2013-05-05 08:03:00 -0700 Arun Persaud <arun@nubati.net>:
-updated po files for new release (make distcheck)
-
-
-2013-05-05 07:57:22 -0700 Arun Persaud <arun@nubati.net>:
-new version number for release 4.7.1
-
-
-2013-05-05 07:53:54 -0700 Arun Persaud <arun@nubati.net>:
-updated Changelog, NEWS, etc.
-
-
-2013-05-02 22:47:44 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Update zippy.README
-
-It is explained how to generate multi-line commands for -zipyGameEnd.
-
-2013-04-01 20:43:36 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix Xaw file browser
-
-The 'next page' entry of the Xaw file browser contained a \177 character
-to keep at sorted at the bottom. This caused trouble for gettext.
-Now the sorting range is adapted so the 'next page' is never part of it.
-  More seriously, the listbox fill code had a wrong cast when testing for
-an empty listbox on the first element, so that it only tested the low byte
-of the pointer, in stead of the entire pointer for NULLness. As a result
-the contents of the listboxes could suddenly disappear when even when it
-was non-empty, because the first filename was allocated at an unlucky address.
-
-2013-03-22 19:23:25 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Make Chat Box window obey -topLevel option
-
-It was always popping up as a dialog of the main board, covering it.
-One could argue it should always be to-level.
-
-2013-03-19 13:20:24 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix scrolling of Chat Box
-
-Seems the problem is that scroll_to_iter does not work until after some time,
-needed to calculate line heights. Use scroll_to_mark instead, after clumsily
-adding a text_mark.
-
-2013-03-17 10:33:31 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix GTK SetInsertPos
-
-SetInsertPos() was not yet ported to GTK, with as a result that the cursor
-was positioned at the start of a line recalled in the ICS Input Box,
-rather than at the end. The code also called SetInsertPos to force scrolling
-to that point in the text (which in Xaw is an automatic side effect). So for
-multi-line text edits this function calls ScrollToCursor(). For some reason
-this does not work when replacing texts in the Chat Box memo, when switching
-chat, although it does work in the same memo when a line is added to the
-existing text.
-
-2013-03-07 21:38:43 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Print score of final position in Analyze Game
-
-The score/depth of the final position of the analyed game is added
-(as an explicit comment) behind the PV of the forelast position.
-To make this work, a new 'addBraces' mode (3) had to be added to
-AppendComment, which suppresses stripping of the score/depth from
-the comment.
-
-2013-03-12 18:50:08 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix horrible bug in reading scores from PGN
-
-Reading scores like -0.94 flipped the sign, because the integer part
--0 would read as 0, and thus was no reason for sign flipping.
-
-2013-03-10 12:43:59 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix disappearence of pieces that were moved illegally
-
-Dragging damages the from-square, but it is not marked as such, because
-selective board redraws to update highlights and such would draw the piece
-that is really still there, making it flash on the from-square before
-the position after the move is drawn. This, however, backfires when the
-move was illegal, as then there is no draw of a new position, and the
-from-square stays empty. For now this is solved by making DisplayMoveError()
-order a total redraw. (As this is rare, only done in case of an error,
-and might even throw up a pop-up, the performance cost of this is acceptable.)
-
-2013-03-20 17:50:33 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix quoting of book name in tourney file
-
-The argument of -polyglotBook was written to the tourney file unquoted,
-which effectively made it disappear if it was an empty or blank string.
-
-2013-03-07 18:11:31 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Provide compatibility with Alien Edition setup command
-
-The setup command of the Alien Edition has a board-size specifier
-(possibly as prefix on a parent-variant name) between pieceToCharTable
-and FEN. The regular version would choke on that, precluding engines
-designed for the Alien protocol extension to have their setup processed
-when running under regular XBoard. This patch makes it skip the extra info.
-
-2013-03-07 17:52:02 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix saving of analyzed game
-
-Anotated games after batch-mode Analyze Game were not auto-saved,
-because the GameEnds() call supposed to do that was called with a NULL
-argument for resultDetails. Now it is called with the resultDetails as
-pre-existing in the gameInfo, or an empty string if none exist. This bug
-was masked by the fact that in standard game ends (mate, etc.) the
-analyzing engine would declare game end and supply a message.
- Also makes a distinction between Analyze Game and regular Analyze mode
-when resuming analysis after loading a game; only the former now would
-trigger a batch analysis.
-
-2013-03-07 17:48:45 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix spurious popup after batch-mode Analyze Game
-
-A batch analysis of games was not properly terminated, because the game
-mode was tested after it had already been changed. No oldGameMode is
-tested in stead.
-
-2013-03-02 22:21:29 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Let XBoard -autoBox option also affect move type-in
-
-
-2013-03-02 22:17:31 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix GTK box popup
-
-Key values > 255 are used for PgUp, PgDown etc., so to pop up only on
-printables needs a two-sided test.
-
-2013-03-01 12:50:06 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix fatal error on unsupported board size
-
-When a board size unsupported by the engine was requested through the
-New Variant dialog, this was discovered while the dialog was still up,
-causing the error message to pop up as a child of the New Variant dialog,
-so that it would immediately be taken down as the latter closed.
-As a result it could not be confirmed, so that XBoard would not exit, and
-was left in a pathologic state (ignoring window-close). This is fixed
-by performing Reset (which detects the error) after PopDown of New Variant.
-
-2013-03-01 12:39:40 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Accept setup command for non-standard board size
-
-The code to test if board-size is standard for the current variant
-has been moved to a subroutine, to allow its calling when receiving
-a "setup" command from the engine.
-
-2013-03-01 11:57:01 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix buffer overflow in feature parsing
-
-String features (variants, egt, myname and option) relied on a buf[MSG_SIZ]
-for processing their value. The Nebiyu engine had combobox options that
-required more than that. All string features are now stored in allocated
-memory rather than in static arrays, and StringFeature allocates a buffer
-of sufficient size for them. Only limitation now is the low-level input
-buffer in the InputSource threads, whih is a static buffer of 4096
-(=INPUT_SOURCE_BUF_SIZE) characters.
-
-2013-02-27 23:44:55 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix vertical sizing of GTK board
-
-The clipping of the boad at the bottom was due to resizing of the clock
-height when we first write it with a big font. This patch delays calculation
-of the final size until after the clock height changes.
-
-2013-02-26 21:13:32 -0800 Arun Persaud <arun@nubati.net>:
-Updated German translation
-
-
-2013-02-26 20:27:24 -0800 Arun Persaud <arun@nubati.net>:
-Updated Ukrainian translations
-
-
-2013-02-26 17:59:43 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix of argument error
-
-Oops. Pevious patch for skipping unknown multi-line arguments
-was still buggy.
-
-2013-02-26 17:44:10 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Let popping up of WinBoard chatbox for channel open it
-
-WinBoard now issues a +ch command for a channel when you pop up a chatbox
-for that channel. A work-around is added for the fact that the public
-FICS seems to ignore the first such command.
-
-2013-02-26 17:27:59 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Make skipping of unknown option smarter
-
-To make XBoard better resistant to the presence of disbanded or future
-options in its settings file, encountering those is no longer a fatal error.
-But the error recovery only consisted of skipping the rest of the line.
-This fails badly on string options with a multi-line value, which is
-enclosed by {braces}. We now detect that case, to skip to } instead.
-
-2013-02-26 17:15:39 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add -backupSettingsFile option
-
-For better configurability of WinBoard, an option is added to optionally
-read a settings file, namely if no other settings file (other than the
-master file) was read so far. This can be used to import settings from
-a previous version, without destroying its settings file.
-
-2013-02-26 16:55:20 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Repair WinBoard compile error
-
-__GITVERSION was not defined in WinBoard, as it was only defined with a
-compiler flag by ./configure, which WinBoard does not use.
-
-2013-02-26 16:47:58 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Work-around for Xt selection bug
-
-In some Xt implementations calling extend-end with 0 params causes a crash,
-although the mmanual specifies this should default to a call with 'PRIMARY'.
-The default selection is now explicitly mentioned in all extend-end calls.
-
-2013-02-24 09:31:57 -0800 Christoph Moench-Tegeder <cmt@burggraben.net>:
-fix bug #38401: xboard.texi doesn't build with texinfo-5.0 (tiny change)
-
-xboard-4.7.0's documentation is not buildable with texinfo-5.0, it fails with a lot of error messages from makeinfo like
-./xboard.texi:1026: @itemx must follow @item
-makeinfo seems right, @itemx is not used as described in the texinfo manual.
-Attached patch puts each item of the "Options" menu in it's own @subsection and formats the description of each item as a @table as neccessary. This way, xboard builds again and the manual doesn't look too bad.
-
-2013-02-24 09:09:54 -0800 Arun Persaud <arun@nubati.net>:
-updated po/pot files
-
-
-2013-02-24 09:04:48 -0800 Arun Persaud <arun@nubati.net>:
-new version number for developer release
-
-
-2013-02-20 21:28:36 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Try to make life more bearable in Xaw menus
-
-The alignment still sucks, but not as much as before.
-
-2013-02-20 19:26:17 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix -topLevel option
-
-This option was copletely ignored, after the refactorig.
-
-2013-02-20 18:16:00 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix testing for valid window placement Xaw
-
-
-2013-02-20 12:15:08 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Suppress printing of status line in dual-board mode
-
-
-2013-02-20 11:56:12 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix sizing of slave board GTK
-
-For lack of a known method to specify a default size for Graph widgets,
-we have to use the same system as for the main board: create with 0x0 size,
-and measure the size of the outer window to determine margins.
-After every popup we then resize to the required board size plus these
-margins. (Awful...)
-
-2013-02-20 10:08:09 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Better handling of undefined window parameters
-
-Repositioning and resizing a newly created dialog was based on the width
-parameter of the stored sizing info being valid. Now it is separately
-tested if the position is valid, so that sizing and moving can be done
-independently. This allows us to store position info, but not size info
-for the slave board, so that it automatically will use the size of the
-main board when first opened.
-
-2013-02-19 19:14:49 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Limit debug print to debug mode
-
-
-2013-02-19 19:14:00 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix repositioning of GTK windows
-
-After 'hide' and 'show' GTK would not position the window in the same place,
-but center it on the parent. Now we reposition the window after 'show' based
-on the WindowPlacement data (if available).
-
-2013-02-19 18:52:41 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Remember window params of slave board
-
-The slave board now has been assigned a WindowPlacement, which is also
-saved in the settings file, through new options -slaveX/Y/W/H.
-
-2013-02-19 17:48:39 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix repairing of arrow damage
-
-The '2' bit in damage[][] to indicate the arrow was erroneously cleared,
-rather than kept.
-
-2013-02-18 19:55:20 -0800 Arun Persaud <arun@nubati.net>:
-fix OK-response in gtk dialogs, see c7f8df124
-
-the fix in c7f8df124 needs to be applied to both of those if cases
-
-2013-02-18 17:11:32 -0800 Arun Persaud <arun@nubati.net>:
-removed two more translations from debug output
-
-
-2013-02-18 17:09:30 -0800 Arun Persaud <arun@nubati.net>:
-fixed segfault of g_markup_printf_escaped which needs utf-8 strings
-
-defined text-domain as utf-8 solved this
-
-2013-02-18 13:38:51 -0800 Arun Persaud <arun@nubati.net>:
-fixed gtk-warning
-
-
-2013-02-18 10:06:36 -0800 Arun Persaud <arun@nubati.net>:
-removed some translation calls for messages in the debug log
-
-
-2013-02-18 09:46:53 -0800 Arun Persaud <arun@nubati.net>:
-add keyboard shortcuts back into Xaw version
-
-
-2013-02-17 14:13:30 -0800 Arun Persaud <arun@nubati.net>:
-in debug mode also print the git-version if available during build
-
-
-2013-02-18 21:19:05 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Print game-list timing messages only in debug mode
-
-
-2013-02-18 21:01:35 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix title of top-level windows
-
-
-2013-02-18 18:51:44 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Cure GTK warning in top-level windows
-
-There is no OK button in top-level windows, so the 'response' signal is
-not defined, and should not be connected.
-
-2013-02-18 18:33:34 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix graying of Revert menu item
-
-The new code was checkmarking it in stead of enabling it!
-
-2013-02-18 11:38:29 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add -onlyOwnGames option
-
-This suppresses auto-saving of ICS observed games.
-
-2013-02-18 11:17:16 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow display of 50-move counter in zippy mode
-
-No chance it could be considered cheating there.
-
-2013-02-18 10:48:53 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add new vertical pixel fudge
-
-With the new GTK window type the board is 13 pixels too small.
-
-2013-02-18 10:29:17 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Don't add PV moves on board clicking in AnalyzeMode
-
-Playing PV moves by right-clicking the PV was only intended for clicks
-in the engine Output window, selecting from multi-PV analysis output,
-where by default it plays only the first move. PV walkig by right-clicking
-the board, however, would start the walk at the end even in AnalyzeMode,
-and thus add the entire PV. Which is probably not useful. So adding moves
-in that case has now completely been suppressed, so it can be used for
-harmless viewing of the latest PV.
- The behavior has also been made subject to a persistent Boolean option
--appendPV, configured to true, with a checkbox in General Options.
- A checkbox has also been added there for controlling the -variations option,
-which is now also configured to true.
-
-2013-02-18 10:25:40 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Remove checkbox for 'Move Sound'
-
-This function is better controlled from the Sounds dialog.
-
-2013-02-18 09:59:48 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Make switching between board windows absolute
-
-Selecting the window in which to draw the board when the slave board for
--dualBoard was up was done by a toggle. For unknown reason this could cause
-a situation where the drawing took place in the other window than the
-intended one. The code is made more robust by explicitly specifying which
-window to draw in, based on the partnerUp flag.
-
-2013-02-18 09:50:48 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Warn about experimental nature of dual board
-
-The message field, which for now is unused, now contains a warning message.
-
-2013-02-17 10:49:21 -0800 Arun Persaud <arun@nubati.net>:
-add close buttons to gtk windows
-
-use windows instead of dialogs for toplevel elements
-
-2013-02-16 19:02:52 -0800 Arun Persaud <arun@nubati.net>:
-keyboard accelerators for both front ends.
-
-moved them out of the string definition, so that gtk can add them automatically.
-Also wrote a function that loads them for X11.
-
-TODO: add them again when creating X11 menu names
-
-2013-02-15 11:03:02 -0800 Arun Persaud <arun@nubati.net>:
-added rotated shogi pieces for -flipback option and moved them to the themes directory
-
-
-2013-02-14 17:27:27 -0800 Arun Persaud <arun@nubati.net>:
-add test for pkg-config
-
-exit configure in case we can't find it.
-
-2013-02-14 13:02:08 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Only perform e.p. capture if there are rights
-
-The heuristic for e.p. capture was such that any non-forward move with
-a Pawn to an empty square would delete the piece behind its new location
-(Xiangqi exempted). This is now limited to cases where EP_STATUS indicates
-that the deleted piece was a Pawn that performed a double-push on the
-previous move. (Or if there is unknown EP_STATUS.)
- This makes XBoard more generally suitable for use with variants that have
-non-conventional Pawn moves (with legality testing off). To guarantee this
-will not have any unexpected effects in normal Chess, this patch will only
-be active if legality testing is off.
-
-2013-02-11 16:25:09 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Unreserve tourney game on exit during engine load
-
-While waiting for the feature timeout we are not yet in TwoMachines mode,
-so quitting XBoard at that stage would not unreserve the upcoming game.
-A global flag 'startingEngine' similar to 'waitingForGame' now signals
-this condition.
-
-2013-02-10 13:40:10 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Better fix of feature timeout
-
-The previous fix of the 2nd engine's done=1 aborting the 1st engine's
-feature timeout by starting the game caused problems with v1 engines,
-or other engines that would never send done=1. It is now fixed by
-explicitly testing for a pending feature timeout after resurrecting
-the 1st engine, rather than having TwoMachinesEventIfReady wait for
-initDone to be set by reception of done=1.
- Also refrain from freezing the UI between match games, as in TwoMachines
-mode the UI is mostly disabled anyway.
-
-2013-02-08 16:24:23 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Connect Ctrl key in WinBoard
-
-The Control key is now checked during move entry, for excluding moves
-during analysis, or for copying pieces when editing a positions. But the
-WB front-end did not read it out yet!
-
-2013-02-08 16:23:58 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix Makefile for install of Xiangqi pieces
-
-
-2013-02-08 15:35:44 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add Xiangqi piece images to project
-
-Let the images install in themes/xiangqi.
-
-2013-02-08 15:14:43 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Revive -flipBlack option
-
-The -flipBlack option in the cairo version is now implemented the same
-way as it was in XBoard, swapping white and black pieces in filpView mode.
-This requires a set black piece images that are the upside-down versions
-of the white ones.
-
-2013-02-07 13:55:59 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Remove empty-square SVG images from project
-
-
-2013-02-06 19:00:35 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add desktop stuff for .xop MIME type.
-
-Icons and desktop file were missing, as was the automake code to package them.
-
-2013-02-06 16:48:33 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Update NEWS file
-
-
-2013-02-06 14:48:27 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add boolean -autoBox option
-
-This option controls the automatic popup of the ICS Input Box on typing
-a printable character, which was annoing to some. The option can be
-set from the ICS Options dialog.
-
-2013-02-06 10:56:20 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Draw both coords in a1
-
-The lower-left board square needed two inscriptions, but DrawOneSquare()
-only allowed one, so that the file ID would not be written. Now two strings
-can be passed, and when align > 1 to indicate the alignment of the top
-string, it is still checked if a bottom string is present as well, which
-then is drawn with alignment 1 (= bottom right).
- The rank coord or piece count can now also be double digit.
-
-2013-02-05 23:03:42 -0800 Arun Persaud <arun@nubati.net>:
-updated po files for new release (make distcheck)
-
-2013-02-05 23:02:07 -0800 Arun Persaud <arun@nubati.net>:
-updated Changelog, NEWS, etc.
-
-2013-02-05 22:52:42 -0800 Arun Persaud <arun@nubati.net>:
-new version number for release of 4.7.0
-
-2013-02-05 11:56:10 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Let initial setting of Twice checkbox reflect current state
-
-The Twice checkbox in the Tournament dialog of WinBoard was by default
-starting unticked. It is more convenient to have it preserve the current
-state, however, based on the -lpi or -lgi value. Like the auto-incremet
-checkbox already did.
-
-2013-02-04 22:07:05 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Put GTK warning in about-box
-
-
-2013-02-04 21:59:05 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix warnings of build server
-
-
-2013-02-02 15:58:04 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix GTK error auto-raising board
-
-The variable mainwindow is not set in the gtk2 version. Unfortunately
-it is still used to determine default board size...
-
-2013-02-01 19:42:12 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Update Dutch WB translation
-
-
-2013-02-01 19:37:06 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add some new strings to WB translation template
-
-
-2013-02-01 19:34:32 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Assign shortcut char to WB menu item
-
-The new Save games as Book item did not have a shortcut yet.
-
-2013-02-01 19:31:18 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Let WinBoard start in its installation folder
-
-The current directory in WinBoard was not automatically the same as the
-installDir returned by SearchPath. Especially not if used without shortcut
-by file association.
-
-2013-02-01 19:29:26 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix warning in WinBoard
-
-
-2013-01-30 14:25:57 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix expose of to-square with grid off
-
-The code relied on drawHighlight to request an expose evet for the entire
-square, but when lineGap = 0, drawHighlight is a no-op.
-
-2013-01-29 08:39:30 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix library order
-
-On OS X dialog windows could not get focus if -lXaw appeared after
--lX11 -lXt in the linker command. This was cured by moving
-@FRONTEND_FLAGS@ (which expands to -lXaw) first in the LDADD parameter
-of the automake file.
-
-2013-01-28 17:38:26 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Preserve PGN tags when loading engine
-
-Switching to EditGame mode would normally erase the tags, but when analyzing
-a loaded game this would be undesirable. When the engine is playing, keeping
-the tags is dubious, but it is not obvious what to put in a new name tag,
-so we leave that for now.
-
-2013-01-28 17:23:47 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Preserve mode on engine loading (sometimes)
-
-That the mode always switched to EditGame after engine loading was
-particularly annoying at the start of a game (where leaving BeginningOfGame
-mode would disablethe Time Control dialog, and the engine would not
-automatically reply if you start playing) and AnalyzeMode. These two
-modes are now preserved, BeginningOfGame by refraining from calling
-EditGameEvent() and sending 'force' to the new engine, and AnalyzeMode
-be calling AnalyzeModeEvent() after the engine is loaded and repositioned.
-
-2013-01-28 14:14:19 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Catch unknown engine in tourney games
-
-When an XBoard instance is playing on a tourney it can happen that it is
-using a settings file with an engine list not yet containing a certain
-participant, because that participant was just installed in the instance
-that created the tourney file, but it did not save those modifications yet.
-This error is now caught, and leads to an error popup and stopping of the
-tourney play. This error was made non-fatal to allow the user to decide
-if he wants to quit with or without saving the settings (which, after all,
-does not seem up-to-date).
-
-2013-01-26 18:08:37 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Adjudicate pawn-drop mate as loss in Shogi
-
-Mating with a Pawn drop is illegal in Shogi, but rather than burdoning
-the legality-testing by this complex rule, we simply invert the result
-for such a mate. After all, Shogi customs are such that everything illegal
-leads to an immediate loss.
-
-2013-01-25 10:05:44 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Adjudicate perpetual checks as loss also in Shogi
-
-The Xiangqi code for recognizing perpetual checks is now also activated for
-Shogi, but in this case we bail out before checking for perpetual chases.
-The mini-Shogi case is then recognized as a win for gote.
-
-2013-01-25 09:55:56 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Stalemate is a win in Shogi
-
-In regular Shogi this never occurs, but in the mini variants it happens
-often enough.
-
-2013-01-22 20:49:34 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix engine timeout problem in match mode
-
-Reload of a reuse=0 engine would cause a done=1 event which would be
-abort the feature timeout of the other engine in the first game.
-
-2013-01-22 20:32:33 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Enforce -popupMoveErrors
-
-One move error was using DisplayError(), in stead of DisplayMoveError(),
-and thus did not obey the -popupMoveErrors option.
-
-2013-01-21 15:30:29 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Update texi file
-
-
-2013-01-21 10:26:20 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix some warnings
-
-
-2013-01-20 19:09:05 -0800 Arun Persaud <arun@nubati.net>:
-Updated German translation
-
-
-2013-01-19 17:54:59 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Do delayed board draw also with -stickyWindows false
-
-Only CoDrag needs to be suppressed on a configure event with
--stickyWindows false, not the board redraw.
-
-2013-01-18 11:11:48 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Let tellothers command add comment to PGN in local mode
-
-
-2012-12-30 15:19:57 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow use of ~ in pieceToChar for shadow pieces in any variant
-
-The use of shadow-pieces for promoted Pawns was limited to Crazyhouse and
-Bughouse. But this is not necessary, and in fact undesirable, as it made
-it impossible to implement Crazyhouse960, which combines shadow promotions
-with Fischer castling (only available in variant fischerandom)s, and thus
-has to be played as 8x8+5_fischerandom, using the Crazyhouse -pieceToChaTable.
-
-2012-12-30 15:06:33 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Resend engine-defined options after reuse=0 reload
-
-When the engine process is re-spawned for a new game under -xreuse setting,
-any alteration of engine settings brought about through the Engine Settings
-dialogs would be lost, and revert to the engine's default. This is now fixed
-by re-sending all options (known from the previous load of the same engine)
-with the current settings immediately after "protover 2", and ignoring the
-engine's option features. Rather than clearing the option list, and
-redefining it from the option features.
-
-2012-12-30 14:58:16 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement aborting of games on engine request.
-
-A new game-end command is added. For bakward compatibility it is disguised
-as an old one, namely "1/2-1/2 {Engine Abort Request}". These resultDetails
-are recognized as special, and rather than ending the game in a draw (which
-GUIs not implementing this), the game will be completely 'expunged' from
-the match or tourney it is part of, leaving no trace in the saveGameFile.
-
-2012-12-30 14:54:43 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Store some more tourney params in tourney file
-
-The hash and threads settings, as well as ponder and book options are now
-also saved in the tourney file, so that tournaments can be played in
-parallel where these parameters differ, and no mess up can occur on
-restarting a touney after doing something else.
-
-2012-12-23 11:26:31 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Do not automatically save aborted games in tourney PGN
-
-When the game result is 'unfinished', we prompt for a filename rather
-then using the specified saveGameFile if a tourney is in progress.
-
-2013-01-19 08:35:52 -0800 Arun Persaud <arun@nubati.net>:
-fix configure bug that showed up on OS X (couldn't find X11/Dialog.h)
-
-X_CFLAGS (set by AC_PATH_XTRA) was not used in Makefile.am. It was used in tests for X11/Dialog.h, etc. so configure worked, but make didn't.
-
-2013-01-18 22:26:13 -0800 Arun Persaud <arun@nubati.net>:
-Updated Ukrainian translations
-
-
-2013-01-09 07:57:43 -0800 Arun Persaud <arun@nubati.net>:
-removed trailing whitespace
-
-
-2013-01-09 07:49:20 -0800 Arun Persaud <arun@nubati.net>:
-Updated copyright notice to 2013
-
-
-2012-12-22 22:46:21 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Do not move to forwadMostMove when unpausing AnalyzeMode
-
-
-2012-12-22 22:44:50 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Use Ctrl key in AnalyzeMode to exclude entered move
-
-
-2012-12-22 20:40:26 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement insufficient mating material for Knightmate
-
-KBK is draw with Royal Knight. With exo-pieces also KNK and KFK.
-
-2012-12-22 20:25:51 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix rep-draw detection in drop games
-
-In games like Crazyhouse every move is reversible, as captured pieces
-can eventually change sides again, and be dropped back on the board.
-So we have to search back a full 100 ply for repetitions, passing captures
-and Pawn moves.
-
-2012-12-11 22:33:07 -0800 Arun Persaud <arun@nubati.net>:
-updated po/pot files
-
-
-2012-12-11 22:18:05 -0800 Arun Persaud <arun@nubati.net>:
-new version number for developer release
-
-
-2012-12-10 14:48:05 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Prefer pause mode on pondering engine over 'easy'
-
-If the thinking engine is stopped after its move because it does not
-support pause, is is still better to use pause on the pondering engine
-than to switch of its pondering with 'easy', as the latter might not
-be instantaneous. Also switch off pondering in the thinking engine before
-it gives the move, just in case it does not respond immediately to
-easy / hard.
-
-2012-12-10 13:40:47 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Update WinBoard translation template
-
-
-2012-12-10 13:35:41 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix min-Shogi promotion zone
-
-In integer arithmetic N*2/3 is not the same as N - N/3, with as a result
-that the white promotion zone was 2 ranks deep on 5x5 boards. This only
-happened in LegalityTest, but because this would classify all moves to
-4th rank an non-promotions, they would be printed with a faulty
-deferral (=) sign as promochar in SAN.
-
-2012-12-10 13:32:49 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Do not clear PGN tags on Analyze File
-
-
-2012-12-10 13:28:37 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix -fSAN in AnalyzeFile mode
-
-The exception that a PV relates to currentMove rather than forwardMostMove
-applies not oly in AnalyzeMode, but also in AnalyzeFile. Furthermore,
-PvToSan did not properly restore the pushed game tail in this case.
-
-2012-12-08 16:02:09 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Improve scaling of border bitmap (WB)
-
-The StretchBlt mode is set from dither to delete.
-
-2012-12-05 16:34:58 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement use of pause / resume protocol commands
-
-Engines that implement feature pause=1 will be paused during their move
-on a pause event; pondering engines will be controlled either through
-'pause' or (if they don't support that) 'easy', which both should work
-instantaneously. If the thinking engine does not support 'pause', the pausing
-will be deferred to when it produces its move, and is implemented by not
-relaying the move, and switch off pondering for both.
-
-2012-12-03 12:58:36 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix Loop-Chess promotions
-
-Loop Chess is not a supported variant, but hould be playable as Crazyhouse
-with an altered pieceToCharTable, not defining the shadow promotion pieces.
-But with legality testing on promotion to shadow piece would take place
-even if the shadow piece was not defined.
-
-2012-12-02 22:44:55 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix move highlighting with animation off
-
-In WB the moving of SetHighlights to after the animation had broken the
-highlighting of engine moves, because it was also moved after DrawPosition.
-While it is DrawPosition that actually draws the highlights. Now it has been
-moved to just before DrawPosition.
-
-2012-12-02 11:09:14 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Start browsing in currently-selected folder (WB)
-
-The folder-browse dialog always started at My Computer, while file browsing
-started in the globally last-used folder (which might not be related at all
-to the file entry we are now browsing for).
-
-2012-11-29 23:38:18 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement book-creation functions
-
-A new menu item triggers conversion of the currently loaded PGN file
-to a Polyglot book, saved with the GUI-book filename. A (volatile) option
--mcBookMode alters the probing algorithm to build a book from scratch by
-playing games (and using a form of learning).
-
-2012-11-29 22:23:44 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Use colors in Board-Options dialog also for font pieces (WB)
-
-The piece color settings now control the pieceColor or fontPieceColor
-settings, depending on the setting of -usePieceFont.
-
-2012-11-29 22:14:05 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement auto-creation of ICS logon file
-
-Under control of the new option -autoCreateLogon (which can be set from
-the ICS Options dialog) the first two lines in response to the ICS "login:"
-pompt will be saved on a newly created logon file (if logon from such
-an existing file failed).
-
-2012-11-29 21:56:02 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add Themes dialog (WB)
-
-This dialog, done by the generic popup, contains controls for many settings
-that so far could only be controlled by options. It also introduces the
-concept of 'themes', sets of options stored in the multi-line option
--themeNames.
-  Add some dummy routines to suppress compile errors in functions that
-cannot be called yet in XBoard.
-
-2012-11-29 21:32:03 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow external piece bitmaps and board border (WB)
-
-The -pieceImageDirectory is now also used for WinBoard, to indicate
-a directory of .bmp files, used to replace the built-ins. The outline
-and solid bitmaps can be full-color. This allows winBoard to use the
-WinBoard-zeta graphics. A new option -border can indicate a bitmap file
-used to draw a half-square-wide border around the board.
-  A white background has to be drawn underneath the black pieces, to avoid
-color-interference with the board, just like happens for the white pieces.
-These backgrounds now always use bright white, rather than -withePieceColor.
-
-We still have to work on the scaling of the zeta (600x600) bitmaps to
-the actual board size, as for some bitmaps the stratchblt is ugly.
-
-2012-11-29 21:05:15 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add 'Continue Later' button in Tournament dialog (WB)
-
-This button makes it possible to accept the values specified in the
-dialog without immediately starting the tournament (as OK does),
-so you can re-open the dialog later, and OK it then.
-
-2012-11-29 20:25:35 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Load opponent logo based on handle in ICS play (WB)
-
-The logos for handles on FICS are sought in folder logos\freeches.org\*.bmp,
-etc. If no logo for the handle is found there, the logo of the ICS is
-displayed as usual.
-
-2012-11-19 20:35:05 -0800 Daniel Dugovic <dandydand@gmail.com>:
-Fix configure script for --enable-zippy  (tiny change)
-
-reported and patch by Daniel.
-
-edited by Arun Persaud:
-- also fixed #ifndef ZIPPY -> #if !ZIPPY
-- didn't change #if -> #ifdef
-
-2012-11-10 00:12:34 -0800 Arun Persaud <arun@nubati.net>:
-don't define X_LIBS when using gtk-frontend
-
-
-2012-11-07 22:16:09 -0800 Arun Persaud <arun@nubati.net>:
-updated po/pot files; added new frontend files
-
-
-2012-11-07 22:14:20 -0800 Arun Persaud <arun@nubati.net>:
-fix configure script for --with-Xaw and --with-gtk
-
-made Xaw the default and included xaw or gtk sources as extras
-in case the other frontend is selected for make distcheck
-
-2012-11-07 21:13:38 -0800 Arun Persaud <arun@nubati.net>:
-new version number for developer release
-
-
-2012-10-31 09:55:02 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Draw frames around memos and listboxes
-
-
-2012-10-30 17:39:59 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Adapt lineGap during sizing
-
-
-2012-10-30 15:04:32 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix clock highlighting
-
-
-2012-10-30 10:59:45 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix Chat Box
-
-The genric TypeInProc is re-instated, and replaces ICSKeyEvent as primary
-handler for special keys in one-liner text edits.
-
-2012-10-29 19:46:27 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Pay attention to NO_CANCEL dialog flag
-
-
-2012-10-29 14:18:33 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix clock clicking with GtkEventBox
-
-Like in WinBoard the button-3 case is now handled in the primary
-event handler (and communicated to it in a kludgy way). It would be
-better if this was absorbed in ClockClick().
-
-2012-10-28 22:25:22 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix logo placement
-
-Graphs were not recognized as possible SAME_ROW elements. A Graph requesting
-FIXED_H (which only the logos did) is now packed into a (borderless) aspect
-frame.
-
-2012-10-25 23:04:42 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add window positioning
-
-Sticky windows now sort of works, but needs unexplained fudge factors.
-Reopening a persistent dialog centers it on the board, and disobeys
-the positioning command. The WindowPlacement of the BoardWindow was
-again added (it was commented out during development).
-
-2012-10-22 22:41:14 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Make board sizing work through subtracting fixed height
-
-There is now no attempt to give a size to the board drawing area, so it
-can later be sized as small as we want. The frame width is determined
-by subtracting the nominal board size from the actual window size,
-(because the clocks will have that width, and the board will startas 1x1),
-while the vertical margin is determined as the difference between the
-bactual window height, the drawing-area height minus a fudge of 25 pixels
-to compesate for the erroneously allocated blank space below the board.
-
-2012-10-22 21:09:51 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix warnings
-
-The highTextStart/End are now declared in engineoutput.h, shared between
-nengineoutput.c and xengineoutput.c. Unused variables were removed.
-Also fix warnings in xboard.c and xoptions.c.
-
-2012-10-22 17:40:08 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Delete emptied front-end files, and move rest to gtk directory
-
-Remove #ifdeffed-out Xt code that has GTK implementation. The xgamelist
-and xhistory have been completely cleared off content, and were removed.
-
-2012-10-27 00:12:42 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add copy-paste
-
-The code from gtk-xt could be used with almost no modification.
-
-2012-10-21 09:09:01 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Some experimenting with sizing
-
-Does not work as intended yet.
-
-2012-10-21 23:04:49 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add task-bar icon
-
-Funny enough it was necessary to swap the two svg icons to make this work!
-
-2012-10-20 10:29:37 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Make some tall dialogs multi-column
-
-A dummy button was added to the last row of New Variant to make the
-number even. A legality-test warning as put in the New Variant dialog
-Fix width of tourney-file in Match dialog
-
-2012-10-20 21:14:33 -0700 Arun Persaud <arun@nubati.net>:
-updated some icons to SVG
-
-
-2012-10-20 19:57:58 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add displaying of icons
-
-A new Option type, 'Icon', was added for this as in GTK Icons and Labels
-need different types of widget. The icons are now svg, so we could
-remove the icon pixmaps.
-
-2012-10-20 14:25:41 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix button bar
-
-
-2012-10-20 14:03:48 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add BarBegin, BarEnd options
-
-This makes the button bar display correctly. Also fix v-sizing of menu bar.
-
-2012-10-20 10:01:35 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add listbox double-click callback
-
-This function was formerly performed by WheelProc.
-
-2012-10-19 17:29:40 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add hiding / showing second Engine Output pane
-
-The handle of the GTK table for the second engine is stored in the
-EndMark handle by GenericPopUp, so it can be used later to hise/show
-that table.
-
-2012-10-19 17:15:58 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Use different tables for different dialog columns
-
-Making the same table wider (in steps of 3) to get multiple columns
-does not work, because it forces options to align vertically. This
-wrecks dialogs like Load Engine, where one column contains a very
-high option (listbox). Now differnt tables are created for each column,
-packed in a new itermediate hbox. In case of the Engine Output window,
-a vbox is used instead to cause vertical stacking.
-  Only multi-line text-edits and listboxes are now allowed to take up
-vertical space changes, while only the middle colum of the table
-can take up horizontal size changes. Within packing boxes space is
-equally distributed.
-  The labels above the particiant-selection widgets had not the same width
-as the textview / listbox, leading to misplacement of the second label.
-  For Engine Settings the spontaneous breaking into columns did not
-involve a SAME_ROW flag, so the 'columns' were stacked vertically.
-In addition the columns were too tall for GTK. They are now 20 options max.
-
-2012-10-19 13:46:37 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Deselect first char in Move Type-in and ICS Input Box
-
-After popup the Move Type-In had the typed character in it, but it was
-selected, so that typing a second character would erase it again.
-Same for the ICS Input Box. A prototype for CursorAtEnd is now also added.
-
-2012-10-19 13:33:50 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Close Move Type-in on Enter
-
-The code is squeezed into the ICSKeyEvent callback.
-
-2012-10-18 21:57:50 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add access routines to checkboxes and FocusOnWidget
-
-The <Enter> handler of the filter field needs it to return focus to
-the listbox.
-
-2012-10-18 21:42:49 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add game-list callbacks
-
-The callbacks for listbox and filter text are treated by the same callback,
-which does both key presses and button double-clicks.
-Giving focus back to the listbox after filtering does not yet work!
-
-2012-10-18 16:27:57 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add optional callback to Label Options
-
-For some reason this does not work. The callback isn't called!
-
-2012-10-18 13:40:55 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add type-in event to board for popping up box
-
-
-2012-10-18 13:12:48 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add Shift detection
-
-The state of Shift and Ctrl was only probed on button clicks, so it
-is now read out of the button-event struct in the relevant button handlers.
-For backwad compatibility, they store it in a global, so the routine
-ShiftKeys can take them from there.
-
-2012-10-18 12:35:20 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Remove some unneeded low-level X11 code
-
-Things like tabbing between controls, mouse-wheel scolling etc. are all
-automatic in GTK, and thuse don't need to be ported.
-
-2012-10-18 10:12:27 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add file browser
-
-The gtk-xt code for browsing in response to menu items rather than dialog
-browse buttons) was grafted. It seems desirable to merge the two browsing
-functions, though. Pass extra params used by Xaw to FileNamePopUpGTK.
-The code was altered to use DelayedLoad.
-
-2012-10-18 09:54:41 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix ListBox, and add some support routines
-
-The srolled-window for the listbox used a uninitialized variable for its
-width, causing a crash. Now it pays attention to the Option.max and .value
-size hints. The access routines were copied from gtk-xt. HighlightWithScroll
-could just a wrapper for HighlightListBoxItem, as GTK auto-scrolls.
-
-2012-10-17 20:01:37 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Connect CommentClick handler
-
-This can make use of generic memo callback, so it could be entirely
-backend. Therefore it was moved to dialogs.h. As it shared a global with
-some other back-end popup routines to remember the current move, these
-could now be moved out of xboard.c too. (Well, not so for the X11 front-end,
-so it has now been put in a header. :-( )
-
-2012-10-17 19:41:11 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix animation
-
-Because FrameDelay does block the event loop, even though it releaes the
-CPU, expose events start to lag behind the actual drawing. By combining
-expose events for overlapping squares, rather than decompose them into
-3 rectangles, this problem seems to go away. But only if there is an
-extra exposure on the squares to be drawn also non-overlapping frames
-will be properly drawn (?!).
-
-2012-10-17 14:40:59 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement highlighting in engine output by through generic method
-
-HighlightMove was made generally available for all text. It is now just a
-wrapper for the generic HighlightText, and could be moved to the back-end.
-(This requires the initialization to be widget specific, and the flag
-indicating it has been done is now stored in the Option.min field.)
-
-2012-10-17 14:33:28 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Let engine-output memos use new generic callback
-
-
-2012-10-17 13:53:03 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add scrolling of Move History
-
-To have access to the textview, its handle is now stored in the
-Option.textValue field.
-
-2012-10-17 13:11:23 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add highlighting in move list
-
-For now it is assumed the normal background will be white (for clearing
-the highlight).
-
-2012-10-16 19:44:40 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Make generic memo-event handler, and connect history callback
-
-Large text widgets can now define a user handler in their Option.choice
-field. If they do, agneric callback is added tothem, which catches mouse
-events. Button release and pointer motion pass their coordinate and type
-to the specified user routine. Button presses in addition retrieve
-the text from the widget, set the cursor in it to the clicked point,
-and convert it to a character position, also passed to the user.
-  The user is responsible for ignoring events he is not interested in.
-
-2012-10-16 15:58:58 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add key-handler for ICS Input Box
-
-In contrast to the X11 code, all intercepted keys are now treated by
-the same callback. The ICS Input Box callback triggers on Up, Down and
-Return key, and refers to these symbolically.
-
-2012-10-16 15:05:45 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Highlight Pause button
-
-
-2012-10-16 13:52:41 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Better cleansing of xboard.c from X11 types
-
-The #includes for X11 files were still in there.
-
-2012-10-16 13:28:32 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add text insertion in engine-output memos
-
-
-2012-10-16 09:34:02 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Append recent engines to engine menu
-
-This is now entirely moved to the back-end, by doing it in the table
-from which the menus are later generated. The special callback for engine
-items is abandoned, and the euProc for such items is left NULL to flag
-that RecentEngineEvent should be invoked with the applicable engine number.
-To calculate the latter a global variable firstEngineItem is dynamically
-set to the length of the regular engine menu.
-
-2012-10-15 22:17:50 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Transfer more gtk-xt code, and add some new
-
-Add input-source handling
-Graft color picker (<Enter> callbeack in the text field is still missing!)
-Handle contents of label widgets (store handles in Option for access)
-Add printing of clocks
-Add printing of window title
-Pay attention to BORDER attribute of Label Options (pack in frame)
-Delete ReadBitmap code (also remove #including of bitmap files for icons)
-Fix layout of textviews (adapt to newer Option format, incl. wrap, scroll)
-Support vertical stacking in Break Option (no table widening when !SAME_ROW)
-Make default horizontal scroll policy automatic (for engine-output window)
-Fix disabling of unused spinners in TC dialog
-
-2012-10-15 20:47:33 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Connect dialog Browse buttons to GTK browser
-
-
-2012-10-15 19:52:17 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement menu checkmarking and enabling
-
-odes in the (later over-written) handle field specify which items
-are to be checkmarked, and by what style button.
-
-2012-10-15 16:18:12 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Attach expose handler and connect to mouse events
-
-The GraphExposeProc is conected to the Graph widgets. A gdk draw routine
-is used to copy the buffer bitmap to the display. It is also connected
-to button and motion-notify events.
-  In this version the board can be fully operated with the mouse.
-
-2012-10-14 22:00:14 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Transfer most available gtk-xt code to xoptions.c
-
-GenericPopUp and PopDown are grafted from gtk-xt into gtk2.
-The version compiles, but segfaults before doing anything, with error
-messages about unexpected cases in GenericPopup for Graph and PopUp Options
-of the main board. The spin options need special treatment in GetWidgtText.
-
-2012-10-15 11:41:33 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Give LoadListBox two extra parameters
-
-It often occurs that we just want to swap two elements, and reloading
-the entire listbox would be a very inefficient way to do this in widget
-sets that allow access to a single element.
-
-2012-10-14 20:36:34 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Remove all X11 code by #ifdeffing it out
-
-With #ifdef TODO_GTK we disable all X11 code, in order to get a compiling
-X11-free version. The disabled sections can then be replaced by code
-for another widget set, the X11 version still showing what it was supposed
-to do.
-
-2012-10-14 17:37:18 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Move timer functions to new file xtimer.c
-
-The timers for the clocks, periodic analysis events and ScheduleDelayedEvent
-go into a separate file.
-
-2012-10-14 15:31:56 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Make xevalgraph.c backend
-
-The only front-end stuff left in xevalgraph.c was an unnecessary reading
-of the window size (which could be obtained from the WindowPlaceent struct),
-and drawing (all cairo now). The drawing was moved to draw.c, and the
-remaining part renamed nevalgraph.c.
-
-An attempt to list them in a less chaotic way.
-
-2012-10-14 14:34:09 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Cleanse back-end code of all references to X11 types
-
-When compiling for X11, common.h #included X11/Intrinsics.h so that
-X11-specific data types could still be used throughout the back-end part
-not shared with WinBoard. By temporarily disabling this, error messages
-could be generated on all such occurrences, and were then solved. This
-included the following:
-  The InputSource struct is not uses in usystem.c at all, and its definition
-could be moved to xboard.c. InputSourceRef, which logically should heve been
-defined as (InputSource *), is in reality (void *), so the back-end can
-pass it around.
-  Some non-platform-dependent stuff of general interest had prototypes
-(or external vars) in xboard.h. This is now moved to a new header xboard2.h,
-to allow it to be shared without bringing in X11 dependence.
-  The EngineOutputProc was defined inconsistently, but the header was not
-sufficiently shared to flag this error. This has been repaired now, by moving
-the template to menus.h.
-
-2012-10-14 13:39:47 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Remove xedittags.c, .h from project
-
-The tiny bit of code that was left was absorbed in dialogs.c, the one
-prototype to menus.h.
-
-2012-10-14 12:53:20 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Remove inclusion of frontend.h from backendz.h
-
-This did not seem to serve any purpose at all.
-
-2012-10-14 12:49:28 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Split xhistory.c in front-end and middle-end part
-
-
-2012-10-14 12:21:09 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Move MarkMenuItem to xoptions.c
-
-This to make xoptions.c completely independent from the inclusion of
-frontend.h. The prototype is moved to menus.h.
-  Loose end: DrawPosition in board.c does not see the prototype.
-Very suspect that it wants to see it. Why would it have to correct the
-flipView setting??? Better se to it that it is correct to start with!
-
-2012-10-14 12:14:07 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-move testing for no options to back-end
-
-The test if an engine has options and display a note instead of
-the Engine Settings dialog when this is not the case is moved
-to outside of GenericPopUp, to make the later independent of calling
-other routines.
-
-2012-10-14 11:20:16 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Remove some unnecessary header includes
-
-
-2012-10-14 10:47:21 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Move ICS-engine analyze and AnalyzeGame code to shared back-end
-
-This code was still duplicated between WB and XB in the front-ends.
-Because of its incorporation in AnalyzeModeEvent the 'middle-end'
-function AnalyzeModeProc could be eliminated. AnalyzeModeEvent was made
-to return an int to flag its success, and keep the JAWS code based
-on it out of XBoard.
- The AnalyzeGame code  is now incorporated in AnalyzeFileEvent().
-
-2012-10-26 10:28:59 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add configure switches for Xaw vs GTK.
-
-This patch is an adapted version of the one Arun made at the end of the
-gtk2 branch. It uses the exact same version of his configure.ac, but the
-Makefile.am is adapted to the situation in master at the beginning of it,
-after duplication of the X11 front-end files in the xaw directory for
-preserving them, while the versions that will be modified to GTK front-end
-are still in the xboard directory.
-
-2012-10-25 11:12:41 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Prepare xoptions.c for middle-end changes
-
-Some changes that can be pre-empted, such as the splitting of Label
-into Label and Icon Option type, and some dummy wrappers are already
-implemented, so they can be used when needed by GTK.
-
-2012-10-25 09:20:03 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Preserve copies of the X11 front-end in xboard directory
-
-The X11 front-end has been moved to the xaw directory, but copies
-are retained for modifying them to gtk versions.
-
-2012-10-24 08:55:27 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Move X11 front-end to directory xaw
-
-
-2012-10-31 18:18:02 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix initial enables in TC dialog
-
-
-2012-10-30 14:47:24 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix image extension used for browsing to .pgn
-
-
-2012-10-28 21:39:19 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix WinBoard compile error on enum PEN
-
-
-2012-10-30 11:20:54 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix crash in promotion popup
-
-There were not enough entries for Capablanca Chess with legality-testing off,
-where King is also presented as a choice.
-
-2012-10-28 18:19:23 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix message in New Variant dialog
-
-Even in -ncp mode the message was referring to the 'current engine'.
-
-2012-10-28 18:16:20 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix crash on animation after resizing
-
-The animate buffers were still holding pointers to a discarded cairo surface.
-
-2012-10-21 14:49:45 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix variant-dependent pieces
-
-The code to select the actually used piece images from the available ones
-(from InitDrawingSizes) is now made into a subroutine, and also called
-after resizing the pieces.
-
-2012-10-26 10:18:48 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Replace marble texture pixmaps by png
-
-
-2012-10-26 10:13:27 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Replace xiangqi board pixmaps by png images
-
-
-2012-10-26 10:08:44 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Remove the texture pixmaps from project
-
-These were already replaced by png textures.
-
-2012-10-23 15:02:56 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix re-rendering of svg on resize
-
-The previously prepared bitmaps were retained if we resized, rather then
-rendering the svg atthe new size.
-
-2012-10-21 15:48:30 -0700 Arun Persaud <arun@nubati.net>:
-update po/pot files
-
-
-2012-10-21 15:47:12 -0700 Arun Persaud <arun@nubati.net>:
-new version number for developer release
-
-
-2012-10-21 11:10:36 -0700 Arun Persaud <arun@nubati.net>:
-we still need a few bitmaps, so the directory needs to be included in Makefile.am
-
-make distcheck complained about this
-
-2012-10-21 15:56:43 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Rename svg shogi pieces, so they become usable
-
-Only white pieces are present. For black they would have to be flipped.
-
-2012-10-21 15:54:25 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix bug in resizing on variant switch
-
-The fix of the garbage pixels had unfortunately broken this.
-
-2012-10-21 15:15:01 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix bug in fallback mechanism
-
-After failure to load a piece from a specified -pieceImageDirectory
-the default theme was not tried, because the cairo function to load
-from a pgn file returns a valid handle even if the file does not exist.
-
-2012-10-21 14:58:42 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Get svg error message
-
-
-2012-10-21 14:49:45 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix variant-dependent pieces
-
-The code to select the actually used piece images from the available ones
-(from InitDrawingSizes) is now made into a subroutine, and also called
-after resizing the pieces.
-
-2012-10-16 12:08:25 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Remove caveat on available pieces fromNew Variant dialog
-
-In the cairo version all pieces are available at all board sizes.
-
-2012-10-21 11:41:11 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Remove some unused images from png directory
-
-Currently only the three board texture files are used. But the piece
-images are still left, because they might be useful if we ever want
-to mae XBoard configurable for not using librsvg.
-
-2012-10-21 10:40:37 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix bug in resizing
-
-The nominal size of the window was not set in the correct Option struct.
-
-2012-10-21 09:58:23 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Prevent odd-width line shift in length direction
-
-
-2012-10-21 09:48:29 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Print missing-pieces error message to console
-
-The GUI might not yet be up at this point.In addition, suppress
-the rest of the code, because it could give segfaults.
-
-2012-10-21 09:30:26 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix garbage pixels on the right of the board
-
-The extra pixel that is requested in sizing the board window back to
-an available size because we ofte get one less pixel than we ask for
-can lead to a line of garbage pixels next to the board. This is combatted
-by limiting expose events to the true board area, remembering that in the
-Graph Option rather than the actual window size, and suppressing resizing
-when the latter only exceeds the stored width by more than 1 pixel.
-
-2012-10-15 10:27:14 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Trim board-window size
-
-The board window will sometimes be a pixel larger than requested.
-The ReSize routine will now reset the size values in the Graph Option
-to what they were supposed to be, to prevent expose events will
-draw nonsense in the extra space.
-
-2012-10-13 23:26:10 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Adapt docs for svg/png in stead of bitmap/pixmap
-
-
-2012-10-13 09:35:31 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Spontaeous changes in gettext stuff
-
-
-2012-10-13 08:03:48 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Move Shogi svg pieces to own directory
-
-
-2012-10-13 07:57:48 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Remove unnecessary Xt colors and call to MakeColors
-
-
-2012-10-13 07:50:56 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Code cleanup: move expose redraw to draw.c
-
-
-2012-10-13 07:37:45 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Suppress warning for InitDrawingHandle
-
-
-2012-10-13 07:33:15 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Make fallbackPieceImageDirectory hardcoded
-
-
-2012-10-13 07:18:23 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Increase drag delay too 200 msec
-
-On my slow laptop it can take more than 100 msec to reallocate bitmaps
-in the generic expose, with as a consequence that the DelayedDrag event
-is not processed before the timeout expires. The timeout event then triggers
-a redraw, which again takes so long that the timeout expires before the
-event to reset the timer could be processed, and this just perpetuates
-itself, leading to a large series of queued redraws, and a long waiting time
-for an image to appear after the sizing stops.
-
-2012-10-13 07:01:05 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix segfault on faulty command-line option
-
-
-2012-10-12 14:42:26 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Suppress anti-aliasing in -monoMode
-
-In the color-substitution code, always use bi-level alpha and color.
-
-2012-10-12 13:34:04 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Remove piece pixmaps from project
-
-
-2012-10-12 11:47:25 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement proper fallback cascade
-
-Try in order cached svg, cached bitmap, user png, user svg, default svg.
-
-2012-10-12 11:06:06 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Cache svg handles
-
-
-2012-10-12 10:45:29 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Install svg pieces in themes/default
-
-The svg pieces are installed with the XBoard data in the directory
-.../xboard/themes/default . A new option -fallbackPieceImageDirectory
-is added, and is configured in the master settings file to point to
-these pieces. This options, which replaces -svgDirectory, is volatile,
-and the menu control to set it is removed. The -pngDirectory option
-is renamed to -pieceImageDirectory (-pid).
-
-2012-10-12 10:02:50 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Remove bitmaps from project
-
-
-2012-10-12 09:55:07 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Install the wood textures as png
-
-The xboard.conf has to be edited to set these as default textures,
-in stead of the .xpm files.
-
-2012-10-12 09:50:31 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add hatched board texture
-
-A png file with hatching is added, so it can be used for dark squares
-in a monochrome theme. It is installed in a new data directory
-.../xboard/themes/textures.
-
-2012-10-11 22:21:06 -0700 Arun Persaud <arun@nubati.net>:
-added a black and white theme to replace the mono option
-
-
-2012-10-11 20:56:42 -0700 Arun Persaud <arun@nubati.net>:
-added SVGs to dist files in automake
-
-
-2012-10-11 19:44:22 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix exposure of atomic captures
-
-The grid lines had to be repaired too, so damage marker 2 had to be used.
-
-2012-10-11 19:13:24 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix animation with textures off
-
-The blank square was not shifted to (0,0) when drawing the animation buffer.
-
-2012-10-11 19:08:49 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix 1-pixel offset of grid lines on some cairo implementations
-
-
-2012-10-11 09:51:07 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Solve odd lineGap problem
-
-Not all cairo versions seem to round the same when an odd-width line
-is to be drawn at integer coordinates. So now we explicitly ask it
-to be drawn centered on half-odd-integer coordinates.
-
-2012-10-09 18:52:43 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add -trueColors option
-
-
-2012-10-09 14:56:16 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Always render svg pieces anew on size change
-
-The svg pieces are now unconditionally rendered to supply the pngPieceImage
-master source otherwise read from png file. This is then fed into the
-original png code (so that if for some reason it fails, we fall back on png
-pieces, and finally on built-in pixmaps).
-
-2012-10-09 14:06:47 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix rsvg version in configure.ac
-
-
-2012-10-08 19:54:19 -0700 Arun Persaud <arun@nubati.net>:
-initial svg rendering
-
-
-2012-10-08 18:34:05 -0700 Arun Persaud <arun@nubati.net>:
-added cairo and librsvg to configure process
-
-
-2012-10-08 18:32:55 -0700 Arun Persaud <arun@nubati.net>:
-added SVGs
-
-converted from inkscape SVG to plain SVG before adding
-
-2012-10-10 21:19:25 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Adapt Eval Graph code to new drawing system
-
-The eval graph now triggers an expose after drawing, and gets its size
-from the Option fields.
-
-2012-10-10 20:37:58 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix expose requests seek graph
-
-
-2012-10-10 20:07:53 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Make draw handle for board globally available
-
-
-2012-10-10 19:45:39 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Let expose requests pay proper attenton to widget
-
-So far, expose requests were always assumed to be for the board widget,
-preventing display of the labels.
-
-2012-10-10 18:45:59 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix initial display of logos
-
-The logos were selected and printed during the initialization,
-before the main event loop was started. So the expose events during
-widget creation, which created the drawing surfaces, were only processed
-after the initial drawing of logos, so that there was nothing to draw on!
-
-2012-10-10 17:25:25 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix alignment of highlight expose
-
-
-2012-10-10 17:19:52 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-remove NewSurfaces
-
-
-2012-10-09 13:57:40 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Make expose handler generic
-
-The Graph Option now returns two handles in hitherto unused fields of its
-Option struct: Option.choice is a cairo handle of a memory buffer the user
-must draw to, while Option.textValue is the handle to the widget.
-Expose events copy the memory buffer to the display for the exposed area.
-A routine DrawExpose() is supplied to let the user generate expose events.
-
-2012-10-06 21:30:59 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Reload piece images when pngDirectory is changed
-
-The OK function of the board options dialog now tests for a change
-in pngDirectory and passes a parameter to InitDrawingParams to tell
-it to destroy the old images. This cause a reload on scaling the pieces.
-
-2012-10-06 20:16:54 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Suppress redraw during sizing
-
-
-2012-10-06 20:10:18 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix bug in resize trigger
-
-Even if the square size does not change, the window has to be shrunk
-back to fit the board.
-
-2012-10-06 19:54:50 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Make Piececolor options work on png pieces
-
-The scaled, antialiased bitmaps are now colored according to the option
-settings. This is done by decomposing every pixel in a white, black and
-transparency component, which is possible because the opacity is
-directly give in the alpha channel, and black originally was a hard zero.
-So what you se in the red channel must be white (as the original white
-was #FFFFCC), and the rest of the opacity must be due to black.
-  The color to be replaced (white for the white pieces, black for the black
-pieces) is then replaced by the original weight of this color times the
-color from the option.
-
-2012-10-06 17:53:25 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Plug resource leak on rezising with pixmaps
-
-
-2012-10-06 16:19:41 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fall back on built-in pixmaps if png pieces unreadable
-
-
-2012-10-06 14:21:11 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Do coordinate text alignment with cairo
-
-
-2012-10-06 13:40:12 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Some cleanup
-
-
-2012-10-06 12:14:16 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Clean up drawing code
-
-Now all routines only draw through cairo, the destination surface can
-be passed to them, making it possible to do the duplicate drawing
-to the memory board image in a cleaner way.
-
-2012-10-06 11:37:20 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Check in draw.c, draw.h
-
-
-2012-10-06 11:26:24 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Remove all bitmap & pixmap drawing
-
-All Xt code for drawing the board is now removed, as are the
--pixmapDirectory and -bitmapdirectory option. This version is now
-completely dependent on cairo for handling of all graphics anywhere.
-(The build-in pixmaps are still left, though, for later use as an
-alterative cairo source when no png files are found.)
-
-2012-10-06 10:29:06 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Separate off drawing routines from xboard.c
-
-A new source file draw.c is created to hold all code associated with
-board drawing. The routines for loading bitmaps and creating colors
-were left in xboard.c, though, as they are also used for handling
-icons and colors of widgets.
-
-2012-10-05 19:53:04 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix erasing dots in seek graph
-
-The cairo dots were just a little bit bigger than the old ones, so they
-were not properly erased, but left a remnant.
-
-2012-10-05 19:25:58 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Cleanup CairoOverlayPiece
-
-
-2012-10-05 19:22:34 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Draw arrow also on backup image
-
-
-2012-10-05 19:16:30 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix highlight clearing
-
-
-2012-10-05 18:59:30 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Remove acceleration trick
-
-
-2012-10-05 18:54:01 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement variant-dependent png piece symbols
-
-
-2012-10-05 18:42:51 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix clearing of markers dots with promo popup
-
-
-2012-10-05 18:32:24 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Also render coordinates to backup board
-
-
-2012-10-05 18:30:35 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Remove debug print
-
-
-2012-10-05 18:29:13 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Let cairo also do evenly colored squares.
-
-
-2012-10-05 17:56:43 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Make dragged piece for excluding moves transparent
-
-
-2012-10-05 17:42:18 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix DrawSeekText
-
-
-2012-10-05 17:40:55 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Redo coordinate / piece-count printing ith cairo
-
-
-2012-10-05 15:40:14 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Also use cairo on slave board
-
-With dual-board observing the drawing should be redirected to the
-slave board, so SwitchWindow should also switch the xlib-surface to
-one for the slave window.
-
-2012-10-05 15:12:41 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Cure flashing of piece on from-square
-
-In a drag-drop move the piece was flashed on the from square after the
-user dropped it on the to-square, because highlights were set before the
-move had updated the board. And highlighting with arrow can cause a redraw
-of the last board. Same with setting or clearing marker dots.
-
-2012-10-05 14:20:12 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Specify proper condition for using cairo animation
-
-
-2012-10-05 14:07:53 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow resizing of board window
-
-In full png mode the size of the board window is no longer locked.
-After resizing, the square size is calculated as the largest one that
-would fit the window, and the window is then shrunk around it. To prevent
-excessive redrawing during sizing, the redraw is delayed by putting it
-in DragProc.
-
-2012-10-05 10:41:02 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Switch to using 64x64 png images
-
-The bitmap scaling works better when the needed factors are not too large,
-as the svg rendering's anti-aliasing did not blur more than 1 pixel.
-So after shrinking too much the images are not effectively anti-aliased
-anymore.
-
-2012-10-05 10:16:47 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Maintain in-memory copy of the board image
-
-As reading back from the xlib-surface proves incredibly slow (cairo probably
-converts the entire image from Xt format to cairo format when we set it
-as a source, even though we only want to read a few dozen pixels), we now
-keep an exact copy of the board image as a cairo bitmap in memory. This
-restores the speed of the animation, but unfortunately leads to awful code.
-
-2012-10-04 22:15:05 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Do animation with cairo
-
-Unfortunately this is incredibly slow.
-
-2012-10-04 18:36:08 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow back-texture files to be PNG, (drawn with cairo)
-
-
-2012-10-04 15:10:37 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add png pieces
-
-A new directory with 256x256 png piece images is added to the source tree.
-
-2012-10-04 15:01:05 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add mode to draw PNG piece images through cairo
-
-The PNG images have to be supplied as files in a -pngDirectory (a new
-option) with a 256x256 bitmap. They are then scaled by cairo to the
-desired square size. This does not work very well for the smaller sizes.
-
-2012-10-03 14:45:07 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Redo marker dots with cairo
-
-
-2012-10-03 14:27:14 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Redo highlights with cairo
-
-
-2012-10-03 14:07:37 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Make convenience routine SetPen globally available
-
-The routine to set a pen as specified by  a color string that was used
-in xevalgraph is moved to xboard.c, where there also is lots of demand
-for it. The arrow drawing now uses it for setting the highlightSquareColor.
-
-2012-10-03 12:28:30 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Redo grid with cairo
-
-
-2012-10-03 12:00:07 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Redo arrow highlighting with cairo
-
-
-2012-10-03 11:20:12 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Redo seek graph with cairo
-
-New front-end services DrawSeekOpen() and DrawSeekClose() have been
-added, and are called from the back-end to enclose any drawing activity.
-In WinBoard these had to be defined as dummies.
-
-2012-10-02 15:31:26 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Redo logos with cairo
-
-The logos must now be .png files, and are internally handled as their
-filenames. (So no preparation of a drawable from it at startup.)
-Cairo allows them to be scaled to the requested logoSize.
-
-2012-10-02 14:02:23 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix Eval Graph resolution problems
-
-Anti-aliasing had to be switched off to get a crisp graph. A second problem
-was that the dashed lines were drawn in both directions, with interfering
-dashes.
-
-2012-10-02 10:54:48 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Redo Eval Graph drawing with cairo
-
-
-2012-10-21 10:21:33 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix button-border-width bug in monoMode
-
-The kludge of signalling we are dealing wih a button rather than a label
-was wrongly implemented in case of momoMode.
-
-2012-10-21 10:14:24 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Reserve more space for button bar
-
-In some board sizes the button bar was wider than the code guessed,
-so the window width would be determined by the message + buttons row rather
-than the board.
-
-2012-10-21 11:24:18 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix WinBoard compile errors
-
-
-2012-10-13 09:33:39 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix non-NLS compile error for XFontStruct
-
-
-2012-10-12 12:04:17 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix browsing for path
-
-A pathname was still prefixed with the cuurent directory.
-
-2012-10-07 21:00:10 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Use Pause state in AnalyzeMode to imply move exclusion
-
-The pause state was not used in AnalyzeMode so far. Now it is used to
-imply all entered moves are for exclusion/inclusion.
-
-2012-09-30 18:55:13 -0700 Arun Persaud <arun@nubati.net>:
-new version number for developer release
-
-
-2012-09-30 22:16:14 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix broken -ics and -cp options
-
-The patch to specify engines and ICS by nickame broke the use of the
-regular options to do this, because they could also reset them. Now
-this is fixed by only setting them (through |= in stead of =).
-
-2012-09-30 22:01:52 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Update texi file
-
-The description of exclude-moves, multi-game ananalysis and duo-analysis
-is added.
-
-2012-09-30 10:07:58 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Resolve conflict between -mps and -inc options
-
-The age-old problem that a persistent valid -inc value will cause -mps
-to be ignored is solved by the kludge of storing these two as a single
-option (-mps) in the settings file, and declaring the other (-inc) volatile.
-The range of negative numbers (invalid as -mps value) was available for
-that, and now is used to store the negated value of -inc in msec.
-For backward compatibility, specification of -inc causes interpretation
-of -mps in the old way. The forcing of -inc to -1 in the master settings file
-could be safely removed because of this change, so that the time increment
-now is a persistent option.
-
-2012-09-29 23:13:04 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow entry of fractional increment in WB time-control dialog
-
-The numeric edit is changed to a general text edit, and code is added
-to convert the text it contains to and from float, with proper error check.
-
-2012-09-29 23:05:33 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Preconfigure -icsNames in xboard.conf
-
-Although XBoard has no startup dialog with an ICS combobox, the -icsNames
-option is now used to select lines from with the -is option, and in
-interpretation of positional arguments. The most common ICS are configured
-together with a short nickname, so that commands like "xboard fics" will work.
-
-2012-09-29 22:58:12 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow ICS nickname as positional argument
-
-If an argument is encountered that is not preceded by an option name,
-it is now first checked if it corresponds to the nickname of an ICS
-in -icsNames. If so, it is assumed to be the value of an -is option,
-selecting -ics mode with that ICS and all the options installed with it.
-
-2012-09-28 20:28:05 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Cure some sick behavior in XBoard Engine Output right-clicks
-
-When a PV-walk is in progress, the PV is highlighted by selecting it,
-and this focuses the attention of the scroll bar on it, so it remains in
-view. But after release, that line was kept in view, rather than scrolling
-back to the top of the window (where the header line bust be available
-for clicking)
-
-2012-09-28 13:28:17 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow Analyze Game to auto-step through entire game file
-
-If the game index is set to auto-increment (-lgi -1), the Analyze Game
-function will automatically load the next game of the current game file
-(starting to auto-play/annotate that) when the end of the current game is
-reached. This flushes the annotated game if auto-saving was set,
-so that eventually all games in the file will be annotatd and saved.
-  The game index is automatically set to auto-increment when we load
-a file while in Analyze Game mode, but switching this mode on while a game
-is already loaded will stop at the end of that game, as usual (if -lgi was
-not explicitly set).
-
-2012-09-28 13:24:33 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Let second engine move in lockstep during dual analysis
-
-When the second engine is also analysing (as indicated by its stat variable
-second.analyzing), we send all moves / undos / positions /  in&excludes that
-go to the first engine also to second.
-
-2012-09-27 19:07:58 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow second engine to analyze too
-
-Clicking the Analysis menu when analysis is already in progress will
-now toggle the secon engine to analyze the same position. For now,
-this lasts only until the position changes (or you leave analyze mode),
-after which the second engine is always switched off, and the Engine
-Output window returns to single pane. Each pane now has its own header
-line; the exclude header is suppressed in the second pane.
-
-2012-09-27 18:11:23 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add options -fe, -se, -is to load installed engines/ics from list
-
-The volatile string options -fe, -se ('first/second engine') load the first
-and second engine of the given nickname in the -firstChessProgramNames list,
-including all options that were installed with it (similar to when in
-WinBoard the that engine line had been selected through the Startup Dialog's
-combobox). The option -is is similarly used to retrieve the line for an
-ICS in the -icsNames list.
-
-2012-09-27 18:02:24 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add check on validity of tourney participants
-
-Before allowing OK of the Tournament Options dialog, it is now checked
-whether all participants (which are given as nicknames) can be found
-in the list of installed engines, so that no problems will occurr with
-non-existing engines during the tourney (if typos crept in after hand-
-editing the list).
-
-2012-09-25 16:21:42 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement --help option
-
-The list of options is printed before exiting. Some attempt is made
-to do it in a nice way.
-
-2012-09-23 20:10:58 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement variant seirawan in -serverMoves option
-
-Write the gating moves such that the ChessLive! viewer will understand them.
-
-2012-09-23 20:05:07 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Workaround for FICS bug
-
-FICS does not properly understand SAN, and thinks bxc3 can be a Bishop move.
-This broke 'Upload to examine', because that uploaded in SAN. In case the
-SAN starts with Bx or bx, it now uses long algebraic (with = before the
-promo char).
-
-2012-09-20 18:17:55 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Define XOP mime type for XBoard
-
-Supply a white-knight icon for this mime type, called application/x-xboard-opt,
-and a sesktop file to associate it with running XBoard with this settings file.
-
-2012-09-20 17:24:29 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Pay attention to extension of 'positional' arguments
-
-An argument without preceding option name was assumed to be an -lgf argument.
-This patch still does that by default, but if the argument ends in .fen, .epd,
-.trn, .ini or .xop it is considered an -lpf, -tf or -opt argument.
-  In addition, an implied -lpf or -lgf argument also imply the option -viewer,
-which inserts the -viewerOptions string into the command line, and proesses it
-as options. A new option -tourneyOptions is similarly inserted for an implied
--tf argument. These strings should contain all options needed to start XBoard
-fully configured as game viewer or tourney playing agent on the mentioned file.
-
-2012-09-20 15:29:42 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Let windows stick to right display edge (WB)
-
-Auxiliary windows docked to the board window from below or to the right, which are
-pushed out of view when the board window resizes, will be trimmed to just touch the
-diplay edge (if sufficient width or height remains). When the board window shrinks,
-auxiliary windows touching the edge will be resized so they remain touching it.
-
-2012-09-20 15:20:36 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Round board size to one where piece images available (WB)
-
-When using built-in bitmaps, in sizes where unorthodox pieces are needed, but not
-available, the size is temporarily rounded to one of the sizes where they are.
-
-2012-07-03 17:21:53 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix bug in Edit Position
-
-Due to = in stead of == the variant was always set to S-Chess in
-EditPositionDone().
-
-2012-08-28 21:24:51 -0700 Daniel Macks <dmacks@netspace.org>:
-bug #37210: Mishandling of X11 -I flags (tiny change)
-
-AP: applied patch from bugtracker and added one missing 'save_cppflags="$CPPFLAGS"'
-
-2012-06-02 14:31:18 -0700 Arun Persaud <arun@nubati.net>:
-bug #36229: changed ICS_* from define to enum
-
-
-2012-05-28 13:58:00 -0700 Arun Persaud <arun@nubati.net>:
-bug #36229: changed STATE_* from define to enum
-
-enabling better compiler checks
-
-2012-05-28 13:50:50 -0700 Arun Persaud <arun@nubati.net>:
-bug #36229: changed PEN_* from define to enum
-
-This should allow better checks by the compiler
-
-2012-05-28 13:01:15 -0700 Arun Persaud <arun@nubati.net>:
-fix bug #36228: reserved identifier violation
-
-variables and macro names beginning with _ are renamed to XB_. More consistent naming of include guards.
-See link in bug report.
-
-2012-05-28 12:36:37 -0700 Arun Persaud <arun@nubati.net>:
-Updated German translation
-
-
-2012-04-30 20:06:00 -0700 Arun Persaud <arun@nubati.net>:
-new version number for developer release
-
-
-2012-04-24 11:23:04 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Decapitalize promoChar in move parser
-
-
-2012-04-23 14:12:10 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Keep track of virginity of back-rank pieces in variant seirawan
-
-The forelast rank of the Board array is now used in VariantSChess to
-contain flags that indicate virginity of the back-rank pieces, one bit
-for white, the other for black. Legality checking of gatings now makes
-use of this info. FENs mention all virgin pieces not implied by castling
-rights in the castling field, by printing the corresponding file IDs,
-as long as holdings are non-empty. The FEN reader now also understands
-this format. EditPositionDone fakes virginity for all pieces that are
-on their starting square.
-
-2012-04-17 19:49:24 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Suppress clear-board message after pasting FEN
-
-The message field is now always cleared when you leave EditPosition mode.
-
-2012-04-17 19:45:33 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix faking of castling rights after editing position with holdings
-
-The queen-side rook was always imagined at X=0, which is in the holdings
-when these exist, so that Q-side castling in such games was never allowed
-after EditPosition.
-
-2012-04-20 10:29:36 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix WB Engine Settings window
-
-The listbox patch has broken this window, by making it only list the
-first option of the engine, by switching to the next column based on a >=
-test rather than == test. Fixed by using 1000 as invalid value for the
-break point, rather than -1.
-
-2012-04-20 00:01:08 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix key binding of DebugProc
-
-The name used for binding was DebugProc, while the ite was named Debug.
-
-2012-04-16 20:51:50 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix ICS Text Menu popup
-
-The space for the option names needed to be allocated.
-
-2012-04-16 20:37:06 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix disabling of Load Engine menu
-
-
-2012-04-15 22:53:24 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Port chat boxes to XBoard
-
-A new menu item Open Chat Window is added to the View menu. It opens a
-window that can handle 5 chats. A row of buttons on top selects which is
-the foreground chat partner, to which we type, and whose incoming messages
-will be displayed in the memo. The leftmost 'button' is not really a button,
-but a text edit, and the active partner is displayed there (so it can be
-altered). Selecting another chat partner through a button, moves that partner
-to the text-edit, and reshuffles the buttons. Incoming messages in a chat
-that is not foreground make the corresponding button color orange.
-
-2012-04-16 20:27:08 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow chaining of single-line text-edits to top
-
-For the benefit of the chat window, a text-edit plus leading description
-can now also be chained to the top edge of a dialog. The chaining of the
-(degenerate) multi-line ICS Input Box and Move Type-In was entirely to the
-bottom, which has now been corrected.
-
-2012-04-12 09:30:24 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add logo widgets in main board window
-
-New options -logoSize and -logoDir are added. The former enables logo display,
-when non-zero and not too big. The latter is used by -autoLogo. The options
- -firstLogo and -secondLogo also work. Problem is that the clock height
-is larger than the logo height, and for now a nasty trick in GenericPopUp
-is used to position the next element (message field) w.r.t. the clocks,
-rather than the last element of the row above (the logo): in case of a
-SAME_ROW Graph element, 'last' is kept at the previous element.
-
-2012-04-19 10:48:41 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix crash on time forfeit with -st option
-
-When fixed time per move was set from the command line, the time-control
-strings were not set. This let to a crash when an engine forfeited.
-The GetTimeQuota function is now made resistant to a NULL pointer here.
-
-2012-04-19 10:39:12 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Solve WinBoard name clashes, fix zippy-analyze menu graying
-
-Some of the function names used in the refactored X11 front-end collided
-with Windows system names from winboard.h, or with names of internal routines
-in WinBoard front-end files (so they could not be declared in frontend.h).
-These were renamed. Some prototypes in engineoutput.h contained X11 types,
-and they were moved to xboard.h.
-  In addition, two menu-item names were corrected to two-part names.
-
-2012-04-18 12:00:43 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Offer primitive paging in file browser
-
-If there are more than 1000 files that would have to be displayed,
-the number will be limited to 999, and a 'next page' entry will appear
-at the bottom. Clicking that will give you the next group.
- This is an emergency measure only, as it interferes with sorting
-(grouping is based on order inside the directory, i.e. kind of arbitrary,
-and sorting is only done within a group.) There is no such thing for the
-folder list yet. There is no way to go back to a previous page, other
-than closing and re-opening the browser, or selecting another file type.
-
-2012-04-18 11:16:58 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add pixmap as file type known to browser
-
-Users can browse for a pixmap to set the board texture.
-
-2012-04-17 15:45:27 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix warning about signedness
-
-Note: the promoChar in ExcludeMoves was explicitly defined to make
-sure the kludge promoChar = -1 for indicating best move works. But it
-should be equivalent to casting the promoChar to (signed char) just
-before the comparison.
-
-2012-04-17 15:44:15 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix warnings about character index
-
-
-2012-04-17 15:37:53 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Move ManProc to xboard.c
-
-It calls ManInner, which requires X11 data types, even if the values are NULL.
-
-2012-04-17 15:27:21 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Move FileNamePopUp to dialogs.c
-
-
-2012-04-17 15:15:03 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix readout of numeric combobox
-
-As currently no numeric comboboxes are used, this bug was silent.
-
-2012-04-17 15:10:54 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Shuffle prototypes to correct header, or add them there
-
-
-2012-04-17 14:15:15 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix MenuNameToItem
-
-This function could crash when called with ann argument that did not
-contain a period, while the idea was that it should handle this as if the
-item is in noMenu (for user-specified key binding to non-menu funtions).
-
-2012-04-16 19:43:03 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix click-click under-promotion animation save
-
-
-2012-04-17 11:02:39 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Define TOPLEVEL in winboard.c
-
-
-2012-04-17 10:59:33 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add two new strings to WinBoard language file
-
-
-2012-04-17 10:51:02 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix second-engine variant test
-
-The test whether the second engine supports the selected variant took place
-before the second engine was loaded, thus always coming to the conclusion
-that the variant was not supported, and aborting the TwoMachines command.
-The test is now moved to after second-engine loading (but before its
-initialization, where non-supporting would become a fatal error).
-
-2012-04-16 12:11:09 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix clearing of ICS input box after send
-
-
-2012-04-16 19:08:10 -0700 Arun Persaud <arun@nubati.net>:
-enable -Wall -Wno-parentheses for all compilers that understand them
-
-
-2012-04-16 13:18:37 +0200 Byrial Jensen <byrial@vip.cybercity.dk>:
-Remove 5 unused variables from zippy code
-
-
-2012-04-16 13:14:06 +0200 Byrial Jensen <byrial@vip.cybercity.dk>:
-Remove unused static function ShowTC
-
-
-2012-04-16 13:10:58 +0200 Byrial Jensen <byrial@vip.cybercity.dk>:
-Remove unused static function MenuBarSelect
-
-
-2012-04-16 13:07:01 +0200 Byrial Jensen <byrial@vip.cybercity.dk>:
-Remove unused variable first_entry from function find_key
-
-
-2012-04-16 13:01:09 +0200 Byrial Jensen <byrial@vip.cybercity.dk>:
-Remove unused variable tm from function SaveGamePGN
-
-
-2012-04-16 12:56:46 +0200 Byrial Jensen <byrial@vip.cybercity.dk>:
-Remove unused variable delayedKing from function QuickScan
-
-
-2012-04-16 12:52:57 +0200 Byrial Jensen <byrial@vip.cybercity.dk>:
-Remove unused variable pdown from function UserMoveEvent
-
-
-2012-04-15 04:25:59 +0200 Byrial Jensen <byrial@vip.cybercity.dk>:
-Change some double literals to floats.
-
-To avoid unnecessary implicit promotions of float variables to double.
-
-2012-04-15 11:12:02 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Remove debug printf
-
-
-2012-04-14 22:43:03 +0200 Byrial Jensen <byrial@vip.cybercity.dk>:
-Translate "NPS" also in engine output window
-
-
-2012-04-14 16:19:34 -0700 Arun Persaud <arun@nubati.net>:
-removed unused variables (-Wunused-variable)
-
-
-2012-04-14 15:37:05 -0700 Arun Persaud <arun@nubati.net>:
-added m4 directory to search path for aclocal. As suggested by Michel Van den Bergh
-
-
-2012-04-14 23:21:56 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix Eval Graph scale in drop games
-
-
-2012-04-14 23:16:29 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix ArrowDamage out-of-bounds access on drop moves
-
-
-2012-04-14 21:33:49 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement automatic partner observe
-
-Starting a game, or starting to observe one, now automatically issues a
-'pobserve' command if dual-board is switched on, so that the partner game
-will pop up in the secondary board (assuming it is bughouse).
- The secondary board now displays the players in the title. (This (lightly)
-breaks WinBoard again.) When the primary game ends, the secondary board
-closes automatically. Initial sizing of the board is repaired, and now uses
-the actual current board size, rather than the initial size of the main board.
-
-2012-04-14 15:43:30 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix crash due to empty PV
-
-Reception of a stat01 command before the first PV could cause a crash,
-as apparently the parser cannot handle this.
-
-2012-04-14 13:27:48 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Suppress testing for availability in bughouse drops
-
-Give up on testing legality of bughouse drop moves; this only causes problems,
-because the move list sent by the ICS is not accompanied by holdings updates.
-So XBoard parses it thinking the holdings are empty, making every drop move
-an ImpossibleMove. Bughouse can only be played on ICS, and we might as well
-trust the ICS that it will only pass us legal moves. A user should not be
-able to enter illegal drops; unavailable pieces cannot be grabbed from the
-holdings, and typing is diverted to the ICS directly (which would reject the
-illegal drop without XBoard even knowing about it).
-  Also improve switching to bh/zh, based on drop move in initial board.
-
-2012-04-14 09:11:22 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix some compile errors / warnings
-
-
-2012-04-13 19:06:17 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix promotionPopDown on new move entry
-
-The promotion popup is non-modal, and old XBoard versions popped it down
-as soon as the user clicked the board, so he could just enter a new move
-to abort the promotion. This was broken in the new version, because the code
-to do the PopDown and abort in HandleUserMove had not been ported.
-
-2012-04-13 18:38:51 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Use in-place sweep-selection for click-click under-promotion
-
-With detour under-promotion a piece cycles through all possible choices
-during backwards dragging. But in a click-click move there is no dragging.
-This used to be solved by letting the second click start a drag event of
-the default promotion choice, which you could accept by immediately
-releasing the mouse button, or drag around to change it first.
- The dragging in this case seemed a little unnatural, because the to-square
-was already indicated by the down-click. So it has been changed now to the
-promo choice appearing on the down-clicked to-square, followed by
-EditPosition-like sweep-selection on that square when one wants to under-
-promote. The move is always accepted no matter where the up-click takes
-place, except when it takes place on the from-square (which offers a last-
-resort abort possibiliy).
- Note that click-click promotion is essential in variants where it is not
-obvious from the from-square alone that a promotion is imminent, but where
-it depends on the to-square. (Such as Shogi.) There drag-drop detour under-
-promotion is not possible.
-
-2012-04-13 16:05:16 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Improve arrow drawing
-
-The arrow is now erased together with the border highlights, by marking
-the damage it did, and then doing a selected redraw of the board to let
-the damaged square be re-drawn. Highlights of a previous move are now
-cleared on the down-click that selects a new piece, so there never is an
-arrow to infavorably interact with animation of dragging.
-
-2012-04-13 14:57:15 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Also do selective redraw with showTargetSquares on
-
-The XBoard DrawPosition now also keeps track of the previous marker state,
-and redraws squares for which thi shas changed. As a result, the routine
-MarkTargetSquares does no longer have to force to complete redraw.
-(Breaks WinBoard?)
-
-2012-04-13 00:33:28 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix click-click sweep promotions to empty square
-
-These did not work, because DragPieceBegin would fail on an EmptySquare.
-
-2012-04-12 23:58:41 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Move clearing of target squares to after drag end
-
-A dragged piece that would partly overshoot its destination into a square
-with a marker would effectively protect that marker from erasing, when the
-erasing was done before the piece was released, because redrawal after the
-move only would draw the target square. (Unlike erasing, which forces a full
-redraw.)
-
-2012-04-12 23:49:27 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix double promotion popup
-
-Only the up-click of a click-click move gives a promotion popup now.
-
-2012-04-12 23:32:28 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix promotion popup
-
-The new GenericPopUp did not like it if the first button had 'SAME_ROW' set.
-
-2012-04-12 17:28:32 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow clearing of marker dots in any mode
-
-There might already be dots when you change to a mode where there should
-be none, and you don't want them to stay on forever in that case...
-
-2012-04-12 17:00:55 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix redraw of secondary board on flipping view
-
-
-2012-04-12 10:30:21 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Let clocks of secondary board count down
-
-The back-end now remembers what is the active clock, and the time left on it.
-This is then decremented and updated together with the clocks of your own
-game, using the partnerUp flag to divert the clock display to the secondary.
-
-2012-04-12 09:47:43 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix 3 forgotten symbolic widget references
-
-
-2012-04-11 19:24:36 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add sound files to browser menu
-
-
-2012-04-11 13:04:24 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add New Directory button to file browser
-
-
-2012-04-11 09:54:51 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Detect engine exit during startup
-
-The case where engine startup failure does not result in a fatal protocol
-message, like "No such file", but where it simply exits, is now also covered.
-
-2012-04-10 22:55:07 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Suppress popup for fatal error after tellusererror
-
-For cooperating better with Polyglot, and allowing more to-the-point
-error messaging, the (awful) default message will be suppressed if the
-dying engine already provided an explanation for its demise to the user.
-
-2012-04-10 20:28:45 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix Engine Output icon heights in international versions
-
-The text in a label option could not be an empty string, or it would be
-'translated' to something of enormous size. So it is set to a space now.
-
-2012-04-10 20:21:56 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix internationalization
-
-The internationalization was broken by moving the XtSetLanguageProc
-to behind 'bindtextdomain'.
-
-2012-04-10 20:03:46 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Make reference to board widgets symbolic
-
-
-2012-04-10 18:39:25 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Don't strip path from engine name if directory given
-
-
-2012-04-10 17:54:33 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix vertical chaining of Buttons and browser ListBoxes
-
-
-2012-04-10 15:53:47 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix auto-play
-
-The 'narrow search' modification had broken auto-play, because all selected
-games were marked as matching position 0, so that they would all start in
-thr opening position.
-
-2012-04-10 13:30:44 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-updated po/pot files
-
-
-2012-04-10 11:54:50 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-new version number for developer release
-
-
-2012-04-10 13:22:40 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Update POTFILES.in
-
-
-2012-04-10 13:21:33 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix Makefile EXTRA_DIST
-
-
-2012-04-02 17:53:40 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Use Ctrl key in EditPosition mode to copy pieces
-
-
-2012-03-28 23:51:28 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix bug in FRC castling for position search
-
-In FRC it is essential that both pieces are taken off the board before
-any of them is put back, lest they obliterate each other.
-
-2012-03-28 12:25:20 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix bug on loading engine
-
-A newly loaded engine was put at the end of the game, rather than at the
-current position, (which is required in EditGame mode).
-
-2012-04-06 17:02:21 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add 'Narrow' function to position search
-
-
-2012-04-06 10:52:45 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Reorganize main() a bit
-
-The font stuff goes into a separate routine, and the X11 stuff is
-moved backwards as far as possible.
-
-2012-04-04 21:55:50 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Give the dual-board option a separate board window
-
-The second board window pops up whenever an alien board is received
-during your game. Moves in it are highlighted by an arrow, irrespective
-of the 'Highlight with Arrow' setting. The clocks are displayed, but do
-not count down.
-
-2012-04-05 11:23:03 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Port engine grouping to Match Options dialog
-
-
-2012-04-05 15:18:25 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Change default directory in Load Engine to "."
-
-
-2012-04-05 10:49:56 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Port grouping to XBoard Load Engine Add highlight to Load Engine grouping
-
-
-2012-04-06 17:19:33 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix default file types for browse buttons
-
-
-2012-04-03 09:14:44 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-New browser
-
-Redo file browser with GenericPopUp
-
-This had to solve quite some problems, because it wanted to use a ComboBox
-option while a transient dialog could be up, was a non-engine dialog
-while an engine dialog is up, and XRaiseWindow does not work properly.
-  Sorting is done alphabetically, or for digit groups by numeric value.
-
-2012-04-02 14:43:24 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Use ListBox in stead of ComboBox in Match-Options dialog
-
-
-2012-04-02 14:09:15 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Use ListBox in stead of ComboBox in Load Engine dialog
-
-Make Load Engine listbox sensitive to double-clicking
-
-2012-03-26 17:06:33 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add message about enabling in New Variant dialog
-
-
-2012-03-31 20:27:20 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Move LoadGamePopUp to menus.c
-
-
-2012-03-31 20:25:22 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Move DisplayMessage to dialogs.c
-
-Use the wrapper SetWidgetLabel to make it back-end.
-
-2012-03-31 15:23:30 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix switching debug option during session.
-
-Switching on debug mode during the session did not create the requested
-debug file.
-
-2012-03-31 15:22:57 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Correct texi file for use of .Xresources
-
-
-2012-04-02 19:19:30 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix recent-engines menu
-
-A new primitive to create an item in a given menu was added to do this.
-
-2012-03-31 10:54:22 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Switch back two two-part menu names
-
-The menu code is again completely changed; a handle field is added
-to the MenuItem tables to store the widget for the item, and this info
-is used to alter sensitivity or marking. MenuToNr is replaced by
-MenuNameToItem, which looks up the two-level name directly in the
-menu tables. Put all currently unused MenuProcs in noMenu table,
-so they are available for key binding through the new method.
-
-2012-03-24 18:36:44 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Redo main board window with generic popup
-
-Some of the improvements in GenericPopUp (committed earlier) were added
-especiall for this (menu and box Option types), and the commits that used
-them to make a fully functional board, listed below, were collapsed into
-this one.
-
-This uses the new box and menu features of the Generic popup.
-Make option table shadow board consistent with refactor
-Do main menus in shadow board
- The board made by GenericPopUp now also has (functional) menus. The Expose
- callback now also uses the new format (passing coordinates).
-Use BoxEnd callback to decide about smallLayout
- The shadow board now dynamically decides whether it should use smallLayout
- positioning of the title-in-window widget, using a callback in the BoxEnd
- option for the menu bar: If no reasonable amount of space is left behind
- the menu bar, the title is forced under the clocks (smallLayout).
-Do some mouse handling on shadow board
- Only button 1 events for now. We have to keep track if the button is down!
-Connect button 3 to shadow board
- For now only for piece and PV manipulation: no context menus yet
-Symbolic reference in option formatting
-choice <-> textValue xboard.c
-Improve expose callback shadow board
-Implement context menus of shadow board
- This uses the new generic PopUp option
-TopLevel xboard.c
-Make mock-up board available through menu item
-Make clocks of shadow board sensitive to clicking
-Make button bar of shadow board operational
- The back-end Event functions are specified as user callbacks directly;
- this is not very clean, as they are parameterless, but called with an int
- argument. This should have no bad consequences, though.
-Switch to using shadow board as main board
- The menu marking and enabling had to b switched off for this, as it
- only worked on the old menus. Remove HandleUserMove.
-Deleting of unused shell variables, clocks to dialogs.c
-Move BoardPopUp to dialogs.c
- This required passing on fome front-end vars as parameters, and returning
- apointer to the option list, to make the handles available in xboard.c.
-Simplify InitDrawingSizes
- Now that all widgets of the main window are properly chained, there is
- no need to resize them when the board format changes: setting a new width
- for the shell suffices.
-Cleanup some unused Xt Args
-
-2012-03-31 10:53:46 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Remove unnecessary menu unmarking for Edit Tags
-
-
-2012-03-29 19:09:34 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Split sync-after options in Match dialog into checkbox + label
-
-Now the checkbox texts are highlighted on hovering, we don't want the
-explanatory text behind it to be highlighted with it.
-
-2012-03-26 17:12:33 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Make variant-unsupported-by-second error non-fatal
-
-
-2012-03-23 20:06:15 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Redo Eval Graph with generic popup
-
-The Graph option of the GenericPopUp is used to implement the Eval Graph.
-Compared to the previous implementation, which was drawing directly in the
-form widget, the new one has one extra widget layer, but that did not
-affect the code anywhere. Adapt eval title to width of eval graph.
-
-2012-03-23 15:17:14 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Redo Engine Output window with generic popup
-
-A new file nengineoutput.c holds the X-independent code. This makes use
-of new capablities of GenerciPopup, for having Label widgets on same row,
-stacking panes after a Break, and chaining Label and Text widgets.
-
-2012-03-21 23:00:05 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Redo Game List with generic popup
-
-Check in ngamelist.c
-Redo Game List with generic popup
- The X-independent code (i.e. almost all) is moved to a new file
- ngamelist.c.
-Make button in Game List to pop up Game List Options
-Fix scrolling game list
-Fix popup of existing Game List after loading file
-Wheel-scroll game list
-Symbolic reference game list
-TopLevel game list
-Put format flags with listbox options
-
-2012-03-21 17:58:27 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Redo Game List Options with generic popup
-
-
-2012-04-05 21:56:52 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add -dialogColor and -buttonColor options
-
-These only override system defaults if they are non-empty strings.
-
-2012-03-28 15:52:01 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add -topLevel option
-
-This persistent Boolean option determines if the auxiliary windows
-(Game List, Move List, Engine Output, Eval Graph, Tags and Comment)
-use top-level shells (with their own icon on the task bar, and
-independently closable). Other dialogs will always use transient shells.
-(Also he modal Error and Promotion dialogs, for which the modality
-presumably only serves to pop them down without special attention.)
-A control for this was added in the General Options dialog.
-
-2012-03-20 15:30:00 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Redo ErrorPopUp with generic dialog
-
-<Enter> keeps popping down error popup.Multiple Error popups remeain tricky;
-add comment to describe problem with multiple ErrorPopUps.
-
-2012-03-20 10:22:46 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Redo PromotionPopUp with generic dialog
-
-The dialog is no longer modal.
-
-2012-03-19 21:56:48 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Redo AskQuestion dialog with generic popup
-
-
-2012-03-19 21:55:58 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Major refactoring of GenericPopUp
-
-Allow more transient dialogs in GenericPopUp
-Remove grab from promotion popup
-Fix other generic popup over transient popup
- To use the generic dialog generator for 'asynchronous' popups (Ask Qustion
- or Error popup caused by engine), the currentOptions setting has to be
- restored for the combo and checkbox callbacks of the transient to still
- work after the asynchronous dialog returns. Note that only transient dialogs
- can have check and combo controls.
-Make generic calcel button suppressible
- Also #define some more symbols for Option.min flags,
- and move them to dialogs.h.
-Change TypeInProc to general OK handler
- The move type-in now has its own option list, to distinguish it from
- the ICS input box, and give it its own OK handler. Rather than having
- the translation for <Enter> on the text widget call TypeInEvent directly,
- we let it call GenericCallback, which calls GenericReadout, which calls
- the OK proc, which does the job.
-  To be able to call GenericCallback from the TypeInProc, the recognition
- of OK and cancel buttons had to be changed. This because it was too difficult
- to arrange the calling widget had label OK or cancell. So these buttons are
- no longer recognized by name, but by the option number passed as client data.
- (This solves the problem that a user could not make buttons named 'cancel'
- or 'OK'.)
-Make Cancel button optional
-Fix closing multiple popups of same kind
- The GenericCallback figures out its own shell, so all buttons of
- multiple dialogs keep working. External calls to PopDown only work
- on the lastcreated instance of that kind, though (including those from
- the Delete Window button, which can do 'cross-closing'). shellUp is now
- a counter, and PopDowns are only prevented when it reaches 0 or the
- current shell does not exist. (To know this, PopDown now resets shells[n]
- to NULL when is shell is destroyed.
-  Beware of double PopDowns (through OK procs); they wreck the system.
-Fix Delete Window button of multipe ErrorPopUps
- The action routine for handling the Delete Window now pays attention
- to the shell widget that the system passes to it, and temporarily
- replaces shells[n] by it to let PopDown act on the proper instance.
-Add ListBox dialog type to GenericPopUp
-Fix vert sizing of ListBox
-Put listbox widgets in viewport
-Put listbox in viewport
-Improved xoptions.c support for focussing and listboxes
-Fix OK-row button positioning
-Let GenericPopUp take parent and modality as arguments
- This makes the code a bit more explicit and less kludgy. It also becomes
- possible to call the same dialog (e.g. Load Options) from the main menu
- and from another dialog (e.g. the Game List).
-Support scroll function for generic popup listboxes
-Fix scrolling
-Move HighlightWithScroll to xoptions.c
-Change scroll algorithm
-Add mouse-wheel scroll to generic list boxes
-Implement tabbing between text edits
-Implement same-row text labels in generic dialog
-Allow labels to specify their chaining in generic popup
- The opt.min variable is used to specify the chaining: 0xF0 are the bits
- for (left, right) chaining of the left side (0xC0) and right side (0x30).
- The 0xC bits determine top or bottom chaining of the entire label.
- Without anything spcified (0), the chaining is XtRubber.
- TextBox options can also specify top-chaining of their top. All this was
- needed to allow decent implementation of the Engine Output window with
- the generic popup. (Although tags and comment popup ca benefit from the
- latter feature.)
-Let GenericPopUp support a Graph option
- The Graph option results in an area where one can draw something. It is
- positioned / chained similar to Label options. A handler for expose events
- can be specified in the textValue field of the option.
-Implement box widgets and menu buttons in GenericPopup
- To enhance the capabilities of GenericPopUp such that it could create the
- main window, it needs to be able tha packaging of controls into a box widget
- (for mennu and button bar). Menu buttons are also required elements
- (although they do look a lot like comboboxes?) Option types BoxBegin and
- BoxEnd can now be used to bracket a group of controls that will be put
- in a box widget. (Cannot be used recursively!) The positioning of the box
- is similar to that of a Label, and is specified in the BogBegin option.
-  The code to shrink the menu buttons to fit is also incorporated, to act
- on any box widget: if the BoxBegin option specifies a width, the elements
- in it are shrunk to meet the requirement. Otherwise the box just gets the
- size of the sum of its children (plus spacings).
-  Label options can now specify a font, casted into their textValue field.
- (This is needed to get the proper size for the clock widgets.)
-Implement callback in BoxEnd options
- BoxEnd is a pseudo-option, to trigger packing the preceeding ones in
- an earlier-opened box widget. In the process it calculates the size of
- the box widget (and trims it if a size was specified for it in the
- corresponding BoxBegin). The Option.target field of BoxEnd is now
- interpreted as a callback, which can be use to take decisions based
- on the determined size for the remaining options in the list, before
- these are processed b GenericPopUp.
-Refactor xoptions.c
- Make a subroutine to set args shared by almost all widgets. Swap meaning
- of '1'-bit in option.min flag of Break option, to be consistent with
- SAME_ROW interpretation in other option types.
-Make option tables consistent with refactored GenericPopUp
- The flag for stacking in the Break option needed to be inverted, and
- the BoardPopUp needed to pass the font in another field. Better use was
- made of the improved chaining options too.
-Improve Graph-option event handling
- The user-supplied callback now gets 3 arguments passed: the event type
- (0 = pointer motion, 1...5 button press, -1...-5 release, 10 = expose),
- and two coordinates. For ouse events these are the pointer (x,y), while
- for expose events they are the window size (w,h). The callback is now
- specified in the option.target field of the Graph option.
-Store engine options in malloc'ed memory
- The Option.name field has been re-declared as (char*),  from (char[MSG_SIZ]).
- There are still MSG_SIZ chars allocated irrespective of actual size, because
- the field is also supposed to store the textValue, which can be changed by
- the user. But at least it means that unused options of the generous list
- now don't waste much space. (And the prparated Option tables in dialogs.c
- will shrink by a large factor as well.)
-Improve GenericPopUp ComboBox handling.
- The dialog type is now passed to the combobox callback as well, and this is
- used to really figure out what option it is called for.
-Allow numeric comboboxes
- When no list of strings is given in Option.choice, the target is assumed
- to be (int), and the number of the slected entry is stored there. Also
- adapts the Label options that act as fillers to the new method for making
- dummies (namely NULL in the Option.name field).
-Put comboCallback in Option struct
- Rather than having a general comboCallback variable for the entire current
- dialog, each ComboBox option can now specify its own callback in the
- target field of the option: the COMBO_CALLBACK bit of Option.min indicates
- whether the target is a variable to be set or a callback. The callback can
- still fetch the choice from the values array.
-Allow generic CreateComboPopup also to do main menus
- An extra parameter to CreateComboPopup determines if the menu texts
- should be taken from a list of strings (the old method with engine-
- supplied choices), or from a menu table of MenuItems. It can now also
- recognize "----" as a menu break, and keeps margins (for the marking).
-Make subroutine for determining curren combo selection
-Various fixes to GenericPopUp
-Delete one border-width setting
-Fix max nr of args in GenerocPopUp
-Fix button release events of Graph options
-Fix generic Graph callback pointer motion coordinates
-Make all format referencing in Option tables symbolic
-Let Option.choice define menu texts, rather than Option.textValue
- This is more logical than ussing textValue for it, because choice already
- has the correct (char**) type, while textValue was (char*), and needed
- casting everywhere. Note that for engine options, the fields were the
- same anyway, so no back-end change was required. The textValue now
- contains the (casted) list of actual string values, where these are
- needed. (But for numeric and function menus they aren't.)
-Add PopUp Option type
- An new pseudo-Option is defined, to add a popup menu to a previous Graph
- option. The actual popping up is done by the expose handler.
- The function XUngrabPointer is the key to success here. A PopUp option
- specifies a callback for handling the selection from the menu, which will
- be called with the option number, exacty as with ComboBox options.
-Update option explanation in dialogs.h
-Make Spin and CheckBox callbacks pass dialog number
- No longer rely on 'currentOptions' for getting the option belonging to
- the callback, but get it out of the dialogOptions array indexed by dialog
- type. This way things cannot be messed up by an asynchrounous error popup.
- It also means that it is now save for non-modal dialogs to use these options.
-Use button widget for text behind checkbox
-Let listboxes use general formatting hints
-Let GenericPopUp option always finish last pane after Break
-Allow LisBox to specify select callback in Option.textValue
-Use double-click to trigger ListBox callback
-Make ListBox callback re-entrant
-Fix multi-line Label options
-Separate CreateMenuItem out from CreateComboPopup
-Chain checkbox texts entirely left
-Allow a user-specified callback to Label options
- This is needed to implement the clocks. Let the CheckBox callback handle
- it. For now ther is no distinction between different mouse buttons.
-
-2012-03-21 11:15:01 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Prevent double PopDowns
-
-Some DialogOK functions ordered an early PopDown themselves. This,
-however, resulted in PopDown being called twice when they returned TRUE.
-This interfered with the new system for allowing multiple instances of
-the same dialog. So these functions are now fixed to suppress the
-standard PopDown by always returning FALSE.
-
-2012-03-20 19:10:50 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Split usounds.c and usystem.c from xboard.c
-
-X-independent code was moved to separate files. The nef file usound.c
-contains the sound handling, which in XBoard is trivial, because it uses
-an external player, but could be replaced by a complex one on platforms
-that have to handle the sound themselves.
-  The usystem.c file contains all non-X Unix-like stuff, such as fork,
-pipe, system, getenv. I also contains some color parsing for the xterm
-colors. This stuff could be useful on platforms that support Unix-like
-system calls.
-
-2012-03-26 19:03:19 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Make routine to probe shift keys
-
-The code to probe Alt keys was taken out of MoveTypeInProc, and extended
-to probing Ctrl and Shift keys too. These are now returned in the 6 LSB
-of an int by ShiftKeys().
-
-2012-03-19 13:15:11 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Remove one level of indirection on ICSInputBoxPopUp
-
-
-2012-04-10 10:26:24 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Cleanup of xboard.c
-
-Remove AskQuestionProc
-A bit of cleanup on xboard.c prototypes
-Remove dead file-browser code
-Delete vestigial jail code
- All the stuff about jailColor was deleted. Only one fishy thing remains:
- xpmJailSquare seems under some conditions used in BlankSquare to draw a
- 'neutral' square. it is set to a copy of a light square image. But in the
- current design 'neutral' means blacked out between board and holdings,
- and even with image use, it should not resemble a light square...
-Remove registering of CommentPopDown and TagsPopDown
-Merge CopyGameSelection into CopyPositionSelection
-
-2012-03-19 11:38:17 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Move some back-endish routines from xboard.c to dialogs.c
-
-Move ICS input-history handling to dialogs.c
-Move ICS Input Box text handling to dialogs.c
-Move DisplayXxxx routines to dialogs.c
-Move DisplayTitle to dialogs.c
- A wrapper SetWindowTitle remains in xboard.c.
-
-2012-03-18 20:10:35 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Split back-endish part off xoptions.c, and move to dialogs.c
-
-Some MenuProcs for dialogs were also moved to dialogs.c from menus.c.
-MoveTypeInProc which is an event handler for the board widget,
-was moved to xboard.c, where it can be static.
-
-Identify dialogs by enum type
- A new header dialogs.h is created, which defines an enum type DialogClass
- that is now used to identify the various dialogs done by GenericPopUp.
- The prototypes for GenericPopUp/PopDown, and other globals shared by the
- dialogs code and other modules can go in here as well.
-Remove ClearTextWidget
- This did the same as SetWidgetText with an empty string.
-Split X-code from PutText
-Split back-end part from MoveTypeInProc
-Take set-title out of comment popup
-Sort MenuProcs in dialogs.c with their support functions
-Declare globals in dialogs.c with functions where they belong
-Add prototypes to dialogs.h
-Move prototypes and globals from xoptions.c to dialogs.h
-Make accessor DialogExists for dialog shells
-Add dialogs.c to makefile: compiles and runs!
-Combine 3 calls into front-end to InitDrawingParams
-Move EditCommentProc and ICSInputBoxProc to dialogs.c
-Pass option list as argument to GenericUpdate and GenericReadOut
-Shorten argument name from currentOption to opts
- This to prevent confusing it with the global variable of that name.
-
-2012-03-18 15:33:18 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Declare some shared global variables in backend.h
-
-The vlobals twoBoards and partnerUp were only shared through an extern
-declaration in xboard.c
-
-2012-03-18 12:34:42 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Split back-endish part off drawing code and move to board.c
-
-Split DrawSquare in front-end and back-end part
-Back-endize DrawHighlights and DrawPosition
- The already existing wrapper FlashDelay is used as a kludge to do an XSync.
- We now pass a code for the line color GC to the highight routine. New
- wrappers are DrawGrid() and DrawBorder().
-Back-endize atomic explosions
-Back-endize DrawArrow and DrawDragPiece
- DrawDragPiece now calls DrawOneSquare with argument EmptySquare in stead
- of the X-type referring BlankSquare. A new wrapper DrawPolygon fixes
- DrawArrowBetweenPoints.
-Move board-drawing logic to new file board.c
- All X-independent drawing logic (board, squares, arrows, highlights,
- some animation stuff) has been extracted from xboard.c, and moved to
- a new file board.c, which is back-end (but unshared with WinBoard).
- A new header board.h defines the cross-references (which of course
- required some functions to be no longer declared as static).
-  A bit of code was moved from DragPieceBegin to BeginAnimation, which
- now has an extra argument to indicate which piece should appear from
- under a dragged piece. This makes DragPieceBegin free of XCopyArea calls,
- so it could be moved too.
-Make board.c truly back-end
- Get rid of all X data types. For this the AnimState struct had to be
- redefined: the GC and Pixmap was taken out and put in front-end arrays
- indexed by anim agent (game and player). For this indexing a new enum
- was defined. The XPoint type was also replaced by our own type of an
- int pair (which is nasty, because the int size could be different).
-Move more animation code to board.c
-
-2012-03-18 10:08:55 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Contract some awful code replication
-
-The code for making an X-color was replicated 6 times, and is now made
-into a subroutine. The code for creating GCs was quite repetitive as well.
-
-2012-03-18 08:34:54 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Move more back-endish menu-related stuff from xboard.c to menus.c
-
-Move menu enabling to menus.c
- Only the wrapper EnableMenuItem stays in xboard.c. A new wrapper
- EnableButtonBar was necessary, because Training mode wants to enable/disable
- that too.
-Move all back-endish MenuProcs to menus.c
- Many if the MenuProcs that could not be eliminated by listing the
- corresponding back-end MenuEvent function as handler directly, are
- still completely plactform indpendent. (E.g. when the MenuEvent needs
- a parameter.) These are all moved to menus.c now.
-Convert all dead MenuProcs to using MarkMenuItem
- The MenuProcs for the option items that no longer exist were also
- converted for check-marking their item in the new way, because we
- might revive them for key binding.
-Move the dead MenuProcs also to menus.c
-Revive dead menu procs
-Move GreyRevert to menus.c
-Move ModeToWidgetName to menus.c
-Move initial menu marking to menus.c
-
-A new function InitMenuMarkers was split off from main() to do this.
-
-2012-03-18 08:17:53 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Switch to use of short menu references
-
-The prefixes menuXxxx. for the item names are abolished. This made it
-necessary to also add a MarkMenuItem function that can handle short names
-for putting the xMarkPixmap on the items, as the names returned by
-ModeToWidgetName are used for both enabling and check-marking.
-Let MarkMenu use MarkMenuItem wrapper
-
-2012-03-17 10:47:04 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Refactor menu code, and move it to menu.c
-
-Supply new method for key binding
- It is annoying that every menu item needs its X-specific handler routine,
- because this handler has to be registered to X for becoming eligible as
- a key binding. Another disadvantage of this method is that the user wanting
- to make the binding has to know the name under which the menu function
- is registered (e.g. FlipViewProc).
-  A new method is now made available, which uses only a single (X-specific)
- routine, registered with X as "MenuItem", as generic key-binding handler.
- The bindings can then be made by the user specifying "MenuItem(FlipView)".
- This requires a new list of potential bindings, which should be filled
- by the menu-creation routines. (Currently only contains only a predeficed
- example.)
-No longer register all MenuProcs with X
- The list with available menu procs is moved to the user-maintained
- menuItemList. Only QuitProc had to stay registered with X, because it is
- used in CatchDeleteWindow. (So it is in both lists now.) In the future,
- most of the list can be built automatically from the menu tables.
-Alter type of MenuProcs to void(void)
- By getting rid of the argument list with X-types, most menu procs can
- become back-end. In the cases of ManProc and QuitProc the original
- version had to be kept as well, because in ManProc the argument was
- actually used (with key binding), while QuitProc is used for delete window.
-Remove now unnecessary menu wrappers
- Now the MenuProc have an empty argument list, those that also call a
- single 'MenuEvent' without arguments have become completely redundant,
- and have been taken out of the loop by calling the corresponding MenuEvent
- directly.
-Build menuItemList from menu tables
- Rather than having an initialized table of name-proc associations (which
- used to be the X registrations) for the menu items, we now build the list
- during menu cration from the menu tables. The menu "ref" is now used as
- proc name. This means the old MenuProc names used in the predefined
- key bindings had to be changed to conform to this. Note that the bindings
- would slice up names containing spaces in several parameters, so in the
- translations the spaces were squeezed out of the item names. This requires
- a hand-written comparison routine Equal() to identify the binding.
-Remove prototypes of deleted MenuProcs
-Move prototypes of platform-independent MenuProcs to menus.h
- Create a new header file for the menu stuff, so that we can move
- the corresponding handler routines out of xboard.c to a back-end file.
-Extract back-end code from menu creation
- The menu tables and code to interpret them is moved to a new file menu.c.
- Only basic fuctions for creating a pop-down list and for adding an item
- to it remain in xboard.c.
-
-2012-04-07 15:59:50 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Remove some unused (exclude-moves) variables
-
-
-2012-04-07 15:57:54 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Install engine within current group
-
-
-2012-04-07 15:53:29 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Switch to using listboxes for engine-selection in WinBoard
-
-
-2012-04-07 15:36:02 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement Narrow button in WB Game List
-
-
-2012-04-05 15:15:09 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Silence unjust warning
-
-
-2012-04-04 12:18:43 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix memory corruption through InitString and second-engine loading
-
-The InitString and ComputerString options were not swapped when replacing
-the second engine, so that the ChessProgramStates of the first engine
-could point to an invalid (already freed) init string. Also make sure
-that appData.directory contains its value in allocated memory, even
-when hand-loading engines.
-  Some of the rare options were not swapped either, and would thus
-always be loaded for the first engine when -singleEngineList was true.
-They are now also all reset to their default, before engine load,
-to prevent options of one engine to linger on for a next that does
-not specify them. The intentional exception is -firstHost.
-
-2012-04-01 20:51:53 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix PV sorting during fail low
-
-When an engine reports a fail low as thinking output, and then re-searches
-the same move with larger window, it now gets a lower score. This line
-would then be sorted below the earlier fail low, because it was mistaken
-for a multi-PV line for an inferior move. This patch suppresses PVs
-overtaking each other if they start with the same move.
-
-2012-03-30 20:09:58 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Extend smallLayout regime up to size Medium
-
-Because of the increase number of menus, there is not enough space for a
-title next to the menu bar at smaller sizes. In fact it is questionable if
-the title should ever go on the same line as the menu bar.
-
-2012-03-30 10:38:27 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix parsing crazyhouse promotions with legality testing off
-
-With legality testing off, any promotion suffixes in a move are taken
-'on faith'. But in crazyhouse the piece ID for normal pieces is used as
-promotion suffix for promoted pieces, so this would Loop Chess rather than
-Crazyhouse. Now attention is payed to presence of ID-less promotion pieces
-(indicated by ~ in the pieceToCharTable), and if there are, these prevail
-ovr the specified type.
-
-2012-03-30 10:07:04 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix browsing for save file in WB
-
-The generic popup browse buttons used the wrong flavor of browser,
-which would only accept existing files. This was inconvenient when browsing
-for a save file. The other flavor of browser is now used by default (so that
-engine options also use it), and a new flag is added in the option.max field
-(which was already indicating file type) to request readonly browsing for a
-save file.
-
-2012-04-02 10:18:37 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Let clicking on header line exclude moves
-
-The exclude header in the Engine-Output window can now be clicked, to
-toggle the exlusion of the listed move. Clicking on 'none' resets all
-exclusions, clicking on 'best' excludes the first move of the latest PV.
-The pseudo-move 'tail' represents all non-listed moves.
-
-2012-04-01 22:39:55 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Keep list of excluded moves in Engine Output header
-
-As long as there is still space, excluded or included moves are added
-to a new header line in the Engine Output window (prefixed with + or -
-depending on whether they are currently excluded or included). Future
-in/exclusions of that same move then alter the prefix.
-
-2012-03-21 23:12:20 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix focus of Game List
-
-After focus was transferred to the filter text-edit, it was impossible
-to get it back on the game list (to make the arrow keys working again).
-A translation to left down-click is now used to assign focus, just as
-it would for text edits. For unknown reason this only worked if the
-translations were instated by Overriding, rather than Augmenting,
-which again required the normal translation of downclick, Set(), which
-selects the clicked item, to be explicitly mentioned as well.
-
-2012-03-16 22:41:19 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix taking effect of some option changes
-
-This fixes a bug reported at Ubuntu: when switching off move highlighting
-in Two Machines mode, the last move before the switch stayed highlighted.
-The GeneralOptionsOK() now clears any remaining highlights when highlighing
-is off. Similar problems with blind-fold mode and coordinates, which require
-a total board redraw to take effect, are now solved by also forcing such a
-redraw in GeneralOptionsOK() when they change.
-
-2012-03-16 21:58:55 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add exclude and setscore to protocol specs
-
-
-2012-03-16 14:47:25 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix clock stop after dragging
-
-DelayedDrag always cancelled the previous drag timeout event, even when
-this was no longer pending because it had already taken place, and the
-event ID was resused by some other timeout (usually a clock tick).
-
-2012-03-14 21:06:28 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement exclude moves
-
-Dragging a piece by double-clicking it on the from-square in analysis mode
-will not perform the entered move, but send an exclude or include command
-to the engine for that move (provided the engine enabled this with
-feature exclude=1), depending on if the move was already excluded or not.
-To this end a map of excluded moves is kept, and cleared when we move to
-another position through moving, undo, setboard or new. The user can see
-whether he included or excluded the move, as exclude uses premove highlights.
-  Commands "exclude|include all" are sent when we throw a double-clicked
-piece off board (vertically or horizontally, respectively), but after
-exclude all the most recent PV move is included again.
-  Remaining problem is that promotions can only be excluded.
-
-2012-03-14 15:13:18 +0100 Byrial Jensen <byrial@vip.cybercity.dk>:
-Mark new text "Click clock to clear board" for translation
-
-
-2012-03-13 21:46:55 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-More thorough switch to -ncp on engine failure
-
-The ProcRef and InputSource are now also cleared, and just to be sure there
-are no surviving adapters, the child is killed when engine startup fails.
-
-2012-03-13 21:25:22 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Install engines as ./exefile in XBoard
-
-When a path name is split into directory and filename, the latter in Linux
-must be preceded by ./ in order to make it executable in the directory
-XBoard starts it in.
-
-2012-03-13 14:11:18 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Inform user in EditPosition mode how to clear board
-
-With -pieceMenu false the board is cleared by clicking the clock, but
-since this is impossible to guess, it is now printed in the message field.
-
-2012-03-13 14:06:32 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix fall-back on -ncp mode
-
-When the requested engine could not be started, the user still had to
-wait for the feature timeout to expire before the UI was re-enabled,
-and the now-useless loading action would continue. In stead we now
-cancel any scheduled continuation, thaw the UI immediately, and switch
-the menus and gameMode to ncp straight away.
-
-2012-03-10 18:55:24 -0800 Arun Persaud <arun@nubati.net>:
-updated po/pot files
-
-
-2012-03-10 18:54:32 -0800 Arun Persaud <arun@nubati.net>:
-new version number for developer release
-
-
-2012-03-06 16:37:02 +0100 Byrial Jensen <byrial@vip.cybercity.dk>:
-Fix typo (seach) in string. It is already fixed in branch v4.6.x
-
-
-2012-03-04 14:52:34 -0800 Arun Persaud <arun@nubati.net>:
-added some documentation about what's need to be done for a release and a bash-release script
-
-
-2012-02-28 21:09:18 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix suspected bug in Makefile
-
-
-
-
-2012-02-26 18:55:10 -0800 Arun Persaud <arun@nubati.net>:
-add information about our webpage and were to report bugs into the help menu
-
-
-2012-02-26 18:40:27 -0800 Arun Persaud <arun@nubati.net>:
-fixed "make install-pdf": missing target for recursive make in po directory
-
-
-2012-02-26 23:06:33 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Suppress recent-engines menu items in ICS mode
-
-
-2012-02-26 22:45:12 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix 50-move counter in ICS mode
-
-Marking irreversible moves in the EP_STATUS did not work in ICS mode,
-as ApplyMove,which did that is never executed there. Only the boards
-sent by ICS are displayed,especially in observing mode. Now the status is
-derived from the ICS mov strings (x in the SAN move, or P in the long move.
-
-2012-02-26 17:18:39 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix two 64-bit warnings
-
-Passing the engine number in a pointer variable to the callback needed
-a two-step cast.
-
-2012-02-26 16:53:24 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix piece symbols on switch back to variant normal
-
-Variant switches were not properly detected, meaning the variable pieces
-could keep a form belonging to a previous variant. (E.g. Queen remained
-a Lance image after switching from shogi to normal.)
-
-2012-02-26 14:07:50 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Keep XBoard windows attached on resize
-
-Windows attached to bottom or right are displaced with the size increase.
-Their perpendicular dimension is also scaled, to keep their edges at the same
-fraction of the main window, unless they stick out. In the latter case the
-fraction is clipped to 1, so that edge moves with the full size increase.
-
-2012-02-25 22:40:56 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement -stickyWindows in XBoard
-
-This makes the auxiliary windows  move with the main window when they were
-touching, as in WinBoard. A control is added in the General Options dialog.
-
-2012-02-25 21:14:03 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Use more reliable X-call for getting window position
-
-XtGetValues on XtNx, XtNy is unreliable. XGetWindowAttributes seems
-to give more reliable results, and automatically accounts for the width
-of window dressing. The -frameX/Y options are no longer needed bcause
-of this, and were removed.
-
-2012-02-25 11:55:19 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Make frame width configurable in XB
-
-New persistent options -frameX, -frameY now can be used to specify
-the amount by which Xt lies about the window coordinates.
-
-2012-02-23 20:01:55 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Use combobox line for recent engines when available
-
-The entry made in the -recentEngineList for the startup engine was
-derived from the -fcp value, but this would ignore a possible nickname.
-In WinBoard we now use the full combobox line to derive the entry.
-
-2012-02-23 09:29:17 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix translation of EngineOutputTitle WB
-
-
-2012-02-23 01:34:12 +0100 Byrial Jensen <byrial@vip.cybercity.dk>:
-Updated Danish translation
-
-
-2012-02-23 00:59:36 +0100 Byrial Jensen <byrial@vip.cybercity.dk>:
-One missed translation of cps->which
-
-
-2012-02-22 19:58:41 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Undo translation of cps->which = first/second
-
-The string in cps->which should not be translated, because it goes into
-the debug file to label engine I/O, and many tools for processing
-debug files (broadcasters, PGN extractors) rely on this being "first" or
-"second". In all contexts where "first" and "second" need to be translated,
-cps->which itself is already enclosed in _().
-
-2012-02-22 18:27:40 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement -serverFile option
-
-This writs an extra debug file with only engine communiation on it,
-for the benifit of programs like TLCS.
-
-2012-02-22 17:46:16 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement -autoCopyPV
-
-This option causes automatic copying of the last position of a PV walk
-to the clipboard.
-
-2012-02-16 14:58:45 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Delete some load-game debug printing
-
-The debug printing in Disambiguate was no longer needed. The printing
-of the started process in XBoard that went to stderr is now diverted
-to debugFP, so it ends up in the debug file.
-
-2012-02-16 14:41:43 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Move change of debug file to before game load
-
-Loading a game from -lgf is done before TwoMachinesEvent is called,
-but logically belongs to the game. So the code to switch to the new
-debug file for the game is moved to NextMatchGame now.
-
-2012-02-16 14:09:54 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix button grab for sweep selection
-
-The piece-menu initialization limited the grab of button events to those
-occurring inside the board window (presumably intended to limit them to
-the piece menu, but that does not pop up in sweep-selection mode).
-This is now suppressed when -pieceMenu is off, so that selection continues
-outside the the board. (Which is very convenient for pieces pu close to the
-edge.)
-
-2012-02-16 13:16:13 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Don't leave piece selected after piece menu
-
-PieceMenuEvent left the just introduced piece selected, which is almost
-never what one wants, as it makes it jump to the next square when selects.
-Which is especially annoying if it captures the piece you wanted to grab...
-
-2012-02-16 12:57:47 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix use of middle button for position setup
-
-With sweep selection the actual drop is made on releasing the button,
-and this event was not caught for button 2. Button-2 motion events were
-also not caught by the sweep-selection handler.
-
-2012-02-16 23:53:08 +0100 Byrial Jensen <byrial@vip.cybercity.dk>:
-Fix one more typo in the translator comments explaning "first" and "second"
-
-
-2012-02-16 23:39:32 +0100 Byrial Jensen <byrial@vip.cybercity.dk>:
-Fix typo in translator comments explaning "first" and "second"
-
-
-2012-02-16 23:23:20 +0100 Byrial Jensen <byrial@vip.cybercity.dk>:
-Add args.h to POTFILES.in and change the interface to ExitArgError() so msg is c format string
-
-Having msg as a format string will ease translations because then
-badArg doesn't have to come last.
-
-2012-02-16 22:51:44 +0100 Byrial Jensen <byrial@vip.cybercity.dk>:
-Mark the strings "first" and "sencond" for translation.
-
-... and assign the translated strings to cps->which in function InitEngine()
-
-2012-02-16 18:42:10 +0100 Byrial Jensen <byrial@vip.cybercity.dk>:
-Use ngettext() instead of gettext() for a string to allow better translation.
-
-
-2012-02-16 00:19:59 -0800 Arun Persaud <arun@nubati.net>:
-translation: updated uk.po
-
-
-2012-02-15 20:59:09 -0800 Arun Persaud <arun@nubati.net>:
-modified configure and makefile for handling mimedb update
-
-the default configure will install them using the xdg commands (if they exist on the system)
-
-2012-02-13 22:29:48 -0800 Arun Persaud <arun@nubati.net>:
-add configure test for xdg-programs to install mime types; can be disabled for building of e.g. rpms
-
-in case the target system doesn't have the xdg-programs available, we test for them.
-Distributions often have their own macros to install these, so we add an enable option to configure
-
-2012-02-13 22:05:26 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Remove a debug printf
-
-The parsePV debug printf becomes extremely verbose with -fSAN, -sSAN,
-so it was deleted.
-
-2012-02-12 22:18:24 -0800 Arun Persaud <arun@nubati.net>:
-new developer release
-
-
-2012-02-12 22:19:37 -0800 Arun Persaud <arun@nubati.net>:
-updated po/pot files
-
-
-2012-02-12 22:17:03 -0800 Arun Persaud <arun@nubati.net>:
-updated Changelog, NEWS, etc.
-
-
-2012-02-12 07:52:54 -0800 Arun Persaud <arun@nubati.net>:
-translation: updated uk.po
-
-
-2012-02-12 11:38:30 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Leave height of row that only contains buttons free
-
-All elements of the GenericPopUp are still scaled to the text height,
-including buttons appended behind them (browse or color buttons).
-But we now make an exception for a row that only contains buttons,
-as there is no harm in it being a little higher (and the buttons look
-prettier that way).
-
-2012-02-12 00:01:24 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix OK button of error popup
-
-The error dialog popped up as a child of the board window, even when
-DisplayError was called from a dialog. Now it checks if a transient
-dialog is up, and if so, it pops up as a child of that, grabs focus,
-and suppresses the system popdown of the transient dialog through a flag
-dialogError until it is popped down itself.
-
-2012-02-11 20:07:39 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Update texi file
-
-
-2012-02-11 10:18:02 -0800 Arun Persaud <arun@nubati.net>:
-added some comments for translators
-
-
-2012-02-11 10:08:46 -0800 Arun Persaud <arun@nubati.net>:
-fixed comments for translators: comments starting with TRANSLATORS: are now copied to the po file
-
-
-2012-02-11 19:01:49 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Also configure sweep selection
-
-To make sure this feature is tested, we set -pieceMenu false in the
-master settings file.
-
-2012-02-11 18:26:34 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix date in copyright notice about-box
-
-
-2012-02-11 17:15:11 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix switching animation masks on variant switch
-
-The masks for variant-dependent piees (E,H in Seirawan, promoted Golds
-in Shogi, the Gothic Chancellor) were no longer updated in InitDrawingSizes
-because of the patch to reduce X-server calls.
-
-2012-02-11 16:46:58 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Configure wider game list
-
-The game list was by default too small, so that there was no room for the
-filter field. Now a width of 500 is specified, whcih works at -size 49
-as well as 72.
-
-2012-02-11 16:29:06 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix button chaining and combo/textbox label height
-
-Previous patches forgot to specify the height for the text labels on
--combo and -text options, so they were still too high. Buttons that go
-on the same line as the previous element should be chained right, not rubber.
-
-2012-02-11 15:52:52 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Make -pgnNumberTag option setable from menu
-
-The Save Options dialog now containes a checkbox for this.
-
-2012-02-11 15:48:52 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Configure some new features switched on
-
-The master settings file switches -showTargetSquares, -sweepPromotions
-and -seekGraph on, so that they will get more testing.
-
-2012-02-11 14:43:53 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix heigth of multi-line labels
-
-The previous height patch overlooked that some labels are multi-line,
-and need more height.
-
-2012-02-11 14:10:21 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix popdown seekgraph on forward-event XB
-
-Only the grid was drawn when the > or >> button were operated, because
-a full redraw was not forced by ForwardInner. The recent patch to take
-the seek graph down on such events did not account for that. (BackwardInner
-always seems to do full redraw, however?)
-
-2012-02-11 12:59:04 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Put front-end support for -recentEngines in XBoard
-
-The engines are added to the menu. Problem is still that in XBoard
-startup engines are given by command, rather than selected by combobox,
-so the command rather than the nickname ends up in the menu. If this is
-then selected, it cannot be found in the list. To limit the damage,
-Fairy-Max is now pre-installed without nickname. -recentEngines is now
-configured to 4.
-
-2012-02-11 11:53:39 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Better solution to button-height problem
-
-In stead of adapting the height of text widgets to that of buttons,
-(as represented by the message widget), we now do the opposite, and
-adapt the button & label heights. This is made safe by obtaining textHeight
-from the fontSet's max_logical_extent, though an XExtendsFontSet() call.
-Turns out the default height of text widgets is not exactly that, but
-4 pixels larger for borders and margin.
-  The parameter XtNvertDistance is now used to align the checkboxes with
-the following text widget, and their size is derived from textHeight as
-well.
-  The XtNvertDistance is set to -1 for the lower spin button, so that it
-its border coincides with that of the upper spin button. Their height is
-set to textHeight/2. This makes their combined height just 1 pixel more
-than that of the preceeding text widget. (Uh? 2 x tw/2 -1 > tw?), so for
-other buttons we use that too (i.e. textHeight = font_extent + 5).
-
-2012-02-10 22:39:08 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix warning
-
-Deleting debug printing had made a variable unused.
-
-2012-02-10 22:26:39 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix sleeping bug
-
-The text-edit-height patch introduced a bug that did not have any consquences
-(yet), as the extra arg erroneously included leftover from a previous
-SetValues call happened to be the same as one of the intended args.
-
-2012-02-10 20:51:41 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix unloading of first engine on tourney start
-
-Because NextTourneyGame was loading a new engine before ReserveGame was
-called to unload it with dummy game nr = -1), the first engine proc kept
-hanging.
-
-2012-02-10 18:39:09 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Remove some of the most verbose debug output
-
-
-2012-02-10 17:46:35 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Delete some unused WinBoard bitmaps
-
-There waere up-side-down knight icons that apparently hid by mistake
-in the bitmaps directory: they were not part of WinBoard
-
-2012-02-10 17:39:48 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Cosmetic: change 4.5 to 4.6 in xboard.conf comment
-
-
-2012-02-10 17:35:22 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix crash on empty combobox menu XB
-
-XBoard crashed when a combobox without items was opened, as could easily
-happen in the Load Engine dialogs when -firstChessProgramNames contained
-no items, as it would without configuring. Now the creation of the popup
-menu is suppressed in that case.
-
-2012-02-10 17:13:36 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix position of checkbox XB
-
-With the large height the widget get in internationalization, the
-checkboxes are position way too high above the text. To shift them down
-a dummy borderless label widget is drawn above them (when needed).
-
-2012-02-10 15:07:35 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix heights in Engine Output window XB
-
-The icons did not fit in the space above the memos anymore, so the height
-of this area is now left free.
-
-2012-02-10 14:55:48 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Derive height of text-edits in dialogs from message widget
-
-With internationalization the default height of buttons has inexpliquably
-inreased compared to that of text-edits, messing up the layout of the
-GenericPopUp. The message widget is now used as a emasure of how high
-the widgets should be.
-
-2012-02-10 14:21:37 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Configure XBoard engines and textures
-
-The new -useBoardTexture option is needed in xboard.conf, as we want to
-distribute with the texture on, while the compiled-in default is off.
-A list of 4 engines has been configured (fairymax, fruit, crafty, gnuchess),
-as the Load Engine and Match Options checkboxes crash XBoard when the list
-is empty. The -recentEngines option is set to 0 to make sure the code
-associated with it is never executed: the code is still experimental,
-and the required front-end support is only present in WinBoard anyway.
-
-2012-02-10 13:30:58 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Update Dutch WinBoard translation
-
-
-2012-02-10 13:18:48 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Create room in some WB dialogs for translations
-
-
-2012-02-10 13:17:30 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add 5 missing strings to WinBoard translation template
-
-
-2012-02-09 23:03:58 -0800 Arun Persaud <arun@nubati.net>:
-new developer release
-
-
-2012-02-09 23:04:46 -0800 Arun Persaud <arun@nubati.net>:
-updated po-filies
-
-
-2012-02-09 22:59:05 -0800 Arun Persaud <arun@nubati.net>:
-updated Changelog, NEWS, etc.
-
-2012-02-09 22:44:39 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix non-bug in WinBoard
-
-The IDM_RecentEngines was not used in symbolic form everywhere.
-
-2012-02-09 18:46:08 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix MAXENGINES in WinBoard
-
-The front-end arrays for expanding the engine list measured 1000 entries,
-in stead of MAXENGINES, leading them to overflow.
-
-2012-02-09 13:05:42 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement kludge to set options through Move Type-in
-
-A leading "!!! " will cause the rest of the line to be parsed as
-command line. Very dangerous, as an unknown option (e.g. because of a typo)
-will cause a fatal error, which makes XBoard exit.
-
-2012-02-09 13:04:44 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Put move number in Eval Graph title
-
-
-2012-02-09 13:00:09 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement -pgnNumberTag option
-
-A new (persistent) boolean option controls if the sequence number is to
-be written in saved tourney games as a Number tag, to make it easier
-to correlate games with debug files.
-
-2012-02-09 12:55:52 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Create separate debug fil for each tourney game
-
-Users can now apecify a -debugfile with %d in its name, and this will
-be replaced by the sequence number of the game. TwoMachinesEvent then
-starts by opening a new file when the name has changed, so that each
-game will go to a different file, with recognizable name.
-
-2012-02-09 12:51:25 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix bug in WB combobox readout
-
-The previous patch exposed a latent bug in the readout of the generic popup.
-
-2012-02-08 23:25:31 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow grouping of engines in engine list
-
-Lines "# GROUPNAME" and "# end" enclose a group in -firstChessProgramNames.
-
-2012-02-08 17:47:46 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix TidyProgramName
-
-A trailing .exe was not removed if the engine name was quoted.
-
-2012-02-08 17:45:42 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Put recently used engines in WB menu
-
-A new option -recentEngines specifies how many engines should be listed.
-The list of nicknames is stored in the ettings file as -recentEngineList.
-The engines are appended to the Engine menu.
-
-2012-02-04 19:37:51 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix registering of EditTagsProg
-
-This was registered with X as EditCommentProc!
-
-2012-02-07 23:04:49 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Increase max nr of engines to 2000
-
-Move the #define for MAXENGINES also to common.h, so that both the
-Load and Tourney dialog use the same maximum.
-
-2012-01-19 23:01:20 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix fix of switch to mono-mode
-
-The previous fix had == in stead of != for testing if mono-mode had changed.
-
-2012-01-19 22:21:38 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Make New Variant dialog visible in mono-mode
-
-All colored buttons did get a black background, and also black text...
-Use timer background color in stead, which is white.
-
-2012-01-19 20:48:37 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Incease size of WB array of translated items
-
-For the BoardOptions dialog 42 items are now needed
-
-2012-01-19 17:18:25 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement Clone Tourney button XBoard
-
-This makes use of the new GenericUpdate().
-
-2012-01-19 16:34:13 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement GenericUpdate function
-
-This does the opposite from GenericReadout: it copies the current
-parameter values into the dialog.
-
-2012-01-19 12:19:27 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix arrow damage with highlightDragging XB
-
-With highlight dragging the highlights of the previous moves are cleared
-when lifting the piece. Logically, this should also clear the arrow, but
-to do that requires a board redraw, which is not done at this stage. (And
-even then this would only be effective after marking the arrow damage,
-which is not done yet either). As a temporary fix, we repair the arrow
-by redrawing it.
-  This patch has moved marking of the arrow damage from DrawArrowHighlight
-to a separate routine, so a future better fix can also call that when the
-arrow should be erased.
-
-2012-01-18 16:01:50 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Prevent unnecessary loading of engines
-
-For engines that can be reused, the unloading at the end of a pairing
-is in some cases wasteful, as the same engine will be used in the next
-pairing as well. In simple gauntlets the gauntlet engine will always
-stay first engine, while in multi-gauntlets the oppent engine will stay
-the same for an entire round. In these cases unloading is now suppressed.
-
-2012-01-17 22:22:32 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Reset protocol version before loading new engine
-
-The protocol version was not reset, so if the previous engine was v1,
-the newly loaded engine would not be sent a protover command, so
-that its features would remain unknown!
-
-2012-01-17 19:33:32 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Give focus to board window after ICS login
-
-toprevent that the focus remains on any popped up chat boxes, it is
-explicitlly set otherwise. The board window is preferred over the
-ICS interaction window, because you can type from there to the ICS anyway,
-and it makes all accelerator keys available.
-
-2012-01-16 14:37:05 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix seek-graph popup and  popdown
-
-Clicking outside the board area in WB (e.g.on the clocks) would also
-trigger seek-graph 'popup'. This is now suppressed by testing for
-y-coord > 0. In addition, the seek graph is automaticaly taken down
-when we step to another position in the current game (using buttons,
-arrow keys or whatever).
-
-2012-01-15 21:29:11 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Suppress empty lines when observing on VICS
-
-Capture of the engine kibitzes when observing an engine game with
--autoKibitz on was still leaking a linefeed on the Variant ICS
-(but not FICS or ICC!?).
-
-2012-01-15 21:24:12 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix printing non-numeric kibitz with -autoKibitz
-
-Messages that were not considered kibitzed engine PV info for lack of
-numeric content, were kibitzed as coming from "your opponent", which
-is nonsense if you were iobserving, and masked the source. Fortunately
-star_match[0] is still holding the original name, at that point.
-
-2012-01-11 17:33:29 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix 4 warnings
-
-
-2012-01-11 17:00:38 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Use same translation of "vs." everywhere
-
-
-2012-01-11 17:08:18 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add new translations to WB language file
-
-
-2012-01-11 16:20:17 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix re-allocation of PGN-cache memory
-
-It  allocated 8 times too much!
-
-2012-01-11 12:47:38 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix height board dialog
-
-
-2012-01-11 12:34:39 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Enable WB time-control dialog even when no clock mode
-
-The dialog could be called from the tournament dialog to set a TCfor
-the tourney even when currently in game-viewer mode, so it'd better work.
-
-2012-01-11 12:28:43 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Exempt variant seirawan from -disguisePromoted inheritance
-
-This is not a variant where promoted Pawns have to be distingushed
-from primordial pieces, as captured pieces do not go into the holdings.
-
-2012-01-09 21:23:52 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add control for overrideLineGap in WB Board dialog
-
-Make it a checkbox to choose between 0 and -1.
-
-2012-01-09 20:56:40 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add Ctrl-D as alternative to Ctrl+Alt+F12 in WinBoard
-
-The acellerator key Ctrl+Alt+F12 seems reserved on Windows 7.
-
-2012-01-09 20:52:05 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix seek graph for VICS
-
-The sought command on the open-source ICS code is ICC-like (no terminating
-line), although the server is FICS like. So also accept prompt as seek-graph
-trigger on FICS.
-
-2012-01-09 20:27:01 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Open WB startup chat boxes only after logged on
-
-The init code for opening the chat boxes ismoved to DisplayIcsTitle().
-
-2012-01-07 20:31:34 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Install mime types directly
-
-
-2012-01-07 20:29:10 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Install desktop files directly
-
-
-2012-01-07 20:19:09 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Install icons directly
-
-Rather than letting make-install copy the pixmaps to the XBoard data
-directory they are installed directly from the source files. The name
-of the TRN icon was also corrected and changed.
-
-2012-01-05 18:41:13 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Update texi file and remove duplicate control
-
-Some missing option descriptions were added. The highlight-dragging
-control was removed from the General Options dialog, as it did the same
-as Show Target Squares. -highlightDragging wa changed to a volatile option
-with default value true, making it effectively disappear as an XBoard
-option. (In WinBoard it is still persistent.)
-
-2012-01-05 15:55:54 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Remove the direct commands to the engines
-
-
-2012-01-05 21:15:11 -0800 Arun Persaud <arun@nubati.net>:
-forgot to list new desktop files in EXTRA_DIST section in Makefile.am
-
-
-2012-01-05 20:08:23 -0800 Arun Persaud <arun@nubati.net>:
-added some autogenerated po files to .gitignore
-
-
-2012-01-05 20:05:44 -0800 Arun Persaud <arun@nubati.net>:
-added desktop and mime-type association to autoconf install process
-
-This should install and uninstall the mime assocciation and also the icons.
-Also renamed the desktop files to avoid possible name collisions.
-
-2012-01-03 21:30:59 -0800 Arun Persaud <arun@nubati.net>:
-code cleanup: make function definition confirm to GNU coding style
-
-change everything in the main directory to
-
-void
-funcname (int a, int b)
-
-format
-
-2012-01-03 18:43:18 -0800 Arun Persaud <arun@nubati.net>:
-Updated copyright notice to 2012
-
-
-2012-01-03 21:32:04 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement -viewerOptions
-
-A mechanism is added to allow the user to configure persistently if the
-game viewer that starts on clicking PGN files will use -ncp mode, or
-load an egine for analysis (or, in fact, do anything). This by introducing
-a persistent string option -viewerOptions, which will be parsed as a
-command line after the real command line when the option -viewer was present.
-
-2012-01-03 11:29:00 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix crash in auto-comment
-
-Trailing linefeeds in AppendComment were not properly stripped off,
-leading to a mismatch between the allocted and used memory, and thus
-possible buffer overruns.
-
-2012-01-02 23:46:18 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix crash at match end
-
-The -afterTourney option had broken old-style matches, because the ranking
-string that was tested for "busy" is not set there at all, and remains a
-NULL pointer, which strcmp doesn't like.
-
-2012-01-01 19:56:58 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add desktop files for PGN viewer and tournament player
-
-The desktop files define startup commands for handling PGN, FEN and
-tourney files, calling xboard with the proper command-line options.
-
-2012-01-01 19:53:02 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add xml file for defining mime types
-
-The file xboard.xml defines application/x-chess-pgn, aplication/x-chess-fen
-and application/x-xboard-trn as mime types for *.pgn, *.fen and *.trn files,
-so these files can be associated with XBoard in various modes.
-
-2012-01-01 19:41:39 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add icons for PGN and tourney files
-
-Icons are provided in two sizes: 32x32 and 48x48.
-
-2011-12-29 19:55:33 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Clear square markers on new game
-
-Now that the markers can stay on after a first click, they need to be
-explicitly cleared when moving to another board, including a new game.
-
-2011-12-29 15:51:18 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Abandon single-letter menus in tinyLayout
-
-Now that the items on the main menu bar are clipped, it iso longer
-necessary to abbreviate them.
-
-2011-12-29 15:38:46 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement peeking previous position in WinBoard
-
-The backspace key is used to temporarily display the previous position.
-
-2011-12-29 15:32:20 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix parsing of faulty PGN tags
-
-A closing bracket could be missed in a malformed tag
-
-2011-12-29 15:29:00 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix parser for variant seirawan
-
-The new parser didnot understand gating suffixes with /, and did not
-allow any suffix at all on SAN castling moves.
-
-2011-12-28 22:32:38 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Try to not confuse ICS rating adustments as shouts
-
-An explicit pattern match for the rating adjustment is added before
-matching the shouts.
-
-2011-12-28 22:21:54 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Describe -overrideLineGap option in texi file
-
-
-2011-12-28 22:03:30 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Use <Enter> in stead of Ctrl+. for peeking last move
-
-I commented out the explicit detection of the Ctrl key, as this
-is not needed when there are no 'unnatural' Ctrl keystrokes used
-for binding.
-
-2011-12-28 19:37:49 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Next try for menu-bar sizing
-
-This time request the width needed to just fit everything, and then start
-shaving off pixels from the currently largest until the entire thing fits.
-
-2011-12-28 15:17:49 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Clip texts on menu bar
-
-The width of the items on the main menu bar is restricted so the bar
-will never exceed board width.
-
-2011-12-28 14:01:53 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix format in temporary timing printf
-
-
-2011-12-28 13:38:59 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Don't test drops as mate evasions in variant seirawan
-
-
-2011-12-28 13:36:23 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix ICS castling rights
-
-Copying the castling rights together with CopyBoard seems to have
-broken handling of ICS rights, where ParseBoard12 prepares a board
-in a local variable, an copies it before parsing the rights.
-
-2011-12-28 13:35:10 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix initial holdings ICS seirawan games
-
-
-2011-12-27 18:31:05 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix sending of S-Chess gating moves to ICS
-
-Normal moves did not get the gating suffix sent.
-
-2011-12-27 17:56:07 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix menu grayout after illegal move
-
-TheThinkingEnables were not reset to user state after the engine rejected
-the entered move as illegal.
-
-2011-12-27 13:26:36 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow setting of holdings with edit command
-
-For the benefit of Fairy-Max' Seirawan Chess implementation, the edit command
-no also sends holdings contents (if the engine sent feature xedit=1), encoded
-as pieceType + '@' + holdingsCount (if the count is non-zero).
-
-2011-12-24 17:54:16 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix out-of-bounds access in check test
-
-Thepath to make the check test work with drops had broken the test
-after null move (both have rf<0), which led to corruption of the high
-word of the black clock.
-
-2011-12-24 17:51:22 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix legality of Spartan promotion to king
-
-In the check test promotion to King is only allowed if there are not
-yet 2 kings.
-
-2011-12-21 22:17:01 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix switching back from mono-mode XB
-
-Suppressing unnecesary X-server calls in InitDrawingSizes had broken
-switching back from monoMode, because the animVars have to be recreated
-for that, and this was only done when the variant changed.
-
-2011-12-21 22:09:02 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix showTargetSquares in mono-mode XB
-
-Make the marker dots black (captures) and white, and draw a circle
-in the opposite color around them in monoMode.
-
-2011-12-21 22:00:26 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix arrow highlighting in mono-mode XB
-
-Draw a line around it in darkSquare color in monoMode.
-
-2011-12-21 17:48:33 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix alignment of generic browse button XBoard
-
-The width ofthe browse button is now read back after creating it,
-and subtracted from the preceding text edit.
-
-2011-12-21 14:41:31 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add -afterTourney option
-
-Only the instance pinting the tourney result will execute this.
-
-2011-12-22 21:01:43 +0100 Byrial Jensen <byrial@vip.cybercity.dk>:
-Fix buffer possible overflow when writings tags
-
-PGNTagsStatic() could overflow its buffer and is removed. PGNTags() do the work instead of calling it.
-It starts by calculation the required buffer size and then allocate the buffer.
-PrintPGNTags() now prints directly to the file without having a buffer.
-
-2011-12-22 15:01:31 +0100 Byrial Jensen <byrial@vip.cybercity.dk>:
-One more string marked for translation
-
-And it is moved inside the if statement that uses it.
-
-2011-12-22 14:30:08 +0100 Byrial Jensen <byrial@vip.cybercity.dk>:
-Fix checking of return value from snprintf()
-
-snprintf() returns the needed space excluding the trailing 0 byte, so
-it has truncated if the returned valued is greater than or EQUAL TO the buffersize
-
-2011-12-19 16:49:31 +0100 Byrial Jensen <byrial@vip.cybercity.dk>:
-Fix unportable memory initialisation
-
-Memory sat to zero by calloc() cannot safely be assumed to have the pointer value NULL
-
-2011-12-19 13:16:58 +0100 Byrial Jensen <byrial@vip.cybercity.dk>:
-Add 2 strings for translation
-
-
-2011-12-19 11:25:11 +0100 Byrial Jensen <byrial@vip.cybercity.dk>:
-Remove the last 2 compile warnings in gamelist.h
-
-
-2011-12-19 11:17:48 +0100 Byrial Jensen <byrial@vip.cybercity.dk>:
-Add #include "moves.h" to gamelist.c for def. of CopyBoard()
-
-
-2011-12-19 11:11:34 +0100 Byrial Jensen <byrial@vip.cybercity.dk>:
-Definition of TimeMark moved from 3 c files to backend.h
-
-
-2011-12-19 01:21:46 +0100 Byrial Jensen <byrial@vip.cybercity.dk>:
-Transfer a pointer to the promoChar from PromotionPopUp() to PromotionCallback(). Fixes #34980
-
-
-2011-12-18 17:24:07 +0100 Byrial Jensen <byrial@vip.cybercity.dk>:
-Duh! Initialise the argument to sscanf() inside the loop, so it always gets a known value when sscanf() fails.
-
-
-2011-12-18 17:18:12 +0100 Byrial Jensen <byrial@vip.cybercity.dk>:
-Give numeric options the value 0 if a non-numeric text is entered (one more place). Before the value ended up undefined.
-
-
-2011-12-18 17:08:46 +0100 Byrial Jensen <byrial@vip.cybercity.dk>:
-Give numeric options the value 0 if a non-numeric text is entered. Before the value ended up undefined.
-
-
-2011-12-18 15:41:46 +0100 Byrial Jensen <byrial@vip.cybercity.dk>:
-Fix possible crash on 64-bit systems when copying game or position
-
-The two convertproc's for X selections caused reads out of bounds on 64-bit systems.
-I hope that this is the right solution. I am not experienced with X stuff, but it
-follows that I have seen in other programs, testing shows that copying still works,
-and the reading out of bounds have disappearinged with this patch.
-
-2011-12-18 13:26:20 +0100 Byrial Jensen <byrial@vip.cybercity.dk>:
-Fix a possible crash in the file browser
-
-If the OK button was selected in the file browser when no file was selected
-there was a read out of bounds which could crash xboard
-
-2011-12-17 22:54:34 +0100 Byrial Jensen <byrial@vip.cybercity.dk>:
-Fix a memory leak in Sound Options
-
-
-2011-12-16 02:57:20 +0100 Byrial Jensen <byrial@vip.cybercity.dk>:
-Fix crash when selecting user soundfile due to free() of not malloc()'ed memory
-
-
-2011-12-16 02:32:37 +0100 Byrial Jensen <byrial@vip.cybercity.dk>:
-Make GenericPopUp() more readable by using more named flags instead of numerals
-
-Defines the flags SAME_ROW (value 1) and NO_OK (value 2) for use with buttons and endmarks.
-There should no functional change.
-Also add a code comment where a condition depends on an uninitialised value. There is no direct harm, as both
-branches do the same (that is nothing) when the value is uninitialised.
-
-2011-12-15 02:51:36 +0100 Byrial Jensen <byrial@vip.cybercity.dk>:
-Add NO_GETTEXT flag for combobox. Fix bug #34991
-
-Define NO_GETTEXT flag to avoid calling gettext() for comboboxes, and define COMBO_CALLBACK
-flag to call comboCallback() when an item is selected in a combobox (no new code for this,
-just a symbolic value instead of a number). The flags are used for the min field of struct Option.
-NO_GETTEXT is used for the Select engine combobixes in the Match Options and Load engine windows.
-
-2011-12-13 19:48:37 -0800 Arun Persaud <arun@nubati.net>:
-only translate entries in CreateComboPopup if strlen>0; fixes #34991
-
-
-2011-12-12 19:06:26 -0800 Byrial Jensen <byrial@vip.cybercity.dk>:
-fix for repeating key issue, with this allissues this bug should be closed; fixes #35000
-
-
-2011-12-12 18:45:05 -0800 Arun Persaud <arun@nubati.net>:
-also don't translate selection in ComboSelect; fixes #34991
-
-
-2011-12-12 18:40:23 -0800 Arun Persaud <arun@nubati.net>:
-make entries in CreateComboPopup not translateable; fixes #34991
-
-
-2011-12-10 16:06:47 -0800 Arun Persaud <arun@nubati.net>:
-fix translation for engine list; fixes #34991
-
-* click on browse button should be recognized in translated versions
-* width of button should auto-scale
-
-2011-12-10 11:04:17 -0800 Arun Persaud <arun@nubati.net>:
-change keybindings that don't use ctrl, make MoveTypeInProc ctrl aware; fixes #35000
-
-two keybindings were using keys without modifiers, adjusted these to use the ctrl key.
-Furthermore when typing in moves we need to check if ctrl was pressed and ignore those inputs.
-
-Also added documentation for these keybindings.
-
-2011-12-10 10:51:18 -0800 Arun Persaud <arun@nubati.net>:
-replaced unicode character for "'" in xboard.texi
-
-
-2011-12-10 10:08:48 -0800 Arun Persaud <arun@nubati.net>:
-removed Iconify function. Should be handled by the window manager.
-
-
-2011-12-08 20:53:13 -0800 Arun Persaud <arun@nubati.net>:
-marked an error messages for translation
-
-
-2011-12-08 20:33:29 -0800 Arun Persaud <arun@nubati.net>:
-translation: updated uk.po
-
-
-2011-12-03 17:52:23 -0800 Arun Persaud <arun@nubati.net>:
-fixed size of XBoard icon to 48x48
-
-the icon gets installed in the 48x48 directory, but was >200 pixel wide. This gave a warning during rpm creation.
-
-2011-12-03 08:07:32 -0800 Arun Persaud <arun@nubati.net>:
-updated pot file
-
-marked a lot of new strings for translation
-
-2011-12-03 08:06:42 -0800 Arun Persaud <arun@nubati.net>:
-added new files to po/POTFILES.in
-
-
-2011-12-02 22:13:36 -0800 Arun Persaud <arun@nubati.net>:
-marked more strings for translation
-
-
-2011-12-02 20:08:01 -0800 Arun Persaud <arun@nubati.net>:
-translation: added danish translation
-
-
-2011-12-01 18:45:55 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Change encoding of seirawan ICS gating-castlings
-
-In stead of using upper/lower-case promoChar, the ICS now uses
-RxK notation, like WinBoard writes in SAN, for better consistency.
-
-2011-11-30 15:38:21 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Put promo-suffix on ICS move in variant seirawan castlings
-
-The distinction upper-case / lowercase determines gating at R / K
-
-2011-11-28 11:56:18 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Refrain from making unnecessary resize X request
-
-The window resizing code in InitDrawingSizes is suppressed when no
-change is needed. Similarly, changing piece bitmaps is suppressed when
-we stay in the same variant (and InitDrawingSizes is called e.g. because
-of chaging lineGap through the Board dialog).
-
-2011-11-27 22:27:00 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix parsing of O-O castling in variant janus
-
-The new parser did not realize it meant e1i1 rather than wild e1h1.
-
-2011-11-26 22:28:23 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Show 50-move counter also when observing ICS games
-
-To not cheat 50-move display was suppressed in ICS mode,
-but for observing a game this made no sense.
-
-2011-11-26 22:22:07 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Ignore ICS game starts when already in game
-
-The advance switching of the variant on game-start messages was
-disruptive for users with gin=1, which also sends such messages
-for other games than your own. For now fixed by only reacting on
-them when idle (detected by invalid game number).
-
-2011-11-11 18:16:19 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix WinBoard  clock-click bug
-
-Clicking on the clock in WinBoard also called the LeftClick routine
-for handling clicks on the board. This led to the from-square being set
-to some inalid value, so that the next genuine board click was interpreted
-as a to-click, with undesired effects, especially with legality testing off
-or in EditPosition mode, where weird things are accepted.
-
-2011-11-06 17:20:01 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add feature-override options
-
-A few (dangerous) options are added to allow a user to override
-engine features, or change their defaults, by supplying a string
-with feature commands (e.g. "sigint=0") which tricks XBoard into
-thinking the engine sent that. There is a -featureDefaults which is
-processed before the engine features, and -first/secondFeatures
-which is parsed just before engine initialization.
-  This goes horribly wrong when the user wouldtry silly things like
-including 'option' or 'done' features!
-
-2011-11-05 12:32:39 -0700 Arun Persaud <arun@nubati.net>:
-translation: updated uk.po
-
-
-2011-11-04 21:58:39 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix handling of -secondOptions option
-
-The -firstOptions and -secondOptions settigs were not swapped when
--singleEngieList was true, so the second engine's options would never
-be set in that case, but used for the first engine.
-
-2011-11-04 21:55:21 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Accept setup command in variant fairy even with legality testing on
-
-Variant fairy does not really have a defined opening position, but lots
-of pieces defined, so we might want to play with legality checking on,
-but still rely on the engine for the opening position
-
-2011-11-04 21:52:20 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Set pieceToCharTable by setup command even when ignoring FEN
-
-When the user starts from a set-up position, the egines default
-openingposition has to be ignored, but the pieceToCharTable would
-still be relevant.
-
-2011-11-04 21:48:24 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Change default sweep-promotion choicein queenless variants
-
-The initial scanning of the sweep piece until a defined piece is found
-is now in the increasing direction (still starting at Queen), so that
-the fairy pieces are suggested before R, B and N.
-
-2011-11-03 16:38:57 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Clear board markers when moving to other position
-
-Now the markers from -showTargetSquares would stay on after a first click
-for the benefit of a click-click move, they would also stay on when not
-finishing the move, but operating the < > buttons in stead to call up
-other positions. ForwardInner and BackwardInner now clear the markers,
-like they also cleared highlights.
-
-2011-11-01 18:30:22 -0700 Arun Persaud <arun@nubati.net>:
-updated Changelog, NEWS, etc.
-
-2011-10-25 15:32:27 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix two warnings
-
-2011-10-24 20:00:28 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Don't adjust clock on right-click in EditGame mode WB
-
-This was a change that was already done for the left-clicks, but somehow
-never made it togit for the right-clicks
-
-2011-10-24 19:50:25 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Change chase message in .lng files
-
-2011-10-24 19:31:08 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Let perpetual-chase message mention square
-
-In stead of a boolean, PerpetualChase now returns the square the chased
-piece ends on (encoded as an int), and on adjudication it will be printed.
-
-2011-10-24 19:26:02 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add mechanism to translate variable messages in WinBoard
-
-A message prefixed with % in the lng file will be considered a match
-if it matches the start of the text to be printed, and the remaining
-part of the latter will remain untranslated. This was needed to allow
-translation of the perpetual change message, now it indicates the square
-of the chased piece.
-
-2011-10-24 19:20:13 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Use other interpretation of Asia rules for chase detection
-
-The detection of perpetual chases now ignores pre-existing checks.
-
-2011-10-12 17:28:48 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix crash on loading garbage game file
-
-The code to cache games was not resistant to moves before a valid
-game start, or a game filewithout any games at all.
-
-2011-10-08 20:43:52 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Incorporate variant type in book hash key
-
-This prevents booksforone variant being used for another, and allows
-multi-variant books.
-
-2011-10-07 15:41:44 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Update language.txt file
-
-
-2011-10-07 15:34:01 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Update Dutch lng file
-
-
-2011-10-07 15:21:53 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix Load Options dialog WB
-
-Defined fastkeys; reordered elements so that fastkeys focus edit they
-are intended for. Changed some of the more obscure texts. Corrected
-list of transatble dialog items, adding a few missing ones.
-
-2011-09-13 20:01:42 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix some warnings
-
-Prototypes were added, ormoved from backend.c to backend.h.
-
-2011-08-26 12:44:08 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Put 'Load Next' button back in WB Game List
-
-The '>' button for loading the next (filtered) game is re-instated in the
-WinBoard GameList. The main window has now accelerator keys Ctrl+Up and
-Ctrl+Down for loading the previous and next filtered game.
-
-2011-08-26 12:31:59 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Speed up position search and consider side to move
-
-The position search is made to pay attention to the side to move,
-which produces a speedup, because we only have to compare half the
-game positions when looking for an exact position match. An addition
-we now keep track of the total number of pieces, and abandon a game when
-it drops below the number of pieces in the position we seek.
-
-2011-08-21 23:16:15 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Dynamically allocate move cache
-
-A small statically declared cache good for 250k moves (~3200 games)
-will be expanded in steps of a factor 8 when it overflows.
-
-2011-08-18 18:40:38 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Translate search strings
-
-
-2011-08-17 22:55:21 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement flipped search
-
-
-2011-08-16 15:29:03 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Debug position search cache
-
-
-2011-08-15 18:44:37 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-profile
-
-
-2011-08-18 18:01:54 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Translate search-mode strings
-
-
-2011-08-15 16:59:39 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Quickscan
-
-
-2011-10-23 16:04:00 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix duplicate loading of second engine in tourneys
-
-To decide if new engines should be loaded, it was tested if first.pr
-equalled NoProc, assuming that ReserveGame would have left the engine
-loaded if the next game would need the same engines. But a reuse=0 engine
-could have caused termination of the first engine process anyway, while
-the second would still be alive. So unconditionally starting of the second
-engine would cause redundant engine processes to abound.
-  Now we only start new engine processes if both engine processes are dead.
-
-2011-10-23 15:53:32 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix PV walking with -fSAN
-
-The SAN options had broken the PV walking, because the shelving of the
-walked PV to create space for the conversion to SAN of an incoming PV
-would not be properly undone, but would add the walked PV to the game.
-
-2011-10-20 12:39:10 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Refine clock adjusting
-
-Adjusting the clocks by shift-clicking them is now only allowed with
-autoCallFlag off, and an error-popup results when you do it otherwise.
-Also, swtching to Edit Game mode won't reset the clocks to the stored
-value anymore when you have just adjusted it.
-
-2011-10-12 17:43:33 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix crash on adding items near book end
-
-When Edit Book would add so many entries near the end of an opening
-book that the end of the added info would surpass the old end of the
-file, the copying of the tail got stuck in an infinite loop, extending
-the file without limit with repeating info.
-
-2011-10-12 17:41:18 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Print message on wrong use of Clone Tourney
-
-The user is urged to first provide the name of an existing tourney file
-when he presses the button without one. The button is also renamed.
-
-2011-10-12 17:38:33 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix invalid combobox entry WB
-
-A combobox label that was not in the list (because the user typed
-it, rather than selecting one) would cause a crash.
-
-2011-10-12 17:23:57 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix crash on loading garbage game file
-
-XBoard crashed when a game file contained a PGN game result before
-any valid game start, because data would be written in a game-list
-node that did not exist yet. This would occur frequently when garage
-was read; basically any asterisk in the data would do it.
-
-2011-10-11 23:31:01 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add control to set -discourageOwnBooks WB
-
-
-2011-10-11 20:53:52 -0700 Arun Persaud <arun@nubati.net>:
-only require 0.17 of gettext
-
-This seems to solve many build issues with older distrubtions and doesn't seem to be a problem with newer ones.
-
-2011-10-11 23:31:01 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add option -discourageOwnBooks
-
-This boolean option determines the default setting of the hasOwnBook
-option before a tourney game starts. By setting it, the hasOwnBook
-option is cleared, which would enable use of the GUI book, like the
-engine was installedwith the /firstXBook option. An explicit option
-on the engine install line can still overrule this, though.
- A control to set this option has been added in the XBoard Match dialog,
-and it is saved in the tourney file to force consistency.
-
-2011-10-11 22:58:01 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Reset initString and computerString on engine load
-
-These options are typically engine specific, and must thus be
-reset to their default value before loading a new engine.
-
-2011-10-11 22:43:00 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add Romanian lng file
-
-
-2011-10-07 16:55:45 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Reactivate Falcon Chess
-
-Now the patent for this has expired, Fairy-Max plays it again.
-So the XBoard support for it is now switched on, and an item for it is
-added to the XBoard New Variant menu dialog. (WinBoard still had that.)
-In the array the Lance was changed for the Falcon as a wild-card piece.
-
-2011-10-03 09:59:40 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Update texi file for new features
-
-
-2011-10-03 10:30:30 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Update texi file for position search
-
-The new items in the Load Game Options dialog are described, as well
-as the command-line options used to store them in the settings file.
-
-2011-10-03 09:28:50 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Remove paragraph about .Xresources from texi file
-
-Command-line options can no longer be set through .Xresources already
-since version 4.5.0.
-
-2011-10-03 09:13:05 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add Dutch WinBoard translation
-
-
-2011-09-28 20:46:21 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Prevent Edit Book window from stealing focus (WB)
-
-In WinBoard updating the book window would give it focus. Now the
-focus is given back to the main window, except when the Edit Book
-window is first created.
-
-2011-09-28 20:42:00 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Make book-window update part of HistorySet
-
-
-2011-09-26 16:01:28 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix position loading in tourneys
-
-In a tourney a position must be loaded when the engine is not yet
-started, and the old version of LoadPosition could not handle that:
-It would start up the engine, and send it commands unconditionally.
-
-2011-09-26 15:58:07 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix resetting -fSAN on engine change
-
-There were two places for loading another engine, Load (from menu) and
-SetPlayer (in tourneys), and the previous patch for this missed the
-second one.
-
-2011-09-26 15:51:49 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Make too-long game non-fatal
-
-GameEnds is now called when the maximum number of moves is exceeded,
-rather than DisplayFatalError. Not sure if this properly terminates the
-game in all situations, but DisplayFatalError (after calling GameEnds)
-would also wait for the user to confirm the error popup before really
-exiting, so that in an unattended automatically running tourney there
-was not much fatal, and the entire tourney would in fact be finished.
-
-2011-09-26 15:46:58 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Keep book file open
-
-Rather than opening and closing the book file on every probe, it is
-now only closed and opened when the name of it changed.
-
-2011-09-26 15:44:23 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Suppress playing of book moves with weight 0
-
-Bookmoves with weight 0 could be played when the sum of the weights
-of all moves from the position was 0. So it was not possible to suppress
-the only move by giving it weight 0. This is now corrected.
-
-2011-10-01 15:00:47 -0700 Arun Persaud <arun@nubati.net>:
-added NEWS for release of 4.5.3
-
-
-2011-09-29 20:31:23 -0700 Arun Persaud <arun@nubati.net>:
-better contrast for XBoard icon on a dark background
-
-
-2011-10-01 13:09:59 -0700 Arun Persaud <arun@nubati.net>:
-translationproject.org: updated Ukrainian translation
-
-
-2011-09-29 20:49:42 -0700 Arun Persaud <arun@nubati.net>:
-updated pot file and send to translation project
-
-
-2011-09-22 12:09:39 +0100 Thomas Adam <thomas@fvwm.org>:
-(tiny change) Clarify "-name" option is Xt-only
-
-There's a set of standard options with will get used by Xt, before Xboard
-itself will use them.  "-name" is an Xt-only option which will set the name
-and resource of the window to the value requested.  It has nothing to do
-with setting opponent/player names.
-
-Signed-off-by: Thomas Adam <thomas@fvwm.org>
-
-modified slightly by Arun Persaud (renamed itemx to item and fixed option name for CMAIL)
-
-2011-09-22 17:17:16 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix LoadGameOrPosition starting up engine
-
-When LoadGameOrPosition() is called from NextMatchGame(), the Reset() that
-is called in LoadPosition() when you are running from a position file
-would prematurely start up the engine (without waiting for features).
-The kludge to suppress this behavior for the explicit call to Reset()
-is now extended to encompass LoadGameOrPosition.
-
-2011-09-22 17:14:34 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Clear fSAN option before new engine load
-
-This to prevent the new engine will inherit it from the previous one.
-As the command-line options an only set it, this has to be done by
-explicit assignment.
-
-2011-09-13 23:02:35 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix some warnings (prototypes)
-
-
-2011-09-13 19:55:44 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix write failures in concurrency
-
-In WinBoard a flood of writes by differentprocesses to the same PGN can
-cause a "permission denied" error in fopen. This patch causes retries after
-a random (5-15 msec) wait, in such cases.
-
-2011-09-13 19:52:19 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Move HistorySet to back-end
-
-This existed in exact duplicates in both front-ends.
-
-2011-09-13 19:46:36 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Make DoSleep front-end wrapper for msec sleep
-
-DoSleep was #defined as a macro for Sleep/ sleep, with an argument
-indicating msec in WinBoard, but seconds in XBoard. Nuw it universally
-uses msec, by defining it as a wrapperin the respective front-ends.
-(For XBoard itwraps FrameDelay.)
-
-2011-09-10 22:35:14 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix playing sounds when -soundProgram is empty
-
-It made no sense to just send the names of the sound files to the shell.
-So the soundProgram isnow tested for being an empty string, and if so,
-PlaySound() is aborted.
-
-2011-09-10 14:01:58 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add -afterGame option
-
-This option specifies a command line to be executed after each game of
-a tournament. To execute the line, the function RunCommand() was added
-in the front-end. For XBoard this was a simple call to system(); for
-WinBoard part of the StartChildProcess code was cloned (without the pipe
-stuff).
-
-2011-09-10 13:52:12 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Upgrade -serverMoves option
-
-The (undocumented) -serverMoves option was upgraded to conform to the
-ChessLive! protocol extension for sending SAN tags. A bug that allowed
-upper-case promoChar to leak through was also fixed, and code was added
-to write engine PVs to file. Flushing of the game result to the -serverMoves
-file was also fixed.
-
-2011-09-10 13:50:25 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix AppendComment
-
-The joining of two comments was not performed correctly if the second
-one had the braces yet to be added: the closing brace was not added in
-that case.
-
-2011-08-30 19:39:59 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Auto-popup ICS Input Box
-
-Typing to the board made the move type-in pop up, but in ICS mode
-this is of course undesirable. Like in WinBoard, the ICS Input Box
-should pop up in stead, and accept the typed character. This is now
-realized. If the box already exists and has text in it, the typed
-character is appended to that text, and the box is given focus.
-Spaces now also are considered as printable.
-
-2011-08-30 18:27:58 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Slightly decrease sensitivity of sweep actions
-
-The sweep-selection of promotion and drop pieces, or step through the PV
-was so sensitive that it was difficult to reliably make the intended choice.
-It has now been reduced by a factor 1.5-2, and the sweep selection and
-PV walk now also use a different value.
-
-2011-08-27 21:16:58 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Extra buttons in WB Tournament dialog
-
-A button to copy contents of the tournament fileto the dialog is added.
-Buttons to invoke the Common Engine and Time Control dialogs are also added.
-
-2011-08-27 21:15:00 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix crash on typing non-existent enginein Load Engine dialog
-
-
-2011-08-24 10:30:46 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix display state after failed analysis attempt
-
-When an engine responded to the "analyze" command with an "unknown command"
-message, a Reset was done without altering the display, causing a
-discrepancy between display and internal state, which caused confusion
-when it finally corrected itself. I replaced the Reset call by an
-EditGameEvent call, to preserve the loaded game. The Reset was presumably
-used to allow for the case where the engine would be so upset by the
-analyze command that it needed to be reset by a "new" command, but this
-seems overly paranoic for an engine that just recognized the command
-as an unknown one.
-
-2011-08-24 09:58:35 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix treatment of PGN score/depth info with linefeeds in them
-
-This is needed to make the PGN more Arena-proof.
-
-2011-08-24 09:51:10 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix quoting in Load Engine dialog
-
-A (space-contaning)  engine name only needs quoting when there are parameters,
-because the over-all engine command will be quoted anyway. For UCI engines
-duplicate quoting is fatal, because when passed as the -ec argument of
-Polyglot, it will be quoted yet another time, also with double quotes.
-
-2011-08-23 21:24:23 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Replace Analyze File by Analyz Game function
-
-
-2011-08-22 22:16:58 -0700 Arun Persaud <arun@nubati.net>:
-new developer release
-
-
-2011-08-22 22:26:56 -0700 Arun Persaud <arun@nubati.net>:
-update po files
-
-
-2011-08-22 22:24:23 -0700 Arun Persaud <arun@nubati.net>:
-updated Changelog, NEWS, etc.
-
-
-2011-08-22 22:09:19 -0700 Arun Persaud <arun@nubati.net>:
-malloc.h is not needed
-
-
-2011-08-20 22:21:40 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix ICS move-list header mistaken for null moves
-
-
-2011-08-18 18:53:09 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow two-games-per-opening to work with book
-
-A new option -seedBase is added, and written to the tourney file.
-It allows all XBoard instances working on a tourney to generate the same
-'random' openings in a deterministic way, based on this one-time seed
-and the game number. When -loadGameIndex equals -2, it uses the same seed
-for an odd and the following even game.
-
-2011-08-18 18:51:56 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix use of random
-
-In some places rand() was called explicitly, rather than through the
-(configured) place-holder random().
-
-2011-08-18 17:34:33 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Translate search texts
-
-
-2011-08-18 10:29:35 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add -useBoardTexture and -usePieceFont options
-
-These options suppress the use of the given texture files or piece fonts
-without relying on the kludge to disable them by prefixing an asterisk
-to the file or font name. Checkboxes have been added to the Board dialog
-to control them. The user can now set piece font in WB font dialog.
-The sample text can be used to specify the -fontPieceToCharTable,
-the font name itself the -renderPiecesWithFont value.
-
-2011-08-16 23:10:59 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix crash on start without settings file
-
-A primordial -1 in currCurrent caused a crash when WinBoard was started
-without ini filein game-viewer mode.
-
-2011-08-12 12:08:18 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix generic-popup failure after empty engine-settings dialog
-
-The error exit ofthe Engine #N Settings dialog in case of an engine without
-options forgot to clear currentCps, with as a result that the generic popup
-thought every subsequent popup was an empty one, and kept repeating the
-'engine has no options' error message for every dialog.
-
-2011-08-10 11:27:22 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow substitution of engines during tournament
-
-Two buttons are added in the tournament options dialog, for upgrading
-and for replacing a tourney participant. Lots of tests on the validity
-of the request are done, and if all are passed, the tourney file is
-written with the new participants (and in case of replace) with the
-results of the replaced engines erased from the -results string.
-
-2011-08-08 11:00:12 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix up/down arrows in game list
-
-
-2011-08-08 10:31:24 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add key bindings for loading next/previous game of list
-
-These bindings are set both for the game list and the board window.
-To make them useful, focus has to be transferred to the board widget
-after loading (it tends to transfer to the tags window), which now
-seems to work, but not always. From the game list the shellWidget
-seems to get focus rather than the board, which is bad as it is not
-sensitive to the key bindings.
-
-2011-08-08 09:58:31 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow deletion of last book move
-
-The book-edit function refused to delete the entiremove list,
-for no good reason. This limitation now has been lifted.
-Also the error message that the key for the current book entries
-is different from that of the currentposition has been suppressed
-if there were no entries found for the current position (so that the
-book is positioned at the next key), so that it is possible to add
-moves from scratch.
-
-2011-08-08 00:19:53 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Speed up parser
-
-Line numbers > 1, which are common, can exit already during move parsing,
-to save lots of matching on resultsand castlings.
-
-2011-08-07 15:13:00 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix missing files in file browser
-
-The file browser was throwing away the first two files, assuming
-they were "." and "..". Alas, this is no longer true on every Linux.
-Now we actuallyc compare for these names, before skipping them.
-
-2011-08-06 11:57:59 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Delay file loading to allow expose event first
-
-
-2011-08-06 09:29:22 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix paging
-
-
-2011-08-05 22:39:41 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Better fix of crash on empty game list
-
-An empty list is now replaced by a list containig a simple message.
-
-2011-08-05 20:31:44 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add plain arrows as key binding for stepping forward/backward
-
-
-2011-08-05 20:30:03 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Debug position selection
-
-
-2011-08-04 13:22:55 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Print progress during load / selection of game
-
-The title bar of themain window is used to display a running count
-of the number of games loaded / searched.
-
-2011-08-04 12:44:45 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Parse PGN tags without allocating memory
-
-In WinBoard malloc/free did not seem to work when preparing the game list,
-leading to a huge memory list when ParsePGNTag was used. The added code
-parses the required tags in an alternative way as a work-around.
-
-2011-08-02 22:58:34 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement searching games in Game List for a position
-
-For this it was needed to reconstruct all positions of the games
-without loading them, so they could be compared to the currently
-displayed position. A new routine GameContainsPosition is made for that.
- In Disambiguate, when the global quickFlag is set, we now do the
-disambiguation ignoring check,and only if this leads to an ambiguous
-move, we repeat it taking check into account to see if that resolves
-the ambiguity. This causes us to miss if unambiguous moves are illegal
-because they put their King in check, but who cares?
- We now do not make game-list line when not needed. If we do not filter
-by text, but by position, there is no need for preparing the game-list
-line for games that are not selected. All for efficiency.
-
-2011-07-28 20:47:35 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow entry of variations in PlayFromGameFile mode
-
-Adding variations is more like editing a comment,and not really editing
-the game. Therefore we allow it on loaded games. As soon as we are in a
-variation, we temporarily switch to a (hidden) EditGame mode, restoring
-the original mode when we revert to the main line.
-  We now also stay in PlayFromGameFile mode after loading a game,
-And opening variation (fromtheComment window) in PlayFromGameFile mode
-is also allowed.
-
-2011-07-27 18:47:45 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Force Move History refresh after loading/reverting variation
-
-The Move History window was not refreshed after switching to or from
-a variation if that variation happened to have the same length as
-the main line. Now a change in storedGames since the previous refresh will
-force a full refresh to avoid this. For this to work, storedGames
-did have to be decremented after ToNrEvent in PopInner, because ToNrEvent
-calls HistorySet before the history is restored, so we don't want
-it to snatch away the full refresh. A call to HistorySet had to be
-added after PopInner is done restoring the move history.
-
-2011-07-27 17:45:12 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Popdown Comment window on new game
-
-What is in this window cannot possibly remain valid, and can even be harmful.
-
-2011-01-19 11:46:41 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow null move in analysis and edit-game mode
-
-In some games it is allowed to pass your turn. The internal
-representation picked for such a null move is the drop of an empty
-square, (EmptySquare,DROP_RANK,0,0). Computer-algebraic form is "@@@@",
-SAN form is "--", (for compatibility with ChessBase / SCID), and the
-non-compliant forms "null", "pass"and "Z0" are recognized in
-the parser as well. ApplyMove() has to test for this special case
-(to not actually clear a1), and a way to enter the pass for the user had
-to be found (clicking the opponent clock, like in EditPosition mode).
- The null move is made move irreversible to prevent repetition draws
-spanning null moves being adjudicated.
-  Such entry of null move is now allowed in AnalyzeMode and EditGame mode.
-Because Chess engines will not accept null moves, SendMoveToProgram had
-to be adapted to send not the move, but the position after it in
-case of a null move. This erases the move history in the engine,
-so it will not react to 'undo' for that null move, so BackwardInner
-had to be adapted to test for intervening null moves, and if one is
-found, approach the target from the other side after loading the
-earliest position before it not crossing another null move, and
-then loading the moves upto the target.
-  XBoard clock clicks had to be fixed, to pay attention to the shift key.
-
-2011-07-25 21:58:58 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Give WinBoard Game List its own font
-
-The font fort he Game List used to be shared with the Engine Output and
-Move History windows, but this made it impossible to use a figurine font
-in the latter two (which displays piece symbols for capitals) without
-messing up the Game List. An option -gameListFont has been added to specify
-the font for the Game List(and save it in the settings file), while a
-control for it is added in the fonts dialog.
-
-2011-07-21 19:02:01 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix crash on OK after Save Changes in Tags and Comment popup.
-
-The global variables tagsText and commentText were used to pass
-a string obtained from a widget (and thus not malloc'ed), which
-caused a crash when the GenericReadout tried to use those variables
-for the new value. Fixed by using GenericReadout (which does malloc)
-to read out the text,in stead of GetWidgetText.
-
-2011-07-16 09:31:12 -0700 Arun Persaud <arun@nubati.net>:
-Revert "fixed segfault in xengineoutput", fixed in the backend now (from HGM)
-
-This reverts commit 33a0e73843115ff6d4eacaf963a38f2e8b20b295.
-
-2011-07-16 14:53:14 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Suppress some XBoard warnings
-
-
-2011-07-15 11:21:29 -0700 Arun Persaud <arun@nubati.net>:
-fixed segfault in xengineoutput
-
-
-2011-07-11 20:04:57 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Disable -showTargetSquares in ICS mode
-
-Help like this is considered cheating on FICS, so it is disabled for
-all 'classical' ICS variants. (For variants eyont Shogi we don't care.)
-
-2011-07-10 21:20:49 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Put grab on sweep-selecting in Edit Position
-
-A right down-click starting a sweep-selection event did not grab the
-mouse events, so that an up-click outside the window would go
-unnoticed, and the pointer motion stayed coupled to selecting the
-piece until the next click. By returning 2 from the RightClick back-end
-routine we request the grab.
-
-2011-07-09 13:50:58 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Write more labels on score axis of eval graph
-
-The labels for +/-1 and +/-3 are now also written, provided there is
-enough space.
-
-2011-07-09 13:28:08 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Improve Eval Graph  with -evalZoom and -evalThreshold
-
-The score range between -1 and +1 can now be blown up by a factor
-specified through -evalZoom. The threshold below which histogram bars
-are no longer printed (wich used to e hard-coded 25 centi-Pawn) can now
-be set through the -evalThreshold option.
-
-2011-07-09 13:18:07 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Print reversible plies done in stead of plies to go
-
-Printing the number of plies left to the draw-adjudication point was
-confusing when the N-move rule was set to a non-standard value.
-In stead we now print the number of plies since the last irreversible
-move, so the user can compare it to both the engine claim point (100)
-and the adjudication point he set (which might be beyond 100).
-
-2011-07-09 13:13:49 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Let WB eval graph react ot single left-click
-
-Unlike in XBoard, the WinBoard eval graph awatys had required double-
-clicking to go the the corresponding move, while there really is no
-reason for this, as it is no text edit, and single-clicks have no function
-(like select).
-
-2011-07-07 19:37:12 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add -scoreWhite option
-
-This is similar to -absoluteAnalysisScores, except that it works in
-all modes, and flips the score given by the engines in the engine-output
-window when black is to move.
-
-2011-07-07 19:28:04 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Print 50-move counter in Engine-Output title
-
-
-2011-07-07 18:50:56 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Display score/depth in Eval Graph title
-
-No longer print it in the comment window.
-
-2011-07-04 11:06:12 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Let -sweepPromotions also work for click-click moves
-
-A click-click promotion no longer causes auto-queening, but the down-click
-on the to-square causes a Queen to stick to the mouse pointer, and then
-allows the user to change it through dragging backwards before releasing it
-with an up-click.
-  In WinBoard this required a slight change in DragPieceBegin, because
-the dragged piece there only was made visible when the mouse pointer
-actually started moving (and dragInfo.pos was set), presumably under the
-assumption that before mouse move the piece was already on the clicked
-square. Which in the case of a to-square was of course not true. (Because
-a piece jumps to the mouse pointer when the click is not centered on a
-square, this gives less jittery static clicks.) So DragPieceBegin has
-been given an extra argument now, to indicate whether it should attach
-the piece to the mouse pointer immediately.
-  To make the click-click sweepPromotions work in Shogi (for which the
-drag-drop sweepPromotions could never work, because it is not clear the
-piece has a posibility to promote when you pick it up), translation of
-the sweep-selected piece to a Shogi promoChar had to e added.
-
-2011-07-04 10:45:04 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Improve -showTargetSquares on click-click moves
-
-The markers on move targets are now kept when a first click merely
-selects a piece, rather than dragging it elsewhere. The second click
-(by definition on the to-square) then clears the markers.
-
-2011-07-04 11:23:05 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Let PGN parser accept lower-case piece in drop moves
-
-The @ sign prevents amiguity with other notations anyway.
-
-2011-07-04 12:42:12 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix parser.c line endings
-
-
-2011-06-29 20:29:12 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix writing searchTime in tourneyFile
-
-This had to be derived from the variable searchTime, which gives it
-in seconds, as appData.searchTime (a string in minutes) is not reliable,
-as it contains the command-line value, which might have been altered
-through the time-control dialog.
-
-2011-06-29 20:25:00 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix resetting searchTime if other TC mode is chosen (XB)
-
-This fixes a bug in the new time-control dialog.
-
-2011-06-29 14:32:43 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix coords display on large boards
-
-The file indicators can now run upto 'w'. Only the lowest digit
-of the rank number is printed, from a table that is valid to 22.
-
-2011-06-29 13:53:00 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix crash on making too-long FEN
-
-The buffer for in PositionToFEN was only 128 bytes, which was not enough
-for large boards such as 19x19 Go. It is enlarged to MSG_SIZ(512) now.
-There also is some approximate overflow checking added (but it is not
-fool proof in case there are holdings...)
-
-2011-06-29 13:36:26 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix drop moves on boards with more than 10 ranks
-
-The internal encoding for rank 16 is '@', and thus ambiguous with drop
-moves. They were always printed as 16, breaking drop games on large
-boards. The ambiguity is now solved (for boards with more than 16 ranks)
-by checking if the preceeding letter is upper case, in which case it
-cannot be a fileindicator, but must be a piece, and thus a drop.
-
-2011-06-29 13:29:38 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Don't one-click move when legality testing is off
-
-
-2011-06-23 21:18:11 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Reorder controls in Engine Setings dialog WB
-
-To get tabbing through the controls in left-to-right order, they are
-now added to the template structure in that order. Also add a tabstop
-to Label options, so that JAWS will read those.
-
-2011-06-23 14:02:50 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add tab stops in WB generic popup
-
-The WinBoard generic popup did not put tab stops on push buttons,
-including the OK and cancel button, with as a consequence that these were
-skipped when tabbing through the dialog controls. In addition the tabbing
-could not begin before the user selected one of the controls with the mouse.
-  Now all buttons have tab stops, and the cancel button is given focus
-when the dialog pops up.
-
-2011-03-10 20:06:39 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement Grand Chess
-
-Grand Chess requires a lot of exceptional handling similar to Superchess
-and Great Shatran, because it also allows only promotion to a captured
-piece. In addition it shares the enlarged promotion zone with Makruk and
-Shogi, as well as the fact that promotion can be deferred. The 10-rank
-board furthermore required a better generalization of double-pushes and
-e.p. captures. On such a board double puhes are now allowed from 2nd and
-3rd rank, e.p. capture from 5th and 4th.
-
-2011-01-28 19:20:38 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow promotion to Pawn with legality testing off
-
-In stead of ImpossibleMove promotionto Pawn now merely is an
-IllegalMove, so it can be played with legality testing off.
-
-2011-01-24 15:06:17 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Create some space in WB New Variant dialog
-
-
-2011-06-20 23:53:49 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow double-digit rank numbers
-
-The parser already understood double-digit numbers on input, and
-CoordsToAlgebraic produced them on otput. This patch also fixes sending
-of the moves to the computer, for which the moveList was used. The latter
-stored 10 as ':', etc,to always get a 4-char move, the characters of which
-were frequently being converted to fromY or toY by adding/subtracting ONE.
-To not break that the one-character encoding of rank number is kept in
-moveList, but in SendMoveToProgram, characters > '9' are converted to
-double digits.
-
-2011-06-23 11:26:48 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add Absolute Analysis Scores in Genral Options dialog XB
-
-
-2011-06-23 11:16:34 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix texi file, and update it further
-
-
-2011-06-20 12:15:14 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Modified po
-
-
-2011-06-22 17:51:51 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Update texi file
-
-
-2011-06-22 11:02:45 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Restore echo after ^C in ICS password
-
-
-2011-06-22 10:45:27 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix some warnings
-
-
-2011-06-19 20:30:09 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Increase efficiency of SAN generation / disambiguation
-
-**************** Risky patch! **********************
-The algorithm used for disambiguating and generating SAN was extremely
-inefficient, because it generated all pseudo-legal moves from the relevant
-position, and then for each of those did a check test (involving generation
-of all moves of the opponent), before determining if the move matched the
-(proposed or given) SAN move. While it is pointless to generate moves
-with a piece that does not match (let alone checking them for legality).
-And for a piece that matches, it is pointless to test legality of moves
-that do not match the to-square.
-  To speed up the process GenLegal and GenPseudoLegal have been equiped
-with an argument that can indicate the piece type of the required move,
-so they can skip generating moves with other pieces. TestLegality,
-Disambiguate and CoordsToAlgebraic make use of this facility, and set also
-(through global variables rFilter and fFilter) a to-square filter to be
-applied in the GenLegalCallback before it tests the move for legality.
-  This patch is especially tricky for Crazyhouse, where the piece indicated
-in the move might not be the piece actually on the board, because the latter
-is a promoted Pawn, and has to be demoted toits base type before the
-comparison.
-
-2011-06-19 16:18:15 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix compile errors WinBoard
-
-The patch to make non-existing options non-fatal broke WinBoard. All calls
-to ExitArgError from it now supply a third argument TRUE to fix it.
-
-2011-06-19 14:28:09 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add -fSAN / -sSAN options
-
-These options force the PV of the applicable engine to be converted to SAN.
-They make use of the existing ParsePV routine, after shelfing a possible
-PV (from user PV walking) to free the space after the last move.
-Could be costly in terms of CPU usage.
-
-2011-06-19 10:56:25 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Cure flicker in Move History window, fix highlighting
-
-The highlighting of the current move in the Move List window by selecting
-it did not always work, because some other windows were clearing their text
-widgets by selecting the contents and killing it, thus snatching the
-selection away. This has been changed to setting XtNstring to an empty
-string as a method for clearing without side effects on the selection.
-As a bonus the Engine Output window now also no longer has the black flicker
-on clearing it.
-  In addition, triggering a scroll by setting the insertion point to the
-end of the text caused excessive flicker in the Move List window, apparently
-clearing it and redrawing from scratch, (even if there was no scroll motion),
-to the point where on my slow laptop the move history stayed entirely blank
-during a rapid succession of moves. This has been combatted by using the
-end-of-line action procedure (which does not seem to suffer from this) to put
-the insertion point at the end, when we need to scroll to close to the end.
-
-2011-06-18 23:48:13 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix crash on clearing new Move List window
-
-When a new game started and a previous game had filled the Move List
-window, a crash occurred because an attempt was made to undo the
-highlighting of a no-longer-existing move, and then scrolling to it.
-
-2011-06-18 20:46:57 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Use sound for ICS tells also with engine telluser popups
-
-The telluser and tellusererror commands now can be assigned a sound.
-
-2011-06-18 20:45:12 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add Score in Move List option to general options dialog XB
-
-Now that we have a WinBoard-style Move History window, this option is
-no longer a no-op in XBoard.
-
-2011-06-18 12:42:41 -0700 Arun Persaud <arun@nubati.net>:
-new developer release
-
-
-2011-06-18 12:38:32 -0700 Arun Persaud <arun@nubati.net>:
-updated Changelog, NEWS, etc.
-
-
-2011-06-18 12:51:10 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Update window itle after last game of match
-
-The result printed behind player names during a match would still be the one
-without the game, differing from what the popup would show, which looked
-sloppy enough for people to complain about it.
-.
-
-2011-06-18 10:26:31 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Make WB generic popup translatable
-
-When used for internal settings (as in the Load Engine and Tournament
-Options dialogs), the option names are now subectto translation.
-
-2011-06-17 21:05:00 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Redo Move History with generic popup in WinBoard style
-
-The use of color and boldness to make the move list more readable
-unfortunately cannot work in Xaw; reverse video by selection is used as an alternative to highlight the current move.
-
-2011-06-17 21:19:41 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Remove stray else
-
-Due to an erroneous else, the window parameters of Move History were
-not retreived (and thus incorrectly saved) when the Engine Output was up.
-
-2011-06-14 18:47:30 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Make non-existing opton in settings file non-fatal
-
-It is rather difficult to recover from a situaton where the settings
-file contains an unknown option (e.g. because you downgraded to a
-previous version that had fewer options), especially in WinBoard, where
-the user settings file is in a hidden folder, and people might not be
-able to find it, let alone edit it. By just skipping the line with the
-offending option, rather than generating a fatal error, when reading
-from a settings file, such options will be automatically purged from the
-file as soon as you save settings.
-  Small problem is that the user cannot be warned, as the initialization
-has not progressed far enough at this point to generate error popups. In
-XBoard we can at least print to the console, but in WinBoard there is no
-warning at all. But the worst thing that can happen is that new options
-in a settings file of a more advanced version will revert to their
-defaults.
-
-2011-06-14 18:20:37 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Change long form of -tf option to -tourneyFile
-
-This is a more logical name, and in the WinBoard docs it was already
-described as such. Also remove the -processes option, which in the
-current design of the tourney manager is no longer used.
-
-2011-06-14 18:17:08 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix default of -remoteUser
-
-This has to be an empty string, rather than NULL, to prevent XBoard from
-segfaulting when the -gateway option is used.
-
-2011-06-14 13:32:38 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add -at and -opt options as alternative for @
-
-Windows XP and Vista shortcuts do not display command lines with @ in
-them correctly, and these optionsprovide a work-around for that.
-
-2011-06-14 12:46:36 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix empty-string option values in XBoard
-
-
-2011-06-14 12:40:11 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix crash on switching sound in Vista
-
-When choosing a new sound the wave form of the old one was free'ed, but
-because built-in sounds are not really malloc'ed, this led to a crash.
-
-2011-06-14 12:36:16 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Update WB docs for tourney manager
-
-
-2011-06-14 12:35:01 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add icon to WB for tournament files
-
-
-2011-06-10 16:52:01 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Redo Time Control dialog with generic popup
-
-As poor-man's disabling of the unneeded input fields, we print the word
-"Unused" in them.
-
-2011-06-10 14:14:45 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Some refactoring in xoptions.c to separate out front-end
-
-
-2011-06-10 12:38:08 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Redo New Shuffle Game dialog with generic popup
-
-The buttons are slightly renamed, and in stead of having an 'off'
-button to clear it, shuffleOpenings now has its own checkbox, which is
-ticked when a fixed or dynamic random is chosen with the buttons.
-
-2011-06-10 11:58:17 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix type of shuffleOpenings
-
-This was a Boolean option, and thus accessed by the args.h code as such,
-while it was declared as an int (and used in backend.c as such). This
-could have led to problems with different endianness.
-
-2011-06-09 23:57:43 -0700 Tim Mann <tim@tim-mann.org>:
-Internationalize the file browser.
-
-The file browser was missed in the previous round of
-internationalization and had gotten broken by setting international =
-True in its widgets.  I got nothing but segfaults trying to set
-international to False in the file browser widget subtree when it was
-True in the main window, so I gave up and did the
-internationalization.  It turned out to be pretty easy.
-
-As a tiny bonus fix, I removed some ../'s from includes, and you can
-now configure and build xboard in a subdirectory again.  This was
-useful for building both --enable-nls and --disable-nls from the same
-sources to compare functionality and make sure both still work.
-
-2011-06-08 20:26:28 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix crash at end of Swiss tourney
-
-
-2011-06-08 17:33:34 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix display of logos
-
-The logo files are now sought relative to the WinBoard install
-directory. Non-existing logos cause clearing of the logo, rather than
-letting the logo of the prevous engine hang. Logo change is requested
-explicitly from the back-end (when an engine is initialized for a new
-game), rather than using the kludge in StartChileProcess. This required
-a dummy UpdateLogos routine in the XBoard front-end.
-
-2011-06-08 18:02:31 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix parameter handling in adapter command
-
-A backslash was not considered the end of an option name, which was
-fatal for UCCI2WB, which needs %fd\\%fcp in its command line.
-
-2011-06-08 17:16:54 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Clear Engine-Output pane when initializing engine
-
-This to prevent output from the previous game hanging there during the
-next game, when the engine that is really playing is in book and
-doesn't produce thinking output there.
-
-2011-06-08 17:20:01 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix display of last move of last match game
-
-When a game was adjudicated (e.g. because XBoard detected mate) GameEnds
-would trigger an exit if it was the last game of the match, and thus
-never returned, while the ShowMove was called only after return from
-Adjudicate. An extra ToNrEvent is now used in GameEnd in this case to
-cause ShowMove to be called before exiting. (Ugly kludge...)
-
-2011-06-08 17:38:43 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix concurrency in Swiss tourneys
-
-The pairing engine was consulted for the next round before all games of
-the previous round were finished, if other XBoard instances were still
-playing games. This caused the instances finishing early to stall
-indefinitely. This is fixed by moving the Swiss pairing code to after
-the syncInterval code. The normal pairing code (the call to Pairing)
-must stay before it, because it determines the syncInterval. So ther is
-a bit of tourneyType dependence cluttering up the code here. :-(
-
-2011-06-08 17:27:01 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Give error popup when pairing engine fails
-
-An invalid pairing now produces an error popup to inform the user, so he
-knows why the tourney stagnates.
-
-2011-06-08 17:24:41 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix clock mode in tourney starting from -ncp mode
-
-When a tourney started from -ncp mode, which was allowed in MatchEvent,
-because the tourney loads its own engines anyway, the menu enablings and
-clockmode where not restored to their 'GNUMode' state.
-
-2011-06-08 17:11:31 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix round-robin schedule
-
-The first round was played twice, and the formulas used to derive the
-pairing were not even-odd resistant anyway. Both even and odd number of
-participants should work now.
-
-2011-06-08 17:08:55 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix interrupting tournament
-
-Stopping a tourney by using the Machine Match menu item did not wor
-properly.
-
-2011-06-08 16:57:09 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Improve quoting of engine name on install
-
-Rather than always using double quotes for the engine command, the
-engine filename is now double-quoted if it contains spaces (and no
-double-quotes), and the comand is single-quoted if it contains
-double-quotes (and double-quoted otherwise).
-
-2011-06-08 16:49:18 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Print sensible window title during tourneys
-
-Rather than the "(W-L-D)" in the title we now print game number and
-total games, plus indication of the tourney type (rr, gt or sw).
-
-2011-06-08 16:44:16 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Let XBoard propose name of tourney file
-
-Add an option -defaultTourneyName to configure the name that will be
-proposed in the Tournament Options dialog's tournament-file field. The
-option can contain %y, %M, %d, %h, %m, %s for year, month, day, hour,
-mintes, seconds of the curret time in %02d format, or %Y for the year in
-%04d format. Any tournament -file name is ignored when no participants
-are given. Participants without a tourney file remains an error.
-
-2011-06-08 16:30:34 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Improve Tournament dialog layout WB
-
-
-2011-06-08 17:05:02 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix -matchGames option
-
-The new MatchEvent code had broken the -mg option, and used always
--defaultMatchGames in stead.
-
-2011-05-30 19:55:13 -0700 Tim Mann <tim@tim-mann.org>:
-Fixed small bugs in several .po files, enabling these translations to be used.  They all probably need more work from the translation team. I don't speak any of these languages, but I did some spot checks either from my own knowledge or using Google Translate, and they generally look sane.
-
-- Several files were in utf8 but needed to be marked as such (that is,
-  "CHARSET" changed to "UTF-8").  Affected es.po, it.po, ru.po, vi.po,
-  zh_CN.po, zh_TW.po.
-
-- it.po was missing a \n at the end of one translation.
-
-- ru.po had unescaped double-quote marks in one translation.
-
-- vi.po needed to be normalized to Unicode normalization form C.  With
-  this fix, more characters display correctly, though at least one is
-  still missing in the X core fonts that xboard is able to use.
-  See http://vietunicode.sourceforge.net/ for more about Vietnamese.
-
-- zh_HK.po was written in big5 and then utf8-encoded on top of that,
-  making it unusable.  I stripped off the spurious utf8 encoding and
-  then used recode to convert the file to Unicode properly encoded as
-  utf8.
-
-Unfortunately, I wasn't able to test any of the Chinese translations,
-as I haven't been able to get XCreateFontSet to work in Chinese
-locales with any of the fonts I have installed, even after adding the
-Ubuntu language support packages for both simplified and traditional
-Chinese.  I did spot check a bunch of the translations using Google
-Translate.
-
-I've checked in a couple of tiny Perl scripts that I used to do part
-of the fixups on vi.po and zh_HK.po in case we need them again.
-
-2011-05-30 14:12:53 -0700 Tim Mann <tim@tim-mann.org>:
-The empty string can't be translated and it causes the gettext utilities to complain, so change _("") to "".
-
-
-2011-05-30 13:21:06 -0700 Tim Mann <tim@tim-mann.org>:
-Add a final wildcard default for fonts.  This gives XCreateFontSet more freedom and lets it find fonts for some obscure charsets where fixed-bold or fixed-medium etc. may not have one.
-
-
-2011-05-29 20:14:37 -0700 Tim Mann <tim@tim-mann.org>:
-Added "misc-fixed" as a fallback font to handle locales where adobe-helvetica does not have all the required characters.  The fixed font is ugly but does have a rather complete set of characters, while the helvetica font is missing Cyrillic characters (at least on my distro).  I haven't found a way to get a nicer font that includes Cyrillic to work with XCreateFontSet, but I don't fully understand why.  I'll try to improve things further in the future if I figure out what's all going wrong.
-
-In the process I had to rewrite the code to insert the pixel size into
-a font name (replacing a "*" in that field).  The new code is much
-more general.
-
-2011-05-28 23:55:42 -0700 Arun Persaud <arun@nubati.net>:
-translation: activated Ukrainian translation
-
-
-2011-05-28 23:41:24 -0700 Arun Persaud <arun@nubati.net>:
-translation: added new Ukrainian PO file from the TP
-
-
-2011-05-28 21:07:08 -0700 Tim Mann <tim@tim-mann.org>:
-Fix display of international characters outside the ASCII range.
-
-1) Set Xaw resources required for internationalization --
-   *international and *fontSet.
-
-2) Untangle the new XFontSet-aware code from the old FindFont code.
-   It doesn't make any sense to apply the old (and obsolete) size
-   searching code from FindFont to a font set, which contains fonts
-   that are all the requested size.
-
-3) With these changes, the -font option doesn't work at all when given
-   on the command line.  The -font option actually is parsed by the Xt
-   library, used to set the *font resource, and removed from argv
-   before xboard can see it, so the option didn't really work properly
-   with the new WinBoard-style option framework anyway.  Now that
-   -font is even more broken, I changed the documented name of the
-   option to -messageFont and changed args.h so the option is saved in
-   ~/.xboard as -messageFont.
-
-2011-05-28 21:05:00 -0700 Tim Mann <tim@tim-mann.org>:
-Move "hide thinking" option into alphabetical order.
-
-
-2011-05-28 21:01:25 -0700 Tim Mann <tim@tim-mann.org>:
-Fix a size mismatch in scanf.  Untested, but the code could not have worked properly without this fix -- scanf would have written 32-bit values to 16-bit fields, thus smashing adjacent memory.
-
-
-2011-05-23 19:05:36 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix layout tournament Load Engine dialog WB
-
-
-2011-05-23 19:03:56 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix ArgTwo warnings
-
-
-2011-05-23 19:00:00 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add Swiss tourneys through pairing engine
-
-An external program can be designated pairing engine through the new
-persistent option -pairingEngine. Defining the option will allow
-tourneytype -1 to be chosen for Swiss. In this case the pairing engine
-will be queried for a pairing before every new match game, by sending it
-the -results string, plus the command 'pairing' + game number.
-
-2011-05-23 17:37:43 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow generic dialog to ignore OK
-
-The EndMark callback can now suppress popdown of the dialog on OK, when
-it somehow does not like the values entered by the user. In XBoard this
-required all the callbacks to return a value.
-Caveat: A refused OK would still have set all new values given in the
-dialog!
-
-2011-05-23 17:22:58 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix CR in multi-line WinBoard text-edits
-
-The generic popup did not add CR when strings containing '\n' were
-printed in a multi-line text-edit, thus joining the lines. It was also
-not possible to type a CR in a multi-line text-edit.
-
-2011-05-23 14:16:17 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Let mentioning completed tourney file add one cycle
-
-Secifying a tourney file of a fully completed tourney will now resume
-that tourney with another cycle added. When there are still uncomleted
-games in the tourney, the usual error message will appear. There are
-also error popups added for when the user fails to specify a tourney
-file, or gives too few participants.
-
-2011-05-16 11:02:08 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Make engine startup failure non-fatal in WinBoard
-
-Unlike XBoard, which forks first, the parent process WinBoard has direct
-knowledge of a failure to execute the engine command, and used it to
-trigger a fatal error. The code doing this has now been disabled. Only
-in case of a first engine we switch back to -ncp mode in stead, but no
-action is taken to 'bury' the deceased engine process. Like in XBoard,
-errors in writing or reading the pipes will trigger this.
-
-2011-05-14 17:03:44 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add secondry adapter command for UCCI or USI
-
-The option -uxiAdapter can define a second adapterCommand, which will be
-invoked on encountering the options -fUCCI, -sUCCI and -fUSI, sUCI.
-
-2011-05-14 10:05:11 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Obey san feature when sending book moves
-
-Book moves were always sent in long algebraic, even when the engine had
-said it wanted to receive SAN.
-
-2011-05-14 10:03:20 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix initialization of engine state
-
-Some of the initialization relied on variables being zero at startup,
-which meant value from the previouly loaded engine hng on after loading
-a new one.
-
-2011-05-11 23:06:20 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Take account of holdings in book key
-
-The board is numbered by rank, for comptibility with Polyglot format,
-starting at a1. We then continue counting in the holdings 'files', in
-up-rank direction, each holding spanning the full board height (even if
-it is not fully used). Firstthe left (black) holdings, then the right,
-Even in Shogi this limits the square number to < 99, which is below the
-absolute limit of 128 (where we would run out of hash keys).
-
-2011-05-11 22:48:34 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Alow promotions and drops in book-editing
-
-
-2011-05-11 20:15:58 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Include learn info in book edit
-
-
-2011-05-09 21:55:10 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Adapt default directory of lng2po
-
-The path is prefixed with "../" to make it runable from the po directory.
-
-2011-05-09 21:20:35 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Recode some po files
-
-po files were generated with the aid of lng2po for Russian,
-Vietnamese, Chinese(simp) and Chinese(trad), using encodings CP1251,
-CP1258, GB2312 and BIG5, respectively.
-
-2011-05-09 20:11:32 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement Edit Book in XBoard
-
-
-2011-05-09 09:52:54 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Improve WB Load Engine dialog texts
-
-
-2011-05-09 09:48:27 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Make 'add to list' default in Load Engine dialog
-
-
-2011-05-09 09:33:39 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add -userFileDirectory option
-
-This volatile option is initialized from 'installDir'. It is
-primarily intended for configuration of WinBoard through its master
-settings file, and specifies an alternative place to create saveGameFile
-or look for other user files, in stead of looking in the installDir.
-
-2011-05-09 09:10:47 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add option -absoluteAnalysisScores
-
-This persistent option flips scores in the when black is thinking in
-analysis mode, just before they are printed in the engine-output window.
-
-2011-05-08 17:47:40 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Automatically play moves of clicked PV in analyze mode
-
-The Shift key now no longer needs to be pressed to play moves from the
-PV in analyze mode (so it could be given back its original meaning of
-starting a variation with the entered moves). In analyze mode the PV
-walk begins after the first move, so a static right-click plays the
-first PV move. To just peek the PV you have to walk to the start of it
-before releasing the mouse button. In other modes the PV walk
-stillstarts at the very end.
-
-2011-05-08 17:07:18 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Let ParsePV always generate SAN move
-
-
-2011-05-08 13:53:09 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix vscrolling in XBoard Engine-Output window
-
-After clicking the memos they scrolled to the bottom, because SetFocus
-put the insertion point at the very end of the text. This behavior is
-now reserved for text-edits containing less than 100 characters.
-
-2011-05-08 13:22:33 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix button sizing in generic popup
-
-
-2011-05-08 13:02:52 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow changing MultiPV setting from Engine-Output window
-
-In analyze mode a header line is printed in the first engine-output
-pane, which can be right-clicked to increase or decrease the number of
-PVs. (Only with engines that support the MultiPV option.)
-
-2011-05-08 11:28:44 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-No clearing of Engine-Output memos on stat01
-
-
-2011-05-07 23:27:50 -0700 Arun Persaud <arun@nubati.net>:
-updated xboard.pot with released version
-
-
-2011-05-07 22:56:53 -0700 Arun Persaud <arun@nubati.net>:
-new developer release
-
-
-2011-05-07 22:54:29 -0700 Arun Persaud <arun@nubati.net>:
-updated ChangeLog, NEWS, etc.
-
-
-2011-05-07 23:07:46 -0700 Arun Persaud <arun@nubati.net>:
-deactivated new languages for the moment...
-
-po files need some cleanup, probably better to wait until the translation-project looked at them
-
-2011-05-07 18:44:24 -0700 Arun Persaud <arun@nubati.net>:
-added translations generated via lng2po from all winboard languages
-
-
-2011-05-07 18:40:23 -0700 Arun Persaud <arun@nubati.net>:
-lng2po.sh: added command line options, GPL header
-
-also use a temporary file generated with mktemp instead of a hard coded one
-
-2011-05-07 17:53:10 -0700 Arun Persaud <arun@nubati.net>:
-fixed access rights to winboard language files (644 instead of 655)
-
-
-2011-05-07 14:55:55 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Import WinBoard language files into git
-
-
-2011-05-06 23:14:02 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Let Shift+RightClick on PV actually play the PV moves
-
-
-2011-05-06 18:06:48 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Make book-edit function WB
-
-The tags dialog is used to display the GUI book moves from the current
-position, and will be updated when you step or move to another one.
-The edited move list (with weights) can be written back to the book.
-
-2011-05-07 16:21:25 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix resetting engine options
-
-Not all options were reset, and -needsNonCompliantFEN was 'reset'
-to a completely wrong value, so that bad FENs would be sent.
-
-2011-05-06 18:51:20 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add -first/secondPgnName option
-
-This option replaces the tidy name of the engine in the PGN player tags
-of engine-engine games. In WinBoard engines can be installed with this
-option through a checkbox in the Load Engine dialog.
-
-2011-05-06 23:31:36 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Let XB generic popup define default file extensions
-
-
-2011-05-06 18:25:38 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Save time-control settings in tourney file
-
-Because parsing the options and storing them in appData is not enough,
-the time-control code setting the internally used parameters from the
-appData info in InitBackend was made into a subroutine, and also caled
-after parsing the tourney file.
-
-2011-05-06 20:40:34 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Put saveGameFile in tournament dialog
-
-
-2011-05-06 19:17:56 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Plug memory leak, filenames relative to installDir
-
-String options are consistently freed now, before assigning a new value
-to them through strdup. The init code now even does use strdup when
-setting defaults. This is important for optionslike -lgf, which are not
-saved in the settings file, and thus are usually left with their
-default. When a dialog to set them then uses free, this causes a crash.
-When setting the defaults uses strdup, ParseArgs can already free them.
-This plugs an important memory leak, as ParseArgs in now called to parse
-the tourney file before every tourney game (twice!), and the lists of
-participants and results in it can be quite long.  Macros are defined in
-common.h to make the code look simpler.
-  Filenames entered through the generic popup are now interpreted
-relative to the WinBoard installation folder, just as the saveGameFile
-already was. The code handling the atter was made into a subroutine for
-this.
-
-2011-05-06 22:02:53 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add WB new popup prototypes
-
-
-2011-05-06 18:58:08 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add partcipants at bottom in tourney dialog (WB)
-
-
-2011-05-06 18:56:53 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix range of tourneyType spin WB
-
-
-2011-05-06 18:15:23 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix exit popup in tourney mode
-
-Only the instance finishing the last tourney game will cause a popup
-with final standings. As long as there are still busy games, it exits or
-switches back to idle mode silently.
-
-2011-05-06 18:11:47 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix stopping of match in tourney mode
-
-
-2011-05-06 18:59:26 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add default extension in file browser
-
-
-2011-05-06 22:37:14 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Improve sizing of comment and tags dialogs
-
-There seems to be a bug in Xaw for the sizing of buttons; they get
-unpredicatble and weird sizes when the size is not explicitly set,
-possibly stretching the initial width of a dialog to rediculous values.
-Sizing back to a remembered value from the settings file then makes
-buttons overlapand text edits shrink to almost nothing. To prevent that
-we now define exlicit sizes for the buttons in tags and comment popups.
-
-2011-05-06 21:00:25 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix generic combobox bug
-
-The patch placing gettext markers was done wrong, setting the
-translated menu text outside the loop, so all entries became the same.
-
-2011-05-07 14:23:12 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix PV walking in analysis mode
-
-ParsePV assumed that the PV would always have been produced by an engin
-thinking about the final position of the game (or the one before it). In
-analysismode, however, the engine can be analysing positions internal to
-the game, and the PV would be considered invalid. This is fixed by
-cutting of the tail off the game (shelving it in variation fashion)
-before starting the PV walk, and reverting afterwards.
-  For this the PushTail and PopTail routines had to be split into an
-'inner' part, doing the pushing and popping, and an outer part, handling
-menu graying and popdowns (which is undesirable in in this application).
-
-2011-05-03 00:24:10 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Lift length-limit on text-edits in WB generic popup
-
-
-2011-05-04 13:53:05 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Lift limitation of text length in generic dialog XB
-
-All string options should now point to allocated memory, as strdup /
-free is consistently used on them. This is OK for values received from
-ParseArgs, but for non-arg intermediate variables that must receive strg
-values, such as in the comment and tags popups, strdup has to be used to
-initialize those.
-
-2011-05-04 14:53:02 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement Tournament Options dialog WinBoard
-
-The file browser now can select on extension WB generic dialogs,
-with a default based on the option.max value of the option for which it
-browses. A textBox can be forced to be multiline by putting the number
-of extra lines in option.min.
-
-2011-05-04 15:30:00 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Make option to draw second engine from first list
-
-
-2011-05-03 00:17:47 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix error message on engine load
-
-
-2011-05-04 15:09:33 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement Load Engine dialog in WinBoard
-
-The Load Engine dialog is implemented for WinBoard, and is invoked by
-the menu item Engine->Load, which formerly was Install 2nd. Install 1st
-is renamed 'Edit Engine List'. Unlike in XBoard, the dialog has separate
-fields for the engine executale and its parameters.
-  The dialog is implemented by converting the Engine Settings popup into
-a generic dialog generator.
-
-2011-05-04 13:43:06 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Load new logo on engine change WinBoard
-
-Picking the logo for the first engine is made into a subroutine. The
-code for picking the logo of the first engine was made into a subrroutne
-for this. We use the kludge to recognize the engine by its command line
-when starting a new engine process.
-
-2011-05-04 13:36:27 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow switching off match mode through menu
-
-The Machine Match menu item is now checkmarked, and no longer grayed
-during a match, and clicking it while a match is running will terminate
-the match after the current game. To not be left with hanging
-checkmarks, the checkmark is already removed duringthe last match game
-(which is logically equivalent to ordinary Two Machines mode anyway).
-
-2011-05-03 00:14:22 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Calculate and display tourney result
-
-
-2011-05-04 18:42:13 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement Tournament Manager
-
-New command-line options are added to specify the tourney: -tourneyType
-(-tt), -tourneyCycles (-cy), -participants, -syncAfterRound,
--syncAfterCycle, -results, to be saved on a -tourneyFile (-tf), but
-otherwise volatile. When a tourneyFile is specified during a match,
-a new routine NextTourneyGame is called from NextMatchGame before every
-game, to decide the pairing, and unload and redefine the engines, when
-needed. The XBoard Match Options dialog can be used to set the options
-and create the tournament file.
-  Actual loading of new engines is done by TwoMachinesEvent, which is
-now modified to also wait for the feature timeout of the first engine.
-Waiting for the matchPause is now also implemented there, after waiting
-for the engines (so they can be started during the pause).
-  Pairings and color assignment is now all done in an absolute
-(non-incremental) way, based on a new global game-number variable
-nextGame, which takes over the function of matchGame in a tourney. The
-latter is now used to count games between the same players, so it can be
-still used to derive the load-file indexes (again in absolute fashion).
-  The next game to play is already picked in GameEnd, so it can be
-decided if there is a game to be scheduled, or if we can terminate.
-
-2011-05-04 15:42:26 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Display note in stead of empty engine-settings dialog XB
-
-
-2011-04-24 18:02:20 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix crash on empty Engine Settings dialog
-
-The generic popup was not foolproof against this.
-
-2011-04-22 12:47:24 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Refactor code for loading games and positions in match
-
-The code in NextMatchGame and MatchEvent was nearly the same,
-(MatchEvent did a little more error checking, but that is never
-harmful), and could be combined. In stead of determining the load index
-incrementally, it is now calculated in an absolute way from the game
-number, so it can be used more easily in tournament mode.
-
-2011-04-21 22:37:56 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add callback possibility to combobox selection
-
-
-2011-04-24 17:15:23 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Lock game an position file during writing
-
-The use of flock() on the file desctiptor of the opened stream should
-guarantee multiple XBoard instances, saving on the same file, will not
-interleave their PGN games or FEN positions.
-
-2011-04-27 17:05:06 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Remove building rule for parser.c from WB makefiles
-
-
-2011-04-29 16:58:49 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix Engine Settings buttons in WinBoard
-
-This was broken by a leftover statement from debugging the -file/-path
-patch.
-
-2011-05-02 13:38:14 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement flock in WinBoard
-
-This system function seems unknown in a MinGW compile, so it is
-implemented with the aid of file byte-range locking, using a lock on the
-first 1024 bytes of the file as a semaphore.
-
-2011-04-29 23:06:43 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix grayout XB Match Options in ICS mode
-
-
-2011-05-03 00:22:40 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Delay loading of second engine until it is used
-
-
-2011-05-02 15:00:03 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix zippy bughouse partner bug
-
-The patchs to subject Zippy messages to coloriation was faulty, because
-there were messages recognized by zippy that were not colorized, and
-such messages would then not be 'read away' after zippy recognition
-(except for the first character). As a result the messages were
-processed over and over again.
-
-2011-05-04 10:59:43 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Silence more rpm warnings
-
-
-2011-05-01 20:33:50 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix warnings XBoard file browser
-
-All the prototypes have been moved to selfile.h, to force uniformity.
-The order of the #include files xstat.h and selfile.h had to be
-swapped, to make sure 'struct stat' is a nown type atthe time of
-prototype declaration. The event handler SFmotionList is considered
-wrong type because of its third argument (XMotionEvent in stead of
-XEvent), and had to be casted to (XtEventHandler) when passed to
-XtAddEventHandler.
-
-2011-05-04 10:56:05 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix some warnings and header-file improvement
-
-Ther were lot of 'extern' declarations in the x-files, so called
-'imports from xboard.c', (sometimes backend.c) which logically belonged
-in xboard.h (backend.h) to ensure their uniform definition. These have
-now been moved there. Some prototypes have been added in xboard.h as
-well, for functions that needed calling from xoptions.c.
-
-2011-05-04 10:50:12 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Create conversion tools for language files
-
-A shell script "lng2po.sh" is provided, to apply the translation given
-in a WinBoard .lng file to "xboard.pot", in order to generate a
-"language.po" file containing translations for all strings for which
-the .lng file had a translation. It makes use of a file "metascript",
-which is the ed script used to turn the .lng file in an ed script to
-turn the .pot into .po. For example, the command "./lng2po.sh
-espa?ol.lng" will create a file "language.po", which can be renamed to
-"es.po".
-****************************** WARNING ********************************
-  Note that the lng2po script does a "recode" that assumes the given
-.lng file is encoded in latin-1. This means it canot be used without
-modification for the Vietnamese and Chinese translation; you would have
-to replace latin-1 by the applicable encoding first (CP1258 / BG2312 /
-BIG5).
-
-2011-04-27 22:04:38 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Put gettext markers in generic dialog creator
-
-This is done by adding extra XtNstring argumentsto the widget gcreaton,
-so the displayed name can be different fromthe widget name.
-
-2011-05-01 19:56:38 -0700 Tim Mann <tim@tim-mann.org>:
-Use getaddrinfo instead of gethostbyname.  Hopefully this makes us compatible with IPv6 and with hosts that have more than one IP address.  However, I don't know of any chess servers that have either of those properties, so I couldn't test that.  I did test that xboard still works with freechess.org and chessclub.com and that it gives an error message for invalid host names.
-
-
-2011-04-24 11:18:28 -0700 Arun Persaud <arun@nubati.net>:
-updated German translation
-
-
-2011-04-24 11:17:43 -0700 Arun Persaud <arun@nubati.net>:
-replaced hardcoded email address with generic PACKAGE_BUGREPORT
-
-
-2011-04-23 10:51:57 -0700 Arun Persaud <arun@nubati.net>:
-updated po-files; updated german translation
-
-
-2011-04-23 10:51:02 -0700 Arun Persaud <arun@nubati.net>:
-updated list of files that include translation strings; updated pot-file
-
-
-2011-04-22 21:50:58 -0700 Arun Persaud <arun@nubati.net>:
-marked more strings for gettext that were only marked with N_()
-
-they need to be marked again with _() when they are used to get the translated string
-
-2011-04-22 21:39:22 -0700 Arun Persaud <arun@nubati.net>:
-updated translation files
-
-
-2011-04-22 21:37:22 -0700 Arun Persaud <arun@nubati.net>:
-added/fixed i18n support via gettext to xboard
-
-this was already added a long time ago, but now it's added again to
-autoconf. Also fixed some compile errors that showed up.
-
-2011-04-20 10:27:20 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Make engine startup error non-fatal
-
-When engine startup fails, do not generate a fatal error, but swicth
-back to -ncp mode. Write on broken pipe errors had to be suppressed for
-this.
-
-2011-04-20 14:35:50 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Make engine loadable during session
-
-A "Load Engine ..." menu item is added to the Engine menu, which pops
-up a dialog where one can replace the first or second engine by a new
-one, without destroying the game state. Switching from -ncp to engine
-mode needed activation of some menu items in SetGNUMode, and
-re-enabling clockMode. It was also important that noChessProgram is
-cleared before re-initializing the ChessProgramState.
-  The Load-Engine dialog can select from the list of installed
-engines, and also add a newly specified engine to this list. In this
-case it saves the directory, hasBook, and isUCI info with the engine,
-and optionally the current variant. When loading an engine with a
-specified variant, it resets the game and switches to the new variant.
-
-2011-04-18 15:56:47 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Generalize WaitForSecond to WaitForEngine
-
-
-2011-04-18 15:46:12 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add UnloadEngine routine
-
-
-2011-04-20 13:45:51 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Put engine initialization code in per-engine function
-
-Initializing of the ChessProgramStates first and second from the
-option settings in appData is now done by separate calls to the same
-routine. Clearing of options is added to the initialization. This is
-needed when reloading an engine. This is done in a separate routine,
-which could also be called on -reset options.
-
-2011-04-18 13:21:44 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Bring structure in appData engine options
-
-All options in appData that came in pairs for both engines are replaced
-by arrays of ENGINES (=2, for now) elements. The use of the named
-appData field that are replaced in the source is replaced by use of the
-corresponding array element, by #define directives in common.h, awaiting
-their replacement.
-
-2011-04-19 15:15:48 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix gettext macros in option dialogs
-
-The strings in the tables were using _() in stead of N_().
-
-2011-04-18 20:58:01 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix crash on using Engine #1 Settings in ICS non-zippy mode
-
-If XBoard is compiled with zippy the Engine #1 Settings menu was not
-grayed out even when you don't run in zippy mode, and using it would
-then crash XBoard.
-
-2011-04-19 15:07:31 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix shogipixmaps
-
-Some pixmaps forptomoted pieces had wrong background color, others had a
-wrong name (so the one with the correct name was missing).
-
-2011-04-17 19:12:00 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Change texture-install directory to pixmaps/textures
-
-
-2011-04-17 17:36:32 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Limit install of sound files to those in menu
-
-The sounds directory is set to .../xboard/sounds, and only ten
-sounds are kept (all non-spoken).
-
-2011-04-17 17:27:57 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Remove some bitmaps from install
-
-Some files in the bitmaps source directory need not be installed,
-because they are there only to be linked to the binary in a build
-without LIBXPM, are README files or conversion programs. I left only the
-stuff that is in a Debian binary package in .../xboard/bitmaps.xchess.
-
-2011-04-17 16:34:03 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Configure some default sounds
-
-The move sound is set to Wood Thunk; the sounds for tell and challenge
-events to Phone and Gong, respectively.
-
-2011-04-17 16:17:30 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Change default sounds in Xboard menu
-
-All spoken sounds are removed now. Thud, Click and Ching are replaced by
-Wood Thunk, Slap and Cymbal; Car Horn and Pop are added.
-
-2011-04-17 12:46:47 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Make user wav file available for try-out in sound dialog
-
-The GenericReadout was adapted to be able to read a single selected
-value, so that the callback to the 'play' button in the sounds dialog
-could get the name of the 'user WAV file' without accepting all settings
-for the other sounds (which should only happen on 'OK', and might still
-be cancelled in stead).
-
-2011-04-16 10:36:31 -0700 Arun Persaud <apersaud@lbl.gov>:
-configure: enable silent rules by default
-
-
-2011-04-16 10:28:16 -0700 Arun Persaud <apersaud@lbl.gov>:
-configure: added install directory for bitmaps files: .../games/xboard/bitmaps/default/
-
-
-2011-04-16 10:25:33 -0700 Arun Persaud <apersaud@lbl.gov>:
-configure: added install of sounds in .../games/xboard/sounds/default
-
-
-2011-04-16 09:54:26 -0700 Arun Persaud <apersaud@lbl.gov>:
-configure: renamed bitmapdir to pixmapsdir, since it installed only pixmaps. also changed name of default dir
-
-pixmaps will now be installed under .../games/xboard/pixmaps/default/
-
-2011-04-16 13:40:16 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix gamelist highlight
-
-Reopening the gamelist should highlight the current game.
-
-2011-04-16 10:25:53 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix size limit on 'save as diagram'
-
-In stead of a fixed-size buffer the diagram-save code now uses an
-allocated buffer with size calculated from the bitmap parameters to
-retreive the bitmap data, so it should work for all sizes.
-
-2011-04-15 22:04:03 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix chaining of bottom-row dialog buttons
-
-The OK & cancel buttons are chained to the bottom. This patch makes sure
-that other buttons appearing in the same row (as in the tags and
-comment dialogs) will be chained that way too, so that they will behave
-the same on vertical sizing. The bottom of a full-width text-edit above
-it will be chained to bottom too. To make this work in the tags dialog,
-the (optional) cmail-message field had to be put above the tags memo.
-
-2011-04-15 19:18:46 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix switching between pixmap and bitmap pieces
-
-There were still several flags that had to be reset when redoing the
-graphics initialization. The Debian patch to use a default bitmap
-directory when none is given but monoMode is selected or forced, is
-moved to a more sensible place, so that it does not disturb matters when
-compiled without LIBXPM (when we do have built-in bitmaps).
-
-2011-04-15 15:47:09 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Remove outline-pieces option from board-options dialog
-
-This option does not exist in XBoard (yet).
-
-2011-04-15 15:41:38 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix running of clock during hash allocation engine
-
-In TwoMachinesEvent we now wait for the second engine to acknowledge the
-'ping' after 'new', to make sure it is done allocating hash in reaction
-to the preceding 'memory' command, before the clock for the game is
-started.
-
-2011-04-14 21:42:50 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Describe move type-in in texi file
-
-
-2011-04-14 20:34:42 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Describe Copy Game List menu item in texi file
-
-
-2011-04-14 20:30:16 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Describe -sweepPromotions in texi file
-
-The new method for selection promotion piece, and the -sweepPromotions
-option are described in the texi file.
-
-2011-04-14 20:14:44 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Describe -pieceMenu option in texi file
-
-The sweep method for selecting a piece in Edit-Position mode is
-explained, as well as the -pieceMenu option.
-
-2011-04-14 15:59:57 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Update texi file
-
-Descriptions of the new XBoard menu dialogs are included in the docs.
-
-2011-04-14 21:06:49 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Reorganize texi description
-
-
-2011-04-14 12:31:15 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix sweep-promotions patch
-
-Setting of the from square was moved to before OKtoStartUserMove in the
-LeftClick handler, to make sure we could test the promotion possiblity
-when OnlyMove() would have altered (x,y) to be no longer the from
-square. But this setting of fromX, fromY hung on also if the move was
-not OK, so you could effectively select opponent pieces and empty
-squares. The from-square is now set back to undefined when it is not OK
-to move the piece you clicked.
-
-2011-04-14 11:56:59 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Alter treatment of moves with empty squares
-
-In Edit Position mode one can move empty squares, and use them to
-'capture' pieces as a means to clear their square. But this often leads
-to unintended disappearence of pieces one wants to grab for dragging, if
-a previous click had inadvertantly left an empty square selected: the
-click on the piece is then seen as the to-click of a click-click move.
-  This patch treats to-clicks of moves with an empty-square differently
-from other to-clicks: Rather than performing the move (in this case
-clearing of the to-square) on the down-click, it defers that to the
-up-click, and only does it if that up-click is in the same square. This
-allows the user to grab the piece on the down-click, and drag it to
-another square, if that is what he wanted to do, without being disturbed
-by sudden implosion of the piece he tried to grab.
-  If the to-square is in the holdings, grabbing the piece is the only
-action, as moves of empty squares into the holdings are forbidden anyway.
-
-2011-04-13 13:14:00 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Block selection of a directory when file is needed
-
-When we are not browsing merely to obtain a name to put in a text edit,
-but really must return an open file pointer, selection of a directory
-(ending in '/') can no longer be OK'ed in the file browser. (XBoard
-tends to segfault when offered garbage for game or position file...)
-
-2011-04-13 12:23:00 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Let double-click select file in file browser
-
-A second click on the already selected entry now has the same effect as
-pressing the OK button.
-
-2011-04-12 17:06:28 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Couple mouse wheel to v-scrolls in file browser
-
-A newly added mouse-wheel event handler was made to call the v-scroll
-callback routines with parameters to step one entry. The button-press
-handler for the lists themselves was also made to intercept the wheel
-events (buttons 4 and 5), to prevent they would select an entry, and
-make them scroll in stead as well.
-
-2011-04-13 11:41:54 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix crash copying game list when there is none
-
-
-2011-04-13 11:15:14 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix changing of float setting by generic popup
-
-Changing a float setting (so far the only one is in the Load Options
-dalog) did not always work, because the old value was clipped to (int),
-so that changing it back to an integer value might erroneously conclude
-there was no change.
-
-2011-04-13 16:15:22 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix crash on closing dialogs in wrong order
-
-When a menu dialog was closed when it still had an open file-browse
-daughter, which could be done through the system menu X on the title
-bar, later closing of the file browser caused a crash. This is solved by
-keeping track of the fact that there is such a daughter through a global
-flag, and ignoring the pop-down command if there is one.
-
-2011-04-13 16:33:16 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix startup focus of board window
-
-When there were open auxiliary windows, these would have focus on
-starting up XBoard. The XtSetKeyboardFocus call added in XBoard main()
-was ineffective in curing that. It has now been replaced by a call to
-XSetInputFocus, which does do the job. By giving input focus to the form
-widget, rather than the board widget, XBoard will be immediately
-sensitive to all key bindings.
-
-2011-04-13 15:48:35 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix game-list highight error when filtered (WB)
-
-When the gamelist was filtered, the game that was highlingted was the
-n-th game in the list rather than the n-th game in the file, when the
-latter was loaded (and n did not exceed the number of filtered games).
-This is fixed now by searching for the line in the listbox that starts
-with the game number n, rather than taking the n-th line.
-
-2011-04-12 19:20:46 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Refactor move type-in code
-
-Common code between XBoard and WinBoard was moved to the back-end
-creating TypeInEvent() and TypeInDoneEvent() routines.
-
-2011-04-12 10:13:40 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix saving of XBoard fonts with spaces in name
-
-SaveFontArg now prints quotes around the saved font string, so that the
-general option-argument parser doesnot stop at the first space it sees.
-
-2011-04-11 20:48:24 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement move type-in for XBoard
-
-By adding an event handler to the main window for key presses, users can
-now type moves when the board has focus, like in WinBoard. The typed
-character appears as first character in the type-in box that willpop up.
-Enter and Escape close the box; finishing the typing of the move enters
-it. Like in WinBoard it is also possible to type a move number (to go
-there) or (in Edit Position mode) a FEN.
-
-2011-04-11 20:59:44 -0700 Arun Persaud <apersaud@lbl.gov>:
-new developer release
-
-tried to keep the v4.5.x branch developed already separated in the NEWS file, as well as DIFFSTAT and SHORTLOG.
-The Changelog is just the one from master.
-
-2011-04-10 22:47:59 -0700 Arun Persaud <apersaud@lbl.gov>:
-updated Changelog, NEWS, etc.
-
-
-2011-04-10 20:32:57 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix use of game/position file in first match game
-
-When a match was started from the menu, it was not paying attention to
-game and position files. (Later games were.) The code that handled this
-in the initialization when a match is started through the command line
-was made into a routine MatchEvent, which can be called from the menu
-proc too.
-
-2011-04-09 20:55:47 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix crash on opening ICS Text Menu
-
-The patch for the color defaults had broken the ICS Text Menu.
-
-2011-04-09 19:22:00 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement Copy Game List menu item for XBoard
-
-Some WinBoard code was cloned for this.
-
-2011-04-09 11:42:21 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Third method of sweep selection
-
-This method sweeps through the possible promotion choices for the piece
-that is being dragged, as long as you drag a 7th-rank Pawn backwards. On
-draggin such a Pawn forwards, it immediately shows it as the piece you
-are going to promote to.
-
-2011-04-08 23:39:10 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Alternative sweep promotions
-
-The sweep takes place on the from-square here.
-
-2011-04-07 23:21:02 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Make sweep-select promotions work in WinBoard
-
-The mouse-move handler had to be connected to the PromoScroll back-end
-routine.
-
-2011-04-07 23:19:10 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix path browsing in WinBoard
-
-The routine BrowseForFolder was still declared as static in woptions.c,
-while it was used from wsettings.c.
-
-2011-04-07 11:14:45 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fixes to sweep selection
-
-
-2011-04-06 23:47:58 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement sweep selection of promotion piece
-
-When the option -sweepPromotions is true, a click-click promotion move
-will first display the default choice (usually Queen) on the promotion
-square. While you have the mouse button still down, you can change the
-piece by moving the mouse vertically.
-
-2011-04-06 21:20:30 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement sweep selection as alternative for the piece menu
-
-When the option -pieceMenu is off, the piece menu will no longer appear
-on right-clicks in Edit Position mode. In stead a Pawn of the chosen
-color will appear immediately in the clicked square, and vertical
-movement of the mouse with the right button down will cycle through
-all other pieces defined in the pieceToCharTable of the current variant.
-  Setting the side to move is acheived by clicking the correspondig
-clock. Clear board can be effected by clicking the clock of the side
-that already has the move.
-
-2011-03-30 18:17:58 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Remember Tags and Comment dialog coordinates
-
-The save-settings code now uses the shell and shellUp arrays from the
-GenericPopUp to read out the window coordinates for Tags and Comment
-window. Pointers used by GenericPopUp are set topoint to the
-corresponding WindowPlacement structs.
-
-2011-03-10 19:21:59 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Redo Tags dialog
-
-The generic popup is used for generating the Tags / EditTags popups.
-The tags popup use a 'label' field to display the cmail message
-
-2011-04-01 13:43:52 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement Edit-Comment window through generic popup
-
-The Edit Comment and Comment popups are combined into one, that can
-always be edited (similar to WinBoard). It uses shell number 1.
-(Number 0 is for all transient dialogs.) A save-changes button is added.
-The positioning is not implemented yet.
-
-2011-04-06 10:56:57 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Refinements to generic popup and color picker
-
-*) The text part of a checkbox can now be clicked to toggle the option.
-*) Typing <Enter> in single-line text edits is ignored
-*) Using a spin button now sets focus to the affected text edit, with
-the insert position at the end.
-*) Using the sample field or an RGB button sets focus to the
-corresponding text edit, with the insert position at the end.
-*) The adjust buttons now work in reverse, with a D button for "darker".
-*) Editing a color field causes the sample field to update to the new
-color when you type <Enter>.
-*) The color pickers now define a default color, which can be instated
-by clicking on the sample field.
-*) Fix some 64-bit pointer warnings
-
-2011-04-05 17:05:39 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Let file browser filter on extension
-
-A new text field is added in the file-browse dialog, to hold (space-
-separated) extensions, on which the filenames are then filtered. This
-field is initialized by the caller, depending on what we need the file
-for, but can be changed by the user. (Directories are always displayed!)
-  Changes in the extension field  become effective after typing a return
-in it. Escape typed in the extension field gives focus to the filename
-field, and restores the contents. Escape in the filename field cancels
-the dialog, return ther OKs it. The extension filter of the browser is
-initialized to the extension (if any) of the file currently in the text
-edit you are browsing for.
-  When re-opening the file browser from the XBoard File menu, and there
-is no suggested filename, it will now start with the last succesfully
-opened name as suggestion. Calling the browser with a NULL argument
-for the suggested filename requests that (unlike calling with an empty
-string, which will start it in the current directory). To make this
-work smoothly, the filebrowser saves the last used name on entry, so it
-can be restored on cancel, so that a cancelled browse session really
-erases all memory of it.
-
-2011-04-04 19:26:53 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix animation masks on changing piece pixmaps
-
-The animation masks were not remade when new pieces were loaded
-interactively through the board-options dialog.
-
-2011-04-04 19:09:21 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix linegap option in board dialog
-
-The lineGC was not recalculated, so the grid lines stayed the same
-thickness. In addition, setting the line-gap override to -1 now
-retrieves the original line gap that belongs to the current board size.
-
-2011-03-05 23:27:48 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Make a kind of ICS text menu in XBoard as a dialog
-
-The dialog with buttons can be opened from the View menu. It is
-configured by the option -icsMenu; a default setting for this is
-included in the master settings file.
-  The commands specified by the -icsMenu can now contain $name and $input
-keywords, which will be replaced by the current primary selection, or
-text the user types, respectively. Commands that contain $name will not
-be sent when the current selection is empty. Commands that do not
-contain $input will be sent to the ICS immediately; otherwise they will
-be placed in the ICS Input Box, with the cursor at the point of the
-$input, and input focus given to the Input Box, so the user can start
-typing. When a command is prefixed by "$add " it will be appended to the
-existing ICS Input Box contents, rather than replace it.
-  The items now have to be separated by ";\n", and button text from
-command by ';' (with optional linefeed). This allows configuring of
-multi-line commands, as a single linefeed no longer has special
-sigificance.
-
-2011-03-31 13:36:05 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Redo ICS input box with generic popup
-
-This box is just a single text edit, but the complexity is in the added
-callbacks. These callbacks remain in xboard.c, and were altered to
-access the edit through the option.handle field.
-
-2011-04-03 12:54:51 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Activate -path and -file options
-
-In XBoard the generic popup was prepared for this. In WinBoard, for
--path options the BrowseFolder routine is used, and had to be made
-global (prototype in winboard.h).
-
-2011-04-02 18:40:33 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Let generic popup generate Engine Settings dialog
-
-
-2011-04-02 18:36:09 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Merge SettingsPopUp into GenericPopUp
-
-Based on currentCps the values read from the dialog are sent to the
-engine, or stored into the option.target in the callback, and fetched
-from the option.target in the PopUp. The currentCps is cleared in the
-generic popdown of a transient dialog.
-
-2011-03-06 10:11:06 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Make generic dialog popup reentrant
-
-To allow persistent dialogs to be implemented through the generic popup,
-it must be possible to have several dialogs open at the same time, and
-thus make sure the popdowns under the cacel or close-window button know
-which one to pop down. To this end an array shells[] is created that
-takes over the function of settingsShell, and GenericPopUp gets an extra
-parameter telling it which element to use for storing the dialog shell.
-This number is then also passed to the callbacks that trigger popdown.
-This was a bit nasty for the CatchDeleteWindow stuff, which passes user
-data to the callback as text strings.
-Keep a separate up/down indicator, so that shell widgets can be kept
-for persistent dialogs. Also keep a currentOption per dialog type.
-  The coordinates and size of the window is read out and stored in a
-WindowPlacement structure, (if one is specified for that dialog), when
-the dialog is popped down. When initialized the structure is also used
-to set the window parameters when the dialog is created. (The idea being
-that the structure was saved in the settings file.)
-  The routine MarkMenu checkmarks a given menu item, and logs it for the
-given dialog type, so that a later popdown automatically unchecks is.
-
-2011-02-25 12:14:25 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement Machine Match menu item and options dialog
-
-An item to start a match from the menu is added, similar to what
-WinBoard has. (The code is duplicated, so I guess it should be moved to
-the back-end now, as MachineMatchEvent(), but it was tiny.) A dialog in
-the Options menu was added with the aid of the generic popup, and allows
-the user to set the load Game / Position File and Index.
-
-2011-04-01 14:54:26 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Create General-Options dialog
-
-The generic popup is used to implement a General-Options dialog, which
-contains all Boolaen options that used to be set directly from the main
-Options menu, plus a spin option for the flash count and flash rate.
-The corresponing options are removed from the main Options menu, but the
-whole thing is made conditional on a compiler switch OPTIONSDIALOG.
-The dialog needs an OK callback for sending an altered ponder-state to
-the engine. (Why isn't this option disabled in -ncp mode, btw?)
-A spin control is added to adjust -animateSpeed between 5 and 100.
-Add dropMenu and showTargetSquares item as well.
-
-2011-04-01 18:16:47 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Redo new-variant dialog with generic popup
-
-Some special code was added in GenericPopUp() to force buttons of the
-type needed in the New Variant dialog (wide, colored, greyed-out on
-variant type). The dialog was implemented with these, and callbacks for
-the buttons directly exit the dialog, without the need for OK. New spin
-controls are added to the dialog for adjusting the board format.
-
-2011-04-01 14:48:48 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Redo common-engine dialog with generic popup
-
-The ponder option was removed, as it is already in the main Options
-menu, and would require nastiness in the OK callback. Added book options
-in common-engine dialog.
-
-2011-02-24 13:32:01 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Redo adjudications dialog through generic popup
-
-We dropped the periodic-updates option, as it is already in the main
-Option menu.
-
-2011-04-01 21:56:07 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Make sounds dialog for XBoard
-
-This uses the combo boxes. A 'play' button isimplemented for a test
-sound. A sound directory is introduced, and can be set through the
-dialog. A default setting for -soundDirectory is added to xboard.conf.
-
-2011-04-01 23:11:29 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add ICS options dialog
-
-
-2011-04-01 21:52:48 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add board dialog XBoard
-
-The GenericPopUp() is used to implement a dialog for board options. The
-board dialog needs to trigger redraw and redefinition of the
-colors, through an OK callback. Color-pickers are used for the 6 basic
-color settings.
-  To allow changing board settings during the session (i.e. from a menu
-dialog), the routines to allocate resources have to free the resources
-for the previous settings first. This patch take care of XtCreateGCs(),
-preventing re-creation of resources that are unchangeable (such as the
-grid color), and calling XtReleastGC() on GCs that can be changed.
-To prevent resource leaks the old pixmaps are deleted before making new
-ones on second or later calls of CreateXPMPieces().
-
-2011-04-03 11:39:26 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add browse button to generic popup
-
-Options of type FileName and PathName cause a browse button to be added
-behind the text field. The SpinCallback is used to handle the
-button presses, and invokes the file browser dialog to obtain a
-filename, which is then copied to the text field.
-
-2011-04-01 21:49:26 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Make generic XBoard popup, and implement 2 dialogs
-
-The Engine-Settings dialog of XBoard was cloned to work on predefined
-lists of (XBoard) options, rather than engine options. An extra field
-was added to the Option struct, to hold a pointer to the XBoard variable
-that should hold the option setting, so on OK'ing the dialog the altered
-values can be copied there. Not usable for options which should trigger
-an action (like redraw, or sending something to the engine).
-A Load Game, Save Game and ICS Options dialog were then defined by
-tables fed to GenericPopUp(). Options set from these dialogs were removed
-from the main Option menu, which removes a lot of code from xboard.c
-(for checkmarking, disabling the menu items).
-  A button defined in the GenericPopUp can attain the color indicated
-by a previous text field, and add a callback to change the color in a
-spin-like manner (but using R G B W in stead of + - butons).
-The EndMark option can specify a callback, to be used on OK.
-A non-zero max field in the Option descriptor will be used to set the
-width of ComboBox, TextBox and Button optons.
-The elements are chained such that extra space goes fully into the input
-fields. A label type is added for clarifying texts that would not fit in
-the option names. A break-type (pseudo-)option is added. Make OK and
-cancel button suppressable in generic popup (by 2 bit of the option.min
-field).
-
-2011-04-03 11:34:21 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add file-browser option to just return name
-
-By passing mode "f" the file browser dialog will not open the selected
-file at all, so it can be used to retreive the name for the benefit of a
-file-browser button to a -file option. A mode "p" will limit the
-selection to directories only, to browse for a path.
-
-2011-04-03 13:15:17 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Put insertion point at end of text on SetFocus
-
-
-2011-04-05 23:47:34 -0700 Arun Persaud <apersaud@lbl.gov>:
-fixed 64 bit warnings by casting integers to intptr_t before casting to int
-
-
-2011-04-05 23:24:24 -0700 Arun Persaud <apersaud@lbl.gov>:
-removed check and #includes for malloc.h, since it's not needed
-
-hopefully this doesn't break things on non-linux systems. OS X seems to be ok, not sure about others ;)
-
-2011-04-03 20:23:49 -0700 Arun Persaud <apersaud@lbl.gov>:
-check if malloc.h is present before including it
-
-OS X 10.6 doesn't have malloc.h, so it complained.
-
-2011-04-03 20:01:36 -0700 Arun Persaud <apersaud@lbl.gov>:
-Fix bug introduced in commit 89b4744: removed a "/" and forgot to add it in the config file
-
-removed a "/" to make OS X happy, but forgot to add the "/" again in the xboard.conf.in file
-
-2011-03-12 14:08:50 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix display of promotion piece in ICS superchess
-
-In Great Shatranj and Superchess promoted Pawns were displayed as shadow
-piece because these variants had holdings, while captured pieces should
-go back into the holdings unchanged, rather than reverted to Pawns.
-
-2011-03-13 14:09:14 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix o-o castling in new parser
-
-The non-compliant notation of castling with lower-case 'o' should be
-preferred over the non-compliant interpretation of moving a Pawn along
-the o-file. Not doing so breaks ICS play, as ICS use o-o and o-o-o for
-castling! So an exception is now made for the o-file in the 'fxg'
-case.
-
-2011-03-10 19:27:41 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement yynewstr entry point in new parser
-
-This entry point, used for parsing an ICS move list, was forgotten, and
-was still an empty routine. This made XBoard crash when observing an ICS
-game.
-
-2011-03-07 23:11:00 -0800 Arun Persaud <apersaud@lbl.gov>:
-fixed wrong default for polyglotDir mentioned in docs.
-
-Thanks to Hans Aberg for reporting it.
-
-2011-03-05 12:39:01 -0800 Arun Persaud <apersaud@lbl.gov>:
-Fix "make install" on Os X10.6.6 (removed a "/")
-
-seems like an extra "/" made "make install" unhappy
-
-2011-03-03 21:19:05 -0800 Arun Persaud <apersaud@lbl.gov>:
-removed parser.l from build process, also removed flex dependency from configure
-
-
-2011-03-02 22:14:57 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-New parser, written in C
-
-A new parser was written to replace the flex-generated one. Immediate
-improvements are that it understand double-digit rank numbers, and Shogi
-coordinates. No changes were made in the Makefile yet to reflect the
-new, flexless building procedure.
-
-2011-03-02 22:23:21 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix bugs in FRC castling rights
-
-When parsing a castling move in FRC when no rights existed, the parser
-returned 0 (= EndOfFile) rather than ImpossibleMove. The recognition of
-the absence of rights was not adapted to the new encoding NoRights in
-stead of -1.
-
-2011-03-01 23:42:34 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix parsing bug of FRC castling
-
-The code that was supposed to intercept castling when no rights existed
-in FRC was not adapted to the new encoding for this by NoRights, rather
-than -1, and furthermore returned 0 (= EndOfFile) rather than
-ImpossibleMove. Not sure if the former would manifest itself in any
-way, but the latter seems bad.
-
-2011-03-01 23:32:25 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix two bugs in reading position diagram
-
-When reading a game without FEN tag, a position diagram is used to set
-the initial position. This calls CharToPiece() with a '.' as argument,
-because that is the position-diagram way to indicate empty squares.
-altered CharToPiece() over time this would be recognized as the first
-undefined piece or, more recently, the first piece without nickName,
-which is a white Pawn. Now it returns EmptySquare again in that case.
-A second problem was that for position diagrams in braces the brace was
-not in the list of ignored characters, and would cause the reading to
-get out of phase, so that the side to move was not recognized.
-
-2011-02-26 21:12:08 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix flipBlack option XBoard with board texture
-
-In XBoard -flipBlack is implemented by swapping white and black pieces,
-because the Shogi bitmaps from XShogi are made that way. But the mask
-used to cut out the whole in the board texture to fit the piece was not
-swapped, both when drawing static pieces, as well as during animation.
-
-2011-02-25 14:38:21 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Improve repairing damage of arrow highlight XBoard
-
-With line gap the highlight arrow necessitated redrawing of the entire
-board, to repair damage on the grid. This interfered with flashing of
-pieces, which was only done on selective redraws. In stead of forcing a
-total repaint we now just redraw the grid lines.
-
-2011-02-23 16:41:36 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix unintended translation in debug file
-
-The words "first" and "second" (cps->which) were sometimes used in
-context that should definitely not be translated. (e.g. the indicator
-for which engine printed/got the line in the debug file.) So translation
-is now deferred to all uses in popups.
-
-2011-02-23 16:29:12 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix nps bug
-
-The nps settingwas tested for being > 0 in stead of >=0, so that the
-case of CPU time was not properly handled.
-
-2011-02-24 19:06:27 +0100 Kamil Blank <caceel@gmail.com>:
-Added missing fclose()
-
-(tiny change)
-Signed-off-by: Arun Persaud <apersaud@lbl.gov>
-
-2011-02-20 16:12:19 -0800 Arun Persaud <apersaud@lbl.gov>:
-release of version 4.5.1
-
-2011-02-20 16:10:16 -0800 Arun Persaud <apersaud@lbl.gov>:
-updated Changelog, NEWS, etc.
-
-2011-02-20 20:36:28 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix two typos in option names in texi file
-
-Polyglot was capitalyzed
-
-2011-02-20 00:03:19 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix some resource leaks
-
-Some files were opened not closed in XBoard, when loading XIM images
-(which I doubt anyone ever does) but also when copying the clipboard
-(which has the potential of being done very often). There was also some
-code that would not work if conditional code which is permanently
-disabled would be enabled.
-
-2011-02-17 20:17:04 -0800 Arun Persaud <apersaud@lbl.gov>:
-new developer release
-
-2011-02-17 20:14:38 -0800 Arun Persaud <apersaud@lbl.gov>:
-updated Changelog, NEWS, etc.
-
-2011-02-17 15:40:02 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix MSVC snprintf problem
-
-In MSVC snprintf has to be redefined as _snprintf, and this happens
-conditionally in config.c. But the latter was not #included in help.c.
-
-2011-02-16 19:41:27 -0800 Arun Persaud <apersaud@lbl.gov>:
-updated configure.ac to check for Xaw header files
-
-check for Xaw header files when --without-Xaw3d was given. Before the test was
-only done when Xaw3d was specified, but could not be found.
-
-If Xaw3d or Xaw can't be found, print a hopefully useful error message and exit the configure script.
-
-2011-02-16 12:03:22 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix ICS channel 0
-
-Channel 0 messages were not displayed in the console, because the test
-for channel number considered every non-numeric or non-existent handle
-in a chatbox to be zero. So the messages were diverted to a non-exsting
-chatbox. Now it test first for the handle to start with a digit.
-
-2011-02-15 19:13:33 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Make language choice from menu persistent
-
-Set appData.language to the chosen language file, or empty if English is
-chosen, so that the choice is saved with the settings. Increase the
-number of possible language choices from 5 to 20. (After all, we already
-have 7 now!)
-
-2011-02-14 11:09:24 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix showing of user move after adjudication
-
-The correction of the fishy patch (removing ShowMove() from Adjudicate())
-had broken the adjudication of user moves (that actually did work before
-the fishy patch, because there the gobal fromX/Y and toX/Y do contain
-the correct values for the move to be shown). An entered move that led
-to adjudication (like a checkmate) now was not displayed at all. Adding
-an extra ShowMove() after (successful) return of Adudicate() solves it.
-
-2011-02-13 23:49:44 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix Xiangqi King facing
-
-The Spartan patch had broken the CheckTest for Xiangqi, because cl.check
-was cleared after the King-facing test, rather than before it.
-
-2011-02-13 22:30:59 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix variant janus size prefix
-
-The default board size of Janus Chess was not consistently taken to be
-10x8, which resulted the name to be sent as 10x8+0_janus to the engine.
-
-2011-02-13 12:18:52 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix Alfil bug
-
-The test for Alfil (suppressing single steps on the Elephant) contained
-a wrong logical operator, so that it could never be active. It also
-failed to include Xiangqi as variant with traditional Alfil. This led to
-one-step moves of the Elephant in these variants, and false check or
-unreliable mate detections.
-
-Fix move of Xiangqi Elephant
-
-2011-02-09 23:19:09 -0800 Arun Persaud <apersaud@lbl.gov>:
-fixed configure script to correctly detect Xaw3d library
-
-
-2011-02-06 22:07:17 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix unmarked translation
-
-The file-browser wndowtitle in WB was not marked for translation.
-
-2011-02-04 10:27:49 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Put warning in HTML help
-
-A warning is added that the help file is not yet updated for the new
-menu organzation.
-
-2011-02-04 10:22:29 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix 64-bit Windows compilability
-
-The API interface for Set/GetWindowLong has been changed for 64-bit
-Windows, both in the name of the call as in the arguments.
-
-2011-02-04 10:21:06 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix MSVC compilability
-
-Both the makefile and the project file had to be adapted for the new
-source file history.c, and the new location of parser.c.
-
-2011-02-05 10:11:58 -0800 Arun Persaud <apersaud@lbl.gov>:
-added missing #includes and missing prototypes to filebrowser
-
-thanks to Max Funk for reporting. Now using HAVE_DIRENT_H.
-
-Also cleaned up missing prototypes and some casts.
-
-2011-02-05 09:21:48 -0800 Arun Persaud <apersaud@lbl.gov>:
-added missing header file for sprintf
-
-
-2011-02-03 08:50:50 -0800 Arun Persaud <apersaud@lbl.gov>:
-added history.c to the tar-ball. Needed for Winboard
-
-
-2011-01-31 23:03:05 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix deselection of greyed-out variant button (WB)
-
-In Windows a disabled radiobutton refuses to deselect when you select
-another (enabled) button from the group. There are then 2 buttons
-checked, and the code to readout the buttons took the first one. Now it
-is changed to take the first enabled one.
-
-2011-02-03 08:28:15 -0800 Arun Persaud <apersaud@lbl.gov>:
-Revert "Implement -reset option feature in WinBoard"
-
-This reverts commit efecf86cd9b54072c6a2f38d62f1d775e69c545b.
-
-picked the wrong commit from HGM's git tree.
-
-2011-02-01 22:01:12 -0800 Arun Persaud <apersaud@lbl.gov>:
-add DIFFSTAT and SHORTLOG to tar-ball
-
-was only in the v4.4.x branch and not in master
-
-2011-01-30 09:52:15 -0800 Arun Persaud <arun@nubati.net>:
-release of version 4.5.0
-
-2011-02-01 07:41:04 -0800 Arun Persaud <apersaud@lbl.gov>:
-changed size of borders around squares from 0 to 1 as a default
-
-this way highlights show up again.
-
-2011-01-29 20:11:30 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement -reset option feature in WinBoard
-
-2011-01-30 10:12:08 -0800 Arun Persaud <arun@nubati.net>:
-updated Changelog, NEWS, etc.
-
-2011-01-30 09:56:39 -0800 Arun Persaud <arun@nubati.net>:
-updated parser.c form parser.l
-
-2011-01-29 19:59:11 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Clean up fishy patch
-
-None of the ShowMove() calls in Adjudicate() was working, because when
-this code was taken out of HandleMachineMove() it was taken outside the
-scope of the local fromX, fromY etc. there, so that it started using the
-global variables from the mouse driver. As these usually contain -1,
-this suppressed move animation and highlighting. All these calls have
-now been removed, and ShowMove() is called after a positive return (from
-HandleMachineMove(), so within the correct scope).
-This improves the previous fix, which led to some flicker, because the
-erroneous ShowMove() calls did draw the new board (instantly), wich in
-the fishy patch was then immediately overwritten by the old position, to
-start animation. This drawing of the old position is now no longer
-needed either.
-
-2011-01-29 13:36:30 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Update RTF file
-
-The RTF file is adapted to the new menu organization.
-
-2011-01-29 13:31:48 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Update texi file
-
-The highlight-with-arrow and one-click-move menu items are described.
-The highlightMoveWithArrow and variations option are described.
-Load Next /Previous Position descriptions are moved to File menu.
-The description for entering variations is updated (using Shift key).
-The remark that editing holdings is impossible is removed.
-Spartan Chess is added to the list of supported variants.
-
-2011-01-28 18:35:48 -0800 Arun Persaud <arun@nubati.net>:
-Updated copyright notice to 2011
-
-
-2011-01-24 15:01:25 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Greyout unavailable variants in New Variant dialog
-
-The WB radio-button code is refactored to be driven from a list (which
-must be kept in phase with the variant definitions in common.h!). It now
-also checks if the first engine supports the variant, and greys out the
-item if it isn't. XB now also makes this check. Slight re-ordering of
-10x8 variants there, to have the more common on top.
-If no radio button is selected, keep old variant even on OK.
-
-2011-01-19 11:10:59 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Move clock-click code to back-end
-
-Some duplicated (or should-be-duplicated) code for handling clicks on
-the clocks from the XBoard and WinBoard front-ends was merged and
-relocated to the back-end, so it can be shared. Noticeable was that
-XBoard allowed turn change in ICS examine mode by clock clicking,
-while WinBoard did not. WB, on the other hand, allowed clock adjustment.
-
-2011-01-16 23:15:17 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix legality testing of drop moves
-
-Drops of noexistent pieces (i.e. with a piece indicator letter that is
-not corresponding to any defined piece) are now parsed as
-ImpossibleMove, rather than IllegalMove, so they are also rejected with
-legality testing off.
-
-2011-01-17 00:28:32 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix WB Sound Options greyout and remove some grossness
-
-The sound and ICS Options menu items in WB were accessed 'by position',
-with fixed defined positions (always messing up any reorganization of
-the menus when you forgot to redefine the position constants in
-winboard.h). And not only that, but for completely mysterious reasons,
-the greying of the sound item greyed out the game-list options (above
-it) in stead when it was defined as 9, and the ICS options (below it)
-when it was 10 !!!. Now they are addressed 'by command' (and the
-position definitions are removed), which fixes things.
-
-2011-01-25 21:35:10 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Re-instate load next/prev position menu items
-
-As positions do not use something similar to the game list, these are
-still useful. For some reason I could not get Alt+Shift+PgUp/Dn to work,
-so I settled for Shift+PgUp/Dn.
-
-2011-01-16 21:56:14 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Remove superfluous copying of machine move
-
-There was explicit code in HandleMachineMove() and FinishMove() to put
-the move in the moveList, while MakeMove() already does this later in a
-more reliable way by calling CoordsToComputerAlgebraic(). This
-superfluous code is removed now.
-
-2011-01-16 21:44:26 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix spurious mate test in Edit Game mode
-
-When entering a game, it was terminated by the mate test even when
-legality checking was switched off (so that mates might not be reliably
-recognized). The mate test is now made dependent on legality testing.
-
-2011-01-16 21:37:16 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix type-in of drop moves
-
-Drop moves entered through the move type-in already come in the (piece,
-DROP_RANK, x, y) format, rather than having a holdings from square. This
-caused UserMoveEvent to consider them illegal when testing if the
-piecewas of the side to move, and when this was fixed, to recognize
-Knight drops as coming from between board and holdings (and thus
-illegal).
-
-2011-01-16 21:31:42 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix move type-in truncating game
-
-Starting a new variation by keeping Shift pressed did not work when
-OK'ing the move type-in, because there was some code ther that truncated
-the game. While this could be safely left to UserMoveEvent, which it
-calls, as the situation is not different from entering moves through the
-mouse.
-
-2011-01-11 16:12:02 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix legality testing for promotions
-
-Turns out WB has never tested for the legality of the chosen promotion
-piece, and would allow promotion to King innorml chess even with
-legality testing on (when entered through the keyboard)! Now strict
-testing is done, outlawing Pawns and Kings (or Unicorns in
-Knightmate). Only in suicide / giveaway Kings are stillallowed, and in
-spartan a black King if you do not have two yet.(And promotion
-toLnce,representing Hoplite Pawn,is forbidden there.)
-
-2011-01-11 11:34:07 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Reset 50-move counter on all pawn-like Lance moves
-
-Now the Lance represents a Pawn-like piece not only in variant fairy,
-but anywhere outside Shogi / Superchess, its moves should also reset the
-50-move counter in those cases. Especially important for Spartan Chess,
-where the Lance actually participates.
-
-2011-01-11 11:18:15 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix logo repainting
-
-The logos were not repainted when the main window was moved out of the
-display area, and then back into view. The reason for this is
-unknown, as the PaintProc calls HDCDrawPosition, which was calling
-DrawLogoOnDC. But the logos were not drawn, (or on an expose event
-sometimes half drawn!) despite the fact that the rest of the board was.
-The drawing of logos now has been decoupled from drawing the board,
-and has been moved to a separate routine DisplayLogos() (in analogy to
-DisplayBothClocks()). This is cleaner anyway, as the logos usually do
-not change when the board does. So apart from in PaintProc, it has only
-to be called when the mode changes (ModeHighlight()) or on swap clocks.
-This seems to fix the problem.
-
-2011-01-10 20:36:48 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix time in PGN info
-
-Saving of the thinking time in the PGN was broken by the patch that
-removed the race condition in the clock switching, because that moved
-the incrementing of forwardMostMove to behind the code that used fmm to
-index pvInfoList. As a result the time was stored in the slot for the
-opponent's previous move. The value is corrected now.
-
-2011-01-09 00:24:17 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fishy fix
-
-The move that delivers checkmate in two-machines mode is not animated
-when adjudication is on. There then also is no highlighting of this move
-Redrawing the board and calling ShowMove fixes it. Which is rather
-strange, because ShowMove was already called in Adjudicate (when it
-adjudicates), before GameEnds. For reasons that are not understood this
-call to ShowMove() (which calls AnimateMove()) is not effective.
-
-2011-01-09 00:21:41 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Reset machine colors after match
-
-The colors each engine playse are set to the originals after the last
-match game, so that a new match or two-machines game will not have
-swapped colors.
-
-2011-01-09 00:15:18 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Reset win/loss counters before match
-
-The win/loss counters were not reset, because the code counted on them
-being initialized to zero. But with matches startable from the menu,
-this is no longer true after the first match.
-
-2011-01-09 00:08:52 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Show move that causes false illegal-move claim
-
-Without claim testing XBoard takes back moves that an engine objects to.
-But when the engine is forfeited for a false claim, the move should of
-course stay. So the claim test is moved to before the take-back.
-
-2011-01-09 00:05:38 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix Spartan promotion to King
-
-Promotions toKing were refused when in check, because XBoard thought
-they would not resolve the check. Now the promotion is actually
-performed before doing the check test.
-
-2011-01-05 17:31:37 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix WB font-based piece rendering on variant switch
-
-The piece bitmaps were only created from the font characters when the
-number of ranks or files changed, because it was done in
-InitDrawingSizes(). This caused missing pieces when changing to a
-variant on the same board that used other pieces. Now InitDrawingSizes()
-is called for any variant switch.
-
-2011-01-05 17:25:11 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix right-alignment pproblem in WB ICS window
-
-Use of Ctrl-R to summon the context menu still trickled through to the
-default text-edit window routine, and caused right-alignment. This was
-because the text-edit reacts on keyDown rather than the character event.
-KeyDown of R with Ctrl pressed is now also intercepted and ignored.
-
-2011-01-03 13:04:56 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix chat window title
-
-The title was using the engine name, rather than the ICS handle, which
-did not work outside zippy mode. Now it only uses the engine name when
-no ICS handle is known. The titleis now also subjected to translation.
-
-2011-01-03 12:50:54 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix spurious reading of old game title by JAWS
-
-Because focus was switched to the board window before loading the
-selected game from the game list, the titlebar still contained the
-name of the previously loaded game, which would spontaneously be read by
-JAWS. Now the focus switch is done after loading the new game (which
-updates the window title.)
-
-2011-01-03 12:37:17 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add variant Spartan Chess
-
-In the WB menu it takes the place of the defunct Twilight Chess item.
-The setup routine needed patching for setting up Lances in stead of
-Pawns for black, the check test had to be adapted to handle duple check,
-Alfil and Dragon moves were fine tuned in this variant to make the exact
-moves, and the promotion popup was adapted to show King and interpret
-Rook and Bishop as Dragon and Alfil for black. The Alfil now always
-moves as Modern Elephant except in Shatranj and Courier.
-
-2011-01-03 12:23:39 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix mate test
-
-Due to a bug in logical operators drops were tried for mate evasions
-even in non-drop games, which broke it in Superchess and Great Shatranj,
-and wasted CPU time in other variants.
-
-2011-01-05 17:19:35 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix promotion suffixon disambiguated piece moves
-
-The promotion suffixon piecemoves that needed disambiguation was not
-passedon to the back-end in most variants. Now it is passed on in any
-variant.
-
-2011-01-03 12:08:19 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix promotion of Pawn-like Lance
-
-In variants where the Lance is used to represent an unorthodox Pawn, it
-must promote when it reaches last rank. With legality testing on,
-however, the promoChar was ignored in ApplyMove in this case. The
-promotion suffix also was not appended in SAN moves.
-
-2011-01-03 11:57:23 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix WB promotion popup
-
-The promotion popup did not work properly in variants where black did
-not use the pieces that white wanted to promote to. Now the character
-for the selected piece is taken from the piece encodings of the side to
-move. In addition, selection of undefined pieces is ignored.
-
-2011-01-02 14:17:32 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix bug in parsing variations
-
-The moves parsed from a variation were stored in the moveList without
-appended linefeed. This caused errors if the variation extended to
-beyond the end of the main line,into a hitherto unused part of the move
-list, as the linefeed was then not there from the overwritten move. As a
-result moves sent to the engine were concatenated, triggering
-illegal-move messages and bringing the engine out of phase.
-
-2011-01-02 14:11:45 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Define Ctrl-R as right-click in WB Comment dialog
-
-To allow JAWS users to load a variation through the keyboard, Ctrl-R is
-equated to a right click at the position of the caret or selection.
-
-2011-01-02 14:10:02 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow starting a variation from keyboard entry in WB-JAWS
-
-The status of the shift key is remembered when space is pressed to
-select a board square.
-
-2011-01-02 14:06:14 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Disable some accelerators in JAWS version
-
-Single-key accelerators that could result in irreversible data loss are
-undesirable, because the risk of accidentally pushing them is too large.
-So the non-Alt duplicates of next/previous game/position are disabled,
-as are Home and End for Revert and Truncate Game. JAWS users will have
-to rely on the menus for those functions.
-
-2011-01-02 13:59:01 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Group engine-output memos with engine names
-
-The engine names are now defined just before the text edits, so that
-JAWS 11 will read the engine name when the memo for the output of that
-engine is selected. (JAWS 10 will still read the NPS, as it reads in
-geometrical order.)
-
-2011-01-02 13:55:19 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Put nr CPU earlier in tab cycle of WB Common Engine dialog
-
-By defining the max CPU control after hash size, the tabbing steps
-through the controls in geometrical (and logical) order, rather than
-having the max CPU in between the book controls.
-
-2010-12-29 23:47:14 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Update WB language template file
-
-
-2010-12-29 23:41:27 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Subject JAWS menu and spoken strings to translation
-
-
-2010-12-29 23:37:39 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Let JAWS SayString buffer full sentence
-
-The meaning of the flag parameter of SayString was changed to indicate
-buffering of flushing. On flushing a message of a single space is used
-as a kludge to indicate interruptability. Calls to force flushing where
-added everywhere.
-
-2010-12-29 23:32:54 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Adapt JAWS menu to new menu organization
-
-The menus did not correspondto the texts after translation of the main
-menu bar.
-
-2010-12-29 23:18:30 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Translate menus after creation of JAWS menu
-
-
-2010-12-29 23:07:05 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix ICS context menu for JAWS
-
-The Ctrl+R key did select text at the mouse pointer in stead of at the
-curser, now that up and down-click were combined.
-
-2010-12-29 23:04:08 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Reorganize order of WB New Variant dialog controls
-
-The definitions are re-ordered so that at least JAWS 11 will speak the
-board-size elements properly.
-
-2010-12-29 22:57:55 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix order of elements in WB time-control dialog
-
-Someleading texts were defined after the text edit they referred to,so
-that JAWS 11 associated them to the wrong one. A tab stop was added to
-the time-odds label, to make JAWS speak it.
-
-2010-12-29 22:51:17 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Change tabbing order in WB sounds dialog
-
-The 'Play' button now gets focus immediately after the controls for
-selecting the sound, rather than at the end of the dialog (after OK).
-
-2010-12-29 22:47:26 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Remove tab stops on first radio button of WB dialogs
-
-The New Variant and Board dialogs had a tab stop on the first radio
-button,so that tabbing toit would automatically select variant
-normal or size tiny. Now it tabs straight to the current size, without
-changing anything. (Important for JAWS users.)
-
-2010-12-29 22:45:23 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Put OK/Cancel last in tab cycle of some WB dialogs
-
-
-2010-12-29 22:29:37 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix duplicate menu character for Edit Comment
-
-Edit Comment did have the same shortcut character as Copy Game. Changed
-to m now.
-
-2010-12-11 11:18:56 -0800 Arun Persaud <arun@nubati.net>:
-fixed automake process: xboard.conf couldn't be generated if $srcdir was not the current directory
-
-
-2010-12-11 09:50:48 -0800 Arun Persaud <arun@nubati.net>:
-new developer release
-
-
-2010-12-05 18:01:21 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Subject WB context menus to translation
-
-The innerloopof the menu translation has been made into a separate
-routine. This now uses GetMenuItemInfo() in stead of ModifyMenu() to
-better preserve menu breaks. Menu #10 is used for context menus (from
-the routine that pops them up), and for this number the orignal texts
-are not saved in menuText. (This is not needed, because the menu is
-created everytime anew from the resource data.)
-
-2010-12-05 15:00:28 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Update translation template
-
-Add the new menu items; add some notes.
-
-2010-12-05 14:04:46 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Resize buttons in WB engine-settings dialog
-
-The OK and cancel buttons were to narrow for most translations, and were
-a non-standard order as well.
-
-2010-12-05 13:56:52 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add one-click move control to WB general-options dialog
-
-This is a duplicate of the one in the ICS options dialog, but the latter
-is inaccessible in non-ICS modes, and one-click move is now
-alsoavailable in engine mode.
-
-2010-12-05 13:51:20 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Create space in dialogs for translation
-
-The translated texts often did not fit, because controls were defined
-needlessly small (when there was empty space between them). In these
-cases they have been enlarged to consume all available space. Some
-dialogs are made wider.
-
-2010-12-05 13:47:26 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add handle for translator acknowledgement
-
-An empty string is printed in the about box, which can be 'translated'
-to a message acknowledging the translator.
-
-2010-12-05 13:43:26 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Use default logo for user
-
-When no logo with the name of the current user is found, use dummy.bmp.
-
-2010-12-05 15:46:34 -0800 Arun Persaud <arun@nubati.net>:
-added rlwrap tip to FAQ
-
-
-2010-12-03 23:24:06 -0800 Arun Persaud <arun@nubati.net>:
-replace hard coded paths with path from configure script
-
-use $datadir and subdirectories to store some data files. Also make files in xboard.conf use correct path.
-
-2010-12-03 23:02:09 -0800 Arun Persaud <arun@nubati.net>:
-fixed a typo in the configure script output
-
-
-2010-12-03 21:46:00 -0800 Arun Persaud <arun@nubati.net>:
-added a desktop file
-
-taken from the openSUSE project
-
-2010-12-03 22:44:02 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix Edit Game/Position checkmarking in WinBoard
-
-Because the entries in Edit and Mode menu were pure duplicats, the
-entries in the wrong menu (Edit) were checkmarked while active. By
-defining different IDs for those in the Edit menu, those in the Mode
-menu are checkmarked again.
-
-2010-12-03 10:07:34 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add XBoard menu items for arrow highlight and one-click move
-
-These items are put in the options menu; the 'Old Save Style' item is
-removed.
-
-2010-12-03 09:27:58 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Provide menus for editing WinBoard engine and server lists
-
-The Edit Tags dialog in the WB front-end is adapted to act as a general
-edit for string variables, by giving it an extra parameter to indicate
-where to store the edited result. Menu items are added to invoke this
-dialog for editing the /first, /secondChessProgramNames and /icsNames
-options. This solves the problem that people would have to edit an ini
-file that they can no longer locate (because the %APPDATA% folder has
-different names and locations in the various Windows versions, and is
-often a hidden folder on top of that).
-There is a slight memory leak here, as the memory for the previous
-value of the altered string option is not freed.
-
-2010-12-02 16:18:53 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Configure arrow highlighting as default in XBoard
-
-Set -highlightMoveWithArrow true in the xboard.conf file, and specify a
-lineGap of 0 to make that efficient (and the wood theme even nicer).
-
-2010-12-02 15:56:46 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Port highlighting with arrow to XBoard
-
-Unfortuntely this duplicates a fair amount of code in the front end.
-Removing the arrow is done by a total repaint if there is a non-zero
-lineGap, because the clever algorithm for selective redrawing (based
-on damage) that XBoard uses does not repair damage to the grid lines.
-For lineGap=0, however, (for which the arrow is mainly intended) the
-damage mechanism is used, and the damaged squares are determined by
-tracing out the arrow in 64 steps, and marking all squares in the
-neighborhood as damaged.
-
-2010-12-02 15:55:25 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Strip CR from xboard.c
-
-
-2010-12-02 14:21:24 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Let user decide if he wants highlights in blindfold mode
-
-Remove the automaticsuppression ofhighlighting.
-
-2010-12-02 00:24:43 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix fag-fell marker with logos on
-
-The flag-fell marker "(!)" that is displayed in the clock in WinBoard in
-two-machines mode was printed twice when the clock was split over two
-lines (as with logos on).
-
-2010-12-01 18:57:57 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Also exempt variant seirawan from eval-scale doubling
-
-It is not really a drop game, so a scale from -7 to 7 in the eval graph
-is good enough (like variants great and super).
-
-2010-12-01 10:33:13 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Configure EGTB cache size in adapterCommand
-
-The hash size, nr of CPUs and EGTB path are transferred through the WB
-protocol interface commands memory, cores and egtpath. But there is no
-WB command for detailing the EGTB cache size. So the value of the
-command-line option -defaultCacheSizeEGTB has to be sent to Polyglot
-through its startup command to make it known to UCI engines.
-
-2010-11-30 22:46:16 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Move Hint and Book items to Engine menu in XBoard
-
-
-2010-11-30 22:17:24 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Correct the key bindings fo view menu in texi file
-
-The mentioned bindings for Game List and Eval Graph were wrong.
-
-2010-11-30 21:25:07 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix sub-variation display with negative score
-
-The test if the displayed score was the pvInfo score failed for negative
-scores, because floats are truncated towards zero. So the previous fix
-of spurious score/depth info was not working when the score was
-negative.
-
-2010-11-30 18:27:52 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Peel PV out of comment
-
-Arena stores engine PVs not in variation format, but within both braces
-and parentheses, before the score/depth info. This caused XBoard to
-overlook the score/depth info, (frustrating, e.g., the eval graph),
-while the PV would not be accessible for walking it as a variation.
-The routine that extracts the score/depth from a comment now has
-been made more clever, to recognize a leadin PV in the comment, and then
-place it in front of the comment as variation (by moving the opening
-brace to behind it). For some reason it does not work if the PV and
-score/depth were separated by a newline, but this happens quite rarely.
-
-2010-11-30 18:23:12 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow line-straddling result comments
-
-Some GUIs (in particular Arena) do not have the decency to keep the
-result comment on a single line. In this case the parser rules would not
-recognize it, and treat it as a normal comment, plus an undetailed PGN
-result. The rules are now fixed to allow linefeeds in the comment, and
-between comment and PGN result. To correctly process the comment further
-(e.g. in game-list lines) the linefeeds are replaced by spaces in the
-back-end routines that do use the result comment.
-
-2010-11-30 12:22:32 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Write key bindings in XBoard menus
-
-Unfortunately tabs are not understood in menu texts, so fine-tuning
-through spaces is necessary to get some sort of ragged alignment.
-
-2010-11-29 18:01:38 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Configure XBoard to use wood board texture by default
-
-The texture pixmaps are sought in /usr/share/games/xboard, with names
-wood_l.pm and wood_d.xpm. I guess the " make install" should be adapted
-to put them there. XBoard is resitent to non-existence of the files,
-btw. It simply ignores the arguments in that case.
-
-2010-11-29 17:48:48 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Configure -inc as volatile option in XBoard
-
-XBoard users are not used to options being persistent, and thus have
-many scripts assuming the timeIncrement is -1 when they don't specify it
-on the command line, and want to specify -mps. But a persistent -inc of
-0 fom a preious session would then force their -mps to zero, causing
-big-time confusion.
-
-2010-11-29 17:36:33 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Make WinBoard clocks translation-proof
-
-With logos on, the splitting of the clock over two lines assumed the
-lengths of the words "white" and "black" would always be 5. Used strlen.
-
-2010-11-29 14:57:00 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Improve drawing of highlight arrow
-
-A diagonal arrow sometimes had a notch in the shaft because of
-independent rounding of the starting and ending point coordinates.
-Furthermore the width of the shaft was unnecessary variable(as a
-function of direction) because half the width was rounded and then used
-twice. Now rounding of end-points is always done towards a fixed grid
-of square centers, which keeps diagonals purely diagonal, and one side
-of the shaft is drawn relative to the other side, after the
-position of the latter has been rounded, so any rounding error affects
-the shaft width only once.
-
-2010-11-29 10:25:50 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Alter descriptionof Analyze File menu item
-
-This menu item has been given a new function, so a new description was
-needed.
-
-2010-11-29 10:15:39 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add description of Game List Options in texi file
-
-
-2010-11-29 09:58:00 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Update texi file for new menu organization
-
-The descriptions are shuffled around and organized into sections
-corresponding to the new main menus. Where necessary the name of the
-items was changed to their new names. The items removed from the File
-menu (the next/previous/same stuff) are nowmoved to the section "other
-shortcut keys", as the key bindings for some of them are still active.
-
-2010-11-29 09:06:14 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Update info on key bindings in texi file
-
-The texi file was still listing the old XBoard key bindings. Where
-necessary this is now changed to the new (WinBoard) bindings, and all
-the new bindings were added.
-
-2010-11-29 09:04:53 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add XBoard key bindings for Revert and Truncate
-
-Use Home key as accelerator for Revert, End for Truncate, as in WinBoard.
-
-2010-11-28 23:12:14 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Divorce the Edit and Show Tags/Comment menu items
-
-In WinBoard the items in the Edit and View menu for Tags and Comment now
-have different IDs, so they can be independently controlled. Only the
-items in the View menu are check-marked. The items still do the same.
-
-2010-11-28 23:08:26 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Alter WinBoard menu text
-
-The texts are slightly adapted, mostly by choosing more convenient
-tabbing characters for the new menu organization. The translation
-template is updated accordingly.
-
-2010-11-28 20:24:46 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Let move-history window scroll to bottom after adding move
-
-By activating the scrollbar of the viewport through XtCallActionProc
-the move-history window is scrolled to the bottom.
-
-2010-11-27 14:38:14 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix Shogi promotion popup
-
-The texts were adapted to shogi by printing new text items over the
-Queen and Knight buttons, but these did not alwys cover it. Now the text
-on the buttons is changed as it should be. Also the window title is
-adapted.
-
-2010-11-26 11:22:06 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Apply gettext macros to menu texts
-
-Now texts and references are separated, the texts in the tables can be
-decorated with the N_() macro, so that the _() macro no longer has to be
-applied when they are used. (This makes the texts appear in the .po
-files.)
-
-2010-11-26 11:12:58 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Adapt some XBoard menu texts
-
-The "Show" prefix is removed from the "View" menu items, as this seems
-implied. An ellipsis is added to the Engine #N Settings items, which
-could not be there before, because periods in a menu name would break
-any reference to it. For some other names the ellipsis was deleted.
-(These were not refered to, but who knows what we will do in the future.)
-
-2010-11-26 11:03:35 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Separate menu text from menu name in XBoard
-
-The text string in the menu-definition tables was used both for the menu
-text, as well as for referencing the items from the code (for enabing or
-checkmarking). Now these can be defined separately, so that altering the
-menu texts is possible without breaing any references to the item.
-(Moving them to another menu would still break XBoard, though!)
-Currently the texts and names are still the same.
-
-2010-11-26 10:48:54 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Bugfix XBoard menu translation
-
-The gettext macro N_() was applied to the menu definition tables, but
-this would break any translation, as these items are both used as menu
-texts as well as reference for enabling and checkmarking. The routines
-that create the menus already apply _() dynamically to these items when
-they are used as menu texts.
-
-2010-11-26 10:10:55 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Restrict drops in variant seirawan to back rank
-
-Drops aren't really llowed at all in Seirawan Ches, but there exists an
-engine that supports a variant where drops on the back-rank are allowed.
-
-2010-11-25 19:44:37 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Let Analyze File annotate the loaded game
-
-By not suppressing the auto-play loop in AnalyzeFle mode, we step
-through the game while the engine is analyzing, and store the PV info
-that the engine produces, as well as the full PV (as variation comment)
-with each move.
-
-2010-11-25 19:41:05 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Revive Analyze File menu item in WB
-
-We will keep this menu after all, becase it can be given a new meaning.
-
-2010-11-25 19:31:52 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix spurious scores in comments
-
-The comment popup is also used to display engine PV info, but when the
-contents of the window is written back when we select a variation,
-it was treated as a real comment. This is fixed now by checing in
-ReplaceComment() if the comment starts with the PV info, and if so,
-ignore the latter. This solves the problem, but I guess the real bug is
-that selecting a variation tries to write the comment even if it did not
-change.
-
-2010-11-25 19:26:34 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Display error for wrong use of Machine Match
-
-
-2010-11-24 13:30:08 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Reorganize XBoard menus
-
-
-2010-11-24 11:02:19 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Reorganize WinBoard menus
-
-New main menus Edit, View and Engine are added; the step menu
-disappears. The menu items are redistributed over the new menus.
-Sometimes duplicates are created. No adaptation of short-cut characters
-as made yet (as this affects translation).
-
-2010-11-20 20:20:27 -0800 Arun Persaud <arun@nubati.net>:
-removed trailing whitespaces from NEWS
-
-
-2010-11-20 20:19:30 -0800 Arun Persaud <arun@nubati.net>:
-merged readme_HGM.txt into the NEWS file
-
-seems like a better place for the release notes, although those releases where not officially part of GNU, but the NEWS file already covers similar releases, so it might as well cover all of them.
-
-2010-11-20 18:24:19 -0800 Arun Persaud <arun@nubati.net>:
-typo in date of developer release
-
-but will leave the tagged version as it is, since it's still a unique version number
-
-2010-11-20 18:11:01 -0800 Arun Persaud <arun@nubati.net>:
-new developer release
-
-
-2010-11-20 18:12:41 -0800 Arun Persaud <arun@nubati.net>:
-added latest version of parser.c
-
-
-2010-11-20 18:05:56 -0800 Arun Persaud <arun@nubati.net>:
-updated Changelog, etc for developer release
-
-
-2010-11-20 16:22:00 -0800 Arun Persaud <arun@nubati.net>:
-Revert "adding gnu-readline support"
-
-This reverts commit c95ef32a700132a134f335f857ca6f1b6f3c169f.
-
-Conflicts:
-       backend.c
-
-better to use the (relatively) new ICS input box then add readline support.
-
-2010-11-20 16:19:32 -0800 Arun Persaud <arun@nubati.net>:
-Revert "bugfix: fixed readline support with icslogon option"
-
-This reverts commit b9cdd7422ad1037d7376bce4f8f2db2669396e83.
-
-Conflicts:
-       backend.c
-
-better to use the (relatively) new ICS input box then add readline support.
-
-2010-11-19 23:10:35 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Make Hoplite moves irreversible in Spartan Chess
-
-Consider Lance moves in variant Fairy (where the Lance represents the
-Spartan Hoplite Pawn) as Pawn moves, so they reset the 50-move counter.
-
-2010-11-19 21:09:24 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Give Lance moves of Amazon in variant super
-
-Now that Lance is no longer a wild-card piece the moves of Amazon must
-be programmed explicitly, to keep the possibbilty to play Superchess
-with legality testing on.
-
-2010-11-19 18:32:16 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Change representation of Bede in variant fairy initial position
-
-This used to be Lance, but the promoted Bishop (Dragon Horse)
-is more applicable. Especially now that Lance is supposed to move like a
-Berolina Pawn.
-
-2010-11-19 18:28:19 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Make yyskipmoves also suppress examining of drop moves
-
-Not sure if this does any good, but it seemed illogical that this would
-happen in all other moves, but not drops.
-
-2010-11-19 18:23:05 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Define moves for Dragon Horse outside Shogi
-
-Let it move like Bishop + Wazir + Dababba.
-
-2010-11-17 13:40:20 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix safety crash when appending comments
-
-The length limit imposed on safeStrCpy was one too short when copying
-an existing comment to the space allocated for the longer (concatenated)
-one. It allowed no space for the terminating '\0'.
-
-2010-11-17 13:38:00 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix safeStrCpy
-
-The test for when to terminate a non-fiting string was one off, and the
-debug message was written stdoutin stead of debugFP.
-
-2010-11-16 12:40:31 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix default holdings size for variant seirawan
-
-The holdings for 7 pieces werealways considered an overrule, so that the
-variant name was prefixed with "8x8+7_".
-
-2010-11-15 11:36:21 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix home-dir crash
-
-When confronted with a path name starting with ~ and not containing a /
-XBoard would segfault.
-
-2010-11-14 21:45:55 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix one-click moving on up-click
-
-(First) up-clicks were not always ignored: in Edit-Game mode with
-one-click moving enabled this could lead to a capture being made on
-the down-click, and the recapture on the correspoding up-click.
-This has now been corrected, and only the down-click of a first click
-can lead to selecting a piece or a one-click move.
-
-2010-11-15 18:15:40 -0800 Arun Persaud <arun@nubati.net>:
-fixed buffer size for snprintf
-
-
-2010-11-13 23:04:14 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Accept Seirawan-style gating suffixes
-
-The parser rules were extended to accept / as an equivalent of = in
-promotion-suffix notation (e.g. Nf3/H in stead of Nf3=H).
-
-2010-11-13 22:55:32 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Use Falcon and Alfil as built-ins for Seirawan chess
-
-Where available (size 49 and 72) we use Falcon for Archbishop and Alfil
-for Chancelor, to better conform to the Seirawan names Hawk and Elephant.
-
-2010-11-13 20:02:31 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement entering gating moves with mouse
-
-A move with a back-rank piece that starts when a piece in the holdings
-is selected will be interpreted as a gating move in variant seirawan.
-The front-end uses a 'gatingPiece' selected this way todisplay it on the
-from square during animate dragging.
-
-2010-11-13 18:56:15 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement variant seirawan
-
-Set upthe position, including Hawk and Elephant in holdings, in
-InitPostion(). Suppress putting captured pieces in holding. Let
-promoChar indicate gating in ApplyMove(). Remove gated pieces from
-the holdings there. Let GenLegal() generate RxK-type castlings to act as
-base for gating on Rook square. Gatings are tested for legality
-based on the holdings content and whether they occur on the back
-rank. Disambiguate() also tests this. Make sure the gated pieces are
-printed as move suffixes in CoordsToAlgebraic().
-
-2010-11-13 18:42:27 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add -variant seirawan to menu
-
-
-2010-11-13 22:52:09 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix acceptance of null-move with legality testing off
-
-A second click on the same piece was interpreted as a to-square rather
-than deselection of the piece.
-
-2010-11-13 22:49:43 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix one-click bug
-
-Disambiguate was imagining captures, so an only capture by double
-clicking your own piece did not always work.
-
-2010-11-13 20:08:32 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix mouse-driver buglet
-
-The highlights were not cleared on moves that went vertically off board.
-
-2010-11-12 17:17:41 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-List some undocumented commands as compliant
-
-The engine->GUI commands setboard and setup are now always printed in
-the debug file as well.
-
-2010-11-12 17:05:22 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-List Hint with compliant commands
-
-This command was omitted, so that in some -engineDebugOutput modes it
-would not appear in the debug file.
-
-2010-11-12 17:02:53 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Restrict use of escape expansion
-
-Only expand escape sequences like \n and \t in telluser(error) comamnds
-that ask for it by preficing the messages by double backslash. Otherwise
-backward copatiblity is too severely broken for messages that display
-DOS-style filenames.
-
-2010-11-12 13:56:33 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Make safeStrCpy safe
-
-SafeStrCpy was causing a lot of out-of-bound write accesses, as it was
-always writing the character at the length limit of the destination.
-Now no memory is accessed that is is not needed to hold the copy.
-
-2010-11-07 21:37:10 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow clicked name internal to the icsMenu command string
-
-A command in the /icsMenu that was specified to contain the selected
-text or clicked word always appended this word at the end. Now the user
-can also configure it to appear in the middle, by putting a %s in the
-command string where he wants it to appear.
-
-2010-11-07 21:33:19 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Let Engine #2 Settings start second engine
-
-If the second engine is not yet running, it would be impossible to use
-the settings dialog for it, as the features have not been received and
-the dialog will be empty. So the user could not adjust the engine
-parameters before starting a match. Using this menu now automatically
-starts the engine, and delays the appearence of the popup untill the
-features are received, using a similar mechanism as in
-TwoMachinesEventIfReady().
-
-2010-11-01 19:40:26 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Newly lexed parser.c
-
-
-2010-11-06 19:55:31 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix bug in parsing illegal Pawn captures
-
-When a pawn move of type exf5 was illegal, the parser made an attempt to
-interpret it as e.p. capture of f5. This, however, messed up the move,
-so that it was now permanently mistaken for e5xf6. Even in cases with
-legality testing off, where you would want the original move to be
-accepted despite the fact that it was illegal.
-
-2010-11-06 19:49:45 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Keep last PV while clearing engine-output display
-
-When ponder is on, the display is cleared immediately when the last line
-of thinking output appears by the appearing ponder output. So you would
-never get the chance to see it. This line is now re-written after
-clearing, so it appears at the bottom of the output for the next search.
-
-2010-11-06 19:45:18 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Give Lance moves of Berolina Pawn
-
-In stead of using it as a wildcard piece, the Lance gets the moves of
-the Berolina Pawn (straight capture, diagonal move). The initial double
-osh can be a ump, though. (So it is really a Hoplite Pawn from Spartan
-Chess.)
-
-2010-11-06 19:42:16 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Use SAN even on illegal moves
-
-If there is only one piece of type T, moves like Ta1 or Txa1 are never
-ambiguous, so adding the from square is just cumbersome.
-
-2010-11-06 19:34:53 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Use normal SAN for wildcard pieces
-
-SAN often can also be used with pieces we don't know the moves of, e.g.
-if there is only one of that type. We just always get rank or file
-disambiguators if there are more (even when they might be unnecessary).
-
-2010-11-06 14:52:12 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix some warnings
-
-Unused variables were removed from parser.l
-
-2010-11-06 14:43:54 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow arbitrary nesting of sub-variations in PGN input
-
-The parsing of subvariations is moved out of the state-machine parsing,
-to allow arbitrary nesting. In stead of the entire sub-variation being
-parsed by lex as Comment, it now returns Open and Close for the
-corresponding parentheses, which are then handled in a wrapper routine
-for yylex(): Myylex(). Problem was that yy_text is supposed to return
-the entire parsed text of the returned symbol, which thus has to be
-collected. To make this possible, yylex has to return everything that it
-parses, (even white space!), and a symbol "Nothing" was added to return
-in parsing rules that before just ate away irrelevant text without
-returning anything.
-
-2010-11-06 21:48:47 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement setup (engine-GUI) command
-
-This allows the frst engine (when legality testing is off) to overrule
-the default opening position, in reply to the variant command. Syntax is
-"setup (PIECE_TO_CHAR_TABLE) FEN_STRING"
-where the FEN string is interpreted in the context of the given
-pieceToCharTable (which is optional, and only delimeted by parethesis if
-it is present).
-Sendng the position to the second engine is delayed until the first
-engine has responded to the ping after the new-game sequence, to make
-sure it gets the chance to alter the position before it is sent to the
-second engine. This feature is useful for playing variants that WinBoard
-does not even know the opening positon for, and can be used even if they
-are shuffle variants.
-
-2010-11-06 14:19:56 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Restrict use of a2a3 kludge
-
-The kudge to send "a2a3" in stead of "black" to get black to move is
-fatally flawed in varants that have no Pawn on a2. So in that case we
-revert to use of the deprecated "black" command.
-
-2010-11-02 13:06:58 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Remember values set by -firstOptions, -secondOptions
-
-When an engine announces its option features, and the option name
-matches that of a setting given in -first/secondOptions, the engine is
-sent hte specified value, but this value was not remembered as current
-value (but the latter  was left at the engine-announced default),
-leading to inconsistent behavior in the Engine #N Settings dialog.
-
-2010-11-01 19:26:19 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Make test for valid promotion piece color-dependent
-
-This is needed to make it work in variants where white and black have
-different armies; quite likely white will promote to pieces that do not
-exist in the black army, so we really have to make sure we test if the
-white (upper-case) piece exists in this case.
-
-2010-11-01 19:23:43 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Remove validity test on promochar from parser
-
-The backend routines Disambiguate() and LegalityTest() will catch
-invalid promotions, so no need to do it here.
-
-2010-10-31 23:37:06 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add the actual size-33 Shogi bitmaps
-
-These were forgotten in the original commit that fixed the .rc file.
-
-2010-10-31 13:20:08 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Delete some stale promotion code
-
-The correction of the promotion piece to Ferz in Shatran-like variants
-in ApplyMove() was no longer needed, as the new promotion code already
-does this in the move parser.
-
-2010-10-31 13:08:52 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Augment moves of some fairy pieces
-
-To get better disambiguation in variants that have to be played with
-legality testing off, the Elephant is given also one-step moves (making
-it a so-called Modern Elephant) in -variant fairy and great. The Dragon
-King (Crowned Rook), which had no moves defined for it outside Shogi at
-all, has been given Rook moves plus an orthogonal 2-jump, so that it
-can get SAN moves when used as Dababba or Short Rook. (Illegal moves
-currently aways force long algebraic notation...)
-
-2010-11-08 22:57:56 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Bugfix safeStrCpy patch, WinBoard
-
-The use of sizeof on pointers was detected through the same method as
-the previous patches, this time while compiling WinBoard. A typo in
-jaws.c was fixed as well.
-
-2010-11-08 23:03:13 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Bugfix for safeStrCpy patch for XBoard
-
-By a trick (temporarily redefining safeStrCpy in common.h as
-((char*) (a=1/(4-3rdArgument))) ) a compile-time warning (division by 0)
-could be generated for every occurrence where the size argument was equal
-to 4, i.e. where the 1st argument was likely a pointer rather than an
-array. These cases are now fixed. The file xoptions.c, which is the
-only ne that does not #include common.h had to be fixed by making
-the #define in the file itself.
-
-2010-10-31 13:16:01 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix spurious promotions with legality testing off
-
-The recent promotion patch had broken playing without legality testing
-completely: without legality testing one always gets the piece that was
-asked for, but a NULLCHAR should not be taken as a request for a piece!
-But it was, and this resulted in any moved piece turning into a white
-Pawn! For true promotions the piece was always black, which was also not
-very useful.
-
-Also revert to the use of '+' as internal Shogi promoChar, because
-pre-processing turns out not to be possible when reading a game file.
-In stead parse any trailing '+' on moves as promoChar. Downside: '++'
-can no longer be recognized as checkmate symbol.
-
-2010-10-29 22:54:18 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Make deferral default in Shogi promotions
-
-Because '+' is intercepted by the parser as check indicator, Shogi moves
-are pre-processed to change a trailing '+' into an internally used
-alternative '^'. The testing if a promotion character is OK is now done
-in LegalityTest() and Disambiguate(), which return ImpossibleMove when
-the character does not correspond to any piece, and IllegalMove when in
-Shogi anything other than '^' or '=' is used. (Except for the ICS
-notations.) On output, in CoordsToComputerAlgebraic() and
-CoordsToAlgebraic(), the '^' is translated back to '+'.
-
-2010-10-28 17:51:34 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Animate piece explosions in drag-drop moves and in XB
-
-This required some code restructuring: the decision if an explosion is
-needed is now taken in a new routine Explode() in the backend. This then
-calls the front-end driver, and it returns the info if there was an
-explosion or not, so the caller (AnimateMove() or the mouse driver) can
-take action to repair the damage to the board caused by the blast wave.
-A front-end driver for XBoard is provided as well, so that both
-click-click (and replay, which is the same) and drag-drop atomic
-captures are animated in XB as well as WB.
-Explosions on rejected moves are suppressed.
-
-2010-10-28 13:53:51 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Suppress promotion popup if piece will explode
-
-In atomic, a Pawn capture to last rank is not really a promotion.
-Fix choice to Queen.
-
-2010-10-28 18:42:25 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Make Knight hop first straight, then diagonal
-
-It used to be the other way around, which looked pretty illogical in
-Xiangqi: to see Horses, which are blockable pieces there, move over an
-occupied square.
-
-2010-10-27 20:04:01 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Let -oneClickMove also work in EditGame mode
-
-There is really no reason why people that lke one-clcik moves enough to
-switch them on would not want to use them too when editing a game.
-This solves a nast inconsistency, as before it used to work in -ncp mode
-on the _first_ move, as the mode is then BeginningOfGame, and not yet
-EditGame, and we do want it to work for BeginningOfGame, as this is
-also the game mode when you start playing as white.
-
-2010-10-27 19:40:22 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Make -flipBlack and -allWhite option volatile
-
-As these options are very Shogi specific, and the variant is volatile,
-it seems logical to make them also volatile. Not completely sure about
--allWhite, though. It cold be useful if you want, for example, to play
-wth dark-brown pieces for black, as any color but black looks much
-better with outline pieces than with solid pieces.
-
-2010-10-27 19:33:44 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Provide some sample board-texture pixmaps
-
-Wood and marble themes are provided as textures for light and dark
-squares, plus two complete Xiangqi boards (wood and evenly colored).
-These should probably not goint the distro tar ball.
-
-2010-10-27 19:25:56 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-The -overrideLineGap option is made to work in XBoard
-
-Although XBoard already allowed this in the -boardSize specification,
-it is still seful to globally disable grid lines, e.g. for an
-oriental Xiangqi board. And it converges XB and WB.
-
-2010-10-27 19:18:41 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement board textures in XBoard
-
-The -darkBackTextureFile and -liteBackTextureFile options now wrk in
-XBoard too, for loading a pixmap that will be used to cut out the dark
-and light square backgrounds. The cutting algorithm is such that the
-pixmap image is completely restored if the size was that of the total
-board (e.g. a drawing of a Xiangqi board).
-
-2010-10-27 12:11:02 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Complete WB (western) bitmaps for Shogi at size 33
-
-The Lance was not replacing Queen in some sizes where the bitmaps were
-already available, and new bitmaps for the promotion Golds were added.
-
-2010-10-22 20:30:06 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Make starting new variation dependent on shift key
-
-The shift key is read during mouse events, and posted in a global
-variable, which can then be used by the back-end. The decision to start
-a new variation (pushing the game tail rather than clipping it off) when
-entring a move in Edit Game or Analyze mode is made dependent on this.
-The move-typein also records the shift-key state.
-
-2010-10-22 20:25:06 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix merging bug
-
-A %g format was used to print an int in sending the level command,
-because decimal points were dropped when merging patches. Also an unused
-variable was removed to suppress a warning.
-
-2010-10-18 19:50:09 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add set of shogi pixmaps for XBoard
-
-The -size 64 pieces from gShogi (and originally XShogi) are made
-suitable for loading by XBoard, through redefining the transparent
-background color as either light or dark square color. These bitmaps are
-not included in the XBoard build, and perhaps should not even be
-included in the source distribution, but made available in a separate
-distribution?
-
-2010-10-18 19:46:33 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement -flipBlack in XBoard
-
-When -flipBlack is true, the white and back piece pixmaps are swapped in
-flipView. The idea is that the black pieces are upside-down versions of
-the white (Shogi) pieces, so that swapping white and black in effect
-turns all pieces upside down, which is what should happen in flipView.
-
-2010-10-11 21:06:41 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Disable some very verbose debug printing
-
-The internationalization seems debugged enough to do without them.
-
-2010-10-11 20:52:10 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add option -variations to control variation-tree walking
-
-Just so that users can switch it off if the find it annoying.
-
-2010-10-11 21:01:00 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow full promotion suffixes on SAN piece moves
-
-This facilitates the parsing of (non-standard) Shogi moves in ICS
-protocol. It can also be useful for Seirawan Chess, where a future
-implementation of it can use promotion suffixes to indicate gating.
-
-2010-10-11 14:07:02 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow lower-case piece indicator in drop-move notation
-
-As it seems that XBoard also sends such moves in zippy play, it seems
-more fair to recognize them from the engine as well.
-
-2010-10-10 21:26:11 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix bug in ICS variant switch for Shogi
-
-Because a test for 8x8 variants was done by <= VariantShogi,
-rather than <, spurious move-list fetching occurred in Shogi.
-
-2010-10-10 21:23:09 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix WinBoard Lance bug
-
-The choice between Lance and Queen was made on appData.variant, in stead
-of gameInfo.variant. Because of this it was not always up-to-date in ICS
-games.
-
-2010-10-10 21:15:06 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Adapt WinBoard to Shogi implementation on Variant ICS
-
-The Variant ICS does not use the '+P' notation for promoted pieces,
-neither in the board, nor in SAN, but simply indicates any Gold by 'G',
-and uses 'H' and 'D' for +B  and +R. The Shogi promotion code in
-LegalityTest() and Disambiguate(), which are used in move Parsing, are
-adapted to handle this. Deferred promotions sent to the ICS now use an
-== suffix.
-
-2010-10-10 21:07:18 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Inherit promoted-info that ICS does not give from previous board
-
-The ICS does not tell us in Crazyhouse (or Shogi) if a piece is
-primordial or a promoted pawn (or a promoted other piece). We now derive
-this info from the previous board. The option -disguisePromotedPieces
-controls this feature.
-
-2010-10-10 21:03:29 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Limit multi-session clock handling to non-ICS games
-
-In ICS games a time forfeit crashed XBoard, apparently because the
-fullTimeControl string is not properly set when we try to use it to see
-if a sudden-death session is indeed the last session.
-
-2010-10-08 11:47:34 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Change evalgraph scale in drop games
-
-Score swings tend to be much larger in Crazyhouse and Shogi, so the
-vertical rangee in those games is doubled to (-14, 14).
-
-2010-10-13 23:05:05 -0700 Arun Persaud <arun@nubati.net>:
-bugfix: fixed readline support with icslogon option
-
-The icslogon option sends the login and password, so we don't need to handle
-special cases for the readline buffer.
-
-2010-10-07 20:35:26 -0700 Arun Persaud <arun@nubati.net>:
-fixed some typos that were introduced during the sprintf->snprintf changes
-
-
-2010-10-07 11:59:33 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix uninitialized variable in book code
-
-The variable ' power' was used uninitialized in case -bookVariation was
-set to 0, which can be an error even if it was only multiplied by zero.
-
-2010-10-06 14:20:03 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix menu translation bug
-
-The menuText array was declared too small, so that the last entry of the
-File menu got out of bounds and was overwritten by the first of the Mode
-menu.
-
-2010-10-05 21:14:08 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow -timeIncrement to be a float
-
-The increment can now be fractional seconds. The printing in
-ParseTimeControl() and SendTimeControl() is done with %g format, so that
-for integer increment there is backward compatibility with the old level
-command.
-
-2010-03-30 20:24:49 -0700 Arun Persaud <arun@nubati.net>:
-adding gnu-readline support
-
-should make the user interface for xboard a bit nicer. In the end we want to have a separate input window, but this probably will have to wait until the GTK version.
-
-2010-09-24 21:17:50 -0700 Arun Persaud <arun@nubati.net>:
-added warning if icsLogon file couldn't be opened
-
-
-2010-09-24 21:10:28 -0700 Arun Persaud <arun@nubati.net>:
-security fix: replaced some strcat with strncat
-
-there is still more to do
-
-2010-09-19 20:55:01 -0700 Arun Persaud <arun@nubati.net>:
-add option for silent builds
-
-this can be enabled for automake versions >1.11 by calling ./configure --enable-silent-rules.
-It should still work for older automake versions too
-
-2010-09-19 13:16:40 -0700 Arun Persaud <arun@nubati.net>:
-bugfix: missing array index
-
-
-2010-09-19 12:19:44 -0700 Arun Persaud <arun@nubati.net>:
-added new case for (Chessmove) 0 in common.h
-
-this cleans up a few more -Wall messages
-
-2010-09-17 21:47:22 -0700 Arun Persaud <arun@nubati.net>:
-cleaned up -Wall warnings (apart from settings some parentheses)
-
-removed unsused variables, etc mostly everything from -Wall -Wno-parenthesis
-
-2010-09-17 20:36:54 -0700 Arun Persaud <arun@nubati.net>:
-sizedefaults has 9 members, the last line of the array (NULL) only set 7.
-
-
-2010-09-12 20:04:03 -0700 Arun Persaud <arun@nubati.net>:
-security fix: replaced sprintf with snprintf
-
-replaced most sprintf with snprintf. There are still some left where for example a pointer is used and is allocated in the line before, which should be fine... and some others.
-
-2010-09-10 23:36:23 -0700 Arun Persaud <arun@nubati.net>:
-security fix: replaced strcpy with safeStrCpy from backend.c
-
-see comment in backend.c on how to use safeStrCpy. This was already added by AS, but only used in 3 places.
-
-2010-10-04 11:50:38 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Enhance multi-session TC clock handling
-
-Some new TC types are introduced: Bronstein and free sessions. The
-former is implemented by letting an exclamation point '!' in front of an
-increment (in the -tc string) indicate that the increment is limited to
-the time actually used on the previous move. The latter is an interval
-of given duraton in which you can do any number of moves (even zero),
-before the next session starts. This is needed for implementing Shogi
-byoyomi-type TC, as a first session, followed by a session of fixed-time
-per move. The latter can now be specified with the -tc argument as a
-degenerate case of Bronstein, where the time on the clock is <= the
-increment (so that it is never possible to think longer than the
-increment). A TC of 5 min + 10 sec byoyomi can then be indicated as
-300:10+!10.
-
-The sessions are now separated by ':' in stead of '+', and all times in
-the TC string are converted to seconds first (in ParseTimeControl), so
-the fullTCstring can now be directly used in a PGN tag.
-
-Note that this patch only addresses clock handling; the engine will not
-be informed yet if the TC type or parameters change at the start of new
-session!
-
-2010-10-04 09:32:18 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Remove promotion-piece encoding from ChessMove type
-
-The shizophrenic way to indcate promotion pieces in the XBoard code
-(sometimes using a promoChar, at other times relying on moveType) was
-cured by combining all promotion move types (such as WhitePromotionRook)
-into a single one (WhitePromotion), and relying on promoChar to specify
-the piece. This solves the problem of promoting to new piece types in
-variants, which formerly also required addition of new move types.
-
-In Shogi the '+' character is now consistently used to indicate
-promotions (and recognized in ApplyMove), rather than 'q' or
-PieeToChar(BlackQueen), as the latter did not work in minivariants where
-the Queen (representng the Lance) did not partcipate.
-
-2010-10-03 20:50:01 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Pass promoChar to SendMoveToICS
-
-SendMoveToICS was the only place where the promotion piece was derived
-from moveType, rather than an explicity passed promoChar.
-
-2010-10-04 09:41:11 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Suppress spurious use of SAN castling in mini variants
-
-King moves from a central file to the king-side-castled position (1
-square away from the right corner) were intercepted and printed as O-O
-in CoordsToAlgebraic. But on a 5x5 board (mini-Shogi!) this caught the
-normal King move Kc1-d1 as well. The castling notation is now reserved
-for King moves larger than one step.
-
-2010-10-04 08:21:19 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Make Shogi promotion zone board-size dependent
-
-In stead of using a fixed size of 3 ranks, we use BOARD_HEIGHT/3, which
-would translate to 1 rank for mini-Shogi (5x5) and 2 ranks for Judgkin's
-Shogi (6x6), which are indeed what these variants need.
-
-2010-10-03 19:58:00 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Make board-size overrule options volatile
-
-The options -boardWidth, -boardHeight and -holdingSize were legacies
-from the day choosing a variant would not automatically set a board
-size. As a result they are seldomly used anymore. The first real
-application is mini-Shogi (on 5x5 board), and it turned out very
-annoying if the 5x5 settings persisted to the next session, where you
-almost certainly want to play another variant.
-
-2010-10-04 09:16:47 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Strip DOS line endings from parser.l
-
-
-2010-09-16 18:58:37 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Extend mate test to drop games
-
-MateTest() in case of no legal moves now also looks if there are legal
-drops that can resolve the check. This provides reliable mate testing in
-Crazyhouse and Shogi, so these are now made subject to adjudications too.
-
-2010-09-16 18:48:29 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Extend legality testing to drop moves
-
-LegalityTest() can nowbe called with (internal-format) drop moves, and
-delegates their testing to a new routine LegalDrop(). This routine
-performs the 'no-pawn-on-back-rank' test that used to be in
-UserMoveTest (which now calls LegalityTest also for drop moves).
-The more complex Shogi case is also handled (except for Pawn mate
-drops) in LegalDrop().
-
-2010-09-16 18:25:21 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Revert splitting of UserMoveEvent
-
-This splitting into UserMoveTest and FinishMove was no longer needed,
-now that the new mouse driver no longer calls UserMoveTest to figure out
-if a move is a promotion, and XBoard and WinBoard are unified in this
-respect. It was counter-productive, because UserMoveTest was not able to
-change the fromX, fromY (call-by-value) parameters for passing them to
-FinishMove, so it had to defer the conversion of drop moves to internal
-format to the latter, while it did not belong there. (Because
-DropMenuEvent already delivers the moves in internal format.) This
-whole kludgy construction was therefore abandoned, by going back
-to the original 4.2.7 calling scheme, where UserMoveEvent completely
-pre-processes the move, and when it is valid, calls FinishMove directly.
-
-2010-09-16 18:02:40 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix silent bug in drop moves
-
-In ApplyMove() the piece on the from square was accessed and used before
-we tested for drop moves. As drop moves have off-board from-squares this
-led to out-of-bound array access, which apparently was usually harmless.
-
-2010-09-16 17:43:59 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow parsing of upper-case machine moves
-
-Dubious patch, as it caters to non-compliancy. Some variant engines are
-very non-compliant, though.
-
-2010-09-16 17:38:35 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Prevent transmission of spurious promo char to other engine
-
-The parser now strps off spurious promotion characters.
-New move types "White/BlackNonPromotion" had to be introduced for this,
-to indicate NormalMoves that could have been a promotion, to make sure
-the '=' suffix of Shogi deferred promotions survives.
-
-2010-09-16 20:44:37 -0700 Arun Persaud <arun@nubati.net>:
-fixed internationalization for winboard
-
-in the original commit some files were forgotten. This should fix it.
-
-2010-08-29 21:07:12 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix JAWS bug saying side to move in ICS play
-
-This was done the wrong way around.
-
-2010-08-27 14:08:39 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Make WB run-time language switch possible from menu
-
-This is a rather involved patch that might not be worth it. It is
-difficult, because translation of things that live forever is not easy
-to invert (menus, the auxiliary windows). We hae to remember all
-original, English texts there to be able to put them back,or
-re-translate. Still does not fully work, although the menus and
-temporary dialogs now are all OK.
-
-2010-08-27 14:35:46 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Update WB translation template
-
-The language.txt file now also contains all translatable strings from
-the C source files, rather than jsut the resource.
-
-2010-08-27 14:14:51 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Update docs
-
-Add descriptions for machine-match menu support and enhanced book
-control, nick-name options and language.
-
-2010-08-27 13:59:09 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add some forgotten translation hooks
-
-The general-options, file-browse dialogs and the about box did not call
-Translate() yet. Also translate contents of combo boxes. Some small bug
-fixes.
-
-2010-08-27 13:28:33 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Do not translate game-end messages in PGN
-
-The messages themselves are not subjected to _(), but in stead their
-displaying in DisplayMove is subjected to T_().
-
-2010-08-23 13:23:22 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Internationalization for WinBoard
-
-A function Translate() was added, which uses a list of item dialogs,
-reads their value, and replaces it by a translation (if available). It
-also reads the window title and sets a translation. Calls to this
-routine are added in the initialization code of every dialog callback.
-In addition all translatable strings in the WnBoard front end are marked
-by the gettext macro _(). Because WB is not gettexted yet, a hard
-re-definition of this macro is added in each file using it, to the
-string-translation routine T_() supplied in winboard.c.
-Code to read the translation file, and translate the menu texts is added
-in winboard.c. In backend.c the meaning of the gettet macros is
-redefined for the WIN32 case.
-
-2010-08-23 13:07:40 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Make the ID of all WB dialog items unique
-
-Mnany static dialog texts did share the ID -1 (IDC_STATIC). But to
-replace tet at run-time for translation purposes, they need to be
-addressed individually. So they were given new IDs, with symbols defined
-for those.
-
-2010-08-23 12:48:07 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Mark XBoard result messages for internationalization
-
-The GNU gettext macro _() is used with the game-end messages. This might
-be controversial, as they will appear in the PGN as well. But only as a
-comment. We can always decide not to supply a translation.
-
-2010-08-23 12:43:27 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Do not exit after match when match started from menu
-
-The codelooks weird, but matchMode == 2 in this case. We then use
-DisplayNote() to report the match result.
-
-2010-08-23 12:39:07 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Trivial-draws recognition improved in Xiangqi
-
-Now based on a routine "SufficientDefence". If both have it, it is draw.
-
-2010-08-20 17:46:45 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Update .dev files
-
-The relocation of parser.c and the addition of history.c was not yet
-incorporated in the devcpp proect files.
-
-2010-08-19 13:45:04 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix some MSVC compile errors
-
-Some statements has moved up stream of declaratons, which is an error
-that gcc is forgiving about, but where MSVC is strict.
-
-2010-08-14 14:01:44 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Improved patch for expansion of WB settings-file name
-
-The expansion of environment variables now allows multiple environment
-variables in the path name. Tested on %HOMEDRIVE%%HOMEPATH%\winboard.ini
-and %APPDATA%\winboard.ini.
-
-2010-08-07 16:53:50 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add -colorNickNames option
-
-This option allows non-standard designation of side to move in FENs.
-(Useful for Xiangqi, where white is indicated often as r(ed), and Shogi,
-where white is s(ente) or b(lack), and black is g(ote) or w(hite).)
-Can also be used for FENs in a local language. A match of theinput
-character with the nick name translates it to the standard; this means
-the standard will continue to be recognized, unless it was defined as a
-nick name.
-
-2010-08-07 16:39:16 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Tricked by the grossnes
-
-Some WB menu items were referenced by a hard number. As items had been
-added over the years, the wrong menu items were grayed. In particular
-the Options -> Adjudication menu was grayed out, in -ncp mode, where
-this was intended for the Sounds dialog. This accidentally proved
-useful, until we started to apply adjudictions also to the Human moves.
-Then it was suddenly undesirable, and a small mystery why it happened at
-all, when I tried to change it. The numbers are now corrected to the new
-locatons of the items in the menus.
-
-2010-08-07 16:35:23 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow match to be started from WB menu
-
-A menu item Machine Match was added in the Mode menu to switch to
-matchMode. A persistent option /defaultMatchGames determines the number
-of games. A control was added to the Options -> Common Engine dialog to
-set this option.
-
-2010-08-07 16:26:35 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add some book-control options
-
-Options /bookDepth and /bookVariation have been added to control the use
-of the GUI book. In WinBoard the Optons -> Common Engine dialog now
-contains fields to set them.
-
-2010-08-07 00:15:57 -0700 Arun Persaud <arun@nubati.net>:
-new developer release
-
-
-2010-08-06 11:18:34 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Repair exit-popup deadlock patch
-
-Relocating the exit popup call had made it lose access to the message it
-should print, because it was declared only in an inner code block, by
-the same name: buf[]. Deleting the inner declaration fixes it.
-
-2010-08-04 11:00:28 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix erors when compiling with --disable-zippy
-
-The file args.h contained a codeblock in #ifdef ZIPPY, in stead of
-fields.
-
-2010-08-01 13:27:23 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix zippy handling of draw offers from ICS
-
-The patch by DM to fix the problem introduced by the coloration of
-zippy-matched commands (namely that the coloration code beat the zippy
-draw recognition to it, and ate the draw offer away) was only targeting
-ICC. The new fix should work on any ICS (by using the same pattern in
-zippy as in the colorization code).
-
-2010-08-01 13:15:27 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix regression in colorization of zippy-matched commands
-
-The patch by Daniel Mehrman from 4.2.pre8 was not properly merged, so
-that in XBoard no coloration would take place of ICS commands that were
-matched by zippy. (It was using &i as input pointer, rather than &backup.
-The XBoard-specific code now has been deleted completely, to remove a
-seemingly needless dependence on _WIN32_ of the back-end. Both WB and XB
-now use the XBoard method, to only match zippy commands when logged in.
-
-2010-07-31 22:48:45 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Suggest default file name in browser dialog
-
-The argument 'def' to FileNamePopUp() was not passed through to the new
-file-browser routine, which got NULL in stead, and thus started with an
-empty input field.
-
-2010-07-30 23:28:57 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Define /firstUCI and /secondUCI as synonyms for /fUCI, /sUCI
-
-Because the %s expansion of WB options in the /fcp and /scp lines only
-works for options that contain 'first' or 'second', and /fUCI thus did
-not work, PSWBTM had to rely on the cumbersome /firstIsUCI=true to
-install UCI engines. (The latter option should be deprecated really;
-the UCI-ness of the engines is a volatile option, so it makes no sense
-to supply a way to set them both to false or true. One only needs to be
-able to set it to the non-default state.)
-
-2010-07-30 23:21:50 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Add string option /pieceNickNames
-
-This (volatile) option allows definition of alternate letters for the
-pieces, which will be recognized next to the standard symbols as given
-in the /pieceToCharTable on input. (Output always uses the standard.)
-This can be useful for reading PGN from another language, or
-non-compliant FENs (e.g. using B and N for E and H in Xiangqi).
-  The format of the argument is the same as for /pieceToCharTable.
-Because the nickNames are consulted before the standard table, it is
-possible to redefine a standard name as a nick for another piece.
-
-2010-07-30 23:10:42 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix deadlock in match-result display
-
-At the end of a match, GameEnds() was recursively calling itself,
-through DisplayFatalError() and ExitEvent(), and the latter was then
-delaying until the calling GameEnds() terminated. (Which it would of
-course never do before ExitEvent returned; fortunately there was a tim
-limit to this delay, but in XBoard it was 10 sec in stead of 10 msec.)
- Now the calling of DisplayFatalError() (to show the result popup) is
-delayed until after GameEnds completes (and resets the anti-recursion
-flag 'endingGame'), so that it is simply executed a second time, unaware
-of the earlier call. But this second time it does not do anything,
-because the gameMode ws set to EndOfGame the first time, and the writing
-of the PGN is blocked by the checksum being still the same.
-
-2010-07-12 11:10:17 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix WinBoard game-list title
-
-Number of displayed games and WDL stats were always appended to the
-existing title, leading to an ever-growing title in the game-list
-window. Now the old actual title is ignored, and the starts is appended
-to the original title "Game List". (In the future we could use the
-filename here?)
-
-In addition, the title was not updated when re-opening the game-list
-window, while the stats could change if filtering was active when the
-window was closed. (In that case the filter is cleared on re-opening, so
-the number of displayed games changes.) Now a title-update (after
-recalculating the stats) is done every time the game-list window is
-opened.
-
-2010-07-11 11:06:27 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Refactoring of material-draws adjudication code
-
-Insufficient mating material is now determined per side individually, by
-testing for MatingPotential of each side. If both lack mating potential
-the game is adjudicated as draw (if the -materialDraws option is set).
-
-This way MatingPotential() can later also be used to correct losses by
-forfeit to draws (which currently is only done when the opponent has a
-bare King).
-
-The accuracy of this type of adjudication in Xiangqi has been highly
-improved.
-
-2010-07-11 10:54:59 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix bug in sending cores command to engine
-
-The cores command was alwas sent to the engine(s) when the user changed
-it through the menu, even when the engine had sent feature smp=0 (which
-is default anyway). NewSettingEvent() was patched to send the new
-setting conditionally, based on the engine properties as recorded in
-ChessProgramStates first, second; In this particular case it now
-consults cps->maxCores. (Note the code for testing the second engine
-contains some dirty pointer arithmetic.)
-
-2010-07-11 10:42:00 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix oneClickMove bug
-
-When checking for unique captures, no attention was payed to the option
-setting, so the capture was also made when the option was off.
-
-2010-07-11 10:39:28 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Remove duplicate testing for cores feature
-
-The testing for this BooleanFeature occurred twice.
-
-2010-07-11 10:35:13 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Remove misspelled prototype
-
-NewSettingEvent occurred, next to the correct one, in misspelled form.
-
-2010-07-05 10:00:01 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix parsing of SAN shogi promotions
-
-A missing promotion character defaults to promotion in the move type,
-but the promotion character was not set when this happened in variant
-shogi. And it is especially important there, as the promotion character
-'+' will always be missing, as the parser will take it to be a 'check'
-symbol, and strip it from the move.
-
-2010-07-05 09:55:14 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix variant switch on PGN loading
-
-When the PGN specified an essentially different variant, the
-piece bitmaps were not properly adapted, because the switch was done by
-calling InitPosition(), rather than Reset(). (The latter would destroy
-the PGN tags info.) We now added an explicit call to ResetFrontEnd(),
-(which is normally done from Reset()).
-
-2010-07-05 09:51:53 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Adjudicate Xiangqi material draws with Advisor-less Cannons
-
-Used the Queen counter for counting Cannons. Note that material draws
-with stale Pawns (i.e. on the back rank) are not yet adjudicated.
-
-2010-07-05 09:34:21 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Remove font settings from master settings file
-
-xboard.conf should not contain general font settings (not specific to
-one board size) with specified point size. In fact it should not even
-specify sizable fonts, as the new system would make specification of a
-general font overrule the size-specific settings in the .xboardrc file,
-so the persistence of fonts would be completely broken.
-
-2010-06-30 10:52:27 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Cut board squares out of texture bitmap more cleverly
-
-When the bitmap is larger than the entire board, the squares are now cut
-out of the center of the virtual squares from subdividing the bitmap, so
-that they stay centered on the grid of a Xiangqi board bitmap. If the
-board size exceeds that of the bitmap, the old algorithm is still used,
-as the centering would make the edge squares exceed the bitmap, and
-cause a black rim around the board.
-
-2010-06-30 10:49:12 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow -flipBlack to work with font-based piece rendering
-
-In addition the font-based pieces will also be flipped vertically in
-flipView for variant shogi when -flipBlack is off.
-
-2010-06-30 10:46:43 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow font-based piece rendering in board sizes below petite
-
-At least for variants that use unorthodox pieces, so that switching back
-to using bitmaps is not really an option anyway.
-
-2010-06-30 10:41:25 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Ignore checks in 50-move count for Xiangqi
-
-Both checks and evasions are discounted; this is only done after the
-naive counting exceeds the maximum, so during most of the game it causes
-no CPU load.
-
-2010-06-05 14:38:47 -0700 Arun Persaud <arun@nubati.net>:
-removed some garbage from configure.ac that got added a while ago
-
-
-2010-05-25 21:20:27 -0400 Clint Adams <schizo@debian.org>:
-Remove unnecessary double equals from configure.ac.
-
-
-2010-05-28 11:07:06 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix e.p. bug in xiangqi with -serverMoves option
-
-Sideway Pawn moves were written as e.p. captures in the file with moves,
-which led to disappearence of pieces in the viewer.
-
-2010-05-28 11:05:00 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Repair score printing with -serverMoves option
-
-A previous patch had moved MakeMove to before the update of pvInfoList,
-so that the score/depth info would not appear in the file with moves.
-
-2010-05-28 11:02:54 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Repair animate dragging
-
-The previous patch had left a stray semicolon in the mouse handler.
-
-2010-05-10 10:32:19 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix game end during dragging
-
-The stale-first-click fix interfered with proper handling of a piece
-being dragged when a game suddenly ended (because of opponent resign,
-or caling the flag), because up-clicks when the from-square was reset
-were completely ignored. Now such an 'unmatched' upclick calls
-DragPieceEnd() and redraws the board.
-
-2010-05-10 10:09:36 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Pop down old tags on loadng new game in WinBoard
-
-ResetFrontEnd(), called from Reset(), did not do this in WinBoard
-(unlike XBoard), so that the tags from the previous game were left on
-display when -autoDisplayTags was off.
-
-2010-05-09 22:15:27 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Reverse mousewheel action
-
-Apparently WinBoard was stepping in the opposite direction through the
-game in reaction to the mousewheel as every other GUI in existence.
-
-2010-05-09 22:07:30 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix bug in sending "usermove" when forcing book moves
-
-The keyword "usermove" was copied to the buffer, but not sent before it
-was overwritten by the actual book move.
-
-2010-05-06 17:23:24 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix engine stall on perpetual-check evasion
-
-The adjudication code had already put the engine in force mode after
-postponing the actual adjudication to the next move. Now first determine
-if we want to adjudicate now, and with which result, before stopping the
-engine and ending the game.
-
-2010-05-06 16:37:04 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Let move parser return ImpossibleMove for off-board moves
-
-It used to return 0, which interfered with buiding a game list. This
-broke reading of multi-game PGN files containing games in a variant with
-a board size larger than that of the currenty active variant.
-
-2010-04-06 15:05:10 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Alter XBoard key bindings to mimic WinBoard
-
-A lot of new bindings were added, and four menuProcs had to be registered
-to be able to add bindings to them. The use of the control key as
-temporary take-back for the last move conflicted with the use of Ctrl
-keystrokes, and this function was migrated to '.'. The iconify function
-had no shortcut in WinBoard, but to get rid of letter bindings it was
-migrated to '-'.
-
-2010-04-05 20:45:45 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Update README file
-
-
-2010-04-03 14:00:40 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix typos in html help file
-
-
-2010-04-01 15:22:41 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix JAWS piece drop cursor, and streamline some sentences
-
-The cursor square was reset to a1 after every use of the piece menu,
-which was very inconvenient. Some of the spoken sentences have been
-improved; the square is read before the piece now, when using the arrow
-keys on the board.
-
-2010-03-31 22:31:44 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow escape sequences in telluser(error) messages
-
-The routine EscapeExpand was moved to backend.c, and applied to the
-message received from the engine.
-
-2010-03-31 21:29:39 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow lower-case promochar in moves of type h8=Q
-
-Updated the parser rules. Other move formats already allowed this.
-
-2010-03-31 21:36:14 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix Alt+M JAWS command in Two-Machines mode
-
-The command refused to read the ast move because it contained thinking
-output of the other engine. Let it pay attention to evenIfDuplicate.
-
-2010-03-29 09:57:48 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix rep-draw recognition
-
-The refactoring had broken the rep-draw recognition, by adding and extra
-condition in a conditional with side effects. The testing of this extra
-condition is now moved to after the side effect.
-
-2010-03-28 12:32:07 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow any %ENVIRONMENTVAR% in WB settings file name rather than ~
-
-Only a single variable at the beginning of the file name is recognized,
-and the matching is not fool proof (it matches across backslashes).
-
-2010-03-28 11:24:44 +0200 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix info lines being used as normal thinking output
-
-The new standard of using thinking output with time = nodes = score = 0
-as info messages for printing in the Engine-Output window was not
-understood everywhere, and led to such info lines being used for
-autoKibitzing and PGN annotation. The programStats are now only updated
-from thinking output received from an engine when it is not an info line.
-
-2010-03-27 11:54:41 -0700 Arun Persaud <arun@nubati.net>:
-new developer release
-
-
-2010-03-26 21:16:52 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Suppress background observe for boards with own game number
-
-This is really a work-around for an ICS bug. The Variant-ICS sent the
-initial board of a game in a move list with relation = 0, which means
-'observed'. So XBoard was thinking it was observing its own game, and
-switched to dual board. It seems harmless to suppress such a switch for
-all boards of your own game, however, which is now done.
-
-2010-03-26 21:12:19 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix crash on switching to ICS xiangqi game
-
-The oldBoard was a local variable, and only squares of the old board
-were initialized. This led to a crash if the copied board was enlarged,
-and then displayed. The variable is now declared static, so the
-uninitialized squares contain harmless zeros.
-
-2010-03-26 18:32:36 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Let Chat Boxes pop up above console, rather than on top of it
-
-Use EnsureOnScreen() to have them overlap if there was no room.
-
-2010-03-26 18:26:04 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix disabling of Chat Box navigation buttons
-
-The buttons for non-open boxes were enabed, rather than disabled.
-
-2010-03-26 18:17:44 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Prevent <Esc> closing chat box
-
-Let it in stead switch focus back to the console window.
-
-2010-03-26 15:28:54 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Let WinBoard recognize ~ in settings file name as HOMEPATH
-
-Fetch the appropriate environment variable to build the mathname in
-MySearchPath() whenever the file name starts with "~\".
-
-2010-03-26 13:59:28 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Change name of Global Settings menu item to Common Engine Settings
-
-The old name confused ICS users, as this is an engine-only dialog.
-
-2010-03-26 13:58:46 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Update WinBoard RTF docs
-
-
-2010-03-26 13:57:59 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Update WinBoard html help
-
-
-2010-03-24 18:00:08 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow adjustment of clocks in any mode with shift+click
-
-In practice changing to edit-game mode during a game was very
-cumbersome. In WinBoard shift+click is now offered as an alternative.
-Make sure a right-click in the clock area is not also counted for other
-purposes.
-
-2010-03-24 17:21:47 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow loading of PGN variations in XBoard
-
-Right-clicking variation comments in the comment-window was implemented
-through a translation. The right button is now bound to routines that
-set both the end and start of the selection, as setting a new start does
-not seem to work if the previous select-start was not completed by a
-select-end or extend-end. Finally the main handler uses the selection
-cursors to know what was clicked.
-
-2010-03-24 17:16:59 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Update XBoard docs
-
-Added a descripton of the new ICS options (seek graph, back-ground
-observe) and menus (Upload) to the texi file. Also added a description
-of the variation (Annotate menu item and PGN variation comments) and PV
-walking (clicking engine-output). Describe the -shuffleOpenings option.
-
-2010-03-24 13:30:59 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Paint highlights on dual board (WB)
-
-The highlight info is hidden in the partner board to pass it to the
-front-end.
-
-2010-03-24 13:14:54 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix handling username change during game
-
-The title bar and gameInfo (going into the PGN) were not adapted when
-the username was changed through the menu, so that the change became
-only effective on the next game. Requires SetGameInfo to be called from
-the front-end, and thus a prototype for it in backend.c.
-
-2010-03-24 11:04:00 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix window-position upset on failing engine start in WinBoard
-
-The main window was only positoned according to the settings-file data
-after the engine was started up from InitBackend2(), so that if the
-latter gave a fatal error, and Save Settings on Exit was on, a wrong
-position for the main window would be saved. The call to InitBackend2()
-is now moved until after setting the main-window position.
-
-2010-03-23 23:22:46 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Display PV from Engine-Output window (XBoard)
-
-Translations are added to bind button 3 to the PV walk for the memo
-widgets, and the corresponding handlers are ported from wengineoutput.c.
-
-2010-03-10 18:54:28 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Set keyboard focus at startup to board window
-
-This makes XBoard sensitive to the keybindings also when the cursor is
-outside the board window. This focus seems to persist indefinitely: each
-time the board window gets selected, the key bindings become activem
-wherever the mouse pointer is. Downside: the mouse pointer is no longer
-an arrow outside the board window, but becomes a text-insert tool there.
-
-2010-02-27 20:49:21 -0800 Arun Persaud <arun@nubati.net>:
-added logo files for xboard
-
-logos are installed in the hicolor theme [1] using $datadir as the basedir.
-Added both png and svg logo.
-
-[1] http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html
-
-2010-02-27 17:36:10 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Remake programVersion string after receiving engine features
-
-The engine could have sent a more accurate version of its own name
-than the one derived from the exe filename in a myname feature, and we
-better use that in the programVersion string, which will be sent as
-interface name to the ICS.
-
-2010-02-25 19:22:00 -0800 Arun Persaud <arun@nubati.net>:
-Revert "Repair settings-file name"
-
-This reverts commit a02042ef83ce1f3632f0cf3e0a2a4ce9a3ac5d85.
-
-2010-02-25 20:32:23 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add -autokibitz checkbox to UCI-options menu dialog
-
-
-2010-02-25 20:29:45 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Also capture (numeric) whispers of players for -autoKibitz
-
-
-2010-02-25 20:25:32 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add kibitzes and c-shouts Chat Box
-
-A box dedicated to c-shouts will snatch any c-shout before it is
-diverted to a normal shouts box. The kibitzes box can capture the
-left-overs of -autoKibitz, if the latter is active.
-
-2010-02-25 15:45:16 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Mark non-compliant lines of engine in debug file
-
-The option -engineDebugOutput is extended to accept value 3 for printing
-a cear indication of non-compliancy in the debug file.
-
-2010-02-25 12:02:58 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Redraw second board on expose events
-
-The -dualBoard option now does refresh the second board after another
-window uncovers it. To acheive this, some data structures remembering
-what is displayed had to be duplicated. (lastBoard and damage for XB,
-lastReq, lastDrawn, lastReqValid and lastDrawnValid for WB.)
-WinBoard now uses clipping also for second board. This required the
-clips for the destination to be translated horizontally!
-
-2010-02-25 15:13:00 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Print seconds with 2 digits in backgroundObserve status line
-
-
-2010-02-24 17:01:23 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Do not recognize non-ICS variants from PGN event tag
-
-These variants were introduced after supporting the variant tag, so if
-the variant tag is missing, their recognition from the event tag will be
-a false match. (Mainly to prevent events with 'super' in the name being
-recognized as Superchess.)
-
-2010-02-23 13:52:51 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix display of uninitialized boards in background observe
-
-A variable partnerBoardValid is cleared on starting our own game, and
-set when a board from the background game comes in during it. At the end
-of our own game, a valid partner board now is put in the display.
-
-2010-02-23 13:46:25 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add option Display Logo in WB general-options menu
-
-Changing the option requires InitDrawingSizes to be called for
-re-formatting the board window. Switching it off requires clearing of
-the cps->programLogo fields to take effect immediately. Switching it on
-only takes effect the next session, as we will need some refactoring to
-redo the figuring out what logos to display.
-
-2010-02-22 12:02:59 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Group Chat Boxes with console in stead of board window
-
-They now open and close with the console, which seems more natural, and
-prevents the console from covering them.
-
-2010-02-22 11:50:59 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Put new options in WB ICS-options dialog
-
-The Seek-Graph, background-observe and Chat-Box options are added to the
-ICS options dialog. They only control the appData settings, there are no
-special actions yet on switching the settings.
-
-2010-02-22 11:46:33 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Create space in WinBoard ICS-options dialog
-
-
-2010-02-20 12:42:09 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Use side-by-side boards to display background game
-
-A game observed in the background (i.e. if -backgroundObserve true) will
-be displayed right of the normal board in the same window if the new
-(persistent) Boolean option -dualBoard is also set.
-Very flakey hack, especially in XBoard, where clocks and messsage
-field all get the wrong width (and resist adjustment in the strangest
-ways). The clocks of the partner game are not yet displayed, and
-disaster happens when the background and foreground games do not have
-the same board format.
-
-2010-02-23 14:57:01 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Repair background-observe patch
-
-Apparently a commit was lost that I collapsed with 3018a6 while the
-latter was already pushed to savannah. Here I recreated this commit from
-a diff between the respective commits in the savannah & nubati gits.
-
-2010-01-31 11:07:33 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Repair settings-file name
-
-The default name is put back to /etc/xboard/xboard.conf, so that XBoard
-can again find its settings file. "make install" will still install it
-in the wrong place.
-
-2010-02-21 18:43:59 -0800 Arun Persaud <arun@nubati.net>:
-new developer release
-
-
-2010-02-21 19:45:58 -0800 Arun Persaud <arun@nubati.net>:
-fixed compiler warning for file-browser code
-
-missing "void"s in the function declaration and missing returns showed up when trying to build on the opensuse build server. fixed now.
-
-2010-02-21 23:09:24 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Put newly opened Chat Box on top
-
-Dialogs always pop up in front, so set the onTop variable that prevents
-highighting the button to navigate to it from other Chat Boxes
-to reflect that a newly opened Chat Box is in view.
-
-2010-02-21 18:55:03 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix copying of kibitzed info in Engine-Output window
-
-Make sure all lines end with "\r\n" to not lose line breaks on
-copy-paste from the memo. (XBoard would strip those again.)
-
-2010-02-21 18:25:45 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow walking a kibitzed PV
-
-If no tabs are found in te 'thinking output' we assume it is a captured
-kibitz message, and look for "PV=" to locate the start of a PV in it.
-Also try to include any continuation lines below the selected line.
-
-2010-02-21 17:45:37 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Insert autoKibitz continuation lines at end of line
-
-In the engine-output window lines that start with the ICS continuation
-sequence "\   " are inserted behind the line they belong to, in stead of
-at the top. This required keeping thrack of the length of the currently
-active line in OutputKibitz().
-
-2010-02-20 15:39:29 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Don't disturb background observe when receiving new piece
-
-When new holdings are sent when the background game is displayed, we now
-ignore this, as presumably we are peeking at our partners game, and thus
-should be well aware of what is captured there.
-
-2010-02-19 21:52:06 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Newly lexed parser in XBoard directory
-
-
-2010-02-19 11:18:21 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Let yy_text determine progress of PV parsing
-
-The parsed unit yy_text was not available after ParseOneMove(), because
-the buffer switch in yylexstr() apparently destroys it. To solve that,
-yylexstr() now is equiped with an extra buffer argument, where it copies
-yy_text before the switch, so the caller, ParsePV(), can see what was
-parsed in yy_textstr. This is used to update the PV pointer, but also to
-save any parsed comments (when ParsePV is used for parsing a PGN variation).
-
-2010-02-18 17:42:48 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Support playing through PGN variation comments
-
-Right-clicking a variation line in the comment dialog will shelve the
-current variation, and parse the comment to replace it. This uses
-ParsePV() in an alternative way, for which the latter had to be
-enhanced: it was made resistent to move numbers and comments inside
-the PV. It now has an argument to indicate if such comments should be
-stored with the moves. The Comment Popup is closed on revert, to
-make sure no comments to moves that are destroyed, containing
-variations on a non-valid line, can keep hanging around.
-
-2010-02-18 16:05:35 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add Annotate item in Step menu
-
-This does the same as Revert, except that it adds the destroyed
-variation as comment to the original movem in PGN variation format.
-RevertEvent now has an argument to indicate if it should add the
-comment, or not. Comments in the abandoned variation are included in the
-varriation command to the main line. (The exact layout of the variation
-comment that results leaves still to be desired.)
-
-2010-02-15 19:07:12 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add option -shuffleOpenings
-
-This volatile option is added just to make the existing variable
-available from the command line, not only from the menus.
-
-2010-02-19 11:48:49 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Let the sounds sound on receiving a message in a Chat Box
-
-Use Colorize() to the applicable color to trigger the sound, and then
-restore the original color as 'continuation', to do it silently.
-
-2010-02-10 10:55:51 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow WB Chat Box to be dedicated to shouts and 'it'
-
-By putting 'shouts' in the handle field, a chat window will capture all
-shouts and c-shouts, and send messages typed into it as shouts.
-The bracketing of the shouter name now indicates the type of shout.
-The handle for WHISPER Chat Boxes has been changed to 'whispers', to
-make it easier to pop them up by clicking the console.
-
-2010-02-16 22:34:23 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add -chatBoxes option to open Chat Boxes at startup
-
-This string option contains a semicolon-separated list of handles for
-which Chat Boxes should be opened at startup. The value saved in the ini
-file is the value that was read, not the actual chat boxes that were
-open at the time of saving.
-
-2010-02-16 19:44:46 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Make Chat Windows pseudo-tabbed
-
-By adding buttons in every Chat Box to navigate directly to every other
-Chat Box, a stacked set of Chat Windows behaves like a single tabbed
-window, but can still be unstacked. The buttons turn grey to warn that
-new text appeared in hidden boxes (i.e. not the one last brought to top).
-
-2010-02-19 21:46:05 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow arrow keys in WB Chat Box to access command history
-
-The history is shared between al boxes and the ICS console.
-
-2010-02-12 22:35:11 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Make WB Chat Boxes wrap and handle URLs
-
-Cloned the code for the console text field to hande URL. (Initialization
-to recogize the link, and notifiction to open it when clicked.)
-Removed the ES_AUTOHSCROLL style from the RichEdit in the resource.
-
-2010-02-10 10:58:29 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix copying of WB Chat Window contents
-
-All line breks were lost on copy-pasting the contents of a chat window.
-Adding CR to each outputted line in the front-end (wchat.c) solves this.
-(Tell messages sent to a handle (which are not echoed by the ICS, and
-thus have to copied to the chat box directly) also need CR!)
-
-2010-02-19 22:34:30 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add upload of game to ICS for examining
-
-New item "Upload to Examin" in Action menu, calls UploadGameEvent().
-Use SAN moves to upload game to ICS, rather than long algebraic
-(The ICS did not understand long-algebraic promotion moves)
-Use bsetup within examine to set position onFICS, and also variant.
-Castling rights do not work yet for FRC. Totally different set of
-commands are needed on FICS and ICC.
- FICS does not understand w23 or wild/23, but needs 'crazyhouse' in the
-besetup command that specifies the variant. XBoard variant names are
-used, except for fischerandom, which is 'fr'. Things like nocastle will
-probably still not work.
-
-2010-02-18 17:41:10 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Handle display of PV that starts with other move than played
-
-Insert the retraction of the played move, without premove highlighting.
-
-2010-02-16 19:36:18 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Bugfix smart capture
-
-Disambiguate was changed to make sure that for ambiguous moves, a
-capture would always prevail in the closure, rather than the last move
-that happened to be generated. Before, double-clicking a piece would
-sometimes plsy a non-capture.
-
-2010-02-13 15:34:04 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix XB crash on giving keyboard focus to non-text widget
-
-In the Engine-Settings dialog SetFocus() could be called for non-text
-widgets, and this made XawTextSetInsertionPoint() croak. Setting the
-insertion point to the end in SetFocus() was a bad ide anyway, as it
-interfered with copying from the engine-output window, which would
-uncontrollably scroll on getting focus. It is solved now by setting the
-insertion point already on creation of the text widgets.
-
-2010-02-19 22:32:35 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Seek-Graph bugfix: disappearing output in ICS console
-
-Suppression of output to the cosole was handled fundamentally wrong: it
-was not enough to set next_out to after the unit that should be
-suppressed, as there can be a backlog in printing of previous units that
-came in the same packet. So this has to be flushed first, or it will be
-lost. -autoKibitz probably got away with that, because it comes in a
-separate packet. But seek ads are often suffixed to other output, and
-then that output disappeared! Now we flush everywhere before suppressing.
-We now totally rely on the prompt to restart the printing, so that
-acknowledgements following the echo of the sent message are also
-suppressed. Also suppress LF before diverted chat messages.
-  Also fixed is the 'mamer bug' in Chat Boxes, due to false parsing of
-a "* (*): " pattern in tell messages, because of a missing continue.
-
-2010-02-12 18:08:29 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Pop up ICS text menu with default item under mouse pointer
-
-The menu popup is migrated to the down-click (was up-click), so the
-up-click can select the item. Some trickery is needed to fool the menu
-into thinking that the mouse moved, so that a moveless up-down click in
-the ICS text field selects the default item (the upper-right one).
-Also allow dummy item in ICS text menu: The command "none" in the ICS
-text menu will now be treated as a grayed-out (disabled) entry, so it
-can be defined in the position underthe mouse pointer to prevent the
-up-click from doing anything, while keeping the menu open. Recommended
-for use with an entry of spaces.
-
-2010-02-10 14:42:49 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow ICS context menu to pop up a Chat Box on clicking handle
-
-A command "chat" defined in the WinBoard icsMenu string will cause
-ChatPopUp() to be called when it is clicked, with the clicked handle
-(name) in the ChatPartner field, and focus on the input field.
-ChatPopUp() had to get a parameter (the handle) to make this possible.
-If that parameter is NULL (as when it is called from the Mode menu),
-focus will still start on the (empty) ChatPartner field of the box.
-
-2010-02-10 10:50:11 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix right-edge spillover of Seek-Graph dots in WinBoard
-
-Rescale the X-axis to allow margin for dot size and color offset.
-
-2010-01-30 11:05:52 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Interface XBoard to GhostView file-browser dialog
-
-Note: The Ghostview dialog was using some deprecated variables for error
-printing, and conditionally used getwd() on some systems that presumably
-do not have getcwd(), but it did not assess the latter properly.
-
-2010-02-09 14:38:09 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow recalling history in ICS input box with arrow keys
-
-By adding translations for the Up and Down keys, and stealing some code
-from winboard.c. Still needs some refactoring to move the duplicate code
-to the back-end.
-
-2010-02-09 14:34:33 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Start insertion point at end of text edits in XB dialogs
-
-The function SetFocus now uses XawTextSetInsertionPoint to position the
-end of the string it aready contains, rather than at the beginning.
-
-2010-02-08 17:55:44 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Capture holdings of background observed game
-
-
-2010-02-08 11:57:57 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Match handles with multiple titles for channel Chat Boxes
-
-Only handles with at most one suffixed 'title', such as (U), (C), (IM)
-or (TD), followed by the parenthesized channel number, were recognized,
-so tells by people with more titles always went to the ICS console window.
-Patterns are added to recognize handles with upto three such qualifiers.
-
-2010-02-08 11:54:55 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Do not pop down Seek Graph on on-dot click
-
-Leave the graph up, and let the incoming board of a started game cause
-the pop-down. This in case the clicked ad is no longer vailable, or
-manuay refused, and fails to start a game.
-
-2010-02-07 21:26:39 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Observe a game in the background while playing
-
-A new (persistent) option -backgroundObserve true|false is added. When
-set, observed boards received while playing a game will not trigger a
-game switch, but will be ignored except for storing in a dedicated board
-buffer. Pressing the right mouse button will cause the board to be
-displayed, until we release it. Time, strength and stm are always
-displayed in the message window.
-
-2010-02-07 16:43:36 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Remove race condition in clock switching
-
-The move number is now incremented inside SwitchClock, when no timer
-interrupt is scheduled, so the interrupt cannot occur at the wrong side
-of the increment, and decrement the wrong clock.
-
-2010-02-07 11:53:03 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Let second click on piece make only capture, with -oneClickMove
-
-Normally this would clear the highlighting of that piece.
-Required new field in DisambiguateClosure to count nr of captures.
-
-2010-02-07 11:18:56 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Bugfix stale first-click
-
-When the opponent resigned after the user had cicked a from-square,
-clicking the from-square for the first move in the next game would
-produce an "illegal move" message, because it was considered a to-click!
-We now set fromX and fromY to invalid in GameEnds().
-Should we also reset them on mode changes?
-
-2010-02-07 11:08:05 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add promotions and e.p. to oneClickMove
-
-For e.p. the to-Square of the Pawn has to be clicked. Promotions are
-always to Queen when you click the to-square, but use the promotion
-pop-up when you click the from-square.
-
-2010-02-07 10:38:38 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix error that compiler does not notice
-
-Boolean GLT_GetFromList did not return a value. But no error on Ubuntu!
-
-2010-02-06 18:55:38 -0800 Arun Persaud <arun@nubati.net>:
-new developer release
-
-
-2010-02-06 18:30:42 -0800 Arun Persaud <arun@nubati.net>:
-updated year in copyright info
-
-
-2010-02-05 22:27:51 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-One-click moves
-
-Playing on ICS or against engine, clicking a square from or to which
-only a single move can be made causes the move to be done, when the new
-option -oneClickMove is set to true.
-
-2010-02-04 16:09:25 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Use squares for computer seek ads
-
-Shape indication passed in sign bit of color (char) variable.
-
-2010-02-04 22:46:41 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Use right mouse button to view seek ads
-
-Right down-click does the same as left down-click, right up-click
-simulates a left up-click off board (so it misses all dots).
-
-Use right-click miss to refresh Seek Graph
-
-The 'moving' parameter had to be made into an int for this, to indicate
-right clicks with code 2. Right press now already pushes the clicked ad
-to the back, so that the up-click will display an underlying one.
-
-Bugfix pushing back seek ads on right-click
-
-On a right button press the previous in stead of currently hit ad was
-receiving the penalty.
-
-Indicate seek-ad multiplicity
-
-If more than one seek ad is inside the capture range of the mouse
-pointer, an exclamation point is printed before the seek-ad text.
-
-Some fixes to make seek-ad suppression work in WinBoard
-
-In WinBoard the z-depth was immediately erased by redrawing the graph;
-the clearing of zlist had to be moved from PlotSeekAd() to AddAd()
-(where it really belongs). Also aging of z-depth is now suppressed on
-mere pointer motion.
-
-2010-02-04 22:45:01 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Dynamic Seek Graph
-
-The new option -autoRefresh sets FICS and ICC to report removal of seek
-ads, and then removes those from the Seek Graph. New seek ads are added
-to the graph, as soon as the ICS reports them.
-
-2010-02-04 22:42:15 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement SeekGraph in XBoard
-
-For now only controlled by left mouse clicks on board. New options
--seekGraph true|false and -sg to switch this feature on.
-
-Facilitate selection of coinciding seek ads
-
-Seek-ads that are viewed but not answered get a distance penalty on the
-up-click that makes their selection more difficult next time, so that
-the ad they covered gets a (better) change. The penalty ages away in the
-course of 5 clicks.
-
-Slightly offset Seek-Graph dots of different color
-
-Dots of different color are now displaced horizontally be 3 pixels, to
-prevent them from completely covering each other. (Required the axis
-labels to be moved a little too, to not be covered by the 1-min ads.)
-
-Auto-show seek-ad texts in WinBoard
-
-Hovering the mouse above a Seek-Graph dot will make the text belonging
-to it appear in the message field without the need to press a button.
-Required SeekGraphClick() to be called from the WB mouse event handler,
-with an extra argument 'moving' to make the distinction with a real
-click.
-
-Show seek-ad text on mouse hovering (XBoard)
-
-The Eventproc is also set to trigger on PointerMotion, and this event
-then calls SeekGraphClick with motion=true to handle it.
-
-Put poetic name of wilds in seek-ad text
-
-Use XBoard variant names, except for 'loadable' and 'fischerandom'
-(becomes 'setup' and 'chess960'), but leave number (to distinguish wilds
-that transate to same XBoard variant).
-
-2010-02-05 20:36:50 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix highlighting bug in XBoard
-
-The from-square was drawn before the to-square was erased, which led to
-a missing highlight line if they shared an edge or corner.
-
-2010-02-05 15:49:59 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Shorten autoKibitz confirmation on FICS
-
-Strip off the "players)", but leave the separatng space.
-
-2010-02-05 14:39:55 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Repair damage to -autoKibitz done by FICS atomic zippy claim
-
-The sending of -autoKibitz info was also moved back in that patch, but
-unfortunately to after clearing of the programStats info. Now the
-clearing has been moved also, to remain after it.
-
-2010-02-04 23:33:50 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Send continuation lines to chat box they belong to
-
-The variable savingComment is used as a kludge to remember where the
-comment should go (i.e. which chatbox, or elsewhere), so that when a
-continuation line is matched, chatPartner (which was reset at EOL) can
-be restored to its original value. Also put space after handle of talker
-in channel Chat Windows
-
-2010-02-02 19:08:42 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix u64 format for cygwin
-
-With a -mno-cygwin compile %llu and %lld are definitely not understood
-by scanf and printf, although they are by the compiler. In stead, %I64u
-seems to work. Put it in under control of a switch USE_I64, which is
-defined only in the gcc makefile when MINGW is used.
-
-2010-02-02 19:02:28 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Remove stray dot from WinBoard makefiles
-
-There was a period suffixed to config.h in the wgamelist.o dependency.
-
-2010-02-01 14:50:01 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix bug in display of logos
-
-The logo continued to be drawn after a boardSize change to a tinyLayout
-size, although there was no space reserved for it. Fixed by explicitly
-resetting logoHeight when no logo space is reserved in InitDrawingSizes().
-
-2010-01-19 20:15:49 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Right-click refactoring: step III
-
-Let WinBoard call RightClick in back-end, and delete the duplicate code
-it had for this, after rescuing the front-end bits, and let the letter
-act depending on the result returned by RightClick.
-
-2010-01-19 19:07:15 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Right-click refactoring: step II
-
-Migrate the Right-click routine to the back-end. Let it communicate back
-square coordinates through pointer arguments, to accomodate their
-different naming in XBoard and WinBoard. Template added in frontend.h.
-
-2010-01-19 17:55:05 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Right-click refactoring, step I
-
-Divorce front-end part from back-end part of PieceMenuPopup in XBoard
-front-end, and forge the back-end part into a new routine RightClick.
-The right up-click in XBoard, which called unLoadPV() directly, now
-calls RightClick through PieceMenuPopUp().
-
-2010-02-04 23:09:47 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Merge gamelistopt sources into gamelist source files
-
-The files xgamelistopt.c and gamelistopt.c are merged with xgamelist.c
-and gamelist.c, respectively. The WB front-end for the dialog already
-resided in winboard.c, so there was little need to move it to wgameist.c
-file. Makefiles adapted accordingly. Unsuitable key bindings were
-removed. The low-level front-end prototypes are now defined in in
-frontend.h.
-
-2010-01-29 21:47:47 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Game-List options dialog for XBoard
-
-A dialog similar to that of WinBoard was cloned from the game-list
-window. The XBoard front-end is in a separate file xgamelistopt.c,
-which in fact implements most of the low-level front-end as back-end.
-
-2010-01-29 12:48:50 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Refactoring of game-list-options dialog
-
-The back-end part is separated off, and moved to a file gamelistopt.c.
-Front-end for now stays in winboard.c. No prototypes in frontend.h yet.
-
-2010-01-26 19:28:43 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix of ancient WB bug: test integer option values for validity
-
-Only a string of digits preceded by an optional sign is accepted now.
-Before, any string was accepted, and leaving out a value could lead to
-the next option being ignored (if it did not need a value) because it
-was considered the value for the previous one!
-
-2010-01-26 19:00:54 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix bug in edit-position of holdings
-
-The holdings were effectivelly taken one too large, so that a promoted
-shogi Pawn moved to, or created in the holdings was not demoted to Pawn,
-but put in the dark (which you could see by the holding count if you did
-it twice). The overflow tests in these two cases now have been corrected.
-
-2010-01-25 13:54:40 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Save fonts in XBoard settings file per boardSize
-
-Each -boardSize now can have its own font specified in the settings file
-(and thus by a command-line option, although it would in general not be
-very useful to specify a font for a size other than the selected). E.g.
-a prefix "size33:" to the font name will apply it only to -size 33.
-An unspecified-size font option (not normally in the settings file) will
-always prevail over a font option specific for the current size.
-A font of some size must have been used or specified in order to be
-saved.
-
-2010-01-25 08:56:35 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix width of filter field in XBoard GameList
-
-An empirical dependence of the width of this text edit on the square
-size now makes for an acceptable layout at any board size.
-
-2010-01-24 19:09:45 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Use FICS atomic draw claim for sending move in zippy mode
-
-For this the relaying of the move had to be moved until after the
-adjudication, which again has to be done after MakeMove(), which is a
-bit dubious, as MakeMove might take significant time when animating.
-
-2010-01-24 18:51:38 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Send FICS atomic claim to ICS if move creates draw after offer
-
-The FICS format "draw MOVE" is used to send the move to the ICS  when
-the user enters a move that adjudicates as a claimable draw, and he
-offered a draw before the move. For the benefit of ICS that do not
-understand this format, the plain move is sent afterwards.
-
-2010-01-24 18:16:14 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Also allow user to claim by offering draw before his move
-
-Use the existing userOfferedDraw variable to test for such offers in
-Adjudicate().
-
-2010-01-24 17:29:42 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Also adjudicate after user move
-
-Call Adjudicate() in FinishMove().
-
-2010-01-24 15:56:56 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Refactoring of adjudication code
-
-Put all the rule-based (as opposed to score-based) adjudications in a
-separate routine, so they can also be called on user moves. This
-requires sending the drawing move to the opponent engine to be made
-conditional on existence of the latter. Execution of the code is no
-longer dependent on the condition TwoMachinesPlay, but actual game
-terminations are now all restricted by an alternative condition (no ICS
-mode).
-
-2010-01-24 11:46:30 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Use -keepAlive option to determine connection health
-
-When there has been no ICS response since the previous 'ping', assume we
-are disconnected and do a fatal-error exit. Also auto-start the ping
-process in InitBackend3().
-
-2010-01-23 23:00:10 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Use arrow keys in XBoard GameList for entry selection
-
-Add translations for arrows and home/end, to call LoadSelectedProc with
-argument to indicate the step, and let the latter perform the action.
-
-2010-01-23 22:24:20 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow <Enter> to apply filter in XB GameList filter edit
-
-Apply a translation to intercept the <Enter> key. Set focus back to the
-list display afterwards.
-
-2010-01-23 21:44:36 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Accept <Enter> for changing chat partner
-
-A kludge stolen from Alessandro's GameList filter allowed to let the
-typing of <Enter> while updating the chat-partner field of the WinBoard
-chat windows to act as pressing the Change button. Gives focus to the
-input field of the window afterwards.
-
-2010-01-23 21:42:38 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Move duplicat gamelist code to backend
-
-The filtering routines are moved from xgamelist.c and wgamelist.c to
-gamelist.c, and a prototype for them is placed in backend.h.
-
-2010-01-23 19:29:18 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Port game-list filtering to XBoard
-
-Added a text edit and apply button to the XBoard game-list dialog, and
-only have it print those lines that match the filter. Translate index in
-list to index of game in file when a game is selected, and index in file
-to index in list when a line is highlighted. Duplicates some code
-between xgamelist.c and wgamelist.c, which should be moved to back-end.
-
-2010-01-21 19:24:49 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Convert to DOS line endings
-
-For easier understanding of upcoming diffs of winboard.c
-
-2010-01-21 14:32:46 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Refactoring of move-history code
-
-The WinBoard code in whistory.c was split in a front-end part (remaining
-in whistory.c) and a back-end part (now in history.c in the xboard
-directory). This to allow easy porting to other platforms.
-
-2010-01-20 12:48:30 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add fixed-time/move button in XBoard time-control dialog
-
-Put the TC-type buttons in a radio-group, and highlight the selected mode.
-
-2010-01-19 18:27:14 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix bug in XBoard PV display
-
-The PV was unloaded on anything but a button release, in stead of the
-other way around.
-
-2010-01-23 11:04:11 -0800 Arun Persaud <arun@nubati.net>:
-fixed hardcoded location of config file for xboard
-
-the location should now follow sysconfdir during the configuration process.
-Also added some more output to the configure script.
-
-2010-01-18 12:18:32 -0800 Arun Persaud <arun@nubati.net>:
-new developer release
-
-
-2010-01-18 12:15:06 -0800 Arun Persaud <arun@nubati.net>:
-fixed Makefile.am to handle config file correctly
-
-
-2010-01-15 21:55:29 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Change opening array -variant fairy
-
-We now use the position of "Chess with Different Armies", FIDE army vs.
-a fantasy army (inspired on the Color-bound Clobberers) as opening
-position.
-
-2010-01-13 19:08:45 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Add variant Makruk
-
-Thai Chess, played by 2 million world-wide. Required pawn promotion to
-happen in a zone, and the Alfil to move as Shogi Silver, a new opening
-array, and unusual Pawn placement. Because of the latter, I consider it
-a setup position, so a FEN will always be sent to the engine.
-
-2010-01-17 14:17:10 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix parsing of O-O and O-O-O after FEN pasting in FRC
-
-Because the initial rights were not set in the FEN reader, the
-initial rights of the previous game remained in force, so that the
-parser did not understand OO-castling (although it would allow KxR
-castling).
-
-2010-01-15 14:40:43 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix reading FEN castling rights for knightmate and twokings
-
-Scanning the back-rank for a King did not work in these variants,
-because either the Unicorn castles, or there might be two Kings.
-
-2010-01-13 11:42:52 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix omission in castling refactoring for ICS received boards
-
-A default of -1 was still used, in stead of NoRights, when no Rook was
-found. In theory this could have had effect in a setup board 0 in FRC,
-when there were no Rooks on the back rank.
-
-2010-01-13 11:35:34 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix TwoKings ICS castling-rights bug
-
-Scanning the rank (as is done because of FRC) assigned castling rights
-to the rightmost King. Even scanning the opposite direction would not
-work, as it is not always the eftmost King that can castle. So we now
-explicitly test for a King on e1/e8 in TwoKings and assign it rights,
-relying on the Rook rights received from the ICS to control castling.
-
-2009-11-18 19:12:25 -0800 H.G. Muller <h.g.muller@hccnet.nl>:
-fix double start of zippy engine after switch to gothic
-
-In ICS mode we now switch to the proper variant as soon as we receive
-the generic game-start message, to prevent a mismatch when the first
-board is received (which would trigger fetching of a move list).
-
-2010-01-11 16:44:40 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Extensive bugfix of -autoKibitz
-
-Suppression of printing of diverted kibitz messages failed when they
-extended over more than one read. This could even lead to such
-messages being erroneously saved as comments, which then lead to
-crashes. The suppression mechanism now waits for a prompt, in stead of
-the end of buffer. This required the printing of any leftover in the
-buffer to be deferred until the next read completes it.
-The number of people kibitzed to is now printed.
-
-2010-01-11 16:30:59 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix piece-to-char table -variant fairy
-
-The letters for Lance and Snake where swapped.
-
-2010-01-09 11:54:20 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Make WinBoard makefiles use parser.c in XBoard directory
-
-
-2010-01-08 18:23:39 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Docs update for new features
-
-
-2010-01-08 15:18:37 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix new args parsing of -lowTimeWarningColor
-
-This did not occur in the XBoard color translation table yet.
-
-2010-01-08 14:16:59 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow editing of holdings in EditPosition mode
-
-Dragging pieces to and from the holdings now consistently keep track of
-the home square of pieces and the piece counts, as does creation of
-pieces in the holdings through the piece menu.
-
-2010-01-08 13:59:57 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Indicate squares a lifted piece can legally move to
-
-Under control of the new option -showTargetSquares when
--highlightDragging and -testLegality are on, the squares a piece can
-move to are marked by fat dots in the highlightColor (non-captures) and
-premoveHighlightColor (captures), as soon as you grab it for dragging.
-In variants with mandatory capture, the capture target of other pieces
-is marked with the highlightColor (as non-captures are then not allowed).
-
-2010-01-08 12:35:10 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix bug for incommensurate time odds
-
-After normalization (-timeOddsMode 1) the time odds factors can be
-non-integer, and thus must be stored as float.
-
-2010-01-08 11:41:26 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Display PV right-clicked from EngineOutput window
-
-The clicked PV is selected and the memo gets focus, so that it is
-highlighted. This selection is restored in the proper place after
-insetrtion of a new line in the memo.
-
-2010-01-08 10:19:32 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Display PV on right-clicking board
-
-
-2010-01-08 09:21:04 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Bugfix legality null move in parsing with -testLegality off
-
-The pointers were compared, in stead of the values.
-Furthermore, instead of null moves, it rejected moves on the main diagonal when legality checking was off.
-
-Also exclude moves with empty squares and enemy pieces.
-
-2010-01-07 19:10:39 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Newly lexed winboard/parser.c
-
-
-2010-01-07 19:05:17 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Harmonize declarations of XBoard and WinBoard
-
-The engine-exit and settings patches make some stuff common to WinBoard
-and XBoard, which needed to be harmonized, and is moved to frontend.h.
-
-2010-01-07 13:07:57 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow Ctrl-C copying from EngineOutput window text to clipboard
-
-
-2010-01-07 12:52:17 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Allow popup-less (fatal) exit of engine after tellusererror
-
-
-2010-01-07 12:40:12 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Improve layout of Engine #N Settings dialog
-
-An attempt is made to align the input fields of spins and text-edits
-
-2010-01-07 00:31:11 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Let XBoard print version with argument --version or -v
-
-
-2010-01-07 00:25:57 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix castling rule assignment in shuffle games
-
-The conversion to in-board storage for rights copied directly to boards[0] in steadof
-initialPosition, and was then overwritten when the latter was copied with uninitialized
-rights to boards[0]. This affected FRC and CRC, where rights are non-standard.
-
-2010-01-07 00:17:25 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Implement castling in -variant caparandom
-
-CRC should be treated as FRC, but until now it never was. We now test for FRC_TYPE_CASTLING.
-
-2010-01-07 00:09:18 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix default castling rights on reading incomplete FEN
-
-This was overlooked in the conversion to the in-board storage of rights.
-
-2010-01-07 00:03:09 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix NoncompliantFEN defaults.
-
-This must be NULL to get compliant FENs, not "", which would suppress castling and e.p. fields.
-
-2010-01-06 23:54:49 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Change format of -adapterCommand.
-
-first or f at the start of an option name are now automatically changed into second or s,
-rather than needing %% to be recognized. The values of -ec and -ed in the default
--adapterCommand are now quoted (now XBoard understands quoting in the engine command line).
-
-2010-01-06 23:51:16 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Make WinBoard defaults for -fd and -sd equal to "." rather than empty strings.
-
-
-2010-01-06 23:28:47 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Delete old indirection settings-file code
-
-
-2010-01-06 21:45:14 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Correct XBoard default debug file name
-
-
-2010-01-06 21:34:48 +0100 H.G. Muller <h.g.muller@hccnet.nl>:
-Suppress saving font settings.
-
-The fonts are size dependent, and might thus not be reusable in the next
-session. For now we therefore suppress the saving of them in the
-settings file, until we diversify the fonts per boardSize.
-
-2009-12-12 23:38:20 -0800 Arun Persaud <arun@nubati.net>:
-added missing sounds files to be able to compile on windows
-
-
-2009-12-09 17:29:37 -0700 Eric Mullins <emwine@earthlink.net>:
-Changes needed to compile master branch.
-
-
-2009-12-06 12:11:46 -0800 H.G. Muller <h.g.muller@hccnet.nl>:
-implements the eval-graph window for XBoard
-
-
-2009-12-06 11:58:34 -0800 H.G. Muller <h.g.muller@hccnet.nl>:
-improves the XBoard handling of the engine command line
-
-it now understands limited forms of quoting, so engine binaries with spaces in their file name can be handled.
-
-2009-12-06 11:56:40 -0800 H.G. Muller <h.g.muller@hccnet.nl>:
-A better and more flexible way of invoking Polyglot
-
-rewrote uci.c. No more use of temporary files, all data passed through the engine command line. Adds a new command-line option -adapterCommand for this.
-
-2009-12-06 11:34:50 -0800 H.G. Muller <h.g.muller@hccnet.nl>:
-remove trailing \r in xboard output
-
-there is an annoying carriage return (displayed as ^M) at the end of the PV in the engine-output window, not
-only with Fairy-Max, but also with UCI engine running under Polyglot. This patch replaces the trailing CR that Linux programs send after the PV line y a space.
-
-2009-11-29 11:56:32 -0800 H.G. Muller <h.g.muller@hccnet.nl>:
-double buffer size to prevent overflow
-
-This patch doubles the size of the ICS input buffer to 16KB, to prevent
-the suspected overflow with -keepLineBreaksICS false when using
-"inchannel 1" on FICS and over 500 people are tuned in.
-
-2009-11-28 13:33:52 -0800 H.G. Muller <h.g.muller@hccnet.nl>:
-fix problem with empty string in -firstNeedsNoncompliantFEN
-
-This fixes a bug in the use of the -firstNeedsNoncompliantFEN option with
-an empty string as argument. (Which led to truncation of the FEN.)
-
-2009-11-28 13:32:12 -0800 H.G. Muller <h.g.muller@hccnet.nl>:
-updates makefiles to include dependency on config.h
-
-adds the dependency of wbres.o on config.c introduced by having the VersionInfo in the resource
-
-2009-11-28 13:28:00 -0800 H.G. Muller <h.g.muller@hccnet.nl>:
-correctly apply some check boxes from the option menu
-
-Usng the check-boxes in the Option->Adjudications menu to indicate the
-engine reports absolute scores is now copied directly to the ChessProgramState,
-from where it is used, in stead of only to appData. This makes the change take
-effect immediately, in stead of after restarting.
-
-2009-11-28 13:27:43 -0800 H.G. Muller <h.g.muller@hccnet.nl>:
-score sign in analysis mode
-
-this does not alter any of the current behavior with compliant engines,
-but does extend the correction for non-compliant score reporting under
-control of the -first(second)ScoreIsAbs option to cases where the engine
-is analyzing or playing on an ICS.
-
-2009-11-24 21:09:30 -0800 Arun Persaud <arun@nubati.net>:
-fix for bug #28077: xboard needs to link against x11
-
-hopefully fixed automake to take care of this
-
-2009-11-23 20:37:20 -0800 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix castling rights when copying FEN to clipboard (again)
-
-missed a spot last time
-
-2009-11-23 20:22:58 -0800 H.G. Muller <h.g.muller@hccnet.nl>:
-restoring windows (EngineOutput and MoveHistory) on startup
-
-restoring the open / closed status of the
-auxiliary windows (EngineOutput and MoveHistory) on startup
-in XBoard like they do in WinBoard, which makes sense now that
-we aso remember their coordinates between sessions.
-
-2009-11-23 20:21:14 -0800 H.G. Muller <h.g.muller@hccnet.nl>:
-fixed some outstanding pixmaps
-
-fixed transparency issues
-
-2009-11-23 20:17:25 -0800 H.G. Muller <h.g.muller@hccnet.nl>:
-use linux style options for config file and add a system config file for XBoard
-
-This patch makes XBoard write the options to its conf file in
-Linux style, "-option value" rather than Windows style "/option=value".
-
-The WinBoard option parsing code has always understood both formats
-(including any hybrids), but the format it preferred for writing might
-look quite strange to Linux users. I also attached a file to be installed
-as /etc/xboard/xboard.conf on "make install".
-
-2009-11-23 19:58:55 -0800 H.G. Muller <h.g.muller@hccnet.nl>:
-fix window positioning
-
-This patch adds stuff in the header files that allow the various front-end files
-to share information on which windows exist, are up, and how they are positioned.
-The EngineOutput, MoveHistory and GameList windows now all remember their
-position and size, even when they are closed when XBoard exits.
-
-2009-11-23 19:51:19 -0800 H.G. Muller <h.g.muller@hccnet.nl>:
-same argDescriptor parsing for Xboard and Winbaord
-
-This patch makes XBoard and WinBoard use the same argDescriptor
-list of options, and (largely) use the same code for parsing and saving them.
-This is acheived by moving this code to a new file args.h, and #including this
-in both winboard.c and xboard.c (so that tiny differences, e.g. in default
-values in the table, are decided by the context). XBoard has new menu items
-"Save Settings Now" and "Save Settings on Exit" in the "Option" menu.
-XBoard uses /etc/xboard/xboard.conf as default settings file.
-A new option, -saveSettingsFile, can specify where settings should be saved,
-without parsing the file. (So that it also works if the file does not yet exist.)
-
-2009-11-22 13:00:31 -0800 Arun Persaud <arun@nubati.net>:
-new developer release
-
-changed release name to <branch>-<date>
-
-2009-11-22 12:34:13 -0800 H.G. Muller <h.g.muller@hccnet.nl>:
-fix the irritating wandering off of the MoveHistory window in XBoard on opening/closing.
-
-
-2009-11-22 12:29:47 -0800 H.G. Muller <h.g.muller@hccnet.nl>:
-use xtell for talking to handles, but tell for talking into a channel.
-
-by changing the chatboxes to use xtell in stead of tell, we broke
-the possibility to use the chat-box for chatting into a channel (which is
-apparently not possible with xtell).
-
-2009-11-22 12:15:15 -0800 H.G. Muller <h.g.muller@hccnet.nl>:
-fix bug in bughouse drop menu
-
-This patch fixes the bughouse drop menu, which was broken by the
-new mouse driver, and could no longer drop white Pawns.
-
-2009-11-18 19:29:57 -0800 H.G. Muller <h.g.muller@hccnet.nl>:
-2nd step for moving option parsing from winboard to the backend
-
-This is the next step in option-setting refactoring: All options that are
-defined in XBoard are now included in the WinBoard ArgDescriptor list.
-The handling of sound option has been harmonized: the sound names
-now all initially go to the appData array, (as in XB) in stead of directly to the
-WB-specific variables, and LoadAllSounds now takes care of the copying.
-A new routine ExportSounds copies them back before saving settings
-(which, in XBoard, could be a no-op).
-
-The definition of defaults for the XB-only options has been moved to common.h.
-
-2009-11-18 19:24:35 -0800 H.G. Muller <h.g.muller@hccnet.nl>:
-1st step for moving option parsing from winboard to the backend
-
-This is a preparatory step in moving option parsing of WinBoard to the back-end.
-The table of command-line options now contains a fifth field, holding the compiled-in default.
-This obviates most of the front-end routine InitAppData, which now is replaced by a table-driven
-initialization routine SetDefaultsFromList(), which could be back-end.
-
-2009-11-18 12:33:39 -0800 H.G. Muller <h.g.muller@hccnet.nl>:
-refactoring evalgraph code
-
-This is the refactored EvalGraph code: the back-end part is separated off,
-and put in a file evalgraph.c, which in the future can also be used with XBoard.
-Only the WinBoard front-end code is left in the file wevalgraph.c. A new
-header file defines the variables and routines they share.
-
-2009-11-18 12:29:06 -0800 Arun Persaud <arun@nubati.net>:
-clean-up
-
-some file permissions where set up wrong
-(e.g. execute permissions for text files)
-
-2009-11-18 11:34:22 -0800 H.G. Muller <h.g.muller@hccnet.nl>:
-refactoring of engineoutput
-
-This refactoring patch separates the back-end part out of
-xengineoutput.c, and puts it in a separate file engineoutput.c.
-A new header engineoutput.h included by both defines the routines
-for cross calling. Similarly wengineo.c will be stripped from its
-back-end code, (and renamed to wengineoutput.c), so WinBoard and
-XBoard now both use engineoutput.c rather than maintaining duplicate
-code in their front-end part.
-
-I also let the back-end now call EngineOutputUpdate directly, rather then
-through a relay in the front-end, by renaming it to SetProgramStats
-(the former name of the relay in winboard.c / xboard.c).
-
-Moved some templates of functions in engineoutput.c from winboard.h
-to frontend.h
-
-2009-11-14 22:13:10 -0800 Arun Persaud <arun@nubati.net>:
-fixed build on openbsd
-
-added missing header file
-
-2009-11-14 22:06:58 -0800 H.G. Muller <h.g.muller@hccnet.nl>:
-improve thinking-output for mulit-variant
-
-Improve multi-variant support by sorting the Thinking-Output lines of the most recent depth by score in the Engine-Output window.
-
-2009-11-14 22:05:12 -0800 H.G. Muller <h.g.muller@hccnet.nl>:
-fix castling rights when copying FEN to clipboard
-
-This patch forces leaving of Edit-Position mode before copying a FEN to the clipboard, to make sure castling rights are faked in a consistent way. Before you could get FENs that had castling rights for non-existent Rooks.
-
-2009-11-14 22:03:47 -0800 H.G. Muller <h.g.muller@hccnet.nl>:
-This patch gives a better handling of comments in PGN files, and adds the variation as comment to the main line on using Revert in local mode.
-
-
-2009-11-06 18:53:19 -0800 Arun Persaud <arun@nubati.net>:
-fixed prototype for AppendComment
-
-
-2009-11-06 09:06:44 -0800 H.G. Muller <h.g.muller@hccnet.nl>:
-cleaned up some debug messages and typos
-
-
-2009-11-06 09:05:09 -0800 H.G. Muller <h.g.muller@hccnet.nl>:
-variation-support patch
-
-It allows you to Revert to the main line (or previous variation) when
-playing variations on an existing game in EditGame or Analyze mode.
-
-2009-11-06 08:48:09 -0800 H.G. Muller <h.g.muller@hccnet.nl>:
-fix for new way of saving castling and e.p. information
-
-I forgot to make some conversions to the new-style encoding of castling there
-(using the enum constant NoRights instead of -1 to indicate
-the absence of rights, which was the price of storing the
-rights in the board, which is an unsigned enum type.)
-
-I also was a bit worried about portability, because I casted the enum type ChessSquare
-to (int) before comparing it with (possibly negative) constants EP_NONE etc.
-Now on my system enum types are (unsigned int), and this works, but I could
-imagine there are systems where this would be an unsigned char. (Not sure
-if there are rules for this). So to be safe I cast ChessSquare to (signed char),
-which should always work to make small negative ints assigned to it read
-back as themselves.
-
-2009-11-06 08:44:59 -0800 Arun Persaud <arun@nubati.net>:
-removed files that should only be in the windboard directory
-
-
-2009-11-05 19:32:35 -0800 Arun Persaud <arun@nubati.net>:
-add Winboard source files into tar-ball
-
-forgot to add them when rewriting the Makefile.am
-
-2009-11-05 19:23:44 -0800 H.G. Muller <h.g.muller@hccnet.nl>:
-Integrate castling and e.p. rights into board array; bugfix for EditPosition
-
-A large-scale operation that I have been postponing since the very first 4.4.0:
-The castling and e.p. rights are now integrated into the board array, as
-boards[moveNr][CASTLING][i] replacing castlingRights[moveNr][i] and
-boards[moveNr][EP_STATUS] replacing epStatus[moveNr]
-These quantities are now automatically copied with the position by CopyBoards
-(allowing the removal of lots of dedicated copying code), and passed as
-function arguments with the position (so that the moves.c functions like
-TestLegality, MateTest, CoordsToAlgebraic, Disambiguate, GenLegal
-no longer need explicit e.p. and castling parameters.
-
-Also fixed a bug introduced by a recent previous fix: by adding fake castling
-rights to a position set up through the EditPosition menu, I destroyed the
-castling rights of a pasted FEN. Faking castling rights is now made conditional
-in EditPositionDone(), depending on the caller. (I had not realized it was also
-called after FEN pasting, to send the position to the engine.)
-
-2009-11-05 19:03:17 -0800 Arun Persaud <arun@nubati.net>:
-added missing library for build on OS X
-
-Xmu seems to be missing
-
-2009-11-04 22:57:30 -0800 H.G. Muller <h.g.muller@hccnet.nl>:
-Some code refactoring and cleanup; one small bug fix
-
-Some code refactoring, mainly to bring definitions of routines and variables
-shared between winboard.c and one of the auxiliary-windows files
-whistory.c, wevalgraph.c, wgamelist.c, wengineo.c somewere in a header file
-(winboard.h). Unfortunately this made winboard.h dependent on data types
-defined in frontend.h, so that the #include order had to be changed in many
-other .c files.
-
-The operation revealed one potentially bad bug: engineOutputDialogUp was
-written as int in engineo.c, but declared as char in winboard.c.
-
-I also changed the storage mechanism of the the comment and tags window
-positions to use WindowPlacement structs rather than simple variables,
-so that in the future they can be docked, like the others.
-
-I also removed some remnants of the Analysis window.
-
-The wgamelist.h and wedittags.h header files contained only 3 lines, and
-I absorbed them in winboard.h, rather than creating other such nearly empty
-headers engineo.h, whistory.h and wevalgraph.h. This affects the make files.
-
-2009-11-03 18:26:06 -0800 H.G. Muller <h.g.muller@hccnet.nl>:
-let the clocks run in -searchTime mode
-
-
-2009-11-02 17:41:12 -0800 H.G. Muller <h.g.muller@hccnet.nl>:
-add fixed time per move to the WinBoard time-control menu dialog
-
-
-2009-10-31 10:42:50 -0700 Arun Persaud <arun@nubati.net>:
-updated version number to unstable
-
-
-2009-10-31 10:25:37 -0700 Arun Persaud <arun@nubati.net>:
-release of version 4.4.1
-
-
-2009-10-30 19:59:23 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-cleaned up ChangeLog and NEWS
-
-2009-10-30 20:02:40 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-use xtell instead of tell in wchat
-
-2009-10-28 20:35:06 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-prevent buffer overflow
-
-This is a buffer-size adjustments to prevent the JAWS version from
-crashing when it has to read out loud very long comments.
-
-2009-10-28 02:17:16 -0700 Tim Mann <tim@tim-mann.org>:
-Further copy/paste fixes
-
-We needed to implement the XA_TARGETS target in order for more
-sophisticated apps to really believe we put anything on the clipboard
-they can use.
-
-2009-10-27 23:57:25 -0700 Tim Mann <tim@tim-mann.org>:
-Make copy/paste position and game use clipboard, bug #27810
-
-Copy actually sets both the clipboard and the selection for
-convenience and compatibility with the old way of doing things.
-Paste pastes from the clipboard by default, but the new -pasteSelection
-option lets you get back the old behavior of pasting from the
-selection.
-
-2009-10-27 15:44:28 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-switch focus to the board after loading a game
-
-2009-10-27 15:32:07 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fix for bug #27826: fixed autoDisplayComment
-
-apparently the -autoDisplayComment option was not working,
-not even in WinBoard. This patch should fix it,both for WB and XB.
-(Unfortunately xboard.c and winboard.c were using a different name
-for the same front-end variable I needed, so I had to change one of them.)
-
-2009-10-27 12:24:56 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fix for bug #27826: ported two options to xboard
-
-also updated the documentation
-
-2009-10-27 12:22:36 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fixed jaws version
-
-turns out the new mouse handler broke the JAWS patch, as I discarded
-the function IsPromotion. I adapted it to call HasPromotionChoice instead.
-Also fixed two arnings by removing a no-longer needed debug print.
-
-2009-10-27 12:03:02 -0700 Arun Persaud <arun@nubati.net>:
-reformated html to be correctly validated
-
-2009-10-27 10:33:42 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-quick fix for "White Mates" in parser.l
-
-2009-10-27 10:32:24 -0700 Arun Persaud <arun@nubati.net>:
-fixed a regression
-
-2009-10-26 20:45:15 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-changed stderr to debug output, since stderr is closed in winboard
-
-2009-10-26 20:42:24 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-removing empty lines from ICS play
-
-this patch causes removal of spurious prompts during ICS play
-also if the prompt is preceeded by a number of empty lines
-(as the board for the opponent move is on FICS).
-
-2009-10-26 20:40:00 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-another bug in VariantSwitch: an unitialized board was printed.
-
-Must have been there a long time, but this time it crashed WinBoard.
-
-2009-10-26 20:38:37 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-more work on variant switch
-
-the previous solution to the cosmetic problem of displaying a wrong shuffle
-in an ICS game that was observed from the very start unfortunately turned
-out to cause a real error in diplaying a stored game through the smoves
-command, for variants not using the FIDE setup as standard.
-
-This patch displays the position from before setting up the start position
-of the new variant, but does setup boards[0] to the initial position of that
-variant. (If this is a wrong shuffle, it is thus ot displayed, and a new board
-will immediately be sent from the ICS to correct the shuffle.)
-
-2009-10-26 20:34:04 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-force full redraw in winboard
-
-Full redraw is now always forced when highlightMovesWithArrow is on,
-rather than only when highlight info is available. (As in drop moves the
-latter is invalid, but we must still erase the arrow from the previous move.)
-
-2009-10-26 20:25:55 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fix for bug #27790 and #277772. Suppressing the display of a wrong shuffle
-when observing shuffle games from the first move (#27790 bis),
-and the sounding of the FICS bell on crazyhouse captures (#27772 bis).
-
-2009-10-26 20:22:13 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fixed bug related to unsigned char in convert.c
-
-I also fixed the unsigned-char bug in the convert.c for bitmaps that caused the
-129x129 XBoard bitmaps to be defective, and a bug that required fixup with sed
-afterwards (so I could use it to create a new m33s.bm)
-
-2009-10-25 23:37:48 -0700 Arun Persaud <arun@nubati.net>:
-unguarded debug printf. added the appropiate if statement
-
-2009-10-25 23:31:13 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fix for two compiler warnings
-
-2009-10-25 23:29:43 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fix for bug #27799: fix for nested-nested-nested variations
-
-2009-10-25 23:21:07 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-The book-probe code forgot to close the book file after opening it.
-
-fixed by adding an fclose at two points.
-
-2009-10-25 23:18:18 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-removed unused v54?.bm bitmaps from resource file
-
-it seems the v54?.bmp bitmaps were actually included in the WinBoard build
-(in the resource file), although they were never actually used. So I have
-removed their inclusion in the resource file now.
-
-2009-10-25 23:05:30 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-replaced defective bitmaps with copies from 4.2.7
-
-2009-10-25 23:02:08 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-removed bitmaps files that are not needed any more
-
-2009-10-25 22:58:34 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fixed some bitmaps
-
-2009-10-24 09:41:39 -0700 Tim Mann <tim@tim-mann.org>:
-Drop an obsolete script that was only used to update my personal web site
-
-2009-10-24 01:23:29 -0700 Tim Mann <tim@tim-mann.org>:
-Silence warnings when compiling 64-bit xboard
-
-Some harmless warnings were caused by 64-bit mode having 32-bit
-int but 64-bit long and pointer.  Add casts (etc.) to silence them.
-This might require adding a definition of intptr_t (a signed int
-type that is the same width as a pointer) on old systems that don't
-have it.
-
-2009-10-24 00:56:37 -0700 Tim Mann <tim@tim-mann.org>:
-Fix up man page some more
-
-Sigh, the project history was still partly in reverse chronological
-order and partly in forward order.  Swapped the order of some
-sentences to help straighten it out.  I don't really care about this,
-so other project members should feel free to do what they like here,
-but the messed-up order was bugging me.
-
-2009-10-24 00:46:20 -0700 Tim Mann <tim@tim-mann.org>:
-Fix some issues in the XBoard man page
-
-Correct places where the XBoard man page was calling XBoard
-"WinBoard".  Change references to "WinBoard engines" and "WinBoard
-protocol" to "XBoard/WinBoard ...".  Update bug reporting guidelines.
-Reorganize project history to something more like chronological order
--- it had gotten pretty randomly ordered.
-
-2009-10-22 21:45:32 -0700 Arun Persaud <arun@nubati.net>:
-new pre-release version; updated version numbers
-
-2009-10-22 21:33:07 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-This patch adds <Enter> to the characters that cause an automatic
-switch to the ICS console when typed to the board window.
-
-2009-10-22 21:31:16 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fix to the minor graphics issue contained some typos,
-as was remarked in the bugs reports
-
-2009-10-22 21:30:08 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-improved mouse handler
-
-The improved mouse handler still needed an extra call to DrawPosition to
-work in XBoard.
-
-2009-10-22 21:28:38 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-NPS plays and pondering
-
-Clock updating did not work correctly in node-based time controls when the
-engine was pondering. (It was not really meant for use with pondering. Oh well...)
-This patch checks if the engine reporting the node count is indeed thinking
-(as opposed to pondering).
-
-2009-10-22 21:25:36 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-holdings update and regression fix
-
-The holdings-update patch was not yet satisfactory, because FICS seems to send
-holdings both before and after the board! And those received before did overwrite
-the holdings received after the previous board. I know tried to fix that in a kludgey
-way, by hiding a flag in the board that tells if the holdings have already been written
-by the ICS or not, and ignore new holdings when they are. (Except in bughouse,
-where holdings updates cannot be tied to a particular board and multiple updates
-between boards are normal. (I hope?).)
-
-I also undid a regression in my previous fix for the minor graphics problem,
-and solved it in a slightly different way to prevent flicker.
-
-2009-10-22 21:23:39 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-improved mouse handler
-
-I improved the mouse handler in a way which will preclude disappearence of pieces
-on off-board or ambiguous (in-between squares) drag & drop moves. (As was reported
-in the "premove bug?" thread. Also the command-line premove problem reported there
-is now fixed, by removing the prefixing.
-
-2009-10-22 21:18:05 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fix for bug #8847: moving backward while examining on FICS not reported to engine
-
-I moved Daniel's code that backs up the engine when a bord with a
-lower number is received to a place where it is always done in zippy mode,
-rather than only when the engine is analyzing.
-
-Apart from taking back moves, there was also the case where the
-user moves forward by more than one move (usually immediately to
-end-of-game). In this case a new movelist is fetched from the ICS
-to recover the moves that were skipped. But this assumes that the
-engine is at the start of the game and feeds all these moves to the
-engine. So the engine had to be reset in this case to stay in sync.
-
-2009-10-22 21:16:56 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-better init for random number generator
-
-2009-10-21 23:01:09 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fix for bug #27772: holdings not updated
-
-holdings lines from the ICS nor update the holdings
-of boards[forwardMostMove] in stead of boards[currentMove].
-
-2009-10-21 21:32:14 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-allowe parsing / disambiguation of SAN moves like Xe4 in certain situations
-
-This patch allows parsing / disambiguation of SAN moves like Xe4, if there
-is only one wild-card piece X on the board. Moves with wild-card pieces
-are now considered illegal if they leave the King in check by a piece of
-known gait.
-
-2009-10-20 19:09:46 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fixed bug when switching to variantsuper
-
-2009-10-20 19:06:43 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fix for bug #27715: 2 (minor) graphic issues
-
-I forced a total redraw when Reset is called from the ICS code in case a
-new game is encountered, in the hope it will make the reported
-(irreproducible) problem go away. As game switches are not frequent, I
-guess there is hardly any downside to this.
-
-2009-10-20 18:57:17 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fix for bug #27667: PV line missing in analysis window, part 3
-
-"3. Wish for Engine state string (right to the icon):
-Can you add the actual search depth in analyzing mode? A change like "
-
-I also added the requested display of depth of the analysis move in the
-EngineOutput window. I guess a similar change could be made to wengineo.c
-(as this is in the code they share in common), but no one ever requested
-that in the 5 years since Alessandro wrote it. So for now I leave it alone.
-
-2009-10-20 18:52:14 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fix for bug #27760: debug printf in backend.c and additional check for variant
-
-2009-10-19 23:17:46 -0700 Arun Persaud <arun@nubati.net>:
-fix for bug #10990: cmail does not seem to support .cmailgames or .cmailaliases
-
-this is correct, deleted the text out of the documentation that claims we support it
-
-2009-10-19 18:40:40 -0700 Arun Persaud <arun@nubati.net>:
-new alpha version; first one with new naming scheme
-
-2009-10-19 18:07:21 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-smarter analysis of the boards that XBoard receives from an ICS
-
-I added smarter analysis of the boards that XBoard receves from an ICS,
-based on board size and piece types in the position, to recognize cases
-where the board does not match the current variant, and switch to an
-appropriate variant.
-
-2009-10-19 18:04:08 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fix for bug #27667: window should be reference to toplevel
-
-The remaining objections of #27667 should be fixed by bringing the
-EngineOutput window under control of the TOPLEVEL compile-time switch.
-
-2009-10-19 18:02:42 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-partly fix for bug #27715: scaling of menu bar
-
-the menu bar to the left edge of the window.
-
-2009-10-19 17:59:43 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fixed bug reported in WB forum: second game of a match would
-not start when using the GUI book
-
-2009-10-19 17:57:14 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fix for bug #27751: negative holding counts displayed
-
-I put code in the back-end to prevent holdings counts from
-becoming negative when a drop move is made from empty holdings.
-(This can happen when re-loading ICS bughouse games,
-as the smoves command fails to fill the holdings.)
-
-2009-10-18 20:54:53 -0600 Eric Mullins <emwine@earthlink.net>:
-Updated compiling instructions.
-
-2009-10-18 11:32:55 -0600 Eric Mullins <emwine@earthlink.net>:
-Changes to allow fonts with any charset (such as terminal)
-
-Affects winboard only.
-
-2009-10-16 23:02:41 -0600 Eric Mullins <emwine@earthlink.net>:
-Moved SIGWINCH signal so it can be used...
-
-I goofed putting this in StartChildProcess() originally.
-
-2009-10-16 22:54:12 -0600 Eric Mullins <emwine@earthlink.net>:
-Added internal wrapping ability.
-
-New options:
-  -wrapContinuationSequence "foo"  (default: "\\   "
-  -useInternalWrap (Winboard default: false, XBoard default: true)
-
-Note: -keepLineBreaksICS if set, prevents wrapping, usurping the
-   useInternalWrap setting.  The idea is if you want to keep ICS line
-   breaks, then you don't want internal wrapping.  Because of this,
-   the new default for keepLineBreaksICS is now false for XBoard.
-
-2009-10-16 19:14:34 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fixed segfaul in convert.c used to convert pixmaps
-
-2009-10-15 19:46:07 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-new mousehandler to correct for premove and promotion popup
-
-this is the new mouse handler for XBoard, which should fully implement
-premove, including promotion popup, and yet suppress the promotion popup
-on illegal moves that are not premoves. It is almost completely moved to
-the back-end now, so that WinBoard will be able to use it as well. I just
-must hook it up to winboard.c, in particular harmonize the call-backs of
-the mouse driver into the front-end for grabbing and releasing pieces for
-dragging, to make sure they have the same names and arguments.
-
-2009-10-15 19:32:55 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-updated black fairy pieces
-
-here is a set of black fairy pieces with opaque white details,
-so they have the same style as the orthodox XBoard pieces.
-
-2009-10-15 16:54:51 -0600 Eric Mullins <emwine@earthlink.net>:
-Adjustment to joining to work around server not always including space.
-
-This patch implements commit 98aa02bda540f17f1f50be00e494efafe439b004
-into the updated joining routine.  This issue seems not to be server
-variance, but instead the server electing to omit the space between
-words when it occurs at exactly your width setting (-1 actually).
-
-This patch makes the joiner add back the space just like the referenced
-commit.  Note: this is just a workaround to a server issue-- the joiner
-actually joins correctly before this patch.
-
-2009-10-15 07:18:42 -0600 Eric Mullins <emwine@earthlink.net>:
-Fixed joiner detection, allowing it to work with timeseal
-
-When timeseal's buffer fills in the middle of the continuation
-sequence, detection fails, and the lines aren't joined.
-
-As a result of this fix, measures intended to bypass joining are
-no longer needed, so I removed them.  These utilize server vars
-when available to prevent splitting.
-
-2009-10-14 14:42:37 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fixed engingeoutput routine
-
-removed outdated code regarding analysis window
-
-2009-10-14 14:39:06 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-moved bitmap to correct location
-
-was misplaced in a previous commit
-
-2009-10-14 14:26:09 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fixed wrong number of arguments for EngineOutputPopUp
-
-2009-10-13 21:00:27 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-new bitmap converter (including fill option) and new pixmaps
-
-2009-10-13 20:52:40 -0700 Arun Persaud <arun@nubati.net>:
-forgot to add these two lines to the last commit
-
-2009-10-13 20:51:17 -0700 Arun Persaud <arun@nubati.net>:
-removed AnalysisPopUp. Use EngineOutputPopUp instead
-
-this was already in Winboard, copied it to xboard and removed unused code.
-
-2009-10-13 20:32:32 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-Proper board and holdings size when switching to variants
-gothic, capablanca, great and super within an ICS game.
-
-2009-10-13 20:25:13 -0700 Arun Persaud <arun@nubati.net>:
-cleaned up an old #ifdef in zippy
-
-2009-10-12 19:25:17 -0600 Eric Mullins <emwine@earthlink.net>:
-neglected this for the auto-width updating in xboard
-
-2009-10-12 19:19:59 -0600 Eric Mullins <emwine@earthlink.net>:
-Added server width adjustment based on client width changes
-
-2009-10-12 19:14:53 -0600 Eric Mullins <emwine@earthlink.net>:
-silence some compiler warnings
-
-2009-10-11 18:39:24 -0600 Eric Mullins <emwine@earthlink.net>:
-Maintainence to support all compilers.
-
-2009-10-11 17:07:27 -0600 Eric Mullins <emwine@earthlink.net>:
-Adjusted alternative joining method to obey keepLineBreaksICS
-
-2009-10-11 14:48:55 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fix for bug #27668: e.p. field still not passed to engine
-
-PositionToFEN now takes the e.p. rights from epStatus[moveNr],
-rather than calculating it on the spot from moveList[moveNr-1]
-(which failed on the first move).
-
-2009-10-11 14:46:14 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fix for bug #27666: naming of variants
-
-Variant names "misc/xxx" are recognized as "normal", rather than "xxx"
-to not get confused by the board "misc shogi" run by FICS.
-
-2009-10-11 10:14:09 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-changed enable menus
-
-Put the "Open Chat Window", "Machine Both", and "Engine #N Settings" menu items
-in the appropriate enable lists for graying them out wen not applicable.
-
-2009-10-11 10:13:14 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-Added a command-line option -keepLineBreaksICS true/false to control line joining.
-
-2009-10-10 19:30:23 -0600 Eric Mullins <emwine@earthlink.net>:
-Added code to prevent unnecessary width updates.
-
-2009-10-10 18:34:37 -0600 Eric Mullins <emwine@earthlink.net>:
-Turned off wrap when possible on ICS servers.
-
-Turning off line wrap prevents splitting lines up using the
-continuation sequence "\\   ".  This is desirable when using
-timeseal because timeseal's buffer is sometimes too small,
-causing it to break lines itself.  These lines can't be joined.
-
-2009-10-10 16:30:56 -0600 Eric Mullins <emwine@earthlink.net>:
-vsnprintf() must be _vsnprintf() for MSVC
-
-2009-10-10 16:16:45 -0600 Eric Mullins <emwine@earthlink.net>:
-added code to handle initial width update
-
-2009-10-10 14:21:12 -0600 Eric Mullins <emwine@earthlink.net>:
-Added width updates to ICS client on font and window size changes
-
-What still needs to be done is placing an update call after login
-to initialize with the correct width.  I didn't see where to put
-that.
-
-2009-10-10 14:19:30 -0600 Eric Mullins <emwine@earthlink.net>:
-added ics_printf() and ics_update_width() and utility functions
-
-2009-10-10 11:15:50 -0600 Eric Mullins <emwine@earthlink.net>:
-Cleaned up ConsoleWndProc  (not complete, see below)
-
-Using static variables this way is not appropriate.  I only addressed
-hInput and hText in this commit though.  But imagine the WndProc being
-used by multiple windows instead of just one, and you can see why
-using static variables in this way is wrong.
-
-2009-10-10 11:12:10 -0600 Eric Mullins <emwine@earthlink.net>:
-Restructured URL code so it fits better with how winboard is set up.
-
-2009-10-10 08:57:39 -0700 Arun Persaud <arun@nubati.net>:
-cleanup: removed "#if 1" statements
-
-2009-10-10 08:55:21 -0700 Arun Persaud <arun@nubati.net>:
-cleanup: removed "#if 0" from source
-
-a bit of cleanup of the source code
-
-2009-10-10 08:34:10 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fix joining of lines split by ICS
-
-This patch fixes the joining of lines that were split by an ICS, so that adding
-a space at the break point is done only when there was not a space already.
-(Some ICS leave a space at the end of the broken line, others do not.)
-An extra space would interefere with board12 in Gothic Chess, which is so
-long that the ICS breaks it, and the WB parser could not handle a double
-space within the board.
-
-2009-10-10 08:27:55 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fix for bug #27642: Clock jumps strangely in engine mode
-
-This moves SwitchClocks() back to after incrementing forwardMostMove,
-so that it knows again who has the move (which was broken by the "bare" patch),
-and will take the appropriate tick length.
-
-2009-10-10 08:26:13 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-removed test for premove
-
-this was added while looking for the premove bug, but is not needed
-
-2009-10-10 02:03:45 -0600 Eric Mullins <emwine@earthlink.net>:
-added URL detection and provided hotlinks in the ICS client
-
-2009-10-10 02:00:52 -0600 Eric Mullins <emwine@earthlink.net>:
-reverted winboard.c beofre URL commit to correct whitespace conversion
-
-2009-10-09 02:14:22 -0600 Eric Mullins <emwine@earthlink.net>:
-Added URL detection into the console text window for ICS.
-
-2009-10-08 23:51:06 -0700 Arun Persaud <arun@nubati.net>:
-added some comments and formated code
-
-2009-10-08 23:46:52 -0700 Chris Rorvick <>:
-fix printing out help message (list of command line options) (tiny change)
-
-The postfix increment always resulted in an attempt to print out an
-option on the right side regardless of one actually existing. Use
-prefix increment to prevent a crash when printing an odd number of
-options.
-
-2009-10-09 00:04:51 -0600 Eric Mullins <emwine@earthlink.net>:
-Updated navigation accelerators, fixing ICS problems.
-
-Recent changes to the navigation accelerators were in the wrong
-accelerator table.  Since the goal was to correct non-JAWS versions
-back to 4.2.7 behavior, I updated it to how 4.2.7 did it, but still
-retained the #ifdef JAWS conditional compilation.
-
-On an ICS, the navigation keys took control away from the ics
-client to navigate the game.  The update requires the ALT key to
-be pressed, but it works identical to 4.2.7, not causing an
-unexpected focus back to the board window when you're just editing
-text.
-
-2009-10-08 20:33:39 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fixed premove recapture problem;promotion popup appearing on
-obviously illegal moves; promotions in Superchess and Great Shatranj
-
-1) the premove recapture problem
-2) the promotion popup appearing on obviously illegal moves (the 1. e2a8
-problem)
-3) promotions in Superchess and Great Shatranj, where the piece can now be
-selected from the holdings
-
-2009-10-08 20:28:50 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-added forceIllegalMove to xboard
-
-2009-10-05 21:01:32 -0700 Arun Persaud <arun@nubati.net>:
-bugfix: segfault when invalid option argument was given (bug #27427)
-
-when given a wrong argument to an option (e.g. -tc 0) xboard aborts
-before setting up the window, but tried to write a message to the
-messageWidget which doesn't exist at that point.
-
-2009-10-05 20:05:00 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-small improvement for JAWS version
-
-This is a patch to make JAWS read out any comments when /autoDiplaycomment=true.
-As focus does not stay on the Comment window, the comment was not spoken otherwise.
-
-2009-10-05 20:02:50 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-updated to winboard internationalization scripts
-
-Also a slight improvement of the internationalization scripting,
-to prevent it from crashing on messages containing a slash.
-
-2009-10-05 20:01:53 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-new forceIllegalMoves option
-
-The -forceIllegalMoves option uses setboard or edit to force a position
-when an engine refuses the move leading to it by an "Illegal Move" message.
-Especially for engines using the edit command this was a bit tricky,
-because of the a2a3 kludge to avoid using the white and black commands.
-
-2009-10-05 01:01:54 -0600 Eric Mullins <emwine@earthlink.net>:
-removed _winmajor if not defined so that VC 2008 can compile the project
-
-The oldDialog variable should just be set to 0 in all cases now, and
-as such, legacy code supporting the old dialog ought to be removed.
-The test for _winmajor is against < 4, which is always false at present,
-causing oldDialog to be 0 in every conceviable circumstance.
-
-2009-10-04 09:58:29 -0700 Arun Persaud <arun@nubati.net>:
-getting ready for 4.4.1 release
-
-2009-10-02 20:47:01 -0600 Eric Mullins <emwine@earthlink.net>:
-Simplified future version changes.
-
-Added a numeric version to config.h that is now used in winboard.rc
-instead of being hard-coded there.  Just be sure to preserve the
-proper format (4 comma-separated 16 bit integers) or else it won't
-compile.
-
-2009-10-02 16:56:01 -0700 Arun Persaud <arun@nubati.net>:
-updated version number to 4.4.1.pre
-
-should have done this straight after the last release, but forgot...
-
-2009-10-02 16:48:03 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-worked on premove bug
-
-I made an attempt to make premove unsensitive to a race condition,
-just in case the premove problem was caused by that (which seems unlikely,
-but in any case  I added some debug printout to test this).
-
-2009-10-02 16:41:12 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fixed loading of saved games via command line
-
-the variables forwardMostMove and backwardMostMove where set to zero
-at the wrong place.
-
-2009-10-02 16:39:20 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-small fixes for the JAWS version
-
-* I moved saying 'check' by the JAWS version to where castling also benefits from it.
-* I made sure the check symbols are also recognized on promotion moves
-* In the non-JAWS version, define the plain arrows as shortcut keys for the button bar
-
-2009-10-01 16:50:28 -0600 Eric Mullins <emwine@earthlink.net>:
-Fixed bug dereferencing garbage, causing crash.
-
-Commit fa8be4a3fc5d81e9ec1f6c218fcf55c95d34fd10 included code to free the
-resultDetails of the gameInfo structure.  That exact code exists a few lines
-above where it was added.  None of these free() calls finish by setting the
-member to NULL afterword, therefore repeated attempts to test/free() the
-members result in an attempt to free() memory winboard no longer owns, and
-an eventual crash.
-
-link to problematic commit: http://git.savannah.gnu.org/cgit/xboard.git/commit/?id=fa8be4a3fc5d81e9ec1f6c218fcf55c95d34fd10
-
-2009-10-01 16:49:57 -0600 Eric Mullins <emwine@earthlink.net>:
-Added wchat.c to the project files we maintain.
-
-2009-10-01 15:52:50 -0600 Eric Mullins <emwine@earthlink.net>:
-Previous fix for VC++/strcasecmp() was wrong-- use StrCaseCmp().
-
-2009-10-01 14:49:58 -0600 Eric Mullins <emwine@earthlink.net>:
-Add resource ID for new Mute menu item.
-
-I know this was probably done by HG, and simply left out of
-his commit.  Anyway, the project can be built now after this change.
-
-2009-10-01 14:49:09 -0600 Eric Mullins <emwine@earthlink.net>:
-Use of strcasecmp() broke Visual C++.
-
-2009-09-30 20:47:00 -0700 Arun Persaud <arun@nubati.net>:
-wrong default value for engineDebugOutput
-
-the new default is now 1
-
-2009-09-29 22:55:41 -0700 Arun Persaud <arun@nubati.net>:
-updated cmail.in to adapt the CVS->git change
-
-don't reference $Revision:$ anymore.
-Instead use reference xboard-version via autoconf.
-
-2009-09-29 22:04:25 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-bugfix for protocol extensions: egtbpath -> egtpath
-
-A new and very bad bug was discovered in the implementation of
-the protocol extensions: XBoard sends a command "egtbpath" to the
-engine in stead of "egtpath" from the protocol specs.
-After discussion on WB forum it was decided that egtpath was better
-than the egtbpath I originally had proposed, and I changed it accordingly,
-but I had not realized that this string occurred TWICE in backend.c,
-depending on if matched the -defaultPathEGTB of -egtFormats option.
-I only changed the first occurence.
-
-2009-09-27 12:27:44 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fix for edit-position "moves" being sent by XBoard to the engine
-
-2009-09-27 12:25:25 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-Engine did not start playing when out of GUI book on second move with white
-
-2009-09-27 12:24:30 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-Opening Engine #1 Settings crashed XBoard when there were no
-text-edit options in the dialog (to which to set keyboard focus)
-
-
-2009-09-27 12:18:35 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-added a "Mute All Sounds" item in the WinBoard Options menu, on Eric's request
-
-2009-09-27 12:15:20 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-Updated the RTF docs for the chat windows, engine-settings dialog,
-/keepAlive option and new game-list tag
-
-2009-09-27 12:14:25 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-Made the beep sounds for JAWS board navigation configurable through
-command-line options
-
-2009-09-27 12:11:49 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-Prepared a system to internationalize the WinBoard menus
-
-2009-09-27 12:10:38 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-added the result comment to the game-list tags when the game list is
-exported to the clipboard
-
-2009-09-27 12:05:32 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-rewrote wevalgraph for better frontend/backend separation
-
-I have finished re-writing the eval-graph code to have some
-front-end / backe-end separation, something I had already started on my
-holiday in Norway (when I had no internet :-)  ).
-The new code now appears to work exactly like the old code,
-and I guess it could be ported to gtk comparatively easily.
-
-2009-09-27 12:00:51 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fix for keepalive and chat window
-
-I made a fix to the keepAlive option so it does not send the date command
-to the ICS after every move. This required changing ScheduleDelayedEvent()
-so that it does not execute the event if a new identical one gets scheduled.
-I also added the option to XBoard. Affects xboard.c (DOS!) and winboard.c
-
-(This also cures the regression of the winboard.c copyright patch)
-
-I extended the chatbox patch to also listen to channel tells, and divert
-them to a chatbox for that channel number. Affects
-backend.c and wchat.c
-
-That should make those patches fully operational. No docs for either of them
-yet, though.
-
-2009-09-27 10:36:23 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fixed parse bug for pgn files
-
-fixed the existing bug that the time-control tag was displayed as "?"
-in the game list; turns out it was never parsed on reading PGN files
-
-2009-09-27 10:35:58 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-allow the result comment as a display item in the game list
-
-2009-09-27 10:35:13 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fixed the HAVE_LIBXPM-dependent compile errors
-
-2009-09-27 10:24:47 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-added a chat window to keep track of multiple conversations
-
-The chat-window patch affects:
-winboard.c, backend.c, winboard.rc, resource.h, backend.h, and adds
-the file winboard/wchat.c, which also affects makefile.gcc and makefile.ms.
-
-In addition I added a new option -keepAlive, which affects
-common.h (in addition to winboard.c and backend.c).
-
-As I had to modify backend.h, I also defined the -reset option type there,
-which we are going to add later. This required some changes
-to suppress warnings in wsettings.c.
-
-2009-09-27 10:22:16 -0700 Arun Persaud <arun@nubati.net>:
-more files for git to ignore
-
-most of these are generated by make distcheck
-
-2009-09-08 09:33:53 -0700 Arun Persaud <arun@nubati.net>:
-another bug fix found by Stanislav Brabec
-
-returned -1  in some case although the variable was a char...
-changed to signed char
-
-2009-09-20 23:13:13 -0600 Eric Mullins <emwine@earthlink.net>:
-Swapped 'tell' and 'message' parsing order for colorization.
-Sometimes messages are relayed as tells and should be colorized as tells.
-
-2009-09-08 09:10:34 -0700 Arun Persaud <arun@nubati.net>:
-added some more files to be distributed via make dist
-
-as suggested by Stanislav Brabec
-
-2009-09-08 09:01:07 -0700 Arun Persaud <arun@nubati.net>:
-fixed some implicit declarations reported by Stanislav Brabec
-
-2009-09-07 22:04:39 -0700 Arun Persaud <arun@nubati.net>:
-fixed a few more small bugs reported by Stanislav Brabec
-
-- A function uses a 'return;' statement, but has actually a value to
-return, like an integer ('return 42;') or similar: xboard voidreturn
-xengineoutput.c:766, 782
-
-- Program returns random data in a function at xengineoutput.c:602
-
-- With a new toolchain, AM_LDFLAGS cannot contain libraries. Linker
-ignores them. Fix is attached.
-
-- ToDo: Convenient name in most projects is TODO (autotools package it
-automatically).
-
-2009-09-06 19:11:22 -0700 Arun Persaud <arun@nubati.net>:
-reverted .texi file and fixed Makefile.am
-
-the problem was actually not in the texi-file, but the Makefile.am.
-Reverted changes in the .texi and fixed it (hopefully) correctly now.
-
-2009-09-06 18:23:01 -0700 Arun Persaud <arun@nubati.net>:
-get "make distcheck" to work
-
-needed to add all *.h files to Makefile.am and also the bitmaps that
-are needed and some other files. Also had modified copyright.texi.
-
-2009-09-05 09:54:37 -0700 Arun Persaud <arun@nubati.net>:
-changed to version 4.4.0
-
-2009-09-05 09:44:21 -0700 Arun Persaud <arun@nubati.net>:
-updated AUTHORS, README and ChangeLog files for release
-
-2009-09-05 08:52:09 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fixed some typos
-
-2009-09-04 22:39:45 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-set castling rights after setting up a position
-
-I was going through old WB forum posts, and I encountered a
-bug report for a bug that I never fixed: The castling rights should
-be properly set (actually: cleared) after setting up a position
-in Edit Position mode (as opposed to pasting a FEN).
-
-2009-09-03 23:11:18 -0700 Arun Persaud <arun@nubati.net>:
-removed install files from master
-
-they now live in their own branch
-
-2009-09-03 22:30:18 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-updated polyglot protocol
-
-I added a new option type "-reset" to the protocol for the new option feature.
-4.4.0 does not implement it yet, but Michel wants it for future Polyglots,
-and I think it is best to update the protocol in one big swoop.
-So I want to already include it in the specs now. (engine-intf.html)
-I made xboard's response to an unknown option type compliant
-with the new protocol specs.
-
-2009-09-03 22:28:50 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fixed some typos
-
-2009-09-03 20:47:13 -0600 Eric Mullins <emwine@earthlink.net>:
-Updated project files for DevCpp and Visual Studio to add wsettings.c
-
-2009-09-03 20:46:33 -0600 Eric Mullins <emwine@earthlink.net>:
-Added newline at end of file to silence warning.
-
-2009-08-31 20:29:49 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-workaround for error message for missing pieces used in variants
-and initstring bugfix: error messages showed for non-existing pieces
-showed up for old user supplied pixmaps.
-Loading a pixmap of the king for the missing pieces now.
-
-Another bad bug surfaced: the -initString argument does not work in any
-XBoard version! (Including 4.2.7b) The escape sequences for linefeed in
-the string are not understood: -initString "new\nrandom\n" actually sends
-the \ and n to the engine (which then does not recognize the line as a
-valid command)!
-
-So I also added a patch to expand escape sequences in the InitString and
-ComputerString command-line options.
-
-2009-08-31 20:27:24 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-updated installe script
-
-I re-organized the doc files in the install, so they now all go in the
-WinBoard\doc folder (and none in the root). I so included the COPYING
-and COPYRIGHT files there. This required some updates of the links in
-some html files, and of the menu link to README.html in the install script.
-I also fixed an error with the current directory
-in the menu short-cuts of some engines (which started in the fonts folder,
-and could not find the opening book there...).
-
-2009-08-31 20:25:17 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-updated documentation
-
-2009-08-31 20:20:55 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-updated installer script
-
-2009-08-31 19:51:48 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-new help files for windows
-
-2009-08-25 20:41:29 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-updated installer
-
-2009-08-25 20:36:53 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-undid some previous changes
-
-some files got mixed up
-
-2009-08-25 20:32:22 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fixed small bug in wsetting
-
-2009-08-25 20:29:06 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-trigger a focus switch to ICS input field when typing
-
-old behavior was that "." or "," triggered this,
-now every printable character  except 1-9 will trigger the focus switch
-
-2009-08-25 20:26:20 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-bug in backend.c when receiving lines from ICS
-
-A space was appended to every character received from an ICS
-in stead of just at line breaks.
-
-2009-08-24 23:47:48 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fixed warning messages from compiler
-
-2009-08-23 14:24:38 -0700 Arun Persaud <arun@nubati.net>:
-fixed build on OS X
-
-this seems to fix it. Bug reported by Louis Zulli who also did the testing.
-
-2009-08-23 11:54:28 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-OK, this is the beefed up version of the Polyglot info-string kludge,
-for WB and XB.
-
-2009-08-23 10:22:48 -0700 Arun Persaud <arun@nubati.net>:
-added missing X_LIBS references to Makefile.am
-
-2009-08-22 23:33:44 -0700 Arun Persaud <arun@nubati.net>:
-made the install script and executable
-
-2009-08-22 23:19:07 -0700 Arun Persaud <arun@nubati.net>:
-changed beta1 to beta2
-
-2009-08-22 23:14:11 -0700 Arun Persaud <arun@nubati.net>:
-fixed enable zippy in configure script and added some checks for OS X
-
-make tried to compile zippy even when --disable-zippy was given.
-Also fixed a bug in xboard.c where #ifdef instead of #if was used
-to test for ZIPPY (it's either 0 or 1, so we need #if). Also added
-some special checks for OS X, not sure if these will do it, but it's a start;)
-
-2009-08-22 19:09:54 -0700 Arun Persaud <arun@nubati.net>:
-added configure summary to configure output, also cleaned up configure.ac a bit
-
-used AS_HELP_STRING where possible
-
-2009-08-22 18:10:57 -0700 Arun Persaud <arun@nubati.net>:
-added check for malloc.h
-
-this should fix a build error on OS X
-
-2009-08-22 17:47:44 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-A small cosmetic change in the size of buttons
-inside a groupbox of the Engine-Setup dialog.
-
-2009-08-22 17:32:14 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-make xboard usable with UCI engines
-
-I made a small patch in xoptions.c (where the corresponding Engine Settings
-dialog was for XBoard), to make it at least usable for UCI engines: I now
-divide the options over upto 4 columns, if there are too many to fit into
-a single column. This seems to work. Still looks very ugly, but it is
-functional.
-
-2009-08-22 17:30:05 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fix premove for winboard
-
-This might fix the illusive premove problem. In 4.2.7 the code was not properly
-indented, and this led to an unbalanced braces error that I then fixed the
-wrong way. Click-click premoves did only work after clicking the toSquare twice.
-It might be that they actually did work after clicking it once,
-but that the highlights were not displayed (although set)
-for lack of a display refresh.
-
-2009-08-22 17:28:11 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fixed bug for double saved games
-
-This patch should solve the problem with doubly saved games when XBoard is
-closed. I calculate a cecksum of each saved game now (including move comments),
-and suppress saving if the checksum is not changed.
-
-2009-08-22 17:25:58 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fixed xengineoutput.c, to keep the duplicated code identical to that of wengineo.c.
-
-2009-08-22 17:24:08 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-updated xboard.texi: added warning that pixmaps are not build for all variants
-
-2009-08-22 17:19:11 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-added a dialog for engine-specific option settings
-
-2009-08-22 17:09:58 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-updated some documentation
-
-2009-08-22 17:07:10 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fixed several bugs in the backend and added some more polyglot support
-
-* I added recognition for the new UCI3 option types that are recognized in the WB
-option features, to make sure this version is compatible with future Polyglots.
-Also fixed a bug that failed to strip an asterisk prefix from the first
-combo-box item.
-
-* I fixed the ICS-time-in-PGN bug.
-
-* I fixed a bug which caused a space to be missing when long lines broken up by
-an ICS were joined.
-
-2009-08-22 17:02:58 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-better polyglot support for engine ouput
-
-I fixed the algorithm for clearing the Engine Output window to work better with
-the latest Polyglot, whight outputs UCI "info strings" amongst the thinking
-output.
-
-2009-08-22 16:23:32 -0600 Eric Mullins <emwine@earthlink.net>:
-Beginnings of installer for 4.4.0.  HGM asked me to forward the nsi file,
-but it seemed best to just add the installer tree to git even though
-it's not finished.  You must install NSIS then FontName-0.7.exe
-(included in installer folder) then run build.bat in the same directory.
-
-2009-08-05 22:18:29 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-patch backend.c to make the -noGUI option also work in ICS mode.
-
-2009-08-01 13:09:49 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-temporary fix for pre-select
-
-As a temporary kludge I replaced looking into the holdings for the piece type
-by figuring out which piece would belong on the clicked holdings square.
-This is a non-trivial process, as it depends on which pieces participate
-in a certain variant.
-
-2009-07-30 00:19:37 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-changed click-click moves
-
-I got complaints about the way XBoard 4.4.0 handles click-click moves,
-in particular changing the selected piece after selecting King
-(for which I suppressed interference with FRC castling in a rather brutal way).
-People tell me it is very annoying that clicks sometimes don't work to select a piece.
-WinBoard uses refined logic in the back-end to handle this, but the XBoard
-front-end is not interfaced with that yet.
-(This would require a major rewrite of the mouse handler.)
-This temporary patch suppresses this behavior in all variants that do not support
-Fischer castling, and even there only exhibit it for Rook-after-King selection
-(which will be interpreted as an attempt to enter a castling move as K x own R).
-
-2009-07-26 08:43:35 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-option -adjudicateDrawMoves is not included in the XBoard list.
-
-added it to the option list
-
-2009-07-21 20:23:23 -0700 Arun Persaud <arun@nubati.net>:
-converted files from dos to unix format
-
-run dos2unix over a bunch of files
-
-2009-07-16 07:43:38 -0600 Eric Mullins <emwine@earthlink.net>:
-Stripped out unused VersionInfo
-
-2009-07-15 23:16:19 -0700 Arun Persaud <arun@nubati.net>:
-changed version to 4.4.0.beta1
-
-2009-07-15 23:12:37 -0700 Arun Persaud <arun@nubati.net>:
-updated INSTALL file to add ./autogen.sh
-
-2009-07-15 22:44:05 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-higher number of engine options possible now
-
-I upped the number of options per engine from
-50 to 100, and the average number of characters per option from 10 to 20.
-
-2009-07-15 12:30:37 -0600 H.G. Muller <h.g.muller@hccnet.nl>:
-Fix of bad bug
-
-2009-07-14 23:41:36 -0600 Eric Mullins <emwine@earthlink.net>:
-Added version information to resources.
-
-2009-07-14 23:40:50 -0600 Eric Mullins <emwine@earthlink.net>:
-Added Jaws targets to IDE projects.
-
-2009-07-14 23:39:12 -0600 Eric Mullins <emwine@earthlink.net>:
-Final makefile adjustments and compiling instructions.
-
-2009-07-13 22:35:17 -0600 Eric Mullins <emwine@earthlink.net>:
-Cleaned up garbage left behind from my makefile update.
-
-2009-07-13 22:26:56 -0600 Eric Mullins <emwine@earthlink.net>:
-Updated cmdline makefiles to be able to produce JAWS binaries.
-
-This breaks support for MSVC 4.x.  It may still be possible to
-use that compiler if you obtain the latest SDK from Microsoft.
-MSVC 6.0 still works, but I had to change the target windows
-version to 0x500 which causes warnings about building beta
-applications.  This is all due to the use of MENUBARINFO data
-type in the jaws binary.  You can reduce the WINVER to 0x0400
-safely if you are not building a JAWS binary, and MSVC 4.x
-will work fine.
-
-2009-07-13 22:26:10 -0600 Eric Mullins <emwine@earthlink.net>:
-Removed dependency on jfwapi.h
-
-Allows anyone to compile a jaws compatible binary.
-
-2009-07-13 22:23:31 -0600 Eric Mullins <emwine@earthlink.net>:
-Fixed duplicate resource in winboard.rc
-
-PLEASE remember to pull before commiting.  This is the 2nd
-time I've fixed this.  It's a waste of time to keep fixing
-the same problems.
-
-2009-07-13 19:36:58 -0700 Arun Persaud <arun@nubati.net>:
-resolved conflict between Xt and Xaw libraries
-
-seems like we don't need to link against Xt.
-
-2009-07-13 19:33:57 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-help-menu was not un-grayed in the JAWS version, when it played with engines
-
-2009-07-13 19:29:53 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-integrated jaws into winboard
-
-I integrated the JAWS patch now into WinBoard in such a way that the
-JAWS and standard version can use the same resource file. This new
-winboard.c contains the improved dialog layot of the JAWS version,
-but none of the menus and JAWS-specific acclerator keys. The latter
-are now generated at run time by code in jaw.s. As a result jaws.h
-could be cancelled, as there the JAWS-specific defines are no
-longer needed outside jaws.c (now the .rc does not use them), and
-is incorporated in it.
-
-2009-07-12 15:37:26 -0700 Arun Persaud <arun@nubati.net>:
-fixed problem in autoconf using Xaw3d
-
-rewrote the section for Xaw3d in the autoconf file
-
-2009-07-12 15:29:28 -0600 Eric Mullins <emwine@earthlink.net>:
-Added Jaws support to GCC makefile
-
-2009-07-12 15:28:20 -0600 Eric Mullins <emwine@earthlink.net>:
-added help support: MSVC IDE and DevCpp IDE project files
-
-2009-07-12 15:26:49 -0600 Eric Mullins <emwine@earthlink.net>:
-Removed obsolete makefiles and support files.
-
-2009-07-12 12:33:26 -0700 Arun Persaud <arun@nubati.net>:
-updated AUTHORS with the help of git. use
-
-git log --pretty=oneline --name-only --author=AUTHORNAME v4.2.7..HEAD  |sort |uniq
-
-a bit of hand editing and a quick emacs macro later and you have a nice
-comma seperated list of all files changes by one author between two commits.
-
-2009-07-12 12:31:47 -0700 Arun Persaud <arun@nubati.net>:
-updated Changelog using git log --no-merges --pretty="* %ai: %s%n %b" HEAD v4.2.7
-
-2009-07-12 11:34:28 -0700 Arun Persaud <arun@nubati.net>:
-cleaned up some more copyright notices
-
-2009-07-12 11:22:30 -0700 Arun Persaud <arun@nubati.net>:
-updated copyright to reflect A. Scotte as copyright holder
-
-need to mention him, since the paperwork won't be finished before the next release
-
-2009-07-12 10:56:29 -0700 Arun Persaud <arun@nubati.net>:
-updated patchlevel to "k"
-
-2009-07-12 10:53:50 -0700 Arun Persaud <arun@nubati.net>:
-fixed autoconf problem with VERSION/PATCHLEVEL variables
-
-xboard used it's own version of PRODUCT, VERSION and PATCHLEVEL variables.
-Switched to PACKAGE_STRING provided by autoconf
-
-2009-07-12 10:29:46 -0700 Arun Persaud <arun@nubati.net>:
-cleaned up old CVS left overs
-
-removed $Id tags from all files
-
-2009-07-12 10:10:17 -0700 Arun Persaud <arun@nubati.net>:
-converted xhistory via dos2unix
-
-2009-07-12 10:09:24 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fixed crash in history window
-
-someone discovered that opening the move-history window in XBoard leads to
-an immediate crash. Turns out that renaming the menu item broke it! (The
-name of the item was apprently used elsewhere in the code to access it,
-for putting a check mark there.)
-
-2009-07-12 10:04:30 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fix for Animation of castling moves in Chess960
-
-Animation of castling moves in Chess960 turned out to sometimes make the
-king disappear from the display. For the time being I patched this in
-xboard.c to suppress animation of FRC castling moves altogether. As FRC
-castlings internally are represented as KxR, the to-square does not make
-sense anyway, which made the animation look very weird even when it led
-not to a king disappearance act. And the Rook move of a castling is never
-animated.
-
-2009-07-11 22:44:53 -0600 Eric Mullins <eric@hiarcs.(none)>:
-Update GCC makefile to remove .obj targets.
-
-Dunno how they got in there, but they should be .o
-
-2009-07-11 22:42:41 -0600 Eric Mullins <eric@hiarcs.(none)>:
-Update makefile dependencies on help.c and help.h.
-
-2009-07-11 22:36:59 -0600 Eric Mullins <eric@hiarcs.(none)>:
-Allow compiling with MSVC6.0 and 4.1
-
-Move prototypes into help.h, after making sure that DWORD_PTR is
-defined.  Include help.h from winboard.c and help.c so both files
-benefit from the definition.
-
-2009-07-11 18:26:16 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
- lists these accelerator keys in the menus for JAWS
-
-2009-07-11 18:24:19 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-added shortcuts
-
-This patch allows the use of Ctrl+C and Ctrl+V for Copy Game
-and Paste even in I C S mode when the board has focus.
-
-2009-07-11 18:22:17 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-better handling of pasting a game without PGN tags
-
-patch in wclipbrd.h to make it smarter to decide between pasting
-a game or a position so it can handle games without PGN tags.
-If it doesn't parse as a FEN it is assumed to be a game.
-
-2009-07-11 18:20:56 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fixed parser error for knight move
-
-The parser had a strange quirk: it recognized bd2 as a valid Knight move
-(Nb1-d2) while this SAN format should be reserved for Pawn moves only.
-
-2009-07-11 18:19:30 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
- fixed a few warnings in connection with the help patch (now warning free)
-
-2009-07-11 18:13:50 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-some major re-assignment of accelerator keys in the JAWS
-
-2009-07-11 16:54:53 -0600 Eric Mullins <eric@hiarcs.(none)>:
-several small fixes
-
-uptracked winboard.ini
-
-* Cleanup: moved "Some definitions required..." from winboard.c to config.h,
-and combined some definitions from borland w/ MS.
-
-* Changed internal HtmlHelp return type and 4th argument to facilitate various
-compilers.  These changes, while not strictly adhering to HtmlHelp() conventions,
-won't impact anything since the function modified is internal only.
-
-* Modified HtmlHelp return values to integer to silence warnings.
-* Added help.c to the project in makefile.gcc & makefile.ms.
-* Fixed duplicate resource in winboard.rc.
-
-2009-07-09 22:08:15 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-added JAWS support; help files for Vista; bugfixes for winboard.c
-
-* JAWS support
-* help files should now work under Vista (the user has to have either
-  a program to view old windows help files or to view html-files installed)
-* I fixed the tabbing between all windows that were added according to Tim's sugestions.
-* I added typing in of a move number in the move type-in dialog as a shortcut
-  to going to that position by use of the < and > buttons. Mainly intended to
-  ease life for the blind, but I think it can be generally useful.
-  (Although the move-history dialog provides that functionality too,
-  this is quicker if you don't happen to have it open.)
-* I added typing of a FEN in the move type-in dialog in Edit Position mode.
-  (Which could not be used without mouse at all, and is defective
-  in crazyhouse even with mouse, as there was no way to populate holdings.)
-
-2009-07-09 22:03:00 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-some bugfixes: ICS error handling
-
-* play a different sound for takebacks in ICS mode
-* pop up error messages for illegal moves for typed-in moves
-
-2009-07-09 21:50:41 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-removed no longer needed debug message
-
-2009-07-09 21:48:23 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fixed compile error from a previous change
-
-2009-07-09 21:44:54 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-user selectable font in game list
-
-This makes the game list use the same (user selectable) font
-as the the move-history window.
-
-2009-06-30 21:27:34 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fixed typos in xboard.texi documentation.
-
-2009-06-30 21:16:59 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-updated the FAQ
-
-2009-06-27 17:06:26 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-changed font in engine output window
-
-The engine-output window now uses the same font as the move-history window
-(which was selectable in the "Options  -> Fonts..." menu, while the other
-wasn't).
-
-2009-06-27 17:03:19 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fixed some characters in xboard.texi
-
-It seems that copying manual sections from the RTF to th texi file did
-somehow mess up the double-quote characters, and changed them into some
-strange (unicode?) symbols.
-
-2009-06-27 16:56:36 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-two shogi related bugfixes
-
-I discovered a bug in the move generator for the Shogi Dragon King. I
-guess it went unnoticed so far because this is a promoted version of the
-Rook, which hardly occurs in games. (moves.c)
-
-There was also a problem with the piecesfix I sent you before; Shogi
-chosen as initial variant did use wrong piece symbols. (I had tested this
-on gothic, but there it happened to work for a different reason, unique to
-gothic.) This affects xboard.c.
-
-2009-06-27 16:54:04 -0700 Arun Persaud <arun@nubati.net>:
-small cleanup
-
-2009-06-27 16:51:02 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-adds bitmaps for shogi promotions, and selects the bitmaps or
-pixmaps for the more rarely used piece types on a per-variant basis.
-
-2009-06-27 16:44:36 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-adds new piece types in the promotion dialog and edit-position piece menu
-
-2009-06-27 16:13:15 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-updated bitmaps files: files for fairy pieces where missing,
-others had names that didn't work with autoloading.
-
-2009-06-27 16:06:35 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fixed a bug concerning bitmaps
-
-2009-06-27 15:53:45 -0700 Arun Persaud <arun@nubati.net>:
-give a default directory for bitmaps files (tiny change)
-
-this is also one of the debian patches, should be rewritten to use
-the correct install directory. No Author was given.
-
-2009-06-27 15:47:52 -0700 Brian May <>:
-verbose_error_message_about_recognized_options (tiny change from Debian patches)
-
-2009-06-27 15:45:14 -0700 Matt Zimmerman <>:
-add a visual low time warning (tiny change from Debian patches)
-
-2009-06-24 23:31:52 -0700 Arun Persaud <arun@nubati.net>:
-dos 2 unix conversion of backend.c
-
-2009-06-24 23:30:07 -0700 Arun Persaud <arun@nubati.net>:
-exchanged some sprintf with snprintf found in a patch for the debian system,
-extended it a bit to other sprintf's original patch included only 11 lines
-by Florian Ernst <florian@debian.org>
-
-2009-06-24 23:07:23 -0700 Mark Ioli <chessknight>:
-enabled a patch for default settings in winboard
-
-2009-06-24 22:53:11 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-updated copyright notice
-
-
-2009-06-24 22:52:20 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-patches a bug in chosing the initial board size on a virgin startup
-I introduced recently
-
-2009-06-24 22:49:33 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-I put in testing for the winning condition in 3checks
-
-on a check it just goes through the entire game to subject
-every position on a check test, to see if there were two more.
-
-2009-06-24 22:47:01 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-updated copyright notice in docs
-
-2009-06-24 22:41:40 -0700 Florian Ernst <florian@debian.org>:
-added small patch from debian (tiny change)
-
-according to the debian patch tracker, this patch is by
-Florian Ernst <florian@debian.org>.
-It fixes whitespace issues in filename called from cmail.
-
-2009-06-24 22:33:13 -0700 Arun Persaud <arun@nubati.net>:
-converted dos2unix format for xboard.texi
-
-2009-06-24 22:31:57 -0700 Arun Persaud <arun@nubati.net>:
-deleted two more files that don't need to be in git
-
-these files can be generated by autogen.sh
-
-2009-06-21 12:10:31 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-major overhaul of the -stickyWindows feature
-
-I did a major overhaul of the -stickyWindows feature.
-The game-list and ICS-interaction windows are now also sticky.
-I also added a form of stickiness when the main window is resized;
-edges of auxiliary windows sticking to the right or bottom side of
-the main window stay attached when the window resizes
-(due to nr of board squares or their size). The way the window
-coordinates are saved in the .ini file is now relative to the
-main window, and some dummy options are added to be able to
-recognize right- and bottom-edge sticking, and reconstruct that
-when WB starts up with another board size. Also added are
-volatile options to ensure there will be space for auxiliary windows
-above and left of the main window.
-
-2009-06-21 12:07:01 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fixed long-algebraic form of drops
-
-The WB parser turned out not to understand the long-algebraic form
-of drops send by an ICS. (like B/@@-e4), so even with
-legality testing off I now use the SAN move for drops.
-
-2009-06-18 18:35:31 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-Refined stalemate adjudication in Suicide, some cleanup
-
-Refined stalemate adjudication in Suicide, which seems to be not always won
-for the stalemated side, but for the side with the smallest number of pieces.
-Cleaned up the adjudication code in the process. (backend.c moves.c, moves.h)
-Also includes a tiny change in the -autoKibitz format, as requested on
-Talkchess.
-
-2009-06-18 18:32:57 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-Enhancement of the way -autoLogo decides which logos to display
-
-2009-06-16 00:06:59 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-bugfix and enhancement in autoKibitz mode
-
-changed the format of the autoKibitz: score/depth in stead of depth/score,
-as in PGN. I also supress the ICS time for the move now in the PGN
-if extended info is available. When enhancing the functionality of
-the autoKibitz command (using the opponent engine kibitz for the saved PGN)
-I discovered that the xengineoutput.c in our tree was obsolete,
-and contained a routine of which the arguments were no longer compatble
-with the call from backend.c, and caused segfaulting. I copied in
-the  corresponding routine in wengineo.c, which was compatible. That the
-compiler did not flag this is a sign of badly organized code, I suppose...
-
-The enhancement itself affected backend.c.
-
-2009-06-16 00:04:13 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-modified clock layout
-
-I altered the display of the clocks in the presence of engine logos; I used to
-stack them, but some inquiry on Talkchess sowed that people disliked the
-stacking. So now I display them next to each other again, but as 2-line-high
-fields to make room for te logos.
-
-2009-06-15 23:59:32 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-new zippy option zippyShortGame
-
-On request of Mike Adams I added a new zippy option, -zippyShortGame,
-to make life more difficult for abusers of abort and disconnect for cheating.
-
-2009-06-15 23:56:40 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fixed some bugs in the animation of atomic captures
-
-2009-06-13 15:27:26 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-some small bugfixes
-
-I had overlooked one place from which the FEN writer
-(of whicf I changed the argument types), which made WB crash
-if you copied a FEN (or PGN that cotained FEN) to the clipboard.
-I must have overlooked a warning during compile, or some depedency
-is not correct in the makefile. Anyway, wclipboard.c had to be changed.
-I also moved adjudication of some losing conditions to before tetsing
-for stalemate, (e.g. in atomic, if your king get destroyd you lose,
-even if you have no moves after that because it was your only piece.).
-this affects backend.c.
-I had used the same bits in the rule-modifier flags for indicating
-mandatory capture as was already used for indicating FRC-style castling.
-This led to frequent illegal move calls in FRC... (moves.h)
-
-2009-06-13 10:45:17 -0700 Arun Persaud <arun@nubati.net>:
-cleaned up HTML in FAQ.html -- still need to work on content
-
-2009-06-13 09:36:26 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-added option for work-around for some FRC engines in regards to FRCFENs
-
-It suddenly occurred to me that I had promised on CCC to include an option
-to provide a work-around for the problem that some FRC engines do not
-understand FRC FENs (and thus do not play at all under WinBoard,
-as FRC always has to begin with sending the initial position).
-So I added the options -firstNeedsNoncompliantFEN, -secondNeedsNoncompliantFEN.
-This affects winboard.c and xboard.c, (for defining the option),
-common.h, backend.h, backend.c, (for implementing it),
-xboard.texi and winboard.rtf (decribing it).
-This option provides users with a means to always force the FEN castling field
-to KQkq (but can be used for many other work-arounds as well).
-
-2009-06-13 09:30:31 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fixed bug with random calls
-
-There also seemed to be a bug with the shuffling of opening positions;
-I had changed the declaration of the position number from
-long long int to u64 to comply with MSVC, but this suppressed shuffling
-completely. I now changed it to int. I recently noted a problem with true
-randomizing anyway: this was based on srand(time()), but time() apparently
-did not change fast enough, so that starting several games in rapid succession
-(because the book line contained a 3-fold repetition) produced identical games.
-So I now seed the random once and for all during startup, based on the msec of
-the time mark, and removed the other calls to srand().
-
-2009-06-13 09:26:14 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-changed name for fairymax program in xboard.h
-
-2009-06-13 09:25:07 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-removed my name from copyright message in help->about menu
-
-2009-06-13 09:22:02 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fixed -stickyWindows option
-
-I figured out why -stickyWindows was not working in XP and Vista
-(while it always worked under Win2K), and I think I found a fix for
-it that works under all Windows versions. (I tried XP and Win2K.)
-
-2009-06-13 09:20:38 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-Updated docs for Engine-Settings menu
-
-2009-06-13 09:19:05 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-Awareness of winning conditions for atomic and giveaway variants; two bugfixes
-
-fixed bug in claim verification
-Bugfix on initial position of Great Shatranj
-
-2009-06-13 09:16:47 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-Legality testing (mandatory capture) in giveaway variants
-
-2009-06-13 09:16:17 -0700 Arun Persaud <arun@nubati.net>:
-don't ignore winboard/parser.c
-
-2009-06-13 09:12:15 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-Added new variant Twilight Chess
-
-2009-06-13 09:08:57 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-some renaming and restructuring of WB menu items, to conform more to XBoard
-
-2009-06-13 09:07:07 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-Fixed bug in atomic patch that interfered with non-atomic variants
-
-2009-06-10 21:46:11 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fixed different use of engine option compared to Polyglot
-
-it turns out the new Polyglot uses a sightly different version
-of the GUI->engine option command than the one I proposed
-(and implemented in XBoard; Michel sneaked in an '=' sign
-between the NAME and VALUE of the option, to allow for
-more unambiguous parsing. I guess in principle this is a good idea,
-so I adapted XBoard to Polyglot rather than the other way around.
-The result is that there are canges in xboard.c, and the documentation.
-I noticed that I unjustly had internationalized the option strings
-to be send to the engine in xoptions.c; this was of course nonsense,
-as this was WB protocol. So I undid that too.
-
-2009-06-10 21:37:47 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-add the already supported variants 3check and great (=Great Shatranj)
-to the New Variant... menu.
-
-2009-06-10 21:32:22 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-animate explosions in variant atomic (if animate moves is on).
-
-2009-06-10 21:30:19 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fixed castling bug in variant twokings.
-
-2009-06-10 21:22:36 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fixed forteitary wins for special game variations
-
-feature that corrects forfeitary wins (e.g. on time)
-of a bare King to draws of course breaks proper operation
-in losers, suicide and giveaway
-
-2009-06-09 21:02:51 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-automatically test ini file extension for files from commandline option @filename
-
-The winboard.c is a patch that automatically tries indirection files on the
-command line (@filename type arguments) also with an extension .ini if the name itself
-did not match any existing file and contained no period. This saves the user typing the
-.ini all the time (which I started to find pretty annoying while working on the installer
-package).
-
-2009-06-08 15:23:58 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-added gamelisttag option to xboard
-
-also updated documentation.
-
-2009-06-08 15:20:00 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-updated RTF file for winboard
-
-2009-06-06 09:12:48 -0700 Arun Persaud <arun@nubati.net>:
-fixed syntax error in texi file
-
-2009-06-06 08:57:52 -0700 Arun Persaud <arun@nubati.net>:
-updated to patchlevel "j"
-
-2009-06-06 09:00:25 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-fixed adjudicating probelm in Shantranj
-
-Refrain from adjudicating a draw based on insufficient mating material
-(except bare King vs bare King) in Shatranj (where in this case you can
-still win by baring the opponent's King).
-
-2009-06-06 08:55:17 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-updated documentation and FAQ
-
-2009-06-04 22:52:31 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-source clean up. Fix compiler warning, removed unused variables, etc.
-
-2009-06-04 20:43:29 -0700 Eric Mullins <emwine at earthlink.net>:
-adding support for different windows compiler
-
-Eric kindly provided us with some makefiles for different windows
-compiler and also fixed some issues that came up while using those compilers.
-
-2009-06-04 18:27:26 -0700 Arun Persaud <arun@nubati.net>:
-cleanup: got rid of a lot of files that are not needed for a new release
-
-lots of documentation was available in several places,
-old unused source files and not used graphics file were floating around
-in the tree. This should clean up most of it. No need to keep these files
-around, especially since we are using version control.
-
-2009-05-29 18:56:06 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-Added the Action-menu items that allow the user to adjudicate
-ongoing games in Two-Machines mode. This was an already existing
-backend function from Winboard_x; I only had to create a menu item for it
-to be called. Due to an oversight I had forgotten to do that so far.
-(Logically, I should have done it in the 4.3.5 release,
-where I updated the XBoard menus to conform to the WinBoard menus.)
-
-I tested them, and they seem to work. (As expected.)
-
-2009-05-28 22:23:00 -0700 Arun Persaud <arun@nubati.net>:
-updated patchlevel to "i"
-
-2009-05-28 22:19:08 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-small change to mousewheel support; two changes in window behaviour
-
-* Visible effects during resizing suppressed, bug in chosing new size fixed.
-* No longer reserves left and top margins next to main window on first popup.
-* built in some hysteresis into mousewheel support, ignorng the first event in any new
-direction to suppress effects from accidential mouse movement.
-
-2009-05-28 22:11:11 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-corrected 'animate dragging'
-
-I finally figured out how the 'animate dragging' works in XBoard,
-so that I could add code to do the unstacking of multiple pieces
-in the holdings, rather than always leaving an empty square while
-you drag them. (And then suddenly re-growing the remaining pieces
-as you make the drop.)  It does not look as fancy as in WinBoard
-yet, because the counts still only decrease when you release the
-piece, rather than when you lift it. But this is not nearly as
-disturbing as leaving empty holdings (if only temporarily) when
-you still have pieces there.
-
-2009-05-28 22:06:15 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-Added comand-line options -debugFile (as synonym for -nameOfDebugFile,
-as WinBoard also has these synonyms), and -engineDebugOutput
-(wich already existed in the backend).
-
-2009-05-28 21:57:53 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-updated documentation for new release
-
-2009-05-28 21:55:51 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-added Xiangqi perpetual-chase detection
-
-2009-05-28 00:06:53 -0700 Arun Persaud <arun@nubati.net>:
-Updated all files to GPL version 3.
-
-2009-05-28 00:03:32 -0700 Arun Persaud <arun@nubati.net>:
-converted two files from dos to unix format
-
-2009-05-27 23:12:24 -0700 Arun Persaud <arun@nubati.net>:
-updated INSTALL, NEWS and other files for new release
-
-cleaned up a bit and updated some information in the text files.
-
-2009-05-07 21:48:23 -0700 Arun Persaud <arun@nubati.net>:
-winboard/config.h shouldn't be in .gitignore, only ./config.h
-
-2009-05-07 21:47:37 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-bumped patchlevel to 0g
-
-2009-05-07 21:46:02 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-corrected path in makefile
-
-2009-05-07 21:45:48 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-updated rtf
-
-2009-05-07 21:45:25 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-added firstOptions, secondOptions, noGUI, firstXBook, secondXBook
-
-2009-05-07 21:44:03 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-handle promotion case for Shogi
-
-2009-05-07 21:43:34 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-add note about RESULT command for GUI programmers
-
-2009-05-07 21:42:37 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-small changes to book.c
-
- added code for different board sizes
- added some debuginfo
- handle promotion of pieces
-
-2009-05-05 23:07:18 -0700 Arun Persaud <arun@nubati.net>:
-added a .gitignore file
-
-2009-05-03 12:41:06 -0700 Arun Persaud <arun@nubati.net>:
-wrong line ending for Unix... ran dos2unix on both files
-
-2009-05-02 13:51:50 -0700 Arun Persaud <arun@nubati.net>:
-fixed texinfo files, added windows help file, removed config.h from git
-
-texinfo.in is not needed anymore, since it only provided a
-version string, but this can be created automatically using autotools
-
-deleted config.h from version control, since it is automatically created.
-added winboard.hlp file (not sure if needed)
-
-2009-04-26 23:34:34 -0700 Arun Persaud <arun@nubati.net>:
-updated autoconf init file
-
-* renamed autoconf init file from configure.in to configure.ac
-* added bug-report email address to ac_init
-* replaced ac_output(...) with ac_config_files, ac_config_commands and ac_output
-
-2009-04-26 14:49:03 -0700 Arun Persaud <arun@nubati.net>:
-parser.c is generated by lex, so it shouldn't be tracked
-and also parcer.c shouldn't be in Makefile.am
-
-2009-04-26 14:44:51 -0700 Arun Persaud <arun@nubati.net>:
-added book.c to Makefile.am
-
-2009-04-26 13:49:15 -0700 Arun Persaud <arun@nubati.net>:
-use autoheader to create config.h.in
-
-no need to track this in git anymore
-
-2009-04-26 11:13:26 -0700 Arun Persaud <arun@nubati.net>:
-fixed autoheader warings, remove depreciated acconfig.h
-
-2009-04-26 10:30:23 -0700 Arun Persaud <arun@nubati.net>:
-added a autogen.sh
-
-2009-05-02 10:55:39 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-changes from H.G. Muller; version 4.3.16
-
-2009-05-02 10:50:10 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-changes from H.G. Muller; version 4.3.15
-
-2009-05-02 10:38:39 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-changes from H.G. Muller; version 4.3.14
-
-2009-05-02 10:13:41 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-HGM fixed cygwin compile for winboard
-
-2009-04-24 16:11:57 -0700 Arun Persaud <arun@nubati.net>:
-cross compilier working
-
-2009-04-19 10:00:52 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-changes from H.G. Muller; version 4.3.13
-
-2009-04-19 09:52:47 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-changes from H.G. Muller; version 4.3.12
-
-2009-04-19 09:48:59 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-changes from H.G. Muller; version 4.3.8
-
-2009-04-19 09:44:15 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-changes from H.G. Muller; version 4.3.7
-
-2009-04-19 09:39:19 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-changes by H.G. Muller; version 4.3.4
-
-2009-04-19 09:34:31 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-changes from H.G. Muller; version 4.3.2
-
-2009-04-19 10:26:24 -0700 H.G. Muller <h.g.muller@hccnet.nl>:
-changes from H.G. Muller
-
-2009-04-16 23:06:13 -0700 Arun Persaud <arun@nubati.net>:
-cleaned up the directory a bit. Removed winboard-dm-beta,
-merged the two Changelogs together
-
-2009-04-16 14:12:48 -0700 A. Scotti <dev@ascotti.org>:
-changes from Alessandro Scotti from 20060129
-
-2009-04-16 14:09:33 -0700 A. Scotti <dev@ascotti.org>:
-changes from Alessandro Scotti from 20060112
-
-2009-04-16 14:04:02 -0700 A. Scotti <dev@ascotti.org>:
-changes from Alessandro Scotti from 20051231
-
-2009-04-16 13:59:12 -0700 A. Scotti <dev@ascotti.org>:
-changes from Alessandro Scotti from 20051129
-
-2009-04-16 13:53:41 -0700 A. Scotti <dev@ascotti.org>:
-changes from Alessandro Scotti from 20050322
-
-2009-04-10 04:18:59 +0000 Arun Persaud <arun@nubati.net>:
-translated a handfull of strings and set the codeset to UTF-8
-for the translations.
-
-2009-03-18 03:20:50 +0000 Arun Persaud <arun@nubati.net>:
-Translation: added German po file (roughly 50% translated)
-
-2009-03-01 04:23:54 +0000 Arun Persaud <arun@nubati.net>:
-fixed bug #22853: changed all .Xdefaults to .Xresources in xboard.texi
-
-2009-03-01 02:43:43 +0000 Arun Persaud <arun@nubati.net>:
-fixed bug #25672, patch #6182 by adding DESTDIR support to Makefile.in
-
-2009-03-01 02:33:26 +0000 Arun Persaud <arun@nubati.net>:
-fixed a warning message in the configure script
-
-2009-02-28 22:58:57 +0000 Arun Persaud <arun@nubati.net>:
-fixed parser.l. Should fix bug #22812
-
-2009-02-28 22:58:14 +0000 Arun Persaud <arun@nubati.net>:
-fixed parser.l. Should fix bug #22812
-
-2009-02-28 22:55:30 +0000 Arun Persaud <arun@nubati.net>:
-added myself to the AUTHOR file
-
-2007-06-15 04:26:57 +0000 Mark Loli <chessknight>:
-Initial check-in of NSIS Winboard installer files.
-
-* 06/12/2005: bugfix some more possible buffer overflows.
-
-* 06/27/2004: added simple icsEngineAnalyze for xboard
-
-* 06/26/2004: added icsEngineAnalyze for winboard: Analyze observe games
-with a chessprogram on a Internet Chess Server (ICS)
-
-* 02/12/2004: Bugfix ICS interaction console crashed while chess
-engine starting and user type in some stuff. We wait now to finish
-the engine boot.
-
-* 02/11/2004: Winboard: Added color lines for the ics interaction
-console if zippy used
-
-* 02/09/2004: Added mousewheel support for winboard. Play moves
-backward and forward with the mousewheel.
-
-xboard/WinBoard 4.2.7 -- Fri Nov 28 13:36:00 PST 2003 -- Tim Mann
-
-* 11/26/2003: In WinBoard, setting the -debug flag now logs ICS output
-to WinBoard.debug too.  (This isn't needed in xboard because ICS
-output already goes to stdout, so it's easy to capture along with the
-debug output on stderr.)  This was issue #280 in the ToDo file.
-
-* 11/23/2003: Cleaned up some minor problems in cygwin.mak.  Thanks to
-Hans Werner Strube for the problem report.
-
-* 11/23/2003: Updated the default list of chess servers in
-winboard/defaults.h.  Deleted two that appear to be dead and added a
-new one that is active.
-
-* 11/19/2003: Swapped icon_white.bm and icon_black.bm in XBoard.
-Hopefully this will get them the right way around by default on more X
-window managers.  I wish I understood this better.
-
-* 11/18/2003: Implemented a simple 32-bit random number generator for
-WinBoard, replacing the Windows rand(), which ranges only up to
-0x7fff.  Formerly on Windows, only zippy.lines sayings that started in
-the first 32767 bytes of the file could ever be used.  This was issue
-#505 from the ToDo file.
-
-* 11/16/2003: The xboard man page and info files are now built from a
-common set of texinfo source files, and the xboard man page now covers
-cmail as well.  Formerly, ever since the texinfo file was first
-contributed to the project, it was separate from the man page and the
-two files had to be updated in parallel, making for a maintenance
-nightmare.  To make combining the files possible, I took the Perl
-script "texi2man" from the GNU Units project and added support for a
-larger subset of the texinfo markup language.  I then carefully
-compared the old man page and old texinfo file to make sure the latest
-and clearest words survived into the new combined texinfo file.  It
-would be great to merge in WinBoard's help file too, but that's a
-larger project.  It would have to be heavily conditionalized to
-deal with differences in features between XBoard and WinBoard.
-
-* 11/15/2003: Cleaned up and applied a small patch from Daniel
-Mehrmann, to stop overly long PVs in thinking output from causing a
-buffer overflow crash in backend.c.
-
-* 11/5/2003: When a chess engine sends a "telluser" command (including
-the cases where "tellall" or "tellopponent" acts like telluser), the
-information now goes into a nonmodel popup that is automatically
-dismissed when the user clicks anywhere on the board.  This fix is
-more significant on WinBoard, where formerly you got a fully modal
-dialog that had to be dismissed by clicking on OK before anything else
-could happen.  The bug was issue #406 in the ToDo file.
-
-* 11/1/2003: Removed email addresses from this file to reduce spam
-load, as it gets linked to from the Web.
-
-* 11/1/2003: Updated READ_ME and winboard/READ_ME.txt.
-
-* Modified xboard and winboard makefiles to be able to build the
-project in the new combined directory structure.
-
-* Applied a small security fix to pxboard, from Martin Maeok.
-
-* Fixed a bug in the game list dialog.  The change in 4.2.6 to opening
-games in text mode (meant to avoid getting extra \r's into comments)
-caused a new bug in determining seek offsets when parsing a game file
-to form the game list.  Also, the change was incomplete; on some code
-paths games were still being opened in binary mode.  Thanks to Lenik
-Terenin for reporting the offset bug.  I've now gone back to always
-using binary mode when reading game files, and I've fixed the comment
-bug by adding code to remove \r's from parsed comments explicitly.  I
-still use text mode for writing game files so that games written by
-WinBoard will have Windows-style line endings.
-
-* Fix for minor bug in WinBoard installer.  If you chose a non-default
-destination directory, the default directory was still used for a
-couple of unimportant things, namely setting the App Paths registry
-keys (unused by WinBoard) and trying to copy the existing WinBoard.ini
-file to WinBoard.old.  I inherited this bug from the InstallShield 5
-sample template.  Thanks to "l.d." for noticing the incorrect keys.
-
-* Patch from Chris Priest: when two engines are being run through rsh,
-avoid reusing the same stderr port for both.  I'm not sure why this
-should be needed, but it's harmless, at least.
-
-* Bugfix: The kludge to deal with old engines that give an error
-message because they don't know the "st" command was too sloppy; it
-could hit on an "st" substring anywhere in an error message.  GNU
-Chess 4 is the only engine I know of where the kludge was needed, so I
-changed the kludge to match a longer, more GNU-specific string.
-
-* Changed the WinBoard self-extracting installer to choose a unique
-temporary subdirectory name within the Windows temp directory instead
-of always putting wb-setup directly in temp.  Besides being better
-practice, this avoids the need to deltree wb-setup first, which
-occasionally alarms someone who thinks that deltree is only used by
-trojans to delete all your files.  (Yes, I'm serious.)
-
-* Fixed a bug where FICS-style "wild/0" strings were not parsed as the
-proper wild type.  The "/" was not being skipped.
-
-* Fixed a WinBoard bug where temporary files created by game
-copy/paste were being created in the root directory of the current
-drive instead of the TMP directory and were not always deleted on exit.
-
-* Fixed a small bug in winboard.c's ErrorDialog() function.  Thanks to
-"Ron" (no last name given).  The bug might have caused a problem when
-pressing OK or Cancel in an error dialog when more than one error
-dialog was being displayed, but I'm not really sure.
-
-* Removed a hack that worked around a bug in very old versions of
-Crafty, where it would sometimes reply "illegal move" to a "."
-command.  The hack kept us from recognizing real illegal move messages
-in analyze mode from engines that don't respond to the "." command.
-Thanks to Fabien Letouzey for the report.
-
-* Fixed a bug in the xboard version of GetDelayedEvent.  It would
-return the most recently scheduled event even if it had already fired.
-This caused at least one visible error: in -ics -xreuse mode, starting
-the engine again and seeing another "feature done=1" would re-run the
-initialization code in InitBackEnd3, including the code that opens the
-connection to ICS.  The WinBoard version didn't have this bug.  Thanks
-to Bob Hyatt for the bug report.
-
-* The promotion popup for ICC wild 26 (giveaway) now includes King.
-Thanks to Fredrik Josefsson for the bug report.
-
-* The first game in a file (or being pasted from the clipboard) can
-now start with a bare move -- no PGN tags, no move number "1", etc.
-Suggested by Shane Harrelson.  One could imagine taking this farther
-and accepting something like "e4 e5 1/2-1/2 d4 d5" as two games, but
-I haven't done that.
-
-* Bug fix: xboard didn't really accept a paste of multiple games,
-contrary to what I wrote when adding the feature to WinBoard in
-4.2.4.  Now it works in both.
-
-* Fixed generic start/end of game messages to work on chess.net, where
-they put ratings in parens after the player names.
-
-* Updated config.sub and config.guess to newer versions from
-automake-1.4p5-2.  This makes configure work with MacOS X + X11.
-
-* Bugfix: when examining a game fragment on FICS where black plays
-first, don't show two "(0:00.000)" times on the initial "none" move.
-
-* If TestLegality is on and one of the engines makes an illegal move
-in TwoMachines mode, it forfeits immediately.  Formerly the game would
-get stuck at that point and the engine that made the illegal move
-would eventually lose on time.
-
-xboard/WinBoard 4.2.6 -- Fri Feb  1 22:26:31 PST 2002
-Tim Mann
-
-Another small bugfix release.
-
-* Put in a small change from Alexander Mai to allow xboard to build in
-an OS/2 EMX environment.
-
-* Fix WinBoard-only bug where editing a PGN file with comments would
-insert more \r characters before the \n after every Load/Save cycle.
-For some unknown reason we were reading the files in "rb" mode but
-writing them in "a" mode, so we kept the \r characters on reading and
-added an extra one on writing.  Fix: change the "rb" to "r".  Thanks
-to Joel (last name not given) for the bug report.
-
-* Put the arguments to rsh/remsh in the right order for better
-portability.  Thanks to Michael Kalisz.
-
-* FreezeUI is now implemented in WinBoard; it was previously only
-implemented in xboard.  This function prevents the user from entering
-moves or other commands while we are waiting for an engine to
-initialize itself.  Implementing it fixes a bug where the user could
-start a game (etc.) during feature negotiation.  One of the symptoms
-of this bug was that we could send "new" one or move moves *after* the
-first game started!
-
-* Fixed some handle leaks (WinBoard only), including a nasty one that
-leaked one handle per command sent to ICS.  Thanks to several folks
-who helped characterize the bug and tried to look for leaks.
-
-* We now install and look for the info file in ${prefix}/share/info
-instead of ${prefix}/info.  The latter is still the default in
-autoconf, but the former is currently used in Red Hat Linux and
-probably elsewhere.
-
-xboard/WinBoard 4.2.5 -- Sat Dec 15 11:42:51 PST 2001
-Tim Mann
-
-* Changed the bundled GNU Chess 5.02 in the WinBoard package to
-include a much smaller book and to use much less hash table space by
-default (8 MB transposition table, 0.5 MB pawn evaluation table).  The
-large book included with 4.2.4 made the WinBoard download too big for
-some people, and the default hash tables were larger than the
-available physical memory on some people's computers. I built the
-small book by running Crafty's "small.zip" book line collection
-through a Perl script that makes it look enough like real PGN games
-that the GNU Chess book builder will accept it.  The script and some
-minor patches to GNU Chess 5 are available in the WinBoard source
-distribution and at http://www.tim-mann.org/gnuchess.html.
-
-* Fixed a bug in the code that deals with engines that complain that
-"time" and "otim" are illegal moves.  This was a new bug in 4.2.4.
-
-* Revamped the implementation of ToStart in analysis mode.  Formerly
-there was some ill-conceived code that would try to get back to the
-start of the game by doing a "new" command (and all the followup
-commands that requires) while remaining in analysis mode.  This is
-problematic for engine authors to support, though it works with
-Crafty.  This code was trying to solve the problem of ToStart being
-slow because the engine would try to start an analysis after every
-"undo" command all the way back to the start.  But ToEnd already had a
-much better solution to this problem, and now ToStart does the same
-thing: we exit from analysis mode and enter force mode instead,
-make/unmake moves to get to the end/start of the game, and then
-reenter analysis mode.
-
-* Formerly, Zippy could try to start playing a game before the engine
-was initialized; that is, during the initial timeout for protover 1
-engines, or before "feature done=1" for protover 2 engines.  We now
-wait until the engine is initialized before connecting to ICS, which
-fixes this in the common case.  If you turn off engine reuse for
-multiple games (that is, if you give the -xreuse option), there could
-still be problems; see item 503 in the ToDo file.  Thanks to Dieter
-Buerssner for the bug report.
-
-* Bugfix: All WinBoard versions since the merge with WinBoard Plus
-(but not xboard) have had a bug in changing the PeriodicUpdates,
-PonderNextMove, and ShowThinking options from the menu.  The bug
-mostly just caused changing these options during a game to not take
-effect until after the next reset.  For TwoMachines games, though,
-changing PonderNextMove just before the game would take effect
-immediately for the second engine but not until the next game for the
-first engine.  Thanks to Koundinya Veluri for the bug report.
-
-* Bugfix: In 4.2.4, we sometimes got confused when trying to leave and
-reenter analyze mode.  One symptom was that Analyze File did not work.
-Thanks to Igor Syry for the bug report.
-
-xboard/WinBoard 4.2.4 -- Sun Dec  9 14:56:30 PST 2001
-Tim Mann
-
-* WinBoard now includes GNU Chess 5.02 in place of GNU Chess 5.00.
-
-* WinBoard's PasteGameFromClipboard will now handle a paste with
-multiple games in it, popping up the game list dialog.  xboard
-already did this.  Suggested by Robert Gerstman.
-
-* We now use the "clearboard" command on ICC where appropriate.
-
-* Bugfix: don't generate a bogus "variant normal" command to an engine
-for the loadable ICC wild types that we internally flag as
-VariantLoadable.  Also clarified the message that Zippy sends when
-declining such wild games -- it can't deal with the possibility of
-loading an arbitrary position into the game.  Thanks to Dieter
-Buerssner for reporting the problem.  It would be nice to be able to
-actually play these wild types some day; presumably there would have
-to be an option to either send "loadgame" with a specified position,
-or to deal with an opponent sending it.
-
-* If we get a holdings message from ICS when we thought we were
-playing normal chess, we now try asking for a move list so that we can
-find out from the header what's really happening.  Formerly we guessed
-bughouse in this case.  Response to a comment from Gian-Carlo
-Pascutto.
-
-* Fixed two longstanding bugs in the clock code.  These affected only
-play between a user and a local engine, or between two local engines,
-not ICS play.  (1) The last fractional second used by a player before
-moving and virtually pushing his clock was being charged to his
-opponent instead of to him.  (2) The time and otim commands were being
-sent to an engine before the (buggy) fractional second update was
-done.  The second bug was pretty harmless in itself, but the first one
-was serious.  Many thanks to Peter Rosendahl for carefully diagnosing
-and reporting these bugs!
-
-* Changed WinBoard timestamp key.  Nothing is changed other than the
-key and a recompilation.  ICC may phase out the old key soon; if they
-do, you'll need to use the timestamp.exe from WinBoard 4.2.4 or later
-to connect to chessclub.com.
-
-* Fixed an xboard-only bug where most dialogs would not take keyboard
-input unless the mouse was actually over the dialog, even if the
-dialog window had focus.  Thanks to Jason Varsoke for the bug report.
-
-* Bugfix; Remember to send time and otim commands to engine before
-sending playother.  Thanks to Bob Hyatt for the bug report.  Also
-fixed a bug where time and otim were sometimes sent even with feature
-time=0.
-
-* Added small patches from Wilkin Ng that are meant to fix a crash in
-CopyGameToClipboard and a "can't unlock clipboard memory" error in
-PasteTextFromClipboard, under Windows 2000.
-
-* Changed cygwin.mak to not use -mno-cygwin.  In other words, it now
-uses cygwin1.dll instead of the mingw libraries.  This works around
-bugs in fileno() and stat() that I encountered in mingw.  (fileno
-seems to always return 0.  stat fails because the library routine uses
-a different definition of struct stat than the header files provide.)
-Thanks to Robert Gerstman for reporting the symptoms these bugs caused
-when WinBoard was compiled with Cygwin.
-
-* Added -showButtonBar option.  This lets you delete the << < P > >>
-buttons and thus widen the message widget a bit.
-
-* Added code to address a very obscure bug.  If an engine dies and
-needs to be restarted while in one of the analyze modes, it was not
-getting put back into analyze mode.  This bug should not really ever
-have gotten tickled unless reuse was turned off and the engine sends
-game end commands (such as 1-0) when a game ends by rule while in
-analyze mode.  The next version of the protocol spec will say that
-engines should not do that, but version 2 and earlier didn't address
-the issue.
-
-* We now use the FICS "iset ms 1" feature to get times in ms instead
-of seconds.  Thanks to DAV for email telling me about this feature.
-
-* Changed clock display to show tenths of seconds for 9.9 seconds and
-less, instead of 0.9 seconds and less as before.
-
-* It has been discovered that Zippy can play simuls on ICC (but not on
-FICS).  If you arrange for Zippy to send the ICC command "simulize" in
-the -zippyGameStart string, it will accept additional games while
-playing.  Zippy will use the same engine for every game, so whenever
-it switches opponents, the engine's state will be reset with the "new"
-command.  This will of course weaken its play, so don't enable simuls
-if you want your engine to have the highest possible rating.  Zippy
-was never designed to work with simuls; it just works by accident, and
-it hasn't been tested much.  So please report any bugs you notice, but
-don't expect them to be fixed rapidly.  Thanks to Paul McGuire for
-noticing that this works.
-
-* Bugfix: Suppress the direct command to engine popup if there is no
-engine.  In WinBoard this case used to cause a crash.  Thanks to
-"Dargon" for the bug report.
-
-* Bugfix: formerly we did part of the engine initialization for the
-very first game too soon, before feature negotiation.  One result of
-this is that engines would never get the "ics" command for the first
-game.
-
-* Lengthened timeout to detect protocol version 1 chess engines to 10
-seconds.  This should reduce problems with protocol version 2 engines
-that are slow to initialize missing the timeout and not getting a
-chance to send their feature commands before the first game starts.
-
-* Klaus Friedel says that adding a short sleep to WinBoard after
-starting a new chess engine solves a problem that occurs under Windows
-2000, in which engines sometimes don't see the initial command(s) from
-WinBoard and hang.  I don't understand how that can happen, but the
-sleep is harmless, so I've put it in.  Others have also reported what
-may be the same problem, so hopefully this will fix it for them too.
-
-* Bugfix: editing the Result field in EditTags will no longer cause a
-later crash.  Thanks to DAV for a clear bug report that let me
-reproduce the problem.
-
-* ICC wild 28 is now recognized as shatranj, but it is not supported.
-You might be able to play it by turning off Test Legality.
-
-* Formerly we would always turn off "feature time" if the engine
-printed an error message with the string "time" or "otim" in it; now
-we do that only if the message comes before the engine makes its first
-move.  This change is useful because some engines spew a lot of bogus
-error messages about commands they don't fully parse, so something
-like "result 0-1 {White lost on time}" could generate such a message.
-Engines shouldn't do that, but if they do, mysteriously turning off
-"feature time" is not a good way to react.
-
-* Fixed an infrequently occurring Zippy bug: formerly, resuming from
-adjournment by position (that is, with GetMoveList turned off) or
-starting/resuming a wild game (nonstandard starting position) would
-try to set up the position without putting the engine into force mode
-first.  That was probably tolerated by most engines, but if the
-position was black-to-play and the engine hadn't set feature
-setboard=1, then the fake "a2a3" move (which we use as a kludge to get
-black to be on move before sending the edit command) would appear to
-be a real move, and the engine might reply to it!  This bug could also
-be seen when trying to use Zippy to play a simul -- something that
-Zippy was never designed to support, but which seems to mostly work
-anyway.  Thanks to Paul McGuire for sending a WinBoard.debug file that
-showed the bug occurring.  Some other cases of resuming adjournments
-or starting games from nonstandard positions may have been broken too;
-I think I've straightened out the problems.
-
-* Agreeing to a draw in the human vs. local engine case formerly did
-not work if the human offered first; now it does.  A human's
-unsolicited offer is considered valid until he makes another move.
-Thanks to Bruce Moreland for the bug report.
-
-* Bugfix: We used to look for just "fr" in Event tags or strings from
-ICSes to recognize Fischer Random games.  This caused a lot of false
-matches.  Now we look for "wild/fr" instead, which is what FICS uses.
-
-* Bugfix: Clicking on a move in the MoveList window only updated the
-displayed position; if a chess engine was active, its state was not
-updated.  Thanks to Alejandro Dubrovsky for the bug report.
-
-* Bugfix: The "resign" command from engine to xboard formerly did not
-work in ICS (Zippy) mode.
-
-* Bugfix: Formerly we would register a garbage premove if the user
-clicked on a piece, then clicked on an edge or outside the board.  Now
-such an errant click is ignored.
-
-* Bugfix: GameEnds would send "exit" to an engine in analyze mode even
-if we did not actually want to leave analyze mode.
-
-* Bugfix: "feature pause" was being rejected.  We don't currently use
-it, but that is no reason to reject it.  Thanks to Gian-Carlo Pascutto
-for the bug report.
-
-* Bugfix: when "partner" needed to be sent both to ICS and the engine,
-Zippy was erroneously sending the ICS prefix character to the engine
-too.  Thanks to Gian-Carlo Pascutto for the bug report.
-
-* Zippy now declines challenges when the engine is not yet ready to
-play again, instead of ignoring them.  This is needed so that the
-server will let the opponent repeat the challenge.  It might be better
-to remember such challenges and accept them when the engine is ready,
-but that would be a bit more complicated to implement.
-
-* Bugfix: Zippy's emotes didn't work on FICS because there, "i" is a
-built-in alias for "it", not a real command.  So sending "$i foo" gave
-an error message instead of doing "it foo".  We now leave out the
-alias-suppressing prefix for emotes.
-
-xboard/WinBoard 4.2.3 -- Mon Feb 19 19:55:05 PST 2001
-Tim Mann
-
-* Bugfix: The error message "Variant X not supported by gnuchessx"
-formerly could pop up even in -ncp mode.
-
-* Fixed an xboard bug in premove highlighting.  If you had
-HighlightLastMove turned on, premoves got highlighted in
-highlightSquareColor (yellow) instead of premoveHighlightColor (red).
-
-* Modified premove again.  Now we are back to displaying the move
-locally immediately after sending it to the server, as in versions
-prior to 4.2.1.  This is good because it lets you register your next
-premove sooner.  As a better fix to the problem that the change in
-4.2.1 had been trying to address, we now suppress animating the
-opponent's move if you have a premove reply pending.  However, it's
-probably still a good idea for you to turn off AnimateMoves entirely
-if you are trying to play extremely fast games.
-
-* Removed an erroneous patch that left zombie chess engines around
-when both sigterm and reuse were turned off.  (Bug was in xboard only,
-not winboard.)
-
-* Bugfix: loading a game with autostepping did not work for games with
-PGN result "*" (unfinished).  This bug was introduced in 4.1.0, caused
-by some outdated code that was supposed to leave you in EditGame mode
-after loading an unfinished game.  I fixed this, and also changed it
-to leave you in EditGame mode after loading *any* game, but without
-changing the tags to say it's an edited game.  It's not really clear
-whether that is the best thing is to do here -- ideally, perhaps, the
-tags should change to say "edited game" if you actually make any
-changes, but that is harder to make work.
-
-xboard/WinBoard 4.2.2 -- Tue Feb  6 20:00:00 PST 2001
-Tim Mann
-
-* Fixed a problem introduced in 4.2.1.  In -zippyPlay mode, 4.2.1
-started sending the initString immediately after the old game ended,
-but then when the next game started, it would still send "force" and
-another initString.  Another problem was that the first initString put
-the engine out of sync with the displayed board position, though that
-might not usually have been noticeable.  This is now changed to do a
-full Reset at the end of the previous game, and avoid doing a Reset at
-the start of a new game if we are still in BeginningOfGame mode.
-
-* Fixed some limitations in -zippyPlay mode.  The engine was not being
-fed the moves or history of games that were displayed but not being
-played, so it would get confused if you tried to do something like
-examine a game, then enter EditGame mode from somewhere in the middle
-of the game.
-
-* Made a small change so that cygwin can compile xboard for Windows
-(an X server is required to run it).  Thanks to Volker Zell.  Most
-people would probably prefer to run WinBoard on Windows, however; note
-that cygwin could already compile WinBoard.
-
-* Added some missing documentation to engine-intf.html: It is okay to
-send "feature done=0" even before you receive the xboard and protover
-commands, if this is needed to give your engine enough time to
-initialize.  See engine-intf.html for more discussion.
-
-* Bugfix: "feature done=0" did not work for the second engine; now it does.
-
-xboard/WinBoard 4.2.1 -- Sat Feb  3 19:52:26 PST 2001
-Tim Mann
-
-* Bugfix: in Zippy mode with feature san=1, the elapsed time was being
-sent to the engine after the SAN move; for example, "e4 (0:01)" was
-sent instead of just "e4".
-
-* It seems that scroll wheel mice with incompletely installed software
-(under Windows 95, at least) can send repeated middle button up events
-when the wheel is turned.  Moved QuickPaste from middle button up to
-middle button down to avoid problems with this.
-
-* A premove is now sent *before* the opponent's move that it replies
-to is animated.  The premove itself is no longer displayed (or
-animated) when sent; instead, it is displayed when the chess server
-echoes it back as a board update.
-
-* Bug fix: in -xreuse mode, xboard was only sending command line
-arguments to the engine the first time it was started.  (WinBoard
-didn't have this bug.)
-
-* In -zippyPlay mode, we now initialize the chess engine for a new
-game immediately after the old game ends.  (In -xreuse mode, this
-means starting a new engine process; in the default -reuse mode, it
-just means sending "new".)  If the engine supports ping, we don't
-accept challenges until the "new" has finished.  This should help
-avoid losing time (re)initializing the engine after the game starts.
-
-* We now handle the new FICS field in style 12 that says whether the
-clocks are ticking.
-
-* whiteFlag and blackFlag are now reset whenever an ICS board image
-arrives, giving autoflag a fresh chance to work.
-
-* Suppressed "geometry error" debug messages unless -debug flag is given.
-
-* Bugfix: avoid core dump on Solaris with -debug flag, caused by
-passing NULL to a %s format in GameEnds.
-
-* Added -firstProtocolVersion and -secondProtocolVersion.  This will
-allow use of extremely broken engines that hang or die when given the
-"protover 2" command.  It should be rarely if ever needed.
-
-* Zippy now strips highlights from player names in the Creating
-message; previously the ratings would not be extracted from this
-message properly if you had set the highlight variable.
-
-* Bug fix: Zippy with -zp but not -zt used to be fooled by false
-partner tells inside channel tells; e.g.:
-Garf(24): Garf (your partner) tells you: sit
-
-* Bug fix: when an engine reported its name with the new "feature
-myname=" command, we had been putting just that name into the window
-title even when in TwoMachines mode.
-
-* By default, WinBoard no longer uses the new feature introduced in
-4.2.0beta of keeping the ICS menu, ICS server list, and lists of chess
-engine command lines in separate files; instead, the lists are back in
-the winboard.ini file.  This gets rid of some problems where the
-separate files could not be opened because the working directory was
-not set to WinBoard's installation directory.
-
-* WinBoard command lines and ini files now have another optional
-syntax for quoting an option value.  All characters within { } curly
-braces are interpreted literally except for '}' itself.  SaveSettings
-now uses this syntax for string values that contain a backslash or
-newline and do not contain a '}'.  This should address the problem
-that the separate .ini files had been meant to fix; engine command
-line lists can now be written without \-escapes.
-
-* Fixed three bugs in relaying moves between engines in TwoMachines
-mode: an engine would be sent SAN if the *other* engine had set
-feature san=1, a relayed SAN move did not end with a newline, and
-feature usermove was not implemented for relayed moves.
-
-* Fixed several bugs in exiting: File/Exit would sometimes hang;
-timestamp/timeseal would not get killed off; an engine crash would
-cause error messages to be printed recursively until stack overflow.
-
-* Fixed a bug in the code to detect which ICS is in use and adapt to
-it; the chess.net case was broken.
-
-* Removed the leading alias-suppression character when sending a move
-to ICS, because it seemed to break accuclock on chess.net.
-
-* Fixed a bug where a FICS prompt like "10:01_fics%" would be matched
-as finger note number 10, causing a problem detecting when the user is
-logged in.
-
-* Added tellicsnoalias command to protocol.
-
-* Changed st command in protocol back to old behavior.
-
-* Added done=0 feature to protocol, to lengthen initial timeout.
-
-* Added missing -colorSeek command line option to xboard.  (Was
-present in WinBoard.)
-
-* Bug fix: setting feature reuse=0 was not working.
-
-xboard/WinBoard 4.2.0beta -- Sat Dec 16 16:34:56 PST 2000
-Tim Mann
-
-* Setting -searchTime no longer turns off -clockMode.  Note that when
--searchTime is set, some engines may search for the lesser of
-searchTime and the amount of time their normal clock management would
-dictate, while others will disable their normal clock management and
-always search for exactly searchTime.
-
-* Fixed WinBoard bug where on Windows 2000 (and maybe Windows 98) the
-ICS Interaction window would scroll back to the top whenever it filled
-to capacity and WinBoard trimmed some text off the top.
-
-* Changed xboard dragging so that the center of the dragged piece is
-forced to be over the mouse cursor.  (WinBoard dragging already worked
-that way.)  This should avoid confusing cases when you start a drag
-with the mouse near the edge of a square -- formerly most or all of
-the piece could be over one square but the mouse cursor over another.
-Suggested by DAV.
-
-* Added move list window for xboard.  Code contributed by Manuel
-Hoelss and re-hacked a bit by me.  Performance of this window is poor,
-because the implementation regenerates the entire window contents
-whenever anything changes.  It's hard to avoid this when using the
-Athena List widget, though we could be a little smarter and notice
-when the current move number has changed but the move list has not.
-There are also several drawing problems caused by bugs in the Athena
-Form and List widgets.  The window should not really allow a
-horizontal scroll bar, but the bugs are much worse if I turn it off.
-In both Xaw and Xaw3d, the List widget tries to resize itself when
-XawListChange is called, even if you tell it not to; and what's worse,
-if the widget cannot resize itself to be large enough to avoid
-clipping any of the list item, it does not change the list!  Arrgh.
-On top of that, the Xaw Form widget is very buggy in XFree86 4.0.1
-(X11R6.4.3).
-
-* The OK button in the WinBoard startup dialog is now simply disabled
-if none of the radio buttons is selected, instead of bringing up an
-error dialog.  Suggested by Ted Milbaugh.
-
-* Used ping to address the worst of the race conditions in the
-protocol.  Now if an engine supports ping, we ping it after sending
-the "new" command and after trying to place it in force mode at the
-end of a game.  When a ping has been sent and the corresponding pong
-has not yet come back, we (1) ignore or undo any moves the engine
-sends, (2) ignore game end messages (such as "offer draw", etc.) from
-the engine, (3) ignore thinking output from the engine, (4) delay
-starting the next game if in -matchGames mode, (5) in -zippyPlay mode,
-respond to challenges with a polite message to try again soon instead
-of accepting them.  There are a few more things that should be done
-(and item 5 might not be quite what we want), but it's hard to fit
-them all into the existing code.
-
-* Patched the version of GNU Chess 5.00 included with WinBoard to
-support protover, feature, setboard, and ping, and to fix some minor
-bugs.  See gnu500+.patch.
-
-* Changed the GNU Chess 4 kludges for missing "st" and "sd" commands
-to be invoked only if the engine gives an error message for "st" or
-"sd", and to always use protocol commands instead of engine
-command-line options.  See "Idioms" in engine-intf.html.
-
-* Added new protocol command "protover 2" to tell the engine what
-version of the protocol is in use.  Version 2 is still compatible with
-old engines; see engine-intf.html.
-
-* Add new protocol command "feature ..."  The engine can send this in
-response to the protover command command, to say what extended
-protocol features it would like to enable, etc.  xboard responds
-"accepted F" or "rejected F" for each feature F that is set.  See
-engine-intf.html.
-
-* Added new protocol command "setboard <fen>".  This is an alternative
-to "edit", used only if the engine says "feature setboard=1".
-
-* Added new protocol command "ping <msg>".  The engine is supposed to
-respond "pong <msg>".  This gives us a tool to fix some race
-conditions in the protocol, but it is not used to the fullest yet.
-
-* Added new protocol command "tellopponent".  This will do a "say" if
-you're on a chess server in Zippy mode, or pop up an information
-dialog otherwise.
-
-* Added new protocol command "tellall".  This will do a "kibitz" if
-you're on a chess server in Zippy mode, or pop up an information
-dialog otherwise.
-
-* Added new protocol command "tellothers".  This will do a "whisper" if
-you're on a chess server in Zippy mode, or do nothing otherwise.
-
-* Changed the WinBoard /icsNames, /icsMenu, /firstChessProgramNames,
-and /secondChessProgramNames options to accept a filename preceded by
-"@", meaning to find the value in the file.  Changed the defaults to
-use this feature, with filenames icsnames.ini, icsmenu.ini, fcp.ini,
-and scp.ini.  This should make it easier for users to edit the values,
-since one less level of quoting is needed, and each value is in its
-own file, not mixed into winboard.ini.  Those who upgrade from an
-older winboard version and already have a winboard.ini file will not
-automatically have these values moved to a file; that has to be done
-by hand if desired.
-
-* We now strip .exe from engine names for "name" command, tags, etc.
-
-* Allowed WinBoard input widget to hold more than one line.  You can get
-a newline into the widget with copy/paste or with Ctrl+Enter.
-
-* Fixed an xboard bug where the [P] button would appear in the
-opposite highlight state from what it should be after being pressed.
-
-* We now use the "/" or "$" alias suppression feature on the chess
-servers, to avoid problems if the user inadvertently aliases a
-needed command to something else.
-
-* Changed the method used to deiconize xboard in AutoRaise and cmail.
-This may fix bugs under some window managers where after
-deiconization, the board window was mapped but nothing was drawn
-inside.
-
-* Preliminary, partial support for playing several chess variants
-against a local engine or editing variant games.  The -variant option
-must be given on the command line or WinBoard startup dialog; there is
-no menu.  The current variant is not displayed (except in the
-Tags/EditTags window).  Many variants will not work quite right even
-if the engine supports them; see item 326 in the ToDo file for
-details.
-
-* Added a workaround to detect the variant type when examining a
-scratch wild game on an ICS.
-
-* Fixed two cases where "variant" command should be sent to the engine
-when necessary but was not: loading a game from a file and restarting
-a dead engine.  Thanks to Gian-Carlo Pascutto.
-
-* Added missing support for FICS games that start from a bsetup position
-with Black moving first.
-
-* Fixed a bug in loading a file from the game list window while in
-Analysis or AnalyzeFile mode.  This now leaves us in AnalyzeFile
-mode, analyzing the new file.
-
-* Fixed a bug in loading games with a comment before the first move.
-
-* Fixed a bug in handling LoadGame (or -lgf) with -td 0.
-
-* Added a command line option to select an initial minor mode from the
-Mode menu.  This should satisfy requests from a couple of users with
-special applications.
-
-* Fixed a problem where some things in WinBoard's General Options
-dialog box were grayed out at the wrong time.
-
-* We look for a few messages from the chess engine pipe that are
-intended to catch problems starting an engine via rsh, such as "No
-such file".  Moved code so that these strings won't match until other
-protocol messages have been looked for, and documented the messages in
-engine-intf.html.
-
-* Fixed the WinBoard bug that sometimes made the console input box
-white-on-white even when not in password-entry mode.
-
-* Small changes to WinBoard to be compilable with the latest Cygwin
-net release (as of 10-16-2000).  Thanks to Mark Schoenberg.
-
-* Recompiled GNU Chess 5.0 for WinBoard with the latest Cygwin net
-release (as of 10-16-2000).  Also rebuilt the book just to be sure,
-since I had one bug report about it.  It came out identical and seems
-to work fine.
-
-* Added messages for some common InstallShield errors instead of just
-printing InstallShield's stupid error code numbers.
-
-* Added -firstComputerString and -secondComputerString, allowing you
-to suppress or change the command that is sent to a chess engine when
-its opponent is another computer.
-
-* Added "configure --with-Xaw3d" to allow use of Xaw3d widgets instead
-of Xaw widgets in xboard.  Thanks to Johnny C. Lam of the NetBSD
-project.  I've left Xaw as the default because Xaw3d is too ugly.
-
-* The version of the Xaw Form widget released in XFree86 4.0.1
-(X11R6.4.3) has a bug that causes xboard to display the button bar
-on top of the message widget.  I've reported the bug and have
-installed a kludge workaround into xboard.
-
-xboard/WinBoard 4.1.0 -- Sun Sep 17 17:30:14 PDT 2000
-Tim Mann
-
-* Merged Winboard Plus 4.0.8 from Mark Williams into xboard
-  source pool.  Status of Winboard Plus features in xboard:
-
-  - White pieces now have borders, but the implementation is
-    completely different from WinBoard's; see below.
-
-  - Options menu not changed, probably won't be.
-
-  - Copy&paste support working, using Mark's changes to backend.c, Ben
-    Nye's changes to xboard.c for FEN positions, and some code of my
-    own in xboard.c for PGN games.
-
-  - Premove hooked up and working.  No pre-first-move, though.
-
-  - ICS Alarm hooked up and working.
-
-  - Auto-flip working.
-
-  - PGN Training mode hooked up and working.
-
-  - Improved menu item enable/disable working.
-
-  - Improved >> button working.
-
-  - Auto activate board working.  I changed this to be optional; you
-    might not always want it, especially in Zippy mode.
-
-  - Blindfold working.
-
-  - Documentation updated.
-
-* Fixed more colorization bugs.  Commands like "message foo tells you:
-xxx" and "tell 33 tells you: xxx" will no longer generate bogus
-colorization.
-
-* Added low-tech sound support to xboard, by invoking an external
-program on a filename for each sound to be played.
-
-* ICC wild 27 is now recognized as VariantAtomic, and it sets the
-"ignore check" flag, but is not otherwise supported.
-
-* Converted the piece bitmaps from .bm to .xpm for use with xboard's
-xpm support.  (An .xim version was not created.)  Wrote a shell script
-using ImageMagick to do the conversion and to bucket fill from
-coordinate 0,0 with the background color.  Used xpaint by hand to
-clean up a few pieces where background color "leaked" into the inside
-or didn't flow all the way around the outside, then a sed script to
-fix up color names and bitmap names in the xpaint output.  If any more
-sizes are added later, they should be straightforward to convert with
-reference to the existing scripts.  With this conversion, not only do
-the white pieces now have dark borders, but (unlike with WinBoard) the
-light details on the black pieces are opaque.
-
-* If the XPM library is found when building xboard, the new xpm pieces
-are compiled in as the default.  External bitmap (or xpm) pieces can
-still be used by giving the -bitmapDirectory (or -xpmDirectory)
-option.  If the XPM library is not found, the old bitmap pieces are
-the default.  In this case external bitmap (or xim) pieces can be used
-by giving the -bitmapDirectory (or -xpmDirectory) option.  There is no
-way to compile in xim pieces.
-
-Winboard Plus 4.0.8 -- Sat Aug 5 15:51 PDT 2000
-Mark Williams
-
-* Bugfix release.
-
-* Main menu now visible in Win NT.  Thanks to Microsoft for creating a
-compiler which auto-mutilates the WinBoard.rc file so that the menu is
-displayed under Win 98 but not Win NT.  I fixed the problem by hand editing the
-.rc file.  Sigh.
-
-* "Reset game" now works properly when invoked from Analysis mode when two
-engines are present. Correction of bug introduced in Winboard Plus. Thanks to
-Mogens Larsen for reporting the bug.
-
-* Pasting a FEN position with Black to move now works in all modes.
-Thanks to Mogens Larsen for reporting the bug.
-
-* Added gnuchess.dat to the distribution and a couple of text files that were
-missing in 4.0.7.
-
-*** Merged in the following changes from Tim Mann:
-
-* Bugfix: Highlights would sometimes not be taken down, at least in
-xboard.  The problem is that SetHighlight works in chess coordinates,
-not view coordinates, so if flipView has been toggled since the
-highlight was put up, it gets taken down from the wrong square.  Fixed
-by being careful to call ClearHighlights before toggling flipView, not
-after.  Ugh.
-
-* Bugfix: HighlightLastMove would sometimes highlight square a1 after
-a FICS "tomove black" command.
-
-* Bugfix: a move list with initial position that has black to play was
-not being handled correctly.
-
-* Removed "decline abort" and "decline adjourn" commands from Zippy.
-The syntax is changing on FICS, and Zippy really doesn't have to
-explicitly decline the requests anyway; it's sufficient to not accept
-them.
-
-* ICC wild 26 is now recognized as VariantSuicide (the FICS name; ICC
-calls it "giveaway").
-
-* Bugfix: PGN games with black to move in the initial position weren't
-being legality checked correctly.  I think this was introduced in
-4.0.6 when I fixed a different PGN bug.  Thanks to Mark Williams for
-spotting the bug and suggesting a fix.
-
-* Bugfix: the initial "name(" of a kibitz wasn't being colorized.
-
-Winboard Plus 4.0.7 -- Thu May 12 17:57 PDT 2000
-Mark Williams
-
-* New white pieces with black borders.
-
-* Major overhaul to Options menu. New dialogs for setting General Options,
-  Board Options, ICS Options, Sounds, Fonts, Colors.
-
-* Clipboard support for PGN game scores and FEN positions.
-
-* Optional ICS Premove with user-specified first moves for White and Black.
-
-* New sound events: ICS Win, ICS Loss, ICS Draw, ICS Unfinished, ICS Alarm.
-
-* New auto-flip option when playing against a chess program.
-
-* Added PGN Training mode.
-
-* Certain menu options now disabled while program is thinking.
-
-* ">>" button now always goes to the end of the game.
-
-* In ICS mode, the board is automatically activated at the start of a
-new game.
-
-4.0.7 -- Sun Mar  5 17:17:49 PST 2000  Tim Mann
-
-* Fixed a nasty bug in parsing ICS game histories that was introduced
-in 4.0.6.
-
-4.0.6 -- Fri Mar  3 16:20:11 PST 2000  Tim Mann
-
-* Fixed bugs in Zippy's code for responding to messages sent with the
-ICS "message" command.
-
-* Fixed bugs where xboard could still create dialogs partially off the
-top of the screen.  Fixed unwanted interactions between initial sizes
-and positions of various unrelated xboard dialogs.  Deleted
-borderXoffset and borderYoffset resources.
-
-* Fixed restoring the xterm name on exit to work in more cases.
-
-* Small fix to the WinBoard self-extracting installer: when it starts
-up, it now always deletes any old wb-setup directory left over from a
-previous installation.  Formerly this worked only on Windows 95/98, so
-on NT the self-extractor would sometimes stop and ask the user whether
-it was OK to overwrite the old wb-setup files.
-
-* Modified WinBoard to be compilable with the free Cygwin tools
-available from http://sourceware.cygnus.com/cygwin/.  Based on work by
-Mark Schoenberg.  (His mods were enough to get WinBoard through the
-compiler, but a few things were broken along the way, so I reworked them.)
-
-* Merged changes from Don Fong to make WinBoard compilable with
-Borland C++ 4.5.  I do not have Borland C++ and am unable to test with
-it, but I did make sure the changes don't stop it working with MSVC++
-5.0 and Cygwin.
-
-* Forbade entering TwoMachines mode from MachineWhite or MachineBlack
-mode when machine is on move.  This used to confuse the engine and
-cause problems, because when we try to get the engine to stop, it
-might make a move first, and it might not do that immediately.
-
-* Variant classification now deals with new ICC wild 25, classifying
-it as "3check".  Also, we are now conservative about new wild numbers
-we don't know about, classifying them as "unknown" instead of
-"normal".
-
-* Replaced bad GNU Chess 5.00 book in WinBoard distribution with a
-correct one.  1.e4 now no longer takes GNU Chess 5.00 out of book!
-Thanks to Pete Galati.
-
-* Made move parser accept and ignore nonstandard ep suffix on PGN moves,
-e.g., "exf6ep" or "exf6e.p."
-
-* Fixed bugs in parsing PGN files starting with no move number, or
-with a move number other than "1." (including "1...").  Thanks to
-Michael Soulier and Stefan Zipproth for example PGN files
-demonstrating the bugs.
-
-* Changed InitComboStringsFromString to not modify the input string;
-this caused an exception when WinBoard was compiled with MSVC++ 6.
-Thanks to Bert Tuyt for the report.
-
-* In WinBoard, dragging a piece off the edge of the board without
-releasing the mouse button no longer instantly aborts the move.  You
-still must release the mouse button inside a square to complete a
-move, but you can now drag off the edge and come back inside.
-
-* WinBoard bugfix: If you went into EditGame or EditPosition mode
-while observing or playing an ICS game, and a new move came in
-(snapping you back to ICSClient mode) while you were dragging a piece
-around, the drag state would not be reset, causing the piece you were
-dragging to remain on the board wherever you dropped it.  Thanks to
-David Brinegar for the bug report.
-
-* WinBoard bugfix: If you moved or resized the board while your
-opponent was moving, and you had AnimateMoving on, his move would not
-be displayed until after your next move.  Thanks to DAV for reporting
-the bug repeatedly until I finally understood it.
-
-* Added a Zippy "farewell" feature; see zippy.README.
-
-* Fixed a bug (xboard only) in processing -zippyReplayTimeout on the
-command line.  Thanks to Steve Beer for the report and patch.
-
-* Send "computer" command to both sides in TwoMachines matches.
-
-* Fixed a Y2K bug in Evan's cmail code!  Thanks to Brian Mays for the
-report and patch.
-
-* Bugfix: Initialize variant field of GameInfo struct in gameinfo.c.
-This could cause crashes in LoadGame.  Thanks to Andrzej Nagorko.
-
-* Fixed several pattern matching problems: Finger notes and formula
-vars no longer get replied to by zippyTalk or colorized.  Channel
-tells by players with many titles are now colorized fully, and
-zippyTalk handles channel tells by such players correctly.  The shout
-"--> foo(99): bar" no longer gets colorized as a channel tell.  Code
-is cleaned up a bit, and autocomment capture now uses the same
-criteria as colorization.
-
-* xboard fix: Enter key now closes error popups as in WinBoard.
-Especially nice for the "Exiting: Connection closed by ICS" popup.
-
-4.0.5 -- Tue Dec  7 10:30:40 PST 1999  Tim Mann
-
-* Added missing documentation of SIGTERM usage into engine-intf.html.
-
-* Bugfix: New -zippyReplayTimeout option was misspelled in WinBoard as
--zippyReplyTimeout.  Thanks to Francesco Di Tolla.
-
-* xboard -ics now restores the xterm's original title upon exit, at
-least if $WINDOWID is set.
-
-* Bugfix: -matchGames mode wasn't terminating properly.  Final score
-popup would come up twice and engines would not be killed off.  Thanks
-to Frank Quisinsky for the bug report.  Bug was introduced in 4.0.4.
-
-* Bugfix: "tell 50 foo shouts: bar" no longer gets colored as a shout;
-similarly for "...s-shouts:" and "...c-shouts:".  Thanks to David Lee
-for the bug report.
-
-4.0.4 -- Fri Dec  3 17:51:27 PST 1999  Tim Mann
-
-* Bug fix: formerly if you invoked SaveGame from EditPosition mode
-with black to play, the position was not saved properly.  As a quick
-fix, SaveGame now takes you out of EditPosition mode before saving.
-
-* Changed -matchGames to keep track of the score (won-lost-drawn) and
-display it in the banner.  The final score is displayed in a modal
-popup before the program exits.
-
-* Changed "Connection closed by ICS" to display in a model popup
-before the program exits.
-
-* Added -popupExitMessage option, default on.  Setting this to false
-suppresses the modal popups that you sometimes get just before
-xboard/winboard exits -- both the two new ones listed above and the
-existing Fatal Error popup.  This is useful when running Zippy
-unattended from a shell script (or .bat file) that loops and starts a
-new copy after a time delay when there is an error.
-
-* In xboard, added missing support for WM_DELETE_WINDOW to all
-windows.  This makes xboard a better citizen, and is much needed with
-the newer X window managers that put an [X] button on every window and
-bind it to "kill application" if the applicationd does not support
-"delete window".  We can't allow xboard to be thoughtlessly killed,
-since that leaves the chess engine running in the background.
-
-* We now avoid positioning tops of xboard dialog boxes offscreen.
-
-* zippy.lines can now use the caret ('^') character as an inter-saying
-separator. You no longer need to dig up a text editor that can put NUL
-('\000') characters in text files.
-
-* Bugfix: In traditional chess clock mode, White now gets time added
-to its clock as soon as it makes time control.  Previously both White
-and Black got their time added only when Black made time control,
-which would cause some engines to make their 41st move as White too
-quickly, thinking they were low on time.
-
-* The zippyAcceptOnly feature no longer sends a decline command or
-a tell.  Thus you can use it to put Zippy into a manual accept mode.
-
-* Bugfix: "tell 50 foo tells you: bar" no longer gets colored as a
-personal tell; similarly for "...whispers:" and "...kibitzes:".
-
-* WinBoard no longer blanks the message line when you start a new
-move, unless there was an error message there from the previous move.
-
-* WinBoard now never puts the white piece drop menu on the middle
-mouse button.  Both colors are always on the right button.  Windows
-users often don't think to look for a middle button menu, or don't
-really have a working middle button despite what Windows says.
-
-* Guest login handles on ICC are now parsed again; an ICC wording
-change had broken this feature.
-
-* Autodetect when the engine does not support the "draw" command and
-don't relay the command to it in that case.  Needed because sending an
-unsupported command to GNU Chess makes it move immediately, so people
-could make Zippy move without thinking by continually offering a draw.
-Thanks to Frank Walker for the problem report.
-
-* Small changes based on code from Robert Jurjevic: The WinBoard
-analysis window can be minimized (though not to the taskbar).  The
-WinBoard ICS Interaction window will autoscroll if you drag the mouse
-above or below the window while selecting, and password entry mode
-leaves the entry line as the background color instead of using 75%
-gray.  Seeks are now colorized with a new color of their own.
-
-* Added -zippyMaxGames feature.
-
-* -zippyNoplayCrafty command line option was missing in xboard; fixed.
-Thanks to John Perry.
-
-* Fixed bug in detecting when Zippy loses his bughouse partner.
-Thanks to Ben Dean-Kawamura.
-
-* allobs fix in 4.0.3 didn't work; corrected it.
-
-* WinBoard will now update the board immediately if a move is made
-while the window is being moved or resized.
-
-4.0.3 -- Sun Aug 15 18:44:39 PDT 1999  Tim Mann
-
-* Bugfix: moved winboard wizard functions that send a command directly
-to the chess engine from Ctrl+Alt+1 and Ctrl+Alt+2 to Alt+1 and Alt+2.
-Ctrl+Alt is equivalent to the European AltGr key, so the old assignments
-conflicted with typing an @-sign on some keyboards.
-
-* Bugfix: prevent "If this message stays up, your chess program does
-not support analysis" from appearing if AnalysisMode is selected when
-already in Analysis or AnalyzeFile mode.  Also, deleting analysis window
-in WinBoard now switches you to EditGame mode, to avoid the anomaly of
-being in an analysis mode with no analysis window present.
-
-* Change all Zippy environment variables to work as command line
-options.  For now they still work as environment variables too, but
-the environment variables are deprecated.
-
-* Use unsigned long to hold node counts from engines.
-
-* Print error instead of crashing on attempts to use xpm or xim pieces
-in monochrome mode.  Thanks to Jim Torrance for the bug report.
-
-* Tightened pattern recognition for ICS messages sent to Zippy; should
-no longer match ICC allobs output.  Fixed recognition of when Zippy is
-sent a message; small change to FICS output had broken it.
-
-* Zippy now exits if the engine dies unexpectedly.
-
-* Added Zippy "spoofedby" feature; see zippy.README.
-
-* Narrowed the margins on some older WinBoard dialogs to make their
-style uniform with the newer ones.
-
-* Bugfix: Changing Ponder Next Move from the Options menu did not take
-effect until the next game.  This bug was in WinBoard only.  Thanks to
-Stefan Zipproth for the bug report.
-
-* Got rid of "Internal error: bad move type" message when the engine
-makes a move that we can parse but think is illegal.  Now the move is
-just passed on (which also may be the wrong thing to do).
-
-4.0.2 -- Thu Feb 25 19:55:32 PST 1999  Tim Mann
-
-* Added one more built-in sound choice to WinBoard: move.wav from Pete
-Galati.
-
-* Added new larger piece sizes: big, huge, giant, colossal, titanic.
-
-* Modified the xboard font searcher to be able to use scalable fonts.
-The new -fontSizeTolerance flag controls how closely a nonscalable
-font must match to be used in preference to a scalable font.
-
-* Zippy environment variables ZIPPYABORT and ZIPPYADJOURN now control
-whether Zippy will accept abort and adjourn requests.
-
-* We now determine the variant type being played on ICS, send it as a
-command "variant VARTYPE" to the chess engine (if in Zippy mode), and
-put it in the PGN tags.  See engine-intf.txt for variant names.  See
-ZIPPYVARIANTS in zippy.README to control what variants Zippy will
-accept.  Note that this now applies to bughouse, too.
-
-* Zippy now won't do -zippyTalk in a channel unless his handle is
-mentioned there.
-
-* Zippy now ignores bughouse holdings if not actually playing, instead
-of stupidly trying to abort the game.  Let me know if other strange
-things happen when Zippy is observing a game.
-
-* Set ICS Interaction title bar to "user@server".  User name is
-determined by parsing message during the login sequence.  Zippy now
-uses this method to get its name too, so ZIPPYNAME is eliminated.
-Problem: with xboard, the title bar gets set to "xterm" upon exit,
-since we didn't know what it was to start with.
-
-* Fixed xboard-only bug in -colorChannel1 command line option.  Thanks
-to Fredrik Sandstrom for the bug report and fix.
-
-* Check for overflow of MAX_MOVES.  Still not sure this is checked for
-everywhere it needs to be.
-
-* Added .epd to suffixes recognized by WinBoard as position files.
-This is a bit of a kludge, as the .fen reading code was not written
-with .epd files in mind, but reading them with it is said to work.
-
-* Added ZIPPYGAMESTART feature, suggested by Jason Hoblit.  See
-zippy.README.
-
-* Restored the feature of soaking up the moves from a user-typed "moves",
-"oldmoves", or "smoves" ICS command when xboard/WinBoard is idle, but
-changed it so that the move list is also echoed to the screen.  Some folks
-still liked the old feature since it is faster than examine mode, and
-printing the moves to the screen should eliminate the confusion it caused
-for other people.
-
-* Bugfix: in WinBoard, starting a click-click move and then clicking on
-a black line would cause the source square to be forgotten without taking
-the highlight down.  Now the errant click is ignored.
-
-* Corrected shortcut key labels for LoadNext/PrevPosition in WinBoard's
-File menu.  Thanks to Andreas Stabel for the bug report.
-
-* Bugfix: if you had a completely full ICS context menu in WinBoard
-(90 items), the last one would do nothing if selected.
-
-* The "computer" engine command added in 4.0.1 was not working; I had
-left out part of the code patch.  Oops.
-
-4.0.1 -- Fri Feb 12 21:24:15 PST 1999  Tim Mann
-
-This is a minor bugfix release.  The first item listed below is the
-only interesting new feature.
-
-* You can now type in moves from the keyboard in WinBoard.  Either
-select TypeInMove from Step menu, or (if you are not in ICS mode),
-just start typing.  In ICS mode you can type moves into the ICS
-interaction window anyway, so I've retained the feature that typing
-switches you there.  Not implemented in xboard.
-
-* Removed the "noise 1000" command that used to be sent to the chess
-engine when entering analysis modes.
-
-* Deleted the feature where we soak up the output of a user-typed ICS
-"moves" or "oldmoves" command.  This ancient feature is not really
-useful anymore, now that "examine" exists, and it caused a lot of
-complaints.
-
-* Increased maximum size of ICS text menu to 90 entries and added
-overflow checking.
-
-* The command sent to ICS by Zippy at the end of each game can now be
-customized with the ZIPPYGAMEEND environment variable.
-
-* We treat xboard.info as a pseudo-source since most people don't have
-the tools to rebuild it.  But "make install" erroneously had a
-dependency on it, even though "make all" did not.  Fixed.
-
-* Miscellaneous minor updates and clarifications to engine-intf.txt.
-In particular, documented the st and sd commands (support for command
-line options -searchTime and -searchDepth), warts and all.
-
-* Added a small code patch from Bob Hyatt to detect when Zippy's ICS
-opponent is a computer and send the command "computer" to the engine.
-Added this command to engine-intf.txt.  Thanks, Bob.
-
-* Bugfix: configure was looking for usleep(), but config.h.in didn't
-have an entry for it, so HAVE_USLEEP was never defined.  Also, in the
-non-HAVE_USLEEP case, there was a possible race condition between the
-signal handler and the pause() call.  Thanks to Ben Dean-Kawamura for
-the bug reports.
-
-* Bugfix: a "1..." preceding Black's first move (usually present if
-there is a comment on White's first move) would cause the parser
-to think a new game started there and report "End of game" on the
-current game.  Thanks to Dell Garner for the bug report.
-
-* Changed the abbreviation for -searchDepth from -sd to -depth to fix
-a clash with -secondDirectory.
-
-* Changed -searchDepth to be orthogonal to the various timing options.
-Previously it would search for an unlimited time to the given depth;
-now the engine is allowed to choose its search time in the normal way,
-but is told to cut off the search early if it reaches the given depth.
-
-* Bugfix: SaveSettings in WinBoard was saving both the long form
-option highlightSquareColor and its abbreviation (hsc).
-
-* Fixed a redisplay bug in DisplayBothClocks that could cause White's
-clock to be highlighted in EditPosition mode when Black's should have been.
-
-* Fixed Zippy's feature of passing on draw offers from the ICS opponent.
-The colorization code was eating the offer before Zippy saw it, so I disabled
-colorization of offers while in -zp or -zt mode.  (Other types of
-colorization are already disabled in Zippy mode for similar reasons.)
-
-* Added some more commands to the default ICS context menu in WinBoard,
-and put "(name)" on the ones that insert a playername (or game number).
-
-* Added missing documentation to WinBoard help file: PonderNextMove, the
--ponder/-xponder argument, and the up/down arrow history feature in the
-ICS Interaction window.
-
-* Fixed        ZIPPYNOPLAYCRAFTY feature to fire only if the opponent is Crafty,
-not if some other Crafty is observing the game and kibitzes.
-
-* Fixed bugs in generating "partner" commands when Zippy is playing
-bughouse.
-
-4.0.0 -- Sat Jun 20 16:59:47 PDT 1998  Tim Mann
-
-* Fixed WinBoard resizing so that the edges you do not drag remain in
-place, even when the final size is different from what you dragged to.
-(This doesn't work on NT 3.51 or earlier, if anyone cares.)
-
-* Fixed problems with resizing WinBoard on Windows NT: you no longer get
-whitespace around the board, a clipped board, or a lot of flashing during
-the drag.
-
-* Added customization for highlight-square color.
-
-* Bugfix: backend.c wrote to stderr in a few obscure places, which doesn't
-work in WinBoard.
-
-* Added Index Number field back to LoadGame/LoadPosition dialog boxes in
-WinBoard.  This required some extra code to work with both the
-Explorer-style dialog boxes and the old-style NT 3.51 dialog boxes.  Ugh.
-
-* WinBoard startup dialog now understands -zp mode.  The first chess
-engine selector is enabled and the value is used.
-
-* Bugfix: ResetGame would send "exit" to engine twice if it was in an
-analysis mode.
-
-* Bugfix: The response "Illegal move: bk" to the "bk" command, indicating
-that it is not implemented, would confuse xboard.
-
-* Bugfix: Ignore empty hints ("Hint:\n") instead of printing a message
-saying that some bogus string (often "Hint:") is illegal.
-
-* Bugfix: LoadNextGame/LoadPreviousGame/ReloadSameGame were broken.
-
-3.6.12 -- Sat Jun 13 14:57:10 PDT 1998  Tim Mann
-
-Beta test release of xboard and WinBoard.
-
-* Spruced up xboard man page a bit.
-
-* Added Highlight Last Move to xboard too.
-
-* The revamped xboard mouse click code had several more bugs than the
-previous version, so I revamped it again.  All fixed now, I hope.
-
-* xboard bugfix: crash in CreatePieceMenu.
-
-* Oops.  winboard-3_6_11beta.exe installed 3.6.10beta, not the new version.
-
-3.6.11 -- Fri Jun 12 20:00:48 PDT 1998  Tim Mann
-
-Beta test release of xboard and WinBoard.
-
-* Major reorganization to engine-intf.txt.  Some new features added,
-many existing features clarified and hints for engine programmers added.
-Support for new features added to program.
-
-* Changed defaults for -scp (etc.) back to being independent of -fcp, as
-in 3.6.2. That is, the default is no longer to copy the value from -fcp if
--scp is not specified.  This will sometimes make command lines longer but
-will remove some confusing situations.
-
-* Split -reuseChessPrograms into two options: -reuseFirst and
--reuseSecond.  Fixed obscure bugs when reuse is off.
-
-* Detect ICC and change some command usage slightly there: only ICC has
-set-quietly; only FICS has iset and bsetup clear.  With this feature, we
-can now safely use bsetup clear when appropriate instead of deleting each
-piece one by one.
-
-* Added indent to lines that are wrapped by WinBoard ICS Interaction
-window.  This seems to tickle a Microsoft bug in the RichEdit control:
-occasionally the start of the next line after the wrapped line is indented
-too.  I think the wrapped indent feature is useful enough that it's worth
-having in spite of the bug.
-
-* WinBoard bugfix: bounding box for the board was computed incorrectly by
-mouse code.  It would think you moved off the bottom of the board before
-you really did, so it was hard to drag pieces along the bottom rank on
-smaller board sizes.
-
-* Fixed obscure parser.l bug: ambiguity between capture using : instead of
-x and email header line.  Also removed or simplified a lot of complex
-patterns for English (as opposed to PGN) end-of-game indications while I
-was in there.
-
-* Added PonderNextMove option.
-
-* xboard EditPosition piece menus now let you set the side to play by
-selecting the "White" or "Black" label at the top of the menu, like
-WinBoard.  (Both xboard and WinBoard still let you set the side to play by
-clicking on the clock.)
-
-* Merged documentation of Crafty and GNU Chess thinking output in
-engine-intf.txt.  Corrected code in backend.c to match documentation; it
-used to require the PV to start in column 27 (!).
-
-* Fixed bug that caused crashes in "-reuseChessProgram false" mode.
-
-* Draw by agreement in Two Machines mode now works as it is supposed to.
-Other minor bugs in handling game end messages from machines are also
-fixed, and engine-intf.txt is revised in this area.
-
-* Revamped xboard code for handling mouse clicks on the board.  In
-particular, it had a bug if a click-click promotion move was made.
-
-* Fixed and reinstated optimization for << in analysis modes: send
-initString and re-send the board if needed.  Sending repeated undos
-is bad because Crafty prints some analysis after every one.
-
-* Don't go into a spin loop while pausing between xboard animation frames.
-This caused problems, especially when compiling with -O2 on HP-UX.
-
-* WinBoard Options/Colors/RevertToDefaults now also turns off Monochrome
-if it was on, and similarly for Options/ICSInteractionColors/RevertToDefaults.
-This seemed to confuse people before.
-
-* Bugfix: ICS Interaction context menu items with neither of the two
-optional flags set did not work.
-
-* Bugfix: PGN move numbers are optional, but we were insisting on "1"
-right after the tags.
-
-* Bugfix: only the first game of an -mg match was loading -lpf or -lgf.
-
-* Other minor fixes and code cleanup.
-
-3.6.10 -- Mon Jun  1 01:32:31 PDT 1998  Tim Mann
-
-* Added ZIPPYNOPLAYCRAFTY feature; see zippy.README.
-
-* Added timestamps for chess engine interaction to -debug output.
-
-* Now allow 10 seconds (was 5) between games in match mode for engines to
-respond to "force" command that ended previous game.
-
-* When a game is picked from the game list and the names of White and
-Black are known, display them in the window banner instead of the filename
-and game number.
-
-* Changed default for -scp and -sd to be the values of -fcp and -fd.
-
-* Added boxes for both engines to WinBoard startup dialog.  Changed to
-dropdown boxes whose content can be set from winboard.ini, similar to
-the box for ICS name.
-
-* Accept "offer draw" (or "*offer*draw*") from engine to offer a draw.
-
-* Accept "move mmmm" from engine as well as silly "1. ... mmmm" syntax.
-
-* Added support for bughouse engines (Zippy mode only).
-
-* Move bombproofing for engines sending illegal or out of turn moves.
-
-* Always send "xboard\n" to engine as first command.  Eliminates need
-to run crafty as "crafty xboard".
-
-* Rewrote xboard code for input from engines to fix longstanding bugs.
-Previously an engine that sent one line in two separate writes with
-some time lapse in between (or perhaps that sent several lines in one
-write) could make xboard hang.  WinBoard did not have this bug.
-
-* Fixed minor bugs in dealing with illegal moves.
-
-* Added "iset startpos 1" for FICS.
-
-* Removed special support to put "GNU Chess" or "Crafty" in the window
-banner instead of the engine's base filename.  This gives a more level
-playing field for other engines.  Also fixed bugs in the code that finds the
-engine's base filename.
-
-* Bugfix: Abort or Resign at the very start of a game in chess engine mode
-would fail to send "force" to the engine.
-
-* Fixed some minor bugs in new "result" messages, and changed format to
-include a trailing PGN comment giving the reason the game ended.
-
-* Changed syntax of /font options in WinBoard; old syntax was assuming
-that a font name can't contain a digit, which is wrong.  Old font names in
-WinBoard.ini files are still accepted.
-
-* Serious further work on getting WinBoard to read/write files in the
-"right" directories and documenting exactly what it does.
-
-* Added LoadPreviousPosition, LoadNextPosition, ReloadSamePosition.
-
-* Misc. tiny fixes and cleanup.
-
-3.6.9 -- Sun May 24 20:53:08 PDT 1998  Tim Mann
-
-xboard and WinBoard beta release.
-
-* Tightened up illegal move handling.  Illegal or meaningless moves from a
-file or chess engine should no longer get translated into a1a1 and blindly
-applied.  Explicit moves to the same square (like a1a1) no longer make the
-piece on that square capture itself and vanish.
-
-* Added AlwaysOnTop feature to winboard.
-
-* Fixed bug in winboard "@" command line indirection operator.
-
-* Removed buggy "optimization" code for ToStart in analysis modes.
-
-* Fixed typo bug in zippy.c that would often cause winboard to crash
-right after starting a game in -zp mode.
-
-3.6.8 -- Sat May 23 22:23:19 PDT 1998  Tim Mann
-
-xboard and WinBoard beta release.
-
-* Added -firstDirectory and -secondDirectory so that chess engines can
-be started in a different directory from xboard/WinBoard itself.
-
-* Added -matchGames to allow more than one game in -matchMode.  The games
-are played with colors alternating between the two chess engines.  Had to
-add a time delay at the end of each game to catch up with game ending
-messages from both chess engines -- yuck.
-
-* Changed TwoMachines mode to have firstChessProgram play White by
-default.  Added -firstPlaysBlack to restore old behavior.
-
-* Major rework of code in backend.c for dealing with first and second
-chess engines.  Generalized the code and created a struct type with one
-instance for each engine.  Several small bugs fixed along the way.
-
-* Fixed bugs in Abort in local chess engine mode.
-
-* Tightened pattern matching to recognize moves from machine.  Should cure
-bogus "Illegal move" errors while Crafty is pondering with Show Thinking
-on, among other things.
-
-* WinBoard keeps focus in board window after popping up a comment due to
-Forward/Backward/ToStart/ToEnd commands.
-
-* Finally got rid of warnings on compiling moves.c under Windows.
-
-* Fixed so WinBoard will compile on machines where WM_MOUSELEAVE is not
-defined.
-
-* Removed various bits of unused code.
-
-* Parse (and ignore) NAGs in PGN files.
-
-* Updated engine-intf.txt.
-
-* Send "result R" to the chess program at the end of each game, where
-R is the PGN result 1-0, 0-1, 1/2-1/2, or *.
-
-* Bugfix: suppress animation when loading a game with timeDelay=0.
-
-* Bug fix: pondering output from Crafty that contained "..." could be
-mistaken for a move, causing bogus error messages and general chaos.
-
-* xboard "make clean" bug fix: moved things created by configure to be
-removed only by "make distclean".
-
-* Fixed a remaining case where move was being animated before being
-relayed to opponent.
-
-* Backend was reversing time/otim commands to the chess program (new bug),
-and was often not sending them on the first move of a game or the first
-move after a mode change (old bug).  Fixing the latter required a kludge
-to work with both GNU Chess and Crafty, because Crafty swaps white and
-black clock times when it swaps sides, while GNU Chess does not.  The
-kludge is that we always make sure the chess engine thinks its opponent is
-on move before we set the clock.  This will sometimes result in sequences
-like "white\ntime xxx\notim yyy\nblack\ngo", or the same with white and
-black interchanged.
-
-* Removed last trace of old -whiteString and -blackString arguments.
-
-* Fixed so that you can type "bd" into the Direct Command dialog when
-debugging gnuchess, without having xboard parse the clock display
-(starting with "White") as "White wins" and end the game.
-
-* Changed moves.c to make a distinction between IllegalMove (where we
-could tell what move was intended, but it violates the chess rules) and
-MeaninglessMove (where we could not tell).  This is a step towards getting
-rid of cases where we translate meaningless moves into "a1a1", but some
-work is probably needed to track them all down.
-
-* Fixed bug in WinBoard monoMode dragging.
-
-* Changed WinBoard to new style file dialogs.  In the process, disabled
-the feature that let you enter the index number of a game or position within
-the file in the dialog.  This is no loss in LoadGame, as you can pick your
-game from the game list dialog that follows, but it does remove some
-functionality from LoadPosition.
-
-3.6.7 -- Mon May 18 21:25:00 PDT 1998  Tim Mann
-
-xboard and WinBoard beta test release.  I've been unable to reproduce some
-reported drawing bugs, so they may still not be fixed.
-
-* Changed PopUpErrors option to PopupMoveErrors, which is more useful, and
-changed default to off.  Errors other than move errors should always be in
-popups; they are often too big for the message area and too important to
-put where they can be easily missed.  But it seems good to get rid of the
-popups for move errors by default.
-
-* xboard analysis window no longer forces itself to top whenever there is
-new output.  Also, now uses built-in Xaw word wrapping instead of trying
-to do its own; works better.
-
-* Bugfix: Reset did not take Crafty out of analyze mode.
-
-* A chess engine no longer has to claim to be Crafty to be able to use
-AnalysisMode and AnalyzeFile; it just has to implement the analyze
-command as Crafty does.  Put in heuristics to generate more informative
-error messages if the engine does not support analyze, and checked that
-they work at least with GNU Chess.
-
-* Added click-click moving, HighlightLastMove, and HighlightDragging to
-WinBoard.  The highlight features are unlikely to go into xboard unless
-the xboard drawing code is cleaned up to do *all* drawing on the board
-from DrawPosition, as WinBoard does.  This is low priority for me.
-
-* Eliminated bogus "Error gathering move list: no header" popup.  You
-could get this by observing two fast games at once without turning off
-GetMoveList.
-
-* Disable WinBoard Sounds menu entirely in -ncp mode, since not even
-MoveSound is used in that mode.
-
-* WinBoard bugfix: Several problems were caused if the user changed
-WinBoard's current directory in a Load, Save, or Browse dialog.  In
-particular, WinBoard.ini would get saved in the wrong directory, and
-sound .wav file names would not get saved with a full pathname.  I think
-all such problems are now fixed.
-
-* WinBoard bugfix: iconizing the board after an aborted mouse resize would
-(partially) resize it to Tiny.
-
-* WinBoard bugfix: board was not being drawn in color on 256-color
-displays.  This bug was introduced in 3.6.6.
-
-3.6.6 -- Tue May 12 17:43:43 PDT 1998  Tim Mann
-
-xboard and WinBoard beta release.  Note: not all reported bugs are fixed.
-
-* Move animation in WinBoard, programmed by Henrik Gram.  Great stuff!
-
-* Animate backward moves too.
-
-* xboard bugfix: -font (and friends) can now specify a font alias (such
-as "fixed"), not just a full X Consortium name pattern.  Previously this
-would give a resource conversion error message.
-
-* Some coding style cleanup in xboard.c.
-
-* Earlier error check for moving wrong color piece in EditGame mode.
-
-* Completed fix to pattern matching; see 3.6.5.
-
-* Fixed some software rot bugs in Zippy.
-
-* Split AnimateDragging as separate option from AnimateMoves.
-
-* Added FlashMoves to options menu and -flash/-xflash to command line
-options (xboard only).
-
-* Some preliminary work on visible bughouse holding support.  Most of the
-code is not present in this release because I have not gotten it working
-properly yet; my first approach went down a blind alley and I had to
-remove most of the partially working code in preparation for a rewrite.
-
-3.6.5 -- Fri May  8 14:22:09 PDT 1998  Tim Mann
-
-Not generally released.
-
-* Pack bughouse holdings display in banner more tightly when board is one
-of the smaller sizes (when smallLayout or tinyLayout is true, that is).
-An interim measure, but should help.
-
-* Completed fix to make move list parsing recognize the end condition and
-final comment.
-
-* Fixed pattern matching for chatter (tells, etc.) to be more reliable.
-This should reduce the incidence of colors starting in the wrong place and
-of incorrectly matching things that look like other patterns inside
-chatter, such as "shout <12>".  (These errors were already rare.)
-
-* WinBoard now lets you customize the list of ICS's in the startup dialog.
-For now, at least, requires editing WinBoard.ini with a text editor.
-
-* Bug fix: WinBoard window sizing and position setting save/restore did
-not work right when the taskbar was at the top (or left side) of the
-screen and not in autohide mode.
-
-* Merged xboard click/click mode and drag mode, and deleted
-ClickClickMoving option on menu.  Now if you click on a piece, it
-highlights and a further click on another square will move it.  (A second
-click on the same square takes down the highlight.)  Or if you press down
-on a piece and start to drag, you can drag it to a new square.
-
-* When making click/click style moves, if your second click is on a piece
-of the same color, instead of saying "Illegal move", we now cancel the first
-starting square, replace it with the second, and wait for another click to
-finish the move.
-
-* Separate -secondInitString.  Default: same as -initString.  Suggested by
-Remi Coulom.
-
-* Patch from Frank McIngvale to make animation work with XIMs.  Yay!
-
-* Changed move animation to happen after move is passed on to ICS or the
-chess engine, where applicable.  Fixed problems with updating moveList
-that this uncovered.
-
-* Changed game list to show PGN result token for each game.
-
-* The usual minor bug fixes.
-
-3.6.4 -- Thu Apr 30 23:14:43 PDT 1998  Tim Mann
-
-xboard and WinBoard beta test release.
-
-* xboard documentation updated, both man page and info file.  An attempt
-to generate both from the same source with LinuxDocSGML was abandoned, at
-least for now.  WinBoard doc updated too.
-
-* Merged updates to animation code from Hugh.  Fixed a couple of remaining
-bugs, mostly to do with handling Pause mode correctly.
-
-* Added SaveSettingsOnExit to WinBoard.
-
-* WinBoard now saves the last screen position of the Comment, Edit Tags,
-Game List, and Analysis windows (in addition to the board and ICS
-Interaction windows) in WinBoard.ini.
-
-* WinBoard now provides a way to customize the right-button context menu
-in the output area of the ICS Interaction window.  For now, requires
-editing WinBoard.ini with a text editor.
-
-* Various minor fixes to ICS message recognition, most affecting only Zippy.
-
-* Colorize the notification when someone sends you a message while you are
-logged in, not the output of the "messages" command.
-
-* Fixed colorization to turn off at the right place more reliably.
-
-* Added a new color and WinBoard sound for "requests": abort, adjourn,
-draw, pause, and takeback.  The same color and sound are used for all of
-these.
-
-* Added GUI to change sounds in WinBoard.
-
-* Suppressed WinBoard error popup when a sound can't be played.  They were
-popping up when two separate WinBoards tried to play a sound at the same
-time (such as during a bughouse match).
-
-* Fixed WinBoard crash when a sound file didn't exist.
-
-* WinBoard ports of timestamp and timeseal now produce decent error
-messages if they fail to connect, and WinBoard captures the messages and
-puts them into a popup.  Previously WinBoard would exit with no message on
-such errors.
-
-* WinBoard resizing with mouse improved; now accurately picks the largest
-size that fits in the new area.
-
-* Added option to turn off error message popups.
-
-* Added sizes slim, dinky, and teeny.
-
-* Fixed some minor problems with error message wording.
-
-3.6.3 -- Mon Feb 23 19:08:57 PST 1998  Tim Mann
-
-xboard beta test release only.  Man page is updated for the changes, but info
-file is not.
-
-* Bug fix: LoadGame could not load a PGN game whose first move was
-castling (which is possible from setup positions).
-
-* Bug fix: we were ignoring illegal move messages from chess engines in
-modes where the engine is refereeing but not participating (EditGame,
-LoadGame, AnalyzeFile).  The problem was in a workaround for a Crafty bug,
-where Crafty generates a bogus illegal move message if a "." (used by
-the PeriodicUpdates feature) is sent in analysis mode when the current
-analysis reveals a forced mate.  Installed a different workaround (that
-works in most but not all cases) and reported the Crafty bug.  Bob Hyatt
-replied with a fix, so the Crafty bug should be gone in Crafty 14.12 or so.
-
-* WinBoard only: enabled resizing board with the mouse.  It snaps to the
-nearest (but not too much larger) predefined size.
-
-* The xboard default font is now sized according to piece size, just as
-clockFont and coordFont have always been.
-
-* Added more sizes: bulky, moderate, average, middling, mediocre, petite.
-
-* xboard only: Added Animate Moves and Click-Click Moving to Options menu.
-
-* xboard only: Added code to animate piece movement, from Hugh Fisher.
-
-* New feature: autoflag is implemented in MachineWhite, MachineBlack, and
-TwoMachines modes.  If it is on and either a chess program or the user
-oversteps his time, xboard will automatically call the flag and end the
-game.  This feature was requested by someone who runs matches between
-programs and wants to penalize GNU Chess for its habit of running slightly
-over at the end of a time control.  I personally think it's pointless.
-
-* Fixed a bug in Zippy's pattern matching; he can now reply to ICC
-messages again.
-
-* Generate prettier notation for illegal moves.  If a move is illegal only
-because it leaves the player in check, generate notation as if that were
-not illegal.  For instance, if two knights are a knight's move away from
-f3, one on g1 and one on e5 that is pinned, the notation would be Nf3 to
-move the g1 knight, Nef3 to move the e5 knight.  (Suggested by Philippe
-Schnoebelen.)  In addition, if a move is illegal because the type of piece
-moved cannot go that way, would be jumping over another piece, etc., we
-give fully disambiguated coordinate notation; for example, Ng1g3, Ke1xe8,
-d2xd8=Q, etc.  An alternative would be to still write Ng3 if there is only
-one knight on the board, or Ngg3 if the other knight is not on the g file,
-but life is too short to code up all this stuff, and perhaps the way I did
-it is better as it emphasizes that this move was really made despite being
-illegal.  I wonder if the new PGN standard revision will speak to notation
-of illegal moves?
-
-* Fixed gross bug from 3.6.2: if a chess program said "checkmate" and
-White was left on move, the PGN outcome was "1-0 {Black mates}" instead
-of "0-1 {Black mates}"!  The bug occurred only for that specific string.
-
-3.6.2 -- Wed Jul 23 16:47:29 PDT 1997  Tim Mann
-
-* There was a bug in backing up from the end of a game against a chess
-engine, introduced when -reuse mode was added.  Fixed.
-
-* Recognize "{" as terminating an ICS move list.  Previously we needed to
-see a prompt (containing %), but occasionally ICC can send more stuff
-right after a move list with no prompt in between.
-
-* In WinBoard, -mm now implies -cp, so you don't get the startup dialog.
-
-* WinBoard startup dialog no longer sets -scp.  People used to get
-confused because they would give the -fcp and -scp arguments, but omit
--cp.  This would bring up the startup dialog, which would set both -fcp
-and -scp to the value in the engine name box.  Now you can change -scp
-only with the command-line argument.  That will confuse some people too,
-but hopefully fewer.  I think overall it's better than putting spaces for
-both -fcp and -scp in the dialog, which would puzzle newbies.
-
-* Bug fix: Analyze File mode now works in WinBoard.
-
-* Bug fix: WinBoard window no longer cuts off part of the bottom row if
-the menu bar wraps to a second line.
-
-* Accept game end messages of the form "PGN-result {comment}" from the
-chess engine, where PGN-result is 0-1, 1-0, or 1/2-1/2.  Accept "resign"
-or "computer resigns" from the chess engine as a synonym for "0-1 {White
-resigns}" or "1-0 {Black resigns}". Accept any message from the chess
-engine containing "game is a draw" as a synonym for "1/2-1/2 {Draw}".
-Accept "White resigns" or "Black resigns".
-
-* Enable "Action / Draw" menu item in chess engine mode.  It sends the
-command "draw" to the engine.  Accept any message from the chess engine
-containing "offers a draw" as a draw offer.  WARNING: Draw offers from the
-user and the engine (or from two engines) are not yet matched up by xboard
-in chess engine mode.  Two engines could get into a loop offering each
-other draws.
-
-* Bug fix: Game end messages from the chess engine are always ignored in
-Zippy mode.  Previously they could sometimes be processed, which was
-sometimes making Zippy hang at the start of a new game that followed
-quickly after an old one.
-
-* Zippy can now respond to titled players in channels.  Zippy will avoid
-talking to himself in a channel if he knows his own name.
-
-* Bug fix: in colorization arguments, the bold setting was being ignored
-if the background color was defaulted.  (xboard only.)
-
-* Extended ParseFEN to accept Crafty 12.2's interpretation of FEN.
-If fewer than 8 squares are given in a row, or fewer than 8 rows are
-given, the uncovered squares are empty.  Also, there can be a / after the
-8th row.
-
-3.6.1 -- Sat May 17 01:02:33 PDT 1997  Tim Mann
-
-* Bug fix: Hitting escape while entering a password on WinBoard no longer
-sets the font color back to black (which made further typing visible).
-
-* Bug fix: On Windows NT 4.0, WinBoard /ics /icshelper=timestamp would
-often hang if you tried to exit with the Exit menu item, the [X] button,
-etc.  The same fix may also have corrected the problem where running a
-chess program with /xreuse would sometimes crash Windows 95 (but not NT)
-when the chess program was killed and quickly restarted.
-
-* Bug fix: Periodic Updates would not work if turned on after having been
-off.  Also, the default was needlessly "off" in WinBoard.
-
-* Zippy bug fix: Continuing an adjourned game was totally broken.  The
-wrong moves, or no moves at all, were being fed to the chess program.
-
-* WinBoard change: Giving -ics without -icshost now pops up the startup
-dialog with "Use an Internet Chess Server" pre-selected, so that you get a
-menu of chess servers instead of going directly to ICC.
-
-* Bug fix: WinBoard's SaveSettings was saving -icshost, -icsport, and
--icshelper in winboard.ini.  This causes a problem if you use a different
-icshost later that needs the default values for icsport (5000) and
-icshelper ("", meaning none).
-
-* Disabled complaints about unexpected "[Ii]llegal move" messages from
-the chess program; we still get them at times.
-
-* Greatly simplified the code for Move Now and SIGINT (ATTENTION).  Fixes
-the bug where Move Now did not work with GNU Chess in WinBoard, and
-several more obscure bugs as well.  Reintroduces a minor bug: GNU Chess might
-not think on your time after a Move Now command.  Trying to fix this
-causes too many other problems.  Documented change in engine-intf.txt.
-
-* Cleaned up code for obtaining ratings from ICS.  It was kludgey and may
-have had bugs on systems with no "Creating:" message.  It should fail
-gracefully there, just not finding the ratings.
-
-3.6.0 -- Thu May  8 19:55:58 PDT 1997  Tim Mann
-
-* WinBoard now has right-button context menus in the ICS Interaction
-window.  Some of the items do immediate commands on the player name you
-have selected or pointed to.  (Suggested by Paolo Casaschi.)  Also, the
-middle button or shift+right does a immediate Copy and Paste.
-
-* Fixed a bug in Zippy's wild rejection.  The bug was causing Zippy to
-reject all forms of wild.  Now it rejects only 1, 9, 16, 17, and 24, as
-was intended.  These variants have different rules, while the other
-variants defined so far only have different starting positions.
-(Actually, wild 2, 3, and 4 never allow castling, but may sometimes by
-chance have king and rook start on squares where castling appears legal.
-This could cause a problem later.)
-
-* Zippy now resumes adjourned games by feeding the chess program
-the move list instead of the position.  Setting -getMoveList to False
-restores the old behavior.  Feeding in the move list is better because
-it enables the chess program to correctly handle en passant legality,
-castling legality, draw by repetition, and draw by the 50 move rule.
-
-* Added a WinBoard startup dialog for people who run WinBoard.exe without
-using the Start menu or reading the help file.  Instead of being dumped
-directly into GNU Chess mode, you now get a menu of choices.  You now have
-to give the new WinBoard -cp option to go directly into chess engine mode.
-I did not add this feature to xboard.
-
-* Handling of "illegal move" from Crafty is now back on.  (It was turned
-off in 3.4.6; see below.)  Crafty 12.0 doesn't seem to send bogus ones
-anymore.  I did have to suppress sending time and otim in analyze mode to
-make this work, but there is no harm in that.
-
-* Zippy now sends "gameend" to ICS at the end of each game.  You can alias
-this to "seek" or whatever you like.
-
-* Added Crafty support for Move Now, using the "?" command.  We test
-whether this command exists by trying it once at the start of the first
-game, before it really makes sense.  If we don't get a message like
-"Illegal move ... ?", we assume it's OK.  (We're careful about this
-because sending a "?" to GNU Chess on Move Now keeps it from pondering the
-next move as it should.)
-
-* Added support for a tellusererror command from the chess engine.  See
-engine-intf.txt.
-
-* Attempted to make engine-intf.txt complete.
-
-* Minor fixes/cleanup to GameEnds code, to be sure we always interrupt
-when needed, and always undo an extra move generated by stopping the chess
-program while it is thinking.
-
-3.5.7 -- Sat May 03 22:37:44 PDT 1997  Tim Mann
-
-Beta release of both xboard and WinBoard.
-
-* Updated xboard documentation.  I really wish the man page was built from
-the info file instead of being separate!  It's a pain to update them both.
-
-* Updated documentation of the interface between XBoard/WinBoard and chess
-programs, and renamed it to engine-intf.txt.
-
-* Added support for tellics, telluser, and askuser commands from the chess
-engine.  See engine-intf.txt.
-
-* Various bug fixes.  On WinBoard, 256 color displays are finally handled
-right; no more color flashing when you switch windows unless the colors
-really need to be updated.  Also, I think the problem of the console font
-failing to change or changing back by itself is finally fixed.
-
-3.5.6 -- Tue Apr 29 03:08:00 PDT 1997
-
-Beta release, WinBoard only.  ChangeLog was out of date in release,
-updated here.
-
-* Added ICC timestamp and FICS timeseal to WinBoard distribution.  These
-are my own ports to Win32, based on and used by permission of the owners
-of the proprietary source code (Daniel Sleator for timestamp, Henrik Gram
-for timeseal).  The owners permit these programs to be distributed only in
-binary form (to help prevent cheating), so to avoid running afoul of the
-GPL, I have kept them as separate programs, not linked into the WinBoard
-address space.  Updated Start menu icons to use them.
-
-* Miscellaneous smaller changes.
-
-3.5.5 -- Fri Apr 25 03:06:00 PDT 1997
-
-Beta release, WinBoard only.  ChangeLog was out of date in release;
-updated here.
-
-* Added simple sound support to WinBoard.
-
-* Updated WinBoard documentation.
-
-* Internal implementation of the telnet protocol is now more complete.
-You can now hop through a VMS host on the way to ICS.  For example, do
-"xboard -ics -icshost vms.host.edu -icsport 23", then log in.  Do not use
-the -telnet flag; that says to use an *external* telnet program.  To avoid
-double echoes, you need to force character mode in VMS telnet after
-connecting from VMS to ICS.  Do "^]^Mset mode char^M^M".
-
-* Display opponent names in the title bar for MachineWhite, MachineBlack,
-and TwoMachines modes.
-
-* WinBoard now has an installer, built with InstallShield.  The installer
-works with a binary-only distribution.  Sources are still freely
-available, but now separately.
-
-* Added SaveSettings to WinBoard, which saves current option settings to
-winboard.ini.  Made sure all options can be saved and loaded, including
-fonts and com port settings.
-
-* If the game ends while you are dragging a piece, we now don't let you
-finish the move.  Formerly the move was accepted and your opponent's clock
-would start running again.
-
-3.5.4 -- Fri Apr 18 01:15:24 PDT 1997  Tim Mann
-
-Beta test release of WinBoard and xboard.  The documentation remains
-out of date.
-
-* Many fixes and improvements to new WinBoard user interface code.
-
-* In Zippy mode, avoid sending another copy of the same move to the chess
-program if ICS sends us another copy of the board image.  Hard to believe
-it took me until now to diagnose and fix this problem!
-
-3.5.3 -- Sat Apr 12 19:49:33 PDT 1997  Tim Mann
-
-Beta test release of WinBoard and xboard.
-
-* Fixed fatal bug in WinBoard input handling.
-
-* Made code to stop chess program for reuse a bit smarter.  Removed kludge
-of "white" in initString; it didn't work well, and is unneeded
-with Crafty 11.21 and later.
-
-3.5.2 -- Sat Apr 12 15:40:01 PDT 1997  Tim Mann
-
-Beta test release of WinBoard.
-
-* Ignore check and permit promotion to King during suicide games; no need
-to turn off TestLegality.
-
-* Renamed CheckLegality to TestLegality to avoid confusion with the chess
-term "check".
-
-* Added Rematch to Action menu.
-
-* WinBoard now has a custom ICS interaction window with scrollback, a
-separate line for input, and colorization.  Accelerators that conflict
-with normal editing keys were changed (by requiring Alt+) so they can work
-in both the console and the main window.
-
-* WinBoard error popups are now non-modal and disappear when you make a
-new move, as in xboard.
-
-* Configure now defaults to --disable-ptys on all systems.  If anyone has
-an ancient SysV system where pipes don't work with select, they can still
-do "configure --enable-ptys" explicitly.  I would appreciate getting a bug
-report if this happens to anyone, with complete output from configure and
-"uname -a".
-
-* "make install" now makes the installation directories too.
-
-* Fixed a bug that would cause an "Illegal move" message for Black from
-GNU Chess to be incorrectly considered bogus.
-
-* Handle name changes during an ICS game (FICS bname and wname commands).
-
-* You can force both chess programs to be killed at the end of each game
-by turning off the reuseChessPrograms option.  There are still some
-problems with reusing Crafty even in version 11.20.
-
-* Now the second chess program stays around by default too, if it ever
-gets started.
-
-3.5.1 -- Sat Apr  5 16:47:48 PST 1997  Tim Mann
-
-Beta test release.
-
-* Don't kill off and restart the chess program for each game; keep the
-same one running, using the "new" command to start a new game.  This
-change works around the problem in Windows 95 that makes WinBoard crash it
-at times, and is generally desirable to make new games start faster.  The
-second chess program (for TwoMachines) is still killed at the end of the
-game, and unfortunately this can still crash Windows 95.  Temporarily
-added "white" to the initString to make this work with Crafty 11.20, which
-has a minor bug in "new".  Older versions of Crafty have worse bugs in
-"new"; they should not be used with this version of xboard.
-
-* Support for FICS suicide chess: Parse illegal moves (that leave King in
-check) in game history.  If CheckLegality is off, allow promotion to King
-and illegal moves in game files.  We still generate e2e4 style notation
-for illegal moves.
-
-* Handle FICS "has timeseal; checking" message.
-
-* Changed the coords from white back to black; this was a bug.
-
-* Fixed problems compiling with K&R compilers.
-
-* Fixed an old bug in RegisterMove that was crashing cmail on some systems
-(notably linux).
-
-3.5.0 -- Thu Jan  2 16:59:49 PST 1997  Tim Mann
-
-Thanks to Frank McIngvale for much of the work on versions 3.4.4 and above!
-
-* Fix Crafty resumed game time bug (frankm)
-
-* Word wrap text in Analysis window (frankm)
-
-* More debug info for XPM loading (frankm)
-
-* Replaced config.sub, config.guess, etc., with up-to-date versions from
-autoconf 2.12.  Hopefully this will fix problems on Pentium Pro machines.
-
-* Removed some Makefile gunk that was causing looping for one person.
-
-3.4.7 -- Thu Dec 19 14:22:41 PST 1996  Tim Mann
-
-All changes from Frank:
-
-* Retrieve ratings from ICC (and FICS, etc., when they add the Creating:
-message), save them in the PGN tags, and pass them to Crafty in Zippy mode.
-
-* Add settable time delay between characters in ICS login script.
-
-* Colorize messages like personal tells.  Fix false recognition of channel
-tells.
-
-* Pass "tells" from Crafty through to ICS (in Zippy mode).
-
-* Implement ~/ filename convention from C shell for game and position file
-names.
-
-* ZIPPYACCEPTONLY feature for testing.
-
-3.4, patchlevel 6 -- Sat Nov 23 16:58:50 PST 1996  Tim Mann
-
-* Put recognition of "illegal move" messages from Crafty for
-illegal castling, etc., inside an #if that is currently turned off,
-because of a bug in Crafty that generates bogus "illegal move" messages
-after some moves that are actually legal and accepted by Crafty.
-
-* Added -checkLegality option; previously this could not be turned off.
-
-* Fixed an old bug in finding default board size parameters.
-
-* Differentiated among channel tell, kibitz/whisper, and personal tell/say.
-
-* Fixed a bug in detecting Xpm in the configure script.
-
-3.4, patchlevel 5 -- Mon Nov 18 16:22:53 PST 1996  Tim Mann
-
-* Added zic2xpm to the kit; it had been omitted by mistake.
-
-* Added some default colors for -colorize
-
-3.4, patchlevel 4 -- Sat Nov 16 18:10:17 PST 1996  Tim Mann
-
-This is meant to be a beta release in preparation for version 3.5.
-
-* Added InfoXBoard and ManXBoard to the Help menu.
-
-* Made Frank's ICS input box optional, defaulting to off.
-
-* Merged in Frank McIngvale's XbKit.  Many new features, including
--clickClick mode, the Analysis modes, piece flashing, ZIICS import,
-ICS text colorization, and the ICS input box.  Many thanks to Frank for
-supplying and documenting this code.
-
-3.4, patchlevel 3 -- Mon Nov 11 18:23:14 PST 1996  Tim Mann
-
-Small set of changes made while Frank McIngvale was working on XbKit in
-parallel.  Unreleased in this form.
-
-* Updated zippy.README.
-
-* Removed useless X event handler and removed strange code for copying
-form translation table to board that worked around the bug it caused.
-This makes changing bindings in .Xdefaults more straightforward.
-
-* Now pressing the Control key steps back one move, and releasing it steps
-forward again.
-
-* Moved quit from "q" to "Q" for greater safety.
-
-* Use "unobserve" instead of "observe" to stop observing; needed on FICS.
-
-* Support for interface variable.
-
-* Strip titles from people who are talking to us, so (for example) Zippy
-won't try things like "tell Darooha(*) hello".  Needed on FICS.
-
-3.4, patchlevel 2 -- Tue Jul  9 19:06:42 PDT 1996  Tim Mann
-
-This patchlevel is not planned to be an announced release.  It's in
-preparation for integrating Frank McIngvale's XbKit.  It mostly contains
-minor fixes I've accumulated since 3.4.pl1.
-
-* WinBoard /telnet option now fires up an external program, as
-with xboard, instead of trying to use a feature of NT 3.1 that does not
-exist in later versions of NT or in Windows 95.  ChangeLog for 3.4.pl1
-said this had been implemented there, but it really wasn't.
-
-* Indicating player to move by the icon color now works under Windows 95.
-
-* WinBoard now kills the chess program when you exit using the system menu
-or the [X] button.  Thanks to Michael Lowe.
-
-* Minor changes to Zippy, including: Now understands wild challenges on
-FICS; these used to crash it.  Removed limit on how fast a game will be
-accepted.  Use "set formula ..." on the chess server to limit this if you
-are using GNU Chess.  Now sends correct opponent name to Crafty.
-
-* Added some missing default values to documentation.  Thanks to Stuart
-Cracraft.
-
-* Bugfix: Trying to print "No fonts match pattern" error message would
-crash.  This can happen to Linux users who don't install Helvetica, for
-example.
-
-* Bugfix: Defaulting feature in -size n,n,n,n,n,n would put us in an
-infinite loop.
-
-* Added more directories to search for Athena widgets on HPUX.
-
-* New cmail (3.12) from Evan Welsh; includes small fix from Kayvan Sylvan.
-
-* Recognize "illegal move" messages from Crafty for illegal castling, etc.
-
-* Bugfix: "name" command added to zippy.c for Crafty was producing error
-message if GNU Chess was in use.
-
-* In bughouse mode, suppress holding messages from console window; show
-holdings only in banner.
-
-* Minor fixes/cleanup to Makefile.in and configure.in.
-
-3.4, patchlevel 1 -- Mon Dec 11 13:43:12 PST 1995  Tim Mann
-
-* This patchlevel updates WinBoard to match xboard, and includes a few
-fixes and minor improvements.  "-size tiny" and "-size n,n,n,n,n,n"
-are still not implemented for WinBoard.
-
-* Installed support for Crafty based on code from Bob Hyatt.
-Currently the only documentation for this is in the FAQ, and a few
-things don't work with Crafty 8.23.  Please do not report these
-problems as bugs in either xboard or Crafty.  Bob and I know about
-them.  The worst ones (if not all of them) should be fixed in Crafty
-8.24.
-
-* Changed the kludge command we send when gnuchess wants to print
-something that doesn't end with a newline, from "help" to "bogus".
-This works because the error message gnuchess prints ends with a
-newline.  It also improves compatibility with Crafty, which doesn't
-need the kludge, but for which sending "help" causes a problem.
-
-* Don't draw grid at all if lineGap is 0; previously we drew the grid
-with X "0-width" lines (usually 1 pixel wide) and then overwrote it.
-
-* Makefile: Removed xboard.info from "all" target so we won't try to
-rebuild it, because this fails on hosts that don't have makeinfo
-installed.  Other minor fixes to "clean" targets, etc.
-
-* Fixes and cleanup to Auto Comment code that handles continuation
-lines and highlighting.
-
-* Auto Observe now tries to observe the game from the point of view of
-the player who was on your gnotify list.  Requested by rng.
-Limitations: We can't tell which player it was unless you have ICS
-highlighting turned on.  Also, currently "observe foo" works as
-required (observing from foo's point of view) only on ICC, but FICS
-will probably implement this soon.
-
-* "-size tiny" now makes the default font smaller automatically.  This
-was implemented by introducing an extra Form widget in the hierarchy
-for all xboard windows, named either normalLayout, smallLayout, or
-tinyLayout.  So you can have resource specifications that apply only
-to certain layouts; in particular, XBoard*tinyLayout*font.
-
-* Bug fix: EditGame or EditPosition while playing or examining still was
-not really being permitted.
-
-* WinBoard bug fix: On the EditPosition menu, King did not work.
-
-* Added text catalog of WinSock error messages to WinBoard, because
-Microsoft still has not put them in the system message catalog.
-
-* Removed support for older ICS game-ending messages that do not have
-a PGN result token (*, 0-1, 1-0, or 1/2-1/2) after the closing '}'.
-The code for older messages was sometimes firing on the newer
-messages, due to parsing ambiguity.  If the current code sees an old
-message, it will understand that the game is over, but will always
-display * as a result token instead of trying to guess the result by
-interpreting the text message.
-
-3.4, patchlevel 0 -- Tue Nov 21 01:02:50 PST 1995  Tim Mann
-
-* This patchlevel was released for xboard only.
-
-* Updated the info file.  It should now be as up-to-date as the man page,
-with good English except in the parts that pertain only to AmyBoard.
-
-* Added "-size tiny", requested by Bob Hyatt.  Also cleaned up bitmap
-support and added "-size n,n,n,n,n,n" to allow arbitrary-sized bitmaps,
-if the actual bitmaps are supplied by the user.
-
-* Updated bughouse support.
-
-3.3, patchlevel 4 -- Sat Nov 18 02:27:21 PST 1995  Tim Mann
-
-* Unreleased beta that works with preliminary FICS bughouse code.  Will
-need changes before release to track FICS message changes.
-
-* Removed use of .EX macro from man page.  It is not supported by some
-nroff -man macro packages, notably the one on Slackware Linux.  Switched
-to boldface for references to xboard and other commands within the man
-page, as this seems to be the modern way.
-
-* Bug fix: If ICS rejected a move, it was correctly undone on the board,
-but the message widget still displayed the bad move.  Reported by DAV.
-
-* Normally, xboard in ICS mode fetches the move list whenever the board
-display switches to a new game.  Doing this is now an option
-(getMoveList) that can be turned off, which is useful if you are watching
-multiple blitz games.  Requested by rng.
-
-* Move list fetching code is now smarter: it ignores a move list if it is
-not for the right game.
-
-* Added support for bughouse as implemented on FICS.  Holdings are shown
-in the window title in place of the strength numbers.  A menu on mouse
-buttons 2 and 3 (same on both) lets you drop pieces.  There is no checking
-as to whether you actually hold the piece you are trying to drop; we rely
-on ICS to check that.  Notation of the form P@f7 is generated and parsed.
-The mate detector does not understand that non-contact mate is not really
-mate in bughouse, but this does no real harm.  It results in a "#"
-suffix being displayed on the move notation, but xboard does not assume the
-game is over.
-
-* Bug fix: Promotion to a knight was not working with ICC!  Thanks to
-Wendigo for the report.
-
-* Bug fix: Special pty code for host types *-*-aix3* and *-*-irix3*
-(supplied from configure.in) had a bug that would cause childio.c to
-fail to compile, due to a "continue" that was not within a loop.
-
-* Bug fix: In pgntags.c, memory was being freed while still in use.  One
-symptom this caused was that on some machines, cmail would fail with a
-message that it could not find the BlackNA tag.  The error was in some
-submitted code that I included in version 3.2.pl3 without reading
-carefully enough.  Anders Forberg noticed the symptoms, and Evan Welsh
-(who had nothing to do with causing the bug) found the bug and submitted a
-fix; thanks to them both.
-
-* Removed restriction against using EditGame while playing, observing,
-or examining on ICS.  You still get a warning popup.
-
-3.3, patchlevel 3 -- Sat Sep 16 11:44:05 PDT 1995  Tim Mann
-
-* Bug fix: Going directly from MachineWhite to TwoMachines mode would kill
-off the second chess program after Black's first move.
-
-* Added -timeIncrement feature.  Thanks to Joel Rivat.
-
-* Deleted code that tries to keep you from observing more than one game,
-or observing while playing or examining.  There is actually no problem in
-doing this, except that every time an update comes in from a different
-game than is currently being displayed, xboard fetches the history of the
-new game, which may be time-consuming if you are on a slow link.
-
-* Fixed configure so as not to crash when neither lex nor flex is found.
-lex or flex is needed only if the user wants to rebuild parser.c.  Thanks
-to Phil Humpherys for reporting the crash.
-
-* Bug fix: config.h.in used #define instead of #undef for some macros used
-in the pty code in childio.c.  This causes the code to fail to compile on
-some architectures, because the symbols are supposed to be undefined, not
-defined to empty, when they are not set in configure.  Bug originated in
-3.3.pl0 when config.h was introduced.  Thanks to Phil Humpherys for report.
-
-* Bug fix: ShowThinking would not show anything when current position had
-no move to display in the move window.  E.g., if position was created by
-LoadPosition or EditPosition.
-
-3.3, patchlevel 2 -- Mon Aug 28 11:11:11 PDT 1995  Tim Mann
-
-* Zippy code was omitted from xboard-3.3.pl1 by mistake; now included.
-
-* For WinBoard, added hint to help file that you may need to turn off
-LocalLineEditing while typing dialing commands to your modem.
-
-3.3, patchlevel 1 -- Sat Aug 19 15:13:30 PDT 1995  Tim Mann
-
-* Zippy distribution is no longer separate from regular xboard distribution.
-
-* Deal properly with Show Thinking output from GNU Chess when it is
-thinking on its opponent's time.  In TwoMachines mode this output is
-suppressed to avoid interfering with the output from the machine that is
-on move; in other modes it is displayed (including the move that GNU Chess
-is predicting the user will make next).  GNU Chess produces this output
-only if it is built without -DQUIETBACKGROUND defined; this symbol is
-defined by default in patchlevels before pl75, but undefined by default in
-pl75.
-
-* Bug fix: Handling of initial board position in move list for wild games
-was broken, so wild games could not be observed and adjourned wild games
-could not be continued.  Thanks to "Maximum Entropy" for the bug report.
-
-* Added feature: algebraic notation now shows "+" indicator for check
-and "#" for checkmate, as called for in PGN standard.  Thanks to Kevin
-Maher for the suggestion.
-
-3.3, patchlevel 0 -- Thu Jul 27 22:21:07 PDT 1995  Tim Mann
-
-* Changed configuration to use a config.h file instead of passing zillions
-of -D options on the cc command line.
-
-* Merged a small fix and some updates to the texinfo file from Jochen
-Wiedmann.  The texinfo file still needs work.
-
-3.2, patchlevel 5 -- Tue Jul 18 20:29:39 PDT 1995  Tim Mann
-
-* Beta test release of xboard only.
-
-* Updated WinBoard code to include new xboard features.
-
-* Added texinfo file from Jochen Wiedmann to the release, but not as the
-primary documentation.  It needs updating, and the English needs work.
-I did make a few improvements, mostly to change incorrect uses of @var to
-either @samp or @code as appropriate.
-
-* Merged in code changes to 3.2.pl4beta from Jochen Wiedmann.
-
-* Fixed EditComment; did not pop up window in previous beta.
-
-* Added AutoComment feature.
-
-* Added GameListDestroy to disable the outdated game list popup in cases
-where we load a new game file without building a new popup.
-
-* Added yyskipmoves feature to parser.l to speed up building of gamelist.
-
-* gamelist.c wouldn't compile with a non-ANSI compiler.  Fixed.
-
-* Change to yy_text handling in patchlevel 3 still had problems.  Can't
-use AC_DECL_YYTEXT in configure.in, because that defines YYTEXT_POINTER
-according to whether the lexer on the current host makes yytext a pointer.
-But most people will be using a parser.c that was generated on another
-host and shipped with the package.
-
-3.2, patchlevel 4 -- Sun Jun 25 19:13:43 PDT 1995  Tim Mann
-
-* Beta test release of xboard only.
-
-* Added FIREWALLS section to man page.
-
-* Changed -icsport to be a string.  Now with the -telnet option,
-specifying -icsport "" suppresses the second argument to telnet.
-
-* Added EditTags feature.  Removed AboutGame from menu, because EditTags
-subsumes it.  EditTags suggested by Jochen Wiedmann and first implemented by
-him in AmyBoard.  xboard implementation is my own.
-
-* Fixed some missing or incorrect prototypes.
-
-3.2, patchlevel 3 -- Sat Jun  3 18:57:38 1995  Tim Mann
-
-* Beta test release of xboard only.
-
-* New version of cmail from Evan Welsh, to fix compatibility problems with
-perl 5.0.
-
-* Added game list feature on Load Game, based on code from Jochen
-Wiedmann.  Integrated it with cmail.
-
-* Several bug fixes from Jochen Wiedmann, including one to my yy_text
-workaround for the difference in the type of yytext between lex and flex.
-
-* Handle clock pause on FICS.
-
-* Suppress clocks in untimed FICS games (time control 0 0).
-
-* Rebuilt configure script with autoconf 2.3.  This fixes a bug in
-configuring for X11R6, where -lSM -lICE would not be added when needed.
-
-* Fixed inconsistent type declarations on IntSigHandler and
-CmailSigHandler.  Bug report from Josh Daynard.
-
-* backend.c wouldn't compile with a non-ANSI compiler.  Fixed.
-
-3.2, patchlevel 2 -- Tue Feb  7 14:50:30 1995  Tim Mann
-
-* Minor release of both xboard and WinBoard.
-
-* Added recognition of some FICS messages.  On the other hand FICS is also
-changing some of its messages to match what xboard already recognizes.
-
-* Temporarily went back to using "promote" command on ICS instead of
-"a7a8=Q", because FICS doesn't implement the latter yet.
-
-* We now avoid using overlapped I/O on pipes in WinBoard, to make Windows
-95 beta 2 happy.  This lets WinBoard work with GNU Chess on Windows 95!
-
-* Installed patches from Jochen Wiedmann to coordinate with Amiga XBoard.
-
-* Installed patch to cmail bug in LoadGame from Evan Welsh.
-
-* Bugfix: checkmate and stalemate moves entered with EditGame in ICS mode
-were not being handled correctly.  Bug was in GameEnds().
-
-* Implemented EchoOn and EchoOff for xboard, using system("stty echo\n").
-Now passwords won't be echoed when you connect directly to ICS.  Also,
-telnet negotiation characters aren't displayed (when possible).
-
-* Implemented more of the telnet protocol.  Now connecting to a telnet
-server with "-icsport 23" should work even without giving the -telnet
-option.  The telnet is in "old line-by-line mode".
-
-3.2, patchlevel 1 -- Sat Dec 10 13:50:46 1994  Tim Mann
-
-* This patchlevel released for WinBoard only.
-
-* winboard.c: Fixed ConsoleInputThread().  Needed to change CRLF to LF,
-not to CR.  This was stopping normal /ics mode from working.  Thanks to
-Asher Kobin for the bug report.
-
-* winboard.c: Fixed Raw(), EchoOn(), EchoOff().  Now they take effect
-immediately, not on the next console read after the one in progress.
-
-* winboard.c: Attempted to make WinBoard work with gnuchessx running
-directly on Windows (not remotely via rsh).  It now works on NT, but only
-if gnuchess is told not to think on its opponent's time ("easy\n" removed
-from initString).  The problem seems to be that GenerateConsoleCtrlEvent
-is not doing anything.  On Windows 95 beta 2, we get error messages on
-both reading and writing to gnuchessx; I didn't investigate why.
-
-3.2, patchlevel 0 -- Wed Dec  7 13:23:36 1994  Tim Mann
-
-* Thanks to all the beta testers who gave me feedback: Josef Nelissen,
-Steve Booth, Evan Welsh, Dima Dakhnovsky, Chris Petroff, Peter Jansen,
-Derek Terveer, Michel van der List, Richard Lloyd, Shelly Mistry, and Mike
-Lee.  Sorry if I forgot anyone.  Thanks to Virendra Kumar Mehta for
-information about DYNIX/ptx.
-
-* Don't exit on keyboard EOF unless we get two in a row.
-
-* WinBoard only: added -localLineEdit switch to allow turning off local
-line editing if you really want to.  It is still a bad idea to let the
-echoing be done remotely, however; see below.
-
-* Fixed some configure problems on HP-UX.  [Steve Booth]
-
-* Fixed (I hope) configure problem on SunOS 5.3/Solaris 2.3.  [Josef Nelissen]
-
-* cmail bugfix from Evan Welsh (cmail 3.4).
-
-3.1, patchlevel 9 -- Fri Dec  2 23:54:56 1994  Tim Mann
-
-* Beta distribution only
-
-* Always do local echo/edit of user typing in ICS mode.  Doing the echo
-downstream may seem nicer in some modes, and it can be hard to turn that
-echo off, but the echoed characters can be interleaved with ICS output
-and make it impossible to parse correctly.  For xboard this involved only
-a change to recommendations in the man page, as Raw() isn't implemented.
-For WinBoard, removing Raw() made a real difference.  Added code in
-WinBoard to change /r/n back into /r on keyboard input, as we get the
-former when Raw() is not called.
-
-* Do not issue ICS "refresh" command after we start to observe a game
-unless we get to the next prompt without seeing a board image.  Newest
-version of ICS doesn't require this refresh, but old versions around still
-do.
-
-* cmail bugfix and small code cleanup in LoadGame, from Evan Welsh.
-
-* Added keyboard accelerators N/P for LoadNextGame/LoadPreviousGame.  Evan
-Welsh request.
-
-* Using "-" on the command line as a filename for loading (saving) games
-or positions specifies the standard input (standard output).  Alain Picard
-suggestion.
-
-* On WinBoard only, a command line option without a leading '-' or '/' is
-now taken as the value of -lgf.
-
-* Changed to not use stdin, stdout, stderr as initializers in backend.c;
-needed for GNU libc compatibility.  You also must build parser.c with flex
-(not lex) if you are using GNU libc, to avoid having the same problem
-there.
-
-* Changed WinBoard to avoid using "overlapped" input on the console.  It
-now seems to fully work on Windows 95 beta 2.
-
-* Improved comment popups on WinBoard.  Now newlines are handled properly,
-and the plain Comment popup window doesn't disappear and reappear when we
-step to a new move with a new comment.
-
-* Fixed bugs in detecting the absence of the time and otim commands.
-
-* Added built-in implementation of rcmd protocol to WinBoard.  Windows NT
-does not implement passing signals through rsh, and Windows 95 does not
-have rsh at all.
-
-* Added -remoteUser option.
-
-3.1, patchlevel 8 -- Mon Nov 28 15:26:07 1994  Tim Mann
-
-* Beta distribution only
-
-* Rearranged ChangeLog file into reverse chronological order to be closer
-to GNU standards.
-
-* Integrated new cmail code from Evan Welsh (including cmail RCS rev 3.2).
-Includes a bug fix to TruncateGame.
-
-* Updated ICS address to be chess.lm.com.
-
-* Bug fixes to handling the aftermath of FatalError.  Thanks to Chris
-Petroff for the bug report.
-
-* Test for remsh before rsh, other fixes for HP-UX.  Thanks to Richard
-Lloyd.  I wasn't able to do all the things he suggested, so there may
-still be some rough edges in building on HP-UX.  See the FAQ file for hints.
-
-* Bug fix; added missing check for HAVE_SYS_SYSTEMINFO.  Thanks to Josef
-Nelissen for testing on Solaris 2.x.
-
-* Updated WinBoard to match xboard.  (WinBoard still has a few option
-dialogs that don't exist in xboard.)
-
-* Changed Hint output to a popup.
-
-* ShowThinking output and move output no longer overwrite each other.
-ShowThinking output won't appear if the displayed position is not current.
-ShowThinking output in TwoMachines mode made clearer and documented.
-
-* Implemented --enable-ptys and --disable-ptys arguments to configure.
-
-* Fixed Book and Hint code to work over a pty with echo enabled and tabs
-expanded to spaces.  Thanks to Dima Dahknovsky for the bug report.
-
-* Moved Attention calls from all over xboard to one place, inside
-SendToProgram.
-
-* Added bulletproofing to ShowThinkingEvent.
-
-* Added code to handle "refresh N" boards that come in from ICS properly,
-assuming ICS is changed to mark them with a new relation code (-3).
-
-3.1, patchlevel 7 -- Sun Nov 13 22:16:01 PST 1994 -- Tim Mann
-
-* Beta distribution only
-
-* Changed ShowThinking to just show the current best line in the
-DisplayMessage area, instead of dumping everything to stdout.
-
-* Installed new cmail (RCS rev 3.1) and cmail.man (RCS rev 1.10), and
-changes to cmail code in backend.c, from Evan Welsh.
-
-* Miscellaneous minor fixes.
-
-3.1, patchlevel 6 -- Fri Nov  4 12:53:53 PST 1994 -- Tim Mann
-
-* This patchlevel was not actually released to anyone.
-
-* Updated the pty code to be based on GNU Emacs 19.24, and moved it to a
-separate file.  It was hard to split out just the pty configuration from
-all the stuff emacs does with its custom configure script and .h files,
-but I did my best.
-
-* Converted from imake to GNU autoconf.  This was a serious upheaval.
-
-* Put in code to help trap "error gathering move list" problem reported by
-Michel van der List if it recurs.  I couldn't reproduce it.
-
-3.1, patchlevel 5 -- Mon Oct 31 21:12:00 PST 1994 -- Tim Mann
-
-* Beta distribution only.
-
-* We now test for checkmate or stalemate in EditGame mode after every user
-move, and in LoadGame mode whenever we hit the end of a game without
-seeing a PGN end marker.  cmail needs an update to deal with this
-correctly; Evan promises one.
-
-* Bugfixes in new move generator.  Thanks to Mike Lee for reporting one of
-the bugs.
-
-* Imakefile was omitted from patchlevel 4.
-
-3.1, patchlevel 4 -- Mon Sep 19 18:19:46 PDT 1994 -- Tim Mann
-
-* Beta distribution only.
-
-* The move generator includes a mate tester.  Initially this is used only
-by cmail, and even that usage needs further work.
-
-* Wrote a true move generator and used it to replace all the move
-disambiguation and legality checking code in parser.l.  The move generator
-is capable of dealing correctly with en passant and castling availability,
-but the rest of the program still does not keep track of this information.
-
-* Bug fix: xboard did not handle "foo has made you an examiner of game 23"
-message.  Thus you could not use examine features until the next board
-came in, showing your new relation to the game.  Thanks to POOKIEWOOKIE on ICS
-for the bug report.
-
-* Added AutoObserve feature.  Thanks to Chris Petroff for the idea.
-
-* Added Book feature to use new gnuchess "bk" command.  Mike McGann request.
-
-* Redid code to handle missing "time" command in gnuchess, because latest
-gnuchess no longer sends a response to this command.
-
-* Eliminated need for -DFLEX.  Thanks to Michael Shields (Vladimir?) for
-the idea.
-
-* Added missing code to implement MoveNow in TwoMachines mode.
-
-* Added ShowThinking feature.  Thanks to Richard Lloyd for the idea.
-
-* Applied patches from Evan Welsh; some fixes and improvements to the
-cmail code.
-
-* Fixed bug in moving from EndOfGame mode to MachineWhite or MachineBlack,
-introduced in previous patchlevel.  Also fixed related bug in ending a
-game in ICS mode; was entering EndOfGame mode instead of IcsIdle.
-
-* Added patch to implement internetChessServerLogonScript flag, from Kevin
-O'Connor.  Thanks!
-
-3.1, patchlevel 3 -- Wed Sep  7 13:22:07 PDT 1994 -- Tim Mann
-
-* Beta distribution only.
-
-* Merged in new cmail code from Evan Welsh.  He added the ability to have
-more than one game per message, needed for official IECG matches.  I added
-the ability to resign or offer/accept/decline a draw in a cmail game.
-
-* Bugfix: invalid -tc option caused segmentation fault; DisplayFatalError
-was called too early in initialization.  Georges Honore reported this bug.
-
-* Decided to keep EndOfGame mode as an element of the user interface---it
-means that a gnuchess game or loaded game has ended, and the user must
-explicitly select EditGame to edit it, rather than just being able to
-enter more moves freely.  But internally there is no longer an invariant
-tying this mode to whether the chess program is running.
-
-* Zippy bugfix: Was saving only the final position in the -sgf file when
-the game ended by something other than resignation or flag.  Also fixed
-the longstanding bug that Zippy would think the final board of such a game
-was a new game and restart the chess program.
-
-* Now does a better job of faking castling availability in FEN.  We still
-don't really keep track of it, but now at least we don't say that castling
-is still available when the king or rook is not on its home square.
-
-* Bugfix: Initial board of game history for wild games was going through
-too much processing, causing us to forget the game length, which is now
-needed by ParseGameHistory.  This was causing problems with resuming
-adjourned wild games.
-
-* Updated ICS host to ics.onenet.net.
-
-* Zippy now accepts challenges where the opponent specified his color.
-
-* Added ZIPPYPASSWORD2 to let operator give commands directly to gnuchess.
-
-* Bitmap directory can include alternative icons now, too.
-
-* Handle "Game * (*) has no examiners" message from ICS.
-
-* Revamped window title and icon name selection.
-
-3.1, patchlevel 2 -- Sun Jun 12 17:16:28 PDT 1994 -- Tim Mann
-
-* "Beta" distribution for Zippy users only.
-
-* Bugfix: common.h was assuming that X11 type Boolean is char, which is
-not always true.  This might have caused all sorts of obscure bugs!
-
-* Installed new bitmaps from Elmar Bartel as the default.  Many thanks!
-The old bitmaps can be used by changing the "bitmaps" symbolic link before
-compiling xboard, or by using the -bitmapDirectory option at runtime.
-
-* Loading a game that ends with the PGN unfinished symbol ("*") now always
-leaves you in EditGame mode.
-
-* Added documentation of -icscomm to man page.  Thanks to Maarten Remkes
-for the linux script.
-
-* ^C now kills gnuchess as well as xboard.  Thanks to Dima Dakhnovsky for
-reminding me how to do this.
-
-* Bitmap icon color now indicates player to move.  Stuart Cracraft
-suggestion.
-
-* Changed piece bitmap flags to have just one flag, which points to a
-directory full of bitmaps, instead of a flag for each bitmap.  Also
-changed bitmap naming convention.
-
-* "Connection closed by ICS" is no longer a FatalError popup.  This was
-too annoying in the normal case where the user typed "quit".
-
-* Changed default font to 14 pixels instead of 10 points.  This seems to
-make it close to the size I want it to be on more displays.
-
-* Major mode (GNU Chess, etc.) appears in title bar.  Stuart Cracraft
-request.
-
-* Bug fix: EditGameEvent, MachineBlackEvent, MachineWhiteEvent, and
-TwoMachinesEvent were calling PauseEvent to get out of pause mode, which
-now has undesired side effects, such as advancing the display to the
-forwardMostMove.  It works fine to just set pausing = FALSE instead.
-
-* IcsExamining mode now lets you access ICS edit position commands using
-the same popup menus as xboard's EditPosition mode.  Thanks to DAV on ICS
-for inspiring the idea.
-
-* Corrected test for gcc on HP in Imakefile; thanks to Richard Lloyd.
-
-3.1, patchlevel 1 -- Wed Jun  1 16:25:11 PDT 1994 -- Tim Mann
-
-* Added parser.c.lex and parser.c.flex to the distribution.
-
-* Added HP gcc options to Imakefile, from Mats Nylen.
-
-* EndOfGame mode no longer highlights EditGame mode indicator, because the
-modes really do differ.  I would like to get rid of EndOfGame mode in the
-future, at least as far as users can see.
-
-* Larger %a in parser.l, needed for RS/6000 users.
-
-* Minor improvements to Mail Move error messages.
-
-* When -debug flag is given to xboard, -v is passed to cmail.
-
-* Old Save Style uses "1. ..." instead of "1..." when black moves after a
-comment; more like xboard 3.0's actual style.
-
-* New version of cmail from Evan Welsh.  Looks for UCB Mail in a more
-portable way and has some minor bug fixes.
-
-* Bug fix: Saving a FEN position while in EditPosition mode with black to
-play was showing white to play in the saved position.
-
-3.1, patchlevel 0 -- Fri May 20 16:36:15 PDT 1994 -- Tim Mann
-
-* This is the first general release since 3.0, patchlevel 9.  Releases
-since then have been limited-distribution or beta releases.
-
-* Thanks to my version 3.1 beta testers: Dmitry Dakhnovsky, Ed Hanway,
-Richard Lloyd, Mike McGann, Shelly Mistry, Josef Nelissen, Chris Petroff,
-Jack Robertson, Michel van der List, Ky Macpherson, Derek Terveer, and
-Evan Welsh.  Sorry if I've forgotten anyone who gave me feedback.
-
-* Updated man page.
-
-* Minor cleanup on menu sensitivity code.
-
-* Integrated another even better version of cmail from Evan Welsh,
-including some code he supplied in xboard itself.
-
-* A few more fixes to cmail support.
-
-* Automatically update clocks after an ICS "moretime" command.
-
-* Handle ICS automatic examine mode (set examine 1) after a game.
-
-3.0, patchlevel 14 -- Tue May 17 13:41:44 PDT 1994 -- Tim Mann
-
-* Beta test release only.
-
-* Don't suppress prompt on first board of game being examined; otherwise
-it looks like nothing happened at all (i.e., like you're lagged).
-
-* Added StopExamining and StopObserving (Chris Petroff suggestion).
-
-* Made Reset do a refresh on ICS.  John Chanak's original ICS code for
-xboard tried to do this; I finally decided it was a good idea after all.
-
-* Fixed bugs in handling updates that come in while you are pausing in
-examine mode.  This is pretty tricky to do right.
-
-* Made un-Pausing immediately pop you to the current position.  This is
-always necessary in examine mode, since the game may have changed under
-you; your remembered moves might no longer be right.  So I made it do the
-same in all modes.
-
-* Took Detach Examine mode back out...used Pause mode for this instead!
-
-* Put in a trap for the GNU Chess bug of printing an Illegal Move message
-when its own hint move is illegal.
-
-* Attempted to fix a Zippy bug; bogus "exited unexpectedly" messages after
-it checkmates its opponent.  This involved adding an argument to GameEnds
-to say who says it ended (ICS, GNU, etc.)  and taking different actions in
-different cases.  Unfortunately, this just restored an older Zippy bug, where
-Zippy restarts gnuchess when it gets the board with the final position,
-because GameEnds still puts xboard in EndOfGame mode.  Sigh.
-
-* We now capture elapsed time on last move when getting game history.
-(Josef Nelissen bug report)
-
-* Rewrote code to redisplay last file title so it really works.
-
-* Fixed bug in oldSaveStyle.
-
-* Larger %a and %o were needed for lex.
-
-3.0, patchlevel 13 -- Mon May 16 16:26:22 PDT 1994 -- Tim Mann
-
-* Beta test release only.
-
-* FatalError popups stay on the screen now.  If the error is really fatal,
-all functions are disabled, and the program exits when you press OK.
-
-* Redisplay last file title when using Load (Next/Previous/Same) Game.
-
-* Zippy understands new match challenge message format on ICS.
-
-* Added Revert command.
-
-* When examining a game on ICS, < > buttons do ICS backward/forward
-commands, unless you set the Detach Examine option.  Thanks to Dima
-Dakhnovsky for the idea.
-
-* Fixed various minor problems in cmail mode.
-
-* cmail generates the tags now.  New version of cmail from Evan Welsh.
-
-* cmail mode won't let you do MailMove unless the currently displayed
-position is exactly one move past the end of the game you loaded.
-
-* Fixed building of man pages in Imakefile
-
-* Updates to INSTALL file
-
-3.0, patchlevel 12 -- Sat May  7 21:10:03 PDT 1994 -- Tim Mann
-
-* Beta test release only.
-
-* Brought man page up to date.
-
-* Added Shift+R to resign from keyboard.
-
-* Some items on Action menu available in GNU Chess mode now.
-
-* Revamped Action menu.
-
-* Reordered functions in backend.c as a small step toward reorganizing
-this whole mess.
-
-* Generate TimeControl PGN tag.
-
-* Get type of ICS game (e.g., rated blitz) and save in PGN tags.
-
-* Bug fix: Clocks were not redisplayed when entering EditGame mode.
-
-* Bug fix: Clocks were not being redisplayed after loading a game file
-with -td 0, so they could show the wrong color active.
-
-* Bug fix: Chess programs would be killed and match mode would exit
-prematurely when loading a PGN game fragment ending with "*".
-
-* ICS command "sposition" no longer confuses xboard.
-
-* Integrated new version of cmail (with support code in xboard) from Evan
-Welsh.
-
-* Added TruncateGame, MoveNow, RetractMove, and QuietPlay.
-
-* Bug fix: switching between MachineWhite and MachineBlack was not calling
-Attention().  Reported by Dino Dini.
-
-* More improvements to INSTALL and Imakefile.
-
-* Pack moves into 79 character lines in PGN output.  We don't generate
-check indications, and we always break the line before the result,
-so this is not quite PGN export format.
-
-* Use FEN tag in PGN.
-
-* Improved finding and counting of game starts in save files.
-
-* Negative position or game numbers in -lpi/-lgi mean to seek to that byte
-offset.  Hook for possible future features, not in man page.
-
-* Detect and handle absence of either "time" or "otim" commands in
-gnuchess.
-
-* Don't use "promote" command to ICS anymore.
-
-* Handle switching sides and taking back moves on FICS.
-
-* Handle flip state flag in style 12 board.
-
-* Handle examine mode on ICS.
-
-* Improved error popups for various kinds of illegal moves.
-
-* Suppress unasked-for hints from gnuchess (which it generates in post
-mode).
-
-* Load/save position functions use FEN.  Old style also supported.
-
-* Added detailed error messages if loading a bitmap file fails.
-
-* Small board has 2-pixel lines between squares instead of 3-pixel.
-
-* Added OldSaveStyle and AboutGame.
-
-* Renamed ForceMoves to EditGame.
-
-3.0, patchlevel 11 -- Tue Sep 21 15:25:36 PDT 1993 -- Tim Mann
-
-* The following changes were present in xboard 3.0, patchlevel 11, but the
-first group did not make it into WinBoard 3.0 until later.  xboard
-3.0.pl11 was a limited-distribution release only, mostly to Zippy users.
-
-* Man page minor fixes.
-
-* Added a missing file close.
-
-* Removed automatic error popdown on Reset, which was destroying some
-error messages before they could be read.
-
-* Fixed char vs. unsigned char warnings on bitmaps.
-
-* Use ICS board style 12.  Some improvements to ICS parsing.
-
-* Comment window is now labelled with the move the comment is on, and
-comments don't pop down when you step to the next move.
-
-* Save files now in PGN format.
-
-* Support for loading PGN files.  PGN tags pop up when a PGN game file
-is loaded.
-
-* More info in INSTALL and Imakefile about building for Suns (and
-other systems).
-
-* WinBoard 3.0 patchlevel 11 split off from an early version of xboard
-3.0 patchlevel 11, so it does not have all the features of that
-patchlevel.  The following changes made it into both xboard and
-WinBoard:
-
-* Made Comment dialog non-modal in WinBoard.
-
-* EndOfGame mode is now more transparent.  It looks like ForceMoves
-mode except that there is no chess program running.
-
-* Small bug fixes in clock management.  Most noticeably, pausing when
-it is gnuchess's move now works as documented (again).
-
-* Add minimal support for -icscomm option.  Not documented yet because
-I haven't sorted out the issues with setting the tty modes on the comm
-port device, or with locking it properly.  But it's usable by wizards.
-
-* Don't restart the chess program upon Backward event from EndOfGame mode.
-
-* Suppress extra prompt after ICS sends us a board.
-
-3.0, patchlevel 10 -- Sat Sep 11 18:44:03 PDT 1993 -- Tim Mann
-
-* Beta test release only.
-
-* Zippy now plays chess.  zippy.c and zippy.h are still not included
-in the standard distribution, but are available on request.
-
-* Switched to using style 12 on ICS.
-
-* Updated man page, and documented use of XBoard*form.translations to
-add more shortcut keys.
-
-* Added shortcut keys "d" to claim/offer/accept a draw, and "t" to
-call flag.  Suggested by venu on ICS.
-
-* More explicit instructions in INSTALL file.
-
-3.0, patchlevel 9 -- Tue Sep  7 14:02:00 PDT 1993 -- Tim Mann
-
-* General release, minor update to 3.0.pl8.
-
-* Loosened checking on whether it's okay to start a move, to satisfy
-ICS ultra-blitz players.  Now we don't check whether it's your turn
-until you let go of the piece.
-
-* Parser now recognizes "+-+" as meaning the game ended in a draw.
-
-* Got rid of S_NONE symbol, which seems to conflict with some symbol
-Sun defines.
-
-* Tweaked the man page.  Clarified that there is currently no way for
-two people running copies of xboard to play each other without going
-through the Internet Chess Server.
-
-* Fixed a bug in color name conversion.  Asking for two different
-colors whose names were the same in the first four characters would
-get you two copies of the first one.  Thanks to Volker Zink for the
-bug report.
-
-* Improved confusing Usage() message.
-
-* Added a bunch of Sun information to the Imakefile and INSTALL file.
-Thanks to Ed Hanway, Arik Klingensmith, and others who responded.
-
-* Test for defined(WIN32) instead of !defined(unix).
-
-* Avoid using (void *) type with non-ANSI C compilers.  Thanks to
-James Altucher for the bug report.
-
-3.0, patchlevel 8 -- Thu Sep  2 12:23:01 PDT 1993 -- Tim Mann
-
-* Note: Patchlevel 8 was the first non-beta release of xboard 3.0
-
-* Added cmail to distribution.  Contributed (and still maintained) by
-Evan Welsh.
-
-* Bug fix: -queen option wasn't initializing menu check.  Reported by
-Pat Surry.
-
-3.0, patchlevel 7 -- Thu Aug 26 13:23:24 PDT 1993 -- Tim Mann
-
-* Sent WinBoard 3.0.pl7 to Torre on ICS
-
-* Added parser.h to hold the interface to parser.l
-
-* Upgraded COPYING file and copyright notices to GNU GPL version 2.
-
-3.0, patchlevel 6 -- Tue Aug 24 15:16:13 PDT 1993 -- Tim Mann
-
-* We no longer display intermediate positions or intermediate comments
-while loading a game file with -timeDelay 0 or loading an opening to
-start up a -matchMode game.
-
-* Loading an empty game from an xboard save file now gives a status
-message "No moves in game" instead of an error popup saying "Game not
-found in file."
-
-* Added comment.awk to distribution.
-
-3.0, patchlevel 5 -- Tue Aug 17 16:45:54 PDT 1993 -- Tim Mann
-
-* Bug fix:  xboard would crash if it couldn't get all its colors; now
-it switches to monoMode instead.  Also, xboard was trying to convert
-color resources even when using a b/w display.  Reported by Larry
-Rogers.
-
-* Bug fix: Declared fields of TimeMark as signed so that we get signed
-instead of unsigned arithmetic.  SubtractTimeMarks was breaking on
-Alpha AXP (which has 64-bit longs) with old declarations.  Reported by
-Michel van der List.
-
-* Bug fixes:  Keyboard accelerators now work after EditComment window is
-popped down.  Iconize keyboard accelerator now works even if xboard
-was started with -iconic flag and later deiconized.
-
-* Bug fix:  The routine that tests whether a move is illegal because it
-would leave you in check was not handling e.p. captures properly.
-Reported by Patrick Surry.
-
-* Bug (?) fix:  Was adding time to clocks at time control even when
-loading a game file.  Actually it's not entirely clear how time
-controls should be dealt with when some moves are loaded from a file
-or clicked in with ForceMoves.  For now ForceMoves mode does add the
-time (because it can be used to change moves during a live game), but
-LoadGame mode does not.
-
-* Updated usage message.
-
-* Previous attempted fix to matchMode had broken TwoMachines mode and
-generally needed more work.  Also simplified command line interface to
-matchMode.
-
-3.0, patchlevel 4 -- Thu Aug  5 14:17:18 PDT 1993 -- Tim Mann
-
-* Thanks again to the beta testers listed for 3.0 patchlevel 3, and also
-Desnogues, Steve Cariglia, Niklas Engsner, Mark Silver, and Roger Rowe.
-
-* Reorganized man page, splitting OPTIONS into subsections.
-
-* matchMode was very broken; fixed.
-
-* Changed convention for turning off command line options from --opt
-to -xopt, to be less inconsistent with GNU standards.  Also changed
-the long command line options to take True/False arguments like
-resources; seems to make more sense this way.
-
-* Added AlwaysQueen option -- suppresses promotion dialog and always
-promotes to a queen if you move a pawn to the last rank.  Has no
-effect on gnuchess (or your ICS opponents!) -- they can still
-underpromote.
-
-* Subtracted an extra fudge term when determining how wide message and
-title widgets should be.  This fixes a problem some beta testers had.
-Wish I knew why it's needed.
-
-* Bugfix in parser; symptom was that you couldn't do LoadGame after
-observing a game on ICS.
-
-* Bugfix in Forward; didn't work after game ended while Pause was turned on.
-
-* Removed bogus execute bits on .h files.
-
-* Use REMOTE_SHELL and TELNET_PROGRAM definitions.
-
-* MachineWhite and MachineBlack now work from TwoMachines mode.
-
-* Popping down an error message with the [ok] button was not turning off
-the errorUp flag, so the next move would cause xboard to try to pop it
-down again, resulting in a wild memory reference and sometimes a crash.
-
-3.0, patchlevel 3 -- Tue Aug  3 17:40:27 1993  -- Tim Mann
-
-* Thanks to my beta testers: Patrick Surry, Takuya Kojima, Robert J. Luoma,
-Chris L.  Petroff, Richard K. Lloyd, Michel van der List, Craig Metz,
-Antoon Frehe, Simon Clift, Shelly, Eric Peterson, Christopher Mitchell,
-Martin Koch, Ed Hanway, Steve Booth, Udo, Ken Hobday, and Joseph Duhamel.
-
-* Improved error messages for trying to move the wrong color pieces or
-to move when it's not your turn.
-
-* Special code for monoMode on 1-bit displays now understands displays
-where 1=white and 0=black.
-
-* Declare getenv() if <stdlib.h> not included; avoids a compiler warning.
-
-* Documented borderXoffset and borderYoffset.
-
-* Added -titleInWindow option for use with X window managers that
-don't let us set the title in the window banner.
-
-* Fixed error message printing in WinBoard; system error messages no
-longer appear as numeric codes.
-
-* The error message popup is now non-modal; you don't have to press the
-[ok] button before you can do something else.  In addition, the popup is
-positioned so that it doesn't cover up the board (too much), and making a
-move or otherwise clicking on the board pops it down.  (Not implemented in
-WinBoard.)
-
-* You can now call your opponent's flag in ICS mode by clicking on his
-clock.
-
-* Fixed minor bugs in -flipView option and documented exactly how xboard
-decides which way to flip the view.
-
-3.0, patchlevel 2 -- Fri Jul 30 22:20:23 PDT 1993 -- Tim Mann
-
-* Added Autosave to Options menu.  Would be better to have Save
-Options dialog as in WinBoard, but this was quick to do and gives the
-most-needed functionality.
-
-* Changed "Reload Game" on menu to "Reload Same Game".
-
-3.0, patchlevel 1 -- Thu Jul  8 21:22:59 PDT 1993 -- Tim Mann
-
-* Sent a copy of patchlevel 1 to Patrick Surry to beta-test.
-
-* Added -cmail option that sets appData.cmailMode.  Currently a no-op.
-In the future this may set special modes for use by the cmail script
-for playing chess by email.
-
-* Added LoadNextGame, LoadPreviousGame, and ReloadGame to File menu.
-ReloadGame suggested by Patrick Surry.
-
-* Added -flipView command-line option.  Suggested by Patrick Surry.
-
-* Fixed bugs in parser.l:  (1) Pattern for "# xboard game file ..."
-needed to match to end of line.  (2) Start of a new file was not matching
-the ^ start-of-line character.  The fix for this is a kludge.
-
-* Made game counting code in LoadGame more robust, and made LoadGame
-able to detect the end of a saved partial game (by noticing the start
-of the next game) in game files created by XBoard itself.  We don't
-try to find the start of the next game that way in other kinds of game
-files, because the only way I can think of to do that is to look for
-another move #1, and that technique gets too many false hits.
-
-* Fixed recently introduced bug in LoadGame when game starts with a
-position diagram.
-
-3.0, patchlevel 0 -- Fri Jun 25 14:17:17 PDT 1993 -- Tim Mann
-
-* Changes in this patchlevel were too numerous to list.  Larger ones are
-listed below.
-
-* Added a popup dialog to enter and edit comments.  Inspired by some
-code from Patrick Surry.  Changed the normal read-only comment popup
-to the same style.
-
-* Added ICS init script feature from Karl Schwamb.
-
-* Added some ESIX fixes and OMIT_SOCKETS ifdef option, from Kayvan Sylvan.
-
-* Revamped code to allow use of flex instead of lex on parser.l.
-Using flex requires adding -DFLEX to defines in Imakefile.
-
-* Source code is split into front end (xboard.c), which knows about X
-and Unix, and back end (backend.c), which knows about chess, gnuchess,
-and the ICS.  There is also a front end for Windows NT.
-
-* Boolean command line options now use "-foo" to turn on and "--foo"
-to turn off instead of "-foo true" and "-foo false".  [Later -xfoo;
-see above.]
-
-* Added menu commands to control autoflag, bell, and coords options.
-
-* User interface has a new look: (1) Menu bar instead of array of
-buttons.  A few very commonly used features have small buttons in
-addition to being on the menus. (2) Large font for clock.  (3) Pop-up
-dialogs for errors.
-
-2.1, patchlevel 11 -- Sat Jun  5 00:01:01 PDT 1993 -- mann@src.dec.com
-
-* Added code to deal with "wild" games on ICS.  This includes allowing
-castling with the king on d1 or d8, which is allowed in wild(1) games
-if the king started there.  Notation is o-o to castle "short"---to
-whichever side the king is closer to---and o-o-o to castle "long."
-Right now wild castling is always allowed by xboard; we rely on ICS or
-gnuchess to reject it when we aren't really in wild mode.
-
-* memcpy call had arguments in wrong order.
-
-* Removed April Fool code
-
-2.1, patchlevel 10 -- Mon Feb 15 10:19:31 PST 1993 -- mann@src.dec.com
-
-* Avoid trying to select on a pipe when using System V.  Needed to
-copy some code from InitChessProgram() up into establish().
-
-* Bug fix in disambiguating pawn moves like "ed".
-
-* Fix to error handling in ReceiveFromProgram.
-
-* Bug fix: entering EditPosition mode with black to play highlighted
-White's clock instead of Black's.
-
-* Added telnetProgram resource in case "telnet" is not the name of the
-telnet program.
-
-2.1, patchlevel 9 -- Fri Jan 22 19:08:27 PST 1993 -- mann@src.dec.com
-
-* Entering Force Moves mode clears "flag has fallen" messages from display.
-
-* ICS host name can now be in numeric format; for example 128.2.232.4.
-
-* Bug fix: LegalityTest was failing to test whether a pawn move was
-illegal because the move would discover a check.
-
-* Handle ICS message "mann asserts a win over manntest, who disconnected."
-
-* Bug fix: A recent change to PromotionCallBack had broken
-underpromotion to a knight.
-
-* Bug fix: In EditPosition mode, dragging a piece onto a square border
-would make it vanish.  xboard wasn't distinguishing this case from
-dragging the piece off the board.  Thanks to Matthew Kidd.
-
-* Removed "static" declaration from yywrap for compatibility with IRIX
-version of lex.  Thanks to stiller@blaze.cs.jhu.edu.
-
-* Added substitutes for bzero, bcopy, and gethostname for Solaris
-SVR4.  Thanks to Michael Grant.
-
-* Bug fixes to queen move disambiguation.  Bugs showed up only when
-promotion resulted in more than one queen on the board.
-
-2.1, patchlevel 8 -- Fri Dec 11 17:54:18 PST 1992 -- mann@src.dec.com
-
-* parser bug fix: It now really works to leave off the piece a pawn is
-promoting to and let it default to queen.
-
-* When starting to observe or play an ICS game, don't draw board in
-initial position and then immediately redraw it in the current
-position.
-
-* Handle ICS messages when an "abuser" forfeits a game by
-disconnecting and when a game is aborted ("removed") by an
-administrator.
-
-* Bug fix: A user move when in LoadGame+Pause mode was resuming the
-game load instead of putting us in force mode.
-
-* It seems that crashes inside sscanf when xboard is compiled with gcc
-(as on IBM PS/2 AIX, mentioned below, and also on VAX Ultrix 3.1) are
-caused by an incompatibility between gcc and the sscanf implementation
-on these platforms.  A workaround is to specify -fwritable-strings to
-gcc (see the gcc documentation).  Added info on how to do this to the
-Imakefile.  Thanks to Tom McConnell for this information.
-
-* Clocks are allowed to go negative.  This is mostly for ICS
-compatibility, but it affects gnuchess mode too.  Also, we give the
-time bonus when a player hits the time control boundary even if his
-flag is already down.  This choice is a bit debatable, but it makes
-things look better when you are in TwoMachines mode and gnuchess's
-time management screws up causing it to exceed its time limit.
-
-* Implemented move legality checking code.  Moves made with the mouse
-or parsed from a file are checked for legality before being made.
-This is mostly in preparation for future extensions, such as
-human-human play.  For now it makes -noChessProgram mode more useful.
-
-* If the user takes back moves, we restore the clocks to the earlier
-settings.
-
-* We now handle the output of the ICS oldmoves command, including
-parsing the game end condition.
-
-* Added autoCallFlag mode.
-
-* Fixed glitches in the medium size outline king and rook bitmaps, and
-touched up the medium size solid king and outline queen.
-
-* bug fix: DisplayMove would not display backwardMostMove - 1.
-
-* Added CallFlag button and removed AcceptMatch.  CallFlag is more
-important with new ICS, and accepting the current match offer is easy
-with the new ICS command "accept" (can be abbreviated "ac").
-
-* LoadGame and LoadPosition display tail of file name (plus index
-number, if any) as title.
-
-* MachineWhite, MachineBlack, and TwoMachines now work properly from
-LoadGame and LoadGame+Pause mode.
-
-* Use o-o and o-o-o to castle on ICS, not 00 and 000.
-
-* Stripped out code for old ICS messages; new ICS is now installed.
-
-* Bug fix: don't offer autosave when paused during LoadGame.
-
-2.1, patchlevel 7 - Fri Dec 11 17:40:56 PST 1992 - mann@src.dec.com
-
-* Track change to "Illegal move" message in new ICS.
-
-2.1, patchlevel 6 -- Tue Dec  8 10:48:44 PST 1992 -- mann@src.dec.com
-
-* Kludged around bug in keeping comment popup where you put it by
-adding borderXoffset and borderYoffset resources that give the width
-of the borders added by the window manager.  Yucch.
-
-* Changed searchDepth kludge back to using "help" instead of "bd"; the
-latter didn't work because the output contains a line starting with
-"White", so we think gnuchess is telling us that White won.  Oops.
-
-* Removed some code that uses an X11R5 feature, XrmGetDatabase.
-Without this, the auto font sizing code is harder to make work, so to
-keep my sanity I had to change it to affect only the fonts that appear
-in the main window and the comment popup, not the other popups.  Maybe
-this is better anyway.
-
-* AcceptMatch button now works after a counterchallenge, too.
-
-* Added code for more variants of messages about games being adjourned
-or aborted.  These messages need to be unified in new version of ICS.
-
-* Added workaround for minor bug in ICS; game number on first board
-can be wrong.
-
-* Removed code to say "refresh n" instead of "refresh"; was broken and
-wasn't needed anyway.
-
-* Added missing casts for compilers that distinguish enums from ints
-and missing cast in connect call.
-
-* Added code to recognize "both sides are out of time" draw message
-proposed for next version of ICS.
-
-* Thanks to Danny Sleator and Joe Peterson for bug reports.
-
-2.1, patchlevel 5 -- Sun Dec  6 19:52:40 PST 1992 -- mann@src.dec.com
-
-* Removed gcc and CDEBUGFLAGS from Imakefile.
-
-* Corrected setting of mode to ForceMoves when game file ends or
-contains an AmbiguousMove or BadMove.  Previous bug was harmless.
-
-* Added AcceptMatch button and mention of 50-move rule for Draw button
-to man page.
-
-2.1, patchlevel 4 -- Sun Dec  6 02:55:42 PST 1992 -- mann@src.dec.com
-
-* Now handles revised messages from new version of ICS.  New ICS is
-not released yet, so this code might change further.  Next patchlevel
-will remove support for old ICS; both are there now.
-
-* Initial processing for a new game being watched or played now
-happens when we see the first board image.  Removes the need to parse
-some messages and unifies some code.
-
-2.1, patchlevel 3 -- Tue Dec  1 19:40:40 PST 1992 -- mann@src.dec.com
-
-* Handles ICS messages "Draw : neither player has mating
-material" and "Draw : White has no material, Black has no time."
-
-* Added AcceptMatch button for ICS mode.
-
-* Fixed bug in previous fix to yylexstr().
-
-* Fixed bugs in code for loading old position files that don't start
-with "#" and for handling case where user asked for nth position in
-file but there aren't that many.
-
-* Handles ICS message "* has restored your old game"
-
-* ResetProc always clears title line now.
-
-* Don't issue just "refresh" when watching a game; use game number.
-Upcoming new version of ICS may need this.
-
-* Added code to try to prevent user from watching and/or playing more
-than one game at a time.  There is a race condition inherent here; if
-we get more than one board from the game before our command to stop
-watching it takes effect, we'll think the user started it again.  Not
-clear how to fix this.
-
-* Redid ParseBoard8 to use sscanf.  Code is a good deal cleaner now.
-Also, we now parse out the game number too, though we don't make much
-use of it yet.
-
-* (Tried to put in a feature that recognizes the current game in a
-game file must have ended when we see the start of a new one, but had
-to disable it because we have too many false hits with the current
-parser, especially in gnuchess listing files.)
-
-* Moves read from game files or received from ICS are now translated
-into canonical algebraic form just like all other moves.  Minor nit:
-If you use Reset while playing or observing a game in ICS mode, the
-game history (including the current board position) is lost, so the
-next move of the current game can't be translated.
-
-* Default fonts now vary with board size, and are chosen by pixel size
-instead of point size (since piece bitmaps have a fixed pixel size).
-
-* Bug fix: An extra Forward was required to skip over time indications
-in game files.
-
-2.1 patchlevel 2 -- Fri Nov 27 23:30:00 PST 1992 -- mann@src.dec.com
-
-* If you move the comment popup, the next time it pops up it will come
-back where you put it.
-
-* Fixed yylexstr() so calls to it can be interspersed with calls to
-yylex().
-
-* Fixed bugs in Forward/Backward while in LoadGame mode.
-
-* Changed Save{Game,Position} functions to append instead of
-overwriting if file exists.  Changed Load{Game,Position} functions to
-deal with multiple games/positions per file.
-
-* Changed load{Game,Position}File resources to trigger automatic load
-on program startup.  Changed save{Game,Position}File resources to
-trigger automatic save after every completed game and on program exit.
-
-* Added autoSaveGames mode.
-
-* Fixed bug with PromoPiece in call to MakeAlg from MakeMove.
-
-* Many changes to get rid of picky compiler warnings and generally
-clean up the code.
-
-2.1 patchlevel 1 -- Fri Nov 27 02:45:00 PST 1992 -- mann@src.dec.com
-
-* A last minute change before patchlevel 0 went out broke
-ParseGameHistory().  Immediately fixed in patchlevel 1.
-
-Version 2.1, patchlevel 0 -- Fri Nov 27 02:00:00 PST 1992 -- mann@src.dec.com
-
-* Uses "time" command of gnuchess 4.0 and following to keep clocks in
-sync.  Still works with older versions without this command; we test
-whether the command is present the first time each chess program is
-started.
-
-* File name dialog pops up under the mouse cursor, so that it's got the
-keyboard focus if the window manager is using pointer focus.
-
-* Attempts to move the wrong color piece or an empty square are filtered
-out in xboard instead of being passed on to GNU Chess or the ICS.
-
-* The reason a game ended is now remembered even if you move backward
-and forward after it ends.  It is forgotten only if you make a move
-(which is as it should be---this is now a different game, which hasn't
-ended yet).  The message saying why the game ended no longer wipes out
-the last move.
-
-* Pause, Backward, Forward, ForceMoves, and EditPosition now work from
-TwoMachines mode.
-
-* Forward and Backward now change only the board display unless you
-are in ForceMoves mode.  Pause mode keeps new moves that are received
-from being displayed on your screen until you unpause (or use
-Forward).
-
-* Added option to ring the bell after opponents' moves.
-
-* Saved games that start from other than the standard initial position
-now begin with a postion diagram as in saved position files.  The
-loader is modified to understand such save files.
-
-* Improved error checking when trying to read from gnuchess.
-
-* Parser understands things that look like time indications, e.g., (0:12),
-instead of popping them up as comments.
-
-* Send "quit" to gnuchess before trying to kill it.  I needed this
-locally because sending a SIGTERM to rsh was not killing the remote
-program on some internal field test systems we have.
-
-* Merged in code from John Chanak to make xboard a front end to the
-Internet Chess Server, and added several improvements of my own.
-(These include parsing end of game messages, loading the current state
-and previous history of a game that's joined in progress via "watch"
-or "load", automatic switch from board style 1 to 8 when needed,
-removing irrelevant buttons and adding some new ones, adding the
-useTelnet and gateway resources, and miscellaneous code cleanup, bug
-fixes, and documentation.)  Many thanks to John for writing and
-contributing the initial version of this code.
-
-Fri Oct 30 20:16:40 PST 1992 (patchlevel 25) mann@src.dec.com
-
-* gnuchess now castles by sending us "o-o" or "o-o-o" (starting with a
-preliminary version of 4.0.pl60 that I have).  Added code to handle
-this.  The old format ("e1g1", etc.) still works too.
-
-* Added code to format moves in normal abbreviated algebraic notation
-(for example, e4, exd4, f8Q, Nf6, 0-0) instead of coordinate algebraic
-(for example, e2e4, e3d4, f7f8q, g1f6, e1g1).  Moves entered with the
-mouse or received from gnuchess are translated into this canonical
-format for display on the message line or in saved game files.  Moves
-read from game files are not translated, however; they are shown and
-saved just as they appear in the file.
-
-Mon Sep 14 13:19:01 PDT 1992 (patchlevel 24) mann@src.dec.com
-
-* It's not really correct to write an ep capture of a pawn on e5 as
-fxe5; this should be written as fxe6 because e6 is where the capturing
-pawn ends up.  Nevertheless, the parser now interprets fxe5 as the ep
-capture f5xe6 unless there is a pawn on f4, in which case it
-interprets fxe5 as f4xe5.  By design, the parser does not flag fxe5 as
-ambiguous if there are pawns on both f4 and f5; instead it prefers the
-more legitimate f4xe5 interpretation.
-
-* A move like fxe6 or fe6 is now interpreted as an e.p. capture of the
-pawn on e5 if there is one there and e6 is empty.
-
-* A move like fxe5 can no longer be interpreted as an e.p. capture if
-there isn't a pawn on e5 to be captured.  Previously this could happen
-erroneously if there were pawns on both f4 and f5, and the f4 pawn was
-capturing a piece on e5.
-
-* The parser no longer munges the move it is parsing; in the past, for
-instance, it would remove the "x" from a move like dxc5 before echoing
-it to the screen.
-
-* The parser now detects when a move is ambiguous and returns an
-error, instead of arbitrarily choosing one possibility as it used to.
-
-Mon Aug 10 18:40:47 PDT 1992 (patchlevel 23) mann@src.dec.com
-
-* Added code so parser can handle fully qualified algebraic, e.g.,
-Ng1-f3, N/g1-f3, Ng1f3, or even Pe2-e4.  The "P" and "/" work only for
-fully qualified moves, not generally.
-
-* Fixed parser bugs in handling moves with rank or file disambiguator,
-e.g. N1f3 or Ngf3.
-
-Mon Jul  6 17:55:32 PDT 1992 (patchlevel 22) mann@src.dec.com
-
-* AIXV3 patch from Tom McConnell; thanks!
-
-* After hitting the Backward button we see the last move made instead of
-the word "Pausing" displayed.
-
-* Fixed a couple of problems compiling on IRIX; thanks to Michel Arsenault
-and Alan Walsh for bug reports and help with fixes.
-
-* Added optional display of algebraic notation coordinates along left and
-bottom edges of board.  This was inspired by some code from Jean-Christophe
-Engel; thanks!
-
-* Swapped EditPosition and Pause buttons to reduce danger of losing the
-game in progress by hitting EditPosition when you wanted Backward.  Thanks
-to Ove Lundberg for complaining (though it bugged me too).
-
-* Despite one complaint, I kept the feature of changing both clocks when black
-makes time control, rather than changing each individually when the player
-involved makes it.  This is to avoid having it look like White is way ahead on
-time while Black is thinking about the last move of the time control period
-(i.e., when White has made time control but Black hasn't yet).
-
-* Corrected clocks to work as in real tournaments.  Time is *added* when you
-reach time control; previously the clocks were simply set to the length of the
-new time period.  Also, when a player's flag falls, he still does not receive a
-new time allotment at the next time control, but his opponent does still
-receive more time if *his* flag has not fallen; previously, time controls were
-ignored for both players if either flag fell.  I forget who reported this bug.
-
-* Added a small ESIX patch from Kayvan Sylvan.
-
-Mon Jun 22 13:24:38 PDT 1992 (patchlevel 21)
-
-* Added some SVR4 support code from Ronald Cole.  It's Greek to me.
-
-* Note:  Stephen Meatheringham reports a bug causing xboard to crash with an
-error from the X server when run on a Sun Sparcstation IPX with Solaris 1.0.1
-and OpenWindows 3.0.  This bug has not been tracked down yet.
-
-* Fixed a problem with ATTENTION code.  On some operating systems, you have to
-be even more cautious about when you send a SIGINT to gnuchess, because the
-signal handler gets deinstalled each time it is used, and gnuchess does not
-reinstall it immediately.  In particular, if you send a SIGINT and make an
-illegal move or ask for a hint, gnuchess does not reinstall the handler until
-*after* you make your next move, so you had better not send a SIGINT before
-it.  I put a workaround for this case into xboard; I hope there are no more.
-
-* The ATTENTION code is needed when compiling for the ESIX operating system,
-because ESIX has a bug in the FIONREAD ioctl, so the code in gnuchess that
-lets you interrupt its thinking on your time just by typing in your move does
-not work.  Perhaps gnuchess will have a workaround for this eventually.
-
-* Fixed yet another bug in using XtGetValues; code to inhibit shell resizing
-was leaving a null pointer as the place to store the current sizes.
-
-* Man page fixes: corrected -sl to -sd, updated LIMITATIONS.
-
-* Added include of <sys/time.h> conditional on HAS_GETTIMEOFDAY.  I hope this
-works for all systems; on mine, <time.h> and <sys/time.h> are the same file,
-but with an #ifndef that makes it harmless to include both.
-
-* Thanks for reports from Mike Pearlman, Stephen Meatheringham, Kayvan Sylvan,
-d87-mal@nada.kth.se, Urban Koistinen, and Ronald Cole.
-
-Mon Jun  8 11:39:18 PDT 1992 (patchlevel 20)
-
-* Documented default value of initString and explained what it means.  This
-paragraph also serves to inform the user that xboard by default will tell
-gnuchess to think on his time, something one user apparently didn't understand.
-
-* Redid -searchDepth (formerly -searchLevel) and -searchTime code.  They both
-work correctly with gnuchess 3.1 now.  The -searchDepth option also works
-correctly with gnuchess 4.0.  The -searchTime option does not work with
-gnuchess 4.0.pl50 or earlier because those gnuchess versions do not have a
-working searchTime feature.  Instead of having xboard do a half-baked emulation
-of this feature by using a 1-move time control, I will be submitting a patch to
-the gnuchess folks to restore the feature as in 3.1.
-
-* Improved clock code.  It now keeps accurate track of fractional seconds of
-clock running time, if your system has gettimeofday(); if not, it is generous
-about them---if a clock has been going for n.m seconds when it is stopped, only
-n seconds are charged.  Previously, xboard would charge one second immediately
-when a clock was started, so if n.m had elapsed when it was stopped, n+1 would
-be charged.  This should stop xboard from thinking gnuchess has let its flag
-fall on the last move of a time control, as it often did before.  I also
-improved the comments and condensed the code a little.  I hope there are no
-systems that have X11 and don't have gettimeofday(), but if there are, I'd like
-to know what to replace it with.
-
-* "Flag dropped" messages now show up on the top line, beside the clocks, so
-that they don't obscure more interesting messages on the second line.
-
-* Fixed confusion of NULL and '\000'.
-
-* Include time.h to get ctime() declaration.
-
-* Fix to "parser bug" messages in parser.l.
-
-* Changed code to work with old-fashioned tolower() macro that requires its
-argument to be an uppercase letter.
-
-* Minor fix to some usage error messages; was reversing program name and
-erroneous argument value.
-
-* Thanks to Mitch Wright, Ranier Orth, and Henrik Schmiediche for bug reports.
-
-Fri Jun  5 13:06:08 PDT 1992 (patchlevel 19)
-
-* Note: xboard does not seem to work when compiled with gcc 1.40 on a
-PS/2 running AIX.  It crashes at the sscanf in line 768 of xboard.c.
-You can work around the problem by specifying the -timeControl option
-on the command line instead of defaulting it.  This does not seem to
-be a bug in xboard itself; it runs okay on PS/2 AIX when compiled with
-MetaWare High C.  [But see 2.1.pl8 above.]
-
-* Removed bogus files from distribution.
-
-* Changed variable name that conflicted with SVR4 ttyname function.
-
-* Thanks to Christoph Strozyk for another bug report, and to several
-of the folks mentioned under patchlevel 18 for testing it.
-
-Wed Jun  3 17:50:37 PDT 1992 (patchlevel 18) mann@src.dec.com
-
-* Added an include of sys/fcntl.h to pick up the definition of O_RDWR for
-System V users.
-
-* Fixed a bug in CatchPipeSignal; was testing the wrong variable to determine
-which chess program got the signal.
-
-* Removed the declaration of strrchr, which was causing problems for some
-people, and added an include of <string.h> or <strings.h> instead.
-
-* Fixed a bunch of type errors uncovered by compilers that check more carefully
-than the one I was using.  I just patched many of them with casts---typically
-cases where a function didn't take the same number and type of arguments as the
-X header file prototype said it should---because I didn't see any other way to
-fix them.  The versions of the X header files that I have don't actually have
-full prototypes for these function types; they declare only the return type and
-just give the argument types as comments.
-
-* InitChessProgram returns immediately if chess program died while we were
-waiting for it to say "Chess".  I think this fixes a bug that could make xboard
-crash or go into an infinite loop printing "Warning: Select failed; error code
-9" if gnuchess crashed there.
-
-* Removed code that tries to put the file descriptor used to read messages from
-gnuchess into nonblocking mode.  I don't see how this kludge could ever have
-fixed the problem it was intended to (see below), and it seemed to be causing
-a race condition when we were waiting for the initial message from gnuchess
-after it started up.
-
-* Thanks to Richard K. Lloyd, Konstantinos Konstantinides, Mark
-Seiden, Erik Schoenfelder, Andreas Stolcke, Rainer Orth, Henry Thomas,
-and Kris Van Hees for bug reports and help with fixes.
-
-Sun May 31 08:00:00 PDT 1992 (patchlevel 17) Bart Massey bart@cs.uoregon.edu
-
-*  'xboard' suffered from a couple of serious bugs.  An initial
-   size needed to be given to the message label to avoid a race
-   condition (!) so I gave it some text (otherwise occasionally
-   xboard would fail because the message widget was 0 width under
-   MIT X11R4).  The sizes needed to be Dimension, not int, because
-   they were written in by Xt -- on my big-endian box Dimension
-   is short, causing chaos.  Also, I hacked a declaration in for
-   strrchr() to shut the compiler up -- this is arguably a kludge,
-   but I couldn't think of anything better; maybe you can.
-
-Fri May 22 13:40:50 PDT 1992 (patchlevel 16)
-
-* First real (non-beta) release of version 2.0.
-
-* Added GNU copyleft notices covering version 2.0 enhancements.
-
-Thu May 21 12:30:09 PDT 1992 (patchlevel 15)
-
-* Removed -g from Imakefile.
-
-* Added casts in parser.l to prevent warning messages from some C compilers.
-
-* Bugfix: code to exit if chess program couldn't be started had bug in error
-message printing.
-
-Tue May 19 11:58:06 PDT 1992 (patchlevel 14)
-
-* Fixes one small bug: If LoadGame does not find a game in the file, it resets
-xboard to BeginningOfGame mode (as if the Reset button was pressed), instead of
-leaving it in LoadGame mode.
-
-Mon Apr 13 18:32:27 PDT 1992 (patchlevel 13)
-
-* Improved error handling when gnuchessx crashes.  Now displays a message and
-enters EndOfGame state without exiting.  This should help with diagnosing
-gnuchessx problems, since the position and move history are not lost.
-
-* Debugged man page.
-
-Version 2.0 -- Thu Apr  2 16:04:54 PST 1992 (patchlevel 12)
-
-* Added small 40x40 pixel pieces; board size now specified as small, medium, or
-large.
-
-* Improved man page.
-
-* Saved position files now say "white to play" if it's white's move.
-
-* SavePosition while in EditPosition mode now gets side to play right.
-
-* Made "Pawn" the default on edit position menus.
-
-* Removed "To play" from edit position menus, since it's redundant.  Left
-support code in so it can be restored if someone wants it.
-
-* Tightened parser's definition of a move number to help further with skipping
-over stuff before the first move.
-
-* Put back feature of skipping over stuff in game files before a start of game
-marker.  This helps when loading electronic mail messages that have things
-like "00" in the header (looks like castling), or that talk about moves in
-running text before the actual game score.  Tradeoff is that we can't load
-games that don't either have move numbers or say "gnuchess game" just before
-the moves.
-
-* Changed version number to 2.0 because others have used "1.3" for patched
-versions of 1.2.  Display version number and patchlevel at startup.
-
-Thu Apr  2 15:30:22 PST 1992 (patchlevel 11)
-
-* Bugfix:  Match started with TwoMachines button now handles the case where
-user loaded/edited a position *and* forced some moves.
-
-* added error message feedback to many cases where the user's button press is
-rejected because it isn't allowed in the current mode.
-
-* added -noChessProgram option to allow use as a passive chessboard without
-gnuchess, replacing old buggy scheme that tried to do this automatically when
-gnuchess was not found on the search path.
-
-* parser accepts "=" in front of promotion piece
-
-* parser accepts ":" notation for captures
-
-* Removed SwitchSides button to make room for EditPosition.  Left code in
-place, ifdef'ed out.
-
-* Added EditPosition mode.
-
-* Reformatted xboard.c to eliminate long lines.
-
-* Promotion popup now appears near rank to which pawn is moving.
-
-* UI improvement: Button representing current program mode is kept highlighted.
-
-* Bug fix:  Hint button is now disabled when machine is on move.
-
-Sat Mar 21 14:57:37 PST 1992 (patchlevel 10)
-
-* TwoMachines now works from MachineWhite or MachineBlack mode.
-
-* ForceMoves and Backward/Forward now work at the end of a game started by
-the TwoMachines button.
-
-* Sends o-o or o-o-o to gnuchess instead of O-O or O-O-O.
-
-* Bug fix:  SwitchSides button is now disabled when machine is on move.
-
-* Added -searchLevel option and corrected handling of -searchTime to reflect
-the way gnuchess really handles command line options instead of what the
-documentation used to say.  Allowed optional ":seconds" on times.
-
-Tue Mar 17 21:00:35 PST 1992 (patchlevel 9)
-
-* Removed non-working code that tried to recover when a remote chess program
-could not be started; now exits with a message instead.
-
-* Now waits for chess program to print its first message (normally "Chess")
-before sending it any commands.
-
-* Matches between two machines can now start from a black-to-play position or
-black-to-play opening.
-
-* Bug fix: The program would sometimes lose track of the board position after
-the end of the game, drawing a board full of white pawns next time it got an X
-redraw request.  Now fixed.
-
-* Cleaned up handling of illegal moves in game files.  Now we just stop reading
-and go into ForceMoves mode.
-
-* Saved games against gnuchess indicate who won (restored and debugged 1.2
-feature).
-
-* Setting -searchTime turns off -clockMode.
-
-* My trick for setting up a black-to-play position broke in the transition from
-gnuchess 3.1+ to 4.0.  Installed a different trick that works with both.
-
-* Bug fix: Was clobbering memory by mallocing one byte too few for the file
-name in SetupPositionFromFileProc.  This usually resulted in a crash on the
-second attempt to load a position from a file.
-
-Mon Mar 16 16:49:00 PST 1992 (patchlevel 8)
-
-* Game and position files are saved in CHESSDIR as well as loaded from there.
-We actually chdir there, so gnuchess listing files also wind up there.
-
-* Underpromotion moves from gnuchess really work now.
-
-Sat Mar 14 14:55:24 PST 1992 (patchlevel 7)
-
-* Cleaned up lots of bugs and kruft in parser.l.  It's a wonder the old version
-worked at all.  Improved rejection of random text interspersed with the moves.
-
-* Relabeled buttons to reduce confusion (Play From File --> Load Game;
-Setup From File --> Load Position).
-
-* Bug fix:  Doesn't exit at the end of a game that was started by pressing
-the Two Machines button.
-
-* Bug fix:  Doesn't get confused if you hit Machine Black (White) while
-the machine is already playing black (white) and is on move.
-
-* Prints "White to play" or "Black to play" after loading a position file.
-
-* Bug fix:  No longer hangs if no start-of-game is found in a game file.
-
-* More permissive about game file format.  The first line is not assumed
-to be a header comment unless it starts with "#".  We don't insist on
-seeing a "1." before the first move.
-
-* Added pop-up dialog to allow underpromotion.  Moving a pawn to the last rank
-pops up a dialog to let you select what piece to promote to.  Also added code
-to handle underpromotion moves from gnuchess or from a game file correctly.
-
-* Added code to send SIGINT to gnuchess before trying to move, if gnuchess
-might be busy thinking on our time.  The code is ifdef'ed out because it's
-not necessary; only beta-test versions of gnuchess 4.0 at patchlevel 19 or
-below require it.
-
-Mon Feb 24 20:10:22 PST 1992
-
-* Merged fixes received from Stuart Cracraft and Mike McGann, to iconic mode
-and to ShutdownChessPrograms.  (They both sent the same fixes.)  I did not
-install the change that removed "easy" from the initialization string, so
-xboard will still try to run gnuchessx in "hard" mode (thinking on opponent's
-time) by sending this command.
-
-Version 1.3 -- Thu Dec 19 18:19:00 PST 1991  mann@src.dec.com (Tim Mann)
-
-* I've fixed a slew of bugs in this version of xboard:
-
-* You can now back up from the end of a game, even if gnuchess was playing
-against you.  Since gnuchess exits upon mate or draw (when it's not in force
-mode), this feature works by starting up a new copy of gnuchess and feeding it
-the saved starting position and moves.  Drawback: the new gnuchess starts with
-clocks at the beginning of a fresh time control.
-
-* Note: the "force" command to gnuchess is a toggle.  I fixed a couple of
-places in xboard where "force" was being issued when gnuchess was already in
-force mode, which resulted in chaos.  I don't know if they were in 1.2 or if I
-added them myself in the course of putting in new features.
-
-* ForceMoves button is now legal in PlayFromFile mode.  It closes the game file
-and lets you force moves (or go Backward) from whatever position you've
-reached.
-
-* The parser now recognizes "white resigns" and "black resigns" (in any
-combination of upper and lower case, with or without the closing "s").  These
-used to be misinterpreted as meaning "white wins" or "black wins" respectively!
-Added "1 - 0" and "0 - 1" as equivalents for "1-0" and "0-1".
-
-* I removed the parser feature of considering "!" as a comment delimiter.
-"!" is so common as an annotation in game scores that this feature seems like a
-very bad idea.
-
-* Added a wait() after each successful call to kill() to avoid leaving zombie
-processes around.
-
-* Removed the feature of putting an indication of how the game ended into the
-internal move list when playing from a file.  The only benefit of this was that
-it would get written back out if you saved the game at that point.  This
-feature doesn't seem too useful, since you are unlikely to save a game you've
-read in without making any changes, and it caused a lot of problems in the code
-and user interface.  The end condition is still displayed as a message when
-it's first read in from the file.  End conditions when playing against gnuchess
-are still saved, too.
-
-* programName is now the last file name component of argv[0], not all of it.
-
-* xboard.c got three compiler warnings due to arguments that didn't match the
-prototypes on X toolkit functions.  I got rid of them by adding some casts, and
-adding extra unused arguments to the ReceiveFromProgram function.
-
-* As I received it, the distribution had an extra period glued on the front
-of every line that started with a period.  This broke the manpage in an
-obvious way.  It also broke parser.l in a nonobvious way that stopped
-PlayFromFile from working.
-
-* Fixed one or two bugs where the clock was started when it shouldn't have
-been.  I think one example was if you tried an illegal move in ForceMoves mode.
-
-* Now starts the machine's clock if you hit MachineWhite when white is on move
-or MachineBlack when black is on move.
-
-* Now updates the to-move indicator (highlight on clock display) when you use
-Forward/Backward or ForceMoves.
-
-* gnuchess 3.1+ has a bug that makes it try to think on its opponent's time
-even when in force mode; this causes problems with xboard's SetupFromFile
-command because gnuchess's saved hint move is garbage after the new position is
-loaded, so gnuchess prints out an error message when it tries to think about
-what it would do if the user made this move.  Here is a patch for gnuchess
-3.1+:
-
-*** nondsp.c~   Mon Dec  2 12:37:18 1991
-*-- nondsp.c    Thu Dec 19 15:36:06 1991
-***************
-*** 1223,1229 ****
-    ok = flag.quit = false;
-    player = opponent;
-    ft = 0;
-!   if (hint > 0 && !flag.easy && Book == NULL)
-      {
-        fflush (stdout);
-        time0 = time ((long *) 0);
-*-- 1223,1229 ----
-    ok = flag.quit = false;
-    player = opponent;
-    ft = 0;
-!   if (hint > 0 && !flag.easy && Book == NULL && !flag.force)
-      {
-        fflush (stdout);
-        time0 = time ((long *) 0);
-
-* SavePosition/SetupFromFile now handle black-to-play positions.  If it's
-black's move in a saved position, the line "black to play" is printed
-immediately after the board display.  Upon loading a position, xboard
-looks for "black" at the beginning of this line to determine whether it's
-black's move.
-
-* SetupFromFile now leaves you (effectively) in ForceMoves mode.  This
-eliminates some cases where the program would get into an inconsistent state,
-and hopefully is more intuitive for the user, too.
-
-* PlayFromFile now leaves xboard in ForceMoves mode after playing through all
-the moves in the file.  You can use Backward/Forward, make moves, get gnuchess
-to join the game with MachineWhite or MachineBlack, etc.  The game file can end
-with either white or black to play.
-
-* Backward/Forward now seem to work in all cases.  Previously using these
-buttons during a game against the machine would get xboard out of sync with
-gnuchess's idea of what was going on, resulting in chaos.  Now using these
-buttons puts xboard in ForceMoves mode; you can bring gnuchess back into the
-game using the MachineWhite or MachineBlack buttons.
-
-Thu Jun 27 15:06:25 PDT 1991
-
-  * Remove comment popups during a reset.
-
-  * Bug in my forward move fix.  Didn't work for playgamefile mode.
-
-Thu Jun 20 15:04:06 PDT 1991
-
-  * Can't do a backward move when it isn't your turn because gnuchess
-    gets confused.  Similar bug for forward move.  Do a bunch of moves,
-    back up move and go forward.  These get filtered out now.
-
-  * Put easy back into the initString.  This DISABLES easy mode which by
-    default is ON.
-
-  * New-line wasn't always being added to forward move strings sent to gnuchess.
-
-  * Parsed comments as [ ..............text follows ] into d7d5
-
-  * Long game file comments cause core dumps on HP systems.
-
-  * Multiple uses of the get positition file button got confused
-    on the second click.
-
-  Minor fixes to the 1.2 release
-
-Version 1.2 -- Tue Jun 11 17:14:12 PDT 1991
-
-  * For version 1.2, Jeff Kenton, Richard LLoyd, David Jensen, Martin D.,
-    Bill Schmidt, Scott Hemphill, Paul Vaughan and Bill Shauck all found
-    a lot of bugs that we put into xboard just to see if they were paying
-    attention.  They were.
-
-  * Changed the protocol that xboard uses to work with the new version of
-    gnuchessr.
-
-  * There was an off by one error with the clock resetting code.  Also,
-    the clock display highliting was wrong.  Thanks to Bill Shauck for
-    pointing these out.
-
-  * enumerations are not really integers on some C compilers.  I added casting.
-    The new version of gnuchess expects the "go" command for two machine
-    and machine plays white cases.  The whiteString resource is for
-    compatibility with previous gnuchess versions which get confused by go.
-    Thanks to Martin D. for catching these.
-
-  * Fixed a bug where the checkmate message wasn't being parsed and xboard
-    kept playing.  Also, the message was added to game file if saved.
-    Thanks to Scott Hemhill for pointing this out.
-
-  * Fixed a bug where saving a long game, resetting and saving a short game
-    resulted in appending the end of the long game to the short one.
-    If a game is just being played out and there is no reason for gnuchessr
-    to be used, ignore pipe signals.  This allows people to use xboard
-    as a chess board without need for gnuchess.  Also, trivially bad moves
-    such as e2e2 are not passed on to gnuchessr but instead ignored out of
-    hand.  This allows people using xboard as a chessboard with gnuchessr
-    to pick a piece up, think and put it back down without making a move.
-    Thanks to Jeff Kenton for pointing these out.
-
-  * Added the CHESSDIR environment variable.  Game and position files are
-    found in this directory.  If this variable is not declared, then the
-    current directory is used.  File names starting with / are treated
-    specially.
-
-  * The bitmap file names were changed so that none exceeded 14 characters.
-    This is necessary for R5.
-
-        fcntl(from_prog[0], F_SETFL, O_NDELAY);
-
-    The xboard fix was to set non-blocking i/o on the read pipe for gnuchessr
-
-        printz ("Illegal move (no matching move generated)");
-
-  * fixed a problem with the new version of gnuchessr where xboard wasn't
-    getting gnuchessr error messages for illegal moves.  The problem seems
-    to be fixed *without* any gnuchess changes but this is likely to be
-    highly system dependant.  There should be a new line on line 246 of nondsp.c
-
-  * -iconic doesn't work at all now.  The Iconify() does work.  This was
-    a tradeoff and it is really an Xt bug.
-
-  * Fixed a compiler warning for gcc and an error for the IBM RT compilers.
-    This is the VOID_PROC macro in xboard.h.  Thanks to David Jensen for this.
-
-  * If the DisplayWidth or DisplayHeight is less than 800, use small size mode.
-    Also the size of the name widget was reduced from 500 pixels to 400 pixels
-    because in small size mode there was a gap on the right.
-    Changed the default font from fixed to helvetica_oblique14 to:
-        **-helvetica-bold-r-normal--14-*-*-*-*-*-*-*
-    helvetica_oblique14 is a font alias not on all R4 systems.
-    Curiously enough, the 17 point is not available on 75dpi systems
-    and the 18 point font is not available on 100dpi systems.
-    Thanks to Richard K. Lloyd for pointing these out.
-
-  * Minor hacks to work with R5 alpha.  Had to add an event handler to the
-    boardWidget to get translations to work.  This may go away with the real R5.
-    Added <Message>WM_PROTOCOLS: QuitProc() for R5 ICCCM compatibility.
-
-  * If the first character of the file is not `1' then the first line
-    of a game or position file is displayed as the name in a label widget.
-
-  * Added a PopUp dialog for getting file names.
-
-  * Modified the code to use the R4 routines rather than R3 compatibility.
-
-  * Changed the forwards/backwards/readgamefile code to allow a play to step
-    back and forth in a game.  If he steps all the way to the beginning
-    he has to restart the game.  If he gets into a mated position, same problem.
-
-  * Moved the man page from xboard.1 to xboard.man.  This makes imake man page
-    installs work correctly.  Thanks to Richard K. Lloyd for pointing this out.
-
-  * Corrected the queening code.  XBoard was sending the wrong syntax.
-    It was sending for example h8(Q) when it should have been sending h8q.
-    Thanks to Paul Vaughan and Mike McGann for pointing this out.
-
-  * Added a lex parser for algebraic games.  It should be easy to use the parser
-    for other interfaces such as the Microsoft Windows version.
-    It parses comments of the form [anything] and ! to the end of a line.
-
-Version 1.1 -- Mon Jan  7 14:46:03 PST 1991
-
-  * Roger Dubar, Konstantinos Konstantinides, Wolfgang S. Rupprecht,
-    Paul Scowen, Mvh Smidt and Kayvan Sylvan all helped immensely during
-    beta-testing.
-
-  * older non-ANSI versions of Sun compilers complain vociferously.
-
-  * the remoteShell resource was added for HP-UX systems
-    and other systems where the remoteShell isn't rsh.
-
-  * -iconic doesn't work properly.  If XBoard is opened iconic then
-    iconifying it later with a keystroke doesn't work.  I think
-    this is an Xt bug.
-
-  * For systems with smaller screens, XBoard can use smaller pieces,
-    and a smaller board.  -bigSizeMode False uses a smaller set of pieces.
-    These are scaled versions of the large pieces.  They look ok but could
-    be improved.
-
-  * getlogin() does not work in all cases.
-    It was replaced by getpwuid(getuid())->pw_name).
-
-  * Warning messages get displayed in the message box.
-
-  * Any button restarts a paused game.
-
-  * Kayvan Sylvan contributed a patch for ESIX.
-    It seems that select() on pipes is broken on his system.  We declined
-    to incorporate his patch though, because it was a work-around for
-    something that was broken on one system, and selfishly, that system
-    was not my own.  Nevertheless, it is likely that other System V users
-    on PC's may need to use this patch and it is is included as the file
-    ESIX.patch.  To use it, type
-
-        patch xboard.c ESIX.patch
-
-  * Fixed a bug where hint didn't work.  The local version of gnuchessr
-    had been hacked.  The fix was to clone stderr and stdout for gnuchessr.
-
-  * Fixed a bug where a player could play after a game had been finished.
-
-  * The bitmaps have been pushed into the bitmaps directory.
-
-  * Substantially rewrote and simplified the Two Machine code.
-
-  * Added StrStr() because many systems don't have this ANSI function.
-
-  * Added keyboard equivalents.  Added an iconify keystroke, C or c.
-
-  * Works with gcc now.  gcc complained about casting float constants
-    as XtPointers.
-
-  * Detect if the visual doesn't support color.  If so, run in monoMode.
-    An alternative would be to detect grayscale visual and use a collection
-    of gray user interface colors.
-
-        XBoard.clockMode:    False
-
-  * For people who don't like or use chess clocks a clockMode switch
-    has been added.  It is on by default.  It can be turned off in the
-    .Xdefaults file with
-
-  * Added a declaration, xtVersion, which will quickly break on R3 Intrinsics.
-
-  * Hal Peterson contributed a new Imakefile.
-
-  * Rewrote DisplayClocks().
-
-  * Rewrote TwoMachinesPlay mode.
-
-  * Konstantinos Konstantinides added the -searchTime option.
-
-  * Substantially rewrote and simplified the clock code.  If a game was paused
-    and then resumed, the clocks were out of sync.
-
-  * Fixed a bug in HandleUserMove() where the user could make a move while the
-    machine was thinking.  The fix detects and ignores these moves.  onMove
-    was not being used and was removed.
diff --git a/DIFFSTAT b/DIFFSTAT
deleted file mode 100644 (file)
index 7b55b44..0000000
--- a/DIFFSTAT
+++ /dev/null
@@ -1,4864 +0,0 @@
-** Version 4.8.0 **
-
-(git diff -b --stat --summary -M v4.7.3 HEAD)
-
- .gitignore                                         |   20 +
- ABOUT-NLS                                          | 1282 --------
- ChangeLog                                          | 1623 +++++++++++
- DIFFSTAT                                           |  439 +++
- Makefile.am                                        |  172 +-
- NEWS                                               |   89 +
- SHORTLOG                                           |  365 +++
- args.h                                             |  108 +-
- autogen.sh                                         |    3 +-
- backend.c                                          | 1314 +++++++--
- backend.h                                          |   26 +-
- board.c                                            |   15 +-
- book.c                                             |   12 +
- common.h                                           |   66 +-
- conf/chu                                           |   42 +
- conf/ics                                           |   10 +
- conf/judkins                                       |   19 +
- conf/judkins.fen                                   |    2 +
- conf/mini                                          |   24 +
- conf/mini.fen                                      |    2 +
- conf/sho                                           |   28 +
- conf/sho.fen                                       |    2 +
- conf/shogi                                         |   41 +
- conf/xiangqi                                       |   30 +
- conf/xq                                            |   36 +
- config.rpath                                       |  672 -----
- configure.ac                                       |  173 +-
- dialogs.c                                          |  713 ++++-
- dialogs.h                                          |   17 +-
- draw.c                                             |  136 +-
- draw.h                                             |    3 +-
- engine-intf.html                                   |  182 +-
- engineoutput.c                                     |  148 +-
- engineoutput.h                                     |    1 +
- evalgraph.c                                        |   15 +-
- evalgraph.h                                        |    3 +-
- frontend.h                                         |    7 +-
- gamelist.c                                         |   10 +-
- gtk/xboard.c                                       |  341 ++-
- gtk/xboard.h                                       |   39 +-
- gtk/xengineoutput.c                                |   21 +-
- gtk/xoptions.c                                     |  179 +-
- m4/gettext.m4                                      |  383 ---
- m4/iconv.m4                                        |  214 --
- m4/lib-ld.m4                                       |  110 -
- m4/lib-link.m4                                     |  774 -----
- m4/lib-prefix.m4                                   |  224 --
- m4/nls.m4                                          |   32 -
- m4/po.m4                                           |  449 ---
- m4/progtest.m4                                     |   92 -
- menus.c                                            |  152 +-
- menus.h                                            |    3 +
- moves.c                                            | 1028 +++++--
- moves.h                                            |   12 +-
- nengineoutput.c                                    |   14 +-
- nevalgraph.c                                       |   17 +-
- ngamelist.c                                        |   13 +-
- nhistory.c                                         |    2 +-
- osxapp/Info.plist.in                               |  188 ++
- osxapp/OSX-theme/gtk-2.0/assets/handle.png         |  Bin 0 -> 186 bytes
- .../gtk-2.0/assets/l-checkbox-checked-18.png       |  Bin 0 -> 814 bytes
- .../assets/l-checkbox-checked-insensitive-18.png   |  Bin 0 -> 639 bytes
- .../gtk-2.0/assets/l-checkbox-unchecked-18.png     |  Bin 0 -> 413 bytes
- .../assets/l-checkbox-unchecked-insensitive-18.png |  Bin 0 -> 356 bytes
- .../gtk-2.0/assets/l-radio-selected-18.png         |  Bin 0 -> 890 bytes
- .../assets/l-radio-selected-insensitive-18.png     |  Bin 0 -> 643 bytes
- .../gtk-2.0/assets/l-radio-unselected-18.png       |  Bin 0 -> 606 bytes
- .../assets/l-radio-unselected-insensitive-18.png   |  Bin 0 -> 546 bytes
- .../gtk-2.0/assets/notebook-gap-bottom.png         |  Bin 0 -> 159 bytes
- .../OSX-theme/gtk-2.0/assets/notebook-gap-left.png |  Bin 0 -> 85 bytes
- .../gtk-2.0/assets/notebook-gap-right.png          |  Bin 0 -> 84 bytes
- .../OSX-theme/gtk-2.0/assets/notebook-gap-top.png  |  Bin 0 -> 158 bytes
- osxapp/OSX-theme/gtk-2.0/assets/notebook.png       |  Bin 0 -> 227 bytes
- osxapp/OSX-theme/gtk-2.0/assets/null.png           |  Bin 0 -> 1164 bytes
- .../OSX-theme/gtk-2.0/assets/scroll-background.png |  Bin 0 -> 155 bytes
- .../OSX-theme/gtk-2.0/assets/slider-horizontal.png |  Bin 0 -> 828 bytes
- .../OSX-theme/gtk-2.0/assets/tab-bottom-active.png |  Bin 0 -> 924 bytes
- osxapp/OSX-theme/gtk-2.0/assets/tab-bottom.png     |  Bin 0 -> 888 bytes
- .../OSX-theme/gtk-2.0/assets/tab-left-active.png   |  Bin 0 -> 451 bytes
- osxapp/OSX-theme/gtk-2.0/assets/tab-left.png       |  Bin 0 -> 763 bytes
- .../OSX-theme/gtk-2.0/assets/tab-right-active.png  |  Bin 0 -> 453 bytes
- osxapp/OSX-theme/gtk-2.0/assets/tab-right.png      |  Bin 0 -> 787 bytes
- osxapp/OSX-theme/gtk-2.0/assets/tab-top-active.png |  Bin 0 -> 920 bytes
- osxapp/OSX-theme/gtk-2.0/assets/tab-top.png        |  Bin 0 -> 897 bytes
- osxapp/OSX-theme/gtk-2.0/assets/toolbar.png        |  Bin 0 -> 214 bytes
- osxapp/OSX-theme/gtk-2.0/gtkrc                     |  798 +++++
- osxapp/PkgInfo                                     |    1 +
- osxapp/XBoard.gtklauncher                          |   74 +
- osxapp/default/eo_Analyzing.png                    |  Bin 0 -> 462 bytes
- osxapp/default/eo_Black.png                        |  Bin 0 -> 292 bytes
- osxapp/default/eo_Clear.png                        |  Bin 0 -> 159 bytes
- osxapp/default/eo_Ponder.png                       |  Bin 0 -> 607 bytes
- osxapp/default/eo_Thinking.png                     |  Bin 0 -> 492 bytes
- osxapp/default/eo_Unknown.png                      |  Bin 0 -> 467 bytes
- osxapp/default/eo_White.png                        |  Bin 0 -> 400 bytes
- osxapp/default/icon_black.png                      |  Bin 0 -> 36898 bytes
- osxapp/default/icon_white.png                      |  Bin 0 -> 36619 bytes
- osxapp/gtkrc                                       |    4 +
- osxapp/icons/XBoard.icns                           |  Bin 0 -> 200555 bytes
- osxapp/icons/fen.icns                              |  Bin 0 -> 160673 bytes
- osxapp/icons/pgn.icns                              |  Bin 0 -> 165002 bytes
- osxapp/icons/trn.icns                              |  Bin 0 -> 161616 bytes
- osxapp/icons/xop.icns                              |  Bin 0 -> 167993 bytes
- osxapp/info.command                                |    2 +
- osxapp/launcher_rc                                 |    1 +
- osxapp/logos/207.99.83.228.png                     |  Bin 0 -> 16710 bytes
- osxapp/logos/69.36.243.188.png                     |  Bin 0 -> 7260 bytes
- osxapp/logos/dummy.png                             |  Bin 0 -> 9465 bytes
- osxapp/logos/winboard.nl.png                       |  Bin 0 -> 28755 bytes
- osxapp/man.command                                 |    2 +
- osxapp/osx-localization/.DS_Store                  |  Bin 0 -> 6148 bytes
- .../da.lproj/GtkosxApplication.strings             |  Bin 0 -> 1056 bytes
- .../de.lproj/GtkosxApplication.strings             |  Bin 0 -> 1104 bytes
- .../en.lproj/GtkosxApplication.strings             |  Bin 0 -> 1066 bytes
- .../es.lproj/GtkosxApplication.strings             |  Bin 0 -> 1078 bytes
- .../it.lproj/GtkosxApplication.strings             |  Bin 0 -> 1116 bytes
- .../nl.lproj/GtkosxApplication.strings             |  Bin 0 -> 1100 bytes
- .../pl.lproj/GtkosxApplication.strings             |  Bin 0 -> 1084 bytes
- .../ru.lproj/GtkosxApplication.strings             |  Bin 0 -> 1088 bytes
- .../tr.lproj/GtkosxApplication.strings             |  Bin 0 -> 1038 bytes
- .../uk.lproj/GtkosxApplication.strings             |  Bin 0 -> 610 bytes
- .../vi.lproj/GtkosxApplication.strings             |  Bin 0 -> 1064 bytes
- .../zh_CN.lproj/GtkosxApplication.strings          |  Bin 0 -> 944 bytes
- .../zh_HK.lproj/GtkosxApplication.strings          |  Bin 0 -> 934 bytes
- .../zh_TW.lproj/GtkosxApplication.strings          |  Bin 0 -> 944 bytes
- osxapp/pango.modules                               |    5 +
- parser.c                                           |   29 +-
- pgntags.c                                          |    8 +
- pixmaps/ANALYZING_14.xpm                           |   23 -
- pixmaps/BLACK_14.xpm                               |   23 -
- pixmaps/CLEAR_14.xpm                               |   23 -
- pixmaps/PONDER_14.xpm                              |   23 -
- pixmaps/THINKING_14.xpm                            |   23 -
- pixmaps/UNKNOWN_14.xpm                             |   23 -
- pixmaps/WHITE_14.xpm                               |   23 -
- pixmaps/board32.png                                |  Bin 0 -> 291 bytes
- pixmaps/board32.xpm                                |   42 -
- pixmaps/board48.png                                |  Bin 0 -> 306 bytes
- pixmaps/board48.xpm                                |   58 -
- pixmaps/cross32.png                                |  Bin 0 -> 370 bytes
- pixmaps/cross32.xpm                                |   42 -
- pixmaps/cross48.png                                |  Bin 0 -> 390 bytes
- pixmaps/cross48.xpm                                |   58 -
- pixmaps/ini32.png                                  |  Bin 0 -> 339 bytes
- pixmaps/ini32.xpm                                  |   41 -
- pixmaps/ini48.png                                  |  Bin 0 -> 388 bytes
- pixmaps/ini48.xpm                                  |   57 -
- png/xqboard.png                                    |  Bin 4423 -> 2534 bytes
- po/LINGUAS                                         |    2 +-
- po/Makefile.in.in                                  |  446 ---
- po/Makevars.template                               |   41 -
- po/Rules-quot                                      |   47 -
- po/boldquot.sed                                    |   10 -
- po/da.po                                           | 1656 ++++++-----
- po/de.po                                           | 1851 ++++++------
- po/en@boldquot.header                              |   25 -
- po/en@quot.header                                  |   22 -
- po/es.po                                           | 2783 +++++++++---------
- po/insert-header.sin                               |   23 -
- po/it.po                                           | 1612 +++++-----
- po/nl.po                                           | 3014 +++++++++++++++++++
- po/pl.po                                           | 3077 ++++++++++++++++++++
- po/quot.sed                                        |    6 -
- po/remove-potcdate.sin                             |   19 -
- po/ru.po                                           | 1607 +++++-----
- po/tr.po                                           | 1588 +++++-----
- po/uk.po                                           | 1682 ++++++-----
- po/vi.po                                           | 1596 +++++-----
- po/xboard.pot                                      | 1573 +++++-----
- po/zh_CN.po                                        | 1604 +++++-----
- po/zh_HK.po                                        | 1605 +++++-----
- po/zh_TW.po                                        | 1604 +++++-----
- sounds/roar.wav                                    |  Bin 0 -> 24664 bytes
- svg/BlackClaw.svg                                  |  162 ++
- svg/BlackDolphin.svg                               |  104 +
- svg/BlackHCrown.svg                                |  129 +
- svg/BlackHSword.svg                                |  115 +
- svg/BlackLeopard.svg                               |  168 ++
- svg/BlackLion.svg                                  |  172 ++
- svg/BlackPromoBishop.svg                           |   92 +
- svg/BlackPromoDragon.svg                           |  109 +
- svg/BlackPromoHSword.svg                           |  110 +
- svg/BlackPromoHorse.svg                            |   88 +
- svg/BlackPromoRook.svg                             |  104 +
- svg/BlackPromoSword.svg                            |  108 +
- svg/BlackSword.svg                                 |  113 +
- svg/WhiteClaw.svg                                  |  161 +
- svg/WhiteDolphin.svg                               |  105 +
- svg/WhiteHCrown.svg                                |  129 +
- svg/WhiteHSword.svg                                |  107 +
- svg/WhiteLeopard.svg                               |  169 ++
- svg/WhiteLion.svg                                  |  173 ++
- svg/WhitePromoBishop.svg                           |   84 +
- svg/WhitePromoDragon.svg                           |  100 +
- svg/WhitePromoHSword.svg                           |  102 +
- svg/WhitePromoHorse.svg                            |   80 +
- svg/WhitePromoRook.svg                             |   94 +
- svg/WhitePromoSword.svg                            |  100 +
- svg/WhiteSword.svg                                 |  105 +
- themes/shogi/BlackAdvisor.svg                      |  193 +-
- themes/shogi/BlackBishop.svg                       |  149 +-
- themes/shogi/BlackCrownedBishop.svg                |  120 +-
- themes/shogi/BlackCrownedRook.svg                  |  159 +-
- themes/shogi/BlackElephant.svg                     |   65 +
- themes/shogi/BlackGold.svg                         |  179 +-
- themes/shogi/BlackGoldKnight.svg                   |   95 +-
- themes/shogi/BlackGoldLance.svg                    |   97 +-
- themes/shogi/BlackGoldPawn.svg                     |   87 +-
- themes/shogi/BlackGoldSilver.svg                   |  109 +-
- themes/shogi/BlackJewled.svg                       |   88 +
- themes/shogi/BlackKing.svg                         |  151 +-
- themes/shogi/BlackKnight.svg                       |  164 +-
- themes/shogi/BlackLance.svg                        |  162 +-
- themes/shogi/BlackPawn.svg                         |  136 +-
- themes/shogi/BlackPrince.svg                       |   70 +
- themes/shogi/BlackRook.svg                         |  160 +-
- themes/shogi/WhiteAdvisor.svg                      |  177 +-
- themes/shogi/WhiteBishop.svg                       |  132 +-
- themes/shogi/WhiteCrownedBishop.svg                |   98 +-
- themes/shogi/WhiteCrownedRook.svg                  |  125 +-
- themes/shogi/WhiteElephant.svg                     |   65 +
- themes/shogi/WhiteGold.svg                         |  165 +-
- themes/shogi/WhiteGoldKnight.svg                   |   81 +-
- themes/shogi/WhiteGoldLance.svg                    |   83 +-
- themes/shogi/WhiteGoldPawn.svg                     |   73 +-
- themes/shogi/WhiteGoldSilver.svg                   |   87 +-
- themes/shogi/WhiteJewled.svg                       |   82 +
- themes/shogi/WhiteKing.svg                         |  142 +-
- themes/shogi/WhiteKnight.svg                       |  150 +-
- themes/shogi/WhiteLance.svg                        |  148 +-
- themes/shogi/WhitePawn.svg                         |  122 +-
- themes/shogi/WhitePrince.svg                       |   70 +
- themes/shogi/WhiteRook.svg                         |  148 +-
- usounds.c                                          |   13 +-
- usystem.c                                          |   39 +-
- usystem.h                                          |    1 +
- winboard/bitmaps/ln33o.bmp                         |  Bin 0 -> 326 bytes
- winboard/bitmaps/ln33s.bmp                         |  Bin 0 -> 326 bytes
- winboard/bitmaps/ln33w.bmp                         |  Bin 0 -> 326 bytes
- winboard/bitmaps/ln49o.bmp                         |  Bin 0 -> 454 bytes
- winboard/bitmaps/ln49s.bmp                         |  Bin 0 -> 454 bytes
- winboard/bitmaps/ln49w.bmp                         |  Bin 0 -> 454 bytes
- winboard/bitmaps/ln72o.bmp                         |  Bin 0 -> 926 bytes
- winboard/bitmaps/ln72s.bmp                         |  Bin 0 -> 926 bytes
- winboard/bitmaps/ln72w.bmp                         |  Bin 0 -> 926 bytes
- winboard/config.h                                  |    8 +-
- winboard/defaults.h                                |    2 +-
- winboard/resource.h                                |   13 +-
- winboard/wclipbrd.c                                |    5 +-
- winboard/wedittags.c                               |   53 +-
- winboard/wengineoutput.c                           |    3 +-
- winboard/wevalgraph.c                              |   11 +-
- winboard/wgamelist.c                               |   38 +-
- winboard/winboard.c                                |  159 +-
- winboard/winboard.h                                |    9 +
- winboard/winboard.rc                               |   97 +-
- winboard/woptions.c                                |   66 +-
- winboard/wsettings.c                               |   13 +-
- winboard/wsnap.c                                   |   72 +-
- xaw/xboard.c                                       |  249 +-
- xaw/xboard.h                                       |    2 +-
- xaw/xengineoutput.c                                |   54 +-
- xaw/xoptions.c                                     |   71 +-
- xboard.conf.in => xboard.conf                      |   33 +-
- xboard.texi                                        |  185 +-
- xboard2.h                                          |    2 +-
- zic2xpm.c                                          |  597 ----
- zic2xpm.man                                        |   73 -
- 268 files changed, 30688 insertions(+), 19408 deletions(-)
- delete mode 100644 ABOUT-NLS
- create mode 100644 conf/chu
- create mode 100644 conf/ics
- create mode 100644 conf/judkins
- create mode 100644 conf/judkins.fen
- create mode 100644 conf/mini
- create mode 100644 conf/mini.fen
- create mode 100644 conf/sho
- create mode 100644 conf/sho.fen
- create mode 100644 conf/shogi
- create mode 100644 conf/xiangqi
- create mode 100644 conf/xq
- delete mode 100755 config.rpath
- delete mode 100644 m4/gettext.m4
- delete mode 100644 m4/iconv.m4
- delete mode 100644 m4/lib-ld.m4
- delete mode 100644 m4/lib-link.m4
- delete mode 100644 m4/lib-prefix.m4
- delete mode 100644 m4/nls.m4
- delete mode 100644 m4/po.m4
- delete mode 100644 m4/progtest.m4
- create mode 100644 osxapp/Info.plist.in
- create mode 100755 osxapp/OSX-theme/gtk-2.0/assets/handle.png
- create mode 100755 osxapp/OSX-theme/gtk-2.0/assets/l-checkbox-checked-18.png
- create mode 100644 osxapp/OSX-theme/gtk-2.0/assets/l-checkbox-checked-insensitive-18.png
- create mode 100755 osxapp/OSX-theme/gtk-2.0/assets/l-checkbox-unchecked-18.png
- create mode 100644 osxapp/OSX-theme/gtk-2.0/assets/l-checkbox-unchecked-insensitive-18.png
- create mode 100755 osxapp/OSX-theme/gtk-2.0/assets/l-radio-selected-18.png
- create mode 100644 osxapp/OSX-theme/gtk-2.0/assets/l-radio-selected-insensitive-18.png
- create mode 100755 osxapp/OSX-theme/gtk-2.0/assets/l-radio-unselected-18.png
- create mode 100644 osxapp/OSX-theme/gtk-2.0/assets/l-radio-unselected-insensitive-18.png
- create mode 100755 osxapp/OSX-theme/gtk-2.0/assets/notebook-gap-bottom.png
- create mode 100755 osxapp/OSX-theme/gtk-2.0/assets/notebook-gap-left.png
- create mode 100755 osxapp/OSX-theme/gtk-2.0/assets/notebook-gap-right.png
- create mode 100755 osxapp/OSX-theme/gtk-2.0/assets/notebook-gap-top.png
- create mode 100755 osxapp/OSX-theme/gtk-2.0/assets/notebook.png
- create mode 100755 osxapp/OSX-theme/gtk-2.0/assets/null.png
- create mode 100755 osxapp/OSX-theme/gtk-2.0/assets/scroll-background.png
- create mode 100755 osxapp/OSX-theme/gtk-2.0/assets/slider-horizontal.png
- create mode 100755 osxapp/OSX-theme/gtk-2.0/assets/tab-bottom-active.png
- create mode 100755 osxapp/OSX-theme/gtk-2.0/assets/tab-bottom.png
- create mode 100755 osxapp/OSX-theme/gtk-2.0/assets/tab-left-active.png
- create mode 100755 osxapp/OSX-theme/gtk-2.0/assets/tab-left.png
- create mode 100755 osxapp/OSX-theme/gtk-2.0/assets/tab-right-active.png
- create mode 100755 osxapp/OSX-theme/gtk-2.0/assets/tab-right.png
- create mode 100755 osxapp/OSX-theme/gtk-2.0/assets/tab-top-active.png
- create mode 100755 osxapp/OSX-theme/gtk-2.0/assets/tab-top.png
- create mode 100755 osxapp/OSX-theme/gtk-2.0/assets/toolbar.png
- create mode 100755 osxapp/OSX-theme/gtk-2.0/gtkrc
- create mode 100644 osxapp/PkgInfo
- create mode 100755 osxapp/XBoard.gtklauncher
- create mode 100644 osxapp/default/eo_Analyzing.png
- create mode 100644 osxapp/default/eo_Black.png
- create mode 100644 osxapp/default/eo_Clear.png
- create mode 100644 osxapp/default/eo_Ponder.png
- create mode 100644 osxapp/default/eo_Thinking.png
- create mode 100644 osxapp/default/eo_Unknown.png
- create mode 100644 osxapp/default/eo_White.png
- create mode 100644 osxapp/default/icon_black.png
- create mode 100644 osxapp/default/icon_white.png
- create mode 100644 osxapp/gtkrc
- create mode 100644 osxapp/icons/XBoard.icns
- create mode 100644 osxapp/icons/fen.icns
- create mode 100644 osxapp/icons/pgn.icns
- create mode 100644 osxapp/icons/trn.icns
- create mode 100644 osxapp/icons/xop.icns
- create mode 100755 osxapp/info.command
- create mode 100644 osxapp/launcher_rc
- create mode 100644 osxapp/logos/207.99.83.228.png
- create mode 100644 osxapp/logos/69.36.243.188.png
- create mode 100644 osxapp/logos/dummy.png
- create mode 100644 osxapp/logos/winboard.nl.png
- create mode 100755 osxapp/man.command
- create mode 100644 osxapp/osx-localization/.DS_Store
- create mode 100755 osxapp/osx-localization/da.lproj/GtkosxApplication.strings
- create mode 100755 osxapp/osx-localization/de.lproj/GtkosxApplication.strings
- create mode 100755 osxapp/osx-localization/en.lproj/GtkosxApplication.strings
- create mode 100755 osxapp/osx-localization/es.lproj/GtkosxApplication.strings
- create mode 100755 osxapp/osx-localization/it.lproj/GtkosxApplication.strings
- create mode 100755 osxapp/osx-localization/nl.lproj/GtkosxApplication.strings
- create mode 100755 osxapp/osx-localization/pl.lproj/GtkosxApplication.strings
- create mode 100755 osxapp/osx-localization/ru.lproj/GtkosxApplication.strings
- create mode 100755 osxapp/osx-localization/tr.lproj/GtkosxApplication.strings
- create mode 100755 osxapp/osx-localization/uk.lproj/GtkosxApplication.strings
- create mode 100755 osxapp/osx-localization/vi.lproj/GtkosxApplication.strings
- create mode 100755 osxapp/osx-localization/zh_CN.lproj/GtkosxApplication.strings
- create mode 100755 osxapp/osx-localization/zh_HK.lproj/GtkosxApplication.strings
- create mode 100755 osxapp/osx-localization/zh_TW.lproj/GtkosxApplication.strings
- create mode 100644 osxapp/pango.modules
- delete mode 100644 pixmaps/ANALYZING_14.xpm
- delete mode 100644 pixmaps/BLACK_14.xpm
- delete mode 100644 pixmaps/CLEAR_14.xpm
- delete mode 100644 pixmaps/PONDER_14.xpm
- delete mode 100644 pixmaps/THINKING_14.xpm
- delete mode 100644 pixmaps/UNKNOWN_14.xpm
- delete mode 100644 pixmaps/WHITE_14.xpm
- create mode 100644 pixmaps/board32.png
- delete mode 100644 pixmaps/board32.xpm
- create mode 100644 pixmaps/board48.png
- delete mode 100644 pixmaps/board48.xpm
- create mode 100644 pixmaps/cross32.png
- delete mode 100644 pixmaps/cross32.xpm
- create mode 100644 pixmaps/cross48.png
- delete mode 100644 pixmaps/cross48.xpm
- create mode 100644 pixmaps/ini32.png
- delete mode 100644 pixmaps/ini32.xpm
- create mode 100644 pixmaps/ini48.png
- delete mode 100644 pixmaps/ini48.xpm
- delete mode 100644 po/Makefile.in.in
- delete mode 100644 po/Makevars.template
- delete mode 100644 po/Rules-quot
- delete mode 100644 po/boldquot.sed
- delete mode 100644 po/en@boldquot.header
- delete mode 100644 po/en@quot.header
- delete mode 100644 po/insert-header.sin
- create mode 100644 po/nl.po
- create mode 100644 po/pl.po
- delete mode 100644 po/quot.sed
- delete mode 100644 po/remove-potcdate.sin
- create mode 100644 sounds/roar.wav
- create mode 100644 svg/BlackClaw.svg
- create mode 100644 svg/BlackDolphin.svg
- create mode 100644 svg/BlackHCrown.svg
- create mode 100644 svg/BlackHSword.svg
- create mode 100644 svg/BlackLeopard.svg
- create mode 100644 svg/BlackLion.svg
- create mode 100644 svg/BlackPromoBishop.svg
- create mode 100644 svg/BlackPromoDragon.svg
- create mode 100644 svg/BlackPromoHSword.svg
- create mode 100644 svg/BlackPromoHorse.svg
- create mode 100644 svg/BlackPromoRook.svg
- create mode 100644 svg/BlackPromoSword.svg
- create mode 100644 svg/BlackSword.svg
- create mode 100644 svg/WhiteClaw.svg
- create mode 100644 svg/WhiteDolphin.svg
- create mode 100644 svg/WhiteHCrown.svg
- create mode 100644 svg/WhiteHSword.svg
- create mode 100644 svg/WhiteLeopard.svg
- create mode 100644 svg/WhiteLion.svg
- create mode 100644 svg/WhitePromoBishop.svg
- create mode 100644 svg/WhitePromoDragon.svg
- create mode 100644 svg/WhitePromoHSword.svg
- create mode 100644 svg/WhitePromoHorse.svg
- create mode 100644 svg/WhitePromoRook.svg
- create mode 100644 svg/WhitePromoSword.svg
- create mode 100644 svg/WhiteSword.svg
- create mode 100644 themes/shogi/BlackElephant.svg
- create mode 100644 themes/shogi/BlackJewled.svg
- create mode 100644 themes/shogi/BlackPrince.svg
- create mode 100644 themes/shogi/WhiteElephant.svg
- create mode 100644 themes/shogi/WhiteJewled.svg
- create mode 100644 themes/shogi/WhitePrince.svg
- create mode 100644 winboard/bitmaps/ln33o.bmp
- create mode 100644 winboard/bitmaps/ln33s.bmp
- create mode 100644 winboard/bitmaps/ln33w.bmp
- create mode 100644 winboard/bitmaps/ln49o.bmp
- create mode 100644 winboard/bitmaps/ln49s.bmp
- create mode 100644 winboard/bitmaps/ln49w.bmp
- create mode 100644 winboard/bitmaps/ln72o.bmp
- create mode 100644 winboard/bitmaps/ln72s.bmp
- create mode 100644 winboard/bitmaps/ln72w.bmp
- rename xboard.conf.in => xboard.conf (65%)
- delete mode 100644 zic2xpm.c
- delete mode 100644 zic2xpm.man
-
-
-** Version 4.7.3 **
-
-(git diff -b --stat --summary -M v4.7.2 HEAD)
-
- COPYRIGHT                        |   2 +-
- README                           |   1 -
- args.h                           |  10 +-
- autogen.sh                       |   2 +-
- backend.c                        |  27 +++-
- backend.h                        |  42 +-----
- backendz.h                       |   2 +-
- board.c                          |   2 +-
- board.h                          |   2 +-
- book.c                           |   3 +
- childio.c                        |   2 +-
- childio.h                        |   2 +-
- cmail.in                         |   2 +-
- common.h                         |  42 +++++-
- configure.ac                     |   4 +-
- copyright.texi                   |   2 +-
- dialogs.c                        |  14 +-
- dialogs.h                        |   2 +-
- doc-maint/release.org            |   0
- draw.c                           |   2 +-
- draw.h                           |   2 +-
- engineoutput.c                   |   4 +-
- engineoutput.h                   |   2 +-
- evalgraph.c                      |   2 +-
- evalgraph.h                      |   2 +-
- frontend.h                       |   4 +-
- gamelist.c                       |   2 +-
- gtk/xboard.c                     |  84 +++++++++---
- gtk/xboard.h                     |   2 +-
- gtk/xengineoutput.c              |   2 +-
- gtk/xoptions.c                   |  55 ++++++--
- gtk/xtimer.c                     |   2 +-
- history.c                        |   2 +-
- lists.c                          |   2 +-
- lists.h                          |   2 +-
- menus.c                          |   4 +-
- menus.h                          |   2 +-
- moves.c                          |   4 +-
- moves.h                          |   2 +-
- nengineoutput.c                  |   2 +-
- nevalgraph.c                     |   2 +-
- ngamelist.c                      |   2 +-
- nhistory.c                       |   2 +-
- parser.c                         |   6 +-
- parser.h                         |   2 +-
- pgntags.c                        |   2 +-
- po/da.po                         | 280 +++++++++++++++++++-------------------
- po/de.po                         | 280 +++++++++++++++++++-------------------
- po/es.po                         | 280 +++++++++++++++++++-------------------
- po/it.po                         | 280 +++++++++++++++++++-------------------
- po/lng2po.sh                     |   2 +-
- po/ru.po                         | 280 +++++++++++++++++++-------------------
- po/tr.po                         | 280 +++++++++++++++++++-------------------
- po/uk.po                         | 282 +++++++++++++++++++--------------------
- po/vi.po                         | 280 +++++++++++++++++++-------------------
- po/xboard.pot                    | 282 +++++++++++++++++++--------------------
- po/zh_CN.po                      | 280 +++++++++++++++++++-------------------
- po/zh_HK.po                      | 280 +++++++++++++++++++-------------------
- po/zh_TW.po                      | 280 +++++++++++++++++++-------------------
- themes/xiangqi/.DS_Store         | Bin 6148 -> 0 bytes
- uci.c                            |   2 +-
- usounds.c                        |   2 +-
- usystem.c                        |   2 +-
- usystem.h                        |   2 +-
- winboard/config.h                |   6 +-
- winboard/defaults.h              |   2 +-
- winboard/help.c                  |   2 +-
- winboard/help/html/24.htm        |   2 +-
- winboard/jaws.c                  |   2 +-
- winboard/language.txt            |   2 +-
- winboard/language/deutsch.lng    |   2 +-
- winboard/language/italiano.lng   |   2 +-
- winboard/language/nederlands.lng |   2 +-
- winboard/language/romanian.lng   |   2 +-
- winboard/language/russian.lng    |   2 +-
- winboard/language/spanish.lng    |   2 +-
- winboard/language/vietnamese.lng |   2 +-
- winboard/makefile.gcc            |   5 +-
- winboard/wchat.c                 |   2 +-
- winboard/wclipbrd.c              |   2 +-
- winboard/wclipbrd.h              |   2 +-
- winboard/wedittags.c             |   2 +-
- winboard/wengineoutput.c         |   2 +-
- winboard/wevalgraph.c            |   2 +
- winboard/wgamelist.c             |   2 +-
- winboard/whistory.c              |   2 +
- winboard/winboard.c              |  46 +++++--
- winboard/winboard.h              |   4 +-
- winboard/winboard.rc             |   4 +-
- winboard/wlayout.c               |  14 +-
- winboard/woptions.c              |   2 +-
- winboard/woptions.h              |   2 +-
- winboard/wsettings.c             |  23 ++++
- winboard/wsockerr.c              |   2 +-
- winboard/wsockerr.h              |   2 +-
- xaw/xboard.c                     |   3 +-
- xaw/xboard.h                     |   2 +-
- xaw/xengineoutput.c              |   3 +-
- xaw/xgamelist.c                  |   2 +-
- xaw/xgamelist.h                  |   2 +-
- xaw/xhistory.c                   |   2 +-
- xaw/xhistory.h                   |   2 +-
- xaw/xoptions.c                   |  14 +-
- xboard2.h                        |  22 +++
- zippy.README                     |   0
- zippy.c                          |   2 +-
- zippy.h                          |   2 +-
- zippy.lines                      |   0
- 108 files changed, 2077 insertions(+), 1867 deletions(-)
- delete mode 100644 themes/xiangqi/.DS_Store
-
-
-** Version 4.7.2 **
-
-(git diff -b --stat --summary -M v4.7.1 HEAD)
-
- backend.c            | 10 ++++++----
- book.c               |  4 +++-
- parser.c             |  4 +++-
- winboard/winboard.c  |  8 ++++++--
- winboard/wsettings.c |  9 ++++++---
- zippy.c              |  2 +-
- 6 files changed, 25 insertions(+), 12 deletions(-)
-
-
-** Version 4.7.1 **
-
-(git diff -b --stat --summary -M v4.7.0 HEAD)
-
- args.h              |  10 ++-
- backend.c           | 120 +++++++++++++++++------------
- backend.h           |   6 +-
- configure.ac        |   2 +-
- dialogs.c           |  19 ++---
- gtk/xboard.c        |  40 +++++++---
- gtk/xoptions.c      |  16 ++--
- po/da.po            |   2 +-
- po/de.po            |  61 ++++++++++-----
- po/es.po            |   2 +-
- po/it.po            |   2 +-
- po/ru.po            |   2 +-
- po/tr.po            |   2 +-
- po/uk.po            | 213 +++++++++++++++++++---------------------------------
- po/vi.po            |   2 +-
- po/xboard.pot       |   4 +-
- po/zh_CN.po         |   2 +-
- po/zh_HK.po         |   2 +-
- po/zh_TW.po         |   2 +-
- winboard/config.h   |   6 +-
- winboard/wchat.c    |  11 ++-
- xaw/xboard.c        |   3 +-
- xaw/xengineoutput.c |   4 +-
- xaw/xhistory.c      |   2 +-
- xaw/xoptions.c      |   3 +-
- xboard.texi         | 145 ++++++++++++++++++-----------------
- zippy.README        |   9 ++-
- 27 files changed, 368 insertions(+), 324 deletions(-)
-
-
-** Version 4.7.0 **
-
-(git diff -b --stat --summary -M v4.6.2 HEAD)
-
- AUTHORS                               | 2117 +----------
- COPYRIGHT                             |    2 +-
- ChangeLog                             | 2868 +++++++++++++-
- DIFFSTAT                              | 3076 ++++++++++++++-
- Makefile.am                           |  214 +-
- NEWS                                  |   90 +-
- SHORTLOG                              |  442 ++-
- args.h                                |  105 +-
- autogen.sh                            |    2 +-
- backend.c                             |  942 ++++-
- backend.h                             |   64 +-
- backendz.h                            |    9 +-
- bitmaps/README.bitmaps                |  101 -
- bitmaps/a33o.bm                       |   16 -
- bitmaps/a33s.bm                       |   16 -
- bitmaps/a37o.bm                       |   17 -
- bitmaps/a37s.bm                       |   17 -
- bitmaps/a40o.bm                       |   18 -
- bitmaps/a40s.bm                       |   18 -
- bitmaps/a45o.bm                       |   23 -
- bitmaps/a45s.bm                       |   23 -
- bitmaps/a49o.bm                       |   27 -
- bitmaps/a49s.bm                       |   27 -
- bitmaps/a54o.bm                       |   30 -
- bitmaps/a54s.bm                       |   30 -
- bitmaps/a58o.bm                       |   35 -
- bitmaps/a58s.bm                       |   35 -
- bitmaps/a64o.bm                       |   39 -
- bitmaps/a64s.bm                       |   39 -
- bitmaps/a72o.bm                       |   48 -
- bitmaps/a72s.bm                       |   48 -
- bitmaps/as45o.bm                      |   23 -
- bitmaps/as45s.bm                      |   23 -
- bitmaps/b108o.bm                      |  105 -
- bitmaps/b108s.bm                      |  105 -
- bitmaps/b116o.bm                      |  121 -
- bitmaps/b116s.bm                      |  121 -
- bitmaps/b129o.bm                      |  186 -
- bitmaps/b129s.bm                      |  186 -
- bitmaps/b21o.bm                       |    9 -
- bitmaps/b21s.bm                       |    9 -
- bitmaps/b25o.bm                       |   11 -
- bitmaps/b25s.bm                       |   11 -
- bitmaps/b29o.bm                       |   12 -
- bitmaps/b29s.bm                       |   12 -
- bitmaps/b33o.bm                       |   16 -
- bitmaps/b33s.bm                       |   16 -
- bitmaps/b37o.bm                       |   17 -
- bitmaps/b37s.bm                       |   17 -
- bitmaps/b40o.bm                       |   18 -
- bitmaps/b40s.bm                       |   18 -
- bitmaps/b45o.bm                       |   23 -
- bitmaps/b45s.bm                       |   23 -
- bitmaps/b49o.bm                       |   27 -
- bitmaps/b49s.bm                       |   27 -
- bitmaps/b54o.bm                       |   30 -
- bitmaps/b54s.bm                       |   30 -
- bitmaps/b58o.bm                       |   35 -
- bitmaps/b58s.bm                       |   35 -
- bitmaps/b64o.bm                       |   39 -
- bitmaps/b64s.bm                       |   39 -
- bitmaps/b72o.bm                       |   48 -
- bitmaps/b72s.bm                       |   48 -
- bitmaps/b80o.bm                       |   58 -
- bitmaps/b80s.bm                       |   58 -
- bitmaps/b87o.bm                       |   68 -
- bitmaps/b87s.bm                       |   68 -
- bitmaps/b95o.bm                       |   81 -
- bitmaps/b95s.bm                       |   81 -
- bitmaps/bitmaps.h                     |  530 ---
- bitmaps/c33o.bm                       |   16 -
- bitmaps/c33s.bm                       |   16 -
- bitmaps/c37o.bm                       |   17 -
- bitmaps/c37s.bm                       |   17 -
- bitmaps/c40o.bm                       |   18 -
- bitmaps/c40s.bm                       |   18 -
- bitmaps/c45o.bm                       |   23 -
- bitmaps/c45s.bm                       |   23 -
- bitmaps/c49o.bm                       |   27 -
- bitmaps/c49s.bm                       |   27 -
- bitmaps/c54o.bm                       |   30 -
- bitmaps/c54s.bm                       |   30 -
- bitmaps/c58o.bm                       |   35 -
- bitmaps/c58s.bm                       |   35 -
- bitmaps/c64o.bm                       |   39 -
- bitmaps/c64s.bm                       |   39 -
- bitmaps/c72o.bm                       |   48 -
- bitmaps/c72s.bm                       |   48 -
- bitmaps/d33o.bm                       |   16 -
- bitmaps/d33s.bm                       |   16 -
- bitmaps/d37o.bm                       |   17 -
- bitmaps/d37s.bm                       |   17 -
- bitmaps/d40o.bm                       |   18 -
- bitmaps/d40s.bm                       |   18 -
- bitmaps/d45o.bm                       |   23 -
- bitmaps/d45s.bm                       |   23 -
- bitmaps/d49o.bm                       |   27 -
- bitmaps/d49s.bm                       |   27 -
- bitmaps/d54o.bm                       |   30 -
- bitmaps/d54s.bm                       |   30 -
- bitmaps/d58o.bm                       |   35 -
- bitmaps/d58s.bm                       |   35 -
- bitmaps/d64o.bm                       |   39 -
- bitmaps/d64s.bm                       |   39 -
- bitmaps/d72o.bm                       |   48 -
- bitmaps/d72s.bm                       |   48 -
- bitmaps/dopkbm.sh                     |   16 -
- bitmaps/dopkbm1.sh                    |   27 -
- bitmaps/e33o.bm                       |   16 -
- bitmaps/e33s.bm                       |   16 -
- bitmaps/e49o.bm                       |   27 -
- bitmaps/e49s.bm                       |   27 -
- bitmaps/e72o.bm                       |   48 -
- bitmaps/e72s.bm                       |   48 -
- bitmaps/f33o.bm                       |   16 -
- bitmaps/f33s.bm                       |   16 -
- bitmaps/f49o.bm                       |   27 -
- bitmaps/f49s.bm                       |   27 -
- bitmaps/f72o.bm                       |   48 -
- bitmaps/f72s.bm                       |   48 -
- bitmaps/g33o.bm                       |   16 -
- bitmaps/g33s.bm                       |   16 -
- bitmaps/g49o.bm                       |   27 -
- bitmaps/g49s.bm                       |   27 -
- bitmaps/g72o.bm                       |   48 -
- bitmaps/g72s.bm                       |   48 -
- bitmaps/h33o.bm                       |   16 -
- bitmaps/h33s.bm                       |   16 -
- bitmaps/h49o.bm                       |   27 -
- bitmaps/h49s.bm                       |   27 -
- bitmaps/h72o.bm                       |   48 -
- bitmaps/h72s.bm                       |   48 -
- bitmaps/i33o.bm                       |   16 -
- bitmaps/i33s.bm                       |   16 -
- bitmaps/i49o.bm                       |   27 -
- bitmaps/i49s.bm                       |   27 -
- bitmaps/i72o.bm                       |   48 -
- bitmaps/i72s.bm                       |   48 -
- bitmaps/icon_b.bm                     |   13 -
- bitmaps/icon_outline.bm               |   14 -
- bitmaps/j33o.bm                       |   16 -
- bitmaps/j33s.bm                       |   16 -
- bitmaps/j49o.bm                       |   27 -
- bitmaps/j49s.bm                       |   27 -
- bitmaps/j72o.bm                       |   48 -
- bitmaps/j72s.bm                       |   48 -
- bitmaps/k108o.bm                      |  105 -
- bitmaps/k108s.bm                      |  105 -
- bitmaps/k116o.bm                      |  121 -
- bitmaps/k116s.bm                      |  121 -
- bitmaps/k129o.bm                      |  186 -
- bitmaps/k129s.bm                      |  186 -
- bitmaps/k21o.bm                       |    9 -
- bitmaps/k21s.bm                       |    9 -
- bitmaps/k25o.bm                       |   11 -
- bitmaps/k25s.bm                       |   11 -
- bitmaps/k29o.bm                       |   12 -
- bitmaps/k29s.bm                       |   12 -
- bitmaps/k33o.bm                       |   16 -
- bitmaps/k33s.bm                       |   16 -
- bitmaps/k37o.bm                       |   17 -
- bitmaps/k37s.bm                       |   17 -
- bitmaps/k40o.bm                       |   18 -
- bitmaps/k40s.bm                       |   18 -
- bitmaps/k45o.bm                       |   23 -
- bitmaps/k45s.bm                       |   23 -
- bitmaps/k49o.bm                       |   27 -
- bitmaps/k49s.bm                       |   27 -
- bitmaps/k54o.bm                       |   30 -
- bitmaps/k54s.bm                       |   30 -
- bitmaps/k58o.bm                       |   35 -
- bitmaps/k58s.bm                       |   35 -
- bitmaps/k64o.bm                       |   39 -
- bitmaps/k64s.bm                       |   39 -
- bitmaps/k72o.bm                       |   48 -
- bitmaps/k72s.bm                       |   48 -
- bitmaps/k80o.bm                       |   58 -
- bitmaps/k80s.bm                       |   58 -
- bitmaps/k87o.bm                       |   68 -
- bitmaps/k87s.bm                       |   68 -
- bitmaps/k95o.bm                       |   81 -
- bitmaps/k95s.bm                       |   81 -
- bitmaps/l33o.bm                       |   16 -
- bitmaps/l33s.bm                       |   16 -
- bitmaps/l37o.bm                       |   17 -
- bitmaps/l37s.bm                       |   17 -
- bitmaps/l40o.bm                       |   18 -
- bitmaps/l40s.bm                       |   18 -
- bitmaps/l45o.bm                       |   23 -
- bitmaps/l45s.bm                       |   23 -
- bitmaps/l49o.bm                       |   27 -
- bitmaps/l49s.bm                       |   27 -
- bitmaps/l54o.bm                       |   30 -
- bitmaps/l54s.bm                       |   30 -
- bitmaps/l58o.bm                       |   35 -
- bitmaps/l58s.bm                       |   35 -
- bitmaps/l64o.bm                       |   39 -
- bitmaps/l64s.bm                       |   39 -
- bitmaps/l72o.bm                       |   48 -
- bitmaps/l72s.bm                       |   48 -
- bitmaps/m33o.bm                       |   16 -
- bitmaps/m33s.bm                       |   16 -
- bitmaps/m49o.bm                       |   27 -
- bitmaps/m49s.bm                       |   27 -
- bitmaps/m72o.bm                       |   48 -
- bitmaps/m72s.bm                       |   48 -
- bitmaps/n108o.bm                      |  105 -
- bitmaps/n108s.bm                      |  105 -
- bitmaps/n116o.bm                      |  121 -
- bitmaps/n116s.bm                      |  121 -
- bitmaps/n129o.bm                      |  186 -
- bitmaps/n129s.bm                      |  186 -
- bitmaps/n21o.bm                       |    9 -
- bitmaps/n21s.bm                       |    9 -
- bitmaps/n25o.bm                       |   11 -
- bitmaps/n25s.bm                       |   11 -
- bitmaps/n29o.bm                       |   12 -
- bitmaps/n29s.bm                       |   12 -
- bitmaps/n33o.bm                       |   16 -
- bitmaps/n33s.bm                       |   16 -
- bitmaps/n37o.bm                       |   17 -
- bitmaps/n37s.bm                       |   17 -
- bitmaps/n40o.bm                       |   18 -
- bitmaps/n40s.bm                       |   18 -
- bitmaps/n45o.bm                       |   23 -
- bitmaps/n45s.bm                       |   23 -
- bitmaps/n49o.bm                       |   27 -
- bitmaps/n49s.bm                       |   27 -
- bitmaps/n54o.bm                       |   30 -
- bitmaps/n54s.bm                       |   30 -
- bitmaps/n58o.bm                       |   35 -
- bitmaps/n58s.bm                       |   35 -
- bitmaps/n64o.bm                       |   39 -
- bitmaps/n64s.bm                       |   39 -
- bitmaps/n72o.bm                       |   48 -
- bitmaps/n72s.bm                       |   48 -
- bitmaps/n80o.bm                       |   58 -
- bitmaps/n80s.bm                       |   58 -
- bitmaps/n87o.bm                       |   68 -
- bitmaps/n87s.bm                       |   68 -
- bitmaps/n95o.bm                       |   81 -
- bitmaps/n95s.bm                       |   81 -
- bitmaps/o33o.bm                       |   16 -
- bitmaps/o33s.bm                       |   16 -
- bitmaps/o49o.bm                       |   27 -
- bitmaps/o49s.bm                       |   27 -
- bitmaps/o72o.bm                       |   48 -
- bitmaps/o72s.bm                       |   48 -
- bitmaps/p108o.bm                      |  105 -
- bitmaps/p108s.bm                      |  105 -
- bitmaps/p116o.bm                      |  121 -
- bitmaps/p116s.bm                      |  121 -
- bitmaps/p129o.bm                      |  186 -
- bitmaps/p129s.bm                      |  186 -
- bitmaps/p21o.bm                       |    9 -
- bitmaps/p21s.bm                       |    9 -
- bitmaps/p25o.bm                       |   11 -
- bitmaps/p25s.bm                       |   11 -
- bitmaps/p29o.bm                       |   12 -
- bitmaps/p29s.bm                       |   12 -
- bitmaps/p33o.bm                       |   16 -
- bitmaps/p33s.bm                       |   16 -
- bitmaps/p37o.bm                       |   17 -
- bitmaps/p37s.bm                       |   17 -
- bitmaps/p40o.bm                       |   18 -
- bitmaps/p40s.bm                       |   18 -
- bitmaps/p45o.bm                       |   23 -
- bitmaps/p45s.bm                       |   23 -
- bitmaps/p49o.bm                       |   27 -
- bitmaps/p49s.bm                       |   27 -
- bitmaps/p54o.bm                       |   30 -
- bitmaps/p54s.bm                       |   30 -
- bitmaps/p58o.bm                       |   35 -
- bitmaps/p58s.bm                       |   35 -
- bitmaps/p64o.bm                       |   39 -
- bitmaps/p64s.bm                       |   39 -
- bitmaps/p72o.bm                       |   48 -
- bitmaps/p72s.bm                       |   48 -
- bitmaps/p80o.bm                       |   58 -
- bitmaps/p80s.bm                       |   58 -
- bitmaps/p87o.bm                       |   68 -
- bitmaps/p87s.bm                       |   68 -
- bitmaps/p95o.bm                       |   81 -
- bitmaps/p95s.bm                       |   81 -
- bitmaps/q108o.bm                      |  105 -
- bitmaps/q108s.bm                      |  105 -
- bitmaps/q116o.bm                      |  121 -
- bitmaps/q116s.bm                      |  121 -
- bitmaps/q129o.bm                      |  186 -
- bitmaps/q129s.bm                      |  186 -
- bitmaps/q21o.bm                       |    9 -
- bitmaps/q21s.bm                       |    9 -
- bitmaps/q25o.bm                       |   11 -
- bitmaps/q25s.bm                       |   11 -
- bitmaps/q29o.bm                       |   12 -
- bitmaps/q29s.bm                       |   12 -
- bitmaps/q33o.bm                       |   16 -
- bitmaps/q33s.bm                       |   16 -
- bitmaps/q37o.bm                       |   17 -
- bitmaps/q37s.bm                       |   17 -
- bitmaps/q40o.bm                       |   18 -
- bitmaps/q40s.bm                       |   18 -
- bitmaps/q45o.bm                       |   23 -
- bitmaps/q45s.bm                       |   23 -
- bitmaps/q49o.bm                       |   27 -
- bitmaps/q49s.bm                       |   27 -
- bitmaps/q54o.bm                       |   30 -
- bitmaps/q54s.bm                       |   30 -
- bitmaps/q58o.bm                       |   35 -
- bitmaps/q58s.bm                       |   35 -
- bitmaps/q64o.bm                       |   39 -
- bitmaps/q64s.bm                       |   39 -
- bitmaps/q72o.bm                       |   48 -
- bitmaps/q72s.bm                       |   48 -
- bitmaps/q80o.bm                       |   58 -
- bitmaps/q80s.bm                       |   58 -
- bitmaps/q87o.bm                       |   68 -
- bitmaps/q87s.bm                       |   68 -
- bitmaps/q95o.bm                       |   81 -
- bitmaps/q95s.bm                       |   81 -
- bitmaps/r108o.bm                      |  105 -
- bitmaps/r108s.bm                      |  105 -
- bitmaps/r116o.bm                      |  121 -
- bitmaps/r116s.bm                      |  121 -
- bitmaps/r129o.bm                      |  186 -
- bitmaps/r129s.bm                      |  186 -
- bitmaps/r21o.bm                       |    9 -
- bitmaps/r21s.bm                       |    9 -
- bitmaps/r25o.bm                       |   11 -
- bitmaps/r25s.bm                       |   11 -
- bitmaps/r29o.bm                       |   12 -
- bitmaps/r29s.bm                       |   12 -
- bitmaps/r33o.bm                       |   16 -
- bitmaps/r33s.bm                       |   16 -
- bitmaps/r37o.bm                       |   17 -
- bitmaps/r37s.bm                       |   17 -
- bitmaps/r40o.bm                       |   18 -
- bitmaps/r40s.bm                       |   18 -
- bitmaps/r45o.bm                       |   23 -
- bitmaps/r45s.bm                       |   23 -
- bitmaps/r49o.bm                       |   27 -
- bitmaps/r49s.bm                       |   27 -
- bitmaps/r54o.bm                       |   30 -
- bitmaps/r54s.bm                       |   30 -
- bitmaps/r58o.bm                       |   35 -
- bitmaps/r58s.bm                       |   35 -
- bitmaps/r64o.bm                       |   39 -
- bitmaps/r64s.bm                       |   39 -
- bitmaps/r72o.bm                       |   48 -
- bitmaps/r72s.bm                       |   48 -
- bitmaps/r80o.bm                       |   58 -
- bitmaps/r80s.bm                       |   58 -
- bitmaps/r87o.bm                       |   68 -
- bitmaps/r87s.bm                       |   68 -
- bitmaps/r95o.bm                       |   81 -
- bitmaps/r95s.bm                       |   81 -
- bitmaps/s49o.bm                       |   27 -
- bitmaps/s49s.bm                       |   27 -
- bitmaps/s72o.bm                       |   48 -
- bitmaps/s72s.bm                       |   48 -
- bitmaps/test.c                        |   14 -
- bitmaps/u49o.bm                       |   27 -
- bitmaps/u49s.bm                       |   27 -
- bitmaps/u72o.bm                       |   48 -
- bitmaps/u72s.bm                       |   48 -
- bitmaps/v33o.bm                       |   16 -
- bitmaps/v33s.bm                       |   16 -
- bitmaps/v49o.bm                       |   27 -
- bitmaps/v49s.bm                       |   27 -
- bitmaps/v72o.bm                       |   48 -
- bitmaps/v72s.bm                       |   48 -
- bitmaps/w33o.bm                       |   16 -
- bitmaps/w33s.bm                       |   16 -
- bitmaps/w49o.bm                       |   27 -
- bitmaps/w49s.bm                       |   27 -
- bitmaps/w72o.bm                       |   48 -
- bitmaps/w72s.bm                       |   48 -
- bitmaps/wl49o.bm                      |   27 -
- bitmaps/wl49s.bm                      |   27 -
- bitmaps/wl72o.bm                      |   48 -
- bitmaps/wl72s.bm                      |   48 -
- bitmaps/wn49o.bm                      |   27 -
- bitmaps/wn49s.bm                      |   27 -
- bitmaps/wn72o.bm                      |   48 -
- bitmaps/wn72s.bm                      |   48 -
- bitmaps/wp49o.bm                      |   27 -
- bitmaps/wp49s.bm                      |   27 -
- bitmaps/wp72o.bm                      |   48 -
- bitmaps/wp72s.bm                      |   48 -
- bitmaps/ws49o.bm                      |   27 -
- bitmaps/ws49s.bm                      |   27 -
- bitmaps/ws72o.bm                      |   48 -
- bitmaps/ws72s.bm                      |   48 -
- board.c                               | 1244 ++++++
- board.h                               |   98 +
- book.c                                |  362 +-
- childio.c                             |    2 +-
- childio.h                             |    2 +-
- cmail.in                              |    2 +-
- common.h                              |   49 +-
- configure.ac                          |  136 +-
- copyright.texi                        |    2 +-
- dialogs.c                             | 2588 +++++++++++++
- dialogs.h                             |  196 +
- doc-maint/coding-standards.org        |    6 +
- doc-maint/gendocs.sh                  |  361 ++
- doc-maint/make-xboard-release         |  186 +
- doc-maint/release.org                 |   71 +
- doc-maint/web-pages.org               |   40 +
- draw.c                                |  927 +++++
- draw.h                                |   76 +
- engine-intf.html                      |   45 +
- engineoutput.c                        |   28 +-
- engineoutput.h                        |   25 +-
- evalgraph.c                           |    4 +-
- evalgraph.h                           |   12 +-
- filebrowser/README                    |    3 -
- filebrowser/dir.c                     |  169 -
- filebrowser/draw.c                    |  981 -----
- filebrowser/path.c                    |  905 -----
- filebrowser/selfile.c                 |  902 -----
- filebrowser/selfile.h                 |  170 -
- filebrowser/xstat.h                   |   23 -
- frontend.h                            |   34 +-
- gamelist.c                            |    5 +-
- gettext.h                             |    6 +-
- gtk/.dirstamp                         |    0
- gtk/xboard.c                          | 2126 +++++++++++
- gtk/xboard.h                          |  177 +
- gtk/xengineoutput.c                   |  137 +
- gtk/xoptions.c                        | 1587 ++++++++
- gtk/xtimer.c                          |  237 ++
- history.c                             |    3 +-
- install-sh                            |    0
- lists.c                               |    2 +-
- lists.h                               |   18 +-
- menus.c                               | 1213 ++++++
- menus.h                               |  197 +
- moves.c                               |   13 +-
- moves.h                               |    2 +-
- nengineoutput.c                       |  194 +
- nevalgraph.c                          |  189 +
- ngamelist.c                           |  377 ++
- nhistory.c                            |  124 +
- parser.c                              |    6 +-
- parser.h                              |    2 +-
- pgntags.c                             |    2 +-
- pixmaps/README.pixmaps                |    8 -
- pixmaps/add33.xpm                     |   42 -
- pixmaps/add37.xpm                     |   46 -
- pixmaps/add40.xpm                     |   49 -
- pixmaps/add45.xpm                     |   54 -
- pixmaps/add49.xpm                     |   58 -
- pixmaps/add54.xpm                     |   63 -
- pixmaps/add58.xpm                     |   67 -
- pixmaps/add64.xpm                     |   73 -
- pixmaps/add72.xpm                     |   81 -
- pixmaps/adl33.xpm                     |   42 -
- pixmaps/adl37.xpm                     |   46 -
- pixmaps/adl40.xpm                     |   49 -
- pixmaps/adl45.xpm                     |   54 -
- pixmaps/adl49.xpm                     |   58 -
- pixmaps/adl54.xpm                     |   63 -
- pixmaps/adl58.xpm                     |   67 -
- pixmaps/adl64.xpm                     |   73 -
- pixmaps/adl72.xpm                     |   81 -
- pixmaps/ald33.xpm                     |   42 -
- pixmaps/ald37.xpm                     |   46 -
- pixmaps/ald40.xpm                     |   49 -
- pixmaps/ald45.xpm                     |   54 -
- pixmaps/ald49.xpm                     |   58 -
- pixmaps/ald54.xpm                     |   63 -
- pixmaps/ald58.xpm                     |   67 -
- pixmaps/ald64.xpm                     |   73 -
- pixmaps/ald72.xpm                     |   81 -
- pixmaps/all33.xpm                     |   42 -
- pixmaps/all37.xpm                     |   46 -
- pixmaps/all40.xpm                     |   49 -
- pixmaps/all45.xpm                     |   54 -
- pixmaps/all49.xpm                     |   58 -
- pixmaps/all54.xpm                     |   63 -
- pixmaps/all58.xpm                     |   67 -
- pixmaps/all64.xpm                     |   73 -
- pixmaps/all72.xpm                     |   81 -
- pixmaps/asdd33.xpm                    |   42 -
- pixmaps/asdd49.xpm                    |   58 -
- pixmaps/asdd72.xpm                    |   81 -
- pixmaps/asdl33.xpm                    |   42 -
- pixmaps/asdl49.xpm                    |   58 -
- pixmaps/asdl72.xpm                    |   81 -
- pixmaps/asld33.xpm                    |   42 -
- pixmaps/asld49.xpm                    |   58 -
- pixmaps/asld72.xpm                    |   81 -
- pixmaps/asll33.xpm                    |   42 -
- pixmaps/asll49.xpm                    |   58 -
- pixmaps/asll72.xpm                    |   81 -
- pixmaps/bdd108.xpm                    |  117 -
- pixmaps/bdd116.xpm                    |  125 -
- pixmaps/bdd129.xpm                    |  138 -
- pixmaps/bdd21.xpm                     |   30 -
- pixmaps/bdd25.xpm                     |   34 -
- pixmaps/bdd29.xpm                     |   38 -
- pixmaps/bdd33.xpm                     |   42 -
- pixmaps/bdd37.xpm                     |   46 -
- pixmaps/bdd40.xpm                     |   49 -
- pixmaps/bdd45.xpm                     |   54 -
- pixmaps/bdd49.xpm                     |   58 -
- pixmaps/bdd54.xpm                     |   63 -
- pixmaps/bdd58.xpm                     |   67 -
- pixmaps/bdd64.xpm                     |   73 -
- pixmaps/bdd72.xpm                     |   81 -
- pixmaps/bdd80.xpm                     |   89 -
- pixmaps/bdd87.xpm                     |   96 -
- pixmaps/bdd95.xpm                     |  104 -
- pixmaps/bdl108.xpm                    |  117 -
- pixmaps/bdl116.xpm                    |  125 -
- pixmaps/bdl129.xpm                    |  138 -
- pixmaps/bdl21.xpm                     |   30 -
- pixmaps/bdl25.xpm                     |   34 -
- pixmaps/bdl29.xpm                     |   38 -
- pixmaps/bdl33.xpm                     |   42 -
- pixmaps/bdl37.xpm                     |   46 -
- pixmaps/bdl40.xpm                     |   49 -
- pixmaps/bdl45.xpm                     |   54 -
- pixmaps/bdl49.xpm                     |   58 -
- pixmaps/bdl54.xpm                     |   63 -
- pixmaps/bdl58.xpm                     |   67 -
- pixmaps/bdl64.xpm                     |   73 -
- pixmaps/bdl72.xpm                     |   81 -
- pixmaps/bdl80.xpm                     |   89 -
- pixmaps/bdl87.xpm                     |   96 -
- pixmaps/bdl95.xpm                     |  104 -
- pixmaps/bld108.xpm                    |  117 -
- pixmaps/bld116.xpm                    |  125 -
- pixmaps/bld129.xpm                    |  138 -
- pixmaps/bld21.xpm                     |   30 -
- pixmaps/bld25.xpm                     |   34 -
- pixmaps/bld29.xpm                     |   38 -
- pixmaps/bld33.xpm                     |   42 -
- pixmaps/bld37.xpm                     |   43 -
- pixmaps/bld40.xpm                     |   49 -
- pixmaps/bld45.xpm                     |   54 -
- pixmaps/bld49.xpm                     |   58 -
- pixmaps/bld54.xpm                     |   63 -
- pixmaps/bld58.xpm                     |   67 -
- pixmaps/bld64.xpm                     |   73 -
- pixmaps/bld72.xpm                     |   81 -
- pixmaps/bld80.xpm                     |   89 -
- pixmaps/bld87.xpm                     |   96 -
- pixmaps/bld95.xpm                     |  104 -
- pixmaps/bll108.xpm                    |  117 -
- pixmaps/bll116.xpm                    |  125 -
- pixmaps/bll129.xpm                    |  138 -
- pixmaps/bll21.xpm                     |   30 -
- pixmaps/bll25.xpm                     |   34 -
- pixmaps/bll29.xpm                     |   38 -
- pixmaps/bll33.xpm                     |   42 -
- pixmaps/bll37.xpm                     |   43 -
- pixmaps/bll40.xpm                     |   49 -
- pixmaps/bll45.xpm                     |   54 -
- pixmaps/bll49.xpm                     |   58 -
- pixmaps/bll54.xpm                     |   63 -
- pixmaps/bll58.xpm                     |   67 -
- pixmaps/bll64.xpm                     |   73 -
- pixmaps/bll72.xpm                     |   81 -
- pixmaps/bll80.xpm                     |   89 -
- pixmaps/bll87.xpm                     |   96 -
- pixmaps/bll95.xpm                     |  104 -
- pixmaps/cdd33.xpm                     |   42 -
- pixmaps/cdd37.xpm                     |   46 -
- pixmaps/cdd40.xpm                     |   49 -
- pixmaps/cdd45.xpm                     |   54 -
- pixmaps/cdd49.xpm                     |   58 -
- pixmaps/cdd54.xpm                     |   63 -
- pixmaps/cdd58.xpm                     |   67 -
- pixmaps/cdd64.xpm                     |   73 -
- pixmaps/cdd72.xpm                     |   81 -
- pixmaps/cdl33.xpm                     |   42 -
- pixmaps/cdl37.xpm                     |   46 -
- pixmaps/cdl40.xpm                     |   49 -
- pixmaps/cdl45.xpm                     |   54 -
- pixmaps/cdl49.xpm                     |   58 -
- pixmaps/cdl54.xpm                     |   63 -
- pixmaps/cdl58.xpm                     |   67 -
- pixmaps/cdl64.xpm                     |   73 -
- pixmaps/cdl72.xpm                     |   81 -
- pixmaps/cld33.xpm                     |   42 -
- pixmaps/cld37.xpm                     |   46 -
- pixmaps/cld40.xpm                     |   49 -
- pixmaps/cld45.xpm                     |   54 -
- pixmaps/cld49.xpm                     |   58 -
- pixmaps/cld54.xpm                     |   63 -
- pixmaps/cld58.xpm                     |   67 -
- pixmaps/cld64.xpm                     |   73 -
- pixmaps/cld72.xpm                     |   81 -
- pixmaps/cll33.xpm                     |   42 -
- pixmaps/cll37.xpm                     |   46 -
- pixmaps/cll40.xpm                     |   49 -
- pixmaps/cll45.xpm                     |   54 -
- pixmaps/cll49.xpm                     |   58 -
- pixmaps/cll54.xpm                     |   63 -
- pixmaps/cll58.xpm                     |   67 -
- pixmaps/cll64.xpm                     |   73 -
- pixmaps/cll72.xpm                     |   81 -
- pixmaps/convbm                        |   35 -
- pixmaps/convbm.sed                    |    4 -
- pixmaps/convbm2.sed                   |    5 -
- pixmaps/convert.c                     |  168 -
- pixmaps/cvdd33.xpm                    |   42 -
- pixmaps/cvdd37.xpm                    |   46 -
- pixmaps/cvdd40.xpm                    |   49 -
- pixmaps/cvdd45.xpm                    |   54 -
- pixmaps/cvdd49.xpm                    |   58 -
- pixmaps/cvdd54.xpm                    |   63 -
- pixmaps/cvdd58.xpm                    |   67 -
- pixmaps/cvdd64.xpm                    |   73 -
- pixmaps/cvdd72.xpm                    |   81 -
- pixmaps/cvdl33.xpm                    |   42 -
- pixmaps/cvdl37.xpm                    |   46 -
- pixmaps/cvdl40.xpm                    |   49 -
- pixmaps/cvdl45.xpm                    |   54 -
- pixmaps/cvdl49.xpm                    |   58 -
- pixmaps/cvdl54.xpm                    |   63 -
- pixmaps/cvdl58.xpm                    |   67 -
- pixmaps/cvdl64.xpm                    |   73 -
- pixmaps/cvdl72.xpm                    |   81 -
- pixmaps/cvld33.xpm                    |   42 -
- pixmaps/cvld37.xpm                    |   46 -
- pixmaps/cvld40.xpm                    |   49 -
- pixmaps/cvld45.xpm                    |   54 -
- pixmaps/cvld49.xpm                    |   58 -
- pixmaps/cvld54.xpm                    |   63 -
- pixmaps/cvld58.xpm                    |   67 -
- pixmaps/cvld64.xpm                    |   73 -
- pixmaps/cvld72.xpm                    |   81 -
- pixmaps/cvll33.xpm                    |   42 -
- pixmaps/cvll37.xpm                    |   46 -
- pixmaps/cvll40.xpm                    |   49 -
- pixmaps/cvll45.xpm                    |   54 -
- pixmaps/cvll49.xpm                    |   58 -
- pixmaps/cvll54.xpm                    |   63 -
- pixmaps/cvll58.xpm                    |   67 -
- pixmaps/cvll64.xpm                    |   73 -
- pixmaps/cvll72.xpm                    |   81 -
- pixmaps/dkdd33.xpm                    |   42 -
- pixmaps/dkdd49.xpm                    |   58 -
- pixmaps/dkdd72.xpm                    |   81 -
- pixmaps/dkdl33.xpm                    |   42 -
- pixmaps/dkdl49.xpm                    |   58 -
- pixmaps/dkdl72.xpm                    |   81 -
- pixmaps/dkld33.xpm                    |   42 -
- pixmaps/dkld49.xpm                    |   58 -
- pixmaps/dkld72.xpm                    |   81 -
- pixmaps/dkll33.xpm                    |   42 -
- pixmaps/dkll49.xpm                    |   58 -
- pixmaps/dkll72.xpm                    |   81 -
- pixmaps/edd33.xpm                     |   42 -
- pixmaps/edd49.xpm                     |   58 -
- pixmaps/edd72.xpm                     |   81 -
- pixmaps/edl33.xpm                     |   42 -
- pixmaps/edl49.xpm                     |   58 -
- pixmaps/edl72.xpm                     |   81 -
- pixmaps/eld33.xpm                     |   42 -
- pixmaps/eld49.xpm                     |   58 -
- pixmaps/eld72.xpm                     |   81 -
- pixmaps/ell33.xpm                     |   42 -
- pixmaps/ell49.xpm                     |   58 -
- pixmaps/ell72.xpm                     |   81 -
- pixmaps/fdd33.xpm                     |   42 -
- pixmaps/fdd49.xpm                     |   58 -
- pixmaps/fdd72.xpm                     |   81 -
- pixmaps/fdl33.xpm                     |   42 -
- pixmaps/fdl49.xpm                     |   58 -
- pixmaps/fdl72.xpm                     |   81 -
- pixmaps/fld33.xpm                     |   42 -
- pixmaps/fld49.xpm                     |   58 -
- pixmaps/fld72.xpm                     |   81 -
- pixmaps/fll33.xpm                     |   42 -
- pixmaps/fll49.xpm                     |   58 -
- pixmaps/fll72.xpm                     |   81 -
- pixmaps/gdd33.xpm                     |   42 -
- pixmaps/gdd49.xpm                     |   58 -
- pixmaps/gdd72.xpm                     |   81 -
- pixmaps/gdl33.xpm                     |   42 -
- pixmaps/gdl49.xpm                     |   58 -
- pixmaps/gdl72.xpm                     |   81 -
- pixmaps/gld33.xpm                     |   42 -
- pixmaps/gld49.xpm                     |   58 -
- pixmaps/gld72.xpm                     |   81 -
- pixmaps/gll33.xpm                     |   42 -
- pixmaps/gll49.xpm                     |   58 -
- pixmaps/gll72.xpm                     |   81 -
- pixmaps/hdd33.xpm                     |   42 -
- pixmaps/hdd49.xpm                     |   58 -
- pixmaps/hdd72.xpm                     |   81 -
- pixmaps/hdl33.xpm                     |   42 -
- pixmaps/hdl49.xpm                     |   58 -
- pixmaps/hdl72.xpm                     |   81 -
- pixmaps/hld33.xpm                     |   42 -
- pixmaps/hld49.xpm                     |   58 -
- pixmaps/hld72.xpm                     |   81 -
- pixmaps/hll33.xpm                     |   42 -
- pixmaps/hll49.xpm                     |   58 -
- pixmaps/hll72.xpm                     |   81 -
- pixmaps/ini32.xpm                     |   41 +
- pixmaps/ini48.xpm                     |   57 +
- pixmaps/kdd108.xpm                    |  117 -
- pixmaps/kdd116.xpm                    |  125 -
- pixmaps/kdd129.xpm                    |  138 -
- pixmaps/kdd21.xpm                     |   30 -
- pixmaps/kdd25.xpm                     |   34 -
- pixmaps/kdd29.xpm                     |   38 -
- pixmaps/kdd33.xpm                     |   42 -
- pixmaps/kdd37.xpm                     |   46 -
- pixmaps/kdd40.xpm                     |   46 -
- pixmaps/kdd45.xpm                     |   54 -
- pixmaps/kdd49.xpm                     |   58 -
- pixmaps/kdd54.xpm                     |   63 -
- pixmaps/kdd58.xpm                     |   67 -
- pixmaps/kdd64.xpm                     |   73 -
- pixmaps/kdd72.xpm                     |   81 -
- pixmaps/kdd80.xpm                     |   89 -
- pixmaps/kdd87.xpm                     |   96 -
- pixmaps/kdd95.xpm                     |  104 -
- pixmaps/kdl108.xpm                    |  117 -
- pixmaps/kdl116.xpm                    |  125 -
- pixmaps/kdl129.xpm                    |  138 -
- pixmaps/kdl21.xpm                     |   30 -
- pixmaps/kdl25.xpm                     |   34 -
- pixmaps/kdl29.xpm                     |   38 -
- pixmaps/kdl33.xpm                     |   42 -
- pixmaps/kdl37.xpm                     |   46 -
- pixmaps/kdl40.xpm                     |   46 -
- pixmaps/kdl45.xpm                     |   54 -
- pixmaps/kdl49.xpm                     |   58 -
- pixmaps/kdl54.xpm                     |   63 -
- pixmaps/kdl58.xpm                     |   67 -
- pixmaps/kdl64.xpm                     |   73 -
- pixmaps/kdl72.xpm                     |   81 -
- pixmaps/kdl80.xpm                     |   89 -
- pixmaps/kdl87.xpm                     |   96 -
- pixmaps/kdl95.xpm                     |  104 -
- pixmaps/kld108.xpm                    |  117 -
- pixmaps/kld116.xpm                    |  125 -
- pixmaps/kld129.xpm                    |  138 -
- pixmaps/kld21.xpm                     |   30 -
- pixmaps/kld25.xpm                     |   34 -
- pixmaps/kld29.xpm                     |   38 -
- pixmaps/kld33.xpm                     |   42 -
- pixmaps/kld37.xpm                     |   46 -
- pixmaps/kld40.xpm                     |   46 -
- pixmaps/kld45.xpm                     |   54 -
- pixmaps/kld49.xpm                     |   58 -
- pixmaps/kld54.xpm                     |   63 -
- pixmaps/kld58.xpm                     |   67 -
- pixmaps/kld64.xpm                     |   73 -
- pixmaps/kld72.xpm                     |   81 -
- pixmaps/kld80.xpm                     |   89 -
- pixmaps/kld87.xpm                     |   96 -
- pixmaps/kld95.xpm                     |  104 -
- pixmaps/kll108.xpm                    |  117 -
- pixmaps/kll116.xpm                    |  125 -
- pixmaps/kll129.xpm                    |  138 -
- pixmaps/kll21.xpm                     |   30 -
- pixmaps/kll25.xpm                     |   34 -
- pixmaps/kll29.xpm                     |   38 -
- pixmaps/kll33.xpm                     |   42 -
- pixmaps/kll37.xpm                     |   46 -
- pixmaps/kll40.xpm                     |   46 -
- pixmaps/kll45.xpm                     |   54 -
- pixmaps/kll49.xpm                     |   58 -
- pixmaps/kll54.xpm                     |   63 -
- pixmaps/kll58.xpm                     |   67 -
- pixmaps/kll64.xpm                     |   73 -
- pixmaps/kll72.xpm                     |   81 -
- pixmaps/kll80.xpm                     |   89 -
- pixmaps/kll87.xpm                     |   96 -
- pixmaps/kll95.xpm                     |  104 -
- pixmaps/ldd33.xpm                     |   42 -
- pixmaps/ldd37.xpm                     |   46 -
- pixmaps/ldd40.xpm                     |   49 -
- pixmaps/ldd45.xpm                     |   54 -
- pixmaps/ldd49.xpm                     |   58 -
- pixmaps/ldd54.xpm                     |   63 -
- pixmaps/ldd58.xpm                     |   67 -
- pixmaps/ldd64.xpm                     |   73 -
- pixmaps/ldd72.xpm                     |   81 -
- pixmaps/ldl33.xpm                     |   42 -
- pixmaps/ldl37.xpm                     |   46 -
- pixmaps/ldl40.xpm                     |   49 -
- pixmaps/ldl45.xpm                     |   54 -
- pixmaps/ldl49.xpm                     |   58 -
- pixmaps/ldl54.xpm                     |   63 -
- pixmaps/ldl58.xpm                     |   67 -
- pixmaps/ldl64.xpm                     |   73 -
- pixmaps/ldl72.xpm                     |   81 -
- pixmaps/lld33.xpm                     |   42 -
- pixmaps/lld37.xpm                     |   46 -
- pixmaps/lld40.xpm                     |   49 -
- pixmaps/lld45.xpm                     |   54 -
- pixmaps/lld49.xpm                     |   58 -
- pixmaps/lld54.xpm                     |   63 -
- pixmaps/lld58.xpm                     |   67 -
- pixmaps/lld64.xpm                     |   73 -
- pixmaps/lld72.xpm                     |   81 -
- pixmaps/lll33.xpm                     |   42 -
- pixmaps/lll37.xpm                     |   46 -
- pixmaps/lll40.xpm                     |   49 -
- pixmaps/lll45.xpm                     |   54 -
- pixmaps/lll49.xpm                     |   58 -
- pixmaps/lll54.xpm                     |   63 -
- pixmaps/lll58.xpm                     |   67 -
- pixmaps/lll64.xpm                     |   73 -
- pixmaps/lll72.xpm                     |   81 -
- pixmaps/marble_d.xpm                  |  238 --
- pixmaps/marble_l.xpm                  |  359 --
- pixmaps/mdd33.xpm                     |   42 -
- pixmaps/mdd49.xpm                     |   58 -
- pixmaps/mdd72.xpm                     |   81 -
- pixmaps/mdl33.xpm                     |   42 -
- pixmaps/mdl49.xpm                     |   58 -
- pixmaps/mdl72.xpm                     |   81 -
- pixmaps/mld33.xpm                     |   42 -
- pixmaps/mld49.xpm                     |   58 -
- pixmaps/mld72.xpm                     |   81 -
- pixmaps/mll33.xpm                     |   42 -
- pixmaps/mll49.xpm                     |   58 -
- pixmaps/mll72.xpm                     |   81 -
- pixmaps/ndd108.xpm                    |  117 -
- pixmaps/ndd116.xpm                    |  125 -
- pixmaps/ndd129.xpm                    |  138 -
- pixmaps/ndd21.xpm                     |   30 -
- pixmaps/ndd25.xpm                     |   34 -
- pixmaps/ndd29.xpm                     |   35 -
- pixmaps/ndd33.xpm                     |   42 -
- pixmaps/ndd37.xpm                     |   43 -
- pixmaps/ndd40.xpm                     |   46 -
- pixmaps/ndd45.xpm                     |   51 -
- pixmaps/ndd49.xpm                     |   55 -
- pixmaps/ndd54.xpm                     |   63 -
- pixmaps/ndd58.xpm                     |   67 -
- pixmaps/ndd64.xpm                     |   73 -
- pixmaps/ndd72.xpm                     |   81 -
- pixmaps/ndd80.xpm                     |   89 -
- pixmaps/ndd87.xpm                     |   96 -
- pixmaps/ndd95.xpm                     |  104 -
- pixmaps/ndl108.xpm                    |  117 -
- pixmaps/ndl116.xpm                    |  125 -
- pixmaps/ndl129.xpm                    |  138 -
- pixmaps/ndl21.xpm                     |   30 -
- pixmaps/ndl25.xpm                     |   34 -
- pixmaps/ndl29.xpm                     |   35 -
- pixmaps/ndl33.xpm                     |   42 -
- pixmaps/ndl37.xpm                     |   43 -
- pixmaps/ndl40.xpm                     |   46 -
- pixmaps/ndl45.xpm                     |   51 -
- pixmaps/ndl49.xpm                     |   55 -
- pixmaps/ndl54.xpm                     |   63 -
- pixmaps/ndl58.xpm                     |   67 -
- pixmaps/ndl64.xpm                     |   73 -
- pixmaps/ndl72.xpm                     |   81 -
- pixmaps/ndl80.xpm                     |   89 -
- pixmaps/ndl87.xpm                     |   96 -
- pixmaps/ndl95.xpm                     |  104 -
- pixmaps/nld108.xpm                    |  117 -
- pixmaps/nld116.xpm                    |  125 -
- pixmaps/nld129.xpm                    |  138 -
- pixmaps/nld21.xpm                     |   30 -
- pixmaps/nld25.xpm                     |   34 -
- pixmaps/nld29.xpm                     |   38 -
- pixmaps/nld33.xpm                     |   42 -
- pixmaps/nld37.xpm                     |   46 -
- pixmaps/nld40.xpm                     |   46 -
- pixmaps/nld45.xpm                     |   51 -
- pixmaps/nld49.xpm                     |   58 -
- pixmaps/nld54.xpm                     |   63 -
- pixmaps/nld58.xpm                     |   67 -
- pixmaps/nld64.xpm                     |   73 -
- pixmaps/nld72.xpm                     |   81 -
- pixmaps/nld80.xpm                     |   89 -
- pixmaps/nld87.xpm                     |   96 -
- pixmaps/nld95.xpm                     |  104 -
- pixmaps/nll108.xpm                    |  117 -
- pixmaps/nll116.xpm                    |  125 -
- pixmaps/nll129.xpm                    |  138 -
- pixmaps/nll21.xpm                     |   30 -
- pixmaps/nll25.xpm                     |   34 -
- pixmaps/nll29.xpm                     |   38 -
- pixmaps/nll33.xpm                     |   42 -
- pixmaps/nll37.xpm                     |   46 -
- pixmaps/nll40.xpm                     |   46 -
- pixmaps/nll45.xpm                     |   51 -
- pixmaps/nll49.xpm                     |   58 -
- pixmaps/nll54.xpm                     |   63 -
- pixmaps/nll58.xpm                     |   67 -
- pixmaps/nll64.xpm                     |   73 -
- pixmaps/nll72.xpm                     |   81 -
- pixmaps/nll80.xpm                     |   89 -
- pixmaps/nll87.xpm                     |   96 -
- pixmaps/nll95.xpm                     |  104 -
- pixmaps/odd33.xpm                     |   42 -
- pixmaps/odd49.xpm                     |   58 -
- pixmaps/odd72.xpm                     |   81 -
- pixmaps/odl33.xpm                     |   42 -
- pixmaps/odl49.xpm                     |   58 -
- pixmaps/odl72.xpm                     |   81 -
- pixmaps/old33.xpm                     |   42 -
- pixmaps/old49.xpm                     |   58 -
- pixmaps/old72.xpm                     |   81 -
- pixmaps/oll33.xpm                     |   42 -
- pixmaps/oll49.xpm                     |   58 -
- pixmaps/oll72.xpm                     |   81 -
- pixmaps/pdd108.xpm                    |  116 -
- pixmaps/pdd116.xpm                    |  124 -
- pixmaps/pdd129.xpm                    |  137 -
- pixmaps/pdd21.xpm                     |   29 -
- pixmaps/pdd25.xpm                     |   33 -
- pixmaps/pdd29.xpm                     |   37 -
- pixmaps/pdd33.xpm                     |   41 -
- pixmaps/pdd37.xpm                     |   45 -
- pixmaps/pdd40.xpm                     |   48 -
- pixmaps/pdd45.xpm                     |   53 -
- pixmaps/pdd49.xpm                     |   57 -
- pixmaps/pdd54.xpm                     |   62 -
- pixmaps/pdd58.xpm                     |   66 -
- pixmaps/pdd64.xpm                     |   72 -
- pixmaps/pdd72.xpm                     |   80 -
- pixmaps/pdd80.xpm                     |   88 -
- pixmaps/pdd87.xpm                     |   95 -
- pixmaps/pdd95.xpm                     |  103 -
- pixmaps/pdl108.xpm                    |  116 -
- pixmaps/pdl116.xpm                    |  124 -
- pixmaps/pdl129.xpm                    |  137 -
- pixmaps/pdl21.xpm                     |   29 -
- pixmaps/pdl25.xpm                     |   33 -
- pixmaps/pdl29.xpm                     |   37 -
- pixmaps/pdl33.xpm                     |   41 -
- pixmaps/pdl37.xpm                     |   45 -
- pixmaps/pdl40.xpm                     |   48 -
- pixmaps/pdl45.xpm                     |   53 -
- pixmaps/pdl49.xpm                     |   57 -
- pixmaps/pdl54.xpm                     |   62 -
- pixmaps/pdl58.xpm                     |   66 -
- pixmaps/pdl64.xpm                     |   72 -
- pixmaps/pdl72.xpm                     |   80 -
- pixmaps/pdl80.xpm                     |   88 -
- pixmaps/pdl87.xpm                     |   95 -
- pixmaps/pdl95.xpm                     |  103 -
- pixmaps/pixmaps.h                     | 1349 -------
- pixmaps/pld108.xpm                    |  117 -
- pixmaps/pld116.xpm                    |  125 -
- pixmaps/pld129.xpm                    |  138 -
- pixmaps/pld21.xpm                     |   30 -
- pixmaps/pld25.xpm                     |   34 -
- pixmaps/pld29.xpm                     |   38 -
- pixmaps/pld33.xpm                     |   42 -
- pixmaps/pld37.xpm                     |   46 -
- pixmaps/pld40.xpm                     |   49 -
- pixmaps/pld45.xpm                     |   54 -
- pixmaps/pld49.xpm                     |   58 -
- pixmaps/pld54.xpm                     |   63 -
- pixmaps/pld58.xpm                     |   67 -
- pixmaps/pld64.xpm                     |   73 -
- pixmaps/pld72.xpm                     |   81 -
- pixmaps/pld80.xpm                     |   89 -
- pixmaps/pld87.xpm                     |   96 -
- pixmaps/pld95.xpm                     |  104 -
- pixmaps/pll108.xpm                    |  117 -
- pixmaps/pll116.xpm                    |  125 -
- pixmaps/pll129.xpm                    |  138 -
- pixmaps/pll21.xpm                     |   30 -
- pixmaps/pll25.xpm                     |   34 -
- pixmaps/pll29.xpm                     |   38 -
- pixmaps/pll33.xpm                     |   42 -
- pixmaps/pll37.xpm                     |   46 -
- pixmaps/pll40.xpm                     |   49 -
- pixmaps/pll45.xpm                     |   54 -
- pixmaps/pll49.xpm                     |   58 -
- pixmaps/pll54.xpm                     |   63 -
- pixmaps/pll58.xpm                     |   67 -
- pixmaps/pll64.xpm                     |   73 -
- pixmaps/pll72.xpm                     |   81 -
- pixmaps/pll80.xpm                     |   89 -
- pixmaps/pll87.xpm                     |   96 -
- pixmaps/pll95.xpm                     |  104 -
- pixmaps/qdd108.xpm                    |  117 -
- pixmaps/qdd116.xpm                    |  125 -
- pixmaps/qdd129.xpm                    |  138 -
- pixmaps/qdd21.xpm                     |   30 -
- pixmaps/qdd25.xpm                     |   31 -
- pixmaps/qdd29.xpm                     |   38 -
- pixmaps/qdd33.xpm                     |   42 -
- pixmaps/qdd37.xpm                     |   46 -
- pixmaps/qdd40.xpm                     |   49 -
- pixmaps/qdd45.xpm                     |   54 -
- pixmaps/qdd49.xpm                     |   58 -
- pixmaps/qdd54.xpm                     |   63 -
- pixmaps/qdd58.xpm                     |   67 -
- pixmaps/qdd64.xpm                     |   73 -
- pixmaps/qdd72.xpm                     |   78 -
- pixmaps/qdd80.xpm                     |   89 -
- pixmaps/qdd87.xpm                     |   96 -
- pixmaps/qdd95.xpm                     |  104 -
- pixmaps/qdl108.xpm                    |  117 -
- pixmaps/qdl116.xpm                    |  125 -
- pixmaps/qdl129.xpm                    |  138 -
- pixmaps/qdl21.xpm                     |   30 -
- pixmaps/qdl25.xpm                     |   31 -
- pixmaps/qdl29.xpm                     |   38 -
- pixmaps/qdl33.xpm                     |   42 -
- pixmaps/qdl37.xpm                     |   46 -
- pixmaps/qdl40.xpm                     |   49 -
- pixmaps/qdl45.xpm                     |   54 -
- pixmaps/qdl49.xpm                     |   58 -
- pixmaps/qdl54.xpm                     |   63 -
- pixmaps/qdl58.xpm                     |   67 -
- pixmaps/qdl64.xpm                     |   73 -
- pixmaps/qdl72.xpm                     |   78 -
- pixmaps/qdl80.xpm                     |   89 -
- pixmaps/qdl87.xpm                     |   96 -
- pixmaps/qdl95.xpm                     |  104 -
- pixmaps/qld108.xpm                    |  117 -
- pixmaps/qld116.xpm                    |  125 -
- pixmaps/qld129.xpm                    |  138 -
- pixmaps/qld21.xpm                     |   30 -
- pixmaps/qld25.xpm                     |   31 -
- pixmaps/qld29.xpm                     |   38 -
- pixmaps/qld33.xpm                     |   42 -
- pixmaps/qld37.xpm                     |   46 -
- pixmaps/qld40.xpm                     |   49 -
- pixmaps/qld45.xpm                     |   54 -
- pixmaps/qld49.xpm                     |   58 -
- pixmaps/qld54.xpm                     |   63 -
- pixmaps/qld58.xpm                     |   67 -
- pixmaps/qld64.xpm                     |   73 -
- pixmaps/qld72.xpm                     |   78 -
- pixmaps/qld80.xpm                     |   89 -
- pixmaps/qld87.xpm                     |   96 -
- pixmaps/qld95.xpm                     |  104 -
- pixmaps/qll108.xpm                    |  117 -
- pixmaps/qll116.xpm                    |  125 -
- pixmaps/qll129.xpm                    |  138 -
- pixmaps/qll21.xpm                     |   30 -
- pixmaps/qll25.xpm                     |   31 -
- pixmaps/qll29.xpm                     |   38 -
- pixmaps/qll33.xpm                     |   42 -
- pixmaps/qll37.xpm                     |   46 -
- pixmaps/qll40.xpm                     |   49 -
- pixmaps/qll45.xpm                     |   54 -
- pixmaps/qll49.xpm                     |   58 -
- pixmaps/qll54.xpm                     |   63 -
- pixmaps/qll58.xpm                     |   67 -
- pixmaps/qll64.xpm                     |   73 -
- pixmaps/qll72.xpm                     |   78 -
- pixmaps/qll80.xpm                     |   89 -
- pixmaps/qll87.xpm                     |   96 -
- pixmaps/qll95.xpm                     |  104 -
- pixmaps/rdd108.xpm                    |  117 -
- pixmaps/rdd116.xpm                    |  125 -
- pixmaps/rdd129.xpm                    |  138 -
- pixmaps/rdd21.xpm                     |   30 -
- pixmaps/rdd25.xpm                     |   34 -
- pixmaps/rdd29.xpm                     |   38 -
- pixmaps/rdd33.xpm                     |   42 -
- pixmaps/rdd37.xpm                     |   46 -
- pixmaps/rdd40.xpm                     |   46 -
- pixmaps/rdd45.xpm                     |   54 -
- pixmaps/rdd49.xpm                     |   58 -
- pixmaps/rdd54.xpm                     |   63 -
- pixmaps/rdd58.xpm                     |   67 -
- pixmaps/rdd64.xpm                     |   73 -
- pixmaps/rdd72.xpm                     |   81 -
- pixmaps/rdd80.xpm                     |   89 -
- pixmaps/rdd87.xpm                     |   96 -
- pixmaps/rdd95.xpm                     |  104 -
- pixmaps/rdl108.xpm                    |  117 -
- pixmaps/rdl116.xpm                    |  125 -
- pixmaps/rdl129.xpm                    |  138 -
- pixmaps/rdl21.xpm                     |   30 -
- pixmaps/rdl25.xpm                     |   34 -
- pixmaps/rdl29.xpm                     |   38 -
- pixmaps/rdl33.xpm                     |   42 -
- pixmaps/rdl37.xpm                     |   46 -
- pixmaps/rdl40.xpm                     |   46 -
- pixmaps/rdl45.xpm                     |   54 -
- pixmaps/rdl49.xpm                     |   58 -
- pixmaps/rdl54.xpm                     |   63 -
- pixmaps/rdl58.xpm                     |   67 -
- pixmaps/rdl64.xpm                     |   73 -
- pixmaps/rdl72.xpm                     |   81 -
- pixmaps/rdl80.xpm                     |   89 -
- pixmaps/rdl87.xpm                     |   96 -
- pixmaps/rdl95.xpm                     |  104 -
- pixmaps/rld108.xpm                    |  117 -
- pixmaps/rld116.xpm                    |  125 -
- pixmaps/rld129.xpm                    |  138 -
- pixmaps/rld21.xpm                     |   30 -
- pixmaps/rld25.xpm                     |   34 -
- pixmaps/rld29.xpm                     |   38 -
- pixmaps/rld33.xpm                     |   42 -
- pixmaps/rld37.xpm                     |   46 -
- pixmaps/rld40.xpm                     |   49 -
- pixmaps/rld45.xpm                     |   54 -
- pixmaps/rld49.xpm                     |   58 -
- pixmaps/rld54.xpm                     |   63 -
- pixmaps/rld58.xpm                     |   67 -
- pixmaps/rld64.xpm                     |   73 -
- pixmaps/rld72.xpm                     |   81 -
- pixmaps/rld80.xpm                     |   89 -
- pixmaps/rld87.xpm                     |   96 -
- pixmaps/rld95.xpm                     |  104 -
- pixmaps/rll108.xpm                    |  117 -
- pixmaps/rll116.xpm                    |  125 -
- pixmaps/rll129.xpm                    |  138 -
- pixmaps/rll21.xpm                     |   30 -
- pixmaps/rll25.xpm                     |   34 -
- pixmaps/rll29.xpm                     |   38 -
- pixmaps/rll33.xpm                     |   42 -
- pixmaps/rll37.xpm                     |   46 -
- pixmaps/rll40.xpm                     |   49 -
- pixmaps/rll45.xpm                     |   54 -
- pixmaps/rll49.xpm                     |   58 -
- pixmaps/rll54.xpm                     |   63 -
- pixmaps/rll58.xpm                     |   67 -
- pixmaps/rll64.xpm                     |   73 -
- pixmaps/rll72.xpm                     |   81 -
- pixmaps/rll80.xpm                     |   89 -
- pixmaps/rll87.xpm                     |   96 -
- pixmaps/rll95.xpm                     |  104 -
- pixmaps/sdd49.xpm                     |   58 -
- pixmaps/sdd72.xpm                     |   81 -
- pixmaps/sdl49.xpm                     |   58 -
- pixmaps/sdl72.xpm                     |   81 -
- pixmaps/sld49.xpm                     |   58 -
- pixmaps/sld72.xpm                     |   81 -
- pixmaps/sll49.xpm                     |   58 -
- pixmaps/sll72.xpm                     |   81 -
- pixmaps/test.c                        |   13 -
- pixmaps/udd49.xpm                     |   58 -
- pixmaps/udd72.xpm                     |   81 -
- pixmaps/udl49.xpm                     |   58 -
- pixmaps/udl72.xpm                     |   81 -
- pixmaps/uld49.xpm                     |   58 -
- pixmaps/uld72.xpm                     |   81 -
- pixmaps/ull49.xpm                     |   58 -
- pixmaps/ull72.xpm                     |   81 -
- pixmaps/vdd33.xpm                     |   42 -
- pixmaps/vdd49.xpm                     |   58 -
- pixmaps/vdd72.xpm                     |   81 -
- pixmaps/vdl33.xpm                     |   42 -
- pixmaps/vdl49.xpm                     |   58 -
- pixmaps/vdl72.xpm                     |   81 -
- pixmaps/vld33.xpm                     |   42 -
- pixmaps/vld49.xpm                     |   58 -
- pixmaps/vld72.xpm                     |   81 -
- pixmaps/vll33.xpm                     |   42 -
- pixmaps/vll49.xpm                     |   58 -
- pixmaps/vll72.xpm                     |   81 -
- pixmaps/wdd33.xpm                     |   42 -
- pixmaps/wdd49.xpm                     |   58 -
- pixmaps/wdd72.xpm                     |   81 -
- pixmaps/wdl33.xpm                     |   42 -
- pixmaps/wdl49.xpm                     |   58 -
- pixmaps/wdl72.xpm                     |   81 -
- pixmaps/wld33.xpm                     |   42 -
- pixmaps/wld49.xpm                     |   58 -
- pixmaps/wld72.xpm                     |   81 -
- pixmaps/wldd49.xpm                    |   58 -
- pixmaps/wldd72.xpm                    |   81 -
- pixmaps/wldl49.xpm                    |   58 -
- pixmaps/wldl72.xpm                    |   81 -
- pixmaps/wll33.xpm                     |   42 -
- pixmaps/wll49.xpm                     |   58 -
- pixmaps/wll72.xpm                     |   81 -
- pixmaps/wlld49.xpm                    |   58 -
- pixmaps/wlld72.xpm                    |   81 -
- pixmaps/wlll49.xpm                    |   58 -
- pixmaps/wlll72.xpm                    |   81 -
- pixmaps/wndd49.xpm                    |   58 -
- pixmaps/wndd72.xpm                    |   81 -
- pixmaps/wndl49.xpm                    |   58 -
- pixmaps/wndl72.xpm                    |   81 -
- pixmaps/wnld49.xpm                    |   58 -
- pixmaps/wnld72.xpm                    |   81 -
- pixmaps/wnll49.xpm                    |   58 -
- pixmaps/wnll72.xpm                    |   81 -
- pixmaps/wood_d.xpm                    |  239 --
- pixmaps/wood_l.xpm                    |  192 -
- pixmaps/wpdd49.xpm                    |   58 -
- pixmaps/wpdd72.xpm                    |   81 -
- pixmaps/wpdl49.xpm                    |   58 -
- pixmaps/wpdl72.xpm                    |   81 -
- pixmaps/wpld49.xpm                    |   58 -
- pixmaps/wpld72.xpm                    |   81 -
- pixmaps/wpll49.xpm                    |   58 -
- pixmaps/wpll72.xpm                    |   81 -
- pixmaps/wsdd49.xpm                    |   58 -
- pixmaps/wsdd72.xpm                    |   81 -
- pixmaps/wsdl49.xpm                    |   58 -
- pixmaps/wsdl72.xpm                    |   81 -
- pixmaps/wsld49.xpm                    |   58 -
- pixmaps/wsld72.xpm                    |   81 -
- pixmaps/wsll49.xpm                    |   58 -
- pixmaps/wsll72.xpm                    |   81 -
- pixmaps/xqboard.xpm                   |  498 ---
- pixmaps/xqwood.xpm                    |  597 ---
- png/BlackAdvisor.png                  |  Bin 0 -> 1928 bytes
- png/BlackArchbishop.png               |  Bin 0 -> 1856 bytes
- png/BlackBishop.png                   |  Bin 0 -> 1478 bytes
- png/BlackCanon.png                    |  Bin 0 -> 1302 bytes
- png/BlackChancellor.png               |  Bin 0 -> 2147 bytes
- png/BlackCobra.png                    |  Bin 0 -> 1308 bytes
- png/BlackCommoner.png                 |  Bin 0 -> 1954 bytes
- png/BlackCrownedBishop.png            |  Bin 0 -> 1537 bytes
- png/BlackCrownedRook.png              |  Bin 0 -> 1133 bytes
- png/BlackElephant.png                 |  Bin 0 -> 2437 bytes
- png/BlackGold.png                     |  Bin 0 -> 2198 bytes
- png/BlackGoldKnight.png               |  Bin 0 -> 2219 bytes
- png/BlackGoldLance.png                |  Bin 0 -> 2268 bytes
- png/BlackGoldPawn.png                 |  Bin 0 -> 1936 bytes
- png/BlackGoldSilver.png               |  Bin 0 -> 2161 bytes
- png/BlackHawk.png                     |  Bin 0 -> 2071 bytes
- png/BlackKing.png                     |  Bin 0 -> 3255 bytes
- png/BlackKnight.png                   |  Bin 0 -> 2715 bytes
- png/BlackLance.png                    |  Bin 0 -> 810 bytes
- png/BlackMarshall.png                 |  Bin 0 -> 2143 bytes
- png/BlackNightrider.png               |  Bin 0 -> 2930 bytes
- png/BlackPawn.png                     |  Bin 0 -> 800 bytes
- png/BlackPrincess.png                 |  Bin 0 -> 1845 bytes
- png/BlackQueen.png                    |  Bin 0 -> 2165 bytes
- png/BlackRook.png                     |  Bin 0 -> 885 bytes
- png/BlackUnicorn.png                  |  Bin 0 -> 2035 bytes
- png/WhiteAdvisor.png                  |  Bin 0 -> 2836 bytes
- png/WhiteArchbishop.png               |  Bin 0 -> 2452 bytes
- png/WhiteBishop.png                   |  Bin 0 -> 2607 bytes
- png/WhiteCanon.png                    |  Bin 0 -> 1914 bytes
- png/WhiteChancellor.png               |  Bin 0 -> 2490 bytes
- png/WhiteCobra.png                    |  Bin 0 -> 2336 bytes
- png/WhiteCommoner.png                 |  Bin 0 -> 2879 bytes
- png/WhiteCrownedBishop.png            |  Bin 0 -> 2626 bytes
- png/WhiteCrownedRook.png              |  Bin 0 -> 1492 bytes
- png/WhiteElephant.png                 |  Bin 0 -> 3871 bytes
- png/WhiteGold.png                     |  Bin 0 -> 3141 bytes
- png/WhiteGoldKnight.png               |  Bin 0 -> 3183 bytes
- png/WhiteGoldLance.png                |  Bin 0 -> 3240 bytes
- png/WhiteGoldPawn.png                 |  Bin 0 -> 2909 bytes
- png/WhiteGoldSilver.png               |  Bin 0 -> 3166 bytes
- png/WhiteHawk.png                     |  Bin 0 -> 3078 bytes
- png/WhiteKing.png                     |  Bin 0 -> 3159 bytes
- png/WhiteKnight.png                   |  Bin 0 -> 2926 bytes
- png/WhiteLance.png                    |  Bin 0 -> 1611 bytes
- png/WhiteMarshall.png                 |  Bin 0 -> 2876 bytes
- png/WhiteNightrider.png               |  Bin 0 -> 2926 bytes
- png/WhitePawn.png                     |  Bin 0 -> 1609 bytes
- png/WhitePrincess.png                 |  Bin 0 -> 3630 bytes
- png/WhiteQueen.png                    |  Bin 0 -> 4397 bytes
- png/WhiteRook.png                     |  Bin 0 -> 1072 bytes
- png/WhiteUnicorn.png                  |  Bin 0 -> 3162 bytes
- png/hatch.png                         |  Bin 0 -> 397 bytes
- png/marble_d.png                      |  Bin 0 -> 40546 bytes
- png/marble_l.png                      |  Bin 0 -> 47660 bytes
- png/wood_d.png                        |  Bin 0 -> 34729 bytes
- png/wood_l.png                        |  Bin 0 -> 30195 bytes
- png/xqboard.png                       |  Bin 0 -> 4423 bytes
- png/xqwood.png                        |  Bin 0 -> 359345 bytes
- po/POTFILES.in                        |   25 +-
- po/da.po                              | 3791 ++++++++++---------
- po/de.po                              | 3806 ++++++++++---------
- po/es.po                              | 3341 ++++++++--------
- po/it.po                              | 3331 ++++++++--------
- po/lng2po.sh                          |    2 +-
- po/ru.po                              | 3343 ++++++++--------
- po/tr.po                              | 3017 ++++++++-------
- po/uk.po                              | 3831 ++++++++++---------
- po/vi.po                              | 3120 ++++++++-------
- po/xboard.pot                         | 2609 +++++++------
- po/zh_CN.po                           | 3332 ++++++++--------
- po/zh_HK.po                           | 3316 ++++++++--------
- po/zh_TW.po                           | 3302 ++++++++--------
- shogipixmaps/bdd64.xpm                |   73 -
- shogipixmaps/bdl64.xpm                |   73 -
- shogipixmaps/bld64.xpm                |   74 -
- shogipixmaps/bll64.xpm                |   74 -
- shogipixmaps/fdd64.xpm                |   73 -
- shogipixmaps/fdl64.xpm                |   73 -
- shogipixmaps/fld64.xpm                |   74 -
- shogipixmaps/fll64.xpm                |   74 -
- shogipixmaps/kdd64.xpm                |   73 -
- shogipixmaps/kdl64.xpm                |   73 -
- shogipixmaps/kld64.xpm                |   73 -
- shogipixmaps/kll64.xpm                |   73 -
- shogipixmaps/ldd64.xpm                |   73 -
- shogipixmaps/ldl64.xpm                |   73 -
- shogipixmaps/lld64.xpm                |   73 -
- shogipixmaps/lll64.xpm                |   73 -
- shogipixmaps/ndd64.xpm                |   73 -
- shogipixmaps/ndl64.xpm                |   73 -
- shogipixmaps/nld64.xpm                |   74 -
- shogipixmaps/nll64.xpm                |   74 -
- shogipixmaps/pdd64.xpm                |   73 -
- shogipixmaps/pdl64.xpm                |   73 -
- shogipixmaps/pld64.xpm                |   74 -
- shogipixmaps/pll64.xpm                |   74 -
- shogipixmaps/qdd64.xpm                |   73 -
- shogipixmaps/qdl64.xpm                |   73 -
- shogipixmaps/qld64.xpm                |   73 -
- shogipixmaps/qll64.xpm                |   73 -
- shogipixmaps/rdd64.xpm                |   73 -
- shogipixmaps/rdl64.xpm                |   73 -
- shogipixmaps/rld64.xpm                |   73 -
- shogipixmaps/rll64.xpm                |   73 -
- shogipixmaps/wdd64.xpm                |   73 -
- shogipixmaps/wdl64.xpm                |   73 -
- shogipixmaps/wld64.xpm                |   73 -
- shogipixmaps/wldd64.xpm               |   73 -
- shogipixmaps/wldl64.xpm               |   73 -
- shogipixmaps/wll64.xpm                |   73 -
- shogipixmaps/wlld64.xpm               |   73 -
- shogipixmaps/wlll64.xpm               |   73 -
- shogipixmaps/wndd64.xpm               |   73 -
- shogipixmaps/wndl64.xpm               |   73 -
- shogipixmaps/wnld64.xpm               |   73 -
- shogipixmaps/wnll64.xpm               |   73 -
- shogipixmaps/wpdd64.xpm               |   73 -
- shogipixmaps/wpdl64.xpm               |   73 -
- shogipixmaps/wpld64.xpm               |   73 -
- shogipixmaps/wpll64.xpm               |   73 -
- shogipixmaps/wsdd64.xpm               |   73 -
- shogipixmaps/wsdl64.xpm               |   73 -
- shogipixmaps/wsld64.xpm               |   73 -
- shogipixmaps/wsll64.xpm               |   73 -
- svg/BlackAdvisor.svg                  |   70 +
- svg/BlackArchbishop.svg               |   92 +
- svg/BlackBishop.svg                   |   78 +
- svg/BlackCanon.svg                    |   68 +
- svg/BlackChancellor.svg               |   73 +
- svg/BlackCobra.svg                    |   78 +
- svg/BlackCommoner.svg                 |   71 +
- svg/BlackCrownedBishop.svg            |   73 +
- svg/BlackCrownedRook.svg              |   82 +
- svg/BlackElephant.svg                 |   98 +
- svg/BlackGold.svg                     |   63 +
- svg/BlackGoldKnight.svg               |   63 +
- svg/BlackGoldLance.svg                |   63 +
- svg/BlackGoldPawn.svg                 |   58 +
- svg/BlackGoldSilver.svg               |   63 +
- svg/BlackHawk.svg                     |   98 +
- svg/BlackKing.svg                     |   83 +
- svg/BlackKnight.svg                   |   48 +
- svg/BlackLance.svg                    |   58 +
- svg/BlackMarshall.svg                 |   77 +
- svg/BlackNightrider.svg               |   58 +
- svg/BlackPawn.svg                     |   38 +
- svg/BlackPrincess.svg                 |   98 +
- svg/BlackQueen.svg                    |   58 +
- svg/BlackRook.svg                     |   78 +
- svg/BlackUnicorn.svg                  |   63 +
- svg/WhiteAdvisor.svg                  |   65 +
- svg/WhiteArchbishop.svg               |   86 +
- svg/WhiteBishop.svg                   |   72 +
- svg/WhiteCanon.svg                    |   62 +
- svg/WhiteChancellor.svg               |   91 +
- svg/WhiteCobra.svg                    |   68 +
- svg/WhiteCommoner.svg                 |   63 +
- svg/WhiteCrownedBishop.svg            |   68 +
- svg/WhiteCrownedRook.svg              |   73 +
- svg/WhiteElephant.svg                 |   87 +
- svg/WhiteGold.svg                     |   63 +
- svg/WhiteGoldKnight.svg               |   63 +
- svg/WhiteGoldLance.svg                |   63 +
- svg/WhiteGoldPawn.svg                 |   58 +
- svg/WhiteGoldSilver.svg               |   63 +
- svg/WhiteHawk.svg                     |   94 +
- svg/WhiteKing.svg                     |   73 +
- svg/WhiteKnight.svg                   |   58 +
- svg/WhiteLance.svg                    |   58 +
- svg/WhiteMarshall.svg                 |   80 +
- svg/WhiteNightrider.svg               |   58 +
- svg/WhitePawn.svg                     |   38 +
- svg/WhitePrincess.svg                 |   98 +
- svg/WhiteQueen.svg                    |  110 +
- svg/WhiteRook.svg                     |   68 +
- svg/WhiteUnicorn.svg                  |   77 +
- svg/eo_Analyzing.svg                  |  115 +
- svg/eo_Black.svg                      |   84 +
- svg/eo_Clear.svg                      |   36 +
- svg/eo_Ponder.svg                     |  111 +
- svg/eo_Thinking.svg                   |  132 +
- svg/eo_Unknown.svg                    |   84 +
- svg/eo_White.svg                      |   84 +
- svg/icon_black.svg                    |   41 +
- svg/icon_white.svg                    |   41 +
- themes/Mono/BlackAdvisor.svg          |   92 +
- themes/Mono/BlackArchbishop.svg       |  111 +
- themes/Mono/BlackBishop.svg           |  100 +
- themes/Mono/BlackCanon.svg            |   92 +
- themes/Mono/BlackChancellor.svg       |   90 +
- themes/Mono/BlackCobra.svg            |   99 +
- themes/Mono/BlackCommoner.svg         |   92 +
- themes/Mono/BlackCrownedBishop.svg    |   95 +
- themes/Mono/BlackCrownedRook.svg      |  106 +
- themes/Mono/BlackElephant.svg         |  120 +
- themes/Mono/BlackGold.svg             |   85 +
- themes/Mono/BlackGoldKnight.svg       |   85 +
- themes/Mono/BlackGoldLance.svg        |   85 +
- themes/Mono/BlackGoldPawn.svg         |   80 +
- themes/Mono/BlackGoldSilver.svg       |   85 +
- themes/Mono/BlackHawk.svg             |  125 +
- themes/Mono/BlackKing.svg             |  104 +
- themes/Mono/BlackKnight.svg           |   66 +
- themes/Mono/BlackLance.svg            |   81 +
- themes/Mono/BlackMarshall.svg         |   99 +
- themes/Mono/BlackNightrider.svg       |   76 +
- themes/Mono/BlackPawn.svg             |   65 +
- themes/Mono/BlackPrincess.svg         |  120 +
- themes/Mono/BlackQueen.svg            |   80 +
- themes/Mono/BlackRook.svg             |  106 +
- themes/Mono/BlackUnicorn.svg          |   81 +
- themes/Mono/WhiteAdvisor.svg          |   89 +
- themes/Mono/WhiteArchbishop.svg       |  112 +
- themes/Mono/WhiteBishop.svg           |   97 +
- themes/Mono/WhiteCanon.svg            |   86 +
- themes/Mono/WhiteChancellor.svg       |  105 +
- themes/Mono/WhiteCobra.svg            |   92 +
- themes/Mono/WhiteCommoner.svg         |   87 +
- themes/Mono/WhiteCrownedBishop.svg    |   92 +
- themes/Mono/WhiteCrownedRook.svg      |   97 +
- themes/Mono/WhiteElephant.svg         |  107 +
- themes/Mono/WhiteGold.svg             |   87 +
- themes/Mono/WhiteGoldKnight.svg       |   80 +
- themes/Mono/WhiteGoldLance.svg        |   87 +
- themes/Mono/WhiteGoldPawn.svg         |   82 +
- themes/Mono/WhiteGoldSilver.svg       |   87 +
- themes/Mono/WhiteHawk.svg             |  120 +
- themes/Mono/WhiteKing.svg             |   97 +
- themes/Mono/WhiteKnight.svg           |   75 +
- themes/Mono/WhiteLance.svg            |   75 +
- themes/Mono/WhiteMarshall.svg         |  106 +
- themes/Mono/WhiteNightrider.svg       |   72 +
- themes/Mono/WhitePawn.svg             |   62 +
- themes/Mono/WhitePrincess.svg         |  122 +
- themes/Mono/WhiteQueen.svg            |  134 +
- themes/Mono/WhiteRook.svg             |   92 +
- themes/Mono/WhiteUnicorn.svg          |   85 +
- themes/Mono/eo_Analyzing.svg          |   71 +
- themes/Mono/eo_Black.svg              |   64 +
- themes/Mono/eo_Clear.svg              |   36 +
- themes/Mono/eo_Ponder.svg             |   71 +
- themes/Mono/eo_Thinking.svg           |  185 +
- themes/Mono/eo_Unknown.svg            |   36 +
- themes/Mono/eo_White.svg              |   36 +
- themes/Mono/icon_black.svg            |   41 +
- themes/Mono/icon_white.svg            |   41 +
- themes/Mono/shogi_bishop.svg          |  119 +
- themes/Mono/shogi_bishop_promoted.svg |   83 +
- themes/Mono/shogi_gold.svg            |  153 +
- themes/Mono/shogi_king.svg            |  125 +
- themes/Mono/shogi_knight.svg          |  138 +
- themes/Mono/shogi_knight_promoted.svg |   65 +
- themes/Mono/shogi_lance.svg           |  134 +
- themes/Mono/shogi_lance_promoted.svg  |   65 +
- themes/Mono/shogi_pawn.svg            |  108 +
- themes/Mono/shogi_pawn_promoted.svg   |   54 +
- themes/Mono/shogi_rook.svg            |  137 +
- themes/Mono/shogi_rook_promoted.svg   |  112 +
- themes/Mono/shogi_silver.svg          |  163 +
- themes/Mono/shogi_silver_promoted.svg |   73 +
- themes/shogi/BlackAdvisor.svg         |  187 +
- themes/shogi/BlackBishop.svg          |  143 +
- themes/shogi/BlackCrownedBishop.svg   |  107 +
- themes/shogi/BlackCrownedRook.svg     |  136 +
- themes/shogi/BlackGold.svg            |  177 +
- themes/shogi/BlackGoldKnight.svg      |   89 +
- themes/shogi/BlackGoldLance.svg       |   89 +
- themes/shogi/BlackGoldPawn.svg        |   78 +
- themes/shogi/BlackGoldSilver.svg      |   97 +
- themes/shogi/BlackKing.svg            |  149 +
- themes/shogi/BlackKnight.svg          |  162 +
- themes/shogi/BlackLance.svg           |  158 +
- themes/shogi/BlackPawn.svg            |  132 +
- themes/shogi/BlackRook.svg            |  161 +
- themes/shogi/WhiteAdvisor.svg         |  163 +
- themes/shogi/WhiteBishop.svg          |  119 +
- themes/shogi/WhiteCrownedBishop.svg   |   83 +
- themes/shogi/WhiteCrownedRook.svg     |  112 +
- themes/shogi/WhiteGold.svg            |  153 +
- themes/shogi/WhiteGoldKnight.svg      |   65 +
- themes/shogi/WhiteGoldLance.svg       |   65 +
- themes/shogi/WhiteGoldPawn.svg        |   54 +
- themes/shogi/WhiteGoldSilver.svg      |   73 +
- themes/shogi/WhiteKing.svg            |  125 +
- themes/shogi/WhiteKnight.svg          |  138 +
- themes/shogi/WhiteLance.svg           |  134 +
- themes/shogi/WhitePawn.svg            |  108 +
- themes/shogi/WhiteRook.svg            |  137 +
- themes/xiangqi/.DS_Store              |  Bin 0 -> 6148 bytes
- themes/xiangqi/BlackAdvisor.svg       |   86 +
- themes/xiangqi/BlackCanon.svg         |   81 +
- themes/xiangqi/BlackElephant.svg      |   80 +
- themes/xiangqi/BlackGold.svg          |   80 +
- themes/xiangqi/BlackKnight.svg        |   81 +
- themes/xiangqi/BlackPawn.svg          |   83 +
- themes/xiangqi/BlackRook.svg          |   80 +
- themes/xiangqi/WhiteAdvisor.svg       |   90 +
- themes/xiangqi/WhiteCanon.svg         |   85 +
- themes/xiangqi/WhiteElephant.svg      |   85 +
- themes/xiangqi/WhiteGold.svg          |   85 +
- themes/xiangqi/WhiteKnight.svg        |   85 +
- themes/xiangqi/WhitePawn.svg          |   85 +
- themes/xiangqi/WhiteRook.svg          |   86 +
- uci.c                                 |    2 +-
- usounds.c                             |  174 +
- usystem.c                             |  792 ++++
- usystem.h                             |   75 +
- winboard/config.h                     |    6 +-
- winboard/defaults.h                   |    2 +-
- winboard/help.c                       |    2 +-
- winboard/help/html/24.htm             |    2 +-
- winboard/jaws.c                       |    2 +-
- winboard/language.txt                 |   45 +-
- winboard/language/deutsch.lng         |    2 +-
- winboard/language/italiano.lng        |    2 +-
- winboard/language/nederlands.lng      |   46 +-
- winboard/language/romanian.lng        |    2 +-
- winboard/language/russian.lng         |    2 +-
- winboard/language/spanish.lng         |    2 +-
- winboard/language/vietnamese.lng      |    2 +-
- winboard/resource.h                   |    7 +-
- winboard/wchat.c                      |    2 +-
- winboard/wclipbrd.c                   |    2 +-
- winboard/wclipbrd.h                   |    2 +-
- winboard/wedittags.c                  |    2 +-
- winboard/wengineoutput.c              |    4 +-
- winboard/wevalgraph.c                 |    4 +-
- winboard/wgamelist.c                  |   23 +-
- winboard/winboard.c                   |  259 +-
- winboard/winboard.h                   |    6 +-
- winboard/winboard.rc                  |   28 +-
- winboard/wlayout.c                    |   12 +-
- winboard/woptions.c                   |   46 +-
- winboard/woptions.h                   |    2 +-
- winboard/wsettings.c                  |  250 +-
- winboard/wsockerr.c                   |    2 +-
- winboard/wsockerr.h                   |    2 +-
- xaw/.dirstamp                         |    0
- xaw/xboard.c                          | 2600 +++++++++++++
- xaw/xboard.h                          |  176 +
- xaw/xengineoutput.c                   |  285 ++
- xaw/xgamelist.c                       |  117 +
- xaw/xgamelist.h                       |   31 +
- xaw/xhistory.c                        |  111 +
- xaw/xhistory.h                        |   30 +
- xaw/xoptions.c                        | 1365 +++++++
- xboard-config.desktop                 |   52 +
- xboard.c                              | 8845 -------------------------------------------
- xboard.conf.in                        |   19 +-
- xboard.h                              |  177 -
- xboard.texi                           |  289 +-
- xboard.xml                            |    6 +
- xboard2.h                             |    9 +
- xedittags.c                           |  128 -
- xedittags.h                           |   31 -
- xengineoutput.c                       |  617 ---
- xevalgraph.c                          |  443 ---
- xevalgraph.h                          |   29 -
- xgamelist.c                           |  930 -----
- xgamelist.h                           |   35 -
- xhistory.c                            |  168 -
- xhistory.h                            |   32 -
- xoptions.c                            | 1912 ----------
- zic2xpm.c                             |    2 +-
- zic2xpm.man                           |    2 +-
- zippy.c                               |   12 +-
- zippy.h                               |    2 +-
- 1574 files changed, 63046 insertions(+), 113777 deletions(-)
- delete mode 100644 bitmaps/README.bitmaps
- delete mode 100644 bitmaps/a33o.bm
- delete mode 100644 bitmaps/a33s.bm
- delete mode 100644 bitmaps/a37o.bm
- delete mode 100644 bitmaps/a37s.bm
- delete mode 100644 bitmaps/a40o.bm
- delete mode 100644 bitmaps/a40s.bm
- delete mode 100644 bitmaps/a45o.bm
- delete mode 100644 bitmaps/a45s.bm
- delete mode 100644 bitmaps/a49o.bm
- delete mode 100644 bitmaps/a49s.bm
- delete mode 100644 bitmaps/a54o.bm
- delete mode 100644 bitmaps/a54s.bm
- delete mode 100644 bitmaps/a58o.bm
- delete mode 100644 bitmaps/a58s.bm
- delete mode 100644 bitmaps/a64o.bm
- delete mode 100644 bitmaps/a64s.bm
- delete mode 100644 bitmaps/a72o.bm
- delete mode 100644 bitmaps/a72s.bm
- delete mode 100644 bitmaps/as45o.bm
- delete mode 100644 bitmaps/as45s.bm
- delete mode 100644 bitmaps/b108o.bm
- delete mode 100644 bitmaps/b108s.bm
- delete mode 100644 bitmaps/b116o.bm
- delete mode 100644 bitmaps/b116s.bm
- delete mode 100644 bitmaps/b129o.bm
- delete mode 100644 bitmaps/b129s.bm
- delete mode 100644 bitmaps/b21o.bm
- delete mode 100644 bitmaps/b21s.bm
- delete mode 100644 bitmaps/b25o.bm
- delete mode 100644 bitmaps/b25s.bm
- delete mode 100644 bitmaps/b29o.bm
- delete mode 100644 bitmaps/b29s.bm
- delete mode 100644 bitmaps/b33o.bm
- delete mode 100644 bitmaps/b33s.bm
- delete mode 100644 bitmaps/b37o.bm
- delete mode 100644 bitmaps/b37s.bm
- delete mode 100644 bitmaps/b40o.bm
- delete mode 100644 bitmaps/b40s.bm
- delete mode 100644 bitmaps/b45o.bm
- delete mode 100644 bitmaps/b45s.bm
- delete mode 100644 bitmaps/b49o.bm
- delete mode 100644 bitmaps/b49s.bm
- delete mode 100644 bitmaps/b54o.bm
- delete mode 100644 bitmaps/b54s.bm
- delete mode 100644 bitmaps/b58o.bm
- delete mode 100644 bitmaps/b58s.bm
- delete mode 100644 bitmaps/b64o.bm
- delete mode 100644 bitmaps/b64s.bm
- delete mode 100644 bitmaps/b72o.bm
- delete mode 100644 bitmaps/b72s.bm
- delete mode 100644 bitmaps/b80o.bm
- delete mode 100644 bitmaps/b80s.bm
- delete mode 100644 bitmaps/b87o.bm
- delete mode 100644 bitmaps/b87s.bm
- delete mode 100644 bitmaps/b95o.bm
- delete mode 100644 bitmaps/b95s.bm
- delete mode 100644 bitmaps/bitmaps.h
- delete mode 100644 bitmaps/c33o.bm
- delete mode 100644 bitmaps/c33s.bm
- delete mode 100644 bitmaps/c37o.bm
- delete mode 100644 bitmaps/c37s.bm
- delete mode 100644 bitmaps/c40o.bm
- delete mode 100644 bitmaps/c40s.bm
- delete mode 100644 bitmaps/c45o.bm
- delete mode 100644 bitmaps/c45s.bm
- delete mode 100644 bitmaps/c49o.bm
- delete mode 100644 bitmaps/c49s.bm
- delete mode 100644 bitmaps/c54o.bm
- delete mode 100644 bitmaps/c54s.bm
- delete mode 100644 bitmaps/c58o.bm
- delete mode 100644 bitmaps/c58s.bm
- delete mode 100644 bitmaps/c64o.bm
- delete mode 100644 bitmaps/c64s.bm
- delete mode 100644 bitmaps/c72o.bm
- delete mode 100644 bitmaps/c72s.bm
- delete mode 100644 bitmaps/d33o.bm
- delete mode 100644 bitmaps/d33s.bm
- delete mode 100644 bitmaps/d37o.bm
- delete mode 100644 bitmaps/d37s.bm
- delete mode 100644 bitmaps/d40o.bm
- delete mode 100644 bitmaps/d40s.bm
- delete mode 100644 bitmaps/d45o.bm
- delete mode 100644 bitmaps/d45s.bm
- delete mode 100644 bitmaps/d49o.bm
- delete mode 100644 bitmaps/d49s.bm
- delete mode 100644 bitmaps/d54o.bm
- delete mode 100644 bitmaps/d54s.bm
- delete mode 100644 bitmaps/d58o.bm
- delete mode 100644 bitmaps/d58s.bm
- delete mode 100644 bitmaps/d64o.bm
- delete mode 100644 bitmaps/d64s.bm
- delete mode 100644 bitmaps/d72o.bm
- delete mode 100644 bitmaps/d72s.bm
- delete mode 100644 bitmaps/dopkbm.sh
- delete mode 100644 bitmaps/dopkbm1.sh
- delete mode 100644 bitmaps/e33o.bm
- delete mode 100644 bitmaps/e33s.bm
- delete mode 100644 bitmaps/e49o.bm
- delete mode 100644 bitmaps/e49s.bm
- delete mode 100644 bitmaps/e72o.bm
- delete mode 100644 bitmaps/e72s.bm
- delete mode 100644 bitmaps/f33o.bm
- delete mode 100644 bitmaps/f33s.bm
- delete mode 100644 bitmaps/f49o.bm
- delete mode 100644 bitmaps/f49s.bm
- delete mode 100644 bitmaps/f72o.bm
- delete mode 100644 bitmaps/f72s.bm
- delete mode 100644 bitmaps/g33o.bm
- delete mode 100644 bitmaps/g33s.bm
- delete mode 100644 bitmaps/g49o.bm
- delete mode 100644 bitmaps/g49s.bm
- delete mode 100644 bitmaps/g72o.bm
- delete mode 100644 bitmaps/g72s.bm
- delete mode 100644 bitmaps/h33o.bm
- delete mode 100644 bitmaps/h33s.bm
- delete mode 100644 bitmaps/h49o.bm
- delete mode 100644 bitmaps/h49s.bm
- delete mode 100644 bitmaps/h72o.bm
- delete mode 100644 bitmaps/h72s.bm
- delete mode 100644 bitmaps/i33o.bm
- delete mode 100644 bitmaps/i33s.bm
- delete mode 100644 bitmaps/i49o.bm
- delete mode 100644 bitmaps/i49s.bm
- delete mode 100644 bitmaps/i72o.bm
- delete mode 100644 bitmaps/i72s.bm
- delete mode 100644 bitmaps/icon_b.bm
- delete mode 100644 bitmaps/icon_outline.bm
- delete mode 100644 bitmaps/j33o.bm
- delete mode 100644 bitmaps/j33s.bm
- delete mode 100644 bitmaps/j49o.bm
- delete mode 100644 bitmaps/j49s.bm
- delete mode 100644 bitmaps/j72o.bm
- delete mode 100644 bitmaps/j72s.bm
- delete mode 100644 bitmaps/k108o.bm
- delete mode 100644 bitmaps/k108s.bm
- delete mode 100644 bitmaps/k116o.bm
- delete mode 100644 bitmaps/k116s.bm
- delete mode 100644 bitmaps/k129o.bm
- delete mode 100644 bitmaps/k129s.bm
- delete mode 100644 bitmaps/k21o.bm
- delete mode 100644 bitmaps/k21s.bm
- delete mode 100644 bitmaps/k25o.bm
- delete mode 100644 bitmaps/k25s.bm
- delete mode 100644 bitmaps/k29o.bm
- delete mode 100644 bitmaps/k29s.bm
- delete mode 100644 bitmaps/k33o.bm
- delete mode 100644 bitmaps/k33s.bm
- delete mode 100644 bitmaps/k37o.bm
- delete mode 100644 bitmaps/k37s.bm
- delete mode 100644 bitmaps/k40o.bm
- delete mode 100644 bitmaps/k40s.bm
- delete mode 100644 bitmaps/k45o.bm
- delete mode 100644 bitmaps/k45s.bm
- delete mode 100644 bitmaps/k49o.bm
- delete mode 100644 bitmaps/k49s.bm
- delete mode 100644 bitmaps/k54o.bm
- delete mode 100644 bitmaps/k54s.bm
- delete mode 100644 bitmaps/k58o.bm
- delete mode 100644 bitmaps/k58s.bm
- delete mode 100644 bitmaps/k64o.bm
- delete mode 100644 bitmaps/k64s.bm
- delete mode 100644 bitmaps/k72o.bm
- delete mode 100644 bitmaps/k72s.bm
- delete mode 100644 bitmaps/k80o.bm
- delete mode 100644 bitmaps/k80s.bm
- delete mode 100644 bitmaps/k87o.bm
- delete mode 100644 bitmaps/k87s.bm
- delete mode 100644 bitmaps/k95o.bm
- delete mode 100644 bitmaps/k95s.bm
- delete mode 100644 bitmaps/l33o.bm
- delete mode 100644 bitmaps/l33s.bm
- delete mode 100644 bitmaps/l37o.bm
- delete mode 100644 bitmaps/l37s.bm
- delete mode 100644 bitmaps/l40o.bm
- delete mode 100644 bitmaps/l40s.bm
- delete mode 100644 bitmaps/l45o.bm
- delete mode 100644 bitmaps/l45s.bm
- delete mode 100644 bitmaps/l49o.bm
- delete mode 100644 bitmaps/l49s.bm
- delete mode 100644 bitmaps/l54o.bm
- delete mode 100644 bitmaps/l54s.bm
- delete mode 100644 bitmaps/l58o.bm
- delete mode 100644 bitmaps/l58s.bm
- delete mode 100644 bitmaps/l64o.bm
- delete mode 100644 bitmaps/l64s.bm
- delete mode 100644 bitmaps/l72o.bm
- delete mode 100644 bitmaps/l72s.bm
- delete mode 100644 bitmaps/m33o.bm
- delete mode 100644 bitmaps/m33s.bm
- delete mode 100644 bitmaps/m49o.bm
- delete mode 100644 bitmaps/m49s.bm
- delete mode 100644 bitmaps/m72o.bm
- delete mode 100644 bitmaps/m72s.bm
- delete mode 100644 bitmaps/n108o.bm
- delete mode 100644 bitmaps/n108s.bm
- delete mode 100644 bitmaps/n116o.bm
- delete mode 100644 bitmaps/n116s.bm
- delete mode 100644 bitmaps/n129o.bm
- delete mode 100644 bitmaps/n129s.bm
- delete mode 100644 bitmaps/n21o.bm
- delete mode 100644 bitmaps/n21s.bm
- delete mode 100644 bitmaps/n25o.bm
- delete mode 100644 bitmaps/n25s.bm
- delete mode 100644 bitmaps/n29o.bm
- delete mode 100644 bitmaps/n29s.bm
- delete mode 100644 bitmaps/n33o.bm
- delete mode 100644 bitmaps/n33s.bm
- delete mode 100644 bitmaps/n37o.bm
- delete mode 100644 bitmaps/n37s.bm
- delete mode 100644 bitmaps/n40o.bm
- delete mode 100644 bitmaps/n40s.bm
- delete mode 100644 bitmaps/n45o.bm
- delete mode 100644 bitmaps/n45s.bm
- delete mode 100644 bitmaps/n49o.bm
- delete mode 100644 bitmaps/n49s.bm
- delete mode 100644 bitmaps/n54o.bm
- delete mode 100644 bitmaps/n54s.bm
- delete mode 100644 bitmaps/n58o.bm
- delete mode 100644 bitmaps/n58s.bm
- delete mode 100644 bitmaps/n64o.bm
- delete mode 100644 bitmaps/n64s.bm
- delete mode 100644 bitmaps/n72o.bm
- delete mode 100644 bitmaps/n72s.bm
- delete mode 100644 bitmaps/n80o.bm
- delete mode 100644 bitmaps/n80s.bm
- delete mode 100644 bitmaps/n87o.bm
- delete mode 100644 bitmaps/n87s.bm
- delete mode 100644 bitmaps/n95o.bm
- delete mode 100644 bitmaps/n95s.bm
- delete mode 100644 bitmaps/o33o.bm
- delete mode 100644 bitmaps/o33s.bm
- delete mode 100644 bitmaps/o49o.bm
- delete mode 100644 bitmaps/o49s.bm
- delete mode 100644 bitmaps/o72o.bm
- delete mode 100644 bitmaps/o72s.bm
- delete mode 100644 bitmaps/p108o.bm
- delete mode 100644 bitmaps/p108s.bm
- delete mode 100644 bitmaps/p116o.bm
- delete mode 100644 bitmaps/p116s.bm
- delete mode 100644 bitmaps/p129o.bm
- delete mode 100644 bitmaps/p129s.bm
- delete mode 100644 bitmaps/p21o.bm
- delete mode 100644 bitmaps/p21s.bm
- delete mode 100644 bitmaps/p25o.bm
- delete mode 100644 bitmaps/p25s.bm
- delete mode 100644 bitmaps/p29o.bm
- delete mode 100644 bitmaps/p29s.bm
- delete mode 100644 bitmaps/p33o.bm
- delete mode 100644 bitmaps/p33s.bm
- delete mode 100644 bitmaps/p37o.bm
- delete mode 100644 bitmaps/p37s.bm
- delete mode 100644 bitmaps/p40o.bm
- delete mode 100644 bitmaps/p40s.bm
- delete mode 100644 bitmaps/p45o.bm
- delete mode 100644 bitmaps/p45s.bm
- delete mode 100644 bitmaps/p49o.bm
- delete mode 100644 bitmaps/p49s.bm
- delete mode 100644 bitmaps/p54o.bm
- delete mode 100644 bitmaps/p54s.bm
- delete mode 100644 bitmaps/p58o.bm
- delete mode 100644 bitmaps/p58s.bm
- delete mode 100644 bitmaps/p64o.bm
- delete mode 100644 bitmaps/p64s.bm
- delete mode 100644 bitmaps/p72o.bm
- delete mode 100644 bitmaps/p72s.bm
- delete mode 100644 bitmaps/p80o.bm
- delete mode 100644 bitmaps/p80s.bm
- delete mode 100644 bitmaps/p87o.bm
- delete mode 100644 bitmaps/p87s.bm
- delete mode 100644 bitmaps/p95o.bm
- delete mode 100644 bitmaps/p95s.bm
- delete mode 100644 bitmaps/q108o.bm
- delete mode 100644 bitmaps/q108s.bm
- delete mode 100644 bitmaps/q116o.bm
- delete mode 100644 bitmaps/q116s.bm
- delete mode 100644 bitmaps/q129o.bm
- delete mode 100644 bitmaps/q129s.bm
- delete mode 100644 bitmaps/q21o.bm
- delete mode 100644 bitmaps/q21s.bm
- delete mode 100644 bitmaps/q25o.bm
- delete mode 100644 bitmaps/q25s.bm
- delete mode 100644 bitmaps/q29o.bm
- delete mode 100644 bitmaps/q29s.bm
- delete mode 100644 bitmaps/q33o.bm
- delete mode 100644 bitmaps/q33s.bm
- delete mode 100644 bitmaps/q37o.bm
- delete mode 100644 bitmaps/q37s.bm
- delete mode 100644 bitmaps/q40o.bm
- delete mode 100644 bitmaps/q40s.bm
- delete mode 100644 bitmaps/q45o.bm
- delete mode 100644 bitmaps/q45s.bm
- delete mode 100644 bitmaps/q49o.bm
- delete mode 100644 bitmaps/q49s.bm
- delete mode 100644 bitmaps/q54o.bm
- delete mode 100644 bitmaps/q54s.bm
- delete mode 100644 bitmaps/q58o.bm
- delete mode 100644 bitmaps/q58s.bm
- delete mode 100644 bitmaps/q64o.bm
- delete mode 100644 bitmaps/q64s.bm
- delete mode 100644 bitmaps/q72o.bm
- delete mode 100644 bitmaps/q72s.bm
- delete mode 100644 bitmaps/q80o.bm
- delete mode 100644 bitmaps/q80s.bm
- delete mode 100644 bitmaps/q87o.bm
- delete mode 100644 bitmaps/q87s.bm
- delete mode 100644 bitmaps/q95o.bm
- delete mode 100644 bitmaps/q95s.bm
- delete mode 100644 bitmaps/r108o.bm
- delete mode 100644 bitmaps/r108s.bm
- delete mode 100644 bitmaps/r116o.bm
- delete mode 100644 bitmaps/r116s.bm
- delete mode 100644 bitmaps/r129o.bm
- delete mode 100644 bitmaps/r129s.bm
- delete mode 100644 bitmaps/r21o.bm
- delete mode 100644 bitmaps/r21s.bm
- delete mode 100644 bitmaps/r25o.bm
- delete mode 100644 bitmaps/r25s.bm
- delete mode 100644 bitmaps/r29o.bm
- delete mode 100644 bitmaps/r29s.bm
- delete mode 100644 bitmaps/r33o.bm
- delete mode 100644 bitmaps/r33s.bm
- delete mode 100644 bitmaps/r37o.bm
- delete mode 100644 bitmaps/r37s.bm
- delete mode 100644 bitmaps/r40o.bm
- delete mode 100644 bitmaps/r40s.bm
- delete mode 100644 bitmaps/r45o.bm
- delete mode 100644 bitmaps/r45s.bm
- delete mode 100644 bitmaps/r49o.bm
- delete mode 100644 bitmaps/r49s.bm
- delete mode 100644 bitmaps/r54o.bm
- delete mode 100644 bitmaps/r54s.bm
- delete mode 100644 bitmaps/r58o.bm
- delete mode 100644 bitmaps/r58s.bm
- delete mode 100644 bitmaps/r64o.bm
- delete mode 100644 bitmaps/r64s.bm
- delete mode 100644 bitmaps/r72o.bm
- delete mode 100644 bitmaps/r72s.bm
- delete mode 100644 bitmaps/r80o.bm
- delete mode 100644 bitmaps/r80s.bm
- delete mode 100644 bitmaps/r87o.bm
- delete mode 100644 bitmaps/r87s.bm
- delete mode 100644 bitmaps/r95o.bm
- delete mode 100644 bitmaps/r95s.bm
- delete mode 100644 bitmaps/s49o.bm
- delete mode 100644 bitmaps/s49s.bm
- delete mode 100644 bitmaps/s72o.bm
- delete mode 100644 bitmaps/s72s.bm
- delete mode 100644 bitmaps/test.c
- delete mode 100644 bitmaps/u49o.bm
- delete mode 100644 bitmaps/u49s.bm
- delete mode 100644 bitmaps/u72o.bm
- delete mode 100644 bitmaps/u72s.bm
- delete mode 100644 bitmaps/v33o.bm
- delete mode 100644 bitmaps/v33s.bm
- delete mode 100644 bitmaps/v49o.bm
- delete mode 100644 bitmaps/v49s.bm
- delete mode 100644 bitmaps/v72o.bm
- delete mode 100644 bitmaps/v72s.bm
- delete mode 100644 bitmaps/w33o.bm
- delete mode 100644 bitmaps/w33s.bm
- delete mode 100644 bitmaps/w49o.bm
- delete mode 100644 bitmaps/w49s.bm
- delete mode 100644 bitmaps/w72o.bm
- delete mode 100644 bitmaps/w72s.bm
- delete mode 100644 bitmaps/wl49o.bm
- delete mode 100644 bitmaps/wl49s.bm
- delete mode 100644 bitmaps/wl72o.bm
- delete mode 100644 bitmaps/wl72s.bm
- delete mode 100644 bitmaps/wn49o.bm
- delete mode 100644 bitmaps/wn49s.bm
- delete mode 100644 bitmaps/wn72o.bm
- delete mode 100644 bitmaps/wn72s.bm
- delete mode 100644 bitmaps/wp49o.bm
- delete mode 100644 bitmaps/wp49s.bm
- delete mode 100644 bitmaps/wp72o.bm
- delete mode 100644 bitmaps/wp72s.bm
- delete mode 100644 bitmaps/ws49o.bm
- delete mode 100644 bitmaps/ws49s.bm
- delete mode 100644 bitmaps/ws72o.bm
- delete mode 100644 bitmaps/ws72s.bm
- create mode 100644 board.c
- create mode 100644 board.h
- create mode 100644 dialogs.c
- create mode 100644 dialogs.h
- create mode 100644 doc-maint/coding-standards.org
- create mode 100755 doc-maint/gendocs.sh
- create mode 100644 doc-maint/make-xboard-release
- create mode 100644 doc-maint/release.org
- create mode 100644 doc-maint/web-pages.org
- create mode 100644 draw.c
- create mode 100644 draw.h
- delete mode 100644 filebrowser/README
- delete mode 100644 filebrowser/dir.c
- delete mode 100644 filebrowser/draw.c
- delete mode 100644 filebrowser/path.c
- delete mode 100644 filebrowser/selfile.c
- delete mode 100644 filebrowser/selfile.h
- delete mode 100644 filebrowser/xstat.h
- create mode 100644 gtk/.dirstamp
- create mode 100644 gtk/xboard.c
- create mode 100644 gtk/xboard.h
- create mode 100644 gtk/xengineoutput.c
- create mode 100644 gtk/xoptions.c
- create mode 100644 gtk/xtimer.c
- create mode 100644 menus.c
- create mode 100644 menus.h
- create mode 100644 nengineoutput.c
- create mode 100644 nevalgraph.c
- create mode 100644 ngamelist.c
- create mode 100644 nhistory.c
- delete mode 100644 pixmaps/README.pixmaps
- delete mode 100644 pixmaps/add33.xpm
- delete mode 100644 pixmaps/add37.xpm
- delete mode 100644 pixmaps/add40.xpm
- delete mode 100644 pixmaps/add45.xpm
- delete mode 100644 pixmaps/add49.xpm
- delete mode 100644 pixmaps/add54.xpm
- delete mode 100644 pixmaps/add58.xpm
- delete mode 100644 pixmaps/add64.xpm
- delete mode 100644 pixmaps/add72.xpm
- delete mode 100644 pixmaps/adl33.xpm
- delete mode 100644 pixmaps/adl37.xpm
- delete mode 100644 pixmaps/adl40.xpm
- delete mode 100644 pixmaps/adl45.xpm
- delete mode 100644 pixmaps/adl49.xpm
- delete mode 100644 pixmaps/adl54.xpm
- delete mode 100644 pixmaps/adl58.xpm
- delete mode 100644 pixmaps/adl64.xpm
- delete mode 100644 pixmaps/adl72.xpm
- delete mode 100644 pixmaps/ald33.xpm
- delete mode 100644 pixmaps/ald37.xpm
- delete mode 100644 pixmaps/ald40.xpm
- delete mode 100644 pixmaps/ald45.xpm
- delete mode 100644 pixmaps/ald49.xpm
- delete mode 100644 pixmaps/ald54.xpm
- delete mode 100644 pixmaps/ald58.xpm
- delete mode 100644 pixmaps/ald64.xpm
- delete mode 100644 pixmaps/ald72.xpm
- delete mode 100644 pixmaps/all33.xpm
- delete mode 100644 pixmaps/all37.xpm
- delete mode 100644 pixmaps/all40.xpm
- delete mode 100644 pixmaps/all45.xpm
- delete mode 100644 pixmaps/all49.xpm
- delete mode 100644 pixmaps/all54.xpm
- delete mode 100644 pixmaps/all58.xpm
- delete mode 100644 pixmaps/all64.xpm
- delete mode 100644 pixmaps/all72.xpm
- delete mode 100644 pixmaps/asdd33.xpm
- delete mode 100644 pixmaps/asdd49.xpm
- delete mode 100644 pixmaps/asdd72.xpm
- delete mode 100644 pixmaps/asdl33.xpm
- delete mode 100644 pixmaps/asdl49.xpm
- delete mode 100644 pixmaps/asdl72.xpm
- delete mode 100644 pixmaps/asld33.xpm
- delete mode 100644 pixmaps/asld49.xpm
- delete mode 100644 pixmaps/asld72.xpm
- delete mode 100644 pixmaps/asll33.xpm
- delete mode 100644 pixmaps/asll49.xpm
- delete mode 100644 pixmaps/asll72.xpm
- delete mode 100644 pixmaps/bdd108.xpm
- delete mode 100644 pixmaps/bdd116.xpm
- delete mode 100644 pixmaps/bdd129.xpm
- delete mode 100644 pixmaps/bdd21.xpm
- delete mode 100644 pixmaps/bdd25.xpm
- delete mode 100644 pixmaps/bdd29.xpm
- delete mode 100644 pixmaps/bdd33.xpm
- delete mode 100644 pixmaps/bdd37.xpm
- delete mode 100644 pixmaps/bdd40.xpm
- delete mode 100644 pixmaps/bdd45.xpm
- delete mode 100644 pixmaps/bdd49.xpm
- delete mode 100644 pixmaps/bdd54.xpm
- delete mode 100644 pixmaps/bdd58.xpm
- delete mode 100644 pixmaps/bdd64.xpm
- delete mode 100644 pixmaps/bdd72.xpm
- delete mode 100644 pixmaps/bdd80.xpm
- delete mode 100644 pixmaps/bdd87.xpm
- delete mode 100644 pixmaps/bdd95.xpm
- delete mode 100644 pixmaps/bdl108.xpm
- delete mode 100644 pixmaps/bdl116.xpm
- delete mode 100644 pixmaps/bdl129.xpm
- delete mode 100644 pixmaps/bdl21.xpm
- delete mode 100644 pixmaps/bdl25.xpm
- delete mode 100644 pixmaps/bdl29.xpm
- delete mode 100644 pixmaps/bdl33.xpm
- delete mode 100644 pixmaps/bdl37.xpm
- delete mode 100644 pixmaps/bdl40.xpm
- delete mode 100644 pixmaps/bdl45.xpm
- delete mode 100644 pixmaps/bdl49.xpm
- delete mode 100644 pixmaps/bdl54.xpm
- delete mode 100644 pixmaps/bdl58.xpm
- delete mode 100644 pixmaps/bdl64.xpm
- delete mode 100644 pixmaps/bdl72.xpm
- delete mode 100644 pixmaps/bdl80.xpm
- delete mode 100644 pixmaps/bdl87.xpm
- delete mode 100644 pixmaps/bdl95.xpm
- delete mode 100644 pixmaps/bld108.xpm
- delete mode 100644 pixmaps/bld116.xpm
- delete mode 100644 pixmaps/bld129.xpm
- delete mode 100644 pixmaps/bld21.xpm
- delete mode 100644 pixmaps/bld25.xpm
- delete mode 100644 pixmaps/bld29.xpm
- delete mode 100644 pixmaps/bld33.xpm
- delete mode 100644 pixmaps/bld37.xpm
- delete mode 100644 pixmaps/bld40.xpm
- delete mode 100644 pixmaps/bld45.xpm
- delete mode 100644 pixmaps/bld49.xpm
- delete mode 100644 pixmaps/bld54.xpm
- delete mode 100644 pixmaps/bld58.xpm
- delete mode 100644 pixmaps/bld64.xpm
- delete mode 100644 pixmaps/bld72.xpm
- delete mode 100644 pixmaps/bld80.xpm
- delete mode 100644 pixmaps/bld87.xpm
- delete mode 100644 pixmaps/bld95.xpm
- delete mode 100644 pixmaps/bll108.xpm
- delete mode 100644 pixmaps/bll116.xpm
- delete mode 100644 pixmaps/bll129.xpm
- delete mode 100644 pixmaps/bll21.xpm
- delete mode 100644 pixmaps/bll25.xpm
- delete mode 100644 pixmaps/bll29.xpm
- delete mode 100644 pixmaps/bll33.xpm
- delete mode 100644 pixmaps/bll37.xpm
- delete mode 100644 pixmaps/bll40.xpm
- delete mode 100644 pixmaps/bll45.xpm
- delete mode 100644 pixmaps/bll49.xpm
- delete mode 100644 pixmaps/bll54.xpm
- delete mode 100644 pixmaps/bll58.xpm
- delete mode 100644 pixmaps/bll64.xpm
- delete mode 100644 pixmaps/bll72.xpm
- delete mode 100644 pixmaps/bll80.xpm
- delete mode 100644 pixmaps/bll87.xpm
- delete mode 100644 pixmaps/bll95.xpm
- delete mode 100644 pixmaps/cdd33.xpm
- delete mode 100644 pixmaps/cdd37.xpm
- delete mode 100644 pixmaps/cdd40.xpm
- delete mode 100644 pixmaps/cdd45.xpm
- delete mode 100644 pixmaps/cdd49.xpm
- delete mode 100644 pixmaps/cdd54.xpm
- delete mode 100644 pixmaps/cdd58.xpm
- delete mode 100644 pixmaps/cdd64.xpm
- delete mode 100644 pixmaps/cdd72.xpm
- delete mode 100644 pixmaps/cdl33.xpm
- delete mode 100644 pixmaps/cdl37.xpm
- delete mode 100644 pixmaps/cdl40.xpm
- delete mode 100644 pixmaps/cdl45.xpm
- delete mode 100644 pixmaps/cdl49.xpm
- delete mode 100644 pixmaps/cdl54.xpm
- delete mode 100644 pixmaps/cdl58.xpm
- delete mode 100644 pixmaps/cdl64.xpm
- delete mode 100644 pixmaps/cdl72.xpm
- delete mode 100644 pixmaps/cld33.xpm
- delete mode 100644 pixmaps/cld37.xpm
- delete mode 100644 pixmaps/cld40.xpm
- delete mode 100644 pixmaps/cld45.xpm
- delete mode 100644 pixmaps/cld49.xpm
- delete mode 100644 pixmaps/cld54.xpm
- delete mode 100644 pixmaps/cld58.xpm
- delete mode 100644 pixmaps/cld64.xpm
- delete mode 100644 pixmaps/cld72.xpm
- delete mode 100644 pixmaps/cll33.xpm
- delete mode 100644 pixmaps/cll37.xpm
- delete mode 100644 pixmaps/cll40.xpm
- delete mode 100644 pixmaps/cll45.xpm
- delete mode 100644 pixmaps/cll49.xpm
- delete mode 100644 pixmaps/cll54.xpm
- delete mode 100644 pixmaps/cll58.xpm
- delete mode 100644 pixmaps/cll64.xpm
- delete mode 100644 pixmaps/cll72.xpm
- delete mode 100644 pixmaps/convbm
- delete mode 100644 pixmaps/convbm.sed
- delete mode 100644 pixmaps/convbm2.sed
- delete mode 100644 pixmaps/convert.c
- delete mode 100644 pixmaps/cvdd33.xpm
- delete mode 100644 pixmaps/cvdd37.xpm
- delete mode 100644 pixmaps/cvdd40.xpm
- delete mode 100644 pixmaps/cvdd45.xpm
- delete mode 100644 pixmaps/cvdd49.xpm
- delete mode 100644 pixmaps/cvdd54.xpm
- delete mode 100644 pixmaps/cvdd58.xpm
- delete mode 100644 pixmaps/cvdd64.xpm
- delete mode 100644 pixmaps/cvdd72.xpm
- delete mode 100644 pixmaps/cvdl33.xpm
- delete mode 100644 pixmaps/cvdl37.xpm
- delete mode 100644 pixmaps/cvdl40.xpm
- delete mode 100644 pixmaps/cvdl45.xpm
- delete mode 100644 pixmaps/cvdl49.xpm
- delete mode 100644 pixmaps/cvdl54.xpm
- delete mode 100644 pixmaps/cvdl58.xpm
- delete mode 100644 pixmaps/cvdl64.xpm
- delete mode 100644 pixmaps/cvdl72.xpm
- delete mode 100644 pixmaps/cvld33.xpm
- delete mode 100644 pixmaps/cvld37.xpm
- delete mode 100644 pixmaps/cvld40.xpm
- delete mode 100644 pixmaps/cvld45.xpm
- delete mode 100644 pixmaps/cvld49.xpm
- delete mode 100644 pixmaps/cvld54.xpm
- delete mode 100644 pixmaps/cvld58.xpm
- delete mode 100644 pixmaps/cvld64.xpm
- delete mode 100644 pixmaps/cvld72.xpm
- delete mode 100644 pixmaps/cvll33.xpm
- delete mode 100644 pixmaps/cvll37.xpm
- delete mode 100644 pixmaps/cvll40.xpm
- delete mode 100644 pixmaps/cvll45.xpm
- delete mode 100644 pixmaps/cvll49.xpm
- delete mode 100644 pixmaps/cvll54.xpm
- delete mode 100644 pixmaps/cvll58.xpm
- delete mode 100644 pixmaps/cvll64.xpm
- delete mode 100644 pixmaps/cvll72.xpm
- delete mode 100644 pixmaps/dkdd33.xpm
- delete mode 100644 pixmaps/dkdd49.xpm
- delete mode 100644 pixmaps/dkdd72.xpm
- delete mode 100644 pixmaps/dkdl33.xpm
- delete mode 100644 pixmaps/dkdl49.xpm
- delete mode 100644 pixmaps/dkdl72.xpm
- delete mode 100644 pixmaps/dkld33.xpm
- delete mode 100644 pixmaps/dkld49.xpm
- delete mode 100644 pixmaps/dkld72.xpm
- delete mode 100644 pixmaps/dkll33.xpm
- delete mode 100644 pixmaps/dkll49.xpm
- delete mode 100644 pixmaps/dkll72.xpm
- delete mode 100644 pixmaps/edd33.xpm
- delete mode 100644 pixmaps/edd49.xpm
- delete mode 100644 pixmaps/edd72.xpm
- delete mode 100644 pixmaps/edl33.xpm
- delete mode 100644 pixmaps/edl49.xpm
- delete mode 100644 pixmaps/edl72.xpm
- delete mode 100644 pixmaps/eld33.xpm
- delete mode 100644 pixmaps/eld49.xpm
- delete mode 100644 pixmaps/eld72.xpm
- delete mode 100644 pixmaps/ell33.xpm
- delete mode 100644 pixmaps/ell49.xpm
- delete mode 100644 pixmaps/ell72.xpm
- delete mode 100644 pixmaps/fdd33.xpm
- delete mode 100644 pixmaps/fdd49.xpm
- delete mode 100644 pixmaps/fdd72.xpm
- delete mode 100644 pixmaps/fdl33.xpm
- delete mode 100644 pixmaps/fdl49.xpm
- delete mode 100644 pixmaps/fdl72.xpm
- delete mode 100644 pixmaps/fld33.xpm
- delete mode 100644 pixmaps/fld49.xpm
- delete mode 100644 pixmaps/fld72.xpm
- delete mode 100644 pixmaps/fll33.xpm
- delete mode 100644 pixmaps/fll49.xpm
- delete mode 100644 pixmaps/fll72.xpm
- delete mode 100644 pixmaps/gdd33.xpm
- delete mode 100644 pixmaps/gdd49.xpm
- delete mode 100644 pixmaps/gdd72.xpm
- delete mode 100644 pixmaps/gdl33.xpm
- delete mode 100644 pixmaps/gdl49.xpm
- delete mode 100644 pixmaps/gdl72.xpm
- delete mode 100644 pixmaps/gld33.xpm
- delete mode 100644 pixmaps/gld49.xpm
- delete mode 100644 pixmaps/gld72.xpm
- delete mode 100644 pixmaps/gll33.xpm
- delete mode 100644 pixmaps/gll49.xpm
- delete mode 100644 pixmaps/gll72.xpm
- delete mode 100644 pixmaps/hdd33.xpm
- delete mode 100644 pixmaps/hdd49.xpm
- delete mode 100644 pixmaps/hdd72.xpm
- delete mode 100644 pixmaps/hdl33.xpm
- delete mode 100644 pixmaps/hdl49.xpm
- delete mode 100644 pixmaps/hdl72.xpm
- delete mode 100644 pixmaps/hld33.xpm
- delete mode 100644 pixmaps/hld49.xpm
- delete mode 100644 pixmaps/hld72.xpm
- delete mode 100644 pixmaps/hll33.xpm
- delete mode 100644 pixmaps/hll49.xpm
- delete mode 100644 pixmaps/hll72.xpm
- create mode 100644 pixmaps/ini32.xpm
- create mode 100644 pixmaps/ini48.xpm
- delete mode 100644 pixmaps/kdd108.xpm
- delete mode 100644 pixmaps/kdd116.xpm
- delete mode 100644 pixmaps/kdd129.xpm
- delete mode 100644 pixmaps/kdd21.xpm
- delete mode 100644 pixmaps/kdd25.xpm
- delete mode 100644 pixmaps/kdd29.xpm
- delete mode 100644 pixmaps/kdd33.xpm
- delete mode 100644 pixmaps/kdd37.xpm
- delete mode 100644 pixmaps/kdd40.xpm
- delete mode 100644 pixmaps/kdd45.xpm
- delete mode 100644 pixmaps/kdd49.xpm
- delete mode 100644 pixmaps/kdd54.xpm
- delete mode 100644 pixmaps/kdd58.xpm
- delete mode 100644 pixmaps/kdd64.xpm
- delete mode 100644 pixmaps/kdd72.xpm
- delete mode 100644 pixmaps/kdd80.xpm
- delete mode 100644 pixmaps/kdd87.xpm
- delete mode 100644 pixmaps/kdd95.xpm
- delete mode 100644 pixmaps/kdl108.xpm
- delete mode 100644 pixmaps/kdl116.xpm
- delete mode 100644 pixmaps/kdl129.xpm
- delete mode 100644 pixmaps/kdl21.xpm
- delete mode 100644 pixmaps/kdl25.xpm
- delete mode 100644 pixmaps/kdl29.xpm
- delete mode 100644 pixmaps/kdl33.xpm
- delete mode 100644 pixmaps/kdl37.xpm
- delete mode 100644 pixmaps/kdl40.xpm
- delete mode 100644 pixmaps/kdl45.xpm
- delete mode 100644 pixmaps/kdl49.xpm
- delete mode 100644 pixmaps/kdl54.xpm
- delete mode 100644 pixmaps/kdl58.xpm
- delete mode 100644 pixmaps/kdl64.xpm
- delete mode 100644 pixmaps/kdl72.xpm
- delete mode 100644 pixmaps/kdl80.xpm
- delete mode 100644 pixmaps/kdl87.xpm
- delete mode 100644 pixmaps/kdl95.xpm
- delete mode 100644 pixmaps/kld108.xpm
- delete mode 100644 pixmaps/kld116.xpm
- delete mode 100644 pixmaps/kld129.xpm
- delete mode 100644 pixmaps/kld21.xpm
- delete mode 100644 pixmaps/kld25.xpm
- delete mode 100644 pixmaps/kld29.xpm
- delete mode 100644 pixmaps/kld33.xpm
- delete mode 100644 pixmaps/kld37.xpm
- delete mode 100644 pixmaps/kld40.xpm
- delete mode 100644 pixmaps/kld45.xpm
- delete mode 100644 pixmaps/kld49.xpm
- delete mode 100644 pixmaps/kld54.xpm
- delete mode 100644 pixmaps/kld58.xpm
- delete mode 100644 pixmaps/kld64.xpm
- delete mode 100644 pixmaps/kld72.xpm
- delete mode 100644 pixmaps/kld80.xpm
- delete mode 100644 pixmaps/kld87.xpm
- delete mode 100644 pixmaps/kld95.xpm
- delete mode 100644 pixmaps/kll108.xpm
- delete mode 100644 pixmaps/kll116.xpm
- delete mode 100644 pixmaps/kll129.xpm
- delete mode 100644 pixmaps/kll21.xpm
- delete mode 100644 pixmaps/kll25.xpm
- delete mode 100644 pixmaps/kll29.xpm
- delete mode 100644 pixmaps/kll33.xpm
- delete mode 100644 pixmaps/kll37.xpm
- delete mode 100644 pixmaps/kll40.xpm
- delete mode 100644 pixmaps/kll45.xpm
- delete mode 100644 pixmaps/kll49.xpm
- delete mode 100644 pixmaps/kll54.xpm
- delete mode 100644 pixmaps/kll58.xpm
- delete mode 100644 pixmaps/kll64.xpm
- delete mode 100644 pixmaps/kll72.xpm
- delete mode 100644 pixmaps/kll80.xpm
- delete mode 100644 pixmaps/kll87.xpm
- delete mode 100644 pixmaps/kll95.xpm
- delete mode 100644 pixmaps/ldd33.xpm
- delete mode 100644 pixmaps/ldd37.xpm
- delete mode 100644 pixmaps/ldd40.xpm
- delete mode 100644 pixmaps/ldd45.xpm
- delete mode 100644 pixmaps/ldd49.xpm
- delete mode 100644 pixmaps/ldd54.xpm
- delete mode 100644 pixmaps/ldd58.xpm
- delete mode 100644 pixmaps/ldd64.xpm
- delete mode 100644 pixmaps/ldd72.xpm
- delete mode 100644 pixmaps/ldl33.xpm
- delete mode 100644 pixmaps/ldl37.xpm
- delete mode 100644 pixmaps/ldl40.xpm
- delete mode 100644 pixmaps/ldl45.xpm
- delete mode 100644 pixmaps/ldl49.xpm
- delete mode 100644 pixmaps/ldl54.xpm
- delete mode 100644 pixmaps/ldl58.xpm
- delete mode 100644 pixmaps/ldl64.xpm
- delete mode 100644 pixmaps/ldl72.xpm
- delete mode 100644 pixmaps/lld33.xpm
- delete mode 100644 pixmaps/lld37.xpm
- delete mode 100644 pixmaps/lld40.xpm
- delete mode 100644 pixmaps/lld45.xpm
- delete mode 100644 pixmaps/lld49.xpm
- delete mode 100644 pixmaps/lld54.xpm
- delete mode 100644 pixmaps/lld58.xpm
- delete mode 100644 pixmaps/lld64.xpm
- delete mode 100644 pixmaps/lld72.xpm
- delete mode 100644 pixmaps/lll33.xpm
- delete mode 100644 pixmaps/lll37.xpm
- delete mode 100644 pixmaps/lll40.xpm
- delete mode 100644 pixmaps/lll45.xpm
- delete mode 100644 pixmaps/lll49.xpm
- delete mode 100644 pixmaps/lll54.xpm
- delete mode 100644 pixmaps/lll58.xpm
- delete mode 100644 pixmaps/lll64.xpm
- delete mode 100644 pixmaps/lll72.xpm
- delete mode 100644 pixmaps/marble_d.xpm
- delete mode 100644 pixmaps/marble_l.xpm
- delete mode 100644 pixmaps/mdd33.xpm
- delete mode 100644 pixmaps/mdd49.xpm
- delete mode 100644 pixmaps/mdd72.xpm
- delete mode 100644 pixmaps/mdl33.xpm
- delete mode 100644 pixmaps/mdl49.xpm
- delete mode 100644 pixmaps/mdl72.xpm
- delete mode 100644 pixmaps/mld33.xpm
- delete mode 100644 pixmaps/mld49.xpm
- delete mode 100644 pixmaps/mld72.xpm
- delete mode 100644 pixmaps/mll33.xpm
- delete mode 100644 pixmaps/mll49.xpm
- delete mode 100644 pixmaps/mll72.xpm
- delete mode 100644 pixmaps/ndd108.xpm
- delete mode 100644 pixmaps/ndd116.xpm
- delete mode 100644 pixmaps/ndd129.xpm
- delete mode 100644 pixmaps/ndd21.xpm
- delete mode 100644 pixmaps/ndd25.xpm
- delete mode 100644 pixmaps/ndd29.xpm
- delete mode 100644 pixmaps/ndd33.xpm
- delete mode 100644 pixmaps/ndd37.xpm
- delete mode 100644 pixmaps/ndd40.xpm
- delete mode 100644 pixmaps/ndd45.xpm
- delete mode 100644 pixmaps/ndd49.xpm
- delete mode 100644 pixmaps/ndd54.xpm
- delete mode 100644 pixmaps/ndd58.xpm
- delete mode 100644 pixmaps/ndd64.xpm
- delete mode 100644 pixmaps/ndd72.xpm
- delete mode 100644 pixmaps/ndd80.xpm
- delete mode 100644 pixmaps/ndd87.xpm
- delete mode 100644 pixmaps/ndd95.xpm
- delete mode 100644 pixmaps/ndl108.xpm
- delete mode 100644 pixmaps/ndl116.xpm
- delete mode 100644 pixmaps/ndl129.xpm
- delete mode 100644 pixmaps/ndl21.xpm
- delete mode 100644 pixmaps/ndl25.xpm
- delete mode 100644 pixmaps/ndl29.xpm
- delete mode 100644 pixmaps/ndl33.xpm
- delete mode 100644 pixmaps/ndl37.xpm
- delete mode 100644 pixmaps/ndl40.xpm
- delete mode 100644 pixmaps/ndl45.xpm
- delete mode 100644 pixmaps/ndl49.xpm
- delete mode 100644 pixmaps/ndl54.xpm
- delete mode 100644 pixmaps/ndl58.xpm
- delete mode 100644 pixmaps/ndl64.xpm
- delete mode 100644 pixmaps/ndl72.xpm
- delete mode 100644 pixmaps/ndl80.xpm
- delete mode 100644 pixmaps/ndl87.xpm
- delete mode 100644 pixmaps/ndl95.xpm
- delete mode 100644 pixmaps/nld108.xpm
- delete mode 100644 pixmaps/nld116.xpm
- delete mode 100644 pixmaps/nld129.xpm
- delete mode 100644 pixmaps/nld21.xpm
- delete mode 100644 pixmaps/nld25.xpm
- delete mode 100644 pixmaps/nld29.xpm
- delete mode 100644 pixmaps/nld33.xpm
- delete mode 100644 pixmaps/nld37.xpm
- delete mode 100644 pixmaps/nld40.xpm
- delete mode 100644 pixmaps/nld45.xpm
- delete mode 100644 pixmaps/nld49.xpm
- delete mode 100644 pixmaps/nld54.xpm
- delete mode 100644 pixmaps/nld58.xpm
- delete mode 100644 pixmaps/nld64.xpm
- delete mode 100644 pixmaps/nld72.xpm
- delete mode 100644 pixmaps/nld80.xpm
- delete mode 100644 pixmaps/nld87.xpm
- delete mode 100644 pixmaps/nld95.xpm
- delete mode 100644 pixmaps/nll108.xpm
- delete mode 100644 pixmaps/nll116.xpm
- delete mode 100644 pixmaps/nll129.xpm
- delete mode 100644 pixmaps/nll21.xpm
- delete mode 100644 pixmaps/nll25.xpm
- delete mode 100644 pixmaps/nll29.xpm
- delete mode 100644 pixmaps/nll33.xpm
- delete mode 100644 pixmaps/nll37.xpm
- delete mode 100644 pixmaps/nll40.xpm
- delete mode 100644 pixmaps/nll45.xpm
- delete mode 100644 pixmaps/nll49.xpm
- delete mode 100644 pixmaps/nll54.xpm
- delete mode 100644 pixmaps/nll58.xpm
- delete mode 100644 pixmaps/nll64.xpm
- delete mode 100644 pixmaps/nll72.xpm
- delete mode 100644 pixmaps/nll80.xpm
- delete mode 100644 pixmaps/nll87.xpm
- delete mode 100644 pixmaps/nll95.xpm
- delete mode 100644 pixmaps/odd33.xpm
- delete mode 100644 pixmaps/odd49.xpm
- delete mode 100644 pixmaps/odd72.xpm
- delete mode 100644 pixmaps/odl33.xpm
- delete mode 100644 pixmaps/odl49.xpm
- delete mode 100644 pixmaps/odl72.xpm
- delete mode 100644 pixmaps/old33.xpm
- delete mode 100644 pixmaps/old49.xpm
- delete mode 100644 pixmaps/old72.xpm
- delete mode 100644 pixmaps/oll33.xpm
- delete mode 100644 pixmaps/oll49.xpm
- delete mode 100644 pixmaps/oll72.xpm
- delete mode 100644 pixmaps/pdd108.xpm
- delete mode 100644 pixmaps/pdd116.xpm
- delete mode 100644 pixmaps/pdd129.xpm
- delete mode 100644 pixmaps/pdd21.xpm
- delete mode 100644 pixmaps/pdd25.xpm
- delete mode 100644 pixmaps/pdd29.xpm
- delete mode 100644 pixmaps/pdd33.xpm
- delete mode 100644 pixmaps/pdd37.xpm
- delete mode 100644 pixmaps/pdd40.xpm
- delete mode 100644 pixmaps/pdd45.xpm
- delete mode 100644 pixmaps/pdd49.xpm
- delete mode 100644 pixmaps/pdd54.xpm
- delete mode 100644 pixmaps/pdd58.xpm
- delete mode 100644 pixmaps/pdd64.xpm
- delete mode 100644 pixmaps/pdd72.xpm
- delete mode 100644 pixmaps/pdd80.xpm
- delete mode 100644 pixmaps/pdd87.xpm
- delete mode 100644 pixmaps/pdd95.xpm
- delete mode 100644 pixmaps/pdl108.xpm
- delete mode 100644 pixmaps/pdl116.xpm
- delete mode 100644 pixmaps/pdl129.xpm
- delete mode 100644 pixmaps/pdl21.xpm
- delete mode 100644 pixmaps/pdl25.xpm
- delete mode 100644 pixmaps/pdl29.xpm
- delete mode 100644 pixmaps/pdl33.xpm
- delete mode 100644 pixmaps/pdl37.xpm
- delete mode 100644 pixmaps/pdl40.xpm
- delete mode 100644 pixmaps/pdl45.xpm
- delete mode 100644 pixmaps/pdl49.xpm
- delete mode 100644 pixmaps/pdl54.xpm
- delete mode 100644 pixmaps/pdl58.xpm
- delete mode 100644 pixmaps/pdl64.xpm
- delete mode 100644 pixmaps/pdl72.xpm
- delete mode 100644 pixmaps/pdl80.xpm
- delete mode 100644 pixmaps/pdl87.xpm
- delete mode 100644 pixmaps/pdl95.xpm
- delete mode 100644 pixmaps/pixmaps.h
- delete mode 100644 pixmaps/pld108.xpm
- delete mode 100644 pixmaps/pld116.xpm
- delete mode 100644 pixmaps/pld129.xpm
- delete mode 100644 pixmaps/pld21.xpm
- delete mode 100644 pixmaps/pld25.xpm
- delete mode 100644 pixmaps/pld29.xpm
- delete mode 100644 pixmaps/pld33.xpm
- delete mode 100644 pixmaps/pld37.xpm
- delete mode 100644 pixmaps/pld40.xpm
- delete mode 100644 pixmaps/pld45.xpm
- delete mode 100644 pixmaps/pld49.xpm
- delete mode 100644 pixmaps/pld54.xpm
- delete mode 100644 pixmaps/pld58.xpm
- delete mode 100644 pixmaps/pld64.xpm
- delete mode 100644 pixmaps/pld72.xpm
- delete mode 100644 pixmaps/pld80.xpm
- delete mode 100644 pixmaps/pld87.xpm
- delete mode 100644 pixmaps/pld95.xpm
- delete mode 100644 pixmaps/pll108.xpm
- delete mode 100644 pixmaps/pll116.xpm
- delete mode 100644 pixmaps/pll129.xpm
- delete mode 100644 pixmaps/pll21.xpm
- delete mode 100644 pixmaps/pll25.xpm
- delete mode 100644 pixmaps/pll29.xpm
- delete mode 100644 pixmaps/pll33.xpm
- delete mode 100644 pixmaps/pll37.xpm
- delete mode 100644 pixmaps/pll40.xpm
- delete mode 100644 pixmaps/pll45.xpm
- delete mode 100644 pixmaps/pll49.xpm
- delete mode 100644 pixmaps/pll54.xpm
- delete mode 100644 pixmaps/pll58.xpm
- delete mode 100644 pixmaps/pll64.xpm
- delete mode 100644 pixmaps/pll72.xpm
- delete mode 100644 pixmaps/pll80.xpm
- delete mode 100644 pixmaps/pll87.xpm
- delete mode 100644 pixmaps/pll95.xpm
- delete mode 100644 pixmaps/qdd108.xpm
- delete mode 100644 pixmaps/qdd116.xpm
- delete mode 100644 pixmaps/qdd129.xpm
- delete mode 100644 pixmaps/qdd21.xpm
- delete mode 100644 pixmaps/qdd25.xpm
- delete mode 100644 pixmaps/qdd29.xpm
- delete mode 100644 pixmaps/qdd33.xpm
- delete mode 100644 pixmaps/qdd37.xpm
- delete mode 100644 pixmaps/qdd40.xpm
- delete mode 100644 pixmaps/qdd45.xpm
- delete mode 100644 pixmaps/qdd49.xpm
- delete mode 100644 pixmaps/qdd54.xpm
- delete mode 100644 pixmaps/qdd58.xpm
- delete mode 100644 pixmaps/qdd64.xpm
- delete mode 100644 pixmaps/qdd72.xpm
- delete mode 100644 pixmaps/qdd80.xpm
- delete mode 100644 pixmaps/qdd87.xpm
- delete mode 100644 pixmaps/qdd95.xpm
- delete mode 100644 pixmaps/qdl108.xpm
- delete mode 100644 pixmaps/qdl116.xpm
- delete mode 100644 pixmaps/qdl129.xpm
- delete mode 100644 pixmaps/qdl21.xpm
- delete mode 100644 pixmaps/qdl25.xpm
- delete mode 100644 pixmaps/qdl29.xpm
- delete mode 100644 pixmaps/qdl33.xpm
- delete mode 100644 pixmaps/qdl37.xpm
- delete mode 100644 pixmaps/qdl40.xpm
- delete mode 100644 pixmaps/qdl45.xpm
- delete mode 100644 pixmaps/qdl49.xpm
- delete mode 100644 pixmaps/qdl54.xpm
- delete mode 100644 pixmaps/qdl58.xpm
- delete mode 100644 pixmaps/qdl64.xpm
- delete mode 100644 pixmaps/qdl72.xpm
- delete mode 100644 pixmaps/qdl80.xpm
- delete mode 100644 pixmaps/qdl87.xpm
- delete mode 100644 pixmaps/qdl95.xpm
- delete mode 100644 pixmaps/qld108.xpm
- delete mode 100644 pixmaps/qld116.xpm
- delete mode 100644 pixmaps/qld129.xpm
- delete mode 100644 pixmaps/qld21.xpm
- delete mode 100644 pixmaps/qld25.xpm
- delete mode 100644 pixmaps/qld29.xpm
- delete mode 100644 pixmaps/qld33.xpm
- delete mode 100644 pixmaps/qld37.xpm
- delete mode 100644 pixmaps/qld40.xpm
- delete mode 100644 pixmaps/qld45.xpm
- delete mode 100644 pixmaps/qld49.xpm
- delete mode 100644 pixmaps/qld54.xpm
- delete mode 100644 pixmaps/qld58.xpm
- delete mode 100644 pixmaps/qld64.xpm
- delete mode 100644 pixmaps/qld72.xpm
- delete mode 100644 pixmaps/qld80.xpm
- delete mode 100644 pixmaps/qld87.xpm
- delete mode 100644 pixmaps/qld95.xpm
- delete mode 100644 pixmaps/qll108.xpm
- delete mode 100644 pixmaps/qll116.xpm
- delete mode 100644 pixmaps/qll129.xpm
- delete mode 100644 pixmaps/qll21.xpm
- delete mode 100644 pixmaps/qll25.xpm
- delete mode 100644 pixmaps/qll29.xpm
- delete mode 100644 pixmaps/qll33.xpm
- delete mode 100644 pixmaps/qll37.xpm
- delete mode 100644 pixmaps/qll40.xpm
- delete mode 100644 pixmaps/qll45.xpm
- delete mode 100644 pixmaps/qll49.xpm
- delete mode 100644 pixmaps/qll54.xpm
- delete mode 100644 pixmaps/qll58.xpm
- delete mode 100644 pixmaps/qll64.xpm
- delete mode 100644 pixmaps/qll72.xpm
- delete mode 100644 pixmaps/qll80.xpm
- delete mode 100644 pixmaps/qll87.xpm
- delete mode 100644 pixmaps/qll95.xpm
- delete mode 100644 pixmaps/rdd108.xpm
- delete mode 100644 pixmaps/rdd116.xpm
- delete mode 100644 pixmaps/rdd129.xpm
- delete mode 100644 pixmaps/rdd21.xpm
- delete mode 100644 pixmaps/rdd25.xpm
- delete mode 100644 pixmaps/rdd29.xpm
- delete mode 100644 pixmaps/rdd33.xpm
- delete mode 100644 pixmaps/rdd37.xpm
- delete mode 100644 pixmaps/rdd40.xpm
- delete mode 100644 pixmaps/rdd45.xpm
- delete mode 100644 pixmaps/rdd49.xpm
- delete mode 100644 pixmaps/rdd54.xpm
- delete mode 100644 pixmaps/rdd58.xpm
- delete mode 100644 pixmaps/rdd64.xpm
- delete mode 100644 pixmaps/rdd72.xpm
- delete mode 100644 pixmaps/rdd80.xpm
- delete mode 100644 pixmaps/rdd87.xpm
- delete mode 100644 pixmaps/rdd95.xpm
- delete mode 100644 pixmaps/rdl108.xpm
- delete mode 100644 pixmaps/rdl116.xpm
- delete mode 100644 pixmaps/rdl129.xpm
- delete mode 100644 pixmaps/rdl21.xpm
- delete mode 100644 pixmaps/rdl25.xpm
- delete mode 100644 pixmaps/rdl29.xpm
- delete mode 100644 pixmaps/rdl33.xpm
- delete mode 100644 pixmaps/rdl37.xpm
- delete mode 100644 pixmaps/rdl40.xpm
- delete mode 100644 pixmaps/rdl45.xpm
- delete mode 100644 pixmaps/rdl49.xpm
- delete mode 100644 pixmaps/rdl54.xpm
- delete mode 100644 pixmaps/rdl58.xpm
- delete mode 100644 pixmaps/rdl64.xpm
- delete mode 100644 pixmaps/rdl72.xpm
- delete mode 100644 pixmaps/rdl80.xpm
- delete mode 100644 pixmaps/rdl87.xpm
- delete mode 100644 pixmaps/rdl95.xpm
- delete mode 100644 pixmaps/rld108.xpm
- delete mode 100644 pixmaps/rld116.xpm
- delete mode 100644 pixmaps/rld129.xpm
- delete mode 100644 pixmaps/rld21.xpm
- delete mode 100644 pixmaps/rld25.xpm
- delete mode 100644 pixmaps/rld29.xpm
- delete mode 100644 pixmaps/rld33.xpm
- delete mode 100644 pixmaps/rld37.xpm
- delete mode 100644 pixmaps/rld40.xpm
- delete mode 100644 pixmaps/rld45.xpm
- delete mode 100644 pixmaps/rld49.xpm
- delete mode 100644 pixmaps/rld54.xpm
- delete mode 100644 pixmaps/rld58.xpm
- delete mode 100644 pixmaps/rld64.xpm
- delete mode 100644 pixmaps/rld72.xpm
- delete mode 100644 pixmaps/rld80.xpm
- delete mode 100644 pixmaps/rld87.xpm
- delete mode 100644 pixmaps/rld95.xpm
- delete mode 100644 pixmaps/rll108.xpm
- delete mode 100644 pixmaps/rll116.xpm
- delete mode 100644 pixmaps/rll129.xpm
- delete mode 100644 pixmaps/rll21.xpm
- delete mode 100644 pixmaps/rll25.xpm
- delete mode 100644 pixmaps/rll29.xpm
- delete mode 100644 pixmaps/rll33.xpm
- delete mode 100644 pixmaps/rll37.xpm
- delete mode 100644 pixmaps/rll40.xpm
- delete mode 100644 pixmaps/rll45.xpm
- delete mode 100644 pixmaps/rll49.xpm
- delete mode 100644 pixmaps/rll54.xpm
- delete mode 100644 pixmaps/rll58.xpm
- delete mode 100644 pixmaps/rll64.xpm
- delete mode 100644 pixmaps/rll72.xpm
- delete mode 100644 pixmaps/rll80.xpm
- delete mode 100644 pixmaps/rll87.xpm
- delete mode 100644 pixmaps/rll95.xpm
- delete mode 100644 pixmaps/sdd49.xpm
- delete mode 100644 pixmaps/sdd72.xpm
- delete mode 100644 pixmaps/sdl49.xpm
- delete mode 100644 pixmaps/sdl72.xpm
- delete mode 100644 pixmaps/sld49.xpm
- delete mode 100644 pixmaps/sld72.xpm
- delete mode 100644 pixmaps/sll49.xpm
- delete mode 100644 pixmaps/sll72.xpm
- delete mode 100644 pixmaps/test.c
- delete mode 100644 pixmaps/udd49.xpm
- delete mode 100644 pixmaps/udd72.xpm
- delete mode 100644 pixmaps/udl49.xpm
- delete mode 100644 pixmaps/udl72.xpm
- delete mode 100644 pixmaps/uld49.xpm
- delete mode 100644 pixmaps/uld72.xpm
- delete mode 100644 pixmaps/ull49.xpm
- delete mode 100644 pixmaps/ull72.xpm
- delete mode 100644 pixmaps/vdd33.xpm
- delete mode 100644 pixmaps/vdd49.xpm
- delete mode 100644 pixmaps/vdd72.xpm
- delete mode 100644 pixmaps/vdl33.xpm
- delete mode 100644 pixmaps/vdl49.xpm
- delete mode 100644 pixmaps/vdl72.xpm
- delete mode 100644 pixmaps/vld33.xpm
- delete mode 100644 pixmaps/vld49.xpm
- delete mode 100644 pixmaps/vld72.xpm
- delete mode 100644 pixmaps/vll33.xpm
- delete mode 100644 pixmaps/vll49.xpm
- delete mode 100644 pixmaps/vll72.xpm
- delete mode 100644 pixmaps/wdd33.xpm
- delete mode 100644 pixmaps/wdd49.xpm
- delete mode 100644 pixmaps/wdd72.xpm
- delete mode 100644 pixmaps/wdl33.xpm
- delete mode 100644 pixmaps/wdl49.xpm
- delete mode 100644 pixmaps/wdl72.xpm
- delete mode 100644 pixmaps/wld33.xpm
- delete mode 100644 pixmaps/wld49.xpm
- delete mode 100644 pixmaps/wld72.xpm
- delete mode 100644 pixmaps/wldd49.xpm
- delete mode 100644 pixmaps/wldd72.xpm
- delete mode 100644 pixmaps/wldl49.xpm
- delete mode 100644 pixmaps/wldl72.xpm
- delete mode 100644 pixmaps/wll33.xpm
- delete mode 100644 pixmaps/wll49.xpm
- delete mode 100644 pixmaps/wll72.xpm
- delete mode 100644 pixmaps/wlld49.xpm
- delete mode 100644 pixmaps/wlld72.xpm
- delete mode 100644 pixmaps/wlll49.xpm
- delete mode 100644 pixmaps/wlll72.xpm
- delete mode 100644 pixmaps/wndd49.xpm
- delete mode 100644 pixmaps/wndd72.xpm
- delete mode 100644 pixmaps/wndl49.xpm
- delete mode 100644 pixmaps/wndl72.xpm
- delete mode 100644 pixmaps/wnld49.xpm
- delete mode 100644 pixmaps/wnld72.xpm
- delete mode 100644 pixmaps/wnll49.xpm
- delete mode 100644 pixmaps/wnll72.xpm
- delete mode 100644 pixmaps/wood_d.xpm
- delete mode 100644 pixmaps/wood_l.xpm
- delete mode 100644 pixmaps/wpdd49.xpm
- delete mode 100644 pixmaps/wpdd72.xpm
- delete mode 100644 pixmaps/wpdl49.xpm
- delete mode 100644 pixmaps/wpdl72.xpm
- delete mode 100644 pixmaps/wpld49.xpm
- delete mode 100644 pixmaps/wpld72.xpm
- delete mode 100644 pixmaps/wpll49.xpm
- delete mode 100644 pixmaps/wpll72.xpm
- delete mode 100644 pixmaps/wsdd49.xpm
- delete mode 100644 pixmaps/wsdd72.xpm
- delete mode 100644 pixmaps/wsdl49.xpm
- delete mode 100644 pixmaps/wsdl72.xpm
- delete mode 100644 pixmaps/wsld49.xpm
- delete mode 100644 pixmaps/wsld72.xpm
- delete mode 100644 pixmaps/wsll49.xpm
- delete mode 100644 pixmaps/wsll72.xpm
- delete mode 100644 pixmaps/xqboard.xpm
- delete mode 100644 pixmaps/xqwood.xpm
- create mode 100644 png/BlackAdvisor.png
- create mode 100644 png/BlackArchbishop.png
- create mode 100644 png/BlackBishop.png
- create mode 100644 png/BlackCanon.png
- create mode 100644 png/BlackChancellor.png
- create mode 100644 png/BlackCobra.png
- create mode 100644 png/BlackCommoner.png
- create mode 100644 png/BlackCrownedBishop.png
- create mode 100644 png/BlackCrownedRook.png
- create mode 100644 png/BlackElephant.png
- create mode 100644 png/BlackGold.png
- create mode 100644 png/BlackGoldKnight.png
- create mode 100644 png/BlackGoldLance.png
- create mode 100644 png/BlackGoldPawn.png
- create mode 100644 png/BlackGoldSilver.png
- create mode 100644 png/BlackHawk.png
- create mode 100644 png/BlackKing.png
- create mode 100644 png/BlackKnight.png
- create mode 100644 png/BlackLance.png
- create mode 100644 png/BlackMarshall.png
- create mode 100644 png/BlackNightrider.png
- create mode 100644 png/BlackPawn.png
- create mode 100644 png/BlackPrincess.png
- create mode 100644 png/BlackQueen.png
- create mode 100644 png/BlackRook.png
- create mode 100644 png/BlackUnicorn.png
- create mode 100644 png/WhiteAdvisor.png
- create mode 100644 png/WhiteArchbishop.png
- create mode 100644 png/WhiteBishop.png
- create mode 100644 png/WhiteCanon.png
- create mode 100644 png/WhiteChancellor.png
- create mode 100644 png/WhiteCobra.png
- create mode 100644 png/WhiteCommoner.png
- create mode 100644 png/WhiteCrownedBishop.png
- create mode 100644 png/WhiteCrownedRook.png
- create mode 100644 png/WhiteElephant.png
- create mode 100644 png/WhiteGold.png
- create mode 100644 png/WhiteGoldKnight.png
- create mode 100644 png/WhiteGoldLance.png
- create mode 100644 png/WhiteGoldPawn.png
- create mode 100644 png/WhiteGoldSilver.png
- create mode 100644 png/WhiteHawk.png
- create mode 100644 png/WhiteKing.png
- create mode 100644 png/WhiteKnight.png
- create mode 100644 png/WhiteLance.png
- create mode 100644 png/WhiteMarshall.png
- create mode 100644 png/WhiteNightrider.png
- create mode 100644 png/WhitePawn.png
- create mode 100644 png/WhitePrincess.png
- create mode 100644 png/WhiteQueen.png
- create mode 100644 png/WhiteRook.png
- create mode 100644 png/WhiteUnicorn.png
- create mode 100644 png/hatch.png
- create mode 100644 png/marble_d.png
- create mode 100644 png/marble_l.png
- create mode 100644 png/wood_d.png
- create mode 100644 png/wood_l.png
- create mode 100644 png/xqboard.png
- create mode 100644 png/xqwood.png
- delete mode 100644 shogipixmaps/bdd64.xpm
- delete mode 100644 shogipixmaps/bdl64.xpm
- delete mode 100644 shogipixmaps/bld64.xpm
- delete mode 100644 shogipixmaps/bll64.xpm
- delete mode 100644 shogipixmaps/fdd64.xpm
- delete mode 100644 shogipixmaps/fdl64.xpm
- delete mode 100644 shogipixmaps/fld64.xpm
- delete mode 100644 shogipixmaps/fll64.xpm
- delete mode 100644 shogipixmaps/kdd64.xpm
- delete mode 100644 shogipixmaps/kdl64.xpm
- delete mode 100644 shogipixmaps/kld64.xpm
- delete mode 100644 shogipixmaps/kll64.xpm
- delete mode 100644 shogipixmaps/ldd64.xpm
- delete mode 100644 shogipixmaps/ldl64.xpm
- delete mode 100644 shogipixmaps/lld64.xpm
- delete mode 100644 shogipixmaps/lll64.xpm
- delete mode 100644 shogipixmaps/ndd64.xpm
- delete mode 100644 shogipixmaps/ndl64.xpm
- delete mode 100644 shogipixmaps/nld64.xpm
- delete mode 100644 shogipixmaps/nll64.xpm
- delete mode 100644 shogipixmaps/pdd64.xpm
- delete mode 100644 shogipixmaps/pdl64.xpm
- delete mode 100644 shogipixmaps/pld64.xpm
- delete mode 100644 shogipixmaps/pll64.xpm
- delete mode 100644 shogipixmaps/qdd64.xpm
- delete mode 100644 shogipixmaps/qdl64.xpm
- delete mode 100644 shogipixmaps/qld64.xpm
- delete mode 100644 shogipixmaps/qll64.xpm
- delete mode 100644 shogipixmaps/rdd64.xpm
- delete mode 100644 shogipixmaps/rdl64.xpm
- delete mode 100644 shogipixmaps/rld64.xpm
- delete mode 100644 shogipixmaps/rll64.xpm
- delete mode 100644 shogipixmaps/wdd64.xpm
- delete mode 100644 shogipixmaps/wdl64.xpm
- delete mode 100644 shogipixmaps/wld64.xpm
- delete mode 100644 shogipixmaps/wldd64.xpm
- delete mode 100644 shogipixmaps/wldl64.xpm
- delete mode 100644 shogipixmaps/wll64.xpm
- delete mode 100644 shogipixmaps/wlld64.xpm
- delete mode 100644 shogipixmaps/wlll64.xpm
- delete mode 100644 shogipixmaps/wndd64.xpm
- delete mode 100644 shogipixmaps/wndl64.xpm
- delete mode 100644 shogipixmaps/wnld64.xpm
- delete mode 100644 shogipixmaps/wnll64.xpm
- delete mode 100644 shogipixmaps/wpdd64.xpm
- delete mode 100644 shogipixmaps/wpdl64.xpm
- delete mode 100644 shogipixmaps/wpld64.xpm
- delete mode 100644 shogipixmaps/wpll64.xpm
- delete mode 100644 shogipixmaps/wsdd64.xpm
- delete mode 100644 shogipixmaps/wsdl64.xpm
- delete mode 100644 shogipixmaps/wsld64.xpm
- delete mode 100644 shogipixmaps/wsll64.xpm
- create mode 100644 svg/BlackAdvisor.svg
- create mode 100644 svg/BlackArchbishop.svg
- create mode 100644 svg/BlackBishop.svg
- create mode 100644 svg/BlackCanon.svg
- create mode 100644 svg/BlackChancellor.svg
- create mode 100644 svg/BlackCobra.svg
- create mode 100644 svg/BlackCommoner.svg
- create mode 100644 svg/BlackCrownedBishop.svg
- create mode 100644 svg/BlackCrownedRook.svg
- create mode 100644 svg/BlackElephant.svg
- create mode 100644 svg/BlackGold.svg
- create mode 100644 svg/BlackGoldKnight.svg
- create mode 100644 svg/BlackGoldLance.svg
- create mode 100644 svg/BlackGoldPawn.svg
- create mode 100644 svg/BlackGoldSilver.svg
- create mode 100644 svg/BlackHawk.svg
- create mode 100644 svg/BlackKing.svg
- create mode 100644 svg/BlackKnight.svg
- create mode 100644 svg/BlackLance.svg
- create mode 100644 svg/BlackMarshall.svg
- create mode 100644 svg/BlackNightrider.svg
- create mode 100644 svg/BlackPawn.svg
- create mode 100644 svg/BlackPrincess.svg
- create mode 100644 svg/BlackQueen.svg
- create mode 100644 svg/BlackRook.svg
- create mode 100644 svg/BlackUnicorn.svg
- create mode 100644 svg/WhiteAdvisor.svg
- create mode 100644 svg/WhiteArchbishop.svg
- create mode 100644 svg/WhiteBishop.svg
- create mode 100644 svg/WhiteCanon.svg
- create mode 100644 svg/WhiteChancellor.svg
- create mode 100644 svg/WhiteCobra.svg
- create mode 100644 svg/WhiteCommoner.svg
- create mode 100644 svg/WhiteCrownedBishop.svg
- create mode 100644 svg/WhiteCrownedRook.svg
- create mode 100644 svg/WhiteElephant.svg
- create mode 100644 svg/WhiteGold.svg
- create mode 100644 svg/WhiteGoldKnight.svg
- create mode 100644 svg/WhiteGoldLance.svg
- create mode 100644 svg/WhiteGoldPawn.svg
- create mode 100644 svg/WhiteGoldSilver.svg
- create mode 100644 svg/WhiteHawk.svg
- create mode 100644 svg/WhiteKing.svg
- create mode 100644 svg/WhiteKnight.svg
- create mode 100644 svg/WhiteLance.svg
- create mode 100644 svg/WhiteMarshall.svg
- create mode 100644 svg/WhiteNightrider.svg
- create mode 100644 svg/WhitePawn.svg
- create mode 100644 svg/WhitePrincess.svg
- create mode 100644 svg/WhiteQueen.svg
- create mode 100644 svg/WhiteRook.svg
- create mode 100644 svg/WhiteUnicorn.svg
- create mode 100644 svg/eo_Analyzing.svg
- create mode 100644 svg/eo_Black.svg
- create mode 100644 svg/eo_Clear.svg
- create mode 100644 svg/eo_Ponder.svg
- create mode 100644 svg/eo_Thinking.svg
- create mode 100644 svg/eo_Unknown.svg
- create mode 100644 svg/eo_White.svg
- create mode 100644 svg/icon_black.svg
- create mode 100644 svg/icon_white.svg
- create mode 100644 themes/Mono/BlackAdvisor.svg
- create mode 100644 themes/Mono/BlackArchbishop.svg
- create mode 100644 themes/Mono/BlackBishop.svg
- create mode 100644 themes/Mono/BlackCanon.svg
- create mode 100644 themes/Mono/BlackChancellor.svg
- create mode 100644 themes/Mono/BlackCobra.svg
- create mode 100644 themes/Mono/BlackCommoner.svg
- create mode 100644 themes/Mono/BlackCrownedBishop.svg
- create mode 100644 themes/Mono/BlackCrownedRook.svg
- create mode 100644 themes/Mono/BlackElephant.svg
- create mode 100644 themes/Mono/BlackGold.svg
- create mode 100644 themes/Mono/BlackGoldKnight.svg
- create mode 100644 themes/Mono/BlackGoldLance.svg
- create mode 100644 themes/Mono/BlackGoldPawn.svg
- create mode 100644 themes/Mono/BlackGoldSilver.svg
- create mode 100644 themes/Mono/BlackHawk.svg
- create mode 100644 themes/Mono/BlackKing.svg
- create mode 100644 themes/Mono/BlackKnight.svg
- create mode 100644 themes/Mono/BlackLance.svg
- create mode 100644 themes/Mono/BlackMarshall.svg
- create mode 100644 themes/Mono/BlackNightrider.svg
- create mode 100644 themes/Mono/BlackPawn.svg
- create mode 100644 themes/Mono/BlackPrincess.svg
- create mode 100644 themes/Mono/BlackQueen.svg
- create mode 100644 themes/Mono/BlackRook.svg
- create mode 100644 themes/Mono/BlackUnicorn.svg
- create mode 100644 themes/Mono/WhiteAdvisor.svg
- create mode 100644 themes/Mono/WhiteArchbishop.svg
- create mode 100644 themes/Mono/WhiteBishop.svg
- create mode 100644 themes/Mono/WhiteCanon.svg
- create mode 100644 themes/Mono/WhiteChancellor.svg
- create mode 100644 themes/Mono/WhiteCobra.svg
- create mode 100644 themes/Mono/WhiteCommoner.svg
- create mode 100644 themes/Mono/WhiteCrownedBishop.svg
- create mode 100644 themes/Mono/WhiteCrownedRook.svg
- create mode 100644 themes/Mono/WhiteElephant.svg
- create mode 100644 themes/Mono/WhiteGold.svg
- create mode 100644 themes/Mono/WhiteGoldKnight.svg
- create mode 100644 themes/Mono/WhiteGoldLance.svg
- create mode 100644 themes/Mono/WhiteGoldPawn.svg
- create mode 100644 themes/Mono/WhiteGoldSilver.svg
- create mode 100644 themes/Mono/WhiteHawk.svg
- create mode 100644 themes/Mono/WhiteKing.svg
- create mode 100644 themes/Mono/WhiteKnight.svg
- create mode 100644 themes/Mono/WhiteLance.svg
- create mode 100644 themes/Mono/WhiteMarshall.svg
- create mode 100644 themes/Mono/WhiteNightrider.svg
- create mode 100644 themes/Mono/WhitePawn.svg
- create mode 100644 themes/Mono/WhitePrincess.svg
- create mode 100644 themes/Mono/WhiteQueen.svg
- create mode 100644 themes/Mono/WhiteRook.svg
- create mode 100644 themes/Mono/WhiteUnicorn.svg
- create mode 100644 themes/Mono/eo_Analyzing.svg
- create mode 100644 themes/Mono/eo_Black.svg
- create mode 100644 themes/Mono/eo_Clear.svg
- create mode 100644 themes/Mono/eo_Ponder.svg
- create mode 100644 themes/Mono/eo_Thinking.svg
- create mode 100644 themes/Mono/eo_Unknown.svg
- create mode 100644 themes/Mono/eo_White.svg
- create mode 100644 themes/Mono/icon_black.svg
- create mode 100644 themes/Mono/icon_white.svg
- create mode 100644 themes/Mono/shogi_bishop.svg
- create mode 100644 themes/Mono/shogi_bishop_promoted.svg
- create mode 100644 themes/Mono/shogi_gold.svg
- create mode 100644 themes/Mono/shogi_king.svg
- create mode 100644 themes/Mono/shogi_knight.svg
- create mode 100644 themes/Mono/shogi_knight_promoted.svg
- create mode 100644 themes/Mono/shogi_lance.svg
- create mode 100644 themes/Mono/shogi_lance_promoted.svg
- create mode 100644 themes/Mono/shogi_pawn.svg
- create mode 100644 themes/Mono/shogi_pawn_promoted.svg
- create mode 100644 themes/Mono/shogi_rook.svg
- create mode 100644 themes/Mono/shogi_rook_promoted.svg
- create mode 100644 themes/Mono/shogi_silver.svg
- create mode 100644 themes/Mono/shogi_silver_promoted.svg
- create mode 100644 themes/shogi/BlackAdvisor.svg
- create mode 100644 themes/shogi/BlackBishop.svg
- create mode 100644 themes/shogi/BlackCrownedBishop.svg
- create mode 100644 themes/shogi/BlackCrownedRook.svg
- create mode 100644 themes/shogi/BlackGold.svg
- create mode 100644 themes/shogi/BlackGoldKnight.svg
- create mode 100644 themes/shogi/BlackGoldLance.svg
- create mode 100644 themes/shogi/BlackGoldPawn.svg
- create mode 100644 themes/shogi/BlackGoldSilver.svg
- create mode 100644 themes/shogi/BlackKing.svg
- create mode 100644 themes/shogi/BlackKnight.svg
- create mode 100644 themes/shogi/BlackLance.svg
- create mode 100644 themes/shogi/BlackPawn.svg
- create mode 100644 themes/shogi/BlackRook.svg
- create mode 100644 themes/shogi/WhiteAdvisor.svg
- create mode 100644 themes/shogi/WhiteBishop.svg
- create mode 100644 themes/shogi/WhiteCrownedBishop.svg
- create mode 100644 themes/shogi/WhiteCrownedRook.svg
- create mode 100644 themes/shogi/WhiteGold.svg
- create mode 100644 themes/shogi/WhiteGoldKnight.svg
- create mode 100644 themes/shogi/WhiteGoldLance.svg
- create mode 100644 themes/shogi/WhiteGoldPawn.svg
- create mode 100644 themes/shogi/WhiteGoldSilver.svg
- create mode 100644 themes/shogi/WhiteKing.svg
- create mode 100644 themes/shogi/WhiteKnight.svg
- create mode 100644 themes/shogi/WhiteLance.svg
- create mode 100644 themes/shogi/WhitePawn.svg
- create mode 100644 themes/shogi/WhiteRook.svg
- create mode 100644 themes/xiangqi/.DS_Store
- create mode 100644 themes/xiangqi/BlackAdvisor.svg
- create mode 100644 themes/xiangqi/BlackCanon.svg
- create mode 100644 themes/xiangqi/BlackElephant.svg
- create mode 100644 themes/xiangqi/BlackGold.svg
- create mode 100644 themes/xiangqi/BlackKnight.svg
- create mode 100644 themes/xiangqi/BlackPawn.svg
- create mode 100644 themes/xiangqi/BlackRook.svg
- create mode 100644 themes/xiangqi/WhiteAdvisor.svg
- create mode 100644 themes/xiangqi/WhiteCanon.svg
- create mode 100644 themes/xiangqi/WhiteElephant.svg
- create mode 100644 themes/xiangqi/WhiteGold.svg
- create mode 100644 themes/xiangqi/WhiteKnight.svg
- create mode 100644 themes/xiangqi/WhitePawn.svg
- create mode 100644 themes/xiangqi/WhiteRook.svg
- create mode 100644 usounds.c
- create mode 100644 usystem.c
- create mode 100644 usystem.h
- create mode 100644 xaw/.dirstamp
- create mode 100644 xaw/xboard.c
- create mode 100644 xaw/xboard.h
- create mode 100644 xaw/xengineoutput.c
- create mode 100644 xaw/xgamelist.c
- create mode 100644 xaw/xgamelist.h
- create mode 100644 xaw/xhistory.c
- create mode 100644 xaw/xhistory.h
- create mode 100644 xaw/xoptions.c
- create mode 100644 xboard-config.desktop
- delete mode 100644 xboard.c
- delete mode 100644 xboard.h
- create mode 100644 xboard2.h
- delete mode 100644 xedittags.c
- delete mode 100644 xedittags.h
- delete mode 100644 xengineoutput.c
- delete mode 100644 xevalgraph.c
- delete mode 100644 xevalgraph.h
- delete mode 100644 xgamelist.c
- delete mode 100644 xgamelist.h
- delete mode 100644 xhistory.c
- delete mode 100644 xhistory.h
- delete mode 100644 xoptions.c
-
-** Version 4.6.2 **
-
-(git diff -b --stat --summary -M v4.6.1 HEAD)
-
- backend.c                        |   16 +++++++++-------
- configure.ac                     |    2 +-
- winboard/config.h                |    6 +++---
- winboard/language.txt            |    2 ++
- winboard/language/nederlands.lng |    2 ++
- winboard/winboard.c              |    1 +
- 6 files changed, 18 insertions(+), 11 deletions(-)
-
-** Version 4.6.1 **
-
-(git diff -b --stat --summary -M v4.6.0 HEAD)
-
- ChangeLog            |  228 +++++++++++
- DIFFSTAT             |   38 ++
- NEWS                 |   28 ++
- SHORTLOG             |   45 +++
- args.h               |    5 +-
- autogen.sh           |    2 +-
- backend.c            |   89 ++++-
- common.h             |    1 +
- configure.ac         |    2 +-
- engineoutput.c       |   19 +-
- evalgraph.c          |    4 +-
- moves.c              |    3 +-
- po/da.po             |  987 +++++++++++++++++++++++------------------------
- po/de.po             |  980 +++++++++++++++++++++++------------------------
- po/es.po             |  980 +++++++++++++++++++++++------------------------
- po/it.po             |  980 +++++++++++++++++++++++------------------------
- po/ru.po             |  980 +++++++++++++++++++++++------------------------
- po/tr.po             |  980 +++++++++++++++++++++++------------------------
- po/uk.po             | 1032 +++++++++++++++++++++++++-------------------------
- po/vi.po             |  980 +++++++++++++++++++++++------------------------
- po/xboard.pot        |  981 +++++++++++++++++++++++------------------------
- po/zh_CN.po          |  980 +++++++++++++++++++++++------------------------
- po/zh_HK.po          |  980 +++++++++++++++++++++++------------------------
- po/zh_TW.po          |  980 +++++++++++++++++++++++------------------------
- winboard/config.h    |    6 +-
- winboard/wsettings.c |   13 +-
- xboard.c             |   25 +-
- xboard.h             |    8 +-
- xboard.texi          |  107 ++----
- xengineoutput.c      |    6 +-
- xevalgraph.c         |    6 +-
- xgamelist.c          |  103 +++--
- xoptions.c           |   19 +-
- 33 files changed, 6499 insertions(+), 6078 deletions(-)
-
-** Version 4.6.0 **
-
-(git diff -b --stat --summary -M v4.5.3a HEAD)
-
- .gitignore                          |    3 +
- ABOUT-NLS                           | 1282 ++++++++++
- COPYRIGHT                           |    2 +-
- ChangeLog                           | 3106 ++++++++++++++++++++++--
- DIFFSTAT                            |  210 ++
- Makefile.am                         |   56 +-
- NEWS                                |   35 +
- SHORTLOG                            |  435 ++++
- args.h                              |  139 +-
- autogen.sh                          |    2 +-
- backend.c                           | 3426 ++++++++++++++++++--------
- backend.h                           |   55 +-
- backendz.h                          |    2 +-
- bitmaps/bitmaps.h                   |    2 +-
- book.c                              |  261 ++-
- childio.c                           |   26 +-
- childio.h                           |    2 +-
- common.h                            |  142 +-
- config.rpath                        |  280 ++-
- configure.ac                        |   37 +-
- copyright.texi                      |    2 +-
- engineoutput.c                      |  100 +-
- engineoutput.h                      |    3 +-
- evalgraph.c                         |   85 +-
- evalgraph.h                         |    3 +-
- filebrowser/dir.c                   |    2 +-
- filebrowser/draw.c                  |   42 +
- filebrowser/path.c                  |   19 +-
- filebrowser/selfile.c               |   66 +-
- filebrowser/selfile.h               |    2 -
- frontend.h                          |   16 +-
- gamelist.c                          |  137 +-
- gettext.h                           |  262 ++-
- history.c                           |   33 +-
- lists.c                             |   41 +-
- lists.h                             |    2 +-
- m4/gettext.m4                       |  383 +++
- m4/iconv.m4                         |  214 ++
- m4/lib-ld.m4                        |  110 +
- m4/lib-link.m4                      |  774 ++++++
- m4/lib-prefix.m4                    |  224 ++
- m4/nls.m4                           |   32 +
- m4/po.m4                            |  449 ++++
- m4/progtest.m4                      |   92 +
- moves.c                             |  341 ++--
- moves.h                             |    8 +-
- parser.c                            | 4644 ++++-------------------------------
- parser.h                            |    2 +-
- parser.l                            | 1203 ---------
- pgntags.c                           |  145 +-
- pixmaps/board32.xpm                 |   42 +
- pixmaps/board48.xpm                 |   58 +
- pixmaps/cross32.xpm                 |   42 +
- pixmaps/cross48.xpm                 |   58 +
- po/LINGUAS                          |    3 +-
- po/Makefile.in.in                   |  162 +-
- po/Makevars                         |    2 +-
- po/Makevars.template                |   41 +
- po/POTFILES.in                      |   10 +-
- po/Rules-quot                       |   47 +
- po/boldquot.sed                     |   10 +
- po/da.po                            | 2977 ++++++++++++++++++++++
- po/de.po                            | 3464 +++++++++++++++++++-------
- po/en@boldquot.header               |   25 +
- po/en@quot.header                   |   22 +
- po/es.po                            | 2925 ++++++++++++++++++++++
- po/insert-header.sin                |   23 +
- po/it.po                            | 2933 ++++++++++++++++++++++
- po/lng2po.sh                        |   96 +
- po/metascript                       |  125 +
- po/normalize.pl                     |   10 +
- po/quot.sed                         |    6 +
- po/ru.po                            | 2919 ++++++++++++++++++++++
- po/strip-bad-utf8.pl                |   14 +
- po/tr.po                            | 3306 +++++++++++++++++++------
- po/uk.po                            | 3002 ++++++++++++++++++++++
- po/vi.po                            | 2904 ++++++++++++++++++++++
- po/xboard.pot                       | 2958 +++++++++++++++++------
- po/zh_CN.po                         | 2917 ++++++++++++++++++++++
- po/zh_HK.po                         | 2922 ++++++++++++++++++++++
- po/zh_TW.po                         | 2915 ++++++++++++++++++++++
- uci.c                               |    7 +-
- winboard/bitmaps/cross.ico          |  Bin 0 -> 766 bytes
- winboard/bitmaps/ni49o.bmp          |  Bin 454 -> 0 bytes
- winboard/bitmaps/ni49s.bmp          |  Bin 454 -> 0 bytes
- winboard/bitmaps/ni49w.bmp          |  Bin 454 -> 0 bytes
- winboard/bitmaps/ni72o.bmp          |  Bin 926 -> 0 bytes
- winboard/bitmaps/ni72s.bmp          |  Bin 926 -> 0 bytes
- winboard/bitmaps/ni72w.bmp          |  Bin 926 -> 0 bytes
- winboard/config.h                   |    6 +-
- winboard/defaults.h                 |    3 +-
- winboard/help.c                     |    2 +-
- winboard/help/html/24.htm           |    2 +-
- winboard/jaws.c                     |   47 +-
- winboard/language.txt               |  138 +-
- winboard/language/chinese(simp).lng |  787 ++++++
- winboard/language/chinese(trad).lng |  785 ++++++
- winboard/language/deutsch.lng       |  971 ++++++++
- winboard/language/italiano.lng      |  976 ++++++++
- winboard/language/nederlands.lng    | 1216 +++++++++
- winboard/language/romanian.lng      | 1042 ++++++++
- winboard/language/russian.lng       |  994 ++++++++
- winboard/language/spanish.lng       |  953 +++++++
- winboard/language/vietnamese.lng    |  973 ++++++++
- winboard/makefile.gcc               |   15 +-
- winboard/makefile.ms                |    3 -
- winboard/resource.h                 |   31 +
- winboard/wchat.c                    |    2 +-
- winboard/wclipbrd.c                 |    2 +-
- winboard/wclipbrd.h                 |    2 +-
- winboard/wedittags.c                |   16 +-
- winboard/wengineoutput.c            |   10 +-
- winboard/wevalgraph.c               |    3 +-
- winboard/wgamelist.c                |   39 +-
- winboard/winboard.c                 |  483 +++--
- winboard/winboard.h                 |   11 +-
- winboard/winboard.rc                |  158 +-
- winboard/winboard.rtf               | 1644 +++++++------
- winboard/woptions.c                 |  163 ++-
- winboard/woptions.h                 |    2 +-
- winboard/wsettings.c                |  437 +++-
- winboard/wsockerr.c                 |    2 +-
- winboard/wsockerr.h                 |    2 +-
- xboard-fen-viewer.desktop           |   52 +
- xboard-pgn-viewer.desktop           |   52 +
- xboard-tourney.desktop              |   52 +
- xboard.c                            | 2653 +++++++++-----------
- xboard.conf.in                      |   16 +-
- xboard.h                            |   26 +-
- xboard.png                          |  Bin 15116 -> 1726 bytes
- xboard.texi                         | 1092 +++++++--
- xboard.xml                          |   61 +
- xedittags.c                         |  316 +---
- xedittags.h                         |    2 +-
- xengineoutput.c                     |   96 +-
- xevalgraph.c                        |   69 +-
- xevalgraph.h                        |    2 +-
- xgamelist.c                         |  205 +-
- xgamelist.h                         |    3 +-
- xhistory.c                          |  461 +---
- xhistory.h                          |    4 +-
- xoptions.c                          | 1482 ++++++------
- zic2xpm.c                           |   67 +-
- zic2xpm.man                         |    2 +-
- zippy.c                             |   54 +-
- zippy.h                             |    2 +-
- 146 files changed, 60376 insertions(+), 14197 deletions(-)
- create mode 100644 ABOUT-NLS
- create mode 100644 m4/gettext.m4
- create mode 100644 m4/iconv.m4
- create mode 100644 m4/lib-ld.m4
- create mode 100644 m4/lib-link.m4
- create mode 100644 m4/lib-prefix.m4
- create mode 100644 m4/nls.m4
- create mode 100644 m4/po.m4
- create mode 100644 m4/progtest.m4
- delete mode 100644 parser.l
- create mode 100644 pixmaps/board32.xpm
- create mode 100644 pixmaps/board48.xpm
- create mode 100644 pixmaps/cross32.xpm
- create mode 100644 pixmaps/cross48.xpm
- mode change 100755 => 100644 po/Makefile.in.in
- create mode 100644 po/Makevars.template
- create mode 100644 po/Rules-quot
- create mode 100644 po/boldquot.sed
- create mode 100644 po/da.po
- create mode 100644 po/en@boldquot.header
- create mode 100644 po/en@quot.header
- create mode 100644 po/es.po
- create mode 100644 po/insert-header.sin
- create mode 100644 po/it.po
- create mode 100755 po/lng2po.sh
- create mode 100644 po/metascript
- create mode 100755 po/normalize.pl
- create mode 100644 po/quot.sed
- mode change 100755 => 100644 po/remove-potcdate.sin
- create mode 100644 po/ru.po
- create mode 100755 po/strip-bad-utf8.pl
- create mode 100644 po/uk.po
- create mode 100644 po/vi.po
- mode change 100755 => 100644 po/xboard.pot
- create mode 100644 po/zh_CN.po
- create mode 100644 po/zh_HK.po
- create mode 100644 po/zh_TW.po
- create mode 100644 winboard/bitmaps/cross.ico
- delete mode 100644 winboard/bitmaps/ni49o.bmp
- delete mode 100644 winboard/bitmaps/ni49s.bmp
- delete mode 100644 winboard/bitmaps/ni49w.bmp
- delete mode 100644 winboard/bitmaps/ni72o.bmp
- delete mode 100644 winboard/bitmaps/ni72s.bmp
- delete mode 100644 winboard/bitmaps/ni72w.bmp
- create mode 100644 winboard/language/chinese(simp).lng
- create mode 100644 winboard/language/chinese(trad).lng
- create mode 100644 winboard/language/deutsch.lng
- create mode 100644 winboard/language/italiano.lng
- create mode 100644 winboard/language/nederlands.lng
- create mode 100644 winboard/language/romanian.lng
- create mode 100644 winboard/language/russian.lng
- create mode 100644 winboard/language/spanish.lng
- create mode 100644 winboard/language/vietnamese.lng
- create mode 100644 xboard-fen-viewer.desktop
- create mode 100644 xboard-pgn-viewer.desktop
- create mode 100644 xboard-tourney.desktop
- create mode 100644 xboard.xml
-
-
-** Version 4.5.3a **
-
-(git diff -b --stat --summary -M v4.5.3 HEAD)
-
- winboard/makefile.gcc |    2 +-
- winboard/winboard.c   |   10 +++++-----
- winboard/winboard.h   |    2 +-
- winboard/woptions.c   |    2 +-
- 4 files changed, 8 insertions(+), 8 deletions(-)
-
-** Version 4.5.3 **
-
-(git diff -b --stat --summary -M v4.5.2a HEAD)
-
- args.h                |   27 +++++++++++++---------
- backend.c             |   54 +++++++++++++++++++++++++++++++++++--------
- backend.h             |    4 ++-
- book.c                |    1 +
- configure.ac          |    2 +-
- engineoutput.c        |   14 +++++-----
- filebrowser/dir.c     |   13 +++++-----
- filebrowser/draw.c    |    7 +-----
- filebrowser/path.c    |   10 +-------
- filebrowser/selfile.c |   17 +++----------
- filebrowser/selfile.h |   17 +++++++++++++
- history.c             |    6 +++-
- moves.c               |    6 ++--
- uci.c                 |    2 +-
- winboard/config.h     |    6 ++--
- winboard/jaws.c       |   37 +++++++++++++++++++++++++-----
- winboard/language.txt |   40 +-------------------------------
- winboard/makefile.gcc |   10 ++++++-
- winboard/winboard.c   |    6 +++-
- winboard/winboard.h   |    1 +
- winboard/winboard.rc  |   32 +++++++++++++-------------
- winboard/wsettings.c  |   33 +++++++++++++++++---------
- xboard.c              |   24 ++++++++++++-------
- xboard.h              |   28 ++++++++++++++++++++++
- xboard.png            |  Bin 1342 -> 15116 bytes
- xboard.svg            |   26 ++++++++++++++------
- xedittags.c           |   11 ---------
- xengineoutput.c       |   16 -------------
- xevalgraph.c          |   14 -----------
- xgamelist.c           |   61 +++++++++++++++++++++++++++++++-----------------
- xhistory.c            |    6 -----
- xoptions.c            |   50 +++++++++++-----------------------------
- 32 files changed, 308 insertions(+), 273 deletions(-)
-
-
-** Version 4.5.2a (Winboard only)  **
-
-(git diff -b --stat --summary -M v4.5.2 HEAD)
-
- winboard/wsettings.c |    1 -
- 1 files changed, 0 insertions(+), 1 deletions(-)
-
-
-** Version 4.5.2  **
-
-(git diff -b --stat --summary -M v4.5.1 HEAD)
-
- ChangeLog                  |  361 +++++++++
- DIFFSTAT                   |   31 +
- Makefile.am                |   92 +++-
- NEWS                       |   20 +
- SHORTLOG                   |   50 ++
- args.h                     |   13 +-
- backend.c                  |  112 ++--
- backend.h                  |    7 +-
- common.h                   |    1 +
- configure.ac               |    6 +-
- engineoutput.c             |    1 -
- filebrowser/dir.c          |   13 +
- filebrowser/draw.c         |    9 +-
- filebrowser/path.c         |   10 +
- filebrowser/selfile.c      |  149 ++++-
- filebrowser/selfile.h      |    6 +
- history.c                  |    1 -
- moves.c                    |    1 +
- parser.l                   |    4 +-
- shogipixmaps/add64.xpm     |   73 --
- shogipixmaps/adl64.xpm     |   73 --
- shogipixmaps/ald64.xpm     |   73 --
- shogipixmaps/all64.xpm     |   73 --
- shogipixmaps/ddd64.xpm     |   73 --
- shogipixmaps/ddl64.xpm     |   73 --
- shogipixmaps/dld64.xpm     |   73 --
- shogipixmaps/dll64.xpm     |   73 --
- shogipixmaps/qdd64.xpm     |    2 +-
- shogipixmaps/qdl64.xpm     |    2 +-
- shogipixmaps/qld64.xpm     |    2 +-
- shogipixmaps/qll64.xpm     |  112 ++--
- shogipixmaps/wldd64.xpm    |    2 +-
- shogipixmaps/wldl64.xpm    |    2 +-
- uci.c                      |    4 -
- winboard/bitmaps/convert.c |    1 +
- winboard/config.h          |    6 +-
- winboard/wgamelist.c       |    9 +-
- winboard/winboard.c        |   13 +-
- winboard/winboard.h        |    1 +
- winboard/woptions.c        |    2 +-
- winboard/wsettings.c       |   24 +-
- xboard.c                   |  962 ++++++++++--------------
- xboard.conf.in             |   37 +-
- xboard.h                   |    2 +
- xboard.texi                |  467 ++++++++----
- xgamelist.c                |    1 +
- xoptions.c                 | 1790 +++++++++++++++++++++++---------------------
- 47 files changed, 2591 insertions(+), 2321 deletions(-)
- delete mode 100644 shogipixmaps/add64.xpm
- delete mode 100644 shogipixmaps/adl64.xpm
- delete mode 100644 shogipixmaps/ald64.xpm
- delete mode 100644 shogipixmaps/all64.xpm
- delete mode 100644 shogipixmaps/ddd64.xpm
- delete mode 100644 shogipixmaps/ddl64.xpm
- delete mode 100644 shogipixmaps/dld64.xpm
- delete mode 100644 shogipixmaps/dll64.xpm
-
-** Version 4.5.1 **
-
-(git diff -b --stat --summary -M v4.5.0 HEAD)
-
- ChangeLog                  |  142 ++++++++++++++++++++++++++++++++++++++++++++
- DIFFSTAT                   |   26 ++++++++
- Makefile.am                |    2 +-
- NEWS                       |   32 ++++++++++
- SHORTLOG                   |   27 ++++++++
- backend.c                  |   11 ++--
- childio.c                  |    1 +
- configure.ac               |   40 ++++++-------
- filebrowser/dir.c          |   18 ++----
- filebrowser/draw.c         |   34 ++++++----
- filebrowser/path.c         |   99 ++++++++++++++++---------------
- filebrowser/selfile.c      |   12 ++++-
- moves.c                    |    5 +-
- winboard/config.h          |    6 +-
- winboard/help.c            |    1 +
- winboard/help/html/01.htm  |    2 +-
- winboard/help/html/02.htm  |   14 ++++-
- winboard/help/winboard.chm |  Bin 86507 -> 86883 bytes
- winboard/makefile.ms       |    4 +-
- winboard/wchat.c           |    2 +-
- winboard/winboard.c        |   29 +++++----
- winboard/winboard.dsp      |    6 ++-
- winboard/woptions.c        |    3 +-
- winboard/wsettings.c       |    5 +-
- xboard.c                   |    5 +-
- xboard.texi                |   10 ++--
- 26 files changed, 398 insertions(+), 138 deletions(-)
-
-** Version 4.5.0 **
-
-(git diff -b --stat --summary -M v4.4.4 HEAD)
-
- AUTHORS                              |   16 +-
- COPYRIGHT                            |    2 +-
- ChangeLog                            | 2326 +++++++++++++++++++--
- DIFFSTAT                             |  271 +++-
- FAQ.html                             |   15 +
- Makefile.am                          |   55 +-
- NEWS                                 |  818 +++++++-
- README                               |    8 +-
- SHORTLOG                             |  293 +++
- args.h                               | 1425 +++++++++++++
- autogen.sh                           |    2 +-
- backend.c                            | 3916 ++++++++++++++++++++++------------
- backend.h                            |   48 +-
- backendz.h                           |    2 +-
- bitmaps/bitmaps.h                    |    2 +-
- book.c                               |   39 +-
- childio.c                            |    9 +-
- childio.h                            |    2 +-
- cmail.in                             |    2 +-
- common.h                             |  118 +-
- config.rpath                         |    2 +-
- configure.ac                         |   20 +-
- copyright.texi                       |    2 +-
- engineoutput.c                       |  518 +++++
- engineoutput.h                       |   69 +
- evalgraph.c                          |  339 +++
- evalgraph.h                          |   60 +
- filebrowser/README                   |    3 +
- filebrowser/dir.c                    |  163 ++
- filebrowser/draw.c                   |  935 ++++++++
- filebrowser/path.c                   |  917 ++++++++
- filebrowser/selfile.c                |  756 +++++++
- filebrowser/selfile.h                |  149 ++
- filebrowser/xstat.h                  |   23 +
- frontend.h                           |   35 +-
- gamelist.c                           |  186 ++-
- gettext.h                            |    2 +-
- history.c                            |  246 +++
- lists.c                              |    2 +-
- lists.h                              |    2 +-
- moves.c                              |  666 ++++---
- moves.h                              |   20 +-
- winboard/parser.c => parser.c        | 2669 ++++++++++++-----------
- parser.h                             |    9 +-
- parser.l                             |  228 ++-
- pgntags.c                            |   26 +-
- pixmaps/convert.c                    |   29 +-
- pixmaps/marble_d.xpm                 |  238 ++
- pixmaps/marble_l.xpm                 |  359 ++++
- pixmaps/pixmaps.h                    |    2 +-
- pixmaps/wood_d.xpm                   |  239 +++
- pixmaps/wood_l.xpm                   |  192 ++
- pixmaps/xqboard.xpm                  |  498 +++++
- pixmaps/xqwood.xpm                   |  597 ++++++
- readme_HGM.txt                       |  411 ----
- shogipixmaps/add64.xpm               |   73 +
- shogipixmaps/adl64.xpm               |   73 +
- shogipixmaps/ald64.xpm               |   73 +
- shogipixmaps/all64.xpm               |   73 +
- shogipixmaps/bdd64.xpm               |   73 +
- shogipixmaps/bdl64.xpm               |   73 +
- shogipixmaps/bld64.xpm               |   74 +
- shogipixmaps/bll64.xpm               |   74 +
- shogipixmaps/ddd64.xpm               |   73 +
- shogipixmaps/ddl64.xpm               |   73 +
- shogipixmaps/dld64.xpm               |   73 +
- shogipixmaps/dll64.xpm               |   73 +
- shogipixmaps/fdd64.xpm               |   73 +
- shogipixmaps/fdl64.xpm               |   73 +
- shogipixmaps/fld64.xpm               |   74 +
- shogipixmaps/fll64.xpm               |   74 +
- shogipixmaps/kdd64.xpm               |   73 +
- shogipixmaps/kdl64.xpm               |   73 +
- shogipixmaps/kld64.xpm               |   73 +
- shogipixmaps/kll64.xpm               |   73 +
- shogipixmaps/ldd64.xpm               |   73 +
- shogipixmaps/ldl64.xpm               |   73 +
- shogipixmaps/lld64.xpm               |   73 +
- shogipixmaps/lll64.xpm               |   73 +
- shogipixmaps/ndd64.xpm               |   73 +
- shogipixmaps/ndl64.xpm               |   73 +
- shogipixmaps/nld64.xpm               |   74 +
- shogipixmaps/nll64.xpm               |   74 +
- shogipixmaps/pdd64.xpm               |   73 +
- shogipixmaps/pdl64.xpm               |   73 +
- shogipixmaps/pld64.xpm               |   74 +
- shogipixmaps/pll64.xpm               |   74 +
- shogipixmaps/qdd64.xpm               |   73 +
- shogipixmaps/qdl64.xpm               |   73 +
- shogipixmaps/qld64.xpm               |   73 +
- shogipixmaps/qll64.xpm               |   73 +
- shogipixmaps/rdd64.xpm               |   73 +
- shogipixmaps/rdl64.xpm               |   73 +
- shogipixmaps/rld64.xpm               |   73 +
- shogipixmaps/rll64.xpm               |   73 +
- shogipixmaps/wdd64.xpm               |   73 +
- shogipixmaps/wdl64.xpm               |   73 +
- shogipixmaps/wld64.xpm               |   73 +
- shogipixmaps/wldd64.xpm              |   73 +
- shogipixmaps/wldl64.xpm              |   73 +
- shogipixmaps/wll64.xpm               |   73 +
- shogipixmaps/wlld64.xpm              |   73 +
- shogipixmaps/wlll64.xpm              |   73 +
- shogipixmaps/wndd64.xpm              |   73 +
- shogipixmaps/wndl64.xpm              |   73 +
- shogipixmaps/wnld64.xpm              |   73 +
- shogipixmaps/wnll64.xpm              |   73 +
- shogipixmaps/wpdd64.xpm              |   73 +
- shogipixmaps/wpdl64.xpm              |   73 +
- shogipixmaps/wpld64.xpm              |   73 +
- shogipixmaps/wpll64.xpm              |   73 +
- shogipixmaps/wsdd64.xpm              |   73 +
- shogipixmaps/wsdl64.xpm              |   73 +
- shogipixmaps/wsld64.xpm              |   73 +
- shogipixmaps/wsll64.xpm              |   73 +
- uci.c                                |  105 +-
- winboard/WB4Jaws.dev                 |   94 +-
- winboard/Winboard.dev                |   94 +-
- winboard/bitmaps/wl33o.bmp           |  Bin 0 -> 326 bytes
- winboard/bitmaps/wl33s.bmp           |  Bin 0 -> 326 bytes
- winboard/bitmaps/wn33o.bmp           |  Bin 0 -> 326 bytes
- winboard/bitmaps/wn33s.bmp           |  Bin 0 -> 326 bytes
- winboard/bitmaps/wp33o.bmp           |  Bin 0 -> 326 bytes
- winboard/bitmaps/wp33s.bmp           |  Bin 0 -> 326 bytes
- winboard/bitmaps/ws33o.bmp           |  Bin 0 -> 326 bytes
- winboard/bitmaps/ws33s.bmp           |  Bin 0 -> 326 bytes
- winboard/config.h                    |    6 +-
- winboard/defaults.h                  |   11 +-
- winboard/help.c                      |    4 +-
- winboard/help/html/01.htm            |    8 +-
- winboard/help/html/03.htm            |    2 +-
- winboard/help/html/04.htm            |   35 +-
- winboard/help/html/05.htm            |    6 +
- winboard/help/html/06.htm            |    9 +-
- winboard/help/html/07.htm            |   57 +-
- winboard/help/html/09.htm            |    6 +
- winboard/help/html/14.htm            |   42 +
- winboard/help/html/15.htm            |   16 +-
- winboard/help/html/16.htm            |   19 +-
- winboard/help/html/18.htm            |   12 +-
- winboard/help/html/24.htm            |    2 +-
- winboard/help/winboard.chm           |  Bin 79031 -> 86507 bytes
- winboard/help/winboard.hhk           |  138 ++-
- winboard/help/winboard.hhp           |   13 +-
- winboard/jaws.c                      |  131 +-
- winboard/language.txt                | 1425 +++++++++----
- winboard/makefile.gcc                |   38 +-
- winboard/makefile.ms                 |   34 +-
- winboard/resource.h                  |   87 +
- winboard/wchat.c                     |  165 ++-
- winboard/wclipbrd.c                  |   65 +-
- winboard/wclipbrd.h                  |    2 +-
- winboard/wedittags.c                 |   42 +-
- winboard/wengineo.c                  |  856 --------
- winboard/wengineoutput.c             |  436 ++++
- winboard/wevalgraph.c                |  359 +---
- winboard/wgamelist.c                 |   97 +-
- winboard/wgamelist.h                 |   28 -
- winboard/whistory.c                  |  264 +--
- winboard/winboard.c                  | 3449 +++++++++++-------------------
- winboard/winboard.dsp                |   18 +-
- winboard/winboard.h                  |   57 +-
- winboard/winboard.rc                 |  776 ++++----
- winboard/winboard.rtf                | 1719 ++++++++-------
- winboard/wlayout.c                   |    3 +-
- winboard/woptions.c                  |  424 ++--
- winboard/woptions.h                  |    2 +-
- winboard/wsettings.c                 |   28 +-
- winboard/wsockerr.c                  |    2 +-
- winboard/wsockerr.h                  |    2 +-
- xboard.c                             | 2912 ++++++++++++-------------
- xboard.conf.in                       |   77 +
- xboard.desktop                       |  154 ++
- xboard.h                             |   26 +-
- xboard.texi                          |  960 ++++++---
- xedittags.c                          |   13 +-
- xedittags.h                          |    3 +-
- xengineoutput.c                      |  597 ++----
- xevalgraph.c                         |  456 ++++
- winboard/wedittags.h => xevalgraph.h |   14 +-
- xgamelist.c                          |  413 ++++-
- xgamelist.h                          |    5 +-
- xhistory.c                           |   76 +-
- xhistory.h                           |    4 +-
- xoptions.c                           |  243 ++-
- zic2xpm.c                            |   19 +-
- zic2xpm.man                          |    2 +-
- zippy.c                              |   88 +-
- zippy.h                              |    2 +-
- 189 files changed, 29433 insertions(+), 12188 deletions(-)
- create mode 100644 args.h
- create mode 100644 engineoutput.c
- create mode 100644 engineoutput.h
- create mode 100644 evalgraph.c
- create mode 100644 evalgraph.h
- create mode 100644 filebrowser/README
- create mode 100644 filebrowser/dir.c
- create mode 100644 filebrowser/draw.c
- create mode 100644 filebrowser/path.c
- create mode 100644 filebrowser/selfile.c
- create mode 100644 filebrowser/selfile.h
- create mode 100644 filebrowser/xstat.h
- create mode 100644 history.c
- rename winboard/parser.c => parser.c (51%)
- mode change 100755 => 100644 parser.l
- create mode 100644 pixmaps/marble_d.xpm
- create mode 100644 pixmaps/marble_l.xpm
- create mode 100644 pixmaps/wood_d.xpm
- create mode 100644 pixmaps/wood_l.xpm
- create mode 100644 pixmaps/xqboard.xpm
- create mode 100644 pixmaps/xqwood.xpm
- delete mode 100644 readme_HGM.txt
- create mode 100644 shogipixmaps/add64.xpm
- create mode 100644 shogipixmaps/adl64.xpm
- create mode 100644 shogipixmaps/ald64.xpm
- create mode 100644 shogipixmaps/all64.xpm
- create mode 100644 shogipixmaps/bdd64.xpm
- create mode 100644 shogipixmaps/bdl64.xpm
- create mode 100644 shogipixmaps/bld64.xpm
- create mode 100644 shogipixmaps/bll64.xpm
- create mode 100644 shogipixmaps/ddd64.xpm
- create mode 100644 shogipixmaps/ddl64.xpm
- create mode 100644 shogipixmaps/dld64.xpm
- create mode 100644 shogipixmaps/dll64.xpm
- create mode 100644 shogipixmaps/fdd64.xpm
- create mode 100644 shogipixmaps/fdl64.xpm
- create mode 100644 shogipixmaps/fld64.xpm
- create mode 100644 shogipixmaps/fll64.xpm
- create mode 100644 shogipixmaps/kdd64.xpm
- create mode 100644 shogipixmaps/kdl64.xpm
- create mode 100644 shogipixmaps/kld64.xpm
- create mode 100644 shogipixmaps/kll64.xpm
- create mode 100644 shogipixmaps/ldd64.xpm
- create mode 100644 shogipixmaps/ldl64.xpm
- create mode 100644 shogipixmaps/lld64.xpm
- create mode 100644 shogipixmaps/lll64.xpm
- create mode 100644 shogipixmaps/ndd64.xpm
- create mode 100644 shogipixmaps/ndl64.xpm
- create mode 100644 shogipixmaps/nld64.xpm
- create mode 100644 shogipixmaps/nll64.xpm
- create mode 100644 shogipixmaps/pdd64.xpm
- create mode 100644 shogipixmaps/pdl64.xpm
- create mode 100644 shogipixmaps/pld64.xpm
- create mode 100644 shogipixmaps/pll64.xpm
- create mode 100644 shogipixmaps/qdd64.xpm
- create mode 100644 shogipixmaps/qdl64.xpm
- create mode 100644 shogipixmaps/qld64.xpm
- create mode 100644 shogipixmaps/qll64.xpm
- create mode 100644 shogipixmaps/rdd64.xpm
- create mode 100644 shogipixmaps/rdl64.xpm
- create mode 100644 shogipixmaps/rld64.xpm
- create mode 100644 shogipixmaps/rll64.xpm
- create mode 100644 shogipixmaps/wdd64.xpm
- create mode 100644 shogipixmaps/wdl64.xpm
- create mode 100644 shogipixmaps/wld64.xpm
- create mode 100644 shogipixmaps/wldd64.xpm
- create mode 100644 shogipixmaps/wldl64.xpm
- create mode 100644 shogipixmaps/wll64.xpm
- create mode 100644 shogipixmaps/wlld64.xpm
- create mode 100644 shogipixmaps/wlll64.xpm
- create mode 100644 shogipixmaps/wndd64.xpm
- create mode 100644 shogipixmaps/wndl64.xpm
- create mode 100644 shogipixmaps/wnld64.xpm
- create mode 100644 shogipixmaps/wnll64.xpm
- create mode 100644 shogipixmaps/wpdd64.xpm
- create mode 100644 shogipixmaps/wpdl64.xpm
- create mode 100644 shogipixmaps/wpld64.xpm
- create mode 100644 shogipixmaps/wpll64.xpm
- create mode 100644 shogipixmaps/wsdd64.xpm
- create mode 100644 shogipixmaps/wsdl64.xpm
- create mode 100644 shogipixmaps/wsld64.xpm
- create mode 100644 shogipixmaps/wsll64.xpm
- create mode 100644 winboard/bitmaps/wl33o.bmp
- create mode 100644 winboard/bitmaps/wl33s.bmp
- create mode 100644 winboard/bitmaps/wn33o.bmp
- create mode 100644 winboard/bitmaps/wn33s.bmp
- create mode 100644 winboard/bitmaps/wp33o.bmp
- create mode 100644 winboard/bitmaps/wp33s.bmp
- create mode 100644 winboard/bitmaps/ws33o.bmp
- create mode 100644 winboard/bitmaps/ws33s.bmp
- delete mode 100644 winboard/wengineo.c
- create mode 100644 winboard/wengineoutput.c
- delete mode 100644 winboard/wgamelist.h
- create mode 100644 xboard.conf.in
- create mode 100644 xboard.desktop
- create mode 100644 xevalgraph.c
- rename winboard/wedittags.h => xevalgraph.h (74%)
-
-
-** Version 4.4.4 **
-
-(git diff -b --stat --summary -M v4.4.3...HEAD)
-
- backend.c            |   69 +++++++++++++++++++++++--------------------------
- backend.h            |    2 +-
- configure.ac         |   10 +++---
- moves.c              |    4 +-
- parser.l             |   16 ++++++------
- winboard/config.h    |    6 ++--
- winboard/wgamelist.c |    4 +-
- winboard/winboard.c  |   29 +++++++++++++++++---
- winboard/woptions.c  |    3 +-
- xboard.c             |    2 +-
- xoptions.c           |    2 +-
- zippy.c              |   11 +------
- 12 files changed, 82 insertions(+), 76 deletions(-)
-
-** Version 4.4.3 **
-
-(git diff -b --stat --summary -M v4.4.2...HEAD)
-
- AUTHORS                    |   16 +-
- COPYRIGHT                  |    2 +-
- ChangeLog                  |  323 ++++
- DIFFSTAT                   |   84 +
- Makefile.am                |    7 +-
- NEWS                       |   35 +
- SHORTLOG                   |   57 +
- autogen.sh                 |    2 +-
- backend.c                  |  224 ++-
- backend.h                  |   10 +-
- backendz.h                 |    2 +-
- bitmaps/bitmaps.h          |    2 +-
- childio.c                  |    2 +-
- childio.h                  |    2 +-
- cmail.in                   |    2 +-
- common.h                   |    4 +-
- config.rpath               |    2 +-
- configure.ac               |    6 +-
- copyright.texi             |    2 +-
- frontend.h                 |    2 +-
- gamelist.c                 |    2 +-
- gettext.h                  |    2 +-
- lists.c                    |    2 +-
- lists.h                    |    2 +-
- moves.c                    |   26 +-
- moves.h                    |    8 +-
- parser.h                   |    2 +-
- parser.l                   |   14 +-
- pgntags.c                  |    2 +-
- pixmaps/pixmaps.h          |    2 +-
- winboard/config.h          |    6 +-
- winboard/defaults.h        |    2 +-
- winboard/help.c            |    2 +-
- winboard/help/html/18.htm  |    4 +-
- winboard/help/winboard.hhk |    4 +-
- winboard/jaws.c            |   16 +-
- winboard/makefile.gcc      |    8 +-
- winboard/makefile.ms       |    8 +-
- winboard/parser.c          | 3866 +++++++++++++++++++++++---------------------
- winboard/resource.h        |    1 +
- winboard/wchat.c           |   30 +-
- winboard/wclipbrd.c        |    2 +-
- winboard/wclipbrd.h        |    2 +-
- winboard/wedittags.c       |    2 +-
- winboard/wedittags.h       |    2 +-
- winboard/wengineo.c        |    1 +
- winboard/wgamelist.c       |    2 +-
- winboard/wgamelist.h       |    2 +-
- winboard/winboard.c        |   29 +-
- winboard/winboard.h        |    2 +-
- winboard/winboard.rc       |    2 +
- winboard/winboard.rtf      |    2 +-
- winboard/woptions.c        |    8 +-
- winboard/woptions.h        |    2 +-
- winboard/wsockerr.c        |    2 +-
- winboard/wsockerr.h        |    2 +-
- xboard.c                   |   13 +-
- xboard.h                   |    2 +-
- xboard.png                 |  Bin 0 -> 1342 bytes
- xboard.svg                 |  119 ++
- xboard.texi                |    5 +-
- xedittags.c                |    2 +-
- xedittags.h                |    2 +-
- xengineoutput.c            |    2 +-
- xgamelist.c                |    2 +-
- xgamelist.h                |    2 +-
- xhistory.c                 |    2 +-
- xhistory.h                 |    2 +-
- xoptions.c                 |   15 +-
- zic2xpm.c                  |    2 +-
- zic2xpm.man                |    2 +-
- zippy.c                    |    2 +-
- zippy.h                    |    2 +-
- 73 files changed, 2973 insertions(+), 2060 deletions(-)
- mode change 100755 => 100644 backend.c
- mode change 100755 => 100644 gamelist.c
- mode change 100755 => 100644 gettext.h
- mode change 100755 => 100644 winboard/woptions.c
- create mode 100644 xboard.png
- create mode 100644 xboard.svg
-
-** Version 4.4.2 **
-
-(git diff --stat --summary -M v4.4.1...HEAD)
-
- Makefile.am            |    6 +-
- backend.c              |  108 +++++++++++++++++++++++------------------------
- backend.h              |    1 +
- configure.ac           |   12 ++++-
- moves.c                |   36 +---------------
- pixmaps/asdd72.xpm     |   26 ++++++------
- pixmaps/asdl72.xpm     |   26 ++++++------
- pixmaps/cvdd37.xpm     |   32 +++++++-------
- pixmaps/cvdd45.xpm     |   42 +++++++++---------
- pixmaps/cvdd49.xpm     |   48 +++++++++++-----------
- pixmaps/cvdl37.xpm     |   32 +++++++-------
- pixmaps/cvdl45.xpm     |   42 +++++++++---------
- pixmaps/cvdl49.xpm     |   48 +++++++++++-----------
- pixmaps/hdd49.xpm      |   64 ++++++++++++++--------------
- pixmaps/hdd72.xpm      |  108 ++++++++++++++++++++++++------------------------
- pixmaps/hdl49.xpm      |   64 ++++++++++++++--------------
- pixmaps/hdl72.xpm      |  108 ++++++++++++++++++++++++------------------------
- shogibitmaps/README    |    2 -
- shogibitmaps/sa58o.bmp |  Bin 526 -> 0 bytes
- shogibitmaps/sb58o.bmp |  Bin 526 -> 0 bytes
- shogibitmaps/sc58o.bmp |  Bin 526 -> 0 bytes
- shogibitmaps/sf58o.bmp |  Bin 526 -> 0 bytes
- shogibitmaps/sg58o.bmp |  Bin 526 -> 0 bytes
- shogibitmaps/sh58o.bmp |  Bin 526 -> 0 bytes
- shogibitmaps/sk58o.bmp |  Bin 526 -> 0 bytes
- shogibitmaps/sk58w.bmp |  Bin 526 -> 0 bytes
- shogibitmaps/sl58o.bmp |  Bin 526 -> 0 bytes
- shogibitmaps/sl58w.bmp |  Bin 526 -> 0 bytes
- shogibitmaps/sn58o.bmp |  Bin 526 -> 0 bytes
- shogibitmaps/sn58w.bmp |  Bin 526 -> 0 bytes
- shogibitmaps/sp58o.bmp |  Bin 526 -> 0 bytes
- shogibitmaps/sp58w.bmp |  Bin 526 -> 0 bytes
- shogibitmaps/sr58o.bmp |  Bin 526 -> 0 bytes
- shogibitmaps/sr58w.bmp |  Bin 526 -> 0 bytes
- shogibitmaps/ss58o.bmp |  Bin 526 -> 0 bytes
- shogibitmaps/su58o.bmp |  Bin 526 -> 0 bytes
- shogibitmaps/sw58o.bmp |  Bin 526 -> 0 bytes
- shogibitmaps/sw58w.bmp |  Bin 526 -> 0 bytes
- winboard/config.h      |    6 +-
- winboard/makefile.gcc  |    2 +-
- winboard/makefile.ms   |    2 +-
- winboard/wchat.c       |    5 +-
- winboard/wclipbrd.c    |    3 +-
- winboard/winboard.c    |    9 +---
- winboard/woptions.c    |    4 +-
- xboard.c               |    1 +
- xengineoutput.c        |    4 ++
- xhistory.c             |   25 ++++++-----
- xoptions.c             |    5 +-
- 49 files changed, 424 insertions(+), 447 deletions(-)
- delete mode 100644 shogibitmaps/README
- delete mode 100644 shogibitmaps/sa58o.bmp
- delete mode 100644 shogibitmaps/sb58o.bmp
- delete mode 100644 shogibitmaps/sc58o.bmp
- delete mode 100644 shogibitmaps/sf58o.bmp
- delete mode 100644 shogibitmaps/sg58o.bmp
- delete mode 100644 shogibitmaps/sh58o.bmp
- delete mode 100644 shogibitmaps/sk58o.bmp
- delete mode 100644 shogibitmaps/sk58w.bmp
- delete mode 100644 shogibitmaps/sl58o.bmp
- delete mode 100644 shogibitmaps/sl58w.bmp
- delete mode 100644 shogibitmaps/sn58o.bmp
- delete mode 100644 shogibitmaps/sn58w.bmp
- delete mode 100644 shogibitmaps/sp58o.bmp
- delete mode 100644 shogibitmaps/sp58w.bmp
- delete mode 100644 shogibitmaps/sr58o.bmp
- delete mode 100644 shogibitmaps/sr58w.bmp
- delete mode 100644 shogibitmaps/ss58o.bmp
- delete mode 100644 shogibitmaps/su58o.bmp
- delete mode 100644 shogibitmaps/sw58o.bmp
- delete mode 100644 shogibitmaps/sw58w.bmp
-
-** Version 4.4.1 **
-
-(git diff --stat --summary -M vold...vnew)
-
- .gitignore                 |   27 +-
- ChangeLog                  | 1445 +++++++++++++++++++++++++++++++-------------
- Makefile.am                |   41 +-
- NEWS                       |   24 +
- README                     |    1 -
- ToDo => TODO               |    0
- backend.c                  | 1322 +++++++++++++++++++++++++----------------
- backend.h                  |   15 +-
- backendz.h                 |    1 +
- bitmaps/a49c.bm            |   27 -
- bitmaps/b129o.bm           |  189 ++++++-
- bitmaps/b129s.bm           |  189 ++++++-
- bitmaps/bitmaps.h          | 1060 ++++++++++++++++----------------
- bitmaps/fixup.sed          |    3 -
- bitmaps/h129o.bm           |    5 -
- bitmaps/k129o.bm           |  189 ++++++-
- bitmaps/k129s.bm           |  189 ++++++-
- bitmaps/m33s.bm            |   18 +-
- bitmaps/n129o.bm           |  189 ++++++-
- bitmaps/n129s.bm           |  189 ++++++-
- bitmaps/p129o.bm           |  189 ++++++-
- bitmaps/p129s.bm           |  189 ++++++-
- bitmaps/q129o.bm           |  189 ++++++-
- bitmaps/q129s.bm           |  189 ++++++-
- bitmaps/r129o.bm           |  189 ++++++-
- bitmaps/r129s.bm           |  189 ++++++-
- bitmaps/unsigned.sh        |    8 -
- bitmaps/v54o.bm            |   30 -
- bitmaps/v54s.bm            |   30 -
- bitmaps/w54o.bm            |   27 -
- bitmaps/w54s.bm            |   27 -
- book.c                     |    6 +-
- cmail.in                   |    6 +-
- common.h                   |   14 +-
- configure.ac               |    2 +-
- copyright.texi             |    1 +
- engine-intf.html           | 1118 ++++++++++++++++------------------
- frontend.h                 |   15 +-
- gamelist.c                 |   27 +-
- moves.c                    |   49 +-
- parser.h                   |    4 +-
- parser.l                   |   15 +-
- pgntags.c                  |    4 +
- pixmaps/add33.xpm          |   23 +-
- pixmaps/add37.xpm          |   21 +-
- pixmaps/add40.xpm          |   23 +-
- pixmaps/add45.xpm          |   27 +-
- pixmaps/add49.xpm          |   29 +-
- pixmaps/add54.xpm          |   39 +-
- pixmaps/add58.xpm          |   35 +-
- pixmaps/add64.xpm          |   39 +-
- pixmaps/add72.xpm          |   41 +-
- pixmaps/adl33.xpm          |   23 +-
- pixmaps/adl37.xpm          |   21 +-
- pixmaps/adl40.xpm          |   23 +-
- pixmaps/adl45.xpm          |   27 +-
- pixmaps/adl49.xpm          |   29 +-
- pixmaps/adl54.xpm          |   39 +-
- pixmaps/adl58.xpm          |   35 +-
- pixmaps/adl64.xpm          |   39 +-
- pixmaps/adl72.xpm          |   41 +-
- pixmaps/asdd33.xpm         |   47 +-
- pixmaps/asdd45.xpm         |   53 --
- pixmaps/asdd49.xpm         |   61 +-
- pixmaps/asdd72.xpm         |   85 ++--
- pixmaps/asdl33.xpm         |   47 +-
- pixmaps/asdl45.xpm         |   53 --
- pixmaps/asdl49.xpm         |   61 +-
- pixmaps/asdl72.xpm         |   85 ++--
- pixmaps/asld45.xpm         |   54 --
- pixmaps/asll45.xpm         |   54 --
- pixmaps/cdd33.xpm          |   41 +-
- pixmaps/cdd37.xpm          |   53 +-
- pixmaps/cdd40.xpm          |   53 +-
- pixmaps/cdd45.xpm          |   57 +-
- pixmaps/cdd49.xpm          |   61 +-
- pixmaps/cdd54.xpm          |   71 ++--
- pixmaps/cdd58.xpm          |   73 ++--
- pixmaps/cdd64.xpm          |   81 ++--
- pixmaps/cdd72.xpm          |   91 ++--
- pixmaps/cdl33.xpm          |   41 +-
- pixmaps/cdl37.xpm          |   53 +-
- pixmaps/cdl40.xpm          |   53 +-
- pixmaps/cdl45.xpm          |   57 +-
- pixmaps/cdl49.xpm          |   61 +-
- pixmaps/cdl54.xpm          |   71 ++--
- pixmaps/cdl58.xpm          |   73 ++--
- pixmaps/cdl64.xpm          |   81 ++--
- pixmaps/cdl72.xpm          |   91 ++--
- pixmaps/convert.c          |   30 +-
- pixmaps/cvdd33.xpm         |   39 +-
- pixmaps/cvdd37.xpm         |   23 +-
- pixmaps/cvdd40.xpm         |   49 +-
- pixmaps/cvdd45.xpm         |   27 +-
- pixmaps/cvdd49.xpm         |   31 +-
- pixmaps/cvdd54.xpm         |   67 +-
- pixmaps/cvdd58.xpm         |   77 ++--
- pixmaps/cvdd64.xpm         |   79 ++--
- pixmaps/cvdd72.xpm         |   87 ++--
- pixmaps/cvdl33.xpm         |   39 +-
- pixmaps/cvdl37.xpm         |   23 +-
- pixmaps/cvdl40.xpm         |   49 +-
- pixmaps/cvdl45.xpm         |   27 +-
- pixmaps/cvdl49.xpm         |   31 +-
- pixmaps/cvdl54.xpm         |   67 +-
- pixmaps/cvdl58.xpm         |   77 ++--
- pixmaps/cvdl64.xpm         |   79 ++--
- pixmaps/cvdl72.xpm         |   87 ++--
- pixmaps/dkdd33.xpm         |   19 +-
- pixmaps/dkdd49.xpm         |   23 +-
- pixmaps/dkdd72.xpm         |   37 +-
- pixmaps/dkdl33.xpm         |   19 +-
- pixmaps/dkdl49.xpm         |   23 +-
- pixmaps/dkdl72.xpm         |   37 +-
- pixmaps/edd33.xpm          |   49 +-
- pixmaps/edd49.xpm          |   63 +-
- pixmaps/edd72.xpm          |  101 ++--
- pixmaps/edl33.xpm          |   49 +-
- pixmaps/edl49.xpm          |   63 +-
- pixmaps/edl72.xpm          |  101 ++--
- pixmaps/fdd33.xpm          |   35 +-
- pixmaps/fdd49.xpm          |   43 +-
- pixmaps/fdd72.xpm          |   37 +-
- pixmaps/fdl33.xpm          |   35 +-
- pixmaps/fdl49.xpm          |   43 +-
- pixmaps/fdl72.xpm          |   37 +-
- pixmaps/gdd33.xpm          |   11 +-
- pixmaps/gdd49.xpm          |   11 +-
- pixmaps/gdd72.xpm          |   19 +-
- pixmaps/gdl33.xpm          |   11 +-
- pixmaps/gdl49.xpm          |   11 +-
- pixmaps/gdl72.xpm          |   19 +-
- pixmaps/hdd33.xpm          |   47 +-
- pixmaps/hdd49.xpm          |   39 +-
- pixmaps/hdd72.xpm          |   63 +-
- pixmaps/hdl33.xpm          |   47 +-
- pixmaps/hdl49.xpm          |   39 +-
- pixmaps/hdl72.xpm          |   63 +-
- pixmaps/ldd33.xpm          |   23 +-
- pixmaps/ldd37.xpm          |   25 +-
- pixmaps/ldd40.xpm          |   29 +-
- pixmaps/ldd45.xpm          |   31 +-
- pixmaps/ldd49.xpm          |   25 +-
- pixmaps/ldd54.xpm          |   39 +-
- pixmaps/ldd58.xpm          |   39 +-
- pixmaps/ldd64.xpm          |   37 +-
- pixmaps/ldd72.xpm          |   45 +-
- pixmaps/ldl33.xpm          |   23 +-
- pixmaps/ldl37.xpm          |   25 +-
- pixmaps/ldl40.xpm          |   29 +-
- pixmaps/ldl45.xpm          |   31 +-
- pixmaps/ldl49.xpm          |   25 +-
- pixmaps/ldl54.xpm          |   39 +-
- pixmaps/ldl58.xpm          |   39 +-
- pixmaps/ldl64.xpm          |   37 +-
- pixmaps/ldl72.xpm          |   45 +-
- pixmaps/mdd33.xpm          |   84 ++--
- pixmaps/mdd49.xpm          |   23 +-
- pixmaps/mdd72.xpm          |   29 +-
- pixmaps/mdl33.xpm          |   84 ++--
- pixmaps/mdl49.xpm          |   23 +-
- pixmaps/mdl72.xpm          |   29 +-
- pixmaps/odd33.xpm          |   19 +-
- pixmaps/odd49.xpm          |   31 +-
- pixmaps/odd72.xpm          |   45 +-
- pixmaps/odl33.xpm          |   19 +-
- pixmaps/odl49.xpm          |   31 +-
- pixmaps/odl72.xpm          |   45 +-
- pixmaps/sdd49.xpm          |   19 +-
- pixmaps/sdd72.xpm          |   27 +-
- pixmaps/sdl49.xpm          |   19 +-
- pixmaps/sdl72.xpm          |   27 +-
- pixmaps/udd49.xpm          |   49 +-
- pixmaps/udd72.xpm          |   59 +-
- pixmaps/udl49.xpm          |   49 +-
- pixmaps/udl72.xpm          |   59 +-
- pixmaps/vdd33.xpm          |   39 +-
- pixmaps/vdd49.xpm          |   57 +-
- pixmaps/vdd54.xpm          |   62 --
- pixmaps/vdd72.xpm          |   77 ++--
- pixmaps/vdl33.xpm          |   39 +-
- pixmaps/vdl49.xpm          |   57 +-
- pixmaps/vdl54.xpm          |   62 --
- pixmaps/vdl72.xpm          |   77 ++--
- pixmaps/vld54.xpm          |   63 --
- pixmaps/vll54.xpm          |   63 --
- pixmaps/wdd33.xpm          |   39 +-
- pixmaps/wdd49.xpm          |   49 +-
- pixmaps/wdd54.xpm          |   62 --
- pixmaps/wdd72.xpm          |   69 ++-
- pixmaps/wdl33.xpm          |   39 +-
- pixmaps/wdl49.xpm          |   49 +-
- pixmaps/wdl54.xpm          |   62 --
- pixmaps/wdl72.xpm          |   69 ++-
- pixmaps/wld54.xpm          |   63 --
- pixmaps/wldd49.xpm         |   49 +-
- pixmaps/wldd72.xpm         |   69 ++-
- pixmaps/wldl49.xpm         |   49 +-
- pixmaps/wldl72.xpm         |   69 ++-
- pixmaps/wll54.xpm          |   63 --
- pixmaps/wndd49.xpm         |   47 +-
- pixmaps/wndd72.xpm         |   69 ++-
- pixmaps/wndl49.xpm         |   47 +-
- pixmaps/wndl72.xpm         |   69 ++-
- pixmaps/wpdd49.xpm         |   37 +-
- pixmaps/wpdd72.xpm         |   53 +-
- pixmaps/wpdl49.xpm         |   37 +-
- pixmaps/wpdl72.xpm         |   53 +-
- pixmaps/wsdd49.xpm         |   49 +-
- pixmaps/wsdd72.xpm         |   69 ++-
- pixmaps/wsdl49.xpm         |   49 +-
- pixmaps/wsdl72.xpm         |   69 ++-
- shiphtml                   |   25 -
- winboard/COMPILING         |   26 +-
- winboard/WB4Jaws.dev       |   30 +-
- winboard/Winboard.dev      |   30 +-
- winboard/bitmaps/as45o.bmp |  Bin 422 -> 0 bytes
- winboard/bitmaps/as45s.bmp |  Bin 422 -> 0 bytes
- winboard/bitmaps/as45w.bmp |  Bin 422 -> 0 bytes
- winboard/bitmaps/bas.gif   |  Bin 308 -> 0 bytes
- winboard/bitmaps/bcv.gif   |  Bin 295 -> 0 bytes
- winboard/bitmaps/bitmaps.h |  368 -----------
- winboard/bitmaps/convert.c |    4 +-
- winboard/bitmaps/h129o.bmp |  Bin 2642 -> 0 bytes
- winboard/bitmaps/m129o.bmp |  Bin 2642 -> 0 bytes
- winboard/bitmaps/m33s.bmp  |  Bin 3354 -> 326 bytes
- winboard/bitmaps/v54o.bmp  |  Bin 494 -> 0 bytes
- winboard/bitmaps/v54s.bmp  |  Bin 494 -> 0 bytes
- winboard/bitmaps/v54w.bmp  |  Bin 494 -> 0 bytes
- winboard/bitmaps/w54o.bmp  |  Bin 454 -> 0 bytes
- winboard/bitmaps/w54s.bmp  |  Bin 454 -> 0 bytes
- winboard/bitmaps/w54w.bmp  |  Bin 454 -> 0 bytes
- winboard/bitmaps/was.gif   |  Bin 326 -> 0 bytes
- winboard/bitmaps/wcv.gif   |  Bin 314 -> 0 bytes
- winboard/config.h          |   10 +-
- winboard/internationalize  |    3 +
- winboard/jaws.c            |   98 ++--
- winboard/language.txt      |  460 ++++++++++++++
- winboard/makefile.gcc      |    9 +-
- winboard/makefile.ms       |    9 +-
- winboard/metascript.txt    |   14 +
- winboard/resource.h        |    9 +
- winboard/wchat.c           |  256 ++++++++
- winboard/wclipbrd.c        |   13 -
- winboard/wevalgraph.c      |  356 ++++++-----
- winboard/wgamelist.c       |    5 +-
- winboard/winboard.c        |  668 +++++++--------------
- winboard/winboard.dsp      |    4 +
- winboard/winboard.h        |    1 +
- winboard/winboard.rc       |   70 ++-
- winboard/winboard.rtf      | 1002 ++++++++++++++++---------------
- winboard/woptions.c        |   60 +--
- winboard/wsettings.c       |  136 +----
- xboard.c                   |  533 +++++++----------
- xboard.texi                |  166 +++---
- xedittags.c                |   16 -
- xengineoutput.c            |   40 +-
- xhistory.c                 |   53 --
- xoptions.c                 |  148 +----
- zippy.c                    |   13 +-
- 260 files changed, 11230 insertions(+), 8943 deletions(-)
- rename ToDo => TODO (100%)
- mode change 100644 => 100755 backend.c
- delete mode 100644 bitmaps/a49c.bm
- delete mode 100644 bitmaps/fixup.sed
- delete mode 100644 bitmaps/h129o.bm
- delete mode 100644 bitmaps/unsigned.sh
- delete mode 100644 bitmaps/v54o.bm
- delete mode 100644 bitmaps/v54s.bm
- delete mode 100644 bitmaps/w54o.bm
- delete mode 100644 bitmaps/w54s.bm
- mode change 100644 => 100755 gamelist.c
- delete mode 100644 pixmaps/asdd45.xpm
- delete mode 100644 pixmaps/asdl45.xpm
- delete mode 100644 pixmaps/asld45.xpm
- delete mode 100644 pixmaps/asll45.xpm
- delete mode 100644 pixmaps/vdd54.xpm
- delete mode 100644 pixmaps/vdl54.xpm
- delete mode 100644 pixmaps/vld54.xpm
- delete mode 100644 pixmaps/vll54.xpm
- delete mode 100644 pixmaps/wdd54.xpm
- delete mode 100644 pixmaps/wdl54.xpm
- delete mode 100644 pixmaps/wld54.xpm
- delete mode 100644 pixmaps/wll54.xpm
- delete mode 100644 shiphtml
- delete mode 100644 winboard/bitmaps/as45o.bmp
- delete mode 100644 winboard/bitmaps/as45s.bmp
- delete mode 100644 winboard/bitmaps/as45w.bmp
- delete mode 100644 winboard/bitmaps/bas.gif
- delete mode 100644 winboard/bitmaps/bcv.gif
- delete mode 100644 winboard/bitmaps/bitmaps.h
- delete mode 100644 winboard/bitmaps/h129o.bmp
- delete mode 100644 winboard/bitmaps/m129o.bmp
- delete mode 100644 winboard/bitmaps/v54o.bmp
- delete mode 100644 winboard/bitmaps/v54s.bmp
- delete mode 100644 winboard/bitmaps/v54w.bmp
- delete mode 100644 winboard/bitmaps/w54o.bmp
- delete mode 100644 winboard/bitmaps/w54s.bmp
- delete mode 100644 winboard/bitmaps/w54w.bmp
- delete mode 100644 winboard/bitmaps/was.gif
- delete mode 100644 winboard/bitmaps/wcv.gif
- create mode 100644 winboard/internationalize
- create mode 100644 winboard/language.txt
- create mode 100644 winboard/metascript.txt
- create mode 100644 winboard/wchat.c
- mode change 100644 => 100755 winboard/winboard.dsp
- mode change 100644 => 100755 winboard/woptions.c
-
-
diff --git a/FAQ.html b/FAQ.html
deleted file mode 100644 (file)
index a2a264c..0000000
--- a/FAQ.html
+++ /dev/null
@@ -1,1912 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-
-<head>
-<meta http-equiv="content-type" content="text/html; charset=utf-8" />
-<link rev="made" href="mailto:webmasters@gnu.org" />
-<link rel="icon" type="image/png" href="/graphics/gnu-head-mini.png" />
-<meta name="ICBM" content="42.256233,-71.006581" />
-<meta name="DC.title" content="gnu.org" />
-
-<title>XBoard and WinBoard: Frequently Asked Questions</title>
-<style type="text/css" media="all">
-@import url('/style.css');
-</style>
-
-<style type="text/css" media="print">
-@import url('/print.css');
-</style>
-
-</head>
-
-<body>
-<h1>XBoard and WinBoard: Frequently Asked Questions</h1>
-
-<p>This document answers some frequently asked questions about the
-graphical chess interfaces XBoard and WinBoard.
-A hyperlinked version of this FAQ is available on
-the Web through the page
-<a href="http://www.gnu.org/software/xboard/FAQ.html">
-http://www.gnu.org/software/xboard/FAQ.html</a>.</p>
-
-<p><i>This FAQ is in need of revision.  Please contact us if you'd like
-to help update it.</i></p>
-
-<hr />
-<h2>Outline</h2>
-
-<ul>
-<li><a href="#tag-A0">[A] Introduction and hot topics</a></li>
-<li><a href="#tag-B0">[B] XBoard and WinBoard</a></li>
-<li><a href="#tag-C0">[C] XBoard and WinBoard, bugs and problems</a></li>
-<li><a href="#tag-D0">[D] Crafty and other topics</a></li>
-</ul>
-
-<hr />
-<h2>Detailed contents</h2>
-
-<ul>
-  <li><a name="tag-A0" href="#tag[A">[A] Introduction and hot topics</a>
-    <ul>
-      <li><a href="#tag-A.1">[A.1] What are XBoard and WinBoard?</a></li>
-      <li><a href="#tag-A.2">[A.2] Where can I get chess information and chess software?</a></li> 
-      <li><a href="#tag-A.3">[A.3] What are the current version numbers for XBoard and WinBoard?</a></li> 
-      <li><a href="#tag-A.4">[A.4] Who is working on this project?</a></li>
-      <li><a href="#tag-A.5">[A.5] How do I report bugs, offer help, etc.?</a></li>
-      <li><a href="#tag-A.6">[A.6] What are the future plans for XBoard and WinBoard?</a></li>
-  </ul></li> 
-  
-  <li><a name="tag-B0" href="#tag[B">[B] XBoard and WinBoard</a>
-    <ul>
-      <li><a href="#tag-B.1">[B.1] What is XBoard?</a></li>
-      <li><a href="#tag-B.2">[B.2] Is there an XBoard for Microsoft Windows?  What is WinBoard?  How do I install WinBoard?</a></li>
-      <li><a href="#tag-B.3">[B.3] Is there an XBoard for the Amiga?  What is AmyBoard?</a></li>
-      <li><a href="#tag-B.4">[B.4] Is there an XBoard for the Macintosh?</a></li>
-      <li><a href="#tag-B.5">[B.5] Does XBoard run on VMS?</a></li>
-      <li><a href="#tag-B.6">[B.6] What is cmail?</a></li>
-      <li><a href="#tag-B.7">[B.7] How do I build XBoard?  Do I have to have gcc?</a></li>
-      <li><a href="#tag-B.8">[B.8] Can I use XBoard or WinBoard to play a game of chess with another human?</a></li>
-      <li><a href="#tag-B.9">[B.9] Will WinBoard run on Windows 3.1?  How about Windows CE (also known as Pocket PC)?</a></li>
-      <li><a href="#tag-B.10">[B.10] How do I use XBoard or WinBoard as an external viewer for PGN files with my Web browser?</a></li>
-      <li><a href="#tag-B.11">[B.11] How do I use WinBoard as an external viewer for PGN files with the MS Windows File Manager or Explorer?</a></li>
-      <li><a href="#tag-B.12">[B.12] How do I use ICC timestamp or FICS timeseal with XBoard?</a></li>
-      <li><a href="#tag-B.13">[B.13] How do I use ICC timestamp or FICS timeseal with WinBoard?</a></li>
-      <li><a href="#tag-B.14">[B.14] How do I play bughouse with XBoard or WinBoard?</a></li>
-      <li><a href="#tag-B.16">[B.16] What is Zippy?  How can I interface a chess program to the Internet Chess Servers?</a></li> 
-      <li><a href="#tag-B.17">[B.17] How can I interface my own chess program to XBoard or WinBoard?</a></li>
-      <li><a href="#tag-B.18">[B.18] How can I recompile WinBoard from source?</a></li>
-      <li><a href="#tag-B.19">[B.19] How can I use XBoard or WinBoard to talk to an Internet Chess Server through a firewall or proxy?</a></li>
-      <li><a href="#tag-B.20">[B.20] How can I use XBoard or WinBoard on chess.net with accuclock?</a></li>
-      <li><a href="#tag-B.21">[B.21] Can I get Zippy to do one or more ICS commands automatically at the start or end of each game?</a></li>
-      <li><a href="#tag-B.22">[B.22] How do I print from WinBoard?</a></li>
-      <li><a href="#tag-B.23">[B.23] Can I get Zippy to automatically reconnect to ICS when its connection breaks?</a></li>
-      <li><a href="#tag-B.24">[B.24] The chess engines are too strong and always beat me.  How can I adjust the difficulty level to make them weaker?</a></li>
-      <li><a href="#tag-B.25">[B.25] May I use the piece bitmaps from XBoard/WinBoard in my own program?</a></li>
-      <li><a href="#tag-B.26">[B.26] How can I get rid of these silly logos that this new WinBoard displays above the board?</a></li>
-      <li><a href="#tag-B.27">[B.27] How can I install logos for other engines, Internet Chess Servers or Human users?</a></li>
-      <li><a href="#tag-B.28">[B.28] Is there readline support for XBoard?</a></li>
-  </ul></li> 
-  
-  <li><a name="tag-C0" href="#tag-C">[C] XBoard and WinBoard, bugs and problems</a>
-    <ul>
-      <li><a href="#tag-C.1">[C.1] I can't build XBoard because the X11/Xaw/... include files are not found.</a></li>
-      <li><a href="#tag-C.2">[C.2] Configuring or building XBoard fails due to missing header files, missing libraries, or undefined symbols.</a></li>
-      <li><a href="#tag-C.3">[C.3] I have problems using WinBoard on ICS with a modem. I'm not running SLIP or PPP, but just dialing in to an ordinary login account("shell account").</a></li>
-      <li><a href="#tag-C.4">[C.4] I have problems using WinBoard on ICS with Windows 95 and SLIP or PPP.  When trying to start up, it gets the error "Address family not supported by protocol family" (or some equally strange message).</a></li> 
-      <li><a href="#tag-C.5">[C.5] When I try to run WinBoard, I get the message "Failed to start chess program gnuchess on localhost: NO LANGFILE (file gnuchess.lan not found)".</a></li>
-      <li><a href="#tag-C.6">[C.6] I want to use XBoard or WinBoard as an Internet Chess Server interface, but the ICS Client option is grayed out on the menu.</a></li> 
-      <li><a href="#tag-C.7">[C.7] How do I give command-line options to a Windows program like WinBoard?</a></li>
-      <li><a href="#tag-C.9">[C.9] When I exit from WinBoard after using it to play against a chess program on my machine, the chess program keeps running in the background.</a></li>
-      <li><a href="#tag-C.12">[C.12] Why do my ICS opponents often get extra time after they make their moves? Why do I sometimes lose time off my clock after I make my move?</a></li>
-      <li><a href="#tag-C.13">[C.13] I can't run WinBoard unless I delete the WinBoard.ini file each time!</a></li>
-      <li><a href="#tag-C.15">[C.15] I get errors compiling XBoard's parser.c.</a></li>
-      <li><a href="#tag-C.16">[C.16] I get an error building WinBoard from source because "flex" is not found.</a></li>
-      <li><a href="#tag-C.17">[C.17] XBoard hangs shortly after connecting to an ICS when used with dxterm, cmdtool, dtterm, kterm, konsole, or other substitutes for xterm.</a></li>
-      <li><a href="#tag-C.18">[C.18] The WinBoard pieces show up in the wrong colors, appear distorted, or are not visible at all.</a></li>
-      <li><a href="#tag-C.19">[C.19] XBoard or WinBoard tells me "Error: first chess program (...) exited unexpectedly".</a></li> 
-      <li><a href="#tag-C.20">[C.20] XBoard tells me "Warning: Cannot allocate colormap entry", or "too few colors available; trying monochrome mode", or "XPM pieces cannot be used in monochrome mode".</a></li>
-      <li><a href="#tag-C.21">[C.21] When I log in to freechess.org, the Enter key doesn't work, and I  have to use Ctrl+J instead.  But when I use WinBoard, Ctrl+J doesn't work either, so I'm stuck.</a></li>
-      <li><a href="#tag-C.22">[C.22] XBoard says, "Failed to start first chess program fairymax on localhost: fairymax: No such file or directory."</a></li>
-  </ul></li>
-  
-  <li><a name="tag-D0" href="#tag-D">[D] Crafty and other topics</a>
-    <ul>
-      <li><a href="#tag-D.1">[D.1] What is XChess?</a></li>
-      <li><a href="#tag-D.2">[D.2] What is Winsock Chess?</a></li>
-      <li><a href="#tag-D.3">[D.3] What is Crafty?</a></li>
-      <li><a href="#tag-D.4">[D.4] How do I use Crafty with XBoard?</a></li>
-      <li><a href="#tag-D.5">[D.5] How do I use Crafty with WinBoard?</a></li>
-      <li><a href="#tag-D.6">[D.6] How do I use GNU Chess with XBoard?</a></li>
-      <li><a href="#tag-D.7">[D.7] How do I use GNU Chess with WinBoard?</a></li>
-      <li><a href="#tag-D.8">[D.8] What is Fairy-Max?</a></li>
-      <li><a href="#tag-D.9">[D.9] What is UCI? What is Polyglot?</a></li>
-      <li><a href="#tag-D.10">[D.10] How do I use an UCI engine with XBoard / WinBoard?</a></li>
-  </ul></li>
-</ul>
-
-<hr />
-<h2><a name="tag-A">[A] Introduction and hot topics</a></h2>
-
-<hr />
-<h3><a name="tag-A.1">[A.1] What are XBoard and WinBoard?</a></h3>
-
-<p>XBoard and WinBoard are graphical user interfaces for chess.
-  XBoard runs with the X Window System on Unix systems (including
-  GNU/Linux); see topic <a href="#tag-B.1">[B.1]</a>.  WinBoard runs
-  on true 32-bit Microsoft Windows operating systems, such as Windows
-  95, 98, NT, 2000, ME, XP, Vista, and should continue to work on future
-  32-bit Windows systems.  It does not work on Windows CE (also known
-  as Pocket PC), nor does it work on 16-bit Windows systems such as
-  Windows 3.1.  See topic <a href="#tag-B.2">[B.2]</a>.</p>
-  
-<hr />
-<h3><a name="tag-A.2">[A.2] Where can I get chess information and chess 
-    software?</a></h3>
-
-<p>As a shortcut to most things mentioned in this FAQ, try Tim Mann's
-  Chess Web page, <a href= "http://www.tim-mann.org/chess.html"
-  >http://www.tim-mann.org/chess.html</a>.
-  This page page is currently a very bad place to get the latest released 
-  versions of XBoard and WinBoard and the most up-to-date version of this 
-  FAQ, though.   A better place is the 
-  <a href=
-  "http://www.open-aurec.com/wbforum">WinBoard forum</a>.
-  Also see our Savannah
-  project pages at <a href="https://savannah.gnu.org/projects/xboard/"
-  >https://savannah.gnu.org/projects/xboard/</a>.</p>
-
-<p>If you have other questions about XBoard/WinBoard that aren't
-  answered in this FAQ, you can try Aaron Tay's WinBoard and Chess
-  Engines FAQ,
-  at<a href="http://www.aarontay.per.sg/Winboard/">defunct
-  URL</a>.</p>
-
-<p>For general news and information about chess, try the 
-<a href="http://www.talkchess.com/forum">CCC forum</a>
-or the 
-  <a href=
-  "http://www.open-aurec.com/wbforum">WinBoard forum</a>.
-Anothe possibility is the newsgroup hierarchy
-rec.games.chess.*, especially the groups rec.games.chess.misc and
-rec.games.chess.computer.  Both of the latter groups have very informative
-FAQs maintained by Steve Pribut; look for them on the newsgroups or at
-<a href="http://www.clark.net/pub/pribut/chess.html">defunct URL</a>.</p>
-
-<p>Like other GNU software, you can get XBoard, and WinBoard by anonymous FTP from 
-<a href="ftp://ftp.gnu.org/pub/gnu/">ftp://ftp.gnu.org/pub/gnu/</a>
-and its many mirror sites.  Look in the subdirectories xboard, and winboard.
-The .tar.gz suffix on the files there indicates they were packed with tar
-and compressed with gzip.  The .exe or .zip suffixes indicate files that
-were packed and compressed with zip.</p>
-
-<p>For other chess software, try the Internet Chess Library.  Use
-anonymous FTP to connect to ftp.freechess.org, or go to the Web page
-<a href="http://www.freechess.org/">http://www.freechess.org/</a>.
-You can get chess software, game
-collections, the FAQ file for rec.games.chess, and other chess-related
-material there, in the directory pub/chess.  The FTP server can
-automatically decompress files for you as you download them, useful if you
-don't have gzip.</p>
-
-<p>Here is a sample anonymous ftp session.  Some of the ftp server's responses
-are abbreviated, but all the commands you must type are included.</p>
-
-<pre>
-    % ftp ftp.gnu.org
-    Connected to ftp.gnu.org
-    Name: anonymous
-    Password: your-email-address@your-site
-    ftp&gt; binary
-    200 Type set to I.
-    ftp&gt; cd /pub/gnu/xboard
-    ftp&gt; dir
-    -rw-r--r-- 1 14910 wheel  1057625 May 20 00:25 xboard-4.2.7.tar.gz
-    ftp&gt; get xboard-4.2.7.tar.gz
-    150 BINARY connection for xboard-4.2.7.tar.gz (1057625 bytes).
-    226 Transfer complete.
-    ftp&gt; quit
-</pre>
-
-<hr />
-<h3><a name="tag-A.3">[A.3] What are the current version numbers for 
-XBoard and WinBoard?</a></h3>
-
-<p>At this writing, the current version numbers are:</p>
-
-<ul>
-<li>XBoard 4.4.0</li>
-<li>WinBoard 4.4.0</li>
-</ul>
-
-<hr />
-<h3><a name="tag-A.4">[A.4] Who is working on this project?</a></h3>
-
-Please see our Savannah project pages
-at <a href="https://savannah.gnu.org/projects/xboard/">https://savannah.gnu.org/projects/xboard/</a>
-for a list of active developers.  Many others occasionally contribute
-suggestions and snippets of code, for which we are grateful.
-
-<hr />
-<h3><a name="tag-A.5">[A.5] How do I report bugs, offer help, etc.?</a></h3>
-
-<p>Bug reports, suggestions, and offers to help on XBoard
-or WinBoard should be sent to bug-xboard<a name="nospam01">&#x40;</a>gnu.org.</p>
-
-<p>Beginner questions and discussion about the program may get faster
-answers on the WinBoard Forum at <a
-href="http://www.open-aurec.com/wbforum/"
->http://www.open-aurec.com/wbforum/</a>.
-This forum also constains a section dedicated to propose and discuss
-new features for WinBoard / XBoard or WinBoard protocol,
-and reposrt bugs,
-and offers downloads of pre-installed packages of WinBoard
-bundled with other software,
-useful for conducting computer-computer tournaments.</p>
-
-<p>If you are developing a
-chess engine that works with XBoard or WinBoard (or an alternative
-GUI that works with such engines), see the Chess Engines mailing
-list, hosted at
-<a href="http://groups.yahoo.com/group/chess-engines"
->http://groups.yahoo.com/group/chess-engines</a>.
-For better response, join the above-mentioned WinBoard forum,
-or the <a href="http://www.talkchess.com/forum">CCC forum</a>.</p>
-
-
-<p>Any time you want to report a possible bug in XBoard or WinBoard,
-we need to know exactly what you did, and exactly what error (or
-other) messages you got.</p>
-
-<p>If you are using Unix, run the "script" program, run XBoard with
-the -debug flag (if you get as far as running it), do whatever is
-necessary to reproduce the problem, type "exit" to the shell, and mail
-us the resulting typescript file.  We also need to know what
-hardware/operating system combination you are using.  The command
-"uname -a" will usually tell you this; include its output in your
-typescript.</p>
-
-<p>If you are using MS Windows, run WinBoard with the -debug flag, and
-send us a copy of the WinBoard.debug file.  If you aren't sure how to
-add command-line flags to WinBoard, you can hit Ctrl+Alt+F12 to create
-a WinBoard.debug file after WinBoard starts, but that is not as good,
-because a few messages that would have been printed at the start are
-lost.</p>
-
-<p>Either way, please send us the exact text of the commands you typed
-and the output you got, not just your recollection of approximately
-what they were.  The messages may seem meaningless to you, but they
-are very meaningful to us and essential for diagnosing problems.</p>
-
-<hr />
-<h3><a name="tag-A.6">[A.6] What are the future plans for XBoard and
-  WinBoard?</a></h3>
-
-<p>Our plans are always in flux.  As with most free software projects,
-the next release will happen when it happens -- or it may never
-happen.  This has always been the policy for XBoard/WinBoard.
-Releases have never been promised in specific time frames.</p>
-
-<p>Starting in November 2003, several new developers have joined the
-project, and work is now hosted at <a
-href="https://savannah.gnu.org/projects/xboard/"
->https://savannah.gnu.org/projects/xboard/</a>.  Lots of work is just
-getting underway, but nothing is far along yet.</p>
-
-<p>Here is a partial list of items that have a nonzero probability of
-happening in finite time.</p>
-
-<ul>
-<li>Small bug fixes.  Occasionally someone sends us a fix, or reports
-a small bug very clearly so that we're able to fix it in a few minutes
-work.</li>
-
-<li>Protocol version 3.  The members of the chess engine authors'
-mailing list discussed a set of proposed features for the next version
-of the XBoard/WinBoard chess engine communication protocol.
-The WinBoard 4.3 fork has taken the protocol in a different direction,
-though, extending version 2 with new features as they were needed,
-rather than upgrading to a new protocol in a single sweep.
-It does not seem likely that there will be a v3 protocol in the
-foreseeable future.
-</li>
-
-<li>Contributed features.  Several people have mailed me code to add
-various features.  Most of this code is available on the
-XBoard/WinBoard extensions page
-at <a href="http://www.tim-mann.org/extensions.html">
-http://www.tim-mann.org/extensions.html</a>,
-but it is not in any official releases yet.  We are in the process of
-getting folks to formally assign the copyrights on their contributions
-to the Free Software Foundation so that we can include it in official
-releases in the future.</li>
-
-<li>Internationalization.  Several people have expressed interest in
-internationalizing XBoard/WinBoard. Version 4.4 implements
-internationalization in its XBoard branch, and includes (partial)
-Turkish and German translations.  For WinBoard a suitable way for
-internationalization still has to be found, as all menu strings there
-are not in the C code, but in a Windows resource file. In any case, we
-will need more translators, to update the existing translations (for
-version 4.2.7) to the current version, and to provide translaions for
-oter languages.  Watch for news on the xboard-devel mailing list on
-our Savannah pages.</li>
-
-</ul>
-
-<hr />
-<H2><a name="tag-B">[B] XBoard and WinBoard</a></H2>
-<hr />
-<h3><a name="tag-B.1">[B.1] What is XBoard?</a></h3>
-
-<p>XBoard is a graphical user interface for chess.  It displays a
-chessboard on the screen, accepts moves made with the mouse, and loads
-and saves games in Portable Game Notation (PGN).  XBoard is free software.
-It serves as a front-end for many different chess services, including:</p>
-
-<p><strong>Chess engines</strong> that will run on your machine and
-play a game against you or help you analyze, such as GNU Chess and
-Crafty (topic <a href="#tag-D.3">[D.3]</a> below).</p>
-
-<p><strong>Chess servers</strong> on the Internet, where you can
-connect to play chess with people from all over the world, watch other
-users play, or just hang out and chat.</p>
-
-<p><strong>Correspondence chess</strong> played by electronic
-mail. The cmail program (topic <a href="#tag-B.6">[B.6]</a> below)
-automates the tasks of parsing email from your opponent, playing his
-moves out on your board, and mailing your reply move after you've
-chosen it.</p>
-
-<p><strong>The Web</strong> and your own saved games. You can use
-XBoard as a helper application to view PGN games in your
-Web browser, or to load and save your own PGN files.</p>
-
-<p>XBoard runs under Unix or Unix-compatible systems.  It requires the
-X Window System, version X11R4 or later.  There are also ports of
-XBoard to 32-bit Microsoft Windows and to
-the Amiga.  See topics <a href="#tag-B.2">[B.2]</a> and <a
-HREF="#tag-B.3">[B.3]</a> respectively.</p>
-
-<hr />
-<h3><a name="tag-B.2">[B.2] Is there an XBoard for Microsoft Windows?  What is WinBoard?  How do I install WinBoard?</a></h3>
-
-<p>WinBoard is a port of XBoard to 32-bit Microsoft Windows systems, such
-as Windows 95, 98, NT, 2000, ME, and XP.  It uses the same back end
-chess code as XBoard, but the front end graphics code is a complete
-rewrite.  WinBoard is free software.</p>
-
-<p>The WinBoard distribution includes a sample Chess engine.</p>
-
-<p>The WinBoard distribution also includes the ICC timestamp and FICS
-timeseal programs (topic <a href="#tag-B.12">[B.12]</a>).</p>
-
-<p>cmail (topic <a href="#tag-B.6">[B.6]</a>) has not been ported to
-Windows.  All the other XBoard functions are included in WinBoard.
-The International Email Chess Group web site at <a
-href="http://www.iecg.org/" >http://www.iecg.org/</a> recommends
-ECTool (<a href="http://www.ectool.nu/" >http://www.ectool.nu/</a>)
-for playing correspondence chess under Windows.</p>
-
-<p>You install WinBoard as follows. Download the WinBoard package to
-your PC (see topic <a href="#tag-A.2">[A.2]</a>).  It will be a file
-with a name like winboard-4_0_0.exe.  Double-click on this file
-in the Explorer or File Manager to run it. Follow the on-screen
-prompts.</p>
-
-<hr />
-<h3><a name="tag-B.3">[B.3] Is there an XBoard for the Amiga?  What is AmyBoard?</a></h3>
-
-<p>AmyBoard is a port of XBoard to the Amiga, by Jochen Wiedmann.
-The distribution includes a port of GNU Chess.
-AmyBoard is free software.</p>
-
-<p>The current version of AmyBoard is 330.5 (based on XBoard 3.3.0).
-No one is currently maintaining it.</p>
-
-<p>System requirements:</p>
-
-<ul>
-<li>An Amiga (obviously :-), running OS 2.04 or later, 2Mb RAM or more.</li>
-<li>MUI 2.0 or later.</li>
-<li>Workbench or another screen with no less than 640x400 pixels (adjustable
-  with the MUI-Prefs); this restriction is just because we don't have
-  bitmaps with less than 40x40 pixels per square. If someone contributes
-  bitmaps with 20x20 or 20x25, they will work with any Hires mode.</li>
-</ul>
-
-<p>If you would like to use an ICS, you need an Internet connection via either</p>
-
-<ul>
-<li>a telnet-like program, or</li>
-<li>a terminal program reading from stdin and writing to stdout.</li>
-</ul>
-
-<p>AmyBoard is available in the Internet Chess Library (topic <a href="#tag-A.2">[A.2]</a>).</p>
-
-<hr />
-<h3><a name="tag-B.4">[B.4] Is there an XBoard for the Macintosh?</a></h3>
-
-<p>Note: I am not a Mac user and have not tried this myself, so I cannot 
-answer questions about it. </p>
-<p>Because MacOS X has a Unix base, XBoard will compile and run on it. 
-You do need an X11 (X Window System) server and client libraries. I'm 
-told that these come standard with MacOS X 10.3 and later. Once you 
-install the X11 package, XBoard is reported to compile and run without 
-changes.</p>
-<p>You can avoid having to compile XBoard (and GNU Chess) yourself by 
-using the Fink sofware packaging system. See 
-http://fink.sourceforge.net/ and 
-http://finkcommander.sourceforge.net/ for more info on Fink.</p>
-<p>There is no version of XBoard or WinBoard that runs with the native
-(non-X11) Mac graphical interface, and none that runs on MacOS 9 or
-earlier.</p>
-
-
-<hr />
-<h3><a name="tag-B.5">[B.5] Does XBoard run on VMS?</a></h3>
-
-<p>No.  This port would probably be a lot easier than the Win32 and Amiga
-ports were, because VMS has the X Window system (under the name
-DECwindows) and is now POSIX compliant. If you are working on this, 
-send mail to bug-xboard<a name="nospam02">&#x40;</a>gnu.org to let us know.</p>
-
-
-<hr />
-<h3><a name="tag-B.6">[B.6] What is cmail?</a></h3>
-
-<p>cmail is a program that helps you play and keep track of electronic mail
-correspondence chess games using XBoard.  It is distributed with XBoard and
-has its own manual page.  cmail is free software.  It was written by
-Even Welsh.  cmail has not been ported to Windows; sorry.</p>
-
-<hr />
-<h3><a name="tag-B.7">[B.7] How do I build XBoard?  Do I need gcc?</a></h3>
-
-<p>The first step to building XBoard is to get the distribution file.  See topic
-<a href="#tag-A.2">[A.2]</a> for places you can ftp the software from.</p>
-
-<p>Next, decide what directory tree you are going to install XBoard
-in.  The default is /usr/local, but you probably don't have write
-access to that directory unless you are a system administrator.  If
-you do, type the following to install it there:</p>
-
-<pre>
-    gzip -cd xboard-*.tar.gz | tar -xvf -
-    cd xboard-*/
-    ./configure
-    make
-    su
-    make install
-</pre>
-
-<p>If you want to install xboard in your personal home directory ($HOME/bin),
-type this:</p>
-
-<pre>
-    gzip -cd xboard-*.tar.gz | tar -xvf -
-    cd xboard-*/
-    ./configure --prefix=$HOME
-    make
-    make install
-</pre>
-
-<p>If the first step above fails because you don't have gzip, see
-topic <a href="#tag-A.2">[A.2]</a>, and ask a local Unix expert if you
-need more help.  If you have any problems with the last two steps,
-read the READ_ME and INSTALL files in the xboard-*/ directory.  You
-will also find this FAQ there.</p>
-
-<p>You don't need to have gcc to build XBoard.  Almost any Unix C
-compiler should do.</p>
-
-<hr />
-<h3><a name="tag-B.8">[B.8] Can I use XBoard or WinBoard to play a game
-  of chess with another human?</a></h3>
-
-<p>The only way for two humans on different machines to play chess in
-real time using XBoard/WinBoard is to use an Internet Chess Server
-as an intermediary.  That is, each player runs his own copy of XBoard
-or WinBoard, both of them log into an ICS, and they play a game there.
-Two copies of XBoard/WinBoard cannot communicate with each other
-directly.</p>
-
-<p>Instructions on how to get started with Internet chess are included
-with the XBoard and WinBoard distributions.  The network addresses
-included in the distribution may not always be current.  The oldest
-and largest ICS is the Internet Chess Club at chessclub.com, which now
-has a fee for registered use, but still allows free unregistered use.
-There are also many newer sites with no fees, using the Free Internet
-Chess Server implementation (FICS).  The most active FICS site is
-freechess.org.  On these and most other chess servers,
-the port number to use is 5000.</p>
-
-<p>If you don't have network connectivity to any ICS site, you
-can run your own server using a version of the FICS code, but this
-is not easy.  See <a href="http://www.tim-mann.org/ics.html#ownics"
->http://www.tim-mann.org/ics.html#ownics</a> for advice and pointers.</p>
-
-<p>The cmail program included with XBoard lets you play email postal games with
-another human; see topic <a href="#tag-B.6">[B.6]</a>.</p>
-
-<p>Two humans can play chess on the same machine using one copy of
-XBoard/WinBoard in
-Edit Game mode, but the clocks don't run in this mode, so it's of limited
-usefulness.</p>
-
-<p>See also topic <a href="#tag-D.2">[D.2]</a>, Winsock Chess.</p>
-
-<hr />
-<h3><a name="tag-B.9">[B.9] Will WinBoard run on Windows 3.1?
-  How about Windows CE (also known as Pocket PC)?
-</a></h3>
-
-<p>WinBoard does not run on Windows 3.1, Windows for Workgroups 3.11, etc.,
-not even with the Win32s compatibility package.  The main problem is
-that Win32s does not have threads or real concurrent processes.  A
-port of WinBoard to Windows 3.1 is possible in theory, but it would be
-difficult and messy, and no one is going to do it.</p>
-
-<p>WinBoard does not run on Windows CE (also
-known as Pocket PC).  I don't know what would be required to port it.</p>
-
-<p>WinBoard does run well on full 32-bit versions of Windows, such as
-Windows 95, 98, NT, 2000, ME, XP, and Vista, and should continue to work
-on future 32-bit Windows systems.
-To use the help files in Vista, you will need to install the WinHlp32.exe
-from MicroSoft on your Vista system.
-</p>
-
-<hr />
-<h3><a name="tag-B.10">[B.10] How do I use XBoard or WinBoard as an external viewer for PGN files
-  with my Web browser?</a></h3>
-
-<ol>
-<li> On Unix systems:
-<ul>
-<li> Add the following line to the file .mime.types in your home directory.
-(Create the file if it doesn't exist already.)
-<pre>
-    application/x-chess-pgn    pgn
-</pre>
-</li>
-<li>
-Add the following line to the file .mailcap in your home directory.
-(Create the file if it doesn't exist already.)
-<pre>
-    application/x-chess-pgn; xboard -ncp -lgf %s
-</pre>
-</li>
-<li>
- Exit from your Web browser and restart it.
-</li>
-</ul>
-</li>
-<li> On MS Windows systems:
-<p>The exact procedure depends on which Web browser you are using.
-The current version of WinBoard automatically configures itself as
-your PGN viewer for local files, Netscape 4.x and later, and Internet
-Explorer.  This automatic setup probably works for all other current Web
-browsers, too.</p>
-</li>
-</ol>
-
-<hr />
-<h3><a name="tag-B.11">[B.11] How do I use WinBoard as an external viewer
-  for PGN files with the MS Windows File Manager or Explorer?</a></h3>
-
-<p>WinBoard sets this up automatically when you install it, except on old
-versions of Windows NT (prior to 4.0).  On Windows NT 3.51 or earlier,
-go to the File Manager, click on the File menu, select Associate,
-enter "pgn" as the extension, and use the Browse button to find your
-copy of WinBoard and set up the association.</p>
-
-<hr />
-<h3><a name="tag-B.12">[B.12] How do I use ICC timestamp or FICS timeseal
-with XBoard?</a></h3>
-
-<p>First, get the appropriate version of timestamp or timeseal for your
-machine from ftp.chessclub.com or ftp.freechess.org.
-Second, be sure that you can connect using XBoard <I>without</I>
-timestamp/timeseal.  Third, be sure that you can connect using
-timestamp/timeseal without XBoard.  See the help files on ICC and FICS
-or ask people online if you have problems.</p>
-
-<p>If you are in a completely ordinary situation, where your machine
-is directly on the Internet and you can connect to ICC or FICS 
-without timestamp/timeseal using
-just the command "xboard -ics" or "xboard -ics -icshost freechess.org",
-change that command to one of the following:</p>
-
-<pre>
-    xboard -ics -icshost chessclub.com -icshelper timestamp
-
-    xboard -ics -icshost freechess.org -icshelper timeseal
-</pre>
-
-<p>If you have a firewall between your machine and the ICS, see topic
-<a href="#tag-B.19">[B.19]</a>.</p>
-
-<p>If you normally have to use the "/icscomm" command line option on
-xboard to log into a second machine, and then telnet to ICC or FICS
-from there, you are going to have to run the Unix version of timestamp
-or timeseal on the second machine.  (If the second machine is not
-running Unix, you are out of luck.)  Get the appropriate version of
-timestamp or timeseal onto the shell machine via FTP; see the help
-files on ICC and FICS for instructions.  Then simply run it when you
-would normally run telnet.  In this configuration you are not
-protected against lag between your PC and the shell machine, or for
-lag caused by heavy load on the shell machine itself from other users.</p>
-
-<p>For further information on timestamp and timeseal, see the help
-files on ICC and FICS.</p>
-
-<hr />
-<h3><a name="tag-B.13">[B.13] How do I use ICC timestamp or FICS timeseal
-with WinBoard?</a></h3>
-
-<p>If you select an ICS from either the WinBoard Startup dialog or the
-Windows Start submenu that WinBoard installs, WinBoard automatically
-runs timestamp or timeseal if the ICS you chose is known to support it.</p>
-
-<p>If you are constructing a WinBoard command line by hand, add the
-option "/icshelper timestamp" or "/icshelper timeseal" to the WinBoard
-command line to use timestamp or timeseal.  Both timestamp.exe and
-timeseal.exe are included in the WinBoard distribution.  They both
-function identically to the Unix versions, as documented in "help
-timestamp" on ICC and "help timeseal" on FICS.</p>
-
-<p>If you have a firewall between your machine and the ICS, see topic
-<a href="#tag-B.19">[B.19]</a>.</p>
-
-<p>If you normally have to use the "/icscomm" command line option on
-WinBoard to log into a shell account, and then telnet to ICC or FICS
-from there, you are going to have to run the Unix version of timestamp
-or timeseal on the shell machine.  (If the shell account is not on a
-Unix machine, you are out of luck.)  Get the appropriate version of
-timestamp or timeseal onto the shell machine via FTP; see the help
-files on ICC and FICS for instructions.  Then simply run it when you
-would normally run telnet.  In this configuration you are not protected
-against lag between your PC and the shell machine, or for lag caused by
-heavy load on the shell machine itself from other users.</p>
-
-<p>For further information on timestamp and timeseal, see the help
-files on ICC and FICS.</p>
-
-<hr />
-<h3><a name="tag-B.14">[B.14] How do I play bughouse with XBoard or WinBoard?
-</a></h3>
-
-<p>XBoard and WinBoard have full bughouse support.
-Offboard piece holdings are shown next to the board, and
-you drop offboard pieces by dragging them with the mouse 
-(holding the left button down) to their drop square,
-or left-click the piece and the drop square, just like when you enter
-any ordinary move.</p>
-
-<p>XBoard and WinBoard can display only one board at a time, but you
-can observe your partner's game by running a second copy of the
-program and logging in as a guest.  (Unfortunately, this is not
-possible if you are using the /icscomm option.)  To observe your
-partner's games automatically, use the "follow" or "pfollow" ICS
-command; see the ICS online help for details.</p>
-
-<hr />
-<h3><a name="tag-B.16">[B.16] What is Zippy?  How can I interface a 
-chess program to the Internet Chess Servers?</a></h3>
-
-<p>Zippy is an interface that lets a compatible chess engine (such as GNU
-Chess or Crafty) act as a computer
-player on an Internet Chess Server.  Zippy is included in both the
-XBoard and WinBoard distributions.  It is implemented as a small
-amount of additional code within XBoard or WinBoard.  
-For documentation, see the file
-zippy.README, included in both distributions or available
-from my chess Web page,
-<a href=
-"http://www.tim-mann.org/chess.html"
->http://www.tim-mann/chess.html</a>.
-The version of zippy.README on my Web page is often more up-to-date
-than those in the XBoard/WinBoard distributions.
-You'll also find a "biography" of Zippy and pointers to the original
-Zippy the Pinhead comic strips on my Web page.
-Please read zippy.README carefully before you ask me any questions about Zippy.</p>
-
-<p>Using a computer to choose your moves on a chess server is
-considered cheating unless your account is on the computer (C) list.
-Read "help computer" on your favorite server for details on their
-policy.  Most of the servers have plenty of computers running now, so they
-will not be excited about having you run a new one unless you have
-written your own chess engine.  They don't really need yet another 
-Crafty or GNU Chess clone.</p>
-
-<hr />
-<h3><a name="tag-B.17">[B.17] How can I interface my own chess program
-to XBoard or WinBoard?</a></h3>
-
-<p>This is a non-trivial task.  XBoard and WinBoard were not designed
-with a clean interface for talking to chess programs; they were
-written to work with an existing version of GNU Chess that expects to
-be talking to a person.  Your program has to emulate GNU Chess's
-rather idiosyncratic command structure to work with XBoard and
-WinBoard.  We are gradually cleaning up, improving, and documenting
-the interface as newer versions of XBoard and WinBoard come out,
-however.</p>
-
-<p>For documentation, see the file engine-intf.html, included in both
-distributions or available from Tim Mann's chess Web page, <a href=
-"http://www.tim-mann.org/chess.html"
->http://www.tim-mann.org/chess.html</a>.
-The version of engine-intf.html on Tim's Web page might totally obsolete,
-though.
-To know how the current WinBoard or XBoard version communicate with their
-engines, use the documentation in the XBoard/WinBoard distributions,
-or on the <a href=
-"http://www.open-aurec.com/wbforum/WinBoard/engine-intf.html"
->WinBoard forum</a>.</p>
-
-<hr />
-<h3><a name="tag-B.18">[B.18] How can I recompile WinBoard from source?</a></h3>
-
-<p>The source code for WinBoard is available from the author's Web page,
-<a href=
-"http://www.tim-mann.org/chess.html"
->http://www.tim-mann.org/chess.html</a>.</p>
-
-<p>WinBoard is currently developed using gcc under Cygwin.
-To build WinBoard with the free Cygwin tools, available from <a
-href= "http://www.cygwin.com/" >http://www.cygwin.com/</a>), use the
-command "make -f makefile.gcc" from the winboard directory of the
-source distribution.</p>
-<p>You can build the program from the MSVC++ GUI by opening the project
-file (winboard.dsp) and telling MSVC++ to build the project.  You can
-also build it from the the command line by using the nmake program
-supplied with MSVC++.
-The makefile for MSVC is makefile.ms in the winboard directory.</p>
-
-<p>WinBoard 4.2.5 was successfully
-compiled with the net release of Cygwin as downloaded on 20-March-2001
-(cygwin1.dll 1.1.8, gcc 2.95.2-6, binutils 20001221-1, flex 2.5.4-1),
-but exhibits a command-line parsing bug; see item 511 in the ToDo file
-that comes with WinBoard.  WinBoard 4.1.0 does not compile with
-Cygwin.  WinBoard 4.0.7 is known to compile with Cygwin BL20.1.</p>
-
-<p>To build WinBoard with Borland C++ 4.5, use "borland.mak", supplied
-with the WinBoard sources, as the Makefile.  Support for Borland C++
-was contributed by Don Fong and has not been tested by the author of WinBoard.</p>
-
-<p>WinBoard is a Win32 application, so you definitely need a compiler
-and tool set that supports Win32.  In particular, older versions of
-DJGPP can build only 32-bit MSDOS programs; that is, programs that use
-a DOS extender to get a 32-bit address space and do not make any
-Windows calls.  The latest versions of DJGPP are said to be able to 
-build Win32 programs when used with the proper extension package(s),
-but this is not known to work with WinBoard.  Use Cygwin instead.</p>
-
-<p>See also topic <a href="#tag-C.16">[C.16]</a>.</p>
-
-<hr />
-<h3><a name="tag-B.19">[B.19] 
-How can I use XBoard or WinBoard to talk
-to an Internet Chess Server through a firewall or proxy?
-</a></h3>
-
-<p>There is no single answer to this question, because there are many
-different kinds of firewalls in use.  They work in various different
-ways and have various different security policies.  This answer can
-only provide hints.</p>
-
-<p>Note that you can't access Internet Chess Servers through a Web proxy,
-because they are not a Web service.  You talk to them through a raw
-TCP connection, not an HTTP connection.  If you can only access the
-Web through a proxy, there may be a firewall that stops you from
-making direct TCP connections, but there may also be a way through it.
-Read on for hints, and contact your local system administrator if you
-need more information about your local configuration.</p>
-
-<p>A helpful user mailed me the following explanation of how to use
-WinBoard with WinGate:</p>
-<blockquote>
-"I have managed to setup WinBoard though my WinGate proxy.  I have the
-Office version.  What I needed to do was to setup the TCP/IP
-connection to add the User/Host name and my provider service name for
-the DNS, but I had to leave the HOST IP address blank.  I have not
-played with all the variations, so it may be just that I have the DNS
-lookup enabled."
-</blockquote>
-<p>I hope this helps, though I don't find it very clear.  I don't have
-a copy of WinGate myself and can't help if you have questions about it.</p>
-
-<p>If you are using some other non-SOCKS firewall, read the FIREWALLS section
-in your XBoard or WinBoard documentation (man page, info document, or
-Help file).  If you can telnet to a chess server in some way, then you
-can almost certainly connect to it with xboard/WinBoard, though in
-some cases you may not be able to run timestamp or timeseal.  The
-timestamp and timeseal protocols require a clean, 8-bit wide TCP
-connection from your machine to the ICS, which some firewalls do not
-provide.</p>
-
-<p>If you have a SOCKS firewall and are using <strong>XBoard</strong>,
-you should be able to SOCKSify xboard and use it.  See <a
-href="http://www.socks.nec.com/">http://www.socks.nec.com/</a> for
-information about SOCKS and socksification.  However, if you do this,
-you can't use timestamp or timeseal; what you really need is a
-socksified version of timestamp or timeseal.  This is hard because the
-source code for timestamp and timeseal is proprietary; the folks
-running the chess servers don't give it out because that would make it
-too easy to cheat.  On some versions of Unix, you may be able to
-socksify a program that you don't have the source code to by running
-it with an appropriate dynamic library; see <a
-href="http://www.socks.nec.com/">http://www.socks.nec.com/</a>.  For
-others, you might be able to get a pre-built socksified version from
-the chess server administrators.  For timeseal versions, see <a
-href="ftp://ftp.freechess.org/pub/chess/timeseal/"
->ftp://ftp.freechess.org/pub/chess/timeseal/</a>.  For timestamp
-versions, the directory would be <a
-href="ftp://ftp.chessclub.com/pub/icc/timestamp/"
->ftp://ftp.chessclub.com/pub/icc/timestamp/</a>, but at this writing
-there don't seem to be any socksified timestamps there.  Once you have
-a socksified timestamp or timeseal, simply run it with a normal,
-non-socksified xboard in place of the standard timestamp or timeseal.</p>
-
-<p>If you have a SOCKS firewall and you are using
-<strong>WinBoard</strong>, we now know how to make this configuration
-work, complete with timestamp or timeseal!</p>
-
-<p>Start by getting SocksCap32.  This software is freely available
-from <a href="http://www.socks.nec.com/">http://www.socks.nec.com/</a>.
-Install it on your machine, read the documentation, and learn to use
-it.  You may find it useful with many other programs besides WinBoard.</p>
-
-<p>Next, <strong>don't</strong> socksify WinBoard.  Socksifying
-WinBoard itself doesn't let you use it with timestamp or timeseal.
-For some reason I don't understand -- something strange that
-SocksCap32 does -- the socksified WinBoard runs but does nothing, and
-timestamp/timeseal runs all by itself in its own window.</p>
-
-<p>Instead, use the following workaround.  Follow the instructions
-exactly; don't try to skip steps or simplify things.</p>
-
-<p>First, make SocksCap32 application profiles for timestamp and
-timeseal.  Use the following command lines in the SocksCap32
-profiles. Name the first profile "timestamp" and the second
-"timeseal".</p>
-
-<pre>
-    "c:\program files\winboard\timestamp.exe" chessclub.com 5000 -p 5000
-    "c:\program files\winboard\timeseal.exe" freechess.org 5000 -p 5000
-</pre>
-
-<p>Second, run timestamp or timeseal by itself, socksified, using its
-profile.  This will open an unneeded, black window that will not
-respond to typing.  Minimize it to the task bar and ignore it. It will
-go away when you exit from WinBoard.</p>
-  
-<p>Next, run WinBoard using the following command line.  Make a shortcut
-or type this command into an MS-DOS Prompt box.  Don't run WinBoard
-itself socksified, just run it directly.</p>
-
-<pre>
-    "c:\program files\winboard.exe" /ics /icshost=localhost /icsport=5000
-</pre>
-
-<p>After you get this working, you can try getting the timestamp window to
-auto-minimize by starting it from a shortcut instead of from the
-SocksCap32 control window. As it says in the SocksCap32 help file, put
-the following in the Target field of a shortcut's Properties page:</p>
-
-<pre>
-    "c:\program files\sockscap32\sc32.exe" timestamp
-</pre>
-
-<p>Then select "Run: Minimized" on the same page.  Do the same for timeseal.</p>
-
-<p>Another method that can work is to use a .bat file to start both
-timestamp and WinBoard.  It would look something like this:</p>
-
-<pre>
-    REM --
-    REM -- icc.bat
-    REM -- Start timestamp under SocksCap32 and use WinBoard to connect to it.
-    REM -- The string "timestamp" refers to a SocksCap32 profile for timestamp.
-    REM --  Do not change it to the filename of the timestamp program!
-    REM --
-    start /minimized "c:\program files\sockscap32\sc32.exe" timestamp
-    cd "c:\program files\winboard"
-    winboard /ics /icshost=localhost /icsport=5000
-</pre>
-
-<p>This workaround has a problem if you want to run two copies of
-WinBoard at once, talking to the same chess server twice (for
-bughouse) or to two different chess servers. If you need to do that,
-you will need to run a separate copy of timestamp with <i>a different
-port number</i> for each connection.  You'll need to make a second set of
-profile entries with a different value after the -p flag (say, 5001)
-and you'll need to change the WinBoard command line /icsport=5000 for
-the second WinBoard to match.</p>
-
-<hr />
-<h3><a name="tag-B.20">[B.20] 
-How can I use XBoard or WinBoard on chess.net with accuclock?
-</a></h3>
-
-<p>I believe chess.net provides a Win32 command-line version of
-accuclock that will work with WinBoard.  Please see the documentation
-on the chess.net server itself; don't ask the author of WinBoard.</p>
-
-<p>I don't know whether chess.net provides versions of accuclock for
-Unix at this time.  Ask them.</p>
-
-<hr />
-<h3><a name="tag-B.21">[B.21]
-  Can I get Zippy to do one or more ICS commands automatically at the 
-  start or end of each game?</a></h3>
-
-<p>By default, Zippy automatically sends the command "gameend" to ICS
-at the end of each game.  You can alias this command (using the ICS
-"alias" feature) to anything you want.  On ICC, you can use the
-"multi" feature to alias gameend to several commands, but other
-servers don't have that feature.  Zippy doesn't send anything at the
-start of the game by default.</p>
-
-<p>You can get Zippy to send one or more commands of your choosing, at
-the start and/or end of each game, by using the -zippyGameStart and
--zippyGameEnd command line options, newly added in version 4.0.3.
-Both xboard and WinBoard have (somewhat obscure) ways of getting
-newlines into this option to send several commands.  Here is an
-example of one way to do it for each.</p>
-
-<pre>
-    xboard -ics -zp -xrm '*zippyGameStart: say hi\nsay prepare to die\n'
-
-    WinBoard /ics /zp /zippyGameEnd='say thanks\nseek 5 0\nseek 2 12\n'
-</pre>
-
-<hr />
-<h3><a name="tag-B.22">[B.22]
-  How do I print from WinBoard?
-</a></h3>
-
-<p>WinBoard does not have built-in printing functionality.
-If you want to print a picture of the board, press Alt+PrintScrn, run the
-standard Windows application Paintbrush, select Paste, and print from there.
-If you want to print a list of moves, save your game as a PGN file,
-then open the PGN file with Notepad or any other plain text editor and
-print it from there.</p>
-
-<p>WinBoard 4.4 has a menu item "Save Diagram..." in the file menu,
-which saves the board part of the display as a Windows .bmp file,
-but only if the board size is not too big.</p>
-
-<hr />
-<h3><a name="tag-B.23">[B.23]
-  Can I get Zippy to automatically reconnect to ICS when its connection 
-  breaks?</a></h3>
-
-<p>There isn't a perfect solution to this problem yet, but a pretty
-good one is to write a shell script (for xboard) or .bat script (for
-WinBoard) that automatically restarts the program whenever it exits.
-Use the -xexit flag so that you don't get a popup dialog that must be
-dismissed with the OK button before the program will exit.  The gap in
-this solution is that your connection to ICS can sometimes get into a
-state where the program does not notice that the connection is broken
-until the next time it tries to send a command.  Perhaps some future
-version of xboard/WinBoard will have an option to send a harmless
-command every five minutes or so.</p>
-
-<p>Anyway, here is a sample Windows .bat file that restarts WinBoard each
-time it exits.  Thanks to Jason Williamson.  It assumes that you have put
-your computer account's name and password in a file named logon.ini.</p>
-
-<pre>
-REM --
-REM -- wbrecon.bat
-REM -- Start WinBoard in Zippy mode, and restart it each time it exits.
-REM -- Add or change parameters as needed for your application.
-REM --
-:loop
-start /w winboard /zp /ics /icslogon logon.ini /xexit /xautoraise
-REM -- The next line is to have a short delay setup for 139 seconds.
-REM -- Leave it out if it doesn't work on the version of Windows you use.
-TYPE NUL | CHOICE.COM /N /CY /TY,99 &gt;NUL
-goto loop
-</pre>
-
-<p>Here is a Unix shell script to do the same thing for xboard.
-It's a bit more elaborate.  It is based on the script I use for the
-original Zippy.  It logs all ICS output to a file named zippy.out,
-and it lets you type commands to Zippy by running "cat &gt; zippy.fifo".</p>
-
-<pre>
-#! /bin/sh
-host="204.178.125.65 -icsport 5000 -telnet -telnetProgram timestamp"
-#host="164.58.253.13 -icsport 5000 -telnet -telnetProgram timeseal"
-out=zippy.out
-fifo=zippy.fifo
-ZIPPYPASSWORD='something'
-export ZIPPYPASSWORD
-ZIPPYPASSWORD2='orother'
-export ZIPPYPASSWORD2
-ZIPPYLINES=`pwd`/all.lines
-export ZIPPYLINES
-ZIPPYGAMEEND='say Yow, that was FUN!
-gameend'
-export ZIPPYGAMEEND
-zippylogon=`pwd`/logon.ini
-DISPLAY=`hostname`:0.0
-export DISPLAY
-mv -f $out ${out}.old
-rm -f $fifo
-mkfifo $fifo
-pid=$$
-( while [ true ] ; do cat -u $fifo ; done ) | \
-      ( while [ true ] ; do
-          xboard -iconic -ics -icshost $host \
-                 -zt -zp -xbell -xanimate \
-                 -xautosave -xquiet -fcp "gnuchessx -h" \
-                 -icslogon $zippylogon -xexit -autoflag -xautoraise $*
-          sleep 600
-        done ) &gt; $out 2&gt;&amp;1 &amp;
-</pre>
-
-<hr />
-<h3><a name="tag-B.24">[B.24]
-  The chess engines are too strong and always beat me.  How can I adjust
-  the difficulty level to make them weaker?</a></h3>
-
-<p>The best way is to get a weaker chess engine.
-On the <a href="http://www.open-aurec.com/chesswar">ChessWar</a> website
-you will find a rating list of virtually all engines that are able to
-play under XBoard/WinBoard, from super-humanly strong to ridculously weak.
-Most of them can be downloaded for free from the internet.</p>
-
-<p>A way to get that effect is to limit the time the engine can use for
-deciding on its move. The time-odds options or menu items in the 
-time-control dialog) can be used to this end. This is only of limited 
-help, as engines do not weeken that much at faster time-control,
-and there is a practical limit to how fast you can order the engine
-to go. Also feel free to use Retract Move if
-you make a blunder. </p>
-
-<p>Many chess coaches will let you switch sides after
-they get a stronger position so that you can get experience playing
-positions where you are winning.  You can try this with XBoard/WinBoard
-by using the Machine White or Machine Black menu command to make the
-machine take over your position.</p>
-
-<p>The -depth command-line option to XBoard/WinBoard can also be used to
-weaken the engine (see the man page or Help file).  It's a bit of a
-nuisance to set command line options in Windows, but see topic <a
-href="#tag-C.7">[C.7]</a> for instructions.</p>
-
-<p>Other ways of weakening engines are engine-specific.  Many of them
-let you adjust various parameters, and if you choose bad settings, the
-engine will play more poorly.  Consult whatever documentation came with
-the engine you are using.</p>
-
-<hr />
-<h3><a name="tag-B.25">[B.25]
-  May I use the piece bitmaps from XBoard/WinBoard in my own program?</a></h3>
-
-<p>The piece bitmaps used in XBoard and WinBoard were designed by
-Elmar Bartel.  He released them under the <a
-href="http://www.gnu.org/copyleft/gpl.html">GNU General Public
-License</a>.  This means that if your program is also free software
-distributed under the GPL, you can use them freely.  If your program
-is distributed under some other license, including commercial,
-shareware, or non-GPL freeware, then you cannot use the bitmaps unless
-you obtain special permission from Elmar.  See the file README.bitmaps
-that comes with the XBoard and WinBoard source code for more
-information and an email address you can write to.</p>
-
-<hr />
-<h3><a name="tag-B.26">[B.26]
-  How can I get rid of these silly logos that this new WinBoard displays above the board?</a></h3>
-
-<p>WinBoard 4.4.0 has an option /autoLogo, which makes is search for bitmap files to display as logo, 
-in the engine directory or in the folder "logos".
-If you see logos without having asked for them, the settings in your winboard.ini file probably contains the line</p>
-<pre>/autoLogo=true</pre>
-<p>Just change that to /autoLogo=false.
-You can also achieve that by starting WinBoard through the startup dialog (from the start menu),
-and then tick "additional options" at the bottom,
-and type /autoLogo=false in the edit field, before pressing OK.
-If you then later select "Save Settings Now" from the Option menu,
-or when "Save Settings on Exit" is on, and you close WinBoard,
-this will automatically end up in your settings field.
-</p><p>
-When /autoLogo=false, logos will only be displayed if you explicitly ask for them,
-by running WinBoard with the option /firstLogo=FILENAME.bmp or /secondLogo=FILENAME.bmp.
-(Which will not be stored in the winboard.ini,
-but might of course be hidden somewhere in a settings file mentioned on the command line as @SETTINGSFILE.ini.)
-</p>
-
-<hr />
-<h3><a name="tag-B.27">[B.27]
-  How can I install logos for other engines, Internet Chess Servers or Human users?</a></h3>
-
-<p>With the option /autoLogo=true, (which is remembered in your settings file),
-WinBoard automatically looks into the engine folder 
-(specified by the /fd="..." or /sd="..." option), for a file called "logo.bmp". 
-If it is found, it is used as a logo for the engine when it plays.
-So all you have to do is put a logo.bmp file there.
-Popular logo formats are 100x50 and 130x65; many engine logos are available from
-<a href="http://www.geocities.com/davedahlem/my_logos.html">David Dahlem</a> or
-<a href="http://kirill-kryukov.com/chess/discussion-board/viewtopic.php?t=545&f=7">Graham Banks</a>
-</p><p>
-It is possible to overrule the /autoLogo by explicitly using a /firstLogo="FILENAME.bmp" 
-or /secondLogo="FILENAME.bmp" with the engine on the engine line in the startup dialog.
-This is useful for engines that run with an adapter like Polyglot,
-when you have only one polyglot on your system, used by many engines.
-E.g. for Fruit the engine line to be typed in or selected from the combo box is
-<pre>
-"polyglot fruit.ini" /firstLogo="D:\Engines\Fruit\logo.bmp" /fd="D:\Engines\Polyglot"
-</pre>
-This prevents WinBoard looking for the logo in the Polyglot folder.
-</p>
-For Internet Chess Servers and Human users the logos should be in the "logos"
-sub-folder of the folder where WinBoard is installed.
-With /autoLogo=true, WinBoard would look for a logo file in that folder with
-the same name as the ICS, suffixed with .bmp (e.g. freechess.org.bmp)
-or the Human username 
-(specified by the /userName="..." option or taken from the system), 
-suffixed by .bmp, e.g. administrator.bmp)
-</p>
-
-<hr />
-<h3><a name="tag-B.28">[B.28] Is there readline/history support for the input in XBoard/Winboard? </a></h3>
-
-<p>There is a special ICS input box that has history support which is
-the standard in Winboard and can be used in XBoard too.</p>
-<p>Another good tip from Michel van der Bergh is to use the rlwarp
-program together with XBoard which gives you full readline support.
-Just run "rlwrap xboard" instead of just "xboard". The rlwarp program
-should be available for most linux distributions or can be downloaded
-at:
-<a href="http://utopia.knoware.nl/~hlub/uck/rlwrap/">http://utopia.knoware.nl/~hlub/uck/rlwrap/</a>.
-</p>
-
-
-<hr /><h2><a name="tag-C">[C] XBoard and WinBoard, bugs and problems</a></h2>
-
-<hr /><h3><a name="tag-C.1">[C.1] I can't build XBoard
-because the X11/Xaw/...  include files are not found.</a></h3>
-
-<p>These are the header files for the Athena Widgets library, which XBoard uses
-heavily.  Some versions of Unix don't supply these files, but they are part of
-the standard X distribution, freely available from MIT.  </p>
-
-<p>For general information on getting missing X sources, see the FAQ on
-comp.windows.x.  Note that you may be missing only the header files, or you
-may be missing the libraries themselves too.</p>
-
-<p>HP-UX users are missing only the header files.  You can get them by
-anonymous FTP as follows.  (But first check with your system
-administrator to see if someone else at your site has already done
-this.)  Get the archive file /hpux9/X11R5/Core/Xaw-5.00.tar.gz (Xaw
-header files) via anonymous FTP from the site hpux.csc.liv.ac.uk
-(138.253.42.172), or one of the other official sites---Germany:
-hpux.ask.uni-karlsruhe.de (129.13.200.57), US: hpux.cae.wisc.edu
-(144.92.4.15), France: hpux.cict.fr (192.70.79.53) or Netherlands:
-hpux.ced.tudelft.nl (130.161.140.100). Unpack the archive using gzip
-and follow the instructions in its README and/or HPUX.Install files.
-Thanks to Richard Lloyd for this information.</p>
-
-<p>If you have the Xaw header files installed in a different place
-than the other X11 headers, you may need to configure XBoard with an
-extra flag to help it find them.  For example, if yours are in
-/foo/bar/X11/Xaw, try this:</p>
-
-<pre>
-    rm config.cache
-    (setenv CFLAGS -I/foo/bar ; configure)
-</pre>
-
-<p>Also see topic <a href="#tag-C.2">[C.2]</a>.</p>
-
-<hr />
-<h3><a name="tag-C.2">[C.2] Configuring or building XBoard fails due to
-missing header files, missing libraries, or undefined symbols.
-</a></h3>
-
-<p>Perhaps you have the X server and client programs installed on your
-machine, but not the X header files and link-time libraries.  If so,
-you can run existing X programs, but you cannot compile a new X
-program from source code.  In this case the XBoard configure script
-will fail and will tell you to look at this question in the FAQ.  Many
-GNU/Linux distributions put the headers and libraries in a separate
-package, which you might not have installed.  If you are using RedHat,
-install the XFree86-devel package.  If you are using some other
-kind of Unix, ask your system administrator where to find the X header
-files and link-time libraries.  If this is not your problem, read on.</p>
-
-<p>The configure script for XBoard looks for X libraries and header
-files in some common places.  Sometimes it fails: If yours are
-installed in an odd place, it may not find them at all.  If you have
-more than one version of X installed on your system, it may find the
-"wrong" one, or occasionally it may find libraries from one version
-and incompatible header files from another.  You can work around these
-problems by telling the configure script where the files are.  For
-example:</p>
-
-<pre>
-    configure --x-includes=/odd/place/include \
-              --x-libraries=/odd/place/lib
-</pre>
-
-<p>The directory named in the argument to --x-includes must have a
-subdirectory "X11" that contains the actual .h files.  That is, if
-your X.h file has full pathname /odd/place/X11R6/include/X11/X.h, then
-you must give the argument --x-includes=/odd/place/X11R6/include.</p>
-
-<p>Some linkers have bugs that cause bogus error messages when you try
-to link X programs.  The configure script includes a workaround for a
-bug of this kind that exists in some SunOS 4.x.x installations.  See
-the FAQ on comp.windows.x for more information about problems of this
-kind.</p>
-
-<p>If all else fails, check whether anyone else at your site has been able to
-compile any X programs on your system.  Your X installation might be buggy.
-If so, the system administrator at your site might know how to fix or work
-around the problem.</p>
-
-<p>Also see topic <a href="#tag-C.1">[C.1]</a>.</p>
-
-<hr /><h3><a name="tag-C.3">[C.3] I have problems using WinBoard on ICS
-with a modem.  I'm not running SLIP or PPP, but just dialing in to an
-ordinary login account ("shell account").</a></h3>
-
-<p>Here are solutions to some common problems in this area.</p>
-
-<p>Some people want to connect to ICS through HyperTerminal or some other
-terminal program first, then run WinBoard.  This is not how it works.
-WinBoard wants to talk directly with your modem, acting as a terminal program
-itself.  Start out with the modem "on hook" (not making a call).</p>
-
-<p>Run WinBoard with a command line like this (adding more options if desired):</p>
-
-<pre>
-    WinBoard /ics /icscom com1
-</pre>
-
-<p>Use com2, com3, or com4 in place of com1 if your modem is connected to one of those ports.</p>
-
-<p>After you start WinBoard, you may need to change some of the options in the
-Communications dialog (on the Options menu).  The dialog has the usual options
-for talking to modems: bits per second, bits per byte, parity, number of stop
-bits.  You will probably want to use Save Settings Now when you're done.</p>
-
-<p>Next, type dialing commands to your modem in the text window that WinBoard
-creates.  You may need to turn off Local Line Editing on the Options menu
-while you are typing commands to your modem.  Turn it back on when you're
-done.  See the WinBoard Help file for instructions if you see your typing
-echoed an extra time after you hit Enter.</p>
-
-<hr />
-<h3><a name="tag-C.4">[C.4]
-I have problems using WinBoard on ICS with Windows 95 and SLIP
-or PPP.  When trying to start up, it gets the error "Address family
-not supported by protocol family" (or some equally strange message).
-</a></h3>
-
-<p>WinBoard is a 32-bit application, but some Winsock (TCP/IP) implementations
-support only 16-bit applications.  You get a strange looking error message
-if you try to use a 32-bit application because
-there is no standard Winsock error code number
-for "32-bit application not supported."</p>
-
-<p>Microsoft TCP/IP works with both 16-bit and
-32-bit applications, supports SLIP, PPP, Ethernet, etc., and is included
-with Windows 95 and later Windows systems.
-If possible, I recommend that you uninstall
-whatever Winsock you are using and install Microsoft TCP/IP instead.
-For more information, see
-<a href=
-"http://walden.mo.net/~rymabry/95winfaq.html"
->http://walden.mo.net/~rymabry/95winfaq.html (the Win95-L FAQ)</a>.</p>
-
-<p>Trumpet Winsock 2.1 (and earlier) supports only 16-bit
-applications, and hence does not work with WinBoard.  But there is a
-beta-test release available that does support 32-bit applications.  
-I have not tried it with WinBoard, but it 
-should work.  See Trumpet's Web page
-<a href=
-"http://www.trumpet.com.au/wsk/winsock.htm"
->http://www.trumpet.com.au/wsk/winsock.htm</a>
-for more information.</p>
-
-<p>The 16-bit versions of America On-Line's software do not support
-32-bit Winsock applications.  Get the 32-bit version.  At one time the
-32-bit version was called "AOL for Windows 95," but I imagine that has
-changed.  Hopefully the current versions are all 32-bit.</p>
-
-<p>A few versions of Winsock may have bugs that prevent
-Windows timestamp/timeseal from working with them.  I'm not sure if
-such bugs exist in any versions that actually have 32-bit support,
-so this point might be moot.  Again, Microsoft TCP/IP is known to work.</p>
-
-<hr />
-<h3><a name="tag-C.5">[C.5] When I try to run WinBoard, I get the
-message "Failed to start chess program gnuchess on localhost: NO
-LANGFILE (file gnuchess.lan not found)".</a></h3>
-
-<p>This message means that WinBoard is trying to run GNU Chess, but
-GNU Chess cannot find a file that it needs, named gnuchess.lan.
-If you see it, you've probably customized WinBoard's /fcp, /fd, /scp,
-and/or /sd options and made a mistake in the process.  Review what
-you did, and see the WinBoard help file.</p>
-
-<hr />
-<h3><a name="tag-C.6">[C.6] I want to use XBoard or WinBoard as an Internet
-Chess Server interface, but the ICS Client option is grayed out on the
-menu.</a></h3> 
-
-<p>XBoard and WinBoard have three major modes that can't be changed from the
-menus: local chess engine mode,
-ICS mode, and standalone mode.</p>
-
-<p>With XBoard, you have to set the mode using command-line options.
-Local chess engine mode is the default, -ics selects ICS mode, and
--ncp ("no chess program") selects standalone mode.</p>
-
-<p>With WinBoard, if you don't set the mode using command-line
-options, you get a dialog box asking which mode you want.  To bypass
-the dialog box, use -cp ("chess program") for local chess engine mode,
-or -ics or -ncp as with XBoard.  Also see topic <a href="#tag-C.7">[C.7]</a>.</p>
-
-<hr />
-<h3><a name="tag-C.7">[C.7] How do I give command-line options to
-a Windows program like WinBoard?</a></h3>
-
-<p>There are many ways; pick your favorite:</p>
-
-<ul>
-<li>Type the command line into an MS-DOS Prompt box.  Example:
-"WinBoard -ics".</li>
-
-<li>Make a Windows shortcut for WinBoard.  You can do this by
-right-dragging WinBoard.exe to the desktop and selecting "Create
-Shortcut(s) Here" from the menu that appears.  Right-click on the
-shortcut, select Properties, and click the Shortcut tab.  The
-command-line text box is labelled "Target" instead of "Command line"
-just to confuse you.  Edit the text in this box, adding the command
-line options to the end.</li>
-
-<li>Choose Run from the Start menu, or File / Run from the Program
-Manager or File Manager, and type the command line into the dialog you
-get.  You may have to give WinBoard's full drivespec and filename if
-it is not in a directory on your search path.</li>
-
-<li>Make a Program Manager icon for WinBoard.  You can do this by
-dragging WinBoard.exe from the File Manager into the Program Manager,
-or by using File / New in the Program Manager.  Select the icon and
-choose File / Properties.  Edit the Command Line text box to add the
-command-line options to the end.</li>
-</ul>
-
-<hr />
-<h3><a name="tag-C.9">[C.9]
-When I exit from WinBoard after using it to play against a chess
-program on my machine, the chess program keeps running in the background.
-</a></h3>
-
-<p>Be sure you have the current versions of WinBoard and the chess
-engine you are using.  WinBoard 3.4.1 and earlier had a bug that
-caused this problem to occur with all chess engines.  A buggy chess
-engine that does not respond to the "quit" command will also cause
-this.</p>
-
-<p>If you still see this problem, you can stop the rogue chess engine
-by pressing Ctrl+Alt+Del, selecting the chess engine process from the
-menu, and pressing the End Task button.</p>
-
-<hr />
-<h3><a name="tag-C.12">[C.12]
-Why do my ICS 
-opponents often get extra time after they make their moves?
-Why do I sometimes lose time off my clock after I make my move?
-</a></h3>
-
-<p>If you are playing with the ICS incremental clock, both you and your
-opponent get a set amount of extra time after each move.</p>
-
-<p>If your or your opponent has netlag, your opponent might appear to
-get extra time, especially if your opponent is using timestamp or
-timeseal.  The ICS charges each player who is using timestamp or
-timeseal only for the time between when the player received his
-opponent's move and the time he sent his own move.  Thus delays in
-network transmission do not count against either player.  But WinBoard
-counts down the display of your opponent's clock on your screen under
-the assumption that there is no netlag.  When his move comes in, if
-there was netlag, the ICS may not have really charged him for that
-much time, and WinBoard corrects the clock to what the ICS says it
-should read.</p>
-
-<p>If you are not using timestamp or timeseal, you may appear to lose
-time off your clock at some point after you make your move.  In this
-case, the ICS charges you for the time between when it sent you your
-opponent's move and the time it received your move.  Thus delays in
-network transmission count against you.  WinBoard stops counting down
-the display of your clock on your screen (and starts your opponent's)
-when you make your move.  When the ICS echoes your move back to you, it
-may have charged you for more time than that, and WinBoard corrects
-the clocks to what the ICS says they should read.</p>
-
-<p>See "help lag" and "help timestamp" or "help timeseal" on your ICS for
-more detailed information.</p>
-
-<hr />
-<h3><a name="tag-C.13">[C.13]
-I can't run WinBoard unless I delete the WinBoard.ini file each time!
-</a></h3>
-
-<p>Most people don't have this problem, but two or three people using
-Windows NT 4.0 with Service Pack 3 or 4 have reported it.  I have no
-idea what causes this problem.  Contrary to what was reported in a
-previous version of this FAQ, reinstalling the service pack after
-installing WinBoard does not seem to solve the problem.</p>
-
-<hr />
-<h3><a name="tag-C.15">[C.15]
-I get errors compiling XBoard's parser.c.
-</a></h3>
-
-<p>The file parser.c is automatically generated from parser.l.  The
-copy included with XBoard 4.0.2 was generated by lex on Tru64 Unix and
-has problems compiling and linking on current GNU/Linux versions.  The
-copy included with XBoard 4.0.3 was generated by flex on a GNU/Linux
-machine, but it too won't necessarily work on other versions of Unix.
-If you have this problem, you can fix it by deleting parser.c and
-letting the Makefile re-create it from parser.l.  This will work if
-you have either lex or flex on your system.  Flex is available in all
-GNU/Linux distributions and can be obtained at no charge from the Free
-Software Foundation, www.fsf.org.</p>
-
-<hr />
-<h3><a name="tag-C.16">[C.16]
-I get an error building WinBoard from source because "flex" is not found.
-</a></h3>
-
-<p>The file parser.c is automatically generated from parser.l.  The
-Makefile included with the WinBoard source kit has a rule for
-generating parser.c using the program "flex", which will fail if you
-don't have flex.  However, the source kit also includes a ready-made
-copy of parser.c, so you don't really need flex unless you have made
-changes to parser.l.  Check that you still have a copy of parser.c; if
-you don't, unpack the WinBoard source zip file again to get one.
-Either set the last-modified time of parser.c to be later than that of
-parser.l, delete parser.l, or comment out the Makefile rule for
-building parser.c from parser.l, and then try building WinBoard again.</p>
-
-<p>If you do want to change parser.l and rebuild parser.c, you can get
-flex as part of the free Cygwin kit from 
-<a href="http://sourceware.cygnus.com/cygwin/"
->http://sourceware.cygnus.com/cygwin/</a>.  You can
-probably also get flex for Windows by itself from various other places
-around the Internet.  It is free software distributed by the Free
-Software Foundation, www.fsf.org.</p>
-
-<hr />
-<h3><a name="tag-C.17">[C.17]
-  XBoard hangs shortly after connecting to an ICS when used with dxterm,
- cmdtool, dtterm, kterm, konsole, or other substitutes for xterm.
-</a></h3>
-
-<p>After connecting to a chess server, XBoard 4.0.2 and later sends an
-escape sequence to its terminal that is meant to display your handle
-and the ICS host name (for example, 
-"user<a name="nospam03">&#x40;</a>chessclub.com") in the
-terminal's banner and icon.  It seems that several of the alternative
-X terminal programs have a bug that makes them hang when sent this
-escape sequence.</p>
-
-<p>You can work
-around the problem by using xterm, nxterm, rxvt, aterm, xiterm, or
-gnome-terminal, all of which seem to work fine.  In fact, current
-versions of kterm and konsole seem to work fine too, so if you are
-having problems with one of them, be sure you are not running an
-outdated version.  </p>
-
-<p>Alternatively, you can disable this feature by commenting out the
-body of DisplayIcsInteractionTitle in xboard.c and recompling xboard.</p>
-
-<hr />
-<h3><a name="tag-C.18">[C.18]
-  The WinBoard pieces show up in the wrong colors, appear distorted,
-  or are not visible at all.
-</a></h3>
-
-<p>This can happen if you have a bug in your Windows display driver.
-Check with the manufacturer of your display card, the manufacturer of
-your computer, or Microsoft to see if there is an updated driver
-available.  You can usually download updated drivers from the Web.</p>
-
-<p>If you can't find an updated driver, you can try running Windows
-using a different number of colors and/or disabling some of the
-hardware acceleration features on your display card.  To change the
-number of colors, go to Windows Start / Settings / Control Panel /
-Display / Settings / Color Palette.  To disable hardware acceleration
-features, go to Windows Start / Settings / Control Panel / Display /
-Settings / Advanced Properties / Performance / Hardware Acceleration.</p>
-
-<p>It's also possible that Windows has the right driver for your
-hardware already but you are not using it.  It may help to reinstall
-your driver.  Go to Windows Start / Settings / Control Panel / System
-and delete your display card (maybe even your monitor too), then
-reboot.  Windows should automatically re-detect your card and monitor
-and re-install the drivers; if it doesn't, run Start / Settings /
-Control Panel / Add New Hardware to force it to.</p>
-
-<p>If all else fails, try Monochrome mode.  On WinBoard's menus, go
-to Options / Color and check Monochrome.  WinBoard will display in black
-and white.</p>
-
-<hr />
-<h3><a name="tag-C.19">[C.19] XBoard or WinBoard tells me "Error: first chess
-  program (...) exited unexpectedly".</a></h3>
-
-<p>This message means that your chess engine crashed, probably due to
-a bug in the engine, or because you have it configured incorrectly.
-You can try running XBoard or WinBoard again with the "-debug" flag on
-the command line.  This will print out all the messages received from
-the chess engine.  (With WinBoard, the messages go into a file called
-WinBoard.debug; with XBoard, they go to the xterm that you started
-XBoard from.)</p>
-
-<p>If you are using GNU Chess and you see this problem as soon as it
-starts up, most likely GNU Chess is exiting with an error message.  If
-you see the message "NO LANGFILE", it means that you did not install
-GNU Chess correctly, and it is unable to find the file gnuchess.lang.
-Make sure that you defined LIBDIR in the gnuchess Makefile, and that
-gnuchess.lang is in that directory.  If gnuchess.lang is not there,
-you probably didn't type "make install" in the gnuchess src directory;
-you must do this to install gnuchess.lang (and the gnuchess book).  If
-you defined LIBDIR to something that is not an absolute pathname (that
-is, to something that does not start with a "/"), GNU Chess will work
-only if you run it from the GNU Chess "src" directory where you built
-it.</p>
-
-<hr /><h3><a name="tag-C.20">[C.20]
-  XBoard tells me "Warning: Cannot allocate colormap entry", or
-  "too few colors available; trying monochrome mode", or
-  "XPM pieces cannot be used in monochrome mode".
-</a></h3>
-
-<p>You are running your X server with 8-bit color depth, and you are running
-some program that has used up all 256 of your colors.  Netscape tends
-to do this, or maybe you have a background image that uses up all of
-your colors.</p>
-
-<p>If you have a modern machine, you probably have enough display
-memory to run your X server with 16-, 24-, or 32-bit color depth.  If
-you're using "startx" to start the X server, try giving the command as
-"<tt>startx -- -bpp 24</tt>" (or 16, or 32).  On newer X servers you
-may have to use -depth instead of -bpp.  Further details on
-configuring your X server are beyond the scope of this FAQ.</p>
-
-<p>If you must run in 8-bit mode, try the following:
-Avoid background images that use up all your colors.  If you
-run Netscape, try starting it up with the <tt>-install</tt> command-line
-option; this gives Netscape its own private colormap that X will
-switch to when Netscape has the keyboard focus.  </p>
-
-<p>If all else fails, another possibility is to run xboard in
-monochrome (black and white) mode by giving it the <tt>-mono</tt>
-command-line option.  XBoard will try this by itself in some cases.
-Monochrome mode works only with bitmap pieces, not pixmap pieces, so
-trying to use it may give you the error "XPM pieces cannot be used in
-monochrome mode".  To get around this, either use the -bitmapDirectory
-command line option to point XBoard to the directory containing the
-bitmap pieces included with the XBoard source code, or rebuild XBoard
-with pixmap support disabled, using "./configure --disable-xpm ; make
-clean ; make".</p>
-
-<hr /><h3><a name="tag-C.21">[C.21]
-  When I log in to freechess.org, the Enter key doesn't work, and I 
-  have to use Ctrl+J instead.  But when I use WinBoard, Ctrl+J doesn't
-  work either, so I'm stuck.
-</a></h3>
-
-<p>This is a pretty rare problem.  It should only arise if you have to
-reach freechess.org by telnetting (or connecting with WinBoard
-/icsport=23) from a Windows PC to a Unix box, and then telnetting from
-there to freechess.org.  The Enter key should always work when
-connecting directly from your PC to freechess.org.</p>
-
-<p>The best way to get around the problem is to run timeseal on the
-intermediate Unix box instead of telnet.  Get the appropriate version
-of timeseal for your box from ftp.freechess.org and follow the
-directions in the help files on FICS.</p>
-
-<p>If you can't run timeseal for some reason, there are some things
-you can do to make telnet stay in line mode instead of going to
-character mode.  Then the Enter key will work.  First, try "telnet
-freechess.org 5000" instead of "telnet freechess.org."
-If that still doesn't work, then when the Enter key stops working,
-type the following.  Here <tt>&lt;</tt> and <tt>&gt;</tt> surround the
-names of keys.</p>
-
-<pre>
-    &lt;Ctrl+S&gt;&lt;Ctrl+]&gt;mode line&lt;Enter&gt;
-</pre>
-
-<hr /><h3><a name="tag-C.22">[C.22]
-  XBoard says, "Failed to start first chess program fairymax
-  on localhost: fairymax: No such file or directory."
-</a></h3>
-
-<p>XBoard is looking for the Fairy-Max chess engine.  
-If you didn't want to use XBoard with Fairy-Max, please see topic 
-<a href="#tag-C.6">[C.6]</a>.
-If you did want to use Fairy-Max, be sure you have it installed and
-that it is on your $PATH.  If you wanted to use GNU Chess instead,
-see topic <a href="#tag-D.6">[D.6]</a>.</p>
-
-<hr />
-<h2><a name="tag-D">[D] Crafty and other topics</a></h2>
-<hr />
-<h3><a name="tag-D.1">[D.1] What is XChess?</a></h3>
-
-<p>XChess is an older chessboard program that is no longer supported.  XChess was
-written for X version 10, and you may or may not be able to build and run it
-on an X11 system.</p>
-
-<p>XChess has only one significant feature that is not present in XBoard: Two
-humans can play chess using XChess on different machines, without using the
-Internet Chess Server as an intermediary.  This feature is of interest only if
-you don't have network connectivity to the Internet Chess Server.</p>
-
-<p>Note: There actually have been several different programs called "XChess" in
-circulation at various times.  The above describes one that was associated
-with GNU Chess.</p>
-
-<hr />
-<h3><a name="tag-D.2">[D.2] What is Winsock Chess?</a></h3>
-
-<p>Winsock Chess is a program that lets two people play chess across a
-network.  It runs only under Microsoft Windows.  Some of the code in
-Winsock Chess is derived from GNU Chess, but it is not maintained by
-the GNU Chess team.  You can get a copy from the Internet Chess
-Library; see topic <a href="#tag-A.2">[A.2]</a>.  For more information,
-contact its author, Donald Munro, 
-ccahdm<a name="nospam04">&#x40;</a>beluga.upe.ac.za.</p>
-
-<hr />
-<h3><a name="tag-D.3">[D.3] What is Crafty?</a></h3>
-
-<p>Crafty is a freely-available chess program written by Bob Hyatt.  
-Bob is the main author of the well-known chess program Cray
-Blitz.  Crafty is a very strong program, its code is available, commented
-and fairly readable, and its author is actively working on improvements.</p>
-
-<p>You can download Crafty from <a
-href="ftp://ftp.cis.uab.edu/pub/hyatt/"
->ftp://ftp.cis.uab.edu/pub/hyatt/</a>.  Start by getting the <a
-href="ftp://ftp.cis.uab.edu/pub/hyatt/read.me" >read.me</a> file and
-reading it.  Among other things, this file contains instructions on
-how to install Crafty as a command-line application on your machine.</p>
-
-<p>There is a Crafty mailing list.
-To subscribe, send email to 
-majordomo<a name="nospam05">&#x40;</a>cis.uab.edu, with 
-"subscribe crafty-list" in the body.</p>
-
-<hr />
-<h3><a name="tag-D.4">[D.4] How do I use Crafty with XBoard?</a></h3>
-
-<p>First, you need to get Crafty and install it as a command-line
-application on your machine.  See topic <a href="#tag-D.3">[D.3]</a>.</p>
-
-<p>To use Crafty with XBoard, give the -fcp
-parameter like this:</p>
-
-<pre>
-    xboard -fcp "./crafty" -fd <I>crafty_directory</I>
-</pre>
-
-<p>Here <I>crafty_directory</I> is the directory where you installed Crafty.
-You can add more xboard options at the end of the command line.</p>
-
-<p>Crafty 15.14 or later is required to work properly with XBoard
-4.0.0 or later.  We generally recommend using the latest versions of
-both XBoard and Crafty.</p>
-
-<hr />
-<h3><a name="tag-D.5">[D.5] How do I use Crafty with WinBoard?</a></h3>
-
-<p>First, you need to get Crafty and install it as a command-line
-application on your machine.  See topic <a href="#tag-D.3">[D.3]</a>.
-It is best to use the latest version of Crafty with the latest version
-of WinBoard to make sure all features are compatible and function
-correctly.  You can install Crafty in any directory you like.</p>
-
-<p>You also need to get WinBoard and install it in the normal way
-using its built-in installer.  You can do that either before or after
-you install Crafty.</p>
-
-<p>After both Crafty and WinBoard are installed separately, follow the
-directions in the WinBoard Help file (included with WinBoard) for
-connecting new chess engines to WinBoard.</p>
-
-<p>If you want to have Crafty act as an automated computer player on a
-chess server, see topic <a href="#tag-B.16">[B.16]</a>.  Before you try
-to get that working, be sure you can play against Crafty locally,
-first without WinBoard, then with it.  Also be sure you can use
-WinBoard to play on the chess server yourself, without having Crafty
-connected to it.  You have to crawl before you can walk!</p>
-
-<hr />
-<h3><a name="tag-D.6">[D.6] How do I use GNU Chess with XBoard?</a></h3>
-
-<p>By default, XBoard tries to use Fairy-Max by running the
-command "fairymax".  That's why if you don't have Fairy-Max, you
-get the error message "Failed to start first chess program fairymax
-on localhost: fairymax: No such file or directory."</p>
-
-<p>If you have GNU Chess 5, the command should be "gnuchess xboard"
-instead.  To make XBoard use this command, give the -fcp parameter
-like this:</p>
-
-<pre>
-    xboard -fcp "gnuchess xboard" 
-</pre>
-
-If you instaled GNU Chess as a package, the operating system usually 
-knows where to find it, and GNU Chess knwos where to find its data
-files, such as the opening book.
-If GNU Chess is installed in a non-compliant way, e.g. together
-with its book file in a user directory, you must use:
-
-<pre>
-    xboard -fd <I>gnuchess_directory</I> -fcp "./gnuchess xboard" 
-</pre>
-
-<p>Here <I>gnuchess_directory</I> is the directory where you installed
-GNU Chess 5 and its book. 
-In all cases you can add more xboard options at the end of the command 
-line.</p>
-
-<p>If you want to use GNU Chess 4, the command should be "gnuchessx"
-instead.  To make XBoard use this command, give the -fcp parameter
-like this:</p>
-
-<pre>
-    xboard -fcp "gnuchessx" 
-</pre>
-
-<p>The same applies for non-compliant installs as for GNU Chess 5:
-the install directory has to be given with the -fd argument. </p>
-
-<hr />
-<h3><a name="tag-D.7">[D.7] How do I use GNU Chess with WinBoard?</a></h3>
-
-<p>Well, why would you want to? If you want a strong free engine,
-use Crafty, Glaurung, Fruit or Toga.
-If you wnt an engine that plays many variants, use Fairy-Max,
-Pulsar or Sjeng.
-But the procedure to install and run those is not any different than
-for GNU Chess.
-</p>
-<p>If you want to use a WinBoard-compatible chess engine that is not
-automatically installed with the download,
-you will have to download it yourself.
-Most chess engines are downloaded as a compressed archive (e.g. a .zip file),
-and on downloadig it, the decompression software on your Windows system
-is automatically invoked when you seected "Open" in the download dialog.
-You can then click "extract all files", and you are prompted for a place
-to put the unpacked stuff.
-The place it proposes is usually no good, so browse to the folder
-in which you installed the winBoard download
-(where you see the Fairy-Max and WinBoard folders).
-</p><p>
-When the archiv contained a single folder, (with files in it), 
-unpack it there.
-If the archive contained a lot of small files, first create a folder,
-and browse there, before you unpack.
-(To get all the files in a single place, not mixed with others,
-so you can easily delete it again.)
-Say you unpacked in a folder named "NewEngine", which now sits
-next to your "WinBoard" folder amongst the chess files on your system.
-Say there is a file "Engine.exe" in this "NewEngine" folder.
-</p><p>
-Then to run the engine with WinBoard,
-you have to enter the command:
-</p>
-<pre>
-        winboard /fcp="Engine.exe" /fd="..\NewEngine"
-</pre>
-<p>
-Sometimes engines need parameters on their command line,
-e.g. to set the hash-table size, or tell them they have to
-deal with WinBoard.
-These should then go within the quotes around the Engine.exe file name, 
-directly behind it, and separated from it (and each other) by spaces.
-See any README files that come with the engine to learn how
-exactly the engine has to be invoked.
-</p>
-<hr />
-<h3><a name="tag-D.8">[D.8] What is Fairy-Max?</a></h3>
-
-<p>Fairy-Max is a chess engine that plays chess at a level where
-you don't need to be a super GM to still have a chance to beat it.
-Apart from normal chess it plays many variants as well,
-such as Capablanca or Gothic Chess, Knightmate, etc.
-Dedicated versions of it are available to play Shatranj and Xiangqi
-(Chinese Chess).
-</p>
-
-<hr />
-<h3><a name="tag-D.9">[D.9] What is UCI? What is Polyglot?</a></h3>
-
-<p>UCI, or Universal Chess Interface, is a standard for communication
-between chess engines and its Graphical User Interface, that was
-created as an alternative to the way XBoard / WinBoard does it.
-(The latter way having become known as 
-"<a href="#tag-B.17">WinBoard protocol</a>").
-XBoard / WinBoard do not understand a word of UCI,
-so UCI engines cannnot be run directly as engine under them.
-</p><p>
-Polyglot is an adapter that translates WB protocol to UCI.
-It bhaves like it is a WB engine, but, without XBoard / WinBoard
-knowing about this, it consults an UCI engine for getting the moves.
-With the aid of Polyglot, any UCI engine can be run under WinBoard.
-Polyglot is available as a Debian package for Linux, and is included
-in the WinBoard installation.
-Polyglot is open source software released under the GPL.
-</p>
-
-<hr />
-<h3><a name="tag-D.10">[D.10] How can I run a UCI engine under XBoard / WinBoard?</a></h3>
-
-<p>First you have to download and install the UCI engine.
-This is similar to installing WinBoard engines, 
-see <a href="#tag-D.7">D.7</a>.
-Furthermore, you have to make sure that 
-<a href="#tag-D.9">Polyglot</a> is nstalled on
-your system, in a place where XBoard / WinBoard can find it.
-There are then two ways to run the UCI engine:
-</p><p>
-In the first method, the only thing you have to do is add an extra
-option to the command that invokes XBoard / WinBoard,
-to tell it that the engine is UCI:
-</p>
-<pre>
-        xboard -fcp "fruit" -fUCI
-
-        winboard /fcp="Fruit_21.exe" /fd="..\Fruit" /fUCI
-</pre>
-<p>
-The second method is more complicated, but also more versatile.
-UCI engines accept many settings from their GUI than XBoard / WinBoard
-usually send to a WB engine.
-Polyglot can provide such settings from a file dedicated to that engine,
-usully referred to as a "polyglot.ini" file (although the actual name
-can be different.)
-If the engine you downloaded comes with a polyglot.ini file for it,
-you can force Polyglot to use this file with engine settings
-by invoking it explicitly from XBoard / WinBoard:
-</p>
-<pre>
-        xboard -fcp "polyglot INIFILE"
-
-        winboard /fcp="polyglot INIFILE" /fd="POLYGLOTDIR"
-</pre>
-<p>
-INIFILE is the name of the polyglot.ini file (possibly a path name,
-such as "PG\fruit.ini", while POLYGLOTDIR should be the directory
-(path) name were the Polyglot executable is located.
-The directory and name of the actual engine are described in the
-polygot.ini file, and XBoard / WinBoard need not be aware of them.
-</p><p>
-If you don't have a polyglot.ini file for the engine, you would
-have to make one.
-How to do that is beyond the scope of this FAQ.
-Refer to the Polyglot documentation for this,
-or use method 1.
-</p>
-<hr />
-** End of XBoard/WinBoard FAQ **
-</body></html>
diff --git a/INSTALL b/INSTALL
deleted file mode 100644 (file)
index 0a78550..0000000
--- a/INSTALL
+++ /dev/null
@@ -1,181 +0,0 @@
-Basic Installation
-==================
-
-   These are generic installation instructions.
-
-   The `configure' shell script attempts to guess correct values for
-various system-dependent variables used during compilation.  It uses
-those values to create a `Makefile' in each directory of the package.
-It may also create one or more `.h' files containing system-dependent
-definitions.  Finally, it creates a shell script `config.status' that
-you can run in the future to recreate the current configuration, a file
-`config.cache' that saves the results of its tests to speed up
-reconfiguring, and a file `config.log' containing compiler output
-(useful mainly for debugging `configure').
-
-   The file `configure.ac' is used to create `configure' by a program
-called `autoconf'.  You only need `configure.ac' if you want to change
-it or regenerate `configure' using a newer version of
-`autoconf'. Please use the autogen.sh shell script, which will run all
-the autotools to generate the `configure' script if it is missing.
-
-The simplest way to compile this package is:
-
-  0. If the configure script is missing, run ./autogen.sh in the source directory
-
-  1. `cd' to the directory containing the package's source code and type
-     `./configure' to configure the package for your system.  If you're
-     using `csh' on an old version of System V, you might need to type
-     `sh ./configure' instead to prevent `csh' from trying to execute
-     `configure' itself.
-
-     Running `configure' takes awhile.  While running, it prints some
-     messages telling which features it is checking for.
-
-  2. Type `make' to compile the package.
-
-  3. Optionally, type `make check' to run any self-tests that come with
-     the package.
-
-  4. Type `make install' to install the programs and any data files and
-     documentation.
-
-  5. You can remove the program binaries and object files from the
-     source code directory by typing `make clean'.  To also remove the
-     files that `configure' created (so you can compile the package for
-     a different kind of computer), type `make distclean'.  There is
-     also a `make maintainer-clean' target, but that is intended mainly
-     for the package's developers.  If you use it, you may have to get
-     all sorts of other programs in order to regenerate files that came
-     with the distribution.
-
-Compilers and Options
-=====================
-
-   Some systems require unusual options for compilation or linking that
-the `configure' script does not know about.  You can give `configure'
-initial values for variables by setting them in the environment.  Using
-a Bourne-compatible shell, you can do that on the command line like
-this:
-     CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
-
-Or on systems that have the `env' program, you can do it like this:
-     env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
-
-Compiling For Multiple Architectures
-====================================
-
-   You can compile the package for more than one kind of computer at the
-same time, by placing the object files for each architecture in their
-own directory.  To do this, you must use a version of `make' that
-supports the `VPATH' variable, such as GNU `make'.  `cd' to the
-directory where you want the object files and executables to go and run
-the `configure' script.  `configure' automatically checks for the
-source code in the directory that `configure' is in and in `..'.
-
-   If you have to use a `make' that does not supports the `VPATH'
-variable, you have to compile the package for one architecture at a time
-in the source code directory.  After you have installed the package for
-one architecture, use `make distclean' before reconfiguring for another
-architecture.
-
-Installation Names
-==================
-
-   By default, `make install' will install the package's files in
-`/usr/local/bin', `/usr/local/man', etc.  You can specify an
-installation prefix other than `/usr/local' by giving `configure' the
-option `--prefix=PATH'.
-
-   You can specify separate installation prefixes for
-architecture-specific files and architecture-independent files.  If you
-give `configure' the option `--exec-prefix=PATH', the package will use
-PATH as the prefix for installing programs and libraries.
-Documentation and other data files will still use the regular prefix.
-
-   In addition, if you use an unusual directory layout you can give
-options like `--bindir=PATH' to specify different values for particular
-kinds of files.  Run `configure --help' for a list of the directories
-you can set and what kinds of files go in them.
-
-   If the package supports it, you can cause programs to be installed
-with an extra prefix or suffix on their names by giving `configure' the
-option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
-
-Optional Features
-=================
-
-   Some packages pay attention to `--enable-FEATURE' options to
-`configure', where FEATURE indicates an optional part of the package.
-They may also pay attention to `--with-PACKAGE' options, where PACKAGE
-is something like `gnu-as' or `x' (for the X Window System).  The
-`README' should mention any `--enable-' and `--with-' options that the
-package recognizes.
-
-   For packages that use the X Window System, `configure' can usually
-find the X include and library files automatically, but if it doesn't,
-you can use the `configure' options `--x-includes=DIR' and
-`--x-libraries=DIR' to specify their locations.
-
-Specifying the System Type
-==========================
-
-   There may be some features `configure' can not figure out
-automatically, but needs to determine by the type of host the package
-will run on.  Usually `configure' can figure that out, but if it prints
-a message saying it can not guess the host type, give it the
-`--host=TYPE' option.  TYPE can either be a short name for the system
-type, such as `sun4', or a canonical name with three fields:
-     CPU-COMPANY-SYSTEM
-
-See the file `config.sub' for the possible values of each field.  If
-`config.sub' isn't included in this package, then this package doesn't
-need to know the host type.
-
-   If you are building compiler tools for cross-compiling, you can also
-use the `--target=TYPE' option to select the type of system they will
-produce code for and the `--build=TYPE' option to select the type of
-system on which you are compiling the package. 
-
-Sharing Defaults
-================
-
-   If you want to set default values for `configure' scripts to share,
-you can create a site shell script called `config.site' that gives
-default values for variables like `CC', `cache_file', and `prefix'.
-`configure' looks for `PREFIX/share/config.site' if it exists, then
-`PREFIX/etc/config.site' if it exists.  Or, you can set the
-`CONFIG_SITE' environment variable to the location of the site script.
-A warning: not all `configure' scripts look for a site script.
-
-Operation Controls
-==================
-
-   `configure' recognizes the following options to control how it
-operates.
-
-`--cache-file=FILE'
-     Use and save the results of the tests in FILE instead of
-     `./config.cache'.  Set FILE to `/dev/null' to disable caching, for
-     debugging `configure'.
-
-`--help'
-     Print a summary of the options to `configure', and exit.
-
-`--quiet'
-`--silent'
-`-q'
-     Do not print messages saying which checks are being made.  To
-     suppress all normal output, redirect it to `/dev/null' (any error
-     messages will still be shown).
-
-`--srcdir=DIR'
-     Look for the package's source code in directory DIR.  Usually
-     `configure' can determine that directory automatically.
-
-`--version'
-     Print the version of Autoconf used to generate the `configure'
-     script, and exit.
-
-`configure' also accepts some other, not widely useful, options.
-
diff --git a/Makefile.am b/Makefile.am
deleted file mode 100644 (file)
index a3051ba..0000000
+++ /dev/null
@@ -1,347 +0,0 @@
-bin_PROGRAMS = xboard
-
-### if we are compiling with ZIPPY we need some extra source files
-
-if ZIPPY
-  ZPY = zippy.c zippy.h
-else
-  ZPY =
-endif
-
-### define sources for the front-end and backend
-GTKsources = gtk/xboard.c    gtk/xboard.h \
-             gtk/xoptions.c  gtk/xtimer.c \
-             gtk/xengineoutput.c
-
-Xsources   = xaw/xboard.c    xaw/xboard.h    \
-             xaw/xengineoutput.c             \
-             xaw/xgamelist.c xaw/xgamelist.h \
-             xaw/xhistory.c  xaw/xhistory.h  \
-             xaw/xoptions.c \
-             bitmaps/checkmark.bm bitmaps/icon_black.bm bitmaps/icon_white.bm
-
-if withGTK
-  FRONTENDsources = $(GTKsources)
-  FRONTENDextras = $(Xsources)
-  headers = -I gtk
-endif
-if withXaw
-  FRONTENDsources = $(Xsources)
-  FRONTENDextras = $(GTKsources)
-  headers = -I xaw -DX11
-endif
-
-xboard_SOURCES = backend.c backend.h backendz.h \
-                book.c \
-                childio.c childio.h \
-                common.h \
-                frontend.h \
-                gamelist.c ngamelist.c \
-                gettext.h  \
-                lists.c lists.h \
-                moves.c moves.h \
-                parser.c parser.h \
-                pgntags.c \
-                uci.c \
-                args.h xboard2.h \
-                board.c board.h \
-                draw.c draw.h \
-                dialogs.c dialogs.h \
-                engineoutput.c nengineoutput.c engineoutput.h \
-                evalgraph.c nevalgraph.c evalgraph.h \
-                history.c nhistory.c \
-                menus.c menus.h \
-                usounds.c usystem.c usystem.h \
-                $(ZPY) $(FRONTENDsources)
-
-###
-
-SUBDIRS = po
-xboard_LDADD = -ldl -lm @FRONTEND_LIBS@ @X_LIBS@ @LIBINTL@ @CAIRO_LIBS@
-
-EXTRA_DIST = pixmaps themes png sounds winboard \
-       xboard.texi gpl.texinfo texi2man texinfo.tex xboard.man xboard.desktop xboard-config.desktop \
-       xboard-fen-viewer.desktop  xboard-pgn-viewer.desktop  xboard-tourney.desktop xboard.xml \
-       COPYRIGHT FAQ.html engine-intf.html ics-parsing.txt readme.htm zippy.README \
-       xboard.conf SHORTLOG DIFFSTAT history.c ABOUT-NLS $(FRONTENDextras)
-
-DISTCLEANFILES = stamp-h
-
-GITVERSION=$(shell sh -c 'git describe --dirty --always 2>/dev/null')
-AM_CPPFLAGS=-DINFODIR='"$(infodir)"' @X_CFLAGS@ @CAIRO_CFLAGS@ @FRONTEND_CFLAGS@  -DSYSCONFDIR='"$(sysconfdir)"' \
-           -DLOCALEDIR='"$(localedir)"' -DSVGDIR='"$(svgdir)"' -D__GIT_VERSION='"$(GITVERSION)"' \
-            -DCONFIGURE_OPTIONS='"@CONFIGURE_OPTIONS@"' -DDATADIR='"$(datadir)/games/xboard"' -DMANDIR='"$(mandir)"' $(headers)
-
-ACLOCAL_AMFLAGS = -I m4
-
-info_TEXINFOS =  xboard.texi
-xboard_TEXINFOS =  copyright.texi
-man6_MANS = xboard.man
-
-
-### config file
-
-sysconf_DATA = xboard.conf
-
-### icon files
-
-icondir = @ICONSDIR@
-dist_icon_DATA = xboard.png
-svgicondir = @SVGICONSDIR@
-dist_svgicon_DATA = xboard.svg
-
-
-### desktop files for KDE and gnome
-
-Applicationsdir = @DESKTOPDIR@
-Applications_DATA = xboard.desktop xboard-fen-viewer.desktop  xboard-pgn-viewer.desktop  xboard-tourney.desktop  xboard-config.desktop
-
-### mime file
-mimedir = @MIMEDIR@
-mime_DATA = xboard.xml
-
-gamedatadir = @GAMEDATADIR@
-
-### directory and files for svgs
-
-svgdir = $(gamedatadir)/themes/default
-dist_svg_DATA = svg/icon_white.svg         svg/icon_black.svg      \
-           svg/BlackAdvisor.svg       svg/WhiteAdvisor.svg    \
-           svg/BlackArchbishop.svg    svg/WhiteArchbishop.svg  \
-           svg/BlackBishop.svg       svg/WhiteBishop.svg      \
-           svg/BlackCanon.svg        svg/WhiteCanon.svg       \
-           svg/BlackChancellor.svg    svg/WhiteChancellor.svg  \
-           svg/BlackCobra.svg         svg/WhiteCobra.svg       \
-           svg/BlackCommoner.svg      svg/WhiteCommoner.svg    \
-           svg/BlackCrownedBishop.svg svg/WhiteCrownedBishop.svg  \
-           svg/BlackCrownedRook.svg   svg/WhiteCrownedRook.svg \
-           svg/BlackElephant.svg      svg/WhiteElephant.svg    \
-           svg/BlackGoldKnight.svg    svg/WhiteGoldKnight.svg  \
-           svg/BlackGoldLance.svg   svg/WhiteGoldLance.svg    \
-           svg/BlackGoldPawn.svg    svg/WhiteGoldPawn.svg     \
-           svg/BlackGoldSilver.svg  svg/WhiteGoldSilver.svg   \
-           svg/BlackGold.svg       svg/WhiteGold.svg         \
-           svg/BlackHawk.svg        svg/WhiteHawk.svg         \
-           svg/BlackKing.svg       svg/WhiteKing.svg         \
-           svg/BlackKnight.svg     svg/WhiteKnight.svg       \
-           svg/BlackLance.svg      svg/WhiteLance.svg        \
-           svg/BlackMarshall.svg    svg/WhiteMarshall.svg     \
-           svg/BlackNightrider.svg  svg/WhiteNightrider.svg   \
-           svg/BlackPawn.svg       svg/WhitePawn.svg         \
-           svg/BlackPrincess.svg    svg/WhitePrincess.svg     \
-           svg/BlackQueen.svg      svg/WhiteQueen.svg        \
-           svg/BlackRook.svg       svg/WhiteRook.svg         \
-           svg/BlackUnicorn.svg            svg/WhiteUnicorn.svg      \
-           svg/BlackSword.svg      svg/WhiteSword.svg        \
-           svg/BlackHSword.svg     svg/WhiteHSword.svg       \
-           svg/BlackLeopard.svg            svg/WhiteLeopard.svg      \
-           svg/BlackLion.svg       svg/WhiteLion.svg         \
-           svg/BlackPromoBishop.svg svg/WhitePromoBishop.svg  \
-           svg/BlackPromoRook.svg   svg/WhitePromoRook.svg    \
-           svg/BlackPromoHorse.svg  svg/WhitePromoHorse.svg   \
-           svg/BlackPromoDragon.svg svg/WhitePromoDragon.svg  \
-           svg/BlackPromoSword.svg  svg/WhitePromoSword.svg   \
-           svg/BlackPromoHSword.svg svg/WhitePromoHSword.svg  \
-           svg/BlackHCrown.svg     svg/WhiteHCrown.svg       \
-           svg/BlackDolphin.svg            svg/WhiteDolphin.svg      \
-           svg/BlackClaw.svg       svg/WhiteClaw.svg         \
-           svg/BlackWolf.svg       svg/WhiteWolf.svg         \
-           svg/BlackCamel.svg      svg/WhiteCamel.svg        \
-           svg/BlackZebra.svg      svg/WhiteZebra.svg        \
-           svg/BlackGnu.svg        svg/WhiteGnu.svg          \
-           svg/BlackWizard.svg     svg/WhiteWizard.svg       \
-           svg/BlackViking.svg     svg/WhiteViking.svg       \
-           svg/BlackIron.svg       svg/WhiteIron.svg         \
-           svg/BlackCopper.svg     svg/WhiteCopper.svg       \
-           svg/BlackTower.svg      svg/WhiteTower.svg        \
-           svg/BlackDragon.svg     svg/WhiteDragon.svg       \
-           svg/BlackCub.svg        svg/WhiteCub.svg          \
-           svg/BlackButterfly.svg   svg/WhiteButterfly.svg    \
-           svg/BlackLeft.svg       svg/WhiteLeft.svg         \
-           svg/BlackRight.svg      svg/WhiteRight.svg        \
-           svg/BlackHat.svg        svg/WhiteHat.svg          \
-           svg/BlackRShield.svg            svg/WhiteRShield.svg      \
-           svg/BlackLShield.svg            svg/WhiteLShield.svg      \
-           svg/BlackAxe.svg        svg/WhiteAxe.svg          \
-           svg/BlackFlag.svg       svg/WhiteFlag.svg         \
-           svg/BlackDuck.svg       svg/WhiteDuck.svg         \
-           svg/BlackPegasus.svg            svg/WhitePegasus.svg      \
-           svg/eo_Analyzing.svg     svg/eo_Black.svg          \
-           svg/eo_Clear.svg         svg/eo_Ponder.svg         \
-           svg/eo_Thinking.svg      svg/eo_Unknown.svg        \
-           svg/eo_White.svg
-
-shogidir = $(gamedatadir)/themes/shogi
-dist_shogi_DATA = \
-           themes/shogi/WhiteGold.svg        themes/shogi/WhiteCrownedBishop.svg\
-           themes/shogi/WhiteBishop.svg      themes/shogi/WhiteKing.svg\
-           themes/shogi/WhiteKnight.svg      themes/shogi/WhiteGoldKnight.svg\
-           themes/shogi/WhiteLance.svg       themes/shogi/WhiteGoldLance.svg\
-           themes/shogi/WhitePawn.svg        themes/shogi/WhiteGoldPawn.svg\
-           themes/shogi/WhiteRook.svg        themes/shogi/WhiteCrownedRook.svg\
-           themes/shogi/WhiteAdvisor.svg     themes/shogi/WhiteGoldSilver.svg\
-           themes/shogi/BlackGold.svg        themes/shogi/BlackCrownedBishop.svg\
-           themes/shogi/BlackBishop.svg      themes/shogi/BlackKing.svg\
-           themes/shogi/BlackKnight.svg      themes/shogi/BlackGoldKnight.svg\
-           themes/shogi/BlackLance.svg       themes/shogi/BlackGoldLance.svg\
-           themes/shogi/BlackPawn.svg        themes/shogi/BlackGoldPawn.svg\
-           themes/shogi/BlackRook.svg        themes/shogi/BlackCrownedRook.svg\
-           themes/shogi/BlackAdvisor.svg     themes/shogi/BlackGoldSilver.svg
-
-xiangqidir = $(gamedatadir)/themes/xiangqi
-dist_xiangqi_DATA = themes/xiangqi/BlackAdvisor.svg  themes/xiangqi/WhiteAdvisor.svg \
-           themes/xiangqi/BlackCanon.svg    themes/xiangqi/WhiteCanon.svg    \
-           themes/xiangqi/BlackElephant.svg themes/xiangqi/WhiteElephant.svg \
-           themes/xiangqi/BlackKnight.svg   themes/xiangqi/WhiteKnight.svg   \
-           themes/xiangqi/BlackGold.svg            themes/xiangqi/WhiteGold.svg     \
-           themes/xiangqi/BlackPawn.svg            themes/xiangqi/WhitePawn.svg     \
-           themes/xiangqi/BlackRook.svg            themes/xiangqi/WhiteRook.svg
-
-### directory and files for themes (and other) configuration files
-
-themesdir = $(datadir)/games/xboard/themes/conf
-dist_themes_DATA = conf/shogi conf/xq conf/ics conf/mini conf/mini.fen conf/sho conf/sho.fen
-
-### directory and files for pixmaps
-
-pixmapsdir = $(gamedatadir)/pixmaps/textures
-dist_pixmaps_DATA = pixmaps/cross32.png pixmaps/cross48.png pixmaps/board32.png pixmaps/board48.png pixmaps/ini32.png pixmaps/ini48.png
-
-### directory and files for pngs
-
-pngdir = $(gamedatadir)/themes/textures
-dist_png_DATA = png/hatch.png png/wood_d.png png/wood_l.png png/xqboard-9x10.png
-
-### directory and files for sound files
-
-soundsdir = $(gamedatadir)/sounds
-dist_sounds_DATA = \
-  sounds/cymbal.wav     sounds/pop2.wav   sounds/slap.wav     sounds/ding1.wav      sounds/laser.wav \
-  sounds/woodthunk.wav  sounds/gong.wav   sounds/penalty.wav  sounds/honkhonk.wav   sounds/phone.wav  sounds/roar.wav
-
-### the man page depends on several files, so we add a special rule
-
-xboard.man: xboard.texi copyright.texi gpl.texinfo version.texi
-       $(srcdir)/texi2man $(srcdir)/xboard.texi > xboard.man || (rm -f xboard.man ; false)
-
-### install mime-type files and corresponding icons and menu entries if enabled during configure
-
-install-data-hook: install-mime-database
-uninstall-hook: uninstall-mime-database
-
-install-mime-database:
-if ENABLE_UPDATE_MIMEDB
-       -if test -z "$(DESTDIR)" -a -n "$(XDG_MIME)" -a -n "$(XDG_DESKTOP_MENU)" -a -n "$(XDG_ICON_RESOURCE)" ; then \
-               $(XDG_MIME) install --mode system --novendor xboard.xml ;\
-               $(XDG_DESKTOP_MENU) install --mode system --novendor xboard-pgn-viewer.desktop;\
-               $(XDG_DESKTOP_MENU) install --mode system --novendor xboard-fen-viewer.desktop;\
-               $(XDG_DESKTOP_MENU) install --mode system --novendor xboard-tourney.desktop;\
-               $(XDG_DESKTOP_MENU) install --mode system --novendor xboard-config.desktop;\
-               $(XDG_ICON_RESOURCE) install --context mimetypes --size 32 pixmaps/board32.png application-x-chess-pgn;\
-               $(XDG_ICON_RESOURCE) install --context mimetypes --size 32 pixmaps/cross32.png application-x-xboard-trn;\
-               $(XDG_ICON_RESOURCE) install --context mimetypes --size 32 pixmaps/ini32.png application-x-xboard-opt;\
-               $(XDG_ICON_RESOURCE) install --context mimetypes --size 48 pixmaps/board48.png application-x-chess-pgn;\
-               $(XDG_ICON_RESOURCE) install --context mimetypes --size 48 pixmaps/cross48.png application-x-xboard-trn;\
-               $(XDG_ICON_RESOURCE) install --context mimetypes --size 48 pixmaps/ini48.png application-x-xboard-opt;\
-       fi
-endif
-
-uninstall-mime-database:
-if ENABLE_UPDATE_MIMEDB
-       -if test -z "$(DESTDIR)" -a -n "$(XDG_MIME)" -a -n "$(XDG_DESKTOP_MENU)" -a -n "$(XDG_ICON_RESOURCE)" ; then \
-               $(XDG_MIME) uninstall --mode system --novendor xboard.xml;\
-               $(XDG_DESKTOP_MENU) uninstall --mode system --novendor xboard-pgn-viewer.desktop;\
-               $(XDG_DESKTOP_MENU) uninstall --mode system --novendor xboard-fen-viewer.desktop;\
-               $(XDG_DESKTOP_MENU) uninstall --mode system --novendor xboard-tourney.desktop;\
-               $(XDG_DESKTOP_MENU) uninstall --mode system --novendor xboard-config.desktop;\
-               $(XDG_ICON_RESOURCE) uninstall --context mimetypes --size 32 board32.png application-x-chess-pgn;\
-               $(XDG_ICON_RESOURCE) uninstall --context mimetypes --size 32 cross32.png application-x-xboard-trn;\
-               $(XDG_ICON_RESOURCE) uninstall --context mimetypes --size 32 ini32.png application-x-xboard-opt;\
-               $(XDG_ICON_RESOURCE) uninstall --context mimetypes --size 48 board48.png application-x-chess-pgn;\
-               $(XDG_ICON_RESOURCE) uninstall --context mimetypes --size 48 cross48.png application-x-xboard-trn;\
-               $(XDG_ICON_RESOURCE) uninstall --context mimetypes --size 48 ini48.png application-x-xboard-opt;\
-       fi
-endif
-
-if OSX_APP
-osxapp: all-recursive install install-recursive
-macportsprefix = $(shell which port | sed s/[/]bin[/]port//)
-       $(MKDIR_P) $(datarootdir)/bin
-       $(MKDIR_P) $(datarootdir)/lib
-       $(MKDIR_P) $(sysconfdir)/gtk-2.0
-       $(MKDIR_P) $(datadir)/themes
-       $(MKDIR_P) $(datadir)/gtk-engines
-       $(MKDIR_P) $(gamedatadir)/themes
-       $(INSTALL) ./osxapp/Info.plist $(prefix)
-       $(INSTALL) ./osxapp/PkgInfo $(prefix)
-       $(INSTALL) ./osxapp/XBoard.gtklauncher $(bindir)/XBoard
-       $(INSTALL) ./xboard $(bindir)/xboard-bin
-       cp -R ./osxapp/icons/. $(datarootdir)
-       sed -e 's?-soundProgram "aplay -q"?-soundProgram "afplay"?'\
-            -e 's?-firstChessProgram fairymax?-firstChessProgram "./fairymax"?'\
-           -e 's?-firstChessProgramNames {fairymax?-firstChessProgramNames {"fairymax" -fcp "./fairymax" -fd "~~/../../bin/fairymax"?'\
-           -e 's?"Fruit 2.1" -fcp fruit -fUCI?"fruit" -fcp "./fruit" -fd "~~/../../bin/fruit" -fUCI?'\
-           -e '/"Crafty" -fcp crafty/d'\
-           -e '/"GNU Chess" -fcp gnuchess/d'\
-           -e 's?"icc" -icshost chessclub.com -icshelper timestamp?"icc" -icshost 207.99.83.228 -icshelper timestamp?'\
-           -e 's?"kc" -icshost alanimus.com -icshelper timeseal?"vics" -icshost winboard.nl -icshelper timeseal?'\
-           -e '/; Save user settings./d'\
-           -e '/; Must be last in file to make user options prevail over system-wide settings!/d'\
-           -e '/-saveSettingsOnExit true/d'\
-           -e '/-saveSettingsFile "~\/.xboardrc"/d'\
-           -e '/-settingsFile "~\/.xboardrc"/d'<./xboard.conf >$(sysconfdir)/xboard.conf
-       echo '; OSX' >>$(sysconfdir)/xboard.conf
-       echo ';'>>$(sysconfdir)/xboard.conf
-       echo '-clockFont "Sans Bold 26" '>>$(sysconfdir)/xboard.conf
-       echo '-pieceImageDirectory "~~/themes/default"' >>$(sysconfdir)/xboard.conf
-       echo '-autoLogo true' >>$(sysconfdir)/xboard.conf
-       echo '-logoDir "~~/logos"' >>$(sysconfdir)/xboard.conf
-       echo '-logoSize 100' >>$(sysconfdir)/xboard.conf
-       echo '-openCommand "open"' >>$(sysconfdir)/xboard.conf
-       echo '-firstDirectory "~~/../../bin/fairymax"' >>$(sysconfdir)/xboard.conf
-       echo '-secondDirectory "~~/../../bin/fairymax"' >>$(sysconfdir)/xboard.conf
-       echo '-secondChessProgram "./fairymax"' >>$(sysconfdir)/xboard.conf
-       echo '-uxiAdapter "uci2wb -%variant %fcp %fd"' >>$(sysconfdir)/xboard.conf
-       echo ';' >>$(sysconfdir)/xboard.conf
-       echo '; Save user settings.' >>$(sysconfdir)/xboard.conf
-       echo '; Must be last in file to make user options prevail over system-wide settings!' >>$(sysconfdir)/xboard.conf
-       echo ';' >>$(sysconfdir)/xboard.conf
-       echo '-saveSettingsOnExit true' >>$(sysconfdir)/xboard.conf
-       echo '-saveSettingsFile "~/Library/Preferences/XBoard.conf"' >>$(sysconfdir)/xboard.conf
-       echo '-settingsFile "~/Library/Preferences/XBoard.conf"' >>$(sysconfdir)/xboard.conf
-
-       sed 's?$(macportsprefix)/lib?/tmp/skl/XBoard.app/Contents/Resources/lib?' <$(macportsprefix)/etc/gtk-2.0/gdk-pixbuf.loaders >$(sysconfdir)/gtk-2.0/gdk-pixbuf.loaders
-       sed -e 's?$(macportsprefix)/lib?/tmp/skl/XBoard.app/Contents/Resources/lib?' -e 's?$(macportsprefix)/share/locale?/tmp/skl/XBoard.app/Contents/Resources/share/locale?' <$(macportsprefix)/etc/gtk-2.0/gtk.immodules >$(sysconfdir)/gtk-2.0/gtk.immodules
-       $(INSTALL) ./osxapp/launcher_rc $(datarootdir)/
-       $(INSTALL) $(macportsprefix)/etc/gtk-2.0/im-multipress.conf $(sysconfdir)/gtk-2.0
-       $(INSTALL) ./osxapp/gtkrc $(sysconfdir)/gtk-2.0/gtkrc
-       cp -R $(macportsprefix)/lib/gtk-2.0 $(datarootdir)/lib
-       cp -R $(macportsprefix)/lib/gdk-pixbuf-2.0 $(datarootdir)/lib
-       cp -R $(macportsprefix)/share/themes/Mac $(datadir)/themes
-       cp -R ./osxapp/gtk2-themes/Mac/gtk-2.0 $(datadir)/themes/Mac
-       cp -R ./osxapp/themes/default/. $(gamedatadir)/themes/default
-       cp $(macportsprefix)/share/gtk-engines/murrine.xml $(datadir)/gtk-engines/murrine.xml
-       $(INSTALL) ./png/marble_d.png $(gamedatadir)/themes/textures
-       $(INSTALL) ./png/marble_l.png $(gamedatadir)/themes/textures
-       $(INSTALL) ./png/xqwood-9x10.png $(gamedatadir)/themes/textures
-       cp -R ./osxapp/logos $(gamedatadir)/
-if NLS_ENABLED
-       cp -R $(macportsprefix)/share/strings/. $(datarootdir)/
-       for i in po/*gmo; do lang=`basename $$i .gmo`; $(INSTALL) $(macportsprefix)/share/locale/$$lang/LC_MESSAGES/gtk20.mo $(localedir)/$$lang/LC_MESSAGES/; done
-endif
-       dylibbundler -of -b -x $(bindir)/xboard-bin -d $(datarootdir)/lib -p @executable_path/../Resources/lib
-       dylibbundler -of -b -x $(datarootdir)/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so -d $(datarootdir)/lib -p @executable_path/../Resources/lib
-       dylibbundler -of -b -x $(datarootdir)/lib/gtk-2.0/2.10.0/immodules/im-quartz.so -d $(datarootdir)/lib -p @executable_path/../Resources/lib
-       dylibbundler -of -b -x $(datarootdir)/lib/gtk-2.0/2.10.0/engines/libpixmap.so -d $(datarootdir)/lib -p @executable_path/../Resources/lib
-       dylibbundler -of -b -x $(datarootdir)/lib/gtk-2.0/2.10.0/engines/libmurrine.so -d $(datarootdir)/lib -p @executable_path/../Resources/lib
-       find ./XBoard.app -name '*.a' -print0 | xargs -0 rm
-       rm -r $(datarootdir)/lib/gtk-2.0/include
-       rm -r $(datarootdir)/share/applications
-       rm $(datarootdir)/share/info/dir
-       rm -r $(datarootdir)/share/icons
-       rm -r $(datarootdir)/share/mime
-       mv $(datarootdir)/share/games/xboard/themes/conf $(datarootdir)/share/xboard/conf
-       rm -r $(datarootdir)/share/xboard/pixmaps
-       rm -r $(datarootdir)/share/games
-endif
-
diff --git a/NEWS b/NEWS
deleted file mode 100644 (file)
index 2b51c6a..0000000
--- a/NEWS
+++ /dev/null
@@ -1,1493 +0,0 @@
-** Version 4.8.0 **
-
-   (see http://www.gnu.org/software/xboard/whats_new/4.8.0/ )
-
-   * New features in this release
-    * Resuming saved unfinished games
-    * Setting up positions more easily
-    * Bitbase adjudication
-    * Showing tablebase hits
-    * A new ICS window
-    * Recalling board themes (XBoard)
-    * Playing moves by clicking them
-    * Fonts in the XBoard GTK build
-    * Using the mousewheel (XBoard)
-    * Displaying a blunder graph
-    * Slicing up a PGN database
-    * Auto-install of engines
-
-   * New variant support
-    * ASEAN Chess
-    * Chu Shogi
-    * Mighty Lion
-    * Highlighting squares on engine command
-    * Let the engine finish a user move
-    * Non-standard variant names
-    * Fischer castling in any variant
-    * Knowing the moves of unknown pieces
-
-   * Fixed bugs
-    * Fix crash on using some Browse buttons in dialogs of the GTK
-      build.
-    * Fix buffer overflow in PGN parser, when all lines end in
-      comments.
-    * Fix crash on specifying non-existent board texture.
-    * Prevent crash on double-click in XB Game List Tags dialog.
-    * Fix the auto-display comment control in the General Options
-      dialog of WinBoard, which was ignored.
-    * Fix adjusting clocks by clicking them in Xaw build.
-    * Fix zooming of Evaluation Graph XB with mousewheel, which was
-      not working at all.
-    * Fix sticky-windows feature WB for Windows 8, where it did not
-      work at all.
-    * WinBoard's seek graph is now sized to also cover any board rim.
-    * Key bindings XB for non menu items are no longer ignored.
-    * Set castling rights correctly after loading of game file from
-      command line.
-    * Allow castling and e.p. moves to be edited into opening book
-      (and prevent their disappearance from it).
-    * The sorting of engine output was made more robust against
-      engines that send thinking output on fail lows.
-    * Fix node-count display, which was clipped to 32 bits.
-    * Suppress board-size oscillations in GTK build.
-    * Fixed detection of screen size in GTK.  (This is a mixed
-      blessing, as now it picks the largest possible window size, and
-      in GTK interactive down-sizing is not possible.)
-    * Fix mode highlighting after refusal of Two Machines mode because
-      2nd engine did not support variant.
-    * Blow up textures that are too small.
-    * Ignore invalid color specs in stead of treating them as black
-      (important because Cairo does not understand old xpm color
-      names).
-    * Prevent XB and WB from becoming unresponsive during lengthy
-      tasks such as book building.
-    * Fix slowdown of WB during loading of huge PGN files due to
-      Game-List window update.
-    * Limit width of menu bar for small board sizes in GTK build.
-    * Improve the code to kill rogue engines in XB.
-    * Drawing of pieces outside the board (in maximaized windows),
-      which left lots of debris, is now suppressed.
-    * Make WB window sizing handle multiple screens.
-    * 50-move counter is no longer reset on Chess960 castlings.
-    * Fix legality testing of A-side castling in FRC (which was
-      allowed with Rook on a- and blocker on b-file).
-    * Fixed piece ID of Falcon in Falcon Chess, which was written as
-      '.' and could not be selected on promotion.
-    * Fix cross-edge e.p. captures in Cylinder Chess (which was not
-      recognized as e.p.).
-    * Fix animation of Seirawan Chess castling + gating at Rook
-      square, which made Rook disappear.
-    * Fix adjudication of stalemates in variant Giveaway.
-    * Display of the variant tag in the Game List now works.
-    * Reset move entry (clearing target-square markers) on 'clear
-      board' in Edit Position mode.
-    * The Game List is automatically updated when you alter the tag
-      selection for the game lines.
-    * Indicate current variant in New Variant dialog of the GTK build
-      (by printing it in boldface on the button).
-
-   * Known Problems
-    * GTK: in a tiling window manager the size of the board seems to be
-      calculated incorrectly. A temporary fix for this is to use a fixed
-      size by using the "-size <N>" and "-fixedSize true" options
-      on the command line.
-
-
-** Version 4.7.3 **
-
-   (see http://www.gnu.org/software/xboard/whats_new/4.7.3/ )
-
-   bugfix release for 4.7.2
-
-   * Fix buffer overflow in parser on long PGN with scores
-   * Allow castling and e.p. capture moves to survive when editing opening book
-   * Fix node-count overflow in engine output
-   * Better sorting of fail-low lines in engine output
-   * Fix Chess960 a-side castling legality check
-   * Fix position search in Chess960
-   * Fix adjudication of Giveaway stalemates
-   * Adapt WinBoard window positioning to work with multiple screens
-   * Cure some weirdness in XBoard when dragging pieces outside the board
-   * Some dialog layout improvements to facilitate internationalization
-   * Fix crash on using some dialog Browse buttons in GTK version
-   * Connect manual menu item work in GTK version
-   * Put code for OS X integration in the GTK version
-
-** Version 4.7.2 **
-
-   (see http://www.gnu.org/software/xboard/whats_new/4.7.2/ )
-
-   bugfix release for 4.7.1
-
-   * Make PGN parser immune to unprotected time stamps
-   * Fix book creation
-   * Fix GUI book after setup position
-   * Allow drops / promotions/ deferrals to be edited into book
-   * Allow entry of negative numbers in spin control (WB)
-   * Fix grabbing of selected piece
-   * Fix initial board sizing WB
-   * Fix -zippyVariants option
-
-
-** Version 4.7.1 **
-
-   (see http://www.gnu.org/software/xboard/whats_new/4.7.1/ )
-
-   bugfix release for 4.7.0
-
-   * updated translations
-   * fixed texinfo 5.0 problems
-   * Work-around for Xt selection bug
-   * Add -backupSettingsFile option
-   * Make skipping of unknown option smarter
-   * Let popping up of WinBoard chatbox for channel open it
-   * Fix vertical sizing of GTK board
-   * Fix buffer overflow in feature parsing
-   * Accept setup command for non-standard board size
-   * Fix fatal error on unsupported board size
-   * Fix GTK box popup
-   * Let XBoard -autoBox option also affect move type-in
-   * Fix spurious popup after batch-mode Analyze Game
-   * Fix saving of analyzed game
-   * Provide compatibility with Alien Edition setup command
-   * Fix quoting of book name in tourney file
-   * Fix disappearence of pieces that were moved illegally
-   * Fix horrible bug in reading scores from PGN
-   * Print score of final position in Analyze Game
-   * Fix GTK SetInsertPos
-   * Fix scrolling of Chat Box
-   * Make Chat Box window obey -topLevel option
-   * Fix Xaw file browser
-   * Update zippy.README
-
-
-** Version 4.7.0 **
-
-   (see http://www.gnu.org/software/xboard/whats_new/4.7.0/ )
-
-   * Code refactoring of XBoard
-    * The old X11 front-end has been largely rewritten,
-      so that all windows are now created by a single
-      generic routine
-    * XBoard now uses the Cairo library for all drawing
-    * Pixmaps and bitmaps no longer supported;
-      XBoard now uses PNG and SVG images instead.
-    * An alternative (as yet experimental) front-end
-      using GTK has been added
-
-   * Interactive Analysis
-    * Excluding moves from analysis by playing them
-    * Excluded-moves header in Engine Output window
-    * Analyzing with two engines simultaneously
-    * Annotating an entire muti-game file
-    * Analysing positions by Monte-Carlo play
-
-   * Other New Functionality
-    * Displaying player logos (XB)
-    * Player logo on ICS can be based on player handle
-    * Chat boxes for XBoard
-    * Narrowing down of position searches
-    * Copying pieces when editing a position
-    * Starting WinBoard through drag & drop
-    * Recalling fully configured engines and ICS
-    * Creating an opening book from a game file
-    * Pausing a game
-    * Automatically observing partner games with dual-board
-
-   * Interface Improvements
-    * Recognizes file type of lone argument by extension
-    * Default startup settings configurable per mode
-    * Separate menu items for loading 1st and 2nd engine
-    * Engines can be selected from listboxes
-    * Grouping of engines in the installed-engines list
-    * Stay in Analyze or Game Start mode after engine loading
-    * 'Continue Later' button in WB tournament dialog
-    * A new --help option (XB)
-    * A second board window for observing ICS games (XB)
-    * Smoother graphics and a resizable board (XB)
-    * A rejuvenated file browser (XB Xaw)
-    * Scrolling listboxes with mouse wheel (XB Xaw)
-    * Tabbing through dialog etry fields (XB Xaw)
-    * Adapt width of auxilliary windows on board resize (WB)
-    * External piece bitmaps (WB)
-    * Border around the board (WB)
-    * Saving settings as themes (WB)
-
-   * Bug fixes
-    * Grayout of Analysis menu item in zippy mode
-    * Crash on flagging in -st mode
-    * Keep track of virginity in variant seirawan FENs
-    * Immunity to capitalized promo pieces
-    * Avoid board sizes with unavailabile variant pieces
-    * Work-around for FICS violation of SAN
-    * Check validity of tourney participants
-    * Loop-Chess promotions with legality testing on
-    * Fix -fSAN option in Analyze File mode
-    * Scrolling of Engine Output after PV walk (XB)
-    * Start browsing in currently-selected folder (WB)
-    * Allow entry of fractional timeIncrement (WB)
-    * Resolve conflict between -mps and -inc options
-    * Size of mini-Shogi promotion zone
-    * Adjudication of stalemate and perpetuals in Shogi
-    * Rep-draw detection in drop games
-    * Insufficient-material draws in Knightmate
-    * Replacing of engine in non-last game position
-    * Sweep selection of promo-piece in click-click move
-    * Don't save aborted games in tourney PGN
-    * Remember ponder, book and other settings in tourney file
-    * Do not erase PGN tags on engine loading
-    * Solved feature problems with engine loading in match mode
-    * Re-send option settings to -xreuse engine
-    * Allow use of 'shadow' promotion pieces in any variant
-    * WinBoard did not always start in its installation folder
-    * Initialization of 'Twice' checkbox in Tournament dialog (WB)
-    * Clearing of marker dots after mode or settings change
-    * some smaller bugfixes
-
-** Version 4.6.2 **
-   (for a more detailed list with screenshots see http://www.gnu.org/software/xboard/whats_new/4.6.2/ )
-   bugfix relase for 4.6.1
-   * Suppress clear-board message after pasting FEN
-   * Fix faking of castling rights after editing position with holdings
-   * Fix second-engine variant test
-
-** Version 4.6.1 **
-   (for a more detailed list with screenshots see http://www.gnu.org/software/xboard/whats_new/4.6.1/ )
-
-   bugfix release for 4.6.0
-
-   * Fix memory corruption bug on second-engine loading (through menu or in tournament),
-     which could destroy -firstInitString
-   * Fix bug loading a new engine through the menu (not loading it with the full game,
-     but just upto the current move)
-   * Prefix engine command with "./" when a pathname is split up during install, so the engine actually runs (XB)
-   * Fix fall-back to -ncp mode when engine does not start (cutting short the feature timeout)
-   * Fix bug in position search for FRC castlings (where a King could 'fall off' the board)
-   * Add a message to inform the user how to clear the board, in sweep-select edit-position mode
-   * Fix a bug that could stop the clock when the board window was dragged (XB)
-   * Fix switching off highlighting during game (so last highlights do not remain for the rest of the game)
-   * Allow user to enter the name of a non-existing file when browsing for a save file (WB)
-   * Make sure rarely used engine-related options (such as -firstNPS) are also correctly loaded during session
-   * Correctly handle parsing of Crazyhouse promotions with legality-testing off
-   * Fix click-click detour under-promotions, which were not working for non-captures
-   * Don't strip path from engine command if directory is explicitly given in Load Engine dialog
-   * Consistently make auxiliary windows top level-shells or not, with new -topLevel option (XB)
-   * No longer fatal if second engine does not support current variant (just refuse Two Machines mode)
-   * Scroll XBoard game list to keep selected item in view (XB)
-   * Suppress spurious error popup when starting observing of bughouse games
-   * Fix vertical axis ticks in eval graph with drop games
-   * Put title on same line as menu bar only for -size 72 and larger (with -titleInWindow, XB)
-   * Properly open and close debug file when switching debug mode through key binding Ctrl-D (XB)
-
-** Version 4.6.0 **
-
-   (see http://www.gnu.org/software/xboard/whats_new/4.6.0/ )
-
-   * Engine vs. Engine
-    * Loading and installing engines through the menu
-    * Running tournaments with more than two partipants
-    * Stopping a match between two engines
-    * Replacing a tourney participant
-    * Playing openings in color-reversed pairs
-    * Perpetual chasing in Xiangqi
-
-   * Interface Improvements
-    * Auto-Queen, and still under-promote?
-    * Piece fonts and figurine fonts
-    * Displaying PVs as SAN
-    * Small scores in the Eval Graph
-    * How close is the 50-move draw?
-    * Sign of the engine scores
-
-   * Interactive Analysis
-    * Playing moves from the PV
-    * Rapidly changing the number of PVs
-    * Setting the other side to move in analysis
-    * Annotating a game with an engine
-
-   * Other New Functionality
-    * Searching a position in a PGN file
-    * Editing the opening book
-
-   * XBoard -> WinBoard Convergence
-    * Exporting the game list (XB)
-    * A move type-in box (XB)
-    * New-style Move History window (XB)
-
-** Version 4.5.3a **
-
-   (see http://www.gnu.org/software/xboard/whats_new/4.5.3a/ )
-
-  * only changes to Winboard : build non JAW by default, fix compile errors
-
-** Version 4.5.3 **
-
-   (see http://www.gnu.org/software/xboard/whats_new/4.5.3/ )
-
-  * fixes of major bugs:
-   * In the file-browse dialog . and .. no longer mask other files if they are non-first in the directory
-   * Fix XBoard crash on showing an empty Engine Settings dialog, printing a message in stead
-   * The XBoard Game List can now handle files with more than 1900 games, by paging through them
-   * The state of the Move-History window is now remembered by XBoard even when the Engine-Output window is up
-   * Fix crash on switching sounds in WinBoard under Windows Vista
-   * Fix empty-string option values on XBoard command line (which were ignored)
-   * Fix spurious vertical scrolling in XBoard Engine-Output window on clicking in it
-   * Obey an engine's san feature when sending book moves to it
-   * Fix XBoard crash when 'filtering' made Game List empty
-   * Suppress clearing of Engine-Output window on automatic updates in analyze mode
-   * Force Move-History refresh after loading/reverting variation
-   * Fix closing brace, when joining two comments to same move
-
-  * fixes of minor bugs:
-   * Suppress playing sounds when no -soundProgram is set
-   * Fix display of last move of last match game
-   * Update window title after last game of match
-   * Never one-click move when legality testing is off
-   * Suppress playing book move when total weigth of all moves is zero
-   * Restore echo after ^C killed XBoard during ICS password
-   * Fix default of -remoteUser, which could cause crash when playing remote engines
-   * Fix recognition of separators between options in -adapterCommand command line
-   * Fix button sizing in generic popup
-   * Fix translatability of 'Spartan Chess' menu item WB
-   * Remove some duplicats from WB language template file
-   * Fix spurious 'Unfinished' sounds during ICS examining
-   * Fix bug in handling of partner command in zippy-mode bughouse games
-   * Create more space in some WB dialogs to accomodate translations
-
-  * Improvements benefitting the speaking version for the visually impaired (WB):
-   * Implement NVDA support in JAWS version
-   * Fix translation of spoken composite messages
-   * Fix JAWS reading of Engine-Settings dialog by removing group-boxes
-   * Add tab stops in WB generic popup
-   * Reorder controls in Engine-Setings dialog WB, so they are tabbed through in logical order
-
-  * fixed compiler warnings/errors and portability:
-   * Fix use of random function in XBoard shuffle dialog callback
-   * Fix inconsistent type of the variable 'shuffleOpenings'
-   * Silence warnings during rpm build
-   * Fix warnings XBoard file browser
-   * Fix some warnings and header-file improvement
-
-  * misc:
-   * Add -at and -opt options as alternative for @, as work-around for Windows shortcut bug
-   * Make occurrence of unknown option in settings file non-fatal
-   * Stale output no longer lingers in the engine-output window when a new game starts
-   * Popdown (stale) Comment window on new game
-
-** Version 4.5.2a (Winboard only)**
-
-   (see http://www.gnu.org/software/xboard/whats_new/4.5.2/ )
-
-  * Fix Engine Settings button options in WinBoard
-
-** Version 4.5.2  **
-
-   (see http://www.gnu.org/software/xboard/whats_new/4.5.2/ )
-
-  * Main new feature:
-   * Added many option dialogs and reworked some of the old ones
-
-  * bugfixes, packaging and install:
-   * Fix nps bug
-   * Fix flipBlack option XBoard with board texture
-   * Fix two bugs in reading position diagram
-   * Fix parsing bug of FRC castling
-   * Fix bugs in FRC castling rights
-   * Fix display of promotion piece in ICS superchess
-   * Fix path browsing in WinBoard
-   * Fix use of game/position file in first match game
-   * Fix build on Mac OS X
-   * install bitmaps and sounds during "make install"
-   * some minor bug fixes
-   * code cleanup (e.g. 64 bit warnings, removed malloc.h)
-
-** Version 4.5.1 **
-
-   (see http://www.gnu.org/software/xboard/whats_new/4.5.1/ )
-
- * bugfixes:
-   * Revert "Implement -reset option feature in WinBoard"
-   * Fix deselection of greyed-out variant button (WB)
-   * Put warning in HTML help
-   * Fix unmarked translation
-   * Fix Alfil bug
-   * Fix variant janus size prefix
-   * Fix Xiangqi King facing
-   * Fix showing of user move after adjudication
-   * Make language choice from menu persistent
-   * Fix ICS channel 0
-   * Fix some resource leaks
-
- * fixed packaging issues:
-   * add DIFFSTAT and SHORTLOG to tar-ball
-   * added history.c to the tar-ball. Needed for Winboard
-
- * fixed compiler warnings/errors:
-   * added missing header file for sprintf
-   * added missing #includes and missing prototypes to filebrowser
-   * Fix MSVC compilability
-   * Fix 64-bit Windows compilability
-   * Fix MSVC snprintf problem
-
- * fixed configure problems:
-   * fixed configure script to correctly detect Xaw3d library
-   * updated configure.ac to check for Xaw header files
-
- * misc:
-   * Fix two typos in option names in texi file
-
-
-** Version 4.5.0 **
-
-   (see http://www.gnu.org/software/xboard/whats_new/4.5.0/ for more details)
-
-    General
-    -------
-    * User specific settings files
-    * More logical (and standard) menu structure
-    * Translation into other languages (WB)
-    * Walking the PV of an engine
-    * Exploring variations
-    * Playing through PGN variations
-    * Annotating a game with analysis results
-    * Editing Comments
-    * Controlling move choice of the GUI book
-    * Keeping the clock in sync in tournaments
-    * Starting an engine match from the menu
-    * Fixed thinking time per move
-    * Improved multi-PV support
-    * Where your pieces can move to
-    * Editing crazyhouse holdings
-    * Thai Chess (Makruk) and Seirawan Chess
-    * Non-compliant FEN and SAN input
-    * Improved Xiangqi adjudications
-    * Allowing engines to setup a position
-
-    Merging XBoard & WinBoard
-    ------------------------------
-    * Evaluation graph (XB)
-    * Settings file (XB)
-    * Filtering the game list (XB)
-    * Game-List options dialog (XB)
-    * Recalling the ICS input history (XB)
-    * Aribtrary board textures (XB)
-    * Highlight arrow (XB)
-
-    ICS-client Enhancements
-    -----------------------
-    * Maintaining a healty ICS connection
-    * Claiming a draw after your move
-    * ICS seek graph
-    * One-click moving
-    * Observing your bughouse partner
-    * Improved Chat-Box interface (WB)
-    * Uploading games to an ICS
-    * Side-by-side boards
-
-
-** Version 4.4.4 **
-
- * Repair exit-popup deadlock patch
- * Fix bug in sending "usermove" when forcing book moves
- * Let move parser return ImpossibleMove for off-board moves
- * Prevent engine stall on perpetual-chase evasion
- * Pop down old tags on loadng new game in WinBoard
- * Fix game end during dragging
- * Repair animate dragging
- * Fix bug in sending cores command to engine
- * Fix parsing of SAN shogi promotions
- * Fix variant switch on PGN loading
- * Allow -flipBlack to work with font-based piece rendering
- * Allow font-based piece rendering in board sizes below petite
- * Fix WinBoard game-list title
- * Fix deadlock in match-result display
- * Fix regression in colorization of zippy-matched commands
- * Fix zippy handling of draw offers from ICS
- * Make some more zippy code obey the --disable-zippy flag
- * Remove unnecessary double equals from configure.ac.
- * Cut board squares out of texture bitmap more cleverly
-
-** Version 4.4.3 **
-
- * Add variant Makruk
- * Implement castling for variant CRC
- * Extensive bugfix of -autoKibitz
- * Accept <Enter> for changing chat partner
- * Change opening array -variant fairy
- * Send continuation lines to chat box they belong to
- * Use -keepAlive option to determine connection health
- * Fix of ancient WinBoard bug: check value of int options
- * Fix bug for incommensurate time odds
- * Fix piece-to-char table -variant fairy
- * Fix TwoKings ICS castling-rights bug
- * Fix reading castling rights FEN in knightmate and twokings
- * Fix OO-castling in FRC after pasting FEN
- * Fix bug in display of logos
- * Fix highlighting bug in XBoard
- * Match handles with multiple titles for channel Chat Boxes
- * Make WinBoard makefiles use parser.c in XBoard directory
- * Added missing sounds files to be able to compile on windows
- * Added logo files for xboard
- * Bugfix stale first-click
- * Fix copying of WB Chat Window contents
- * Fix XB crash on giving keyboard focus to non-text widget
- * Bugfix copying from Chat Box, own lines
- * Fix 'mamer bug' in Chat Boxes
- * Fix copying of kibitzed lines from WB Engine-Output window
- * Do not recognize non-ICS variants from PGN event tag
- * Remake programVersion string after receiving engine features
- * Set keyboard focus at startup to board window
- * Fix window-position upset on failing engine start in WinBoard
- * Allow lower-case promochar in moves of type h8=Q
- * Small bugfixed for JAWS version
- * Small bugfixes
-
-** Version 4.4.2 **
-
- * add Winboard source files into tar-ball
- * remove trailing \r in xboard output
- * double buffer size to prevent overflow
- * fix problem with empty string in -firstNeedsNoncompliantFEN
- * updates makefiles to include dependency on config.h
- * correctly apply some check boxes from the option menu
- * score sign in analysis mode
- * fix for bug #28077: xboard needs to link against x11
- * fix castling rights when copying FEN to clipboard (again)
- * fixed some outstanding pixmaps
- * fix the irritating wandering off of the MoveHistory window in XBoard on opening/closing.
- * use xtell for talking to handles, but tell for talking into a channel.
- * fix bug in bughouse drop menu
- * removing some rather verbose debug messages that seem no longer needed.
- * fix engine-sync on move-number type-in bug
- * fix declaration of engineOutputDialogUp
- * fix double start of zippy engine after switch to gothic
- * the last move before the time control now gets its time listed in the PGN
- * fix casting rights after FEN pasting
- * fix crash on engine crash
- * fixed build on openbsd
- * cleaned up some debug messages and typos
- * removed files that should only be in the windboard directory
- * added missing library for build on OS X
-
-** Version 4.4.1 **
-
- * added chat windows to keep track of multiple conversations (WinBoard only)
- * allow the result comment as a display item in the game list
- * added a "Mute All Sounds" item in the WinBoard Options menu
- * new -forceIllegalMoves option
- * new -keepAlive option (for ICS play)
- * ported -autoDisplayComment and -autoDisplayTags to xboard, controling popups
- * replaces analysispopup with engineoutputpopup in xboard
- * allow copy/paste position and game to use clipboard (xboard)
- * updated several bitmaps (xboard)
- * Made the beep sounds for JAWS board navigation configurable
-   through command-line options
- * added the result comment to the game-list tags when the game
-   list is exported to the clipboard
- * updated RTF docs
- * fixed premove problem
- * fixed engine did not start playing when out of GUI book on second
-   move with white
- * fix bug using opening books (file were not closed)
- * fixed crash when opening Engine #1 Settings when there were no
-   text-edit options in the dialog
- * fixed loading of games from command lines, fixes cmail bug
- * fix joining lines split by ICS and resizing terminal window when using ICS
-   (new option -keepLineBreaksICS, -wrapContinuationSequence, -useInternalWrap)
- * fixed -autoDisplayComment
- * fixed wrong default value for engineDebugOutput in xboard
- * swapped 'tell' and 'message' parsing order for correct colorization.
- * fixed parse bug for pgn files
- * fix for edit-position "moves" being sent by XBoard to the engine
- * bugfix for protocol extensions: egtbpath -> egtpath
- * fix bug in parser
- * further bugfixes:  #8847, #10990, #27427, #27642,
-   #27666, #27667, #27668, #27715, #27751, #27760,
-   #27772, #27799, #27826 and several small ones
- * use "make distcheck" to generate tar-balls
- * prepared a system to internationalize winboard menus
- * improved mouse handler
- * rewrote wevalgraph for better frontend/backend separation
- * code cleanup
-
-** Version 4.4.0 **
-
-A new release of both XBoard and WinBoard is now available.  Version
-4.4.0 includes many changes. It is the first major release of
-xboard/winboard after a fork of the project after version 4.2.7. It
-includes small changes made in the main line and changes made by a
-fork of Alessandro Scotti and lots of changes made afterwards by
-H.G. Muller (released as versions 4.3.x). This release represents a
-unified version of all changes made after the fork. It includes many
-new features and bugfixes.
-
-You can get both XBoard and WinBoard from the Savannah
-project pages:
-
-https://savannah.gnu.org/projects/xboard/
-
-If you find a bug, please report it in the bug tracker at
-https://savannah.gnu.org/projects/xboard/ or by email to bug-xboard
-(AT) gnu.org.
-
-
-** Version 4.3.16 **
-
-New command-line options
-/niceEngines=N       for adjusting the priority of engine processes so they don't soak up all your system resources
-/firstOptions="..."   Allows the setting of options that engines define through the feature option="..." commands
-/secondOptions="..."
-/firstLogo=filename.bmp  Displays the mentioned bitmap next to the clock (with H:W =1:2 aspect ratio) (WB only)
-/secondLogo=filename.bmp
-/autoLogo=false          get logo files automatically from engineDirectory\logo.bmp
-
-General enhancements:
-* New WB-protocol command: 'feature option="NAME -TYPE VALUE OTHER"', which engines can use to define options
-* New WB-protocol command: 'option NAME VALUE' used to set value of engine-defned options.
-* implements /delayAfterQuit and /delayBeforeQuit in XBoard, and uses SIGKILL to terminate rogue engine processes
-
-
-** Version 4.3.15 **
-
-New command-line options
-/rewindIndex=N (for the new auto-increment mode of the loadGameIndex or loadPositionIndex in match mode)
-/sameColorGames=N (for playing a match where the same player has white all the time)
-/egtFormats="..." (for specifying where various end-game tables are installed on the computer)
-
-New menu items
-+ Time-odds factors can be set in the time-control dialog
-+ Nr of CPUs for SMP engines can be set in the Options -> UCI dialog
-+ Own-Book options can be switched from the Options -> UCI dialog
-+ The ScoreIsAbs options can be set from the Options -> Engine dialog
-+ New-Variant menu adds Superchess
-
-General Enhancements:
-* WinBoard engines can now also use the Polyglot opening book (implemented as general GUI book)
-* New WB-protocol commands memory, cores and egtpath make interactive setting of these parameters
-  possible on WB engines
-* New Polyglot is available that relays the interactive setting of these parameters to UCI engines
-* Match mode suports an auto-increment mode, so that all games or positions from a file can be played
-* Draw claims with Kings and an arbitrary number of like Bishops (e.g. KBBKB) are accepted
-
-The source tree in original xboard 4.2.7 format can now be compiled under Cygwin with the aid
-of the cygwin.mak file in the ~/winboard/ subdirectory of the source releasy, after you put
-the hep-file from an executabl distribution there. Maefiles for other compilers are not updated
-since 4.2.7, as I do not have those compilers.
-
-
-** Version 4.3.14 **
-
-This relaese was not made by the GNU xboard team, but by H.G.Muller.
-It mainly contains developments on WinBoard. Nevertheless, an attempt
-has been started to back-port the enormous number of improvements that
-have been made to WinBoard since the Linux and Windows developments branched
-to xboard. This is reflected by the source tree now having the same format
-as that of xboard 4.2.7, including all the xboard sources.
-
-An enormous amount of work still has to be done to make the xboard version
-fully equivalent to WinBoard, especially on user-interface side. As a modest
-beginning, the xboard source files have been patched to allow their compilation
-with the newer back-end files from WinBoard. To this end, the number of piece
-types in xboard has been increased from 6 to 22, and the WinBoard bitmaps
-have been converted to xboard source format (.bm) and are included in the
-xboard bitmaps directory. Other quick patches include the coloring of the
-board squares (for xiangqi and holdings), and some code in the user-move
-handling to suppress all moves into or out of the area between board and
-holdings in crazyhouse, and the treatment of king-captures-own-piece
-as a possibly valid move (for FRC castling). This should make it possible
-to run xboard with the new back-end files without too much inconvenience.
-
-New xboard command-line options have been added to make the added back-end
-features available. The include the new variants (as argument of the old
--variant option), -boardWidth, -boardHeight and -holdingsSize. Be sure
-to call xboard with "-boardSize middling" or "-boardSize bulky" if you
-want to play with fairy pieces, or xboard might crash due to unavailability
-of bitmaps. Other added xboard options are:
-
-ADJUDICATION OPTIONS:
--checkMates
--testClaims
--materialDraws
--trivialDraws
--ruleMoves
--repeatsToDraw
--adjudicateLossThreshold
--firstScoreAbsolute
--secondScoreAbsolute
-
-TIME-CONTROL OPTIONS
--firstTimeOdds
--secondTimeOdds
--timeOddsMode
--firstNPS
--secondNPS
-
-GENERAL OPTIONS
--matchPause
--engineDebugOutput
--userName
--pgnExtendedInfo
--pgnEventHeader
--hideThinkingFromHuman
-
-This is all completely untested, but as the options merely switch on well-tested
-code in the back-end, there should not be too many problems with them.
-Bugs can be reported in the WinBoard forum.
-
-
-** Version 4.3.14k **
-
-Compared to version 4.3.13 described below, this version features
-
-New command-line options:
-/autoKibitz (for relaying the PV info of the engine to the ICS)
-/userName="..." (for setting the name of the Human player, also as menu)
-/engineDebugOutput=N (controlling the writing of engine output to debug file)
-/firstNPS=N (for time management by node count or CPU time)
-/secondNPS=N (likewise for the other engine)
-
-New Menu items
-+ Enter Username (same as /userName command-line option)
-+ Save Diagram (for saving the Chessboard display as bitmap file)
-+ Machine Both (not implemented yet, but menu item already provided)
-+ New-Variant menu adds CRC, Janus and Berolina (the latter only with legality testing off!)
-+ Any variant can be played from a shuffled opening setup
-
-Bugfixes:
-* Problems with switching the variant in ICS zippy mode solved
-* In ICS observing mode game history is now fully accessible
-* Moves are not fed to engine in zippy mode, when observing a game from a variant unknown to the engine
-* a problem with loading PGN of FRC games with move disambiguation and initial castling rights was fixed.
-* A bug in the clock display that made previous versions of WinBoard crash for tiny displays is fixed
-
-General enhancements:
-* variant name displayed in title bar in ICS mode, when not 'normal'
-* when receiving a challenge in ICS zippy mode, it is checked if the engine supports the variant (/zippyVariants="..." can still be used to limit the allowed variants, and for protocol-1 engines is still the only thing to go on)
-* when loading a game from a PGN file, WB automatically switches to the variant specified in the PGN tags
-* when starting from a loaded position (using /loadPositionFile), this position will be used on subsequent 'New Game' commands as well (until we switch variant)
-
-New is also that the source tree is now brought back in the original WinBoard 4.2.7 format, including
-xboard source files. Note, however, that the xboard sources are from an older date, and I did not test
-if they still compile together with the much newer backend sources. I did add code in xboard.c to recognize
-the new command-line options I added since then, and in so far they are back-end options that should be enough
-to make them work. This is completely untested, though; I did not even try to compile it. Last time anyone
-built a working xboard.exe from this was at a stage where WinBoard did have adjustable board size, allowing
-it to play Xiangqi. But no crazyhouse holdings yet.
-
-
-** Version 4.3.13a **
-
-This version of WinBoard_F fixes several bugs in 4.3.12, and also addse a few new features.
-The new features include:
-- some more fairy pieces, so that each side now has 22 piece types in stead of 17,
-making most fairy pieces available in board size "petite" (next to "bulky" and "middling"),
-making the ArchBishop and Chancellor, as well as one wildcard piece (the Lance) available in all
-sizes from "petite" to "bulky".
-- The FRC support is fully fixed, both in local and ICS mode.
-- A mechanism is provided for safe draw claiming in cases where a 3-fold repetition woud occur only
-  after your own move. In this case a draw will be awarded by WinBoard if the engine sends "offer draw"
-  before making its move.
-- Genuine draw offers are not passed on immediately to the opponent but held up to when the offerer announces
-  its move.
-- Variants FRC, Cylinder and Falcon are added to the "New Variant..." menu.
-- Support for playing time-odds games is added. (Options /firstTimeOdds, /secondTimeOdds, /timeOddsMode)
-- A mechanism is provided for attaching WinBoard options to the engine command, to create options that
-follow the engine (e.g. time odds) in a tournament run under a tournament manager.
-Bugfixes include:
-- Shatranj in ICS mode (did not work at all before)
-- Some draw adjudications (QRKR was mistaken for KRKR, and KBKB with like Bishops is now recognized)
-- time info in the PGN is now correct
-
-** Winboard_F.4.3.12 release notes
-
-This WinBoard (beta-)version is derived from Allessandro Scotti's
-Winboard_x, and supports the following new options, mainly in the area
-of adjudication of engine-engine games, improved Crazyhouse support,
-and allowing variants with non-conventional pieces and or board
-sizes. (All option are shown here with their default values):
-
-/variant=normal
-This (already existing) option has been expanded with
-several new variants, involving non-conventional pieces and deviating
-board sizes. The board size is automatically adapted to the selected
-variant, unless explicitly overruled (see below). The new variants are
-(with default board size, files x ranks, in parentheses):
-
-variant name    Game           board     description
-knightmate    Knightmate        (8x8)  Variant where the King moves as a Knight, and vice versa
-capablanca    Capablanca Chess (10x8)  Variant featuring Archbishop and Chancellor as new pieces
-gothic        Gothic Chess     (10x8)  Same as Capablanca, with a more interesting opening position
-courier       Courier Chess    (12x8)  a Medieval form that combines elements of Shatranj and modern Chess
-shogi         Shogi             (9x9)  Japanese Chess
-xiangqi       Xiangqi          (9x10)  Chinese Chess
-fairy         Fairy Chess       (8x8)  Variant were you can use all pieces of other variants together
-
-The variant can be set from the newly added "File -> New Variant..."
-sub-menu.  Extra board files are indicated by the letters i, j, k, l,
-... For boards with more than 9 ranks, the counting starts at zero!
-More than 10 ranks is not tested and unlikely to work in the area of
-PGN saving / reading. Non-FIDE pieces will be referred to in FENs and
-PGN by letters that depend on the variant, and might collide with
-piece designators in other variants. E.g. in Xiangqi 'C' is a Cannon,
-in Capablanca Chess it is a Chancellor. Pieces that do not belong in a
-variant cannot be addressed in FEN and PGN either, for as long as that
-variant is selected, unless the letter assignment is overruled with
-the aid of the /pieceToCharTable option. The variant is not saved in
-the winboard.ini file; on start-up we always get variant "normal"
-unless we use the command-line option, or have added the option to the
-winboard.ini file manually (in which case it will disappear when this
-file is overwritten by WinBoard saving its options).  WinBoard_F knows
-the movement of all pieces occurring in Capablanca Chess (of which
-FIDE Chess is a subset), Shatranj, Courier, Xiangqi and 9x9 Shogi, so
-that these games can be played with legality testing enabled.
-
-/pieceToCharTable="PNBRQFWEMOUHACGSKpnbrqfwemouhacgsk"
-Each piece that WinBoard knows (in its legality test) has a letter
-associated with it, by which it will be referred to in FEN or PGN. The
-default assignment can be overruled with this option. The value has to
-be a string of even length, with at least 12 characters. The first
-half of the string designates the white pieces, the second half the
-black.  The last letter for each color will be assigned to the
-King. (This is the piece that moves as an orthodox King; note that
-Nightmate and Xiangqi have a different royal piece.) All letters
-before it will be assigned to the other pieces in the order:
-
-P Pawn                 (move often depends on variant)
-N Knight               (move subtly different in Xiangqi (where it is written as H) or Shogi)
-B Bishop
-R Rook
-Q Queen                (Lance L in Shogi)
-F Ferz/General         (The Shatranj 'Queen' and Xiangqi 'Adviser', used for Silver General S in Shogi.)
-W Wazir/GrandVizer     (Gold General G in Shogi, in Xiangqi it is royal and denoted by K)
-E Alfil/Elephant       (Moves subtly different in Xiangqi vs Shatranj/Courier)
-M Commoner/Man
-O Cannon/Pao
-U Unicorn              (representation of Royal Knight in Knightmate, used as promoted Pawn in Shogi)
-H Nightrider           (Promoted Knight in Shogi and CrazyHouse)
-A Archbishop/Cardinal  (Promoted Bishop in Shogi and CrazyHouse)
-C Chancellor/Marshall  (Promoted Rook   in Shogi and CrazyHouse)
-G Grasshopper          (Promoted Queen in Crazyhouse, promoted Lance in Shogi)
-S                      (Promoted Silver in Shogi)
-K King
-
-Pieces that are not mentioned (because the argument has less than 34
-characters) will remain disabled. Mentioned pieces can be disabled by
-assigning them a '.' (period). They are then not recognized in FEN or
-PGN input. Non-FIDE pieces that are not assigned a letter will also
-not appear on the promotion menu. It is not advisable to disable a
-piece that is present in the opening position of the selected variant,
-though.
-Promoted pieces that need to be distinguished from original pieces of
-the same type (because of demotion on capture and transfer to the
-holdings) will be indicated by the letter for the unpromoted piece
-with a '+' in front of it (Shogi), or by the letter of the promoted
-piece with a '~' after it (Crazyhouse, Bughouse, in general everything
-with holdings that is not Shogi). To achieve this, they should be
-assigned the characters '+' or '~', respectively.
-All the new pieces have a native bitmap representation in the board
-sizes 'bulky' and 'middling'. For all window sizes that do not support
-such fairy bitmaps, promoted NBRQ are represented as a 2-sizes-smaller
-normal piece symbol, so that Crazyhouse can be played at any
-size. People disliking the fairy representations might even prefer
-this.
-There is an enhanced 'Edit Position' menu popup (right-clicking on the
-squares after selecting this mode in the main menu), featuring some
-common non-FIDE pieces, and 'promote' and 'demote' options to make
-those not directly in the menu. The promotion popup shows ArchBishop
-and Chancellor in Capablanca and Gothic, (or in fact in any game where
-this piece is not disabled or a promoted version of a normal piece),
-and leaves only the options YES / NO in Shogi. In Xiangqi there are no
-promotions.
-
-/fontPieceToCharTable="PNBRQFWEMOUHACGSKpnbrqfwemouhacgsk"
-This option is similar to /pieceToCharTable, but sets the font
-character that is used to display the piece on the screen (when
-font-based rendering is in use), rather than in the FEN or PGN. The
-default setting should work with George Tsavdaris' WinboardF font,
-which uses the 'intuitive' mapping of font characters to symbols. With
-font-based rendering the fairy pieces can be used at any board size.
-Note that UHACGS are also used to represent the promoted versions of
-PNBRQF, in games like Crazyhouse and Shogi, where the promotion has to
-be undone on capture. In such games you are likely to prefer a
-different representation of those pieces then when they represent true
-fairy pieces.
-
-/flipBlack=FALSE
-Traditional Shogi bitmaps are only included for size "moderate". For
-other sizes you must depend on font-based rendering.
-
-/detectMate=TRUE
-/testClaim=TRUE
-/materialDraws=TRUE
-/trivialDraws=FALSE
-/ruleMoves=51
-/repeatsToDraw=6
-The option /materialDraws=TRUE causes games with insufficient mating
-material to be adjudicated immediately as draws, in case the engines
-would not claim these draws. This applies to KK, KNK and KBK.  The
-option /trivialDraws adjudicates KNNK, KBKB, KNKN, KBKN, KRKR and KQKQ
-to draws after 3 moves (to allow for a quick tactical win). Note that
-in KQKQ this might not be sound, but that problem would disappear once
-bitbase probing is implemented.
-
-Clocks
-The flag-fell condition is now indicated as '(!)' behind the displayed
-time, to eliminate the necessity for overwriting the message in the
-title bar (which might contain indispensible information in match
-mode).
-
-Other improvements / changes
-Castling rights and e.p. rights are now fully maintained, and
-considered in legality testing. They are imported from and written to
-FEN, as is the 50-move counter. (When reading an incomplete FEN they
-are still guessed, though.)  The time (in sec, or min:sec) is now
-always stored together with the PV information to the PGN, if storing
-the latter was requested (through ticking "extended PGN info" in
-"Options -> General..."). The saved time is the WinBoard clock time
-(as opposed to the time reported by the engine).
-
-** Winboard_F.4.3.8 release notes
-
-This Winboard supports the following new options (shown here with their default values):
-
-/variant=normal
-This (already existing) option has been expanded with several new
-variants, involving non-conventional pieces and deviating board
-sizes. The board size is automatically adapted to the selected
-variant, unless explicitly overruled (see below). The new variants are
-(with default board size, files x ranks, in parentheses):
-
-variant name    Game           board     description
-knightmate    Knightmate        (8x8)  Variant where the King moves as a Knight, and vice versa
-capablanca    Capablanca Chess (10x8)  Variant featuring Archbishop and Chancellor as new pieces
-gothic        Gothic Chess     (10x8)  Same as Capablanca, with a more interesting opening position
-courier       Courier Chess    (12x8)  a Medieval form that combines elements of Shatranj and modern Chess
-shogi         Shogi             (9x9)  Japanese Chess
-xiangqi       Xiangqi          (9x10)  Chinese Chess
-fairy         Fairy Chess       (8x8)  Variant were you can use all pieces of other variants together
-
-The variant can be set from the newly added "File -> New Variant..." sub-menu.
-Extra board files are indicated by the letters i, j, k, l, ... For
-boards with more than 9 ranks, the counting starts at zero! Non-FIDE
-pieces will be referred to in FENs and PGN by letters that depend on
-the variant, and might collide with piece designators in other
-variants. E.g. in Xiangqi 'C' is a Cannon, in Capablanca Chess it is a
-Chancellor. Pieces that do not belong in a variant cannot be addressed
-in FEN and PGN either as long as that variant is selected, unless the
-letter assignment is overruled by the /pieceToCharTable option. The
-variant is not saved in the winboard.ini file; on start-up we always
-get variant "normal" unless we use the command-line opton, or have
-added the option to the winboard.ini file manually (in which case it
-will disappear when this file is overwritten).  WinBoard_F knows the
-movement of all pieces occurring in Capablanca Chess (of which FIDE
-Chess is a subset), Shatranj, Courier, Xiangqi and 9x9 Shogi, so that
-these games can be played with legality testing enabled.
-
-/pieceToCharTable="PNBRQFWEMOUHACGSKpnbrqfwemouhacgsk"
-Each piece that WinBoard knows (in its legality test) has a letter
-associated with it, by which it will be referred to in FEN or PGN. The
-default assignment can be overruled with this option. The value has to
-be a string of even length, with at least 12 characters. The first
-half of the string designates the white pieces, the second half the
-black.  The last letter for each color will be assigned to the
-King. (This is the piece that moves as an orthodox King; note that
-Nightmate and Xiangqi have a different royal piece.) All letters
-before it will be assigned to the other pieces in the order:
-
-P Pawn                 (move often depends on variant)
-N Knight               (move subtly different in Xiangqi (where it is written as H) or Shogi)
-B Bishop
-R Rook
-Q Queen                (Lance L in Shogi)
-F Ferz/General         (Silver General S in Shogi)
-W Wazir/GrandVizer     (Gold General G in Shogi, in Xiangqi it is royal and denoted by K)
-E Alfil/Elephant       (Moves subtly different in Xiangqi vs Shatranj/Courier)
-M Commoner/Man
-O Cannon/Pao
-U Unicorn              (representation of Royal Knight in Knightmate, used as promoted Pawn in Shogi)
-H Nightrider           (Promoted Knight in Shogi and CrazyHouse)
-A Archbishop/Cardinal  (Promoted Bishop in Shogi and CrazyHouse)
-C Chancellor/Marshall  (Promoted Rook   in Shogi and CrazyHouse)
-G Grasshopper          (Promoted Queen in Crazyhouse, promoted Lance in Shogi)
-S                      (Promoted Silver in Shogi)
-K King
-
-Pieces that are not mentioned (because the argument has less than 34
-characters) will remain disabled. Mentioned pieces can be disabled by
-assigning them a '.' (period). They are then not recognized in FEN or
-PGN input. It is not advisable to disable a piece that is present in
-the opening position of the selected variant, though.
-Promoted pieces that need to be distinguished from original pieces of
-the same type (because of demotion on capture and transfer to the
-holdings) will be indicated by the letter for the unpromoted piece
-with a '+' in front of it (Shogi), or by the letter of the promoted
-piece with a '~' after it (Crazyhouse, Bughouse, in general everything
-with holdings that is not Shogi).
-All the new pieces have a native biytmap representation in the board
-sizes 'bulky' and 'middling'. For all window sizes that do not support
-such fairy bitmaps, promoted NBRQ are represented as a 2-sizes-smaller
-normal piece symbol, so that Crazyhouse can be played at any
-size. People disliking the fairy representations might even prefer
-that.
-There is an enhanced 'Edit Position' menu popup (right-clicking on the
-squares after selecting this mode in the main menu), featuring some
-common non-FIDE pieces, and 'promote' and 'demote' options to make
-those not directly in the menu. The promotion popup shows ArchBishop
-and Chancellor in Capablanca and Gothic, (or in fact in any game where
-this piece is not disabled), and leaves only the options YES / NO in
-Shogi. In Xiangqi there are no promotions.
-
-/alphaRank=FALSE
-This option does not seem to work for reading PGN files. Saving works
-fine. For now, using it is not recommended. In the future it might be
-redefined as only affecting engine-engine communication, .
-
-/flipBlack=FALSE
-Setting this option will cause upside-down display of the native piece
-bitmaps used to represent the pieces of the side that plays black, as
-would be needed for a traditional representation of Shogi pieces. It
-can be set from the "Options -> Board..." sub-menu, and it is saved in
-the winboard.ini file. For now, traditional Shogi bitmaps are not
-included, though.
-
-Other improvements / changes
-Castling rights and e.p. rights are now fully maintained, and
-considered in legality testing. They are imported from and written to
-FEN, as is the 50-move counter. The time (in sec, or min:sec) is now
-always stored together with the PV information to the PGN, if storing
-the latter was requested (through ticking 'extended PGN info' in
-"Options -> General..."). The saved time is the Winboard clock time
-(as opposed to the time reported by the engine).
-
-** Winboard_F.4.3.7 release notes
-
-This Winboard supports the following new options (shown here with
-their default values):
-
-/variant=normal
-This (already existing) option has been expanded with several new
-variants, involving non-conventional pieces and deviating board
-sizes. The board size is automatically adapted to the selected
-variant, unless explicitly overruled (see below). The new variants are
-(with default board size, files x ranks, in parentheses):
-
-variant name    Game           board     description
-knightmate    Knightmate        (8x8)  Variant where the King moves as a Knight, and vice versa
-capablanca    Capablanca Chess (10x8)  Variant featuring Archbishop and Chancellor as new pieces
-gothic        Gothic Chess     (10x8)  Same as Capablanca, with a more interesting opening position
-courier       Courier Chess    (12x8)  a Medieval form that combines elements of Shatranj and modern Chess
-shogi         Shogi             (9x9)  Japanese Chess
-xiangqi       Xiangqi          (9x10)  Chinese Chess
-fairy         Fairy Chess       (8x8)  Variant were you can use all pieces of other variants together
-
-The variant can be set from the newly added "File -> New Variant..." sub-menu.
-Extra board files are indicated by the letters i, j, k, l, ... For
-boards with more than 9 ranks, the counting starts at zero! Non-FIDE
-pieces will be referred to in FENs and PGN by letters that depend on
-the variant, and might collide with piece designators in other
-variants. E.g. in Xiangqi 'C' is a Cannon, in Capablanca Chess it is a
-Chancellor. Pieces that do not belong in a variant cannot be addressed
-in FEN and PGN either as long as that variant is selected, unless the
-letter assignment is overruled by the /pieceToCharTable option. The
-variant is not saved in the winboard.ini file; on start-up we always
-get variant "normal" unless we use the command-line opton, or have
-added the option to the winboard.ini file manually (in which case it
-will disappear when this file is overwritten).  WinBoard_F knows the
-movement of all pieces occurring in Capablanca Chess (of which FIDE
-Chess is a subset), Shatranj, Courier, Xiangqi and 9x9 Shogi, so that
-these games can be played with legality testing enabled.
-
-/pieceToCharTable="PNBRQFWEMOUHACGSKpnbrqfwemouhacgsk"
-Each piece that WinBoard knows (in its legality test) has a letter
-associated with it, by which it will be referred to in FEN or PGN. The
-default assignment can be overruled with this option. The value has to
-be a string of even length, with at least 12 characters. The first
-half of the string designates the white pieces, the second half the
-black.  The last letter for each color will be assigned to the
-King. (This is the piece that moves as an orthodox King; note that
-Nightmate and Xiangqi have a different royal piece.) All letters
-before it will be assigned to the other pieces in the order:
-
-P Pawn                 (move often depends on variant)
-N Knight               (move subtly different in Xiangqi (where it is written as H) or Shogi)
-B Bishop
-R Rook
-Q Queen                (Lance L in Shogi)
-F Ferz/General         (Silver General S in Shogi)
-W Wazir/GrandVizer     (Gold General G in Shogi, in Xiangqi it is royal and denoted by K)
-E Alfil/Elephant       (Moves subtly different in Xiangqi vs Shatranj/Courier)
-M Commoner/Man
-O Cannon/Pao
-U Unicorn              (representation of Royal Knight in Knightmate, used as promoted Pawn in Shogi)
-H Nightrider           (Promoted Knight in Shogi and CrazyHouse)
-A Archbishop/Cardinal  (Promoted Bishop in Shogi and CrazyHouse)
-C Chancellor/Marshall  (Promoted Rook   in Shogi and CrazyHouse)
-G Grasshopper          (Promoted Queen in Crazyhouse, promoted Lance in Shogi)
-S                      (Promoted Silver in Shogi)
-K King
-
-Pieces that are not mentioned (because the argument has less than 34
-characters) will remain disabled. Mentioned pieces can be disabled by
-assigning them a '.' (period). They are then not recognized in FEN or
-PGN input. It is not advisable to disable a piece that is present in
-the opening position of the selected variant, though.
-Promoted pieces that need to be distinguished from original pieces of
-the same type (because of demotion on capture and transfer to the
-holdings) will be indicated by the letter for the unpromoted piece
-with a '+' in front of it (Shogi), or by the letter of the promoted
-piece with a '~' after it (Crazyhouse, Bughouse, in general everything
-with holdings that is not Shogi).
-All the new pieces have a native biytmap representation in the board
-sizes 'bulky' and 'middling'. For all window sizes that do not support
-such fairy bitmaps, promoted NBRQ are represented as a 2-sizes-smaller
-normal piece symbol, so that Crazyhouse can be played at any
-size. People disliking the fairy representations might even prefer
-that.
-There is an enhanced 'Edit Position' menu popup (right-clicking on the
-squares after selecting this mode in the main menu), featuring some
-common non-FIDE pieces, and 'promote' and 'demote' options to make
-those not directly in the menu. The promotion popup shows ArchBishop
-and Chancellor in Capablanca and Gothic, (or in fact in any game where
-this piece is not disabled), and leaves only the options YES / NO in
-Shogi. In Xiangqi there are no promotions.
-
-/fontPieceToCharTable="PNBRQFWEMOUHACGSKpnbrqfwemouhacgsk"
-This option is similar to /pieceToCharTable, but sets the font
-character that is used to display the piece on the screen (when
-font-based rendering is in use), rather than in the FEN or PGN. The
-default setting should work with the WinboardF font, which uses the
-'intuitive' mapping of font characters to symbols.  Note that UHACGS
-are also used to represent the promoted versions of PNBRQF, in games
-like Crazyhouse and Shogi, where the promotion has to be undone on
-capture.
-
-/boardWidth=-1 /boardHeight=-1
-Set a number of files and ranks of the playing board to a value that
-will override the defaults for the variant that is selected. A value
-of -1 means the variant default board size will be used for the
-corresponding parameter (and is itself the default value of these
-options). These parameters can be set in the "Files -> New Variant..."
-sub-menu, where they are reset to the default -1 is you OK the chosen
-variant without typing something to overrule it. These parameters are
-saved in the winboard.ini file. (But unless you saved while a variant
-with board-size override was selected, they will always be saved as
--1.)
-A variant with a non-standard board size will be communicated to the
-engine(s) with the board size prefixed to the variant name,
-e.g. "variant 12x8_capablanca". In protocol 2 the engine must first
-enable this feature by sending "boardsizeFxR" amongst the accepted
-variants, where F is the maximum number of files, and R the maximum
-number of ranks, as decimal numbers.
-
-/holdingsSize=-1
-Set the size of the holdings for dropable pieces to a value that will
-override the default for the variant that is selected. A value of -1
-means the variant default holdings size will be used for that
-parameter (and is itself the default value of this options). This
-parameter can be set in the Files -> New Variant... sub-menu, where it
-is reset to the default -1 is you OK the chosen variant without typing
-something to overrule it. This parameters is saved in the winboard.ini
-file.  To disable holdings, set their size to 0. They will then not be
-displayed. For non-zero holding size N, the holdings are displayed
-left and right of the board, and piece drops can be effected by
-dragging pieces from the holdings to the drop square. In bughouse, the
-holdings will be filled by the ICS. In all other variants, captured
-pieces will go into the holdings (after reversing their color). Only
-the first N pieces of the /pieceToCharTable argument will go into the
-holdings. All other pieces will be converted to Pawns. (In Shogi,
-however they will be demoted in the regular way before determining if
-they fit.) Pieces that are disabled (per default and per
-/pieceToCharTable option) might not be counted when determining what
-are the first N pieces.  Non-standard holdingsize will be communicated
-to the engine by prefixing it (together with the board size, even if
-this is standard) to the variant name, e.g. "variant 7x7+5_shogi". In
-protocol 2 the engine should enable this feature by sending
-"holdingsH" amongst the variant names, where H is the maximum
-acceptable holdings size as a decimal number.
-
-/alphaRank=FALSE
-When this parameter is true, a-h are converted to 1-9, and vice versa,
-in all move output and input (to PGN files or SAN move display as well
-as in communication with the engine). This might be useful for Shogi,
-where conventionally one uses letters to designate ranks, and digits
-to designate files. Engines that want to use this option must make
-sure pieces are never represented by lower case! This option can be
-set from the Files -> New Variant... menu, where it defaults to FALSE
-unless you explicitly set it. It is not saved in the winboard.ini
-file.  Note that the PGN format in Shogi also leaves out the trailing
-'+' as check indicator: In Shogi such a trailing '+' means promotion,
-while a trailing '=' means defer promotion. Prefix '+' signs are used
-on moves with promoted pieces, disambiguation is done western SAN
-style.
-
-/allWhite=FALSE
-Causes the outline of the 'white' pieces to be superimposed onto the
-'black' piece symbols as well (as a black outline) when native bitmaps
-are used (as opposed to font-based rendering). This is useful if we
-choose a very light color to represent the 'black' pieces. It might be
-particularly useful in Shogi, where the conventional representation of
-the 'black' pieces is as upside-down white pieces, so that both colors
-would be white. This option is saved in the winboard.ini file, and can
-be set in the "Options -> Board..." sub-menu.
-
-/flipBlack=FALSE
-This option is reserved for future use. It will cause upside-down
-display of the 'black' native piece bitmaps, as would be needed for
-Shogi. For now it can be set from the "Options -> Board..." sub-menu,
-and it is saved in the winboard.ini file, but it is ignored.
-
-/detectMate=TRUE
-/testClaim=TRUE
-/materialDraws=TRUE
-/trivialDraws=FALSE
-/ruleMoves=51
-/repeatsToDraw=6
-These are all options that only affect engine-engine play, and can be
-set from the "Options -> Engine..." sub-menu. They are all related to
-adjudication of games by the GUI. Legality checking must be switched
-on for them to work.  If /detectMate is TRUE, the GUI recognizes
-checkmate and stalemate (but not in games with holdings!), and ends
-the game accordingly before the engines can claim. This is convenient
-for play with engines that fail to claim, and just exit.  With
-/testClaim set, all result and illegal-move claims by engines that
-claim more than their own loss are scrutinized for validity, and false
-claims result in forfeit of the game. Useful with buggy engines.  The
-option /materialDraws=TRUE causes games with insufficient mating
-material to be adjudicated immediately as draws, in case the engines
-would not claim them.  The option /trivialDraws adjudicates KNNK,
-KBKB, KNKN, KBKN, KRKR and KQKQ to draws after 3 moves (to allow for a
-quick tactical win. Note that in KQKQ this might not be sound, but
-that problem would disappear once bitbase probing is added).  The
-/ruleMoves determine after how many reversible moves the game is
-adjudicated as a draw. Setting this to 0 turns this option off. Draw
-claims by the engine are still accepted (by /testClaim) after 50
-reversible moves, even if /ruleMoves species a larger number. Note
-that it is perfectly legal according to FIDE rules to play on after 50
-reversible moves, but in tournaments having two engines that want to
-play on forever is a nuisance in endings like KBNKR, where one of the
-engines thinks it is ahead and can avoids repeats virtually forever.
-The option /repeatsToDraw makes the GUI adjudicate a game as draw
-after the same position has occurred the specified number of times. If
-it is set to a value > 3, engines can still claim the draw after
-3-fold repeat.  All these options are saved in the winboard.ini file.
-
-Clocks
-There is an "Options -> flip Clocks" command, that swaps the position
-of white and black clocks (convenient in over-the-board matches, where
-the screen is next to the board, and you want your own time to be
-displayed on your side of the screen). The clocks can be adjusted in
-"edit game" mode: right-clicking them adds one minute, left-clicking
-subtracts one minute. (Also for OTB matches, to keep them synchronized
-with the official match clock.) The flag-fell condition is now
-indicated as (!) behind the time.
-
-Other improvements
-Castling rights and e.p. rights are now fully maintained, and
-considered in legality testing. They are imported from and written to
-FEN, as is the 50-move counter.
-
-** Winboard_F 4.3.2
-
-These are the release notes of Winboard_F 4.3.2, which is released
-under the GPL.  This version was derived from Allessandro Scotti's
-Winboard_x 4.2.7 source files.  It only includes the files that were
-changed:
-
-config.h
-common.h
-parser.h
-moves.h
-resource.h
-
-winboard.c
-backend.c
-moves.c
-
-parser.l
-winboard.rc
-
-and some bitmaps for piece symbols
-
-I made modifications in the following areas:
-
-1) Adjudication and claim verification
-2) Fairy pieces and board sizes other than 8x8
-3) Miscellaneous
-
-Miscellaneous
-
-/matchPause=10000
-is an option to set the length of the pause between two games of a
-match. The value is in msec, default value is 10000 (I will present
-all newly implemented options with their default value as example). Be
-aware that some engines might not be stopped yet if you make the pause
-too small, but might still be puking output, which then will interfere
-with the next game. But the fixed value of 10 sec of the old Winboard
-seemed like overdoing it.
-
-Time info in PGN
-When you ask for the PV-info to be stored in the PGN (a Winboard_x
-option), it now also stores the time spent on the move with it.
-
-Flag fell
-In engine-engine games the messge "white/black/both" flag(s) fell" no
-longer appears in the window caption, but as an exclamation point
-behind the clock time. (To prevent the annoying overwriting of the
-normal header line).
-
-Adjudications and Claim verification.
-
-These functions are only present in engine-engine games, and only if
-legality-testing is switched on. (The latter will be typically
-switched off in games with bizarre rules, which the GUI doesn't know,
-and in that case the GUI can never have an opinion on the outcome of a
-game.)
-
-Illegal-move forfeit
-As soon as one of the engines plays an illegal move, it forfeits the
-game. This feature was already present, but it should be 100% reliable
-now, as it also takes e.p. and castling rights into account, rather
-than erring on the safe side.
-
-Illegal-move claim
-From the above, it follows that any illegal-move claims by an engine
-must be false, and will result in forfeiting the game. (In Winboard_x
-this message is ignored, causing the game or match to hang.)
-
-Checkmate adjudication
-As soon as one of the engines does a move that results in checkmate,
-the GUI declares the game won, without waiting for the engine to claim
-it.
-
-Insufficient mating material
-As soon as the material on the board has shrunk to KK, KNK or KBK, the
-game is declared draw.
-
-/adjudicateLossThreshold=0
-This option was already present in Winboard_x, (to declare a game lost
-for which both engines agree for 3 moves that the score is below the
-given threshold), but a non-zero value is now also used to enable the
-following adjudications. If you only want the latter, just make the
-threshold impossibly low (-40000 will usually do the trick).
-
-Trivial draws
-If we are 3 moves into a KQKQ, KRKR, KBKB KBKN or KNKN end-game, the
-game is adjudicated as draw.
-
-/repeatsToDraw=6
-When the specified number of repeats occurs, the game is adjudicated
-draw. Should keep track of e.p. and castling rights. This does not
-require legality-testing to be switched on. The engines retain the
-legal right to claim after a 3-fold repetition, though. If you set
-this parameter to 3 or less, they will never get the chance. Better
-not set it to 1 or less.
-
-/ruleMoves=51
-After the given number of full moves without capture or Pawn move, the
-game is adjudicated draw. Even without legality testing. The engines
-retain the legal right to claim after 50 moves.
-
-/testClaims=FALSE
-When enabled, this option verifies all result claims made by the
-engines, and overrules the claim if it is false (forfeiting the game
-for the claimer). An engine can still safely claim a win for its
-opponent on a nonsense reason, though; this is taken to be the
-equivalent of 'resign'. Draw claims (made before a draw adjudication)
-are checked against the 50-move, 3-fold-repetition or
-insufficient-material rules. Win claims are always considered false,
-as the GUI adjudicates checkmates (and stalemates) before any engine
-can claim them.
-
-Fairy-Chess support
-
-/boardWidth=8
-Sets the number of files on the board. The additional files are named
-i, j, k, l... in PGN, and should be indicated this way in
-communicating moves to and from the engine. Currently works upto
-12. No guarantees on how the rest of the display (clocks, etc.) looks
-if you make this number < 8.
-
-/boardHeight=8
-Sets the number of ranks. Extra ranks are numbered 9, 10, 11... in
-PGN. This is so far largely untested, and unlikely to work for
-double-digit ranks. Displaying boards with upto 12 ranks seems to
-work, though, but double-digit ranks might cause all kind of unforseen
-problems in PGN file and move parser, or in communication with the
-engine. To avoid such problems as much as possible, in boards with
-more than 9 ranks the counting of ranks will start at zero rather than
-one!
-
-/fontPieceToCharTable="......."
-This paramater, controlling the mapping of font symbols to piece
-types, was already present in Winboard_x. The default is dependent on
-the font selected with the /renderPiecesWithFont option. It can now
-accept upto 32 pieces, but the length should always be even. The first
-half designates the white pieces, the second half the black, both in
-the order PNBRACHFEWDOGMQK. (The letters mentioned here are the
-letters by which the pieces will be indicated in PGN and FEN notation,
-what you have to give as argument depends on the font you use. A black
-king might be 'l', for instance).  If you give fewer then 32 pieces,
-this will go at the expense of what is just before Queen. So the last
-two symbols you give for each color are always Queen and King, the
-others are assigned in the order Pawn, Knight, ... Pieces that do not
-get a symbol assigned will remain invisible.
-
-fairy-FEN support
-The letters ACDEFGHMOW are accepted in FENs in addition to the regular
-PNBRQK,(and of course the lower case versions for black), and are
-passed to the engine in a setboard or edit menu.  Double-digit skips
-are acceptable in FENs. 'x' is interpreted as a skip of 10.  Castling
-rights should no longer be ignored. (Doesn't work for FRC yet,
-though.)  The 50-move-plies field should also be meaningful now.
-
-Legality testing for Fairy pieces
-There is a build in notion of what some of the new pieces can do, according to
-A = Archbishop (aka Cardinal) = N+B
-C = Chancellor (aka Marshall) = N+R
-F = Ferz (aka General), moves 1 step diagonal
-W = Wazir (aka Grand Vizer), moves 1 step orthogonal
-E = Elephant (aka Alfil), jumps 2 steps diagonal
-D = Dabbabah (aka War Machine), jumps 2 steps orthogonal
-M = Man (aka Commoner), moves as King, but is not a royal piece
-O = Cannon, moves along Rook lines, but cannot capture unless it jumps over
-            exactly one piece (friend or foe), and captures the first piece
-            it encounters thereafter. It can only jump if it captures something.
-            The piece jumped over (the 'platform') is not affected.
-The other pieces have not yet any moves implemented:
-H = Nightrider
-G = Grasshopper
-In games that use the mentioned pieces as described (Shatranj,
-Courier, Capablanca Chess) you can leave legality testing on. If you
-use them to represent pieces that move differently, you should switch
-legality testing off.
-
-Pawn moves
-Pawn motion is made dependent on the variant played: in Shatranj and
-Courier the double move is forbidden. In those games promotions are
-always to Ferz. In Capablanca Chess the ArchBishop and Chancellor also
-appear as choices in the promotion popup box.
-
-
-/variant="normal"
-Several new variants names are added (replacing "variant31" upto
-"variant36"). They affect the initial position. (Board size has to be
-set separately.) They are: courier (a Medieval predecessor of modern
-Chess, played on a 12x8 board) capablanca (on a 10x8 board, featuring
-Archbishop and Chancellor) gothic (as Capablanca, but with a more
-exciting initial setup) xiangqi (Chinese Chess) shogi (Japanese Chess,
-no support yet) fairy (This variant plays on 8x8 with HEW in stead of
-NBR on the Queen side, so that all back-rank pieces are (potentially)
-different) Make sure the selected board size matches the variant; this
-is not automatic
-
-Xiangqi and Shogi support (or lack thereof)
-Xiangqi is only partially supported. The board display is
-western-style (the pieces play on squares, rather than grid
-intersections). The legality testing uses the Shatranj Knight and
-Elephant, that cannot be blocked, and thus allows some moves that
-should be illegal in Xiangqi. The Palace region is indicated on the
-board, but there is no testing if the King or Mandarins (implemented
-as ordinary Ferzes) leave the Palace. SAN might be non-standard, as it
-uses O to indicate Cannon. Most of this will be fixed in a future
-version.  Shogi is not yet supported at all, first the shaky
-implementation of Crazyhouse will have to be beefed up.
diff --git a/README b/README
deleted file mode 100644 (file)
index ce3c783..0000000
--- a/README
+++ /dev/null
@@ -1,73 +0,0 @@
-What is XBoard?
-===============
-XBoard is a graphical chessboard for the X Window System.  It can
-serve as a user interface for chess engines such as Fairy-Max,
-Crafty or GNU Chess, for the Internet Chess Server, or for electronic
-mail correspondence chess. It supports all major forms of chess, such
-as international chess, xiangqi and shogi. XBoard can also be used by
-itself as viewer for stored chess games.  See the manual page for
-further details.
-
-XBoard is free software, copyrighted by the Free Software Foundation
-and released under the GNU General Public License (GPL).  See the file
-COPYING for details.
-
-You can build xboard on most systems with the following commands.
-
-       ./configure
-       make
-
-See the file INSTALL for more detailed instructions.
-
-See the file FAQ.html for answers to frequently asked questions.
-
-
-What is WinBoard?
-=================
-WinBoard is a port of XBoard to run natively on Windows.  It is part
-of the XBoard project and is released under the same terms as XBoard.
-
-You can build WinBoard using the free Cygwin toolchain from
-www.cygnus.com with the following commands.
-
-       cd winboard
-       make -f makefile.gcc
-
-You can build WinBoard using Microsoft Visual C with the following
-commands, or by opening the project in Visual Studio and clicking the
-build button.
-
-       cd winboard
-       nmake -f makefile.ms
-
-
-Reporting problems
-==================
-
-Report bugs and problems with XBoard and WinBoard to
-<bug-xboard@gnu.org>.  With XBoard, please use the "script" program
-to start a typescript, run XBoard with the -debug command line option,
-and include the typescript output in your message.  With WinBoard,
-please use the /debug command line option and include the contents of
-the file WinBoard.debug.  Also tell us what kind of machine and what
-operating system version you are using.  On Unix, the command "uname
--a" will tell you this.  On Windows, right-click on My Computer and
-select Properties.
-
-Here is a sample of approximately what you should type (on Unix):
-
-    script
-    uname -a
-    ./configure
-    make
-    ./xboard -debug
-    exit
-    mail bug-xboard@gnu.org
-    Subject: Your short description of the problem
-    Your detailed description of the problem
-    ~r typescript
-    .
-
-If you improve XBoard, please send a message about your changes, and
-we will get in touch with you about merging them in to the main line
-of development.
diff --git a/SHORTLOG b/SHORTLOG
deleted file mode 100644 (file)
index 5fad4f7..0000000
--- a/SHORTLOG
+++ /dev/null
@@ -1,2356 +0,0 @@
-** Version 4.8.0 **
-
-(git log --pretty=short --no-merges --cherry-pick --left-only v4.8.x...v4.7.3^ |git shortlog --no-merges)
-
-Arun Persaud (44):
-      Updated German translation
-      Updated Ukrainian translations
-      Added Dutch translation
-      Translation: fixed some inconsistencies reported by Benno Schulenberg
-      fixed some whitespace issues in configure.ac
-      configure.ac: don't set xaw if we choose gtk
-      expose the configure options to xboard
-      output configure options when looking at --version
-      fixed some more translation strings
-      more translations fixes: use uppercase for variant names
-      updated Dutch translation
-      updated German translation
-      updated Dutch translation
-      updated Spanish translation
-      another round of translation string fixes
-      Updated Spanish translation
-      remove xpm from XBoard
-      converted icons from xpm to png
-      added check for apply OS X
-      new version number for developer release
-      updated po/pot files
-      updated Dutch translation
-      new version number for developer release
-      updated po/pot files
-      updated spanish translation, added new polish translation
-      update gettext configuration to not include any generated files in git
-      fixed whitespace error in configure.ac for os x
-      new version number for release 4.8.0
-      update po/pot files
-      updated spanish, ukranian, and dutch translation
-      replaced hardcoded pngdir with built-in ~~
-      update NEWS file
-      only enable osxapp build target on apple systems, clean up configure.ac a tiny bit
-      remove experimental from gtk build option
-      fix osxapp enable option in configure.ac
-      updated Changelog, DIFFSTAT, and SHORTLOG
-      make all tests for strings in configure use the same scheme
-      USE OSXAPP instead of APPLE and fix withval->enableval in AC_ARG_ENABLE
-      fix typo and prefix
-      forget a few __APPLE__ ifdefs; changed to OSXAPP
-      updated NEWS
-      updated ChangeLog, DIFFSTAT and SHORTLOG
-      line numbers in PO got updated
-      mac: only use gtk compile flag, if osxapp is enabled
-
-H.G. Muller (166):
-      Implement variant ASEAN
-      Make PGN parser immune to unprotected time stamps
-      Make writing of move counts in PositionToFEN optional
-      Do not always start Makruk & ASEAN as setup position
-      Build in limited EPD capability for engine fingerprintig
-      Add quit-after-game checkbox in ICS options dialog XB
-      Fix book creation
-      Fix GUI book after setup position
-      Allow drops / promotions/ deferrals to be edited into book
-      Add Save button to Edit Tags dialog
-      Allow entry of negative numbers in spin control (WB)
-      Fix grabbing of selected piece
-      Fix initial board sizing WB
-      Add checkboxes for autoDisplayTags/Comments in menu WB
-      Allow seting of -egtPath through menu WB
-      Implement board-marker protocol
-      Use highlight command to specify move legality
-      Expand number of marker colors to 8
-      Implement hover command
-      Let magenta marker activate sweep promotion
-      Allow engine to click squares on behalf of user
-      Fix XBoard hover command
-      Fix -zippyVariants option
-      Allow engine to define its own variant names
-      Fix engine-defined names
-      Fix variant choice for second engine
-      Implement (inaccessible) dark squares
-      Make XBoard xpm-free
-      Rename Match dialog to Tournament
-      Automaticaly install Java engines
-      Save clocks with unfinished PGN games
-      Only save clock settings in PGN when an engine plays
-      Improve Edit Position mode
-      Clear memory of erased position on variant switch
-      Automatically adapt board format to FEN
-      Increase number of piece types to 44
-      Implement Chu Shogi
-      Fix hover event
-      Fix sweep promotions
-      Implement LionChess
-      Fix deselection of Lion
-      Fix promotion popup in Chu Shogi
-      Fix reading of SAN Lion double moves
-      Refactor move generator, and add Chu-Shogi pieces
-      Fix Shogi promoted pieces
-      Change Blind-Tiger symbol to claw
-      Fix SAN of promoted Chu pieces
-      Fix loading of game with multi-leg moves
-      Add claw svg to make-install
-      Animate both legs of Lion move
-      Implement roaring of Lion
-      Fix re-appearing of board markers
-      Fix double-leg moves on small boards
-      Fix sending and parsing of null moves and double moves
-      Fix target squares second leg
-      Adapt WinBoard front-end to Mighty Lion
-      Beef up variant detection
-      Fix promoted Elephant image in Shogi (XB)
-      Fix legality test of pinned-Lion moves
-      Implement ChuChess
-      Always alternate promo-sweep for shogi-style promoting piece
-      Allow piece promotion by pieceToChar in all variants
-      Fix disambiguation of shogi-style promotions
-      Fix default of Chu Chess piece promotions
-      Fix sweep promotions
-      Allow Lion sweep-selection in Chu Chess
-      Fix hover event (again)
-      Supply oriental theme settings
-      Change color of XQ board to better contrast with pieces
-      Fix promoting of Sho Elephant
-      Automatically switch to variant engine supports
-      Implement -installEngine option
-      Allow Crown-Prince image to differ from King
-      Fix Chu-Shogi Lance deferral
-      Fix mate and stalemate test in Chu Shogi
-      Implement option complex for installing engines
-      Make filler buttons in New Variant insensitive
-      Fix promotion in Ai-Wok
-      Make building of Windows .hlp file optional
-      Fix compile error promo dialog WB
-      Fix WB New Variant dialog
-      Cure weirdness when dragging outside of board
-      Write -date stamp always with 10 characters
-      Update protocol specs for setup command
-      Put some OSX code into gtk version
-      Remove use of strndup
-      Activate ManProc in GTK
-      Fix crash on use of dialog Browse buttons GTK
-      Implement EGBB probing and -first/secondDrawDepth
-      Set ~~ to bundle path for OS X
-      Start rank counting at 1 for boards deeper than 10
-      Fix DATADIR in Xaw
-      Remove redefine of DATADIR that leaked in from v4.7.x
-      Fix Chu promotion of L, HM and GB
-      Fix name of master settings file in OS X
-      Overhaul kill code
-      Add --show-config special option
-      Allow popup of TC and Common Engine from Tournament dialog
-      Fix Tournament Options dialog
-      Add 'Continue later' button to Tournament dialog XB
-      Fix ManProc for OS X
-      Fix access to ~~/themes/conf for OS X
-      Fix ManProc for OS X
-      Fix sorting of Engine Output
-      Fix sticky windows on Win8
-      Fix printing of engine-output headers
-      Allow hide/show of columns in Engine Output
-      Implement extended thinking output
-      Handle fali-low & fail high
-      Fix sorting of Engine Output
-      switch to new tbhits protocol
-      Put fail-high/fail-low indicators in protocol specs
-      Implement new mate-score standard
-      Drag touching edges together (WB)
-      Fix sticky windows on Win8
-      Fix printing of engine-output headers
-      Fix warning in CheckTest
-      Add some checkboxes in General Options dialog WB
-      Expand %s in -openCommand to DATADIR and fix OSX settings-file name
-      Put ponder checkbox in Common Engine dialog WB
-      Make Fischer castling generally available
-      Fix Seirawan reverse-castling animation
-      Allow wild-cards in FEN
-      Allow shuffling indicators in FEN
-      Detect Fischer castling in FENs
-      Add Option type 'Skip'
-      Fix moves of Spartan Captain
-      Fix warnings
-      Add Edit Engine List menu item to XBoard
-      Add logo-size control XBoard
-      Integrate ICS output into Chat Window
-      Add context menu to ICS console XB-GTK
-      Let ICS Console pop up GTK in stead of ICS Input Box
-      Recognize Esc and Tab in ICS Console input
-      Preserve unfinished input lines during chat switch
-      Ctrl-N in chat opens empty chat
-      Add End Chat button
-      Let Ctrl-O key open chat for last talker
-      Fix Xaw Chat Console
-      Write broadcasts also to private chatbox of talker
-      Also display channel tell in ICS Console during private chat
-      Leave xterm at start of new line after quitting XBoard
-      When ICS Console open EOF from keyboard is no error
-      Implement copy function in ICS Text Menu
-      Equip Board Options dialog with themes listbox
-      Preserve window width on board-format change
-      Fix pop-down of ChatDlg and TextMenuDlg from menu
-      Play move right-clicked in Edit Book dialog
-      Allow adding played move to book
-      Use first engine as default for second
-      Kludge repair of expose after startup resize
-      Fix various warnings
-      Fix Board-dialog bug WB
-      Fix error Engine Output text highlighting
-      Also search indirection files in user's .xboard tree
-      Implement (clock-)font handling in GTK
-      Fix warnings fonts patch
-      Fix width of menu bar
-      Fix initial sizing of board
-      Allow writing text on pieces
-      Render inscriptions on Chu-promoted pieces in red
-      Fix loading positions in engine-defined variant
-      Fix reading Chu Shogi FENs
-      Fix piece inscriptions
-      Allow pseudo-engines to adjust the clocks
-      Fix writing of Chu-Shogi FENs
-
-H.G.Muller (150):
-      Fix crash on opening Tags window Xaw
-      Make EditPosition pallette work in Asian variants
-      Let EditPosition double-click on piece promote it
-      Fix null-move entry during play
-      Fix adjusting clocks in Xaw version
-      Fix typing of null moves
-      Fix crash on double-click in Game List Tags
-      Fix castling rights on using -lgf
-      Add final piece count to search criteria
-      Add Save Selected Games menu item
-      Fix alignment in Engine Output window
-      Verify if font-spec looks like one in Xaw
-      Fix size of time in Engine Output window
-      Connect mousewheel to Forward/BackwardEvent (XB)
-      Make sure node count is positive
-      Connect scroll event to Graph Option in GTK
-      Rewrite key-binding section of manual
-      Let Save Games as Book only use selected games
-      Describe Save Selected Games menu in manual
-      Fix syntax error in bitbase code
-      Provide DoEvents function in front-ends
-      Fix GameListHighlight WB
-      Call DoEvents during time-consuming operations
-      Fix auto-display comment option in General Options
-      Let GTK build pay attention to font arguments
-      Replace strcasecmp by StrCaseCmp
-      Fix GTK font patch
-      Fix MSVC problems
-      Define default font names
-      Fix Xaw key bindings
-      Fix key bindings for non-menu functions
-      Animate multi-leg in auto-play and forward event
-      Limit auto-extending to click on first move of PV
-      Fix WB DoEvents error
-      Include some conditional OS X fixes
-      Use GTK fonts in Engine Output and Move History
-      Correct for .Xresources form->paneA renaming in manual
-      Fix infinite-regression problem on OS X
-      Fix Chat window for Xaw build
-      Use -gameListFont in Game List
-      Use coordFont default pixel size for other fonts
-      Fix GTK fonts
-      Let message field and button bar use GTK -messageFont
-      Update protocol specs
-      Fix SetWidgetFont GTK
-      suppress Alien Edition standard variants
-      Reserve piece command in protocol specs
-      Reorder variants, to comply with Polyglot book specs
-      Fix warning in dead code Show
-      Make SVGDIR a variable
-      Fix Xaw button color error
-      Let OS X display dock icon
-      Fix crash of tournament dialog GTK
-      Fix checkmarking of OS X menu items
-      Look for logo in engine dir first (GTK)
-      Make inlined functions static
-      Fix typo
-      Implement -autoInstall option
-      Ignore color arguments not starting with #
-      Scale texture bitmaps that are not large enough
-      Implement engine-defined pieces
-      Fix texture scaling
-      Test legality even when off if engine defined pieces
-      Allow two Pawns per file in Tori Shogi
-      Force exactly overlayed texture scaling through filename
-      Describe the new texture conventions in manual
-      Sort fail lows and fail highs below others
-      Repair damage done by merging with v4.7.x
-      Add extra font field to Option struct
-      Control Eval Graph with mouse
-      Remove debug printf
-      Configure some themes in XBoard master settings
-      Prevent crash on specifying non-existent texture XB
-      Configure a size for the Eval Graph
-      Fix detection of screen size GTK
-      Retune -stickyWindows GTK
-      Improve SAN of Pawn moves and allow Betza e.p. definition
-      Update description of piece command in protocol specs
-      Allow definition of castling in piece command
-      Repair piece defs with showTargetSquares off
-      Implement Betza p and g modifiers in piece command
-      Improve virginity test for engine-defined pieces
-      Implement Betza o modifier for cylinder boards
-      Fix cross-edge e.p. capture in Cylinder Chess
-      Prevent multi-path moves from parsing as ambiguous
-      Reparse ambiguous move under built-in rules
-      Size seek graph to also cover board rim WinBoard
-      Always accept piece commands in partly supported variants
-      Print PGN Piece tag listing engine-defined pieces
-      Make unsupported variant on loading 1st engine non-fatal
-      Fix abort of machine game on variant mismatch
-      Fix reset of 50-move counter on FRC castling
-      Allow use of second-row pieces for non-promoted in drop games
-      Prevent board-size oscillations
-      Suppress use of promo-Gold bitmaps in Tori Shogi (WB)
-      Rename PGN Pieces tag to VariantMen
-      Implement ff etc. in Betza parser
-      Configure XBoard for -size 49 in master settings
-      Fix writing of Seirawan960 virginity in FEN
-      Fix clipping of board GTK
-      Fix engine-defined variant as startup
-      Reset move entry on stepping through game
-      Don't preserve setup position on board-size change
-      Fix pieceToCharTable of Falcon Chess
-      Always accept piece commands for Falcon and Cobra
-      Implement Betza j on W,F as skip first square
-      Implement Betza a modifier
-      Implement Betza g modifier for non-final legs
-      Implement Betza y modifier
-      Implement directional modifiers on KQ, and let y&g upgrade
-      Implement Betza t modifier for hop-own
-      Switch to new Betza orth-diag conversion standard
-      Preserve other Betza mode bits on setting default modality
-      Implement Betza hr and hr as chiral move sets
-      Let t on final leg in Betza notation forbid checking
-      Fix infinite loop in cylinder moves
-      Fix check test with multi-leg moves
-      Relocate OS X' LOCALEDIR
-      Implement new logo standard
-      Replace default Shogi pieces
-      Force GTK logo size to quarter board width
-      Increase number of engine-defined-variants Buttons XB
-      Show current variant on New Variant buttons GTK in bold
-      Fix ICS logo display
-      Try also /home/<user>/.logo.pgn for user logo
-      Fix logos Xaw
-      Some improvement on new Shogi SVG pieces
-      Remember position obtained from setup
-      Split Tournament dialog in side-by-side panes
-      Reset move entry on Clear Board
-      Update Game List when setting new Game List Tags
-      Implement displaying of variant tag in Game List
-      Don't switch to engine-defined variant on game loading
-      Always accept piece commands in variant great
-      Update Game List after tag selection changed
-      Fix some uninitialized variable bugs
-      Preserve parent variant for PGN of engine-defined game
-      Fix loading of engine-defined PGN games
-      Fix display of Spin Options with negative range
-      Let GTK dialogs open with actual-size Graph widgets
-      Ignore first configure event
-      Base new square size on board widget allocation GTK
-      Suppress duplicat autoInstalls
-      Fix variant-name recognition
-      Prevent unknown variant getting button in -ncp mode
-      Fix -xbuttons window width GTK
-      Attempt to make GTK sizing work with tiling WM
-      Fix promotion in Betza move generator
-      Also do dual-royal test in variant shogi
-      Add persistent Boolean option -fixedSize
-
-Joshua Pettus (2):
-      Add build script to configure for a XBoard.app for OS X
-      removed gtk theme from OSX app
-
-hasufell (4):
-      BUILD: make paths modifiable (tiny change)
-      BUILD: fix configure switches (tiny change)
-      BUILD: make Xaw frontend default (tiny change)
-      BUILD: fix withXaw conditional (tiny change)
-
-
-** Version 4.7.3 **
-
-(git shortlog --no-merges v4.7.2..HEAD)
-
-Arun Persaud (6):
-      cleanup some trailing whitespaces
-      Updated copyright notice to 2014
-      removed .DS_Store file from git
-      updated copyright to 2014 in menu.c
-      new version number for release 4.7.3
-      updated po/pot files
-
-H.G. Muller (21):
-      Fix buffer overflow in parser
-      Fix adjudication of Giveaway stalemates
-      Fix node count range
-      WinBoard multi-monitor support
-      Repair XBoard from node-count patch
-      Repair FRC A-side castling legality testing
-      Allow castling and e.p. to be edited in opening book
-      Remove width limiting of shuffle checkbox
-      Widen Xaw text entries for larger square sizes
-      Fix Xaw file-browser New Directory
-      Fix packing of FRC castlings
-      Make filler variant button inactive
-      Fix sorting of lines in Engine Output
-      Cure weirdness when dragging outside of board
-      Put some OSX code into gtk version
-      Remove use of strndup
-      Activate ManProc in GTK
-      Expand ~~/ to bundle path (OSX)
-      Use __APPLE__ compile switch for OS X
-      Make building of Windows .hlp file optional
-      Fix crash on use of dialog Browse buttons GTK
-
-
-** Version 4.7.2 **
-
-(git shortlog --no-merges v4.7.1..HEAD)
-
-H.G. Muller (8):
-      Make PGN parser immune to unprotected time stamps
-      Fix book creation
-      Fix GUI book after setup position
-      Allow drops / promotions/ deferrals to be edited into book
-      Allow entry of negative numbers in spin control (WB)
-      Fix grabbing of selected piece
-      Fix initial board sizing WB
-      Fix -zippyVariants option
-
-
-** Version 4.7.1 **
-
-(git shortlog --no-merges v4.7.0..HEAD)
-
-Arun Persaud (4):
-      new version number for developer release
-      updated po/pot files
-      Updated Ukrainian translations
-      Updated German translation
-
-Christoph Moench-Tegeder (1):
-      fix bug #38401: xboard.texi doesn't build with texinfo-5.0 (tiny change)
-
-H.G. Muller (24):
-      Work-around for Xt selection bug
-      Repair WinBoard compile error
-      Add -backupSettingsFile option
-      Make skipping of unknown option smarter
-      Let popping up of WinBoard chatbox for channel open it
-      Fix of argument error
-      Fix vertical sizing of GTK board
-      Fix buffer overflow in feature parsing
-      Accept setup command for non-standard board size
-      Fix fatal error on unsupported board size
-      Fix GTK box popup
-      Let XBoard -autoBox option also affect move type-in
-      Fix spurious popup after batch-mode Analyze Game
-      Fix saving of analyzed game
-      Provide compatibility with Alien Edition setup command
-      Fix quoting of book name in tourney file
-      Fix disappearence of pieces that were moved illegally
-      Fix horrible bug in reading scores from PGN
-      Print score of final position in Analyze Game
-      Fix GTK SetInsertPos
-      Fix scrolling of Chat Box
-      Make Chat Box window obey -topLevel option
-      Fix Xaw file browser
-      Update zippy.README
-
-
-** Version 4.7.0 **
-
-(git log --pretty=short --cherry-pick --left-only v4.7.x...v4.6.2^   |git shortlog --no-merges)
-
-Arun Persaud (50):
-      added some documentation about what's need to be done for a release and a bash-release script
-      Merge branch 'v4.6.x' into tmp
-      new version number for developer release
-      updated po/pot files
-      removed unused variables (-Wunused-variable)
-      enable -Wall -Wno-parentheses for all compilers that understand them
-      new version number for developer release
-      Updated German translation
-      fix bug #36228: reserved identifier violation
-      bug #36229: changed PEN_* from define to enum
-      bug #36229: changed STATE_* from define to enum
-      bug #36229: changed ICS_* from define to enum
-      new version number for developer release
-      added SVGs
-      added cairo and librsvg to configure process
-      initial svg rendering
-      added SVGs to dist files in automake
-      added a black and white theme to replace the mono option
-      we still need a few bitmaps, so the directory needs to be included in Makefile.am
-      new version number for developer release
-      update po/pot files
-      updated some icons to SVG
-      new version number for developer release
-      fix configure script for --with-Xaw and --with-gtk
-      updated po/pot files; added new frontend files
-      don't define X_LIBS when using gtk-frontend
-      new version number for developer release
-      updated po/pot files
-      Updated copyright notice to 2013
-      removed trailing whitespace
-      Updated Ukrainian translations
-      fix configure bug that showed up on OS X (couldn't find X11/Dialog.h)
-      Updated German translation
-      new version number for release of 4.7.0
-      updated Changelog, NEWS, etc.
-      updated po files for new release (make distcheck)
-      Merge remote-tracking branch 'origin/master' into v4.7.x
-      add test for pkg-config
-      Merge branch 'master' into v4.7.x
-      added rotated shogi pieces for -flipback option and moved them to the themes directory
-      keyboard accelerators for both front ends.
-      add close buttons to gtk windows
-      in debug mode also print the git-version if available during build
-      add keyboard shortcuts back into Xaw version
-      removed some translation calls for messages in the debug log
-      fixed gtk-warning
-      fixed segfault of g_markup_printf_escaped which needs utf-8 strings
-      removed two more translations from debug output
-      fix OK-response in gtk dialogs, see c7f8df124
-      Merge branch 'master' into v4.7.x
-
-Byrial Jensen (10):
-      Fix typo (seach) in string. It is already fixed in branch v4.6.x
-      Mark new text "Click clock to clear board" for translation
-      Change some double literals to floats.
-      Remove unused variable pdown from function UserMoveEvent
-      Remove unused variable delayedKing from function QuickScan
-      Remove unused variable tm from function SaveGamePGN
-      Remove unused variable first_entry from function find_key
-      Remove unused static function MenuBarSelect
-      Remove unused static function ShowTC
-      Remove 5 unused variables from zippy code
-
-Daniel Dugovic (1):
-      Fix configure script for --enable-zippy  (tiny change)
-
-Daniel Macks (1):
-      bug #37210: Mishandling of X11 -I flags (tiny change)
-
-H.G. Muller (381):
-      Fix suspected bug in Makefile
-      Merge branch 'v4.6.x' of git.sv.gnu.org:/srv/git/xboard
-      Fix fall-back on -ncp mode
-      Inform user in EditPosition mode how to clear board
-      More thorough switch to -ncp on engine failure
-      Implement exclude moves
-      Add exclude and setscore to protocol specs
-      Fix focus of Game List
-      Keep list of excluded moves in Engine Output header
-      Let clicking on header line exclude moves
-      Fix memory corruption through InitString and second-engine loading
-      Silence unjust warning
-      Implement Narrow button in WB Game List
-      Switch to using listboxes for engine-selection in WinBoard
-      Install engine within current group
-      Remove some unused (exclude-moves) variables
-      Refactor menu code, and move it to menu.c
-      Switch to use of short menu references
-      Move more back-endish menu-related stuff from xboard.c to menus.c
-      Contract some awful code replication
-      Split back-endish part off drawing code and move to board.c
-      Declare some shared global variables in backend.h
-      Split back-endish part off xoptions.c, and move to dialogs.c
-      Move some back-endish routines from xboard.c to dialogs.c
-      Cleanup of xboard.c
-      Remove one level of indirection on ICSInputBoxPopUp
-      Make routine to probe shift keys
-      Split usounds.c and usystem.c from xboard.c
-      Prevent double PopDowns
-      Major refactoring of GenericPopUp
-      Redo AskQuestion dialog with generic popup
-      Redo PromotionPopUp with generic dialog
-      Redo ErrorPopUp with generic dialog
-      Add -topLevel option
-      Add -dialogColor and -buttonColor options
-      Redo Game List Options with generic popup
-      Redo Game List with generic popup
-      Redo Engine Output window with generic popup
-      Redo Eval Graph with generic popup
-      Split sync-after options in Match dialog into checkbox + label
-      Remove unnecessary menu unmarking for Edit Tags
-      Redo main board window with generic popup
-      Switch back two two-part menu names
-      Fix recent-engines menu
-      Correct texi file for use of .Xresources
-      Fix switching debug option during session.
-      Move DisplayMessage to dialogs.c
-      Move LoadGamePopUp to menus.c
-      Add message about enabling in New Variant dialog
-      Use ListBox in stead of ComboBox in Load Engine dialog
-      Use ListBox in stead of ComboBox in Match-Options dialog
-      New browser
-      Fix default file types for browse buttons
-      Port grouping to XBoard Load Engine
-      Change default directory in Load Engine to "."
-      Port engine grouping to Match Options dialog
-      Give the dual-board option a separate board window
-      Reorganize main() a bit
-      Add 'Narrow' function to position search
-      Fix bug in FRC castling for position search
-      Use Ctrl key in EditPosition mode to copy pieces
-      Fix Makefile EXTRA_DIST
-      Update POTFILES.in
-      new version number for developer release
-      updated po/pot files
-      Fix auto-play
-      Fix vertical chaining of Buttons and browser ListBoxes
-      Make reference to board widgets symbolic
-      Fix internationalization
-      Fix Engine Output icon heights in international versions
-      Add New Directory button to file browser
-      Add sound files to browser menu
-      Fix 3 forgotten symbolic widget references
-      Let clocks of secondary board count down
-      Fix redraw of secondary board on flipping view
-      Allow clearing of marker dots in any mode
-      Fix promotion popup
-      Fix double promotion popup
-      Move clearing of target squares to after drag end
-      Fix click-click sweep promotions to empty square
-      Also do selective redraw with showTargetSquares on
-      Improve arrow drawing
-      Use in-place sweep-selection for click-click under-promotion
-      Fix promotionPopDown on new move entry
-      Fix some compile errors / warnings
-      Implement automatic partner observe
-      Fix ArrowDamage out-of-bounds access on drop moves
-      Remove debug printf
-      Fix clearing of ICS input box after send
-      Fix click-click under-promotion animation save
-      Fix MenuNameToItem
-      Shuffle prototypes to correct header, or add them there
-      Fix readout of numeric combobox
-      Move FileNamePopUp to dialogs.c
-      Move ManProc to xboard.c
-      Fix warnings about character index
-      Fix warning about signedness
-      Add pixmap as file type known to browser
-      Offer primitive paging in file browser
-      Solve WinBoard name clashes, fix zippy-analyze menu graying
-      Fix crash on time forfeit with -st option
-      Add logo widgets in main board window
-      Allow chaining of single-line text-edits to top
-      Port chat boxes to XBoard
-      Fix disabling of Load Engine menu
-      Fix ICS Text Menu popup
-      Fix key binding of DebugProc
-      Fix WB Engine Settings window
-      Keep track of virginity of back-rank pieces in variant seirawan
-      Decapitalize promoChar in move parser
-      Fix bug in Edit Position
-      Round board size to one where piece images available (WB)
-      Let windows stick to right display edge (WB)
-      Pay attention to extension of 'positional' arguments
-      Define XOP mime type for XBoard
-      Workaround for FICS bug
-      Implement variant seirawan in -serverMoves option
-      Implement --help option
-      Add check on validity of tourney participants
-      Add options -fe, -se, -is to load installed engines/ics from list
-      Allow second engine to analyze too
-      Let second engine move in lockstep during dual analysis
-      Allow Analyze Game to auto-step through entire game file
-      Cure some sick behavior in XBoard Engine Output right-clicks
-      Allow ICS nickname as positional argument
-      Preconfigure -icsNames in xboard.conf
-      Allow entry of fractional increment in WB time-control dialog
-      Resolve conflict between -mps and -inc options
-      Update texi file
-      Fix broken -ics and -cp options
-      Use Pause state in AnalyzeMode to imply move exclusion
-      Fix browsing for path
-      Fix non-NLS compile error for XFontStruct
-      Fix WinBoard compile errors
-      Reserve more space for button bar
-      Fix button-border-width bug in monoMode
-      Redo Eval Graph drawing with cairo
-      Fix Eval Graph resolution problems
-      Redo logos with cairo
-      Redo seek graph with cairo
-      Redo arrow highlighting with cairo
-      Redo grid with cairo
-      Make convenience routine SetPen globally available
-      Redo highlights with cairo
-      Redo marker dots with cairo
-      Add mode to draw PNG piece images through cairo
-      Add png pieces
-      Allow back-texture files to be PNG, (drawn with cairo)
-      Do animation with cairo
-      Maintain in-memory copy of the board image
-      Switch to using 64x64 png images
-      Allow resizing of board window
-      Specify proper condition for using cairo animation
-      Cure flashing of piece on from-square
-      Also use cairo on slave board
-      Redo coordinate / piece-count printing ith cairo
-      Fix DrawSeekText
-      Make dragged piece for excluding moves transparent
-      Let cairo also do evenly colored squares.
-      Remove debug print
-      Also render coordinates to backup board
-      Fix clearing of markers dots with promo popup
-      Implement variant-dependent png piece symbols
-      Remove acceleration trick
-      Fix highlight clearing
-      Draw arrow also on backup image
-      Cleanup CairoOverlayPiece
-      Fix erasing dots in seek graph
-      Separate off drawing routines from xboard.c
-      Remove all bitmap & pixmap drawing
-      Check in draw.c, draw.h
-      Clean up drawing code
-      Some cleanup
-      Do coordinate text alignment with cairo
-      Fall back on built-in pixmaps if png pieces unreadable
-      Plug resource leak on rezising with pixmaps
-      Make Piececolor options work on png pieces
-      Fix bug in resize trigger
-      Suppress redraw during sizing
-      Reload piece images when pngDirectory is changed
-      Make expose handler generic
-      remove NewSurfaces
-      Fix alignment of highlight expose
-      Fix initial display of logos
-      Let expose requests pay proper attenton to widget
-      Make draw handle for board globally available
-      Fix expose requests seek graph
-      Adapt Eval Graph code to new drawing system
-      Fix rsvg version in configure.ac
-      Always render svg pieces anew on size change
-      Add -trueColors option
-      Solve odd lineGap problem
-      Fix 1-pixel offset of grid lines on some cairo implementations
-      Fix animation with textures off
-      Fix exposure of atomic captures
-      Add hatched board texture
-      Install the wood textures as png
-      Remove bitmaps from project
-      Install svg pieces in themes/default
-      Cache svg handles
-      Implement proper fallback cascade
-      Remove piece pixmaps from project
-      Suppress anti-aliasing in -monoMode
-      Fix segfault on faulty command-line option
-      Increase drag delay too 200 msec
-      Make fallbackPieceImageDirectory hardcoded
-      Suppress warning for InitDrawingHandle
-      Code cleanup: move expose redraw to draw.c
-      Remove unnecessary Xt colors and call to MakeColors
-      Move Shogi svg pieces to own directory
-      Spontaeous changes in gettext stuff
-      Adapt docs for svg/png in stead of bitmap/pixmap
-      Trim board-window size
-      Fix garbage pixels on the right of the board
-      Print missing-pieces error message to console
-      Prevent odd-width line shift in length direction
-      Fix bug in resizing
-      Remove some unused images from png directory
-      Remove caveat on available pieces fromNew Variant dialog
-      Fix variant-dependent pieces
-      Get svg error message
-      Fix bug in fallback mechanism
-      Fix bug in resizing on variant switch
-      Rename svg shogi pieces, so they become usable
-      Fix re-rendering of svg on resize
-      Remove the texture pixmaps from project
-      Replace xiangqi board pixmaps by png images
-      Replace marble texture pixmaps by png
-      Fix variant-dependent pieces
-      Fix crash on animation after resizing
-      Fix message in New Variant dialog
-      Fix crash in promotion popup
-      Fix WinBoard compile error on enum PEN
-      Fix image extension used for browsing to .pgn
-      Fix initial enables in TC dialog
-      Move X11 front-end to directory xaw
-      Preserve copies of the X11 front-end in xboard directory
-      Prepare xoptions.c for middle-end changes
-      Add configure switches for Xaw vs GTK.
-      Move ICS-engine analyze and AnalyzeGame code to shared back-end
-      Remove some unnecessary header includes
-      move testing for no options to back-end
-      Move MarkMenuItem to xoptions.c
-      Split xhistory.c in front-end and middle-end part
-      Remove inclusion of frontend.h from backendz.h
-      Remove xedittags.c, .h from project
-      Cleanse back-end code of all references to X11 types
-      Make xevalgraph.c backend
-      Move timer functions to new file xtimer.c
-      Remove all X11 code by #ifdeffing it out
-      Give LoadListBox two extra parameters
-      Transfer most available gtk-xt code to xoptions.c
-      Attach expose handler and connect to mouse events
-      Implement menu checkmarking and enabling
-      Connect dialog Browse buttons to GTK browser
-      Transfer more gtk-xt code, and add some new
-      Append recent engines to engine menu
-      Add text insertion in engine-output memos
-      Better cleansing of xboard.c from X11 types
-      Highlight Pause button
-      Add key-handler for ICS Input Box
-      Make generic memo-event handler, and connect history callback
-      Add highlighting in move list
-      Add scrolling of Move History
-      Let engine-output memos use new generic callback
-      Implement highlighting in engine output by through generic method
-      Fix animation
-      Connect CommentClick handler
-      Fix ListBox, and add some support routines
-      Add file browser
-      Remove some unneeded low-level X11 code
-      Add Shift detection
-      Add type-in event to board for popping up box
-      Add optional callback to Label Options
-      Add game-list callbacks
-      Add access routines to checkboxes and FocusOnWidget
-      Close Move Type-in on Enter
-      Deselect first char in Move Type-in and ICS Input Box
-      Use different tables for different dialog columns
-      Add hiding / showing second Engine Output pane
-      Add listbox double-click callback
-      Add BarBegin, BarEnd options
-      Fix button bar
-      Add displaying of icons
-      Make some tall dialogs multi-column
-      Add task-bar icon
-      Some experimenting with sizing
-      Add copy-paste
-      Delete emptied front-end files, and move rest to gtk directory
-      Fix warnings
-      Make board sizing work through subtracting fixed height
-      Add window positioning
-      Fix logo placement
-      Fix clock clicking with GtkEventBox
-      Pay attention to NO_CANCEL dialog flag
-      Fix Chat Box
-      Fix clock highlighting
-      Adapt lineGap during sizing
-      Draw frames around memos and listboxes
-      Load opponent logo based on handle in ICS play (WB)
-      Add 'Continue Later' button in Tournament dialog (WB)
-      Allow external piece bitmaps and board border (WB)
-      Add Themes dialog (WB)
-      Implement auto-creation of ICS logon file
-      Use colors in Board-Options dialog also for font pieces (WB)
-      Implement book-creation functions
-      Start browsing in currently-selected folder (WB)
-      Fix move highlighting with animation off
-      Fix Loop-Chess promotions
-      Implement use of pause / resume protocol commands
-      Improve scaling of border bitmap (WB)
-      Fix -fSAN in AnalyzeFile mode
-      Do not clear PGN tags on Analyze File
-      Fix min-Shogi promotion zone
-      Update WinBoard translation template
-      Prefer pause mode on pondering engine over 'easy'
-      Fix rep-draw detection in drop games
-      Implement insufficient mating material for Knightmate
-      Use Ctrl key in AnalyzeMode to exclude entered move
-      Do not move to forwadMostMove when unpausing AnalyzeMode
-      Do not automatically save aborted games in tourney PGN
-      Store some more tourney params in tourney file
-      Implement aborting of games on engine request.
-      Resend engine-defined options after reuse=0 reload
-      Allow use of ~ in pieceToChar for shadow pieces in any variant
-      Let tellothers command add comment to PGN in local mode
-      Do delayed board draw also with -stickyWindows false
-      Fix some warnings
-      Update texi file
-      Enforce -popupMoveErrors
-      Fix engine timeout problem in match mode
-      Stalemate is a win in Shogi
-      Adjudicate perpetual checks as loss also in Shogi
-      Adjudicate pawn-drop mate as loss in Shogi
-      Catch unknown engine in tourney games
-      Preserve mode on engine loading (sometimes)
-      Preserve PGN tags when loading engine
-      Fix library order
-      Fix expose of to-square with grid off
-      Fix warning in WinBoard
-      Let WinBoard start in its installation folder
-      Assign shortcut char to WB menu item
-      Add some new strings to WB translation template
-      Update Dutch WB translation
-      Fix GTK error auto-raising board
-      Fix warnings of build server
-      Put GTK warning in about-box
-      Let initial setting of Twice checkbox reflect current state
-      Draw both coords in a1
-      Add boolean -autoBox option
-      Update NEWS file
-      Add desktop stuff for .xop MIME type.
-      Remove empty-square SVG images from project
-      Revive -flipBlack option
-      Add Xiangqi piece images to project
-      Fix Makefile for install of Xiangqi pieces
-      Connect Ctrl key in WinBoard
-      Better fix of feature timeout
-      Unreserve tourney game on exit during engine load
-      Only perform e.p. capture if there are rights
-      Warn about experimental nature of dual board
-      Make switching between board windows absolute
-      Remove checkbox for 'Move Sound'
-      Don't add PV moves on board clicking in AnalyzeMode
-      Add new vertical pixel fudge
-      Allow display of 50-move counter in zippy mode
-      Add -onlyOwnGames option
-      Fix graying of Revert menu item
-      Cure GTK warning in top-level windows
-      Fix title of top-level windows
-      Print game-list timing messages only in debug mode
-      Fix repairing of arrow damage
-      Remember window params of slave board
-      Fix repositioning of GTK windows
-      Limit debug print to debug mode
-      Better handling of undefined window parameters
-      Fix sizing of slave board GTK
-      Suppress printing of status line in dual-board mode
-      Fix testing for valid window placement Xaw
-      Fix -topLevel option
-      Try to make life more bearable in Xaw menus
-
-** Version 4.6.2 **
-
-(git shortlog --no-merges v4.6.1..HEAD)
-
-Arun Persaud (1):
-      new version number for release of 4.6.2
-
-H.G. Muller (5):
-      Fix second-engine variant test
-      Add two new strings to WinBoard language file
-      Define TOPLEVEL in winboard.c
-      Fix faking of castling rights after editing position with holdings
-      Suppress clear-board message after pasting FEN
-
-** Version 4.6.1 **
-
-(git shortlog --no-merges v4.6.0..HEAD)
-
-Arun Persaud (5):
-      updated Changelog, etc. for developer release
-      added m4 directory to search path for aclocal. As suggested by Michel Van den Bergh
-      removed unused variables (-Wunused-variable)
-      new version number for release of 4.6.1
-      updated Changelog, NEWS, etc.
-
-Byrial Jensen (2):
-      New Danish translation (fixes a minor error in one string)
-      Translate "NPS" also in engine output window
-
-H.G. Muller (30):
-      Fix fall-back on -ncp mode
-      Install engines as ./exefile in XBoard
-      Inform user in EditPosition mode how to clear board
-      Fix clock stop after dragging
-      Fix taking effect of some option changes
-      Fix bug in FRC castling for position search
-      Fix bug on loading engine
-      Fix browsing for save file in WB
-      Fix parsing crazyhouse promotions with legality testing off
-      Fix TOPLEVEL stuff
-      Make variant-unsupported-by-second error non-fatal
-      Let Game List scroll to keep highlighted item in view
-      Extend smallLayout regime up to size Medium
-      Fix switching of debug mode
-      Correct texi file for use of .Xresources
-      Fix texi bug
-      Fix PV sorting during fail low
-      Fix memory corruption through InitString
-      Change default value for diretory to . in Load Engine dialog
-      Swap all engine-related options during engine loading
-      new version number for developer release
-      updated po/pot files
-      Don't strip path from engine name if directory given
-      Updated Danish and Ukranian translations
-      Suppress popup for fatal error after tellusererror
-      Detect engine exit during startup
-      Fix click-click sweep promotions to empty square
-      Suppress testing for availability in bughouse drops
-      Fix crash due to empty PV
-      Fix Eval Graph scale in drop games
-
-** Version 4.6.0 **
-
-(git log --pretty=short --cherry-pick --left-only v4.6.x...v4.5.x^   |git shortlog --no-merges)
-
-Arun Persaud (79):
-      removed parser.l from build process, also removed flex dependency from configure
-      updated Changelog, NEWS, etc.
-      new developer release
-      added/fixed i18n support via gettext to xboard
-      updated translation files
-      marked more strings for gettext that were only marked with N_()
-      updated list of files that include translation strings; updated pot-file
-      updated po-files; updated german translation
-      replaced hardcoded email address with generic PACKAGE_BUGREPORT
-      updated German translation
-      fixed access rights to winboard language files (644 instead of 655)
-      lng2po.sh: added command line options, GPL header
-      added translations generated via lng2po from all winboard languages
-      deactivated new languages for the moment...
-      updated ChangeLog, NEWS, etc.
-      new developer release
-      updated xboard.pot with released version
-      translation: added new Ukrainian PO file from the TP
-      translation: activated Ukrainian translation
-      updated Changelog, NEWS, etc.
-      new developer release
-      fixed segfault in xengineoutput
-      Revert "fixed segfault in xengineoutput", fixed in the backend now (from HGM)
-      malloc.h is not needed
-      updated Changelog, NEWS, etc.
-      update po files
-      new developer release
-      updated pot file and send to translation project
-      translationproject.org: updated Ukrainian translation
-      added NEWS for release of 4.5.3
-      only require 0.17 of gettext
-      updated Changelog, NEWS, etc.
-      updated pot file and send to translation project
-      new developer release
-      translation: updated uk.po
-      translation: updated uk.po
-      Merge branch 'master' into v4.6.x
-      translation: added danish translation
-      marked more strings for translation
-      added new files to po/POTFILES.in
-      updated pot file
-      Merge branch 'master' into v4.6.x
-      new developer release
-      updated version numnber in pot file
-      fixed size of XBoard icon to 48x48
-      translation: updated uk.po
-      marked an error messages for translation
-      removed Iconify function. Should be handled by the window manager.
-      replaced unicode character for "'" in xboard.texi
-      change keybindings that don't use ctrl, make MoveTypeInProc ctrl aware; fixes #35000
-      fix translation for engine list; fixes #34991
-      make entries in CreateComboPopup not translateable; fixes #34991
-      also don't translate selection in ComboSelect; fixes #34991
-      only translate entries in CreateComboPopup if strlen>0; fixes #34991
-      Merge branch 'master' into v4.6.x
-      Updated copyright notice to 2012
-      code cleanup: make function definition confirm to GNU coding style
-      added desktop and mime-type association to autoconf install process
-      added some autogenerated po files to .gitignore
-      forgot to list new desktop files in EXTRA_DIST section in Makefile.am
-      Merge branch 'master' into v4.6.x
-      updated Changelog, NEWS, etc.
-      updated po-filies
-      new developer release
-      Merge branch 'master' into v4.6.x; updated to correct version number for v4.6.0 branch
-      fixed comments for translators: comments starting with TRANSLATORS: are now copied to the po file
-      added some comments for translators
-      translation: updated uk.po
-      updated Changelog, NEWS, etc.
-      updated po/pot files
-      new developer release
-      Merge branch 'master' into v4.6.x; updated to correct version number for v4.6.0 branch
-      add configure test for xdg-programs to install mime types; can be disabled for building of e.g. rpms
-      modified configure and makefile for handling mimedb update
-      translation: updated uk.po
-      Merge branch 'master' into v4.6.x
-      fixed "make install-pdf": missing target for recursive make in po directory
-      add information about our webpage and were to report bugs into the help menu
-      Merge branch 'master' into v4.6.x
-
-Byrial Jensen (26):
-      fix for repeating key issue, with this allissues this bug should be closed; fixes #35000
-      Add NO_GETTEXT flag for combobox. Fix bug #34991
-      Make GenericPopUp() more readable by using more named flags instead of numerals
-      Fix crash when selecting user soundfile due to free() of not malloc()'ed memory
-      Fix a memory leak in Sound Options
-      Fix a possible crash in the file browser
-      Fix possible crash on 64-bit systems when copying game or position
-      Give numeric options the value 0 if a non-numeric text is entered. Before the value ended up undefined.
-      Give numeric options the value 0 if a non-numeric text is entered (one more place). Before the value ended up undefined.
-      Duh! Initialise the argument to sscanf() inside the loop, so it always gets a known value when sscanf() fails.
-      Transfer a pointer to the promoChar from PromotionPopUp() to PromotionCallback(). Fixes #34980
-      Definition of TimeMark moved from 3 c files to backend.h
-      Add #include "moves.h" to gamelist.c for def. of CopyBoard()
-      Remove the last 2 compile warnings in gamelist.h
-      Add 2 strings for translation
-      Fix unportable memory initialisation
-      Fix checking of return value from snprintf()
-      One more string marked for translation
-      Fix buffer possible overflow when writings tags
-      Use ngettext() instead of gettext() for a string to allow better translation.
-      Mark the strings "first" and "sencond" for translation.
-      Add args.h to POTFILES.in and change the interface to ExitArgError() so msg is c format string
-      Fix typo in translator comments explaning "first" and "second"
-      Fix one more typo in the translator comments explaning "first" and "second"
-      One missed translation of cps->which
-      Updated Danish translation
-
-H.G. Muller (375):
-      New parser, written in C
-      Implement yynewstr entry point in new parser
-      Fix o-o castling in new parser
-      Implement Edit-Comment window through generic popup
-      Redo Tags dialog
-      Remember Tags and Comment dialog coordinates
-      Implement sweep selection as alternative for the piece menu
-      Implement sweep selection of promotion piece
-      Fixes to sweep selection
-      Make sweep-select promotions work in WinBoard
-      Alternative sweep promotions
-      Third method of sweep selection
-      Implement Copy Game List menu item for XBoard
-      Implement move type-in for XBoard
-      Refactor move type-in code
-      Fix crash copying game list when there is none
-      Alter treatment of moves with empty squares
-      Fix sweep-promotions patch
-      Update texi file
-      Describe -pieceMenu option in texi file
-      Describe -sweepPromotions in texi file
-      Describe Copy Game List menu item in texi file
-      Describe move type-in in texi file
-      Fix chaining of bottom-row dialog buttons
-      Fix gettext macros in option dialogs
-      Bring structure in appData engine options
-      Put engine initialization code in per-engine function
-      Add UnloadEngine routine
-      Generalize WaitForSecond to WaitForEngine
-      Make engine loadable during session
-      Make engine startup error non-fatal
-      Put gettext markers in generic dialog creator
-      Create conversion tools for language files
-      Fix some warnings and header-file improvement
-      Silence more rpm warnings
-      Fix zippy bughouse partner bug
-      Delay loading of second engine until it is used
-      Fix grayout XB Match Options in ICS mode
-      Implement flock in WinBoard
-      Remove building rule for parser.c from WB makefiles
-      Lock game an position file during writing
-      Add callback possibility to combobox selection
-      Refactor code for loading games and positions in match
-      Fix crash on empty Engine Settings dialog
-      Display note in stead of empty engine-settings dialog XB
-      Implement Tournament Manager
-      Calculate and display tourney result
-      Allow switching off match mode through menu
-      Load new logo on engine change WinBoard
-      Implement Load Engine dialog in WinBoard
-      Fix error message on engine load
-      Make option to draw second engine from first list
-      Implement Tournament Options dialog WinBoard
-      Lift limitation of text length in generic dialog XB
-      Lift length-limit on text-edits in WB generic popup
-      Fix PV walking in analysis mode
-      Fix generic combobox bug
-      Improve sizing of comment and tags dialogs
-      Add default extension in file browser
-      Fix stopping of match in tourney mode
-      Fix exit popup in tourney mode
-      Fix range of tourneyType spin WB
-      Add partcipants at bottom in tourney dialog (WB)
-      Add WB new popup prototypes
-      Plug memory leak, filenames relative to installDir
-      Put saveGameFile in tournament dialog
-      Save time-control settings in tourney file
-      Let XB generic popup define default file extensions
-      Add -first/secondPgnName option
-      Fix resetting engine options
-      Make book-edit function WB
-      Let Shift+RightClick on PV actually play the PV moves
-      Import WinBoard language files into git
-      Allow changing MultiPV setting from Engine-Output window
-      Fix button sizing in generic popup
-      Let ParsePV always generate SAN move
-      Automatically play moves of clicked PV in analyze mode
-      Add option -absoluteAnalysisScores
-      Add -userFileDirectory option
-      Make 'add to list' default in Load Engine dialog
-      Improve WB Load Engine dialog texts
-      Implement Edit Book in XBoard
-      Recode some po files
-      Adapt default directory of lng2po
-      Include learn info in book edit
-      Alow promotions and drops in book-editing
-      Take account of holdings in book key
-      Fix initialization of engine state
-      Add secondry adapter command for UCCI or USI
-      Make engine startup failure non-fatal in WinBoard
-      Let mentioning completed tourney file add one cycle
-      Fix CR in multi-line WinBoard text-edits
-      Allow generic dialog to ignore OK
-      Add Swiss tourneys through pairing engine
-      Fix ArgTwo warnings
-      Fix layout tournament Load Engine dialog WB
-      Fix -matchGames option
-      Improve Tournament dialog layout WB
-      Let XBoard propose name of tourney file
-      Print sensible window title during tourneys
-      Improve quoting of engine name on install
-      Fix interrupting tournament
-      Fix round-robin schedule
-      Fix clock mode in tourney starting from -ncp mode
-      Give error popup when pairing engine fails
-      Fix concurrency in Swiss tourneys
-      Fix display of last move of last match game
-      Clear Engine-Output pane when initializing engine
-      Fix display of logos
-      Fix crash at end of Swiss tourney
-      Redo New Shuffle Game dialog with generic popup
-      Some refactoring in xoptions.c to separate out front-end
-      Redo Time Control dialog with generic popup
-      Add icon to WB for tournament files
-      Update WB docs for tourney manager
-      Fix default of -remoteUser
-      Change long form of -tf option to -tourneyFile
-      Make non-existing opton in settings file non-fatal
-      Remove stray else
-      Redo Move History with generic popup in WinBoard style
-      Make WB generic popup translatable
-      Update window itle after last game of match
-      Add Score in Move List option to general options dialog XB
-      Use sound for ICS tells also with engine telluser popups
-      Fix crash on clearing new Move List window
-      Cure flicker in Move History window, fix highlighting
-      Add -fSAN / -sSAN options
-      Fix compile errors WinBoard
-      Increase efficiency of SAN generation / disambiguation
-      Fix some warnings
-      Update texi file
-      Modified po
-      Fix texi file, and update it further
-      Add Absolute Analysis Scores in Genral Options dialog XB
-      Allow double-digit rank numbers
-      Create some space in WB New Variant dialog
-      Allow promotion to Pawn with legality testing off
-      Implement Grand Chess
-      Add tab stops in WB generic popup
-      Reorder controls in Engine Setings dialog WB
-      Fix drop moves on boards with more than 10 ranks
-      Fix crash on making too-long FEN
-      Fix coords display on large boards
-      Fix resetting searchTime if other TC mode is chosen (XB)
-      Fix writing searchTime in tourneyFile
-      Fix parser.c line endings
-      Let PGN parser accept lower-case piece in drop moves
-      Improve -showTargetSquares on click-click moves
-      Let -sweepPromotions also work for click-click moves
-      Display score/depth in Eval Graph title
-      Print 50-move counter in Engine-Output title
-      Add -scoreWhite option
-      Let WB eval graph react ot single left-click
-      Print reversible plies done in stead of plies to go
-      Improve Eval Graph  with -evalZoom and -evalThreshold
-      Write more labels on score axis of eval graph
-      Put grab on sweep-selecting in Edit Position
-      Disable -showTargetSquares in ICS mode
-      Suppress some XBoard warnings
-      Fix crash on OK after Save Changes in Tags and Comment popup.
-      Give WinBoard Game List its own font
-      Allow null move in analysis and edit-game mode
-      Force Move History refresh after loading/reverting variation
-      Allow entry of variations in PlayFromGameFile mode
-      Implement searching games in Game List for a position
-      Parse PGN tags without allocating memory
-      Print progress during load / selection of game
-      Debug position selection
-      Add plain arrows as key binding for stepping forward/backward
-      Better fix of crash on empty game list
-      Fix paging
-      Delay file loading to allow expose event first
-      Speed up parser
-      Allow deletion of last book move
-      Add key bindings for loading next/previous game of list
-      Fix up/down arrows in game list
-      Allow substitution of engines during tournament
-      Fix generic-popup failure after empty engine-settings dialog
-      Fix crash on start without settings file
-      Add -useBoardTexture and -usePieceFont options
-      Translate search texts
-      Fix use of random
-      Allow two-games-per-opening to work with book
-      Fix ICS move-list header mistaken for null moves
-      Replace Analyze File by Analyz Game function
-      Fix quoting in Load Engine dialog
-      Fix treatment of PGN score/depth info with linefeeds in them
-      Fix display state after failed analysis attempt
-      Fix crash on typing non-existent enginein Load Engine dialog
-      Extra buttons in WB Tournament dialog
-      Slightly decrease sensitivity of sweep actions
-      Auto-popup ICS Input Box
-      Upgrade -serverMoves option
-      Add -afterGame option
-      Make DoSleep front-end wrapper for msec sleep
-      Move HistorySet to back-end
-      Fix write failures in concurrency
-      Fix some warnings (prototypes)
-      Clear fSAN option before new engine load
-      Fix LoadGameOrPosition starting up engine
-      Keep book file open
-      Make too-long game non-fatal
-      Fix resetting -fSAN on engine change
-      Fix position loading in tourneys
-      Make book-window update part of HistorySet
-      Prevent Edit Book window from stealing focus (WB)
-      Add Dutch WinBoard translation
-      Remove paragraph about .Xresources from texi file
-      Update texi file for position search
-      Update texi file for new features
-      Reactivate Falcon Chess
-      Add Romanian lng file
-      Reset initString and computerString on engine load
-      Add option -discourageOwnBooks
-      Add control to set -discourageOwnBooks WB
-      Fix crash on loading garbage game file
-      Fix invalid combobox entry WB
-      Print message on wrong use of Clone Tourney
-      Fix crash on adding items near book end
-      Refine clock adjusting
-      Fix PV walking with -fSAN
-      Fix duplicate loading of second engine in tourneys
-      Quickscan
-      Translate search-mode strings
-      profile
-      Debug position search cache
-      Implement flipped search
-      Translate search strings
-      Dynamically allocate move cache
-      Speed up position search and consider side to move
-      Put 'Load Next' button back in WB Game List
-      Fix some warnings
-      Fix Load Options dialog WB
-      Update Dutch lng file
-      Update language.txt file
-      Incorporate variant type in book hash key
-      Fix crash on loading garbage game file
-      Use other interpretation of Asia rules for chase detection
-      Add mechanism to translate variable messages in WinBoard
-      Let perpetual-chase message mention square
-      Change chase message in .lng files
-      Don't adjust clock on right-click in EditGame mode WB
-      Fix two warnings
-      Clear board markers when moving to other position
-      Change default sweep-promotion choicein queenless variants
-      Set pieceToCharTable by setup command even when ignoring FEN
-      Accept setup command in variant fairy even with legality testing on
-      Fix handling of -secondOptions option
-      Add feature-override options
-      Fix WinBoard  clock-click bug
-      Ignore ICS game starts when already in game
-      Show 50-move counter also when observing ICS games
-      Fix parsing of O-O castling in variant janus
-      Refrain from making unnecessary resize X request
-      Put promo-suffix on ICS move in variant seirawan castlings
-      Change encoding of seirawan ICS gating-castlings
-      Add -afterTourney option
-      Fix alignment of generic browse button XBoard
-      Fix arrow highlighting in mono-mode XB
-      Fix showTargetSquares in mono-mode XB
-      Fix switching back from mono-mode XB
-      Fix legality of Spartan promotion to king
-      Fix out-of-bounds access in check test
-      Allow setting of holdings with edit command
-      Fix menu grayout after illegal move
-      Fix sending of S-Chess gating moves to ICS
-      Fix initial holdings ICS seirawan games
-      Fix ICS castling rights
-      Don't test drops as mate evasions in variant seirawan
-      Fix format in temporary timing printf
-      Clip texts on menu bar
-      Next try for menu-bar sizing
-      Use <Enter> in stead of Ctrl+. for peeking last move
-      Describe -overrideLineGap option in texi file
-      Try to not confuse ICS rating adustments as shouts
-      Fix parser for variant seirawan
-      Fix parsing of faulty PGN tags
-      Implement peeking previous position in WinBoard
-      Abandon single-letter menus in tinyLayout
-      Clear square markers on new game
-      Add icons for PGN and tourney files
-      Add xml file for defining mime types
-      Add desktop files for PGN viewer and tournament player
-      Fix crash at match end
-      Fix crash in auto-comment
-      Implement -viewerOptions
-      Remove the direct commands to the engines
-      Update texi file and remove duplicate control
-      Install icons directly
-      Install desktop files directly
-      Install mime types directly
-      Open WB startup chat boxes only after logged on
-      Fix seek graph for VICS
-      Add Ctrl-D as alternative to Ctrl+Alt+F12 in WinBoard
-      Add control for overrideLineGap in WB Board dialog
-      Exempt variant seirawan from -disguisePromoted inheritance
-      Enable WB time-control dialog even when no clock mode
-      Fix height board dialog
-      Fix re-allocation of PGN-cache memory
-      Add new translations to WB language file
-      Use same translation of "vs." everywhere
-      Fix 4 warnings
-      Fix printing non-numeric kibitz with -autoKibitz
-      Suppress empty lines when observing on VICS
-      Fix seek-graph popup and  popdown
-      Give focus to board window after ICS login
-      Reset protocol version before loading new engine
-      Prevent unnecessary loading of engines
-      Fix arrow damage with highlightDragging XB
-      Implement GenericUpdate function
-      Implement Clone Tourney button XBoard
-      Incease size of WB array of translated items
-      Make New Variant dialog visible in mono-mode
-      Fix fix of switch to mono-mode
-      Increase max nr of engines to 2000
-      Fix registering of EditTagsProg
-      Put recently used engines in WB menu
-      Fix TidyProgramName
-      Allow grouping of engines in engine list
-      Fix bug in WB combobox readout
-      Create separate debug fil for each tourney game
-      Implement -pgnNumberTag option
-      Put move number in Eval Graph title
-      Implement kludge to set options through Move Type-in
-      Fix MAXENGINES in WinBoard
-      Fix non-bug in WinBoard
-      Add 5 missing strings to WinBoard translation template
-      Create room in some WB dialogs for translations
-      Update Dutch WinBoard translation
-      Configure XBoard engines and textures
-      Derive height of text-edits in dialogs from message widget
-      Fix heights in Engine Output window XB
-      Fix position of checkbox XB
-      Fix crash on empty combobox menu XB
-      Cosmetic: change 4.5 to 4.6 in xboard.conf comment
-      Delete some unused WinBoard bitmaps
-      Remove some of the most verbose debug output
-      Fix unloading of first engine on tourney start
-      Fix sleeping bug
-      Fix warning
-      Better solution to button-height problem
-      Put front-end support for -recentEngines in XBoard
-      Fix popdown seekgraph on forward-event XB
-      Fix heigth of multi-line labels
-      Configure some new features switched on
-      Make -pgnNumberTag option setable from menu
-      Fix button chaining and combo/textbox label height
-      Configure wider game list
-      Fix switching animation masks on variant switch
-      Fix date in copyright notice about-box
-      Also configure sweep selection
-      Update texi file
-      Fix OK button of error popup
-      Leave height of row that only contains buttons free
-      More updating of texi file
-      Merge branch 'master' of git.sv.gnu.org:/srv/git/xboard
-      Remove a debug printf
-      Fix use of middle button for position setup
-      Don't leave piece selected after piece menu
-      Fix button grab for sweep selection
-      Move change of debug file to before game load
-      Delete some load-game debug printing
-      Implement -autoCopyPV
-      Implement -serverFile option
-      Undo translation of cps->which = first/second
-      Fix translation of EngineOutputTitle WB
-      Use combobox line for recent engines when available
-      Make frame width configurable in XB
-      Use more reliable X-call for getting window position
-      Implement -stickyWindows in XBoard
-      Keep XBoard windows attached on resize
-      Fix piece symbols on switch back to variant normal
-      Fix two 64-bit warnings
-      Fix 50-move counter in ICS mode
-      Suppress recent-engines menu items in ICS mode
-
-Thomas Adam (1):
-      (tiny change) Clarify "-name" option is Xt-only
-
-Tim Mann (9):
-      Use getaddrinfo instead of gethostbyname.  Hopefully this makes us compatible with IPv6 and with hosts that have more than one IP address.  However, I don't know of any chess servers that have either of those properties, so I couldn't test that.  I did test that xboard still works with freechess.org and chessclub.com and that it gives an error message for invalid host names.
-      Fix a size mismatch in scanf.  Untested, but the code could not have
-      Move "hide thinking" option into alphabetical order.
-      Fix display of international characters outside the ASCII range.
-      Added "misc-fixed" as a fallback font to handle locales where
-      Add a final wildcard default for fonts.  This gives XCreateFontSet
-      The empty string can't be translated and it causes the gettext
-      Fixed small bugs in several .po files, enabling these translations to
-      Internationalize the file browser.
-
-
-** Version 4.5.3a **
-
-(git shortlog --no-merges v4.5.3..HEAD)
-
-H.G. Muller (2):
-      Fix compile errors WinBoard
-      Let WB Makefile build non-JAWS version by default
-
-** Version 4.5.3 **
-
-(git shortlog --no-merges v4.5.2a..HEAD)
-
-Arun Persaud (2):
-      new developer release
-      better contrast for XBoard icon on a dark background
-
-H.G. Muller (43):
-      Fix some warnings and header-file improvement
-      Fix warnings XBoard file browser
-      Fix zippy-partner bug
-      Silence more rpm warnings
-      Add tab stops in WB generic popup
-      Reorder controls in Engine Setings dialog WB
-      Fix Unfinished sound during ICS examining
-      Fix JAWS reading of Engine Settings dialog
-      Create some space in WB dialogs for translations
-      Remove some duplicats from WB language template file
-      Fix translatability of Spartan Chess menu item WB
-      Fix translation of spoken composite messages
-      Popdown Comment window on new game
-      Force Move History refresh after loading/reverting variation
-      Fix crash on empty Engine Settings dialog
-      Display note in stead of empty engine-settings dialog XB
-      Fix generic-popup failure after empty engine-settings dialog
-      No clearing of Engine-Output memos on stat01
-      Fix button sizing in generic popup
-      Fix vscrolling in XBoard Engine-Output window
-      Obey san feature when sending book moves
-      Fix display of last move of last match game
-      Fix parameter handling in adapter command
-      Fix type of shuffleOpenings
-      Fix crash on switching sound in Vista
-      Fix empty-string option values in XBoard
-      Add -at and -opt options as alternative for @
-      Fix default of -remoteUser
-      Make non-existing option in settings file non-fatal
-      Remove stray else
-      Restore echo after ^C in ICS password
-      Don't one-click move when legality testing is off
-      Update window title after last game of match
-      Fix missing files in file browser
-      Fix use of random in XBoard shuffle dialog
-      Better fix of crash on empty game list
-      Implement paging in XBoard Game List
-      Clear Engine-Output pane when initializing engine
-      Fix AppendComment
-      Fix playing sounds when -soundProgram is empty
-      Implement NVDA support in JAWS version
-      Suppress playing of book moves with weight 0
-      Limit width of menu bar in XBoard
-
-** Version 4.5.2a (Winboard only) **
-
-(git shortlog --no-merges v4.5.2..HEAD)
-
-H.G. Muller (1):
-      Fix Engine Settings button options in WinBoard
-
-** Version 4.5.2 **
-
-(git shortlog --no-merges v4.5.1..HEAD)
-
-Arun Persaud (13):
-      Fix "make install" on Os X10.6.6 (removed a "/")
-      fixed wrong default for polyglotDir mentioned in docs.
-      Fix bug introduced in commit 89b4744: removed a "/" and forgot to add it in the config file
-      check if malloc.h is present before including it
-      removed check and #includes for malloc.h, since it's not needed
-      fixed 64 bit warnings by casting integers to intptr_t before casting to int
-      updated Changelog, NEWS, etc.
-      new developer release
-      configure: renamed bitmapdir to pixmapsdir, since it installed only pixmaps. also changed name of default dir
-      configure: added install of sounds in .../games/xboard/sounds/default
-      configure: added install directory for bitmaps files: .../games/xboard/bitmaps/default/
-      configure: enable silent rules by default
-      new developer release
-
-H.G. Muller (57):
-      Fix nps bug
-      Fix unintended translation in debug file
-      Improve repairing damage of arrow highlight XBoard
-      Fix flipBlack option XBoard with board texture
-      Fix two bugs in reading position diagram
-      Fix parsing bug of FRC castling
-      Fix bugs in FRC castling rights
-      Fix display of promotion piece in ICS superchess
-      Put insertion point at end of text on SetFocus
-      Add file-browser option to just return name
-      Make generic XBoard popup, and implement 2 dialogs
-      Add browse button to generic popup
-      Add board dialog XBoard
-      Add ICS options dialog
-      Make sounds dialog for XBoard
-      Redo adjudications dialog through generic popup
-      Redo common-engine dialog with generic popup
-      Redo new-variant dialog with generic popup
-      Create General-Options dialog
-      Implement Machine Match menu item and options dialog
-      Make generic dialog popup reentrant
-      Merge SettingsPopUp into GenericPopUp
-      Let generic popup generate Engine Settings dialog
-      Activate -path and -file options
-      Redo ICS input box with generic popup
-      Make a kind of ICS text menu in XBoard as a dialog
-      Fix linegap option in board dialog
-      Fix animation masks on changing piece pixmaps
-      Let file browser filter on extension
-      Refinements to generic popup and color picker
-      Fix crash on opening ICS Text Menu
-      Fix path browsing in WinBoard
-      Fix use of game/position file in first match game
-      Fix saving of XBoard fonts with spaces in name
-      Fix game-list highight error when filtered (WB)
-      Fix startup focus of board window
-      Fix crash on closing dialogs in wrong order
-      Fix changing of float setting by generic popup
-      Couple mouse wheel to v-scrolls in file browser
-      Let double-click select file in file browser
-      Block selection of a directory when file is needed
-      Reorganize texi description
-      Update texi file
-      Remove outline-pieces option from board-options dialog
-      Fix running of clock during hash allocation engine
-      Fix switching between pixmap and bitmap pieces
-      Fix size limit on 'save as diagram'
-      Fix gamelist highlight
-      Make user wav file available for try-out in sound dialog
-      Change default sounds in Xboard menu
-      Configure some default sounds
-      Remove some bitmaps from install
-      Limit install of sound files to those in menu
-      Change texture-install directory to pixmaps/textures
-      Fix crash on using Engine #1 Settings in ICS non-zippy mode
-      Fix shogipixmaps
-      Fix gettext macros in option dialogs
-
-Kamil Blank (1):
-      Added missing fclose()
-
-** Version 4.5.1 **
-
-(git shortlog --no-merges v4.5.0..HEAD)
-
-Arun Persaud (9):
-      add DIFFSTAT and SHORTLOG to tar-ball
-      Revert "Implement -reset option feature in WinBoard"
-      added history.c to the tar-ball. Needed for Winboard
-      added missing header file for sprintf
-      added missing #includes and missing prototypes to filebrowser
-      fixed configure script to correctly detect Xaw3d library
-      updated configure.ac to check for Xaw header files
-      updated Changelog, NEWS, etc.
-      new developer release
-
-H.G. Muller (14):
-      Fix deselection of greyed-out variant button (WB)
-      Fix MSVC compilability
-      Fix 64-bit Windows compilability
-      Put warning in HTML help
-      Fix unmarked translation
-      Fix Alfil bug
-      Fix variant janus size prefix
-      Fix Xiangqi King facing
-      Fix showing of user move after adjudication
-      Make language choice from menu persistent
-      Fix ICS channel 0
-      Fix MSVC snprintf problem
-      Fix some resource leaks
-      Fix two typos in option names in texi file
-
-** Version 4.5.0 **
-
-(git shortlog --no-merges v4.4.4..HEAD, removed duplicated from earlier versions due to cherry-picking)
-
-Arun Persaud (38):
-      fixed prototype for AppendComment
-      clean-up
-      fixed Makefile.am to handle config file correctly
-      new developer release
-      fixed hardcoded location of config file for xboard
-      fixed compiler warning for file-browser code
-      Revert "Repair settings-file name"
-      removed some garbage from configure.ac that got added a while ago
-      fixed internationalization for winboard
-      security fix: replaced strcpy with safeStrCpy from backend.c
-      security fix: replaced sprintf with snprintf
-      sizedefaults has 9 members, the last line of the array (NULL) only set 7.
-      cleaned up -Wall warnings (apart from settings some parentheses)
-      added new case for (Chessmove) 0 in common.h
-      bugfix: missing array index
-      add option for silent builds
-      security fix: replaced some strcat with strncat
-      added warning if icsLogon file couldn't be opened
-      adding gnu-readline support
-      fixed some typos that were introduced during the sprintf->snprintf changes
-      bugfix: fixed readline support with icslogon option
-      fixed buffer size for snprintf
-      Revert "bugfix: fixed readline support with icslogon option"
-      Revert "adding gnu-readline support"
-      added latest version of parser.c
-      new developer release
-      typo in date of developer release
-      merged readme_HGM.txt into the NEWS file
-      removed trailing whitespaces from NEWS
-      added a desktop file
-      fixed a typo in the configure script output
-      replace hard coded paths with path from configure script
-      added rlwrap tip to FAQ
-      new developer release
-      fixed automake process: xboard.conf couldn't be generated if $srcdir was not the current directory
-      Updated copyright notice to 2011
-      release of version 4.5.0
-      updated parser.c form parser.l
-
-
-Eric Mullins (1):
-      Changes needed to compile master branch.
-
-H.G. Muller (353):
-      add fixed time per move to the WinBoard time-control menu dialog
-      let the clocks run in -searchTime mode
-      Some code refactoring and cleanup; one small bug fix
-      Integrate castling and e.p. rights into board array; bugfix for EditPosition
-      fix for new way of saving castling and e.p. information
-      variation-support patch
-      This patch gives a better handling of comments in PGN files, and adds the variation as comment to the main line on using Revert in local mode.
-      fix castling rights when copying FEN to clipboard
-      improve thinking-output for mulit-variant
-      refactoring of engineoutput
-      refactoring evalgraph code
-      1st step for moving option parsing from winboard to the backend
-      2nd step for moving option parsing from winboard to the backend
-      same argDescriptor parsing for Xboard and Winbaord
-      fix window positioning
-      use linux style options for config file and add a system config file for XBoard
-      restoring windows (EngineOutput and MoveHistory) on startup
-      A better and more flexible way of invoking Polyglot
-      improves the XBoard handling of the engine command line
-      implements the eval-graph window for XBoard
-      Suppress saving font settings.
-      Correct XBoard default debug file name
-      Delete old indirection settings-file code
-      Make WinBoard defaults for -fd and -sd equal to "." rather than empty strings.
-      Change format of -adapterCommand.
-      Fix NoncompliantFEN defaults.
-      Fix default castling rights on reading incomplete FEN
-      Implement castling in -variant caparandom
-      Fix castling rule assignment in shuffle games
-      Let XBoard print version with argument --version or -v
-      Improve layout of Engine #N Settings dialog
-      Allow popup-less (fatal) exit of engine after tellusererror
-      Allow Ctrl-C copying from EngineOutput window text to clipboard
-      Harmonize declarations of XBoard and WinBoard
-      Newly lexed winboard/parser.c
-      Display PV on right-clicking board
-      Display PV right-clicked from EngineOutput window
-      Indicate squares a lifted piece can legally move to
-      Allow editing of holdings in EditPosition mode
-      Fix new args parsing of -lowTimeWarningColor
-      Docs update for new features
-      Fix omission in castling refactoring for ICS received boards
-      Fix reading FEN castling rights for knightmate and twokings
-      Fix parsing of O-O and O-O-O after FEN pasting in FRC
-      Fix bug in XBoard PV display
-      Add fixed-time/move button in XBoard time-control dialog
-      Refactoring of move-history code
-      Convert to DOS line endings
-      Port game-list filtering to XBoard
-      Move duplicat gamelist code to backend
-      Allow <Enter> to apply filter in XB GameList filter edit
-      Use arrow keys in XBoard GameList for entry selection
-      Refactoring of adjudication code
-      Also adjudicate after user move
-      Also allow user to claim by offering draw before his move
-      Send FICS atomic claim to ICS if move creates draw after offer
-      Use FICS atomic draw claim for sending move in zippy mode
-      Fix width of filter field in XBoard GameList
-      Save fonts in XBoard settings file per boardSize
-      Fix bug in edit-position of holdings
-      Fix of ancient WB bug: test integer option values for validity
-      Refactoring of game-list-options dialog
-      Game-List options dialog for XBoard
-      Merge gamelistopt sources into gamelist source files
-      Right-click refactoring, step I
-      Right-click refactoring: step II
-      Right-click refactoring: step III
-      Remove stray dot from WinBoard makefiles
-      Repair damage to -autoKibitz done by FICS atomic zippy claim
-      Shorten autoKibitz confirmation on FICS
-      Implement SeekGraph in XBoard
-      Dynamic Seek Graph
-      Use right mouse button to view seek ads
-      Use squares for computer seek ads
-      One-click moves
-      Fix error that compiler does not notice
-      Add promotions and e.p. to oneClickMove
-      Let second click on piece make only capture, with -oneClickMove
-      Observe a game in the background while playing
-      Do not pop down Seek Graph on on-dot click
-      Match handles with multiple titles for channel Chat Boxes
-      Capture holdings of background observed gamer
-      Allow recalling history in ICS input box with arrow keys
-      Interface XBoard to GhostView file-browser dialog
-      Fix right-edge spillover of Seek-Graph dots in WinBoard
-      Allow ICS context menu to pop up a Chat Box on clicking handle
-      Pop up ICS text menu with default item under mouse pointer
-      Seek-Graph bugfix: disappearing output in ICS console
-      Bugfix smart capture
-      Handle display of PV that starts with other move than played
-      Add upload of game to ICS for examining
-      Make WB Chat Boxes wrap and handle URLs
-      Allow arrow keys in WB Chat Box to access command history
-      Make Chat Windows pseudo-tabbed
-      Add -chatBoxes option to open Chat Boxes at startup
-      Allow WB Chat Box to be dedicated to shouts and 'it'
-      Let the sounds sound on receiving a message in a Chat Box
-      Add option -shuffleOpenings
-      Add Annotate item in Step menu
-      Support playing through PGN variation comments
-      Let yy_text determine progress of PV parsing
-      Newly lexed parser in XBoard directory
-      Don't disturb background observe when receiving new piece
-      Insert autoKibitz continuation lines at end of line
-      Allow walking a kibitzed PV
-      Fix copying of kibitzed info in Engine-Output window
-      Put newly opened Chat Box on top
-      Repair settings-file name
-      Repair background-observe patch
-      Use side-by-side boards to display background game
-      Create space in WinBoard ICS-options dialog
-      Put new options in WB ICS-options dialog
-      Group Chat Boxes with console in stead of board window
-      Add option Display Logo in WB general-options menu
-      Fix display of uninitialized boards in background observe
-      Print seconds with 2 digits in backgroundObserve status line
-      Redraw second board on expose events
-      Mark non-compliant lines of engine in debug file
-      Add kibitzes and c-shouts Chat Box
-      Also capture (numeric) whispers of players for -autoKibitz
-      Add -autokibitz checkbox to UCI-options menu dialog
-      Display PV from Engine-Output window (XBoard)
-      Fix handling username change during game
-      Paint highlights on dual board (WB)
-      Update XBoard docs
-      Allow loading of PGN variations in XBoard
-      Allow adjustment of clocks in any mode with shift+click
-      Update WinBoard html help
-      Update WinBoard RTF docs
-      Change name of Global Settings menu item to Common Engine Settings
-      Let WinBoard recognize ~ in settings file name as HOMEPATH
-      Prevent <Esc> closing chat box
-      Fix disabling of Chat Box navigation buttons
-      Let Chat Boxes pop up above console, rather than on top of it
-      Fix crash on switching to ICS xiangqi game
-      Suppress background observe for boards with own game number
-      Allow any %ENVIRONMENTVAR% in WB settings file name rather than ~
-      Fix rep-draw recognition
-      Allow escape sequences in telluser(error) messages
-      Fix typos in html help file
-      Update README file
-      Alter XBoard key bindings to mimic WinBoard
-      Fix engine stall on perpetual-check evasion
-      Reverse mousewheel action
-      Repair score printing with -serverMoves option
-      Fix e.p. bug in xiangqi with -serverMoves option
-      Ignore checks in 50-move count for Xiangqi
-      Remove font settings from master settings file
-      Adjudicate Xiangqi material draws with Advisor-less Cannons
-      Remove misspelled prototype
-      Remove duplicate testing for cores feature
-      Fix oneClickMove bug
-      Refactoring of material-draws adjudication code
-      Add string option /pieceNickNames
-      Define /firstUCI and /secondUCI as synonyms for /fUCI, /sUCI
-      Suggest default file name in browser dialog
-      Fix erors when compiling with --disable-zippy
-      Add some book-control options
-      Allow match to be started from WB menu
-      Tricked by the grossnes
-      Add -colorNickNames option
-      Improved patch for expansion of WB settings-file name
-      Fix some MSVC compile errors
-      Update .dev files
-      Trivial-draws recognition improved in Xiangqi
-      Do not exit after match when match started from menu
-      Mark XBoard result messages for internationalization
-      Make the ID of all WB dialog items unique
-      Internationalization for WinBoard
-      Do not translate game-end messages in PGN
-      Add some forgotten translation hooks
-      Update docs
-      Update WB translation template
-      Make WB run-time language switch possible from menu
-      Fix JAWS bug saying side to move in ICS play
-      Prevent transmission of spurious promo char to other engine
-      Allow parsing of upper-case machine moves
-      Fix silent bug in drop moves
-      Revert splitting of UserMoveEvent
-      Extend legality testing to drop moves
-      Extend mate test to drop games
-      Strip DOS line endings from parser.l
-      Make board-size overrule options volatile
-      Make Shogi promotion zone board-size dependent
-      Suppress spurious use of SAN castling in mini variants
-      Pass promoChar to SendMoveToICS
-      Remove promotion-piece encoding from ChessMove type
-      Enhance multi-session TC clock handling
-      Allow -timeIncrement to be a float
-      Fix menu translation bug
-      Fix uninitialized variable in book code
-      Change evalgraph scale in drop games
-      Limit multi-session clock handling to non-ICS games
-      Inherit promoted-info that ICS does not give from previous board
-      Adapt WinBoard to Shogi implementation on Variant ICS
-      Fix WinBoard Lance bug
-      Fix bug in ICS variant switch for Shogi
-      Allow lower-case piece indicator in drop-move notation
-      Allow full promotion suffixes on SAN piece moves
-      Add option -variations to control variation-tree walking
-      Disable some very verbose debug printing
-      Implement -flipBlack in XBoard
-      Add set of shogi pixmaps for XBoard
-      Fix merging bug
-      Make starting new variation dependent on shift key
-      Complete WB (western) bitmaps for Shogi at size 33
-      Implement board textures in XBoard
-      The -overrideLineGap option is made to work in XBoard
-      Provide some sample board-texture pixmaps
-      Make -flipBlack and -allWhite option volatile
-      Let -oneClickMove also work in EditGame mode
-      Make Knight hop first straight, then diagonal
-      Suppress promotion popup if piece will explode
-      Animate piece explosions in drag-drop moves and in XB
-      Make deferral default in Shogi promotions
-      Fix spurious promotions with legality testing off
-      Bugfix for safeStrCpy patch for XBoard
-      Bugfix safeStrCpy patch, WinBoard
-      Augment moves of some fairy pieces
-      Delete some stale promotion code
-      Add the actual size-33 Shogi bitmaps
-      Remove validity test on promochar from parser
-      Make test for valid promotion piece color-dependent
-      Remember values set by -firstOptions, -secondOptions
-      Restrict use of a2a3 kludge
-      Implement setup (engine-GUI) command
-      Allow arbitrary nesting of sub-variations in PGN input
-      Fix some warnings
-      Use normal SAN for wildcard pieces
-      Use SAN even on illegal moves
-      Give Lance moves of Berolina Pawn
-      Keep last PV while clearing engine-output display
-      Fix bug in parsing illegal Pawn captures
-      Newly lexed parser.c
-      Let Engine #2 Settings start second engine
-      Allow clicked name internal to the icsMenu command string
-      Make safeStrCpy safe
-      Restrict use of escape expansion
-      List Hint with compliant commands
-      List some undocumented commands as compliant
-      Fix mouse-driver buglet
-      Fix one-click bug
-      Fix acceptance of null-move with legality testing off
-      Add -variant seirawan to menu
-      Implement variant seirawan
-      Implement entering gating moves with mouse
-      Use Falcon and Alfil as built-ins for Seirawan chess
-      Accept Seirawan-style gating suffixes
-      Fix one-click moving on up-click
-      Fix home-dir crash
-      Fix default holdings size for variant seirawan
-      Fix safeStrCpy
-      Fix safety crash when appending comments
-      Define moves for Dragon Horse outside Shogi
-      Make yyskipmoves also suppress examining of drop moves
-      Change representation of Bede in variant fairy initial position
-      Give Lance moves of Amazon in variant super
-      Make Hoplite moves irreversible in Spartan Chess
-      Reorganize WinBoard menus
-      Reorganize XBoard menus
-      Display error for wrong use of Machine Match
-      Fix spurious scores in comments
-      Revive Analyze File menu item in WB
-      Let Analyze File annotate the loaded game
-      Restrict drops in variant seirawan to back rank
-      Bugfix XBoard menu translation
-      Separate menu text from menu name in XBoard
-      Adapt some XBoard menu texts
-      Apply gettext macros to menu texts
-      Fix Shogi promotion popup
-      Let move-history window scroll to bottom after adding move
-      Alter WinBoard menu text
-      Divorce the Edit and Show Tags/Comment menu items
-      Add XBoard key bindings for Revert and Truncate
-      Update info on key bindings in texi file
-      Update texi file for new menu organization
-      Add description of Game List Options in texi file
-      Alter descriptionof Analyze File menu item
-      Improve drawing of highlight arrow
-      Make WinBoard clocks translation-proof
-      Configure -inc as volatile option in XBoard
-      Configure XBoard to use wood board texture by default
-      Write key bindings in XBoard menus
-      Allow line-straddling result comments
-      Peel PV out of comment
-      Fix sub-variation display with negative score
-      Correct the key bindings fo view menu in texi file
-      Move Hint and Book items to Engine menu in XBoard
-      Configure EGTB cache size in adapterCommand
-      Also exempt variant seirawan from eval-scale doubling
-      Fix fag-fell marker with logos on
-      Let user decide if he wants highlights in blindfold mode
-      Strip CR from xboard.c
-      Port highlighting with arrow to XBoard
-      Configure arrow highlighting as default in XBoard
-      Provide menus for editing WinBoard engine and server lists
-      Add XBoard menu items for arrow highlight and one-click move
-      Fix Edit Game/Position checkmarking in WinBoard
-      Use default logo for user
-      Add handle for translator acknowledgement
-      Create space in dialogs for translation
-      Add one-click move control to WB general-options dialog
-      Resize buttons in WB engine-settings dialog
-      Update translation template
-      Subject WB context menus to translation
-      Fix duplicate menu character for Edit Comment
-      Put OK/Cancel last in tab cycle of some WB dialogs
-      Remove tab stops on first radio button of WB dialogs
-      Change tabbing order in WB sounds dialog
-      Fix order of elements in WB time-control dialog
-      Reorganize order of WB New Variant dialog controls
-      Fix ICS context menu for JAWS
-      Translate menus after creation of JAWS menu
-      Adapt JAWS menu to new menu organization
-      Let JAWS SayString buffer full sentence
-      Subject JAWS menu and spoken strings to translation
-      Update WB language template file
-      Put nr CPU earlier in tab cycle of WB Common Engine dialog
-      Group engine-output memos with engine names
-      Disable some accelerators in JAWS version
-      Allow starting a variation from keyboard entry in WB-JAWS
-      Define Ctrl-R as right-click in WB Comment dialog
-      Fix bug in parsing variations
-      Fix WB promotion popup
-      Fix promotion of Pawn-like Lance
-      Fix promotion suffixon disambiguated piece moves
-      Fix mate test
-      Add variant Spartan Chess
-      Fix spurious reading of old game title by JAWS
-      Fix chat window title
-      Fix right-alignment pproblem in WB ICS window
-      Fix WB font-based piece rendering on variant switch
-      Fix Spartan promotion to King
-      Show move that causes false illegal-move claim
-      Reset win/loss counters before match
-      Reset machine colors after match
-      Fishy fix
-      Fix time in PGN info
-      Fix logo repainting
-      Reset 50-move counter on all pawn-like Lance moves
-      Fix legality testing for promotions
-      Fix move type-in truncating game
-      Fix type-in of drop moves
-      Fix spurious mate test in Edit Game mode
-      Remove superfluous copying of machine move
-      Re-instate load next/prev position menu items
-      Fix WB Sound Options greyout and remove some grossness
-      Fix legality testing of drop moves
-      Move clock-click code to back-end
-      Greyout unavailable variants in New Variant dialog
-      Update texi file
-      Update RTF file
-      Clean up fishy patch
-
-** Version 4.4.4 **
-
-(git shortlog --no-merges v4.4.3...HEAD)
-
-Arun Persaud (1):
-      updated version number to indicate development on 4.4.4
-
-Clint Adams (1):
-      Remove unnecessary double equals from configure.ac.
-
-H.G. Muller (18):
-      Let move parser return ImpossibleMove for off-board moves
-      Prevent engine stall on perpetual-chase evasion
-      Fix bug in sending "usermove" when forcing book moves
-      Pop down old tags on loadng new game in WinBoard
-      Fix game end during dragging
-      Repair animate dragging
-      Fix bug in sending cores command to engine
-      Fix parsing of SAN shogi promotions
-      Fix variant switch on PGN loading
-      Cut board squares out of texture bitmap more cleverly
-      Allow -flipBlack to work with font-based piece rendering
-      Allow font-based piece rendering in board sizes below petite
-      Fix WinBoard game-list title
-      Fix deadlock in match-result display
-      Fix regression in colorization of zippy-matched commands
-      Fix zippy handling of draw offers from ICS
-      Make some more zippy code obey the --disable-zippy flag
-      Repair exit-popup deadlock patch
-
-
-** Version 4.4.3 **
-
-(git shortlog --no-merges v4.4.2...HEAD)
-
-Arun Persaud (11):
-      updated to unstable version number
-      added missing sounds files to be able to compile on windows
-      new developer release
-      update year in copyright info
-      DOS line endings and 644 mode for woptions.c
-      updated files (AUTHORS, Changelog, etc) for new release
-      new developer release
-      added logo files for xboard
-      new developer release
-      updated winboard/parser.c
-      release of version 4.4.3
-
-H.G. Muller (40):
-      Implement castling for variant CRC
-      Chmod 644
-      Bugfix legality null move in parsing with -testLegality off
-      Fix bug for incommensurate time odds
-      Make WinBoard makefiles use parser.c in XBoard directory
-      Fix piece-to-char table -variant fairy
-      Fix TwoKings ICS castling-rights bug
-      Fix reading castling rights FEN in knightmate and twokings
-      Fix OO-castling in FRC after pasting FEN
-      Accept <Enter> for changing chat partner
-      Use -keepAlive option to determine connection health
-      Fix of ancient WinBoard bug: check value of int options
-      Fix bug in display of logos
-      Remove stray dot from WinBoard makefiles
-      Fix u64 format for cygwin
-      Send continuation lines to chat box they belong to
-      Fix highlighting bug in XBoard
-      Extensive bugfix of -autoKibitz
-      Remove race condition in clock switching
-      Add variant Makruk
-      Change opening array -variant fairy
-      Match handles with multiple titles for channel Chat Boxes
-      Bugfix stale first-click
-      Start insertion point at end of text edits in XB dialogs
-      Fix copying of WB Chat Window contents
-      Bugfix of autoKibitz and Chat suppression in ICS window
-      Fix XB crash on giving keyboard focus to non-text widget
-      Bugfix copying from Chat Box, own lines
-      Fix 'mamer bug' in Chat Boxes
-      Make signedness of castling rights explicit in function arguments
-      Fix copying of kibitzed lines from WB Engine-Output window
-      Do not recognize non-ICS variants from PGN event tag
-      Remake programVersion string after receiving engine features
-      Set keyboard focus at startup to board window
-      Fix window-position upset on failing engine start in WinBoard
-      Fix info lines being used as normal thinking output
-      Correct error in texi file
-      Allow lower-case promochar in moves of type h8=Q
-      Fix Alt+M JAWS command in Two-Machines mode
-      Fix JAWS piece drop cursor, and streamline some sentences
-
-** Version 4.4.2 **
-
-(git shortlog --no-merges v4.4.1...HEAD)
-
-Arun Persaud (7):
-      updated version number to unstable
-      added missing library for build on OS X
-      add Winboard source files into tar-ball
-      removed files that should only be in the windboard directory
-      fixed build on openbsd
-      new developer release
-      fix for bug #28077: xboard needs to link against x11
-
-H.G. Muller (19):
-      cleaned up some debug messages and typos
-      fix crash on engine crash
-      fix casting rights after FEN pasting
-      the last move before the time control now gets its time listed in the PGN
-      fix double start of zippy engine after switch to gothic
-      fix declaration of engineOutputDialogUp
-      fix engine-sync on move-number type-in bug
-      removing some rather verbose debug messages that seem no longer needed.
-      fix bug in bughouse drop menu
-      use xtell for talking to handles, but tell for talking into a channel.
-      fix the irritating wandering off of the MoveHistory window in XBoard on opening/closing.
-      fixed some outstanding pixmaps
-      Fix castling rights when copying FEN to clipboard (again)
-      score sign in analysis mode
-      correctly apply some check boxes from the option menu
-      updates makefiles to include dependency on config.h
-      fix problem with empty string in -firstNeedsNoncompliantFEN
-      double buffer size to prevent overflow
-      remove trailing \r in xboard output
-
-
-** Version 4.4.1 **
-
-(git shortlog --no-merges vold...vnew)
-
-Arun Persaud (24):
-      get "make distcheck" to work
-      reverted .texi file and fixed Makefile.am
-      fixed a few more small bugs reported by Stanislav Brabec
-      fixed some implicit declarations reported by Stanislav Brabec
-      added some more files to be distributed via make dist
-      another bug fix found by Stanislav Brabec
-      more files for git to ignore
-      updated cmail.in to adapt the CVS->git change
-      wrong default value for engineDebugOutput
-      updated version number to 4.4.1.pre
-      getting ready for 4.4.1 release
-      bugfix: segfault when invalid option argument was given (bug #27427)
-      added some comments and formated code
-      cleanup: removed "#if 0" from source
-      cleanup: removed "#if 1" statements
-      cleaned up an old #ifdef in zippy
-      removed AnalysisPopUp. Use EngineOutputPopUp instead
-      forgot to add these two lines to the last commit
-      new alpha version; first one with new naming scheme
-      fix for bug #10990: cmail does not seem to support .cmailgames or .cmailaliases
-      new pre-release version; updated version numbers
-      unguarded debug printf. added the appropiate if statement
-      fixed a regression
-      reformated html to be correctly validated
-
-Chris Rorvick (1):
-      fix printing out help message (list of command line options) (tiny change)
-
-Eric Mullins (31):
-      Swapped 'tell' and 'message' parsing order for colorization.  Sometimes messages are relayed as tells and should be colorized as tells.
-      Use of strcasecmp() broke Visual C++.
-      Add resource ID for new Mute menu item.
-      Previous fix for VC++/strcasecmp() was wrong-- use StrCaseCmp().
-      Added wchat.c to the project files we maintain.
-      Fixed bug dereferencing garbage, causing crash.
-      Simplified future version changes.
-      removed _winmajor if not defined so that VC 2008 can compile the project
-      Updated navigation accelerators, fixing ICS problems.
-      Added URL detection into the console text window for ICS.
-      reverted winboard.c beofre URL commit to correct whitespace conversion
-      added URL detection and provided hotlinks in the ICS client
-      Restructured URL code so it fits better with how winboard is set up.
-      Cleaned up ConsoleWndProc  (not complete, see below)
-      added ics_printf() and ics_update_width() and utility functions
-      Added width updates to ICS client on font and window size changes
-      added code to handle initial width update
-      vsnprintf() must be _vsnprintf() for MSVC
-      Turned off wrap when possible on ICS servers.
-      Added code to prevent unnecessary width updates.
-      Adjusted alternative joining method to obey keepLineBreaksICS
-      Maintainence to support all compilers.
-      silence some compiler warnings
-      Added server width adjustment based on client width changes
-      neglected this for the auto-width updating in xboard
-      Fixed joiner detection, allowing it to work with timeseal
-      Adjustment to joining to work around server not always including space.
-      Added internal wrapping ability.
-      Moved SIGWINCH signal so it can be used...
-      Changes to allow fonts with any charset (such as terminal)
-      Updated compiling instructions.
-
-H.G. Muller (77):
-      added a chat window to keep track of multiple conversations
-      fixed the HAVE_LIBXPM-dependent compile errors
-      allow the result comment as a display item in the game list
-      fixed parse bug for pgn files
-      fix for keepalive and chat window
-      rewrote wevalgraph for better frontend/backend separation
-      added the result comment to the game-list tags when the game list is exported to the clipboard
-      Prepared a system to internationalize the WinBoard menus
-      Made the beep sounds for JAWS board navigation configurable through command-line options
-      Updated the RTF docs for the chat windows, engine-settings dialog, /keepAlive option and new game-list tag
-      added a "Mute All Sounds" item in the WinBoard Options menu, on Eric's request
-      Opening Engine #1 Settings crashed XBoard when there were no text-edit options in the dialog (to which to set keyboard focus)
-      Engine did not start playing when out of GUI book on second move with white
-      fix for edit-position "moves" being sent by XBoard to the engine
-      bugfix for protocol extensions: egtbpath -> egtpath
-      small fixes for the JAWS version
-      fixed loading of saved games via command line
-      worked on premove bug
-      new forceIllegalMoves option
-      updated to winboard internationalization scripts
-      small improvement for JAWS version
-      added forceIllegalMove to xboard
-      fixed premove recapture problem;promotion popup appearing on obviously illegal moves; promotions in Superchess and Great Shatranj
-      removed test for premove
-      fix for bug #27642: Clock jumps strangely in engine mode
-      fix joining of lines split by ICS
-      Added a command-line option -keepLineBreaksICS true/false to control line joining.
-      changed enable menus
-      fix for bug #27666: naming of variants
-      fix for bug #27668: e.p. field still not passed to engine
-      Proper board and holdings size when switching to variants gothic, capablanca, great and super within an ICS game.
-      new bitmap converter (including fill option) and new pixmaps
-      fixed wrong number of arguments for EngineOutputPopUp
-      moved bitmap to correct location
-      fixed engingeoutput routine
-      updated black fairy pieces
-      new mousehandler to correct for premove and promotion popup
-      fixed segfaul in convert.c used to convert pixmaps
-      fix for bug #27751: negative holding counts displayed
-      fixed bug reported in WB forum: second game of a match would not start when using the GUI book
-      partly fix for bug #27715: scaling of menu bar
-      fix for bug #27667: window should be reference to toplevel
-      smarter analysis of the boards that XBoard receives from an ICS
-      fix for bug #27760: debug printf in backend.c and additional check for variant
-      fix for bug #27667: PV line missing in analysis window, part 3
-      fix for bug #27715: 2 (minor) graphic issues
-      fixed bug when switching to variantsuper
-      allowe parsing / disambiguation of SAN moves like Xe4 in certain situations
-      fix for bug #27772: holdings not updated
-      better init for random number generator
-      fix for bug #8847: moving backward while examining on FICS not reported to engine
-      improved mouse handler
-      holdings update and regression fix
-      NPS plays and pondering
-      improved mouse handler
-      fix to the minor graphics issue contained some typos, as was remarked in the bugs reports
-      This patch adds <Enter> to the characters that cause an automatic switch to the ICS console when typed to the board window.
-      fixed some bitmaps
-      removed bitmaps files that are not needed any more
-      replaced defective bitmaps with copies from 4.2.7
-      removed unused v54?.bm bitmaps from resource file
-      The book-probe code forgot to close the book file after opening it.
-      fix for bug #27799: fix for nested-nested-nested variations
-      fix for two compiler warnings
-      fixed bug related to unsigned char in convert.c
-      fix for bug #27790 and 277772.
-      force full redraw in winboard
-      more work on variant switch
-      another bug in VriantSwitch: an unitialized board was printed.
-      removing empty lines from ICS play
-      changed stderr to debug output, since stderr is closed in winboard
-      quick fix for "White Mates" in parser.l
-      fixed jaws version
-      fix for bug #27826: ported two options to xboard
-      fix for bug #27826: fixed autoDisplayComment
-      switch focus to the board after loading a game
-      prevent buffer overflow
-
-Tim Mann (6):
-      Fix some issues in the XBoard man page
-      Fix up man page some more
-      Silence warnings when compiling 64-bit xboard
-      Drop an obsolete script that was only used to update my personal web site
-      Make copy/paste position and game use clipboard, bug #27810
-      Further copy/paste fixes
-
diff --git a/TODO b/TODO
deleted file mode 100644 (file)
index 9a84006..0000000
--- a/TODO
+++ /dev/null
@@ -1,1419 +0,0 @@
-Possible improvements   **=somewhat higher priority
----------------------------------------------------
-
-20. Some way to back up, explore variations, then return to the main
-line and restore moves we backed out.  Should also support exploring
-side branches while loading a game file.  Push/pop buttons?  Button to
-fork another xboard in same state as current one?
-
-20a. Allow side branches to be remembered in game files (and
-understood on LoadGame).  Use PGN variation notation.
-
-**62a. Support series of time controls as in later gnuchess 4.0.x
-versions (and real tournaments!).  Needs a protocol extension to
-"level"; this is now planned for protover 3.
-
-62b. Perhaps we could also support the kind of clock where you get K
-seconds per move, plus a reserve of J seconds per game that is used
-when a move takes more than K seconds.  The degenerate form of this
-with J=0 is desirable in itself.  Needs a protocol extension.
-
-68. WinBoard has some features not in xboard.  Among others:
-68a. LoadGameOptions dialog             (good to add)
-68b. SaveGameOptions dialog             (good to add)
-68c. TimeControl dialog                 (good to add)
-68g. Font dialog.                      (leave out)
-68h. Colors dialog.                    (leave out)
-68i. Board size on Options menu         (good to add)
-68j. Resize with mouse
-68k. Highlight dragging
-68m. Move typein from keyboard.         (good to add)
-
-69. xboard has some features not in WinBoard.  Among others:
-69c. Font size selection by pattern fill-in. (leave out)
-69d. Alternate bitmaps specified at runtime. (good to add, often requested)
-69e. Flashing.
-
-71. Allow restart after ICS logout instead of exiting?  Many requests
-for this.
-
-71a. Would be useful to drop into NCP mode after ICS logout and allow
-for reconnect later.  For instance, this would let you save your last
-partial game if you didn't have autosave on.
-
-72. Allow switching among ICS, NCP, GNU modes??
-
-74. Observe/play multiple games, each with its own window.  Hard.
-
-80. Clone command.  Saves current game to a file foo, then starts up
-another copy of xboard with -lgf foo.  Should probably note current
-state of some options and give command line flags to set them the same
-way in child.  What about -ncp mode, though?  Might want that to be
-different.  Would be nice to have a -moveNumber flag to position the
-child to the same move number in the current game.
-
-91. Would be nice to have an option to overwrite save file instead of
-appending.
-
-95. "Have the clock indicate how long the computer/player has been
-thinking for when the -st option is used. This should be how long for
-the current move only." (Dino Dini)
-
-97. "Have the ability to change the level of the gnuchess during a
-game. For analysis purposes, sometimes it is useful to have the
-computer think really hard about certain positions." (Dino Dini)
-
-98. Reorganize the source and split it into more files.
-
-107. Changing time control during a game could be made to work.
-Current (WinBoard only) way of changing at start is suboptimal.
-
-**108. Could add search depth and time per move to (WinBoard)
-TimeControl dialog.
-
-140. LoadPosition needs better checking for invalid data.
-
-142. xboard needs a real file chooser dialog.  Jeff Woolsey submitted
-code to merge in the one from Ghostview, but said it works only on
-X11R5 or later.  I have not yet tried his code or looked to see if it
-could be made to work on X11R4.
-
-147. Improve display of held pieces in bughouse mode, putting them
-closer to the player's side of the board, and perhaps using icons (and
-allowing dragging from the icons to drop a piece).  Actually, moving
-the clocks would be beneficial too, so that it's easier to visually
-associate the right clock with the right player when looking at two
-boards during a bughouse match (with two copies of xboard running).
-Maybe multiple window layouts should be user-selectable. [4.3 supports
-drag-drops from holdings]
-
-150. Keep track of castling availability, en-passant availability, and
-FEN half-move clock (for 50-move rule), pass the availability
-information to the move generator through the existing interface, and
-load/save it in the FEN code. [Fixed in 4.3]
-
-150a. Note that not keeping track of ep creates a bug in mate
-detection.  In certain positions, moving a pawn from the 3rd to 4th
-rank gives mate, but it is not detected because if the pawn had moved
-to the same position from the 2nd rank, ep capture would have been
-legal and there would be no mate. [problem disappeared in 4.3]
-
-150b. Note that although we try to put in e.p. availability when
-writing FEN, this works only if we have the move that got us to this
-position in the moveList. If we load a position from FEN, the
-e.p. availability field of the FEN is lost. [disappeared in 4.3]
-
-152. Generate the info file, man page, perhaps html, and perhaps even
-the WinBoard help file from the same sources.  Right now,
-substantially the same text is duplicated in three places.  This is
-a huge pain in the neck.
-
-157. Idea: if Zippy flags some number of times in a row and keeps
-getting told the opponent is not out of time (presumably due to
-timestamp/timeseal), he should issue an adjourn or abort.
-
-160. The xboard CTRL key flashback feature is bad in Analysis mode.
-Flashing back throws away the analysis.
-
-161. SIGINT doesn't work for local programs on Win32.  There is an
-equivalent, GenerateConsoleCtrlEvent(CTRL_C_EVENT), but I haven't
-gotten it to work thus far.  It seems that WinBoard and the chess
-engine don't "have the same console"; indeed, neither has a console.
-
-162. Supply a non-X Zippy for Unix.  Perhaps use the code from Klaus
-Knopper.
-
-167. Alternative bitmaps loaded at runtime for WinBoard. [font-based
-piece rendering provides this functionality since WinBoard_x]
-
-169. Upload Game on file menu?  This would upload the current game
-moves into a scratch examined game on ICS.  Could do Upload Position
-too.  Some code to do Upload Game was contributed, but it didn't
-handle setup positions, variants, checking for proper gameMode, etc.,
-so I couldn't use it.
-
-170. Auto step every k seconds should be a general feature you can
-turn on at any time, not just in LoadGame.  What should GUI be?
-
-171. Displaying thinking in a separate window should be an option
-available at all times when Show Thinking makes sense, not just in
-analysis mode.  It should perhaps be orthogonal to analysis mode.
-[added in WinBoard_x]
-
-172. Should analysis window scroll instead of showing only the last
-line?  There could be an extra checkbox to show all chess engine
-output in it. [fixed in WinBoard_x]
-
-178. Need reliable kill for chess engine on Win32.  See also 161.
-
-181. Some people want -sgf to save only played games, not observed and
-examined games.  Others like it to save them all.  Make this an option?
-
-183. Search feature in Game List dialog [Igor Eged].
-
-187. "Log session" feature for ICS window.
-
-193. Some users have reported xboard redraw bugs, but I have not
-been able to reproduce them on the Digital Unix, Linux, or eXcursion X
-servers (xboard).
-
-c. From Hawk:  
-Dragging in xboard does not work 100%.  
-* The dragged piece may disappear (try some fast e2-d3 movements - 
-  this is easy to reproduce).
-* The dragged piece may be placed on an illegal position (this 
-  happens less frequently, but it _can_ be reproduced by doing the same
-  as above).
-* In both of the above cases, the board is correct after forcing a 
-  redraw (ie. minimizing/restoring the window)
-I'm using eXodus - a win32 X server, perhaps it's buggy. [Seems that way,
-or just possibly, these could be bugs that are fixed in 3.6.11beta or
-3.6.12beta.]
-
-d. One user reports: "If you are 'holding' a piece over the square you
-want to go to and that move becomes illegal but you make it anyway,
-the display sometimes corrupts and a partial piece appears..sometimes
-a whole piece."  This was under RedHat 6.0.
-
-194. A few users have reported drawing problems with WinBoard.  There
-may be some color map problem on certain displays.  I might possibly
-have fixed this already; I cannot reproduce it.  The common thing
-seems to be black pieces changing to white.  This may depend on having
-customized the board colors.  I suspect many of these problems are
-buggy Windows drivers for particular display cards.  (May be worked
-around in 4.2.0 with reprocessed .bmp files.)
-
-a. From mulesmurf: if i log in and then move the board, it will happen
-that the black [pieces] change to white.
-
-c. People have sent pictures where the grid didn't get redrawn.  This
-produces random bits in the grid area from uninitialized memory.
-Could this be a resource leak?
-
-d. From James Van Buskirk: I did notice one problem tonight playing
-against Comet under FX!32 1.2 (Comet, not winboard ran under FX!32):
-for a couple of moves winboard didn't turn off the highlighting of the
-square I dropped the piece on until Comet had moved.  Later, the
-problem fixed itself.  Have other users noticed this?  [No.]
-
-e. One user reports: Lastly, there is some sort of slight bug in the
-piece dragging code, but it comes up only very occasionally (once in
-500 moves?)...basically, I'm dragging, change my mind, throw the piece
-of the side of the board, and instead it gets stuck not inside a
-square.  It's really disconcerting, this piece just sitting across
-square boundaries.  When you make another move, it gets cleared up and
-goes back where it's supposed to.  [Might be fixed in 4.0.6, but I
-couldn't reproduce this, so I can't be sure.]
-
-f. DAV says: "When I resized the board on win 95 and made it smaller
-some of the pieces turned into junk (I'm not able to give a screen
-shot)."  Later: "Seems to happen on the three sizes below small.
-Win98 and NT seem to be ok, trying to get more win95 users to test
-it."  Works fine for me on Win 95...  [Might have been fixed by the
-cleanup of the Windows .bmp's that happened sometime before version
-4.2.3]
-
-195. Flash Moves works at the end of every change to the board, using
-some rather gross code in DrawPosition.  This code should perhaps be
-ripped out and the flashing done from inside AnimateMove instead.
-
-197. More color distinctions.  Maybe allow several user-selected channels
-to have their own colors.
-
-198. More sounds.  Some possiblities: distinguish White vs. Black move
-or your move vs. opponents, distinguish different kinds of
-win/loss/draw/unfinished (checkmate, resignation, stalemate, other
-draws, opponent disconnected, etc.), game ends when you aren't playing
-and/or aren't in ICS mode, differentiate amongst requests (draw offer,
-etc.), **check, got new offboard piece (by piece type?), opponent got
-new offboard piece (ditto), arrival notification, "* who has an
-adjourned game with you," draw declined, moretime received.
-
-199. Maybe put user names instead of White and Black on clocks, or
-user names above or below clocks in a smaller font.
-
-200. I don't like these ideas, but some people do:
-a. Highlight all of the squares that the piece you are moving can go to.
-b. Clicking on the piece moves it immediately if it has only one legal move.
-c. Allow clicking on the destination, then the source.
-d. I guess highlight the pieces that can go to that destination.
-e. Clicking on a destination that only one piece can go to moves it there.
-
-201. mulesmurf: piece counter so we know exactly the score 
-
-202. mulesmurf: ziics pieces, board along with color intensity
-
-204. Hawk at Fri May 15, 12:58 CDT 1998: a minor thing with xboard:
-the coords disappear while dragging from a square with coords on it.
-[They come back when the drag is finished.]
-
-208. WinBoard sometimes comes up with one of the menu bar items grayed
-out (one that should not be).  I've seen this on different entries at
-different times.
-
-213. Maybe add Silence to sound menu -- parallel to Monochrome on
-color menus.
-
-214. Maybe easier startup dialog customize:
-a. Buttons to add/delete/move(?) current string to/from/within current list.
-b. Or maybe auto-add newly typed/edited strings up to some limit.
-c. Also a drop-down for Additional Options.
-
-216. Maybe shorten menu names in WinBoard to one char if and only if
-the menu bar would wrap with longer names.
-
-**217. Easier way to add engines to the WinBoard startup dialog.
-Ideally, an engine author should be able to supply a simple
-configuration file or script that installs his engine.  "*.wbe" idea.
-
-218. Some folks would like Highlight Last Move to apply only to
-opponent's moves.
-
-219. From Jorge Monasterio: Support automatic game starts when in
-tournament. In other words, do that "match bigolfish mann 5 0 black"
-automatically based on the info sent from mamer.  [I would need to
-play in some tournaments before I could evaluate this idea or fill in
-the details.]
-
-222. Could support time handicaps. [Added in 4.3]
-
-223. Bug: very long comments cause buffer overflow.  Need to revamp
-the way comments are parsed and returned from parser.l to fix this.
-
-224. Larry Parrish requests: In an automated multi-games match I would
-like to load the n-th game from the file for the n-th game of the
-match.  [That is, when -mg and -lgf or -lpf are used together without
--lgi or -lpi.] [4.3.15 provides auto-increment og game and pos index]
-
-225. From pulp: another bug (maybe with the Microsoft RichEdit
-control) I've observed is when you flood the edit control it loses the
-bottom.  Eg. "games" will scroll along then start slipping until by
-the end of the list you are really looking at the middle of the list
-and have to manually scroll back to the bottom.  [May be fixed?]
-
-225a. Resizing the WinBoard ICS interaction window can cause the cursor
-to be off the screen, which stops scrolling.
-
-226. From pulp: Clipboard persistence.  If I copy text, then the text
-disappears when Winboard is closed.  Eg.: Log in, highlight and copy a
-web page address, close, go to browser, paste *nothing*.  [How does
-one do this in Windows?]
-
-227a. In engine-engine matches, an engine that crashes should lose and
-perhaps get restarted for the next game. [In 4.3 a crashing engine 
-forfeits the game, but still terminates a match.]
-
-227b. Maybe when an engine playing in Zippy mode exhibits a bug, we
-should do a little more too.  Perhaps "say Sorry, the engine seems to
-have a bug", resign or abort, and maybe force an engine restart for the
-next game.
-
-**227c. We should also detect and stop the game on false mate or draw
-claims, rejecting a legal move, or (maybe) missed claims of mate or
-draw.  Note that draw claims require checking for repetition, 50 move
-rule, and insufficient material as well as stalemate, so this is
-nontrivial. [Added in 4.3]
-
-228. RichEdit bug: sometimes a line gets indented as if it were
-wrapped when it should be flush left.
-
-**229. Support for sending moves from the partner's game to a bughouse
-engine.  Ben Dean-Kanemura submitted support that works without adding
-general multi-game support, by relaying the moves without processing
-them.  Should also send holding updates and clock times; not sure if
-Ben's code does that.  Needs to be a new "feature" command option, and
-to be documented in engine-intf.html, removing the note that this may
-be done in the future.
-
-231. See Ed Collins's WinBoard bug list on his pages:
-
-231b. If you save an ICS examined game to disk as a PGN file, it
-doesn't report the end-of-game result in both the header and at the
-end of the notation.  [It doesn't get this info from the server, but
-maybe there is a way it could.]
-
-232. From Ed Collins's WinBoard wish list on his pages:
-
-232b. Multiple winboard.ini files for different moods, loadable from
-inside the program.
-
-232c. Fix bug where fics% prompt is not suppressed when using
-timeseal.  This has something to do with a timeseal deficiency whose
-details I've forgotten, but there must be some way to fix it.
-
-232e. When using the server's "examine" mode to examine a previously
-played game, have the game clocks display the time that each player
-currently had after each move was made.
-
-232f. [Not from Ed] Deal with ICC game relays where an "examined" game
-is supposed to have running clocks.  Not sure if this is still an issue.
-
-232g. Customizable on-screen buttons [i.e., toolbar or toolbox].
-
-232h. Customizable function keys.  Currently xboard can bind a key to
-any built-in xboard function.  Should extend this to WinBoard, and
-also (in both programs) support sending an arbitrary ICS command when
-button is pressed.
-
-233. See if anything from LightningRulez should be added.  Premove is
-now included (from Winboard Plus), but maybe there are other useful
-things too.
-
-241. There might still be bugs in xboard and/or winboard when moves
-come in from ICS during drag animation, though I can't reproduce them.
-DAV saw the opponent's piece fail to be erased from the source square, if
-I understood his message right.  [DAV says this still exists in 4.2.5.
-I think bug 426 is a duplicate.  The description is clearer there.]
-
-242. User-defined "looking_at" patterns and actions.  This is hard to
-bombproof.
-
-**243. "Rematch" shortcut in /cp mode.
-
-246. Maybe auto-close comment window when user goes to the next move.
-Whether this is desirable really depends on the content of the
-comment, but maybe it is rare to have a long comment that discusses
-the plan several moves ahead and should be left up.
-
-248. Would be nice to support retract move after checkmate or draw (etc.).
-
-254. Different tray icons for interaction window vs. board (suggestion
-from FICS).
-
-256. One user asked for "delete" option in game lists.  This requires
-rewriting the file to close up the hole, so it's pretty heavyweight.
-Next people will be asking for move, sort, search, and other game
-database functionality; ugh.
-
-**257. Would be nice to find a way to safely implement "retract move"
-when the engine is still on move.  (using ping/pong)
-
-**260. General mechanism where engine can declare engine properties that
-the user can frob and xboard/winboard will put up a simple dialog to
-allow user to view and set them.  See email message "special engine
-commands" from Steffen Jakob:
-
-  From: "Steffen A. Jakob" <saj@xxx>
-  To: mann@xxx
-  Cc: chess-engines@xxx
-  Subject: special engine commands
-  Date: Fri, 26 Feb 1999 09:12:26 +0100
-
-  Hi Tim!
-
-  Here comes a summary of our ICC chat (I cc this mail to the
-  list... maybe other engine programmers can give some feedback if
-  they find this feature useful):
-
-  Please add a protocol command which enables the engine to tell
-  xboard its special commands. Maybe a set of (label, command string)
-  pairs would be useful. Then create a menu for these commands. It
-  could look like this (that's what I would like to see for Hossa):
-
-  engine->interface:
-  ------------------
-  command "Reset the log file" "reset log"
-  command "Save Diagram as PNG" "png dia.png"
-  command "Disable Book" "book off"
-  command "Show Evaluation details" "eval"
-  command "Show Search statistics" "stat"
-
-  etc.
-
-  While typing this list I realized that an additional parameter like
-  this would be needed/nice (of course you can think of many more
-  improvements):
-
-  command "Save Diagram as PNG" "png %s" 1
-
-  "1" tells xboard to ask for an additional parameter (here: filename)
-  which will replace the "%s" in the command string.
-[XBoard 4.3.16 has an experimental implementation of this ide through
-the 'feature option="..."' command.]
-
-261. Check that "quit" is sent to engine properly if ICS connection
-fails to open due to error from timestamp/timeseal.  "wzrdking" had a
-case where it didn't.  Timetamp had failed with "Host name not found
-by name server" (because in fact there was no internet connection, arrgh).
-
-273. Displaying the names of the players from a PGN file in the header
-of the window does not work if there is only one game in the file.
-The filename is shown instead.  (This was intentional, but maybe a
-poor idea.)
-
-274. Command to go to move number N, with entry box for N.
-
-276. Make grid optional in winboard?  Note that the highlight options
-don't work without it. [The Winboard_x -overrideLineGap option provides
-this.]
-
-276a. Make color of grid an option, instead of always black.
-
-277. Flooding xboard -zt + timestamp with tells hangs timestamp after
-a while.  xboard is blocked writing to the timestamp pipe.  timestamp
-is in an unknown state, not reading from the pipe nor responding to
-pings.  (Confirmed with the software running on milwaukee, Red Hat
-5.2)
-
-278. Flooding winboard -zt + timestamp with tells hangs winboard after
-a while.  timestamp still responds to pings.  This reported by
-nudnick; I haven't tried to reproduce it yet.  He also says that
-windows explorer then crashed when he tried to close winboard.
-
-279. Idea from an anonymous ICSer: piece drop menu could have images,
-not words.  [Or maybe both?]  Also might be easier to select
-accurately from it if horizontally arranged, or in a 3x2 grid.
-[Now 4.3 has drag & drop, piece-drop menu should be deprecated]
-
-284. dxterm hangs when it receives the escape sequence that sets the
-title bar on xterm.  I think some other xterm substitutes do too.
-
-**287. WinBoard can look funny if you are using themes because it
-unconditionally uses white for certain colors instead of the default
-background.
-
-289. Merge WinBoard support for the Henter-Joyce JAWS screen reader.
-Source code (zip file containing modified WinBoard 4.0.2 source) is at
-ftp://ftp.henter-joyce.com/users/hj/winboard/WinboardSource.exe.  It
-would be interesting to make this work with festival (free Unix speech
-synth) or other speech synthesizers too.
-
-290. Could have limited voice output without a speech synthesizer by playing
-wav files for piece names and square numbers.  Idea suggested by Hannu
-Wegner.
-
-291. Would be great to support DGT, Novag Universal chessboard, etc.
-I'm not likely to fork out the cash to buy either for testing, however.
-Note users have done various things along these lines.
-
-292. When an engine is analyzing, it would be cool to have a way to
-automatically play out its current PV (or even older ones) on a board.
-These PVs could be saved as variations when we have variation support.
-
-297. Windows users expect all programs to have a Print function, even
-though there are other ways to print.  Useful items to make printable:
-PGN game scores (which are plain text, of course), maybe FEN position
-diagrams, maybe graphical position diagrams (i.e., same as pressing
-the "Print Screen" function key and printing the clipboard).
-
-298. One user suggests that automatic move stepping should not start
-until you press OK in the tags window.  This could be a good idea, but
-I think I'd rather have automatic stepping never start until you press
-a "play" button on the main window, and have that button always
-available, not just when loading a game from a file.
-
-299. One user suggested being able to jump to a specific move by
-typing its number (followed by ... if it's to be black's move).
-
-300. Can I put a hyperlink (that will invoke a browser) directly onto
-the WinBoard Help menu or in the Help file?  Useful to take users to
-my chess page.
-
-302. On NT, check if the board is redrawn properly when exiting from
-the screen saver.
-
-308. There is some tricky way to maximize the WinBoard board window,
-although there isn't supposed to be.  Maybe prevent this, or else
-legalize it and make sure something reasonable looking happens.
-Note: the trick is to select one of the "tile" options on the Windows
-task bar.  Not clear what should happen in this case.
-
-309. Avoid endlessly flagging every second when opponent is lagged out
-and autoflag is on.  Automatically courtesy-adjourn (or abort if
-unrated) instead, at least if in zippy mode.
-
-310. Weird bug: the last character of a FICS output can appear on the
-next line, *after* the fics% prompt, according to one user.  I might
-have seen something like this myself once too.
-
-314. One person wanted his engine to see tells when running in Zippy
-mode.  I doubt this is generally useful, so I haven't added the code I
-wrote for him.  (I can query for "tellfrom" in my mail file to find
-it.)
-
-314a. Another person wants his computer account to relay tells to his
-personal account.
-
-319. One user would like to be able to reload a PGN file and resume a
-game against an engine as if after an adjournment, with the clocks
-(and moves to next time control) restored as they were when the game
-was saved.
-
-320. Display ratings of ICS players in the title bar (if there is room,
-presumably), or somewhere, anyway.
-
-321. Maybe refresh the EditTags window if the gameInfo changes and the
-window is up.  (WinBoard now does this when entering MachineWhite,
-MachineBlack, or TwoMachines mode -- not very general.  From Winboard Plus.)
-
-322. One user requested that Zippy games use the engine name instead
-of the ICS handle in the PGN tags, as he uses multiple engines on his
-account.  (My response was "I'd say it should give both"; not sure just
-how to do that, though.)
-
-324. I'm told that Blitzin supports animated dragging without holding
-down the mouse button and that this is "much better" and I should try
-it too.  As yet I haven't.
-
-326. Full support for variants and variant-capable engines in all
-modes, not just ICS mode.  Here are some items still needed.  Some if
-not all should probably wait for a rewrite, not be added to the
-current code base. [4.3 supports many variants, even those not supported
-by ICS. Not bughouse, though]
-
-326a. Menu to let you see and change the current variant type, not
-just a command-line argument as at present. [Added in 4.3]
-
-326b. crazyhouse: Keep track of holdings and display them, keep track
-of what onboard pieces are promoted so they will revert if captured,
-understand offboard interposition to stop mate.  [Added in 4.3, (not
-sure about the interposition)]
-
-326bb. One user asked for a Czech variant of crazyhouse where pawns are
-given to the opponent when they reach the 8th rank (after capturing, if
-it's a capture) instead of promoting.
-
-326c. bughouse: Features in 326a would be helpful for editing one board
-of a bughouse game, and getting mate indication right even in ICS mode.
-In the longer term, could understand BPGN, support editing two-board games.
-
-326d. wildcastle: Allow wildcastle castling only when playing this variant!
-Maybe support automatic shuffling for local play. [4.3 adds shuffling
-for any variant played locally]
-
-326e. nocastle: Maybe support automatic shuffling for local play.
-Note that several types of ICS shuffle chess fall under this variant.
-Note that this isn't really a variant, since if we kept proper track
-of castling rights and used "setboard FEN" or the ChessBase extension
-of "edit" to set them, it could be treated as normal chess with a
-different starting position.
-
-326f. fischerandom: Maybe support automatic shuffling for local play.
-Support castling.  Currently, you can probably play Fischer Random
-successfully on ICS by typing castling moves into the ICS Interaction
-window, but they will not be animated correctly, and saved games will
-not be loaded correctly if castling occurs.  FR castling is
-problematic because the move cannot be specified by the starting and
-ending coordinates of the king; in some starting positions there is a
-legal non-castling move that moves the king the same way.  This
-violates a deeply ingrained assumption in the implementation.  It also
-breaks the GUI -- you need more than just dragging the king two
-squares to indicate castling.  (Note: In FR notation, O-O is h-side
-castling, O-O-O is a-side.  See "help fr_rules" and "help fr" on FICS
-for rules.) [All fixed in 4.3]
-
-326g. kriegspiel: Could give some thought to how to support a
-kriegspiel engine.  I doubt anyone will ever write one, though.
-
-326h. losers: Know that captures are mandatory.  Understand the win
-condition.
-
-326i. suicide: Know that captures are mandatory.  Understand the win/draw
-condition.
-
-326j. giveaway: Know that captures are mandatory.  Understand the win
-condition.
-
-326k. atomic: Understand the win condition.
-
-326l. 3check: Understand the win condition -- ugh, have to keep a
-check counter!
-
-327. Option to set the coord font color (or something) to make sure
-there is always enough contrast with the square colors.
-
-329. Bernhard Maerz would like a command line option to choose the PGN
-player name for an engine, overriding the default of generating the
-name from the engine filename.  This is for his ChessCall program.
-
-331. Maybe the local autoflag menu option should *also* turn
-server-side autoflag on/off by sending an appropriate set command.
-
-**332. Bug: Autoflag for local engine/engine or engine/human matches
-does not recognize that having your flag fall when your opponent has
-insufficient mating material is a draw.  It counts the flag fall as a
-loss. [Partly fixed in 4.3, which corrects any kind of losses against 
-a bare King to draws.]
-
-336. Of course lots of people ask for a graphical seek window.
-
-339. There are probably some incompatibilities with chess.net, as they
-have made a few gratuitous changes to message formats from the FICS
-code base they started with, and perhaps they've added features since
-without duplicating the syntax closely enough.  In particular it's
-been reported that Zippy does not correctly send "partner" and
-"variant" commands to bughouse engines on chess.net.  Also, I doubt
-colorization works.  As a matter of personal choice I do not spend any
-of my time supporting chess.net, but if others want to donate patches
-that allow chess.net to be supported without breaking the support for
-ICC and FICS, I am willing to install them.
-
-342. Analysis mode automatically turns on the Show Thinking option;
-the user must then turn it off manually after leaving analysis mode if
-he doesn't want it.
-
-343. Would be nice to change xboard keyboard shortcuts to not be plain
-letters, make the new shortcuts work also in the ICS input box, and
-make typing plain letters to the board redirect to the ICS input box
-or the xterm.  Might want to change/remove the Ctrl binding at that time.
-
-344. One user suggested having a way to save a position as a character
-string that would produce a board diagram when rendered in MS Word in
-a chess font.  Perhaps there is already a nice standalone tool for
-this, though?
-
-346. Could use a better way to pick default size.  Now we choose the
-largest that fits on the screen, which is typically too big.  Not too
-bad for WinBoard, but painful for xboard since it can't be resized
-after starting.
-
-349. Check that "quit" definitely makes it to the engine before exit,
-if you exit via the File menu while a match is running.  Uli Tuerke
-reported that maybe it sometimes doesn't (in WinBoard 4.0.5).
-
-352. Perhaps recognize the ANSI escape sequence that FICS sends out
-for the cls command and clear the ICS interaction window.
-
-**353. WinBoard can crash when the engine outputs very long PV lines
-(or debug output that looks like a PV).  In particular, lines that
-start with 4 or more blanks following a "thinking" output line are
-treated as continuation lines, and get concatenated into a 512-byte
-buffer with no checking for overflow.  Generally we need a lot more
-care to avoid buffer overflows inside both xboard and WinBoard.
-[Note: changed the buffers to be 5120 bytes as a band-aid.]
-
-Guido Flohr expands on this bug:  
-
-  The problem is easy to reproduce, simply write a program/script that
-  spits out lines of more than 8192 bytes (INPUT_SOURCE_BUF_SIZE) and
-  connect it as a chess engine to xboard.  No surprise, xboard cannot
-  handle such long lines, but the resulting behavior is really weird:
-
-  The program enters DoInputCallback() in xboard.c, reads the first
-  8192 bytes, searches for a linefeed in vain, then closes its eyes,
-  sets the member "unused" of the InputSource to is->buf + 8192 and
-  waits for more input although the buffer is already full.
-
-  The next time it calls the same function, is->unused is exactly
-  these 8192 bytes away from is->buf, xboard computes the amount of
-  bytes to read in this round, which sums up to 0 nothing.  It then
-  calls read(2) with a bufsize argument of 0, and then assumes end
-  of file when the kernel call returns 0 (which is the documented
-  behavior).
-
-  For local engines, we now jump into backend.c, ReceiveFromProgram(),
-  and this function reports that the engine has exited unexpectedly.
-  In fact the engine is still very vivid, which is good, because in
-  spite of xboard's assumption that its child has died, it still
-  sends "force", "ping N", and "quit" to the false dead.  If the child
-  was really dead, the alert boxes "error writing to ... engine"
-  would hide the first alert box "... has exited unexpectedly".
-
-  From xboard's side, it is not exactly clean to call read(2) with
-  a zero bufsize argument.  In my opinion, a sane solution would be
-  to eat the INPUT_SOURCE_BUF_SIZE bytes, and when they contain no
-  linefeed, print the partial line to standard error (in debug mode)
-  and report something like »Maximum line size exceeded« (and then
-  kill the engine).
-
-**354. We currently let the user go directly from TwoMachines mode to
-various other modes like MachineWhite or MachineBlack.  This may
-confuse the engine that was on move, since we don't have a way to
-force it to stop before it makes the move it was thinking about.
-(use ping/pong to know when the engine has stopped)
-
-355. Idea from LiveAndLetDie: have Zippy specially log games where it
-loses to a substantially lower-rated player.  Such a game could
-indicate an xboard bug, engine bug, or perhaps a computer-using
-cheater.
-
-356. Colorization for FICS tourney tells?  They look like this (ugh):
-:DChessmaster [tourney #4]:
-:hi
-
-357. A few reports of WinBoard pieces being drawn incorrectly at
-certain sizes.  I haven't reproduced this.  [Maybe worked around in
-4.2.0.  Or is/was this the same as 194f?  I don't recall the details.]
-
-358. One report of WinBoard colorization not working, even after
-restart, until the computer was rebooted.  Weird.
-
-362. Running a very long automated match (/mg option) seems to crash
-WinBoard eventually, usually after 300 to 500 games, sometimes later.
-Reported by Josh Haglund.  Gets a "WINBOARD caused an invalid page
-fault in module KERNEL32.DLL" dialog box from Windows.  See messages
-from Josh for examples of the registers and stack dump.
-
-362a. A few people have reported WinBoard crashing upon exit.
-
-363. Maybe xboard should not set the window geometry for new popups,
-or at least not the position.  The default positions aren't very good,
-and setting them programmatically keeps knowledgeable X users from
-customizing the positions with X resources.
-
-366. Feature to let an engine observe an ICS game and run analysis
-mode on the moves, perhaps whispering or channel-telling the results.
-It's a little too easy to cheat with this feature or I might have
-added it long ago. [Added in 4.2.8 and 4.4]
-
-369. Optionally send a periodic keepalive command to ICS.  Can be
-used to defeat autologout, so should probably not be on by default.
-Also should be useful to help Zippy notice more reliably when its
-connection has hung, so that it can exit and a shell script (batch
-file) can restart it.
-
-370. One user requested a local noplay list for his computer player
-because the FICS limit of 50 is too small.  He wants several hundred so
-that he can noplay everyone who disconnects in a lost position.
-
-374. Would be good to have a way to change engines without restarting
-the interface.
-
-376. WinBoard is said to crash or "lock up" when loading enormous PGN
-files, like a 98 MB file that comes with (??) Crafty.  Win32 (at least
-in the Win95 lineage) has a limit of 32,767 items in a list box
-widget.  That might explain this problem.
-
-376a. xboard exceeds limits in X and/or Xaw if a PGN file has too many
-games.  (The virtual window that the list box can scroll through
-becomes too many pixels high.)  This has odd effects; the window
-height of the game list seems to get reduced mod 2^16 or something.
-Maybe detect this and do something nicer about it, like stop loading
-when the window is full and pop up a warning.
-
-378. One Solaris user didn't have the "strip" program, so the
-install-sh script used by xboard "make install" failed.  Check for
-this?  Yuck.
-
-381. "Illegal move: post" is apparently not handled.  Should it be?
-
-382. The UI for entering Training mode is a bit obscure: you must
-first select Load Game, then Training becomes enabled in the upper (!)
-part of the Mode menu and you can select it.  You can then select it
-again to toggle it off.  This mode is something like Analyze File
-(which has a problematic UI too, but somewhat less so); both should
-probably use a similar UI style.  I consider disabling the
-step-forward button to be overkill, and I think you need to manually
-turn off auto-step when loading a game (?).  One user expected it to
-work with .epd files that give a position and a recommended move.
-That seems reasonable, but doing it would require quite different code
-from the current pgn-game training mode.
-
-383. Premove piece drop for bughouse/crazyhouse.
-
-384. Pre-first-move for xboard.  I don't much like the fill-in field
-method used in winboard.  Maybe allow a move to be made for white
-before the game starts (in both xboard and winboard).  If you get
-black, it's cancelled.  Black can already premove after the game
-starts, during white's first move think time, so I don't see that a
-black pre-first-move is needed.
-
-**387. Have winboard draw opaque details on black pieces too.
-Hmm, this should probably be optional, and the detail colors should
-be selectable instead of hardwired to the opposite piece color.
-[The 4.3 -allWhite option goes in this direction. Details always
-in black, though.]
-
-**387a. Add "no piece border" option to WinBoard.  See code from
-Robert Jurjevic sent 4/9/2001.
-
-391. I have a bug report from Stefan Zipproth about engines sometimes
-failing to make their first move in an engine-engine match.  So far I
-can't reproduce it.  This might be fixed by the Sleep(500) voodoo in 4.2.4.
-
-394. See about tightening matching for the "request" event.  Right now
-it matches on help files a bit too often.  (e.g. FICS "help sr_info")
-**Also clarify documentation on what the request event is.
-
-396. xboard's -size defaulting code for bitmaps unfortunately always
-picks a size from the built-in list, even if you gave the
--bitmapDirectory option.  It would be more user-friendly to have some
-extra code that lists the directory and considers exactly the sizes
-that are found there, as the pixmap code does.
-
-397. It would be nice to be able to configure xboard with bitmap
-pieces as the default without having to disable xpm support entirely.
-This should be a pretty simple mod to configure.in (and xboard.c).
-
-397a. It would be very nice to be able to compile in both the bitmap
-and pixmap pieces.  This would allow us to automatically switch to bitmap
-pieces in -mono mode, including when -mono mode was automatically selected
-because too few colors were available.
-
-398. It would be nice to have the new .xpm pieces in .xim format too,
-since I restrained myself from ripping out the .xim support.
-
-399. It would be nice to have a configure option to change the
-directory where the default piece set is taken from.  Slightly nicer
-than having to rename the desired directory to "bitmaps" or "pixmaps"
-as at present.
-
-400. TypeinMove should be grayed in ICS mode, or should raise the
-console window, or something.
-
-402. Internationalization.  It probably isn't practical to retrofit
-this into the current code base. [4.2.8 and 4.4 have international-
-ization of xboard.]
-
-409. One user requested a way to put a time delay in the middle of
-sending zippyGameEnd commands.  This would (for example) let the
-computer do a seek only if its opponent doesn't accept a rematch
-within 10 seconds.  Nontrivial because Zippy has to continue to listen
-to input during the delay; it can't simply call sleep().  Maybe
-ScheduleDelayedEvent is OK, but I think it may already be in use in
-this situation, and it only supports one event at a time.
-
-411. Add zippyKibitzThinking and zippyWhisperThinking features?
-[4.3 has an -autoKibitz option]
-
-412. Maybe optimize setting the move list in the case where only the
-current move number changes; avoid slow XawListChange.
-
-**413. Add movelist window to WinBoard too.  Wilkin Ng submitted a
-patch that I believe includes this; need to integrate and test it.
-
-**415. It was suggested that a few common options that many chess
-engines need be promoted to xboard/WinBoard options so that the user
-can set them from the GUI in a uniform way.  In particular: hash size,
-directory name for endgame tables. [4.3 has extended WB protocol
-with a memory, egtpath and cores command.]
-
-**416. Can we avoid dying when xboard is in 8-bit mode, pixmap pieces
-are chosen (by default), and we can't get enough colors?  Ugh.
-
-**419. It was suggested that stat01 be generated/accepted during normal
-play with "post" on, not just during analysis mode.  This would need
-to be a "feature" command option.
-
-422. Track FICS change to details of how timeseal works; is this
-implemented at FICS yet?
-
-423. When locally stepping through an ICS game that is over, it would
-be nice to display the historical clock times at each move.
-
-424. DAV at Thu Nov 9, 01:20 CST 2000: any chance on winboard/xboard
-of a key press and a move executing draw <move>?  that way you at least
-have a chance of claiming a draw in 1 0.
-
-**426. DAV says, in xboard: If you are not on clock and you hover a
-piece over a square where your opponent then moves to and then move
-the piece away the piece the opp moved or part of it has not been
-drawn.  [Duplicate of bug 241?]
-
-429a. Check whether more support is needed for WinBoard to work with
-scroll wheel mice in the absence of special mouse drivers that generate
-scroll bar events directly.
-
-431. People find Analyze File confusing; they think it should do
-Crafty's relatively new Annotate function.  Also, it's somewhat
-superfluous now that you can enter Analysis mode and then load the
-file, or vice versa.
-
-**436. WinBoard is said to crash if started while WinBoard.debug is
-being tail -f'ed.
-
-**441. Can I prevent an undo after new in the odd case where it can
-happen now?  See mail from Bob Hyatt.
-
-450. Suggested: an option to let an engine keep pondering while an ICC
-game is adjourned.  This seems a bit difficult.
-
-451. Suggested: support SuperMamer messages on FICS, aka qtells.  See
-http://www.freechess.org/SuperMamer/parsing.html.
-
-452. Suggested: a way to say "prompt for the password" in a login.ini file.
-See 510 instead.
-
-**454. Add a way to claim a draw together with making a move, as can
-be needed for draw by repetition (creating the 3rd repetition with the
-move) and by the 50 move rule (the move is the 50th).  Add to
-protocol, and implement using the individual methods on FICS and ICC.
-Need to be sure it's really a FICS that has the feature (somehow).
-[Fixed in 4.3 by usng 'offer draw' for this purpose]
-
-455. Suggested: Add the epdkit commands such as epdpfga to the
-protocol, since Crafty and "many" (which?) other engines include the
-epdkit.
-
-**456. Bob Hyatt suggests: "feature match=1" which says "send match
-requests to the engine and let it decide on who to play next".
-I.e., maybe send an abbreviated but fixed format message like this:
-match <opponent_name> time inc R/U.  The engine would use "tellics
-accept <opponent_name>" to accept.  Add as feature to protover 3.
-
-**457. Standardize on the meaning of scores (e.g. in stat01 responses).
-Is positive good for white or good for the engine?  Do certain scores
-mean forced (tablebase) draw, or forced mate in N?  This should align
-with the EPD spec.  Maybe a feature command should indicate that the
-engine matches this part of the spec, but then again, it's not clear
-what we can do about it if the engine doesn't give that command, so
-maybe there is no point.  See discussion on chess-engines list.
-[Winboard_x adds an argument to tell WinBoard an egine uses absolute
-scores]
-
-458. Bug: xboard will try to use an engine to play normal chess even
-if the engine has given the feature variant command and did not
-include "normal" on the list.  Crafty 18.1 inadvertently relies on
-this bug, so it probably can't be fixed right away.
-
-**468. Need to look at Wilkin Ng's contributions!
-
-**469. Look at Zippy's behavior if the operator observes, follows,
-examines, etc.  Some bugs in this area have been fixed, but it's
-received very little testing, as Zippy was never meant to be used that
-way.  Noted later: Examining in -zp mode definitely has problems.  If
-you go forward one move at a time, moves are sent to the engine
-correctly.  If you go backward one move, "undo" is not sent to engine
-as it needs to be.  Going forward or back by more than one move at a
-time needs to be looked at too.
-
-**471. Look at 3/17/2001 message from Laszlo Vecsey about crashes when
-exiting on Win ME while data is coming in from the server.
-
-**473. Visual low-time indicator.  See patch in Brian Mays message of
-3/27/2001.
-
-**474. Crash reported when sending certain 8-bit characters through
-WinBoard (180, 167, others).  I'm almost certain this is a FICS
-timeseal issue and nothing to do with WinBoard itself.
-
-**475. Look at Laszlo Vecsey's mousewheel patch of 4/10/2001.
-
-476. For some reason (I guess some GUI supports them), most WinBoard
-engines now have a graphical logo, 100x50 pixels in Windows .bmp
-format.  It's been requested that WinBoard have a place to show the
-logo. [4.3.16 supports logos]
-
-477. Implement the "book engine" idea I proposed in the protover 3
-discussions.  Some folks have offered to write them (e.g., Bruce
-Morland). [4.3.15 supports a GUI book, which is another way to
-acheive the same, as the only thing that would distinguish book
-engines is their book, not what they do.]
-
-478. Recognize URLs in the WinBoard ics interaction window and make
-them work as hyperlinks (firing up your browser).
-
-**479. Possibly use Scott Gasch's 7 May 2001 patch to delay accepting
-challenges when ping > pong instead of declining them.  Bug: if you
-get more than one challenge, Scott's patch forgets about all but the
-last one.  If that guy then withdraws his challenge, the others are
-left in limbo, neither accepted nor declined.  I suppose we could
-decline challenges when there is one waiting.  However, if we make the
-change to optionally pass match requests through to the engine, Bruce
-Moreland would like us to queue up challenges and pass them all on.
-
-481. 8 May 2001, Bob Hyatt "matchscore" feature suggestion could go in
-protover 3: "matchscore A B C D E says we are in a match, this is game
-A of B games.  The current match score is I have won C, drawn D, and
-lost E games in this match.  This would give the engine a chance to
-adjust the draw score as needed to try to win the match rather than
-just trying to win a single game."
-
-**482. Suggestion from Bruce Moreland: if the user goes into ICS
-examine mode while -zp is active, and the engine supports analyze,
-then put it into analyze mode and let it work on the examined game.  I
-guess this could work for observed games too.  Should it be optional
-or always done? [4.2.8 and 4.4 support analysis in zippy mode, but
-as yet only while observing games.]
-
-483.  It would be nice if the KingShine 3D board could be integrated
-as an alternative xboard GUI rendering.
-
-**484.  Add -feature1 and -feature2 options to pretend the engine sent
-us those feature commands.  Useful kludge for certain buggy engines.
-
-485. Add "reset" to protover 3.  (Clear the hash tables and other such
-info; used to put the engine into a known state before running a
-test/benchmark position.) [the WB 'memory' command could be defined
-to have this side effect? Normally we would have to clear the hash
-table when changing its size.]
-
-486. Other protover 3 features listed in my 6/21/2001 message to
-chess-engines list.  Write a full protover 3 draft for comment.
-[Note that 4.3 already uses protocol extensions that differ from
-the v3 specs.]
-
-487. Adjudicate non-ICS games as a draw when there is insufficient
-mating material on both sides, especially engine/engine games.  Well,
-maybe.  I argued against this in a 6/26/2001 message to chess-engines.
-[Added in 4.3]
-
-487a. Probably also adjudicate when we detect checkmate or stalemate,
-before bothering to notice whether the engine detected this. [Added
-in 4.3]
-
-487b. Note: Do not adjudicate 50 move rule or 3x repetition since those
-must be claimed by a player -- at least not by default.  It would be
-OK to have a flag to do this someday when we are smart enough to
-notice it.  Would definitely be good to be smart enough to notice an
-incorrect draw claim by an engine. [In 4.3 you can set the number of 
-moves or repeats after which draw is adjudicated]
-
-487c. Another request: allow the operator to adjudicate engine/engine games.
-[Winboard_x provided menu items for this.]
-
-488. Option to suppress tags popup on game load?  This has been
-requested a few times, and I received one partial implementation (not
-enough to be useful).  Needs to be on the options menu, etc.  Note
-conflict with 298 above.
-
-488a. Also option to suppress comment popups.
-
-489. Maybe have Zippy use xtell for tells to avoid redefining "." if
-the operator is also doing tells.  Do all ICSes support xtell, though?
-
-490. Bruce Moreland request: a way to turn Zippy auto-accept on and
-off dynamically.
-
-491. Bruce Moreland request: a defined way to turn on/off PV (etc.)
-kibitzing from the engine dynamically.  I had thought it would be
-better to make the GUI able to relay thinking output as kibitzing on
-its own (and be able to turn this on/off dynamically), but Bruce
-points out that what engine authors want to send as kibitzing output
-usually includes more than the PV thinking output. [Note that engines
-can put whatever info they want in the PV field of the thinking 
-output].
-
-492.  One user reports that GNU Chess 5 crashes if you start a game,
-play far enough to get GNU Chess out of book, select Reset, and play
-e3 in the new game.  This is probably a GNU Chess 5.00 bug, unrelated
-to WinBoard.  Can't reproduce on Linux; didn't try yet on Windows.
-Need to see if 5.02 fixes it.
-
-493.  DAV suggests stripping off first arguments that are obviously
-not the name of the engine when trying to parse out the engine name
-from its command line -- things like nice, nohup, sh, csh, bash, etc.
-Ugh, but I suppose it would be helpful sometimes.
-
-494.  Internationalization.  A couple of people have done (or told me
-they were doing) partial conversions of WinBoard to German or Spanish
-by manually translating the messages.  I think it would be much better
-(but a big job) to use GNU gettext.  I haven't looked into the details
-of that at all. [4.2.8 and 4.4 have gettext support.]
-
-495. JamesBaud points out that FEN is not sufficient to correctly
-represent a crazyhouse position (or bughouse, for that matter),
-because it does not distinguish promoted pawns that will revert when
-captured from real pieces.  ICS style 12 also does not give us this
-information.  I really don't know what I could do about this -- take
-the lead in proposing an extension to FEN and to style 12 with new
-piece letters, I suppose.  I don't really have time or motivation for
-that.  If you always use PGN, not FEN, to save Crazyhouse, that works
-around the problem. [4.3 uses bFENs which fix this, but not in ICS
-mode]
-
-**496. DAV sent some code to save a screen shot in xboard.  Look at
-merging this in. [4.3 has an option to save the board display (but
-not the entire window) as bitmap.]
-
-**497. Igor Eged reports: I make a move on opponents time using
-premove. Right in the time I am holding another piece in case of
-unexpected check that I can have other possibility. But then the piece
-hangs in the void and its invalid move, what means often loss in 1 0
-lightning.
-
-498. It would be nice for Zippy to be able to play ICC wild 20 and 21
-(the types where loadgame is allowed).  Presumably there would have to
-be an option to either send the loadgame command with a specified
-position, or to deal with an opponent sending it.  I'm not sure how
-this should work exactly, or how to prevent opponents from cheating in
-various ways.
-
-499. It would be nice for Zippy to be able to switch amongst several
-different engines depending on which variant type is being played.
-
-500. It would be nice if Zippy could have an option to accept
-takebacks.  Hmmm, also, the operator might want to manually offer a
-takeback; it would be good if that worked.
-
-501. People would like to be able to add more bot functionality to
-Zippy without C programming.  I don't have any ideas on how to do that.
-
-502. One user requests the ability to have a game list file open for
-more than one PGN file at a time.
-
-503. We don't do protover 2 feature negotiation properly when
-restarting an engine due to -xreuse mode.  The timeout and done=0/1
-features don't work on the restart; instead we basically assume that
-all the features will be the same as last time and that the engine
-will be ready to accept commands immediately.  This probably doesn't
-cause a lot of problems, but if you try to replace the engine with one
-that sets different features, the changes might not be noticed before
-the first move, and the defaults will be the values from the old
-engine, not the documented defaults.  Also, if the engine takes time
-to initialize and wants us to wait to send commands until it says
-done=1, we fail to wait.  However, we do send commands in the right
-order and use ping, so most engines should work fine.
-
-506. One user wants a board size even smaller than Tiny.
-
-507. Suggested: have the cursor change to a gripping hand while moving
-pieces.  Currently in WinBoard it's always an arrow, while in xboard
-it's always a hand with pointing finger while over the board and an
-arrow elsewhere.
-
-508. It would be nice to make -xclock work with -ics, just for
-orthogonality, though it's not terribly useful.
-
-509. It would be nice to make -clock work with -st.  Perhaps each
-player's clock should start with the specified time on each move and
-count down until he moves.
-
-**510. A FICS service rep tells me that many users expect an autologin
-feature in winboard (other than the non-user-friendly login.ini file).
-Seems easy enough to add such a thing.
-
-512. Some users dislike the clocks counting in tenths when below 10
-seconds, as it's distracting, and would like this to be configurable.
-(From the Debian bug tracking system.)
-
-513. Perhaps have Alt+P and Alt+C as synonyms for Pause in WinBoard,
-since the P or C on the button makes it look like that should be the
-shortcut.  I suppose Alt+< and Alt+>, and the same with Shift for <<
-and >>, would also be a good idea.  Oops, but Alt+C is already
-CopyGame, so maybe this is a bad idea.
-
-514. Gian-Carlo Pascutto reports: "when pasting a FEN/EPD position
-into WinBoard, and selecting analysis mode, the engine analyses the
-starting position instead of the pasted one. Re-pasting fixes this."
-
-515. Troy Edwards suggests: "It would be nice to have the option to
-'wrap text' in the comment window."
-
-516. DAV says: "FICS now supports the setting and the making clocks
-tick using unpause/pause in examine mode. It seems either the clocks
-don't tick or are not present when using xboard. Is it possible to
-change the policy and base things upon the clock is paused flag in
-style 12?"
-
-517. Clarify in engine-intf.html that "sd" is an extra dumbing-down
-feature, not a time control.  Some text:
-
-In the protocol, the "sd" command isn't a time control.  It doesn't
-say that your engine has unlimited time but must search to exactly the
-given depth.  It says that you should pay attention to the time
-control as normal, but cut off the search at the specified depth even
-if you have time to search deeper.  If you don't have time to search
-to the specified depth, given your normal time management algorithm,
-then you will want to stop sooner than the given depth.
-
-The "new" command should set the search depth back to unlimited.  This
-is already stated in the spec.  The "level" command should not affect
-the search depth.  As it happens, xboard/WinBoard currently always
-sends sd (if needed) right after level, but that isn't part of the
-spec. [Added to the specs that go with 4.4]
-
-518. Warn in doc that -initString is a dangerous feature.  Also move
-doc of dalogs for sending commands directly to the engine out of the
-protocol spec and into the man page and help file, but warn they are
-dangerous too.
-
-519. In engine-intf.html, change "st" description to not use the word
-"exact", which is misleading.  Make sure it says this is the maximum
-time per move (and does not accumulate).
-
-520. Check whether Alt+C (CopyGame) works in XP.  One user says it
-gives an error message.
-
-522. engine-intf.html should really be rewritten to describe the
-protocol as a state machine (on each end), with every command
-precisely defined as to what it does in each state (including perhaps
-being illegal).
-
-523. Figure out what, if anything, to do with the FICS "iset singleboard".
-I lean toward not bothering to set it, as it only disables functionality,
-but maybe I'm confused.
-
-524. theblob at Mon Mar 4, 23:23 PST 2002: it'd be nice in the xboard
-interaction window if control-w and control-u respectively erased the
-line and word, even in a Windows environment.  At least, I think it'd
-be nice.
-
-525. Support a 64-bit node counter in analysis mode when compiled with
-something that has 64-bit integer support.  Both gcc and msvc++ have
-this, though under different names. [Done in 4.2.8 and 4.4]
-
-526. "-initialMode analysis -lgf -" doesn't get the engine into
-analysis mode properly.  "-initialMode analyzeFile" is a workaround,
-but bug should be fixed.
-
-527. Clarify ICS.ini more in the doc, if possible.  Some sample words:
-> You should create this file in
-> WinBoard's directory (usually C:\Program Files\WinBoard) using a plain
-> text editor such as Notepad.  Make sure that Notepad doesn't decide to
-> call the file ICS.ini.txt for you -- you may have to select "All
-> Files" instead of "Text Files" in the Notepad save dialog.
->
-> The file is simply sent to the chess server, just as if you had typed it.
-> So if your username is foo and password is bar, the file would look
-> like what is between ==== below, without the ===='s:
->
-> ====
-> foo
-> bar
-> iset movecase 1
-> ====
-
-528. Check on updates/revisions to PGN from Steven Edwards and others.
-Any support needed?
-
-529. Protover 3 needs a prefix character that says "this is debug
-output" and prevents the GUI from parsing that line (say ";").
-[4.3 uses '#' for this purpose, when the engine sets feature debug=1]
-
-530. The undocumented (?) checking for rsh error messages tripped up
-one engine author who had a "not found" in a message.  Tighten this
-up.
-
-531. Do we always wait for pongs to catch up with pings before
-starting the engine's clock?  I suppose we should.
-
-532. On FICS the clock does not start until after the first move has
-been made.  So perhaps we don't need the "not ready, try again soon"
-response from Zippy there.  What if Zippy is black, does black's clock
-also not start until he makes his first move?
-
-533. theblob at Mon Jun 24, 20:05 PDT 2002: here's a suggestion for
-xboard -- give priority to fitting in amounts of material in the title
-bar, and truncate names instead, e.g., use "tyrionsAp...(50) vs. woden
-(51)" rather than "TyrionsApprentice (50) vs. woden..." -- it's much
-more important to see the material than the full names, especially
-when you're playing.
-
-534. Steffen Jakob reports: "I use xboard 4.2.6. Yesterday I played
-some bullet games at ICC. In one game I lost on time. In the last move
-I already clicked on my queen and wanted it to move to its destination
-square when I forfeited on time.  After that my mouse pointer was the
-queen piece. I couldnt drop it to any square."
-
-535. For protover 3, the "st" command in the protocol could be
-extended to allow for smaller units, not just seconds.
-
-537. Clarify in the protocol that "force" while searching means you
-should stop the search as soon as you can.  (Isn't this clear
-already?)
-
-538. Need a way for the user to adjust the clocks.  This is important
-for WCCC and other computer competitions, where xboard/winboard's
-clock is not the master.  I was going to do it in time for the July
-2002 WCCC.  Oops. [4.3 allows adjusting the clocks by clicking them
-in 'edit game' mode, in steps of 1 minute]
-
-541. Related to #327, John Iverson says, "It would be nice to have the
-coordinates shown outside of the board along the edges, rather than in
-the squares where they are hard to see and give a cluttered
-appearance, especially on smaller board sizes.  (The coordinates can
-be handy in certain situations, such as posting a screenshot of xboard
-showing an email game in progress, with the view flipped.)"
-
-542. If you start xboard with the -geometry NxM option, it will
-dutifully make the window exactly that size, but it doesn't choose a
--size option that fits into such a window size, so the board is cut
-off or has a lot of whitespace around it.  In fact, the layout is
-generally messed up because the code doesn't expect the window to be
-the wrong size for the layout.  We should at least ignore the size
-part of the -geometry option if we aren't going to do something
-sensible with it.  How is that done with Xt?
-
-543. See the patches and extensions on
-http://www.tim-mann.org/extensions.html#patches and integrate those
-that are worthwhile into the main code base.  (Some are also mentioned
-elsewhere in this ToDo list.)  They are pretty much all over 15 lines,
-so copyright assignment from their authors is needed.  Unfortunately
-some of the authors may be hard to reach.
-
-544. Possibly rework looking_at pattern matching to have a "match at
-beginning of line" character (perhaps ^).  It looks like this may
-actually be useful after all.  The historical cases where you could
-get a board or other output that needs parsing on the same line as a
-prompt *may* have been fixed.  Confirming this would need testing on
-all the ICSes that are in use.
-
-546. Odd bug reported by travelGirl.  The last line of a multi-line
-macro from the ICS context menu sometimes "sticks" at the bottom of
-the ICS interaction window.  New text gets inserted before instead of
-after it.  This started when she upgraded to win2k.  See mail.
-
-548. Guido Flohr reports:
-
-Another "not really a bug" problem: When xboard forks in order to
-start a second chess engine, it is only concerned about duplicating
-the descriptors for the standard channels in the child.  This is
-very interesting for the second chess engine, since it inherits the
-pipes to its opponent, and can use them for sending commands like
-"sd 2", "easy", or even for feeding a bogus FEN string into the
-first engine (exchanging the opponent's queen with a bishop looks
-really attractive to me).  A very interesting feature, but not exactly
-what you intended? ;-)
-
-Closing the other descriptors after the fork will not completely
-avoid the problem, since - at least under Solaris and Linux - it
-is still possible to peek and write into xboard's open descriptors via the
-/proc pseudo file system (unless you make xboard setuid root), but
-leaving them open, makes this cheat very obvious.
-
-549. "Ron" (no last name given) reports that when compiling WinBoard
-under VC++ 6.0, there are many warnings.  These ought to be looked at.
-
-551. "Miguel" (no last name given) reports "When you make a premove in
-Winboard 4.2.6, and then opponent move and premove is illegal, then
-and you try to make a legal move but you cannot, because piece are
-erased and you have to replace your move again, move twice... in
-lightining this is annoying."  I'm not really sure what that means or
-if it is the same bug as 497.
-
-552. Get rid of the need for proprietary tools to build WinBoard.
-It's already possible to compile winboard.exe using the Cygwin
-toolchain.  You can even compile it with -mno-cygwin to avoid the need
-for cygwin1.dll.  However:
-
-552a. The Help file needs Microsoft Word to edit the source file
-winboard.rtf and the Microsoft Help Compiler to compile it into
-winboard.hlp.  I tried using OpenOffice.org on the RTF file, but the
-result was missing some formatting that the help compiler needs.  The
-help compiler itself is a free-as-in-beer download, but it's still
-proprietary software.  Perhaps the help could be converted to vanilla
-HTML, at the cost of losing the index and search capability.
-
-552b. The WinBoard installer package is built with InstallShield.
-  Possible replacements:
-  Inno Setup (http://www.jrsoftware.org/isinfo.php) - looks best
-  NSIS (http://nsis.sourceforge.net/site/index.php)
-  Cygwin setup (http://www.cygwin.com) - a long shot
-
-552c. Although the cygwin resource compiler works on winboard.rc, it's
-a pain to create new dialogs by editing the text file.  The original
-ones were all created using the graphical dialog editor in MSVC 5.
-
-553. It would be nice for xboard's ICS Input box to have a history 
-feature similar to WinBoard's ICS Interaction window. Actually it 
-would be nice for xboard to have its own ICS Interaction window with 
-all the bells and whistles that WinBoard's has instead of limping 
-along using an xterm for interaction. 
-
-**554. Port evaluation-graph window to XBoard.
-
-555. Split x/wengineoutput.c in a front-end and common backend file.
-
-556. Fix -stickyWindows option under XP and Vista, and port to XBoard.
-
-557. Port display of engine logos to XBoard.
-
-558. Device a smart way for -autoLogo to select logos in other modes
-than Two Machines.
-
-
-
-* * *
-
-Before each release:
-- make sure both xboard and winboard build and are up to date with each other
-- run zippy with new version as a shakedown
-- be sure gnu5 binary is up to date in winboard, and gnu5 patch (if needed)
-  is included in both xboard and winboard kits 
-- recheck cygwin compiling winboard
-- make sure ChangeLog is complete
-- test changes
-
-*** up to date with mail received through 5 Nov 2003, except
-for the "protover 3" discussions on the chess-engines mailing list ***
diff --git a/args.h b/args.h
deleted file mode 100644 (file)
index 8d07b20..0000000
--- a/args.h
+++ /dev/null
@@ -1,1703 +0,0 @@
-/*
- * args.c -- Option parsing and saving for X and Windows versions of XBoard
- *
- * Copyright 1991 by Digital Equipment Corporation, Maynard,
- * Massachusetts.
- *
- * Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006,
- * 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free Software Foundation, Inc.
- *
- * Enhancements Copyright 2005 Alessandro Scotti
- *
- * The following terms apply to Digital Equipment Corporation's copyright
- * interest in XBoard:
- * ------------------------------------------------------------------------
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notice appear in all copies and that
- * both that copyright notice and this permission notice appear in
- * supporting documentation, and that the name of Digital not be
- * used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- *
- * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- * ------------------------------------------------------------------------
- *
- * The following terms apply to the enhanced version of XBoard
- * distributed by the Free Software Foundation:
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.
-*/
-
-// Note: this file is not a normal header, but contains executable code
-// for #inclusion in winboard.c and xboard.c, rather than separate compilation,
-// so that it can make use of the proper context of #defined symbols and
-// declarations in those files.
-
-typedef enum {
-  ArgString, ArgInt, ArgFloat, ArgBoolean, ArgTrue, ArgFalse, ArgNone,
-  ArgColor, ArgAttribs, ArgFilename, ArgBoardSize, ArgFont, ArgCommSettings,
-  ArgSettingsFilename, ArgBackupSettingsFile, ArgTwo, ArgInstall, ArgMaster,
-  ArgX, ArgY, ArgZ // [HGM] placement: for window-placement options stored relative to main window
-} ArgType;
-
-typedef void *ArgIniType;
-
-#define INVALID (ArgIniType) 6915 /* Some number unlikely to be needed as default for anything */
-#define MAX_ARG_LEN 128*1024 /* [AS] For Roger Brown's very long list! */
-
-typedef struct {
-  char *argName;
-  ArgType argType;
-  /***
-  union {
-    String *pString;       // ArgString
-    int *pInt;             // ArgInt
-    float *pFloat;         // ArgFloat
-    Boolean *pBoolean;     // ArgBoolean
-    COLORREF *pColor;      // ArgColor
-    ColorClass cc;         // ArgAttribs
-    String *pFilename;     // ArgFilename
-    BoardSize *pBoardSize; // ArgBoardSize
-    int whichFont;         // ArgFont
-    DCB *pDCB;             // ArgCommSettings
-    String *pFilename;     // ArgSettingsFilename
-  } argLoc;
-  ***/
-  void *argLoc;
-  Boolean save;
-  ArgIniType defaultValue;
-} ArgDescriptor;
-
-typedef struct {
-  char *item;
-  char *command;
-  Boolean getname;
-  Boolean immediate;
-} IcsTextMenuEntry;
-
-IcsTextMenuEntry icsTextMenuEntry[ICS_TEXT_MENU_SIZE];
-char dataDir[MSG_SIZ] = DATADIR;
-
-int junk;
-int saveDate;
-int dateStamp;
-Boolean singleList;
-Boolean autoClose;
-char *homeDir;
-char *firstEngineLine;
-char *secondEngineLine;
-char *icsNick;
-char *theme;
-
-void EnsureOnScreen(int *x, int *y, int minX, int minY);
-char StringGet(void *getClosure);
-void ParseFont(char *name, int number);
-void SetFontDefaults();
-void CreateFonts();
-void ParseColor(int n, char *name);
-void ParseTextAttribs(ColorClass cc, char *s);
-void ParseBoardSize(void * addr, char *name);
-void ParseCommPortSettings(char *name);
-void LoadAllSounds();
-void SetCommPortDefaults();
-void SaveFontArg(FILE *f, ArgDescriptor *ad);
-void ExportSounds();
-void SaveAttribsArg(FILE *f, ArgDescriptor *ad);
-void SaveColor(FILE *f, ArgDescriptor *ad);
-void SaveBoardSize(FILE *f, char *name, void *addr);
-void PrintCommPortSettings(FILE *f, char *name);
-void GetWindowCoords();
-int  MainWindowUp();
-void PopUpStartupDialog();
-typedef char GetFunc(void *getClosure);
-void ParseArgs(GetFunc get, void *cl);
-
-// [HGM] this is an exact duplicate of something in winboard.c. Move to backend.c?
-char *defaultTextAttribs[] =
-{
-  COLOR_SHOUT, COLOR_SSHOUT, COLOR_CHANNEL1, COLOR_CHANNEL, COLOR_KIBITZ,
-  COLOR_TELL, COLOR_CHALLENGE, COLOR_REQUEST, COLOR_SEEK, COLOR_NORMAL,
-  "#000000"
-};
-
-ArgDescriptor argDescriptors[] = {
-  /* positional arguments */
-  { "opt", ArgSettingsFilename, (void *) NULL, FALSE, INVALID },
-  { "loadPositionFile", ArgFilename, (void *) &appData.loadPositionFile, FALSE, INVALID },
-  { "tourneyFile", ArgFilename, (void *) &appData.tourneyFile, FALSE, INVALID },
-  { "is", ArgString, (void *) &icsNick, FALSE, INVALID },
-  { "loadGameFile", ArgFilename, (void *) &appData.loadGameFile, FALSE, INVALID },
-  { "", ArgNone, NULL, FALSE, INVALID },
-  /* keyword arguments */
-  { "saveDate", ArgInt, (void *) &saveDate, TRUE, 0 },
-  { "date", ArgInt, (void *) &dateStamp, FALSE, 0 },
-  { "autoClose", ArgTrue, (void *) &autoClose, FALSE, FALSE },
-  JAWS_ARGS
-  { "whitePieceColor", ArgColor, (void *) 0, TRUE, (ArgIniType) WHITE_PIECE_COLOR },
-  { "wpc", ArgColor, (void *) 0, FALSE, INVALID },
-  { "blackPieceColor", ArgColor, (void *) 1, TRUE, (ArgIniType) BLACK_PIECE_COLOR },
-  { "bpc", ArgColor, (void *) 1, FALSE, INVALID },
-  { "lightSquareColor", ArgColor, (void *) 2, TRUE, (ArgIniType) LIGHT_SQUARE_COLOR },
-  { "lsc", ArgColor, (void *) 2, FALSE, INVALID },
-  { "darkSquareColor", ArgColor, (void *) 3, TRUE, (ArgIniType) DARK_SQUARE_COLOR },
-  { "dsc", ArgColor, (void *) 3, FALSE, INVALID },
-  { "highlightSquareColor", ArgColor, (void *) 4, TRUE, (ArgIniType) HIGHLIGHT_SQUARE_COLOR },
-  { "hsc", ArgColor, (void *) 4, FALSE, INVALID },
-  { "premoveHighlightColor", ArgColor, (void *) 5, TRUE, (ArgIniType) PREMOVE_HIGHLIGHT_COLOR },
-  { "phc", ArgColor, (void *) 5, FALSE, INVALID },
-  { "movesPerSession", ArgInt, (void *) &appData.movesPerSession, TRUE, (ArgIniType) MOVES_PER_SESSION },
-  { "mps", ArgInt, (void *) &appData.movesPerSession, FALSE, INVALID },
-  { "initString", ArgString, (void *) &appData.firstInitString, FALSE, INVALID },
-  { "firstInitString", ArgString, (void *) &appData.firstInitString, FALSE, (ArgIniType) INIT_STRING },
-  { "secondInitString", ArgString, (void *) &appData.secondInitString, FALSE, (ArgIniType) INIT_STRING },
-  { "firstComputerString", ArgString, (void *) &appData.firstComputerString,
-    FALSE, (ArgIniType) COMPUTER_STRING },
-  { "secondComputerString", ArgString, (void *) &appData.secondComputerString,
-    FALSE, (ArgIniType) COMPUTER_STRING },
-  { "firstChessProgram", ArgFilename, (void *) &appData.firstChessProgram,
-    FALSE, (ArgIniType) FIRST_CHESS_PROGRAM },
-  { "fcp", ArgFilename, (void *) &appData.firstChessProgram, FALSE, INVALID },
-  { "secondChessProgram", ArgFilename, (void *) &appData.secondChessProgram,
-    FALSE, (ArgIniType) SECOND_CHESS_PROGRAM },
-  { "scp", ArgFilename, (void *) &appData.secondChessProgram, FALSE, INVALID },
-  { "fe", ArgString, (void *) &firstEngineLine, FALSE, "" },
-  { "se", ArgString, (void *) &secondEngineLine, FALSE, "" },
-  { "firstPlaysBlack", ArgBoolean, (void *) &appData.firstPlaysBlack, FALSE, FALSE },
-  { "fb", ArgTrue, (void *) &appData.firstPlaysBlack, FALSE, FALSE },
-  { "xfb", ArgFalse, (void *) &appData.firstPlaysBlack, FALSE, INVALID },
-  { "-fb", ArgFalse, (void *) &appData.firstPlaysBlack, FALSE, INVALID },
-  { "noChessProgram", ArgBoolean, (void *) &appData.noChessProgram, FALSE, FALSE },
-  { "ncp", ArgTrue, (void *) &appData.noChessProgram, FALSE, INVALID },
-  { "xncp", ArgFalse, (void *) &appData.noChessProgram, FALSE, INVALID },
-  { "-ncp", ArgFalse, (void *) &appData.noChessProgram, FALSE, INVALID },
-  { "firstHost", ArgString, (void *) &appData.firstHost, FALSE, (ArgIniType) FIRST_HOST },
-  { "fh", ArgString, (void *) &appData.firstHost, FALSE, INVALID },
-  { "secondHost", ArgString, (void *) &appData.secondHost, FALSE, (ArgIniType) SECOND_HOST },
-  { "sh", ArgString, (void *) &appData.secondHost, FALSE, INVALID },
-  { "firstDirectory", ArgFilename, (void *) &appData.firstDirectory, FALSE, (ArgIniType) FIRST_DIRECTORY },
-  { "fd", ArgFilename, (void *) &appData.firstDirectory, FALSE, INVALID },
-  { "secondDirectory", ArgFilename, (void *) &appData.secondDirectory, FALSE, (ArgIniType) SECOND_DIRECTORY },
-  { "sd", ArgFilename, (void *) &appData.secondDirectory, FALSE, INVALID },
-  { "variations", ArgBoolean, (void *) &appData.variations, TRUE, (ArgIniType) FALSE },
-  { "appendPV", ArgBoolean, (void *) &appData.autoExtend, TRUE, (ArgIniType) FALSE },
-  { "theme", ArgString, (void *) &theme, FALSE, (ArgIniType) "" },
-
-  /* some options only used by the XBoard front end, and ignored in WinBoard         */
-  /* Their saving is controlled by XBOARD, which in WinBoard is defined as FALSE */
-  { "internetChessServerInputBox", ArgBoolean, (void *) &appData.icsInputBox, XBOARD, (ArgIniType) FALSE },
-  { "icsinput", ArgTrue, (void *) &appData.icsInputBox, FALSE, INVALID },
-  { "xicsinput", ArgFalse, (void *) &appData.icsInputBox, FALSE, INVALID },
-  { "cmail", ArgString, (void *) &appData.cmailGameName, FALSE, (ArgIniType) "" },
-  { "soundProgram", ArgFilename, (void *) &appData.soundProgram, XBOARD, (ArgIniType) "play" },
-  { "fontSizeTolerance", ArgInt, (void *) &appData.fontSizeTolerance, XBOARD, (ArgIniType) 4 },
-  { "lowTimeWarningColor", ArgColor, (void *) 6, XBOARD, (ArgIniType) LOWTIMEWARNING_COLOR },
-  { "lowTimeWarning", ArgBoolean, (void *) &appData.lowTimeWarning, XBOARD, (ArgIniType) FALSE },
-  { "titleInWindow", ArgBoolean, (void *) &appData.titleInWindow, XBOARD, (ArgIniType) FALSE },
-  { "title", ArgTrue, (void *) &appData.titleInWindow, FALSE, INVALID },
-  { "xtitle", ArgFalse, (void *) &appData.titleInWindow, FALSE, INVALID },
-  { "flashCount", ArgInt, (void *) &appData.flashCount, XBOARD, INVALID }, // let X handle this
-  { "flashRate", ArgInt, (void *) &appData.flashRate, XBOARD, (ArgIniType) FLASH_RATE },
-  { "pieceImageDirectory", ArgFilename, (void *) &appData.pieceDirectory, TRUE, (ArgIniType) "" },
-  { "pid", ArgFilename, (void *) &appData.pieceDirectory, FALSE, INVALID },
-  { "trueColors", ArgBoolean, (void *) &appData.trueColors, TRUE, (ArgIniType) FALSE },
-  { "soundDirectory", ArgFilename, (void *) &appData.soundDirectory, XBOARD, (ArgIniType) "" },
-  { "msLoginDelay", ArgInt, (void *) &appData.msLoginDelay, XBOARD, (ArgIniType) MS_LOGIN_DELAY },
-  { "pasteSelection", ArgBoolean, (void *) &appData.pasteSelection, XBOARD, (ArgIniType) FALSE },
-
-  { "dropMenu", ArgBoolean, (void *) &appData.dropMenu, TRUE, (ArgIniType) FALSE },
-  { "pieceMenu", ArgBoolean, (void *) &appData.pieceMenu, TRUE, (ArgIniType) TRUE },
-  { "sweepPromotions", ArgBoolean, (void *) &appData.sweepSelect, TRUE, (ArgIniType) FALSE },
-  { "monoMouse", ArgBoolean, (void *) &appData.monoMouse, XBOARD, (ArgIniType) FALSE },
-  { "remoteShell", ArgFilename, (void *) &appData.remoteShell, FALSE, (ArgIniType) REMOTE_SHELL },
-  { "rsh", ArgFilename, (void *) &appData.remoteShell, FALSE, INVALID },
-  { "remoteUser", ArgString, (void *) &appData.remoteUser, FALSE, (ArgIniType) "" },
-  { "ruser", ArgString, (void *) &appData.remoteUser, FALSE, INVALID },
-  { "timeDelay", ArgFloat, (void *) &appData.timeDelay, TRUE, INVALID },
-  { "td", ArgFloat, (void *) &appData.timeDelay, FALSE, INVALID },
-  { "timeControl", ArgString, (void *) &appData.timeControl, TRUE, (ArgIniType) TIME_CONTROL },
-  { "tc", ArgString, (void *) &appData.timeControl, FALSE, INVALID },
-  { "timeIncrement", ArgFloat, (void *) &appData.timeIncrement, FALSE, INVALID },
-  { "inc", ArgFloat, (void *) &appData.timeIncrement, FALSE, INVALID },
-  { "internetChessServerMode", ArgBoolean, (void *) &appData.icsActive, FALSE, INVALID },
-  { "ics", ArgTrue, (void *) &appData.icsActive, FALSE, (ArgIniType) FALSE },
-  { "xics", ArgFalse, (void *) &appData.icsActive, FALSE, INVALID },
-  { "-ics", ArgFalse, (void *) &appData.icsActive, FALSE, INVALID },
-  { "is", ArgString, (void *) &icsNick, FALSE, "" },
-  { "internetChessServerHost", ArgString, (void *) &appData.icsHost, FALSE, (ArgIniType) "" },
-  { "icshost", ArgString, (void *) &appData.icsHost, FALSE, INVALID },
-  { "internetChessServerPort", ArgString, (void *) &appData.icsPort, FALSE, (ArgIniType) ICS_PORT },
-  { "icsport", ArgString, (void *) &appData.icsPort, FALSE, INVALID },
-  { "internetChessServerCommPort", ArgString, (void *) &appData.icsCommPort, FALSE, (ArgIniType) ICS_COMM_PORT },
-  { "icscomm", ArgString, (void *) &appData.icsCommPort, FALSE, INVALID },
-  { "internetChessServerComPort", ArgString, (void *) &appData.icsCommPort, FALSE, INVALID },
-  { "icscom", ArgString, (void *) &appData.icsCommPort, FALSE, INVALID },
-  { "internetChessServerLogonScript", ArgFilename, (void *) &appData.icsLogon, FALSE, (ArgIniType) ICS_LOGON },
-  { "icslogon", ArgFilename, (void *) &appData.icsLogon, FALSE, INVALID },
-  { "useTelnet", ArgBoolean, (void *) &appData.useTelnet, FALSE, INVALID },
-  { "telnet", ArgTrue, (void *) &appData.useTelnet, FALSE, INVALID },
-  { "xtelnet", ArgFalse, (void *) &appData.useTelnet, FALSE, INVALID },
-  { "-telnet", ArgFalse, (void *) &appData.useTelnet, FALSE, INVALID },
-  { "telnetProgram", ArgFilename, (void *) &appData.telnetProgram, FALSE, (ArgIniType) TELNET_PROGRAM },
-  { "internetChessserverHelper", ArgFilename, (void *) &appData.icsHelper,
-       FALSE, INVALID }, // for XB
-  { "icshelper", ArgFilename, (void *) &appData.icsHelper, FALSE, (ArgIniType) "" },
-  { "seekGraph", ArgBoolean, (void *) &appData.seekGraph, TRUE, (ArgIniType) FALSE },
-  { "sg", ArgTrue, (void *) &appData.seekGraph, FALSE, INVALID },
-  { "autoRefresh", ArgBoolean, (void *) &appData.autoRefresh, TRUE, (ArgIniType) FALSE },
-  { "autoBox", ArgBoolean, (void *) &appData.autoBox, XBOARD, (ArgIniType) TRUE },
-  { "gateway", ArgString, (void *) &appData.gateway, FALSE, (ArgIniType) "" },
-  { "loadGameFile", ArgFilename, (void *) &appData.loadGameFile, FALSE, (ArgIniType) "" },
-  { "lgf", ArgFilename, (void *) &appData.loadGameFile, FALSE, INVALID },
-  { "loadGameIndex", ArgInt, (void *) &appData.loadGameIndex, FALSE, (ArgIniType) 0 },
-  { "lgi", ArgInt, (void *) &appData.loadGameIndex, FALSE, INVALID },
-  { "saveGameFile", ArgFilename, (void *) &appData.saveGameFile, TRUE, (ArgIniType) "" },
-  { "sgf", ArgFilename, (void *) &appData.saveGameFile, FALSE, INVALID },
-  { "autoSaveGames", ArgBoolean, (void *) &appData.autoSaveGames, TRUE, (ArgIniType) FALSE },
-  { "autosave", ArgTrue, (void *) &appData.autoSaveGames, FALSE, INVALID },
-  { "xautosave", ArgFalse, (void *) &appData.autoSaveGames, FALSE, INVALID },
-  { "-autosave", ArgFalse, (void *) &appData.autoSaveGames, FALSE, INVALID },
-  { "onlyOwnGames", ArgBoolean, (void *) &appData.onlyOwn, TRUE, (ArgIniType) FALSE },
-  { "loadPositionFile", ArgFilename, (void *) &appData.loadPositionFile, FALSE, (ArgIniType) "" },
-  { "lpf", ArgFilename, (void *) &appData.loadPositionFile, FALSE, INVALID },
-  { "loadPositionIndex", ArgInt, (void *) &appData.loadPositionIndex, FALSE, (ArgIniType) 1 },
-  { "lpi", ArgInt, (void *) &appData.loadPositionIndex, FALSE, INVALID },
-  { "positionDir", ArgFilename, (void *) &appData.positionDir, FALSE, (ArgIniType) "" },
-  { "savePositionFile", ArgFilename, (void *) &appData.savePositionFile, FALSE, (ArgIniType) "" },
-  { "spf", ArgFilename, (void *) &appData.savePositionFile, FALSE, INVALID },
-  { "matchMode", ArgBoolean, (void *) &appData.matchMode, FALSE, (ArgIniType) FALSE },
-  { "mm", ArgTrue, (void *) &appData.matchMode, FALSE, INVALID },
-  { "xmm", ArgFalse, (void *) &appData.matchMode, FALSE, INVALID },
-  { "-mm", ArgFalse, (void *) &appData.matchMode, FALSE, INVALID },
-  { "matchGames", ArgInt, (void *) &appData.matchGames, FALSE, (ArgIniType) 0 },
-  { "mg", ArgInt, (void *) &appData.matchGames, FALSE, INVALID },
-  { "monoMode", ArgBoolean, (void *) &appData.monoMode, TRUE, (ArgIniType) FALSE },
-  { "mono", ArgTrue, (void *) &appData.monoMode, FALSE, INVALID },
-  { "xmono", ArgFalse, (void *) &appData.monoMode, FALSE, INVALID },
-  { "-mono", ArgFalse, (void *) &appData.monoMode, FALSE, INVALID },
-  { "debugMode", ArgBoolean, (void *) &appData.debugMode, FALSE, (ArgIniType) FALSE },
-  { "debug", ArgTrue, (void *) &appData.debugMode, FALSE, INVALID },
-  { "xdebug", ArgFalse, (void *) &appData.debugMode, FALSE, INVALID },
-  { "-debug", ArgFalse, (void *) &appData.debugMode, FALSE, INVALID },
-  { "clockMode", ArgBoolean, (void *) &appData.clockMode, FALSE, (ArgIniType) TRUE },
-  { "clock", ArgTrue, (void *) &appData.clockMode, FALSE, INVALID },
-  { "xclock", ArgFalse, (void *) &appData.clockMode, FALSE, INVALID },
-  { "-clock", ArgFalse, (void *) &appData.clockMode, FALSE, INVALID },
-  { "searchTime", ArgString, (void *) &appData.searchTime, FALSE, (ArgIniType) "" },
-  { "st", ArgString, (void *) &appData.searchTime, FALSE, INVALID },
-  { "searchDepth", ArgInt, (void *) &appData.searchDepth, FALSE, (ArgIniType) 0 },
-  { "depth", ArgInt, (void *) &appData.searchDepth, FALSE, INVALID },
-  { "showCoords", ArgBoolean, (void *) &appData.showCoords, TRUE, (ArgIniType) FALSE },
-  { "coords", ArgTrue, (void *) &appData.showCoords, FALSE, INVALID },
-  { "xcoords", ArgFalse, (void *) &appData.showCoords, FALSE, INVALID },
-  { "-coords", ArgFalse, (void *) &appData.showCoords, FALSE, INVALID },
-  { "showThinking", ArgBoolean, (void *) &appData.showThinking, TRUE, (ArgIniType) FALSE },
-  { "thinking", ArgTrue, (void *) &appData.showThinking, FALSE, INVALID },
-  { "xthinking", ArgFalse, (void *) &appData.showThinking, FALSE, INVALID },
-  { "-thinking", ArgFalse, (void *) &appData.showThinking, FALSE, INVALID },
-  { "ponderNextMove", ArgBoolean, (void *) &appData.ponderNextMove, TRUE, (ArgIniType) TRUE },
-  { "ponder", ArgTrue, (void *) &appData.ponderNextMove, FALSE, INVALID },
-  { "xponder", ArgFalse, (void *) &appData.ponderNextMove, FALSE, INVALID },
-  { "-ponder", ArgFalse, (void *) &appData.ponderNextMove, FALSE, INVALID },
-  { "periodicUpdates", ArgBoolean, (void *) &appData.periodicUpdates, TRUE, (ArgIniType) TRUE },
-  { "periodic", ArgTrue, (void *) &appData.periodicUpdates, FALSE, INVALID },
-  { "xperiodic", ArgFalse, (void *) &appData.periodicUpdates, FALSE, INVALID },
-  { "-periodic", ArgFalse, (void *) &appData.periodicUpdates, FALSE, INVALID },
-  { "popupExitMessage", ArgBoolean, (void *) &appData.popupExitMessage, TRUE, (ArgIniType) TRUE },
-  { "exit", ArgTrue, (void *) &appData.popupExitMessage, FALSE, INVALID },
-  { "xexit", ArgFalse, (void *) &appData.popupExitMessage, FALSE, INVALID },
-  { "-exit", ArgFalse, (void *) &appData.popupExitMessage, FALSE, INVALID },
-  { "popupMoveErrors", ArgBoolean, (void *) &appData.popupMoveErrors, TRUE, (ArgIniType) FALSE },
-  { "popup", ArgTrue, (void *) &appData.popupMoveErrors, FALSE, INVALID },
-  { "xpopup", ArgFalse, (void *) &appData.popupMoveErrors, FALSE, INVALID },
-  { "-popup", ArgFalse, (void *) &appData.popupMoveErrors, FALSE, INVALID },
-  { "popUpErrors", ArgBoolean, (void *) &appData.popupMoveErrors,
-    FALSE, INVALID }, /* only so that old WinBoard.ini files from betas can be read */
-  { "clockFont", ArgFont, (void *) CLOCK_FONT, TRUE, INVALID },
-  { "messageFont", ArgFont, (void *) MESSAGE_FONT, TRUE, INVALID },
-  { "font", ArgFont, (void *) MESSAGE_FONT, FALSE, INVALID }, /* only so that old .xboardrc files will parse. -font does not work from the command line because it is captured by the X libraries. */
-  { "coordFont", ArgFont, (void *) COORD_FONT, TRUE, INVALID },
-  { "tagsFont", ArgFont, (void *) EDITTAGS_FONT, TRUE, INVALID },
-  { "commentFont", ArgFont, (void *) COMMENT_FONT, TRUE, INVALID },
-  { "icsFont", ArgFont, (void *) CONSOLE_FONT, TRUE, INVALID },
-  { "moveHistoryFont", ArgFont, (void *) MOVEHISTORY_FONT, TRUE, INVALID }, /* [AS] */
-  { "gameListFont", ArgFont, (void *) GAMELIST_FONT, TRUE, INVALID }, /* [HGM] */
-  { "boardSize", ArgBoardSize, (void *) &boardSize,
-    TRUE, (ArgIniType) -1 }, /* must come after all fonts */
-  { "size", ArgBoardSize, (void *) &boardSize, FALSE, INVALID },
-  { "ringBellAfterMoves", ArgBoolean, (void *) &appData.ringBellAfterMoves,
-    FALSE, (ArgIniType) TRUE }, /* historical; kept only so old winboard.ini files will parse */
-  { "bell", ArgTrue, (void *) &appData.ringBellAfterMoves, FALSE, INVALID }, // for XB
-  { "xbell", ArgFalse, (void *) &appData.ringBellAfterMoves, FALSE, INVALID }, // for XB
-  { "movesound", ArgTrue, (void *) &appData.ringBellAfterMoves, FALSE, INVALID }, // for XB
-  { "xmovesound", ArgFalse, (void *) &appData.ringBellAfterMoves, FALSE, INVALID }, // for XB
-  { "alwaysOnTop", ArgBoolean, (void *) &alwaysOnTop, TRUE, INVALID },
-  { "top", ArgTrue, (void *) &alwaysOnTop, FALSE, INVALID },
-  { "xtop", ArgFalse, (void *) &alwaysOnTop, FALSE, INVALID },
-  { "-top", ArgFalse, (void *) &alwaysOnTop, FALSE, INVALID },
-  { "autoCallFlag", ArgBoolean, (void *) &appData.autoCallFlag, TRUE, (ArgIniType) FALSE },
-  { "autoflag", ArgTrue, (void *) &appData.autoCallFlag, FALSE, INVALID },
-  { "xautoflag", ArgFalse, (void *) &appData.autoCallFlag, FALSE, INVALID },
-  { "-autoflag", ArgFalse, (void *) &appData.autoCallFlag, FALSE, INVALID },
-  { "autoComment", ArgBoolean, (void *) &appData.autoComment, TRUE, (ArgIniType) FALSE },
-  { "autocomm", ArgTrue, (void *) &appData.autoComment, FALSE, INVALID },
-  { "xautocomm", ArgFalse, (void *) &appData.autoComment, FALSE, INVALID },
-  { "-autocomm", ArgFalse, (void *) &appData.autoComment, FALSE, INVALID },
-  { "autoCreateLogon", ArgBoolean, (void *) &appData.autoCreateLogon, TRUE, (ArgIniType) FALSE },
-  { "autoObserve", ArgBoolean, (void *) &appData.autoObserve, TRUE, (ArgIniType) FALSE },
-  { "autobs", ArgTrue, (void *) &appData.autoObserve, FALSE, INVALID },
-  { "xautobs", ArgFalse, (void *) &appData.autoObserve, FALSE, INVALID },
-  { "-autobs", ArgFalse, (void *) &appData.autoObserve, FALSE, INVALID },
-  { "flipView", ArgBoolean, (void *) &appData.flipView, FALSE, (ArgIniType) FALSE },
-  { "flip", ArgTrue, (void *) &appData.flipView, FALSE, INVALID },
-  { "xflip", ArgFalse, (void *) &appData.flipView, FALSE, INVALID },
-  { "-flip", ArgFalse, (void *) &appData.flipView, FALSE, INVALID },
-  { "autoFlipView", ArgBoolean, (void *) &appData.autoFlipView, TRUE, (ArgIniType) TRUE },
-  { "autoflip", ArgTrue, (void *) &appData.autoFlipView, FALSE, INVALID },
-  { "xautoflip", ArgFalse, (void *) &appData.autoFlipView, FALSE, INVALID },
-  { "-autoflip", ArgFalse, (void *) &appData.autoFlipView, FALSE, INVALID },
-  { "autoRaiseBoard", ArgBoolean, (void *) &appData.autoRaiseBoard, TRUE, (ArgIniType) TRUE },
-  { "autoraise", ArgTrue, (void *) &appData.autoRaiseBoard, FALSE, INVALID },
-  { "xautoraise", ArgFalse, (void *) &appData.autoRaiseBoard, FALSE, INVALID },
-  { "-autoraise", ArgFalse, (void *) &appData.autoRaiseBoard, FALSE, INVALID },
-  { "alwaysPromoteToQueen", ArgBoolean, (void *) &appData.alwaysPromoteToQueen, TRUE, (ArgIniType) FALSE },
-  { "queen", ArgTrue, (void *) &appData.alwaysPromoteToQueen, FALSE, INVALID },
-  { "xqueen", ArgFalse, (void *) &appData.alwaysPromoteToQueen, FALSE, INVALID },
-  { "-queen", ArgFalse, (void *) &appData.alwaysPromoteToQueen, FALSE, INVALID },
-  { "oldSaveStyle", ArgBoolean, (void *) &appData.oldSaveStyle, TRUE, (ArgIniType) FALSE },
-  { "oldsave", ArgTrue, (void *) &appData.oldSaveStyle, FALSE, INVALID },
-  { "xoldsave", ArgFalse, (void *) &appData.oldSaveStyle, FALSE, INVALID },
-  { "-oldsave", ArgFalse, (void *) &appData.oldSaveStyle, FALSE, INVALID },
-  { "quietPlay", ArgBoolean, (void *) &appData.quietPlay, TRUE, (ArgIniType) FALSE },
-  { "quiet", ArgTrue, (void *) &appData.quietPlay, FALSE, INVALID },
-  { "xquiet", ArgFalse, (void *) &appData.quietPlay, FALSE, INVALID },
-  { "-quiet", ArgFalse, (void *) &appData.quietPlay, FALSE, INVALID },
-  { "getMoveList", ArgBoolean, (void *) &appData.getMoveList, TRUE, (ArgIniType) TRUE },
-  { "moves", ArgTrue, (void *) &appData.getMoveList, FALSE, INVALID },
-  { "xmoves", ArgFalse, (void *) &appData.getMoveList, FALSE, INVALID },
-  { "-moves", ArgFalse, (void *) &appData.getMoveList, FALSE, INVALID },
-  { "testLegality", ArgBoolean, (void *) &appData.testLegality, TRUE, (ArgIniType) TRUE },
-  { "legal", ArgTrue, (void *) &appData.testLegality, FALSE, INVALID },
-  { "xlegal", ArgFalse, (void *) &appData.testLegality, FALSE, INVALID },
-  { "-legal", ArgFalse, (void *) &appData.testLegality, FALSE, INVALID },
-  { "premove", ArgBoolean, (void *) &appData.premove, TRUE, (ArgIniType) TRUE },
-  { "pre", ArgTrue, (void *) &appData.premove, FALSE, INVALID },
-  { "xpre", ArgFalse, (void *) &appData.premove, FALSE, INVALID },
-  { "-pre", ArgFalse, (void *) &appData.premove, FALSE, INVALID },
-  { "premoveWhite", ArgBoolean, (void *) &appData.premoveWhite, TRUE, (ArgIniType) FALSE },
-  { "prewhite", ArgTrue, (void *) &appData.premoveWhite, FALSE, INVALID },
-  { "xprewhite", ArgFalse, (void *) &appData.premoveWhite, FALSE, INVALID },
-  { "-prewhite", ArgFalse, (void *) &appData.premoveWhite, FALSE, INVALID },
-  { "premoveWhiteText", ArgString, (void *) &appData.premoveWhiteText, TRUE, (ArgIniType) "" },
-  { "premoveBlack", ArgBoolean, (void *) &appData.premoveBlack, TRUE, (ArgIniType) FALSE },
-  { "preblack", ArgTrue, (void *) &appData.premoveBlack, FALSE, INVALID },
-  { "xpreblack", ArgFalse, (void *) &appData.premoveBlack, FALSE, INVALID },
-  { "-preblack", ArgFalse, (void *) &appData.premoveBlack, FALSE, INVALID },
-  { "premoveBlackText", ArgString, (void *) &appData.premoveBlackText, TRUE, (ArgIniType) "" },
-  { "icsAlarm", ArgBoolean, (void *) &appData.icsAlarm, TRUE, (ArgIniType) TRUE},
-  { "alarm", ArgTrue, (void *) &appData.icsAlarm, FALSE},
-  { "xalarm", ArgFalse, (void *) &appData.icsAlarm, FALSE},
-  { "-alarm", ArgFalse, (void *) &appData.icsAlarm, FALSE},
-  { "icsAlarmTime", ArgInt, (void *) &appData.icsAlarmTime, TRUE, (ArgIniType) 5000},
-  { "localLineEditing", ArgBoolean, (void *) &appData.localLineEditing, FALSE, (ArgIniType) TRUE},
-  { "edit", ArgTrue, (void *) &appData.localLineEditing, FALSE, INVALID },
-  { "xedit", ArgFalse, (void *) &appData.localLineEditing, FALSE, INVALID },
-  { "-edit", ArgFalse, (void *) &appData.localLineEditing, FALSE, INVALID },
-  { "animateMoving", ArgBoolean, (void *) &appData.animate, TRUE, (ArgIniType) TRUE },
-  { "animate", ArgTrue, (void *) &appData.animate, FALSE, INVALID },
-  { "xanimate", ArgFalse, (void *) &appData.animate, FALSE, INVALID },
-  { "-animate", ArgFalse, (void *) &appData.animate, FALSE, INVALID },
-  { "animateSpeed", ArgInt, (void *) &appData.animSpeed, TRUE, (ArgIniType) 10 },
-  { "animateDragging", ArgBoolean, (void *) &appData.animateDragging, TRUE, (ArgIniType) TRUE },
-  { "drag", ArgTrue, (void *) &appData.animateDragging, FALSE, INVALID },
-  { "xdrag", ArgFalse, (void *) &appData.animateDragging, FALSE, INVALID },
-  { "-drag", ArgFalse, (void *) &appData.animateDragging, FALSE, INVALID },
-  { "blindfold", ArgBoolean, (void *) &appData.blindfold, TRUE, (ArgIniType) FALSE },
-  { "blind", ArgTrue, (void *) &appData.blindfold, FALSE, INVALID },
-  { "xblind", ArgFalse, (void *) &appData.blindfold, FALSE, INVALID },
-  { "-blind", ArgFalse, (void *) &appData.blindfold, FALSE, INVALID },
-  { "highlightLastMove", ArgBoolean,
-    (void *) &appData.highlightLastMove, TRUE, (ArgIniType) TRUE },
-  { "highlight", ArgTrue, (void *) &appData.highlightLastMove, FALSE, INVALID },
-  { "xhighlight", ArgFalse, (void *) &appData.highlightLastMove, FALSE, INVALID },
-  { "-highlight", ArgFalse, (void *) &appData.highlightLastMove, FALSE, INVALID },
-  { "highlightDragging", ArgBoolean,
-    (void *) &appData.highlightDragging, !XBOARD, (ArgIniType) TRUE },
-  { "highdrag", ArgTrue, (void *) &appData.highlightDragging, FALSE, INVALID },
-  { "xhighdrag", ArgFalse, (void *) &appData.highlightDragging, FALSE, INVALID },
-  { "-highdrag", ArgFalse, (void *) &appData.highlightDragging, FALSE, INVALID },
-  { "colorizeMessages", ArgBoolean, (void *) &appData.colorize, TRUE, (ArgIniType) TRUE },
-  { "colorize", ArgTrue, (void *) &appData.colorize, FALSE, INVALID },
-  { "xcolorize", ArgFalse, (void *) &appData.colorize, FALSE, INVALID },
-  { "-colorize", ArgFalse, (void *) &appData.colorize, FALSE, INVALID },
-  { "colorShout", ArgAttribs, (void *) ColorShout, TRUE, INVALID },
-  { "colorSShout", ArgAttribs, (void *) ColorSShout, TRUE, INVALID },
-  { "colorCShout", ArgAttribs, (void *) ColorSShout, FALSE, INVALID }, // for XB
-  { "colorChannel1", ArgAttribs, (void *) ColorChannel1, TRUE, INVALID },
-  { "colorChannel", ArgAttribs, (void *) ColorChannel, TRUE, INVALID },
-  { "colorKibitz", ArgAttribs, (void *) ColorKibitz, TRUE, INVALID },
-  { "colorTell", ArgAttribs, (void *) ColorTell, TRUE, INVALID },
-  { "colorChallenge", ArgAttribs, (void *) ColorChallenge, TRUE, INVALID },
-  { "colorRequest", ArgAttribs, (void *) ColorRequest, TRUE, INVALID },
-  { "colorSeek", ArgAttribs, (void *) ColorSeek, TRUE, INVALID },
-  { "colorNormal", ArgAttribs, (void *) ColorNormal, TRUE, INVALID },
-  { "colorBackground", ArgColor, (void *) 7, TRUE, COLOR_BKGD },
-  { "soundShout", ArgFilename, (void *) &appData.soundShout, TRUE, (ArgIniType) "" },
-  { "soundSShout", ArgFilename, (void *) &appData.soundSShout, TRUE, (ArgIniType) "" },
-  { "soundCShout", ArgFilename, (void *) &appData.soundSShout, FALSE, (ArgIniType) "" }, // for XB
-  { "soundChannel1", ArgFilename, (void *) &appData.soundChannel1, TRUE, (ArgIniType) "" },
-  { "soundChannel", ArgFilename, (void *) &appData.soundChannel, TRUE, (ArgIniType) "" },
-  { "soundKibitz", ArgFilename, (void *) &appData.soundKibitz, TRUE, (ArgIniType) "" },
-  { "soundTell", ArgFilename, (void *) &appData.soundTell, TRUE, (ArgIniType) "" },
-  { "soundChallenge", ArgFilename, (void *) &appData.soundChallenge, TRUE, (ArgIniType) "" },
-  { "soundRequest", ArgFilename, (void *) &appData.soundRequest, TRUE, (ArgIniType) "" },
-  { "soundSeek", ArgFilename, (void *) &appData.soundSeek, TRUE, (ArgIniType) "" },
-  { "soundMove", ArgFilename, (void *) &appData.soundMove, TRUE, (ArgIniType) "" },
-  { "soundBell", ArgFilename, (void *) &appData.soundBell, TRUE, (ArgIniType) SOUND_BELL },
-  { "soundRoar", ArgFilename, (void *) &appData.soundRoar, TRUE, (ArgIniType) "" },
-  { "soundIcsWin", ArgFilename, (void *) &appData.soundIcsWin, TRUE, (ArgIniType) "" },
-  { "soundIcsLoss", ArgFilename, (void *) &appData.soundIcsLoss, TRUE, (ArgIniType) "" },
-  { "soundIcsDraw", ArgFilename, (void *) &appData.soundIcsDraw, TRUE, (ArgIniType) "" },
-  { "soundIcsUnfinished", ArgFilename, (void *) &appData.soundIcsUnfinished, TRUE, (ArgIniType) "" },
-  { "soundIcsAlarm", ArgFilename, (void *) &appData.soundIcsAlarm, TRUE, (ArgIniType) "" },
-  { "disguisePromotedPieces", ArgBoolean, (void *) &appData.disguise, TRUE, (ArgIniType) TRUE },
-  { "reuseFirst", ArgBoolean, (void *) &appData.reuseFirst, FALSE, (ArgIniType) TRUE },
-  { "reuse", ArgTrue, (void *) &appData.reuseFirst, FALSE, INVALID },
-  { "xreuse", ArgFalse, (void *) &appData.reuseFirst, FALSE, INVALID },
-  { "-reuse", ArgFalse, (void *) &appData.reuseFirst, FALSE, INVALID },
-  { "reuseChessPrograms", ArgBoolean,
-    (void *) &appData.reuseFirst, FALSE, INVALID }, /* backward compat only */
-  { "reuseSecond", ArgBoolean, (void *) &appData.reuseSecond, FALSE, (ArgIniType) TRUE },
-  { "reuse2", ArgTrue, (void *) &appData.reuseSecond, FALSE, INVALID },
-  { "xreuse2", ArgFalse, (void *) &appData.reuseSecond, FALSE, INVALID },
-  { "-reuse2", ArgFalse, (void *) &appData.reuseSecond, FALSE, INVALID },
-  { "comPortSettings", ArgCommSettings, (void *) /*&dcb*/ 0, TRUE, INVALID },
-  { "settingsFile", ArgSettingsFilename, (void *) &settingsFileName, FALSE, (ArgIniType) SETTINGS_FILE },
-  { "ini", ArgSettingsFilename, (void *) &settingsFileName, FALSE, INVALID },
-  { "at", ArgSettingsFilename, (void *) NULL, FALSE, INVALID },
-  { "opt", ArgSettingsFilename, (void *) NULL, FALSE, INVALID },
-  { "saveSettingsFile", ArgFilename, (void *) &settingsFileName, FALSE, INVALID },
-  { "backupSettingsFile", ArgBackupSettingsFile, (void *) &settingsFileName, FALSE, INVALID },
-  { "saveSettingsOnExit", ArgBoolean, (void *) &saveSettingsOnExit, TRUE, (ArgIniType) TRUE },
-  { "chessProgram", ArgBoolean, (void *) &chessProgram, FALSE, (ArgIniType) FALSE },
-  { "cp", ArgTrue, (void *) &chessProgram, FALSE, INVALID },
-  { "xcp", ArgFalse, (void *) &chessProgram, FALSE, INVALID },
-  { "-cp", ArgFalse, (void *) &chessProgram, FALSE, INVALID },
-  { "icsMenu", ArgString, (void *) &icsTextMenuString, TRUE, (ArgIniType) ICS_TEXT_MENU_DEFAULT },
-  { "icsNames", ArgString, (void *) &icsNames, TRUE, (ArgIniType) ICS_NAMES },
-  { "singleEngineList", ArgBoolean, (void *) &singleList, !XBOARD, (ArgIniType) FALSE },
-  { "recentEngines", ArgInt, (void *) &appData.recentEngines, TRUE, (ArgIniType) 6 },
-  { "recentEngineList", ArgString, (void *) &appData.recentEngineList, TRUE, (ArgIniType) "" },
-  { "firstChessProgramNames", ArgString, (void *) &firstChessProgramNames,
-    TRUE, (ArgIniType) FCP_NAMES },
-  { "secondChessProgramNames", ArgString, (void *) &secondChessProgramNames,
-    !XBOARD, (ArgIniType) SCP_NAMES },
-  { "themeNames", ArgString, (void *) &appData.themeNames, TRUE, (ArgIniType) "native -upf false -ub false -ubt false -pid \"\"\n" },
-  { "addMasterOption", ArgMaster, NULL, FALSE, INVALID },
-  { "installEngine", ArgInstall, (void *) &firstChessProgramNames, FALSE, (ArgIniType) "" },
-  { "installTheme", ArgInstall, (void *) &appData.themeNames, FALSE, (ArgIniType) "" },
-  { "initialMode", ArgString, (void *) &appData.initialMode, FALSE, (ArgIniType) "" },
-  { "mode", ArgString, (void *) &appData.initialMode, FALSE, INVALID },
-  { "variant", ArgString, (void *) &appData.variant, FALSE, (ArgIniType) "normal" },
-  { "firstProtocolVersion", ArgInt, (void *) &appData.firstProtocolVersion, FALSE, (ArgIniType) PROTOVER },
-  { "secondProtocolVersion", ArgInt, (void *) &appData.secondProtocolVersion,FALSE, (ArgIniType) PROTOVER },
-  { "showButtonBar", ArgBoolean, (void *) &appData.showButtonBar, TRUE, (ArgIniType) TRUE },
-  { "buttons", ArgTrue, (void *) &appData.showButtonBar, FALSE, INVALID },
-  { "xbuttons", ArgFalse, (void *) &appData.showButtonBar, FALSE, INVALID },
-  { "-buttons", ArgFalse, (void *) &appData.showButtonBar, FALSE, INVALID },
-
-  /* [AS] New features */
-  { "firstScoreAbs", ArgBoolean, (void *) &appData.firstScoreIsAbsolute, FALSE, (ArgIniType) FALSE },
-  { "secondScoreAbs", ArgBoolean, (void *) &appData.secondScoreIsAbsolute, FALSE, (ArgIniType) FALSE },
-  { "pgnExtendedInfo", ArgBoolean, (void *) &appData.saveExtendedInfoInPGN, TRUE, (ArgIniType) FALSE },
-  { "hideThinkingFromHuman", ArgBoolean, (void *) &appData.hideThinkingFromHuman, TRUE, (ArgIniType) FALSE },
-  { "liteBackTextureFile", ArgFilename, (void *) &appData.liteBackTextureFile, TRUE, (ArgIniType) "" },
-  { "lbtf", ArgFilename, (void *) &appData.liteBackTextureFile, FALSE, INVALID },
-  { "darkBackTextureFile", ArgFilename, (void *) &appData.darkBackTextureFile, TRUE, (ArgIniType) "" },
-  { "dbtf", ArgFilename, (void *) &appData.darkBackTextureFile, FALSE, INVALID },
-  { "liteBackTextureMode", ArgInt, (void *) &appData.liteBackTextureMode, TRUE, (ArgIniType) BACK_TEXTURE_MODE_PLAIN },
-  { "lbtm", ArgInt, (void *) &appData.liteBackTextureMode, FALSE, INVALID },
-  { "darkBackTextureMode", ArgInt, (void *) &appData.darkBackTextureMode, TRUE, (ArgIniType) BACK_TEXTURE_MODE_PLAIN },
-  { "dbtm", ArgInt, (void *) &appData.darkBackTextureMode, FALSE, INVALID },
-  { "renderPiecesWithFont", ArgString, (void *) &appData.renderPiecesWithFont, TRUE, (ArgIniType) "" },
-  { "pf", ArgString, (void *) &appData.renderPiecesWithFont, FALSE, INVALID },
-  { "fontPieceToCharTable", ArgString, (void *) &appData.fontToPieceTable, TRUE, (ArgIniType) "" },
-  { "fptc", ArgString, (void *) &appData.fontToPieceTable, FALSE, INVALID },
-  { "fontPieceBackColorWhite", ArgColor, (void *) 8, TRUE, (ArgIniType) WHITE_PIECE_COLOR },
-  { "fontPieceForeColorWhite", ArgColor, (void *) 9, TRUE, (ArgIniType) WHITE_PIECE_COLOR },
-  { "fontPieceBackColorBlack", ArgColor, (void *) 10, TRUE, (ArgIniType) BLACK_PIECE_COLOR },
-  { "fontPieceForeColorBlack", ArgColor, (void *) 11, TRUE, (ArgIniType) BLACK_PIECE_COLOR },
-  { "fpfcw", ArgColor, (void *) 9, FALSE, INVALID },
-  { "fpbcb", ArgColor, (void *) 10, FALSE, INVALID },
-  { "fontPieceSize", ArgInt, (void *) &appData.fontPieceSize, TRUE, (ArgIniType) 80 },
-  { "overrideLineGap", ArgInt, (void *) &appData.overrideLineGap, TRUE, (ArgIniType) 1 },
-  { "adjudicateLossThreshold", ArgInt, (void *) &appData.adjudicateLossThreshold, TRUE, (ArgIniType) 0 },
-  { "delayBeforeQuit", ArgInt, (void *) &appData.delayBeforeQuit, TRUE, (ArgIniType) 0 },
-  { "delayAfterQuit", ArgInt, (void *) &appData.delayAfterQuit, TRUE, (ArgIniType) 0 },
-  { "nameOfDebugFile", ArgFilename, (void *) &appData.nameOfDebugFile, FALSE, (ArgIniType) DEBUG_FILE },
-  { "debugfile", ArgFilename, (void *) &appData.nameOfDebugFile, FALSE, INVALID },
-  { "pgnEventHeader", ArgString, (void *) &appData.pgnEventHeader, TRUE, (ArgIniType) "Computer Chess Game" },
-  { "defaultFrcPosition", ArgInt, (void *) &appData.defaultFrcPosition, TRUE, (ArgIniType) -1 },
-  { "shuffleOpenings", ArgTrue, (void *) &shuffleOpenings, FALSE, INVALID },
-  { "fischerCastling", ArgTrue, (void *) &appData.fischerCastling, FALSE, INVALID },
-  { "gameListTags", ArgString, (void *) &appData.gameListTags, TRUE, (ArgIniType) GLT_DEFAULT_TAGS },
-  { "saveOutOfBookInfo", ArgBoolean, (void *) &appData.saveOutOfBookInfo, TRUE, (ArgIniType) TRUE },
-  { "showEvalInMoveHistory", ArgBoolean, (void *) &appData.showEvalInMoveHistory, TRUE, (ArgIniType) TRUE },
-  { "evalHistColorWhite", ArgColor, (void *) 12, TRUE, (ArgIniType) "#FFFFB0" },
-  { "evalHistColorBlack", ArgColor, (void *) 13, TRUE, (ArgIniType) "#AD5D3D" },
-  { "highlightMoveWithArrow", ArgBoolean, (void *) &appData.highlightMoveWithArrow, TRUE, (ArgIniType) FALSE },
-  { "highlightArrowColor", ArgColor, (void *) 14, TRUE, (ArgIniType) "#FFFF80" },
-  { "stickyWindows", ArgBoolean, (void *) &appData.useStickyWindows, TRUE, (ArgIniType) TRUE },
-  { "adjudicateDrawMoves", ArgInt, (void *) &appData.adjudicateDrawMoves, TRUE, (ArgIniType) 0 },
-  { "autoDisplayComment", ArgBoolean, (void *) &appData.autoDisplayComment, TRUE, (ArgIniType) TRUE },
-  { "autoDisplayTags", ArgBoolean, (void *) &appData.autoDisplayTags, TRUE, (ArgIniType) TRUE },
-  { "firstIsUCI", ArgBoolean, (void *) &appData.firstIsUCI, FALSE, (ArgIniType) FALSE },
-  { "fUCI", ArgTrue, (void *) &appData.firstIsUCI, FALSE, INVALID },
-  { "firstUCI", ArgTrue, (void *) &appData.firstIsUCI, FALSE, INVALID },
-  { "secondIsUCI", ArgBoolean, (void *) &appData.secondIsUCI, FALSE, (ArgIniType) FALSE },
-  { "secondUCI", ArgTrue, (void *) &appData.secondIsUCI, FALSE, INVALID },
-  { "sUCI", ArgTrue, (void *) &appData.secondIsUCI, FALSE, INVALID },
-  { "fUCCI", ArgTwo, (void *) &appData.firstIsUCI, FALSE, INVALID },
-  { "sUCCI", ArgTwo, (void *) &appData.secondIsUCI, FALSE, INVALID },
-  { "fUSI", ArgTwo, (void *) &appData.firstIsUCI, FALSE, INVALID },
-  { "sUSI", ArgTwo, (void *) &appData.secondIsUCI, FALSE, INVALID },
-  { "firstHasOwnBookUCI", ArgBoolean, (void *) &appData.firstHasOwnBookUCI, FALSE, (ArgIniType) TRUE },
-  { "fNoOwnBookUCI", ArgFalse, (void *) &appData.firstHasOwnBookUCI, FALSE, INVALID },
-  { "firstXBook", ArgFalse, (void *) &appData.firstHasOwnBookUCI, FALSE, INVALID },
-  { "secondHasOwnBookUCI", ArgBoolean, (void *) &appData.secondHasOwnBookUCI, FALSE, (ArgIniType) TRUE },
-  { "sNoOwnBookUCI", ArgFalse, (void *) &appData.secondHasOwnBookUCI, FALSE, INVALID },
-  { "secondXBook", ArgFalse, (void *) &appData.secondHasOwnBookUCI, FALSE, INVALID },
-  { "adapterCommand", ArgFilename, (void *) &appData.adapterCommand, TRUE, (ArgIniType) "polyglot -noini -ec \"%fcp\" -ed \"%fd\"" },
-  { "uxiAdapter", ArgFilename, (void *) &appData.ucciAdapter, TRUE, (ArgIniType) "" },
-  { "polyglotDir", ArgFilename, (void *) &appData.polyglotDir, TRUE, (ArgIniType) "" },
-  { "usePolyglotBook", ArgBoolean, (void *) &appData.usePolyglotBook, TRUE, (ArgIniType) FALSE },
-  { "polyglotBook", ArgFilename, (void *) &appData.polyglotBook, TRUE, (ArgIniType) "" },
-  { "bookDepth", ArgInt, (void *) &appData.bookDepth, TRUE, (ArgIniType) 12 },
-  { "bookVariation", ArgInt, (void *) &appData.bookStrength, TRUE, (ArgIniType) 50 },
-  { "discourageOwnBooks", ArgBoolean, (void *) &appData.defNoBook, TRUE, (ArgIniType) FALSE },
-  { "mcBookMode", ArgTrue, (void *) &mcMode, FALSE, (ArgIniType) FALSE },
-  { "defaultHashSize", ArgInt, (void *) &appData.defaultHashSize, TRUE, (ArgIniType) 64 },
-  { "defaultCacheSizeEGTB", ArgInt, (void *) &appData.defaultCacheSizeEGTB, TRUE, (ArgIniType) 4 },
-  { "defaultPathEGTB", ArgFilename, (void *) &appData.defaultPathEGTB, TRUE, (ArgIniType) "c:\\egtb" },
-  { "language", ArgFilename, (void *) &appData.language, TRUE, (ArgIniType) "" },
-  { "userFileDirectory", ArgFilename, (void *) &homeDir, FALSE, (ArgIniType) installDir },
-  { "usePieceFont", ArgBoolean, (void *) &appData.useFont, TRUE, (ArgIniType) FALSE },
-  { "upf", ArgBoolean, (void *) &appData.useFont, FALSE, INVALID },
-  { "useBoardTexture", ArgBoolean, (void *) &appData.useBitmaps, TRUE, (ArgIniType) FALSE },
-  { "ubt", ArgBoolean, (void *) &appData.useBitmaps, FALSE, INVALID },
-  { "useBorder", ArgBoolean, (void *) &appData.useBorder, TRUE, (ArgIniType) FALSE },
-  { "ub", ArgBoolean, (void *) &appData.useBorder, FALSE, INVALID },
-  { "border", ArgFilename, (void *) &appData.border, TRUE, (ArgIniType) "" },
-  { "finger", ArgFilename, (void *) &appData.finger, FALSE, (ArgIniType) "" },
-  { "epd", ArgTrue, (void *) &appData.epd, FALSE, INVALID },
-  { "inscriptions", ArgString, (void *) &appData.inscriptions, FALSE, (ArgIniType) "" },
-  { "autoInstall", ArgString, (void *) &appData.autoInstall, XBOARD, (ArgIniType) "" },
-  { "fixedSize", ArgBoolean, (void *) &appData.fixedSize, TRUE, (ArgIniType) FALSE },
-
-  // [HGM] tournament options
-  { "tourneyFile", ArgFilename, (void *) &appData.tourneyFile, FALSE, (ArgIniType) "" },
-  { "tf", ArgFilename, (void *) &appData.tourneyFile, FALSE, INVALID },
-  { "participants", ArgString, (void *) &appData.participants, FALSE, (ArgIniType) "" },
-  { "tourneyType", ArgInt, (void *) &appData.tourneyType, FALSE, (ArgIniType) 0 },
-  { "tt", ArgInt, (void *) &appData.tourneyType, FALSE, INVALID },
-  { "tourneyCycles", ArgInt, (void *) &appData.tourneyCycles, FALSE, (ArgIniType) 1 },
-  { "cy", ArgInt, (void *) &appData.tourneyCycles, FALSE, INVALID },
-  { "results", ArgString, (void *) &appData.results, FALSE, (ArgIniType) "" },
-  { "syncAfterRound", ArgBoolean, (void *) &appData.roundSync, FALSE, (ArgIniType) FALSE },
-  { "syncAfterCycle", ArgBoolean, (void *) &appData.cycleSync, FALSE, (ArgIniType) TRUE },
-  { "seedBase", ArgInt, (void *) &appData.seedBase, FALSE, (ArgIniType) 1 },
-  { "pgnNumberTag", ArgBoolean, (void *) &appData.numberTag, TRUE, (ArgIniType) FALSE },
-  { "afterGame", ArgString, (void *) &appData.afterGame, FALSE, INVALID },
-  { "afterTourney", ArgString, (void *) &appData.afterTourney, FALSE, INVALID },
-
-  /* [HGM] board-size, adjudication and misc. options */
-  { "oneClickMove", ArgBoolean, (void *) &appData.oneClick, TRUE, (ArgIniType) FALSE },
-  { "boardWidth", ArgInt, (void *) &appData.NrFiles, FALSE, (ArgIniType) -1 },
-  { "boardHeight", ArgInt, (void *) &appData.NrRanks, FALSE, (ArgIniType) -1 },
-  { "rankOffset", ArgInt, (void *) &appData.rankOffset, FALSE, (ArgIniType) 0 },
-  { "holdingsSize", ArgInt, (void *) &appData.holdingsSize, FALSE, (ArgIniType) -1 },
-  { "defaultMatchGames", ArgInt, (void *) &appData.defaultMatchGames, TRUE, (ArgIniType) 10 },
-  { "matchPause", ArgInt, (void *) &appData.matchPause, TRUE, (ArgIniType) 10000 },
-  { "pieceToCharTable", ArgString, (void *) &appData.pieceToCharTable, FALSE, INVALID },
-  { "pieceNickNames", ArgString, (void *) &appData.pieceNickNames, FALSE, INVALID },
-  { "colorNickNames", ArgString, (void *) &appData.colorNickNames, FALSE, INVALID },
-  { "flipBlack", ArgBoolean, (void *) &appData.upsideDown, FALSE, (ArgIniType) FALSE },
-  { "allWhite", ArgBoolean, (void *) &appData.allWhite, FALSE, (ArgIniType) FALSE },
-  { "alphaRank", ArgBoolean, (void *) &appData.alphaRank, FALSE, (ArgIniType) FALSE },
-  { "firstAlphaRank", ArgBoolean, (void *) &first.alphaRank, FALSE, (ArgIniType) FALSE },
-  { "secondAlphaRank", ArgBoolean, (void *) &second.alphaRank, FALSE, (ArgIniType) FALSE },
-  { "testClaims", ArgBoolean, (void *) &appData.testClaims, TRUE, (ArgIniType) FALSE },
-  { "checkMates", ArgBoolean, (void *) &appData.checkMates, TRUE, (ArgIniType) FALSE },
-  { "materialDraws", ArgBoolean, (void *) &appData.materialDraws, TRUE, (ArgIniType) FALSE },
-  { "trivialDraws", ArgBoolean, (void *) &appData.trivialDraws, TRUE, (ArgIniType) FALSE },
-  { "ruleMoves", ArgInt, (void *) &appData.ruleMoves, TRUE, (ArgIniType) 51 },
-  { "repeatsToDraw", ArgInt, (void *) &appData.drawRepeats, TRUE, (ArgIniType) 6 },
-  { "backgroundObserve", ArgBoolean, (void *) &appData.bgObserve, TRUE, (ArgIniType) FALSE },
-  { "dualBoard", ArgBoolean, (void *) &appData.dualBoard, TRUE, (ArgIniType) FALSE },
-  { "autoKibitz", ArgTrue, (void *) &appData.autoKibitz, FALSE, INVALID },
-  { "engineDebugOutput", ArgInt, (void *) &appData.engineComments, FALSE, (ArgIniType) 1 },
-  { "userName", ArgString, (void *) &appData.userName, FALSE, INVALID },
-  { "rewindIndex", ArgInt, (void *) &appData.rewindIndex, FALSE, INVALID },
-  { "sameColorGames", ArgInt, (void *) &appData.sameColorGames, FALSE, INVALID },
-  { "smpCores", ArgInt, (void *) &appData.smpCores, TRUE, (ArgIniType) 1 },
-  { "egtFormats", ArgString, (void *) &appData.egtFormats, TRUE, (ArgIniType) "" },
-  { "niceEngines", ArgInt, (void *) &appData.niceEngines, TRUE, INVALID },
-  { "logoSize", ArgInt, (void *) &appData.logoSize, XBOARD, INVALID },
-  { "logoDir", ArgFilename, (void *) &appData.logoDir, XBOARD, (ArgIniType) "." },
-  { "firstLogo", ArgFilename, (void *) &appData.firstLogo, FALSE, (ArgIniType) "" },
-  { "secondLogo", ArgFilename, (void *) &appData.secondLogo, FALSE, (ArgIniType) "" },
-  { "autoLogo", ArgBoolean, (void *) &appData.autoLogo, TRUE, INVALID },
-  { "firstOptions", ArgString, (void *) &appData.firstOptions, FALSE, (ArgIniType) "" },
-  { "secondOptions", ArgString, (void *) &appData.secondOptions, FALSE, (ArgIniType) "" },
-  { "firstFeatures", ArgString, (void *) &appData.features[0], FALSE, (ArgIniType) "" },
-  { "secondFeatures", ArgString, (void *) &appData.features[1], FALSE, (ArgIniType) "" },
-  { "featureDefaults", ArgString, (void *) &appData.featureDefaults, TRUE, (ArgIniType) "" },
-  { "firstNeedsNoncompliantFEN", ArgString, (void *) &appData.fenOverride1, FALSE, (ArgIniType) NULL },
-  { "secondNeedsNoncompliantFEN", ArgString, (void *) &appData.fenOverride2, FALSE, (ArgIniType) NULL },
-  { "keepAlive", ArgInt, (void *) &appData.keepAlive, FALSE, INVALID },
-  { "icstype", ArgInt, (void *) &ics_type, FALSE, INVALID },
-  { "forceIllegalMoves", ArgTrue, (void *) &appData.forceIllegal, FALSE, INVALID },
-  { "showTargetSquares", ArgBoolean, (void *) &appData.markers, TRUE, (ArgIniType) FALSE },
-  { "firstPgnName", ArgString, (void *) &appData.pgnName[0], FALSE, (ArgIniType) "" },
-  { "fn", ArgString, (void *) &appData.pgnName[0], FALSE, INVALID },
-  { "secondPgnName", ArgString, (void *) &appData.pgnName[1], FALSE, (ArgIniType) "" },
-  { "sn", ArgString, (void *) &appData.pgnName[1], FALSE, INVALID },
-  { "absoluteAnalysisScores", ArgBoolean, (void *) &appData.whitePOV, TRUE, FALSE },
-  { "scoreWhite", ArgBoolean, (void *) &appData.scoreWhite, TRUE, FALSE },
-  { "evalZoom", ArgInt, (void *) &appData.zoom, TRUE, (ArgIniType) 1 },
-  { "evalThreshold", ArgInt, (void *) &appData.evalThreshold, TRUE, (ArgIniType) 25 },
-  { "firstPseudo", ArgTrue, (void *) &appData.pseudo[0], FALSE, FALSE },
-  { "secondPseudo", ArgTrue, (void *) &appData.pseudo[1], FALSE, FALSE },
-  { "fSAN", ArgTrue, (void *) &appData.pvSAN[0], FALSE, FALSE },
-  { "sSAN", ArgTrue, (void *) &appData.pvSAN[1], FALSE, FALSE },
-  { "pairingEngine", ArgFilename, (void *) &appData.pairingEngine, TRUE, "" },
-  { "defaultTourneyName", ArgFilename, (void *) &appData.defName, TRUE, "" },
-  { "eloThresholdAny", ArgInt, (void *) &appData.eloThreshold1, FALSE, (ArgIniType) 0 },
-  { "eloThresholdBoth", ArgInt, (void *) &appData.eloThreshold2, FALSE, (ArgIniType) 0 },
-  { "dateThreshold", ArgInt, (void *) &appData.dateThreshold, FALSE, (ArgIniType) 0 },
-  { "searchMode", ArgInt, (void *) &appData.searchMode, FALSE, (ArgIniType) 1 },
-  { "stretch", ArgInt, (void *) &appData.stretch, FALSE, (ArgIniType) 1 },
-  { "ignoreColors", ArgBoolean, (void *) &appData.ignoreColors, FALSE, FALSE },
-  { "findMirrorImage", ArgBoolean, (void *) &appData.findMirror, FALSE, FALSE },
-  { "viewer", ArgTrue, (void *) &appData.viewer, FALSE, FALSE },
-  { "viewerOptions", ArgString, (void *) &appData.viewerOptions, TRUE, (ArgIniType) "-ncp -engineOutputUp false -saveSettingsOnExit false" },
-  { "tourneyOptions", ArgString, (void *) &appData.tourneyOptions, TRUE, (ArgIniType) "-ncp -mm -saveSettingsOnExit false" },
-  { "autoCopyPV", ArgBoolean, (void *) &appData.autoCopyPV, TRUE, FALSE },
-  { "topLevel", ArgBoolean, (void *) &appData.topLevel, XBOARD, (ArgIniType) TOPLEVEL },
-  { "dialogColor", ArgString, (void *) &appData.dialogColor, XBOARD, (ArgIniType) "" },
-  { "buttonColor", ArgString, (void *) &appData.buttonColor, XBOARD, (ArgIniType) "" },
-  { "firstDrawDepth", ArgInt, (void *) &appData.drawDepth[0], FALSE, (ArgIniType) 0 },
-  { "secondDrawDepth", ArgInt, (void *) &appData.drawDepth[1], FALSE, (ArgIniType) 0 },
-  { "memoHeaders", ArgBoolean, (void *) &appData.headers, TRUE, (ArgIniType) FALSE },
-  { "startupMessage", ArgString, (void *) &appData.message, FALSE, (ArgIniType) "" },
-  { "messageSuppress", ArgString, (void *) &appData.suppress, XBOARD, (ArgIniType) "" },
-  { "fen", ArgString, (void *) &appData.fen, FALSE, (ArgIniType) "" },
-  { "men", ArgString, (void *) &appData.men, FALSE, (ArgIniType) "" },
-  { "analysisBell", ArgInt, (void *) &appData.analysisBell, TRUE, (ArgIniType) 0 },
-
-#if ZIPPY
-  { "zippyTalk", ArgBoolean, (void *) &appData.zippyTalk, FALSE, (ArgIniType) ZIPPY_TALK },
-  { "zt", ArgTrue, (void *) &appData.zippyTalk, FALSE, INVALID },
-  { "xzt", ArgFalse, (void *) &appData.zippyTalk, FALSE, INVALID },
-  { "-zt", ArgFalse, (void *) &appData.zippyTalk, FALSE, INVALID },
-  { "zippyPlay", ArgBoolean, (void *) &appData.zippyPlay, FALSE, (ArgIniType) ZIPPY_PLAY },
-  { "zp", ArgTrue, (void *) &appData.zippyPlay, FALSE, INVALID },
-  { "xzp", ArgFalse, (void *) &appData.zippyPlay, FALSE, INVALID },
-  { "-zp", ArgFalse, (void *) &appData.zippyPlay, FALSE, INVALID },
-  { "zippyLines", ArgFilename, (void *) &appData.zippyLines, FALSE, (ArgIniType) ZIPPY_LINES },
-  { "zippyPinhead", ArgString, (void *) &appData.zippyPinhead, FALSE, (ArgIniType) ZIPPY_PINHEAD },
-  { "zippyPassword", ArgString, (void *) &appData.zippyPassword, FALSE, (ArgIniType) ZIPPY_PASSWORD },
-  { "zippyPassword2", ArgString, (void *) &appData.zippyPassword2, FALSE, (ArgIniType) ZIPPY_PASSWORD2 },
-  { "zippyWrongPassword", ArgString, (void *) &appData.zippyWrongPassword,
-    FALSE, (ArgIniType) ZIPPY_WRONG_PASSWORD },
-  { "zippyAcceptOnly", ArgString, (void *) &appData.zippyAcceptOnly, FALSE, (ArgIniType) ZIPPY_ACCEPT_ONLY },
-  { "zippyUseI", ArgBoolean, (void *) &appData.zippyUseI, FALSE, (ArgIniType) ZIPPY_USE_I },
-  { "zui", ArgTrue, (void *) &appData.zippyUseI, FALSE, INVALID },
-  { "xzui", ArgFalse, (void *) &appData.zippyUseI, FALSE, INVALID },
-  { "-zui", ArgFalse, (void *) &appData.zippyUseI, FALSE, INVALID },
-  { "zippyBughouse", ArgInt, (void *) &appData.zippyBughouse, FALSE, (ArgIniType) ZIPPY_BUGHOUSE },
-  { "zippyNoplayCrafty", ArgBoolean, (void *) &appData.zippyNoplayCrafty,
-    FALSE, (ArgIniType) ZIPPY_NOPLAY_CRAFTY },
-  { "znc", ArgTrue, (void *) &appData.zippyNoplayCrafty, FALSE, INVALID },
-  { "xznc", ArgFalse, (void *) &appData.zippyNoplayCrafty, FALSE, INVALID },
-  { "-znc", ArgFalse, (void *) &appData.zippyNoplayCrafty, FALSE, INVALID },
-  { "zippyGameEnd", ArgString, (void *) &appData.zippyGameEnd, FALSE, (ArgIniType) ZIPPY_GAME_END },
-  { "zippyGameStart", ArgString, (void *) &appData.zippyGameStart, FALSE, (ArgIniType) ZIPPY_GAME_START },
-  { "zippyAdjourn", ArgBoolean, (void *) &appData.zippyAdjourn, FALSE, (ArgIniType) ZIPPY_ADJOURN },
-  { "zadj", ArgTrue, (void *) &appData.zippyAdjourn, FALSE, INVALID },
-  { "xzadj", ArgFalse, (void *) &appData.zippyAdjourn, FALSE, INVALID },
-  { "-zadj", ArgFalse, (void *) &appData.zippyAdjourn, FALSE, INVALID },
-  { "zippyAbort", ArgBoolean, (void *) &appData.zippyAbort, FALSE, (ArgIniType) ZIPPY_ABORT },
-  { "zab", ArgTrue, (void *) &appData.zippyAbort, FALSE, INVALID },
-  { "xzab", ArgFalse, (void *) &appData.zippyAbort, FALSE, INVALID },
-  { "-zab", ArgFalse, (void *) &appData.zippyAbort, FALSE, INVALID },
-  { "zippyVariants", ArgString, (void *) &appData.zippyVariants, FALSE, (ArgIniType) ZIPPY_VARIANTS },
-  { "zippyMaxGames", ArgInt, (void *)&appData.zippyMaxGames, FALSE, (ArgIniType) ZIPPY_MAX_GAMES},
-  { "zippyReplayTimeout", ArgInt, (void *)&appData.zippyReplayTimeout, FALSE, (ArgIniType) ZIPPY_REPLAY_TIMEOUT },
-  { "zippyShortGame", ArgInt, (void *)&appData.zippyShortGame, FALSE, INVALID },
-  /* Kludge to allow winboard.ini files from buggy 4.0.4 to be read: */
-  { "zippyReplyTimeout", ArgInt, (void *)&junk, FALSE, INVALID },
-#endif
-  /* [HGM] options for broadcasting and time odds */
-  { "chatBoxes", ArgString, (void *) &appData.chatBoxes, !XBOARD, (ArgIniType) NULL },
-  { "serverMoves", ArgString, (void *) &appData.serverMovesName, FALSE, (ArgIniType) NULL },
-  { "serverFile", ArgString, (void *) &appData.serverFileName, FALSE, (ArgIniType) NULL },
-  { "suppressLoadMoves", ArgBoolean, (void *) &appData.suppressLoadMoves, FALSE, (ArgIniType) FALSE },
-  { "serverPause", ArgInt, (void *) &appData.serverPause, FALSE, (ArgIniType) 15 },
-  { "firstTimeOdds", ArgInt, (void *) &appData.firstTimeOdds, FALSE, (ArgIniType) 1 },
-  { "secondTimeOdds", ArgInt, (void *) &appData.secondTimeOdds, FALSE, (ArgIniType) 1 },
-  { "timeOddsMode", ArgInt, (void *) &appData.timeOddsMode, TRUE, INVALID },
-  { "firstAccumulateTC", ArgInt, (void *) &appData.firstAccumulateTC, FALSE, (ArgIniType) 1 },
-  { "secondAccumulateTC", ArgInt, (void *) &appData.secondAccumulateTC, FALSE, (ArgIniType) 1 },
-  { "firstNPS", ArgInt, (void *) &appData.firstNPS, FALSE, (ArgIniType) -1 },
-  { "secondNPS", ArgInt, (void *) &appData.secondNPS, FALSE, (ArgIniType) -1 },
-  { "noGUI", ArgTrue, (void *) &appData.noGUI, FALSE, INVALID },
-  { "keepLineBreaksICS", ArgBoolean, (void *) &appData.noJoin, TRUE, INVALID },
-  { "wrapContinuationSequence", ArgString, (void *) &appData.wrapContSeq, FALSE, INVALID },
-  { "useInternalWrap", ArgTrue, (void *) &appData.useInternalWrap, FALSE, INVALID }, /* noJoin usurps this if set */
-  { "openCommand", ArgString, (void *) &appData.sysOpen, FALSE, "xdg-open" },
-
-  // [HGM] placement: put all window layouts last in ini file, but man X,Y before all others
-  { "minX", ArgZ, (void *) &minX, FALSE, INVALID }, // [HGM] placement: to make sure auxiliary windows can be placed
-  { "minY", ArgZ, (void *) &minY, FALSE, INVALID },
-  { "winWidth",  ArgInt, (void *) &wpMain.width,  TRUE, INVALID }, // [HGM] placement: dummies to remember right & bottom
-  { "winHeight", ArgInt, (void *) &wpMain.height, TRUE, INVALID }, //       for attaching auxiliary windows to them
-  { "x", ArgInt, (void *) &wpMain.x, TRUE, (ArgIniType) CW_USEDEFAULT },
-  { "y", ArgInt, (void *) &wpMain.y, TRUE, (ArgIniType) CW_USEDEFAULT },
-  { "icsUp", ArgBoolean, (void *) &wpConsole.visible, XBOARD, (ArgIniType) FALSE },
-  { "icsX", ArgX,   (void *) &wpConsole.x, TRUE, (ArgIniType) CW_USEDEFAULT },
-  { "icsY", ArgY,   (void *) &wpConsole.y, TRUE, (ArgIniType) CW_USEDEFAULT },
-  { "icsW", ArgInt, (void *) &wpConsole.width, TRUE, (ArgIniType) CW_USEDEFAULT },
-  { "icsH", ArgInt, (void *) &wpConsole.height, TRUE, (ArgIniType) CW_USEDEFAULT },
-  { "commentX", ArgX,   (void *) &wpComment.x, TRUE, (ArgIniType) CW_USEDEFAULT },
-  { "commentY", ArgY,   (void *) &wpComment.y, TRUE, (ArgIniType) CW_USEDEFAULT },
-  { "commentW", ArgInt, (void *) &wpComment.width, TRUE, (ArgIniType) CW_USEDEFAULT },
-  { "commentH", ArgInt, (void *) &wpComment.height, TRUE, (ArgIniType) CW_USEDEFAULT },
-  { "tagsX", ArgX,   (void *) &wpTags.x, TRUE, (ArgIniType) CW_USEDEFAULT },
-  { "tagsY", ArgY,   (void *) &wpTags.y, TRUE, (ArgIniType) CW_USEDEFAULT },
-  { "tagsW", ArgInt, (void *) &wpTags.width, TRUE, (ArgIniType) CW_USEDEFAULT },
-  { "tagsH", ArgInt, (void *) &wpTags.height, TRUE, (ArgIniType) CW_USEDEFAULT },
-  { "gameListX", ArgX,   (void *) &wpGameList.x, TRUE, (ArgIniType) CW_USEDEFAULT },
-  { "gameListY", ArgY,   (void *) &wpGameList.y, TRUE, (ArgIniType) CW_USEDEFAULT },
-  { "gameListW", ArgInt, (void *) &wpGameList.width, TRUE, (ArgIniType) CW_USEDEFAULT },
-  { "gameListH", ArgInt, (void *) &wpGameList.height, TRUE, (ArgIniType) CW_USEDEFAULT },
-#if XBOARD
-  { "slaveX", ArgX,   (void *) &wpDualBoard.x, TRUE, (ArgIniType) CW_USEDEFAULT },
-  { "slaveY", ArgY,   (void *) &wpDualBoard.y, TRUE, (ArgIniType) CW_USEDEFAULT },
-  { "slaveW", ArgInt, (void *) &wpDualBoard.width, FALSE, (ArgIniType) CW_USEDEFAULT },
-  { "slaveH", ArgInt, (void *) &wpDualBoard.height, FALSE, (ArgIniType) CW_USEDEFAULT },
-#endif
-  /* [AS] Layout stuff */
-  { "moveHistoryUp", ArgBoolean, (void *) &wpMoveHistory.visible, TRUE, (ArgIniType) TRUE },
-  { "moveHistoryX", ArgX,   (void *) &wpMoveHistory.x, TRUE, (ArgIniType) CW_USEDEFAULT },
-  { "moveHistoryY", ArgY,   (void *) &wpMoveHistory.y, TRUE, (ArgIniType) CW_USEDEFAULT },
-  { "moveHistoryW", ArgInt, (void *) &wpMoveHistory.width, TRUE, (ArgIniType) CW_USEDEFAULT },
-  { "moveHistoryH", ArgInt, (void *) &wpMoveHistory.height, TRUE, (ArgIniType) CW_USEDEFAULT },
-
-  { "evalGraphUp", ArgBoolean, (void *) &wpEvalGraph.visible, TRUE, (ArgIniType) TRUE },
-  { "evalGraphX", ArgX,   (void *) &wpEvalGraph.x, TRUE, (ArgIniType) CW_USEDEFAULT },
-  { "evalGraphY", ArgY,   (void *) &wpEvalGraph.y, TRUE, (ArgIniType) CW_USEDEFAULT },
-  { "evalGraphW", ArgInt, (void *) &wpEvalGraph.width, TRUE, (ArgIniType) CW_USEDEFAULT },
-  { "evalGraphH", ArgInt, (void *) &wpEvalGraph.height, TRUE, (ArgIniType) CW_USEDEFAULT },
-
-  { "engineOutputUp", ArgBoolean, (void *) &wpEngineOutput.visible, TRUE, (ArgIniType) TRUE },
-  { "engineOutputX", ArgX,   (void *) &wpEngineOutput.x, TRUE, (ArgIniType) CW_USEDEFAULT },
-  { "engineOutputY", ArgY,   (void *) &wpEngineOutput.y, TRUE, (ArgIniType) CW_USEDEFAULT },
-  { "engineOutputW", ArgInt, (void *) &wpEngineOutput.width, TRUE, (ArgIniType) CW_USEDEFAULT },
-  { "engineOutputH", ArgInt, (void *) &wpEngineOutput.height, TRUE, (ArgIniType) CW_USEDEFAULT },
-
-  { NULL, ArgNone, NULL, FALSE, INVALID }
-};
-
-
-/* Kludge for indirection files on command line */
-char* lastIndirectionFilename;
-ArgDescriptor argDescriptorIndirection =
-{ "", ArgSettingsFilename, (void *) NULL, FALSE };
-
-void
-ExitArgError(char *msg, char *badArg, Boolean quit)
-{
-  char buf[MSG_SIZ];
-  int len;
-
-  len = snprintf(buf, MSG_SIZ, msg, badArg);
-  if( (len >= MSG_SIZ) && appData.debugMode )
-    fprintf(debugFP, "ExitArgError: buffer truncated. Input: msg=%s badArg=%s\n", msg, badArg);
-
-  if(!quit) { printf(_("%s in settings file\n"), buf); return; } // DisplayError does not work yet at this stage...
-  DisplayFatalError(buf, 0, 2);
-  exit(2);
-}
-
-void
-AppendToSettingsFile (char *line)
-{
-  char buf[MSG_SIZ];
-  FILE *f;
-  int c;
-  if(f = fopen(SETTINGS_FILE, "r")) {
-    do {
-      int i = 0;
-      while((buf[i] = c = fgetc(f)) != '\n' && c != EOF) if(i < MSG_SIZ-1) i++;
-      buf[i] = NULLCHAR;
-      if(!strcmp(line, buf)) return; // line occurs
-    } while(c != EOF);
-    // line did not occur; add it
-    fclose(f);
-    if(f = fopen(SETTINGS_FILE, "a")) {
-      TimeMark now;
-      GetTimeMark(&now);
-      fprintf(f, "-date %10lu\n%s\n", now.sec, line);
-      fclose(f);
-    }
-  }
-}
-
-int
-ValidateInt(char *s)
-{
-  char *p = s;
-  if(*p == '-' || *p == '+') p++;
-  while(*p) if(!isdigit(*p++)) ExitArgError(_("Bad integer value %s"), s, TRUE);
-  return atoi(s);
-}
-
-char
-StringGet(void *getClosure)
-{
-  char **p = (char **) getClosure;
-  return *((*p)++);
-}
-
-char
-FileGet(void *getClosure)
-{
-  int c;
-  FILE* f = (FILE*) getClosure;
-
-  c = getc(f);
-  if (c == '\r') c = getc(f); // work around DOS format files by bypassing the '\r' completely
-  if (c == EOF)
-    return NULLCHAR;
-  else
-    return (char) c;
-}
-
-/* Parse settings file named "name". If file found, return the
-   full name in fullname and return TRUE; else return FALSE */
-Boolean
-ParseSettingsFile(char *name, char **addr)
-{
-  FILE *f;
-  int ok,len;
-  char buf[MSG_SIZ], fullname[MSG_SIZ];
-
-
-  ok = MySearchPath(installDir, name, fullname);
-  if(!ok && strchr(name, '.') == NULL)
-    { // append default file-name extension '.ini' when needed
-      len = snprintf(buf,MSG_SIZ, "%s.ini", name);
-      if( (len >= MSG_SIZ) && appData.debugMode )
-       fprintf(debugFP, "ParseSettingsFile: buffer truncated. Input: name=%s \n",name);
-
-      ok = MySearchPath(installDir, buf, fullname);
-    }
-  if (ok) {
-    f = fopen(fullname, "r");
-#ifdef DATADIR
-    if(f == NULL && *fullname != '/' && !addr) {         // when a relative name did not work
-       char buf[MSG_SIZ];
-       snprintf(buf, MSG_SIZ, "~/.xboard/themes/conf/%s", name);
-       MySearchPath(installDir, buf, fullname); // first look in user's own files
-       f = fopen(fullname, "r");
-       if(f == NULL) {
-           snprintf(buf, MSG_SIZ, "%s/themes/conf", dataDir);
-           MySearchPath(buf, name, fullname); // also look in standard place
-           f = fopen(fullname, "r");
-       }
-    }
-#endif
-    if (f != NULL) {
-      if (addr != NULL) {
-           ASSIGN(*addr, fullname);
-      }
-      ParseArgs(FileGet, f);
-      fclose(f);
-      return TRUE;
-    }
-  }
-  return FALSE;
-}
-
-void
-ParseArgs(GetFunc get, void *cl)
-{
-  char argName[MAX_ARG_LEN];
-  char argValue[MAX_ARG_LEN];
-  ArgDescriptor *ad;
-  char start;
-  char *q;
-  int i, octval;
-  char ch;
-  int posarg = 4; // default is game file
-
-  ch = get(cl);
-  for (;;) {
-    int posflag = 0;
-    while (ch == ' ' || ch == '\n' || ch == '\t') ch = get(cl);
-    if (ch == NULLCHAR) break;
-    if (ch == ';') {
-      /* Comment to end of line */
-      ch = get(cl);
-      while (ch != '\n' && ch != NULLCHAR) ch = get(cl);
-      continue;
-    } else if (ch == SLASH || ch == '-') {
-      /* Switch */
-      q = argName;
-      while (ch != ' ' && ch != '=' && ch != ':' && ch != NULLCHAR &&
-            ch != '\n' && ch != '\t') {
-       *q++ = ch;
-       ch = get(cl);
-      }
-      *q = NULLCHAR;
-      for (ad = argDescriptors; ad->argName != NULL; ad++)
-       if (strcmp(ad->argName, argName + 1) == 0) break;
-      if (ad->argName == NULL) {
-       char endChar = (ch && ch != '\n' && (ch = get(cl)) == '{' ? '}' : '\n');
-       ExitArgError(_("Unrecognized argument %s"), argName, get != &FileGet); // [HGM] make unknown argument non-fatal
-       while (ch != endChar && ch != NULLCHAR) ch = get(cl); // but skip rest of line it is on (or until closing '}' )
-       if(ch == '}') ch = get(cl);
-       continue; // so that when it is in a settings file, it is the only setting that will be purged from it
-      }
-    } else if (ch == '@') {
-      /* Indirection file */
-      ad = &argDescriptorIndirection;
-      ch = get(cl);
-    } else {
-      /* Positional argument */
-      ad = &argDescriptors[posarg++];
-      posflag++;
-      strncpy(argName, ad->argName,sizeof(argName)/sizeof(argName[0]));
-    }
-
-    if (ad->argType == ArgTwo) { // [HGM] kludgey arg type, not suitable for saving
-      *(Boolean *) ad->argLoc = 2;
-      continue;
-    }
-    if (ad->argType == ArgTrue) {
-      *(Boolean *) ad->argLoc = TRUE;
-      continue;
-    }
-    if (ad->argType == ArgFalse) {
-      *(Boolean *) ad->argLoc = FALSE;
-      continue;
-    }
-
-    while (ch == ' ' || ch == '=' || ch == ':' || ch == '\t') ch = get(cl);
-    if (ch == NULLCHAR || ch == '\n') {
-      ExitArgError(_("No value provided for argument %s"), argName, TRUE);
-    }
-    q = argValue;
-    if (ch == '{') {
-      // Quoting with { }.  No characters have to (or can) be escaped.
-      // Thus the string cannot contain a '}' character.
-      start = ch;
-      ch = get(cl);
-      while (start) {
-       switch (ch) {
-       case NULLCHAR:
-         start = NULLCHAR;
-         break;
-
-       case '}':
-         ch = get(cl);
-         start = NULLCHAR;
-         break;
-
-       default:
-         *q++ = ch;
-         ch = get(cl);
-         break;
-       }
-      }
-    } else if (ch == '\'' || ch == '"') {
-      // Quoting with ' ' or " ", with \ as escape character.
-      // Inconvenient for long strings that may contain Windows filenames.
-      start = ch;
-      ch = get(cl);
-      while (start) {
-       switch (ch) {
-       case NULLCHAR:
-         start = NULLCHAR;
-         break;
-
-       default:
-        not_special:
-         *q++ = ch;
-         ch = get(cl);
-         break;
-
-       case '\'':
-       case '\"':
-         if (ch == start) {
-           ch = get(cl);
-           start = NULLCHAR;
-           break;
-         } else {
-           goto not_special;
-         }
-
-       case '\\':
-          if (ad->argType == ArgFilename
-             || ad->argType == ArgSettingsFilename) {
-             goto not_special;
-         }
-         ch = get(cl);
-         switch (ch) {
-         case NULLCHAR:
-           ExitArgError(_("Incomplete \\ escape in value for %s"), argName, TRUE);
-           break;
-         case 'n':
-           *q++ = '\n';
-           ch = get(cl);
-           break;
-         case 'r':
-           *q++ = '\r';
-           ch = get(cl);
-           break;
-         case 't':
-           *q++ = '\t';
-           ch = get(cl);
-           break;
-         case 'b':
-           *q++ = '\b';
-           ch = get(cl);
-           break;
-         case 'f':
-           *q++ = '\f';
-           ch = get(cl);
-           break;
-         default:
-           octval = 0;
-           for (i = 0; i < 3; i++) {
-             if (ch >= '0' && ch <= '7') {
-               octval = octval*8 + (ch - '0');
-               ch = get(cl);
-             } else {
-               break;
-             }
-           }
-           if (i > 0) {
-             *q++ = (char) octval;
-           } else {
-             *q++ = ch;
-             ch = get(cl);
-           }
-           break;
-         }
-         break;
-       }
-      }
-    } else {
-      while ((ch != ' ' || posflag) && ch != NULLCHAR && ch != '\t' && ch != '\n') { // space allowed in positional arg
-       *q++ = ch;
-       ch = get(cl);
-      }
-    }
-    *q = NULLCHAR;
-
-    if(posflag) { // positional argument: the argName was implied, and per default set as -lgf
-      int len = strlen(argValue) - 4; // start of filename extension
-      if(len < 0) len = 0;
-      if(!StrCaseCmp(argValue + len, ".trn")) {
-        ad = &argDescriptors[2]; // correct implied type to -tf
-        appData.tourney = TRUE; // let it parse -tourneyOptions later
-      } else if(!StrCaseCmp(argValue + len, ".fen") || !StrCaseCmp(argValue + len, ".epd")) {
-        ad = &argDescriptors[1]; // correct implied type to -lpf
-        appData.viewer = TRUE;
-      } else if(!StrCaseCmp(argValue + len, ".ini") || !StrCaseCmp(argValue + len, ".xop")) {
-        ad = &argDescriptors[0]; // correct implied type to -opt
-      } else if(GetEngineLine(argValue, 11)) {
-        ad = &argDescriptors[3]; // correct implied type to -is
-      } else { // keep default -lgf, but let it imply viewer mode as well
-        appData.viewer = TRUE;
-      }
-      strncpy(argName, ad->argName,sizeof(argName)/sizeof(argName[0]));
-    }
-
-    switch (ad->argType) {
-    case ArgInt:
-      *(int *) ad->argLoc = ValidateInt(argValue);
-      break;
-
-    case ArgX:
-      *(int *) ad->argLoc = ValidateInt(argValue) + wpMain.x; // [HGM] placement: translate stored relative to absolute
-      break;
-
-    case ArgY:
-      *(int *) ad->argLoc = ValidateInt(argValue) + wpMain.y; // (this is really kludgey, it should be done where used...)
-      break;
-
-    case ArgZ:
-      *(int *) ad->argLoc = ValidateInt(argValue);
-      EnsureOnScreen(&wpMain.x, &wpMain.y, minX, minY);
-      break;
-
-    case ArgFloat:
-      *(float *) ad->argLoc = (float) atof(argValue);
-      break;
-
-    case ArgString:
-    case ArgFilename:
-      if(argValue[0] == '~' && argValue[1] == '~') {
-        char buf[4*MSG_SIZ]; // expand ~~
-        snprintf(buf, 4*MSG_SIZ, "%s%s", dataDir, argValue+2);
-        ASSIGN(*(char **) ad->argLoc, buf);
-        break;
-      }
-      ASSIGN(*(char **) ad->argLoc, argValue);
-      break;
-
-    case ArgBackupSettingsFile: // no-op if non-default settings-file already successfully read
-       if(strcmp(*(char**)ad->argLoc, SETTINGS_FILE)) break;
-    case ArgSettingsFilename:
-      {
-       if (ParseSettingsFile(argValue, (char**)ad->argLoc)) {
-       } else {
-         if (ad->argLoc != NULL) {
-         } else {
-           ExitArgError(_("Failed to open indirection file %s"), argValue, TRUE);
-         }
-       }
-      }
-      break;
-
-    case ArgBoolean:
-      switch (argValue[0]) {
-      case 't':
-      case 'T':
-       *(Boolean *) ad->argLoc = TRUE;
-       break;
-      case 'f':
-      case 'F':
-       *(Boolean *) ad->argLoc = FALSE;
-       break;
-      default:
-       ExitArgError(_("Unrecognized boolean argument value %s"), argValue, TRUE);
-       break;
-      }
-      break;
-
-    case ArgColor:
-      ParseColor((int)(intptr_t)ad->argLoc, argValue);
-      break;
-
-    case ArgAttribs: {
-      ColorClass cc = (ColorClass)ad->argLoc;
-       ParseTextAttribs(cc, argValue); // [HGM] wrapper for platform independency
-      }
-      break;
-
-    case ArgBoardSize:
-      ParseBoardSize(ad->argLoc, argValue);
-      break;
-
-    case ArgFont:
-      ParseFont(argValue, (int)(intptr_t)ad->argLoc);
-      break;
-
-    case ArgCommSettings:
-      ParseCommPortSettings(argValue);
-      break;
-
-    case ArgMaster:
-      AppendToSettingsFile(argValue);
-      break;
-
-    case ArgInstall:
-      q = *(char **) ad->argLoc;
-      if((saveDate == 0 || saveDate - dateStamp < 0) && !strstr(q, argValue) ) {
-        int l = strlen(q) + strlen(argValue);
-        *(char **) ad->argLoc = malloc(l+2);
-        snprintf(*(char **) ad->argLoc, l+2, "%s%s\n", q, argValue);
-        free(q);
-      }
-      break;
-
-    case ArgNone:
-      ExitArgError(_("Unrecognized argument %s"), argValue, TRUE);
-      break;
-    case ArgTwo:
-    case ArgTrue:
-    case ArgFalse: ;
-    }
-  }
-}
-
-void
-ParseArgsFromString(char *p)
-{
-    ParseArgs(StringGet, &p);
-}
-
-void
-ParseArgsFromFile(FILE *f)
-{
-    ParseArgs(FileGet, f);
-}
-
-void
-ParseIcsTextMenu(char *icsTextMenuString)
-{
-//  int flags = 0;
-  IcsTextMenuEntry *e = icsTextMenuEntry;
-  char *p = icsTextMenuString;
-  while (e->item != NULL && e < icsTextMenuEntry + ICS_TEXT_MENU_SIZE) {
-    free(e->item);
-    e->item = NULL;
-    if (e->command != NULL) {
-      free(e->command);
-      e->command = NULL;
-    }
-    e++;
-  }
-  e = icsTextMenuEntry;
-  while (*p && e < icsTextMenuEntry + ICS_TEXT_MENU_SIZE) {
-    if (*p == ';' || *p == '\n') {
-      e->item = strdup("-");
-      e->command = NULL;
-      p++;
-    } else if (*p == '-') {
-      e->item = strdup("-");
-      e->command = NULL;
-      p++;
-      if (*p) p++;
-    } else {
-      char *q, *r, *s, *t;
-      char c;
-      q = strchr(p, ',');
-      if (q == NULL) break;
-      *q = NULLCHAR;
-      r = strchr(q + 1, ',');
-      if (r == NULL) break;
-      *r = NULLCHAR;
-      s = strchr(r + 1, ',');
-      if (s == NULL) break;
-      *s = NULLCHAR;
-      c = ';';
-      t = strchr(s + 1, c);
-      if (t == NULL) {
-       c = '\n';
-       t = strchr(s + 1, c);
-      }
-      if (t != NULL) *t = NULLCHAR;
-      e->item = strdup(p);
-      e->command = strdup(q + 1);
-      e->getname = *(r + 1) != '0';
-      e->immediate = *(s + 1) != '0';
-      *q = ',';
-      *r = ',';
-      *s = ',';
-      if (t == NULL) break;
-      *t = c;
-      p = t + 1;
-    }
-    e++;
-  }
-}
-
-void
-SetDefaultTextAttribs()
-{
-  ColorClass cc;
-  for (cc = (ColorClass)0; cc < ColorNone; cc++) {
-    ParseTextAttribs(cc, defaultTextAttribs[cc]);
-  }
-}
-
-void
-SetDefaultsFromList()
-{ // [HGM] ini: take defaults from argDescriptor list
-  int i;
-
-  for(i=0; argDescriptors[i].argName != NULL; i++) {
-    if(argDescriptors[i].defaultValue != INVALID)
-      switch(argDescriptors[i].argType) {
-        case ArgBoolean:
-        case ArgTwo:
-        case ArgTrue:
-        case ArgFalse:
-          *(Boolean *) argDescriptors[i].argLoc = (int)(intptr_t)argDescriptors[i].defaultValue;
-          break;
-        case ArgInt:
-        case ArgX:
-        case ArgY:
-        case ArgZ:
-          *(int *) argDescriptors[i].argLoc = (int)(intptr_t)argDescriptors[i].defaultValue;
-          break;
-        case ArgString:
-        case ArgFilename:
-        case ArgSettingsFilename:
-          if((char *)argDescriptors[i].defaultValue)
-          *(char **) argDescriptors[i].argLoc = strdup((char *)argDescriptors[i].defaultValue);
-          break;
-        case ArgBoardSize:
-          *(int *) argDescriptors[i].argLoc = (int)(intptr_t)argDescriptors[i].defaultValue;
-          break;
-        case ArgColor:
-          ParseColor((int)(intptr_t)argDescriptors[i].argLoc, (char*)argDescriptors[i].defaultValue);
-          break;
-        case ArgFloat: // floats cannot be casted to int without precision loss
-        default: ; // some arg types cannot be initialized through table
-    }
-  }
-}
-
-void
-InitAppData(char *lpCmdLine)
-{
-  int i;
-  char buf[MAX_ARG_LEN], currDir[MSG_SIZ];
-  char *p;
-
-  /* Initialize to defaults */
-  SetDefaultsFromList(); // this sets most defaults
-
-  // some parameters for which there are no options!
-  appData.Iconic = FALSE; /*unused*/
-  appData.icsEngineAnalyze = FALSE;
-
-  // float: casting to int is not harmless, so default cannot be contained in table
-  appData.timeDelay = TIME_DELAY;
-  appData.timeIncrement = -314159;
-
-  // some complex, platform-dependent stuff that could not be handled from table
-  SetDefaultTextAttribs();
-  SetFontDefaults();
-  SetCommPortDefaults();
-
-  /* Parse default settings file if any */
-  ParseSettingsFile(settingsFileName, &settingsFileName);
-
-  /* Parse command line */
-  ParseArgs(StringGet, &lpCmdLine);
-
-  if(appData.viewer && appData.viewerOptions[0]) ParseArgsFromString(appData.viewerOptions);
-  if(appData.tourney && appData.tourneyOptions[0]) ParseArgsFromString(appData.tourneyOptions);
-  chessProgram |= GetEngineLine(firstEngineLine, 0) || GetEngineLine(secondEngineLine, 1);
-  appData.icsActive |= GetEngineLine(icsNick, 10);
-
-  /* [HGM] make sure board size is acceptable */
-  if(appData.NrFiles > BOARD_FILES ||
-     appData.NrRanks > BOARD_RANKS   )
-      DisplayFatalError("Recompile with BOARD_RANKS or BOARD_FILES, to support this size", 0, 2);
-
-  if(!*appData.secondChessProgram) { // [HGM] scp defaults to fcp
-    ASSIGN(appData.secondChessProgram, appData.firstChessProgram);
-    ASSIGN(appData.secondDirectory, appData.firstDirectory);
-    appData.secondIsUCI = appData.firstIsUCI; // copy type too!
-  }
-
-  /* [HGM] After parsing the options from the .ini file, and overruling them
-   * with options from the command line, we now make an even higher priority
-   * overrule by WB options attached to the engine command line. This so that
-   * tournament managers can use WB options (such as /timeOdds) that follow
-   * the engines.
-   */
-  if(appData.firstChessProgram != NULL) {
-      char *p = StrStr(appData.firstChessProgram, "WBopt");
-      static char *f = "first";
-      char buf[MSG_SIZ], *q = buf;
-      int len;
-
-      if(p != NULL)
-       { // engine command line contains WinBoard options
-          len = snprintf(buf, MSG_SIZ, p+6, f, f, f, f, f, f, f, f, f, f); // replace %s in them by "first"
-         if( (len >= MSG_SIZ) && appData.debugMode )
-           fprintf(debugFP, "InitAppData: buffer truncated.\n");
-
-          ParseArgs(StringGet, &q);
-          p[-1] = 0; // cut them offengine command line
-       }
-  }
-  // now do same for second chess program
-  if(appData.secondChessProgram != NULL) {
-      char *p = StrStr(appData.secondChessProgram, "WBopt");
-      static char *s = "second";
-      char buf[MSG_SIZ], *q = buf;
-      int len;
-
-      if(p != NULL)
-       { // engine command line contains WinBoard options
-          len = snprintf(buf,MSG_SIZ, p+6, s, s, s, s, s, s, s, s, s, s); // replace %s in them by "first"
-         if( (len >= MSG_SIZ) && appData.debugMode )
-           fprintf(debugFP, "InitAppData: buffer truncated.\n");
-
-          ParseArgs(StringGet, &q);
-          p[-1] = 0; // cut them offengine command line
-       }
-  }
-
-  /* Propagate options that affect others */
-  if (appData.matchMode || appData.matchGames) chessProgram = TRUE;
-  if (appData.icsActive || appData.noChessProgram) {
-     chessProgram = FALSE;  /* not local chess program mode */
-  }
-  if(appData.timeIncrement == -314159) { // new storage mechanism of (mps,inc) in use and no -inc on command line
-    if(appData.movesPerSession <= 0) { // new encoding of incremental mode
-      appData.timeIncrement = -appData.movesPerSession/1000.;
-    } else appData.timeIncrement = -1;
-  }
-  if(appData.movesPerSession <= 0) appData.movesPerSession = MOVES_PER_SESSION; // mps <= 0 is invalid in any case
-  if(*appData.defaultPathEGTB) { // append value of deprecated -defaultPathEGTB to -egtFormats
-    snprintf(buf, MAX_ARG_LEN, "%s%snalimov:%s", appData.egtFormats, (*appData.egtFormats ?"," : ""), appData.defaultPathEGTB);
-    ASSIGN(appData.egtFormats, buf);
-    ASSIGN(appData.defaultPathEGTB, "");
-  }
-
-  /* Open startup dialog if needed */
-  if ((!appData.noChessProgram && !chessProgram && !appData.icsActive) ||
-      (appData.icsActive && *appData.icsHost == NULLCHAR) ||
-      (chessProgram && (*appData.firstChessProgram == NULLCHAR ||
-                        *appData.secondChessProgram == NULLCHAR)))
-               PopUpStartupDialog();
-
-  /* Make sure save files land in the right (?) directory */
-  if (MyGetFullPathName(appData.saveGameFile, buf)) {
-    appData.saveGameFile = strdup(buf);
-  }
-  if (MyGetFullPathName(appData.savePositionFile, buf)) {
-    appData.savePositionFile = strdup(buf);
-  }
-
-  if(autoClose) { // was called for updating settingsfile only
-    if(saveSettingsOnExit) SaveSettings(settingsFileName);
-    exit(0);
-  }
-
-  /* Finish initialization for fonts and sounds */
-  CreateFonts();
-
-  GetCurrentDirectory(MSG_SIZ, currDir);
-  SetCurrentDirectory(installDir);
-  LoadAllSounds();
-  SetCurrentDirectory(currDir);
-
-  p = icsTextMenuString;
-  if (p[0] == '@') {
-    FILE* f = fopen(p + 1, "r");
-    if (f == NULL) {
-      DisplayFatalError(p + 1, errno, 2);
-      return;
-    }
-    i = fread(buf, 1, sizeof(buf)-1, f);
-    fclose(f);
-    buf[i] = NULLCHAR;
-    p = buf;
-  }
-  ParseIcsTextMenu(strdup(p));
-}
-
-void
-SaveSettings(char* name)
-{
-  FILE *f;
-  ArgDescriptor *ad;
-  char dir[MSG_SIZ], buf[MSG_SIZ];
-  int mps = appData.movesPerSession;
-  TimeMark now;
-
-  if (!MainWindowUp() && !autoClose) return;
-
-  GetTimeMark(&now); saveDate = now.sec;
-
-  GetCurrentDirectory(MSG_SIZ, dir);
-  if(MySearchPath(installDir, name, buf)) {
-    f = fopen(buf, "w");
-  } else {
-    SetCurrentDirectory(installDir);
-    f = fopen(name, "w");
-    SetCurrentDirectory(dir);
-  }
-  if (f == NULL) {
-    DisplayError(name, errno);
-    return;
-  }
-
-  fprintf(f, ";\n");
-  fprintf(f, "; %s Save Settings file\n", PACKAGE_STRING);
-  fprintf(f, ";\n");
-  fprintf(f, "; You can edit the values of options that are already set in this file,\n");
-  fprintf(f, "; but if you add other options, the next Save Settings will not save them.\n");
-  fprintf(f, "; Use a shortcut, an @indirection file, or a .bat file instead.\n");
-  fprintf(f, ";\n");
-
-  GetWindowCoords();
-
-  /* [AS] Move history */
-  wpMoveHistory.visible = MoveHistoryIsUp();
-
-  /* [AS] Eval graph */
-  wpEvalGraph.visible = EvalGraphIsUp();
-
-  /* [AS] Engine output */
-  wpEngineOutput.visible = EngineOutputIsUp();
-
-  // [HGM] in WB we have to copy sound names to appData first
-  ExportSounds();
-
-  if(appData.timeIncrement >= 0) appData.movesPerSession = -1000*appData.timeIncrement; // kludge to store mps & inc as one
-
-  for (ad = argDescriptors; ad->argName != NULL; ad++) {
-    if (!ad->save) continue;
-    switch (ad->argType) {
-    case ArgString:
-      {
-       char *p = *(char **)ad->argLoc;
-       if(p == NULL) break; // just in case
-       if ((strchr(p, '\\') || strchr(p, '\n')) && !strchr(p, '}')) {
-         /* Quote multiline values or \-containing values
-            with { } if possible */
-         fprintf(f, OPTCHAR "%s" SEPCHAR "{%s}\n", ad->argName, p);
-       } else {
-         /* Else quote with " " */
-         fprintf(f, OPTCHAR "%s" SEPCHAR "\"", ad->argName);
-         while (*p) {
-           if (*p == '\n') fprintf(f, "\n");
-           else if (*p == '\r') fprintf(f, "\\r");
-           else if (*p == '\t') fprintf(f, "\\t");
-           else if (*p == '\b') fprintf(f, "\\b");
-           else if (*p == '\f') fprintf(f, "\\f");
-           else if (*p < ' ') fprintf(f, "\\%03o", *p);
-           else if (*p == '\"') fprintf(f, "\\\"");
-           else if (*p == '\\') fprintf(f, "\\\\");
-           else putc(*p, f);
-           p++;
-         }
-         fprintf(f, "\"\n");
-       }
-      }
-      break;
-    case ArgInt:
-    case ArgZ:
-      fprintf(f, OPTCHAR "%s" SEPCHAR "%d\n", ad->argName, *(int *)ad->argLoc);
-      break;
-    case ArgX:
-      fprintf(f, OPTCHAR "%s" SEPCHAR "%d\n", ad->argName, *(int *)ad->argLoc - wpMain.x); // [HGM] placement: store relative value
-      break;
-    case ArgY:
-      fprintf(f, OPTCHAR "%s" SEPCHAR "%d\n", ad->argName, *(int *)ad->argLoc - wpMain.y);
-      break;
-    case ArgFloat:
-      fprintf(f, OPTCHAR "%s" SEPCHAR "%g\n", ad->argName, *(float *)ad->argLoc);
-      break;
-    case ArgBoolean:
-      fprintf(f, OPTCHAR "%s" SEPCHAR "%s\n", ad->argName,
-       (*(Boolean *)ad->argLoc) ? "true" : "false");
-      break;
-    case ArgTrue:
-      if (*(Boolean *)ad->argLoc) fprintf(f, OPTCHAR "%s\n", ad->argName);
-      break;
-    case ArgFalse:
-      if (!*(Boolean *)ad->argLoc) fprintf(f, OPTCHAR "%s\n", ad->argName);
-      break;
-    case ArgColor:
-      SaveColor(f, ad);
-      break;
-    case ArgAttribs:
-      SaveAttribsArg(f, ad);
-      break;
-    case ArgFilename:
-      if(*(char**)ad->argLoc == NULL) break; // just in case
-      { char buf[MSG_SIZ];
-        snprintf(buf, MSG_SIZ, "%s", *(char**)ad->argLoc);
-#ifdef OSXAPP
-        if(strstr(buf, dataDir) == buf)
-          snprintf(buf, MSG_SIZ, "~~%s", *(char**)ad->argLoc + strlen(dataDir));
-#endif
-        if (strchr(buf, '\"')) {
-          fprintf(f, OPTCHAR "%s" SEPCHAR "'%s'\n", ad->argName, buf);
-        } else {
-          fprintf(f, OPTCHAR "%s" SEPCHAR "\"%s\"\n", ad->argName, buf);
-        }
-      }
-      break;
-    case ArgBoardSize:
-      SaveBoardSize(f, ad->argName, ad->argLoc);
-      break;
-    case ArgFont:
-      SaveFontArg(f, ad);
-      break;
-    case ArgCommSettings:
-      PrintCommPortSettings(f, ad->argName);
-    case ArgTwo:
-    case ArgNone:
-    case ArgBackupSettingsFile:
-    case ArgSettingsFilename: ;
-    case ArgMaster: ;
-    case ArgInstall: ;
-    }
-  }
-  fclose(f);
-  appData.movesPerSession = mps;
-}
-
-Boolean
-GetArgValue(char *name)
-{ // retrieve (as text) current value of string or int argument given by name
-  // (this is used for maing the values available in the adapter command)
-  ArgDescriptor *ad;
-  int len;
-
-  for (ad = argDescriptors; ad->argName != NULL; ad++)
-    if (strcmp(ad->argName, name) == 0) break;
-
-  if (ad->argName == NULL) return FALSE;
-
-  switch(ad->argType) {
-    case ArgString:
-    case ArgFilename:
-      strncpy(name, *(char**) ad->argLoc, MSG_SIZ);
-
-      return TRUE;
-    case ArgInt:
-      len = snprintf(name, MSG_SIZ, "%d", *(int*) ad->argLoc);
-      if( (len >= MSG_SIZ) && appData.debugMode )
-       fprintf(debugFP, "GetArgValue: buffer truncated.\n");
-
-      return TRUE;
-    case ArgBoolean:
-      len = snprintf(name, MSG_SIZ, "%s", *(Boolean*) ad->argLoc ? "true" : "false");
-      if( (len >= MSG_SIZ) && appData.debugMode )
-       fprintf(debugFP, "GetArgValue: buffer truncated.\n");
-
-      return TRUE;
-    default: ;
-  }
-
-  return FALSE;
-}
diff --git a/autogen.sh b/autogen.sh
deleted file mode 100755 (executable)
index 82260c8..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-#! /bin/sh
-
-# This file is part of GNU XBoard.
-#
-# Copyright 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free
-# Software Foundation, Inc.
-#
-# GNU XBoard is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or (at
-# your option) any later version.
-#
-# GNU XBoard is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see http://www.gnu.org/licenses/.
-#
-#  See the file ChangeLog for a revision history.
-
-autopoint \
-&& aclocal -I m4 \
-&& autoheader \
-&& automake --add-missing \
-&& autoconf
diff --git a/backend.c b/backend.c
deleted file mode 100644 (file)
index ac29d58..0000000
--- a/backend.c
+++ /dev/null
@@ -1,19075 +0,0 @@
-/*
- * backend.c -- Common back end for X and Windows NT versions of
- *
- * Copyright 1991 by Digital Equipment Corporation, Maynard,
- * Massachusetts.
- *
- * Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006,
- * 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free
- * Software Foundation, Inc.
- *
- * Enhancements Copyright 2005 Alessandro Scotti
- *
- * The following terms apply to Digital Equipment Corporation's copyright
- * interest in XBoard:
- * ------------------------------------------------------------------------
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notice appear in all copies and that
- * both that copyright notice and this permission notice appear in
- * supporting documentation, and that the name of Digital not be
- * used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- *
- * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- * ------------------------------------------------------------------------
- *
- * The following terms apply to the enhanced version of XBoard
- * distributed by the Free Software Foundation:
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-/* [AS] Also useful here for debugging */
-#ifdef WIN32
-#include <windows.h>
-
-    int flock(int f, int code);
-#   define LOCK_EX 2
-#   define SLASH '\\'
-
-#   ifdef ARC_64BIT
-#       define EGBB_NAME "egbbdll64.dll"
-#   else
-#       define EGBB_NAME "egbbdll.dll"
-#   endif
-
-#else
-
-#   include <sys/file.h>
-#   define SLASH '/'
-
-#   include <dlfcn.h>
-#   ifdef ARC_64BIT
-#       define EGBB_NAME "egbbso64.so"
-#   else
-#       define EGBB_NAME "egbbso.so"
-#   endif
-    // kludge to allow Windows code in back-end by converting it to corresponding Linux code 
-#   define CDECL
-#   define HMODULE void *
-#   define LoadLibrary(x) dlopen(x, RTLD_LAZY)
-#   define GetProcAddress dlsym
-
-#endif
-
-#include "config.h"
-
-#include <assert.h>
-#include <stdio.h>
-#include <ctype.h>
-#include <errno.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <math.h>
-#include <ctype.h>
-
-#if STDC_HEADERS
-# include <stdlib.h>
-# include <string.h>
-# include <stdarg.h>
-#else /* not STDC_HEADERS */
-# if HAVE_STRING_H
-#  include <string.h>
-# else /* not HAVE_STRING_H */
-#  include <strings.h>
-# endif /* not HAVE_STRING_H */
-#endif /* not STDC_HEADERS */
-
-#if HAVE_SYS_FCNTL_H
-# include <sys/fcntl.h>
-#else /* not HAVE_SYS_FCNTL_H */
-# if HAVE_FCNTL_H
-#  include <fcntl.h>
-# endif /* HAVE_FCNTL_H */
-#endif /* not HAVE_SYS_FCNTL_H */
-
-#if TIME_WITH_SYS_TIME
-# include <sys/time.h>
-# include <time.h>
-#else
-# if HAVE_SYS_TIME_H
-#  include <sys/time.h>
-# else
-#  include <time.h>
-# endif
-#endif
-
-#if defined(_amigados) && !defined(__GNUC__)
-struct timezone {
-    int tz_minuteswest;
-    int tz_dsttime;
-};
-extern int gettimeofday(struct timeval *, struct timezone *);
-#endif
-
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
-#include "common.h"
-#include "frontend.h"
-#include "backend.h"
-#include "parser.h"
-#include "moves.h"
-#if ZIPPY
-# include "zippy.h"
-#endif
-#include "backendz.h"
-#include "evalgraph.h"
-#include "engineoutput.h"
-#include "gettext.h"
-
-#ifdef ENABLE_NLS
-# define _(s) gettext (s)
-# define N_(s) gettext_noop (s)
-# define T_(s) gettext(s)
-#else
-# ifdef WIN32
-#   define _(s) T_(s)
-#   define N_(s) s
-# else
-#   define _(s) (s)
-#   define N_(s) s
-#   define T_(s) s
-# endif
-#endif
-
-
-int establish P((void));
-void read_from_player P((InputSourceRef isr, VOIDSTAR closure,
-                        char *buf, int count, int error));
-void read_from_ics P((InputSourceRef isr, VOIDSTAR closure,
-                     char *buf, int count, int error));
-void SendToICS P((char *s));
-void SendToICSDelayed P((char *s, long msdelay));
-void SendMoveToICS P((ChessMove moveType, int fromX, int fromY, int toX, int toY, char promoChar));
-void HandleMachineMove P((char *message, ChessProgramState *cps));
-int AutoPlayOneMove P((void));
-int LoadGameOneMove P((ChessMove readAhead));
-int LoadGameFromFile P((char *filename, int n, char *title, int useList));
-int LoadPositionFromFile P((char *filename, int n, char *title));
-int SavePositionToFile P((char *filename));
-void MakeMove P((int fromX, int fromY, int toX, int toY, int promoChar));
-void ShowMove P((int fromX, int fromY, int toX, int toY));
-int FinishMove P((ChessMove moveType, int fromX, int fromY, int toX, int toY,
-                  /*char*/int promoChar));
-void BackwardInner P((int target));
-void ForwardInner P((int target));
-int Adjudicate P((ChessProgramState *cps));
-void GameEnds P((ChessMove result, char *resultDetails, int whosays));
-void EditPositionDone P((Boolean fakeRights));
-void PrintOpponents P((FILE *fp));
-void PrintPosition P((FILE *fp, int move));
-void SendToProgram P((char *message, ChessProgramState *cps));
-void SendMoveToProgram P((int moveNum, ChessProgramState *cps));
-void ReceiveFromProgram P((InputSourceRef isr, VOIDSTAR closure,
-                          char *buf, int count, int error));
-void SendTimeControl P((ChessProgramState *cps,
-                       int mps, long tc, int inc, int sd, int st));
-char *TimeControlTagValue P((void));
-void Attention P((ChessProgramState *cps));
-void FeedMovesToProgram P((ChessProgramState *cps, int upto));
-int ResurrectChessProgram P((void));
-void DisplayComment P((int moveNumber, char *text));
-void DisplayMove P((int moveNumber));
-
-void ParseGameHistory P((char *game));
-void ParseBoard12 P((char *string));
-void KeepAlive P((void));
-void StartClocks P((void));
-void SwitchClocks P((int nr));
-void StopClocks P((void));
-void ResetClocks P((void));
-char *PGNDate P((void));
-void SetGameInfo P((void));
-int RegisterMove P((void));
-void MakeRegisteredMove P((void));
-void TruncateGame P((void));
-int looking_at P((char *, int *, char *));
-void CopyPlayerNameIntoFileName P((char **, char *));
-char *SavePart P((char *));
-int SaveGameOldStyle P((FILE *));
-int SaveGamePGN P((FILE *));
-int CheckFlags P((void));
-long NextTickLength P((long));
-void CheckTimeControl P((void));
-void show_bytes P((FILE *, char *, int));
-int string_to_rating P((char *str));
-void ParseFeatures P((char* args, ChessProgramState *cps));
-void InitBackEnd3 P((void));
-void FeatureDone P((ChessProgramState* cps, int val));
-void InitChessProgram P((ChessProgramState *cps, int setup));
-void OutputKibitz(int window, char *text);
-int PerpetualChase(int first, int last);
-int EngineOutputIsUp();
-void InitDrawingSizes(int x, int y);
-void NextMatchGame P((void));
-int NextTourneyGame P((int nr, int *swap));
-int Pairing P((int nr, int nPlayers, int *w, int *b, int *sync));
-FILE *WriteTourneyFile P((char *results, FILE *f));
-void DisplayTwoMachinesTitle P(());
-static void ExcludeClick P((int index));
-void ToggleSecond P((void));
-void PauseEngine P((ChessProgramState *cps));
-static int NonStandardBoardSize P((VariantClass v, int w, int h, int s));
-
-#ifdef WIN32
-       extern void ConsoleCreate();
-#endif
-
-ChessProgramState *WhitePlayer();
-int VerifyDisplayMode P(());
-
-char *GetInfoFromComment( int, char * ); // [HGM] PV time: returns stripped comment
-void InitEngineUCI( const char * iniDir, ChessProgramState * cps ); // [HGM] moved here from winboard.c
-char *ProbeBook P((int moveNr, char *book)); // [HGM] book: returns a book move
-char *SendMoveToBookUser P((int nr, ChessProgramState *cps, int initial)); // [HGM] book
-void ics_update_width P((int new_width));
-extern char installDir[MSG_SIZ];
-VariantClass startVariant; /* [HGM] nicks: initial variant */
-Boolean abortMatch;
-
-extern int tinyLayout, smallLayout;
-ChessProgramStats programStats;
-char lastPV[2][2*MSG_SIZ]; /* [HGM] pv: last PV in thinking output of each engine */
-int endPV = -1;
-static int exiting = 0; /* [HGM] moved to top */
-static int setboardSpoiledMachineBlack = 0 /*, errorExitFlag = 0*/;
-int startedFromPositionFile = FALSE; Board filePosition;       /* [HGM] loadPos */
-Board partnerBoard;     /* [HGM] bughouse: for peeking at partner game          */
-int partnerHighlight[2];
-Boolean partnerBoardValid = 0;
-char partnerStatus[MSG_SIZ];
-Boolean partnerUp;
-Boolean originalFlip;
-Boolean twoBoards = 0;
-char endingGame = 0;    /* [HGM] crash: flag to prevent recursion of GameEnds() */
-int whiteNPS, blackNPS; /* [HGM] nps: for easily making clocks aware of NPS     */
-VariantClass currentlyInitializedVariant; /* [HGM] variantswitch */
-int lastIndex = 0;      /* [HGM] autoinc: last game/position used in match mode */
-Boolean connectionAlive;/* [HGM] alive: ICS connection status from probing      */
-int opponentKibitzes;
-int lastSavedGame; /* [HGM] save: ID of game */
-char chatPartner[MAX_CHAT][MSG_SIZ]; /* [HGM] chat: list of chatting partners */
-extern int chatCount;
-int chattingPartner;
-char marker[BOARD_RANKS][BOARD_FILES]; /* [HGM] marks for target squares */
-char legal[BOARD_RANKS][BOARD_FILES];  /* [HGM] legal target squares */
-char lastMsg[MSG_SIZ];
-char lastTalker[MSG_SIZ];
-ChessSquare pieceSweep = EmptySquare;
-ChessSquare promoSweep = EmptySquare, defaultPromoChoice;
-int promoDefaultAltered;
-int keepInfo = 0; /* [HGM] to protect PGN tags in auto-step game analysis */
-static int initPing = -1;
-int border;       /* [HGM] width of board rim, needed to size seek graph  */
-char bestMove[MSG_SIZ], avoidMove[MSG_SIZ];
-int solvingTime, totalTime;
-
-/* States for ics_getting_history */
-#define H_FALSE 0
-#define H_REQUESTED 1
-#define H_GOT_REQ_HEADER 2
-#define H_GOT_UNREQ_HEADER 3
-#define H_GETTING_MOVES 4
-#define H_GOT_UNWANTED_HEADER 5
-
-/* whosays values for GameEnds */
-#define GE_ICS 0
-#define GE_ENGINE 1
-#define GE_PLAYER 2
-#define GE_FILE 3
-#define GE_XBOARD 4
-#define GE_ENGINE1 5
-#define GE_ENGINE2 6
-
-/* Maximum number of games in a cmail message */
-#define CMAIL_MAX_GAMES 20
-
-/* Different types of move when calling RegisterMove */
-#define CMAIL_MOVE   0
-#define CMAIL_RESIGN 1
-#define CMAIL_DRAW   2
-#define CMAIL_ACCEPT 3
-
-/* Different types of result to remember for each game */
-#define CMAIL_NOT_RESULT 0
-#define CMAIL_OLD_RESULT 1
-#define CMAIL_NEW_RESULT 2
-
-/* Telnet protocol constants */
-#define TN_WILL 0373
-#define TN_WONT 0374
-#define TN_DO   0375
-#define TN_DONT 0376
-#define TN_IAC  0377
-#define TN_ECHO 0001
-#define TN_SGA  0003
-#define TN_PORT 23
-
-char*
-safeStrCpy (char *dst, const char *src, size_t count)
-{ // [HGM] made safe
-  int i;
-  assert( dst != NULL );
-  assert( src != NULL );
-  assert( count > 0 );
-
-  for(i=0; i<count; i++) if((dst[i] = src[i]) == NULLCHAR) break;
-  if(  i == count && dst[count-1] != NULLCHAR)
-    {
-      dst[ count-1 ] = '\0'; // make sure incomplete copy still null-terminated
-      if(appData.debugMode)
-       fprintf(debugFP, "safeStrCpy: copying %s into %s didn't work, not enough space %d\n",src,dst, (int)count);
-    }
-
-  return dst;
-}
-
-/* Some compiler can't cast u64 to double
- * This function do the job for us:
-
- * We use the highest bit for cast, this only
- * works if the highest bit is not
- * in use (This should not happen)
- *
- * We used this for all compiler
- */
-double
-u64ToDouble (u64 value)
-{
-  double r;
-  u64 tmp = value & u64Const(0x7fffffffffffffff);
-  r = (double)(s64)tmp;
-  if (value & u64Const(0x8000000000000000))
-       r +=  9.2233720368547758080e18; /* 2^63 */
- return r;
-}
-
-/* Fake up flags for now, as we aren't keeping track of castling
-   availability yet. [HGM] Change of logic: the flag now only
-   indicates the type of castlings allowed by the rule of the game.
-   The actual rights themselves are maintained in the array
-   castlingRights, as part of the game history, and are not probed
-   by this function.
- */
-int
-PosFlags (int index)
-{
-  int flags = F_ALL_CASTLE_OK;
-  if ((index % 2) == 0) flags |= F_WHITE_ON_MOVE;
-  switch (gameInfo.variant) {
-  case VariantSuicide:
-    flags &= ~F_ALL_CASTLE_OK;
-  case VariantGiveaway:                // [HGM] moved this case label one down: seems Giveaway does have castling on ICC!
-    flags |= F_IGNORE_CHECK;
-  case VariantLosers:
-    flags |= F_MANDATORY_CAPTURE; //[HGM] losers: sets flag so TestLegality rejects non-capts if capts exist
-    break;
-  case VariantAtomic:
-    flags |= F_IGNORE_CHECK | F_ATOMIC_CAPTURE;
-    break;
-  case VariantKriegspiel:
-    flags |= F_KRIEGSPIEL_CAPTURE;
-    break;
-  case VariantCapaRandom:
-  case VariantFischeRandom:
-    flags |= F_FRC_TYPE_CASTLING; /* [HGM] enable this through flag */
-  case VariantNoCastle:
-  case VariantShatranj:
-  case VariantCourier:
-  case VariantMakruk:
-  case VariantASEAN:
-  case VariantGrand:
-    flags &= ~F_ALL_CASTLE_OK;
-    break;
-  case VariantChu:
-  case VariantChuChess:
-  case VariantLion:
-    flags |= F_NULL_MOVE;
-    break;
-  default:
-    break;
-  }
-  if(appData.fischerCastling) flags |= F_FRC_TYPE_CASTLING, flags &= ~F_ALL_CASTLE_OK; // [HGM] fischer
-  return flags;
-}
-
-FILE *gameFileFP, *debugFP, *serverFP;
-char *currentDebugFile; // [HGM] debug split: to remember name
-
-/*
-    [AS] Note: sometimes, the sscanf() function is used to parse the input
-    into a fixed-size buffer. Because of this, we must be prepared to
-    receive strings as long as the size of the input buffer, which is currently
-    set to 4K for Windows and 8K for the rest.
-    So, we must either allocate sufficiently large buffers here, or
-    reduce the size of the input buffer in the input reading part.
-*/
-
-char cmailMove[CMAIL_MAX_GAMES][MOVE_LEN], cmailMsg[MSG_SIZ];
-char bookOutput[MSG_SIZ*10], thinkOutput[MSG_SIZ*10], lastHint[MSG_SIZ];
-char thinkOutput1[MSG_SIZ*10];
-char promoRestrict[MSG_SIZ];
-
-ChessProgramState first, second, pairing;
-
-/* premove variables */
-int premoveToX = 0;
-int premoveToY = 0;
-int premoveFromX = 0;
-int premoveFromY = 0;
-int premovePromoChar = 0;
-int gotPremove = 0;
-Boolean alarmSounded;
-/* end premove variables */
-
-char *ics_prefix = "$";
-enum ICS_TYPE ics_type = ICS_GENERIC;
-
-int currentMove = 0, forwardMostMove = 0, backwardMostMove = 0;
-int pauseExamForwardMostMove = 0;
-int nCmailGames = 0, nCmailResults = 0, nCmailMovesRegistered = 0;
-int cmailMoveRegistered[CMAIL_MAX_GAMES], cmailResult[CMAIL_MAX_GAMES];
-int cmailMsgLoaded = FALSE, cmailMailedMove = FALSE;
-int cmailOldMove = -1, firstMove = TRUE, flipView = FALSE;
-int blackPlaysFirst = FALSE, startedFromSetupPosition = FALSE;
-int searchTime = 0, pausing = FALSE, pauseExamInvalid = FALSE;
-int whiteFlag = FALSE, blackFlag = FALSE;
-int userOfferedDraw = FALSE;
-int ics_user_moved = 0, ics_gamenum = -1, ics_getting_history = H_FALSE;
-int matchMode = FALSE, hintRequested = FALSE, bookRequested = FALSE;
-int cmailMoveType[CMAIL_MAX_GAMES];
-long ics_clock_paused = 0;
-ProcRef icsPR = NoProc, cmailPR = NoProc;
-InputSourceRef telnetISR = NULL, fromUserISR = NULL, cmailISR = NULL;
-GameMode gameMode = BeginningOfGame;
-char moveList[MAX_MOVES][MOVE_LEN], parseList[MAX_MOVES][MOVE_LEN * 2];
-char *commentList[MAX_MOVES], *cmailCommentList[CMAIL_MAX_GAMES];
-ChessProgramStats_Move pvInfoList[MAX_MOVES]; /* [AS] Info about engine thinking */
-int hiddenThinkOutputState = 0; /* [AS] */
-int adjudicateLossThreshold = 0; /* [AS] Automatic adjudication */
-int adjudicateLossPlies = 6;
-char white_holding[64], black_holding[64];
-TimeMark lastNodeCountTime;
-long lastNodeCount=0;
-int shiftKey, controlKey; // [HGM] set by mouse handler
-
-int have_sent_ICS_logon = 0;
-int movesPerSession;
-int suddenDeath, whiteStartMove, blackStartMove; /* [HGM] for implementation of 'any per time' sessions, as in first part of byoyomi TC */
-long whiteTimeRemaining, blackTimeRemaining, timeControl, timeIncrement, lastWhite, lastBlack, activePartnerTime;
-Boolean adjustedClock;
-long timeControl_2; /* [AS] Allow separate time controls */
-char *fullTimeControlString = NULL, *nextSession, *whiteTC, *blackTC, activePartner; /* [HGM] secondary TC: merge of MPS, TC and inc */
-long timeRemaining[2][MAX_MOVES];
-int matchGame = 0, nextGame = 0, roundNr = 0;
-Boolean waitingForGame = FALSE, startingEngine = FALSE;
-TimeMark programStartTime, pauseStart;
-char ics_handle[MSG_SIZ];
-int have_set_title = 0;
-
-/* animateTraining preserves the state of appData.animate
- * when Training mode is activated. This allows the
- * response to be animated when appData.animate == TRUE and
- * appData.animateDragging == TRUE.
- */
-Boolean animateTraining;
-
-GameInfo gameInfo;
-
-AppData appData;
-
-Board boards[MAX_MOVES];
-/* [HGM] Following 7 needed for accurate legality tests: */
-signed char  castlingRank[BOARD_FILES]; // and corresponding ranks
-unsigned char initialRights[BOARD_FILES];
-int   nrCastlingRights; // For TwoKings, or to implement castling-unknown status
-int   initialRulePlies, FENrulePlies;
-FILE  *serverMoves = NULL; // next two for broadcasting (/serverMoves option)
-int loadFlag = 0;
-Boolean shuffleOpenings;
-int mute; // mute all sounds
-
-// [HGM] vari: next 12 to save and restore variations
-#define MAX_VARIATIONS 10
-int framePtr = MAX_MOVES-1; // points to free stack entry
-int storedGames = 0;
-int savedFirst[MAX_VARIATIONS];
-int savedLast[MAX_VARIATIONS];
-int savedFramePtr[MAX_VARIATIONS];
-char *savedDetails[MAX_VARIATIONS];
-ChessMove savedResult[MAX_VARIATIONS];
-
-void PushTail P((int firstMove, int lastMove));
-Boolean PopTail P((Boolean annotate));
-void PushInner P((int firstMove, int lastMove));
-void PopInner P((Boolean annotate));
-void CleanupTail P((void));
-
-ChessSquare  FIDEArray[2][BOARD_FILES] = {
-    { WhiteRook, WhiteKnight, WhiteBishop, WhiteQueen,
-       WhiteKing, WhiteBishop, WhiteKnight, WhiteRook },
-    { BlackRook, BlackKnight, BlackBishop, BlackQueen,
-       BlackKing, BlackBishop, BlackKnight, BlackRook }
-};
-
-ChessSquare twoKingsArray[2][BOARD_FILES] = {
-    { WhiteRook, WhiteKnight, WhiteBishop, WhiteQueen,
-       WhiteKing, WhiteKing, WhiteKnight, WhiteRook },
-    { BlackRook, BlackKnight, BlackBishop, BlackQueen,
-        BlackKing, BlackKing, BlackKnight, BlackRook }
-};
-
-ChessSquare  KnightmateArray[2][BOARD_FILES] = {
-    { WhiteRook, WhiteMan, WhiteBishop, WhiteQueen,
-        WhiteUnicorn, WhiteBishop, WhiteMan, WhiteRook },
-    { BlackRook, BlackMan, BlackBishop, BlackQueen,
-        BlackUnicorn, BlackBishop, BlackMan, BlackRook }
-};
-
-ChessSquare SpartanArray[2][BOARD_FILES] = {
-    { WhiteRook, WhiteKnight, WhiteBishop, WhiteQueen,
-        WhiteKing, WhiteBishop, WhiteKnight, WhiteRook },
-    { BlackAlfil, BlackMarshall, BlackKing, BlackDragon,
-        BlackDragon, BlackKing, BlackAngel, BlackAlfil }
-};
-
-ChessSquare fairyArray[2][BOARD_FILES] = { /* [HGM] Queen side differs from King side */
-    { WhiteRook, WhiteKnight, WhiteBishop, WhiteQueen,
-        WhiteKing, WhiteBishop, WhiteKnight, WhiteRook },
-    { BlackCardinal, BlackAlfil, BlackMarshall, BlackAngel,
-       BlackKing, BlackMarshall, BlackAlfil, BlackCardinal }
-};
-
-ChessSquare ShatranjArray[2][BOARD_FILES] = { /* [HGM] (movGen knows about Shatranj Q and P) */
-    { WhiteRook, WhiteKnight, WhiteAlfil, WhiteKing,
-        WhiteFerz, WhiteAlfil, WhiteKnight, WhiteRook },
-    { BlackRook, BlackKnight, BlackAlfil, BlackKing,
-        BlackFerz, BlackAlfil, BlackKnight, BlackRook }
-};
-
-ChessSquare makrukArray[2][BOARD_FILES] = { /* [HGM] (movGen knows about Shatranj Q and P) */
-    { WhiteRook, WhiteKnight, WhiteMan, WhiteKing,
-        WhiteFerz, WhiteMan, WhiteKnight, WhiteRook },
-    { BlackRook, BlackKnight, BlackMan, BlackFerz,
-        BlackKing, BlackMan, BlackKnight, BlackRook }
-};
-
-ChessSquare aseanArray[2][BOARD_FILES] = { /* [HGM] (movGen knows about Shatranj Q and P) */
-    { WhiteRook, WhiteKnight, WhiteMan, WhiteFerz,
-        WhiteKing, WhiteMan, WhiteKnight, WhiteRook },
-    { BlackRook, BlackKnight, BlackMan, BlackFerz,
-        BlackKing, BlackMan, BlackKnight, BlackRook }
-};
-
-ChessSquare  lionArray[2][BOARD_FILES] = {
-    { WhiteRook, WhiteLion, WhiteBishop, WhiteQueen,
-       WhiteKing, WhiteBishop, WhiteKnight, WhiteRook },
-    { BlackRook, BlackLion, BlackBishop, BlackQueen,
-       BlackKing, BlackBishop, BlackKnight, BlackRook }
-};
-
-
-#if (BOARD_FILES>=10)
-ChessSquare ShogiArray[2][BOARD_FILES] = {
-    { WhiteQueen, WhiteKnight, WhiteFerz, WhiteWazir,
-        WhiteKing, WhiteWazir, WhiteFerz, WhiteKnight, WhiteQueen },
-    { BlackQueen, BlackKnight, BlackFerz, BlackWazir,
-        BlackKing, BlackWazir, BlackFerz, BlackKnight, BlackQueen }
-};
-
-ChessSquare XiangqiArray[2][BOARD_FILES] = {
-    { WhiteRook, WhiteKnight, WhiteAlfil, WhiteFerz,
-        WhiteWazir, WhiteFerz, WhiteAlfil, WhiteKnight, WhiteRook },
-    { BlackRook, BlackKnight, BlackAlfil, BlackFerz,
-        BlackWazir, BlackFerz, BlackAlfil, BlackKnight, BlackRook }
-};
-
-ChessSquare CapablancaArray[2][BOARD_FILES] = {
-    { WhiteRook, WhiteKnight, WhiteAngel, WhiteBishop, WhiteQueen,
-        WhiteKing, WhiteBishop, WhiteMarshall, WhiteKnight, WhiteRook },
-    { BlackRook, BlackKnight, BlackAngel, BlackBishop, BlackQueen,
-        BlackKing, BlackBishop, BlackMarshall, BlackKnight, BlackRook }
-};
-
-ChessSquare GreatArray[2][BOARD_FILES] = {
-    { WhiteDragon, WhiteKnight, WhiteAlfil, WhiteGrasshopper, WhiteKing,
-        WhiteSilver, WhiteCardinal, WhiteAlfil, WhiteKnight, WhiteDragon },
-    { BlackDragon, BlackKnight, BlackAlfil, BlackGrasshopper, BlackKing,
-        BlackSilver, BlackCardinal, BlackAlfil, BlackKnight, BlackDragon },
-};
-
-ChessSquare JanusArray[2][BOARD_FILES] = {
-    { WhiteRook, WhiteAngel, WhiteKnight, WhiteBishop, WhiteKing,
-        WhiteQueen, WhiteBishop, WhiteKnight, WhiteAngel, WhiteRook },
-    { BlackRook, BlackAngel, BlackKnight, BlackBishop, BlackKing,
-        BlackQueen, BlackBishop, BlackKnight, BlackAngel, BlackRook }
-};
-
-ChessSquare GrandArray[2][BOARD_FILES] = {
-    { EmptySquare, WhiteKnight, WhiteBishop, WhiteQueen, WhiteKing,
-        WhiteMarshall, WhiteAngel, WhiteBishop, WhiteKnight, EmptySquare },
-    { EmptySquare, BlackKnight, BlackBishop, BlackQueen, BlackKing,
-        BlackMarshall, BlackAngel, BlackBishop, BlackKnight, EmptySquare }
-};
-
-ChessSquare ChuChessArray[2][BOARD_FILES] = {
-    { WhiteMan, WhiteKnight, WhiteBishop, WhiteCardinal, WhiteLion,
-        WhiteQueen, WhiteDragon, WhiteBishop, WhiteKnight, WhiteMan },
-    { BlackMan, BlackKnight, BlackBishop, BlackDragon, BlackQueen,
-        BlackLion, BlackCardinal, BlackBishop, BlackKnight, BlackMan }
-};
-
-#ifdef GOTHIC
-ChessSquare GothicArray[2][BOARD_FILES] = {
-    { WhiteRook, WhiteKnight, WhiteBishop, WhiteQueen, WhiteMarshall,
-        WhiteKing, WhiteAngel, WhiteBishop, WhiteKnight, WhiteRook },
-    { BlackRook, BlackKnight, BlackBishop, BlackQueen, BlackMarshall,
-        BlackKing, BlackAngel, BlackBishop, BlackKnight, BlackRook }
-};
-#else // !GOTHIC
-#define GothicArray CapablancaArray
-#endif // !GOTHIC
-
-#ifdef FALCON
-ChessSquare FalconArray[2][BOARD_FILES] = {
-    { WhiteRook, WhiteKnight, WhiteBishop, WhiteFalcon, WhiteQueen,
-        WhiteKing, WhiteFalcon, WhiteBishop, WhiteKnight, WhiteRook },
-    { BlackRook, BlackKnight, BlackBishop, BlackFalcon, BlackQueen,
-        BlackKing, BlackFalcon, BlackBishop, BlackKnight, BlackRook }
-};
-#else // !FALCON
-#define FalconArray CapablancaArray
-#endif // !FALCON
-
-#else // !(BOARD_FILES>=10)
-#define XiangqiPosition FIDEArray
-#define CapablancaArray FIDEArray
-#define GothicArray FIDEArray
-#define GreatArray FIDEArray
-#endif // !(BOARD_FILES>=10)
-
-#if (BOARD_FILES>=12)
-ChessSquare CourierArray[2][BOARD_FILES] = {
-    { WhiteRook, WhiteKnight, WhiteAlfil, WhiteBishop, WhiteMan, WhiteKing,
-        WhiteFerz, WhiteWazir, WhiteBishop, WhiteAlfil, WhiteKnight, WhiteRook },
-    { BlackRook, BlackKnight, BlackAlfil, BlackBishop, BlackMan, BlackKing,
-        BlackFerz, BlackWazir, BlackBishop, BlackAlfil, BlackKnight, BlackRook }
-};
-ChessSquare ChuArray[6][BOARD_FILES] = {
-    { WhiteLance, WhiteUnicorn, WhiteMan, WhiteFerz, WhiteWazir, WhiteKing,
-      WhiteAlfil, WhiteWazir, WhiteFerz, WhiteMan, WhiteUnicorn, WhiteLance },
-    { BlackLance, BlackUnicorn, BlackMan, BlackFerz, BlackWazir, BlackAlfil,
-      BlackKing, BlackWazir, BlackFerz, BlackMan, BlackUnicorn, BlackLance },
-    { WhiteCannon, EmptySquare, WhiteBishop, EmptySquare, WhiteNightrider, WhiteMarshall,
-      WhiteAngel, WhiteNightrider, EmptySquare, WhiteBishop, EmptySquare, WhiteCannon },
-    { BlackCannon, EmptySquare, BlackBishop, EmptySquare, BlackNightrider, BlackAngel,
-      BlackMarshall, BlackNightrider, EmptySquare, BlackBishop, EmptySquare, BlackCannon },
-    { WhiteFalcon, WhiteSilver, WhiteRook, WhiteCardinal, WhiteDragon, WhiteLion,
-      WhiteQueen, WhiteDragon, WhiteCardinal, WhiteRook, WhiteSilver, WhiteFalcon },
-    { BlackFalcon, BlackSilver, BlackRook, BlackCardinal, BlackDragon, BlackQueen,
-      BlackLion, BlackDragon, BlackCardinal, BlackRook, BlackSilver, BlackFalcon }
-};
-#else // !(BOARD_FILES>=12)
-#define CourierArray CapablancaArray
-#define ChuArray CapablancaArray
-#endif // !(BOARD_FILES>=12)
-
-
-Board initialPosition;
-
-
-/* Convert str to a rating. Checks for special cases of "----",
-
-   "++++", etc. Also strips ()'s */
-int
-string_to_rating (char *str)
-{
-  while(*str && !isdigit(*str)) ++str;
-  if (!*str)
-    return 0;  /* One of the special "no rating" cases */
-  else
-    return atoi(str);
-}
-
-void
-ClearProgramStats ()
-{
-    /* Init programStats */
-    programStats.movelist[0] = 0;
-    programStats.depth = 0;
-    programStats.nr_moves = 0;
-    programStats.moves_left = 0;
-    programStats.nodes = 0;
-    programStats.time = -1;        // [HGM] PGNtime: make invalid to recognize engine output
-    programStats.score = 0;
-    programStats.got_only_move = 0;
-    programStats.got_fail = 0;
-    programStats.line_is_book = 0;
-}
-
-void
-CommonEngineInit ()
-{   // [HGM] moved some code here from InitBackend1 that has to be done after both engines have contributed their settings
-    if (appData.firstPlaysBlack) {
-       first.twoMachinesColor = "black\n";
-       second.twoMachinesColor = "white\n";
-    } else {
-       first.twoMachinesColor = "white\n";
-       second.twoMachinesColor = "black\n";
-    }
-
-    first.other = &second;
-    second.other = &first;
-
-    { float norm = 1;
-        if(appData.timeOddsMode) {
-            norm = appData.timeOdds[0];
-            if(norm > appData.timeOdds[1]) norm = appData.timeOdds[1];
-        }
-        first.timeOdds  = appData.timeOdds[0]/norm;
-        second.timeOdds = appData.timeOdds[1]/norm;
-    }
-
-    if(programVersion) free(programVersion);
-    if (appData.noChessProgram) {
-       programVersion = (char*) malloc(5 + strlen(PACKAGE_STRING));
-       sprintf(programVersion, "%s", PACKAGE_STRING);
-    } else {
-      /* [HGM] tidy: use tidy name, in stead of full pathname (which was probably a bug due to / vs \ ) */
-      programVersion = (char*) malloc(8 + strlen(PACKAGE_STRING) + strlen(first.tidy));
-      sprintf(programVersion, "%s + %s", PACKAGE_STRING, first.tidy);
-    }
-}
-
-void
-UnloadEngine (ChessProgramState *cps)
-{
-       /* Kill off first chess program */
-       if (cps->isr != NULL)
-         RemoveInputSource(cps->isr);
-       cps->isr = NULL;
-
-       if (cps->pr != NoProc) {
-           ExitAnalyzeMode();
-            DoSleep( appData.delayBeforeQuit );
-           SendToProgram("quit\n", cps);
-           DestroyChildProcess(cps->pr, 4 + cps->useSigterm);
-       }
-       cps->pr = NoProc;
-       if(appData.debugMode) fprintf(debugFP, "Unload %s\n", cps->which);
-}
-
-void
-ClearOptions (ChessProgramState *cps)
-{
-    int i;
-    cps->nrOptions = cps->comboCnt = 0;
-    for(i=0; i<MAX_OPTIONS; i++) {
-       cps->option[i].min = cps->option[i].max = cps->option[i].value = 0;
-       cps->option[i].textValue = 0;
-    }
-}
-
-char *engineNames[] = {
-  /* TRANSLATORS: "first" is the first of possible two chess engines. It is inserted into strings
-     such as "%s engine" / "%s chess program" / "%s machine" - all meaning the same thing */
-N_("first"),
-  /* TRANSLATORS: "second" is the second of possible two chess engines. It is inserted into strings
-     such as "%s engine" / "%s chess program" / "%s machine" - all meaning the same thing */
-N_("second")
-};
-
-void
-InitEngine (ChessProgramState *cps, int n)
-{   // [HGM] all engine initialiation put in a function that does one engine
-
-    ClearOptions(cps);
-
-    cps->which = engineNames[n];
-    cps->maybeThinking = FALSE;
-    cps->pr = NoProc;
-    cps->isr = NULL;
-    cps->sendTime = 2;
-    cps->sendDrawOffers = 1;
-
-    cps->program = appData.chessProgram[n];
-    cps->host = appData.host[n];
-    cps->dir = appData.directory[n];
-    cps->initString = appData.engInitString[n];
-    cps->computerString = appData.computerString[n];
-    cps->useSigint  = TRUE;
-    cps->useSigterm = TRUE;
-    cps->reuse = appData.reuse[n];
-    cps->nps = appData.NPS[n];   // [HGM] nps: copy nodes per second
-    cps->useSetboard = FALSE;
-    cps->useSAN = FALSE;
-    cps->usePing = FALSE;
-    cps->lastPing = 0;
-    cps->lastPong = 0;
-    cps->usePlayother = FALSE;
-    cps->useColors = TRUE;
-    cps->useUsermove = FALSE;
-    cps->sendICS = FALSE;
-    cps->sendName = appData.icsActive;
-    cps->sdKludge = FALSE;
-    cps->stKludge = FALSE;
-    if(cps->tidy == NULL) cps->tidy = (char*) malloc(MSG_SIZ);
-    TidyProgramName(cps->program, cps->host, cps->tidy);
-    cps->matchWins = 0;
-    ASSIGN(cps->variants, appData.noChessProgram ? "" : appData.variant);
-    cps->analysisSupport = 2; /* detect */
-    cps->analyzing = FALSE;
-    cps->initDone = FALSE;
-    cps->reload = FALSE;
-    cps->pseudo = appData.pseudo[n];
-
-    /* New features added by Tord: */
-    cps->useFEN960 = FALSE;
-    cps->useOOCastle = TRUE;
-    /* End of new features added by Tord. */
-    cps->fenOverride  = appData.fenOverride[n];
-
-    /* [HGM] time odds: set factor for each machine */
-    cps->timeOdds  = appData.timeOdds[n];
-
-    /* [HGM] secondary TC: how to handle sessions that do not fit in 'level'*/
-    cps->accumulateTC = appData.accumulateTC[n];
-    cps->maxNrOfSessions = 1;
-
-    /* [HGM] debug */
-    cps->debug = FALSE;
-
-    cps->drawDepth = appData.drawDepth[n];
-    cps->supportsNPS = UNKNOWN;
-    cps->memSize = FALSE;
-    cps->maxCores = FALSE;
-    ASSIGN(cps->egtFormats, "");
-
-    /* [HGM] options */
-    cps->optionSettings  = appData.engOptions[n];
-
-    cps->scoreIsAbsolute = appData.scoreIsAbsolute[n]; /* [AS] */
-    cps->isUCI = appData.isUCI[n]; /* [AS] */
-    cps->hasOwnBookUCI = appData.hasOwnBookUCI[n]; /* [AS] */
-    cps->highlight = 0;
-
-    if (appData.protocolVersion[n] > PROTOVER
-       || appData.protocolVersion[n] < 1)
-      {
-       char buf[MSG_SIZ];
-       int len;
-
-       len = snprintf(buf, MSG_SIZ, _("protocol version %d not supported"),
-                      appData.protocolVersion[n]);
-       if( (len >= MSG_SIZ) && appData.debugMode )
-         fprintf(debugFP, "InitBackEnd1: buffer truncated.\n");
-
-       DisplayFatalError(buf, 0, 2);
-      }
-    else
-      {
-       cps->protocolVersion = appData.protocolVersion[n];
-      }
-
-    InitEngineUCI( installDir, cps );  // [HGM] moved here from winboard.c, to make available in xboard
-    ParseFeatures(appData.featureDefaults, cps);
-}
-
-ChessProgramState *savCps;
-
-GameMode oldMode;
-
-void
-LoadEngine ()
-{
-    int i;
-    if(WaitForEngine(savCps, LoadEngine)) return;
-    CommonEngineInit(); // recalculate time odds
-    if(gameInfo.variant != StringToVariant(appData.variant)) {
-       // we changed variant when loading the engine; this forces us to reset
-       Reset(TRUE, savCps != &first);
-       oldMode = BeginningOfGame; // to prevent restoring old mode
-    }
-    InitChessProgram(savCps, FALSE);
-    if(gameMode == EditGame) SendToProgram("force\n", savCps); // in EditGame mode engine must be in force mode
-    DisplayMessage("", "");
-    if (startedFromSetupPosition) SendBoard(savCps, backwardMostMove);
-    for (i = backwardMostMove; i < currentMove; i++) SendMoveToProgram(i, savCps);
-    ThawUI();
-    SetGNUMode();
-    if(oldMode == AnalyzeMode) AnalyzeModeEvent();
-}
-
-void
-ReplaceEngine (ChessProgramState *cps, int n)
-{
-    oldMode = gameMode; // remember mode, so it can be restored after loading sequence is complete
-    keepInfo = 1;
-    if(oldMode != BeginningOfGame) EditGameEvent();
-    keepInfo = 0;
-    UnloadEngine(cps);
-    appData.noChessProgram = FALSE;
-    appData.clockMode = TRUE;
-    InitEngine(cps, n);
-    UpdateLogos(TRUE);
-    if(n) return; // only startup first engine immediately; second can wait
-    savCps = cps; // parameter to LoadEngine passed as globals, to allow scheduled calling :-(
-    LoadEngine();
-}
-
-extern char *engineName, *engineDir, *engineChoice, *engineLine, *nickName, *params;
-extern Boolean isUCI, hasBook, storeVariant, v1, addToList, useNick;
-
-static char resetOptions[] =
-       "-reuse -firstIsUCI false -firstHasOwnBookUCI true -firstTimeOdds 1 "
-       "-firstInitString \"" INIT_STRING "\" -firstComputerString \"" COMPUTER_STRING "\" "
-       "-firstFeatures \"\" -firstLogo \"\" -firstAccumulateTC 1 -fd \".\" "
-       "-firstOptions \"\" -firstNPS -1 -fn \"\" -firstScoreAbs false";
-
-void
-FloatToFront(char **list, char *engineLine)
-{
-    char buf[MSG_SIZ], tidy[MSG_SIZ], *p = buf, *q, *r = buf;
-    int i=0;
-    if(appData.recentEngines <= 0) return;
-    TidyProgramName(engineLine, "localhost", tidy+1);
-    tidy[0] = buf[0] = '\n'; strcat(tidy, "\n");
-    strncpy(buf+1, *list, MSG_SIZ-50);
-    if(p = strstr(buf, tidy)) { // tidy name appears in list
-       q = strchr(++p, '\n'); if(q == NULL) return; // malformed, don't touch
-       while(*p++ = *++q); // squeeze out
-    }
-    strcat(tidy, buf+1); // put list behind tidy name
-    p = tidy + 1; while(q = strchr(p, '\n')) i++, r = p, p = q + 1; // count entries in new list
-    if(i > appData.recentEngines) *r = NULLCHAR; // if maximum rached, strip off last
-    ASSIGN(*list, tidy+1);
-}
-
-char *insert, *wbOptions; // point in ChessProgramNames were we should insert new engine
-
-void
-Load (ChessProgramState *cps, int i)
-{
-    char *p, *q, buf[MSG_SIZ], command[MSG_SIZ], buf2[MSG_SIZ], buf3[MSG_SIZ], jar;
-    if(engineLine && engineLine[0]) { // an engine was selected from the combo box
-       snprintf(buf, MSG_SIZ, "-fcp %s", engineLine);
-       SwapEngines(i); // kludge to parse -f* / -first* like it is -s* / -second*
-       ParseArgsFromString(resetOptions); appData.pvSAN[0] = FALSE;
-       FREE(appData.fenOverride[0]); appData.fenOverride[0] = NULL;
-       appData.firstProtocolVersion = PROTOVER;
-       ParseArgsFromString(buf);
-       SwapEngines(i);
-       ReplaceEngine(cps, i);
-       FloatToFront(&appData.recentEngineList, engineLine);
-       if(gameMode == BeginningOfGame) Reset(TRUE, TRUE);
-       return;
-    }
-    p = engineName;
-    while(q = strchr(p, SLASH)) p = q+1;
-    if(*p== NULLCHAR) { DisplayError(_("You did not specify the engine executable"), 0); return; }
-    if(engineDir[0] != NULLCHAR) {
-       ASSIGN(appData.directory[i], engineDir); p = engineName;
-    } else if(p != engineName) { // derive directory from engine path, when not given
-       p[-1] = 0;
-       ASSIGN(appData.directory[i], engineName);
-       p[-1] = SLASH;
-       if(SLASH == '/' && p - engineName > 1) *(p -= 2) = '.'; // for XBoard use ./exeName as command after split!
-    } else { ASSIGN(appData.directory[i], "."); }
-    jar = (strstr(p, ".jar") == p + strlen(p) - 4);
-    if(params[0]) {
-       if(strchr(p, ' ') && !strchr(p, '"')) snprintf(buf2, MSG_SIZ, "\"%s\"", p), p = buf2; // quote if it contains spaces
-       snprintf(command, MSG_SIZ, "%s %s", p, params);
-       p = command;
-    }
-    if(jar) { snprintf(buf3, MSG_SIZ, "java -jar %s", p); p = buf3; }
-    ASSIGN(appData.chessProgram[i], p);
-    appData.isUCI[i] = isUCI;
-    appData.protocolVersion[i] = v1 ? 1 : PROTOVER;
-    appData.hasOwnBookUCI[i] = hasBook;
-    if(!nickName[0]) useNick = FALSE;
-    if(useNick) ASSIGN(appData.pgnName[i], nickName);
-    if(addToList) {
-       int len;
-       char quote;
-       q = firstChessProgramNames;
-       if(nickName[0]) snprintf(buf, MSG_SIZ, "\"%s\" -fcp ", nickName); else buf[0] = NULLCHAR;
-       quote = strchr(p, '"') ? '\'' : '"'; // use single quotes around engine command if it contains double quotes
-       snprintf(buf+strlen(buf), MSG_SIZ-strlen(buf), "%c%s%c -fd \"%s\"%s%s%s%s%s%s%s%s\n",
-                       quote, p, quote, appData.directory[i],
-                       useNick ? " -fn \"" : "",
-                       useNick ? nickName : "",
-                       useNick ? "\"" : "",
-                       v1 ? " -firstProtocolVersion 1" : "",
-                       hasBook ? "" : " -fNoOwnBookUCI",
-                       isUCI ? (isUCI == TRUE ? " -fUCI" : gameInfo.variant == VariantShogi ? " -fUSI" : " -fUCCI") : "",
-                       storeVariant ? " -variant " : "",
-                       storeVariant ? VariantName(gameInfo.variant) : "");
-       if(wbOptions && wbOptions[0]) snprintf(buf+strlen(buf)-1, MSG_SIZ-strlen(buf), " %s\n", wbOptions);
-       firstChessProgramNames = malloc(len = strlen(q) + strlen(buf) + 1);
-       if(insert != q) insert[-1] = NULLCHAR;
-       snprintf(firstChessProgramNames, len, "%s\n%s%s", q, buf, insert);
-       if(q)   free(q);
-       FloatToFront(&appData.recentEngineList, buf);
-    }
-    ReplaceEngine(cps, i);
-}
-
-void
-InitTimeControls ()
-{
-    int matched, min, sec;
-    /*
-     * Parse timeControl resource
-     */
-    if (!ParseTimeControl(appData.timeControl, appData.timeIncrement,
-                         appData.movesPerSession)) {
-       char buf[MSG_SIZ];
-       snprintf(buf, sizeof(buf), _("bad timeControl option %s"), appData.timeControl);
-       DisplayFatalError(buf, 0, 2);
-    }
-
-    /*
-     * Parse searchTime resource
-     */
-    if (*appData.searchTime != NULLCHAR) {
-       matched = sscanf(appData.searchTime, "%d:%d", &min, &sec);
-       if (matched == 1) {
-           searchTime = min * 60;
-       } else if (matched == 2) {
-           searchTime = min * 60 + sec;
-       } else {
-           char buf[MSG_SIZ];
-           snprintf(buf, sizeof(buf), _("bad searchTime option %s"), appData.searchTime);
-           DisplayFatalError(buf, 0, 2);
-       }
-    }
-}
-
-void
-InitBackEnd1 ()
-{
-
-    ShowThinkingEvent(); // [HGM] thinking: make sure post/nopost state is set according to options
-    startVariant = StringToVariant(appData.variant); // [HGM] nicks: remember original variant
-
-    GetTimeMark(&programStartTime);
-    srandom((programStartTime.ms + 1000*programStartTime.sec)*0x1001001); // [HGM] book: makes sure random is unpredictabe to msec level
-    appData.seedBase = random() + (random()<<15);
-    pauseStart = programStartTime; pauseStart.sec -= 100; // [HGM] matchpause: fake a pause that has long since ended
-
-    ClearProgramStats();
-    programStats.ok_to_send = 1;
-    programStats.seen_stat = 0;
-
-    /*
-     * Initialize game list
-     */
-    ListNew(&gameList);
-
-
-    /*
-     * Internet chess server status
-     */
-    if (appData.icsActive) {
-       appData.matchMode = FALSE;
-       appData.matchGames = 0;
-#if ZIPPY
-       appData.noChessProgram = !appData.zippyPlay;
-#else
-       appData.zippyPlay = FALSE;
-       appData.zippyTalk = FALSE;
-       appData.noChessProgram = TRUE;
-#endif
-       if (*appData.icsHelper != NULLCHAR) {
-           appData.useTelnet = TRUE;
-           appData.telnetProgram = appData.icsHelper;
-       }
-    } else {
-       appData.zippyTalk = appData.zippyPlay = FALSE;
-    }
-
-    /* [AS] Initialize pv info list [HGM] and game state */
-    {
-        int i, j;
-
-        for( i=0; i<=framePtr; i++ ) {
-            pvInfoList[i].depth = -1;
-            boards[i][EP_STATUS] = EP_NONE;
-            for( j=0; j<BOARD_FILES-2; j++ ) boards[i][CASTLING][j] = NoRights;
-        }
-    }
-
-    InitTimeControls();
-
-    /* [AS] Adjudication threshold */
-    adjudicateLossThreshold = appData.adjudicateLossThreshold;
-
-    InitEngine(&first, 0);
-    InitEngine(&second, 1);
-    CommonEngineInit();
-
-    pairing.which = "pairing"; // pairing engine
-    pairing.pr = NoProc;
-    pairing.isr = NULL;
-    pairing.program = appData.pairingEngine;
-    pairing.host = "localhost";
-    pairing.dir = ".";
-
-    if (appData.icsActive) {
-        appData.clockMode = TRUE;  /* changes dynamically in ICS mode */
-    } else if (appData.noChessProgram) { // [HGM] st: searchTime mode now also is clockMode
-       appData.clockMode = FALSE;
-       first.sendTime = second.sendTime = 0;
-    }
-
-#if ZIPPY
-    /* Override some settings from environment variables, for backward
-       compatibility.  Unfortunately it's not feasible to have the env
-       vars just set defaults, at least in xboard.  Ugh.
-    */
-    if (appData.icsActive && (appData.zippyPlay || appData.zippyTalk)) {
-      ZippyInit();
-    }
-#endif
-
-    if (!appData.icsActive) {
-      char buf[MSG_SIZ];
-      int len;
-
-      /* Check for variants that are supported only in ICS mode,
-         or not at all.  Some that are accepted here nevertheless
-         have bugs; see comments below.
-      */
-      VariantClass variant = StringToVariant(appData.variant);
-      switch (variant) {
-      case VariantBughouse:     /* need four players and two boards */
-      case VariantKriegspiel:   /* need to hide pieces and move details */
-       /* case VariantFischeRandom: (Fabien: moved below) */
-       len = snprintf(buf,MSG_SIZ, _("Variant %s supported only in ICS mode"), appData.variant);
-       if( (len >= MSG_SIZ) && appData.debugMode )
-         fprintf(debugFP, "InitBackEnd1: buffer truncated.\n");
-
-       DisplayFatalError(buf, 0, 2);
-       return;
-
-      case VariantUnknown:
-      case VariantLoadable:
-      case Variant29:
-      case Variant30:
-      case Variant31:
-      case Variant32:
-      case Variant33:
-      case Variant34:
-      case Variant35:
-      case Variant36:
-      default:
-       len = snprintf(buf, MSG_SIZ, _("Unknown variant name %s"), appData.variant);
-       if( (len >= MSG_SIZ) && appData.debugMode )
-         fprintf(debugFP, "InitBackEnd1: buffer truncated.\n");
-
-       DisplayFatalError(buf, 0, 2);
-       return;
-
-      case VariantNormal:     /* definitely works! */
-       if(strcmp(appData.variant, "normal") && !appData.noChessProgram) { // [HGM] hope this is an engine-defined variant
-         safeStrCpy(engineVariant, appData.variant, MSG_SIZ);
-         return;
-       }
-      case VariantXiangqi:    /* [HGM] repetition rules not implemented */
-      case VariantFairy:      /* [HGM] TestLegality definitely off! */
-      case VariantGothic:     /* [HGM] should work */
-      case VariantCapablanca: /* [HGM] should work */
-      case VariantCourier:    /* [HGM] initial forced moves not implemented */
-      case VariantShogi:      /* [HGM] could still mate with pawn drop */
-      case VariantChu:        /* [HGM] experimental */
-      case VariantKnightmate: /* [HGM] should work */
-      case VariantCylinder:   /* [HGM] untested */
-      case VariantFalcon:     /* [HGM] untested */
-      case VariantCrazyhouse: /* holdings not shown, ([HGM] fixed that!)
-                                offboard interposition not understood */
-      case VariantWildCastle: /* pieces not automatically shuffled */
-      case VariantNoCastle:   /* pieces not automatically shuffled */
-      case VariantFischeRandom: /* [HGM] works and shuffles pieces */
-      case VariantLosers:     /* should work except for win condition,
-                                and doesn't know captures are mandatory */
-      case VariantSuicide:    /* should work except for win condition,
-                                and doesn't know captures are mandatory */
-      case VariantGiveaway:   /* should work except for win condition,
-                                and doesn't know captures are mandatory */
-      case VariantTwoKings:   /* should work */
-      case VariantAtomic:     /* should work except for win condition */
-      case Variant3Check:     /* should work except for win condition */
-      case VariantShatranj:   /* should work except for all win conditions */
-      case VariantMakruk:     /* should work except for draw countdown */
-      case VariantASEAN :     /* should work except for draw countdown */
-      case VariantBerolina:   /* might work if TestLegality is off */
-      case VariantCapaRandom: /* should work */
-      case VariantJanus:      /* should work */
-      case VariantSuper:      /* experimental */
-      case VariantGreat:      /* experimental, requires legality testing to be off */
-      case VariantSChess:     /* S-Chess, should work */
-      case VariantGrand:      /* should work */
-      case VariantSpartan:    /* should work */
-      case VariantLion:       /* should work */
-      case VariantChuChess:   /* should work */
-       break;
-      }
-    }
-
-}
-
-int
-NextIntegerFromString (char ** str, long * value)
-{
-    int result = -1;
-    char * s = *str;
-
-    while( *s == ' ' || *s == '\t' ) {
-        s++;
-    }
-
-    *value = 0;
-
-    if( *s >= '0' && *s <= '9' ) {
-        while( *s >= '0' && *s <= '9' ) {
-            *value = *value * 10 + (*s - '0');
-            s++;
-        }
-
-        result = 0;
-    }
-
-    *str = s;
-
-    return result;
-}
-
-int
-NextTimeControlFromString (char ** str, long * value)
-{
-    long temp;
-    int result = NextIntegerFromString( str, &temp );
-
-    if( result == 0 ) {
-        *value = temp * 60; /* Minutes */
-        if( **str == ':' ) {
-            (*str)++;
-            result = NextIntegerFromString( str, &temp );
-            *value += temp; /* Seconds */
-        }
-    }
-
-    return result;
-}
-
-int
-NextSessionFromString (char ** str, int *moves, long * tc, long *inc, int *incType)
-{   /* [HGM] routine added to read '+moves/time' for secondary time control. */
-    int result = -1, type = 0; long temp, temp2;
-
-    if(**str != ':') return -1; // old params remain in force!
-    (*str)++;
-    if(**str == '*') type = *(*str)++, temp = 0; // sandclock TC
-    if( NextIntegerFromString( str, &temp ) ) return -1;
-    if(type) { *moves = 0; *tc = temp * 500; *inc = temp * 1000; *incType = '*'; return 0; }
-
-    if(**str != '/') {
-        /* time only: incremental or sudden-death time control */
-        if(**str == '+') { /* increment follows; read it */
-            (*str)++;
-            if(**str == '!') type = *(*str)++; // Bronstein TC
-            if(result = NextIntegerFromString( str, &temp2)) return -1;
-            *inc = temp2 * 1000;
-            if(**str == '.') { // read fraction of increment
-                char *start = ++(*str);
-                if(result = NextIntegerFromString( str, &temp2)) return -1;
-                temp2 *= 1000;
-                while(start++ < *str) temp2 /= 10;
-                *inc += temp2;
-            }
-        } else *inc = 0;
-        *moves = 0; *tc = temp * 1000; *incType = type;
-        return 0;
-    }
-
-    (*str)++; /* classical time control */
-    result = NextIntegerFromString( str, &temp2); // NOTE: already converted to seconds by ParseTimeControl()
-
-    if(result == 0) {
-        *moves = temp;
-        *tc    = temp2 * 1000;
-        *inc   = 0;
-        *incType = type;
-    }
-    return result;
-}
-
-int
-GetTimeQuota (int movenr, int lastUsed, char *tcString)
-{   /* [HGM] get time to add from the multi-session time-control string */
-    int incType, moves=1; /* kludge to force reading of first session */
-    long time, increment;
-    char *s = tcString;
-
-    if(!s || !*s) return 0; // empty TC string means we ran out of the last sudden-death version
-    do {
-        if(moves) NextSessionFromString(&s, &moves, &time, &increment, &incType);
-        nextSession = s; suddenDeath = moves == 0 && increment == 0;
-        if(movenr == -1) return time;    /* last move before new session     */
-        if(incType == '*') increment = 0; else // for sandclock, time is added while not thinking
-        if(incType == '!' && lastUsed < increment) increment = lastUsed;
-        if(!moves) return increment;     /* current session is incremental   */
-        if(movenr >= 0) movenr -= moves; /* we already finished this session */
-    } while(movenr >= -1);               /* try again for next session       */
-
-    return 0; // no new time quota on this move
-}
-
-int
-ParseTimeControl (char *tc, float ti, int mps)
-{
-  long tc1;
-  long tc2;
-  char buf[MSG_SIZ], buf2[MSG_SIZ], *mytc = tc;
-  int min, sec=0;
-
-  if(ti >= 0 && !strchr(tc, '+') && !strchr(tc, '/') ) mps = 0;
-  if(!strchr(tc, '+') && !strchr(tc, '/') && sscanf(tc, "%d:%d", &min, &sec) >= 1)
-      sprintf(mytc=buf2, "%d", 60*min+sec); // convert 'classical' min:sec tc string to seconds
-  if(ti > 0) {
-
-    if(mps)
-      snprintf(buf, MSG_SIZ, ":%d/%s+%g", mps, mytc, ti);
-    else
-      snprintf(buf, MSG_SIZ, ":%s+%g", mytc, ti);
-  } else {
-    if(mps)
-      snprintf(buf, MSG_SIZ, ":%d/%s", mps, mytc);
-    else
-      snprintf(buf, MSG_SIZ, ":%s", mytc);
-  }
-  fullTimeControlString = StrSave(buf); // this should now be in PGN format
-
-  if( NextTimeControlFromString( &tc, &tc1 ) != 0 ) {
-    return FALSE;
-  }
-
-  if( *tc == '/' ) {
-    /* Parse second time control */
-    tc++;
-
-    if( NextTimeControlFromString( &tc, &tc2 ) != 0 ) {
-      return FALSE;
-    }
-
-    if( tc2 == 0 ) {
-      return FALSE;
-    }
-
-    timeControl_2 = tc2 * 1000;
-  }
-  else {
-    timeControl_2 = 0;
-  }
-
-  if( tc1 == 0 ) {
-    return FALSE;
-  }
-
-  timeControl = tc1 * 1000;
-
-  if (ti >= 0) {
-    timeIncrement = ti * 1000;  /* convert to ms */
-    movesPerSession = 0;
-  } else {
-    timeIncrement = 0;
-    movesPerSession = mps;
-  }
-  return TRUE;
-}
-
-void
-InitBackEnd2 ()
-{
-    if (appData.debugMode) {
-#    ifdef __GIT_VERSION
-      fprintf(debugFP, "Version: %s (%s)\n", programVersion, __GIT_VERSION);
-#    else
-      fprintf(debugFP, "Version: %s\n", programVersion);
-#    endif
-    }
-    ASSIGN(currentDebugFile, appData.nameOfDebugFile); // [HGM] debug split: remember initial name in use
-
-    set_cont_sequence(appData.wrapContSeq);
-    if (appData.matchGames > 0) {
-       appData.matchMode = TRUE;
-    } else if (appData.matchMode) {
-       appData.matchGames = 1;
-    }
-    if(appData.matchMode && appData.sameColorGames > 0) /* [HGM] alternate: overrule matchGames */
-       appData.matchGames = appData.sameColorGames;
-    if(appData.rewindIndex > 1) { /* [HGM] autoinc: rewind implies auto-increment and overrules given index */
-       if(appData.loadPositionIndex >= 0) appData.loadPositionIndex = -1;
-       if(appData.loadGameIndex >= 0) appData.loadGameIndex = -1;
-    }
-    Reset(TRUE, FALSE);
-    if (appData.noChessProgram || first.protocolVersion == 1) {
-      InitBackEnd3();
-    } else {
-      /* kludge: allow timeout for initial "feature" commands */
-      FreezeUI();
-      DisplayMessage("", _("Starting chess program"));
-      ScheduleDelayedEvent(InitBackEnd3, FEATURE_TIMEOUT);
-    }
-}
-
-int
-CalculateIndex (int index, int gameNr)
-{   // [HGM] autoinc: absolute way to determine load index from game number (taking auto-inc and rewind into account)
-    int res;
-    if(index > 0) return index; // fixed nmber
-    if(index == 0) return 1;
-    res = (index == -1 ? gameNr : (gameNr-1)/2 + 1); // autoinc
-    if(appData.rewindIndex > 0) res = (res-1) % appData.rewindIndex + 1; // rewind
-    return res;
-}
-
-int
-LoadGameOrPosition (int gameNr)
-{   // [HGM] taken out of MatchEvent and NextMatchGame (to combine it)
-    if (*appData.loadGameFile != NULLCHAR) {
-       if (!LoadGameFromFile(appData.loadGameFile,
-               CalculateIndex(appData.loadGameIndex, gameNr),
-                             appData.loadGameFile, FALSE)) {
-           DisplayFatalError(_("Bad game file"), 0, 1);
-           return 0;
-       }
-    } else if (*appData.loadPositionFile != NULLCHAR) {
-       if (!LoadPositionFromFile(appData.loadPositionFile,
-               CalculateIndex(appData.loadPositionIndex, gameNr),
-                                 appData.loadPositionFile)) {
-           DisplayFatalError(_("Bad position file"), 0, 1);
-           return 0;
-       }
-    }
-    return 1;
-}
-
-void
-ReserveGame (int gameNr, char resChar)
-{
-    FILE *tf = fopen(appData.tourneyFile, "r+");
-    char *p, *q, c, buf[MSG_SIZ];
-    if(tf == NULL) { nextGame = appData.matchGames + 1; return; } // kludge to terminate match
-    safeStrCpy(buf, lastMsg, MSG_SIZ);
-    DisplayMessage(_("Pick new game"), "");
-    flock(fileno(tf), LOCK_EX); // lock the tourney file while we are messing with it
-    ParseArgsFromFile(tf);
-    p = q = appData.results;
-    if(appData.debugMode) {
-      char *r = appData.participants;
-      fprintf(debugFP, "results = '%s'\n", p);
-      while(*r) fprintf(debugFP, *r >= ' ' ? "%c" : "\\%03o", *r), r++;
-      fprintf(debugFP, "\n");
-    }
-    while(*q && *q != ' ') q++; // get first un-played game (could be beyond end!)
-    nextGame = q - p;
-    q = malloc(strlen(p) + 2); // could be arbitrary long, but allow to extend by one!
-    safeStrCpy(q, p, strlen(p) + 2);
-    if(gameNr >= 0) q[gameNr] = resChar; // replace '*' with result
-    if(appData.debugMode) fprintf(debugFP, "pick next game from '%s': %d\n", q, nextGame);
-    if(nextGame <= appData.matchGames && resChar != ' ' && !abortMatch) { // reserve next game if tourney not yet done
-       if(q[nextGame] == NULLCHAR) q[nextGame+1] = NULLCHAR; // append one char
-       q[nextGame] = '*';
-    }
-    fseek(tf, -(strlen(p)+4), SEEK_END);
-    c = fgetc(tf);
-    if(c != '"') // depending on DOS or Unix line endings we can be one off
-        fseek(tf, -(strlen(p)+2), SEEK_END);
-    else fseek(tf, -(strlen(p)+3), SEEK_END);
-    fprintf(tf, "%s\"\n", q); fclose(tf); // update, and flush by closing
-    DisplayMessage(buf, "");
-    free(p); appData.results = q;
-    if(nextGame <= appData.matchGames && resChar != ' ' && !abortMatch &&
-       (gameNr < 0 || nextGame / appData.defaultMatchGames != gameNr / appData.defaultMatchGames)) {
-      int round = appData.defaultMatchGames * appData.tourneyType;
-      if(gameNr < 0 || appData.tourneyType < 1 ||  // gauntlet engine can always stay loaded as first engine
-        appData.tourneyType > 1 && nextGame/round != gameNr/round) // in multi-gauntlet change only after round
-       UnloadEngine(&first);  // next game belongs to other pairing;
-       UnloadEngine(&second); // already unload the engines, so TwoMachinesEvent will load new ones.
-    }
-    if(appData.debugMode) fprintf(debugFP, "Reserved, next=%d, nr=%d\n", nextGame, gameNr);
-}
-
-void
-MatchEvent (int mode)
-{      // [HGM] moved out of InitBackend3, to make it callable when match starts through menu
-       int dummy;
-       if(matchMode) { // already in match mode: switch it off
-           abortMatch = TRUE;
-           if(!appData.tourneyFile[0]) appData.matchGames = matchGame; // kludge to let match terminate after next game.
-           return;
-       }
-//     if(gameMode != BeginningOfGame) {
-//         DisplayError(_("You can only start a match from the initial position."), 0);
-//         return;
-//     }
-       abortMatch = FALSE;
-       if(mode == 2) appData.matchGames = appData.defaultMatchGames;
-       /* Set up machine vs. machine match */
-       nextGame = 0;
-       NextTourneyGame(-1, &dummy); // sets appData.matchGames if this is tourney, to make sure ReserveGame knows it
-       if(appData.tourneyFile[0]) {
-           ReserveGame(-1, 0);
-           if(nextGame > appData.matchGames) {
-               char buf[MSG_SIZ];
-               if(strchr(appData.results, '*') == NULL) {
-                   FILE *f;
-                   appData.tourneyCycles++;
-                   if(f = WriteTourneyFile(appData.results, NULL)) { // make a tourney file with increased number of cycles
-                       fclose(f);
-                       NextTourneyGame(-1, &dummy);
-                       ReserveGame(-1, 0);
-                       if(nextGame <= appData.matchGames) {
-                           DisplayNote(_("You restarted an already completed tourney.\nOne more cycle will now be added to it.\nGames commence in 10 sec."));
-                           matchMode = mode;
-                           ScheduleDelayedEvent(NextMatchGame, 10000);
-                           return;
-                       }
-                   }
-               }
-               snprintf(buf, MSG_SIZ, _("All games in tourney '%s' are already played or playing"), appData.tourneyFile);
-               DisplayError(buf, 0);
-               appData.tourneyFile[0] = 0;
-               return;
-           }
-       } else
-       if (appData.noChessProgram) {  // [HGM] in tourney engines are loaded automatically
-           DisplayFatalError(_("Can't have a match with no chess programs"),
-                             0, 2);
-           return;
-       }
-       matchMode = mode;
-       matchGame = roundNr = 1;
-       first.matchWins = second.matchWins = totalTime = 0; // [HGM] match: needed in later matches
-       NextMatchGame();
-}
-
-char *comboLine = NULL; // [HGM] recent: WinBoard's first-engine combobox line
-
-void
-InitBackEnd3 P((void))
-{
-    GameMode initialMode;
-    char buf[MSG_SIZ];
-    int err, len;
-
-    if(!appData.icsActive && !appData.noChessProgram && !appData.matchMode &&                         // mode involves only first engine
-       !strcmp(appData.variant, "normal") &&                                                          // no explicit variant request
-        appData.NrRanks == -1 && appData.NrFiles == -1 && appData.holdingsSize == -1 &&               // no size overrides requested
-       !SupportedVariant(first.variants, VariantNormal, 8, 8, 0, first.protocolVersion, "") &&        // but 'normal' won't work with engine
-       !SupportedVariant(first.variants, VariantFischeRandom, 8, 8, 0, first.protocolVersion, "") ) { // nor will Chess960
-       char c, *q = first.variants, *p = strchr(q, ',');
-       if(p) *p = NULLCHAR;
-       if(StringToVariant(q) != VariantUnknown) { // the engine can play a recognized variant, however
-           int w, h, s;
-           if(sscanf(q, "%dx%d+%d_%c", &w, &h, &s, &c) == 4) // get size overrides the engine needs with it (if any)
-               appData.NrFiles = w, appData.NrRanks = h, appData.holdingsSize = s, q = strchr(q, '_') + 1;
-           ASSIGN(appData.variant, q); // fake user requested the first variant played by the engine
-           Reset(TRUE, FALSE);         // and re-initialize
-       }
-       if(p) *p = ',';
-    }
-
-    InitChessProgram(&first, startedFromSetupPosition);
-
-    if(!appData.noChessProgram) {  /* [HGM] tidy: redo program version to use name from myname feature */
-       free(programVersion);
-       programVersion = (char*) malloc(8 + strlen(PACKAGE_STRING) + strlen(first.tidy));
-       sprintf(programVersion, "%s + %s", PACKAGE_STRING, first.tidy);
-       FloatToFront(&appData.recentEngineList, comboLine ? comboLine : appData.firstChessProgram);
-    }
-
-    if (appData.icsActive) {
-#ifdef WIN32
-        /* [DM] Make a console window if needed [HGM] merged ifs */
-        ConsoleCreate();
-#endif
-       err = establish();
-       if (err != 0)
-         {
-           if (*appData.icsCommPort != NULLCHAR)
-             len = snprintf(buf, MSG_SIZ, _("Could not open comm port %s"),
-                            appData.icsCommPort);
-           else
-             len = snprintf(buf, MSG_SIZ, _("Could not connect to host %s, port %s"),
-                       appData.icsHost, appData.icsPort);
-
-           if( (len >= MSG_SIZ) && appData.debugMode )
-             fprintf(debugFP, "InitBackEnd3: buffer truncated.\n");
-
-           DisplayFatalError(buf, err, 1);
-           return;
-       }
-       SetICSMode();
-       telnetISR =
-         AddInputSource(icsPR, FALSE, read_from_ics, &telnetISR);
-       fromUserISR =
-         AddInputSource(NoProc, FALSE, read_from_player, &fromUserISR);
-       if(appData.keepAlive) // [HGM] alive: schedule sending of dummy 'date' command
-           ScheduleDelayedEvent(KeepAlive, appData.keepAlive*60*1000);
-    } else if (appData.noChessProgram) {
-       SetNCPMode();
-    } else {
-       SetGNUMode();
-    }
-
-    if (*appData.cmailGameName != NULLCHAR) {
-       SetCmailMode();
-       OpenLoopback(&cmailPR);
-       cmailISR =
-         AddInputSource(cmailPR, FALSE, CmailSigHandlerCallBack, &cmailISR);
-    }
-
-    ThawUI();
-    DisplayMessage("", "");
-    if (StrCaseCmp(appData.initialMode, "") == 0) {
-      initialMode = BeginningOfGame;
-      if(!appData.icsActive && appData.noChessProgram) { // [HGM] could be fall-back
-        gameMode = MachinePlaysBlack; // "Machine Black" might have been implicitly highlighted
-        ModeHighlight(); // make sure XBoard knows it is highlighted, so it will un-highlight it
-        gameMode = BeginningOfGame; // in case BeginningOfGame now means "Edit Position"
-        ModeHighlight();
-      }
-    } else if (StrCaseCmp(appData.initialMode, "TwoMachines") == 0) {
-      initialMode = TwoMachinesPlay;
-    } else if (StrCaseCmp(appData.initialMode, "AnalyzeFile") == 0) {
-      initialMode = AnalyzeFile;
-    } else if (StrCaseCmp(appData.initialMode, "Analysis") == 0) {
-      initialMode = AnalyzeMode;
-    } else if (StrCaseCmp(appData.initialMode, "MachineWhite") == 0) {
-      initialMode = MachinePlaysWhite;
-    } else if (StrCaseCmp(appData.initialMode, "MachineBlack") == 0) {
-      initialMode = MachinePlaysBlack;
-    } else if (StrCaseCmp(appData.initialMode, "EditGame") == 0) {
-      initialMode = EditGame;
-    } else if (StrCaseCmp(appData.initialMode, "EditPosition") == 0) {
-      initialMode = EditPosition;
-    } else if (StrCaseCmp(appData.initialMode, "Training") == 0) {
-      initialMode = Training;
-    } else {
-      len = snprintf(buf, MSG_SIZ, _("Unknown initialMode %s"), appData.initialMode);
-      if( (len >= MSG_SIZ) && appData.debugMode )
-       fprintf(debugFP, "InitBackEnd3: buffer truncated.\n");
-
-      DisplayFatalError(buf, 0, 2);
-      return;
-    }
-
-    if (appData.matchMode) {
-       if(appData.tourneyFile[0]) { // start tourney from command line
-           FILE *f;
-           if(f = fopen(appData.tourneyFile, "r")) {
-               ParseArgsFromFile(f); // make sure tourney parmeters re known
-               fclose(f);
-               appData.clockMode = TRUE;
-               SetGNUMode();
-           } else appData.tourneyFile[0] = NULLCHAR; // for now ignore bad tourney file
-       }
-       MatchEvent(TRUE);
-    } else if (*appData.cmailGameName != NULLCHAR) {
-       /* Set up cmail mode */
-       ReloadCmailMsgEvent(TRUE);
-    } else {
-       /* Set up other modes */
-       if (initialMode == AnalyzeFile) {
-         if (*appData.loadGameFile == NULLCHAR) {
-           DisplayFatalError(_("AnalyzeFile mode requires a game file"), 0, 1);
-           return;
-         }
-       }
-       if (*appData.loadGameFile != NULLCHAR) {
-           (void) LoadGameFromFile(appData.loadGameFile,
-                                   appData.loadGameIndex,
-                                   appData.loadGameFile, TRUE);
-       } else if (*appData.loadPositionFile != NULLCHAR) {
-           (void) LoadPositionFromFile(appData.loadPositionFile,
-                                       appData.loadPositionIndex,
-                                       appData.loadPositionFile);
-            /* [HGM] try to make self-starting even after FEN load */
-            /* to allow automatic setup of fairy variants with wtm */
-            if(initialMode == BeginningOfGame && !blackPlaysFirst) {
-                gameMode = BeginningOfGame;
-                setboardSpoiledMachineBlack = 1;
-            }
-            /* [HGM] loadPos: make that every new game uses the setup */
-            /* from file as long as we do not switch variant          */
-            if(!blackPlaysFirst) {
-                startedFromPositionFile = TRUE;
-                CopyBoard(filePosition, boards[0]);
-                CopyBoard(initialPosition, boards[0]);
-            }
-       } else if(*appData.fen != NULLCHAR) {
-           if(ParseFEN(filePosition, &blackPlaysFirst, appData.fen, TRUE) && !blackPlaysFirst) {
-                startedFromPositionFile = TRUE;
-               Reset(TRUE, TRUE);
-           }
-       }
-       if (initialMode == AnalyzeMode) {
-         if (appData.noChessProgram) {
-           DisplayFatalError(_("Analysis mode requires a chess engine"), 0, 2);
-           return;
-         }
-         if (appData.icsActive) {
-           DisplayFatalError(_("Analysis mode does not work with ICS mode"),0,2);
-           return;
-         }
-         AnalyzeModeEvent();
-       } else if (initialMode == AnalyzeFile) {
-         appData.showThinking = TRUE; // [HGM] thinking: moved out of ShowThinkingEvent
-         ShowThinkingEvent();
-         AnalyzeFileEvent();
-         AnalysisPeriodicEvent(1);
-       } else if (initialMode == MachinePlaysWhite) {
-         if (appData.noChessProgram) {
-           DisplayFatalError(_("MachineWhite mode requires a chess engine"),
-                             0, 2);
-           return;
-         }
-         if (appData.icsActive) {
-           DisplayFatalError(_("MachineWhite mode does not work with ICS mode"),
-                             0, 2);
-           return;
-         }
-         MachineWhiteEvent();
-       } else if (initialMode == MachinePlaysBlack) {
-         if (appData.noChessProgram) {
-           DisplayFatalError(_("MachineBlack mode requires a chess engine"),
-                             0, 2);
-           return;
-         }
-         if (appData.icsActive) {
-           DisplayFatalError(_("MachineBlack mode does not work with ICS mode"),
-                             0, 2);
-           return;
-         }
-         MachineBlackEvent();
-       } else if (initialMode == TwoMachinesPlay) {
-         if (appData.noChessProgram) {
-           DisplayFatalError(_("TwoMachines mode requires a chess engine"),
-                             0, 2);
-           return;
-         }
-         if (appData.icsActive) {
-           DisplayFatalError(_("TwoMachines mode does not work with ICS mode"),
-                             0, 2);
-           return;
-         }
-         TwoMachinesEvent();
-       } else if (initialMode == EditGame) {
-         EditGameEvent();
-       } else if (initialMode == EditPosition) {
-         EditPositionEvent();
-       } else if (initialMode == Training) {
-         if (*appData.loadGameFile == NULLCHAR) {
-           DisplayFatalError(_("Training mode requires a game file"), 0, 2);
-           return;
-         }
-         TrainingEvent();
-       }
-    }
-}
-
-void
-HistorySet (char movelist[][2*MOVE_LEN], int first, int last, int current)
-{
-    DisplayBook(current+1);
-
-    MoveHistorySet( movelist, first, last, current, pvInfoList );
-
-    EvalGraphSet( first, last, current, pvInfoList );
-
-    MakeEngineOutputTitle();
-}
-
-/*
- * Establish will establish a contact to a remote host.port.
- * Sets icsPR to a ProcRef for a process (or pseudo-process)
- *  used to talk to the host.
- * Returns 0 if okay, error code if not.
- */
-int
-establish ()
-{
-    char buf[MSG_SIZ];
-
-    if (*appData.icsCommPort != NULLCHAR) {
-       /* Talk to the host through a serial comm port */
-       return OpenCommPort(appData.icsCommPort, &icsPR);
-
-    } else if (*appData.gateway != NULLCHAR) {
-       if (*appData.remoteShell == NULLCHAR) {
-           /* Use the rcmd protocol to run telnet program on a gateway host */
-           snprintf(buf, sizeof(buf), "%s %s %s",
-                   appData.telnetProgram, appData.icsHost, appData.icsPort);
-           return OpenRcmd(appData.gateway, appData.remoteUser, buf, &icsPR);
-
-       } else {
-           /* Use the rsh program to run telnet program on a gateway host */
-           if (*appData.remoteUser == NULLCHAR) {
-               snprintf(buf, sizeof(buf), "%s %s %s %s %s", appData.remoteShell,
-                       appData.gateway, appData.telnetProgram,
-                       appData.icsHost, appData.icsPort);
-           } else {
-               snprintf(buf, sizeof(buf), "%s %s -l %s %s %s %s",
-                       appData.remoteShell, appData.gateway,
-                       appData.remoteUser, appData.telnetProgram,
-                       appData.icsHost, appData.icsPort);
-           }
-           return StartChildProcess(buf, "", &icsPR);
-
-       }
-    } else if (appData.useTelnet) {
-       return OpenTelnet(appData.icsHost, appData.icsPort, &icsPR);
-
-    } else {
-       /* TCP socket interface differs somewhat between
-          Unix and NT; handle details in the front end.
-          */
-       return OpenTCP(appData.icsHost, appData.icsPort, &icsPR);
-    }
-}
-
-void
-EscapeExpand (char *p, char *q)
-{      // [HGM] initstring: routine to shape up string arguments
-       while(*p++ = *q++) if(p[-1] == '\\')
-           switch(*q++) {
-               case 'n': p[-1] = '\n'; break;
-               case 'r': p[-1] = '\r'; break;
-               case 't': p[-1] = '\t'; break;
-               case '\\': p[-1] = '\\'; break;
-               case 0: *p = 0; return;
-               default: p[-1] = q[-1]; break;
-           }
-}
-
-void
-show_bytes (FILE *fp, char *buf, int count)
-{
-    while (count--) {
-       if (*buf < 040 || *(unsigned char *) buf > 0177) {
-           fprintf(fp, "\\%03o", *buf & 0xff);
-       } else {
-           putc(*buf, fp);
-       }
-       buf++;
-    }
-    fflush(fp);
-}
-
-/* Returns an errno value */
-int
-OutputMaybeTelnet (ProcRef pr, char *message, int count, int *outError)
-{
-    char buf[8192], *p, *q, *buflim;
-    int left, newcount, outcount;
-
-    if (*appData.icsCommPort != NULLCHAR || appData.useTelnet ||
-       *appData.gateway != NULLCHAR) {
-       if (appData.debugMode) {
-           fprintf(debugFP, ">ICS: ");
-           show_bytes(debugFP, message, count);
-           fprintf(debugFP, "\n");
-       }
-       return OutputToProcess(pr, message, count, outError);
-    }
-
-    buflim = &buf[sizeof(buf)-1]; /* allow 1 byte for expanding last char */
-    p = message;
-    q = buf;
-    left = count;
-    newcount = 0;
-    while (left) {
-       if (q >= buflim) {
-           if (appData.debugMode) {
-               fprintf(debugFP, ">ICS: ");
-               show_bytes(debugFP, buf, newcount);
-               fprintf(debugFP, "\n");
-           }
-           outcount = OutputToProcess(pr, buf, newcount, outError);
-           if (outcount < newcount) return -1; /* to be sure */
-           q = buf;
-           newcount = 0;
-       }
-       if (*p == '\n') {
-           *q++ = '\r';
-           newcount++;
-       } else if (((unsigned char) *p) == TN_IAC) {
-           *q++ = (char) TN_IAC;
-           newcount ++;
-       }
-       *q++ = *p++;
-       newcount++;
-       left--;
-    }
-    if (appData.debugMode) {
-       fprintf(debugFP, ">ICS: ");
-       show_bytes(debugFP, buf, newcount);
-       fprintf(debugFP, "\n");
-    }
-    outcount = OutputToProcess(pr, buf, newcount, outError);
-    if (outcount < newcount) return -1; /* to be sure */
-    return count;
-}
-
-void
-read_from_player (InputSourceRef isr, VOIDSTAR closure, char *message, int count, int error)
-{
-    int outError, outCount;
-    static int gotEof = 0;
-    static FILE *ini;
-
-    /* Pass data read from player on to ICS */
-    if (count > 0) {
-       gotEof = 0;
-       outCount = OutputMaybeTelnet(icsPR, message, count, &outError);
-       if (outCount < count) {
-            DisplayFatalError(_("Error writing to ICS"), outError, 1);
-       }
-       if(have_sent_ICS_logon == 2) {
-         if(ini = fopen(appData.icsLogon, "w")) { // save first two lines (presumably username & password) on init script file
-           fprintf(ini, "%s", message);
-           have_sent_ICS_logon = 3;
-         } else
-           have_sent_ICS_logon = 1;
-       } else if(have_sent_ICS_logon == 3) {
-           fprintf(ini, "%s", message);
-           fclose(ini);
-         have_sent_ICS_logon = 1;
-       }
-    } else if (count < 0) {
-       RemoveInputSource(isr);
-       DisplayFatalError(_("Error reading from keyboard"), error, 1);
-    } else if (gotEof++ > 0) {
-       RemoveInputSource(isr);
-       DisplayFatalError(_("Got end of file from keyboard"), 0, 666); // [HGM] 666 is kludge to alert front end
-    }
-}
-
-void
-KeepAlive ()
-{   // [HGM] alive: periodically send dummy (date) command to ICS to prevent time-out
-    if(!connectionAlive) DisplayFatalError("No response from ICS", 0, 1);
-    connectionAlive = FALSE; // only sticks if no response to 'date' command.
-    SendToICS("date\n");
-    if(appData.keepAlive) ScheduleDelayedEvent(KeepAlive, appData.keepAlive*60*1000);
-}
-
-/* added routine for printf style output to ics */
-void
-ics_printf (char *format, ...)
-{
-    char buffer[MSG_SIZ];
-    va_list args;
-
-    va_start(args, format);
-    vsnprintf(buffer, sizeof(buffer), format, args);
-    buffer[sizeof(buffer)-1] = '\0';
-    SendToICS(buffer);
-    va_end(args);
-}
-
-void
-SendToICS (char *s)
-{
-    int count, outCount, outError;
-
-    if (icsPR == NoProc) return;
-
-    count = strlen(s);
-    outCount = OutputMaybeTelnet(icsPR, s, count, &outError);
-    if (outCount < count) {
-       DisplayFatalError(_("Error writing to ICS"), outError, 1);
-    }
-}
-
-/* This is used for sending logon scripts to the ICS. Sending
-   without a delay causes problems when using timestamp on ICC
-   (at least on my machine). */
-void
-SendToICSDelayed (char *s, long msdelay)
-{
-    int count, outCount, outError;
-
-    if (icsPR == NoProc) return;
-
-    count = strlen(s);
-    if (appData.debugMode) {
-       fprintf(debugFP, ">ICS: ");
-       show_bytes(debugFP, s, count);
-       fprintf(debugFP, "\n");
-    }
-    outCount = OutputToProcessDelayed(icsPR, s, count, &outError,
-                                     msdelay);
-    if (outCount < count) {
-       DisplayFatalError(_("Error writing to ICS"), outError, 1);
-    }
-}
-
-
-/* Remove all highlighting escape sequences in s
-   Also deletes any suffix starting with '('
-   */
-char *
-StripHighlightAndTitle (char *s)
-{
-    static char retbuf[MSG_SIZ];
-    char *p = retbuf;
-
-    while (*s != NULLCHAR) {
-       while (*s == '\033') {
-           while (*s != NULLCHAR && !isalpha(*s)) s++;
-           if (*s != NULLCHAR) s++;
-       }
-       while (*s != NULLCHAR && *s != '\033') {
-           if (*s == '(' || *s == '[') {
-               *p = NULLCHAR;
-               return retbuf;
-           }
-           *p++ = *s++;
-       }
-    }
-    *p = NULLCHAR;
-    return retbuf;
-}
-
-/* Remove all highlighting escape sequences in s */
-char *
-StripHighlight (char *s)
-{
-    static char retbuf[MSG_SIZ];
-    char *p = retbuf;
-
-    while (*s != NULLCHAR) {
-       while (*s == '\033') {
-           while (*s != NULLCHAR && !isalpha(*s)) s++;
-           if (*s != NULLCHAR) s++;
-       }
-       while (*s != NULLCHAR && *s != '\033') {
-           *p++ = *s++;
-       }
-    }
-    *p = NULLCHAR;
-    return retbuf;
-}
-
-char engineVariant[MSG_SIZ];
-char *variantNames[] = VARIANT_NAMES;
-char *
-VariantName (VariantClass v)
-{
-    if(v == VariantUnknown || *engineVariant) return engineVariant;
-    return variantNames[v];
-}
-
-
-/* Identify a variant from the strings the chess servers use or the
-   PGN Variant tag names we use. */
-VariantClass
-StringToVariant (char *e)
-{
-    char *p;
-    int wnum = -1;
-    VariantClass v = VariantNormal;
-    int i, found = FALSE;
-    char buf[MSG_SIZ], c;
-    int len;
-
-    if (!e) return v;
-
-    /* [HGM] skip over optional board-size prefixes */
-    if( sscanf(e, "%dx%d_%c", &i, &i, &c) == 3 ||
-        sscanf(e, "%dx%d+%d_%c", &i, &i, &i, &c) == 4 ) {
-        while( *e++ != '_');
-    }
-
-    if(StrCaseStr(e, "misc/")) { // [HGM] on FICS, misc/shogi is not shogi
-       v = VariantNormal;
-       found = TRUE;
-    } else
-    for (i=0; i<sizeof(variantNames)/sizeof(char*); i++) {
-      if (p = StrCaseStr(e, variantNames[i])) {
-       if(p && i >= VariantShogi && (p != e && !appData.icsActive || isalpha(p[strlen(variantNames[i])]))) continue;
-       v = (VariantClass) i;
-       found = TRUE;
-       break;
-      }
-    }
-
-    if (!found) {
-      if ((StrCaseStr(e, "fischer") && StrCaseStr(e, "random"))
-         || StrCaseStr(e, "wild/fr")
-         || StrCaseStr(e, "frc") || StrCaseStr(e, "960")) {
-        v = VariantFischeRandom;
-      } else if ((i = 4, p = StrCaseStr(e, "wild")) ||
-                (i = 1, p = StrCaseStr(e, "w"))) {
-       p += i;
-       while (*p && (isspace(*p) || *p == '(' || *p == '/')) p++;
-       if (isdigit(*p)) {
-         wnum = atoi(p);
-       } else {
-         wnum = -1;
-       }
-       switch (wnum) {
-       case 0: /* FICS only, actually */
-       case 1:
-         /* Castling legal even if K starts on d-file */
-         v = VariantWildCastle;
-         break;
-       case 2:
-       case 3:
-       case 4:
-         /* Castling illegal even if K & R happen to start in
-            normal positions. */
-         v = VariantNoCastle;
-         break;
-       case 5:
-       case 7:
-       case 8:
-       case 10:
-       case 11:
-       case 12:
-       case 13:
-       case 14:
-       case 15:
-       case 18:
-       case 19:
-         /* Castling legal iff K & R start in normal positions */
-         v = VariantNormal;
-         break;
-       case 6:
-       case 20:
-       case 21:
-         /* Special wilds for position setup; unclear what to do here */
-         v = VariantLoadable;
-         break;
-       case 9:
-         /* Bizarre ICC game */
-         v = VariantTwoKings;
-         break;
-       case 16:
-         v = VariantKriegspiel;
-         break;
-       case 17:
-         v = VariantLosers;
-         break;
-       case 22:
-         v = VariantFischeRandom;
-         break;
-       case 23:
-         v = VariantCrazyhouse;
-         break;
-       case 24:
-         v = VariantBughouse;
-         break;
-       case 25:
-         v = Variant3Check;
-         break;
-       case 26:
-         /* Not quite the same as FICS suicide! */
-         v = VariantGiveaway;
-         break;
-       case 27:
-         v = VariantAtomic;
-         break;
-       case 28:
-         v = VariantShatranj;
-         break;
-
-       /* Temporary names for future ICC types.  The name *will* change in
-          the next xboard/WinBoard release after ICC defines it. */
-       case 29:
-         v = Variant29;
-         break;
-       case 30:
-         v = Variant30;
-         break;
-       case 31:
-         v = Variant31;
-         break;
-       case 32:
-         v = Variant32;
-         break;
-       case 33:
-         v = Variant33;
-         break;
-       case 34:
-         v = Variant34;
-         break;
-       case 35:
-         v = Variant35;
-         break;
-       case 36:
-         v = Variant36;
-         break;
-        case 37:
-          v = VariantShogi;
-         break;
-        case 38:
-          v = VariantXiangqi;
-         break;
-        case 39:
-          v = VariantCourier;
-         break;
-        case 40:
-          v = VariantGothic;
-         break;
-        case 41:
-          v = VariantCapablanca;
-         break;
-        case 42:
-          v = VariantKnightmate;
-         break;
-        case 43:
-          v = VariantFairy;
-          break;
-        case 44:
-          v = VariantCylinder;
-         break;
-        case 45:
-          v = VariantFalcon;
-         break;
-        case 46:
-          v = VariantCapaRandom;
-         break;
-        case 47:
-          v = VariantBerolina;
-         break;
-        case 48:
-          v = VariantJanus;
-         break;
-        case 49:
-          v = VariantSuper;
-         break;
-        case 50:
-          v = VariantGreat;
-         break;
-       case -1:
-         /* Found "wild" or "w" in the string but no number;
-            must assume it's normal chess. */
-         v = VariantNormal;
-         break;
-       default:
-         len = snprintf(buf, MSG_SIZ, _("Unknown wild type %d"), wnum);
-         if( (len >= MSG_SIZ) && appData.debugMode )
-           fprintf(debugFP, "StringToVariant: buffer truncated.\n");
-
-         DisplayError(buf, 0);
-         v = VariantUnknown;
-         break;
-       }
-      }
-    }
-    if (appData.debugMode) {
-      fprintf(debugFP, "recognized '%s' (%d) as variant %s\n",
-             e, wnum, VariantName(v));
-    }
-    return v;
-}
-
-static int leftover_start = 0, leftover_len = 0;
-char star_match[STAR_MATCH_N][MSG_SIZ];
-
-/* Test whether pattern is present at &buf[*index]; if so, return TRUE,
-   advance *index beyond it, and set leftover_start to the new value of
-   *index; else return FALSE.  If pattern contains the character '*', it
-   matches any sequence of characters not containing '\r', '\n', or the
-   character following the '*' (if any), and the matched sequence(s) are
-   copied into star_match.
-   */
-int
-looking_at ( char *buf, int *index, char *pattern)
-{
-    char *bufp = &buf[*index], *patternp = pattern;
-    int star_count = 0;
-    char *matchp = star_match[0];
-
-    for (;;) {
-       if (*patternp == NULLCHAR) {
-           *index = leftover_start = bufp - buf;
-           *matchp = NULLCHAR;
-           return TRUE;
-       }
-       if (*bufp == NULLCHAR) return FALSE;
-       if (*patternp == '*') {
-           if (*bufp == *(patternp + 1)) {
-               *matchp = NULLCHAR;
-               matchp = star_match[++star_count];
-               patternp += 2;
-               bufp++;
-               continue;
-           } else if (*bufp == '\n' || *bufp == '\r') {
-               patternp++;
-               if (*patternp == NULLCHAR)
-                 continue;
-               else
-                 return FALSE;
-           } else {
-               *matchp++ = *bufp++;
-               continue;
-           }
-       }
-       if (*patternp != *bufp) return FALSE;
-       patternp++;
-       bufp++;
-    }
-}
-
-void
-SendToPlayer (char *data, int length)
-{
-    int error, outCount;
-    outCount = OutputToProcess(NoProc, data, length, &error);
-    if (outCount < length) {
-       DisplayFatalError(_("Error writing to display"), error, 1);
-    }
-}
-
-void
-PackHolding (char packed[], char *holding)
-{
-    char *p = holding;
-    char *q = packed;
-    int runlength = 0;
-    int curr = 9999;
-    do {
-       if (*p == curr) {
-           runlength++;
-       } else {
-           switch (runlength) {
-             case 0:
-               break;
-             case 1:
-               *q++ = curr;
-               break;
-             case 2:
-               *q++ = curr;
-               *q++ = curr;
-               break;
-             default:
-               sprintf(q, "%d", runlength);
-               while (*q) q++;
-               *q++ = curr;
-               break;
-           }
-           runlength = 1;
-           curr = *p;
-       }
-    } while (*p++);
-    *q = NULLCHAR;
-}
-
-/* Telnet protocol requests from the front end */
-void
-TelnetRequest (unsigned char ddww, unsigned char option)
-{
-    unsigned char msg[3];
-    int outCount, outError;
-
-    if (*appData.icsCommPort != NULLCHAR || appData.useTelnet) return;
-
-    if (appData.debugMode) {
-       char buf1[8], buf2[8], *ddwwStr, *optionStr;
-       switch (ddww) {
-         case TN_DO:
-           ddwwStr = "DO";
-           break;
-         case TN_DONT:
-           ddwwStr = "DONT";
-           break;
-         case TN_WILL:
-           ddwwStr = "WILL";
-           break;
-         case TN_WONT:
-           ddwwStr = "WONT";
-           break;
-         default:
-           ddwwStr = buf1;
-           snprintf(buf1,sizeof(buf1)/sizeof(buf1[0]), "%d", ddww);
-           break;
-       }
-       switch (option) {
-         case TN_ECHO:
-           optionStr = "ECHO";
-           break;
-         default:
-           optionStr = buf2;
-           snprintf(buf2,sizeof(buf2)/sizeof(buf2[0]), "%d", option);
-           break;
-       }
-       fprintf(debugFP, ">%s %s ", ddwwStr, optionStr);
-    }
-    msg[0] = TN_IAC;
-    msg[1] = ddww;
-    msg[2] = option;
-    outCount = OutputToProcess(icsPR, (char *)msg, 3, &outError);
-    if (outCount < 3) {
-       DisplayFatalError(_("Error writing to ICS"), outError, 1);
-    }
-}
-
-void
-DoEcho ()
-{
-    if (!appData.icsActive) return;
-    TelnetRequest(TN_DO, TN_ECHO);
-}
-
-void
-DontEcho ()
-{
-    if (!appData.icsActive) return;
-    TelnetRequest(TN_DONT, TN_ECHO);
-}
-
-void
-CopyHoldings (Board board, char *holdings, ChessSquare lowestPiece)
-{
-    /* put the holdings sent to us by the server on the board holdings area */
-    int i, j, holdingsColumn, holdingsStartRow, direction, countsColumn;
-    char p;
-    ChessSquare piece;
-
-    if(gameInfo.holdingsWidth < 2)  return;
-    if(gameInfo.variant != VariantBughouse && board[HOLDINGS_SET])
-       return; // prevent overwriting by pre-board holdings
-
-    if( (int)lowestPiece >= BlackPawn ) {
-        holdingsColumn = 0;
-        countsColumn = 1;
-        holdingsStartRow = BOARD_HEIGHT-1;
-        direction = -1;
-    } else {
-        holdingsColumn = BOARD_WIDTH-1;
-        countsColumn = BOARD_WIDTH-2;
-        holdingsStartRow = 0;
-        direction = 1;
-    }
-
-    for(i=0; i<BOARD_HEIGHT; i++) { /* clear holdings */
-        board[i][holdingsColumn] = EmptySquare;
-        board[i][countsColumn]   = (ChessSquare) 0;
-    }
-    while( (p=*holdings++) != NULLCHAR ) {
-        piece = CharToPiece( ToUpper(p) );
-        if(piece == EmptySquare) continue;
-        /*j = (int) piece - (int) WhitePawn;*/
-        j = PieceToNumber(piece);
-        if(j >= gameInfo.holdingsSize) continue; /* ignore pieces that do not fit */
-        if(j < 0) continue;               /* should not happen */
-        piece = (ChessSquare) ( (int)piece + (int)lowestPiece );
-        board[holdingsStartRow+j*direction][holdingsColumn] = piece;
-        board[holdingsStartRow+j*direction][countsColumn]++;
-    }
-}
-
-
-void
-VariantSwitch (Board board, VariantClass newVariant)
-{
-   int newHoldingsWidth, newWidth = 8, newHeight = 8, i, j;
-   static Board oldBoard;
-
-   startedFromPositionFile = FALSE;
-   if(gameInfo.variant == newVariant) return;
-
-   /* [HGM] This routine is called each time an assignment is made to
-    * gameInfo.variant during a game, to make sure the board sizes
-    * are set to match the new variant. If that means adding or deleting
-    * holdings, we shift the playing board accordingly
-    * This kludge is needed because in ICS observe mode, we get boards
-    * of an ongoing game without knowing the variant, and learn about the
-    * latter only later. This can be because of the move list we requested,
-    * in which case the game history is refilled from the beginning anyway,
-    * but also when receiving holdings of a crazyhouse game. In the latter
-    * case we want to add those holdings to the already received position.
-    */
-
-
-   if (appData.debugMode) {
-     fprintf(debugFP, "Switch board from %s to %s\n",
-            VariantName(gameInfo.variant), VariantName(newVariant));
-     setbuf(debugFP, NULL);
-   }
-   shuffleOpenings = 0;       /* [HGM] shuffle */
-   gameInfo.holdingsSize = 5; /* [HGM] prepare holdings */
-   switch(newVariant)
-     {
-     case VariantShogi:
-       newWidth = 9;  newHeight = 9;
-       gameInfo.holdingsSize = 7;
-     case VariantBughouse:
-     case VariantCrazyhouse:
-       newHoldingsWidth = 2; break;
-     case VariantGreat:
-       newWidth = 10;
-     case VariantSuper:
-       newHoldingsWidth = 2;
-       gameInfo.holdingsSize = 8;
-       break;
-     case VariantGothic:
-     case VariantCapablanca:
-     case VariantCapaRandom:
-       newWidth = 10;
-     default:
-       newHoldingsWidth = gameInfo.holdingsSize = 0;
-     };
-
-   if(newWidth  != gameInfo.boardWidth  ||
-      newHeight != gameInfo.boardHeight ||
-      newHoldingsWidth != gameInfo.holdingsWidth ) {
-
-     /* shift position to new playing area, if needed */
-     if(newHoldingsWidth > gameInfo.holdingsWidth) {
-       for(i=0; i<BOARD_HEIGHT; i++)
-        for(j=BOARD_RGHT-1; j>=BOARD_LEFT; j--)
-          board[i][j+newHoldingsWidth-gameInfo.holdingsWidth] =
-            board[i][j];
-       for(i=0; i<newHeight; i++) {
-        board[i][0] = board[i][newWidth+2*newHoldingsWidth-1] = EmptySquare;
-        board[i][1] = board[i][newWidth+2*newHoldingsWidth-2] = (ChessSquare) 0;
-       }
-     } else if(newHoldingsWidth < gameInfo.holdingsWidth) {
-       for(i=0; i<BOARD_HEIGHT; i++)
-        for(j=BOARD_LEFT; j<BOARD_RGHT; j++)
-          board[i][j+newHoldingsWidth-gameInfo.holdingsWidth] =
-            board[i][j];
-     }
-     board[HOLDINGS_SET] = 0;
-     gameInfo.boardWidth  = newWidth;
-     gameInfo.boardHeight = newHeight;
-     gameInfo.holdingsWidth = newHoldingsWidth;
-     gameInfo.variant = newVariant;
-     InitDrawingSizes(-2, 0);
-   } else gameInfo.variant = newVariant;
-   CopyBoard(oldBoard, board);   // remember correctly formatted board
-     InitPosition(FALSE);          /* this sets up board[0], but also other stuff        */
-   DrawPosition(TRUE, currentMove ? boards[currentMove] : oldBoard);
-}
-
-static int loggedOn = FALSE;
-
-/*-- Game start info cache: --*/
-int gs_gamenum;
-char gs_kind[MSG_SIZ];
-static char player1Name[128] = "";
-static char player2Name[128] = "";
-static char cont_seq[] = "\n\\   ";
-static int player1Rating = -1;
-static int player2Rating = -1;
-/*----------------------------*/
-
-ColorClass curColor = ColorNormal;
-int suppressKibitz = 0;
-
-// [HGM] seekgraph
-Boolean soughtPending = FALSE;
-Boolean seekGraphUp;
-#define MAX_SEEK_ADS 200
-#define SQUARE 0x80
-char *seekAdList[MAX_SEEK_ADS];
-int ratingList[MAX_SEEK_ADS], xList[MAX_SEEK_ADS], yList[MAX_SEEK_ADS], seekNrList[MAX_SEEK_ADS], zList[MAX_SEEK_ADS];
-float tcList[MAX_SEEK_ADS];
-char colorList[MAX_SEEK_ADS];
-int nrOfSeekAds = 0;
-int minRating = 1010, maxRating = 2800;
-int hMargin = 10, vMargin = 20, h, w;
-extern int squareSize, lineGap;
-
-void
-PlotSeekAd (int i)
-{
-       int x, y, color = 0, r = ratingList[i]; float tc = tcList[i];
-       xList[i] = yList[i] = -100; // outside graph, so cannot be clicked
-       if(r < minRating+100 && r >=0 ) r = minRating+100;
-       if(r > maxRating) r = maxRating;
-       if(tc < 1.f) tc = 1.f;
-       if(tc > 95.f) tc = 95.f;
-       x = (w-hMargin-squareSize/8-7)* log(tc)/log(95.) + hMargin;
-       y = ((double)r - minRating)/(maxRating - minRating)
-           * (h-vMargin-squareSize/8-1) + vMargin;
-       if(ratingList[i] < 0) y = vMargin + squareSize/4;
-       if(strstr(seekAdList[i], " u ")) color = 1;
-       if(!strstr(seekAdList[i], "lightning") && // for now all wilds same color
-          !strstr(seekAdList[i], "bullet") &&
-          !strstr(seekAdList[i], "blitz") &&
-          !strstr(seekAdList[i], "standard") ) color = 2;
-       if(strstr(seekAdList[i], "(C) ")) color |= SQUARE; // plot computer seeks as squares
-       DrawSeekDot(xList[i]=x+3*(color&~SQUARE), yList[i]=h-1-y, colorList[i]=color);
-}
-
-void
-PlotSingleSeekAd (int i)
-{
-       PlotSeekAd(i);
-}
-
-void
-AddAd (char *handle, char *rating, int base, int inc,  char rated, char *type, int nr, Boolean plot)
-{
-       char buf[MSG_SIZ], *ext = "";
-       VariantClass v = StringToVariant(type);
-       if(strstr(type, "wild")) {
-           ext = type + 4; // append wild number
-           if(v == VariantFischeRandom) type = "chess960"; else
-           if(v == VariantLoadable) type = "setup"; else
-           type = VariantName(v);
-       }
-       snprintf(buf, MSG_SIZ, "%s (%s) %d %d %c %s%s", handle, rating, base, inc, rated, type, ext);
-       if(nrOfSeekAds < MAX_SEEK_ADS-1) {
-           if(seekAdList[nrOfSeekAds]) free(seekAdList[nrOfSeekAds]);
-           ratingList[nrOfSeekAds] = -1; // for if seeker has no rating
-           sscanf(rating, "%d", &ratingList[nrOfSeekAds]);
-           tcList[nrOfSeekAds] = base + (2./3.)*inc;
-           seekNrList[nrOfSeekAds] = nr;
-           zList[nrOfSeekAds] = 0;
-           seekAdList[nrOfSeekAds++] = StrSave(buf);
-           if(plot) PlotSingleSeekAd(nrOfSeekAds-1);
-       }
-}
-
-void
-EraseSeekDot (int i)
-{
-    int x = xList[i], y = yList[i], d=squareSize/4, k;
-    DrawSeekBackground(x-squareSize/8, y-squareSize/8, x+squareSize/8+1, y+squareSize/8+1);
-    if(x < hMargin+d) DrawSeekAxis(hMargin, y-squareSize/8, hMargin, y+squareSize/8+1);
-    // now replot every dot that overlapped
-    for(k=0; k<nrOfSeekAds; k++) if(k != i) {
-       int xx = xList[k], yy = yList[k];
-       if(xx <= x+d && xx > x-d && yy <= y+d && yy > y-d)
-           DrawSeekDot(xx, yy, colorList[k]);
-    }
-}
-
-void
-RemoveSeekAd (int nr)
-{
-       int i;
-       for(i=0; i<nrOfSeekAds; i++) if(seekNrList[i] == nr) {
-           EraseSeekDot(i);
-           if(seekAdList[i]) free(seekAdList[i]);
-           seekAdList[i] = seekAdList[--nrOfSeekAds];
-           seekNrList[i] = seekNrList[nrOfSeekAds];
-           ratingList[i] = ratingList[nrOfSeekAds];
-           colorList[i]  = colorList[nrOfSeekAds];
-           tcList[i] = tcList[nrOfSeekAds];
-           xList[i]  = xList[nrOfSeekAds];
-           yList[i]  = yList[nrOfSeekAds];
-           zList[i]  = zList[nrOfSeekAds];
-           seekAdList[nrOfSeekAds] = NULL;
-           break;
-       }
-}
-
-Boolean
-MatchSoughtLine (char *line)
-{
-    char handle[MSG_SIZ], rating[MSG_SIZ], type[MSG_SIZ];
-    int nr, base, inc, u=0; char dummy;
-
-    if(sscanf(line, "%d %s %s %d %d rated %s", &nr, rating, handle, &base, &inc, type) == 6 ||
-       sscanf(line, "%d %s %s %s %d %d rated %c", &nr, rating, handle, type, &base, &inc, &dummy) == 7 ||
-       (u=1) &&
-       (sscanf(line, "%d %s %s %d %d unrated %s", &nr, rating, handle, &base, &inc, type) == 6 ||
-        sscanf(line, "%d %s %s %s %d %d unrated %c", &nr, rating, handle, type, &base, &inc, &dummy) == 7)  ) {
-       // match: compact and save the line
-       AddAd(handle, rating, base, inc, u ? 'u' : 'r', type, nr, FALSE);
-       return TRUE;
-    }
-    return FALSE;
-}
-
-int
-DrawSeekGraph ()
-{
-    int i;
-    if(!seekGraphUp) return FALSE;
-    h = BOARD_HEIGHT * (squareSize + lineGap) + lineGap + 2*border;
-    w = BOARD_WIDTH  * (squareSize + lineGap) + lineGap + 2*border;
-
-    DrawSeekBackground(0, 0, w, h);
-    DrawSeekAxis(hMargin, h-1-vMargin, w-5, h-1-vMargin);
-    DrawSeekAxis(hMargin, h-1-vMargin, hMargin, 5);
-    for(i=0; i<4000; i+= 100) if(i>=minRating && i<maxRating) {
-       int yy =((double)i - minRating)/(maxRating - minRating)*(h-vMargin-squareSize/8-1) + vMargin;
-       yy = h-1-yy;
-       DrawSeekAxis(hMargin-5, yy, hMargin+5*(i%500==0), yy); // rating ticks
-       if(i%500 == 0) {
-           char buf[MSG_SIZ];
-           snprintf(buf, MSG_SIZ, "%d", i);
-           DrawSeekText(buf, hMargin+squareSize/8+7, yy);
-       }
-    }
-    DrawSeekText("unrated", hMargin+squareSize/8+7, h-1-vMargin-squareSize/4);
-    for(i=1; i<100; i+=(i<10?1:5)) {
-       int xx = (w-hMargin-squareSize/8-7)* log((double)i)/log(95.) + hMargin;
-       DrawSeekAxis(xx, h-1-vMargin, xx, h-6-vMargin-3*(i%10==0)); // TC ticks
-       if(i<=5 || (i>40 ? i%20 : i%10) == 0) {
-           char buf[MSG_SIZ];
-           snprintf(buf, MSG_SIZ, "%d", i);
-           DrawSeekText(buf, xx-2-3*(i>9), h-1-vMargin/2);
-       }
-    }
-    for(i=0; i<nrOfSeekAds; i++) PlotSeekAd(i);
-    return TRUE;
-}
-
-int
-SeekGraphClick (ClickType click, int x, int y, int moving)
-{
-    static int lastDown = 0, displayed = 0, lastSecond;
-    if(y < 0) return FALSE;
-    if(!(appData.seekGraph && appData.icsActive && loggedOn &&
-       (gameMode == BeginningOfGame || gameMode == IcsIdle))) {
-       if(!seekGraphUp) return FALSE;
-       seekGraphUp = FALSE; // seek graph is up when it shouldn't be: take it down
-       DrawPosition(TRUE, NULL);
-       return TRUE;
-    }
-    if(!seekGraphUp) { // initiate cration of seek graph by requesting seek-ad list
-       if(click == Release || moving) return FALSE;
-       nrOfSeekAds = 0;
-       soughtPending = TRUE;
-       SendToICS(ics_prefix);
-       SendToICS("sought\n"); // should this be "sought all"?
-    } else { // issue challenge based on clicked ad
-       int dist = 10000; int i, closest = 0, second = 0;
-       for(i=0; i<nrOfSeekAds; i++) {
-           int d = (x-xList[i])*(x-xList[i]) +  (y-yList[i])*(y-yList[i]) + zList[i];
-           if(d < dist) { dist = d; closest = i; }
-           second += (d - zList[i] < 120); // count in-range ads
-           if(click == Press && moving != 1 && zList[i]>0) zList[i] *= 0.8; // age priority
-       }
-       if(dist < 120) {
-           char buf[MSG_SIZ];
-           second = (second > 1);
-           if(displayed != closest || second != lastSecond) {
-               DisplayMessage(second ? "!" : "", seekAdList[closest]);
-               lastSecond = second; displayed = closest;
-           }
-           if(click == Press) {
-               if(moving == 2) zList[closest] = 100; // right-click; push to back on press
-               lastDown = closest;
-               return TRUE;
-           } // on press 'hit', only show info
-           if(moving == 2) return TRUE; // ignore right up-clicks on dot
-           snprintf(buf, MSG_SIZ, "play %d\n", seekNrList[closest]);
-           SendToICS(ics_prefix);
-           SendToICS(buf);
-           return TRUE; // let incoming board of started game pop down the graph
-       } else if(click == Release) { // release 'miss' is ignored
-           zList[lastDown] = 100; // make future selection of the rejected ad more difficult
-           if(moving == 2) { // right up-click
-               nrOfSeekAds = 0; // refresh graph
-               soughtPending = TRUE;
-               SendToICS(ics_prefix);
-               SendToICS("sought\n"); // should this be "sought all"?
-           }
-           return TRUE;
-       } else if(moving) { if(displayed >= 0) DisplayMessage("", ""); displayed = -1; return TRUE; }
-       // press miss or release hit 'pop down' seek graph
-       seekGraphUp = FALSE;
-       DrawPosition(TRUE, NULL);
-    }
-    return TRUE;
-}
-
-void
-read_from_ics (InputSourceRef isr, VOIDSTAR closure, char *data, int count, int error)
-{
-#define BUF_SIZE (16*1024) /* overflowed at 8K with "inchannel 1" on FICS? */
-#define STARTED_NONE 0
-#define STARTED_MOVES 1
-#define STARTED_BOARD 2
-#define STARTED_OBSERVE 3
-#define STARTED_HOLDINGS 4
-#define STARTED_CHATTER 5
-#define STARTED_COMMENT 6
-#define STARTED_MOVES_NOHIDE 7
-
-    static int started = STARTED_NONE;
-    static char parse[20000];
-    static int parse_pos = 0;
-    static char buf[BUF_SIZE + 1];
-    static int firstTime = TRUE, intfSet = FALSE;
-    static ColorClass prevColor = ColorNormal;
-    static int savingComment = FALSE;
-    static int cmatch = 0; // continuation sequence match
-    char *bp;
-    char str[MSG_SIZ];
-    int i, oldi;
-    int buf_len;
-    int next_out;
-    int tkind;
-    int backup;    /* [DM] For zippy color lines */
-    char *p;
-    char talker[MSG_SIZ]; // [HGM] chat
-    int channel, collective=0;
-
-    connectionAlive = TRUE; // [HGM] alive: I think, therefore I am...
-
-    if (appData.debugMode) {
-      if (!error) {
-       fprintf(debugFP, "<ICS: ");
-       show_bytes(debugFP, data, count);
-       fprintf(debugFP, "\n");
-      }
-    }
-
-    if (appData.debugMode) { int f = forwardMostMove;
-        fprintf(debugFP, "ics input %d, castling = %d %d %d %d %d %d\n", f,
-                boards[f][CASTLING][0],boards[f][CASTLING][1],boards[f][CASTLING][2],
-                boards[f][CASTLING][3],boards[f][CASTLING][4],boards[f][CASTLING][5]);
-    }
-    if (count > 0) {
-       /* If last read ended with a partial line that we couldn't parse,
-          prepend it to the new read and try again. */
-       if (leftover_len > 0) {
-           for (i=0; i<leftover_len; i++)
-             buf[i] = buf[leftover_start + i];
-       }
-
-    /* copy new characters into the buffer */
-    bp = buf + leftover_len;
-    buf_len=leftover_len;
-    for (i=0; i<count; i++)
-    {
-        // ignore these
-        if (data[i] == '\r')
-            continue;
-
-        // join lines split by ICS?
-        if (!appData.noJoin)
-        {
-            /*
-                Joining just consists of finding matches against the
-                continuation sequence, and discarding that sequence
-                if found instead of copying it.  So, until a match
-                fails, there's nothing to do since it might be the
-                complete sequence, and thus, something we don't want
-                copied.
-            */
-            if (data[i] == cont_seq[cmatch])
-            {
-                cmatch++;
-                if (cmatch == strlen(cont_seq))
-                {
-                    cmatch = 0; // complete match.  just reset the counter
-
-                    /*
-                        it's possible for the ICS to not include the space
-                        at the end of the last word, making our [correct]
-                        join operation fuse two separate words.  the server
-                        does this when the space occurs at the width setting.
-                    */
-                    if (!buf_len || buf[buf_len-1] != ' ')
-                    {
-                        *bp++ = ' ';
-                        buf_len++;
-                    }
-                }
-                continue;
-            }
-            else if (cmatch)
-            {
-                /*
-                    match failed, so we have to copy what matched before
-                    falling through and copying this character.  In reality,
-                    this will only ever be just the newline character, but
-                    it doesn't hurt to be precise.
-                */
-                strncpy(bp, cont_seq, cmatch);
-                bp += cmatch;
-                buf_len += cmatch;
-                cmatch = 0;
-            }
-        }
-
-        // copy this char
-        *bp++ = data[i];
-        buf_len++;
-    }
-
-       buf[buf_len] = NULLCHAR;
-//     next_out = leftover_len; // [HGM] should we set this to 0, and not print it in advance?
-       next_out = 0;
-       leftover_start = 0;
-
-       i = 0;
-       while (i < buf_len) {
-           /* Deal with part of the TELNET option negotiation
-              protocol.  We refuse to do anything beyond the
-              defaults, except that we allow the WILL ECHO option,
-              which ICS uses to turn off password echoing when we are
-              directly connected to it.  We reject this option
-              if localLineEditing mode is on (always on in xboard)
-               and we are talking to port 23, which might be a real
-              telnet server that will try to keep WILL ECHO on permanently.
-             */
-           if (buf_len - i >= 3 && (unsigned char) buf[i] == TN_IAC) {
-               static int remoteEchoOption = FALSE; /* telnet ECHO option */
-               unsigned char option;
-               oldi = i;
-               switch ((unsigned char) buf[++i]) {
-                 case TN_WILL:
-                   if (appData.debugMode)
-                     fprintf(debugFP, "\n<WILL ");
-                   switch (option = (unsigned char) buf[++i]) {
-                     case TN_ECHO:
-                       if (appData.debugMode)
-                         fprintf(debugFP, "ECHO ");
-                       /* Reply only if this is a change, according
-                          to the protocol rules. */
-                       if (remoteEchoOption) break;
-                       if (appData.localLineEditing &&
-                           atoi(appData.icsPort) == TN_PORT) {
-                           TelnetRequest(TN_DONT, TN_ECHO);
-                       } else {
-                           EchoOff();
-                           TelnetRequest(TN_DO, TN_ECHO);
-                           remoteEchoOption = TRUE;
-                       }
-                       break;
-                     default:
-                       if (appData.debugMode)
-                         fprintf(debugFP, "%d ", option);
-                       /* Whatever this is, we don't want it. */
-                       TelnetRequest(TN_DONT, option);
-                       break;
-                   }
-                   break;
-                 case TN_WONT:
-                   if (appData.debugMode)
-                     fprintf(debugFP, "\n<WONT ");
-                   switch (option = (unsigned char) buf[++i]) {
-                     case TN_ECHO:
-                       if (appData.debugMode)
-                         fprintf(debugFP, "ECHO ");
-                       /* Reply only if this is a change, according
-                          to the protocol rules. */
-                       if (!remoteEchoOption) break;
-                       EchoOn();
-                       TelnetRequest(TN_DONT, TN_ECHO);
-                       remoteEchoOption = FALSE;
-                       break;
-                     default:
-                       if (appData.debugMode)
-                         fprintf(debugFP, "%d ", (unsigned char) option);
-                       /* Whatever this is, it must already be turned
-                          off, because we never agree to turn on
-                          anything non-default, so according to the
-                          protocol rules, we don't reply. */
-                       break;
-                   }
-                   break;
-                 case TN_DO:
-                   if (appData.debugMode)
-                     fprintf(debugFP, "\n<DO ");
-                   switch (option = (unsigned char) buf[++i]) {
-                     default:
-                       /* Whatever this is, we refuse to do it. */
-                       if (appData.debugMode)
-                         fprintf(debugFP, "%d ", option);
-                       TelnetRequest(TN_WONT, option);
-                       break;
-                   }
-                   break;
-                 case TN_DONT:
-                   if (appData.debugMode)
-                     fprintf(debugFP, "\n<DONT ");
-                   switch (option = (unsigned char) buf[++i]) {
-                     default:
-                       if (appData.debugMode)
-                         fprintf(debugFP, "%d ", option);
-                       /* Whatever this is, we are already not doing
-                          it, because we never agree to do anything
-                          non-default, so according to the protocol
-                          rules, we don't reply. */
-                       break;
-                   }
-                   break;
-                 case TN_IAC:
-                   if (appData.debugMode)
-                     fprintf(debugFP, "\n<IAC ");
-                   /* Doubled IAC; pass it through */
-                   i--;
-                   break;
-                 default:
-                   if (appData.debugMode)
-                     fprintf(debugFP, "\n<%d ", (unsigned char) buf[i]);
-                   /* Drop all other telnet commands on the floor */
-                   break;
-               }
-               if (oldi > next_out)
-                 SendToPlayer(&buf[next_out], oldi - next_out);
-               if (++i > next_out)
-                 next_out = i;
-               continue;
-           }
-
-           /* OK, this at least will *usually* work */
-           if (!loggedOn && looking_at(buf, &i, "ics%")) {
-               loggedOn = TRUE;
-           }
-
-           if (loggedOn && !intfSet) {
-               if (ics_type == ICS_ICC) {
-                 snprintf(str, MSG_SIZ,
-                         "/set-quietly interface %s\n/set-quietly style 12\n",
-                         programVersion);
-                 if(appData.seekGraph && appData.autoRefresh) // [HGM] seekgraph
-                     strcat(str, "/set-2 51 1\n/set seek 1\n");
-               } else if (ics_type == ICS_CHESSNET) {
-                 snprintf(str, MSG_SIZ, "/style 12\n");
-               } else {
-                 safeStrCpy(str, "alias $ @\n$set interface ", sizeof(str)/sizeof(str[0]));
-                 strcat(str, programVersion);
-                 strcat(str, "\n$iset startpos 1\n$iset ms 1\n");
-                 if(appData.seekGraph && appData.autoRefresh) // [HGM] seekgraph
-                     strcat(str, "$iset seekremove 1\n$set seek 1\n");
-#ifdef WIN32
-                 strcat(str, "$iset nohighlight 1\n");
-#endif
-                 strcat(str, "$iset lock 1\n$style 12\n");
-               }
-               SendToICS(str);
-               NotifyFrontendLogin();
-               intfSet = TRUE;
-           }
-
-           if (started == STARTED_COMMENT) {
-               /* Accumulate characters in comment */
-               parse[parse_pos++] = buf[i];
-               if (buf[i] == '\n') {
-                   parse[parse_pos] = NULLCHAR;
-                   if(chattingPartner>=0) {
-                       char mess[MSG_SIZ];
-                       snprintf(mess, MSG_SIZ, "%s%s", talker, parse);
-                       OutputChatMessage(chattingPartner, mess);
-                       if(collective == 1) { // broadcasted talk also goes to private chatbox of talker
-                           int p;
-                           talker[strlen(talker+1)-1] = NULLCHAR; // strip closing delimiter
-                           for(p=0; p<MAX_CHAT; p++) if(!StrCaseCmp(talker+1, chatPartner[p])) {
-                               snprintf(mess, MSG_SIZ, "%s: %s", chatPartner[chattingPartner], parse);
-                               OutputChatMessage(p, mess);
-                               break;
-                           }
-                       }
-                       chattingPartner = -1;
-                       if(collective != 3) next_out = i+1; // [HGM] suppress printing in ICS window
-                       collective = 0;
-                   } else
-                   if(!suppressKibitz) // [HGM] kibitz
-                       AppendComment(forwardMostMove, StripHighlight(parse), TRUE);
-                   else { // [HGM kibitz: divert memorized engine kibitz to engine-output window
-                       int nrDigit = 0, nrAlph = 0, j;
-                       if(parse_pos > MSG_SIZ - 30) // defuse unreasonably long input
-                       { parse_pos = MSG_SIZ-30; parse[parse_pos - 1] = '\n'; }
-                       parse[parse_pos] = NULLCHAR;
-                       // try to be smart: if it does not look like search info, it should go to
-                       // ICS interaction window after all, not to engine-output window.
-                       for(j=0; j<parse_pos; j++) { // count letters and digits
-                           nrDigit += (parse[j] >= '0' && parse[j] <= '9');
-                           nrAlph  += (parse[j] >= 'a' && parse[j] <= 'z');
-                           nrAlph  += (parse[j] >= 'A' && parse[j] <= 'Z');
-                       }
-                       if(nrAlph < 9*nrDigit) { // if more than 10% digit we assume search info
-                           int depth=0; float score;
-                           if(sscanf(parse, "!!! %f/%d", &score, &depth) == 2 && depth>0) {
-                               // [HGM] kibitz: save kibitzed opponent info for PGN and eval graph
-                               pvInfoList[forwardMostMove-1].depth = depth;
-                               pvInfoList[forwardMostMove-1].score = 100*score;
-                           }
-                           OutputKibitz(suppressKibitz, parse);
-                       } else {
-                           char tmp[MSG_SIZ];
-                           if(gameMode == IcsObserving) // restore original ICS messages
-                             /* TRANSLATORS: to 'kibitz' is to send a message to all players and the game observers */
-                             snprintf(tmp, MSG_SIZ, "%s kibitzes: %s", star_match[0], parse);
-                           else
-                           /* TRANSLATORS: to 'kibitz' is to send a message to all players and the game observers */
-                           snprintf(tmp, MSG_SIZ, _("your opponent kibitzes: %s"), parse);
-                           SendToPlayer(tmp, strlen(tmp));
-                       }
-                       next_out = i+1; // [HGM] suppress printing in ICS window
-                   }
-                   started = STARTED_NONE;
-               } else {
-                   /* Don't match patterns against characters in comment */
-                   i++;
-                   continue;
-               }
-           }
-           if (started == STARTED_CHATTER) {
-               if (buf[i] != '\n') {
-                   /* Don't match patterns against characters in chatter */
-                   i++;
-                   continue;
-               }
-               started = STARTED_NONE;
-               if(suppressKibitz) next_out = i+1;
-           }
-
-            /* Kludge to deal with rcmd protocol */
-           if (firstTime && looking_at(buf, &i, "\001*")) {
-               DisplayFatalError(&buf[1], 0, 1);
-               continue;
-           } else {
-               firstTime = FALSE;
-           }
-
-           if (!loggedOn && looking_at(buf, &i, "chessclub.com")) {
-               ics_type = ICS_ICC;
-               ics_prefix = "/";
-               if (appData.debugMode)
-                 fprintf(debugFP, "ics_type %d\n", ics_type);
-               continue;
-           }
-           if (!loggedOn && looking_at(buf, &i, "freechess.org")) {
-               ics_type = ICS_FICS;
-               ics_prefix = "$";
-               if (appData.debugMode)
-                 fprintf(debugFP, "ics_type %d\n", ics_type);
-               continue;
-           }
-           if (!loggedOn && looking_at(buf, &i, "chess.net")) {
-               ics_type = ICS_CHESSNET;
-               ics_prefix = "/";
-               if (appData.debugMode)
-                 fprintf(debugFP, "ics_type %d\n", ics_type);
-               continue;
-           }
-
-           if (!loggedOn &&
-               (looking_at(buf, &i, "\"*\" is *a registered name") ||
-                looking_at(buf, &i, "Logging you in as \"*\"") ||
-                looking_at(buf, &i, "will be \"*\""))) {
-             safeStrCpy(ics_handle, star_match[0], sizeof(ics_handle)/sizeof(ics_handle[0]));
-             continue;
-           }
-
-           if (loggedOn && !have_set_title && ics_handle[0] != NULLCHAR) {
-             char buf[MSG_SIZ];
-             snprintf(buf, sizeof(buf), "%s@%s", ics_handle, appData.icsHost);
-             DisplayIcsInteractionTitle(buf);
-             have_set_title = TRUE;
-           }
-
-           /* skip finger notes */
-           if (started == STARTED_NONE &&
-               ((buf[i] == ' ' && isdigit(buf[i+1])) ||
-                (buf[i] == '1' && buf[i+1] == '0')) &&
-               buf[i+2] == ':' && buf[i+3] == ' ') {
-             started = STARTED_CHATTER;
-             i += 3;
-             continue;
-           }
-
-           oldi = i;
-           // [HGM] seekgraph: recognize sought lines and end-of-sought message
-           if(appData.seekGraph) {
-               if(soughtPending && MatchSoughtLine(buf+i)) {
-                   i = strstr(buf+i, "rated") - buf;
-                   if (oldi > next_out) SendToPlayer(&buf[next_out], oldi - next_out);
-                   next_out = leftover_start = i;
-                   started = STARTED_CHATTER;
-                   suppressKibitz = TRUE;
-                   continue;
-               }
-               if((gameMode == IcsIdle || gameMode == BeginningOfGame)
-                       && looking_at(buf, &i, "* ads displayed")) {
-                   soughtPending = FALSE;
-                   seekGraphUp = TRUE;
-                   DrawSeekGraph();
-                   continue;
-               }
-               if(appData.autoRefresh) {
-                   if(looking_at(buf, &i, "* (*) seeking * * * * *\"play *\" to respond)\n")) {
-                       int s = (ics_type == ICS_ICC); // ICC format differs
-                       if(seekGraphUp)
-                       AddAd(star_match[0], star_match[1], atoi(star_match[2+s]), atoi(star_match[3+s]),
-                             star_match[4+s][0], star_match[5-3*s], atoi(star_match[7]), TRUE);
-                       looking_at(buf, &i, "*% "); // eat prompt
-                       if(oldi > 0 && buf[oldi-1] == '\n') oldi--; // suppress preceding LF, if any
-                       if (oldi > next_out) SendToPlayer(&buf[next_out], oldi - next_out);
-                       next_out = i; // suppress
-                       continue;
-                   }
-                   if(looking_at(buf, &i, "\nAds removed: *\n") || looking_at(buf, &i, "\031(51 * *\031)")) {
-                       char *p = star_match[0];
-                       while(*p) {
-                           if(seekGraphUp) RemoveSeekAd(atoi(p));
-                           while(*p && *p++ != ' '); // next
-                       }
-                       looking_at(buf, &i, "*% "); // eat prompt
-                       if (oldi > next_out) SendToPlayer(&buf[next_out], oldi - next_out);
-                       next_out = i;
-                       continue;
-                   }
-               }
-           }
-
-           /* skip formula vars */
-           if (started == STARTED_NONE &&
-               buf[i] == 'f' && isdigit(buf[i+1]) && buf[i+2] == ':') {
-             started = STARTED_CHATTER;
-             i += 3;
-             continue;
-           }
-
-           // [HGM] kibitz: try to recognize opponent engine-score kibitzes, to divert them to engine-output window
-           if (appData.autoKibitz && started == STARTED_NONE &&
-                !appData.icsEngineAnalyze &&                     // [HGM] [DM] ICS analyze
-               (gameMode == IcsPlayingWhite || gameMode == IcsPlayingBlack || gameMode == IcsObserving)) {
-               if((looking_at(buf, &i, "\n* kibitzes: ") || looking_at(buf, &i, "\n* whispers: ") ||
-                   looking_at(buf, &i, "* kibitzes: ") || looking_at(buf, &i, "* whispers: ")) &&
-                  (StrStr(star_match[0], gameInfo.white) == star_match[0] ||
-                   StrStr(star_match[0], gameInfo.black) == star_match[0]   )) { // kibitz of self or opponent
-                       suppressKibitz = TRUE;
-                       if (oldi > next_out) SendToPlayer(&buf[next_out], oldi - next_out);
-                       next_out = i;
-                       if((StrStr(star_match[0], gameInfo.white) == star_match[0]
-                               && (gameMode == IcsPlayingWhite)) ||
-                          (StrStr(star_match[0], gameInfo.black) == star_match[0]
-                               && (gameMode == IcsPlayingBlack))   ) // opponent kibitz
-                           started = STARTED_CHATTER; // own kibitz we simply discard
-                       else {
-                           started = STARTED_COMMENT; // make sure it will be collected in parse[]
-                           parse_pos = 0; parse[0] = NULLCHAR;
-                           savingComment = TRUE;
-                           suppressKibitz = gameMode != IcsObserving ? 2 :
-                               (StrStr(star_match[0], gameInfo.white) == NULL) + 1;
-                       }
-                       continue;
-               } else
-               if((looking_at(buf, &i, "\nkibitzed to *\n") || looking_at(buf, &i, "kibitzed to *\n") ||
-                   looking_at(buf, &i, "\n(kibitzed to *\n") || looking_at(buf, &i, "(kibitzed to *\n"))
-                        && atoi(star_match[0])) {
-                   // suppress the acknowledgements of our own autoKibitz
-                   char *p;
-                   if (oldi > next_out) SendToPlayer(&buf[next_out], oldi - next_out);
-                   if(p = strchr(star_match[0], ' ')) p[1] = NULLCHAR; // clip off "players)" on FICS
-                   SendToPlayer(star_match[0], strlen(star_match[0]));
-                   if(looking_at(buf, &i, "*% ")) // eat prompt
-                       suppressKibitz = FALSE;
-                   next_out = i;
-                   continue;
-               }
-           } // [HGM] kibitz: end of patch
-
-           if(looking_at(buf, &i, "* rating adjustment: * --> *\n")) continue;
-
-           // [HGM] chat: intercept tells by users for which we have an open chat window
-           channel = -1;
-           if(started == STARTED_NONE && (looking_at(buf, &i, "* tells you:") || looking_at(buf, &i, "* says:") ||
-                                          looking_at(buf, &i, "* whispers:") ||
-                                          looking_at(buf, &i, "* kibitzes:") ||
-                                          looking_at(buf, &i, "* shouts:") ||
-                                          looking_at(buf, &i, "* c-shouts:") ||
-                                          looking_at(buf, &i, "--> * ") ||
-                                          looking_at(buf, &i, "*(*):") && (sscanf(star_match[1], "%d", &channel),1) ||
-                                          looking_at(buf, &i, "*(*)(*):") && (sscanf(star_match[2], "%d", &channel),1) ||
-                                          looking_at(buf, &i, "*(*)(*)(*):") && (sscanf(star_match[3], "%d", &channel),1) ||
-                                          looking_at(buf, &i, "*(*)(*)(*)(*):") && sscanf(star_match[4], "%d", &channel) == 1 )) {
-               int p;
-               sscanf(star_match[0], "%[^(]", talker+1); // strip (C) or (U) off ICS handle
-               chattingPartner = -1; collective = 0;
-
-               if(channel >= 0) // channel broadcast; look if there is a chatbox for this channel
-               for(p=0; p<MAX_CHAT; p++) {
-                   collective = 1;
-                   if(chatPartner[p][0] >= '0' && chatPartner[p][0] <= '9' && channel == atoi(chatPartner[p])) {
-                   talker[0] = '['; strcat(talker, "] ");
-                   Colorize((channel == 1 ? ColorChannel1 : ColorChannel), FALSE);
-                   chattingPartner = p; break;
-                   }
-               } else
-               if(buf[i-3] == 'e') // kibitz; look if there is a KIBITZ chatbox
-               for(p=0; p<MAX_CHAT; p++) {
-                   collective = 1;
-                   if(!strcmp("kibitzes", chatPartner[p])) {
-                       talker[0] = '['; strcat(talker, "] ");
-                       chattingPartner = p; break;
-                   }
-               } else
-               if(buf[i-3] == 'r') // whisper; look if there is a WHISPER chatbox
-               for(p=0; p<MAX_CHAT; p++) {
-                   collective = 1;
-                   if(!strcmp("whispers", chatPartner[p])) {
-                       talker[0] = '['; strcat(talker, "] ");
-                       chattingPartner = p; break;
-                   }
-               } else
-               if(buf[i-3] == 't' || buf[oldi+2] == '>') {// shout, c-shout or it; look if there is a 'shouts' chatbox
-                 if(buf[i-8] == '-' && buf[i-3] == 't')
-                 for(p=0; p<MAX_CHAT; p++) { // c-shout; check if dedicatesd c-shout box exists
-                   collective = 1;
-                   if(!strcmp("c-shouts", chatPartner[p])) {
-                       talker[0] = '('; strcat(talker, ") "); Colorize(ColorSShout, FALSE);
-                       chattingPartner = p; break;
-                   }
-                 }
-                 if(chattingPartner < 0)
-                 for(p=0; p<MAX_CHAT; p++) {
-                   collective = 1;
-                   if(!strcmp("shouts", chatPartner[p])) {
-                       if(buf[oldi+2] == '>') { talker[0] = '<'; strcat(talker, "> "); Colorize(ColorShout, FALSE); }
-                       else if(buf[i-8] == '-') { talker[0] = '('; strcat(talker, ") "); Colorize(ColorSShout, FALSE); }
-                       else { talker[0] = '['; strcat(talker, "] "); Colorize(ColorShout, FALSE); }
-                       chattingPartner = p; break;
-                   }
-                 }
-               }
-               if(chattingPartner<0) // if not, look if there is a chatbox for this indivdual
-               for(p=0; p<MAX_CHAT; p++) if(!StrCaseCmp(talker+1, chatPartner[p])) {
-                   talker[0] = 0;
-                   Colorize(ColorTell, FALSE);
-                   if(collective) safeStrCpy(talker, "broadcasts: ", MSG_SIZ);
-                   collective |= 2;
-                   chattingPartner = p; break;
-               }
-               if(chattingPartner<0) i = oldi, safeStrCpy(lastTalker, talker+1, MSG_SIZ); else {
-                   Colorize(curColor, TRUE); // undo the bogus colorations we just made to trigger the souds
-                   started = STARTED_COMMENT;
-                   parse_pos = 0; parse[0] = NULLCHAR;
-                   savingComment = 3 + chattingPartner; // counts as TRUE
-                   if(collective == 3) i = oldi; else {
-                       suppressKibitz = TRUE;
-                       if(oldi > 0 && buf[oldi-1] == '\n') oldi--;
-                       if (oldi > next_out) SendToPlayer(&buf[next_out], oldi - next_out);
-                       continue;
-                   }
-               }
-           } // [HGM] chat: end of patch
-
-          backup = i;
-           if (appData.zippyTalk || appData.zippyPlay) {
-                /* [DM] Backup address for color zippy lines */
-#if ZIPPY
-               if (loggedOn == TRUE)
-                       if (ZippyControl(buf, &backup) || ZippyConverse(buf, &backup) ||
-                          (appData.zippyPlay && ZippyMatch(buf, &backup)))
-                       ;
-#endif
-           } // [DM] 'else { ' deleted
-               if (
-                   /* Regular tells and says */
-                   (tkind = 1, looking_at(buf, &i, "* tells you: ")) ||
-                   looking_at(buf, &i, "* (your partner) tells you: ") ||
-                   looking_at(buf, &i, "* says: ") ||
-                   /* Don't color "message" or "messages" output */
-                   (tkind = 5, looking_at(buf, &i, "*. * (*:*): ")) ||
-                   looking_at(buf, &i, "*. * at *:*: ") ||
-                   looking_at(buf, &i, "--* (*:*): ") ||
-                   /* Message notifications (same color as tells) */
-                   looking_at(buf, &i, "* has left a message ") ||
-                   looking_at(buf, &i, "* just sent you a message:\n") ||
-                   /* Whispers and kibitzes */
-                   (tkind = 2, looking_at(buf, &i, "* whispers: ")) ||
-                   looking_at(buf, &i, "* kibitzes: ") ||
-                   /* Channel tells */
-                   (tkind = 3, looking_at(buf, &i, "*(*: "))) {
-
-                 if (tkind == 1 && strchr(star_match[0], ':')) {
-                     /* Avoid "tells you:" spoofs in channels */
-                    tkind = 3;
-                 }
-                 if (star_match[0][0] == NULLCHAR ||
-                     strchr(star_match[0], ' ') ||
-                     (tkind == 3 && strchr(star_match[1], ' '))) {
-                   /* Reject bogus matches */
-                   i = oldi;
-                 } else {
-                   if (appData.colorize) {
-                     if (oldi > next_out) {
-                       SendToPlayer(&buf[next_out], oldi - next_out);
-                       next_out = oldi;
-                     }
-                     switch (tkind) {
-                     case 1:
-                       Colorize(ColorTell, FALSE);
-                       curColor = ColorTell;
-                       break;
-                     case 2:
-                       Colorize(ColorKibitz, FALSE);
-                       curColor = ColorKibitz;
-                       break;
-                     case 3:
-                       p = strrchr(star_match[1], '(');
-                       if (p == NULL) {
-                         p = star_match[1];
-                       } else {
-                         p++;
-                       }
-                       if (atoi(p) == 1) {
-                         Colorize(ColorChannel1, FALSE);
-                         curColor = ColorChannel1;
-                       } else {
-                         Colorize(ColorChannel, FALSE);
-                         curColor = ColorChannel;
-                       }
-                       break;
-                     case 5:
-                       curColor = ColorNormal;
-                       break;
-                     }
-                   }
-                   if (started == STARTED_NONE && appData.autoComment &&
-                       (gameMode == IcsObserving ||
-                        gameMode == IcsPlayingWhite ||
-                        gameMode == IcsPlayingBlack)) {
-                     parse_pos = i - oldi;
-                     memcpy(parse, &buf[oldi], parse_pos);
-                     parse[parse_pos] = NULLCHAR;
-                     started = STARTED_COMMENT;
-                     savingComment = TRUE;
-                   } else if(collective != 3) {
-                     started = STARTED_CHATTER;
-                     savingComment = FALSE;
-                   }
-                   loggedOn = TRUE;
-                   continue;
-                 }
-               }
-
-               if (looking_at(buf, &i, "* s-shouts: ") ||
-                   looking_at(buf, &i, "* c-shouts: ")) {
-                   if (appData.colorize) {
-                       if (oldi > next_out) {
-                           SendToPlayer(&buf[next_out], oldi - next_out);
-                           next_out = oldi;
-                       }
-                       Colorize(ColorSShout, FALSE);
-                       curColor = ColorSShout;
-                   }
-                   loggedOn = TRUE;
-                   started = STARTED_CHATTER;
-                   continue;
-               }
-
-               if (looking_at(buf, &i, "--->")) {
-                   loggedOn = TRUE;
-                   continue;
-               }
-
-               if (looking_at(buf, &i, "* shouts: ") ||
-                   looking_at(buf, &i, "--> ")) {
-                   if (appData.colorize) {
-                       if (oldi > next_out) {
-                           SendToPlayer(&buf[next_out], oldi - next_out);
-                           next_out = oldi;
-                       }
-                       Colorize(ColorShout, FALSE);
-                       curColor = ColorShout;
-                   }
-                   loggedOn = TRUE;
-                   started = STARTED_CHATTER;
-                   continue;
-               }
-
-               if (looking_at( buf, &i, "Challenge:")) {
-                   if (appData.colorize) {
-                       if (oldi > next_out) {
-                           SendToPlayer(&buf[next_out], oldi - next_out);
-                           next_out = oldi;
-                       }
-                       Colorize(ColorChallenge, FALSE);
-                       curColor = ColorChallenge;
-                   }
-                   loggedOn = TRUE;
-                   continue;
-               }
-
-               if (looking_at(buf, &i, "* offers you") ||
-                   looking_at(buf, &i, "* offers to be") ||
-                   looking_at(buf, &i, "* would like to") ||
-                   looking_at(buf, &i, "* requests to") ||
-                   looking_at(buf, &i, "Your opponent offers") ||
-                   looking_at(buf, &i, "Your opponent requests")) {
-
-                   if (appData.colorize) {
-                       if (oldi > next_out) {
-                           SendToPlayer(&buf[next_out], oldi - next_out);
-                           next_out = oldi;
-                       }
-                       Colorize(ColorRequest, FALSE);
-                       curColor = ColorRequest;
-                   }
-                   continue;
-               }
-
-               if (looking_at(buf, &i, "* (*) seeking")) {
-                   if (appData.colorize) {
-                       if (oldi > next_out) {
-                           SendToPlayer(&buf[next_out], oldi - next_out);
-                           next_out = oldi;
-                       }
-                       Colorize(ColorSeek, FALSE);
-                       curColor = ColorSeek;
-                   }
-                   continue;
-           }
-
-          if(i < backup) { i = backup; continue; } // [HGM] for if ZippyControl matches, but the colorie code doesn't
-
-           if (looking_at(buf, &i, "\\   ")) {
-               if (prevColor != ColorNormal) {
-                   if (oldi > next_out) {
-                       SendToPlayer(&buf[next_out], oldi - next_out);
-                       next_out = oldi;
-                   }
-                   Colorize(prevColor, TRUE);
-                   curColor = prevColor;
-               }
-               if (savingComment) {
-                   parse_pos = i - oldi;
-                   memcpy(parse, &buf[oldi], parse_pos);
-                   parse[parse_pos] = NULLCHAR;
-                   started = STARTED_COMMENT;
-                   if(savingComment >= 3) // [HGM] chat: continuation of line for chat box
-                       chattingPartner = savingComment - 3; // kludge to remember the box
-               } else {
-                   started = STARTED_CHATTER;
-               }
-               continue;
-           }
-
-           if (looking_at(buf, &i, "Black Strength :") ||
-               looking_at(buf, &i, "<<< style 10 board >>>") ||
-               looking_at(buf, &i, "<10>") ||
-               looking_at(buf, &i, "#@#")) {
-               /* Wrong board style */
-               loggedOn = TRUE;
-               SendToICS(ics_prefix);
-               SendToICS("set style 12\n");
-               SendToICS(ics_prefix);
-               SendToICS("refresh\n");
-               continue;
-           }
-
-           if (looking_at(buf, &i, "login:")) {
-             if (!have_sent_ICS_logon) {
-               if(ICSInitScript())
-                 have_sent_ICS_logon = 1;
-               else // no init script was found
-                 have_sent_ICS_logon = (appData.autoCreateLogon ? 2 : 1); // flag that we should capture username + password
-             } else { // we have sent (or created) the InitScript, but apparently the ICS rejected it
-                 have_sent_ICS_logon = (appData.autoCreateLogon ? 2 : 1); // request creation of a new script
-             }
-               continue;
-           }
-
-           if (ics_getting_history != H_GETTING_MOVES /*smpos kludge*/ &&
-               (looking_at(buf, &i, "\n<12> ") ||
-                looking_at(buf, &i, "<12> "))) {
-               loggedOn = TRUE;
-               if (oldi > next_out) {
-                   SendToPlayer(&buf[next_out], oldi - next_out);
-               }
-               next_out = i;
-               started = STARTED_BOARD;
-               parse_pos = 0;
-               continue;
-           }
-
-           if ((started == STARTED_NONE && looking_at(buf, &i, "\n<b1> ")) ||
-               looking_at(buf, &i, "<b1> ")) {
-               if (oldi > next_out) {
-                   SendToPlayer(&buf[next_out], oldi - next_out);
-               }
-               next_out = i;
-               started = STARTED_HOLDINGS;
-               parse_pos = 0;
-               continue;
-           }
-
-           if (looking_at(buf, &i, "* *vs. * *--- *")) {
-               loggedOn = TRUE;
-               /* Header for a move list -- first line */
-
-               switch (ics_getting_history) {
-                 case H_FALSE:
-                   switch (gameMode) {
-                     case IcsIdle:
-                     case BeginningOfGame:
-                       /* User typed "moves" or "oldmoves" while we
-                          were idle.  Pretend we asked for these
-                          moves and soak them up so user can step
-                          through them and/or save them.
-                          */
-                       Reset(FALSE, TRUE);
-                       gameMode = IcsObserving;
-                       ModeHighlight();
-                       ics_gamenum = -1;
-                       ics_getting_history = H_GOT_UNREQ_HEADER;
-                       break;
-                     case EditGame: /*?*/
-                     case EditPosition: /*?*/
-                       /* Should above feature work in these modes too? */
-                       /* For now it doesn't */
-                       ics_getting_history = H_GOT_UNWANTED_HEADER;
-                       break;
-                     default:
-                       ics_getting_history = H_GOT_UNWANTED_HEADER;
-                       break;
-                   }
-                   break;
-                 case H_REQUESTED:
-                   /* Is this the right one? */
-                   if (gameInfo.white && gameInfo.black &&
-                       strcmp(gameInfo.white, star_match[0]) == 0 &&
-                       strcmp(gameInfo.black, star_match[2]) == 0) {
-                       /* All is well */
-                       ics_getting_history = H_GOT_REQ_HEADER;
-                   }
-                   break;
-                 case H_GOT_REQ_HEADER:
-                 case H_GOT_UNREQ_HEADER:
-                 case H_GOT_UNWANTED_HEADER:
-                 case H_GETTING_MOVES:
-                   /* Should not happen */
-                   DisplayError(_("Error gathering move list: two headers"), 0);
-                   ics_getting_history = H_FALSE;
-                   break;
-               }
-
-               /* Save player ratings into gameInfo if needed */
-               if ((ics_getting_history == H_GOT_REQ_HEADER ||
-                    ics_getting_history == H_GOT_UNREQ_HEADER) &&
-                   (gameInfo.whiteRating == -1 ||
-                    gameInfo.blackRating == -1)) {
-
-                   gameInfo.whiteRating = string_to_rating(star_match[1]);
-                   gameInfo.blackRating = string_to_rating(star_match[3]);
-                   if (appData.debugMode)
-                     fprintf(debugFP, "Ratings from header: W %d, B %d\n",
-                             gameInfo.whiteRating, gameInfo.blackRating);
-               }
-               continue;
-           }
-
-           if (looking_at(buf, &i,
-             "* * match, initial time: * minute*, increment: * second")) {
-               /* Header for a move list -- second line */
-               /* Initial board will follow if this is a wild game */
-               if (gameInfo.event != NULL) free(gameInfo.event);
-               snprintf(str, MSG_SIZ, "ICS %s %s match", star_match[0], star_match[1]);
-               gameInfo.event = StrSave(str);
-                /* [HGM] we switched variant. Translate boards if needed. */
-                VariantSwitch(boards[currentMove], StringToVariant(gameInfo.event));
-               continue;
-           }
-
-           if (looking_at(buf, &i, "Move  ")) {
-               /* Beginning of a move list */
-               switch (ics_getting_history) {
-                 case H_FALSE:
-                   /* Normally should not happen */
-                   /* Maybe user hit reset while we were parsing */
-                   break;
-                 case H_REQUESTED:
-                   /* Happens if we are ignoring a move list that is not
-                    * the one we just requested.  Common if the user
-                    * tries to observe two games without turning off
-                    * getMoveList */
-                   break;
-                 case H_GETTING_MOVES:
-                   /* Should not happen */
-                   DisplayError(_("Error gathering move list: nested"), 0);
-                   ics_getting_history = H_FALSE;
-                   break;
-                 case H_GOT_REQ_HEADER:
-                   ics_getting_history = H_GETTING_MOVES;
-                   started = STARTED_MOVES;
-                   parse_pos = 0;
-                   if (oldi > next_out) {
-                       SendToPlayer(&buf[next_out], oldi - next_out);
-                   }
-                   break;
-                 case H_GOT_UNREQ_HEADER:
-                   ics_getting_history = H_GETTING_MOVES;
-                   started = STARTED_MOVES_NOHIDE;
-                   parse_pos = 0;
-                   break;
-                 case H_GOT_UNWANTED_HEADER:
-                   ics_getting_history = H_FALSE;
-                   break;
-               }
-               continue;
-           }
-
-           if (looking_at(buf, &i, "% ") ||
-               ((started == STARTED_MOVES || started == STARTED_MOVES_NOHIDE)
-                && looking_at(buf, &i, "}*"))) { char *bookHit = NULL; // [HGM] book
-               if(soughtPending && nrOfSeekAds) { // [HGM] seekgraph: on ICC sought-list has no termination line
-                   soughtPending = FALSE;
-                   seekGraphUp = TRUE;
-                   DrawSeekGraph();
-               }
-               if(suppressKibitz) next_out = i;
-               savingComment = FALSE;
-               suppressKibitz = 0;
-               switch (started) {
-                 case STARTED_MOVES:
-                 case STARTED_MOVES_NOHIDE:
-                   memcpy(&parse[parse_pos], &buf[oldi], i - oldi);
-                   parse[parse_pos + i - oldi] = NULLCHAR;
-                   ParseGameHistory(parse);
-#if ZIPPY
-                   if (appData.zippyPlay && first.initDone) {
-                       FeedMovesToProgram(&first, forwardMostMove);
-                       if (gameMode == IcsPlayingWhite) {
-                           if (WhiteOnMove(forwardMostMove)) {
-                               if (first.sendTime) {
-                                 if (first.useColors) {
-                                   SendToProgram("black\n", &first);
-                                 }
-                                 SendTimeRemaining(&first, TRUE);
-                               }
-                               if (first.useColors) {
-                                 SendToProgram("white\n", &first); // [HGM] book: made sending of "go\n" book dependent
-                               }
-                               bookHit = SendMoveToBookUser(forwardMostMove-1, &first, TRUE); // [HGM] book: probe book for initial pos
-                               first.maybeThinking = TRUE;
-                           } else {
-                               if (first.usePlayother) {
-                                 if (first.sendTime) {
-                                   SendTimeRemaining(&first, TRUE);
-                                 }
-                                 SendToProgram("playother\n", &first);
-                                 firstMove = FALSE;
-                               } else {
-                                 firstMove = TRUE;
-                               }
-                           }
-                       } else if (gameMode == IcsPlayingBlack) {
-                           if (!WhiteOnMove(forwardMostMove)) {
-                               if (first.sendTime) {
-                                 if (first.useColors) {
-                                   SendToProgram("white\n", &first);
-                                 }
-                                 SendTimeRemaining(&first, FALSE);
-                               }
-                               if (first.useColors) {
-                                 SendToProgram("black\n", &first);
-                               }
-                               bookHit = SendMoveToBookUser(forwardMostMove-1, &first, TRUE);
-                               first.maybeThinking = TRUE;
-                           } else {
-                               if (first.usePlayother) {
-                                 if (first.sendTime) {
-                                   SendTimeRemaining(&first, FALSE);
-                                 }
-                                 SendToProgram("playother\n", &first);
-                                 firstMove = FALSE;
-                               } else {
-                                 firstMove = TRUE;
-                               }
-                           }
-                       }
-                   }
-#endif
-                   if (gameMode == IcsObserving && ics_gamenum == -1) {
-                       /* Moves came from oldmoves or moves command
-                          while we weren't doing anything else.
-                          */
-                       currentMove = forwardMostMove;
-                       ClearHighlights();/*!!could figure this out*/
-                       flipView = appData.flipView;
-                       DrawPosition(TRUE, boards[currentMove]);
-                       DisplayBothClocks();
-                       snprintf(str, MSG_SIZ, "%s %s %s",
-                               gameInfo.white, _("vs."),  gameInfo.black);
-                       DisplayTitle(str);
-                       gameMode = IcsIdle;
-                   } else {
-                       /* Moves were history of an active game */
-                       if (gameInfo.resultDetails != NULL) {
-                           free(gameInfo.resultDetails);
-                           gameInfo.resultDetails = NULL;
-                       }
-                   }
-                   HistorySet(parseList, backwardMostMove,
-                              forwardMostMove, currentMove-1);
-                   DisplayMove(currentMove - 1);
-                   if (started == STARTED_MOVES) next_out = i;
-                   started = STARTED_NONE;
-                   ics_getting_history = H_FALSE;
-                   break;
-
-                 case STARTED_OBSERVE:
-                   started = STARTED_NONE;
-                   SendToICS(ics_prefix);
-                   SendToICS("refresh\n");
-                   break;
-
-                 default:
-                   break;
-               }
-               if(bookHit) { // [HGM] book: simulate book reply
-                   static char bookMove[MSG_SIZ]; // a bit generous?
-
-                   programStats.nodes = programStats.depth = programStats.time =
-                   programStats.score = programStats.got_only_move = 0;
-                   sprintf(programStats.movelist, "%s (xbook)", bookHit);
-
-                   safeStrCpy(bookMove, "move ", sizeof(bookMove)/sizeof(bookMove[0]));
-                   strcat(bookMove, bookHit);
-                   HandleMachineMove(bookMove, &first);
-               }
-               continue;
-           }
-
-           if ((started == STARTED_MOVES || started == STARTED_BOARD ||
-                started == STARTED_HOLDINGS ||
-                started == STARTED_MOVES_NOHIDE) && i >= leftover_len) {
-               /* Accumulate characters in move list or board */
-               parse[parse_pos++] = buf[i];
-           }
-
-           /* Start of game messages.  Mostly we detect start of game
-              when the first board image arrives.  On some versions
-              of the ICS, though, we need to do a "refresh" after starting
-              to observe in order to get the current board right away. */
-           if (looking_at(buf, &i, "Adding game * to observation list")) {
-               started = STARTED_OBSERVE;
-               continue;
-           }
-
-           /* Handle auto-observe */
-           if (appData.autoObserve &&
-               (gameMode == IcsIdle || gameMode == BeginningOfGame) &&
-               looking_at(buf, &i, "Game notification: * (*) vs. * (*)")) {
-               char *player;
-               /* Choose the player that was highlighted, if any. */
-               if (star_match[0][0] == '\033' ||
-                   star_match[1][0] != '\033') {
-                   player = star_match[0];
-               } else {
-                   player = star_match[2];
-               }
-               snprintf(str, MSG_SIZ, "%sobserve %s\n",
-                       ics_prefix, StripHighlightAndTitle(player));
-               SendToICS(str);
-
-               /* Save ratings from notify string */
-               safeStrCpy(player1Name, star_match[0], sizeof(player1Name)/sizeof(player1Name[0]));
-               player1Rating = string_to_rating(star_match[1]);
-               safeStrCpy(player2Name, star_match[2], sizeof(player2Name)/sizeof(player2Name[0]));
-               player2Rating = string_to_rating(star_match[3]);
-
-               if (appData.debugMode)
-                 fprintf(debugFP,
-                         "Ratings from 'Game notification:' %s %d, %s %d\n",
-                         player1Name, player1Rating,
-                         player2Name, player2Rating);
-
-               continue;
-           }
-
-           /* Deal with automatic examine mode after a game,
-              and with IcsObserving -> IcsExamining transition */
-           if (looking_at(buf, &i, "Entering examine mode for game *") ||
-               looking_at(buf, &i, "has made you an examiner of game *")) {
-
-               int gamenum = atoi(star_match[0]);
-               if ((gameMode == IcsIdle || gameMode == IcsObserving) &&
-                   gamenum == ics_gamenum) {
-                   /* We were already playing or observing this game;
-                      no need to refetch history */
-                   gameMode = IcsExamining;
-                   if (pausing) {
-                       pauseExamForwardMostMove = forwardMostMove;
-                   } else if (currentMove < forwardMostMove) {
-                       ForwardInner(forwardMostMove);
-                   }
-               } else {
-                   /* I don't think this case really can happen */
-                   SendToICS(ics_prefix);
-                   SendToICS("refresh\n");
-               }
-               continue;
-           }
-
-           /* Error messages */
-//         if (ics_user_moved) {
-           if (1) { // [HGM] old way ignored error after move type in; ics_user_moved is not set then!
-               if (looking_at(buf, &i, "Illegal move") ||
-                   looking_at(buf, &i, "Not a legal move") ||
-                   looking_at(buf, &i, "Your king is in check") ||
-                   looking_at(buf, &i, "It isn't your turn") ||
-                   looking_at(buf, &i, "It is not your move")) {
-                   /* Illegal move */
-                   if (ics_user_moved && forwardMostMove > backwardMostMove) { // only backup if we already moved
-                       currentMove = forwardMostMove-1;
-                       DisplayMove(currentMove - 1); /* before DMError */
-                       DrawPosition(FALSE, boards[currentMove]);
-                       SwitchClocks(forwardMostMove-1); // [HGM] race
-                       DisplayBothClocks();
-                   }
-                   DisplayMoveError(_("Illegal move (rejected by ICS)")); // [HGM] but always relay error msg
-                   ics_user_moved = 0;
-                   continue;
-               }
-           }
-
-           if (looking_at(buf, &i, "still have time") ||
-               looking_at(buf, &i, "not out of time") ||
-               looking_at(buf, &i, "either player is out of time") ||
-               looking_at(buf, &i, "has timeseal; checking")) {
-               /* We must have called his flag a little too soon */
-               whiteFlag = blackFlag = FALSE;
-               continue;
-           }
-
-           if (looking_at(buf, &i, "added * seconds to") ||
-               looking_at(buf, &i, "seconds were added to")) {
-               /* Update the clocks */
-               SendToICS(ics_prefix);
-               SendToICS("refresh\n");
-               continue;
-           }
-
-           if (!ics_clock_paused && looking_at(buf, &i, "clock paused")) {
-               ics_clock_paused = TRUE;
-               StopClocks();
-               continue;
-           }
-
-           if (ics_clock_paused && looking_at(buf, &i, "clock resumed")) {
-               ics_clock_paused = FALSE;
-               StartClocks();
-               continue;
-           }
-
-           /* Grab player ratings from the Creating: message.
-              Note we have to check for the special case when
-              the ICS inserts things like [white] or [black]. */
-           if (looking_at(buf, &i, "Creating: * (*)* * (*)") ||
-               looking_at(buf, &i, "Creating: * (*) [*] * (*)")) {
-               /* star_matches:
-                  0    player 1 name (not necessarily white)
-                  1    player 1 rating
-                  2    empty, white, or black (IGNORED)
-                  3    player 2 name (not necessarily black)
-                  4    player 2 rating
-
-                  The names/ratings are sorted out when the game
-                  actually starts (below).
-               */
-               safeStrCpy(player1Name, StripHighlightAndTitle(star_match[0]), sizeof(player1Name)/sizeof(player1Name[0]));
-               player1Rating = string_to_rating(star_match[1]);
-               safeStrCpy(player2Name, StripHighlightAndTitle(star_match[3]), sizeof(player2Name)/sizeof(player2Name[0]));
-               player2Rating = string_to_rating(star_match[4]);
-
-               if (appData.debugMode)
-                 fprintf(debugFP,
-                         "Ratings from 'Creating:' %s %d, %s %d\n",
-                         player1Name, player1Rating,
-                         player2Name, player2Rating);
-
-               continue;
-           }
-
-           /* Improved generic start/end-of-game messages */
-           if ((tkind=0, looking_at(buf, &i, "{Game * (* vs. *) *}*")) ||
-               (tkind=1, looking_at(buf, &i, "{Game * (*(*) vs. *(*)) *}*"))){
-               /* If tkind == 0: */
-               /* star_match[0] is the game number */
-               /*           [1] is the white player's name */
-               /*           [2] is the black player's name */
-               /* For end-of-game: */
-               /*           [3] is the reason for the game end */
-               /*           [4] is a PGN end game-token, preceded by " " */
-               /* For start-of-game: */
-               /*           [3] begins with "Creating" or "Continuing" */
-               /*           [4] is " *" or empty (don't care). */
-               int gamenum = atoi(star_match[0]);
-               char *whitename, *blackname, *why, *endtoken;
-               ChessMove endtype = EndOfFile;
-
-               if (tkind == 0) {
-                 whitename = star_match[1];
-                 blackname = star_match[2];
-                 why = star_match[3];
-                 endtoken = star_match[4];
-               } else {
-                 whitename = star_match[1];
-                 blackname = star_match[3];
-                 why = star_match[5];
-                 endtoken = star_match[6];
-               }
-
-                /* Game start messages */
-               if (strncmp(why, "Creating ", 9) == 0 ||
-                   strncmp(why, "Continuing ", 11) == 0) {
-                   gs_gamenum = gamenum;
-                   safeStrCpy(gs_kind, strchr(why, ' ') + 1,sizeof(gs_kind)/sizeof(gs_kind[0]));
-                   if(ics_gamenum == -1) // [HGM] only if we are not already involved in a game (because gin=1 sends us such messages)
-                   VariantSwitch(boards[currentMove], StringToVariant(gs_kind)); // [HGM] variantswitch: even before we get first board
-#if ZIPPY
-                   if (appData.zippyPlay) {
-                       ZippyGameStart(whitename, blackname);
-                   }
-#endif /*ZIPPY*/
-                   partnerBoardValid = FALSE; // [HGM] bughouse
-                   continue;
-               }
-
-               /* Game end messages */
-               if (gameMode == IcsIdle || gameMode == BeginningOfGame ||
-                   ics_gamenum != gamenum) {
-                   continue;
-               }
-               while (endtoken[0] == ' ') endtoken++;
-               switch (endtoken[0]) {
-                 case '*':
-                 default:
-                   endtype = GameUnfinished;
-                   break;
-                 case '0':
-                   endtype = BlackWins;
-                   break;
-                 case '1':
-                   if (endtoken[1] == '/')
-                     endtype = GameIsDrawn;
-                   else
-                     endtype = WhiteWins;
-                   break;
-               }
-               GameEnds(endtype, why, GE_ICS);
-#if ZIPPY
-               if (appData.zippyPlay && first.initDone) {
-                   ZippyGameEnd(endtype, why);
-                   if (first.pr == NoProc) {
-                     /* Start the next process early so that we'll
-                        be ready for the next challenge */
-                     StartChessProgram(&first);
-                   }
-                   /* Send "new" early, in case this command takes
-                      a long time to finish, so that we'll be ready
-                      for the next challenge. */
-                   gameInfo.variant = VariantNormal; // [HGM] variantswitch: suppress sending of 'variant'
-                   Reset(TRUE, TRUE);
-               }
-#endif /*ZIPPY*/
-               if(appData.bgObserve && partnerBoardValid) DrawPosition(TRUE, partnerBoard);
-               continue;
-           }
-
-           if (looking_at(buf, &i, "Removing game * from observation") ||
-               looking_at(buf, &i, "no longer observing game *") ||
-               looking_at(buf, &i, "Game * (*) has no examiners")) {
-               if (gameMode == IcsObserving &&
-                   atoi(star_match[0]) == ics_gamenum)
-                 {
-                      /* icsEngineAnalyze */
-                      if (appData.icsEngineAnalyze) {
-                            ExitAnalyzeMode();
-                            ModeHighlight();
-                      }
-                     StopClocks();
-                     gameMode = IcsIdle;
-                     ics_gamenum = -1;
-                     ics_user_moved = FALSE;
-                 }
-               continue;
-           }
-
-           if (looking_at(buf, &i, "no longer examining game *")) {
-               if (gameMode == IcsExamining &&
-                   atoi(star_match[0]) == ics_gamenum)
-                 {
-                     gameMode = IcsIdle;
-                     ics_gamenum = -1;
-                     ics_user_moved = FALSE;
-                 }
-               continue;
-           }
-
-           /* Advance leftover_start past any newlines we find,
-              so only partial lines can get reparsed */
-           if (looking_at(buf, &i, "\n")) {
-               prevColor = curColor;
-               if (curColor != ColorNormal) {
-                   if (oldi > next_out) {
-                       SendToPlayer(&buf[next_out], oldi - next_out);
-                       next_out = oldi;
-                   }
-                   Colorize(ColorNormal, FALSE);
-                   curColor = ColorNormal;
-               }
-               if (started == STARTED_BOARD) {
-                   started = STARTED_NONE;
-                   parse[parse_pos] = NULLCHAR;
-                   ParseBoard12(parse);
-                   ics_user_moved = 0;
-
-                   /* Send premove here */
-                   if (appData.premove) {
-                     char str[MSG_SIZ];
-                     if (currentMove == 0 &&
-                         gameMode == IcsPlayingWhite &&
-                         appData.premoveWhite) {
-                       snprintf(str, MSG_SIZ, "%s\n", appData.premoveWhiteText);
-                       if (appData.debugMode)
-                         fprintf(debugFP, "Sending premove:\n");
-                       SendToICS(str);
-                     } else if (currentMove == 1 &&
-                                gameMode == IcsPlayingBlack &&
-                                appData.premoveBlack) {
-                       snprintf(str, MSG_SIZ, "%s\n", appData.premoveBlackText);
-                       if (appData.debugMode)
-                         fprintf(debugFP, "Sending premove:\n");
-                       SendToICS(str);
-                     } else if (gotPremove) {
-                       int oldFMM = forwardMostMove;
-                       gotPremove = 0;
-                       ClearPremoveHighlights();
-                       if (appData.debugMode)
-                         fprintf(debugFP, "Sending premove:\n");
-                          UserMoveEvent(premoveFromX, premoveFromY,
-                                       premoveToX, premoveToY,
-                                        premovePromoChar);
-                       if(forwardMostMove == oldFMM) { // premove was rejected, highlight last opponent move
-                         if(moveList[oldFMM-1][1] != '@')
-                           SetHighlights(moveList[oldFMM-1][0]-AAA, moveList[oldFMM-1][1]-ONE,
-                                         moveList[oldFMM-1][2]-AAA, moveList[oldFMM-1][3]-ONE);
-                         else // (drop)
-                           SetHighlights(-1, -1, moveList[oldFMM-1][2]-AAA, moveList[oldFMM-1][3]-ONE);
-                       }
-                     }
-                   }
-
-                   /* Usually suppress following prompt */
-                   if (!(forwardMostMove == 0 && gameMode == IcsExamining)) {
-                       while(looking_at(buf, &i, "\n")); // [HGM] skip empty lines
-                       if (looking_at(buf, &i, "*% ")) {
-                           savingComment = FALSE;
-                           suppressKibitz = 0;
-                       }
-                   }
-                   next_out = i;
-               } else if (started == STARTED_HOLDINGS) {
-                   int gamenum;
-                   char new_piece[MSG_SIZ];
-                   started = STARTED_NONE;
-                   parse[parse_pos] = NULLCHAR;
-                   if (appData.debugMode)
-                      fprintf(debugFP, "Parsing holdings: %s, currentMove = %d\n",
-                                                        parse, currentMove);
-                   if (sscanf(parse, " game %d", &gamenum) == 1) {
-                     if(gamenum == ics_gamenum) { // [HGM] bughouse: old code if part of foreground game
-                       if (gameInfo.variant == VariantNormal) {
-                          /* [HGM] We seem to switch variant during a game!
-                           * Presumably no holdings were displayed, so we have
-                           * to move the position two files to the right to
-                           * create room for them!
-                           */
-                         VariantClass newVariant;
-                         switch(gameInfo.boardWidth) { // base guess on board width
-                               case 9:  newVariant = VariantShogi; break;
-                               case 10: newVariant = VariantGreat; break;
-                               default: newVariant = VariantCrazyhouse; break;
-                         }
-                          VariantSwitch(boards[currentMove], newVariant); /* temp guess */
-                         /* Get a move list just to see the header, which
-                            will tell us whether this is really bug or zh */
-                         if (ics_getting_history == H_FALSE) {
-                           ics_getting_history = H_REQUESTED;
-                           snprintf(str, MSG_SIZ, "%smoves %d\n", ics_prefix, gamenum);
-                           SendToICS(str);
-                         }
-                       }
-                       new_piece[0] = NULLCHAR;
-                       sscanf(parse, "game %d white [%s black [%s <- %s",
-                              &gamenum, white_holding, black_holding,
-                              new_piece);
-                        white_holding[strlen(white_holding)-1] = NULLCHAR;
-                        black_holding[strlen(black_holding)-1] = NULLCHAR;
-                        /* [HGM] copy holdings to board holdings area */
-                        CopyHoldings(boards[forwardMostMove], white_holding, WhitePawn);
-                        CopyHoldings(boards[forwardMostMove], black_holding, BlackPawn);
-                        boards[forwardMostMove][HOLDINGS_SET] = 1; // flag holdings as set
-#if ZIPPY
-                       if (appData.zippyPlay && first.initDone) {
-                           ZippyHoldings(white_holding, black_holding,
-                                         new_piece);
-                       }
-#endif /*ZIPPY*/
-                       if (tinyLayout || smallLayout) {
-                           char wh[16], bh[16];
-                           PackHolding(wh, white_holding);
-                           PackHolding(bh, black_holding);
-                           snprintf(str, MSG_SIZ, "[%s-%s] %s-%s", wh, bh,
-                                   gameInfo.white, gameInfo.black);
-                       } else {
-                         snprintf(str, MSG_SIZ, "%s [%s] %s %s [%s]",
-                                   gameInfo.white, white_holding, _("vs."),
-                                   gameInfo.black, black_holding);
-                       }
-                       if(!partnerUp) // [HGM] bughouse: when peeking at partner game we already know what he captured...
-                        DrawPosition(FALSE, boards[currentMove]);
-                       DisplayTitle(str);
-                     } else if(appData.bgObserve) { // [HGM] bughouse: holdings of other game => background
-                       sscanf(parse, "game %d white [%s black [%s <- %s",
-                              &gamenum, white_holding, black_holding,
-                              new_piece);
-                        white_holding[strlen(white_holding)-1] = NULLCHAR;
-                        black_holding[strlen(black_holding)-1] = NULLCHAR;
-                        /* [HGM] copy holdings to partner-board holdings area */
-                        CopyHoldings(partnerBoard, white_holding, WhitePawn);
-                        CopyHoldings(partnerBoard, black_holding, BlackPawn);
-                        if(twoBoards) { partnerUp = 1; flipView = !flipView; } // [HGM] dual: always draw
-                        if(partnerUp) DrawPosition(FALSE, partnerBoard);
-                        if(twoBoards) { partnerUp = 0; flipView = !flipView; }
-                     }
-                   }
-                   /* Suppress following prompt */
-                   if (looking_at(buf, &i, "*% ")) {
-                       if(strchr(star_match[0], 7)) SendToPlayer("\007", 1); // Bell(); // FICS fuses bell for next board with prompt in zh captures
-                       savingComment = FALSE;
-                       suppressKibitz = 0;
-                   }
-                   next_out = i;
-               }
-               continue;
-           }
-
-           i++;                /* skip unparsed character and loop back */
-       }
-
-       if (started != STARTED_MOVES && started != STARTED_BOARD && !suppressKibitz && // [HGM] kibitz
-//         started != STARTED_HOLDINGS && i > next_out) { // [HGM] should we compare to leftover_start in stead of i?
-//         SendToPlayer(&buf[next_out], i - next_out);
-           started != STARTED_HOLDINGS && leftover_start > next_out) {
-           SendToPlayer(&buf[next_out], leftover_start - next_out);
-           next_out = i;
-       }
-
-       leftover_len = buf_len - leftover_start;
-       /* if buffer ends with something we couldn't parse,
-          reparse it after appending the next read */
-
-    } else if (count == 0) {
-       RemoveInputSource(isr);
-        DisplayFatalError(_("Connection closed by ICS"), 0, 0);
-    } else {
-       DisplayFatalError(_("Error reading from ICS"), error, 1);
-    }
-}
-
-
-/* Board style 12 looks like this:
-
-   <12> r-b---k- pp----pp ---bP--- ---p---- q------- ------P- P--Q--BP -----R-K W -1 0 0 0 0 0 0 paf MaxII 0 2 12 21 25 234 174 24 Q/d7-a4 (0:06) Qxa4 0 0
-
- * The "<12> " is stripped before it gets to this routine.  The two
- * trailing 0's (flip state and clock ticking) are later addition, and
- * some chess servers may not have them, or may have only the first.
- * Additional trailing fields may be added in the future.
- */
-
-#define PATTERN "%c%d%d%d%d%d%d%d%s%s%d%d%d%d%d%d%d%d%s%s%s%d%d"
-
-#define RELATION_OBSERVING_PLAYED    0
-#define RELATION_OBSERVING_STATIC   -2   /* examined, oldmoves, or smoves */
-#define RELATION_PLAYING_MYMOVE      1
-#define RELATION_PLAYING_NOTMYMOVE  -1
-#define RELATION_EXAMINING           2
-#define RELATION_ISOLATED_BOARD     -3
-#define RELATION_STARTING_POSITION  -4   /* FICS only */
-
-void
-ParseBoard12 (char *string)
-{
-#if ZIPPY
-    int i, takeback;
-    char *bookHit = NULL; // [HGM] book
-#endif
-    GameMode newGameMode;
-    int gamenum, newGame, newMove, relation, basetime, increment, ics_flip = 0;
-    int j, k, n, moveNum, white_stren, black_stren, white_time, black_time;
-    int double_push, castle_ws, castle_wl, castle_bs, castle_bl, irrev_count;
-    char to_play, board_chars[200];
-    char move_str[MSG_SIZ], str[MSG_SIZ], elapsed_time[MSG_SIZ];
-    char black[32], white[32];
-    Board board;
-    int prevMove = currentMove;
-    int ticking = 2;
-    ChessMove moveType;
-    int fromX, fromY, toX, toY;
-    char promoChar;
-    int ranks=1, files=0; /* [HGM] ICS80: allow variable board size */
-    Boolean weird = FALSE, reqFlag = FALSE;
-
-    fromX = fromY = toX = toY = -1;
-
-    newGame = FALSE;
-
-    if (appData.debugMode)
-      fprintf(debugFP, "Parsing board: %s\n", string);
-
-    move_str[0] = NULLCHAR;
-    elapsed_time[0] = NULLCHAR;
-    {   /* [HGM] figure out how many ranks and files the board has, for ICS extension used by Capablanca server */
-        int  i = 0, j;
-        while(i < 199 && (string[i] != ' ' || string[i+2] != ' ')) {
-           if(string[i] == ' ') { ranks++; files = 0; }
-            else files++;
-           if(!strchr(" -pnbrqkPNBRQK" , string[i])) weird = TRUE; // test for fairies
-           i++;
-       }
-       for(j = 0; j <i; j++) board_chars[j] = string[j];
-        board_chars[i] = '\0';
-       string += i + 1;
-    }
-    n = sscanf(string, PATTERN, &to_play, &double_push,
-              &castle_ws, &castle_wl, &castle_bs, &castle_bl, &irrev_count,
-              &gamenum, white, black, &relation, &basetime, &increment,
-              &white_stren, &black_stren, &white_time, &black_time,
-              &moveNum, str, elapsed_time, move_str, &ics_flip,
-              &ticking);
-
-    if (n < 21) {
-        snprintf(str, MSG_SIZ, _("Failed to parse board string:\n\"%s\""), string);
-       DisplayError(str, 0);
-       return;
-    }
-
-    /* Convert the move number to internal form */
-    moveNum = (moveNum - 1) * 2;
-    if (to_play == 'B') moveNum++;
-    if (moveNum > framePtr) { // [HGM] vari: do not run into saved variations
-      DisplayFatalError(_("Game too long; increase MAX_MOVES and recompile"),
-                       0, 1);
-      return;
-    }
-
-    switch (relation) {
-      case RELATION_OBSERVING_PLAYED:
-      case RELATION_OBSERVING_STATIC:
-       if (gamenum == -1) {
-           /* Old ICC buglet */
-           relation = RELATION_OBSERVING_STATIC;
-       }
-       newGameMode = IcsObserving;
-       break;
-      case RELATION_PLAYING_MYMOVE:
-      case RELATION_PLAYING_NOTMYMOVE:
-       newGameMode =
-         ((relation == RELATION_PLAYING_MYMOVE) == (to_play == 'W')) ?
-           IcsPlayingWhite : IcsPlayingBlack;
-       soughtPending =FALSE; // [HGM] seekgraph: solve race condition
-       break;
-      case RELATION_EXAMINING:
-       newGameMode = IcsExamining;
-       break;
-      case RELATION_ISOLATED_BOARD:
-      default:
-       /* Just display this board.  If user was doing something else,
-          we will forget about it until the next board comes. */
-       newGameMode = IcsIdle;
-       break;
-      case RELATION_STARTING_POSITION:
-       newGameMode = gameMode;
-       break;
-    }
-
-    if((gameMode == IcsPlayingWhite || gameMode == IcsPlayingBlack ||
-       gameMode == IcsObserving && appData.dualBoard) // also allow use of second board for observing two games
-        && newGameMode == IcsObserving && gamenum != ics_gamenum && appData.bgObserve) {
-      // [HGM] bughouse: don't act on alien boards while we play. Just parse the board and save it */
-      int fac = strchr(elapsed_time, '.') ? 1 : 1000;
-      static int lastBgGame = -1;
-      char *toSqr;
-      for (k = 0; k < ranks; k++) {
-        for (j = 0; j < files; j++)
-          board[k][j+gameInfo.holdingsWidth] = CharToPiece(board_chars[(ranks-1-k)*(files+1) + j]);
-        if(gameInfo.holdingsWidth > 1) {
-             board[k][0] = board[k][BOARD_WIDTH-1] = EmptySquare;
-             board[k][1] = board[k][BOARD_WIDTH-2] = (ChessSquare) 0;;
-        }
-      }
-      CopyBoard(partnerBoard, board);
-      if(toSqr = strchr(str, '/')) { // extract highlights from long move
-        partnerBoard[EP_STATUS-3] = toSqr[1] - AAA; // kludge: hide highlighting info in board
-        partnerBoard[EP_STATUS-4] = toSqr[2] - ONE;
-      } else partnerBoard[EP_STATUS-4] = partnerBoard[EP_STATUS-3] = -1;
-      if(toSqr = strchr(str, '-')) {
-        partnerBoard[EP_STATUS-1] = toSqr[1] - AAA;
-        partnerBoard[EP_STATUS-2] = toSqr[2] - ONE;
-      } else partnerBoard[EP_STATUS-1] = partnerBoard[EP_STATUS-2] = -1;
-      if(appData.dualBoard && !twoBoards) { twoBoards = 1; InitDrawingSizes(-2,0); }
-      if(twoBoards) { partnerUp = 1; flipView = !flipView; } // [HGM] dual
-      if(partnerUp) DrawPosition(FALSE, partnerBoard);
-      if(twoBoards) {
-         DisplayWhiteClock(white_time*fac, to_play == 'W');
-         DisplayBlackClock(black_time*fac, to_play != 'W');
-         activePartner = to_play;
-         if(gamenum != lastBgGame) {
-             char buf[MSG_SIZ];
-             snprintf(buf, MSG_SIZ, "%s %s %s", white, _("vs."), black);
-             DisplayTitle(buf);
-         }
-         lastBgGame = gamenum;
-         activePartnerTime = to_play == 'W' ? white_time*fac : black_time*fac;
-                     partnerUp = 0; flipView = !flipView; } // [HGM] dual
-      snprintf(partnerStatus, MSG_SIZ,"W: %d:%02d B: %d:%02d (%d-%d) %c", white_time*fac/60000, (white_time*fac%60000)/1000,
-                (black_time*fac/60000), (black_time*fac%60000)/1000, white_stren, black_stren, to_play);
-      if(!twoBoards) DisplayMessage(partnerStatus, "");
-       partnerBoardValid = TRUE;
-      return;
-    }
-
-    if(appData.dualBoard && appData.bgObserve) {
-       if((newGameMode == IcsPlayingWhite || newGameMode == IcsPlayingBlack) && moveNum == 1)
-           SendToICS(ics_prefix), SendToICS("pobserve\n");
-       else if(newGameMode == IcsObserving && (gameMode == BeginningOfGame || gameMode == IcsIdle)) {
-           char buf[MSG_SIZ];
-           snprintf(buf, MSG_SIZ, "%spobserve %s\n", ics_prefix, white);
-           SendToICS(buf);
-       }
-    }
-
-    /* Modify behavior for initial board display on move listing
-       of wild games.
-       */
-    switch (ics_getting_history) {
-      case H_FALSE:
-      case H_REQUESTED:
-       break;
-      case H_GOT_REQ_HEADER:
-      case H_GOT_UNREQ_HEADER:
-       /* This is the initial position of the current game */
-       gamenum = ics_gamenum;
-       moveNum = 0;            /* old ICS bug workaround */
-       if (to_play == 'B') {
-         startedFromSetupPosition = TRUE;
-         blackPlaysFirst = TRUE;
-         moveNum = 1;
-         if (forwardMostMove == 0) forwardMostMove = 1;
-         if (backwardMostMove == 0) backwardMostMove = 1;
-         if (currentMove == 0) currentMove = 1;
-       }
-       newGameMode = gameMode;
-       relation = RELATION_STARTING_POSITION; /* ICC needs this */
-       break;
-      case H_GOT_UNWANTED_HEADER:
-       /* This is an initial board that we don't want */
-       return;
-      case H_GETTING_MOVES:
-       /* Should not happen */
-       DisplayError(_("Error gathering move list: extra board"), 0);
-       ics_getting_history = H_FALSE;
-       return;
-    }
-
-   if (gameInfo.boardHeight != ranks || gameInfo.boardWidth != files ||
-                                       move_str[1] == '@' && !gameInfo.holdingsWidth ||
-                                       weird && (int)gameInfo.variant < (int)VariantShogi) {
-     /* [HGM] We seem to have switched variant unexpectedly
-      * Try to guess new variant from board size
-      */
-         VariantClass newVariant = VariantFairy; // if 8x8, but fairies present
-         if(ranks == 8 && files == 10) newVariant = VariantCapablanca; else
-         if(ranks == 10 && files == 9) newVariant = VariantXiangqi; else
-         if(ranks == 8 && files == 12) newVariant = VariantCourier; else
-         if(ranks == 9 && files == 9)  newVariant = VariantShogi; else
-         if(ranks == 10 && files == 10) newVariant = VariantGrand; else
-         if(!weird) newVariant = move_str[1] == '@' ? VariantCrazyhouse : VariantNormal;
-          VariantSwitch(boards[currentMove], newVariant); /* temp guess */
-         /* Get a move list just to see the header, which
-            will tell us whether this is really bug or zh */
-         if (ics_getting_history == H_FALSE) {
-           ics_getting_history = H_REQUESTED; reqFlag = TRUE;
-           snprintf(str, MSG_SIZ, "%smoves %d\n", ics_prefix, gamenum);
-           SendToICS(str);
-         }
-    }
-
-    /* Take action if this is the first board of a new game, or of a
-       different game than is currently being displayed.  */
-    if (gamenum != ics_gamenum || newGameMode != gameMode ||
-       relation == RELATION_ISOLATED_BOARD) {
-
-       /* Forget the old game and get the history (if any) of the new one */
-       if (gameMode != BeginningOfGame) {
-         Reset(TRUE, TRUE);
-       }
-       newGame = TRUE;
-       if (appData.autoRaiseBoard) BoardToTop();
-       prevMove = -3;
-       if (gamenum == -1) {
-           newGameMode = IcsIdle;
-       } else if ((moveNum > 0 || newGameMode == IcsObserving) && newGameMode != IcsIdle &&
-                  appData.getMoveList && !reqFlag) {
-           /* Need to get game history */
-           ics_getting_history = H_REQUESTED;
-           snprintf(str, MSG_SIZ, "%smoves %d\n", ics_prefix, gamenum);
-           SendToICS(str);
-       }
-
-       /* Initially flip the board to have black on the bottom if playing
-          black or if the ICS flip flag is set, but let the user change
-          it with the Flip View button. */
-       flipView = appData.autoFlipView ?
-         (newGameMode == IcsPlayingBlack) || ics_flip :
-         appData.flipView;
-
-       /* Done with values from previous mode; copy in new ones */
-       gameMode = newGameMode;
-       ModeHighlight();
-       ics_gamenum = gamenum;
-       if (gamenum == gs_gamenum) {
-           int klen = strlen(gs_kind);
-           if (gs_kind[klen - 1] == '.') gs_kind[klen - 1] = NULLCHAR;
-           snprintf(str, MSG_SIZ, "ICS %s", gs_kind);
-           gameInfo.event = StrSave(str);
-       } else {
-           gameInfo.event = StrSave("ICS game");
-       }
-       gameInfo.site = StrSave(appData.icsHost);
-       gameInfo.date = PGNDate();
-       gameInfo.round = StrSave("-");
-       gameInfo.white = StrSave(white);
-       gameInfo.black = StrSave(black);
-       timeControl = basetime * 60 * 1000;
-        timeControl_2 = 0;
-       timeIncrement = increment * 1000;
-       movesPerSession = 0;
-       gameInfo.timeControl = TimeControlTagValue();
-        VariantSwitch(boards[currentMove], StringToVariant(gameInfo.event) );
-  if (appData.debugMode) {
-    fprintf(debugFP, "ParseBoard says variant = '%s'\n", gameInfo.event);
-    fprintf(debugFP, "recognized as %s\n", VariantName(gameInfo.variant));
-    setbuf(debugFP, NULL);
-  }
-
-        gameInfo.outOfBook = NULL;
-
-       /* Do we have the ratings? */
-       if (strcmp(player1Name, white) == 0 &&
-           strcmp(player2Name, black) == 0) {
-           if (appData.debugMode)
-             fprintf(debugFP, "Remembered ratings: W %d, B %d\n",
-                     player1Rating, player2Rating);
-           gameInfo.whiteRating = player1Rating;
-           gameInfo.blackRating = player2Rating;
-       } else if (strcmp(player2Name, white) == 0 &&
-                  strcmp(player1Name, black) == 0) {
-           if (appData.debugMode)
-             fprintf(debugFP, "Remembered ratings: W %d, B %d\n",
-                     player2Rating, player1Rating);
-           gameInfo.whiteRating = player2Rating;
-           gameInfo.blackRating = player1Rating;
-       }
-       player1Name[0] = player2Name[0] = NULLCHAR;
-
-       /* Silence shouts if requested */
-       if (appData.quietPlay &&
-           (gameMode == IcsPlayingWhite || gameMode == IcsPlayingBlack)) {
-           SendToICS(ics_prefix);
-           SendToICS("set shout 0\n");
-       }
-    }
-
-    /* Deal with midgame name changes */
-    if (!newGame) {
-       if (!gameInfo.white || strcmp(gameInfo.white, white) != 0) {
-           if (gameInfo.white) free(gameInfo.white);
-           gameInfo.white = StrSave(white);
-       }
-       if (!gameInfo.black || strcmp(gameInfo.black, black) != 0) {
-           if (gameInfo.black) free(gameInfo.black);
-           gameInfo.black = StrSave(black);
-       }
-    }
-
-    /* Throw away game result if anything actually changes in examine mode */
-    if (gameMode == IcsExamining && !newGame) {
-       gameInfo.result = GameUnfinished;
-       if (gameInfo.resultDetails != NULL) {
-           free(gameInfo.resultDetails);
-           gameInfo.resultDetails = NULL;
-       }
-    }
-
-    /* In pausing && IcsExamining mode, we ignore boards coming
-       in if they are in a different variation than we are. */
-    if (pauseExamInvalid) return;
-    if (pausing && gameMode == IcsExamining) {
-       if (moveNum <= pauseExamForwardMostMove) {
-           pauseExamInvalid = TRUE;
-           forwardMostMove = pauseExamForwardMostMove;
-           return;
-       }
-    }
-
-  if (appData.debugMode) {
-    fprintf(debugFP, "load %dx%d board\n", files, ranks);
-  }
-    /* Parse the board */
-    for (k = 0; k < ranks; k++) {
-      for (j = 0; j < files; j++)
-        board[k][j+gameInfo.holdingsWidth] = CharToPiece(board_chars[(ranks-1-k)*(files+1) + j]);
-      if(gameInfo.holdingsWidth > 1) {
-           board[k][0] = board[k][BOARD_WIDTH-1] = EmptySquare;
-           board[k][1] = board[k][BOARD_WIDTH-2] = (ChessSquare) 0;;
-      }
-    }
-    if(moveNum==0 && gameInfo.variant == VariantSChess) {
-      board[5][BOARD_RGHT+1] = WhiteAngel;
-      board[6][BOARD_RGHT+1] = WhiteMarshall;
-      board[1][0] = BlackMarshall;
-      board[2][0] = BlackAngel;
-      board[1][1] = board[2][1] = board[5][BOARD_RGHT] = board[6][BOARD_RGHT] = 1;
-    }
-    CopyBoard(boards[moveNum], board);
-    boards[moveNum][HOLDINGS_SET] = 0; // [HGM] indicate holdings not set
-    if (moveNum == 0) {
-       startedFromSetupPosition =
-         !CompareBoards(board, initialPosition);
-        if(startedFromSetupPosition)
-            initialRulePlies = irrev_count; /* [HGM] 50-move counter offset */
-    }
-
-    /* [HGM] Set castling rights. Take the outermost Rooks,
-       to make it also work for FRC opening positions. Note that board12
-       is really defective for later FRC positions, as it has no way to
-       indicate which Rook can castle if they are on the same side of King.
-       For the initial position we grant rights to the outermost Rooks,
-       and remember thos rights, and we then copy them on positions
-       later in an FRC game. This means WB might not recognize castlings with
-       Rooks that have moved back to their original position as illegal,
-       but in ICS mode that is not its job anyway.
-    */
-    if(moveNum == 0 || gameInfo.variant != VariantFischeRandom)
-    { int i, j; ChessSquare wKing = WhiteKing, bKing = BlackKing;
-
-        for(i=BOARD_LEFT, j=NoRights; i<BOARD_RGHT; i++)
-            if(board[0][i] == WhiteRook) j = i;
-        initialRights[0] = boards[moveNum][CASTLING][0] = (castle_ws == 0 && gameInfo.variant != VariantFischeRandom ? NoRights : j);
-        for(i=BOARD_RGHT-1, j=NoRights; i>=BOARD_LEFT; i--)
-            if(board[0][i] == WhiteRook) j = i;
-        initialRights[1] = boards[moveNum][CASTLING][1] = (castle_wl == 0 && gameInfo.variant != VariantFischeRandom ? NoRights : j);
-        for(i=BOARD_LEFT, j=NoRights; i<BOARD_RGHT; i++)
-            if(board[BOARD_HEIGHT-1][i] == BlackRook) j = i;
-        initialRights[3] = boards[moveNum][CASTLING][3] = (castle_bs == 0 && gameInfo.variant != VariantFischeRandom ? NoRights : j);
-        for(i=BOARD_RGHT-1, j=NoRights; i>=BOARD_LEFT; i--)
-            if(board[BOARD_HEIGHT-1][i] == BlackRook) j = i;
-        initialRights[4] = boards[moveNum][CASTLING][4] = (castle_bl == 0 && gameInfo.variant != VariantFischeRandom ? NoRights : j);
-
-       boards[moveNum][CASTLING][2] = boards[moveNum][CASTLING][5] = NoRights;
-       if(gameInfo.variant == VariantKnightmate) { wKing = WhiteUnicorn; bKing = BlackUnicorn; }
-        for(k=BOARD_LEFT; k<BOARD_RGHT; k++)
-            if(board[0][k] == wKing) initialRights[2] = boards[moveNum][CASTLING][2] = k;
-        for(k=BOARD_LEFT; k<BOARD_RGHT; k++)
-            if(board[BOARD_HEIGHT-1][k] == bKing)
-                initialRights[5] = boards[moveNum][CASTLING][5] = k;
-        if(gameInfo.variant == VariantTwoKings) {
-            // In TwoKings looking for a King does not work, so always give castling rights to a King on e1/e8
-            if(board[0][4] == wKing) initialRights[2] = boards[moveNum][CASTLING][2] = 4;
-            if(board[BOARD_HEIGHT-1][4] == bKing) initialRights[5] = boards[moveNum][CASTLING][5] = 4;
-        }
-    } else { int r;
-        r = boards[moveNum][CASTLING][0] = initialRights[0];
-        if(board[0][r] != WhiteRook) boards[moveNum][CASTLING][0] = NoRights;
-        r = boards[moveNum][CASTLING][1] = initialRights[1];
-        if(board[0][r] != WhiteRook) boards[moveNum][CASTLING][1] = NoRights;
-        r = boards[moveNum][CASTLING][3] = initialRights[3];
-        if(board[BOARD_HEIGHT-1][r] != BlackRook) boards[moveNum][CASTLING][3] = NoRights;
-        r = boards[moveNum][CASTLING][4] = initialRights[4];
-        if(board[BOARD_HEIGHT-1][r] != BlackRook) boards[moveNum][CASTLING][4] = NoRights;
-        /* wildcastle kludge: always assume King has rights */
-        r = boards[moveNum][CASTLING][2] = initialRights[2];
-        r = boards[moveNum][CASTLING][5] = initialRights[5];
-    }
-    /* [HGM] e.p. rights. Assume that ICS sends file number here? */
-    boards[moveNum][EP_STATUS] = EP_NONE;
-    if(str[0] == 'P') boards[moveNum][EP_STATUS] = EP_PAWN_MOVE;
-    if(strchr(move_str, 'x')) boards[moveNum][EP_STATUS] = EP_CAPTURE;
-    if(double_push !=  -1) boards[moveNum][EP_STATUS] = double_push + BOARD_LEFT;
-
-
-    if (ics_getting_history == H_GOT_REQ_HEADER ||
-       ics_getting_history == H_GOT_UNREQ_HEADER) {
-       /* This was an initial position from a move list, not
-          the current position */
-       return;
-    }
-
-    /* Update currentMove and known move number limits */
-    newMove = newGame || moveNum > forwardMostMove;
-
-    if (newGame) {
-       forwardMostMove = backwardMostMove = currentMove = moveNum;
-       if (gameMode == IcsExamining && moveNum == 0) {
-         /* Workaround for ICS limitation: we are not told the wild
-            type when starting to examine a game.  But if we ask for
-            the move list, the move list header will tell us */
-           ics_getting_history = H_REQUESTED;
-           snprintf(str, MSG_SIZ, "%smoves %d\n", ics_prefix, gamenum);
-           SendToICS(str);
-       }
-    } else if (moveNum == forwardMostMove + 1 || moveNum == forwardMostMove
-              || (moveNum < forwardMostMove && moveNum >= backwardMostMove)) {
-#if ZIPPY
-       /* [DM] If we found takebacks during icsEngineAnalyze try send to engine */
-       /* [HGM] applied this also to an engine that is silently watching        */
-       if (appData.zippyPlay && moveNum < forwardMostMove && first.initDone &&
-           (gameMode == IcsObserving || gameMode == IcsExamining) &&
-           gameInfo.variant == currentlyInitializedVariant) {
-         takeback = forwardMostMove - moveNum;
-         for (i = 0; i < takeback; i++) {
-           if (appData.debugMode) fprintf(debugFP, "take back move\n");
-           SendToProgram("undo\n", &first);
-         }
-       }
-#endif
-
-       forwardMostMove = moveNum;
-       if (!pausing || currentMove > forwardMostMove)
-         currentMove = forwardMostMove;
-    } else {
-       /* New part of history that is not contiguous with old part */
-       if (pausing && gameMode == IcsExamining) {
-           pauseExamInvalid = TRUE;
-           forwardMostMove = pauseExamForwardMostMove;
-           return;
-       }
-       if (gameMode == IcsExamining && moveNum > 0 && appData.getMoveList) {
-#if ZIPPY
-           if(appData.zippyPlay && forwardMostMove > 0 && first.initDone) {
-               // [HGM] when we will receive the move list we now request, it will be
-               // fed to the engine from the first move on. So if the engine is not
-               // in the initial position now, bring it there.
-               InitChessProgram(&first, 0);
-           }
-#endif
-           ics_getting_history = H_REQUESTED;
-           snprintf(str, MSG_SIZ, "%smoves %d\n", ics_prefix, gamenum);
-           SendToICS(str);
-       }
-       forwardMostMove = backwardMostMove = currentMove = moveNum;
-    }
-
-    /* Update the clocks */
-    if (strchr(elapsed_time, '.')) {
-      /* Time is in ms */
-      timeRemaining[0][moveNum] = whiteTimeRemaining = white_time;
-      timeRemaining[1][moveNum] = blackTimeRemaining = black_time;
-    } else {
-      /* Time is in seconds */
-      timeRemaining[0][moveNum] = whiteTimeRemaining = white_time * 1000;
-      timeRemaining[1][moveNum] = blackTimeRemaining = black_time * 1000;
-    }
-
-
-#if ZIPPY
-    if (appData.zippyPlay && newGame &&
-       gameMode != IcsObserving && gameMode != IcsIdle &&
-       gameMode != IcsExamining)
-      ZippyFirstBoard(moveNum, basetime, increment);
-#endif
-
-    /* Put the move on the move list, first converting
-       to canonical algebraic form. */
-    if (moveNum > 0) {
-  if (appData.debugMode) {
-    int f = forwardMostMove;
-    fprintf(debugFP, "parseboard %d, castling = %d %d %d %d %d %d\n", f,
-           boards[f][CASTLING][0],boards[f][CASTLING][1],boards[f][CASTLING][2],
-           boards[f][CASTLING][3],boards[f][CASTLING][4],boards[f][CASTLING][5]);
-    fprintf(debugFP, "accepted move %s from ICS, parse it.\n", move_str);
-    fprintf(debugFP, "moveNum = %d\n", moveNum);
-    fprintf(debugFP, "board = %d-%d x %d\n", BOARD_LEFT, BOARD_RGHT, BOARD_HEIGHT);
-    setbuf(debugFP, NULL);
-  }
-       if (moveNum <= backwardMostMove) {
-           /* We don't know what the board looked like before
-              this move.  Punt. */
-         safeStrCpy(parseList[moveNum - 1], move_str, sizeof(parseList[moveNum - 1])/sizeof(parseList[moveNum - 1][0]));
-           strcat(parseList[moveNum - 1], " ");
-           strcat(parseList[moveNum - 1], elapsed_time);
-           moveList[moveNum - 1][0] = NULLCHAR;
-       } else if (strcmp(move_str, "none") == 0) {
-           // [HGM] long SAN: swapped order; test for 'none' before parsing move
-           /* Again, we don't know what the board looked like;
-              this is really the start of the game. */
-           parseList[moveNum - 1][0] = NULLCHAR;
-           moveList[moveNum - 1][0] = NULLCHAR;
-           backwardMostMove = moveNum;
-           startedFromSetupPosition = TRUE;
-           fromX = fromY = toX = toY = -1;
-       } else {
-         // [HGM] long SAN: if legality-testing is off, disambiguation might not work or give wrong move.
-         //                 So we parse the long-algebraic move string in stead of the SAN move
-         int valid; char buf[MSG_SIZ], *prom;
-
-         if(gameInfo.variant == VariantShogi && !strchr(move_str, '=') && !strchr(move_str, '@'))
-               strcat(move_str, "="); // if ICS does not say 'promote' on non-drop, we defer.
-         // str looks something like "Q/a1-a2"; kill the slash
-         if(str[1] == '/')
-           snprintf(buf, MSG_SIZ,"%c%s", str[0], str+2);
-         else  safeStrCpy(buf, str, sizeof(buf)/sizeof(buf[0])); // might be castling
-         if((prom = strstr(move_str, "=")) && !strstr(buf, "="))
-               strcat(buf, prom); // long move lacks promo specification!
-         if(!appData.testLegality && move_str[1] != '@') { // drops never ambiguous (parser chokes on long form!)
-               if(appData.debugMode)
-                       fprintf(debugFP, "replaced ICS move '%s' by '%s'\n", move_str, buf);
-               safeStrCpy(move_str, buf, MSG_SIZ);
-          }
-         valid = ParseOneMove(move_str, moveNum - 1, &moveType,
-                               &fromX, &fromY, &toX, &toY, &promoChar)
-              || ParseOneMove(buf, moveNum - 1, &moveType,
-                               &fromX, &fromY, &toX, &toY, &promoChar);
-         // end of long SAN patch
-         if (valid) {
-           (void) CoordsToAlgebraic(boards[moveNum - 1],
-                                    PosFlags(moveNum - 1),
-                                    fromY, fromX, toY, toX, promoChar,
-                                    parseList[moveNum-1]);
-            switch (MateTest(boards[moveNum], PosFlags(moveNum)) ) {
-             case MT_NONE:
-             case MT_STALEMATE:
-             default:
-               break;
-             case MT_CHECK:
-                if(!IS_SHOGI(gameInfo.variant))
-                    strcat(parseList[moveNum - 1], "+");
-               break;
-             case MT_CHECKMATE:
-             case MT_STAINMATE: // [HGM] xq: for notation stalemate that wins counts as checkmate
-               strcat(parseList[moveNum - 1], "#");
-               break;
-           }
-           strcat(parseList[moveNum - 1], " ");
-           strcat(parseList[moveNum - 1], elapsed_time);
-           /* currentMoveString is set as a side-effect of ParseOneMove */
-           if(gameInfo.variant == VariantShogi && currentMoveString[4]) currentMoveString[4] = '^';
-           safeStrCpy(moveList[moveNum - 1], currentMoveString, sizeof(moveList[moveNum - 1])/sizeof(moveList[moveNum - 1][0]));
-           strcat(moveList[moveNum - 1], "\n");
-
-            if(gameInfo.holdingsWidth && !appData.disguise && gameInfo.variant != VariantSuper && gameInfo.variant != VariantGreat
-               && gameInfo.variant != VariantGrand&& gameInfo.variant != VariantSChess) // inherit info that ICS does not give from previous board
-              for(k=0; k<ranks; k++) for(j=BOARD_LEFT; j<BOARD_RGHT; j++) {
-                ChessSquare old, new = boards[moveNum][k][j];
-                  if(fromY == DROP_RANK && k==toY && j==toX) continue; // dropped pieces always stand for themselves
-                  old = (k==toY && j==toX) ? boards[moveNum-1][fromY][fromX] : boards[moveNum-1][k][j]; // trace back mover
-                  if(old == new) continue;
-                  if(old == PROMOTED(new)) boards[moveNum][k][j] = old;// prevent promoted pieces to revert to primordial ones
-                  else if(new == WhiteWazir || new == BlackWazir) {
-                      if(old < WhiteCannon || old >= BlackPawn && old < BlackCannon)
-                           boards[moveNum][k][j] = PROMOTED(old); // choose correct type of Gold in promotion
-                      else boards[moveNum][k][j] = old; // preserve type of Gold
-                  } else if((old == WhitePawn || old == BlackPawn) && new != EmptySquare) // Pawn promotions (but not e.p.capture!)
-                      boards[moveNum][k][j] = PROMOTED(new); // use non-primordial representation of chosen piece
-              }
-         } else {
-           /* Move from ICS was illegal!?  Punt. */
-           if (appData.debugMode) {
-             fprintf(debugFP, "Illegal move from ICS '%s'\n", move_str);
-             fprintf(debugFP, "board L=%d, R=%d, H=%d, holdings=%d\n", BOARD_LEFT, BOARD_RGHT, BOARD_HEIGHT, gameInfo.holdingsWidth);
-           }
-           safeStrCpy(parseList[moveNum - 1], move_str, sizeof(parseList[moveNum - 1])/sizeof(parseList[moveNum - 1][0]));
-           strcat(parseList[moveNum - 1], " ");
-           strcat(parseList[moveNum - 1], elapsed_time);
-           moveList[moveNum - 1][0] = NULLCHAR;
-           fromX = fromY = toX = toY = -1;
-         }
-       }
-  if (appData.debugMode) {
-    fprintf(debugFP, "Move parsed to '%s'\n", parseList[moveNum - 1]);
-    setbuf(debugFP, NULL);
-  }
-
-#if ZIPPY
-       /* Send move to chess program (BEFORE animating it). */
-       if (appData.zippyPlay && !newGame && newMove &&
-          (!appData.getMoveList || backwardMostMove == 0) && first.initDone) {
-
-           if ((gameMode == IcsPlayingWhite && WhiteOnMove(moveNum)) ||
-               (gameMode == IcsPlayingBlack && !WhiteOnMove(moveNum))) {
-               if (moveList[moveNum - 1][0] == NULLCHAR) {
-                 snprintf(str, MSG_SIZ, _("Couldn't parse move \"%s\" from ICS"),
-                           move_str);
-                   DisplayError(str, 0);
-               } else {
-                   if (first.sendTime) {
-                       SendTimeRemaining(&first, gameMode == IcsPlayingWhite);
-                   }
-                   bookHit = SendMoveToBookUser(moveNum - 1, &first, FALSE); // [HGM] book
-                   if (firstMove && !bookHit) {
-                       firstMove = FALSE;
-                       if (first.useColors) {
-                         SendToProgram(gameMode == IcsPlayingWhite ?
-                                       "white\ngo\n" :
-                                       "black\ngo\n", &first);
-                       } else {
-                         SendToProgram("go\n", &first);
-                       }
-                       first.maybeThinking = TRUE;
-                   }
-               }
-           } else if (gameMode == IcsObserving || gameMode == IcsExamining) {
-             if (moveList[moveNum - 1][0] == NULLCHAR) {
-               snprintf(str, MSG_SIZ, _("Couldn't parse move \"%s\" from ICS"), move_str);
-               DisplayError(str, 0);
-             } else {
-               if(gameInfo.variant == currentlyInitializedVariant) // [HGM] refrain sending moves engine can't understand!
-               SendMoveToProgram(moveNum - 1, &first);
-             }
-           }
-       }
-#endif
-    }
-
-    if (moveNum > 0 && !gotPremove && !appData.noGUI) {
-       /* If move comes from a remote source, animate it.  If it
-          isn't remote, it will have already been animated. */
-       if (!pausing && !ics_user_moved && prevMove == moveNum - 1) {
-           AnimateMove(boards[moveNum - 1], fromX, fromY, toX, toY);
-       }
-       if (!pausing && appData.highlightLastMove) {
-           SetHighlights(fromX, fromY, toX, toY);
-       }
-    }
-
-    /* Start the clocks */
-    whiteFlag = blackFlag = FALSE;
-    appData.clockMode = !(basetime == 0 && increment == 0);
-    if (ticking == 0) {
-      ics_clock_paused = TRUE;
-      StopClocks();
-    } else if (ticking == 1) {
-      ics_clock_paused = FALSE;
-    }
-    if (gameMode == IcsIdle ||
-       relation == RELATION_OBSERVING_STATIC ||
-       relation == RELATION_EXAMINING ||
-       ics_clock_paused)
-      DisplayBothClocks();
-    else
-      StartClocks();
-
-    /* Display opponents and material strengths */
-    if (gameInfo.variant != VariantBughouse &&
-       gameInfo.variant != VariantCrazyhouse && !appData.noGUI) {
-       if (tinyLayout || smallLayout) {
-           if(gameInfo.variant == VariantNormal)
-             snprintf(str, MSG_SIZ, "%s(%d) %s(%d) {%d %d}",
-                   gameInfo.white, white_stren, gameInfo.black, black_stren,
-                   basetime, increment);
-           else
-             snprintf(str, MSG_SIZ, "%s(%d) %s(%d) {%d %d w%d}",
-                   gameInfo.white, white_stren, gameInfo.black, black_stren,
-                   basetime, increment, (int) gameInfo.variant);
-       } else {
-           if(gameInfo.variant == VariantNormal)
-             snprintf(str, MSG_SIZ, "%s (%d) %s %s (%d) {%d %d}",
-                   gameInfo.white, white_stren, _("vs."), gameInfo.black, black_stren,
-                   basetime, increment);
-           else
-             snprintf(str, MSG_SIZ, "%s (%d) %s %s (%d) {%d %d %s}",
-                   gameInfo.white, white_stren, _("vs."), gameInfo.black, black_stren,
-                   basetime, increment, VariantName(gameInfo.variant));
-       }
-       DisplayTitle(str);
-  if (appData.debugMode) {
-    fprintf(debugFP, "Display title '%s, gameInfo.variant = %d'\n", str, gameInfo.variant);
-  }
-    }
-
-
-    /* Display the board */
-    if (!pausing && !appData.noGUI) {
-
-      if (appData.premove)
-         if (!gotPremove ||
-            ((gameMode == IcsPlayingWhite) && (WhiteOnMove(currentMove))) ||
-            ((gameMode == IcsPlayingBlack) && (!WhiteOnMove(currentMove))))
-             ClearPremoveHighlights();
-
-      j = seekGraphUp; seekGraphUp = FALSE; // [HGM] seekgraph: when we draw a board, it overwrites the seek graph
-       if(partnerUp) { flipView = originalFlip; partnerUp = FALSE; j = TRUE; } // [HGM] bughouse: restore view
-      DrawPosition(j, boards[currentMove]);
-
-      DisplayMove(moveNum - 1);
-      if (appData.ringBellAfterMoves && /*!ics_user_moved*/ // [HGM] use absolute method to recognize own move
-           !((gameMode == IcsPlayingWhite) && (!WhiteOnMove(moveNum)) ||
-             (gameMode == IcsPlayingBlack) &&  (WhiteOnMove(moveNum))   ) ) {
-       if(newMove) RingBell(); else PlayIcsUnfinishedSound();
-      }
-    }
-
-    HistorySet(parseList, backwardMostMove, forwardMostMove, currentMove-1);
-#if ZIPPY
-    if(bookHit) { // [HGM] book: simulate book reply
-       static char bookMove[MSG_SIZ]; // a bit generous?
-
-       programStats.nodes = programStats.depth = programStats.time =
-       programStats.score = programStats.got_only_move = 0;
-       sprintf(programStats.movelist, "%s (xbook)", bookHit);
-
-       safeStrCpy(bookMove, "move ", sizeof(bookMove)/sizeof(bookMove[0]));
-       strcat(bookMove, bookHit);
-       HandleMachineMove(bookMove, &first);
-    }
-#endif
-}
-
-void
-GetMoveListEvent ()
-{
-    char buf[MSG_SIZ];
-    if (appData.icsActive && gameMode != IcsIdle && ics_gamenum > 0) {
-       ics_getting_history = H_REQUESTED;
-       snprintf(buf, MSG_SIZ, "%smoves %d\n", ics_prefix, ics_gamenum);
-       SendToICS(buf);
-    }
-}
-
-void
-SendToBoth (char *msg)
-{   // to make it easy to keep two engines in step in dual analysis
-    SendToProgram(msg, &first);
-    if(second.analyzing) SendToProgram(msg, &second);
-}
-
-void
-AnalysisPeriodicEvent (int force)
-{
-    if (((programStats.ok_to_send == 0 || programStats.line_is_book)
-        && !force) || !appData.periodicUpdates)
-      return;
-
-    /* Send . command to Crafty to collect stats */
-    SendToBoth(".\n");
-
-    /* Don't send another until we get a response (this makes
-       us stop sending to old Crafty's which don't understand
-       the "." command (sending illegal cmds resets node count & time,
-       which looks bad)) */
-    programStats.ok_to_send = 0;
-}
-
-void
-ics_update_width (int new_width)
-{
-       ics_printf("set width %d\n", new_width);
-}
-
-void
-SendMoveToProgram (int moveNum, ChessProgramState *cps)
-{
-    char buf[MSG_SIZ];
-
-    if(moveList[moveNum][1] == '@' && moveList[moveNum][0] == '@') {
-       if(gameInfo.variant == VariantLion || gameInfo.variant == VariantChuChess || gameInfo.variant == VariantChu) {
-           sprintf(buf, "%s@@@@\n", cps->useUsermove ? "usermove " : "");
-           SendToProgram(buf, cps);
-           return;
-       }
-       // null move in variant where engine does not understand it (for analysis purposes)
-       SendBoard(cps, moveNum + 1); // send position after move in stead.
-       return;
-    }
-    if (cps->useUsermove) {
-      SendToProgram("usermove ", cps);
-    }
-    if (cps->useSAN) {
-      char *space;
-      if ((space = strchr(parseList[moveNum], ' ')) != NULL) {
-       int len = space - parseList[moveNum];
-       memcpy(buf, parseList[moveNum], len);
-       buf[len++] = '\n';
-       buf[len] = NULLCHAR;
-      } else {
-       snprintf(buf, MSG_SIZ,"%s\n", parseList[moveNum]);
-      }
-      SendToProgram(buf, cps);
-    } else {
-      if(cps->alphaRank) { /* [HGM] shogi: temporarily convert to shogi coordinates before sending */
-       AlphaRank(moveList[moveNum], 4);
-       SendToProgram(moveList[moveNum], cps);
-       AlphaRank(moveList[moveNum], 4); // and back
-      } else
-      /* Added by Tord: Send castle moves in "O-O" in FRC games if required by
-       * the engine. It would be nice to have a better way to identify castle
-       * moves here. */
-      if(appData.fischerCastling && cps->useOOCastle) {
-        int fromX = moveList[moveNum][0] - AAA;
-        int fromY = moveList[moveNum][1] - ONE;
-        int toX = moveList[moveNum][2] - AAA;
-        int toY = moveList[moveNum][3] - ONE;
-        if((boards[moveNum][fromY][fromX] == WhiteKing
-            && boards[moveNum][toY][toX] == WhiteRook)
-           || (boards[moveNum][fromY][fromX] == BlackKing
-               && boards[moveNum][toY][toX] == BlackRook)) {
-         if(toX > fromX) SendToProgram("O-O\n", cps);
-         else SendToProgram("O-O-O\n", cps);
-       }
-       else SendToProgram(moveList[moveNum], cps);
-      } else
-      if(moveList[moveNum][4] == ';') { // [HGM] lion: move is double-step over intermediate square
-       char *m = moveList[moveNum];
-       static char c[2];
-       *c = m[7]; // promoChar
-       if((boards[moveNum][m[6]-ONE][m[5]-AAA] < BlackPawn) == (boards[moveNum][m[1]-ONE][m[0]-AAA] < BlackPawn)) // move is kludge to indicate castling
-         snprintf(buf, MSG_SIZ, "%c%d%c%d,%c%d%c%d\n", m[0], m[1] - '0', // convert to two moves
-                                              m[2], m[3] - '0',
-                                              m[5], m[6] - '0',
-                                              m[2] + (m[0] > m[5] ? 1 : -1), m[3] - '0');
-       else if(*c && m[8]) { // kill square followed by 2 characters: 2nd kill square rather than promo suffix
-         *c = m[9];
-         snprintf(buf, MSG_SIZ, "%c%d%c%d,%c%d%c%d,%c%d%c%d%s\n", m[0], m[1] - '0', // convert to three moves
-                                              m[7], m[8] - '0',
-                                              m[7], m[8] - '0',
-                                              m[5], m[6] - '0',
-                                              m[5], m[6] - '0',
-                                              m[2], m[3] - '0', c);
-       } else
-         snprintf(buf, MSG_SIZ, "%c%d%c%d,%c%d%c%d%s\n", m[0], m[1] - '0', // convert to two moves
-                                              m[5], m[6] - '0',
-                                              m[5], m[6] - '0',
-                                              m[2], m[3] - '0', c);
-         SendToProgram(buf, cps);
-      } else
-      if(BOARD_HEIGHT > 10) { // [HGM] big: convert ranks to double-digit where needed
-       if(moveList[moveNum][1] == '@' && (BOARD_HEIGHT < 16 || moveList[moveNum][0] <= 'Z')) { // drop move
-         if(moveList[moveNum][0]== '@') snprintf(buf, MSG_SIZ, "@@@@\n"); else
-         snprintf(buf, MSG_SIZ, "%c@%c%d%s", moveList[moveNum][0],
-                                             moveList[moveNum][2], moveList[moveNum][3] - '0', moveList[moveNum]+4);
-       } else
-         snprintf(buf, MSG_SIZ, "%c%d%c%d%s", moveList[moveNum][0], moveList[moveNum][1] - '0',
-                                              moveList[moveNum][2], moveList[moveNum][3] - '0', moveList[moveNum]+4);
-       SendToProgram(buf, cps);
-      }
-      else SendToProgram(moveList[moveNum], cps);
-      /* End of additions by Tord */
-    }
-
-    /* [HGM] setting up the opening has brought engine in force mode! */
-    /*       Send 'go' if we are in a mode where machine should play. */
-    if( (moveNum == 0 && setboardSpoiledMachineBlack && cps == &first) &&
-        (gameMode == TwoMachinesPlay   ||
-#if ZIPPY
-         gameMode == IcsPlayingBlack     || gameMode == IcsPlayingWhite ||
-#endif
-         gameMode == MachinePlaysBlack || gameMode == MachinePlaysWhite) ) {
-        SendToProgram("go\n", cps);
-  if (appData.debugMode) {
-    fprintf(debugFP, "(extra)\n");
-  }
-    }
-    setboardSpoiledMachineBlack = 0;
-}
-
-void
-SendMoveToICS (ChessMove moveType, int fromX, int fromY, int toX, int toY, char promoChar)
-{
-    char user_move[MSG_SIZ];
-    char suffix[4];
-
-    if(gameInfo.variant == VariantSChess && promoChar) {
-       snprintf(suffix, 4, "=%c", toX == BOARD_WIDTH<<1 ? ToUpper(promoChar) : ToLower(promoChar));
-       if(moveType == NormalMove) moveType = WhitePromotion; // kludge to do gating
-    } else suffix[0] = NULLCHAR;
-
-    switch (moveType) {
-      default:
-       snprintf(user_move, MSG_SIZ, _("say Internal error; bad moveType %d (%d,%d-%d,%d)"),
-               (int)moveType, fromX, fromY, toX, toY);
-       DisplayError(user_move + strlen("say "), 0);
-       break;
-      case WhiteKingSideCastle:
-      case BlackKingSideCastle:
-      case WhiteQueenSideCastleWild:
-      case BlackQueenSideCastleWild:
-      /* PUSH Fabien */
-      case WhiteHSideCastleFR:
-      case BlackHSideCastleFR:
-      /* POP Fabien */
-       snprintf(user_move, MSG_SIZ, "o-o%s\n", suffix);
-       break;
-      case WhiteQueenSideCastle:
-      case BlackQueenSideCastle:
-      case WhiteKingSideCastleWild:
-      case BlackKingSideCastleWild:
-      /* PUSH Fabien */
-      case WhiteASideCastleFR:
-      case BlackASideCastleFR:
-      /* POP Fabien */
-       snprintf(user_move, MSG_SIZ, "o-o-o%s\n",suffix);
-       break;
-      case WhiteNonPromotion:
-      case BlackNonPromotion:
-        sprintf(user_move, "%c%c%c%c==\n", AAA + fromX, ONE + fromY, AAA + toX, ONE + toY);
-        break;
-      case WhitePromotion:
-      case BlackPromotion:
-        if(gameInfo.variant == VariantShatranj || gameInfo.variant == VariantCourier ||
-           gameInfo.variant == VariantMakruk)
-         snprintf(user_move, MSG_SIZ, "%c%c%c%c=%c\n",
-                AAA + fromX, ONE + fromY, AAA + toX, ONE + toY,
-               PieceToChar(WhiteFerz));
-        else if(gameInfo.variant == VariantGreat)
-         snprintf(user_move, MSG_SIZ,"%c%c%c%c=%c\n",
-                AAA + fromX, ONE + fromY, AAA + toX, ONE + toY,
-               PieceToChar(WhiteMan));
-        else
-         snprintf(user_move, MSG_SIZ, "%c%c%c%c=%c\n",
-                AAA + fromX, ONE + fromY, AAA + toX, ONE + toY,
-               promoChar);
-       break;
-      case WhiteDrop:
-      case BlackDrop:
-      drop:
-       snprintf(user_move, MSG_SIZ, "%c@%c%c\n",
-                ToUpper(PieceToChar((ChessSquare) fromX)),
-                AAA + toX, ONE + toY);
-       break;
-      case IllegalMove:  /* could be a variant we don't quite understand */
-        if(fromY == DROP_RANK) goto drop; // We need 'IllegalDrop' move type?
-      case NormalMove:
-      case WhiteCapturesEnPassant:
-      case BlackCapturesEnPassant:
-       snprintf(user_move, MSG_SIZ,"%c%c%c%c\n",
-                AAA + fromX, ONE + fromY, AAA + toX, ONE + toY);
-       break;
-    }
-    SendToICS(user_move);
-    if(appData.keepAlive) // [HGM] alive: schedule sending of dummy 'date' command
-       ScheduleDelayedEvent(KeepAlive, appData.keepAlive*60*1000);
-}
-
-void
-UploadGameEvent ()
-{   // [HGM] upload: send entire stored game to ICS as long-algebraic moves.
-    int i, last = forwardMostMove; // make sure ICS reply cannot pre-empt us by clearing fmm
-    static char *castlingStrings[4] = { "none", "kside", "qside", "both" };
-    if(gameMode == IcsObserving || gameMode == IcsPlayingBlack || gameMode == IcsPlayingWhite) {
-      DisplayError(_("You cannot do this while you are playing or observing"), 0);
-      return;
-    }
-    if(gameMode != IcsExamining) { // is this ever not the case?
-       char buf[MSG_SIZ], *p, *fen, command[MSG_SIZ], bsetup = 0;
-
-       if(ics_type == ICS_ICC) { // on ICC match ourselves in applicable variant
-         snprintf(command,MSG_SIZ, "match %s", ics_handle);
-       } else { // on FICS we must first go to general examine mode
-         safeStrCpy(command, "examine\nbsetup", sizeof(command)/sizeof(command[0])); // and specify variant within it with bsetups
-       }
-       if(gameInfo.variant != VariantNormal) {
-           // try figure out wild number, as xboard names are not always valid on ICS
-           for(i=1; i<=36; i++) {
-             snprintf(buf, MSG_SIZ, "wild/%d", i);
-               if(StringToVariant(buf) == gameInfo.variant) break;
-           }
-           if(i<=36 && ics_type == ICS_ICC) snprintf(buf, MSG_SIZ,"%s w%d\n", command, i);
-           else if(i == 22) snprintf(buf,MSG_SIZ, "%s fr\n", command);
-           else snprintf(buf, MSG_SIZ,"%s %s\n", command, VariantName(gameInfo.variant));
-       } else snprintf(buf, MSG_SIZ,"%s\n", ics_type == ICS_ICC ? command : "examine\n"); // match yourself or examine
-       SendToICS(ics_prefix);
-       SendToICS(buf);
-       if(startedFromSetupPosition || backwardMostMove != 0) {
-         fen = PositionToFEN(backwardMostMove, NULL, 1);
-         if(ics_type == ICS_ICC) { // on ICC we can simply send a complete FEN to set everything
-           snprintf(buf, MSG_SIZ,"loadfen %s\n", fen);
-           SendToICS(buf);
-         } else { // FICS: everything has to set by separate bsetup commands
-           p = strchr(fen, ' '); p[0] = NULLCHAR; // cut after board
-           snprintf(buf, MSG_SIZ,"bsetup fen %s\n", fen);
-           SendToICS(buf);
-           if(!WhiteOnMove(backwardMostMove)) {
-               SendToICS("bsetup tomove black\n");
-           }
-           i = (strchr(p+3, 'K') != NULL) + 2*(strchr(p+3, 'Q') != NULL);
-           snprintf(buf, MSG_SIZ,"bsetup wcastle %s\n", castlingStrings[i]);
-           SendToICS(buf);
-           i = (strchr(p+3, 'k') != NULL) + 2*(strchr(p+3, 'q') != NULL);
-           snprintf(buf, MSG_SIZ, "bsetup bcastle %s\n", castlingStrings[i]);
-           SendToICS(buf);
-           i = boards[backwardMostMove][EP_STATUS];
-           if(i >= 0) { // set e.p.
-             snprintf(buf, MSG_SIZ,"bsetup eppos %c\n", i+AAA);
-               SendToICS(buf);
-           }
-           bsetup++;
-         }
-       }
-      if(bsetup || ics_type != ICS_ICC && gameInfo.variant != VariantNormal)
-           SendToICS("bsetup done\n"); // switch to normal examining.
-    }
-    for(i = backwardMostMove; i<last; i++) {
-       char buf[20];
-       snprintf(buf, sizeof(buf)/sizeof(buf[0]),"%s\n", parseList[i]);
-       if((*buf == 'b' || *buf == 'B') && buf[1] == 'x') { // work-around for stupid FICS bug, which thinks bxc3 can be a Bishop move
-           int len = strlen(moveList[i]);
-           snprintf(buf, sizeof(buf)/sizeof(buf[0]),"%s", moveList[i]); // use long algebraic
-           if(!isdigit(buf[len-2])) snprintf(buf+len-2, 20-len, "=%c\n", ToUpper(buf[len-2])); // promotion must have '=' in ICS format
-       }
-       SendToICS(buf);
-    }
-    SendToICS(ics_prefix);
-    SendToICS(ics_type == ICS_ICC ? "tag result Game in progress\n" : "commit\n");
-}
-
-int killX = -1, killY = -1, kill2X = -1, kill2Y = -1; // [HGM] lion: used for passing e.p. capture square to MakeMove
-int legNr = 1;
-
-void
-CoordsToComputerAlgebraic (int rf, int ff, int rt, int ft, char promoChar, char move[9])
-{
-    if (rf == DROP_RANK) {
-      if(ff == EmptySquare) sprintf(move, "@@@@\n"); else // [HGM] pass
-      sprintf(move, "%c@%c%c\n",
-                ToUpper(PieceToChar((ChessSquare) ff)), AAA + ft, ONE + rt);
-    } else {
-       if (promoChar == 'x' || promoChar == NULLCHAR) {
-         sprintf(move, "%c%c%c%c\n",
-                    AAA + ff, ONE + rf, AAA + ft, ONE + rt);
-         if(killX >= 0 && killY >= 0) {
-           sprintf(move+4, ";%c%c\n", AAA + killX, ONE + killY);
-           if(kill2X >= 0 && kill2Y >= 0) sprintf(move+7, "%c%c\n", AAA + kill2X, ONE + kill2Y);
-         }
-       } else {
-           sprintf(move, "%c%c%c%c%c\n",
-                    AAA + ff, ONE + rf, AAA + ft, ONE + rt, promoChar);
-         if(killX >= 0 && killY >= 0) {
-           sprintf(move+4, ";%c%c\n", AAA + killX, ONE + killY);
-           if(kill2X >= 0 && kill2Y >= 0) sprintf(move+7, "%c%c%c\n", AAA + kill2X, ONE + kill2Y, promoChar);
-         }
-       }
-    }
-}
-
-void
-ProcessICSInitScript (FILE *f)
-{
-    char buf[MSG_SIZ];
-
-    while (fgets(buf, MSG_SIZ, f)) {
-       SendToICSDelayed(buf,(long)appData.msLoginDelay);
-    }
-
-    fclose(f);
-}
-
-
-static int lastX, lastY, lastLeftX, lastLeftY, selectFlag;
-int dragging;
-static ClickType lastClickType;
-
-int
-PieceInString (char *s, ChessSquare piece)
-{
-  char *p, ID = ToUpper(PieceToChar(piece)), suffix = PieceSuffix(piece);
-  while((p = strchr(s, ID))) {
-    if(!suffix || p[1] == suffix) return TRUE;
-    s = p;
-  }
-  return FALSE;
-}
-
-int
-Partner (ChessSquare *p)
-{ // change piece into promotion partner if one shogi-promotes to the other
-  ChessSquare partner = promoPartner[*p];
-  if(PieceToChar(*p) != '+' && PieceToChar(partner) != '+') return 0;
-  if(PieceToChar(*p) == '+') partner = boards[currentMove][fromY][fromX];
-  *p = partner;
-  return 1;
-}
-
-void
-Sweep (int step)
-{
-    ChessSquare king = WhiteKing, pawn = WhitePawn, last = promoSweep;
-    static int toggleFlag;
-    if(gameInfo.variant == VariantKnightmate) king = WhiteUnicorn;
-    if(gameInfo.variant == VariantSuicide || gameInfo.variant == VariantGiveaway) king = EmptySquare;
-    if(promoSweep >= BlackPawn) king = WHITE_TO_BLACK king, pawn = WHITE_TO_BLACK pawn;
-    if(gameInfo.variant == VariantSpartan && pawn == BlackPawn) pawn = BlackLance, king = EmptySquare;
-    if(fromY != BOARD_HEIGHT-2 && fromY != 1 && gameInfo.variant != VariantChuChess) pawn = EmptySquare;
-    if(!step) toggleFlag = Partner(&last); // piece has shogi-promotion
-    do {
-       if(step && !(toggleFlag && Partner(&promoSweep))) promoSweep -= step;
-       if(promoSweep == EmptySquare) promoSweep = BlackPawn; // wrap
-       else if((int)promoSweep == -1) promoSweep = WhiteKing;
-       else if(promoSweep == BlackPawn && step < 0 && !toggleFlag) promoSweep = WhitePawn;
-       else if(promoSweep == WhiteKing && step > 0 && !toggleFlag) promoSweep = BlackKing;
-       if(!step) step = -1;
-    } while(PieceToChar(promoSweep) == '.' || PieceToChar(promoSweep) == '~' ||
-           !toggleFlag && PieceToChar(promoSweep) == '+' || // skip promoted versions of other
-           promoRestrict[0] ? !PieceInString(promoRestrict, promoSweep) : // if choice set available, use it 
-           promoSweep == pawn ||
-           appData.testLegality && (promoSweep == king || gameInfo.variant != VariantChuChess &&
-            (promoSweep == WhiteLion || promoSweep == BlackLion)));
-    if(toX >= 0) {
-       int victim = boards[currentMove][toY][toX];
-       boards[currentMove][toY][toX] = promoSweep;
-       DrawPosition(FALSE, boards[currentMove]);
-       boards[currentMove][toY][toX] = victim;
-    } else
-    ChangeDragPiece(promoSweep);
-}
-
-int
-PromoScroll (int x, int y)
-{
-  int step = 0;
-
-  if(promoSweep == EmptySquare || !appData.sweepSelect) return FALSE;
-  if(abs(x - lastX) < 25 && abs(y - lastY) < 25) return FALSE;
-  if( y > lastY + 2 ) step = -1; else if(y < lastY - 2) step = 1;
-  if(!step) return FALSE;
-  lastX = x; lastY = y;
-  if((promoSweep < BlackPawn) == flipView) step = -step;
-  if(step > 0) selectFlag = 1;
-  if(!selectFlag) Sweep(step);
-  return FALSE;
-}
-
-void
-NextPiece (int step)
-{
-    ChessSquare piece = boards[currentMove][toY][toX];
-    do {
-       pieceSweep -= step;
-       if(pieceSweep == EmptySquare) pieceSweep = WhitePawn; // wrap
-       if((int)pieceSweep == -1) pieceSweep = BlackKing;
-       if(!step) step = -1;
-    } while(PieceToChar(pieceSweep) == '.');
-    boards[currentMove][toY][toX] = pieceSweep;
-    DrawPosition(FALSE, boards[currentMove]);
-    boards[currentMove][toY][toX] = piece;
-}
-/* [HGM] Shogi move preprocessor: swap digits for letters, vice versa */
-void
-AlphaRank (char *move, int n)
-{
-//    char *p = move, c; int x, y;
-
-    if (appData.debugMode) {
-        fprintf(debugFP, "alphaRank(%s,%d)\n", move, n);
-    }
-
-    if(move[1]=='*' &&
-       move[2]>='0' && move[2]<='9' &&
-       move[3]>='a' && move[3]<='x'    ) {
-        move[1] = '@';
-        move[2] = BOARD_RGHT  -1 - (move[2]-'1') + AAA;
-        move[3] = BOARD_HEIGHT-1 - (move[3]-'a') + ONE;
-    } else
-    if(move[0]>='0' && move[0]<='9' &&
-       move[1]>='a' && move[1]<='x' &&
-       move[2]>='0' && move[2]<='9' &&
-       move[3]>='a' && move[3]<='x'    ) {
-        /* input move, Shogi -> normal */
-        move[0] = BOARD_RGHT  -1 - (move[0]-'1') + AAA;
-        move[1] = BOARD_HEIGHT-1 - (move[1]-'a') + ONE;
-        move[2] = BOARD_RGHT  -1 - (move[2]-'1') + AAA;
-        move[3] = BOARD_HEIGHT-1 - (move[3]-'a') + ONE;
-    } else
-    if(move[1]=='@' &&
-       move[3]>='0' && move[3]<='9' &&
-       move[2]>='a' && move[2]<='x'    ) {
-        move[1] = '*';
-        move[2] = BOARD_RGHT - 1 - (move[2]-AAA) + '1';
-        move[3] = BOARD_HEIGHT-1 - (move[3]-ONE) + 'a';
-    } else
-    if(
-       move[0]>='a' && move[0]<='x' &&
-       move[3]>='0' && move[3]<='9' &&
-       move[2]>='a' && move[2]<='x'    ) {
-         /* output move, normal -> Shogi */
-        move[0] = BOARD_RGHT - 1 - (move[0]-AAA) + '1';
-        move[1] = BOARD_HEIGHT-1 - (move[1]-ONE) + 'a';
-        move[2] = BOARD_RGHT - 1 - (move[2]-AAA) + '1';
-        move[3] = BOARD_HEIGHT-1 - (move[3]-ONE) + 'a';
-        if(move[4] == PieceToChar(BlackQueen)) move[4] = '+';
-    }
-    if (appData.debugMode) {
-        fprintf(debugFP, "   out = '%s'\n", move);
-    }
-}
-
-char yy_textstr[8000];
-
-/* Parser for moves from gnuchess, ICS, or user typein box */
-Boolean
-ParseOneMove (char *move, int moveNum, ChessMove *moveType, int *fromX, int *fromY, int *toX, int *toY, char *promoChar)
-{
-    *moveType = yylexstr(moveNum, move, yy_textstr, sizeof yy_textstr);
-
-    switch (*moveType) {
-      case WhitePromotion:
-      case BlackPromotion:
-      case WhiteNonPromotion:
-      case BlackNonPromotion:
-      case NormalMove:
-      case FirstLeg:
-      case WhiteCapturesEnPassant:
-      case BlackCapturesEnPassant:
-      case WhiteKingSideCastle:
-      case WhiteQueenSideCastle:
-      case BlackKingSideCastle:
-      case BlackQueenSideCastle:
-      case WhiteKingSideCastleWild:
-      case WhiteQueenSideCastleWild:
-      case BlackKingSideCastleWild:
-      case BlackQueenSideCastleWild:
-      /* Code added by Tord: */
-      case WhiteHSideCastleFR:
-      case WhiteASideCastleFR:
-      case BlackHSideCastleFR:
-      case BlackASideCastleFR:
-      /* End of code added by Tord */
-      case IllegalMove:                /* bug or odd chess variant */
-       if(currentMoveString[1] == '@') { // illegal drop
-         *fromX = WhiteOnMove(moveNum) ?
-           (int) CharToPiece(ToUpper(currentMoveString[0])) :
-           (int) CharToPiece(ToLower(currentMoveString[0]));
-         goto drop;
-       }
-        *fromX = currentMoveString[0] - AAA;
-        *fromY = currentMoveString[1] - ONE;
-        *toX = currentMoveString[2] - AAA;
-        *toY = currentMoveString[3] - ONE;
-       *promoChar = currentMoveString[4];
-       if(*promoChar == ';') *promoChar = currentMoveString[7 + 2*(currentMoveString[8] != 0)];
-        if (*fromX < BOARD_LEFT || *fromX >= BOARD_RGHT || *fromY < 0 || *fromY >= BOARD_HEIGHT ||
-            *toX < BOARD_LEFT || *toX >= BOARD_RGHT || *toY < 0 || *toY >= BOARD_HEIGHT) {
-    if (appData.debugMode) {
-        fprintf(debugFP, "Off-board move (%d,%d)-(%d,%d)%c, type = %d\n", *fromX, *fromY, *toX, *toY, *promoChar, *moveType);
-    }
-           *fromX = *fromY = *toX = *toY = 0;
-           return FALSE;
-       }
-       if (appData.testLegality) {
-         return (*moveType != IllegalMove);
-       } else {
-         return !(*fromX == *toX && *fromY == *toY && killX < 0) && boards[moveNum][*fromY][*fromX] != EmptySquare &&
-                        // [HGM] lion: if this is a double move we are less critical
-                       WhiteOnMove(moveNum) == (boards[moveNum][*fromY][*fromX] < BlackPawn);
-       }
-
-      case WhiteDrop:
-      case BlackDrop:
-       *fromX = *moveType == WhiteDrop ?
-         (int) CharToPiece(ToUpper(currentMoveString[0])) :
-         (int) CharToPiece(ToLower(currentMoveString[0]));
-      drop:
-       *fromY = DROP_RANK;
-        *toX = currentMoveString[2] - AAA;
-        *toY = currentMoveString[3] - ONE;
-       *promoChar = NULLCHAR;
-       return TRUE;
-
-      case AmbiguousMove:
-      case ImpossibleMove:
-      case EndOfFile:
-      case ElapsedTime:
-      case Comment:
-      case PGNTag:
-      case NAG:
-      case WhiteWins:
-      case BlackWins:
-      case GameIsDrawn:
-      default:
-    if (appData.debugMode) {
-        fprintf(debugFP, "Impossible move %s, type = %d\n", currentMoveString, *moveType);
-    }
-       /* bug? */
-       *fromX = *fromY = *toX = *toY = 0;
-       *promoChar = NULLCHAR;
-       return FALSE;
-    }
-}
-
-Boolean pushed = FALSE;
-char *lastParseAttempt;
-
-void
-ParsePV (char *pv, Boolean storeComments, Boolean atEnd)
-{ // Parse a string of PV moves, and append to current game, behind forwardMostMove
-  int fromX, fromY, toX, toY; char promoChar;
-  ChessMove moveType;
-  Boolean valid;
-  int nr = 0;
-
-  lastParseAttempt = pv; if(!*pv) return;    // turns out we crash when we parse an empty PV
-  if ((gameMode == AnalyzeMode || gameMode == AnalyzeFile) && currentMove < forwardMostMove) {
-    PushInner(currentMove, forwardMostMove); // [HGM] engine might not be thinking on forwardMost position!
-    pushed = TRUE;
-  }
-  endPV = forwardMostMove;
-  do {
-    while(*pv == ' ' || *pv == '\n' || *pv == '\t') pv++; // must still read away whitespace
-    if(nr == 0 && !storeComments && *pv == '(') pv++; // first (ponder) move can be in parentheses
-    lastParseAttempt = pv;
-    valid = ParseOneMove(pv, endPV, &moveType, &fromX, &fromY, &toX, &toY, &promoChar);
-    if(!valid && nr == 0 &&
-       ParseOneMove(pv, endPV-1, &moveType, &fromX, &fromY, &toX, &toY, &promoChar)){
-        nr++; moveType = Comment; // First move has been played; kludge to make sure we continue
-        // Hande case where played move is different from leading PV move
-        CopyBoard(boards[endPV+1], boards[endPV-1]); // tentatively unplay last game move
-        CopyBoard(boards[endPV+2], boards[endPV-1]); // and play first move of PV
-        ApplyMove(fromX, fromY, toX, toY, promoChar, boards[endPV+2]);
-        if(!CompareBoards(boards[endPV], boards[endPV+2])) {
-          endPV += 2; // if position different, keep this
-          moveList[endPV-1][0] = fromX + AAA;
-          moveList[endPV-1][1] = fromY + ONE;
-          moveList[endPV-1][2] = toX + AAA;
-          moveList[endPV-1][3] = toY + ONE;
-          parseList[endPV-1][0] = NULLCHAR;
-          safeStrCpy(moveList[endPV-2], "_0_0", sizeof(moveList[endPV-2])/sizeof(moveList[endPV-2][0])); // suppress premove highlight on takeback move
-        }
-      }
-    pv = strstr(pv, yy_textstr) + strlen(yy_textstr); // skip what we parsed
-    if(nr == 0 && !storeComments && *pv == ')') pv++; // closing parenthesis of ponder move;
-    if(moveType == Comment && storeComments) AppendComment(endPV, yy_textstr, FALSE);
-    if(moveType == Comment || moveType == NAG || moveType == ElapsedTime) {
-       valid++; // allow comments in PV
-       continue;
-    }
-    nr++;
-    if(endPV+1 > framePtr) break; // no space, truncate
-    if(!valid) break;
-    endPV++;
-    CopyBoard(boards[endPV], boards[endPV-1]);
-    ApplyMove(fromX, fromY, toX, toY, promoChar, boards[endPV]);
-    CoordsToComputerAlgebraic(fromY, fromX, toY, toX, promoChar, moveList[endPV - 1]);
-    strncat(moveList[endPV-1], "\n", MOVE_LEN);
-    CoordsToAlgebraic(boards[endPV - 1],
-                            PosFlags(endPV - 1),
-                            fromY, fromX, toY, toX, promoChar,
-                            parseList[endPV - 1]);
-  } while(valid);
-  if(atEnd == 2) return; // used hidden, for PV conversion
-  currentMove = (atEnd || endPV == forwardMostMove) ? endPV : forwardMostMove + 1;
-  if(currentMove == forwardMostMove) ClearPremoveHighlights(); else
-  SetPremoveHighlights(moveList[currentMove-1][0]-AAA, moveList[currentMove-1][1]-ONE,
-                       moveList[currentMove-1][2]-AAA, moveList[currentMove-1][3]-ONE);
-  DrawPosition(TRUE, boards[currentMove]);
-}
-
-int
-MultiPV (ChessProgramState *cps, int kind)
-{      // check if engine supports MultiPV, and if so, return the number of the option that sets it
-       int i;
-       for(i=0; i<cps->nrOptions; i++) {
-           char *s = cps->option[i].name;
-           if((kind & 1) && !StrCaseCmp(s, "MultiPV") && cps->option[i].type == Spin) return i;
-           if((kind & 2) && StrCaseStr(s, "multi") && StrCaseStr(s, "PV")
-                         && StrCaseStr(s, "margin") && cps->option[i].type == Spin) return -i-2;
-       }
-       return -1;
-}
-
-Boolean extendGame; // signals to UnLoadPV() if walked part of PV has to be appended to game
-static int multi, pv_margin;
-static ChessProgramState *activeCps;
-
-Boolean
-LoadMultiPV (int x, int y, char *buf, int index, int *start, int *end, int pane)
-{
-       int startPV, lineStart, origIndex = index;
-       char *p, buf2[MSG_SIZ];
-       ChessProgramState *cps = (pane ? &second : &first);
-
-       if(index < 0 || index >= strlen(buf)) return FALSE; // sanity
-       lastX = x; lastY = y;
-       while(index > 0 && buf[index-1] != '\n') index--; // beginning of line
-       lineStart = startPV = index;
-       while(buf[index] != '\n') if(buf[index++] == '\t') startPV = index;
-       if(index == startPV && (p = StrCaseStr(buf+index, "PV="))) startPV = p - buf + 3;
-       index = startPV;
-       do{ while(buf[index] && buf[index] != '\n') index++;
-       } while(buf[index] == '\n' && buf[index+1] == '\\' && buf[index+2] == ' ' && index++); // join kibitzed PV continuation line
-       buf[index] = 0;
-       if(lineStart == 0 && gameMode == AnalyzeMode) {
-           int n = 0;
-           if(origIndex > 17 && origIndex < 24) n--; else if(origIndex > index - 6) n++;
-           if(n == 0) { // click not on "fewer" or "more"
-               if((multi = -2 - MultiPV(cps, 2)) >= 0) {
-                   pv_margin = cps->option[multi].value;
-                   activeCps = cps; // non-null signals margin adjustment
-               }
-           } else if((multi = MultiPV(cps, 1)) >= 0) {
-               n += cps->option[multi].value; if(n < 1) n = 1;
-               snprintf(buf2, MSG_SIZ, "option MultiPV=%d\n", n);
-               if(cps->option[multi].value != n) SendToProgram(buf2, cps);
-               cps->option[multi].value = n;
-               *start = *end = 0;
-               return FALSE;
-           }
-       } else if(strstr(buf+lineStart, "exclude:") == buf+lineStart) { // exclude moves clicked
-               ExcludeClick(origIndex - lineStart);
-               return FALSE;
-       } else if(!strncmp(buf+lineStart, "dep\t", 4)) {                // column headers clicked
-               Collapse(origIndex - lineStart);
-               return FALSE;
-       }
-       ParsePV(buf+startPV, FALSE, gameMode != AnalyzeMode);
-       *start = startPV; *end = index-1;
-       extendGame = (gameMode == AnalyzeMode && appData.autoExtend && origIndex - startPV < 5);
-       return TRUE;
-}
-
-char *
-PvToSAN (char *pv)
-{
-       static char buf[10*MSG_SIZ];
-       int i, k=0, savedEnd=endPV, saveFMM = forwardMostMove;
-       *buf = NULLCHAR;
-       if(forwardMostMove < endPV) PushInner(forwardMostMove, endPV); // shelve PV of PV-walk
-       ParsePV(pv, FALSE, 2); // this appends PV to game, suppressing any display of it
-       for(i = forwardMostMove; i<endPV; i++){
-           if(i&1) snprintf(buf+k, 10*MSG_SIZ-k, "%s ", parseList[i]);
-           else    snprintf(buf+k, 10*MSG_SIZ-k, "%d. %s ", i/2 + 1, parseList[i]);
-           k += strlen(buf+k);
-       }
-       snprintf(buf+k, 10*MSG_SIZ-k, "%s", lastParseAttempt); // if we ran into stuff that could not be parsed, print it verbatim
-       if(pushed) { PopInner(0); pushed = FALSE; } // restore game continuation shelved by ParsePV
-       if(forwardMostMove < savedEnd) { PopInner(0); forwardMostMove = saveFMM; } // PopInner would set fmm to endPV!
-       endPV = savedEnd;
-       return buf;
-}
-
-Boolean
-LoadPV (int x, int y)
-{ // called on right mouse click to load PV
-  int which = gameMode == TwoMachinesPlay && (WhiteOnMove(forwardMostMove) == (second.twoMachinesColor[0] == 'w'));
-  lastX = x; lastY = y;
-  ParsePV(lastPV[which], FALSE, TRUE); // load the PV of the thinking engine in the boards array.
-  extendGame = FALSE;
-  return TRUE;
-}
-
-void
-UnLoadPV ()
-{
-  int oldFMM = forwardMostMove; // N.B.: this was currentMove before PV was loaded!
-  if(activeCps) {
-    if(pv_margin != activeCps->option[multi].value) {
-      char buf[MSG_SIZ];
-      snprintf(buf, MSG_SIZ, "option %s=%d\n", "Multi-PV Margin", pv_margin);
-      SendToProgram(buf, activeCps);
-      activeCps->option[multi].value = pv_margin;
-    }
-    activeCps = NULL;
-    return;
-  }
-  if(endPV < 0) return;
-  if(appData.autoCopyPV) CopyFENToClipboard();
-  endPV = -1;
-  if(extendGame && currentMove > forwardMostMove) {
-       Boolean saveAnimate = appData.animate;
-       if(pushed) {
-           if(shiftKey && storedGames < MAX_VARIATIONS-2) { // wants to start variation, and there is space
-               if(storedGames == 1) GreyRevert(FALSE);      // we already pushed the tail, so just make it official
-           } else storedGames--; // abandon shelved tail of original game
-       }
-       pushed = FALSE;
-       forwardMostMove = currentMove;
-       currentMove = oldFMM;
-       appData.animate = FALSE;
-       ToNrEvent(forwardMostMove);
-       appData.animate = saveAnimate;
-  }
-  currentMove = forwardMostMove;
-  if(pushed) { PopInner(0); pushed = FALSE; } // restore shelved game continuation
-  ClearPremoveHighlights();
-  DrawPosition(TRUE, boards[currentMove]);
-}
-
-void
-MovePV (int x, int y, int h)
-{ // step through PV based on mouse coordinates (called on mouse move)
-  int margin = h>>3, step = 0, threshold = (pieceSweep == EmptySquare ? 10 : 15);
-
-  if(activeCps) { // adjusting engine's multi-pv margin
-    if(x > lastX) pv_margin++; else
-    if(x < lastX) pv_margin -= (pv_margin > 0);
-    if(x != lastX) {
-      char buf[MSG_SIZ];
-      snprintf(buf, MSG_SIZ, "margin = %d", pv_margin);
-      DisplayMessage(buf, "");
-    }
-    lastX = x;
-    return;
-  }
-  // we must somehow check if right button is still down (might be released off board!)
-  if(endPV < 0 && pieceSweep == EmptySquare) return; // needed in XBoard because lastX/Y is shared :-(
-  if(abs(x - lastX) < threshold && abs(y - lastY) < threshold) return;
-  if( y > lastY + 2 ) step = -1; else if(y < lastY - 2) step = 1;
-  if(!step) return;
-  lastX = x; lastY = y;
-
-  if(pieceSweep != EmptySquare) { NextPiece(step); return; }
-  if(endPV < 0) return;
-  if(y < margin) step = 1; else
-  if(y > h - margin) step = -1;
-  if(currentMove + step > endPV || currentMove + step < forwardMostMove) step = 0;
-  currentMove += step;
-  if(currentMove == forwardMostMove) ClearPremoveHighlights(); else
-  SetPremoveHighlights(moveList[currentMove-1][0]-AAA, moveList[currentMove-1][1]-ONE,
-                       moveList[currentMove-1][2]-AAA, moveList[currentMove-1][3]-ONE);
-  DrawPosition(FALSE, boards[currentMove]);
-}
-
-
-// [HGM] shuffle: a general way to suffle opening setups, applicable to arbitrary variants.
-// All positions will have equal probability, but the current method will not provide a unique
-// numbering scheme for arrays that contain 3 or more pieces of the same kind.
-#define DARK 1
-#define LITE 2
-#define ANY 3
-
-int squaresLeft[4];
-int piecesLeft[(int)BlackPawn];
-int seed, nrOfShuffles;
-
-void
-GetPositionNumber ()
-{      // sets global variable seed
-       int i;
-
-       seed = appData.defaultFrcPosition;
-       if(seed < 0) { // randomize based on time for negative FRC position numbers
-               for(i=0; i<50; i++) seed += random();
-               seed = random() ^ random() >> 8 ^ random() << 8;
-               if(seed<0) seed = -seed;
-       }
-}
-
-int
-put (Board board, int pieceType, int rank, int n, int shade)
-// put the piece on the (n-1)-th empty squares of the given shade
-{
-       int i;
-
-       for(i=BOARD_LEFT; i<BOARD_RGHT; i++) {
-               if( (((i-BOARD_LEFT)&1)+1) & shade && board[rank][i] == EmptySquare && n-- == 0) {
-                       board[rank][i] = (ChessSquare) pieceType;
-                       squaresLeft[((i-BOARD_LEFT)&1) + 1]--;
-                       squaresLeft[ANY]--;
-                       piecesLeft[pieceType]--;
-                       return i;
-               }
-       }
-        return -1;
-}
-
-
-void
-AddOnePiece (Board board, int pieceType, int rank, int shade)
-// calculate where the next piece goes, (any empty square), and put it there
-{
-       int i;
-
-        i = seed % squaresLeft[shade];
-       nrOfShuffles *= squaresLeft[shade];
-       seed /= squaresLeft[shade];
-        put(board, pieceType, rank, i, shade);
-}
-
-void
-AddTwoPieces (Board board, int pieceType, int rank)
-// calculate where the next 2 identical pieces go, (any empty square), and put it there
-{
-       int i, n=squaresLeft[ANY], j=n-1, k;
-
-       k = n*(n-1)/2; // nr of possibilities, not counting permutations
-        i = seed % k;  // pick one
-       nrOfShuffles *= k;
-       seed /= k;
-       while(i >= j) i -= j--;
-        j = n - 1 - j; i += j;
-        put(board, pieceType, rank, j, ANY);
-        put(board, pieceType, rank, i, ANY);
-}
-
-void
-SetUpShuffle (Board board, int number)
-{
-       int i, p, first=1;
-
-       GetPositionNumber(); nrOfShuffles = 1;
-
-       squaresLeft[DARK] = (BOARD_RGHT - BOARD_LEFT + 1)/2;
-       squaresLeft[ANY]  = BOARD_RGHT - BOARD_LEFT;
-       squaresLeft[LITE] = squaresLeft[ANY] - squaresLeft[DARK];
-
-       for(p = 0; p<=(int)WhiteKing; p++) piecesLeft[p] = 0;
-
-       for(i=BOARD_LEFT; i<BOARD_RGHT; i++) { // count pieces and clear board
-           p = (int) board[0][i];
-           if(p < (int) BlackPawn) piecesLeft[p] ++;
-           board[0][i] = EmptySquare;
-       }
-
-       if(PosFlags(0) & F_ALL_CASTLE_OK) {
-           // shuffles restricted to allow normal castling put KRR first
-           if(piecesLeft[(int)WhiteKing]) // King goes rightish of middle
-               put(board, WhiteKing, 0, (gameInfo.boardWidth+1)/2, ANY);
-           else if(piecesLeft[(int)WhiteUnicorn]) // in Knightmate Unicorn castles
-               put(board, WhiteUnicorn, 0, (gameInfo.boardWidth+1)/2, ANY);
-           if(piecesLeft[(int)WhiteRook]) // First supply a Rook for K-side castling
-               put(board, WhiteRook, 0, gameInfo.boardWidth-2, ANY);
-           if(piecesLeft[(int)WhiteRook]) // Then supply a Rook for Q-side castling
-               put(board, WhiteRook, 0, 0, ANY);
-           // in variants with super-numerary Kings and Rooks, we leave these for the shuffle
-       }
-
-       if(((BOARD_RGHT-BOARD_LEFT) & 1) == 0)
-           // only for even boards make effort to put pairs of colorbound pieces on opposite colors
-           for(p = (int) WhiteKing; p > (int) WhitePawn; p--) {
-               if(p != (int) WhiteBishop && p != (int) WhiteFerz && p != (int) WhiteAlfil) continue;
-               while(piecesLeft[p] >= 2) {
-                   AddOnePiece(board, p, 0, LITE);
-                   AddOnePiece(board, p, 0, DARK);
-               }
-               // Odd color-bound pieces are shuffled with the rest (to not run out of paired squares)
-           }
-
-       for(p = (int) WhiteKing - 2; p > (int) WhitePawn; p--) {
-           // Remaining pieces (non-colorbound, or odd color bound) can be put anywhere
-           // but we leave King and Rooks for last, to possibly obey FRC restriction
-           if(p == (int)WhiteRook) continue;
-           while(piecesLeft[p] >= 2) AddTwoPieces(board, p, 0); // add in pairs, for not counting permutations
-           if(piecesLeft[p]) AddOnePiece(board, p, 0, ANY);     // add the odd piece
-       }
-
-       // now everything is placed, except perhaps King (Unicorn) and Rooks
-
-       if(PosFlags(0) & F_FRC_TYPE_CASTLING) {
-           // Last King gets castling rights
-           while(piecesLeft[(int)WhiteUnicorn]) {
-               i = put(board, WhiteUnicorn, 0, piecesLeft[(int)WhiteRook]/2, ANY);
-               initialRights[2]  = initialRights[5]  = board[CASTLING][2] = board[CASTLING][5] = i;
-           }
-
-           while(piecesLeft[(int)WhiteKing]) {
-               i = put(board, WhiteKing, 0, piecesLeft[(int)WhiteRook]/2, ANY);
-               initialRights[2]  = initialRights[5]  = board[CASTLING][2] = board[CASTLING][5] = i;
-           }
-
-
-       } else {
-           while(piecesLeft[(int)WhiteKing])    AddOnePiece(board, WhiteKing, 0, ANY);
-           while(piecesLeft[(int)WhiteUnicorn]) AddOnePiece(board, WhiteUnicorn, 0, ANY);
-       }
-
-       // Only Rooks can be left; simply place them all
-       while(piecesLeft[(int)WhiteRook]) {
-               i = put(board, WhiteRook, 0, 0, ANY);
-               if(PosFlags(0) & F_FRC_TYPE_CASTLING) { // first and last Rook get FRC castling rights
-                       if(first) {
-                               first=0;
-                               initialRights[1]  = initialRights[4]  = board[CASTLING][1] = board[CASTLING][4] = i;
-                       }
-                       initialRights[0]  = initialRights[3]  = board[CASTLING][0] = board[CASTLING][3] = i;
-               }
-       }
-       for(i=BOARD_LEFT; i<BOARD_RGHT; i++) { // copy black from white
-           board[BOARD_HEIGHT-1][i] =  (int) board[0][i] < BlackPawn ? WHITE_TO_BLACK board[0][i] : EmptySquare;
-       }
-
-       if(number >= 0) appData.defaultFrcPosition %= nrOfShuffles; // normalize
-}
-
-int
-ptclen (const char *s, char *escapes)
-{
-    int n = 0;
-    if(!*escapes) return strlen(s);
-    while(*s) n += (*s != '/' && *s != '-' && *s != '^' && *s != '*' && !strchr(escapes, *s)) - 2*(*s == '='), s++;
-    return n;
-}
-
-int
-SetCharTableEsc (unsigned char *table, const char * map, char * escapes)
-/* [HGM] moved here from winboard.c because of its general usefulness */
-/*       Basically a safe strcpy that uses the last character as King */
-{
-    int result = FALSE; int NrPieces;
-    unsigned char partner[EmptySquare];
-
-    if( map != NULL && (NrPieces=ptclen(map, escapes)) <= (int) EmptySquare
-                    && NrPieces >= 12 && !(NrPieces&1)) {
-        int i, ii, offs, j = 0; /* [HGM] Accept even length from 12 to 88 */
-
-        for( i=0; i<(int) EmptySquare; i++ ) table[i] = '.';
-        for( i=offs=0; i<NrPieces/2-1; i++ ) {
-            char *p, c=0;
-            if(map[j] == '/') offs = WhitePBishop - i, j++;
-            if(*escapes && (map[j] == '*' || map[j] == '-' || map[j] == '^')) c = map[j++];
-            table[i+offs] = map[j++];
-            if(p = strchr(escapes, map[j])) j++, table[i+offs] += 64*(p - escapes + 1);
-            if(c) partner[i+offs] = table[i+offs], table[i+offs] = c;
-            if(*escapes && map[j] == '=') pieceNickName[i+offs] = map[++j], j++;
-        }
-        table[(int) WhiteKing]  = map[j++];
-        for( ii=offs=0; ii<NrPieces/2-1; ii++ ) {
-            char *p, c=0;
-            if(map[j] == '/') offs = WhitePBishop - ii, j++;
-            i = WHITE_TO_BLACK ii;
-            if(*escapes && (map[j] == '*' || map[j] == '-' || map[j] == '^')) c = map[j++];
-            table[i+offs] = map[j++];
-            if(p = strchr(escapes, map[j])) j++, table[i+offs] += 64*(p - escapes + 1);
-            if(c) partner[i+offs] = table[i+offs], table[i+offs] = c;
-            if(*escapes && map[j] == '=') pieceNickName[i+offs] = map[++j], j++;
-        }
-        table[(int) BlackKing]  = map[j++];
-
-
-        if(*escapes) { // set up promotion pairing
-            for( i=0; i<(int) EmptySquare; i++ ) promoPartner[i] = (i%BlackPawn < 11 ? i + 11 : i%BlackPawn < 22 ? i - 11 : i); // default
-            // pieceToChar entirely filled, so we can look up specified partners
-            for(i=0; i<EmptySquare; i++) { // adjust promotion pairing
-                int c = table[i];
-                if(c == '^' || c == '-') { // has specified partner
-                    int p;
-                    for(p=0; p<EmptySquare; p++) if(table[p] == partner[i]) break;
-                    if(c == '^') table[i] = '+';
-                    if(p < EmptySquare) {
-                        if(promoPartner[promoPartner[p]] == p) promoPartner[promoPartner[p]] = promoPartner[p]; // divorce old partners
-                        if(promoPartner[promoPartner[i]] == i) promoPartner[promoPartner[i]] = promoPartner[i];
-                        promoPartner[p] = i, promoPartner[i] = p; // and marry this couple
-                    }
-                } else if(c == '*') {
-                    table[i] = partner[i];
-                    promoPartner[i] = (i < BlackPawn ? WhiteTokin : BlackTokin); // promotes to Tokin
-                }
-            }
-        }
-
-        result = TRUE;
-    }
-
-    return result;
-}
-
-int
-SetCharTable (unsigned char *table, const char * map)
-{
-    return SetCharTableEsc(table, map, "");
-}
-
-void
-Prelude (Board board)
-{      // [HGM] superchess: random selection of exo-pieces
-       int i, j, k; ChessSquare p;
-       static ChessSquare exoPieces[4] = { WhiteAngel, WhiteMarshall, WhiteSilver, WhiteLance };
-
-       GetPositionNumber(); // use FRC position number
-
-       if(appData.pieceToCharTable != NULL) { // select pieces to participate from given char table
-           SetCharTable(pieceToChar, appData.pieceToCharTable);
-           for(i=(int)WhiteQueen+1, j=0; i<(int)WhiteKing && j<4; i++)
-               if(PieceToChar((ChessSquare)i) != '.') exoPieces[j++] = (ChessSquare) i;
-       }
-
-       j = seed%4;                 seed /= 4;
-       p = board[0][BOARD_LEFT+j];   board[0][BOARD_LEFT+j] = EmptySquare; k = PieceToNumber(p);
-       board[k][BOARD_WIDTH-1] = p;  board[k][BOARD_WIDTH-2]++;
-       board[BOARD_HEIGHT-1-k][0] = WHITE_TO_BLACK p;  board[BOARD_HEIGHT-1-k][1]++;
-       j = seed%3 + (seed%3 >= j); seed /= 3;
-       p = board[0][BOARD_LEFT+j];   board[0][BOARD_LEFT+j] = EmptySquare; k = PieceToNumber(p);
-       board[k][BOARD_WIDTH-1] = p;  board[k][BOARD_WIDTH-2]++;
-       board[BOARD_HEIGHT-1-k][0] = WHITE_TO_BLACK p;  board[BOARD_HEIGHT-1-k][1]++;
-       j = seed%3;                 seed /= 3;
-       p = board[0][BOARD_LEFT+j+5]; board[0][BOARD_LEFT+j+5] = EmptySquare; k = PieceToNumber(p);
-       board[k][BOARD_WIDTH-1] = p;  board[k][BOARD_WIDTH-2]++;
-       board[BOARD_HEIGHT-1-k][0] = WHITE_TO_BLACK p;  board[BOARD_HEIGHT-1-k][1]++;
-       j = seed%2 + (seed%2 >= j); seed /= 2;
-       p = board[0][BOARD_LEFT+j+5]; board[0][BOARD_LEFT+j+5] = EmptySquare; k = PieceToNumber(p);
-       board[k][BOARD_WIDTH-1] = p;  board[k][BOARD_WIDTH-2]++;
-       board[BOARD_HEIGHT-1-k][0] = WHITE_TO_BLACK p;  board[BOARD_HEIGHT-1-k][1]++;
-       j = seed%4; seed /= 4; put(board, exoPieces[3],    0, j, ANY);
-       j = seed%3; seed /= 3; put(board, exoPieces[2],   0, j, ANY);
-       j = seed%2; seed /= 2; put(board, exoPieces[1], 0, j, ANY);
-       put(board, exoPieces[0],    0, 0, ANY);
-       for(i=BOARD_LEFT; i<BOARD_RGHT; i++) board[BOARD_HEIGHT-1][i] = WHITE_TO_BLACK board[0][i];
-}
-
-void
-InitPosition (int redraw)
-{
-    ChessSquare (* pieces)[BOARD_FILES];
-    int i, j, pawnRow=1, pieceRows=1, overrule,
-    oldx = gameInfo.boardWidth,
-    oldy = gameInfo.boardHeight,
-    oldh = gameInfo.holdingsWidth;
-    static int oldv;
-
-    if(appData.icsActive) shuffleOpenings = appData.fischerCastling = FALSE; // [HGM] shuffle: in ICS mode, only shuffle on ICS request
-
-    /* [AS] Initialize pv info list [HGM] and game status */
-    {
-        for( i=0; i<=framePtr; i++ ) { // [HGM] vari: spare saved variations
-            pvInfoList[i].depth = 0;
-            boards[i][EP_STATUS] = EP_NONE;
-            for( j=0; j<BOARD_FILES-2; j++ ) boards[i][CASTLING][j] = NoRights;
-        }
-
-        initialRulePlies = 0; /* 50-move counter start */
-
-        castlingRank[0] = castlingRank[1] = castlingRank[2] = 0;
-        castlingRank[3] = castlingRank[4] = castlingRank[5] = BOARD_HEIGHT-1;
-    }
-
-
-    /* [HGM] logic here is completely changed. In stead of full positions */
-    /* the initialized data only consist of the two backranks. The switch */
-    /* selects which one we will use, which is than copied to the Board   */
-    /* initialPosition, which for the rest is initialized by Pawns and    */
-    /* empty squares. This initial position is then copied to boards[0],  */
-    /* possibly after shuffling, so that it remains available.            */
-
-    gameInfo.holdingsWidth = 0; /* default board sizes */
-    gameInfo.boardWidth    = 8;
-    gameInfo.boardHeight   = 8;
-    gameInfo.holdingsSize  = 0;
-    nrCastlingRights = -1; /* [HGM] Kludge to indicate default should be used */
-    for(i=0; i<BOARD_FILES-6; i++)
-      initialPosition[CASTLING][i] = initialRights[i] = NoRights; /* but no rights yet */
-    initialPosition[EP_STATUS] = EP_NONE;
-    initialPosition[TOUCHED_W] = initialPosition[TOUCHED_B] = 0;
-    SetCharTableEsc(pieceToChar, "PNBRQ...........Kpnbrq...........k", SUFFIXES);
-    if(startVariant == gameInfo.variant) // [HGM] nicks: enable nicknames in original variant
-         SetCharTable(pieceNickName, appData.pieceNickNames);
-    else SetCharTable(pieceNickName, "............");
-    pieces = FIDEArray;
-
-    switch (gameInfo.variant) {
-    case VariantFischeRandom:
-      shuffleOpenings = TRUE;
-      appData.fischerCastling = TRUE;
-    default:
-      break;
-    case VariantShatranj:
-      pieces = ShatranjArray;
-      nrCastlingRights = 0;
-      SetCharTable(pieceToChar, "PN.R.QB...Kpn.r.qb...k");
-      break;
-    case VariantMakruk:
-      pieces = makrukArray;
-      nrCastlingRights = 0;
-      SetCharTable(pieceToChar, "PN.R.M....SKpn.r.m....sk");
-      break;
-    case VariantASEAN:
-      pieces = aseanArray;
-      nrCastlingRights = 0;
-      SetCharTable(pieceToChar, "PN.R.Q....BKpn.r.q....bk");
-      break;
-    case VariantTwoKings:
-      pieces = twoKingsArray;
-      break;
-    case VariantGrand:
-      pieces = GrandArray;
-      nrCastlingRights = 0;
-      SetCharTable(pieceToChar, "PNBRQ..ACKpnbrq..ack");
-      gameInfo.boardWidth = 10;
-      gameInfo.boardHeight = 10;
-      gameInfo.holdingsSize = 7;
-      break;
-    case VariantCapaRandom:
-      shuffleOpenings = TRUE;
-      appData.fischerCastling = TRUE;
-    case VariantCapablanca:
-      pieces = CapablancaArray;
-      gameInfo.boardWidth = 10;
-      SetCharTable(pieceToChar, "PNBRQ..ACKpnbrq..ack");
-      break;
-    case VariantGothic:
-      pieces = GothicArray;
-      gameInfo.boardWidth = 10;
-      SetCharTable(pieceToChar, "PNBRQ..ACKpnbrq..ack");
-      break;
-    case VariantSChess:
-      SetCharTable(pieceToChar, "PNBRQ..HEKpnbrq..hek");
-      gameInfo.holdingsSize = 7;
-      for(i=0; i<BOARD_FILES; i++) initialPosition[VIRGIN][i] = VIRGIN_W | VIRGIN_B;
-      break;
-    case VariantJanus:
-      pieces = JanusArray;
-      gameInfo.boardWidth = 10;
-      SetCharTable(pieceToChar, "PNBRQ..JKpnbrq..jk");
-      nrCastlingRights = 6;
-        initialPosition[CASTLING][0] = initialRights[0] = BOARD_RGHT-1;
-        initialPosition[CASTLING][1] = initialRights[1] = BOARD_LEFT;
-        initialPosition[CASTLING][2] = initialRights[2] =(BOARD_WIDTH-1)>>1;
-        initialPosition[CASTLING][3] = initialRights[3] = BOARD_RGHT-1;
-        initialPosition[CASTLING][4] = initialRights[4] = BOARD_LEFT;
-        initialPosition[CASTLING][5] = initialRights[5] =(BOARD_WIDTH-1)>>1;
-      break;
-    case VariantFalcon:
-      pieces = FalconArray;
-      gameInfo.boardWidth = 10;
-      SetCharTable(pieceToChar, "PNBRQ............FKpnbrq............fk");
-      break;
-    case VariantXiangqi:
-      pieces = XiangqiArray;
-      gameInfo.boardWidth  = 9;
-      gameInfo.boardHeight = 10;
-      nrCastlingRights = 0;
-      SetCharTable(pieceToChar, "PH.R.AE..K.C.ph.r.ae..k.c.");
-      break;
-    case VariantShogi:
-      pieces = ShogiArray;
-      gameInfo.boardWidth  = 9;
-      gameInfo.boardHeight = 9;
-      gameInfo.holdingsSize = 7;
-      nrCastlingRights = 0;
-      SetCharTable(pieceToChar, "PNBRLS...G.++++++Kpnbrls...g.++++++k");
-      break;
-    case VariantChu:
-      pieces = ChuArray; pieceRows = 3;
-      gameInfo.boardWidth  = 12;
-      gameInfo.boardHeight = 12;
-      nrCastlingRights = 0;
-      SetCharTableEsc(pieceToChar, "P.BRQSEXOGCATHD.VMLIFN.........^T..^L......^A^H/^F^G^M.^E^X^O^I.^P.^B^R..^D^S^C^VK"
-                                   "p.brqsexogcathd.vmlifn.........^t..^l......^a^h/^f^g^m.^e^x^o^i.^p.^b^r..^d^s^c^vk", SUFFIXES);
-      break;
-    case VariantCourier:
-      pieces = CourierArray;
-      gameInfo.boardWidth  = 12;
-      nrCastlingRights = 0;
-      SetCharTable(pieceToChar, "PNBR.FE..WMKpnbr.fe..wmk");
-      break;
-    case VariantKnightmate:
-      pieces = KnightmateArray;
-      SetCharTable(pieceToChar, "P.BRQ.....M.........K.p.brq.....m.........k.");
-      break;
-    case VariantSpartan:
-      pieces = SpartanArray;
-      SetCharTable(pieceToChar, "PNBRQ................K......lwg.....c...h..k");
-      break;
-    case VariantLion:
-      pieces = lionArray;
-      SetCharTable(pieceToChar, "PNBRQ................LKpnbrq................lk");
-      break;
-    case VariantChuChess:
-      pieces = ChuChessArray;
-      gameInfo.boardWidth = 10;
-      gameInfo.boardHeight = 10;
-      SetCharTable(pieceToChar, "PNBRQ.....M.+++......LKpnbrq.....m.+++......lk");
-      break;
-    case VariantFairy:
-      pieces = fairyArray;
-      SetCharTable(pieceToChar, "PNBRQFEACWMOHIJGDVLSUKpnbrqfeacwmohijgdvlsuk");
-      break;
-    case VariantGreat:
-      pieces = GreatArray;
-      gameInfo.boardWidth = 10;
-      SetCharTable(pieceToChar, "PN....E...S..HWGMKpn....e...s..hwgmk");
-      gameInfo.holdingsSize = 8;
-      break;
-    case VariantSuper:
-      pieces = FIDEArray;
-      SetCharTable(pieceToChar, "PNBRQ..SE.......V.AKpnbrq..se.......v.ak");
-      gameInfo.holdingsSize = 8;
-      startedFromSetupPosition = TRUE;
-      break;
-    case VariantCrazyhouse:
-    case VariantBughouse:
-      pieces = FIDEArray;
-      SetCharTable(pieceToChar, "PNBRQ.......~~~~Kpnbrq.......~~~~k");
-      gameInfo.holdingsSize = 5;
-      break;
-    case VariantWildCastle:
-      pieces = FIDEArray;
-      /* !!?shuffle with kings guaranteed to be on d or e file */
-      shuffleOpenings = 1;
-      break;
-    case VariantNoCastle:
-      pieces = FIDEArray;
-      nrCastlingRights = 0;
-      /* !!?unconstrained back-rank shuffle */
-      shuffleOpenings = 1;
-      break;
-    }
-
-    overrule = 0;
-    if(appData.NrFiles >= 0) {
-        if(gameInfo.boardWidth != appData.NrFiles) overrule++;
-        gameInfo.boardWidth = appData.NrFiles;
-    }
-    if(appData.NrRanks >= 0) {
-        gameInfo.boardHeight = appData.NrRanks;
-    }
-    if(appData.holdingsSize >= 0) {
-        i = appData.holdingsSize;
-        if(i > gameInfo.boardHeight) i = gameInfo.boardHeight;
-        gameInfo.holdingsSize = i;
-    }
-    if(gameInfo.holdingsSize) gameInfo.holdingsWidth = 2;
-    if(BOARD_HEIGHT > BOARD_RANKS || BOARD_WIDTH > BOARD_FILES)
-        DisplayFatalError(_("Recompile to support this BOARD_RANKS or BOARD_FILES!"), 0, 2);
-
-    pawnRow = gameInfo.boardHeight - 7; /* seems to work in all common variants */
-    if(pawnRow < 1) pawnRow = 1;
-    if(gameInfo.variant == VariantMakruk || gameInfo.variant == VariantASEAN ||
-       gameInfo.variant == VariantGrand || gameInfo.variant == VariantChuChess) pawnRow = 2;
-    if(gameInfo.variant == VariantChu) pawnRow = 3;
-
-    /* User pieceToChar list overrules defaults */
-    if(appData.pieceToCharTable != NULL)
-        SetCharTableEsc(pieceToChar, appData.pieceToCharTable, SUFFIXES);
-
-    for( j=0; j<BOARD_WIDTH; j++ ) { ChessSquare s = EmptySquare;
-
-        if(j==BOARD_LEFT-1 || j==BOARD_RGHT)
-            s = (ChessSquare) 0; /* account holding counts in guard band */
-        for( i=0; i<BOARD_HEIGHT; i++ )
-            initialPosition[i][j] = s;
-
-        if(j < BOARD_LEFT || j >= BOARD_RGHT || overrule) continue;
-        initialPosition[gameInfo.variant == VariantGrand || gameInfo.variant == VariantChuChess][j] = pieces[0][j-gameInfo.holdingsWidth];
-        initialPosition[pawnRow][j] = WhitePawn;
-        initialPosition[BOARD_HEIGHT-pawnRow-1][j] = gameInfo.variant == VariantSpartan ? BlackLance : BlackPawn;
-        if(gameInfo.variant == VariantXiangqi) {
-            if(j&1) {
-                initialPosition[pawnRow][j] =
-                initialPosition[BOARD_HEIGHT-pawnRow-1][j] = EmptySquare;
-                if(j==BOARD_LEFT+1 || j>=BOARD_RGHT-2) {
-                   initialPosition[2][j] = WhiteCannon;
-                   initialPosition[BOARD_HEIGHT-3][j] = BlackCannon;
-                }
-            }
-        }
-        if(gameInfo.variant == VariantChu) {
-             if(j == (BOARD_WIDTH-2)/3 || j == BOARD_WIDTH - (BOARD_WIDTH+1)/3)
-               initialPosition[pawnRow+1][j] = WhiteCobra,
-               initialPosition[BOARD_HEIGHT-pawnRow-2][j] = BlackCobra;
-             for(i=1; i<pieceRows; i++) {
-               initialPosition[i][j] = pieces[2*i][j-gameInfo.holdingsWidth];
-               initialPosition[BOARD_HEIGHT-1-i][j] =  pieces[2*i+1][j-gameInfo.holdingsWidth];
-             }
-        }
-        if(gameInfo.variant == VariantGrand || gameInfo.variant == VariantChuChess) {
-            if(j==BOARD_LEFT || j>=BOARD_RGHT-1) {
-               initialPosition[0][j] = WhiteRook;
-               initialPosition[BOARD_HEIGHT-1][j] = BlackRook;
-            }
-        }
-        initialPosition[BOARD_HEIGHT-1-(gameInfo.variant == VariantGrand || gameInfo.variant == VariantChuChess)][j] =  pieces[1][j-gameInfo.holdingsWidth];
-    }
-    if(gameInfo.variant == VariantChuChess) initialPosition[0][BOARD_WIDTH/2] = WhiteKing, initialPosition[BOARD_HEIGHT-1][BOARD_WIDTH/2-1] = BlackKing;
-    if( (gameInfo.variant == VariantShogi) && !overrule ) {
-
-            j=BOARD_LEFT+1;
-            initialPosition[1][j] = WhiteBishop;
-            initialPosition[BOARD_HEIGHT-2][j] = BlackRook;
-            j=BOARD_RGHT-2;
-            initialPosition[1][j] = WhiteRook;
-            initialPosition[BOARD_HEIGHT-2][j] = BlackBishop;
-    }
-
-    if( nrCastlingRights == -1) {
-        /* [HGM] Build normal castling rights (must be done after board sizing!) */
-        /*       This sets default castling rights from none to normal corners   */
-        /* Variants with other castling rights must set them themselves above    */
-        nrCastlingRights = 6;
-
-        initialPosition[CASTLING][0] = initialRights[0] = BOARD_RGHT-1;
-        initialPosition[CASTLING][1] = initialRights[1] = BOARD_LEFT;
-        initialPosition[CASTLING][2] = initialRights[2] = BOARD_WIDTH>>1;
-        initialPosition[CASTLING][3] = initialRights[3] = BOARD_RGHT-1;
-        initialPosition[CASTLING][4] = initialRights[4] = BOARD_LEFT;
-        initialPosition[CASTLING][5] = initialRights[5] = BOARD_WIDTH>>1;
-     }
-
-     if(gameInfo.variant == VariantSuper) Prelude(initialPosition);
-     if(gameInfo.variant == VariantGreat) { // promotion commoners
-       initialPosition[PieceToNumber(WhiteMan)][BOARD_WIDTH-1] = WhiteMan;
-       initialPosition[PieceToNumber(WhiteMan)][BOARD_WIDTH-2] = 9;
-       initialPosition[BOARD_HEIGHT-1-PieceToNumber(WhiteMan)][0] = BlackMan;
-       initialPosition[BOARD_HEIGHT-1-PieceToNumber(WhiteMan)][1] = 9;
-     }
-     if( gameInfo.variant == VariantSChess ) {
-      initialPosition[1][0] = BlackMarshall;
-      initialPosition[2][0] = BlackAngel;
-      initialPosition[6][BOARD_WIDTH-1] = WhiteMarshall;
-      initialPosition[5][BOARD_WIDTH-1] = WhiteAngel;
-      initialPosition[1][1] = initialPosition[2][1] =
-      initialPosition[6][BOARD_WIDTH-2] = initialPosition[5][BOARD_WIDTH-2] = 1;
-     }
-  if (appData.debugMode) {
-    fprintf(debugFP, "shuffleOpenings = %d\n", shuffleOpenings);
-  }
-    if(shuffleOpenings) {
-       SetUpShuffle(initialPosition, appData.defaultFrcPosition);
-       startedFromSetupPosition = TRUE;
-    }
-    if(startedFromPositionFile) {
-      /* [HGM] loadPos: use PositionFile for every new game */
-      CopyBoard(initialPosition, filePosition);
-      for(i=0; i<nrCastlingRights; i++)
-          initialRights[i] = filePosition[CASTLING][i];
-      startedFromSetupPosition = TRUE;
-    }
-    if(*appData.men) LoadPieceDesc(appData.men);
-
-    CopyBoard(boards[0], initialPosition);
-
-    if(oldx != gameInfo.boardWidth ||
-       oldy != gameInfo.boardHeight ||
-       oldv != gameInfo.variant ||
-       oldh != gameInfo.holdingsWidth
-                                         )
-            InitDrawingSizes(-2 ,0);
-
-    oldv = gameInfo.variant;
-    if (redraw)
-      DrawPosition(TRUE, boards[currentMove]);
-}
-
-void
-SendBoard (ChessProgramState *cps, int moveNum)
-{
-    char message[MSG_SIZ];
-
-    if (cps->useSetboard) {
-      char* fen = PositionToFEN(moveNum, cps->fenOverride, 1);
-      snprintf(message, MSG_SIZ,"setboard %s\n", fen);
-      SendToProgram(message, cps);
-      free(fen);
-
-    } else {
-      ChessSquare *bp;
-      int i, j, left=0, right=BOARD_WIDTH;
-      /* Kludge to set black to move, avoiding the troublesome and now
-       * deprecated "black" command.
-       */
-      if (!WhiteOnMove(moveNum)) // [HGM] but better a deprecated command than an illegal move...
-        SendToProgram(boards[0][1][BOARD_LEFT] == WhitePawn ? "a2a3\n" : "black\n", cps);
-
-      if(!cps->extendedEdit) left = BOARD_LEFT, right = BOARD_RGHT; // only board proper
-
-      SendToProgram("edit\n", cps);
-      SendToProgram("#\n", cps);
-      for (i = BOARD_HEIGHT - 1; i >= 0; i--) {
-       bp = &boards[moveNum][i][left];
-        for (j = left; j < right; j++, bp++) {
-         if(j == BOARD_LEFT-1 || j == BOARD_RGHT) continue;
-         if ((int) *bp < (int) BlackPawn) {
-           if(j == BOARD_RGHT+1)
-                snprintf(message, MSG_SIZ, "%c@%d\n", PieceToChar(*bp), bp[-1]);
-           else snprintf(message, MSG_SIZ, "%c%c%d\n", PieceToChar(*bp), AAA + j, ONE + i - '0');
-            if(message[0] == '+' || message[0] == '~') {
-             snprintf(message, MSG_SIZ,"%c%c%d+\n",
-                        PieceToChar((ChessSquare)(DEMOTED(*bp))),
-                        AAA + j, ONE + i - '0');
-            }
-            if(cps->alphaRank) { /* [HGM] shogi: translate coords */
-                message[1] = BOARD_RGHT   - 1 - j + '1';
-                message[2] = BOARD_HEIGHT - 1 - i + 'a';
-            }
-           SendToProgram(message, cps);
-         }
-       }
-      }
-
-      SendToProgram("c\n", cps);
-      for (i = BOARD_HEIGHT - 1; i >= 0; i--) {
-       bp = &boards[moveNum][i][left];
-        for (j = left; j < right; j++, bp++) {
-         if(j == BOARD_LEFT-1 || j == BOARD_RGHT) continue;
-         if (((int) *bp != (int) EmptySquare)
-             && ((int) *bp >= (int) BlackPawn)) {
-           if(j == BOARD_LEFT-2)
-                snprintf(message, MSG_SIZ, "%c@%d\n", ToUpper(PieceToChar(*bp)), bp[1]);
-           else snprintf(message,MSG_SIZ, "%c%c%d\n", ToUpper(PieceToChar(*bp)),
-                    AAA + j, ONE + i - '0');
-            if(message[0] == '+' || message[0] == '~') {
-             snprintf(message, MSG_SIZ,"%c%c%d+\n",
-                        PieceToChar((ChessSquare)(DEMOTED(*bp))),
-                        AAA + j, ONE + i - '0');
-            }
-            if(cps->alphaRank) { /* [HGM] shogi: translate coords */
-                message[1] = BOARD_RGHT   - 1 - j + '1';
-                message[2] = BOARD_HEIGHT - 1 - i + 'a';
-            }
-           SendToProgram(message, cps);
-         }
-       }
-      }
-
-      SendToProgram(".\n", cps);
-    }
-    setboardSpoiledMachineBlack = 0; /* [HGM] assume WB 4.2.7 already solves this after sending setboard */
-}
-
-char exclusionHeader[MSG_SIZ];
-int exCnt, excludePtr;
-typedef struct { int ff, fr, tf, tr, pc, mark; } Exclusion;
-static Exclusion excluTab[200];
-static char excludeMap[(BOARD_RANKS*BOARD_FILES*BOARD_RANKS*BOARD_FILES+7)/8]; // [HGM] exclude: bitmap for excluced moves
-
-static void
-WriteMap (int s)
-{
-    int j;
-    for(j=0; j<(BOARD_RANKS*BOARD_FILES*BOARD_RANKS*BOARD_FILES+7)/8; j++) excludeMap[j] = s;
-    exclusionHeader[19] = s ? '-' : '+'; // update tail state
-}
-
-static void
-ClearMap ()
-{
-    safeStrCpy(exclusionHeader, "exclude: none best +tail                                          \n", MSG_SIZ);
-    excludePtr = 24; exCnt = 0;
-    WriteMap(0);
-}
-
-static void
-UpdateExcludeHeader (int fromY, int fromX, int toY, int toX, char promoChar, char state)
-{   // search given move in table of header moves, to know where it is listed (and add if not there), and update state
-    char buf[2*MOVE_LEN], *p;
-    Exclusion *e = excluTab;
-    int i;
-    for(i=0; i<exCnt; i++)
-       if(e[i].ff == fromX && e[i].fr == fromY &&
-          e[i].tf == toX   && e[i].tr == toY && e[i].pc == promoChar) break;
-    if(i == exCnt) { // was not in exclude list; add it
-       CoordsToAlgebraic(boards[currentMove], PosFlags(currentMove), fromY, fromX, toY, toX, promoChar, buf);
-       if(strlen(exclusionHeader + excludePtr) < strlen(buf)) { // no space to write move
-           if(state != exclusionHeader[19]) exclusionHeader[19] = '*'; // tail is now in mixed state
-           return; // abort
-       }
-       e[i].ff = fromX; e[i].fr = fromY; e[i].tf = toX; e[i].tr = toY; e[i].pc = promoChar;
-       excludePtr++; e[i].mark = excludePtr++;
-       for(p=buf; *p; p++) exclusionHeader[excludePtr++] = *p; // copy move
-       exCnt++;
-    }
-    exclusionHeader[e[i].mark] = state;
-}
-
-static int
-ExcludeOneMove (int fromY, int fromX, int toY, int toX, char promoChar, char state)
-{   // include or exclude the given move, as specified by state ('+' or '-'), or toggle
-    char buf[MSG_SIZ];
-    int j, k;
-    ChessMove moveType;
-    if((signed char)promoChar == -1) { // kludge to indicate best move
-       if(!ParseOneMove(lastPV[0], currentMove, &moveType, &fromX, &fromY, &toX, &toY, &promoChar)) // get current best move from last PV
-           return 1; // if unparsable, abort
-    }
-    // update exclusion map (resolving toggle by consulting existing state)
-    k=(BOARD_FILES*fromY+fromX)*BOARD_RANKS*BOARD_FILES + (BOARD_FILES*toY+toX);
-    j = k%8; k >>= 3;
-    if(state == '*') state = (excludeMap[k] & 1<<j ? '+' : '-'); // toggle
-    if(state == '-' && !promoChar) // only non-promotions get marked as excluded, to allow exclusion of under-promotions
-        excludeMap[k] |=   1<<j;
-    else excludeMap[k] &= ~(1<<j);
-    // update header
-    UpdateExcludeHeader(fromY, fromX, toY, toX, promoChar, state);
-    // inform engine
-    snprintf(buf, MSG_SIZ, "%sclude ", state == '+' ? "in" : "ex");
-    CoordsToComputerAlgebraic(fromY, fromX, toY, toX, promoChar, buf+8);
-    SendToBoth(buf);
-    return (state == '+');
-}
-
-static void
-ExcludeClick (int index)
-{
-    int i, j;
-    Exclusion *e = excluTab;
-    if(index < 25) { // none, best or tail clicked
-       if(index < 13) { // none: include all
-           WriteMap(0); // clear map
-           for(i=0; i<exCnt; i++) exclusionHeader[excluTab[i].mark] = '+'; // and moves
-           SendToBoth("include all\n"); // and inform engine
-       } else if(index > 18) { // tail
-           if(exclusionHeader[19] == '-') { // tail was excluded
-               SendToBoth("include all\n");
-               WriteMap(0); // clear map completely
-               // now re-exclude selected moves
-               for(i=0; i<exCnt; i++) if(exclusionHeader[e[i].mark] == '-')
-                   ExcludeOneMove(e[i].fr, e[i].ff, e[i].tr, e[i].tf, e[i].pc, '-');
-           } else { // tail was included or in mixed state
-               SendToBoth("exclude all\n");
-               WriteMap(0xFF); // fill map completely
-               // now re-include selected moves
-               j = 0; // count them
-               for(i=0; i<exCnt; i++) if(exclusionHeader[e[i].mark] == '+')
-                   ExcludeOneMove(e[i].fr, e[i].ff, e[i].tr, e[i].tf, e[i].pc, '+'), j++;
-               if(!j) ExcludeOneMove(0, 0, 0, 0, -1, '+'); // if no moves were selected, keep best
-           }
-       } else { // best
-           ExcludeOneMove(0, 0, 0, 0, -1, '-'); // exclude it
-       }
-    } else {
-       for(i=0; i<exCnt; i++) if(i == exCnt-1 || excluTab[i+1].mark > index) {
-           char *p=exclusionHeader + excluTab[i].mark; // do trust header more than map (promotions!)
-           ExcludeOneMove(e[i].fr, e[i].ff, e[i].tr, e[i].tf, e[i].pc, *p == '+' ? '-' : '+');
-           break;
-       }
-    }
-}
-
-ChessSquare
-DefaultPromoChoice (int white)
-{
-    ChessSquare result;
-    if(gameInfo.variant == VariantShatranj || gameInfo.variant == VariantCourier ||
-       gameInfo.variant == VariantMakruk)
-       result = WhiteFerz; // no choice
-    else if(gameInfo.variant == VariantASEAN)
-       result = WhiteRook; // no choice
-    else if(gameInfo.variant == VariantSuicide || gameInfo.variant == VariantGiveaway)
-       result= WhiteKing; // in Suicide Q is the last thing we want
-    else if(gameInfo.variant == VariantSpartan)
-       result = white ? WhiteQueen : WhiteAngel;
-    else result = WhiteQueen;
-    if(!white) result = WHITE_TO_BLACK result;
-    return result;
-}
-
-static int autoQueen; // [HGM] oneclick
-
-int
-HasPromotionChoice (int fromX, int fromY, int toX, int toY, char *promoChoice, int sweepSelect)
-{
-    /* [HGM] rewritten IsPromotion to only flag promotions that offer a choice */
-    /* [HGM] add Shogi promotions */
-    int promotionZoneSize=1, highestPromotingPiece = (int)WhitePawn;
-    ChessSquare piece, partner;
-    ChessMove moveType;
-    Boolean premove;
-
-    if(fromX < BOARD_LEFT || fromX >= BOARD_RGHT) return FALSE; // drop
-    if(toX   < BOARD_LEFT || toX   >= BOARD_RGHT) return FALSE; // move into holdings
-
-    if(gameMode == EditPosition || gameInfo.variant == VariantXiangqi || // no promotions
-      !(fromX >=0 && fromY >= 0 && toX >= 0 && toY >= 0) ) // invalid move
-       return FALSE;
-
-    piece = boards[currentMove][fromY][fromX];
-    if(gameInfo.variant == VariantChu) {
-        promotionZoneSize = BOARD_HEIGHT/3;
-        highestPromotingPiece = (PieceToChar(piece) == '+' || PieceToChar(CHUPROMOTED(piece)) != '+') ? WhitePawn : WhiteKing;
-    } else if(gameInfo.variant == VariantShogi) {
-        promotionZoneSize = BOARD_HEIGHT/3 +(BOARD_HEIGHT == 8);
-        highestPromotingPiece = (int)WhiteAlfil;
-    } else if(gameInfo.variant == VariantMakruk || gameInfo.variant == VariantGrand || gameInfo.variant == VariantChuChess) {
-        promotionZoneSize = 3;
-    }
-
-    // Treat Lance as Pawn when it is not representing Amazon or Lance
-    if(gameInfo.variant != VariantSuper && gameInfo.variant != VariantChu) {
-        if(piece == WhiteLance) piece = WhitePawn; else
-        if(piece == BlackLance) piece = BlackPawn;
-    }
-
-    // next weed out all moves that do not touch the promotion zone at all
-    if((int)piece >= BlackPawn) {
-        if(toY >= promotionZoneSize && fromY >= promotionZoneSize)
-             return FALSE;
-        if(fromY < promotionZoneSize && gameInfo.variant == VariantChuChess) return FALSE;
-        highestPromotingPiece = WHITE_TO_BLACK highestPromotingPiece;
-    } else {
-        if(  toY < BOARD_HEIGHT - promotionZoneSize &&
-           fromY < BOARD_HEIGHT - promotionZoneSize) return FALSE;
-        if(fromY >= BOARD_HEIGHT - promotionZoneSize && gameInfo.variant == VariantChuChess)
-             return FALSE;
-    }
-
-    if( (int)piece > highestPromotingPiece ) return FALSE; // non-promoting piece
-
-    // weed out mandatory Shogi promotions
-    if(gameInfo.variant == VariantShogi) {
-       if(piece >= BlackPawn) {
-           if(toY == 0 && piece == BlackPawn ||
-              toY == 0 && piece == BlackQueen ||
-              toY <= 1 && piece == BlackKnight) {
-               *promoChoice = '+';
-               return FALSE;
-           }
-       } else {
-           if(toY == BOARD_HEIGHT-1 && piece == WhitePawn ||
-              toY == BOARD_HEIGHT-1 && piece == WhiteQueen ||
-              toY >= BOARD_HEIGHT-2 && piece == WhiteKnight) {
-               *promoChoice = '+';
-               return FALSE;
-           }
-       }
-    }
-
-    // weed out obviously illegal Pawn moves
-    if(appData.testLegality  && (piece == WhitePawn || piece == BlackPawn) ) {
-       if(toX > fromX+1 || toX < fromX-1) return FALSE; // wide
-       if(piece == WhitePawn && toY != fromY+1) return FALSE; // deep
-       if(piece == BlackPawn && toY != fromY-1) return FALSE; // deep
-       if(fromX != toX && gameInfo.variant == VariantShogi) return FALSE;
-       // note we are not allowed to test for valid (non-)capture, due to premove
-    }
-
-    // we either have a choice what to promote to, or (in Shogi) whether to promote
-    if(gameInfo.variant == VariantShatranj || gameInfo.variant == VariantCourier ||
-       gameInfo.variant == VariantMakruk) {
-       ChessSquare p=BlackFerz;  // no choice
-       while(p < EmptySquare) {  //but make sure we use piece that exists
-           *promoChoice = PieceToChar(p++);
-           if(*promoChoice != '.') break;
-       }
-       if(!*engineVariant) return FALSE; // if used as parent variant there might be promotion choice
-    }
-    // no sense asking what we must promote to if it is going to explode...
-    if(gameInfo.variant == VariantAtomic && boards[currentMove][toY][toX] != EmptySquare) {
-       *promoChoice = PieceToChar(BlackQueen); // Queen as good as any
-       return FALSE;
-    }
-    // give caller the default choice even if we will not make it
-    *promoChoice = ToLower(PieceToChar(defaultPromoChoice));
-    partner = piece; // pieces can promote if the pieceToCharTable says so
-    if(IS_SHOGI(gameInfo.variant)) *promoChoice = (defaultPromoChoice == piece && sweepSelect ? '=' : '+'); // obsolete?
-    else if(Partner(&partner))     *promoChoice = (defaultPromoChoice == piece && sweepSelect ? NULLCHAR : '+');
-    if(        sweepSelect && gameInfo.variant != VariantGreat
-                          && gameInfo.variant != VariantGrand
-                          && gameInfo.variant != VariantSuper) return FALSE;
-    if(autoQueen) return FALSE; // predetermined
-
-    // suppress promotion popup on illegal moves that are not premoves
-    premove = gameMode == IcsPlayingWhite && !WhiteOnMove(currentMove) ||
-             gameMode == IcsPlayingBlack &&  WhiteOnMove(currentMove);
-    if(appData.testLegality && !premove) {
-       moveType = LegalityTest(boards[currentMove], PosFlags(currentMove),
-                       fromY, fromX, toY, toX, IS_SHOGI(gameInfo.variant) || gameInfo.variant == VariantChuChess ? '+' : NULLCHAR);
-        if(moveType == IllegalMove) *promoChoice = NULLCHAR; // could be the fact we promoted was illegal
-       if(moveType != WhitePromotion && moveType  != BlackPromotion)
-           return FALSE;
-    }
-
-    return TRUE;
-}
-
-int
-InPalace (int row, int column)
-{   /* [HGM] for Xiangqi */
-    if( (row < 3 || row > BOARD_HEIGHT-4) &&
-         column < (BOARD_WIDTH + 4)/2 &&
-         column > (BOARD_WIDTH - 5)/2 ) return TRUE;
-    return FALSE;
-}
-
-int
-PieceForSquare (int x, int y)
-{
-  if (x < 0 || x >= BOARD_WIDTH || y < 0 || y >= BOARD_HEIGHT)
-     return -1;
-  else
-     return boards[currentMove][y][x];
-}
-
-int
-OKToStartUserMove (int x, int y)
-{
-    ChessSquare from_piece;
-    int white_piece;
-
-    if (matchMode) return FALSE;
-    if (gameMode == EditPosition) return TRUE;
-
-    if (x >= 0 && y >= 0)
-      from_piece = boards[currentMove][y][x];
-    else
-      from_piece = EmptySquare;
-
-    if (from_piece == EmptySquare) return FALSE;
-
-    white_piece = (int)from_piece >= (int)WhitePawn &&
-      (int)from_piece < (int)BlackPawn; /* [HGM] can be > King! */
-
-    switch (gameMode) {
-      case AnalyzeFile:
-      case TwoMachinesPlay:
-      case EndOfGame:
-       return FALSE;
-
-      case IcsObserving:
-      case IcsIdle:
-       return FALSE;
-
-      case MachinePlaysWhite:
-      case IcsPlayingBlack:
-       if (appData.zippyPlay) return FALSE;
-       if (white_piece) {
-           DisplayMoveError(_("You are playing Black"));
-           return FALSE;
-       }
-       break;
-
-      case MachinePlaysBlack:
-      case IcsPlayingWhite:
-       if (appData.zippyPlay) return FALSE;
-       if (!white_piece) {
-           DisplayMoveError(_("You are playing White"));
-           return FALSE;
-       }
-       break;
-
-      case PlayFromGameFile:
-           if(!shiftKey || !appData.variations) return FALSE; // [HGM] allow starting variation in this mode
-      case EditGame:
-      case AnalyzeMode:
-       if (!white_piece && WhiteOnMove(currentMove)) {
-           DisplayMoveError(_("It is White's turn"));
-           return FALSE;
-       }
-       if (white_piece && !WhiteOnMove(currentMove)) {
-           DisplayMoveError(_("It is Black's turn"));
-           return FALSE;
-       }
-       if (cmailMsgLoaded && (currentMove < cmailOldMove)) {
-           /* Editing correspondence game history */
-           /* Could disallow this or prompt for confirmation */
-           cmailOldMove = -1;
-       }
-       break;
-
-      case BeginningOfGame:
-       if (appData.icsActive) return FALSE;
-       if (!appData.noChessProgram) {
-           if (!white_piece) {
-               DisplayMoveError(_("You are playing White"));
-               return FALSE;
-           }
-       }
-       break;
-
-      case Training:
-       if (!white_piece && WhiteOnMove(currentMove)) {
-           DisplayMoveError(_("It is White's turn"));
-           return FALSE;
-       }
-       if (white_piece && !WhiteOnMove(currentMove)) {
-           DisplayMoveError(_("It is Black's turn"));
-           return FALSE;
-       }
-       break;
-
-      default:
-      case IcsExamining:
-       break;
-    }
-    if (currentMove != forwardMostMove && gameMode != AnalyzeMode
-       && gameMode != EditGame // [HGM] vari: treat as AnalyzeMode
-       && gameMode != PlayFromGameFile // [HGM] as EditGame, with protected main line
-       && gameMode != AnalyzeFile && gameMode != Training) {
-       DisplayMoveError(_("Displayed position is not current"));
-       return FALSE;
-    }
-    return TRUE;
-}
-
-Boolean
-OnlyMove (int *x, int *y, Boolean captures)
-{
-    DisambiguateClosure cl;
-    if (appData.zippyPlay || !appData.testLegality) return FALSE;
-    switch(gameMode) {
-      case MachinePlaysBlack:
-      case IcsPlayingWhite:
-      case BeginningOfGame:
-       if(!WhiteOnMove(currentMove)) return FALSE;
-       break;
-      case MachinePlaysWhite:
-      case IcsPlayingBlack:
-       if(WhiteOnMove(currentMove)) return FALSE;
-       break;
-      case EditGame:
-        break;
-      default:
-       return FALSE;
-    }
-    cl.pieceIn = EmptySquare;
-    cl.rfIn = *y;
-    cl.ffIn = *x;
-    cl.rtIn = -1;
-    cl.ftIn = -1;
-    cl.promoCharIn = NULLCHAR;
-    Disambiguate(boards[currentMove], PosFlags(currentMove), &cl);
-    if( cl.kind == NormalMove ||
-       cl.kind == AmbiguousMove && captures && cl.captures == 1 ||
-       cl.kind == WhitePromotion || cl.kind == BlackPromotion ||
-       cl.kind == WhiteCapturesEnPassant || cl.kind == BlackCapturesEnPassant) {
-      fromX = cl.ff;
-      fromY = cl.rf;
-      *x = cl.ft;
-      *y = cl.rt;
-      return TRUE;
-    }
-    if(cl.kind != ImpossibleMove) return FALSE;
-    cl.pieceIn = EmptySquare;
-    cl.rfIn = -1;
-    cl.ffIn = -1;
-    cl.rtIn = *y;
-    cl.ftIn = *x;
-    cl.promoCharIn = NULLCHAR;
-    Disambiguate(boards[currentMove], PosFlags(currentMove), &cl);
-    if( cl.kind == NormalMove ||
-       cl.kind == AmbiguousMove && captures && cl.captures == 1 ||
-       cl.kind == WhitePromotion || cl.kind == BlackPromotion ||
-       cl.kind == WhiteCapturesEnPassant || cl.kind == BlackCapturesEnPassant) {
-      fromX = cl.ff;
-      fromY = cl.rf;
-      *x = cl.ft;
-      *y = cl.rt;
-      autoQueen = TRUE; // act as if autoQueen on when we click to-square
-      return TRUE;
-    }
-    return FALSE;
-}
-
-FILE *lastLoadGameFP = NULL, *lastLoadPositionFP = NULL;
-int lastLoadGameNumber = 0, lastLoadPositionNumber = 0;
-int lastLoadGameUseList = FALSE;
-char lastLoadGameTitle[MSG_SIZ], lastLoadPositionTitle[MSG_SIZ];
-ChessMove lastLoadGameStart = EndOfFile;
-int doubleClick;
-Boolean addToBookFlag;
-static Board rightsBoard, nullBoard;
-
-void
-UserMoveEvent (int fromX, int fromY, int toX, int toY, int promoChar)
-{
-    ChessMove moveType;
-    ChessSquare pup;
-    int ff=fromX, rf=fromY, ft=toX, rt=toY;
-
-    /* Check if the user is playing in turn.  This is complicated because we
-       let the user "pick up" a piece before it is his turn.  So the piece he
-       tried to pick up may have been captured by the time he puts it down!
-       Therefore we use the color the user is supposed to be playing in this
-       test, not the color of the piece that is currently on the starting
-       square---except in EditGame mode, where the user is playing both
-       sides; fortunately there the capture race can't happen.  (It can
-       now happen in IcsExamining mode, but that's just too bad.  The user
-       will get a somewhat confusing message in that case.)
-       */
-
-    switch (gameMode) {
-      case AnalyzeFile:
-      case TwoMachinesPlay:
-      case EndOfGame:
-      case IcsObserving:
-      case IcsIdle:
-       /* We switched into a game mode where moves are not accepted,
-           perhaps while the mouse button was down. */
-        return;
-
-      case MachinePlaysWhite:
-       /* User is moving for Black */
-       if (WhiteOnMove(currentMove)) {
-           DisplayMoveError(_("It is White's turn"));
-            return;
-       }
-       break;
-
-      case MachinePlaysBlack:
-       /* User is moving for White */
-       if (!WhiteOnMove(currentMove)) {
-           DisplayMoveError(_("It is Black's turn"));
-            return;
-       }
-       break;
-
-      case PlayFromGameFile:
-           if(!shiftKey ||!appData.variations) return; // [HGM] only variations
-      case EditGame:
-      case IcsExamining:
-      case BeginningOfGame:
-      case AnalyzeMode:
-      case Training:
-       if(fromY == DROP_RANK) break; // [HGM] drop moves (entered through move type-in) are automatically assigned to side-to-move
-       if ((int) boards[currentMove][fromY][fromX] >= (int) BlackPawn &&
-            (int) boards[currentMove][fromY][fromX] < (int) EmptySquare) {
-           /* User is moving for Black */
-           if (WhiteOnMove(currentMove)) {
-               DisplayMoveError(_("It is White's turn"));
-                return;
-           }
-       } else {
-           /* User is moving for White */
-           if (!WhiteOnMove(currentMove)) {
-               DisplayMoveError(_("It is Black's turn"));
-                return;
-           }
-       }
-       break;
-
-      case IcsPlayingBlack:
-       /* User is moving for Black */
-       if (WhiteOnMove(currentMove)) {
-           if (!appData.premove) {
-               DisplayMoveError(_("It is White's turn"));
-           } else if (toX >= 0 && toY >= 0) {
-               premoveToX = toX;
-               premoveToY = toY;
-               premoveFromX = fromX;
-               premoveFromY = fromY;
-               premovePromoChar = promoChar;
-               gotPremove = 1;
-               if (appData.debugMode)
-                   fprintf(debugFP, "Got premove: fromX %d,"
-                           "fromY %d, toX %d, toY %d\n",
-                           fromX, fromY, toX, toY);
-           }
-            DrawPosition(TRUE, boards[currentMove]); // [HGM] repair animation damage done by premove (in particular emptying from-square)
-            return;
-       }
-       break;
-
-      case IcsPlayingWhite:
-       /* User is moving for White */
-       if (!WhiteOnMove(currentMove)) {
-           if (!appData.premove) {
-               DisplayMoveError(_("It is Black's turn"));
-           } else if (toX >= 0 && toY >= 0) {
-               premoveToX = toX;
-               premoveToY = toY;
-               premoveFromX = fromX;
-               premoveFromY = fromY;
-               premovePromoChar = promoChar;
-               gotPremove = 1;
-               if (appData.debugMode)
-                   fprintf(debugFP, "Got premove: fromX %d,"
-                           "fromY %d, toX %d, toY %d\n",
-                           fromX, fromY, toX, toY);
-           }
-            DrawPosition(TRUE, boards[currentMove]);
-            return;
-       }
-       break;
-
-      default:
-       break;
-
-      case EditPosition:
-       /* EditPosition, empty square, or different color piece;
-          click-click move is possible */
-       if (toX == -2 || toY == -2) {
-           boards[0][fromY][fromX] = (boards[0][fromY][fromX] == EmptySquare ? DarkSquare : EmptySquare);
-           DrawPosition(FALSE, boards[currentMove]);
-           return;
-       } else if (toX >= 0 && toY >= 0) {
-           if(!appData.pieceMenu && toX == fromX && toY == fromY && boards[0][rf][ff] != EmptySquare) {
-               ChessSquare p = boards[0][rf][ff];
-               if(PieceToChar(p) == '+') gatingPiece = CHUDEMOTED(p); else
-               if(PieceToChar(CHUPROMOTED(p)) =='+') gatingPiece = CHUPROMOTED(p); else
-               if(p == WhiteKing || p == BlackKing || p == WhiteRook || p == BlackRook || p == WhitePawn || p == BlackPawn) {
-                   int n = rightsBoard[toY][toX] ^= 1; // toggle virginity of K or R
-                   DisplayMessage("", n ? _("rights granted") : _("rights revoked"));
-                   gatingPiece = p;
-               }
-           } else  rightsBoard[toY][toX] = 0;  // revoke rights on moving
-           boards[0][toY][toX] = boards[0][fromY][fromX];
-           if(fromX == BOARD_LEFT-2) { // handle 'moves' out of holdings
-               if(boards[0][fromY][0] != EmptySquare) {
-                   if(boards[0][fromY][1]) boards[0][fromY][1]--;
-                   if(boards[0][fromY][1] == 0)  boards[0][fromY][0] = EmptySquare;
-               }
-           } else
-           if(fromX == BOARD_RGHT+1) {
-               if(boards[0][fromY][BOARD_WIDTH-1] != EmptySquare) {
-                   if(boards[0][fromY][BOARD_WIDTH-2]) boards[0][fromY][BOARD_WIDTH-2]--;
-                   if(boards[0][fromY][BOARD_WIDTH-2] == 0)  boards[0][fromY][BOARD_WIDTH-1] = EmptySquare;
-               }
-           } else
-           boards[0][fromY][fromX] = gatingPiece;
-           ClearHighlights();
-           DrawPosition(FALSE, boards[currentMove]);
-           return;
-       }
-        return;
-    }
-
-    if((toX < 0 || toY < 0) && (fromY != DROP_RANK || fromX != EmptySquare)) return;
-    pup = boards[currentMove][toY][toX];
-
-    /* [HGM] If move started in holdings, it means a drop. Convert to standard form */
-    if( (fromX == BOARD_LEFT-2 || fromX == BOARD_RGHT+1) && fromY != DROP_RANK ) {
-         if( pup != EmptySquare ) return;
-         moveType = WhiteOnMove(currentMove) ? WhiteDrop : BlackDrop;
-          if(appData.debugMode) fprintf(debugFP, "Drop move %d, curr=%d, x=%d,y=%d, p=%d\n",
-               moveType, currentMove, fromX, fromY, boards[currentMove][fromY][fromX]);
-          // holdings might not be sent yet in ICS play; we have to figure out which piece belongs here
-          if(fromX == 0) fromY = BOARD_HEIGHT-1 - fromY; // black holdings upside-down
-          fromX = fromX ? WhitePawn : BlackPawn; // first piece type in selected holdings
-          while(PieceToChar(fromX) == '.' || PieceToChar(fromX) == '+' || PieceToNumber(fromX) != fromY && fromX != (int) EmptySquare) fromX++;
-         fromY = DROP_RANK;
-    }
-
-    /* [HGM] always test for legality, to get promotion info */
-    moveType = LegalityTest(boards[currentMove], PosFlags(currentMove),
-                                         fromY, fromX, toY, toX, promoChar);
-
-    if(fromY == DROP_RANK && fromX == EmptySquare && (gameMode == AnalyzeMode || gameMode == EditGame || PosFlags(0) & F_NULL_MOVE)) moveType = NormalMove;
-
-    if(moveType == IllegalMove && legal[toY][toX] > 1) moveType = NormalMove; // someone explicitly told us this move is legal
-
-    /* [HGM] but possibly ignore an IllegalMove result */
-    if (appData.testLegality) {
-       if (moveType == IllegalMove || moveType == ImpossibleMove) {
-           DisplayMoveError(_("Illegal move"));
-            return;
-       }
-    }
-
-    if(doubleClick && gameMode == AnalyzeMode) { // [HGM] exclude: move entered with double-click on from square is for exclusion, not playing
-        if(ExcludeOneMove(fromY, fromX, toY, toX, promoChar, '*')) // toggle
-            ClearPremoveHighlights(); // was included
-       else ClearHighlights(), SetPremoveHighlights(ff, rf, ft, rt); // exclusion indicated  by premove highlights
-       DrawPosition(FALSE, NULL);
-       return;
-    }
-
-    if(addToBookFlag) { // adding moves to book
-       char buf[MSG_SIZ], move[MSG_SIZ];
-        CoordsToAlgebraic(boards[currentMove], PosFlags(currentMove), fromY, fromX, toY, toX, promoChar, move);
-       if(killX >= 0) snprintf(move, MSG_SIZ, "%c%dx%c%d-%c%d%c", fromX + AAA, fromY + ONE - '0',
-                                                                  killX + AAA, killY + ONE - '0', toX + AAA, toY + ONE - '0', promoChar);
-       snprintf(buf, MSG_SIZ, "  0.0%%     1  %s\n", move);
-       AddBookMove(buf);
-       addToBookFlag = FALSE;
-       ClearHighlights();
-       return;
-    }
-
-    FinishMove(moveType, fromX, fromY, toX, toY, promoChar);
-}
-
-/* Common tail of UserMoveEvent and DropMenuEvent */
-int
-FinishMove (ChessMove moveType, int fromX, int fromY, int toX, int toY, int promoChar)
-{
-    char *bookHit = 0;
-
-    if((gameInfo.variant == VariantSuper || gameInfo.variant == VariantGreat || gameInfo.variant == VariantGrand) && promoChar != NULLCHAR) {
-       // [HGM] superchess: suppress promotions to non-available piece (but P always allowed)
-       int k = PieceToNumber(CharToPiece(ToUpper(promoChar)));
-       if(WhiteOnMove(currentMove)) {
-           if(!boards[currentMove][k][BOARD_WIDTH-2]) return 0;
-       } else {
-           if(!boards[currentMove][BOARD_HEIGHT-1-k][1]) return 0;
-       }
-    }
-
-    /* [HGM] <popupFix> kludge to avoid having to know the exact promotion
-       move type in caller when we know the move is a legal promotion */
-    if(moveType == NormalMove && promoChar)
-        moveType = WhiteOnMove(currentMove) ? WhitePromotion : BlackPromotion;
-
-    /* [HGM] <popupFix> The following if has been moved here from
-       UserMoveEvent(). Because it seemed to belong here (why not allow
-       piece drops in training games?), and because it can only be
-       performed after it is known to what we promote. */
-    if (gameMode == Training) {
-      /* compare the move played on the board to the next move in the
-       * game. If they match, display the move and the opponent's response.
-       * If they don't match, display an error message.
-       */
-      int saveAnimate;
-      Board testBoard;
-      CopyBoard(testBoard, boards[currentMove]);
-      ApplyMove(fromX, fromY, toX, toY, promoChar, testBoard);
-
-      if (CompareBoards(testBoard, boards[currentMove+1])) {
-       ForwardInner(currentMove+1);
-
-       /* Autoplay the opponent's response.
-        * if appData.animate was TRUE when Training mode was entered,
-        * the response will be animated.
-        */
-       saveAnimate = appData.animate;
-       appData.animate = animateTraining;
-       ForwardInner(currentMove+1);
-       appData.animate = saveAnimate;
-
-       /* check for the end of the game */
-       if (currentMove >= forwardMostMove) {
-         gameMode = PlayFromGameFile;
-         ModeHighlight();
-         SetTrainingModeOff();
-         DisplayInformation(_("End of game"));
-       }
-      } else {
-       DisplayError(_("Incorrect move"), 0);
-      }
-      return 1;
-    }
-
-  /* Ok, now we know that the move is good, so we can kill
-     the previous line in Analysis Mode */
-  if ((gameMode == AnalyzeMode || gameMode == EditGame || gameMode == PlayFromGameFile && appData.variations && shiftKey)
-                               && currentMove < forwardMostMove) {
-    if(appData.variations && shiftKey) PushTail(currentMove, forwardMostMove); // [HGM] vari: save tail of game
-    else forwardMostMove = currentMove;
-  }
-
-  ClearMap();
-
-  /* If we need the chess program but it's dead, restart it */
-  ResurrectChessProgram();
-
-  /* A user move restarts a paused game*/
-  if (pausing)
-    PauseEvent();
-
-  thinkOutput[0] = NULLCHAR;
-
-  MakeMove(fromX, fromY, toX, toY, promoChar); /*updates forwardMostMove*/
-
-  if(Adjudicate(NULL)) { // [HGM] adjudicate: take care of automatic game end
-    ShowMove(fromX, fromY, toX, toY); /*updates currentMove*/
-    return 1;
-  }
-
-  if (gameMode == BeginningOfGame) {
-    if (appData.noChessProgram) {
-      gameMode = EditGame;
-      SetGameInfo();
-    } else {
-      char buf[MSG_SIZ];
-      gameMode = MachinePlaysBlack;
-      StartClocks();
-      SetGameInfo();
-      snprintf(buf, MSG_SIZ, "%s %s %s", gameInfo.white, _("vs."), gameInfo.black);
-      DisplayTitle(buf);
-      if (first.sendName) {
-       snprintf(buf, MSG_SIZ,"name %s\n", gameInfo.white);
-       SendToProgram(buf, &first);
-      }
-      StartClocks();
-    }
-    ModeHighlight();
-  }
-
-  /* Relay move to ICS or chess engine */
-  if (appData.icsActive) {
-    if (gameMode == IcsPlayingWhite || gameMode == IcsPlayingBlack ||
-       gameMode == IcsExamining) {
-      if(userOfferedDraw && (signed char)boards[forwardMostMove][EP_STATUS] <= EP_DRAWS) {
-        SendToICS(ics_prefix); // [HGM] drawclaim: send caim and move on one line for FICS
-       SendToICS("draw ");
-        SendMoveToICS(moveType, fromX, fromY, toX, toY, promoChar);
-      }
-      // also send plain move, in case ICS does not understand atomic claims
-      SendMoveToICS(moveType, fromX, fromY, toX, toY, promoChar);
-      ics_user_moved = 1;
-    }
-  } else {
-    if (first.sendTime && (gameMode == BeginningOfGame ||
-                          gameMode == MachinePlaysWhite ||
-                          gameMode == MachinePlaysBlack)) {
-      SendTimeRemaining(&first, gameMode != MachinePlaysBlack);
-    }
-    if (gameMode != EditGame && gameMode != PlayFromGameFile && gameMode != AnalyzeMode) {
-        // [HGM] book: if program might be playing, let it use book
-       bookHit = SendMoveToBookUser(forwardMostMove-1, &first, FALSE);
-       first.maybeThinking = TRUE;
-    } else if(fromY == DROP_RANK && fromX == EmptySquare) {
-       if(!first.useSetboard) SendToProgram("undo\n", &first); // kludge to change stm in engines that do not support setboard
-       SendBoard(&first, currentMove+1);
-       if(second.analyzing) {
-           if(!second.useSetboard) SendToProgram("undo\n", &second);
-           SendBoard(&second, currentMove+1);
-       }
-    } else {
-       SendMoveToProgram(forwardMostMove-1, &first);
-       if(second.analyzing) SendMoveToProgram(forwardMostMove-1, &second);
-    }
-    if (currentMove == cmailOldMove + 1) {
-      cmailMoveType[lastLoadGameNumber - 1] = CMAIL_MOVE;
-    }
-  }
-
-  ShowMove(fromX, fromY, toX, toY); /*updates currentMove*/
-
-  switch (gameMode) {
-  case EditGame:
-    if(appData.testLegality)
-    switch (MateTest(boards[currentMove], PosFlags(currentMove)) ) {
-    case MT_NONE:
-    case MT_CHECK:
-      break;
-    case MT_CHECKMATE:
-    case MT_STAINMATE:
-      if (WhiteOnMove(currentMove)) {
-       GameEnds(BlackWins, "Black mates", GE_PLAYER);
-      } else {
-       GameEnds(WhiteWins, "White mates", GE_PLAYER);
-      }
-      break;
-    case MT_STALEMATE:
-      GameEnds(GameIsDrawn, "Stalemate", GE_PLAYER);
-      break;
-    }
-    break;
-
-  case MachinePlaysBlack:
-  case MachinePlaysWhite:
-    /* disable certain menu options while machine is thinking */
-    SetMachineThinkingEnables();
-    break;
-
-  default:
-    break;
-  }
-
-  userOfferedDraw = FALSE; // [HGM] drawclaim: after move made, and tested for claimable draw
-  promoDefaultAltered = FALSE; // [HGM] fall back on default choice
-
-  if(bookHit) { // [HGM] book: simulate book reply
-       static char bookMove[MSG_SIZ]; // a bit generous?
-
-       programStats.nodes = programStats.depth = programStats.time =
-       programStats.score = programStats.got_only_move = 0;
-       sprintf(programStats.movelist, "%s (xbook)", bookHit);
-
-       safeStrCpy(bookMove, "move ", sizeof(bookMove)/sizeof(bookMove[0]));
-       strcat(bookMove, bookHit);
-       HandleMachineMove(bookMove, &first);
-  }
-  return 1;
-}
-
-void
-MarkByFEN(char *fen)
-{
-       int r, f;
-       if(!appData.markers || !appData.highlightDragging) return;
-       for(r=0; r<BOARD_HEIGHT; r++) for(f=BOARD_LEFT; f<BOARD_RGHT; f++) legal[r][f] = 0;
-       r=BOARD_HEIGHT-1; f=BOARD_LEFT;
-       while(*fen) {
-           int s = 0;
-           marker[r][f] = 0;
-           if(*fen == 'M') legal[r][f] = 2; else // request promotion choice
-           if(*fen >= 'A' && *fen <= 'Z') legal[r][f] = 3; else
-           if(*fen >= 'a' && *fen <= 'z') *fen += 'A' - 'a';
-           if(*fen == '/' && f > BOARD_LEFT) f = BOARD_LEFT, r--; else
-           if(*fen == 'T') marker[r][f++] = 0; else
-           if(*fen == 'Y') marker[r][f++] = 1; else
-           if(*fen == 'G') marker[r][f++] = 3; else
-           if(*fen == 'B') marker[r][f++] = 4; else
-           if(*fen == 'C') marker[r][f++] = 5; else
-           if(*fen == 'M') marker[r][f++] = 6; else
-           if(*fen == 'W') marker[r][f++] = 7; else
-           if(*fen == 'D') marker[r][f++] = 8; else
-           if(*fen == 'R') marker[r][f++] = 2; else {
-               while(*fen <= '9' && *fen >= '0') s = 10*s + *fen++ - '0';
-             f += s; fen -= s>0;
-           }
-           while(f >= BOARD_RGHT) f -= BOARD_RGHT - BOARD_LEFT, r--;
-           if(r < 0) break;
-           fen++;
-       }
-       DrawPosition(TRUE, NULL);
-}
-
-static char baseMarker[BOARD_RANKS][BOARD_FILES], baseLegal[BOARD_RANKS][BOARD_FILES];
-
-void
-Mark (Board board, int flags, ChessMove kind, int rf, int ff, int rt, int ft, VOIDSTAR closure)
-{
-    typedef char Markers[BOARD_RANKS][BOARD_FILES];
-    Markers *m = (Markers *) closure;
-    if(rf == fromY && ff == fromX && (killX < 0 ? !(rt == rf && ft == ff) && legNr & 1 :
-                                     kill2X < 0 ? rt == killY && ft == killX || legNr & 2 : rt == killY && ft == killX || legNr & 4))
-       (*m)[rt][ft] = 1 + (board[rt][ft] != EmptySquare
-                        || kind == WhiteCapturesEnPassant
-                        || kind == BlackCapturesEnPassant) + 3*(kind == FirstLeg && (killX < 0 & legNr || legNr & 2 && kill2X < 0)), legal[rt][ft] = 3;
-    else if(flags & F_MANDATORY_CAPTURE && board[rt][ft] != EmptySquare) (*m)[rt][ft] = 3, legal[rt][ft] = 3;
-}
-
-static int hoverSavedValid;
-
-void
-MarkTargetSquares (int clear)
-{
-  int x, y, sum=0;
-  if(clear) { // no reason to ever suppress clearing
-    for(x=0; x<BOARD_WIDTH; x++) for(y=0; y<BOARD_HEIGHT; y++) sum += marker[y][x], marker[y][x] = 0;
-    hoverSavedValid = 0;
-    if(!sum || clear < 0) return; // nothing was cleared,no redraw needed
-  } else {
-    int capt = 0;
-    if(!appData.markers || !appData.highlightDragging || appData.icsActive && gameInfo.variant < VariantShogi ||
-       !appData.testLegality && !pieceDefs || gameMode == EditPosition) return;
-    GenLegal(boards[currentMove], PosFlags(currentMove), Mark, (void*) marker, EmptySquare);
-    if(PosFlags(0) & F_MANDATORY_CAPTURE) {
-      for(x=0; x<BOARD_WIDTH; x++) for(y=0; y<BOARD_HEIGHT; y++) if(marker[y][x]>1) capt++;
-      if(capt)
-      for(x=0; x<BOARD_WIDTH; x++) for(y=0; y<BOARD_HEIGHT; y++) if(marker[y][x] == 1) marker[y][x] = 0;
-    }
-  }
-  DrawPosition(FALSE, NULL);
-}
-
-int
-Explode (Board board, int fromX, int fromY, int toX, int toY)
-{
-    if(gameInfo.variant == VariantAtomic &&
-       (board[toY][toX] != EmptySquare ||                     // capture?
-        toX != fromX && (board[fromY][fromX] == WhitePawn ||  // e.p. ?
-                         board[fromY][fromX] == BlackPawn   )
-      )) {
-        AnimateAtomicCapture(board, fromX, fromY, toX, toY);
-        return TRUE;
-    }
-    return FALSE;
-}
-
-ChessSquare gatingPiece = EmptySquare; // exported to front-end, for dragging
-
-int
-CanPromote (ChessSquare piece, int y)
-{
-        int zone = (gameInfo.variant == VariantChuChess ? 3 : 1);
-       if(gameMode == EditPosition) return FALSE; // no promotions when editing position
-       // some variants have fixed promotion piece, no promotion at all, or another selection mechanism
-       if(IS_SHOGI(gameInfo.variant)          || gameInfo.variant == VariantXiangqi ||
-          gameInfo.variant == VariantSuper    || gameInfo.variant == VariantGreat   ||
-         (gameInfo.variant == VariantShatranj || gameInfo.variant == VariantCourier ||
-           gameInfo.variant == VariantMakruk) && !*engineVariant) return FALSE;
-       return (piece == BlackPawn && y <= zone ||
-               piece == WhitePawn && y >= BOARD_HEIGHT-1-zone ||
-               piece == BlackLance && y <= zone ||
-               piece == WhiteLance && y >= BOARD_HEIGHT-1-zone );
-}
-
-void
-HoverEvent (int xPix, int yPix, int x, int y)
-{
-       static int oldX = -1, oldY = -1, oldFromX = -1, oldFromY = -1;
-       int r, f;
-       if(!first.highlight) return;
-       if(fromX != oldFromX || fromY != oldFromY)  oldX = oldY = -1; // kludge to fake entry on from-click
-       if(x == oldX && y == oldY) return; // only do something if we enter new square
-       oldFromX = fromX; oldFromY = fromY;
-       if(oldX == -1 && oldY == -1 && x == fromX && y == fromY) { // record markings after from-change
-         for(r=0; r<BOARD_HEIGHT; r++) for(f=BOARD_LEFT; f<BOARD_RGHT; f++)
-           baseMarker[r][f] = marker[r][f], baseLegal[r][f] = legal[r][f];
-         hoverSavedValid = 1;
-       } else if(oldX != x || oldY != y) {
-         // [HGM] lift: entered new to-square; redraw arrow, and inform engine
-         if(hoverSavedValid) // don't restore markers that are supposed to be cleared
-         for(r=0; r<BOARD_HEIGHT; r++) for(f=BOARD_LEFT; f<BOARD_RGHT; f++)
-           marker[r][f] = baseMarker[r][f], legal[r][f] = baseLegal[r][f];
-         if((marker[y][x] == 2 || marker[y][x] == 6) && legal[y][x]) {
-           char buf[MSG_SIZ];
-           snprintf(buf, MSG_SIZ, "hover %c%d\n", x + AAA, y + ONE - '0');
-           SendToProgram(buf, &first);
-         }
-         oldX = x; oldY = y;
-//       SetHighlights(fromX, fromY, x, y);
-       }
-}
-
-void ReportClick(char *action, int x, int y)
-{
-       char buf[MSG_SIZ]; // Inform engine of what user does
-       int r, f;
-       if(action[0] == 'l') // mark any target square of a lifted piece as legal to-square, clear markers
-         for(r=0; r<BOARD_HEIGHT; r++) for(f=BOARD_LEFT; f<BOARD_RGHT; f++)
-           legal[r][f] = !pieceDefs || !appData.markers, marker[r][f] = 0;
-       if(!first.highlight || gameMode == EditPosition) return;
-       snprintf(buf, MSG_SIZ, "%s %c%d%s\n", action, x+AAA, y+ONE-'0', controlKey && action[0]=='p' ? "," : "");
-       SendToProgram(buf, &first);
-}
-
-Boolean right; // instructs front-end to use button-1 events as if they were button 3
-
-void
-LeftClick (ClickType clickType, int xPix, int yPix)
-{
-    int x, y;
-    Boolean saveAnimate;
-    static int second = 0, promotionChoice = 0, clearFlag = 0, sweepSelecting = 0, flashing = 0, saveFlash;
-    char promoChoice = NULLCHAR;
-    ChessSquare piece;
-    static TimeMark lastClickTime, prevClickTime;
-
-    if(flashing) return;
-
-    x = EventToSquare(xPix, BOARD_WIDTH);
-    y = EventToSquare(yPix, BOARD_HEIGHT);
-    if (!flipView && y >= 0) {
-       y = BOARD_HEIGHT - 1 - y;
-    }
-    if (flipView && x >= 0) {
-       x = BOARD_WIDTH - 1 - x;
-    }
-
-    if(appData.monoMouse && gameMode == EditPosition && fromX < 0 && clickType == Press && boards[currentMove][y][x] == EmptySquare) {
-       static int dummy;
-       RightClick(clickType, xPix, yPix, &dummy, &dummy);
-       right = TRUE;
-       return;
-    }
-
-    if(SeekGraphClick(clickType, xPix, yPix, 0)) return;
-
-    prevClickTime = lastClickTime; GetTimeMark(&lastClickTime);
-
-    if (clickType == Press) ErrorPopDown();
-    lastClickType = clickType, lastLeftX = xPix, lastLeftY = yPix; // [HGM] alien: remember state
-
-    if(promoSweep != EmptySquare) { // up-click during sweep-select of promo-piece
-       defaultPromoChoice = promoSweep;
-       promoSweep = EmptySquare;   // terminate sweep
-       promoDefaultAltered = TRUE;
-       if(!selectFlag && !sweepSelecting && (x != toX || y != toY)) x = fromX, y = fromY; // and fake up-click on same square if we were still selecting
-    }
-
-    if(promotionChoice) { // we are waiting for a click to indicate promotion piece
-       if(clickType == Release) return; // ignore upclick of click-click destination
-       promotionChoice = FALSE; // only one chance: if click not OK it is interpreted as cancel
-       if(appData.debugMode) fprintf(debugFP, "promotion click, x=%d, y=%d\n", x, y);
-       if(gameInfo.holdingsWidth &&
-               (WhiteOnMove(currentMove)
-                       ? x == BOARD_WIDTH-1 && y < gameInfo.holdingsSize && y >= 0
-                       : x == 0 && y >= BOARD_HEIGHT - gameInfo.holdingsSize && y < BOARD_HEIGHT) ) {
-           // click in right holdings, for determining promotion piece
-           ChessSquare p = boards[currentMove][y][x];
-           if(appData.debugMode) fprintf(debugFP, "square contains %d\n", (int)p);
-           if(p == WhitePawn || p == BlackPawn) p = EmptySquare; // [HGM] Pawns could be valid as deferral
-           if(p != EmptySquare || gameInfo.variant == VariantGrand && toY != 0 && toY != BOARD_HEIGHT-1) { // [HGM] grand: empty square means defer
-               FinishMove(NormalMove, fromX, fromY, toX, toY, p==EmptySquare ? NULLCHAR : ToLower(PieceToChar(p)));
-               fromX = fromY = -1;
-               return;
-           }
-       }
-       DrawPosition(FALSE, boards[currentMove]);
-       return;
-    }
-
-    /* [HGM] holdings: next 5 lines: ignore all clicks between board and holdings */
-    if(clickType == Press
-            && ( x == BOARD_LEFT-1 || x == BOARD_RGHT
-              || x == BOARD_LEFT-2 && y < BOARD_HEIGHT-gameInfo.holdingsSize
-              || x == BOARD_RGHT+1 && y >= gameInfo.holdingsSize) )
-       return;
-
-    if(gotPremove && x == premoveFromX && y == premoveFromY && clickType == Release) {
-       // could be static click on premove from-square: abort premove
-       gotPremove = 0;
-       ClearPremoveHighlights();
-    }
-
-    if(clickType == Press && fromX == x && fromY == y && promoDefaultAltered && SubtractTimeMarks(&lastClickTime, &prevClickTime) >= 200)
-       fromX = fromY = -1; // second click on piece after altering default promo piece treated as first click
-
-    if(!promoDefaultAltered) { // determine default promotion piece, based on the side the user is moving for
-       int side = (gameMode == IcsPlayingWhite || gameMode == MachinePlaysBlack ||
-                   gameMode != MachinePlaysWhite && gameMode != IcsPlayingBlack && WhiteOnMove(currentMove));
-       defaultPromoChoice = DefaultPromoChoice(side);
-    }
-
-    autoQueen = appData.alwaysPromoteToQueen;
-
-    if (fromX == -1) {
-      int originalY = y;
-      gatingPiece = EmptySquare;
-      if (clickType != Press) {
-       if(dragging) { // [HGM] from-square must have been reset due to game end since last press
-           DragPieceEnd(xPix, yPix); dragging = 0;
-           DrawPosition(FALSE, NULL);
-       }
-       return;
-      }
-      doubleClick = FALSE;
-      if(gameMode == AnalyzeMode && (pausing || controlKey) && first.excludeMoves) { // use pause state to exclude moves
-       doubleClick = TRUE; gatingPiece = boards[currentMove][y][x];
-      }
-      fromX = x; fromY = y; toX = toY = killX = killY = kill2X = kill2Y = -1;
-      if(!appData.oneClick || !OnlyMove(&x, &y, FALSE) ||
-        // even if only move, we treat as normal when this would trigger a promotion popup, to allow sweep selection
-        appData.sweepSelect && CanPromote(boards[currentMove][fromY][fromX], fromY) && originalY != y) {
-           /* First square */
-           if (OKToStartUserMove(fromX, fromY)) {
-               second = 0;
-               ReportClick("lift", x, y);
-               MarkTargetSquares(0);
-               if(gameMode == EditPosition && controlKey) gatingPiece = boards[currentMove][fromY][fromX];
-               DragPieceBegin(xPix, yPix, FALSE); dragging = 1;
-               if(appData.sweepSelect && CanPromote(piece = boards[currentMove][fromY][fromX], fromY)) {
-                   promoSweep = defaultPromoChoice;
-                   selectFlag = 0; lastX = xPix; lastY = yPix; *promoRestrict = 0;
-                   Sweep(0); // Pawn that is going to promote: preview promotion piece
-                   DisplayMessage("", _("Pull pawn backwards to under-promote"));
-               }
-               if (appData.highlightDragging) {
-                   SetHighlights(fromX, fromY, -1, -1);
-               } else {
-                   ClearHighlights();
-               }
-           } else fromX = fromY = -1;
-           return;
-       }
-    }
-
-    /* fromX != -1 */
-    if (clickType == Press && gameMode != EditPosition) {
-       ChessSquare fromP;
-       ChessSquare toP;
-       int frc;
-
-       // ignore off-board to clicks
-       if(y < 0 || x < 0) return;
-
-       /* Check if clicking again on the same color piece */
-       fromP = boards[currentMove][fromY][fromX];
-       toP = boards[currentMove][y][x];
-       frc = appData.fischerCastling || gameInfo.variant == VariantSChess;
-       if( (killX < 0 || x != fromX || y != fromY) && // [HGM] lion: do not interpret igui as deselect!
-           marker[y][x] == 0 && // if engine told we can move to here, do it even if own piece
-          ((WhitePawn <= fromP && fromP <= WhiteKing &&
-            WhitePawn <= toP && toP <= WhiteKing &&
-            !(fromP == WhiteKing && toP == WhiteRook && frc) &&
-            !(fromP == WhiteRook && toP == WhiteKing && frc)) ||
-           (BlackPawn <= fromP && fromP <= BlackKing &&
-            BlackPawn <= toP && toP <= BlackKing &&
-            !(fromP == BlackRook && toP == BlackKing && frc) && // allow also RxK as FRC castling
-            !(fromP == BlackKing && toP == BlackRook && frc)))) {
-           /* Clicked again on same color piece -- changed his mind */
-           second = (x == fromX && y == fromY);
-           killX = killY = kill2X = kill2Y = -1;
-           if(second && gameMode == AnalyzeMode && SubtractTimeMarks(&lastClickTime, &prevClickTime) < 200) {
-               second = FALSE; // first double-click rather than scond click
-               doubleClick = first.excludeMoves; // used by UserMoveEvent to recognize exclude moves
-           }
-           promoDefaultAltered = FALSE;
-          if(!second) MarkTargetSquares(1);
-          if(!(second && appData.oneClick && OnlyMove(&x, &y, TRUE))) {
-           if (appData.highlightDragging) {
-               SetHighlights(x, y, -1, -1);
-           } else {
-               ClearHighlights();
-           }
-           if (OKToStartUserMove(x, y)) {
-               if(gameInfo.variant == VariantSChess && // S-Chess: back-rank piece selected after holdings means gating
-                 (fromX == BOARD_LEFT-2 || fromX == BOARD_RGHT+1) &&
-               y == (toP < BlackPawn ? 0 : BOARD_HEIGHT-1))
-                 gatingPiece = boards[currentMove][fromY][fromX];
-               else gatingPiece = doubleClick ? fromP : EmptySquare;
-               fromX = x;
-               fromY = y; dragging = 1;
-               if(!second) ReportClick("lift", x, y);
-               MarkTargetSquares(0);
-               DragPieceBegin(xPix, yPix, FALSE);
-               if(appData.sweepSelect && CanPromote(piece = boards[currentMove][y][x], y)) {
-                   promoSweep = defaultPromoChoice;
-                   selectFlag = 0; lastX = xPix; lastY = yPix; *promoRestrict = 0;
-                   Sweep(0); // Pawn that is going to promote: preview promotion piece
-               }
-           }
-          }
-          if(x == fromX && y == fromY) return; // if OnlyMove altered (x,y) we go on
-          second = FALSE;
-       }
-       // ignore clicks on holdings
-       if(x < BOARD_LEFT || x >= BOARD_RGHT) return;
-    }
-
-    if(x == fromX && y == fromY && clickType == Press && gameMode == EditPosition && SubtractTimeMarks(&lastClickTime, &prevClickTime) < 200) {
-       gatingPiece = boards[currentMove][fromY][fromX]; // prepare to copy rather than move
-       DragPieceBegin(xPix, yPix, FALSE); dragging = 1;
-       return;
-    }
-
-    if (clickType == Release && x == fromX && y == fromY && killX < 0 && !sweepSelecting) {
-       DragPieceEnd(xPix, yPix); dragging = 0;
-       if(clearFlag) {
-           // a deferred attempt to click-click move an empty square on top of a piece
-           boards[currentMove][y][x] = EmptySquare;
-           ClearHighlights();
-           DrawPosition(FALSE, boards[currentMove]);
-           fromX = fromY = -1; clearFlag = 0;
-           return;
-       }
-       if (appData.animateDragging) {
-           /* Undo animation damage if any */
-           DrawPosition(FALSE, NULL);
-       }
-       if (second) {
-           /* Second up/down in same square; just abort move */
-           second = 0;
-           fromX = fromY = -1;
-           gatingPiece = EmptySquare;
-           ClearHighlights();
-           gotPremove = 0;
-           ClearPremoveHighlights();
-           MarkTargetSquares(-1);
-           DrawPosition(FALSE, NULL); // make user highlights are drawn (and deferred marker clearing)
-       } else {
-           /* First upclick in same square; start click-click mode */
-           SetHighlights(x, y, -1, -1);
-       }
-       return;
-    }
-
-    clearFlag = 0;
-
-    if(gameMode != EditPosition && !appData.testLegality && !legal[y][x] &&
-       fromX >= BOARD_LEFT && fromX < BOARD_RGHT && (x != killX || y != killY) && !sweepSelecting) {
-       if(dragging) DragPieceEnd(xPix, yPix), dragging = 0;
-       DisplayMessage(_("only marked squares are legal"),"");
-       DrawPosition(TRUE, NULL);
-       return; // ignore to-click
-    }
-
-    /* we now have a different from- and (possibly off-board) to-square */
-    /* Completed move */
-    if(!sweepSelecting) {
-       toX = x;
-       toY = y;
-    }
-
-    piece = boards[currentMove][fromY][fromX];
-
-    saveAnimate = appData.animate;
-    if (clickType == Press) {
-       if(gameInfo.variant == VariantChuChess && piece != WhitePawn && piece != BlackPawn) defaultPromoChoice = piece;
-       if(gameMode == EditPosition && boards[currentMove][fromY][fromX] == EmptySquare) {
-           // must be Edit Position mode with empty-square selected
-           fromX = x; fromY = y; DragPieceBegin(xPix, yPix, FALSE); dragging = 1; // consider this a new attempt to drag
-           if(x >= BOARD_LEFT && x < BOARD_RGHT) clearFlag = 1; // and defer click-click move of empty-square to up-click
-           return;
-       }
-       if(dragging == 2) {  // [HGM] lion: just turn buttonless drag into normal drag, and let release to the job
-           return;
-       }
-       if(x == killX && y == killY) {              // second click on this square, which was selected as first-leg target
-           killX = kill2X; killY = kill2Y; kill2X = kill2Y = -1;   // this informs us no second leg is coming, so treat as to-click without intermediate
-       } else
-       if(marker[y][x] == 5) return; // [HGM] lion: to-click on cyan square; defer action to release
-       if(legal[y][x] == 2 || HasPromotionChoice(fromX, fromY, toX, toY, &promoChoice, FALSE)) {
-         if(appData.sweepSelect) {
-           promoSweep = defaultPromoChoice;
-           if(gameInfo.variant != VariantChuChess && PieceToChar(CHUPROMOTED(piece)) == '+') promoSweep = CHUPROMOTED(piece);
-           selectFlag = 0; lastX = xPix; lastY = yPix;
-           ReportClick("put", x, y); // extra put to prompt engine for 'choice' command
-           saveFlash = appData.flashCount; appData.flashCount = 0;
-           Sweep(0); // Pawn that is going to promote: preview promotion piece
-           sweepSelecting = 1;
-           DisplayMessage("", _("Pull pawn backwards to under-promote"));
-           MarkTargetSquares(1);
-         }
-         return; // promo popup appears on up-click
-       }
-       /* Finish clickclick move */
-       if (appData.animate || appData.highlightLastMove) {
-           SetHighlights(fromX, fromY, toX, toY);
-       } else {
-           ClearHighlights();
-       }
-       MarkTargetSquares(1);
-    } else if(sweepSelecting) { // this must be the up-click corresponding to the down-click that started the sweep
-       sweepSelecting = 0; appData.animate = FALSE; // do not animate, a selected piece already on to-square
-        *promoRestrict = 0; appData.flashCount = saveFlash;
-       if (appData.animate || appData.highlightLastMove) {
-           SetHighlights(fromX, fromY, toX, toY);
-       } else {
-           ClearHighlights();
-       }
-       MarkTargetSquares(1);
-    } else {
-#if 0
-// [HGM] this must be done after the move is made, as with arrow it could lead to a board redraw with piece still on from square
-       /* Finish drag move */
-       if (appData.highlightLastMove) {
-           SetHighlights(fromX, fromY, toX, toY);
-       } else {
-           ClearHighlights();
-       }
-#endif
-       if(PieceToChar(CHUPROMOTED(boards[currentMove][fromY][fromX])) == '+')
-         defaultPromoChoice = CHUPROMOTED(boards[currentMove][fromY][fromX]);
-       if(gameInfo.variant == VariantChuChess && piece != WhitePawn && piece != BlackPawn) defaultPromoChoice = piece;
-       if(marker[y][x] == 5) { // [HGM] lion: this was the release of a to-click or drag on a cyan square
-         dragging *= 2;            // flag button-less dragging if we are dragging
-         MarkTargetSquares(1);
-         if(x == killX && y == killY) killX = kill2X, killY = kill2Y, kill2X = kill2Y = -1; // cancel last kill
-         else {
-           kill2X = killX; kill2Y = killY;
-           killX = x; killY = y;     // remember this square as intermediate
-           ReportClick("put", x, y); // and inform engine
-           ReportClick("lift", x, y);
-           MarkTargetSquares(0);
-           return;
-         }
-       }
-       DragPieceEnd(xPix, yPix); dragging = 0;
-       /* Don't animate move and drag both */
-       appData.animate = FALSE;
-        MarkTargetSquares(-1); // -1 defers displaying marker change to prevent piece reappearing on from-square!
-    }
-
-    // moves into holding are invalid for now (except in EditPosition, adapting to-square)
-    if(x >= 0 && x < BOARD_LEFT || x >= BOARD_RGHT) {
-       ChessSquare piece = boards[currentMove][fromY][fromX];
-       if(gameMode == EditPosition && piece != EmptySquare &&
-          fromX >= BOARD_LEFT && fromX < BOARD_RGHT) {
-           int n;
-
-           if(x == BOARD_LEFT-2 && piece >= BlackPawn) {
-               n = PieceToNumber(piece - (int)BlackPawn);
-               if(n >= gameInfo.holdingsSize) { n = 0; piece = BlackPawn; }
-               boards[currentMove][BOARD_HEIGHT-1 - n][0] = piece;
-               boards[currentMove][BOARD_HEIGHT-1 - n][1]++;
-           } else
-           if(x == BOARD_RGHT+1 && piece < BlackPawn) {
-               n = PieceToNumber(piece);
-               if(n >= gameInfo.holdingsSize) { n = 0; piece = WhitePawn; }
-               boards[currentMove][n][BOARD_WIDTH-1] = piece;
-               boards[currentMove][n][BOARD_WIDTH-2]++;
-           }
-           boards[currentMove][fromY][fromX] = EmptySquare;
-       }
-       ClearHighlights();
-       fromX = fromY = -1;
-        MarkTargetSquares(1);
-       DrawPosition(TRUE, boards[currentMove]);
-       return;
-    }
-
-    // off-board moves should not be highlighted
-    if(x < 0 || y < 0) ClearHighlights();
-    else ReportClick("put", x, y);
-
-    if(gatingPiece != EmptySquare && gameInfo.variant == VariantSChess) promoChoice = ToLower(PieceToChar(gatingPiece));
-
-    if(legal[toY][toX] == 2) promoChoice = ToLower(PieceToChar(defaultPromoChoice)); // highlight-induced promotion
-
-    if (legal[toY][toX] == 2 && !appData.sweepSelect || HasPromotionChoice(fromX, fromY, toX, toY, &promoChoice, appData.sweepSelect)) {
-       SetHighlights(fromX, fromY, toX, toY);
-        MarkTargetSquares(1);
-       if(gameInfo.variant == VariantSuper || gameInfo.variant == VariantGreat || gameInfo.variant == VariantGrand) {
-           // [HGM] super: promotion to captured piece selected from holdings
-           ChessSquare p = boards[currentMove][fromY][fromX], q = boards[currentMove][toY][toX];
-           promotionChoice = TRUE;
-           // kludge follows to temporarily execute move on display, without promoting yet
-           boards[currentMove][fromY][fromX] = EmptySquare; // move Pawn to 8th rank
-           boards[currentMove][toY][toX] = p;
-           DrawPosition(FALSE, boards[currentMove]);
-           boards[currentMove][fromY][fromX] = p; // take back, but display stays
-           boards[currentMove][toY][toX] = q;
-           DisplayMessage("Click in holdings to choose piece", "");
-           return;
-       }
-       PromotionPopUp(promoChoice);
-    } else {
-       int oldMove = currentMove;
-       flashing = 1; // prevent recursive calling (by release of to-click) while flashing piece
-       UserMoveEvent(fromX, fromY, toX, toY, promoChoice);
-       if (!appData.highlightLastMove || gotPremove) ClearHighlights();
-       if (gotPremove) SetPremoveHighlights(fromX, fromY, toX, toY), DrawPosition(FALSE, NULL);
-       if(saveAnimate && !appData.animate && currentMove != oldMove && // drag-move was performed
-          Explode(boards[currentMove-1], fromX, fromY, toX, toY))
-           DrawPosition(TRUE, boards[currentMove]);
-       fromX = fromY = -1;
-       flashing = 0;
-    }
-    appData.animate = saveAnimate;
-    if (appData.animate || appData.animateDragging) {
-       /* Undo animation damage if needed */
-//     DrawPosition(FALSE, NULL);
-    }
-}
-
-int
-RightClick (ClickType action, int x, int y, int *fromX, int *fromY)
-{   // front-end-free part taken out of PieceMenuPopup
-    int whichMenu; int xSqr, ySqr;
-
-    if(seekGraphUp) { // [HGM] seekgraph
-       if(action == Press)   SeekGraphClick(Press, x, y, 2); // 2 indicates right-click: no pop-down on miss
-       if(action == Release) SeekGraphClick(Release, x, y, 2); // and no challenge on hit
-       return -2;
-    }
-
-    if((gameMode == IcsPlayingWhite || gameMode == IcsPlayingBlack)
-        && !appData.zippyPlay && appData.bgObserve) { // [HGM] bughouse: show background game
-       if(!partnerBoardValid) return -2; // suppress display of uninitialized boards
-       if( appData.dualBoard) return -2; // [HGM] dual: is already displayed
-       if(action == Press)   {
-           originalFlip = flipView;
-           flipView = !flipView; // temporarily flip board to see game from partners perspective
-           DrawPosition(TRUE, partnerBoard);
-           DisplayMessage(partnerStatus, "");
-           partnerUp = TRUE;
-       } else if(action == Release) {
-           flipView = originalFlip;
-           DrawPosition(TRUE, boards[currentMove]);
-           partnerUp = FALSE;
-       }
-       return -2;
-    }
-
-    xSqr = EventToSquare(x, BOARD_WIDTH);
-    ySqr = EventToSquare(y, BOARD_HEIGHT);
-    if (action == Release) {
-       if(pieceSweep != EmptySquare) {
-           EditPositionMenuEvent(pieceSweep, toX, toY);
-           pieceSweep = EmptySquare;
-       } else UnLoadPV(); // [HGM] pv
-    }
-    if (action != Press) return -2; // return code to be ignored
-    switch (gameMode) {
-      case IcsExamining:
-       if(xSqr < BOARD_LEFT || xSqr >= BOARD_RGHT) return -1;
-      case EditPosition:
-       if (xSqr == BOARD_LEFT-1 || xSqr == BOARD_RGHT) return -1;
-       if (xSqr < 0 || ySqr < 0) return -1;
-       if(appData.pieceMenu) { whichMenu = 0; break; } // edit-position menu
-       pieceSweep = shiftKey ? BlackPawn : WhitePawn;  // [HGM] sweep: prepare selecting piece by mouse sweep
-       toX = xSqr; toY = ySqr; lastX = x, lastY = y;
-       if(flipView) toX = BOARD_WIDTH - 1 - toX; else toY = BOARD_HEIGHT - 1 - toY;
-       NextPiece(0);
-       return 2; // grab
-      case IcsObserving:
-       if(!appData.icsEngineAnalyze) return -1;
-      case IcsPlayingWhite:
-      case IcsPlayingBlack:
-       if(!appData.zippyPlay) goto noZip;
-      case AnalyzeMode:
-      case AnalyzeFile:
-      case MachinePlaysWhite:
-      case MachinePlaysBlack:
-      case TwoMachinesPlay: // [HGM] pv: use for showing PV
-       if (!appData.dropMenu) {
-         LoadPV(x, y);
-         return 2; // flag front-end to grab mouse events
-       }
-       if(gameMode == TwoMachinesPlay || gameMode == AnalyzeMode ||
-           gameMode == AnalyzeFile || gameMode == IcsObserving) return -1;
-      case EditGame:
-      noZip:
-       if (xSqr < 0 || ySqr < 0) return -1;
-       if (!appData.dropMenu || appData.testLegality &&
-           gameInfo.variant != VariantBughouse &&
-           gameInfo.variant != VariantCrazyhouse) return -1;
-       whichMenu = 1; // drop menu
-       break;
-      default:
-       return -1;
-    }
-
-    if (((*fromX = xSqr) < 0) ||
-       ((*fromY = ySqr) < 0)) {
-       *fromX = *fromY = -1;
-       return -1;
-    }
-    if (flipView)
-      *fromX = BOARD_WIDTH - 1 - *fromX;
-    else
-      *fromY = BOARD_HEIGHT - 1 - *fromY;
-
-    return whichMenu;
-}
-
-void
-Wheel (int dir, int x, int y)
-{
-    if(gameMode == EditPosition) {
-       int xSqr = EventToSquare(x, BOARD_WIDTH);
-       int ySqr = EventToSquare(y, BOARD_HEIGHT);
-       if(ySqr < 0 || xSqr < BOARD_LEFT || xSqr >= BOARD_RGHT) return;
-       if(flipView) xSqr = BOARD_WIDTH - 1 - xSqr; else ySqr = BOARD_HEIGHT - 1 - ySqr;
-       do {
-           boards[currentMove][ySqr][xSqr] += dir;
-           if((int) boards[currentMove][ySqr][xSqr] < WhitePawn) boards[currentMove][ySqr][xSqr] = BlackKing;
-           if((int) boards[currentMove][ySqr][xSqr] > BlackKing) boards[currentMove][ySqr][xSqr] = WhitePawn;
-       } while(PieceToChar(boards[currentMove][ySqr][xSqr]) == '.');
-       DrawPosition(FALSE, boards[currentMove]);
-    } else if(dir > 0) ForwardEvent(); else BackwardEvent();
-}
-
-void
-SendProgramStatsToFrontend (ChessProgramState * cps, ChessProgramStats * cpstats)
-{
-//    char * hint = lastHint;
-    FrontEndProgramStats stats;
-
-    stats.which = cps == &first ? 0 : 1;
-    stats.depth = cpstats->depth;
-    stats.nodes = cpstats->nodes;
-    stats.score = cpstats->score;
-    stats.time = cpstats->time;
-    stats.pv = cpstats->movelist;
-    stats.hint = lastHint;
-    stats.an_move_index = 0;
-    stats.an_move_count = 0;
-
-    if( gameMode == AnalyzeMode || gameMode == AnalyzeFile ) {
-        stats.hint = cpstats->move_name;
-        stats.an_move_index = cpstats->nr_moves - cpstats->moves_left;
-        stats.an_move_count = cpstats->nr_moves;
-    }
-
-    if(stats.pv && stats.pv[0]) safeStrCpy(lastPV[stats.which], stats.pv, sizeof(lastPV[stats.which])/sizeof(lastPV[stats.which][0])); // [HGM] pv: remember last PV of each
-
-    if( gameMode == AnalyzeMode && stats.pv && stats.pv[0]
-        && appData.analysisBell && stats.time >= 100*appData.analysisBell ) RingBell();
-
-    SetProgramStats( &stats );
-}
-
-void
-ClearEngineOutputPane (int which)
-{
-    static FrontEndProgramStats dummyStats;
-    dummyStats.which = which;
-    dummyStats.pv = "#";
-    SetProgramStats( &dummyStats );
-}
-
-#define MAXPLAYERS 500
-
-char *
-TourneyStandings (int display)
-{
-    int i, w, b, color, wScore, bScore, dummy, nr=0, nPlayers=0;
-    int score[MAXPLAYERS], ranking[MAXPLAYERS], points[MAXPLAYERS], games[MAXPLAYERS];
-    char result, *p, *names[MAXPLAYERS];
-
-    if(appData.tourneyType < 0 && !strchr(appData.results, '*'))
-       return strdup(_("Swiss tourney finished")); // standings of Swiss yet TODO
-    names[0] = p = strdup(appData.participants);
-    while(p = strchr(p, '\n')) *p++ = NULLCHAR, names[++nPlayers] = p; // count participants
-
-    for(i=0; i<nPlayers; i++) score[i] = games[i] = 0;
-
-    while(result = appData.results[nr]) {
-       color = Pairing(nr, nPlayers, &w, &b, &dummy);
-       if(!(color ^ matchGame & 1)) { dummy = w; w = b; b = dummy; }
-       wScore = bScore = 0;
-       switch(result) {
-         case '+': wScore = 2; break;
-         case '-': bScore = 2; break;
-         case '=': wScore = bScore = 1; break;
-         case ' ':
-         case '*': return strdup("busy"); // tourney not finished
-       }
-       score[w] += wScore;
-       score[b] += bScore;
-       games[w]++;
-       games[b]++;
-       nr++;
-    }
-    if(appData.tourneyType > 0) nPlayers = appData.tourneyType; // in gauntlet, list only gauntlet engine(s)
-    for(w=0; w<nPlayers; w++) {
-       bScore = -1;
-       for(i=0; i<nPlayers; i++) if(score[i] > bScore) bScore = score[i], b = i;
-       ranking[w] = b; points[w] = bScore; score[b] = -2;
-    }
-    p = malloc(nPlayers*34+1);
-    for(w=0; w<nPlayers && w<display; w++)
-       sprintf(p+34*w, "%2d. %5.1f/%-3d %-19.19s\n", w+1, points[w]/2., games[ranking[w]], names[ranking[w]]);
-    free(names[0]);
-    return p;
-}
-
-void
-Count (Board board, int pCnt[], int *nW, int *nB, int *wStale, int *bStale, int *bishopColor)
-{      // count all piece types
-       int p, f, r;
-       *nB = *nW = *wStale = *bStale = *bishopColor = 0;
-       for(p=WhitePawn; p<=EmptySquare; p++) pCnt[p] = 0;
-       for(r=0; r<BOARD_HEIGHT; r++) for(f=BOARD_LEFT; f<BOARD_RGHT; f++) {
-               p = board[r][f];
-               pCnt[p]++;
-               if(p == WhitePawn && r == BOARD_HEIGHT-1) (*wStale)++; else
-               if(p == BlackPawn && r == 0) (*bStale)++; // count last-Rank Pawns (XQ) separately
-               if(p <= WhiteKing) (*nW)++; else if(p <= BlackKing) (*nB)++;
-               if(p == WhiteBishop || p == WhiteFerz || p == WhiteAlfil ||
-                  p == BlackBishop || p == BlackFerz || p == BlackAlfil   )
-                       *bishopColor |= 1 << ((f^r)&1); // track square color of color-bound pieces
-       }
-}
-
-int
-SufficientDefence (int pCnt[], int side, int nMine, int nHis)
-{
-       int myPawns = pCnt[WhitePawn+side]; // my total Pawn count;
-       int majorDefense = pCnt[BlackRook-side] + pCnt[BlackCannon-side] + pCnt[BlackKnight-side];
-
-       nMine -= pCnt[WhiteFerz+side] + pCnt[WhiteAlfil+side]; // discount defenders
-       if(nMine - myPawns > 2) return FALSE; // no trivial draws with more than 1 major
-       if(myPawns == 2 && nMine == 3) // KPP
-           return majorDefense || pCnt[BlackFerz-side] + pCnt[BlackAlfil-side] >= 3;
-       if(myPawns == 1 && nMine == 2) // KP
-           return majorDefense || pCnt[BlackFerz-side] + pCnt[BlackAlfil-side]  + pCnt[BlackPawn-side] >= 1;
-       if(myPawns == 1 && nMine == 3 && pCnt[WhiteKnight+side]) // KHP
-           return majorDefense || pCnt[BlackFerz-side] + pCnt[BlackAlfil-side]*2 >= 5;
-       if(myPawns) return FALSE;
-       if(pCnt[WhiteRook+side])
-           return pCnt[BlackRook-side] ||
-                  pCnt[BlackCannon-side] && (pCnt[BlackFerz-side] >= 2 || pCnt[BlackAlfil-side] >= 2) ||
-                  pCnt[BlackKnight-side] && pCnt[BlackFerz-side] + pCnt[BlackAlfil-side] > 2 ||
-                  pCnt[BlackFerz-side] + pCnt[BlackAlfil-side] >= 4;
-       if(pCnt[WhiteCannon+side]) {
-           if(pCnt[WhiteFerz+side] + myPawns == 0) return TRUE; // Cannon needs platform
-           return majorDefense || pCnt[BlackAlfil-side] >= 2;
-       }
-       if(pCnt[WhiteKnight+side])
-           return majorDefense || pCnt[BlackFerz-side] >= 2 || pCnt[BlackAlfil-side] + pCnt[BlackPawn-side] >= 1;
-       return FALSE;
-}
-
-int
-MatingPotential (int pCnt[], int side, int nMine, int nHis, int stale, int bisColor)
-{
-       VariantClass v = gameInfo.variant;
-
-       if(v == VariantShogi || v == VariantCrazyhouse || v == VariantBughouse) return TRUE; // drop games always winnable
-       if(v == VariantShatranj) return TRUE; // always winnable through baring
-       if(v == VariantLosers || v == VariantSuicide || v == VariantGiveaway) return TRUE;
-       if(v == Variant3Check || v == VariantAtomic) return nMine > 1; // can win through checking / exploding King
-
-       if(v == VariantXiangqi) {
-               int majors = 5*pCnt[BlackKnight-side] + 7*pCnt[BlackCannon-side] + 7*pCnt[BlackRook-side];
-
-               nMine -= pCnt[WhiteFerz+side] + pCnt[WhiteAlfil+side] + stale; // discount defensive pieces and back-rank Pawns
-               if(nMine + stale == 1) return (pCnt[BlackFerz-side] > 1 && pCnt[BlackKnight-side] > 0); // bare K can stalemate KHAA (!)
-               if(nMine > 2) return TRUE; // if we don't have P, H or R, we must have CC
-               if(nMine == 2 && pCnt[WhiteCannon+side] == 0) return TRUE; // We have at least one P, H or R
-               // if we get here, we must have KC... or KP..., possibly with additional A, E or last-rank P
-               if(stale) // we have at least one last-rank P plus perhaps C
-                   return majors // KPKX
-                       || pCnt[BlackFerz-side] && pCnt[BlackFerz-side] + pCnt[WhiteCannon+side] + stale > 2; // KPKAA, KPPKA and KCPKA
-               else // KCA*E*
-                   return pCnt[WhiteFerz+side] // KCAK
-                       || pCnt[WhiteAlfil+side] && pCnt[BlackRook-side] + pCnt[BlackCannon-side] + pCnt[BlackFerz-side] // KCEKA, KCEKX (X!=H)
-                       || majors + (12*pCnt[BlackFerz-side] | 6*pCnt[BlackAlfil-side]) > 16; // KCKAA, KCKAX, KCKEEX, KCKEXX (XX!=HH), KCKXXX
-               // TO DO: cases wih an unpromoted f-Pawn acting as platform for an opponent Cannon
-
-       } else if(v == VariantKnightmate) {
-               if(nMine == 1) return FALSE;
-               if(nMine == 2 && nHis == 1 && pCnt[WhiteBishop+side] + pCnt[WhiteFerz+side] + pCnt[WhiteKnight+side]) return FALSE; // KBK is only draw
-       } else if(pCnt[WhiteKing] == 1 && pCnt[BlackKing] == 1) { // other variants with orthodox Kings
-               int nBishops = pCnt[WhiteBishop+side] + pCnt[WhiteFerz+side];
-
-               if(nMine == 1) return FALSE; // bare King
-               if(nBishops && bisColor == 3) return TRUE; // There must be a second B/A/F, which can either block (his) or attack (mine) the escape square
-               nMine += (nBishops > 0) - nBishops; // By now all Bishops (and Ferz) on like-colored squares, so count as one
-               if(nMine > 2 && nMine != pCnt[WhiteAlfil+side] + 1) return TRUE; // At least two pieces, not all Alfils
-               // by now we have King + 1 piece (or multiple Bishops on the same color)
-               if(pCnt[WhiteKnight+side])
-                       return (pCnt[BlackKnight-side] + pCnt[BlackBishop-side] + pCnt[BlackMan-side] +
-                               pCnt[BlackWazir-side] + pCnt[BlackSilver-side] + bisColor // KNKN, KNKB, KNKF, KNKE, KNKW, KNKM, KNKS
-                            || nHis > 3); // be sure to cover suffocation mates in corner (e.g. KNKQCA)
-               if(nBishops)
-                       return (pCnt[BlackKnight-side]); // KBKN, KFKN
-               if(pCnt[WhiteAlfil+side])
-                       return (nHis > 2); // Alfils can in general not reach a corner square, but there might be edge (suffocation) mates
-               if(pCnt[WhiteWazir+side])
-                       return (pCnt[BlackKnight-side] + pCnt[BlackWazir-side] + pCnt[BlackAlfil-side]); // KWKN, KWKW, KWKE
-       }
-
-       return TRUE;
-}
-
-int
-CompareWithRights (Board b1, Board b2)
-{
-    int rights = 0;
-    if(!CompareBoards(b1, b2)) return FALSE;
-    if(b1[EP_STATUS] != b2[EP_STATUS]) return FALSE;
-    /* compare castling rights */
-    if( b1[CASTLING][2] != b2[CASTLING][2] && (b2[CASTLING][0] != NoRights || b2[CASTLING][1] != NoRights) )
-           rights++; /* King lost rights, while rook still had them */
-    if( b1[CASTLING][2] != NoRights ) { /* king has rights */
-        if( b1[CASTLING][0] != b2[CASTLING][0] || b1[CASTLING][1] != b2[CASTLING][1] )
-           rights++; /* but at least one rook lost them */
-    }
-    if( b1[CASTLING][5] != b1[CASTLING][5] && (b2[CASTLING][3] != NoRights || b2[CASTLING][4] != NoRights) )
-           rights++;
-    if( b1[CASTLING][5] != NoRights ) {
-        if( b1[CASTLING][3] != b2[CASTLING][3] || b1[CASTLING][4] != b2[CASTLING][4] )
-           rights++;
-    }
-    return rights == 0;
-}
-
-int
-Adjudicate (ChessProgramState *cps)
-{      // [HGM] some adjudications useful with buggy engines
-       // [HGM] adjudicate: made into separate routine, which now can be called after every move
-       //       In any case it determnes if the game is a claimable draw (filling in EP_STATUS).
-       //       Actually ending the game is now based on the additional internal condition canAdjudicate.
-       //       Only when the game is ended, and the opponent is a computer, this opponent gets the move relayed.
-       int k, drop, count = 0; static int bare = 1;
-       ChessProgramState *engineOpponent = (gameMode == TwoMachinesPlay ? cps->other : (cps ? NULL : &first));
-       Boolean canAdjudicate = !appData.icsActive;
-
-       // most tests only when we understand the game, i.e. legality-checking on
-           if( appData.testLegality )
-           {   /* [HGM] Some more adjudications for obstinate engines */
-               int nrW, nrB, bishopColor, staleW, staleB, nr[EmptySquare+2], i;
-               static int moveCount = 6;
-               ChessMove result;
-               char *reason = NULL;
-
-                /* Count what is on board. */
-               Count(boards[forwardMostMove], nr, &nrW, &nrB, &staleW, &staleB, &bishopColor);
-
-               /* Some material-based adjudications that have to be made before stalemate test */
-               if(gameInfo.variant == VariantAtomic && nr[WhiteKing] + nr[BlackKing] < 2) {
-                   // [HGM] atomic: stm must have lost his King on previous move, as destroying own K is illegal
-                    boards[forwardMostMove][EP_STATUS] = EP_CHECKMATE; // make claimable as if stm is checkmated
-                    if(canAdjudicate && appData.checkMates) {
-                        if(engineOpponent)
-                          SendMoveToProgram(forwardMostMove-1, engineOpponent); // make sure opponent gets move
-                         GameEnds( WhiteOnMove(forwardMostMove) ? BlackWins : WhiteWins,
-                                                       "Xboard adjudication: King destroyed", GE_XBOARD );
-                         return 1;
-                    }
-               }
-
-               /* Bare King in Shatranj (loses) or Losers (wins) */
-                if( nrW == 1 || nrB == 1) {
-                  if( gameInfo.variant == VariantLosers) { // [HGM] losers: bare King wins (stm must have it first)
-                    boards[forwardMostMove][EP_STATUS] = EP_WINS;  // mark as win, so it becomes claimable
-                    if(canAdjudicate && appData.checkMates) {
-                        if(engineOpponent)
-                          SendMoveToProgram(forwardMostMove-1, engineOpponent); // make sure opponent gets to see move
-                         GameEnds( WhiteOnMove(forwardMostMove) ? WhiteWins : BlackWins,
-                                                       "Xboard adjudication: Bare king", GE_XBOARD );
-                         return 1;
-                    }
-                 } else
-                  if( gameInfo.variant == VariantShatranj && --bare < 0)
-                  {    /* bare King */
-                       boards[forwardMostMove][EP_STATUS] = EP_WINS; // make claimable as win for stm
-                       if(canAdjudicate && appData.checkMates) {
-                           /* but only adjudicate if adjudication enabled */
-                           if(engineOpponent)
-                             SendMoveToProgram(forwardMostMove-1, engineOpponent); // make sure opponent gets move
-                           GameEnds( nrW > 1 ? WhiteWins : nrB > 1 ? BlackWins : GameIsDrawn,
-                                                       "Xboard adjudication: Bare king", GE_XBOARD );
-                           return 1;
-                       }
-                 }
-                } else bare = 1;
-
-
-            // don't wait for engine to announce game end if we can judge ourselves
-            switch (MateTest(boards[forwardMostMove], PosFlags(forwardMostMove)) ) {
-             case MT_CHECK:
-               if(gameInfo.variant == Variant3Check) { // [HGM] 3check: when in check, test if 3rd time
-                   int i, checkCnt = 0;    // (should really be done by making nr of checks part of game state)
-                   for(i=forwardMostMove-2; i>=backwardMostMove; i-=2) {
-                       if(MateTest(boards[i], PosFlags(i)) == MT_CHECK)
-                           checkCnt++;
-                       if(checkCnt >= 2) {
-                           reason = "Xboard adjudication: 3rd check";
-                           boards[forwardMostMove][EP_STATUS] = EP_CHECKMATE;
-                           break;
-                       }
-                   }
-               }
-             case MT_NONE:
-             default:
-               break;
-             case MT_STEALMATE:
-             case MT_STALEMATE:
-             case MT_STAINMATE:
-               reason = "Xboard adjudication: Stalemate";
-               if((signed char)boards[forwardMostMove][EP_STATUS] != EP_CHECKMATE) { // [HGM] don't touch win through baring or K-capt
-                   boards[forwardMostMove][EP_STATUS] = EP_STALEMATE;   // default result for stalemate is draw
-                   if(gameInfo.variant == VariantLosers  || gameInfo.variant == VariantGiveaway) // [HGM] losers:
-                       boards[forwardMostMove][EP_STATUS] = EP_WINS;    // in these variants stalemated is always a win
-                   else if(gameInfo.variant == VariantSuicide) // in suicide it depends
-                       boards[forwardMostMove][EP_STATUS] = nrW == nrB ? EP_STALEMATE :
-                                                  ((nrW < nrB) != WhiteOnMove(forwardMostMove) ?
-                                                                       EP_CHECKMATE : EP_WINS);
-                   else if(gameInfo.variant == VariantShatranj || gameInfo.variant == VariantXiangqi || gameInfo.variant == VariantShogi)
-                       boards[forwardMostMove][EP_STATUS] = EP_CHECKMATE; // and in these variants being stalemated loses
-               }
-               break;
-             case MT_CHECKMATE:
-               reason = "Xboard adjudication: Checkmate";
-               boards[forwardMostMove][EP_STATUS] = (gameInfo.variant == VariantLosers ? EP_WINS : EP_CHECKMATE);
-               if(gameInfo.variant == VariantShogi) {
-                   if(forwardMostMove > backwardMostMove
-                      && moveList[forwardMostMove-1][1] == '@'
-                      && CharToPiece(ToUpper(moveList[forwardMostMove-1][0])) == WhitePawn) {
-                       reason = "XBoard adjudication: pawn-drop mate";
-                       boards[forwardMostMove][EP_STATUS] = EP_WINS;
-                   }
-               }
-               break;
-           }
-
-               switch(i = (signed char)boards[forwardMostMove][EP_STATUS]) {
-                   case EP_STALEMATE:
-                       result = GameIsDrawn; break;
-                   case EP_CHECKMATE:
-                       result = WhiteOnMove(forwardMostMove) ? BlackWins : WhiteWins; break;
-                   case EP_WINS:
-                       result = WhiteOnMove(forwardMostMove) ? WhiteWins : BlackWins; break;
-                   default:
-                       result = EndOfFile;
-               }
-                if(canAdjudicate && appData.checkMates && result) { // [HGM] mates: adjudicate finished games if requested
-                   if(engineOpponent)
-                     SendMoveToProgram(forwardMostMove-1, engineOpponent); /* make sure opponent gets to see move */
-                   GameEnds( result, reason, GE_XBOARD );
-                   return 1;
-               }
-
-                /* Next absolutely insufficient mating material. */
-                if(!MatingPotential(nr, WhitePawn, nrW, nrB, staleW, bishopColor) &&
-                   !MatingPotential(nr, BlackPawn, nrB, nrW, staleB, bishopColor))
-                {    /* includes KBK, KNK, KK of KBKB with like Bishops */
-
-                     /* always flag draws, for judging claims */
-                     boards[forwardMostMove][EP_STATUS] = EP_INSUF_DRAW;
-
-                     if(canAdjudicate && appData.materialDraws) {
-                         /* but only adjudicate them if adjudication enabled */
-                        if(engineOpponent) {
-                          SendToProgram("force\n", engineOpponent); // suppress reply
-                          SendMoveToProgram(forwardMostMove-1, engineOpponent); /* make sure opponent gets to see last move */
-                        }
-                         GameEnds( GameIsDrawn, "Xboard adjudication: Insufficient mating material", GE_XBOARD );
-                         return 1;
-                     }
-                }
-
-                /* Then some trivial draws (only adjudicate, cannot be claimed) */
-                if(gameInfo.variant == VariantXiangqi ?
-                       SufficientDefence(nr, WhitePawn, nrW, nrB) && SufficientDefence(nr, BlackPawn, nrB, nrW)
-                 : nrW + nrB == 4 &&
-                   (   nr[WhiteRook] == 1 && nr[BlackRook] == 1 /* KRKR */
-                   || nr[WhiteQueen] && nr[BlackQueen]==1     /* KQKQ */
-                   || nr[WhiteKnight]==2 || nr[BlackKnight]==2     /* KNNK */
-                   || nr[WhiteKnight]+nr[WhiteBishop] == 1 && nr[BlackKnight]+nr[BlackBishop] == 1 /* KBKN, KBKB, KNKN */
-                   ) ) {
-                     if(--moveCount < 0 && appData.trivialDraws && canAdjudicate)
-                     {    /* if the first 3 moves do not show a tactical win, declare draw */
-                         if(engineOpponent) {
-                           SendToProgram("force\n", engineOpponent); // suppress reply
-                           SendMoveToProgram(forwardMostMove-1, engineOpponent); /* make sure opponent gets to see move */
-                         }
-                          GameEnds( GameIsDrawn, "Xboard adjudication: Trivial draw", GE_XBOARD );
-                          return 1;
-                     }
-                } else moveCount = 6;
-           }
-
-       // Repetition draws and 50-move rule can be applied independently of legality testing
-
-                /* Check for rep-draws */
-                count = 0;
-                drop = gameInfo.holdingsSize && (gameInfo.variant != VariantSuper && gameInfo.variant != VariantSChess
-                                              && gameInfo.variant != VariantGreat && gameInfo.variant != VariantGrand);
-                for(k = forwardMostMove-2;
-                    k>=backwardMostMove && k>=forwardMostMove-100 && (drop ||
-                        (signed char)boards[k][EP_STATUS] < EP_UNKNOWN &&
-                        (signed char)boards[k+2][EP_STATUS] <= EP_NONE && (signed char)boards[k+1][EP_STATUS] <= EP_NONE);
-                    k-=2)
-                {   int rights=0;
-                    if(CompareBoards(boards[k], boards[forwardMostMove])) {
-                        /* compare castling rights */
-                        if( boards[forwardMostMove][CASTLING][2] != boards[k][CASTLING][2] &&
-                             (boards[k][CASTLING][0] != NoRights || boards[k][CASTLING][1] != NoRights) )
-                                rights++; /* King lost rights, while rook still had them */
-                        if( boards[forwardMostMove][CASTLING][2] != NoRights ) { /* king has rights */
-                            if( boards[forwardMostMove][CASTLING][0] != boards[k][CASTLING][0] ||
-                                boards[forwardMostMove][CASTLING][1] != boards[k][CASTLING][1] )
-                                   rights++; /* but at least one rook lost them */
-                        }
-                        if( boards[forwardMostMove][CASTLING][5] != boards[k][CASTLING][5] &&
-                             (boards[k][CASTLING][3] != NoRights || boards[k][CASTLING][4] != NoRights) )
-                                rights++;
-                        if( boards[forwardMostMove][CASTLING][5] != NoRights ) {
-                            if( boards[forwardMostMove][CASTLING][3] != boards[k][CASTLING][3] ||
-                                boards[forwardMostMove][CASTLING][4] != boards[k][CASTLING][4] )
-                                   rights++;
-                        }
-                        if( rights == 0 && ++count > appData.drawRepeats-2 && canAdjudicate
-                            && appData.drawRepeats > 1) {
-                             /* adjudicate after user-specified nr of repeats */
-                            int result = GameIsDrawn;
-                            char *details = "XBoard adjudication: repetition draw";
-                            if((gameInfo.variant == VariantXiangqi || gameInfo.variant == VariantShogi) && appData.testLegality) {
-                               // [HGM] xiangqi: check for forbidden perpetuals
-                               int m, ourPerpetual = 1, hisPerpetual = 1;
-                               for(m=forwardMostMove; m>k; m-=2) {
-                                   if(MateTest(boards[m], PosFlags(m)) != MT_CHECK)
-                                       ourPerpetual = 0; // the current mover did not always check
-                                   if(MateTest(boards[m-1], PosFlags(m-1)) != MT_CHECK)
-                                       hisPerpetual = 0; // the opponent did not always check
-                               }
-                               if(appData.debugMode) fprintf(debugFP, "XQ perpetual test, our=%d, his=%d\n",
-                                                                       ourPerpetual, hisPerpetual);
-                               if(ourPerpetual && !hisPerpetual) { // we are actively checking him: forfeit
-                                   result = WhiteOnMove(forwardMostMove) ? WhiteWins : BlackWins;
-                                   details = "Xboard adjudication: perpetual checking";
-                               } else
-                               if(hisPerpetual && !ourPerpetual) { // he is checking us, but did not repeat yet
-                                   break; // (or we would have caught him before). Abort repetition-checking loop.
-                               } else
-                               if(gameInfo.variant == VariantShogi) { // in Shogi other repetitions are draws
-                                   if(BOARD_HEIGHT == 5 && BOARD_RGHT - BOARD_LEFT == 5) { // but in mini-Shogi gote wins!
-                                       result = BlackWins;
-                                       details = "Xboard adjudication: repetition";
-                                   }
-                               } else // it must be XQ
-                               // Now check for perpetual chases
-                               if(!ourPerpetual && !hisPerpetual) { // no perpetual check, test for chase
-                                   hisPerpetual = PerpetualChase(k, forwardMostMove);
-                                   ourPerpetual = PerpetualChase(k+1, forwardMostMove);
-                                   if(ourPerpetual && !hisPerpetual) { // we are actively chasing him: forfeit
-                                       static char resdet[MSG_SIZ];
-                                       result = WhiteOnMove(forwardMostMove) ? WhiteWins : BlackWins;
-                                       details = resdet;
-                                       snprintf(resdet, MSG_SIZ, "Xboard adjudication: perpetual chasing of %c%c", ourPerpetual>>8, ourPerpetual&255);
-                                   } else
-                                   if(hisPerpetual && !ourPerpetual)   // he is chasing us, but did not repeat yet
-                                       break; // Abort repetition-checking loop.
-                               }
-                               // if neither of us is checking or chasing all the time, or both are, it is draw
-                            }
-                            if(engineOpponent) {
-                              SendToProgram("force\n", engineOpponent); // suppress reply
-                              SendMoveToProgram(forwardMostMove-1, engineOpponent); /* make sure opponent gets to see move */
-                            }
-                             GameEnds( result, details, GE_XBOARD );
-                             return 1;
-                        }
-                        if( rights == 0 && count > 1 ) /* occurred 2 or more times before */
-                             boards[forwardMostMove][EP_STATUS] = EP_REP_DRAW;
-                    }
-                }
-
-                /* Now we test for 50-move draws. Determine ply count */
-                count = forwardMostMove;
-                /* look for last irreversble move */
-                while( (signed char)boards[count][EP_STATUS] <= EP_NONE && count > backwardMostMove )
-                    count--;
-                /* if we hit starting position, add initial plies */
-                if( count == backwardMostMove )
-                    count -= initialRulePlies;
-                count = forwardMostMove - count;
-               if(gameInfo.variant == VariantXiangqi && ( count >= 100 || count >= 2*appData.ruleMoves ) ) {
-                       // adjust reversible move counter for checks in Xiangqi
-                       int i = forwardMostMove - count, inCheck = 0, lastCheck;
-                       if(i < backwardMostMove) i = backwardMostMove;
-                       while(i <= forwardMostMove) {
-                               lastCheck = inCheck; // check evasion does not count
-                               inCheck = (MateTest(boards[i], PosFlags(i)) == MT_CHECK);
-                               if(inCheck || lastCheck) count--; // check does not count
-                               i++;
-                       }
-               }
-                if( count >= 100)
-                         boards[forwardMostMove][EP_STATUS] = EP_RULE_DRAW;
-                         /* this is used to judge if draw claims are legal */
-                if(canAdjudicate && appData.ruleMoves > 0 && count >= 2*appData.ruleMoves) {
-                        if(engineOpponent) {
-                          SendToProgram("force\n", engineOpponent); // suppress reply
-                          SendMoveToProgram(forwardMostMove-1, engineOpponent); /* make sure opponent gets to see move */
-                        }
-                         GameEnds( GameIsDrawn, "Xboard adjudication: 50-move rule", GE_XBOARD );
-                         return 1;
-                }
-
-                /* if draw offer is pending, treat it as a draw claim
-                 * when draw condition present, to allow engines a way to
-                 * claim draws before making their move to avoid a race
-                 * condition occurring after their move
-                 */
-               if((gameMode == TwoMachinesPlay ? second.offeredDraw : userOfferedDraw) || first.offeredDraw ) {
-                         char *p = NULL;
-                         if((signed char)boards[forwardMostMove][EP_STATUS] == EP_RULE_DRAW)
-                             p = "Draw claim: 50-move rule";
-                         if((signed char)boards[forwardMostMove][EP_STATUS] == EP_REP_DRAW)
-                             p = "Draw claim: 3-fold repetition";
-                         if((signed char)boards[forwardMostMove][EP_STATUS] == EP_INSUF_DRAW)
-                             p = "Draw claim: insufficient mating material";
-                         if( p != NULL && canAdjudicate) {
-                            if(engineOpponent) {
-                              SendToProgram("force\n", engineOpponent); // suppress reply
-                              SendMoveToProgram(forwardMostMove-1, engineOpponent); /* make sure opponent gets to see move */
-                            }
-                             GameEnds( GameIsDrawn, p, GE_XBOARD );
-                             return 1;
-                         }
-                }
-
-               if( canAdjudicate && appData.adjudicateDrawMoves > 0 && forwardMostMove > (2*appData.adjudicateDrawMoves) ) {
-                   if(engineOpponent) {
-                     SendToProgram("force\n", engineOpponent); // suppress reply
-                     SendMoveToProgram(forwardMostMove-1, engineOpponent); /* make sure opponent gets to see move */
-                   }
-                   GameEnds( GameIsDrawn, "Xboard adjudication: long game", GE_XBOARD );
-                   return 1;
-               }
-       return 0;
-}
-
-typedef int (CDECL *PPROBE_EGBB) (int player, int *piece, int *square);
-typedef int (CDECL *PLOAD_EGBB) (char *path, int cache_size, int load_options);
-static int egbbCode[] = { 6, 5, 4, 3, 2, 1 };
-
-static int
-BitbaseProbe ()
-{
-    int pieces[10], squares[10], cnt=0, r, f, res;
-    static int loaded;
-    static PPROBE_EGBB probeBB;
-    if(!appData.testLegality) return 10;
-    if(BOARD_HEIGHT != 8 || BOARD_RGHT-BOARD_LEFT != 8) return 12;
-    if(gameInfo.holdingsSize && gameInfo.variant != VariantSuper && gameInfo.variant != VariantSChess) return 12;
-    if(loaded == 2 && forwardMostMove < 2) loaded = 0; // retry on new game
-    for(r=0; r<BOARD_HEIGHT; r++) for(f=BOARD_LEFT; f<BOARD_RGHT; f++) {
-       ChessSquare piece = boards[forwardMostMove][r][f];
-       int black = (piece >= BlackPawn);
-       int type = piece - black*BlackPawn;
-       if(piece == EmptySquare) continue;
-       if(type != WhiteKing && type > WhiteQueen) return 12; // unorthodox piece
-       if(type == WhiteKing) type = WhiteQueen + 1;
-       type = egbbCode[type];
-       squares[cnt] = r*(BOARD_RGHT - BOARD_LEFT) + f - BOARD_LEFT;
-        pieces[cnt] = type + black*6;
-       if(++cnt > 5) return 11;
-    }
-    pieces[cnt] = squares[cnt] = 0;
-    // probe EGBB
-    if(loaded == 2) return 13; // loading failed before
-    if(loaded == 0) {
-       char *p, *path = strstr(appData.egtFormats, "scorpio:"), buf[MSG_SIZ];
-       HMODULE lib;
-       PLOAD_EGBB loadBB;
-       loaded = 2; // prepare for failure
-       if(!path) return 13; // no egbb installed
-       strncpy(buf, path + 8, MSG_SIZ);
-       if(p = strchr(buf, ',')) *p = NULLCHAR; else p = buf + strlen(buf);
-       snprintf(p, MSG_SIZ - strlen(buf), "%c%s", SLASH, EGBB_NAME);
-       lib = LoadLibrary(buf);
-       if(!lib) { DisplayError(_("could not load EGBB library"), 0); return 13; }
-       loadBB = (PLOAD_EGBB) GetProcAddress(lib, "load_egbb_xmen");
-       probeBB = (PPROBE_EGBB) GetProcAddress(lib, "probe_egbb_xmen");
-       if(!loadBB || !probeBB) { DisplayError(_("wrong EGBB version"), 0); return 13; }
-       p[1] = NULLCHAR; loadBB(buf, 64*1028, 2); // 2 = SMART_LOAD
-       loaded = 1; // success!
-    }
-    res = probeBB(forwardMostMove & 1, pieces, squares);
-    return res > 0 ? 1 : res < 0 ? -1 : 0;
-}
-
-char *
-SendMoveToBookUser (int moveNr, ChessProgramState *cps, int initial)
-{   // [HGM] book: this routine intercepts moves to simulate book replies
-    char *bookHit = NULL;
-
-    if(cps->drawDepth && BitbaseProbe() == 0) { // [HG} egbb: reduce depth in drawn position
-       char buf[MSG_SIZ];
-       snprintf(buf, MSG_SIZ, "sd %d\n", cps->drawDepth);
-       SendToProgram(buf, cps);
-    }
-    //first determine if the incoming move brings opponent into his book
-    if(appData.usePolyglotBook && (cps == &first ? !appData.firstHasOwnBookUCI : !appData.secondHasOwnBookUCI))
-       bookHit = ProbeBook(moveNr+1, appData.polyglotBook); // returns move
-    if(appData.debugMode) fprintf(debugFP, "book hit = %s\n", bookHit ? bookHit : "(NULL)");
-    if(bookHit != NULL && !cps->bookSuspend) {
-       // make sure opponent is not going to reply after receiving move to book position
-       SendToProgram("force\n", cps);
-       cps->bookSuspend = TRUE; // flag indicating it has to be restarted
-    }
-    if(bookHit) setboardSpoiledMachineBlack = FALSE; // suppress 'go' in SendMoveToProgram
-    if(!initial) SendMoveToProgram(moveNr, cps); // with hit on initial position there is no move
-    // now arrange restart after book miss
-    if(bookHit) {
-       // after a book hit we never send 'go', and the code after the call to this routine
-       // has '&& !bookHit' added to suppress potential sending there (based on 'firstMove').
-       char buf[MSG_SIZ], *move = bookHit;
-       if(cps->useSAN) {
-           int fromX, fromY, toX, toY;
-           char promoChar;
-           ChessMove moveType;
-           move = buf + 30;
-           if (ParseOneMove(bookHit, forwardMostMove, &moveType,
-                                &fromX, &fromY, &toX, &toY, &promoChar)) {
-               (void) CoordsToAlgebraic(boards[forwardMostMove],
-                                   PosFlags(forwardMostMove),
-                                   fromY, fromX, toY, toX, promoChar, move);
-           } else {
-               if(appData.debugMode) fprintf(debugFP, "Book move could not be parsed\n");
-               bookHit = NULL;
-           }
-       }
-       snprintf(buf, MSG_SIZ, "%s%s\n", (cps->useUsermove ? "usermove " : ""), move); // force book move into program supposed to play it
-       SendToProgram(buf, cps);
-       if(!initial) firstMove = FALSE; // normally we would clear the firstMove condition after return & sending 'go'
-    } else if(initial) { // 'go' was needed irrespective of firstMove, and it has to be done in this routine
-       SendToProgram("go\n", cps);
-       cps->bookSuspend = FALSE; // after a 'go' we are never suspended
-    } else { // 'go' might be sent based on 'firstMove' after this routine returns
-       if(cps->bookSuspend && !firstMove) // 'go' needed, and it will not be done after we return
-           SendToProgram("go\n", cps);
-       cps->bookSuspend = FALSE; // anyhow, we will not be suspended after a miss
-    }
-    return bookHit; // notify caller of hit, so it can take action to send move to opponent
-}
-
-int
-LoadError (char *errmess, ChessProgramState *cps)
-{   // unloads engine and switches back to -ncp mode if it was first
-    if(cps->initDone) return FALSE;
-    cps->isr = NULL; // this should suppress further error popups from breaking pipes
-    DestroyChildProcess(cps->pr, 9 ); // just to be sure
-    cps->pr = NoProc;
-    if(cps == &first) {
-       appData.noChessProgram = TRUE;
-       gameMode = MachinePlaysBlack; ModeHighlight(); // kludge to unmark Machine Black menu
-       gameMode = BeginningOfGame; ModeHighlight();
-       SetNCPMode();
-    }
-    if(GetDelayedEvent()) CancelDelayedEvent(), ThawUI(); // [HGM] cancel remaining loading effort scheduled after feature timeout
-    DisplayMessage("", ""); // erase waiting message
-    if(errmess) DisplayError(errmess, 0); // announce reason, if given
-    return TRUE;
-}
-
-char *savedMessage;
-ChessProgramState *savedState;
-void
-DeferredBookMove (void)
-{
-       if(savedState->lastPing != savedState->lastPong)
-                   ScheduleDelayedEvent(DeferredBookMove, 10);
-       else
-       HandleMachineMove(savedMessage, savedState);
-}
-
-static int savedWhitePlayer, savedBlackPlayer, pairingReceived;
-static ChessProgramState *stalledEngine;
-static char stashedInputMove[MSG_SIZ], abortEngineThink;
-
-void
-HandleMachineMove (char *message, ChessProgramState *cps)
-{
-    static char firstLeg[20], legs;
-    char machineMove[MSG_SIZ], buf1[MSG_SIZ*10], buf2[MSG_SIZ];
-    char realname[MSG_SIZ];
-    int fromX, fromY, toX, toY;
-    ChessMove moveType;
-    char promoChar, roar;
-    char *p, *pv=buf1;
-    int oldError;
-    char *bookHit;
-
-    if(cps == &pairing && sscanf(message, "%d-%d", &savedWhitePlayer, &savedBlackPlayer) == 2) {
-       // [HGM] pairing: Mega-hack! Pairing engine also uses this routine (so it could give other WB commands).
-       if(savedWhitePlayer == 0 || savedBlackPlayer == 0) {
-           DisplayError(_("Invalid pairing from pairing engine"), 0);
-           return;
-       }
-       pairingReceived = 1;
-       NextMatchGame();
-       return; // Skim the pairing messages here.
-    }
-
-    oldError = cps->userError; cps->userError = 0;
-
-FakeBookMove: // [HGM] book: we jump here to simulate machine moves after book hit
-    /*
-     * Kludge to ignore BEL characters
-     */
-    while (*message == '\007') message++;
-
-    /*
-     * [HGM] engine debug message: ignore lines starting with '#' character
-     */
-    if(cps->debug && *message == '#') return;
-
-    /*
-     * Look for book output
-     */
-    if (cps == &first && bookRequested) {
-       if (message[0] == '\t' || message[0] == ' ') {
-           /* Part of the book output is here; append it */
-           strcat(bookOutput, message);
-           strcat(bookOutput, "  \n");
-           return;
-       } else if (bookOutput[0] != NULLCHAR) {
-           /* All of book output has arrived; display it */
-           char *p = bookOutput;
-           while (*p != NULLCHAR) {
-               if (*p == '\t') *p = ' ';
-               p++;
-           }
-           DisplayInformation(bookOutput);
-           bookRequested = FALSE;
-           /* Fall through to parse the current output */
-       }
-    }
-
-    /*
-     * Look for machine move.
-     */
-    if ((sscanf(message, "%s %s %s", buf1, buf2, machineMove) == 3 && strcmp(buf2, "...") == 0) ||
-       (sscanf(message, "%s %s", buf1, machineMove) == 2 && strcmp(buf1, "move") == 0))
-    {
-        if(pausing && !cps->pause) { // for pausing engine that does not support 'pause', we stash its move for processing when we resume.
-           if(appData.debugMode) fprintf(debugFP, "pause %s engine after move\n", cps->which);
-           safeStrCpy(stashedInputMove, message, MSG_SIZ);
-           stalledEngine = cps;
-           if(appData.ponderNextMove) { // bring opponent out of ponder
-               if(gameMode == TwoMachinesPlay) {
-                   if(cps->other->pause)
-                       PauseEngine(cps->other);
-                   else
-                       SendToProgram("easy\n", cps->other);
-               }
-           }
-           StopClocks();
-           return;
-       }
-
-      if(cps->usePing) {
-
-        /* This method is only useful on engines that support ping */
-        if(abortEngineThink) {
-           if (appData.debugMode) {
-               fprintf(debugFP, "Undoing move from aborted think of %s\n", cps->which);
-           }
-            SendToProgram("undo\n", cps);
-           return;
-       }
-
-        if (cps->lastPing != cps->lastPong) {
-           /* Extra move from before last new; ignore */
-           if (appData.debugMode) {
-               fprintf(debugFP, "Ignoring extra move from %s\n", cps->which);
-           }
-         return;
-       }
-
-      } else {
-
-       int machineWhite = FALSE;
-
-       switch (gameMode) {
-         case BeginningOfGame:
-           /* Extra move from before last reset; ignore */
-           if (appData.debugMode) {
-               fprintf(debugFP, "Ignoring extra move from %s\n", cps->which);
-           }
-           return;
-
-         case EndOfGame:
-         case IcsIdle:
-         default:
-           /* Extra move after we tried to stop.  The mode test is
-              not a reliable way of detecting this problem, but it's
-              the best we can do on engines that don't support ping.
-           */
-           if (appData.debugMode) {
-               fprintf(debugFP, "Undoing extra move from %s, gameMode %d\n",
-                       cps->which, gameMode);
-           }
-           SendToProgram("undo\n", cps);
-           return;
-
-         case MachinePlaysWhite:
-         case IcsPlayingWhite:
-           machineWhite = TRUE;
-           break;
-
-         case MachinePlaysBlack:
-         case IcsPlayingBlack:
-           machineWhite = FALSE;
-           break;
-
-         case TwoMachinesPlay:
-           machineWhite = (cps->twoMachinesColor[0] == 'w');
-           break;
-       }
-       if (WhiteOnMove(forwardMostMove) != machineWhite) {
-           if (appData.debugMode) {
-               fprintf(debugFP,
-                       "Ignoring move out of turn by %s, gameMode %d"
-                       ", forwardMost %d\n",
-                       cps->which, gameMode, forwardMostMove);
-           }
-           return;
-       }
-      }
-
-        if(cps->alphaRank) AlphaRank(machineMove, 4);
-
-       // [HGM] lion: (some very limited) support for Alien protocol
-       killX = killY = kill2X = kill2Y = -1;
-       if(machineMove[strlen(machineMove)-1] == ',') { // move ends in coma: non-final leg of composite move
-           if(legs++) return;                     // middle leg contains only redundant info, ignore (but count it)
-           safeStrCpy(firstLeg, machineMove, 20); // just remember it for processing when second leg arrives
-           return;
-       }
-       if(p = strchr(machineMove, ',')) {         // we got both legs in one (happens on book move)
-           char *q = strchr(p+1, ',');            // second comma?
-           safeStrCpy(firstLeg, machineMove, 20); // kludge: fake we received the first leg earlier, and clip it off
-           if(q) legs = 2, p = q; else legs = 1;  // with 3-leg move we clipof first two legs!
-           safeStrCpy(machineMove, firstLeg + (p - machineMove) + 1, 20);
-       }
-       if(firstLeg[0]) { // there was a previous leg;
-           // only support case where same piece makes two step
-           char buf[20], *p = machineMove+1, *q = buf+1, f;
-           safeStrCpy(buf, machineMove, 20);
-           while(isdigit(*q)) q++; // find start of to-square
-           safeStrCpy(machineMove, firstLeg, 20);
-           while(isdigit(*p)) p++; // to-square of first leg (which is now copied to machineMove)
-           if(legs == 2) sscanf(p, "%c%d", &f, &kill2Y), kill2X = f - AAA, kill2Y -= ONE - '0'; // in 3-leg move 2nd kill is to-sqr of 1st leg
-           else if(*p == *buf)   // if first-leg to not equal to second-leg from first leg says unmodified (assume it is King move of castling)
-           safeStrCpy(p, q, 20); // glue to-square of second leg to from-square of first, to process over-all move
-           sscanf(buf, "%c%d", &f, &killY); killX = f - AAA; killY -= ONE - '0'; // pass intermediate square to MakeMove in global
-           firstLeg[0] = NULLCHAR; legs = 0;
-       }
-
-        if (!ParseOneMove(machineMove, forwardMostMove, &moveType,
-                              &fromX, &fromY, &toX, &toY, &promoChar)) {
-           /* Machine move could not be parsed; ignore it. */
-         snprintf(buf1, MSG_SIZ*10, _("Illegal move \"%s\" from %s machine"),
-                   machineMove, _(cps->which));
-           DisplayMoveError(buf1);
-            snprintf(buf1, MSG_SIZ*10, "Xboard: Forfeit due to invalid move: %s (%c%c%c%c via %c%c, %c%c) res=%d",
-                    machineMove, fromX+AAA, fromY+ONE, toX+AAA, toY+ONE, killX+AAA, killY+ONE, kill2X+AAA, kill2Y+ONE, moveType);
-           if (gameMode == TwoMachinesPlay) {
-             GameEnds(cps->twoMachinesColor[0] == 'w' ? BlackWins : WhiteWins,
-                       buf1, GE_XBOARD);
-           }
-           return;
-       }
-
-        /* [HGM] Apparently legal, but so far only tested with EP_UNKOWN */
-        /* So we have to redo legality test with true e.p. status here,  */
-        /* to make sure an illegal e.p. capture does not slip through,   */
-        /* to cause a forfeit on a justified illegal-move complaint      */
-        /* of the opponent.                                              */
-        if( gameMode==TwoMachinesPlay && appData.testLegality ) {
-           ChessMove moveType;
-           moveType = LegalityTest(boards[forwardMostMove], PosFlags(forwardMostMove),
-                             fromY, fromX, toY, toX, promoChar);
-            if(moveType == IllegalMove) {
-             snprintf(buf1, MSG_SIZ*10, "Xboard: Forfeit due to illegal move: %s (%c%c%c%c)%c",
-                        machineMove, fromX+AAA, fromY+ONE, toX+AAA, toY+ONE, 0);
-                GameEnds(cps->twoMachinesColor[0] == 'w' ? BlackWins : WhiteWins,
-                           buf1, GE_XBOARD);
-               return;
-           } else if(!appData.fischerCastling)
-           /* [HGM] Kludge to handle engines that send FRC-style castling
-              when they shouldn't (like TSCP-Gothic) */
-           switch(moveType) {
-             case WhiteASideCastleFR:
-             case BlackASideCastleFR:
-               toX+=2;
-               currentMoveString[2]++;
-               break;
-             case WhiteHSideCastleFR:
-             case BlackHSideCastleFR:
-               toX--;
-               currentMoveString[2]--;
-               break;
-            default: ; // nothing to do, but suppresses warning of pedantic compilers
-           }
-        }
-       hintRequested = FALSE;
-       lastHint[0] = NULLCHAR;
-       bookRequested = FALSE;
-       /* Program may be pondering now */
-       cps->maybeThinking = TRUE;
-       if (cps->sendTime == 2) cps->sendTime = 1;
-       if (cps->offeredDraw) cps->offeredDraw--;
-
-        /* [AS] Save move info*/
-        pvInfoList[ forwardMostMove ].score = programStats.score;
-        pvInfoList[ forwardMostMove ].depth = programStats.depth;
-        pvInfoList[ forwardMostMove ].time =  programStats.time; // [HGM] PGNtime: take time from engine stats
-
-       MakeMove(fromX, fromY, toX, toY, promoChar);/*updates forwardMostMove*/
-
-        /* Test suites abort the 'game' after one move */
-        if(*appData.finger) {
-           static FILE *f;
-           char *fen = PositionToFEN(backwardMostMove, NULL, 0); // no counts in EPD
-           if(!f) f = fopen(appData.finger, "w");
-           if(f) fprintf(f, "%s bm %s;\n", fen, parseList[backwardMostMove]), fflush(f);
-           else { DisplayFatalError("Bad output file", errno, 0); return; }
-           free(fen);
-           GameEnds(GameUnfinished, NULL, GE_XBOARD);
-        }
-        if(appData.epd) {
-           if(solvingTime >= 0) {
-              snprintf(buf1, MSG_SIZ, "%d. %4.2fs: %s ", matchGame, solvingTime/100., parseList[backwardMostMove]);
-              totalTime += solvingTime; first.matchWins++; solvingTime = -1;
-           } else {
-              snprintf(buf1, MSG_SIZ, "%d. %s?%s ", matchGame, parseList[backwardMostMove], solvingTime == -2 ? " ???" : "");
-              if(solvingTime == -2) second.matchWins++;
-           }
-           OutputKibitz(2, buf1);
-           GameEnds(GameUnfinished, NULL, GE_XBOARD);
-        }
-
-        /* [AS] Adjudicate game if needed (note: remember that forwardMostMove now points past the last move) */
-        if( gameMode == TwoMachinesPlay && appData.adjudicateLossThreshold != 0 && forwardMostMove >= adjudicateLossPlies ) {
-            int count = 0;
-
-            while( count < adjudicateLossPlies ) {
-                int score = pvInfoList[ forwardMostMove - count - 1 ].score;
-
-                if( count & 1 ) {
-                    score = -score; /* Flip score for winning side */
-                }
-
-                if( score > appData.adjudicateLossThreshold ) {
-                    break;
-                }
-
-                count++;
-            }
-
-            if( count >= adjudicateLossPlies ) {
-               ShowMove(fromX, fromY, toX, toY); /*updates currentMove*/
-
-                GameEnds( WhiteOnMove(forwardMostMove) ? WhiteWins : BlackWins,
-                    "Xboard adjudication",
-                    GE_XBOARD );
-
-                return;
-            }
-        }
-
-       if(Adjudicate(cps)) {
-           ShowMove(fromX, fromY, toX, toY); /*updates currentMove*/
-           return; // [HGM] adjudicate: for all automatic game ends
-       }
-
-#if ZIPPY
-       if ((gameMode == IcsPlayingWhite || gameMode == IcsPlayingBlack) &&
-           first.initDone) {
-         if(cps->offeredDraw && (signed char)boards[forwardMostMove][EP_STATUS] <= EP_DRAWS) {
-               SendToICS(ics_prefix); // [HGM] drawclaim: send caim and move on one line for FICS
-               SendToICS("draw ");
-               SendMoveToICS(moveType, fromX, fromY, toX, toY, promoChar);
-         }
-         SendMoveToICS(moveType, fromX, fromY, toX, toY, promoChar);
-         ics_user_moved = 1;
-         if(appData.autoKibitz && !appData.icsEngineAnalyze ) { /* [HGM] kibitz: send most-recent PV info to ICS */
-               char buf[3*MSG_SIZ];
-
-               snprintf(buf, 3*MSG_SIZ, "kibitz !!! %+.2f/%d (%.2f sec, %u nodes, %.0f knps) PV=%s\n",
-                       programStats.score / 100.,
-                       programStats.depth,
-                       programStats.time / 100.,
-                       (unsigned int)programStats.nodes,
-                       (unsigned int)programStats.nodes / (10*abs(programStats.time) + 1.),
-                       programStats.movelist);
-               SendToICS(buf);
-         }
-       }
-#endif
-
-        /* [AS] Clear stats for next move */
-        ClearProgramStats();
-        thinkOutput[0] = NULLCHAR;
-        hiddenThinkOutputState = 0;
-
-       bookHit = NULL;
-       if (gameMode == TwoMachinesPlay) {
-            /* [HGM] relaying draw offers moved to after reception of move */
-            /* and interpreting offer as claim if it brings draw condition */
-            if (cps->offeredDraw == 1 && cps->other->sendDrawOffers) {
-                SendToProgram("draw\n", cps->other);
-            }
-           if (cps->other->sendTime) {
-               SendTimeRemaining(cps->other,
-                                 cps->other->twoMachinesColor[0] == 'w');
-           }
-           bookHit = SendMoveToBookUser(forwardMostMove-1, cps->other, FALSE);
-           if (firstMove && !bookHit) {
-               firstMove = FALSE;
-               if (cps->other->useColors) {
-                 SendToProgram(cps->other->twoMachinesColor, cps->other);
-               }
-               SendToProgram("go\n", cps->other);
-           }
-           cps->other->maybeThinking = TRUE;
-       }
-
-       roar = (killX >= 0 && IS_LION(boards[forwardMostMove][toY][toX]));
-
-       ShowMove(fromX, fromY, toX, toY); /*updates currentMove*/
-
-        if (!pausing && appData.ringBellAfterMoves) {
-           if(!roar) RingBell();
-       }
-
-       /*
-        * Reenable menu items that were disabled while
-        * machine was thinking
-        */
-       if (gameMode != TwoMachinesPlay)
-           SetUserThinkingEnables();
-
-       // [HGM] book: after book hit opponent has received move and is now in force mode
-       // force the book reply into it, and then fake that it outputted this move by jumping
-       // back to the beginning of HandleMachineMove, with cps toggled and message set to this move
-       if(bookHit) {
-               static char bookMove[MSG_SIZ]; // a bit generous?
-
-               safeStrCpy(bookMove, "move ", sizeof(bookMove)/sizeof(bookMove[0]));
-               strcat(bookMove, bookHit);
-               message = bookMove;
-               cps = cps->other;
-               programStats.nodes = programStats.depth = programStats.time =
-               programStats.score = programStats.got_only_move = 0;
-               sprintf(programStats.movelist, "%s (xbook)", bookHit);
-
-               if(cps->lastPing != cps->lastPong) {
-                   savedMessage = message; // args for deferred call
-                   savedState = cps;
-                   ScheduleDelayedEvent(DeferredBookMove, 10);
-                   return;
-               }
-               goto FakeBookMove;
-       }
-
-       return;
-    }
-
-    /* Set special modes for chess engines.  Later something general
-     *  could be added here; for now there is just one kludge feature,
-     *  needed because Crafty 15.10 and earlier don't ignore SIGINT
-     *  when "xboard" is given as an interactive command.
-     */
-    if (strncmp(message, "kibitz Hello from Crafty", 24) == 0) {
-       cps->useSigint = FALSE;
-       cps->useSigterm = FALSE;
-    }
-    if (strncmp(message, "feature ", 8) == 0) { // [HGM] moved forward to pre-empt non-compliant commands
-      ParseFeatures(message+8, cps);
-      return; // [HGM] This return was missing, causing option features to be recognized as non-compliant commands!
-    }
-
-    if (!strncmp(message, "setup ", 6) && 
-       (!appData.testLegality || gameInfo.variant == VariantFairy || gameInfo.variant == VariantUnknown ||
-          NonStandardBoardSize(gameInfo.variant, gameInfo.boardWidth, gameInfo.boardHeight, gameInfo.holdingsSize))
-                                       ) { // [HGM] allow first engine to define opening position
-      int dummy, w, h, hand, s=6; char buf[MSG_SIZ], varName[MSG_SIZ];
-      if(appData.icsActive || forwardMostMove != 0 || cps != &first) return;
-      *buf = NULLCHAR;
-      if(sscanf(message, "setup (%s", buf) == 1) {
-        s = 8 + strlen(buf), buf[s-9] = NULLCHAR, SetCharTableEsc(pieceToChar, buf, SUFFIXES);
-        ASSIGN(appData.pieceToCharTable, buf);
-      }
-      dummy = sscanf(message+s, "%dx%d+%d_%s", &w, &h, &hand, varName);
-      if(dummy >= 3) {
-        while(message[s] && message[s++] != ' ');
-        if(BOARD_HEIGHT != h || BOARD_WIDTH != w + 4*(hand != 0) || gameInfo.holdingsSize != hand ||
-           dummy == 4 && gameInfo.variant != StringToVariant(varName) ) { // engine wants to change board format or variant
-           appData.NrFiles = w; appData.NrRanks = h; appData.holdingsSize = hand;
-           if(dummy == 4) gameInfo.variant = StringToVariant(varName);     // parent variant
-          InitPosition(1); // calls InitDrawingSizes to let new parameters take effect
-          if(*buf) SetCharTableEsc(pieceToChar, buf, SUFFIXES); // do again, for it was spoiled by InitPosition
-          startedFromSetupPosition = FALSE;
-        }
-      }
-      if(startedFromSetupPosition) return;
-      ParseFEN(boards[0], &dummy, message+s, FALSE);
-      DrawPosition(TRUE, boards[0]);
-      CopyBoard(initialPosition, boards[0]);
-      startedFromSetupPosition = TRUE;
-      return;
-    }
-    if(sscanf(message, "piece %s %s", buf2, buf1) == 2) {
-      ChessSquare piece = WhitePawn;
-      char *p=message+6, *q, *s = SUFFIXES, ID = *p;
-      if(*p == '+') piece = CHUPROMOTED(WhitePawn), ID = *++p;
-      if(q = strchr(s, p[1])) ID += 64*(q - s + 1), p++;
-      piece += CharToPiece(ID & 255) - WhitePawn;
-      if(cps != &first || appData.testLegality && *engineVariant == NULLCHAR
-      /* always accept definition of  */       && piece != WhiteFalcon && piece != BlackFalcon
-      /* wild-card pieces.            */       && piece != WhiteCobra  && piece != BlackCobra
-      /* For variants we don't have   */       && gameInfo.variant != VariantBerolina
-      /* correct rules for, we cannot */       && gameInfo.variant != VariantCylinder
-      /* enforce legality on our own! */       && gameInfo.variant != VariantUnknown
-                                               && gameInfo.variant != VariantGreat
-                                               && gameInfo.variant != VariantFairy    ) return;
-      if(piece < EmptySquare) {
-        pieceDefs = TRUE;
-        ASSIGN(pieceDesc[piece], buf1);
-        if((ID & 32) == 0 && p[1] == '&') { ASSIGN(pieceDesc[WHITE_TO_BLACK piece], buf1); }
-      }
-      return;
-    }
-    if(sscanf(message, "choice %s", promoRestrict) == 1 && promoSweep != EmptySquare) {
-      promoSweep = CharToPiece(currentMove&1 ? ToLower(*promoRestrict) : ToUpper(*promoRestrict));
-      Sweep(0);
-      return;
-    }
-    /* [HGM] Allow engine to set up a position. Don't ask me why one would
-     * want this, I was asked to put it in, and obliged.
-     */
-    if (!strncmp(message, "setboard ", 9)) {
-        Board initial_position;
-
-        GameEnds(GameUnfinished, "Engine aborts game", GE_XBOARD);
-
-        if (!ParseFEN(initial_position, &blackPlaysFirst, message + 9, FALSE)) {
-            DisplayError(_("Bad FEN received from engine"), 0);
-            return ;
-        } else {
-           Reset(TRUE, FALSE);
-           CopyBoard(boards[0], initial_position);
-           initialRulePlies = FENrulePlies;
-           if(blackPlaysFirst) gameMode = MachinePlaysWhite;
-           else gameMode = MachinePlaysBlack;
-           DrawPosition(FALSE, boards[currentMove]);
-        }
-       return;
-    }
-
-    /*
-     * Look for communication commands
-     */
-    if (!strncmp(message, "telluser ", 9)) {
-       if(message[9] == '\\' && message[10] == '\\')
-           EscapeExpand(message+9, message+11); // [HGM] esc: allow escape sequences in popup box
-       PlayTellSound();
-       DisplayNote(message + 9);
-       return;
-    }
-    if (!strncmp(message, "tellusererror ", 14)) {
-       cps->userError = 1;
-       if(message[14] == '\\' && message[15] == '\\')
-           EscapeExpand(message+14, message+16); // [HGM] esc: allow escape sequences in popup box
-       PlayTellSound();
-       DisplayError(message + 14, 0);
-       return;
-    }
-    if (!strncmp(message, "tellopponent ", 13)) {
-      if (appData.icsActive) {
-       if (loggedOn) {
-         snprintf(buf1, sizeof(buf1), "%ssay %s\n", ics_prefix, message + 13);
-         SendToICS(buf1);
-       }
-      } else {
-       DisplayNote(message + 13);
-      }
-      return;
-    }
-    if (!strncmp(message, "tellothers ", 11)) {
-      if (appData.icsActive) {
-       if (loggedOn) {
-         snprintf(buf1, sizeof(buf1), "%swhisper %s\n", ics_prefix, message + 11);
-         SendToICS(buf1);
-       }
-      } else if(appData.autoComment) AppendComment (forwardMostMove, message + 11, 1); // in local mode, add as move comment
-      return;
-    }
-    if (!strncmp(message, "tellall ", 8)) {
-      if (appData.icsActive) {
-       if (loggedOn) {
-         snprintf(buf1, sizeof(buf1), "%skibitz %s\n", ics_prefix, message + 8);
-         SendToICS(buf1);
-       }
-      } else {
-       DisplayNote(message + 8);
-      }
-      return;
-    }
-    if (strncmp(message, "warning", 7) == 0) {
-       /* Undocumented feature, use tellusererror in new code */
-       DisplayError(message, 0);
-       return;
-    }
-    if (sscanf(message, "askuser %s %[^\n]", buf1, buf2) == 2) {
-        safeStrCpy(realname, cps->tidy, sizeof(realname)/sizeof(realname[0]));
-       strcat(realname, " query");
-       AskQuestion(realname, buf2, buf1, cps->pr);
-       return;
-    }
-    /* Commands from the engine directly to ICS.  We don't allow these to be
-     *  sent until we are logged on. Crafty kibitzes have been known to
-     *  interfere with the login process.
-     */
-    if (loggedOn) {
-       if (!strncmp(message, "tellics ", 8)) {
-           SendToICS(message + 8);
-           SendToICS("\n");
-           return;
-       }
-       if (!strncmp(message, "tellicsnoalias ", 15)) {
-           SendToICS(ics_prefix);
-           SendToICS(message + 15);
-           SendToICS("\n");
-           return;
-       }
-       /* The following are for backward compatibility only */
-       if (!strncmp(message,"whisper",7) || !strncmp(message,"kibitz",6) ||
-           !strncmp(message,"draw",4) || !strncmp(message,"tell",3)) {
-           SendToICS(ics_prefix);
-           SendToICS(message);
-           SendToICS("\n");
-           return;
-       }
-    }
-    if (sscanf(message, "pong %d", &cps->lastPong) == 1) {
-       if(initPing == cps->lastPong) {
-           if(gameInfo.variant == VariantUnknown) {
-               DisplayError(_("Engine did not send setup for non-standard variant"), 0);
-               *engineVariant = NULLCHAR; ASSIGN(appData.variant, "normal"); // back to normal as error recovery?
-               GameEnds(GameUnfinished, NULL, GE_XBOARD);
-           }
-           initPing = -1;
-        }
-       if(cps->lastPing == cps->lastPong && abortEngineThink) {
-           abortEngineThink = FALSE;
-           DisplayMessage("", "");
-           ThawUI();
-       }
-       return;
-    }
-    if(!strncmp(message, "highlight ", 10)) {
-       if(appData.testLegality && !*engineVariant && appData.markers) return;
-       MarkByFEN(message+10); // [HGM] alien: allow engine to mark board squares
-       return;
-    }
-    if(!strncmp(message, "click ", 6)) {
-       char f, c=0; int x, y; // [HGM] alien: allow engine to finish user moves (i.e. engine-driven one-click moving)
-       if(appData.testLegality || !appData.oneClick) return;
-       sscanf(message+6, "%c%d%c", &f, &y, &c);
-       x = f - 'a' + BOARD_LEFT, y -= ONE - '0';
-       if(flipView) x = BOARD_WIDTH-1 - x; else y = BOARD_HEIGHT-1 - y;
-       x = x*squareSize + (x+1)*lineGap + squareSize/2;
-       y = y*squareSize + (y+1)*lineGap + squareSize/2;
-       f = first.highlight; first.highlight = 0; // kludge to suppress lift/put in response to own clicks
-       if(lastClickType == Press) // if button still down, fake release on same square, to be ready for next click
-           LeftClick(Release, lastLeftX, lastLeftY);
-       controlKey  = (c == ',');
-       LeftClick(Press, x, y);
-       LeftClick(Release, x, y);
-       first.highlight = f;
-       return;
-    }
-    /*
-     * If the move is illegal, cancel it and redraw the board.
-     * Also deal with other error cases.  Matching is rather loose
-     * here to accommodate engines written before the spec.
-     */
-    if (strncmp(message + 1, "llegal move", 11) == 0 ||
-       strncmp(message, "Error", 5) == 0) {
-       if (StrStr(message, "name") ||
-           StrStr(message, "rating") || StrStr(message, "?") ||
-           StrStr(message, "result") || StrStr(message, "board") ||
-           StrStr(message, "bk") || StrStr(message, "computer") ||
-           StrStr(message, "variant") || StrStr(message, "hint") ||
-           StrStr(message, "random") || StrStr(message, "depth") ||
-           StrStr(message, "accepted")) {
-           return;
-       }
-       if (StrStr(message, "protover")) {
-         /* Program is responding to input, so it's apparently done
-             initializing, and this error message indicates it is
-             protocol version 1.  So we don't need to wait any longer
-             for it to initialize and send feature commands. */
-         FeatureDone(cps, 1);
-         cps->protocolVersion = 1;
-         return;
-       }
-       cps->maybeThinking = FALSE;
-
-       if (StrStr(message, "draw")) {
-           /* Program doesn't have "draw" command */
-           cps->sendDrawOffers = 0;
-           return;
-       }
-       if (cps->sendTime != 1 &&
-           (StrStr(message, "time") || StrStr(message, "otim"))) {
-         /* Program apparently doesn't have "time" or "otim" command */
-         cps->sendTime = 0;
-         return;
-       }
-       if (StrStr(message, "analyze")) {
-           cps->analysisSupport = FALSE;
-           cps->analyzing = FALSE;
-//         Reset(FALSE, TRUE); // [HGM] this caused discrepancy between display and internal state!
-           EditGameEvent(); // [HGM] try to preserve loaded game
-           snprintf(buf2,MSG_SIZ, _("%s does not support analysis"), cps->tidy);
-           DisplayError(buf2, 0);
-           return;
-       }
-       if (StrStr(message, "(no matching move)st")) {
-         /* Special kludge for GNU Chess 4 only */
-         cps->stKludge = TRUE;
-         SendTimeControl(cps, movesPerSession, timeControl,
-                         timeIncrement, appData.searchDepth,
-                         searchTime);
-         return;
-       }
-       if (StrStr(message, "(no matching move)sd")) {
-         /* Special kludge for GNU Chess 4 only */
-         cps->sdKludge = TRUE;
-         SendTimeControl(cps, movesPerSession, timeControl,
-                         timeIncrement, appData.searchDepth,
-                         searchTime);
-         return;
-       }
-        if (!StrStr(message, "llegal")) {
-            return;
-        }
-       if (gameMode == BeginningOfGame || gameMode == EndOfGame ||
-           gameMode == IcsIdle) return;
-       if (forwardMostMove <= backwardMostMove) return;
-       if (pausing) PauseEvent();
-      if(appData.forceIllegal) {
-           // [HGM] illegal: machine refused move; force position after move into it
-          SendToProgram("force\n", cps);
-          if(!cps->useSetboard) { // hideous kludge on kludge, because SendBoard sucks.
-               // we have a real problem now, as SendBoard will use the a2a3 kludge
-               // when black is to move, while there might be nothing on a2 or black
-               // might already have the move. So send the board as if white has the move.
-               // But first we must change the stm of the engine, as it refused the last move
-               SendBoard(cps, 0); // always kludgeless, as white is to move on boards[0]
-               if(WhiteOnMove(forwardMostMove)) {
-                   SendToProgram("a7a6\n", cps); // for the engine black still had the move
-                   SendBoard(cps, forwardMostMove); // kludgeless board
-               } else {
-                   SendToProgram("a2a3\n", cps); // for the engine white still had the move
-                   CopyBoard(boards[forwardMostMove+1], boards[forwardMostMove]);
-                   SendBoard(cps, forwardMostMove+1); // kludgeless board
-               }
-          } else SendBoard(cps, forwardMostMove); // FEN case, also sets stm properly
-           if(gameMode == MachinePlaysWhite || gameMode == MachinePlaysBlack ||
-                gameMode == TwoMachinesPlay)
-              SendToProgram("go\n", cps);
-           return;
-      } else
-       if (gameMode == PlayFromGameFile) {
-           /* Stop reading this game file */
-           gameMode = EditGame;
-           ModeHighlight();
-       }
-        /* [HGM] illegal-move claim should forfeit game when Xboard */
-        /* only passes fully legal moves                            */
-        if( appData.testLegality && gameMode == TwoMachinesPlay ) {
-            GameEnds( cps->twoMachinesColor[0] == 'w' ? BlackWins : WhiteWins,
-                                "False illegal-move claim", GE_XBOARD );
-            return; // do not take back move we tested as valid
-        }
-       currentMove = forwardMostMove-1;
-       DisplayMove(currentMove-1); /* before DisplayMoveError */
-       SwitchClocks(forwardMostMove-1); // [HGM] race
-       DisplayBothClocks();
-       snprintf(buf1, 10*MSG_SIZ, _("Illegal move \"%s\" (rejected by %s chess program)"),
-               parseList[currentMove], _(cps->which));
-       DisplayMoveError(buf1);
-       DrawPosition(FALSE, boards[currentMove]);
-
-       SetUserThinkingEnables();
-       return;
-    }
-    if (strncmp(message, "time", 4) == 0 && StrStr(message, "Illegal")) {
-       /* Program has a broken "time" command that
-          outputs a string not ending in newline.
-          Don't use it. */
-       cps->sendTime = 0;
-    }
-    if (cps->pseudo) { // [HGM] pseudo-engine, granted unusual powers
-       if (sscanf(message, "wtime %ld\n", &whiteTimeRemaining) == 1 || // adjust clock times
-           sscanf(message, "btime %ld\n", &blackTimeRemaining) == 1   ) return;
-    }
-
-    /*
-     * If chess program startup fails, exit with an error message.
-     * Attempts to recover here are futile. [HGM] Well, we try anyway
-     */
-    if ((StrStr(message, "unknown host") != NULL)
-       || (StrStr(message, "No remote directory") != NULL)
-       || (StrStr(message, "not found") != NULL)
-       || (StrStr(message, "No such file") != NULL)
-       || (StrStr(message, "can't alloc") != NULL)
-       || (StrStr(message, "Permission denied") != NULL)) {
-
-       cps->maybeThinking = FALSE;
-       snprintf(buf1, sizeof(buf1), _("Failed to start %s chess program %s on %s: %s\n"),
-               _(cps->which), cps->program, cps->host, message);
-       RemoveInputSource(cps->isr);
-       if(appData.icsActive) DisplayFatalError(buf1, 0, 1); else {
-           if(LoadError(oldError ? NULL : buf1, cps)) return; // error has then been handled by LoadError
-           if(!oldError) DisplayError(buf1, 0); // if reason neatly announced, suppress general error popup
-       }
-       return;
-    }
-
-    /*
-     * Look for hint output
-     */
-    if (sscanf(message, "Hint: %s", buf1) == 1) {
-       if (cps == &first && hintRequested) {
-           hintRequested = FALSE;
-           if (ParseOneMove(buf1, forwardMostMove, &moveType,
-                                &fromX, &fromY, &toX, &toY, &promoChar)) {
-               (void) CoordsToAlgebraic(boards[forwardMostMove],
-                                   PosFlags(forwardMostMove),
-                                   fromY, fromX, toY, toX, promoChar, buf1);
-               snprintf(buf2, sizeof(buf2), _("Hint: %s"), buf1);
-               DisplayInformation(buf2);
-           } else {
-               /* Hint move could not be parsed!? */
-             snprintf(buf2, sizeof(buf2),
-                       _("Illegal hint move \"%s\"\nfrom %s chess program"),
-                       buf1, _(cps->which));
-               DisplayError(buf2, 0);
-           }
-       } else {
-         safeStrCpy(lastHint, buf1, sizeof(lastHint)/sizeof(lastHint[0]));
-       }
-       return;
-    }
-
-    /*
-     * Ignore other messages if game is not in progress
-     */
-    if (gameMode == BeginningOfGame || gameMode == EndOfGame ||
-       gameMode == IcsIdle || cps->lastPing != cps->lastPong) return;
-
-    /*
-     * look for win, lose, draw, or draw offer
-     */
-    if (strncmp(message, "1-0", 3) == 0) {
-       char *p, *q, *r = "";
-        p = strchr(message, '{');
-       if (p) {
-           q = strchr(p, '}');
-           if (q) {
-               *q = NULLCHAR;
-               r = p + 1;
-           }
-       }
-        GameEnds(WhiteWins, r, GE_ENGINE1 + (cps != &first)); /* [HGM] pass claimer indication for claim test */
-       return;
-    } else if (strncmp(message, "0-1", 3) == 0) {
-       char *p, *q, *r = "";
-        p = strchr(message, '{');
-       if (p) {
-           q = strchr(p, '}');
-           if (q) {
-               *q = NULLCHAR;
-               r = p + 1;
-           }
-       }
-       /* Kludge for Arasan 4.1 bug */
-       if (strcmp(r, "Black resigns") == 0) {
-            GameEnds(WhiteWins, r, GE_ENGINE1 + (cps != &first));
-           return;
-       }
-        GameEnds(BlackWins, r, GE_ENGINE1 + (cps != &first));
-       return;
-    } else if (strncmp(message, "1/2", 3) == 0) {
-       char *p, *q, *r = "";
-        p = strchr(message, '{');
-       if (p) {
-           q = strchr(p, '}');
-           if (q) {
-               *q = NULLCHAR;
-               r = p + 1;
-           }
-       }
-
-        GameEnds(GameIsDrawn, r, GE_ENGINE1 + (cps != &first));
-       return;
-
-    } else if (strncmp(message, "White resign", 12) == 0) {
-        GameEnds(BlackWins, "White resigns", GE_ENGINE1 + (cps != &first));
-       return;
-    } else if (strncmp(message, "Black resign", 12) == 0) {
-        GameEnds(WhiteWins, "Black resigns", GE_ENGINE1 + (cps != &first));
-       return;
-    } else if (strncmp(message, "White matches", 13) == 0 ||
-               strncmp(message, "Black matches", 13) == 0   ) {
-        /* [HGM] ignore GNUShogi noises */
-        return;
-    } else if (strncmp(message, "White", 5) == 0 &&
-              message[5] != '(' &&
-              StrStr(message, "Black") == NULL) {
-        GameEnds(WhiteWins, "White mates", GE_ENGINE1 + (cps != &first));
-       return;
-    } else if (strncmp(message, "Black", 5) == 0 &&
-              message[5] != '(') {
-        GameEnds(BlackWins, "Black mates", GE_ENGINE1 + (cps != &first));
-       return;
-    } else if (strcmp(message, "resign") == 0 ||
-              strcmp(message, "computer resigns") == 0) {
-       switch (gameMode) {
-         case MachinePlaysBlack:
-         case IcsPlayingBlack:
-            GameEnds(WhiteWins, "Black resigns", GE_ENGINE);
-           break;
-         case MachinePlaysWhite:
-         case IcsPlayingWhite:
-            GameEnds(BlackWins, "White resigns", GE_ENGINE);
-           break;
-         case TwoMachinesPlay:
-           if (cps->twoMachinesColor[0] == 'w')
-              GameEnds(BlackWins, "White resigns", GE_ENGINE1 + (cps != &first));
-           else
-              GameEnds(WhiteWins, "Black resigns", GE_ENGINE1 + (cps != &first));
-           break;
-         default:
-           /* can't happen */
-           break;
-       }
-       return;
-    } else if (strncmp(message, "opponent mates", 14) == 0) {
-       switch (gameMode) {
-         case MachinePlaysBlack:
-         case IcsPlayingBlack:
-            GameEnds(WhiteWins, "White mates", GE_ENGINE);
-           break;
-         case MachinePlaysWhite:
-         case IcsPlayingWhite:
-            GameEnds(BlackWins, "Black mates", GE_ENGINE);
-           break;
-         case TwoMachinesPlay:
-           if (cps->twoMachinesColor[0] == 'w')
-              GameEnds(BlackWins, "Black mates", GE_ENGINE1 + (cps != &first));
-           else
-              GameEnds(WhiteWins, "White mates", GE_ENGINE1 + (cps != &first));
-           break;
-         default:
-           /* can't happen */
-           break;
-       }
-       return;
-    } else if (strncmp(message, "computer mates", 14) == 0) {
-       switch (gameMode) {
-         case MachinePlaysBlack:
-         case IcsPlayingBlack:
-            GameEnds(BlackWins, "Black mates", GE_ENGINE1);
-           break;
-         case MachinePlaysWhite:
-         case IcsPlayingWhite:
-            GameEnds(WhiteWins, "White mates", GE_ENGINE);
-           break;
-         case TwoMachinesPlay:
-           if (cps->twoMachinesColor[0] == 'w')
-              GameEnds(WhiteWins, "White mates", GE_ENGINE1 + (cps != &first));
-           else
-              GameEnds(BlackWins, "Black mates", GE_ENGINE1 + (cps != &first));
-           break;
-         default:
-           /* can't happen */
-           break;
-       }
-       return;
-    } else if (strncmp(message, "checkmate", 9) == 0) {
-       if (WhiteOnMove(forwardMostMove)) {
-            GameEnds(BlackWins, "Black mates", GE_ENGINE1 + (cps != &first));
-       } else {
-            GameEnds(WhiteWins, "White mates", GE_ENGINE1 + (cps != &first));
-       }
-       return;
-    } else if (strstr(message, "Draw") != NULL ||
-              strstr(message, "game is a draw") != NULL) {
-        GameEnds(GameIsDrawn, "Draw", GE_ENGINE1 + (cps != &first));
-       return;
-    } else if (strstr(message, "offer") != NULL &&
-              strstr(message, "draw") != NULL) {
-#if ZIPPY
-       if (appData.zippyPlay && first.initDone) {
-           /* Relay offer to ICS */
-           SendToICS(ics_prefix);
-           SendToICS("draw\n");
-       }
-#endif
-       cps->offeredDraw = 2; /* valid until this engine moves twice */
-       if (gameMode == TwoMachinesPlay) {
-           if (cps->other->offeredDraw) {
-               GameEnds(GameIsDrawn, "Draw agreed", GE_XBOARD);
-            /* [HGM] in two-machine mode we delay relaying draw offer      */
-            /* until after we also have move, to see if it is really claim */
-           }
-       } else if (gameMode == MachinePlaysWhite ||
-                  gameMode == MachinePlaysBlack) {
-         if (userOfferedDraw) {
-           DisplayInformation(_("Machine accepts your draw offer"));
-           GameEnds(GameIsDrawn, "Draw agreed", GE_XBOARD);
-         } else {
-            DisplayInformation(_("Machine offers a draw.\nSelect Action / Draw to accept."));
-         }
-       }
-    }
-
-
-    /*
-     * Look for thinking output
-     */
-    if ( appData.showThinking // [HGM] thinking: test all options that cause this output
-         || !appData.hideThinkingFromHuman || appData.adjudicateLossThreshold != 0 || EngineOutputIsUp()
-                               ) {
-       int plylev, mvleft, mvtot, curscore, time;
-       char mvname[MOVE_LEN];
-       u64 nodes; // [DM]
-       char plyext;
-       int ignore = FALSE;
-       int prefixHint = FALSE;
-       mvname[0] = NULLCHAR;
-
-       switch (gameMode) {
-         case MachinePlaysBlack:
-         case IcsPlayingBlack:
-           if (WhiteOnMove(forwardMostMove)) prefixHint = TRUE;
-           break;
-         case MachinePlaysWhite:
-         case IcsPlayingWhite:
-           if (!WhiteOnMove(forwardMostMove)) prefixHint = TRUE;
-           break;
-         case AnalyzeMode:
-         case AnalyzeFile:
-            break;
-          case IcsObserving: /* [DM] icsEngineAnalyze */
-            if (!appData.icsEngineAnalyze) ignore = TRUE;
-           break;
-         case TwoMachinesPlay:
-           if ((cps->twoMachinesColor[0] == 'w') != WhiteOnMove(forwardMostMove)) {
-               ignore = TRUE;
-           }
-           break;
-         default:
-           ignore = TRUE;
-           break;
-       }
-
-       if (!ignore) {
-           ChessProgramStats tempStats = programStats; // [HGM] info: filter out info lines
-           int solved = 0;
-           buf1[0] = NULLCHAR;
-           if (sscanf(message, "%d%c %d %d " u64Display " %[^\n]\n",
-                      &plylev, &plyext, &curscore, &time, &nodes, buf1) >= 5) {
-               char score_buf[MSG_SIZ];
-
-               if(nodes>>32 == u64Const(0xFFFFFFFF))   // [HGM] negative node count read
-                   nodes += u64Const(0x100000000);
-
-               if (plyext != ' ' && plyext != '\t') {
-                   time *= 100;
-               }
-
-                /* [AS] Negate score if machine is playing black and reporting absolute scores */
-                if( cps->scoreIsAbsolute &&
-                    ( gameMode == MachinePlaysBlack ||
-                      gameMode == TwoMachinesPlay && cps->twoMachinesColor[0] == 'b' ||
-                      gameMode == IcsPlayingBlack ||     // [HGM] also add other situations where engine should report black POV
-                     (gameMode == AnalyzeMode || gameMode == AnalyzeFile || gameMode == IcsObserving && appData.icsEngineAnalyze) &&
-                     !WhiteOnMove(currentMove)
-                    ) )
-                {
-                    curscore = -curscore;
-                }
-
-               if(appData.pvSAN[cps==&second]) pv = PvToSAN(buf1);
-
-               if(*bestMove) { // rememer time best EPD move was first found
-                   int ff1, tf1, fr1, tr1, ff2, tf2, fr2, tr2; char pp1, pp2;
-                   ChessMove mt; char *p = bestMove;
-                   int ok = ParseOneMove(pv, forwardMostMove, &mt, &ff2, &fr2, &tf2, &tr2, &pp2);
-                   solved = 0;
-                   while(ok && *p && ParseOneMove(p, forwardMostMove, &mt, &ff1, &fr1, &tf1, &tr1, &pp1)) {
-                       if(ff1==ff2 && fr1==fr2 && tf1==tf2 && tr1==tr2 && pp1==pp2) {
-                           solvingTime = (solvingTime < 0 ? time : solvingTime);
-                           solved = 1;
-                           break;
-                       }
-                       while(*p && *p != ' ') p++;
-                       while(*p == ' ') p++;
-                   }
-                   if(!solved) solvingTime = -1;
-               }
-               if(*avoidMove && !solved) {
-                   int ff1, tf1, fr1, tr1, ff2, tf2, fr2, tr2; char pp1, pp2;
-                   ChessMove mt; char *p = avoidMove, solved = 1;
-                   int ok = ParseOneMove(pv, forwardMostMove, &mt, &ff2, &fr2, &tf2, &tr2, &pp2);
-                   while(ok && *p && ParseOneMove(p, forwardMostMove, &mt, &ff1, &fr1, &tf1, &tr1, &pp1)) {
-                       if(ff1==ff2 && fr1==fr2 && tf1==tf2 && tr1==tr2 && pp1==pp2) {
-                           solved = 0; solvingTime = -2;
-                           break;
-                       }
-                       while(*p && *p != ' ') p++;
-                       while(*p == ' ') p++;
-                   }
-                   if(solved && !*bestMove) solvingTime = (solvingTime < 0 ? time : solvingTime);
-               }
-
-               if(serverMoves && (time > 100 || time == 0 && plylev > 7)) {
-                       char buf[MSG_SIZ];
-                       FILE *f;
-                       snprintf(buf, MSG_SIZ, "%s", appData.serverMovesName);
-                       buf[strlen(buf)-1] = gameMode == MachinePlaysWhite ? 'w' :
-                                            gameMode == MachinePlaysBlack ? 'b' : cps->twoMachinesColor[0];
-                       if(appData.debugMode) fprintf(debugFP, "write PV on file '%s'\n", buf);
-                       if(f = fopen(buf, "w")) { // export PV to applicable PV file
-                               fprintf(f, "%5.2f/%-2d %s", curscore/100., plylev, pv);
-                               fclose(f);
-                       }
-                       else
-                         /* TRANSLATORS: PV = principal variation, the variation the chess engine thinks is the best for everyone */
-                         DisplayError(_("failed writing PV"), 0);
-               }
-
-               tempStats.depth = plylev;
-               tempStats.nodes = nodes;
-               tempStats.time = time;
-               tempStats.score = curscore;
-               tempStats.got_only_move = 0;
-
-               if(cps->nps >= 0) { /* [HGM] nps: use engine nodes or time to decrement clock */
-                       int ticklen;
-
-                       if(cps->nps == 0) ticklen = 10*time;                    // use engine reported time
-                       else ticklen = (1000. * u64ToDouble(nodes)) / cps->nps; // convert node count to time
-                       if(WhiteOnMove(forwardMostMove) && (gameMode == MachinePlaysWhite ||
-                                               gameMode == TwoMachinesPlay && cps->twoMachinesColor[0] == 'w'))
-                            whiteTimeRemaining = timeRemaining[0][forwardMostMove] - ticklen;
-                       if(!WhiteOnMove(forwardMostMove) && (gameMode == MachinePlaysBlack ||
-                                               gameMode == TwoMachinesPlay && cps->twoMachinesColor[0] == 'b'))
-                            blackTimeRemaining = timeRemaining[1][forwardMostMove] - ticklen;
-               }
-
-               /* Buffer overflow protection */
-               if (pv[0] != NULLCHAR) {
-                   if (strlen(pv) >= sizeof(tempStats.movelist)
-                       && appData.debugMode) {
-                       fprintf(debugFP,
-                               "PV is too long; using the first %u bytes.\n",
-                               (unsigned) sizeof(tempStats.movelist) - 1);
-                   }
-
-                    safeStrCpy( tempStats.movelist, pv, sizeof(tempStats.movelist)/sizeof(tempStats.movelist[0]) );
-               } else {
-                   sprintf(tempStats.movelist, " no PV\n");
-               }
-
-               if (tempStats.seen_stat) {
-                   tempStats.ok_to_send = 1;
-               }
-
-               if (strchr(tempStats.movelist, '(') != NULL) {
-                   tempStats.line_is_book = 1;
-                   tempStats.nr_moves = 0;
-                   tempStats.moves_left = 0;
-               } else {
-                   tempStats.line_is_book = 0;
-               }
-
-                   if(tempStats.score != 0 || tempStats.nodes != 0 || tempStats.time != 0)
-                       programStats = tempStats; // [HGM] info: only set stats if genuine PV and not an info line
-
-                SendProgramStatsToFrontend( cps, &tempStats );
-
-                /*
-                    [AS] Protect the thinkOutput buffer from overflow... this
-                    is only useful if buf1 hasn't overflowed first!
-                */
-               if((gameMode == AnalyzeMode && appData.whitePOV || appData.scoreWhite) && !WhiteOnMove(forwardMostMove)) curscore *= -1;
-               if(curscore >= MATE_SCORE) 
-                   snprintf(score_buf, MSG_SIZ, "#%d", curscore - MATE_SCORE);
-               else if(curscore <= -MATE_SCORE) 
-                   snprintf(score_buf, MSG_SIZ, "#%d", curscore + MATE_SCORE);
-               else
-                   snprintf(score_buf, MSG_SIZ, "%+.2f", ((double) curscore) / 100.0);
-               snprintf(thinkOutput, sizeof(thinkOutput)/sizeof(thinkOutput[0]), "[%d]%c%s %s%s",
-                        plylev,
-                        (gameMode == TwoMachinesPlay ?
-                         ToUpper(cps->twoMachinesColor[0]) : ' '),
-                        score_buf,
-                        prefixHint ? lastHint : "",
-                        prefixHint ? " " : "" );
-
-                if( buf1[0] != NULLCHAR ) {
-                    unsigned max_len = sizeof(thinkOutput) - strlen(thinkOutput) - 1;
-
-                    if( strlen(pv) > max_len ) {
-                       if( appData.debugMode) {
-                           fprintf(debugFP,"PV is too long for thinkOutput, truncating.\n");
-                        }
-                        pv[max_len+1] = '\0';
-                    }
-
-                    strcat( thinkOutput, pv);
-                }
-
-                if (currentMove == forwardMostMove || gameMode == AnalyzeMode
-                        || gameMode == AnalyzeFile || appData.icsEngineAnalyze) {
-                   DisplayMove(currentMove - 1);
-               }
-               return;
-
-           } else if ((p=StrStr(message, "(only move)")) != NULL) {
-               /* crafty (9.25+) says "(only move) <move>"
-                * if there is only 1 legal move
-                 */
-               sscanf(p, "(only move) %s", buf1);
-               snprintf(thinkOutput, sizeof(thinkOutput)/sizeof(thinkOutput[0]), "%s (only move)", buf1);
-               sprintf(programStats.movelist, "%s (only move)", buf1);
-               programStats.depth = 1;
-               programStats.nr_moves = 1;
-               programStats.moves_left = 1;
-               programStats.nodes = 1;
-               programStats.time = 1;
-               programStats.got_only_move = 1;
-
-               /* Not really, but we also use this member to
-                  mean "line isn't going to change" (Crafty
-                  isn't searching, so stats won't change) */
-               programStats.line_is_book = 1;
-
-                SendProgramStatsToFrontend( cps, &programStats );
-
-               if (currentMove == forwardMostMove || gameMode==AnalyzeMode ||
-                           gameMode == AnalyzeFile || appData.icsEngineAnalyze) {
-                   DisplayMove(currentMove - 1);
-               }
-               return;
-           } else if (sscanf(message,"stat01: %d " u64Display " %d %d %d %s",
-                             &time, &nodes, &plylev, &mvleft,
-                             &mvtot, mvname) >= 5) {
-               /* The stat01: line is from Crafty (9.29+) in response
-                  to the "." command */
-               programStats.seen_stat = 1;
-               cps->maybeThinking = TRUE;
-
-               if (programStats.got_only_move || !appData.periodicUpdates)
-                 return;
-
-               programStats.depth = plylev;
-               programStats.time = time;
-               programStats.nodes = nodes;
-               programStats.moves_left = mvleft;
-               programStats.nr_moves = mvtot;
-               safeStrCpy(programStats.move_name, mvname, sizeof(programStats.move_name)/sizeof(programStats.move_name[0]));
-               programStats.ok_to_send = 1;
-                programStats.movelist[0] = '\0';
-
-                SendProgramStatsToFrontend( cps, &programStats );
-
-               return;
-
-           } else if (strncmp(message,"++",2) == 0) {
-               /* Crafty 9.29+ outputs this */
-               programStats.got_fail = 2;
-               return;
-
-           } else if (strncmp(message,"--",2) == 0) {
-               /* Crafty 9.29+ outputs this */
-               programStats.got_fail = 1;
-               return;
-
-           } else if (thinkOutput[0] != NULLCHAR &&
-                      strncmp(message, "    ", 4) == 0) {
-                unsigned message_len;
-
-               p = message;
-               while (*p && *p == ' ') p++;
-
-                message_len = strlen( p );
-
-                /* [AS] Avoid buffer overflow */
-                if( sizeof(thinkOutput) - strlen(thinkOutput) - 1 > message_len ) {
-                   strcat(thinkOutput, " ");
-                   strcat(thinkOutput, p);
-                }
-
-                if( sizeof(programStats.movelist) - strlen(programStats.movelist) - 1 > message_len ) {
-                   strcat(programStats.movelist, " ");
-                   strcat(programStats.movelist, p);
-                }
-
-               if (currentMove == forwardMostMove || gameMode==AnalyzeMode ||
-                           gameMode == AnalyzeFile || appData.icsEngineAnalyze) {
-                   DisplayMove(currentMove - 1);
-               }
-               return;
-           }
-       }
-        else {
-           buf1[0] = NULLCHAR;
-
-           if (sscanf(message, "%d%c %d %d " u64Display " %[^\n]\n",
-                      &plylev, &plyext, &curscore, &time, &nodes, buf1) >= 5)
-            {
-                ChessProgramStats cpstats;
-
-               if (plyext != ' ' && plyext != '\t') {
-                   time *= 100;
-               }
-
-                /* [AS] Negate score if machine is playing black and reporting absolute scores */
-                if( cps->scoreIsAbsolute && ((gameMode == MachinePlaysBlack) || (gameMode == TwoMachinesPlay && cps->twoMachinesColor[0] == 'b')) ) {
-                    curscore = -curscore;
-                }
-
-               cpstats.depth = plylev;
-               cpstats.nodes = nodes;
-               cpstats.time = time;
-               cpstats.score = curscore;
-               cpstats.got_only_move = 0;
-                cpstats.movelist[0] = '\0';
-
-               if (buf1[0] != NULLCHAR) {
-                    safeStrCpy( cpstats.movelist, buf1, sizeof(cpstats.movelist)/sizeof(cpstats.movelist[0]) );
-               }
-
-               cpstats.ok_to_send = 0;
-               cpstats.line_is_book = 0;
-               cpstats.nr_moves = 0;
-               cpstats.moves_left = 0;
-
-                SendProgramStatsToFrontend( cps, &cpstats );
-            }
-        }
-    }
-}
-
-
-/* Parse a game score from the character string "game", and
-   record it as the history of the current game.  The game
-   score is NOT assumed to start from the standard position.
-   The display is not updated in any way.
-   */
-void
-ParseGameHistory (char *game)
-{
-    ChessMove moveType;
-    int fromX, fromY, toX, toY, boardIndex;
-    char promoChar;
-    char *p, *q;
-    char buf[MSG_SIZ];
-
-    if (appData.debugMode)
-      fprintf(debugFP, "Parsing game history: %s\n", game);
-
-    if (gameInfo.event == NULL) gameInfo.event = StrSave("ICS game");
-    gameInfo.site = StrSave(appData.icsHost);
-    gameInfo.date = PGNDate();
-    gameInfo.round = StrSave("-");
-
-    /* Parse out names of players */
-    while (*game == ' ') game++;
-    p = buf;
-    while (*game != ' ') *p++ = *game++;
-    *p = NULLCHAR;
-    gameInfo.white = StrSave(buf);
-    while (*game == ' ') game++;
-    p = buf;
-    while (*game != ' ' && *game != '\n') *p++ = *game++;
-    *p = NULLCHAR;
-    gameInfo.black = StrSave(buf);
-
-    /* Parse moves */
-    boardIndex = blackPlaysFirst ? 1 : 0;
-    yynewstr(game);
-    for (;;) {
-       yyboardindex = boardIndex;
-       moveType = (ChessMove) Myylex();
-       switch (moveType) {
-         case IllegalMove:             /* maybe suicide chess, etc. */
-  if (appData.debugMode) {
-    fprintf(debugFP, "Illegal move from ICS: '%s'\n", yy_text);
-    fprintf(debugFP, "board L=%d, R=%d, H=%d, holdings=%d\n", BOARD_LEFT, BOARD_RGHT, BOARD_HEIGHT, gameInfo.holdingsWidth);
-    setbuf(debugFP, NULL);
-  }
-         case WhitePromotion:
-         case BlackPromotion:
-         case WhiteNonPromotion:
-         case BlackNonPromotion:
-         case NormalMove:
-         case FirstLeg:
-         case WhiteCapturesEnPassant:
-         case BlackCapturesEnPassant:
-         case WhiteKingSideCastle:
-         case WhiteQueenSideCastle:
-         case BlackKingSideCastle:
-         case BlackQueenSideCastle:
-         case WhiteKingSideCastleWild:
-         case WhiteQueenSideCastleWild:
-         case BlackKingSideCastleWild:
-         case BlackQueenSideCastleWild:
-          /* PUSH Fabien */
-          case WhiteHSideCastleFR:
-          case WhiteASideCastleFR:
-          case BlackHSideCastleFR:
-          case BlackASideCastleFR:
-          /* POP Fabien */
-            fromX = currentMoveString[0] - AAA;
-            fromY = currentMoveString[1] - ONE;
-            toX = currentMoveString[2] - AAA;
-            toY = currentMoveString[3] - ONE;
-           promoChar = currentMoveString[4];
-           break;
-         case WhiteDrop:
-         case BlackDrop:
-           if(currentMoveString[0] == '@') continue; // no null moves in ICS mode!
-           fromX = moveType == WhiteDrop ?
-             (int) CharToPiece(ToUpper(currentMoveString[0])) :
-           (int) CharToPiece(ToLower(currentMoveString[0]));
-           fromY = DROP_RANK;
-            toX = currentMoveString[2] - AAA;
-            toY = currentMoveString[3] - ONE;
-           promoChar = NULLCHAR;
-           break;
-         case AmbiguousMove:
-           /* bug? */
-           snprintf(buf, MSG_SIZ, _("Ambiguous move in ICS output: \"%s\""), yy_text);
-  if (appData.debugMode) {
-    fprintf(debugFP, "Ambiguous move from ICS: '%s'\n", yy_text);
-    fprintf(debugFP, "board L=%d, R=%d, H=%d, holdings=%d\n", BOARD_LEFT, BOARD_RGHT, BOARD_HEIGHT, gameInfo.holdingsWidth);
-    setbuf(debugFP, NULL);
-  }
-           DisplayError(buf, 0);
-           return;
-         case ImpossibleMove:
-           /* bug? */
-           snprintf(buf, MSG_SIZ, _("Illegal move in ICS output: \"%s\""), yy_text);
-  if (appData.debugMode) {
-    fprintf(debugFP, "Impossible move from ICS: '%s'\n", yy_text);
-    fprintf(debugFP, "board L=%d, R=%d, H=%d, holdings=%d\n", BOARD_LEFT, BOARD_RGHT, BOARD_HEIGHT, gameInfo.holdingsWidth);
-    setbuf(debugFP, NULL);
-  }
-           DisplayError(buf, 0);
-           return;
-         case EndOfFile:
-           if (boardIndex < backwardMostMove) {
-               /* Oops, gap.  How did that happen? */
-               DisplayError(_("Gap in move list"), 0);
-               return;
-           }
-           backwardMostMove =  blackPlaysFirst ? 1 : 0;
-           if (boardIndex > forwardMostMove) {
-               forwardMostMove = boardIndex;
-           }
-           return;
-         case ElapsedTime:
-           if (boardIndex > (blackPlaysFirst ? 1 : 0)) {
-               strcat(parseList[boardIndex-1], " ");
-               strcat(parseList[boardIndex-1], yy_text);
-           }
-           continue;
-         case Comment:
-         case PGNTag:
-         case NAG:
-         default:
-           /* ignore */
-           continue;
-         case WhiteWins:
-         case BlackWins:
-         case GameIsDrawn:
-         case GameUnfinished:
-           if (gameMode == IcsExamining) {
-               if (boardIndex < backwardMostMove) {
-                   /* Oops, gap.  How did that happen? */
-                   return;
-               }
-               backwardMostMove = blackPlaysFirst ? 1 : 0;
-               return;
-           }
-           gameInfo.result = moveType;
-           p = strchr(yy_text, '{');
-           if (p == NULL) p = strchr(yy_text, '(');
-           if (p == NULL) {
-               p = yy_text;
-               if (p[0] == '0' || p[0] == '1' || p[0] == '*') p = "";
-           } else {
-               q = strchr(p, *p == '{' ? '}' : ')');
-               if (q != NULL) *q = NULLCHAR;
-               p++;
-           }
-           while(q = strchr(p, '\n')) *q = ' '; // [HGM] crush linefeeds in result message
-           gameInfo.resultDetails = StrSave(p);
-           continue;
-       }
-       if (boardIndex >= forwardMostMove &&
-           !(gameMode == IcsObserving && ics_gamenum == -1)) {
-           backwardMostMove = blackPlaysFirst ? 1 : 0;
-           return;
-       }
-       (void) CoordsToAlgebraic(boards[boardIndex], PosFlags(boardIndex),
-                                fromY, fromX, toY, toX, promoChar,
-                                parseList[boardIndex]);
-       CopyBoard(boards[boardIndex + 1], boards[boardIndex]);
-       /* currentMoveString is set as a side-effect of yylex */
-       safeStrCpy(moveList[boardIndex], currentMoveString, sizeof(moveList[boardIndex])/sizeof(moveList[boardIndex][0]));
-       strcat(moveList[boardIndex], "\n");
-       boardIndex++;
-       ApplyMove(fromX, fromY, toX, toY, promoChar, boards[boardIndex]);
-        switch (MateTest(boards[boardIndex], PosFlags(boardIndex)) ) {
-         case MT_NONE:
-         case MT_STALEMATE:
-         default:
-           break;
-         case MT_CHECK:
-            if(!IS_SHOGI(gameInfo.variant))
-                strcat(parseList[boardIndex - 1], "+");
-           break;
-         case MT_CHECKMATE:
-         case MT_STAINMATE:
-           strcat(parseList[boardIndex - 1], "#");
-           break;
-       }
-    }
-}
-
-
-/* Apply a move to the given board  */
-void
-ApplyMove (int fromX, int fromY, int toX, int toY, int promoChar, Board board)
-{
-  ChessSquare captured = board[toY][toX], piece, pawn, king, killed, killed2; int p, rookX, oldEP, epRank, berolina = 0;
-  int promoRank = gameInfo.variant == VariantMakruk || gameInfo.variant == VariantGrand || gameInfo.variant == VariantChuChess ? 3 : 1;
-
-    /* [HGM] compute & store e.p. status and castling rights for new position */
-    /* we can always do that 'in place', now pointers to these rights are passed to ApplyMove */
-
-      if(gameInfo.variant == VariantBerolina) berolina = EP_BEROLIN_A;
-      oldEP = (signed char)board[EP_FILE]; epRank = board[EP_RANK];
-      board[EP_STATUS] = EP_NONE;
-      board[EP_FILE] = board[EP_RANK] = 100;
-
-  if (fromY == DROP_RANK) {
-       /* must be first */
-        if(fromX == EmptySquare) { // [HGM] pass: empty drop encodes null move; nothing to change.
-           board[EP_STATUS] = EP_CAPTURE; // null move considered irreversible
-           return;
-       }
-        piece = board[toY][toX] = (ChessSquare) fromX;
-  } else {
-//      ChessSquare victim;
-      int i;
-
-      if( killX >= 0 && killY >= 0 ) { // [HGM] lion: Lion trampled over something
-//           victim = board[killY][killX],
-           killed = board[killY][killX],
-           board[killY][killX] = EmptySquare,
-           board[EP_STATUS] = EP_CAPTURE;
-           if( kill2X >= 0 && kill2Y >= 0)
-             killed2 = board[kill2Y][kill2X], board[kill2Y][kill2X] = EmptySquare;
-      }
-
-      if( board[toY][toX] != EmptySquare ) {
-           board[EP_STATUS] = EP_CAPTURE;
-           if( (fromX != toX || fromY != toY) && // not igui!
-               (captured == WhiteLion && board[fromY][fromX] != BlackLion ||
-                captured == BlackLion && board[fromY][fromX] != WhiteLion   ) ) { // [HGM] lion: Chu Lion-capture rules
-               board[EP_STATUS] = EP_IRON_LION; // non-Lion x Lion: no counter-strike allowed
-           }
-      }
-
-      pawn = board[fromY][fromX];
-      if( pawn == WhiteLance || pawn == BlackLance ) {
-           if( gameInfo.variant != VariantSuper && gameInfo.variant != VariantChu ) {
-               if(gameInfo.variant == VariantSpartan) board[EP_STATUS] = EP_PAWN_MOVE; // in Spartan no e.p. rights must be set
-               else pawn += WhitePawn - WhiteLance; // Lance is Pawn-like in most variants, so let Pawn code treat it by this kludge
-           }
-      }
-      if( pawn == WhitePawn ) {
-           if(fromY != toY) // [HGM] Xiangqi sideway Pawn moves should not count as 50-move breakers
-              board[EP_STATUS] = EP_PAWN_MOVE;
-           if( toY-fromY>=2) {
-               board[EP_FILE] = (fromX + toX)/2; board[EP_RANK] = toY - 1 | 128*(toY - fromY > 2);
-               if(toX>BOARD_LEFT   && board[toY][toX-1] == BlackPawn &&
-                       gameInfo.variant != VariantBerolina || toX < fromX)
-                     board[EP_STATUS] = toX | berolina;
-               if(toX<BOARD_RGHT-1 && board[toY][toX+1] == BlackPawn &&
-                       gameInfo.variant != VariantBerolina || toX > fromX)
-                     board[EP_STATUS] = toX;
-          }
-      } else
-      if( pawn == BlackPawn ) {
-           if(fromY != toY) // [HGM] Xiangqi sideway Pawn moves should not count as 50-move breakers
-              board[EP_STATUS] = EP_PAWN_MOVE;
-           if( toY-fromY<= -2) {
-               board[EP_FILE] = (fromX + toX)/2; board[EP_RANK] = toY + 1 | 128*(fromY - toY > 2);
-               if(toX>BOARD_LEFT   && board[toY][toX-1] == WhitePawn &&
-                       gameInfo.variant != VariantBerolina || toX < fromX)
-                     board[EP_STATUS] = toX | berolina;
-               if(toX<BOARD_RGHT-1 && board[toY][toX+1] == WhitePawn &&
-                       gameInfo.variant != VariantBerolina || toX > fromX)
-                     board[EP_STATUS] = toX;
-          }
-       }
-
-       if(fromY == 0) board[TOUCHED_W] |= 1<<fromX; else // new way to keep track of virginity
-       if(fromY == BOARD_HEIGHT-1) board[TOUCHED_B] |= 1<<fromX;
-       if(toY == 0) board[TOUCHED_W] |= 1<<toX; else
-       if(toY == BOARD_HEIGHT-1) board[TOUCHED_B] |= 1<<toX;
-
-       for(i=0; i<nrCastlingRights; i++) {
-           if(board[CASTLING][i] == fromX && castlingRank[i] == fromY ||
-              board[CASTLING][i] == toX   && castlingRank[i] == toY
-             ) board[CASTLING][i] = NoRights; // revoke for moved or captured piece
-       }
-
-       if(gameInfo.variant == VariantSChess) { // update virginity
-          if(fromY == 0)              board[VIRGIN][fromX] &= ~VIRGIN_W; // loss by moving
-          if(fromY == BOARD_HEIGHT-1) board[VIRGIN][fromX] &= ~VIRGIN_B;
-          if(toY == 0)                board[VIRGIN][toX]   &= ~VIRGIN_W; // loss by capture
-          if(toY == BOARD_HEIGHT-1)   board[VIRGIN][toX]   &= ~VIRGIN_B;
-       }
-
-     if (fromX == toX && fromY == toY && killX < 0) return;
-
-     piece = board[fromY][fromX]; /* [HGM] remember, for Shogi promotion */
-     king = piece < (int) BlackPawn ? WhiteKing : BlackKing; /* [HGM] Knightmate simplify testing for castling */
-     if(gameInfo.variant == VariantKnightmate)
-         king += (int) WhiteUnicorn - (int) WhiteKing;
-
-    if(pieceDesc[piece] && killX >= 0 && strchr(pieceDesc[piece], 'O') // Betza castling-enabled
-       && (piece < BlackPawn ? killed < BlackPawn : killed >= BlackPawn)) {    // and tramples own
-       board[toY][toX] = piece; board[fromY][fromX] = EmptySquare;
-       board[toY][toX + (killX < fromX ? 1 : -1)] = killed;
-        board[EP_STATUS] = EP_NONE; // capture was fake!
-    } else
-    if(nrCastlingRights == 0 && board[toY][toX] < EmptySquare && (piece < BlackPawn) == (board[toY][toX] < BlackPawn)) {
-        board[fromY][fromX] = board[toY][toX]; // capture own will lead to swapping
-        board[toY][toX] = piece;
-        board[EP_STATUS] = EP_NONE; // capture was fake!
-    } else
-    /* Code added by Tord: */
-    /* FRC castling assumed when king captures friendly rook. [HGM] or RxK for S-Chess */
-    if (board[fromY][fromX] == WhiteKing && board[toY][toX] == WhiteRook ||
-        board[fromY][fromX] == WhiteRook && board[toY][toX] == WhiteKing) {
-      board[EP_STATUS] = EP_NONE; // capture was fake!
-      board[fromY][fromX] = EmptySquare;
-      board[toY][toX] = EmptySquare;
-      if((toX > fromX) != (piece == WhiteRook)) {
-        board[0][BOARD_RGHT-2] = WhiteKing; board[0][BOARD_RGHT-3] = WhiteRook;
-      } else {
-        board[0][BOARD_LEFT+2] = WhiteKing; board[0][BOARD_LEFT+3] = WhiteRook;
-      }
-    } else if (board[fromY][fromX] == BlackKing && board[toY][toX] == BlackRook ||
-               board[fromY][fromX] == BlackRook && board[toY][toX] == BlackKing) {
-      board[EP_STATUS] = EP_NONE;
-      board[fromY][fromX] = EmptySquare;
-      board[toY][toX] = EmptySquare;
-      if((toX > fromX) != (piece == BlackRook)) {
-        board[BOARD_HEIGHT-1][BOARD_RGHT-2] = BlackKing; board[BOARD_HEIGHT-1][BOARD_RGHT-3] = BlackRook;
-      } else {
-        board[BOARD_HEIGHT-1][BOARD_LEFT+2] = BlackKing; board[BOARD_HEIGHT-1][BOARD_LEFT+3] = BlackRook;
-      }
-    /* End of code added by Tord */
-
-    } else if (pieceDesc[piece] && piece == king && !strchr(pieceDesc[piece], 'O') && strchr(pieceDesc[piece], 'i')) {
-       board[fromY][fromX] = EmptySquare; // never castle if King has virgin moves defined on it other than castling
-       board[toY][toX] = piece;
-    } else if (board[fromY][fromX] == king
-        && fromX != BOARD_LEFT && fromX != BOARD_RGHT-1 // [HGM] cylinder */
-        && toY == fromY && toX > fromX+1) {
-       for(rookX=fromX+1; board[toY][rookX] == EmptySquare && rookX < BOARD_RGHT-1; rookX++)
-                                                                                            ; // castle with nearest piece
-        board[fromY][toX-1] = board[fromY][rookX];
-        board[fromY][rookX] = EmptySquare;
-       board[fromY][fromX] = EmptySquare;
-        board[toY][toX] = king;
-    } else if (board[fromY][fromX] == king
-        && fromX != BOARD_LEFT && fromX != BOARD_RGHT-1 // [HGM] cylinder */
-               && toY == fromY && toX < fromX-1) {
-       for(rookX=fromX-1; board[toY][rookX] == EmptySquare && rookX > 0; rookX--)
-                                                                                 ; // castle with nearest piece
-        board[fromY][toX+1] = board[fromY][rookX];
-        board[fromY][rookX] = EmptySquare;
-       board[fromY][fromX] = EmptySquare;
-        board[toY][toX] = king;
-    } else if ((board[fromY][fromX] == WhitePawn && gameInfo.variant != VariantXiangqi ||
-                board[fromY][fromX] == WhiteLance && gameInfo.variant != VariantSuper && gameInfo.variant != VariantChu)
-               && toY >= BOARD_HEIGHT-promoRank && promoChar // defaulting to Q is done elsewhere
-               ) {
-       /* white pawn promotion */
-        board[toY][toX] = CharToPiece(ToUpper(promoChar));
-        if(board[toY][toX] < WhiteCannon && PieceToChar(PROMOTED(board[toY][toX])) == '~') /* [HGM] use shadow piece (if available) */
-            board[toY][toX] = (ChessSquare) (PROMOTED(board[toY][toX]));
-       board[fromY][fromX] = EmptySquare;
-    } else if ((fromY >= BOARD_HEIGHT>>1)
-              && (oldEP == toX || oldEP == EP_UNKNOWN || appData.testLegality || abs(toX - fromX) > 4)
-              && (toX != fromX)
-               && gameInfo.variant != VariantXiangqi
-               && gameInfo.variant != VariantBerolina
-              && (pawn == WhitePawn)
-              && (board[toY][toX] == EmptySquare)) {
-       board[fromY][fromX] = EmptySquare;
-       board[toY][toX] = piece;
-       if(toY == epRank - 128 + 1)
-           captured = board[toY - 2][toX], board[toY - 2][toX] = EmptySquare;
-       else
-           captured = board[toY - 1][toX], board[toY - 1][toX] = EmptySquare;
-    } else if ((fromY == BOARD_HEIGHT-4)
-              && (toX == fromX)
-               && gameInfo.variant == VariantBerolina
-              && (board[fromY][fromX] == WhitePawn)
-              && (board[toY][toX] == EmptySquare)) {
-       board[fromY][fromX] = EmptySquare;
-       board[toY][toX] = WhitePawn;
-       if(oldEP & EP_BEROLIN_A) {
-               captured = board[fromY][fromX-1];
-               board[fromY][fromX-1] = EmptySquare;
-       }else{  captured = board[fromY][fromX+1];
-               board[fromY][fromX+1] = EmptySquare;
-       }
-    } else if (board[fromY][fromX] == king
-        && fromX != BOARD_LEFT && fromX != BOARD_RGHT-1 // [HGM] cylinder */
-               && toY == fromY && toX > fromX+1) {
-       for(rookX=toX+1; board[toY][rookX] == EmptySquare && rookX < BOARD_RGHT - 1; rookX++)
-                                                                                            ;
-        board[fromY][toX-1] = board[fromY][rookX];
-        board[fromY][rookX] = EmptySquare;
-       board[fromY][fromX] = EmptySquare;
-        board[toY][toX] = king;
-    } else if (board[fromY][fromX] == king
-        && fromX != BOARD_LEFT && fromX != BOARD_RGHT-1 // [HGM] cylinder */
-               && toY == fromY && toX < fromX-1) {
-       for(rookX=toX-1; board[toY][rookX] == EmptySquare && rookX > 0; rookX--)
-                                                                               ;
-        board[fromY][toX+1] = board[fromY][rookX];
-        board[fromY][rookX] = EmptySquare;
-       board[fromY][fromX] = EmptySquare;
-        board[toY][toX] = king;
-    } else if (fromY == 7 && fromX == 3
-              && board[fromY][fromX] == BlackKing
-              && toY == 7 && toX == 5) {
-       board[fromY][fromX] = EmptySquare;
-       board[toY][toX] = BlackKing;
-       board[fromY][7] = EmptySquare;
-       board[toY][4] = BlackRook;
-    } else if (fromY == 7 && fromX == 3
-              && board[fromY][fromX] == BlackKing
-              && toY == 7 && toX == 1) {
-       board[fromY][fromX] = EmptySquare;
-       board[toY][toX] = BlackKing;
-       board[fromY][0] = EmptySquare;
-       board[toY][2] = BlackRook;
-    } else if ((board[fromY][fromX] == BlackPawn && gameInfo.variant != VariantXiangqi ||
-                board[fromY][fromX] == BlackLance && gameInfo.variant != VariantSuper && gameInfo.variant != VariantChu)
-              && toY < promoRank && promoChar
-               ) {
-       /* black pawn promotion */
-       board[toY][toX] = CharToPiece(ToLower(promoChar));
-        if(board[toY][toX] < BlackCannon && PieceToChar(PROMOTED(board[toY][toX])) == '~') /* [HGM] use shadow piece (if available) */
-            board[toY][toX] = (ChessSquare) (PROMOTED(board[toY][toX]));
-       board[fromY][fromX] = EmptySquare;
-    } else if ((fromY < BOARD_HEIGHT>>1)
-              && (oldEP == toX || oldEP == EP_UNKNOWN || appData.testLegality || abs(toX - fromX) > 4)
-              && (toX != fromX)
-               && gameInfo.variant != VariantXiangqi
-               && gameInfo.variant != VariantBerolina
-              && (pawn == BlackPawn)
-              && (board[toY][toX] == EmptySquare)) {
-       board[fromY][fromX] = EmptySquare;
-       board[toY][toX] = piece;
-       if(toY == epRank - 128 - 1)
-           captured = board[toY + 2][toX], board[toY + 2][toX] = EmptySquare;
-       else
-           captured = board[toY + 1][toX], board[toY + 1][toX] = EmptySquare;
-    } else if ((fromY == 3)
-              && (toX == fromX)
-               && gameInfo.variant == VariantBerolina
-              && (board[fromY][fromX] == BlackPawn)
-              && (board[toY][toX] == EmptySquare)) {
-       board[fromY][fromX] = EmptySquare;
-       board[toY][toX] = BlackPawn;
-       if(oldEP & EP_BEROLIN_A) {
-               captured = board[fromY][fromX-1];
-               board[fromY][fromX-1] = EmptySquare;
-       }else{  captured = board[fromY][fromX+1];
-               board[fromY][fromX+1] = EmptySquare;
-       }
-    } else {
-       ChessSquare piece = board[fromY][fromX]; // [HGM] lion: allow for igui (where from == to)
-       board[fromY][fromX] = EmptySquare;
-       board[toY][toX] = piece;
-    }
-  }
-
-    if (gameInfo.holdingsWidth != 0) {
-
-      /* !!A lot more code needs to be written to support holdings  */
-      /* [HGM] OK, so I have written it. Holdings are stored in the */
-      /* penultimate board files, so they are automaticlly stored   */
-      /* in the game history.                                       */
-      if (fromY == DROP_RANK || gameInfo.variant == VariantSChess
-                                && promoChar && piece != WhitePawn && piece != BlackPawn) {
-        /* Delete from holdings, by decreasing count */
-        /* and erasing image if necessary            */
-        p = fromY == DROP_RANK ? (int) fromX : CharToPiece(piece > BlackPawn ? ToLower(promoChar) : ToUpper(promoChar));
-        if(p < (int) BlackPawn) { /* white drop */
-             p -= (int)WhitePawn;
-                p = PieceToNumber((ChessSquare)p);
-             if(p >= gameInfo.holdingsSize) p = 0;
-             if(--board[p][BOARD_WIDTH-2] <= 0)
-                  board[p][BOARD_WIDTH-1] = EmptySquare;
-             if((int)board[p][BOARD_WIDTH-2] < 0)
-                       board[p][BOARD_WIDTH-2] = 0;
-        } else {                  /* black drop */
-             p -= (int)BlackPawn;
-                p = PieceToNumber((ChessSquare)p);
-             if(p >= gameInfo.holdingsSize) p = 0;
-             if(--board[BOARD_HEIGHT-1-p][1] <= 0)
-                  board[BOARD_HEIGHT-1-p][0] = EmptySquare;
-             if((int)board[BOARD_HEIGHT-1-p][1] < 0)
-                       board[BOARD_HEIGHT-1-p][1] = 0;
-        }
-      }
-      if (captured != EmptySquare && gameInfo.holdingsSize > 0
-          && gameInfo.variant != VariantBughouse && gameInfo.variant != VariantSChess        ) {
-        /* [HGM] holdings: Add to holdings, if holdings exist */
-       if(gameInfo.variant == VariantSuper || gameInfo.variant == VariantGreat || gameInfo.variant == VariantGrand) {
-               // [HGM] superchess: suppress flipping color of captured pieces by reverse pre-flip
-               captured = (int) captured >= (int) BlackPawn ? BLACK_TO_WHITE captured : WHITE_TO_BLACK captured;
-       }
-        p = (int) captured;
-        if (p >= (int) BlackPawn) {
-          p -= (int)BlackPawn;
-          if(DEMOTED(p) >= 0 && PieceToChar(p) == '+') {
-                  /* Restore shogi-promoted piece to its original  first */
-                  captured = (ChessSquare) (DEMOTED(captured));
-                  p = DEMOTED(p);
-          }
-          p = PieceToNumber((ChessSquare)p);
-          if(p >= gameInfo.holdingsSize) { p = 0; captured = BlackPawn; }
-          board[p][BOARD_WIDTH-2]++;
-          board[p][BOARD_WIDTH-1] = BLACK_TO_WHITE captured;
-       } else {
-          p -= (int)WhitePawn;
-          if(DEMOTED(p) >= 0 && PieceToChar(p) == '+') {
-                  captured = (ChessSquare) (DEMOTED(captured));
-                  p = DEMOTED(p);
-          }
-          p = PieceToNumber((ChessSquare)p);
-          if(p >= gameInfo.holdingsSize) { p = 0; captured = WhitePawn; }
-          board[BOARD_HEIGHT-1-p][1]++;
-          board[BOARD_HEIGHT-1-p][0] = WHITE_TO_BLACK captured;
-       }
-      }
-    } else if (gameInfo.variant == VariantAtomic) {
-      if (captured != EmptySquare) {
-       int y, x;
-       for (y = toY-1; y <= toY+1; y++) {
-         for (x = toX-1; x <= toX+1; x++) {
-            if (y >= 0 && y < BOARD_HEIGHT && x >= BOARD_LEFT && x < BOARD_RGHT &&
-               board[y][x] != WhitePawn && board[y][x] != BlackPawn) {
-             board[y][x] = EmptySquare;
-           }
-         }
-       }
-       board[toY][toX] = EmptySquare;
-      }
-    }
-
-    if(gameInfo.variant == VariantSChess && promoChar != NULLCHAR && promoChar != '=' && piece != WhitePawn && piece != BlackPawn) {
-        board[fromY][fromX] = CharToPiece(piece < BlackPawn ? ToUpper(promoChar) : ToLower(promoChar)); // S-Chess gating
-    } else
-    if(promoChar == '+') {
-        /* [HGM] Shogi-style promotions, to piece implied by original (Might overwrite ordinary Pawn promotion) */
-        board[toY][toX] = (ChessSquare) (CHUPROMOTED(piece));
-        if(gameInfo.variant == VariantChuChess && (piece == WhiteKnight || piece == BlackKnight))
-          board[toY][toX] = piece + WhiteLion - WhiteKnight; // adjust Knight promotions to Lion
-    } else if(!appData.testLegality && promoChar != NULLCHAR && promoChar != '=') { // without legality testing, unconditionally believe promoChar
-        ChessSquare newPiece = CharToPiece(piece < BlackPawn ? ToUpper(promoChar) : ToLower(promoChar));
-       if((newPiece <= WhiteMan || newPiece >= BlackPawn && newPiece <= BlackMan)  // unpromoted piece specified
-          && pieceToChar[PROMOTED(newPiece)] == '~') newPiece = PROMOTED(newPiece);// but promoted version available
-        board[toY][toX] = newPiece;
-    }
-    if((gameInfo.variant == VariantSuper || gameInfo.variant == VariantGreat || gameInfo.variant == VariantGrand)
-               && promoChar != NULLCHAR && gameInfo.holdingsSize) {
-       // [HGM] superchess: take promotion piece out of holdings
-       int k = PieceToNumber(CharToPiece(ToUpper(promoChar)));
-       if((int)piece < (int)BlackPawn) { // determine stm from piece color
-           if(!--board[k][BOARD_WIDTH-2])
-               board[k][BOARD_WIDTH-1] = EmptySquare;
-       } else {
-           if(!--board[BOARD_HEIGHT-1-k][1])
-               board[BOARD_HEIGHT-1-k][0] = EmptySquare;
-       }
-    }
-}
-
-/* Updates forwardMostMove */
-void
-MakeMove (int fromX, int fromY, int toX, int toY, int promoChar)
-{
-    int x = toX, y = toY;
-    char *s = parseList[forwardMostMove];
-    ChessSquare p = boards[forwardMostMove][toY][toX];
-//    forwardMostMove++; // [HGM] bare: moved downstream
-
-    if(kill2X >= 0) x = kill2X, y = kill2Y; else
-    if(killX >= 0 && killY >= 0) x = killX, y = killY; // [HGM] lion: make SAN move to intermediate square, if there is one
-    (void) CoordsToAlgebraic(boards[forwardMostMove],
-                            PosFlags(forwardMostMove),
-                            fromY, fromX, y, x, (killX < 0)*promoChar,
-                            s);
-    if(kill2X >= 0 && kill2Y >= 0)
-        sprintf(s + strlen(s), "x%c%d", killX + AAA, killY + ONE - '0'); // 2nd leg of 3-leg move is always capture
-    if(killX >= 0 && killY >= 0)
-        sprintf(s + strlen(s), "%c%c%d%c", p == EmptySquare || toX == fromX && toY == fromY || toX== kill2X && toY == kill2Y ? '-' : 'x',
-                                           toX + AAA, toY + ONE - '0', promoChar);
-
-    if(serverMoves != NULL) { /* [HGM] write moves on file for broadcasting (should be separate routine, really) */
-        int timeLeft; static int lastLoadFlag=0; int king, piece;
-        piece = boards[forwardMostMove][fromY][fromX];
-        king = piece < (int) BlackPawn ? WhiteKing : BlackKing;
-        if(gameInfo.variant == VariantKnightmate)
-            king += (int) WhiteUnicorn - (int) WhiteKing;
-        if(forwardMostMove == 0) {
-            if(gameMode == MachinePlaysBlack || gameMode == BeginningOfGame)
-                fprintf(serverMoves, "%s;", UserName());
-            else if(gameMode == TwoMachinesPlay && first.twoMachinesColor[0] == 'b')
-                fprintf(serverMoves, "%s;", second.tidy);
-            fprintf(serverMoves, "%s;", first.tidy);
-            if(gameMode == MachinePlaysWhite)
-                fprintf(serverMoves, "%s;", UserName());
-            else if(gameMode == TwoMachinesPlay && first.twoMachinesColor[0] == 'w')
-                fprintf(serverMoves, "%s;", second.tidy);
-        } else fprintf(serverMoves, loadFlag|lastLoadFlag ? ":" : ";");
-        lastLoadFlag = loadFlag;
-        // print base move
-        fprintf(serverMoves, "%c%c:%c%c", AAA+fromX, ONE+fromY, AAA+toX, ONE+toY);
-        // print castling suffix
-        if( toY == fromY && piece == king ) {
-            if(toX-fromX > 1)
-                fprintf(serverMoves, ":%c%c:%c%c", AAA+BOARD_RGHT-1, ONE+fromY, AAA+toX-1,ONE+toY);
-            if(fromX-toX >1)
-                fprintf(serverMoves, ":%c%c:%c%c", AAA+BOARD_LEFT, ONE+fromY, AAA+toX+1,ONE+toY);
-        }
-        // e.p. suffix
-        if( (boards[forwardMostMove][fromY][fromX] == WhitePawn ||
-             boards[forwardMostMove][fromY][fromX] == BlackPawn   ) &&
-             boards[forwardMostMove][toY][toX] == EmptySquare
-             && fromX != toX && fromY != toY)
-                fprintf(serverMoves, ":%c%c:%c%c", AAA+fromX, ONE+fromY, AAA+toX, ONE+fromY);
-        // promotion suffix
-        if(promoChar != NULLCHAR) {
-            if(fromY == 0 || fromY == BOARD_HEIGHT-1)
-                 fprintf(serverMoves, ":%c%c:%c%c", WhiteOnMove(forwardMostMove) ? 'w' : 'b',
-                                                ToLower(promoChar), AAA+fromX, ONE+fromY); // Seirawan gating
-            else fprintf(serverMoves, ":%c:%c%c", ToLower(promoChar), AAA+toX, ONE+toY);
-       }
-        if(!loadFlag) {
-               char buf[MOVE_LEN*2], *p; int len;
-            fprintf(serverMoves, "/%d/%d",
-               pvInfoList[forwardMostMove].depth, pvInfoList[forwardMostMove].score);
-            if(forwardMostMove+1 & 1) timeLeft = whiteTimeRemaining/1000;
-            else                      timeLeft = blackTimeRemaining/1000;
-            fprintf(serverMoves, "/%d", timeLeft);
-               strncpy(buf, parseList[forwardMostMove], MOVE_LEN*2);
-               if(p = strchr(buf, '/')) *p = NULLCHAR; else
-               if(p = strchr(buf, '=')) *p = NULLCHAR;
-               len = strlen(buf); if(len > 1 && buf[len-2] != '-') buf[len-2] = NULLCHAR; // strip to-square
-            fprintf(serverMoves, "/%s", buf);
-        }
-        fflush(serverMoves);
-    }
-
-    if (forwardMostMove+1 > framePtr) { // [HGM] vari: do not run into saved variations..
-       GameEnds(GameUnfinished, _("Game too long; increase MAX_MOVES and recompile"), GE_XBOARD);
-      return;
-    }
-    UnLoadPV(); // [HGM] pv: if we are looking at a PV, abort this
-    if (commentList[forwardMostMove+1] != NULL) {
-       free(commentList[forwardMostMove+1]);
-       commentList[forwardMostMove+1] = NULL;
-    }
-    CopyBoard(boards[forwardMostMove+1], boards[forwardMostMove]);
-    ApplyMove(fromX, fromY, toX, toY, promoChar, boards[forwardMostMove+1]);
-    // forwardMostMove++; // [HGM] bare: moved to after ApplyMove, to make sure clock interrupt finds complete board
-    SwitchClocks(forwardMostMove+1); // [HGM] race: incrementing move nr inside
-    timeRemaining[0][forwardMostMove] = whiteTimeRemaining;
-    timeRemaining[1][forwardMostMove] = blackTimeRemaining;
-    adjustedClock = FALSE;
-    gameInfo.result = GameUnfinished;
-    if (gameInfo.resultDetails != NULL) {
-       free(gameInfo.resultDetails);
-       gameInfo.resultDetails = NULL;
-    }
-    CoordsToComputerAlgebraic(fromY, fromX, toY, toX, promoChar,
-                             moveList[forwardMostMove - 1]);
-    switch (MateTest(boards[forwardMostMove], PosFlags(forwardMostMove)) ) {
-      case MT_NONE:
-      case MT_STALEMATE:
-      default:
-       break;
-      case MT_CHECK:
-        if(!IS_SHOGI(gameInfo.variant))
-            strcat(parseList[forwardMostMove - 1], "+");
-       break;
-      case MT_CHECKMATE:
-      case MT_STAINMATE:
-       strcat(parseList[forwardMostMove - 1], "#");
-       break;
-    }
-}
-
-/* Updates currentMove if not pausing */
-void
-ShowMove (int fromX, int fromY, int toX, int toY)
-{
-    int instant = (gameMode == PlayFromGameFile) ?
-       (matchMode || (appData.timeDelay == 0 && !pausing)) : pausing;
-    if(appData.noGUI) return;
-    if (!pausing || gameMode == PlayFromGameFile || gameMode == AnalyzeFile) {
-       if (!instant) {
-           if (forwardMostMove == currentMove + 1) {
-               AnimateMove(boards[forwardMostMove - 1],
-                           fromX, fromY, toX, toY);
-           }
-       }
-       currentMove = forwardMostMove;
-    }
-
-    killX = killY = kill2X = kill2Y = -1; // [HGM] lion: used up
-
-    if (instant) return;
-
-    DisplayMove(currentMove - 1);
-    if (!pausing || gameMode == PlayFromGameFile || gameMode == AnalyzeFile) {
-           if (appData.highlightLastMove) { // [HGM] moved to after DrawPosition, as with arrow it could redraw old board
-               SetHighlights(fromX, fromY, toX, toY);
-           }
-    }
-    DrawPosition(FALSE, boards[currentMove]);
-    DisplayBothClocks();
-    HistorySet(parseList,backwardMostMove,forwardMostMove,currentMove-1);
-}
-
-void
-SendEgtPath (ChessProgramState *cps)
-{       /* [HGM] EGT: match formats given in feature with those given by user, and send info for each match */
-       char buf[MSG_SIZ], name[MSG_SIZ], *p;
-
-       if((p = cps->egtFormats) == NULL || appData.egtFormats == NULL) return;
-
-       while(*p) {
-           char c, *q = name+1, *r, *s;
-
-           name[0] = ','; // extract next format name from feature and copy with prefixed ','
-           while(*p && *p != ',') *q++ = *p++;
-           *q++ = ':'; *q = 0;
-           if( appData.defaultPathEGTB && appData.defaultPathEGTB[0] &&
-               strcmp(name, ",nalimov:") == 0 ) {
-               // take nalimov path from the menu-changeable option first, if it is defined
-             snprintf(buf, MSG_SIZ, "egtpath nalimov %s\n", appData.defaultPathEGTB);
-               SendToProgram(buf,cps);     // send egtbpath command for nalimov
-           } else
-           if( (s = StrStr(appData.egtFormats, name+1)) == appData.egtFormats ||
-               (s = StrStr(appData.egtFormats, name)) != NULL) {
-               // format name occurs amongst user-supplied formats, at beginning or immediately after comma
-               s = r = StrStr(s, ":") + 1; // beginning of path info
-               while(*r && *r != ',') r++; // path info is everything upto next ';' or end of string
-               c = *r; *r = 0;             // temporarily null-terminate path info
-                   *--q = 0;               // strip of trailig ':' from name
-                   snprintf(buf, MSG_SIZ, "egtpath %s %s\n", name+1, s);
-               *r = c;
-               SendToProgram(buf,cps);     // send egtbpath command for this format
-           }
-           if(*p == ',') p++; // read away comma to position for next format name
-       }
-}
-
-static int
-NonStandardBoardSize (VariantClass v, int boardWidth, int boardHeight, int holdingsSize)
-{
-      int width = 8, height = 8, holdings = 0;             // most common sizes
-      if( v == VariantUnknown || *engineVariant) return 0; // engine-defined name never needs prefix
-      // correct the deviations default for each variant
-      if( v == VariantXiangqi ) width = 9,  height = 10;
-      if( v == VariantShogi )   width = 9,  height = 9,  holdings = 7;
-      if( v == VariantBughouse || v == VariantCrazyhouse) holdings = 5;
-      if( v == VariantCapablanca || v == VariantCapaRandom ||
-          v == VariantGothic || v == VariantFalcon || v == VariantJanus )
-                                width = 10;
-      if( v == VariantCourier ) width = 12;
-      if( v == VariantSuper )                            holdings = 8;
-      if( v == VariantGreat )   width = 10,              holdings = 8;
-      if( v == VariantSChess )                           holdings = 7;
-      if( v == VariantGrand )   width = 10, height = 10, holdings = 7;
-      if( v == VariantChuChess) width = 10, height = 10;
-      if( v == VariantChu )     width = 12, height = 12;
-      return boardWidth >= 0   && boardWidth   != width  || // -1 is default,
-             boardHeight >= 0  && boardHeight  != height || // and thus by definition OK
-             holdingsSize >= 0 && holdingsSize != holdings;
-}
-
-char variantError[MSG_SIZ];
-
-char *
-SupportedVariant (char *list, VariantClass v, int boardWidth, int boardHeight, int holdingsSize, int proto, char *engine)
-{     // returns error message (recognizable by upper-case) if engine does not support the variant
-      char *p, *variant = VariantName(v);
-      static char b[MSG_SIZ];
-      if(NonStandardBoardSize(v, boardWidth, boardHeight, holdingsSize)) { /* [HGM] make prefix for non-standard board size. */
-          snprintf(b, MSG_SIZ, "%dx%d+%d_%s", boardWidth, boardHeight,
-                                               holdingsSize, variant); // cook up sized variant name
-           /* [HGM] varsize: try first if this deviant size variant is specifically known */
-           if(StrStr(list, b) == NULL) {
-               // specific sized variant not known, check if general sizing allowed
-               if(proto != 1 && StrStr(list, "boardsize") == NULL) {
-                   snprintf(variantError, MSG_SIZ, "Board size %dx%d+%d not supported by %s",
-                            boardWidth, boardHeight, holdingsSize, engine);
-                   return NULL;
-               }
-               /* [HGM] here we really should compare with the maximum supported board size */
-           }
-      } else snprintf(b, MSG_SIZ,"%s", variant);
-      if(proto == 1) return b; // for protocol 1 we cannot check and hope for the best
-      p = StrStr(list, b);
-      while(p && (p != list && p[-1] != ',' || p[strlen(b)] && p[strlen(b)] != ',') ) p = StrStr(p+1, b);
-      if(p == NULL) {
-          // occurs not at all in list, or only as sub-string
-          snprintf(variantError, MSG_SIZ, _("Variant %s not supported by %s"), b, engine);
-          if(p = StrStr(list, b)) { // handle requesting parent variant when only size-overridden is supported
-              int l = strlen(variantError);
-              char *q;
-              while(p != list && p[-1] != ',') p--;
-              q = strchr(p, ',');
-              if(q) *q = NULLCHAR;
-              snprintf(variantError + l, MSG_SIZ - l,  _(", but %s is"), p);
-              if(q) *q= ',';
-          }
-          return NULL;
-      }
-      return b;
-}
-
-void
-InitChessProgram (ChessProgramState *cps, int setup)
-/* setup needed to setup FRC opening position */
-{
-    char buf[MSG_SIZ], *b;
-    if (appData.noChessProgram) return;
-    hintRequested = FALSE;
-    bookRequested = FALSE;
-
-    ParseFeatures(appData.features[cps == &second], cps); // [HGM] allow user to overrule features
-    /* [HGM] some new WB protocol commands to configure engine are sent now, if engine supports them */
-    /*       moved to before sending initstring in 4.3.15, so Polyglot can delay UCI 'isready' to recepton of 'new' */
-    if(cps->memSize) { /* [HGM] memory */
-      snprintf(buf, MSG_SIZ, "memory %d\n", appData.defaultHashSize + appData.defaultCacheSizeEGTB);
-       SendToProgram(buf, cps);
-    }
-    SendEgtPath(cps); /* [HGM] EGT */
-    if(cps->maxCores) { /* [HGM] SMP: (protocol specified must be last settings command before new!) */
-      snprintf(buf, MSG_SIZ, "cores %d\n", appData.smpCores);
-       SendToProgram(buf, cps);
-    }
-
-    setboardSpoiledMachineBlack = FALSE;
-    SendToProgram(cps->initString, cps);
-    if (gameInfo.variant != VariantNormal &&
-       gameInfo.variant != VariantLoadable
-        /* [HGM] also send variant if board size non-standard */
-        || gameInfo.boardWidth != 8 || gameInfo.boardHeight != 8 || gameInfo.holdingsSize != 0) {
-
-      b = SupportedVariant(cps->variants, gameInfo.variant, gameInfo.boardWidth,
-                           gameInfo.boardHeight, gameInfo.holdingsSize, cps->protocolVersion, cps->tidy);
-
-      if (b == NULL) {
-       VariantClass v;
-       char c, *q = cps->variants, *p = strchr(q, ',');
-       if(p) *p = NULLCHAR;
-       v = StringToVariant(q);
-       DisplayError(variantError, 0);
-       if(v != VariantUnknown && cps == &first) {
-           int w, h, s;
-           if(sscanf(q, "%dx%d+%d_%c", &w, &h, &s, &c) == 4) // get size overrides the engine needs with it (if any)
-               appData.NrFiles = w, appData.NrRanks = h, appData.holdingsSize = s, q = strchr(q, '_') + 1;
-           ASSIGN(appData.variant, q);
-           Reset(TRUE, FALSE);
-       }
-       if(p) *p = ',';
-       return;
-      }
-
-      snprintf(buf, MSG_SIZ, "variant %s\n", b);
-      SendToProgram(buf, cps);
-    }
-    currentlyInitializedVariant = gameInfo.variant;
-
-    /* [HGM] send opening position in FRC to first engine */
-    if(setup) {
-          SendToProgram("force\n", cps);
-          SendBoard(cps, 0);
-          /* engine is now in force mode! Set flag to wake it up after first move. */
-          setboardSpoiledMachineBlack = 1;
-    }
-
-    if (cps->sendICS) {
-      snprintf(buf, sizeof(buf), "ics %s\n", appData.icsActive ? appData.icsHost : "-");
-      SendToProgram(buf, cps);
-    }
-    cps->maybeThinking = FALSE;
-    cps->offeredDraw = 0;
-    if (!appData.icsActive) {
-       SendTimeControl(cps, movesPerSession, timeControl,
-                       timeIncrement, appData.searchDepth,
-                       searchTime);
-    }
-    if (appData.showThinking
-       // [HGM] thinking: four options require thinking output to be sent
-       || !appData.hideThinkingFromHuman || appData.adjudicateLossThreshold != 0 || EngineOutputIsUp()
-                               ) {
-       SendToProgram("post\n", cps);
-    }
-    SendToProgram("hard\n", cps);
-    if (!appData.ponderNextMove) {
-       /* Warning: "easy" is a toggle in GNU Chess, so don't send
-          it without being sure what state we are in first.  "hard"
-          is not a toggle, so that one is OK.
-        */
-       SendToProgram("easy\n", cps);
-    }
-    if (cps->usePing) {
-      snprintf(buf, MSG_SIZ, "ping %d\n", initPing = ++cps->lastPing);
-      SendToProgram(buf, cps);
-    }
-    cps->initDone = TRUE;
-    ClearEngineOutputPane(cps == &second);
-}
-
-
-void
-ResendOptions (ChessProgramState *cps)
-{ // send the stored value of the options
-  int i;
-  char buf[MSG_SIZ];
-  Option *opt = cps->option;
-  for(i=0; i<cps->nrOptions; i++, opt++) {
-      switch(opt->type) {
-        case Spin:
-        case Slider:
-        case CheckBox:
-           snprintf(buf, MSG_SIZ, "option %s=%d\n", opt->name, opt->value);
-          break;
-        case ComboBox:
-          snprintf(buf, MSG_SIZ, "option %s=%s\n", opt->name, opt->choice[opt->value]);
-          break;
-        default:
-           snprintf(buf, MSG_SIZ, "option %s=%s\n", opt->name, opt->textValue);
-          break;
-        case Button:
-        case SaveButton:
-          continue;
-      }
-      SendToProgram(buf, cps);
-  }
-}
-
-void
-StartChessProgram (ChessProgramState *cps)
-{
-    char buf[MSG_SIZ];
-    int err;
-
-    if (appData.noChessProgram) return;
-    cps->initDone = FALSE;
-
-    if (strcmp(cps->host, "localhost") == 0) {
-       err = StartChildProcess(cps->program, cps->dir, &cps->pr);
-    } else if (*appData.remoteShell == NULLCHAR) {
-       err = OpenRcmd(cps->host, appData.remoteUser, cps->program, &cps->pr);
-    } else {
-       if (*appData.remoteUser == NULLCHAR) {
-         snprintf(buf, sizeof(buf), "%s %s %s", appData.remoteShell, cps->host,
-                   cps->program);
-       } else {
-         snprintf(buf, sizeof(buf), "%s %s -l %s %s", appData.remoteShell,
-                   cps->host, appData.remoteUser, cps->program);
-       }
-       err = StartChildProcess(buf, "", &cps->pr);
-    }
-
-    if (err != 0) {
-      snprintf(buf, MSG_SIZ, _("Startup failure on '%s'"), cps->program);
-       DisplayError(buf, err); // [HGM] bit of a rough kludge: ignore failure, (which XBoard would do anyway), and let I/O discover it
-       if(cps != &first) return;
-       appData.noChessProgram = TRUE;
-       ThawUI();
-       SetNCPMode();
-//     DisplayFatalError(buf, err, 1);
-//     cps->pr = NoProc;
-//     cps->isr = NULL;
-       return;
-    }
-
-    cps->isr = AddInputSource(cps->pr, TRUE, ReceiveFromProgram, cps);
-    if (cps->protocolVersion > 1) {
-      snprintf(buf, MSG_SIZ, "xboard\nprotover %d\n", cps->protocolVersion);
-      if(!cps->reload) { // do not clear options when reloading because of -xreuse
-        cps->nrOptions = 0; // [HGM] options: clear all engine-specific options
-        cps->comboCnt = 0;  //                and values of combo boxes
-      }
-      SendToProgram(buf, cps);
-      if(cps->reload) ResendOptions(cps);
-    } else {
-      SendToProgram("xboard\n", cps);
-    }
-}
-
-void
-TwoMachinesEventIfReady P((void))
-{
-  static int curMess = 0;
-  if (first.lastPing != first.lastPong) {
-    if(curMess != 1) DisplayMessage("", _("Waiting for first chess program")); curMess = 1;
-    ScheduleDelayedEvent(TwoMachinesEventIfReady, 10); // [HGM] fast: lowered from 1000
-    return;
-  }
-  if (second.lastPing != second.lastPong) {
-    if(curMess != 2) DisplayMessage("", _("Waiting for second chess program")); curMess = 2;
-    ScheduleDelayedEvent(TwoMachinesEventIfReady, 10); // [HGM] fast: lowered from 1000
-    return;
-  }
-  DisplayMessage("", ""); curMess = 0;
-  TwoMachinesEvent();
-}
-
-char *
-MakeName (char *template)
-{
-    time_t clock;
-    struct tm *tm;
-    static char buf[MSG_SIZ];
-    char *p = buf;
-    int i;
-
-    clock = time((time_t *)NULL);
-    tm = localtime(&clock);
-
-    while(*p++ = *template++) if(p[-1] == '%') {
-       switch(*template++) {
-         case 0:   *p = 0; return buf;
-         case 'Y': i = tm->tm_year+1900; break;
-         case 'y': i = tm->tm_year-100; break;
-         case 'M': i = tm->tm_mon+1; break;
-         case 'd': i = tm->tm_mday; break;
-         case 'h': i = tm->tm_hour; break;
-         case 'm': i = tm->tm_min; break;
-         case 's': i = tm->tm_sec; break;
-         default:  i = 0;
-       }
-       snprintf(p-1, MSG_SIZ-10 - (p - buf), "%02d", i); p += strlen(p);
-    }
-    return buf;
-}
-
-int
-CountPlayers (char *p)
-{
-    int n = 0;
-    while(p = strchr(p, '\n')) p++, n++; // count participants
-    return n;
-}
-
-FILE *
-WriteTourneyFile (char *results, FILE *f)
-{   // write tournament parameters on tourneyFile; on success return the stream pointer for closing
-    if(f == NULL) f = fopen(appData.tourneyFile, "w");
-    if(f == NULL) DisplayError(_("Could not write on tourney file"), 0); else {
-       // create a file with tournament description
-       fprintf(f, "-participants {%s}\n", appData.participants);
-       fprintf(f, "-seedBase %d\n", appData.seedBase);
-       fprintf(f, "-tourneyType %d\n", appData.tourneyType);
-       fprintf(f, "-tourneyCycles %d\n", appData.tourneyCycles);
-       fprintf(f, "-defaultMatchGames %d\n", appData.defaultMatchGames);
-       fprintf(f, "-syncAfterRound %s\n", appData.roundSync ? "true" : "false");
-       fprintf(f, "-syncAfterCycle %s\n", appData.cycleSync ? "true" : "false");
-       fprintf(f, "-saveGameFile \"%s\"\n", appData.saveGameFile);
-       fprintf(f, "-loadGameFile \"%s\"\n", appData.loadGameFile);
-       fprintf(f, "-loadGameIndex %d\n", appData.loadGameIndex);
-       fprintf(f, "-loadPositionFile \"%s\"\n", appData.loadPositionFile);
-       fprintf(f, "-loadPositionIndex %d\n", appData.loadPositionIndex);
-       fprintf(f, "-rewindIndex %d\n", appData.rewindIndex);
-       fprintf(f, "-usePolyglotBook %s\n", appData.usePolyglotBook ? "true" : "false");
-       fprintf(f, "-polyglotBook \"%s\"\n", appData.polyglotBook);
-       fprintf(f, "-bookDepth %d\n", appData.bookDepth);
-       fprintf(f, "-bookVariation %d\n", appData.bookStrength);
-       fprintf(f, "-discourageOwnBooks %s\n", appData.defNoBook ? "true" : "false");
-       fprintf(f, "-defaultHashSize %d\n", appData.defaultHashSize);
-       fprintf(f, "-defaultCacheSizeEGTB %d\n", appData.defaultCacheSizeEGTB);
-       fprintf(f, "-ponderNextMove %s\n", appData.ponderNextMove ? "true" : "false");
-       fprintf(f, "-smpCores %d\n", appData.smpCores);
-       if(searchTime > 0)
-               fprintf(f, "-searchTime \"%d:%02d\"\n", searchTime/60, searchTime%60);
-       else {
-               fprintf(f, "-mps %d\n", appData.movesPerSession);
-               fprintf(f, "-tc %s\n", appData.timeControl);
-               fprintf(f, "-inc %.2f\n", appData.timeIncrement);
-       }
-       fprintf(f, "-results \"%s\"\n", results);
-    }
-    return f;
-}
-
-char *command[MAXENGINES], *mnemonic[MAXENGINES];
-
-void
-Substitute (char *participants, int expunge)
-{
-    int i, changed, changes=0, nPlayers=0;
-    char *p, *q, *r, buf[MSG_SIZ];
-    if(participants == NULL) return;
-    if(appData.tourneyFile[0] == NULLCHAR) { free(participants); return; }
-    r = p = participants; q = appData.participants;
-    while(*p && *p == *q) {
-       if(*p == '\n') r = p+1, nPlayers++;
-       p++; q++;
-    }
-    if(*p) { // difference
-       while(*p && *p++ != '\n')
-                                ;
-       while(*q && *q++ != '\n')
-                                ;
-      changed = nPlayers;
-       changes = 1 + (strcmp(p, q) != 0);
-    }
-    if(changes == 1) { // a single engine mnemonic was changed
-       q = r; while(*q) nPlayers += (*q++ == '\n');
-       p = buf; while(*r && (*p = *r++) != '\n') p++;
-       *p = NULLCHAR;
-       NamesToList(firstChessProgramNames, command, mnemonic, "all");
-       for(i=1; mnemonic[i]; i++) if(!strcmp(buf, mnemonic[i])) break;
-       if(mnemonic[i]) { // The substitute is valid
-           FILE *f;
-           if(appData.tourneyFile[0] && (f = fopen(appData.tourneyFile, "r+")) ) {
-               flock(fileno(f), LOCK_EX);
-               ParseArgsFromFile(f);
-               fseek(f, 0, SEEK_SET);
-               FREE(appData.participants); appData.participants = participants;
-               if(expunge) { // erase results of replaced engine
-                   int len = strlen(appData.results), w, b, dummy;
-                   for(i=0; i<len; i++) {
-                       Pairing(i, nPlayers, &w, &b, &dummy);
-                       if((w == changed || b == changed) && appData.results[i] == '*') {
-                           DisplayError(_("You cannot replace an engine while it is engaged!\nTerminate its game first."), 0);
-                           fclose(f);
-                           return;
-                       }
-                   }
-                   for(i=0; i<len; i++) {
-                       Pairing(i, nPlayers, &w, &b, &dummy);
-                       if(w == changed || b == changed) appData.results[i] = ' '; // mark as not played
-                   }
-               }
-               WriteTourneyFile(appData.results, f);
-               fclose(f); // release lock
-               return;
-           }
-       } else DisplayError(_("No engine with the name you gave is installed"), 0);
-    }
-    if(changes == 0) DisplayError(_("First change an engine by editing the participants list\nof the Tournament Options dialog"), 0);
-    if(changes > 1)  DisplayError(_("You can only change one engine at the time"), 0);
-    free(participants);
-    return;
-}
-
-int
-CheckPlayers (char *participants)
-{
-       int i;
-       char buf[MSG_SIZ], *p;
-       NamesToList(firstChessProgramNames, command, mnemonic, "all");
-       while(p = strchr(participants, '\n')) {
-           *p = NULLCHAR;
-           for(i=1; mnemonic[i]; i++) if(!strcmp(participants, mnemonic[i])) break;
-           if(!mnemonic[i]) {
-               snprintf(buf, MSG_SIZ, _("No engine %s is installed"), participants);
-               *p = '\n';
-               DisplayError(buf, 0);
-               return 1;
-           }
-           *p = '\n';
-           participants = p + 1;
-       }
-       return 0;
-}
-
-int
-CreateTourney (char *name)
-{
-       FILE *f;
-       if(matchMode && strcmp(name, appData.tourneyFile)) {
-            ASSIGN(name, appData.tourneyFile); //do not allow change of tourneyfile while playing
-       }
-       if(name[0] == NULLCHAR) {
-           if(appData.participants[0])
-               DisplayError(_("You must supply a tournament file,\nfor storing the tourney progress"), 0);
-           return 0;
-       }
-       f = fopen(name, "r");
-       if(f) { // file exists
-           ASSIGN(appData.tourneyFile, name);
-           ParseArgsFromFile(f); // parse it
-       } else {
-           if(!appData.participants[0]) return 0; // ignore tourney file if non-existing & no participants
-           if(CountPlayers(appData.participants) < (appData.tourneyType>0 ? appData.tourneyType+1 : 2)) {
-               DisplayError(_("Not enough participants"), 0);
-               return 0;
-           }
-           if(CheckPlayers(appData.participants)) return 0;
-           ASSIGN(appData.tourneyFile, name);
-           if(appData.tourneyType < 0) appData.defaultMatchGames = 1; // Swiss forces games/pairing = 1
-           if((f = WriteTourneyFile("", NULL)) == NULL) return 0;
-       }
-       fclose(f);
-       appData.noChessProgram = FALSE;
-       appData.clockMode = TRUE;
-       SetGNUMode();
-       return 1;
-}
-
-int
-NamesToList (char *names, char **engineList, char **engineMnemonic, char *group)
-{
-    char buf[MSG_SIZ], *p, *q;
-    int i=1, header, skip, all = !strcmp(group, "all"), depth = 0;
-    insert = names; // afterwards, this global will point just after last retrieved engine line or group end in the 'names'
-    skip = !all && group[0]; // if group requested, we start in skip mode
-    for(;*names && depth >= 0 && i < MAXENGINES-1; names = p) {
-       p = names; q = buf; header = 0;
-       while(*p && *p != '\n') *q++ = *p++;
-       *q = 0;
-       if(*p == '\n') p++;
-       if(buf[0] == '#') {
-           if(strstr(buf, "# end") == buf) { if(!--depth) insert = p; continue; } // leave group, and suppress printing label
-           depth++; // we must be entering a new group
-           if(all) continue; // suppress printing group headers when complete list requested
-           header = 1;
-           if(skip && !strcmp(group, buf)) { depth = 0; skip = FALSE; } // start when we reach requested group
-       }
-       if(depth != header && !all || skip) continue; // skip contents of group (but print first-level header)
-       if(engineList[i]) free(engineList[i]);
-       engineList[i] = strdup(buf);
-       if(buf[0] != '#') insert = p, TidyProgramName(engineList[i], "localhost", buf); // group headers not tidied
-       if(engineMnemonic[i]) free(engineMnemonic[i]);
-       if((q = strstr(engineList[i]+2, "variant")) && q[-2]== ' ' && (q[-1]=='/' || q[-1]=='-') && (q[7]==' ' || q[7]=='=')) {
-           strcat(buf, " (");
-           sscanf(q + 8, "%s", buf + strlen(buf));
-           strcat(buf, ")");
-       }
-       engineMnemonic[i] = strdup(buf);
-       i++;
-    }
-    engineList[i] = engineMnemonic[i] = NULL;
-    return i;
-}
-
-// following implemented as macro to avoid type limitations
-#define SWAP(item, temp) temp = appData.item[0]; appData.item[0] = appData.item[n]; appData.item[n] = temp;
-
-void
-SwapEngines (int n)
-{   // swap settings for first engine and other engine (so far only some selected options)
-    int h;
-    char *p;
-    if(n == 0) return;
-    SWAP(directory, p)
-    SWAP(chessProgram, p)
-    SWAP(isUCI, h)
-    SWAP(hasOwnBookUCI, h)
-    SWAP(protocolVersion, h)
-    SWAP(reuse, h)
-    SWAP(scoreIsAbsolute, h)
-    SWAP(timeOdds, h)
-    SWAP(logo, p)
-    SWAP(pgnName, p)
-    SWAP(pvSAN, h)
-    SWAP(engOptions, p)
-    SWAP(engInitString, p)
-    SWAP(computerString, p)
-    SWAP(features, p)
-    SWAP(fenOverride, p)
-    SWAP(NPS, h)
-    SWAP(accumulateTC, h)
-    SWAP(drawDepth, h)
-    SWAP(host, p)
-    SWAP(pseudo, h)
-}
-
-int
-GetEngineLine (char *s, int n)
-{
-    int i;
-    char buf[MSG_SIZ];
-    extern char *icsNames;
-    if(!s || !*s) return 0;
-    NamesToList(n >= 10 ? icsNames : firstChessProgramNames, command, mnemonic, "all");
-    for(i=1; mnemonic[i]; i++) if(!strcmp(s, mnemonic[i])) break;
-    if(!mnemonic[i]) return 0;
-    if(n == 11) return 1; // just testing if there was a match
-    snprintf(buf, MSG_SIZ, "-%s %s", n == 10 ? "icshost" : "fcp", command[i]);
-    if(n == 1) SwapEngines(n);
-    ParseArgsFromString(buf);
-    if(n == 1) SwapEngines(n);
-    if(n == 0 && *appData.secondChessProgram == NULLCHAR) {
-       SwapEngines(1); // set second same as first if not yet set (to suppress WB startup dialog)
-       ParseArgsFromString(buf);
-    }
-    return 1;
-}
-
-int
-SetPlayer (int player, char *p)
-{   // [HGM] find the engine line of the partcipant given by number, and parse its options.
-    int i;
-    char buf[MSG_SIZ], *engineName;
-    for(i=0; i<player; i++) p = strchr(p, '\n') + 1;
-    engineName = strdup(p); if(p = strchr(engineName, '\n')) *p = NULLCHAR;
-    for(i=1; command[i]; i++) if(!strcmp(mnemonic[i], engineName)) break;
-    if(mnemonic[i]) {
-       snprintf(buf, MSG_SIZ, "-fcp %s", command[i]);
-       ParseArgsFromString(resetOptions); appData.fenOverride[0] = NULL; appData.pvSAN[0] = FALSE;
-       appData.firstHasOwnBookUCI = !appData.defNoBook; appData.protocolVersion[0] = PROTOVER;
-       ParseArgsFromString(buf);
-    } else { // no engine with this nickname is installed!
-       snprintf(buf, MSG_SIZ, _("No engine %s is installed"), engineName);
-       ReserveGame(nextGame, ' '); // unreserve game and drop out of match mode with error
-       matchMode = FALSE; appData.matchGames = matchGame = roundNr = 0;
-       ModeHighlight();
-       DisplayError(buf, 0);
-       return 0;
-    }
-    free(engineName);
-    return i;
-}
-
-char *recentEngines;
-
-void
-RecentEngineEvent (int nr)
-{
-    int n;
-//    SwapEngines(1); // bump first to second
-//    ReplaceEngine(&second, 1); // and load it there
-    NamesToList(firstChessProgramNames, command, mnemonic, "all"); // get mnemonics of installed engines
-    n = SetPlayer(nr, recentEngines); // select new (using original menu order!)
-    if(mnemonic[n]) { // if somehow the engine with the selected nickname is no longer found in the list, we skip
-       ReplaceEngine(&first, 0);
-       FloatToFront(&appData.recentEngineList, command[n]);
-    }
-}
-
-int
-Pairing (int nr, int nPlayers, int *whitePlayer, int *blackPlayer, int *syncInterval)
-{   // determine players from game number
-    int curCycle, curRound, curPairing, gamesPerCycle, gamesPerRound, roundsPerCycle=1, pairingsPerRound=1;
-
-    if(appData.tourneyType == 0) {
-       roundsPerCycle = (nPlayers - 1) | 1;
-       pairingsPerRound = nPlayers / 2;
-    } else if(appData.tourneyType > 0) {
-       roundsPerCycle = nPlayers - appData.tourneyType;
-       pairingsPerRound = appData.tourneyType;
-    }
-    gamesPerRound = pairingsPerRound * appData.defaultMatchGames;
-    gamesPerCycle = gamesPerRound * roundsPerCycle;
-    appData.matchGames = gamesPerCycle * appData.tourneyCycles - 1; // fake like all games are one big match
-    curCycle = nr / gamesPerCycle; nr %= gamesPerCycle;
-    curRound = nr / gamesPerRound; nr %= gamesPerRound;
-    curPairing = nr / appData.defaultMatchGames; nr %= appData.defaultMatchGames;
-    matchGame = nr + curCycle * appData.defaultMatchGames + 1; // fake game nr that loads correct game or position from file
-    roundNr = (curCycle * roundsPerCycle + curRound) * appData.defaultMatchGames + nr + 1;
-
-    if(appData.cycleSync) *syncInterval = gamesPerCycle;
-    if(appData.roundSync) *syncInterval = gamesPerRound;
-
-    if(appData.debugMode) fprintf(debugFP, "cycle=%d, round=%d, pairing=%d curGame=%d\n", curCycle, curRound, curPairing, matchGame);
-
-    if(appData.tourneyType == 0) {
-       if(curPairing == (nPlayers-1)/2 ) {
-           *whitePlayer = curRound;
-           *blackPlayer = nPlayers - 1; // this is the 'bye' when nPlayer is odd
-       } else {
-           *whitePlayer = curRound - (nPlayers-1)/2 + curPairing;
-           if(*whitePlayer < 0) *whitePlayer += nPlayers-1+(nPlayers&1);
-           *blackPlayer = curRound + (nPlayers-1)/2 - curPairing;
-           if(*blackPlayer >= nPlayers-1+(nPlayers&1)) *blackPlayer -= nPlayers-1+(nPlayers&1);
-       }
-    } else if(appData.tourneyType > 1) {
-       *blackPlayer = curPairing; // in multi-gauntlet, assign gauntlet engines to second, so first an be kept loaded during round
-       *whitePlayer = curRound + appData.tourneyType;
-    } else if(appData.tourneyType > 0) {
-       *whitePlayer = curPairing;
-       *blackPlayer = curRound + appData.tourneyType;
-    }
-
-    // take care of white/black alternation per round.
-    // For cycles and games this is already taken care of by default, derived from matchGame!
-    return curRound & 1;
-}
-
-int
-NextTourneyGame (int nr, int *swapColors)
-{   // !!!major kludge!!! fiddle appData settings to get everything in order for next tourney game
-    char *p, *q;
-    int whitePlayer, blackPlayer, firstBusy=1000000000, syncInterval = 0, nPlayers, OK = 1;
-    FILE *tf;
-    if(appData.tourneyFile[0] == NULLCHAR) return 1; // no tourney, always allow next game
-    tf = fopen(appData.tourneyFile, "r");
-    if(tf == NULL) { DisplayFatalError(_("Bad tournament file"), 0, 1); return 0; }
-    ParseArgsFromFile(tf); fclose(tf);
-    InitTimeControls(); // TC might be altered from tourney file
-
-    nPlayers = CountPlayers(appData.participants); // count participants
-    if(appData.tourneyType < 0) syncInterval = nPlayers/2; else
-    *swapColors = Pairing(nr<0 ? 0 : nr, nPlayers, &whitePlayer, &blackPlayer, &syncInterval);
-
-    if(syncInterval) {
-       p = q = appData.results;
-       while(*q) if(*q++ == '*' || q[-1] == ' ') { firstBusy = q - p - 1; break; }
-       if(firstBusy/syncInterval < (nextGame/syncInterval)) {
-           DisplayMessage(_("Waiting for other game(s)"),"");
-           waitingForGame = TRUE;
-           ScheduleDelayedEvent(NextMatchGame, 1000); // wait for all games of previous round to finish
-           return 0;
-       }
-       waitingForGame = FALSE;
-    }
-
-    if(appData.tourneyType < 0) {
-       if(nr>=0 && !pairingReceived) {
-           char buf[1<<16];
-           if(pairing.pr == NoProc) {
-               if(!appData.pairingEngine[0]) {
-                   DisplayFatalError(_("No pairing engine specified"), 0, 1);
-                   return 0;
-               }
-               StartChessProgram(&pairing); // starts the pairing engine
-           }
-           snprintf(buf, 1<<16, "results %d %s\n", nPlayers, appData.results);
-           SendToProgram(buf, &pairing);
-           snprintf(buf, 1<<16, "pairing %d\n", nr+1);
-           SendToProgram(buf, &pairing);
-           return 0; // wait for pairing engine to answer (which causes NextTourneyGame to be called again...
-       }
-       pairingReceived = 0;                              // ... so we continue here
-       *swapColors = 0;
-       appData.matchGames = appData.tourneyCycles * syncInterval - 1;
-       whitePlayer = savedWhitePlayer-1; blackPlayer = savedBlackPlayer-1;
-       matchGame = 1; roundNr = nr / syncInterval + 1;
-    }
-
-    if(first.pr != NoProc && second.pr != NoProc || nr<0) return 1; // engines already loaded
-
-    // redefine engines, engine dir, etc.
-    NamesToList(firstChessProgramNames, command, mnemonic, "all"); // get mnemonics of installed engines
-    if(first.pr == NoProc) {
-      if(!SetPlayer(whitePlayer, appData.participants)) OK = 0; // find white player amongst it, and parse its engine line
-      InitEngine(&first, 0);  // initialize ChessProgramStates based on new settings.
-    }
-    if(second.pr == NoProc) {
-      SwapEngines(1);
-      if(!SetPlayer(blackPlayer, appData.participants)) OK = 0; // find black player amongst it, and parse its engine line
-      SwapEngines(1);         // and make that valid for second engine by swapping
-      InitEngine(&second, 1);
-    }
-    CommonEngineInit();     // after this TwoMachinesEvent will create correct engine processes
-    UpdateLogos(FALSE);     // leave display to ModeHiglight()
-    return OK;
-}
-
-void
-NextMatchGame ()
-{   // performs game initialization that does not invoke engines, and then tries to start the game
-    int res, firstWhite, swapColors = 0;
-    if(!NextTourneyGame(nextGame, &swapColors)) return; // this sets matchGame, -fcp / -scp and other options for next game, if needed
-    if(matchMode && appData.debugMode) { // [HGM] debug split: game is part of a match; we might have to create a debug file just for this game
-       char buf[MSG_SIZ];
-       snprintf(buf, MSG_SIZ, appData.nameOfDebugFile, nextGame+1); // expand name of debug file with %d in it
-       if(strcmp(buf, currentDebugFile)) { // name has changed
-           FILE *f = fopen(buf, "w");
-           if(f) { // if opening the new file failed, just keep using the old one
-               ASSIGN(currentDebugFile, buf);
-               fclose(debugFP);
-               debugFP = f;
-           }
-           if(appData.serverFileName) {
-               if(serverFP) fclose(serverFP);
-               serverFP = fopen(appData.serverFileName, "w");
-               if(serverFP && first.pr != NoProc) fprintf(serverFP, "StartChildProcess (dir=\".\") .\\%s\n", first.tidy);
-               if(serverFP && second.pr != NoProc) fprintf(serverFP, "StartChildProcess (dir=\".\") .\\%s\n", second.tidy);
-           }
-       }
-    }
-    firstWhite = appData.firstPlaysBlack ^ (matchGame & 1 | appData.sameColorGames > 1); // non-incremental default
-    firstWhite ^= swapColors; // reverses if NextTourneyGame says we are in an odd round
-    first.twoMachinesColor =  firstWhite ? "white\n" : "black\n";   // perform actual color assignement
-    second.twoMachinesColor = firstWhite ? "black\n" : "white\n";
-    appData.noChessProgram = (first.pr == NoProc); // kludge to prevent Reset from starting up chess program
-    if(appData.loadGameIndex == -2) srandom(appData.seedBase + 68163*(nextGame & ~1)); // deterministic seed to force same opening
-    Reset(FALSE, first.pr != NoProc);
-    res = LoadGameOrPosition(matchGame); // setup game
-    appData.noChessProgram = FALSE; // LoadGameOrPosition might call Reset too!
-    if(!res) return; // abort when bad game/pos file
-    if(appData.epd) {// in EPD mode we make sure first engine is to move
-       firstWhite = !(forwardMostMove & 1);
-       first.twoMachinesColor =  firstWhite ? "white\n" : "black\n";   // perform actual color assignement
-       second.twoMachinesColor = firstWhite ? "black\n" : "white\n";
-    }
-    TwoMachinesEvent();
-}
-
-void
-UserAdjudicationEvent (int result)
-{
-    ChessMove gameResult = GameIsDrawn;
-
-    if( result > 0 ) {
-        gameResult = WhiteWins;
-    }
-    else if( result < 0 ) {
-        gameResult = BlackWins;
-    }
-
-    if( gameMode == TwoMachinesPlay ) {
-        GameEnds( gameResult, "User adjudication", GE_XBOARD );
-    }
-}
-
-
-// [HGM] save: calculate checksum of game to make games easily identifiable
-int
-StringCheckSum (char *s)
-{
-       int i = 0;
-       if(s==NULL) return 0;
-       while(*s) i = i*259 + *s++;
-       return i;
-}
-
-int
-GameCheckSum ()
-{
-       int i, sum=0;
-       for(i=backwardMostMove; i<forwardMostMove; i++) {
-               sum += pvInfoList[i].depth;
-               sum += StringCheckSum(parseList[i]);
-               sum += StringCheckSum(commentList[i]);
-               sum *= 261;
-       }
-       if(i>1 && sum==0) sum++; // make sure never zero for non-empty game
-       return sum + StringCheckSum(commentList[i]);
-} // end of save patch
-
-void
-GameEnds (ChessMove result, char *resultDetails, int whosays)
-{
-    GameMode nextGameMode;
-    int isIcsGame;
-    char buf[MSG_SIZ], popupRequested = 0, *ranking = NULL;
-
-    if(endingGame) return; /* [HGM] crash: forbid recursion */
-    endingGame = 1;
-    if(twoBoards) { // [HGM] dual: switch back to one board
-       twoBoards = partnerUp = 0; InitDrawingSizes(-2, 0);
-       DrawPosition(TRUE, partnerBoard); // observed game becomes foreground
-    }
-    if (appData.debugMode) {
-      fprintf(debugFP, "GameEnds(%d, %s, %d)\n",
-             result, resultDetails ? resultDetails : "(null)", whosays);
-    }
-
-    fromX = fromY = killX = killY = kill2X = kill2Y = -1; // [HGM] abort any move the user is entering. // [HGM] lion
-
-    if(pausing) PauseEvent(); // can happen when we abort a paused game (New Game or Quit)
-
-    if (appData.icsActive && (whosays == GE_ENGINE || whosays >= GE_ENGINE1)) {
-       /* If we are playing on ICS, the server decides when the
-          game is over, but the engine can offer to draw, claim
-          a draw, or resign.
-        */
-#if ZIPPY
-       if (appData.zippyPlay && first.initDone) {
-           if (result == GameIsDrawn) {
-               /* In case draw still needs to be claimed */
-               SendToICS(ics_prefix);
-               SendToICS("draw\n");
-           } else if (StrCaseStr(resultDetails, "resign")) {
-               SendToICS(ics_prefix);
-               SendToICS("resign\n");
-           }
-        }
-#endif
-       endingGame = 0; /* [HGM] crash */
-        return;
-    }
-
-    /* If we're loading the game from a file, stop */
-    if (whosays == GE_FILE) {
-      (void) StopLoadGameTimer();
-      gameFileFP = NULL;
-    }
-
-    /* Cancel draw offers */
-    first.offeredDraw = second.offeredDraw = 0;
-
-    /* If this is an ICS game, only ICS can really say it's done;
-       if not, anyone can. */
-    isIcsGame = (gameMode == IcsPlayingWhite ||
-                gameMode == IcsPlayingBlack ||
-                gameMode == IcsObserving    ||
-                gameMode == IcsExamining);
-
-    if (!isIcsGame || whosays == GE_ICS) {
-       /* OK -- not an ICS game, or ICS said it was done */
-       StopClocks();
-       if (!isIcsGame && !appData.noChessProgram)
-         SetUserThinkingEnables();
-
-        /* [HGM] if a machine claims the game end we verify this claim */
-        if(gameMode == TwoMachinesPlay && appData.testClaims) {
-           if(appData.testLegality && whosays >= GE_ENGINE1 ) {
-                char claimer;
-               ChessMove trueResult = (ChessMove) -1;
-
-                claimer = whosays == GE_ENGINE1 ?      /* color of claimer */
-                                            first.twoMachinesColor[0] :
-                                            second.twoMachinesColor[0] ;
-
-               // [HGM] losers: because the logic is becoming a bit hairy, determine true result first
-               if((signed char)boards[forwardMostMove][EP_STATUS] == EP_CHECKMATE) {
-                   /* [HGM] verify: engine mate claims accepted if they were flagged */
-                   trueResult = WhiteOnMove(forwardMostMove) ? BlackWins : WhiteWins;
-               } else
-               if((signed char)boards[forwardMostMove][EP_STATUS] == EP_WINS) { // added code for games where being mated is a win
-                   /* [HGM] verify: engine mate claims accepted if they were flagged */
-                   trueResult = WhiteOnMove(forwardMostMove) ? WhiteWins : BlackWins;
-               } else
-               if((signed char)boards[forwardMostMove][EP_STATUS] == EP_STALEMATE) { // only used to indicate draws now
-                   trueResult = GameIsDrawn; // default; in variants where stalemate loses, Status is CHECKMATE
-               }
-
-               // now verify win claims, but not in drop games, as we don't understand those yet
-                if( (gameInfo.holdingsWidth == 0 || gameInfo.variant == VariantSuper
-                                                || gameInfo.variant == VariantGreat || gameInfo.variant == VariantGrand) &&
-                    (result == WhiteWins && claimer == 'w' ||
-                     result == BlackWins && claimer == 'b'   ) ) { // case to verify: engine claims own win
-                     if (appData.debugMode) {
-                       fprintf(debugFP, "result=%d sp=%d move=%d\n",
-                               result, (signed char)boards[forwardMostMove][EP_STATUS], forwardMostMove);
-                     }
-                     if(result != trueResult) {
-                       snprintf(buf, MSG_SIZ, "False win claim: '%s'", resultDetails);
-                             result = claimer == 'w' ? BlackWins : WhiteWins;
-                             resultDetails = buf;
-                     }
-                } else
-                if( result == GameIsDrawn && (signed char)boards[forwardMostMove][EP_STATUS] > EP_DRAWS
-                    && (forwardMostMove <= backwardMostMove ||
-                        (signed char)boards[forwardMostMove-1][EP_STATUS] > EP_DRAWS ||
-                        (claimer=='b')==(forwardMostMove&1))
-                                                                                  ) {
-                      /* [HGM] verify: draws that were not flagged are false claims */
-                 snprintf(buf, MSG_SIZ, "False draw claim: '%s'", resultDetails);
-                      result = claimer == 'w' ? BlackWins : WhiteWins;
-                      resultDetails = buf;
-                }
-                /* (Claiming a loss is accepted no questions asked!) */
-           } else if(matchMode && result == GameIsDrawn && !strcmp(resultDetails, "Engine Abort Request")) {
-               forwardMostMove = backwardMostMove; // [HGM] delete game to surpress saving
-               result = GameUnfinished;
-               if(!*appData.tourneyFile) matchGame--; // replay even in plain match
-           }
-           /* [HGM] bare: don't allow bare King to win */
-           if((gameInfo.holdingsWidth == 0 || gameInfo.variant == VariantSuper
-                                           || gameInfo.variant == VariantGreat || gameInfo.variant == VariantGrand)
-              && gameInfo.variant != VariantLosers && gameInfo.variant != VariantGiveaway
-              && gameInfo.variant != VariantSuicide // [HGM] losers: except in losers, of course...
-              && result != GameIsDrawn)
-           {   int i, j, k=0, oppoKings = 0, color = (result==WhiteWins ? (int)WhitePawn : (int)BlackPawn);
-               for(j=BOARD_LEFT; j<BOARD_RGHT; j++) for(i=0; i<BOARD_HEIGHT; i++) {
-                       int p = (signed char)boards[forwardMostMove][i][j] - color;
-                       if(p >= 0 && p <= (int)WhiteKing) k++;
-                       oppoKings += (p + color == WhiteKing + BlackPawn - color);
-               }
-               if (appData.debugMode) {
-                    fprintf(debugFP, "GE(%d, %s, %d) bare king k=%d color=%d\n",
-                       result, resultDetails ? resultDetails : "(null)", whosays, k, color);
-               }
-               if(k <= 1 && oppoKings > 0) { // the latter needed in Atomic, where bare K wins if opponent King already destroyed
-                       result = GameIsDrawn;
-                       snprintf(buf, MSG_SIZ, "%s but bare king", resultDetails);
-                       resultDetails = buf;
-               }
-           }
-        }
-
-
-        if(serverMoves != NULL && !loadFlag) { char c = '=';
-            if(result==WhiteWins) c = '+';
-            if(result==BlackWins) c = '-';
-            if(resultDetails != NULL)
-                fprintf(serverMoves, ";%c;%s\n", c, resultDetails), fflush(serverMoves);
-        }
-       if (resultDetails != NULL) {
-           gameInfo.result = result;
-           gameInfo.resultDetails = StrSave(resultDetails);
-
-           /* display last move only if game was not loaded from file */
-           if ((whosays != GE_FILE) && (currentMove == forwardMostMove))
-               DisplayMove(currentMove - 1);
-
-           if (forwardMostMove != 0) {
-               if (gameMode != PlayFromGameFile && gameMode != EditGame
-                   && lastSavedGame != GameCheckSum() // [HGM] save: suppress duplicates
-                                                               ) {
-                   if (*appData.saveGameFile != NULLCHAR) {
-                       if(result == GameUnfinished && matchMode && *appData.tourneyFile)
-                           AutoSaveGame(); // [HGM] protect tourney PGN from aborted games, and prompt for name instead
-                       else
-                       SaveGameToFile(appData.saveGameFile, TRUE);
-                   } else if (appData.autoSaveGames) {
-                       if(gameMode != IcsObserving || !appData.onlyOwn) AutoSaveGame();
-                   }
-                   if (*appData.savePositionFile != NULLCHAR) {
-                       SavePositionToFile(appData.savePositionFile);
-                   }
-                   AddGameToBook(FALSE); // Only does something during Monte-Carlo book building
-               }
-           }
-
-           /* Tell program how game ended in case it is learning */
-            /* [HGM] Moved this to after saving the PGN, just in case */
-            /* engine died and we got here through time loss. In that */
-            /* case we will get a fatal error writing the pipe, which */
-            /* would otherwise lose us the PGN.                       */
-            /* [HGM] crash: not needed anymore, but doesn't hurt;     */
-            /* output during GameEnds should never be fatal anymore   */
-           if (gameMode == MachinePlaysWhite ||
-               gameMode == MachinePlaysBlack ||
-               gameMode == TwoMachinesPlay ||
-               gameMode == IcsPlayingWhite ||
-               gameMode == IcsPlayingBlack ||
-               gameMode == BeginningOfGame) {
-               char buf[MSG_SIZ];
-               snprintf(buf, MSG_SIZ, "result %s {%s}\n", PGNResult(result),
-                       resultDetails);
-               if (first.pr != NoProc) {
-                   SendToProgram(buf, &first);
-               }
-               if (second.pr != NoProc &&
-                   gameMode == TwoMachinesPlay) {
-                   SendToProgram(buf, &second);
-               }
-           }
-       }
-
-       if (appData.icsActive) {
-           if (appData.quietPlay &&
-               (gameMode == IcsPlayingWhite ||
-                gameMode == IcsPlayingBlack)) {
-               SendToICS(ics_prefix);
-               SendToICS("set shout 1\n");
-           }
-           nextGameMode = IcsIdle;
-           ics_user_moved = FALSE;
-           /* clean up premove.  It's ugly when the game has ended and the
-            * premove highlights are still on the board.
-            */
-           if (gotPremove) {
-             gotPremove = FALSE;
-             ClearPremoveHighlights();
-             DrawPosition(FALSE, boards[currentMove]);
-           }
-           if (whosays == GE_ICS) {
-               switch (result) {
-               case WhiteWins:
-                   if (gameMode == IcsPlayingWhite)
-                       PlayIcsWinSound();
-                   else if(gameMode == IcsPlayingBlack)
-                       PlayIcsLossSound();
-                   break;
-               case BlackWins:
-                   if (gameMode == IcsPlayingBlack)
-                       PlayIcsWinSound();
-                   else if(gameMode == IcsPlayingWhite)
-                       PlayIcsLossSound();
-                   break;
-               case GameIsDrawn:
-                   PlayIcsDrawSound();
-                   break;
-               default:
-                   PlayIcsUnfinishedSound();
-               }
-           }
-           if(appData.quitNext) { ExitEvent(0); return; }
-       } else if (gameMode == EditGame ||
-                  gameMode == PlayFromGameFile ||
-                  gameMode == AnalyzeMode ||
-                  gameMode == AnalyzeFile) {
-           nextGameMode = gameMode;
-       } else {
-           nextGameMode = EndOfGame;
-       }
-       pausing = FALSE;
-       ModeHighlight();
-    } else {
-       nextGameMode = gameMode;
-    }
-
-    if (appData.noChessProgram) {
-       gameMode = nextGameMode;
-       ModeHighlight();
-       endingGame = 0; /* [HGM] crash */
-        return;
-    }
-
-    if (first.reuse) {
-       /* Put first chess program into idle state */
-       if (first.pr != NoProc &&
-           (gameMode == MachinePlaysWhite ||
-            gameMode == MachinePlaysBlack ||
-            gameMode == TwoMachinesPlay ||
-            gameMode == IcsPlayingWhite ||
-            gameMode == IcsPlayingBlack ||
-            gameMode == BeginningOfGame)) {
-           SendToProgram("force\n", &first);
-           if (first.usePing) {
-             char buf[MSG_SIZ];
-             snprintf(buf, MSG_SIZ, "ping %d\n", ++first.lastPing);
-             SendToProgram(buf, &first);
-           }
-       }
-    } else if (result != GameUnfinished || nextGameMode == IcsIdle) {
-       /* Kill off first chess program */
-       if (first.isr != NULL)
-         RemoveInputSource(first.isr);
-       first.isr = NULL;
-
-       if (first.pr != NoProc) {
-           ExitAnalyzeMode();
-            DoSleep( appData.delayBeforeQuit );
-           SendToProgram("quit\n", &first);
-           DestroyChildProcess(first.pr, 4 + first.useSigterm);
-           first.reload = TRUE;
-       }
-       first.pr = NoProc;
-    }
-    if (second.reuse) {
-       /* Put second chess program into idle state */
-       if (second.pr != NoProc &&
-           gameMode == TwoMachinesPlay) {
-           SendToProgram("force\n", &second);
-           if (second.usePing) {
-             char buf[MSG_SIZ];
-             snprintf(buf, MSG_SIZ, "ping %d\n", ++second.lastPing);
-             SendToProgram(buf, &second);
-           }
-       }
-    } else if (result != GameUnfinished || nextGameMode == IcsIdle) {
-       /* Kill off second chess program */
-       if (second.isr != NULL)
-         RemoveInputSource(second.isr);
-       second.isr = NULL;
-
-       if (second.pr != NoProc) {
-            DoSleep( appData.delayBeforeQuit );
-           SendToProgram("quit\n", &second);
-           DestroyChildProcess(second.pr, 4 + second.useSigterm);
-           second.reload = TRUE;
-       }
-       second.pr = NoProc;
-    }
-
-    if (matchMode && (gameMode == TwoMachinesPlay || (waitingForGame || startingEngine) && exiting)) {
-       char resChar = '=';
-        switch (result) {
-       case WhiteWins:
-         resChar = '+';
-         if (first.twoMachinesColor[0] == 'w') {
-           first.matchWins++;
-         } else {
-           second.matchWins++;
-         }
-         break;
-       case BlackWins:
-         resChar = '-';
-         if (first.twoMachinesColor[0] == 'b') {
-           first.matchWins++;
-         } else {
-           second.matchWins++;
-         }
-         break;
-       case GameUnfinished:
-         resChar = ' ';
-       default:
-         break;
-       }
-
-       if(exiting) resChar = ' '; // quit while waiting for round sync: unreserve already reserved game
-       if(appData.tourneyFile[0]){ // [HGM] we are in a tourney; update tourney file with game result
-           if(appData.afterGame && appData.afterGame[0]) RunCommand(appData.afterGame);
-           ReserveGame(nextGame, resChar); // sets nextGame
-           if(nextGame > appData.matchGames) appData.tourneyFile[0] = 0, ranking = TourneyStandings(3); // tourney is done
-           else ranking = strdup("busy"); //suppress popup when aborted but not finished
-       } else roundNr = nextGame = matchGame + 1; // normal match, just increment; round equals matchGame
-
-       if (nextGame <= appData.matchGames && !abortMatch) {
-           gameMode = nextGameMode;
-           matchGame = nextGame; // this will be overruled in tourney mode!
-           GetTimeMark(&pauseStart); // [HGM] matchpause: stipulate a pause
-            ScheduleDelayedEvent(NextMatchGame, 10); // but start game immediately (as it will wait out the pause itself)
-           endingGame = 0; /* [HGM] crash */
-           return;
-       } else {
-           gameMode = nextGameMode;
-           if(appData.epd) {
-               snprintf(buf, MSG_SIZ, "-------------------------------------- ");
-               OutputKibitz(2, buf);
-               snprintf(buf, MSG_SIZ, _("Average solving time %4.2f sec (total time %4.2f sec) "), totalTime/(100.*first.matchWins), totalTime/100.);
-               OutputKibitz(2, buf);
-               snprintf(buf, MSG_SIZ, _("%d avoid-moves played "), second.matchWins);
-               if(second.matchWins) OutputKibitz(2, buf);
-               snprintf(buf, MSG_SIZ, _("Solved %d out of %d (%3.1f%%) "), first.matchWins, nextGame-1, first.matchWins*100./(nextGame-1));
-               OutputKibitz(2, buf);
-           }
-           snprintf(buf, MSG_SIZ, _("Match %s vs. %s: final score %d-%d-%d"),
-                    first.tidy, second.tidy,
-                    first.matchWins, second.matchWins,
-                    appData.matchGames - (first.matchWins + second.matchWins));
-           if(!appData.tourneyFile[0]) matchGame++, DisplayTwoMachinesTitle(); // [HGM] update result in window title
-           if(ranking && strcmp(ranking, "busy") && appData.afterTourney && appData.afterTourney[0]) RunCommand(appData.afterTourney);
-           popupRequested++; // [HGM] crash: postpone to after resetting endingGame
-           if (appData.firstPlaysBlack) { // [HGM] match: back to original for next match
-               first.twoMachinesColor = "black\n";
-               second.twoMachinesColor = "white\n";
-           } else {
-               first.twoMachinesColor = "white\n";
-               second.twoMachinesColor = "black\n";
-           }
-       }
-    }
-    if ((gameMode == AnalyzeMode || gameMode == AnalyzeFile) &&
-       !(nextGameMode == AnalyzeMode || nextGameMode == AnalyzeFile))
-      ExitAnalyzeMode();
-    gameMode = nextGameMode;
-    ModeHighlight();
-    endingGame = 0;  /* [HGM] crash */
-    if(popupRequested) { // [HGM] crash: this calls GameEnds recursively through ExitEvent! Make it a harmless tail recursion.
-       if(matchMode == TRUE) { // match through command line: exit with or without popup
-           if(ranking) {
-               ToNrEvent(forwardMostMove);
-               if(strcmp(ranking, "busy")) DisplayFatalError(ranking, 0, 0);
-               else ExitEvent(0);
-           } else DisplayFatalError(buf, 0, 0);
-       } else { // match through menu; just stop, with or without popup
-           matchMode = FALSE; appData.matchGames = matchGame = roundNr = 0;
-           ModeHighlight();
-           if(ranking){
-               if(strcmp(ranking, "busy")) DisplayNote(ranking);
-           } else DisplayNote(buf);
-      }
-      if(ranking) free(ranking);
-    }
-}
-
-/* Assumes program was just initialized (initString sent).
-   Leaves program in force mode. */
-void
-FeedMovesToProgram (ChessProgramState *cps, int upto)
-{
-    int i;
-
-    if (appData.debugMode)
-      fprintf(debugFP, "Feeding %smoves %d through %d to %s chess program\n",
-             startedFromSetupPosition ? "position and " : "",
-             backwardMostMove, upto, cps->which);
-    if(currentlyInitializedVariant != gameInfo.variant) {
-      char buf[MSG_SIZ];
-        // [HGM] variantswitch: make engine aware of new variant
-       if(!SupportedVariant(cps->variants, gameInfo.variant, gameInfo.boardWidth,
-                             gameInfo.boardHeight, gameInfo.holdingsSize, cps->protocolVersion, ""))
-               return; // [HGM] refrain from feeding moves altogether if variant is unsupported!
-       snprintf(buf, MSG_SIZ, "variant %s\n", VariantName(gameInfo.variant));
-       SendToProgram(buf, cps);
-        currentlyInitializedVariant = gameInfo.variant;
-    }
-    SendToProgram("force\n", cps);
-    if (startedFromSetupPosition) {
-       SendBoard(cps, backwardMostMove);
-    if (appData.debugMode) {
-        fprintf(debugFP, "feedMoves\n");
-    }
-    }
-    for (i = backwardMostMove; i < upto; i++) {
-       SendMoveToProgram(i, cps);
-    }
-}
-
-
-int
-ResurrectChessProgram ()
-{
-     /* The chess program may have exited.
-       If so, restart it and feed it all the moves made so far. */
-    static int doInit = 0;
-
-    if (appData.noChessProgram) return 1;
-
-    if(matchMode /*&& appData.tourneyFile[0]*/) { // [HGM] tourney: make sure we get features after engine replacement. (Should we always do this?)
-       if(WaitForEngine(&first, TwoMachinesEventIfReady)) { doInit = 1; return 0; } // request to do init on next visit, because we started engine
-       if(!doInit) return 1; // this replaces testing first.pr != NoProc, which is true when we get here, but first time no reason to abort
-       doInit = 0; // we fell through (first time after starting the engine); make sure it doesn't happen again
-    } else {
-       if (first.pr != NoProc) return 1;
-       StartChessProgram(&first);
-    }
-    InitChessProgram(&first, FALSE);
-    FeedMovesToProgram(&first, currentMove);
-
-    if (!first.sendTime) {
-       /* can't tell gnuchess what its clock should read,
-          so we bow to its notion. */
-       ResetClocks();
-       timeRemaining[0][currentMove] = whiteTimeRemaining;
-       timeRemaining[1][currentMove] = blackTimeRemaining;
-    }
-
-    if ((gameMode == AnalyzeMode || gameMode == AnalyzeFile ||
-                appData.icsEngineAnalyze) && first.analysisSupport) {
-      SendToProgram("analyze\n", &first);
-      first.analyzing = TRUE;
-    }
-    return 1;
-}
-
-/*
- * Button procedures
- */
-void
-Reset (int redraw, int init)
-{
-    int i;
-
-    if (appData.debugMode) {
-       fprintf(debugFP, "Reset(%d, %d) from gameMode %d\n",
-               redraw, init, gameMode);
-    }
-    pieceDefs = FALSE; // [HGM] gen: reset engine-defined piece moves
-    for(i=0; i<EmptySquare; i++) { FREE(pieceDesc[i]); pieceDesc[i] = NULL; }
-    CleanupTail(); // [HGM] vari: delete any stored variations
-    CommentPopDown(); // [HGM] make sure no comments to the previous game keep hanging on
-    pausing = pauseExamInvalid = FALSE;
-    startedFromSetupPosition = blackPlaysFirst = FALSE;
-    firstMove = TRUE;
-    whiteFlag = blackFlag = FALSE;
-    userOfferedDraw = FALSE;
-    hintRequested = bookRequested = FALSE;
-    first.maybeThinking = FALSE;
-    second.maybeThinking = FALSE;
-    first.bookSuspend = FALSE; // [HGM] book
-    second.bookSuspend = FALSE;
-    thinkOutput[0] = NULLCHAR;
-    lastHint[0] = NULLCHAR;
-    ClearGameInfo(&gameInfo);
-    gameInfo.variant = StringToVariant(appData.variant);
-    if(gameInfo.variant == VariantNormal && strcmp(appData.variant, "normal")) {
-       gameInfo.variant = VariantUnknown;
-       strncpy(engineVariant, appData.variant, MSG_SIZ);
-    }
-    ics_user_moved = ics_clock_paused = FALSE;
-    ics_getting_history = H_FALSE;
-    ics_gamenum = -1;
-    white_holding[0] = black_holding[0] = NULLCHAR;
-    ClearProgramStats();
-    opponentKibitzes = FALSE; // [HGM] kibitz: do not reserve space in engine-output window in zippy mode
-
-    ResetFrontEnd();
-    ClearHighlights();
-    flipView = appData.flipView;
-    ClearPremoveHighlights();
-    gotPremove = FALSE;
-    alarmSounded = FALSE;
-    killX = killY = kill2X = kill2Y = -1; // [HGM] lion
-
-    GameEnds(EndOfFile, NULL, GE_PLAYER);
-    if(appData.serverMovesName != NULL) {
-        /* [HGM] prepare to make moves file for broadcasting */
-        clock_t t = clock();
-        if(serverMoves != NULL) fclose(serverMoves);
-        serverMoves = fopen(appData.serverMovesName, "r");
-        if(serverMoves != NULL) {
-            fclose(serverMoves);
-            /* delay 15 sec before overwriting, so all clients can see end */
-            while(clock()-t < appData.serverPause*CLOCKS_PER_SEC);
-        }
-        serverMoves = fopen(appData.serverMovesName, "w");
-    }
-
-    ExitAnalyzeMode();
-    gameMode = BeginningOfGame;
-    ModeHighlight();
-    if(appData.icsActive) gameInfo.variant = VariantNormal;
-    currentMove = forwardMostMove = backwardMostMove = 0;
-    MarkTargetSquares(1);
-    InitPosition(redraw);
-    for (i = 0; i < MAX_MOVES; i++) {
-       if (commentList[i] != NULL) {
-           free(commentList[i]);
-           commentList[i] = NULL;
-       }
-    }
-    ResetClocks();
-    timeRemaining[0][0] = whiteTimeRemaining;
-    timeRemaining[1][0] = blackTimeRemaining;
-
-    if (first.pr == NoProc) {
-       StartChessProgram(&first);
-    }
-    if (init) {
-           InitChessProgram(&first, startedFromSetupPosition);
-    }
-    DisplayTitle("");
-    DisplayMessage("", "");
-    HistorySet(parseList, backwardMostMove, forwardMostMove, currentMove-1);
-    lastSavedGame = 0; // [HGM] save: make sure next game counts as unsaved
-    ClearMap();        // [HGM] exclude: invalidate map
-}
-
-void
-AutoPlayGameLoop ()
-{
-    for (;;) {
-       if (!AutoPlayOneMove())
-         return;
-       if (matchMode || appData.timeDelay == 0)
-         continue;
-       if (appData.timeDelay < 0)
-         return;
-       StartLoadGameTimer((long)(1000.0f * appData.timeDelay));
-       break;
-    }
-}
-
-void
-AnalyzeNextGame()
-{
-    ReloadGame(1); // next game
-}
-
-int
-AutoPlayOneMove ()
-{
-    int fromX, fromY, toX, toY;
-
-    if (appData.debugMode) {
-      fprintf(debugFP, "AutoPlayOneMove(): current %d\n", currentMove);
-    }
-
-    if (gameMode != PlayFromGameFile && gameMode != AnalyzeFile)
-      return FALSE;
-
-    if (gameMode == AnalyzeFile && currentMove > backwardMostMove && programStats.depth) {
-      pvInfoList[currentMove].depth = programStats.depth;
-      pvInfoList[currentMove].score = programStats.score;
-      pvInfoList[currentMove].time  = 0;
-      if(currentMove < forwardMostMove) AppendComment(currentMove+1, lastPV[0], 2);
-      else { // append analysis of final position as comment
-       char buf[MSG_SIZ];
-       snprintf(buf, MSG_SIZ, "{final score %+4.2f/%d}", programStats.score/100., programStats.depth);
-       AppendComment(currentMove, buf, 3); // the 3 prevents stripping of the score/depth!
-      }
-      programStats.depth = 0;
-    }
-
-    if (currentMove >= forwardMostMove) {
-      if(gameMode == AnalyzeFile) {
-         if(appData.loadGameIndex == -1) {
-           GameEnds(gameInfo.result, gameInfo.resultDetails ? gameInfo.resultDetails : "", GE_FILE);
-          ScheduleDelayedEvent(AnalyzeNextGame, 10);
-         } else {
-          ExitAnalyzeMode(); SendToProgram("force\n", &first);
-        }
-      }
-//      gameMode = EndOfGame;
-//      ModeHighlight();
-
-      /* [AS] Clear current move marker at the end of a game */
-      /* HistorySet(parseList, backwardMostMove, forwardMostMove, -1); */
-
-      return FALSE;
-    }
-
-    toX = moveList[currentMove][2] - AAA;
-    toY = moveList[currentMove][3] - ONE;
-
-    if (moveList[currentMove][1] == '@') {
-       if (appData.highlightLastMove) {
-           SetHighlights(-1, -1, toX, toY);
-       }
-    } else {
-        fromX = moveList[currentMove][0] - AAA;
-        fromY = moveList[currentMove][1] - ONE;
-
-        HistorySet(parseList, backwardMostMove, forwardMostMove, currentMove); /* [AS] */
-
-        if(moveList[currentMove][4] == ';') { // multi-leg
-            killX = moveList[currentMove][5] - AAA;
-            killY = moveList[currentMove][6] - ONE;
-        }
-       AnimateMove(boards[currentMove], fromX, fromY, toX, toY);
-       killX = killY = -1;
-
-       if (appData.highlightLastMove) {
-           SetHighlights(fromX, fromY, toX, toY);
-       }
-    }
-    DisplayMove(currentMove);
-    SendMoveToProgram(currentMove++, &first);
-    DisplayBothClocks();
-    DrawPosition(FALSE, boards[currentMove]);
-    // [HGM] PV info: always display, routine tests if empty
-    DisplayComment(currentMove - 1, commentList[currentMove]);
-    return TRUE;
-}
-
-
-int
-LoadGameOneMove (ChessMove readAhead)
-{
-    int fromX = 0, fromY = 0, toX = 0, toY = 0, done;
-    char promoChar = NULLCHAR;
-    ChessMove moveType;
-    char move[MSG_SIZ];
-    char *p, *q;
-
-    if (gameMode != PlayFromGameFile && gameMode != AnalyzeFile &&
-       gameMode != AnalyzeMode && gameMode != Training) {
-       gameFileFP = NULL;
-       return FALSE;
-    }
-
-    yyboardindex = forwardMostMove;
-    if (readAhead != EndOfFile) {
-      moveType = readAhead;
-    } else {
-      if (gameFileFP == NULL)
-         return FALSE;
-      moveType = (ChessMove) Myylex();
-    }
-
-    done = FALSE;
-    switch (moveType) {
-      case Comment:
-       if (appData.debugMode)
-         fprintf(debugFP, "Parsed Comment: %s\n", yy_text);
-       p = yy_text;
-
-       /* append the comment but don't display it */
-       AppendComment(currentMove, p, FALSE);
-       return TRUE;
-
-      case WhiteCapturesEnPassant:
-      case BlackCapturesEnPassant:
-      case WhitePromotion:
-      case BlackPromotion:
-      case WhiteNonPromotion:
-      case BlackNonPromotion:
-      case NormalMove:
-      case FirstLeg:
-      case WhiteKingSideCastle:
-      case WhiteQueenSideCastle:
-      case BlackKingSideCastle:
-      case BlackQueenSideCastle:
-      case WhiteKingSideCastleWild:
-      case WhiteQueenSideCastleWild:
-      case BlackKingSideCastleWild:
-      case BlackQueenSideCastleWild:
-      /* PUSH Fabien */
-      case WhiteHSideCastleFR:
-      case WhiteASideCastleFR:
-      case BlackHSideCastleFR:
-      case BlackASideCastleFR:
-      /* POP Fabien */
-       if (appData.debugMode)
-         fprintf(debugFP, "Parsed %s into %s virgin=%x,%x\n", yy_text, currentMoveString, boards[forwardMostMove][TOUCHED_W], boards[forwardMostMove][TOUCHED_B]);
-        fromX = currentMoveString[0] - AAA;
-        fromY = currentMoveString[1] - ONE;
-        toX = currentMoveString[2] - AAA;
-        toY = currentMoveString[3] - ONE;
-       promoChar = currentMoveString[4];
-       if(promoChar == ';') promoChar = currentMoveString[7];
-       break;
-
-      case WhiteDrop:
-      case BlackDrop:
-       if (appData.debugMode)
-         fprintf(debugFP, "Parsed %s into %s\n", yy_text, currentMoveString);
-       fromX = moveType == WhiteDrop ?
-         (int) CharToPiece(ToUpper(currentMoveString[0])) :
-       (int) CharToPiece(ToLower(currentMoveString[0]));
-       fromY = DROP_RANK;
-        toX = currentMoveString[2] - AAA;
-        toY = currentMoveString[3] - ONE;
-       break;
-
-      case WhiteWins:
-      case BlackWins:
-      case GameIsDrawn:
-      case GameUnfinished:
-       if (appData.debugMode)
-         fprintf(debugFP, "Parsed game end: %s\n", yy_text);
-       p = strchr(yy_text, '{');
-       if (p == NULL) p = strchr(yy_text, '(');
-       if (p == NULL) {
-           p = yy_text;
-           if (p[0] == '0' || p[0] == '1' || p[0] == '*') p = "";
-       } else {
-           q = strchr(p, *p == '{' ? '}' : ')');
-           if (q != NULL) *q = NULLCHAR;
-           p++;
-       }
-       while(q = strchr(p, '\n')) *q = ' '; // [HGM] crush linefeeds in result message
-       GameEnds(moveType, p, GE_FILE);
-       done = TRUE;
-       if (cmailMsgLoaded) {
-           ClearHighlights();
-           flipView = WhiteOnMove(currentMove);
-           if (moveType == GameUnfinished) flipView = !flipView;
-           if (appData.debugMode)
-             fprintf(debugFP, "Setting flipView to %d\n", flipView) ;
-       }
-       break;
-
-      case EndOfFile:
-       if (appData.debugMode)
-         fprintf(debugFP, "Parser hit end of file\n");
-       switch (MateTest(boards[currentMove], PosFlags(currentMove)) ) {
-         case MT_NONE:
-         case MT_CHECK:
-           break;
-         case MT_CHECKMATE:
-         case MT_STAINMATE:
-           if (WhiteOnMove(currentMove)) {
-               GameEnds(BlackWins, "Black mates", GE_FILE);
-           } else {
-               GameEnds(WhiteWins, "White mates", GE_FILE);
-           }
-           break;
-         case MT_STALEMATE:
-           GameEnds(GameIsDrawn, "Stalemate", GE_FILE);
-           break;
-       }
-       done = TRUE;
-       break;
-
-      case MoveNumberOne:
-       if (lastLoadGameStart == GNUChessGame) {
-           /* GNUChessGames have numbers, but they aren't move numbers */
-           if (appData.debugMode)
-             fprintf(debugFP, "Parser ignoring: '%s' (%d)\n",
-                     yy_text, (int) moveType);
-           return LoadGameOneMove(EndOfFile); /* tail recursion */
-       }
-       /* else fall thru */
-
-      case XBoardGame:
-      case GNUChessGame:
-      case PGNTag:
-       /* Reached start of next game in file */
-       if (appData.debugMode)
-         fprintf(debugFP, "Parsed start of next game: %s\n", yy_text);
-       switch (MateTest(boards[currentMove], PosFlags(currentMove)) ) {
-         case MT_NONE:
-         case MT_CHECK:
-           break;
-         case MT_CHECKMATE:
-         case MT_STAINMATE:
-           if (WhiteOnMove(currentMove)) {
-               GameEnds(BlackWins, "Black mates", GE_FILE);
-           } else {
-               GameEnds(WhiteWins, "White mates", GE_FILE);
-           }
-           break;
-         case MT_STALEMATE:
-           GameEnds(GameIsDrawn, "Stalemate", GE_FILE);
-           break;
-       }
-       done = TRUE;
-       break;
-
-      case PositionDiagram:    /* should not happen; ignore */
-      case ElapsedTime:                /* ignore */
-      case NAG:                 /* ignore */
-       if (appData.debugMode)
-         fprintf(debugFP, "Parser ignoring: '%s' (%d)\n",
-                 yy_text, (int) moveType);
-       return LoadGameOneMove(EndOfFile); /* tail recursion */
-
-      case IllegalMove:
-       if (appData.testLegality) {
-           if (appData.debugMode)
-             fprintf(debugFP, "Parsed IllegalMove: %s\n", yy_text);
-           snprintf(move, MSG_SIZ, _("Illegal move: %d.%s%s"),
-                   (forwardMostMove / 2) + 1,
-                   WhiteOnMove(forwardMostMove) ? " " : ".. ", yy_text);
-           DisplayError(move, 0);
-           done = TRUE;
-       } else {
-           if (appData.debugMode)
-             fprintf(debugFP, "Parsed %s into IllegalMove %s\n",
-                     yy_text, currentMoveString);
-            if(currentMoveString[1] == '@') {
-                fromX = CharToPiece(WhiteOnMove(currentMove) ? ToUpper(currentMoveString[0]) : ToLower(currentMoveString[0]));
-                fromY = DROP_RANK;
-            } else {
-                fromX = currentMoveString[0] - AAA;
-                fromY = currentMoveString[1] - ONE;
-            }
-            toX = currentMoveString[2] - AAA;
-            toY = currentMoveString[3] - ONE;
-           promoChar = currentMoveString[4];
-       }
-       break;
-
-      case AmbiguousMove:
-       if (appData.debugMode)
-         fprintf(debugFP, "Parsed AmbiguousMove: %s\n", yy_text);
-       snprintf(move, MSG_SIZ, _("Ambiguous move: %d.%s%s"),
-               (forwardMostMove / 2) + 1,
-               WhiteOnMove(forwardMostMove) ? " " : ".. ", yy_text);
-       DisplayError(move, 0);
-       done = TRUE;
-       break;
-
-      default:
-      case ImpossibleMove:
-       if (appData.debugMode)
-         fprintf(debugFP, "Parsed ImpossibleMove (type = %d): %s\n", moveType, yy_text);
-       snprintf(move, MSG_SIZ, _("Illegal move: %d.%s%s"),
-               (forwardMostMove / 2) + 1,
-               WhiteOnMove(forwardMostMove) ? " " : ".. ", yy_text);
-       DisplayError(move, 0);
-       done = TRUE;
-       break;
-    }
-
-    if (done) {
-       if (appData.matchMode || (appData.timeDelay == 0 && !pausing)) {
-           DrawPosition(FALSE, boards[currentMove]);
-           DisplayBothClocks();
-            if (!appData.matchMode) // [HGM] PV info: routine tests if empty
-             DisplayComment(currentMove - 1, commentList[currentMove]);
-       }
-       (void) StopLoadGameTimer();
-       gameFileFP = NULL;
-       cmailOldMove = forwardMostMove;
-       return FALSE;
-    } else {
-       /* currentMoveString is set as a side-effect of yylex */
-
-       thinkOutput[0] = NULLCHAR;
-       MakeMove(fromX, fromY, toX, toY, promoChar);
-       killX = killY = kill2X = kill2Y = -1; // [HGM] lion: used up
-       currentMove = forwardMostMove;
-       return TRUE;
-    }
-}
-
-/* Load the nth game from the given file */
-int
-LoadGameFromFile (char *filename, int n, char *title, int useList)
-{
-    FILE *f;
-    char buf[MSG_SIZ];
-
-    if (strcmp(filename, "-") == 0) {
-       f = stdin;
-       title = "stdin";
-    } else {
-       f = fopen(filename, "rb");
-       if (f == NULL) {
-         snprintf(buf, sizeof(buf),  _("Can't open \"%s\""), filename);
-           DisplayError(buf, errno);
-           return FALSE;
-       }
-    }
-    if (fseek(f, 0, 0) == -1) {
-       /* f is not seekable; probably a pipe */
-       useList = FALSE;
-    }
-    if (useList && n == 0) {
-       int error = GameListBuild(f);
-       if (error) {
-           DisplayError(_("Cannot build game list"), error);
-       } else if (!ListEmpty(&gameList) &&
-                  ((ListGame *) gameList.tailPred)->number > 1) {
-           GameListPopUp(f, title);
-           return TRUE;
-       }
-       GameListDestroy();
-       n = 1;
-    }
-    if (n == 0) n = 1;
-    return LoadGame(f, n, title, FALSE);
-}
-
-
-void
-MakeRegisteredMove ()
-{
-    int fromX, fromY, toX, toY;
-    char promoChar;
-    if (cmailMoveRegistered[lastLoadGameNumber - 1]) {
-       switch (cmailMoveType[lastLoadGameNumber - 1]) {
-         case CMAIL_MOVE:
-         case CMAIL_DRAW:
-           if (appData.debugMode)
-             fprintf(debugFP, "Restoring %s for game %d\n",
-                     cmailMove[lastLoadGameNumber - 1], lastLoadGameNumber);
-
-           thinkOutput[0] = NULLCHAR;
-           safeStrCpy(moveList[currentMove], cmailMove[lastLoadGameNumber - 1], sizeof(moveList[currentMove])/sizeof(moveList[currentMove][0]));
-            fromX = cmailMove[lastLoadGameNumber - 1][0] - AAA;
-            fromY = cmailMove[lastLoadGameNumber - 1][1] - ONE;
-            toX = cmailMove[lastLoadGameNumber - 1][2] - AAA;
-            toY = cmailMove[lastLoadGameNumber - 1][3] - ONE;
-           promoChar = cmailMove[lastLoadGameNumber - 1][4];
-           MakeMove(fromX, fromY, toX, toY, promoChar);
-           ShowMove(fromX, fromY, toX, toY);
-
-           switch (MateTest(boards[currentMove], PosFlags(currentMove)) ) {
-             case MT_NONE:
-             case MT_CHECK:
-               break;
-
-             case MT_CHECKMATE:
-             case MT_STAINMATE:
-               if (WhiteOnMove(currentMove)) {
-                   GameEnds(BlackWins, "Black mates", GE_PLAYER);
-               } else {
-                   GameEnds(WhiteWins, "White mates", GE_PLAYER);
-               }
-               break;
-
-             case MT_STALEMATE:
-               GameEnds(GameIsDrawn, "Stalemate", GE_PLAYER);
-               break;
-           }
-
-           break;
-
-         case CMAIL_RESIGN:
-           if (WhiteOnMove(currentMove)) {
-               GameEnds(BlackWins, "White resigns", GE_PLAYER);
-           } else {
-               GameEnds(WhiteWins, "Black resigns", GE_PLAYER);
-           }
-           break;
-
-         case CMAIL_ACCEPT:
-           GameEnds(GameIsDrawn, "Draw agreed", GE_PLAYER);
-           break;
-
-         default:
-           break;
-       }
-    }
-
-    return;
-}
-
-/* Wrapper around LoadGame for use when a Cmail message is loaded */
-int
-CmailLoadGame (FILE *f, int gameNumber, char *title, int useList)
-{
-    int retVal;
-
-    if (gameNumber > nCmailGames) {
-       DisplayError(_("No more games in this message"), 0);
-       return FALSE;
-    }
-    if (f == lastLoadGameFP) {
-       int offset = gameNumber - lastLoadGameNumber;
-       if (offset == 0) {
-           cmailMsg[0] = NULLCHAR;
-           if (cmailMoveRegistered[lastLoadGameNumber - 1]) {
-               cmailMoveRegistered[lastLoadGameNumber - 1] = FALSE;
-               nCmailMovesRegistered--;
-           }
-           cmailMoveType[lastLoadGameNumber - 1] = CMAIL_MOVE;
-           if (cmailResult[lastLoadGameNumber - 1] == CMAIL_NEW_RESULT) {
-               cmailResult[lastLoadGameNumber - 1] = CMAIL_NOT_RESULT;
-           }
-       } else {
-           if (! RegisterMove()) return FALSE;
-       }
-    }
-
-    retVal = LoadGame(f, gameNumber, title, useList);
-
-    /* Make move registered during previous look at this game, if any */
-    MakeRegisteredMove();
-
-    if (cmailCommentList[lastLoadGameNumber - 1] != NULL) {
-       commentList[currentMove]
-         = StrSave(cmailCommentList[lastLoadGameNumber - 1]);
-       DisplayComment(currentMove - 1, commentList[currentMove]);
-    }
-
-    return retVal;
-}
-
-/* Support for LoadNextGame, LoadPreviousGame, ReloadSameGame */
-int
-ReloadGame (int offset)
-{
-    int gameNumber = lastLoadGameNumber + offset;
-    if (lastLoadGameFP == NULL) {
-       DisplayError(_("No game has been loaded yet"), 0);
-       return FALSE;
-    }
-    if (gameNumber <= 0) {
-       DisplayError(_("Can't back up any further"), 0);
-       return FALSE;
-    }
-    if (cmailMsgLoaded) {
-       return CmailLoadGame(lastLoadGameFP, gameNumber,
-                            lastLoadGameTitle, lastLoadGameUseList);
-    } else {
-       return LoadGame(lastLoadGameFP, gameNumber,
-                       lastLoadGameTitle, lastLoadGameUseList);
-    }
-}
-
-int keys[EmptySquare+1];
-
-int
-PositionMatches (Board b1, Board b2)
-{
-    int r, f, sum=0;
-    switch(appData.searchMode) {
-       case 1: return CompareWithRights(b1, b2);
-       case 2:
-           for(r=0; r<BOARD_HEIGHT; r++) for(f=BOARD_LEFT; f<BOARD_RGHT; f++) {
-               if(b2[r][f] != EmptySquare && b1[r][f] != b2[r][f]) return FALSE;
-           }
-           return TRUE;
-       case 3:
-           for(r=0; r<BOARD_HEIGHT; r++) for(f=BOARD_LEFT; f<BOARD_RGHT; f++) {
-             if((b2[r][f] == WhitePawn || b2[r][f] == BlackPawn) && b1[r][f] != b2[r][f]) return FALSE;
-               sum += keys[b1[r][f]] - keys[b2[r][f]];
-           }
-           return sum==0;
-       case 4:
-           for(r=0; r<BOARD_HEIGHT; r++) for(f=BOARD_LEFT; f<BOARD_RGHT; f++) {
-               sum += keys[b1[r][f]] - keys[b2[r][f]];
-           }
-           return sum==0;
-    }
-    return TRUE;
-}
-
-#define Q_PROMO  4
-#define Q_EP     3
-#define Q_BCASTL 2
-#define Q_WCASTL 1
-
-int pieceList[256], quickBoard[256];
-ChessSquare pieceType[256] = { EmptySquare };
-Board soughtBoard, reverseBoard, flipBoard, rotateBoard;
-int counts[EmptySquare], minSought[EmptySquare], minReverse[EmptySquare], maxSought[EmptySquare], maxReverse[EmptySquare];
-int soughtTotal, turn;
-Boolean epOK, flipSearch;
-
-typedef struct {
-    unsigned char piece, to;
-} Move;
-
-#define DSIZE (250000)
-
-Move initialSpace[DSIZE+1000]; // gamble on that game will not be more than 500 moves
-Move *moveDatabase = initialSpace;
-unsigned int movePtr, dataSize = DSIZE;
-
-int
-MakePieceList (Board board, int *counts)
-{
-    int r, f, n=Q_PROMO, total=0;
-    for(r=0;r<EmptySquare;r++) counts[r] = 0; // piece-type counts
-    for(r=0; r<BOARD_HEIGHT; r++) for(f=BOARD_LEFT; f<BOARD_RGHT; f++) {
-       int sq = f + (r<<4);
-        if(board[r][f] == EmptySquare) quickBoard[sq] = 0; else {
-           quickBoard[sq] = ++n;
-           pieceList[n] = sq;
-           pieceType[n] = board[r][f];
-           counts[board[r][f]]++;
-           if(board[r][f] == WhiteKing) pieceList[1] = n; else
-           if(board[r][f] == BlackKing) pieceList[2] = n; // remember which are Kings, for castling
-           total++;
-       }
-    }
-    epOK = gameInfo.variant != VariantXiangqi && gameInfo.variant != VariantBerolina;
-    return total;
-}
-
-void
-PackMove (int fromX, int fromY, int toX, int toY, ChessSquare promoPiece)
-{
-    int sq = fromX + (fromY<<4);
-    int piece = quickBoard[sq], rook;
-    quickBoard[sq] = 0;
-    moveDatabase[movePtr].to = pieceList[piece] = sq = toX + (toY<<4);
-    if(piece == pieceList[1] && fromY == toY) {
-      if((toX > fromX+1 || toX < fromX-1) && fromX != BOARD_LEFT && fromX != BOARD_RGHT-1) {
-       int from = toX>fromX ? BOARD_RGHT-1 : BOARD_LEFT;
-       moveDatabase[movePtr++].piece = Q_WCASTL;
-       quickBoard[sq] = piece;
-       piece = quickBoard[from]; quickBoard[from] = 0;
-       moveDatabase[movePtr].to = pieceList[piece] = sq = toX>fromX ? sq-1 : sq+1;
-      } else if((rook = quickBoard[sq]) && pieceType[rook] == WhiteRook) { // FRC castling
-       quickBoard[sq] = 0; // remove Rook
-       moveDatabase[movePtr].to = sq = (toX>fromX ? BOARD_RGHT-2 : BOARD_LEFT+2); // King to-square
-       moveDatabase[movePtr++].piece = Q_WCASTL;
-       quickBoard[sq] = pieceList[1]; // put King
-       piece = rook;
-       moveDatabase[movePtr].to = pieceList[rook] = sq = toX>fromX ? sq-1 : sq+1;
-      }
-    } else
-    if(piece == pieceList[2] && fromY == toY) {
-      if((toX > fromX+1 || toX < fromX-1) && fromX != BOARD_LEFT && fromX != BOARD_RGHT-1) {
-       int from = (toX>fromX ? BOARD_RGHT-1 : BOARD_LEFT) + (BOARD_HEIGHT-1 <<4);
-       moveDatabase[movePtr++].piece = Q_BCASTL;
-       quickBoard[sq] = piece;
-       piece = quickBoard[from]; quickBoard[from] = 0;
-       moveDatabase[movePtr].to = pieceList[piece] = sq = toX>fromX ? sq-1 : sq+1;
-      } else if((rook = quickBoard[sq]) && pieceType[rook] == BlackRook) { // FRC castling
-       quickBoard[sq] = 0; // remove Rook
-       moveDatabase[movePtr].to = sq = (toX>fromX ? BOARD_RGHT-2 : BOARD_LEFT+2);
-       moveDatabase[movePtr++].piece = Q_BCASTL;
-       quickBoard[sq] = pieceList[2]; // put King
-       piece = rook;
-       moveDatabase[movePtr].to = pieceList[rook] = sq = toX>fromX ? sq-1 : sq+1;
-      }
-    } else
-    if(epOK && (pieceType[piece] == WhitePawn || pieceType[piece] == BlackPawn) && fromX != toX && quickBoard[sq] == 0) {
-       quickBoard[(fromY<<4)+toX] = 0;
-       moveDatabase[movePtr].piece = Q_EP;
-       moveDatabase[movePtr++].to = (fromY<<4)+toX;
-       moveDatabase[movePtr].to = sq;
-    } else
-    if(promoPiece != pieceType[piece]) {
-       moveDatabase[movePtr++].piece = Q_PROMO;
-       moveDatabase[movePtr].to = pieceType[piece] = (int) promoPiece;
-    }
-    moveDatabase[movePtr].piece = piece;
-    quickBoard[sq] = piece;
-    movePtr++;
-}
-
-int
-PackGame (Board board)
-{
-    Move *newSpace = NULL;
-    moveDatabase[movePtr].piece = 0; // terminate previous game
-    if(movePtr > dataSize) {
-       if(appData.debugMode) fprintf(debugFP, "move-cache overflow, enlarge to %d MB\n", dataSize/128);
-       dataSize *= 8; // increase size by factor 8 (512KB -> 4MB -> 32MB -> 256MB -> 2GB)
-       if(dataSize) newSpace = (Move*) calloc(dataSize + 1000, sizeof(Move));
-       if(newSpace) {
-           int i;
-           Move *p = moveDatabase, *q = newSpace;
-           for(i=0; i<movePtr; i++) *q++ = *p++;    // copy to newly allocated space
-           if(dataSize > 8*DSIZE) free(moveDatabase); // and free old space (if it was allocated)
-           moveDatabase = newSpace;
-       } else { // calloc failed, we must be out of memory. Too bad...
-           dataSize = 0; // prevent calloc events for all subsequent games
-           return 0;     // and signal this one isn't cached
-       }
-    }
-    movePtr++;
-    MakePieceList(board, counts);
-    return movePtr;
-}
-
-int
-QuickCompare (Board board, int *minCounts, int *maxCounts)
-{   // compare according to search mode
-    int r, f;
-    switch(appData.searchMode)
-    {
-      case 1: // exact position match
-       if(!(turn & board[EP_STATUS-1])) return FALSE; // wrong side to move
-       for(r=0; r<BOARD_HEIGHT; r++) for(f=BOARD_LEFT; f<BOARD_RGHT; f++) {
-           if(board[r][f] != pieceType[quickBoard[(r<<4)+f]]) return FALSE;
-       }
-       break;
-      case 2: // can have extra material on empty squares
-       for(r=0; r<BOARD_HEIGHT; r++) for(f=BOARD_LEFT; f<BOARD_RGHT; f++) {
-           if(board[r][f] == EmptySquare) continue;
-           if(board[r][f] != pieceType[quickBoard[(r<<4)+f]]) return FALSE;
-       }
-       break;
-      case 3: // material with exact Pawn structure
-       for(r=0; r<BOARD_HEIGHT; r++) for(f=BOARD_LEFT; f<BOARD_RGHT; f++) {
-           if(board[r][f] != WhitePawn && board[r][f] != BlackPawn) continue;
-           if(board[r][f] != pieceType[quickBoard[(r<<4)+f]]) return FALSE;
-       } // fall through to material comparison
-      case 4: // exact material
-       for(r=0; r<EmptySquare; r++) if(counts[r] != maxCounts[r]) return FALSE;
-       break;
-      case 6: // material range with given imbalance
-       for(r=0; r<BlackPawn; r++) if(counts[r] - minCounts[r] != counts[r+BlackPawn] - minCounts[r+BlackPawn]) return FALSE;
-       // fall through to range comparison
-      case 5: // material range
-       for(r=0; r<EmptySquare; r++) if(counts[r] < minCounts[r] || counts[r] > maxCounts[r]) return FALSE;
-    }
-    return TRUE;
-}
-
-int
-QuickScan (Board board, Move *move)
-{   // reconstruct game,and compare all positions in it
-    int cnt=0, stretch=0, found = -1, total = MakePieceList(board, counts);
-    do {
-       int piece = move->piece;
-       int to = move->to, from = pieceList[piece];
-       if(found < 0) { // if already found just scan to game end for final piece count
-         if(QuickCompare(soughtBoard, minSought, maxSought) ||
-          appData.ignoreColors && QuickCompare(reverseBoard, minReverse, maxReverse) ||
-          flipSearch && (QuickCompare(flipBoard, minSought, maxSought) ||
-                               appData.ignoreColors && QuickCompare(rotateBoard, minReverse, maxReverse))
-           ) {
-           static int lastCounts[EmptySquare+1];
-           int i;
-           if(stretch) for(i=0; i<EmptySquare; i++) if(lastCounts[i] != counts[i]) { stretch = 0; break; } // reset if material changes
-           if(stretch++ == 0) for(i=0; i<EmptySquare; i++) lastCounts[i] = counts[i]; // remember actual material
-         } else stretch = 0;
-         if(stretch && (appData.searchMode == 1 || stretch >= appData.stretch)) found = cnt + 1 - stretch;
-         if(found >= 0 && !appData.minPieces) return found;
-       }
-       if(piece <= Q_PROMO) { // special moves encoded by otherwise invalid piece numbers 1-4
-         if(!piece) return (appData.minPieces && (total < appData.minPieces || total > appData.maxPieces) ? -1 : found);
-         if(piece == Q_PROMO) { // promotion, encoded as (Q_PROMO, to) + (piece, promoType)
-           piece = (++move)->piece;
-           from = pieceList[piece];
-           counts[pieceType[piece]]--;
-           pieceType[piece] = (ChessSquare) move->to;
-           counts[move->to]++;
-         } else if(piece == Q_EP) { // e.p. capture, encoded as (Q_EP, ep-sqr) + (piece, to)
-           counts[pieceType[quickBoard[to]]]--;
-           quickBoard[to] = 0; total--;
-           move++;
-           continue;
-         } else if(piece <= Q_BCASTL) { // castling, encoded as (Q_XCASTL, king-to) + (rook, rook-to)
-           piece = pieceList[piece]; // first two elements of pieceList contain King numbers
-           from  = pieceList[piece]; // so this must be King
-           quickBoard[from] = 0;
-           pieceList[piece] = to;
-           from = pieceList[(++move)->piece]; // for FRC this has to be done here
-           quickBoard[from] = 0; // rook
-           quickBoard[to] = piece;
-           to = move->to; piece = move->piece;
-           goto aftercastle;
-         }
-       }
-       if(appData.searchMode > 2) counts[pieceType[quickBoard[to]]]--; // account capture
-       if((total -= (quickBoard[to] != 0)) < soughtTotal && found < 0) return -1; // piece count dropped below what we search for
-       quickBoard[from] = 0;
-      aftercastle:
-       quickBoard[to] = piece;
-       pieceList[piece] = to;
-       cnt++; turn ^= 3;
-       move++;
-    } while(1);
-}
-
-void
-InitSearch ()
-{
-    int r, f;
-    flipSearch = FALSE;
-    CopyBoard(soughtBoard, boards[currentMove]);
-    soughtTotal = MakePieceList(soughtBoard, maxSought);
-    soughtBoard[EP_STATUS-1] = (currentMove & 1) + 1;
-    if(currentMove == 0 && gameMode == EditPosition) soughtBoard[EP_STATUS-1] = blackPlaysFirst + 1; // (!)
-    CopyBoard(reverseBoard, boards[currentMove]);
-    for(r=0; r<BOARD_HEIGHT; r++) for(f=BOARD_LEFT; f<BOARD_RGHT; f++) {
-       int piece = boards[currentMove][BOARD_HEIGHT-1-r][f];
-       if(piece < BlackPawn) piece += BlackPawn; else if(piece < EmptySquare) piece -= BlackPawn; // color-flip
-       reverseBoard[r][f] = piece;
-    }
-    reverseBoard[EP_STATUS-1] = soughtBoard[EP_STATUS-1] ^ 3;
-    for(r=0; r<6; r++) reverseBoard[CASTLING][r] = boards[currentMove][CASTLING][(r+3)%6];
-    if(appData.findMirror && appData.searchMode <= 3 && (!nrCastlingRights
-                || (boards[currentMove][CASTLING][2] == NoRights ||
-                    boards[currentMove][CASTLING][0] == NoRights && boards[currentMove][CASTLING][1] == NoRights )
-                && (boards[currentMove][CASTLING][5] == NoRights ||
-                    boards[currentMove][CASTLING][3] == NoRights && boards[currentMove][CASTLING][4] == NoRights ) )
-      ) {
-       flipSearch = TRUE;
-       CopyBoard(flipBoard, soughtBoard);
-       CopyBoard(rotateBoard, reverseBoard);
-       for(r=0; r<BOARD_HEIGHT; r++) for(f=BOARD_LEFT; f<BOARD_RGHT; f++) {
-           flipBoard[r][f]    = soughtBoard[r][BOARD_WIDTH-1-f];
-           rotateBoard[r][f] = reverseBoard[r][BOARD_WIDTH-1-f];
-       }
-    }
-    for(r=0; r<BlackPawn; r++) maxReverse[r] = maxSought[r+BlackPawn], maxReverse[r+BlackPawn] = maxSought[r];
-    if(appData.searchMode >= 5) {
-       for(r=BOARD_HEIGHT/2; r<BOARD_HEIGHT; r++) for(f=BOARD_LEFT; f<BOARD_RGHT; f++) soughtBoard[r][f] = EmptySquare;
-       MakePieceList(soughtBoard, minSought);
-       for(r=0; r<BlackPawn; r++) minReverse[r] = minSought[r+BlackPawn], minReverse[r+BlackPawn] = minSought[r];
-    }
-    if(gameInfo.variant == VariantCrazyhouse || gameInfo.variant == VariantShogi || gameInfo.variant == VariantBughouse)
-       soughtTotal = 0; // in drop games nr of pieces does not fall monotonously
-}
-
-GameInfo dummyInfo;
-static int creatingBook;
-
-int
-GameContainsPosition (FILE *f, ListGame *lg)
-{
-    int next, btm=0, plyNr=0, scratch=forwardMostMove+2&~1;
-    int fromX, fromY, toX, toY;
-    char promoChar;
-    static int initDone=FALSE;
-
-    // weed out games based on numerical tag comparison
-    if(lg->gameInfo.variant != gameInfo.variant) return -1; // wrong variant
-    if(appData.eloThreshold1 && (lg->gameInfo.whiteRating < appData.eloThreshold1 && lg->gameInfo.blackRating < appData.eloThreshold1)) return -1;
-    if(appData.eloThreshold2 && (lg->gameInfo.whiteRating < appData.eloThreshold2 || lg->gameInfo.blackRating < appData.eloThreshold2)) return -1;
-    if(appData.dateThreshold && (!lg->gameInfo.date || atoi(lg->gameInfo.date) < appData.dateThreshold)) return -1;
-    if(!initDone) {
-       for(next = WhitePawn; next<EmptySquare; next++) keys[next] = random()>>8 ^ random()<<6 ^random()<<20;
-       initDone = TRUE;
-    }
-    if(lg->gameInfo.fen) ParseFEN(boards[scratch], &btm, lg->gameInfo.fen, FALSE);
-    else CopyBoard(boards[scratch], initialPosition); // default start position
-    if(lg->moves) {
-       turn = btm + 1;
-       if((next = QuickScan( boards[scratch], &moveDatabase[lg->moves] )) < 0) return -1; // quick scan rules out it is there
-       if(appData.searchMode >= 4) return next; // for material searches, trust QuickScan.
-    }
-    if(btm) plyNr++;
-    if(PositionMatches(boards[scratch], boards[currentMove])) return plyNr;
-    fseek(f, lg->offset, 0);
-    yynewfile(f);
-    while(1) {
-       yyboardindex = scratch;
-       quickFlag = plyNr+1;
-       next = Myylex();
-       quickFlag = 0;
-       switch(next) {
-           case PGNTag:
-               if(plyNr) return -1; // after we have seen moves, any tags will be start of next game
-           default:
-               continue;
-
-           case XBoardGame:
-           case GNUChessGame:
-               if(plyNr) return -1; // after we have seen moves, this is for new game
-             continue;
-
-           case AmbiguousMove: // we cannot reconstruct the game beyond these two
-           case ImpossibleMove:
-           case WhiteWins: // game ends here with these four
-           case BlackWins:
-           case GameIsDrawn:
-           case GameUnfinished:
-               return -1;
-
-           case IllegalMove:
-               if(appData.testLegality) return -1;
-           case WhiteCapturesEnPassant:
-           case BlackCapturesEnPassant:
-           case WhitePromotion:
-           case BlackPromotion:
-           case WhiteNonPromotion:
-           case BlackNonPromotion:
-           case NormalMove:
-           case FirstLeg:
-           case WhiteKingSideCastle:
-           case WhiteQueenSideCastle:
-           case BlackKingSideCastle:
-           case BlackQueenSideCastle:
-           case WhiteKingSideCastleWild:
-           case WhiteQueenSideCastleWild:
-           case BlackKingSideCastleWild:
-           case BlackQueenSideCastleWild:
-           case WhiteHSideCastleFR:
-           case WhiteASideCastleFR:
-           case BlackHSideCastleFR:
-           case BlackASideCastleFR:
-               fromX = currentMoveString[0] - AAA;
-               fromY = currentMoveString[1] - ONE;
-               toX = currentMoveString[2] - AAA;
-               toY = currentMoveString[3] - ONE;
-               promoChar = currentMoveString[4];
-               break;
-           case WhiteDrop:
-           case BlackDrop:
-               fromX = next == WhiteDrop ?
-                 (int) CharToPiece(ToUpper(currentMoveString[0])) :
-                 (int) CharToPiece(ToLower(currentMoveString[0]));
-               fromY = DROP_RANK;
-               toX = currentMoveString[2] - AAA;
-               toY = currentMoveString[3] - ONE;
-               promoChar = 0;
-               break;
-       }
-       // Move encountered; peform it. We need to shuttle between two boards, as even/odd index determines side to move
-       plyNr++;
-       ApplyMove(fromX, fromY, toX, toY, promoChar, boards[scratch]);
-       if(PositionMatches(boards[scratch], boards[currentMove])) return plyNr;
-       if(appData.ignoreColors && PositionMatches(boards[scratch], reverseBoard)) return plyNr;
-       if(appData.findMirror) {
-           if(PositionMatches(boards[scratch], flipBoard)) return plyNr;
-           if(appData.ignoreColors && PositionMatches(boards[scratch], rotateBoard)) return plyNr;
-       }
-    }
-}
-
-/* Load the nth game from open file f */
-int
-LoadGame (FILE *f, int gameNumber, char *title, int useList)
-{
-    ChessMove cm;
-    char buf[MSG_SIZ];
-    int gn = gameNumber;
-    ListGame *lg = NULL;
-    int numPGNTags = 0, i;
-    int err, pos = -1;
-    GameMode oldGameMode;
-    VariantClass v, oldVariant = gameInfo.variant; /* [HGM] PGNvariant */
-    char oldName[MSG_SIZ];
-
-    safeStrCpy(oldName, engineVariant, MSG_SIZ); v = oldVariant;
-
-    if (appData.debugMode)
-       fprintf(debugFP, "LoadGame(): on entry, gameMode %d\n", gameMode);
-
-    if (gameMode == Training )
-       SetTrainingModeOff();
-
-    oldGameMode = gameMode;
-    if (gameMode != BeginningOfGame) {
-      Reset(FALSE, TRUE);
-    }
-    killX = killY = kill2X = kill2Y = -1; // [HGM] lion: in case we did not Reset
-
-    gameFileFP = f;
-    if (lastLoadGameFP != NULL && lastLoadGameFP != f) {
-       fclose(lastLoadGameFP);
-    }
-
-    if (useList) {
-       lg = (ListGame *) ListElem(&gameList, gameNumber-1);
-
-       if (lg) {
-           fseek(f, lg->offset, 0);
-           GameListHighlight(gameNumber);
-           pos = lg->position;
-           gn = 1;
-       }
-       else {
-           if(oldGameMode == AnalyzeFile && appData.loadGameIndex == -1)
-             appData.loadGameIndex = 0; // [HGM] suppress error message if we reach file end after auto-stepping analysis
-           else
-           DisplayError(_("Game number out of range"), 0);
-           return FALSE;
-       }
-    } else {
-       GameListDestroy();
-       if (fseek(f, 0, 0) == -1) {
-           if (f == lastLoadGameFP ?
-               gameNumber == lastLoadGameNumber + 1 :
-               gameNumber == 1) {
-               gn = 1;
-           } else {
-               DisplayError(_("Can't seek on game file"), 0);
-               return FALSE;
-           }
-       }
-    }
-    lastLoadGameFP = f;
-    lastLoadGameNumber = gameNumber;
-    safeStrCpy(lastLoadGameTitle, title, sizeof(lastLoadGameTitle)/sizeof(lastLoadGameTitle[0]));
-    lastLoadGameUseList = useList;
-
-    yynewfile(f);
-
-    if (lg && lg->gameInfo.white && lg->gameInfo.black) {
-      snprintf(buf, sizeof(buf), "%s %s %s", lg->gameInfo.white, _("vs."),
-               lg->gameInfo.black);
-           DisplayTitle(buf);
-    } else if (*title != NULLCHAR) {
-       if (gameNumber > 1) {
-         snprintf(buf, MSG_SIZ, "%s %d", title, gameNumber);
-           DisplayTitle(buf);
-       } else {
-           DisplayTitle(title);
-       }
-    }
-
-    if (gameMode != AnalyzeFile && gameMode != AnalyzeMode) {
-       gameMode = PlayFromGameFile;
-       ModeHighlight();
-    }
-
-    currentMove = forwardMostMove = backwardMostMove = 0;
-    CopyBoard(boards[0], initialPosition);
-    StopClocks();
-
-    /*
-     * Skip the first gn-1 games in the file.
-     * Also skip over anything that precedes an identifiable
-     * start of game marker, to avoid being confused by
-     * garbage at the start of the file.  Currently
-     * recognized start of game markers are the move number "1",
-     * the pattern "gnuchess .* game", the pattern
-     * "^[#;%] [^ ]* game file", and a PGN tag block.
-     * A game that starts with one of the latter two patterns
-     * will also have a move number 1, possibly
-     * following a position diagram.
-     * 5-4-02: Let's try being more lenient and allowing a game to
-     * start with an unnumbered move.  Does that break anything?
-     */
-    cm = lastLoadGameStart = EndOfFile;
-    while (gn > 0) {
-       yyboardindex = forwardMostMove;
-       cm = (ChessMove) Myylex();
-       switch (cm) {
-         case EndOfFile:
-           if (cmailMsgLoaded) {
-               nCmailGames = CMAIL_MAX_GAMES - gn;
-           } else {
-               Reset(TRUE, TRUE);
-               DisplayError(_("Game not found in file"), 0);
-           }
-           return FALSE;
-
-         case GNUChessGame:
-         case XBoardGame:
-           gn--;
-           lastLoadGameStart = cm;
-           break;
-
-         case MoveNumberOne:
-           switch (lastLoadGameStart) {
-             case GNUChessGame:
-             case XBoardGame:
-             case PGNTag:
-               break;
-             case MoveNumberOne:
-             case EndOfFile:
-               gn--;           /* count this game */
-               lastLoadGameStart = cm;
-               break;
-             default:
-               /* impossible */
-               break;
-           }
-           break;
-
-         case PGNTag:
-           switch (lastLoadGameStart) {
-             case GNUChessGame:
-             case PGNTag:
-             case MoveNumberOne:
-             case EndOfFile:
-               gn--;           /* count this game */
-               lastLoadGameStart = cm;
-               break;
-             case XBoardGame:
-               lastLoadGameStart = cm; /* game counted already */
-               break;
-             default:
-               /* impossible */
-               break;
-           }
-           if (gn > 0) {
-               do {
-                   yyboardindex = forwardMostMove;
-                   cm = (ChessMove) Myylex();
-               } while (cm == PGNTag || cm == Comment);
-           }
-           break;
-
-         case WhiteWins:
-         case BlackWins:
-         case GameIsDrawn:
-           if (cmailMsgLoaded && (CMAIL_MAX_GAMES == lastLoadGameNumber)) {
-               if (   cmailResult[CMAIL_MAX_GAMES - gn - 1]
-                   != CMAIL_OLD_RESULT) {
-                   nCmailResults ++ ;
-                   cmailResult[  CMAIL_MAX_GAMES
-                               - gn - 1] = CMAIL_OLD_RESULT;
-               }
-           }
-           break;
-
-         case NormalMove:
-         case FirstLeg:
-           /* Only a NormalMove can be at the start of a game
-            * without a position diagram. */
-           if (lastLoadGameStart == EndOfFile ) {
-             gn--;
-             lastLoadGameStart = MoveNumberOne;
-           }
-           break;
-
-         default:
-           break;
-       }
-    }
-
-    if (appData.debugMode)
-      fprintf(debugFP, "Parsed game start '%s' (%d)\n", yy_text, (int) cm);
-
-    for(i=0; i<EmptySquare; i++) { FREE(pieceDesc[i]); pieceDesc[i] = NULL; } // reset VariantMen
-
-    if (cm == XBoardGame) {
-       /* Skip any header junk before position diagram and/or move 1 */
-       for (;;) {
-           yyboardindex = forwardMostMove;
-           cm = (ChessMove) Myylex();
-
-           if (cm == EndOfFile ||
-               cm == GNUChessGame || cm == XBoardGame) {
-               /* Empty game; pretend end-of-file and handle later */
-               cm = EndOfFile;
-               break;
-           }
-
-           if (cm == MoveNumberOne || cm == PositionDiagram ||
-               cm == PGNTag || cm == Comment)
-             break;
-       }
-    } else if (cm == GNUChessGame) {
-       if (gameInfo.event != NULL) {
-           free(gameInfo.event);
-       }
-       gameInfo.event = StrSave(yy_text);
-    }
-
-    startedFromSetupPosition = startedFromPositionFile; // [HGM]
-    while (cm == PGNTag) {
-       if (appData.debugMode)
-         fprintf(debugFP, "Parsed PGNTag: %s\n", yy_text);
-       err = ParsePGNTag(yy_text, &gameInfo);
-       if (!err) numPGNTags++;
-
-        /* [HGM] PGNvariant: automatically switch to variant given in PGN tag */
-        if(gameInfo.variant != oldVariant && (gameInfo.variant != VariantNormal || gameInfo.variantName == NULL || *gameInfo.variantName == NULLCHAR)) {
-            startedFromPositionFile = FALSE; /* [HGM] loadPos: variant switch likely makes position invalid */
-           ResetFrontEnd(); // [HGM] might need other bitmaps. Cannot use Reset() because it clears gameInfo :-(
-           InitPosition(TRUE);
-            oldVariant = gameInfo.variant;
-           if (appData.debugMode)
-             fprintf(debugFP, "New variant %d\n", (int) oldVariant);
-        }
-
-
-       if (gameInfo.fen != NULL) {
-         Board initial_position;
-         startedFromSetupPosition = TRUE;
-         if (!ParseFEN(initial_position, &blackPlaysFirst, gameInfo.fen, TRUE)) {
-           Reset(TRUE, TRUE);
-           DisplayError(_("Bad FEN position in file"), 0);
-           return FALSE;
-         }
-         CopyBoard(boards[0], initial_position);
-         if(*engineVariant || gameInfo.variant == VariantFairy) // [HGM] for now, assume FEN in engine-defined variant game is default initial position
-           CopyBoard(initialPosition, initial_position);
-         if (blackPlaysFirst) {
-           currentMove = forwardMostMove = backwardMostMove = 1;
-           CopyBoard(boards[1], initial_position);
-           safeStrCpy(moveList[0], "", sizeof(moveList[0])/sizeof(moveList[0][0]));
-           safeStrCpy(parseList[0], "", sizeof(parseList[0])/sizeof(parseList[0][0]));
-           timeRemaining[0][1] = whiteTimeRemaining;
-           timeRemaining[1][1] = blackTimeRemaining;
-           if (commentList[0] != NULL) {
-             commentList[1] = commentList[0];
-             commentList[0] = NULL;
-           }
-         } else {
-           currentMove = forwardMostMove = backwardMostMove = 0;
-         }
-          /* [HGM] copy FEN attributes as well. Bugfix 4.3.14m and 4.3.15e: moved to after 'blackPlaysFirst' */
-          {   int i;
-              initialRulePlies = FENrulePlies;
-              for( i=0; i< nrCastlingRights; i++ )
-                  initialRights[i] = initial_position[CASTLING][i];
-          }
-         yyboardindex = forwardMostMove;
-         free(gameInfo.fen);
-         gameInfo.fen = NULL;
-       }
-
-       yyboardindex = forwardMostMove;
-       cm = (ChessMove) Myylex();
-
-       /* Handle comments interspersed among the tags */
-       while (cm == Comment) {
-           char *p;
-           if (appData.debugMode)
-             fprintf(debugFP, "Parsed Comment: %s\n", yy_text);
-           p = yy_text;
-           AppendComment(currentMove, p, FALSE);
-           yyboardindex = forwardMostMove;
-           cm = (ChessMove) Myylex();
-       }
-    }
-
-    /* don't rely on existence of Event tag since if game was
-     * pasted from clipboard the Event tag may not exist
-     */
-    if (numPGNTags > 0){
-        char *tags;
-       if (gameInfo.variant == VariantNormal) {
-         VariantClass v = StringToVariant(gameInfo.event);
-         // [HGM] do not recognize variants from event tag that were introduced after supporting variant tag
-         if(v < VariantShogi) gameInfo.variant = v;
-       }
-       if (!matchMode) {
-          if( appData.autoDisplayTags ) {
-           tags = PGNTags(&gameInfo);
-           TagsPopUp(tags, CmailMsg());
-           free(tags);
-          }
-       }
-    } else {
-       /* Make something up, but don't display it now */
-       SetGameInfo();
-       TagsPopDown();
-    }
-
-    if (cm == PositionDiagram) {
-       int i, j;
-       char *p;
-       Board initial_position;
-
-       if (appData.debugMode)
-         fprintf(debugFP, "Parsed PositionDiagram: %s\n", yy_text);
-
-       if (!startedFromSetupPosition) {
-           p = yy_text;
-            for (i = BOARD_HEIGHT - 1; i >= 0; i--)
-              for (j = BOARD_LEFT; j < BOARD_RGHT; p++)
-               switch (*p) {
-                 case '{':
-                 case '[':
-                 case '-':
-                 case ' ':
-                 case '\t':
-                 case '\n':
-                 case '\r':
-                   break;
-                 default:
-                   initial_position[i][j++] = CharToPiece(*p);
-                   break;
-               }
-           while (*p == ' ' || *p == '\t' ||
-                  *p == '\n' || *p == '\r') p++;
-
-           if (strncmp(p, "black", strlen("black"))==0)
-             blackPlaysFirst = TRUE;
-           else
-             blackPlaysFirst = FALSE;
-           startedFromSetupPosition = TRUE;
-
-           CopyBoard(boards[0], initial_position);
-           if (blackPlaysFirst) {
-               currentMove = forwardMostMove = backwardMostMove = 1;
-               CopyBoard(boards[1], initial_position);
-               safeStrCpy(moveList[0], "", sizeof(moveList[0])/sizeof(moveList[0][0]));
-               safeStrCpy(parseList[0], "", sizeof(parseList[0])/sizeof(parseList[0][0]));
-               timeRemaining[0][1] = whiteTimeRemaining;
-               timeRemaining[1][1] = blackTimeRemaining;
-               if (commentList[0] != NULL) {
-                   commentList[1] = commentList[0];
-                   commentList[0] = NULL;
-               }
-           } else {
-               currentMove = forwardMostMove = backwardMostMove = 0;
-           }
-       }
-       yyboardindex = forwardMostMove;
-       cm = (ChessMove) Myylex();
-    }
-
-  if(!creatingBook) {
-    if (first.pr == NoProc) {
-       StartChessProgram(&first);
-    }
-    InitChessProgram(&first, FALSE);
-    if(gameInfo.variant == VariantUnknown && *oldName) {
-       safeStrCpy(engineVariant, oldName, MSG_SIZ);
-       gameInfo.variant = v;
-    }
-    SendToProgram("force\n", &first);
-    if (startedFromSetupPosition) {
-       SendBoard(&first, forwardMostMove);
-    if (appData.debugMode) {
-        fprintf(debugFP, "Load Game\n");
-    }
-       DisplayBothClocks();
-    }
-  }
-
-    /* [HGM] server: flag to write setup moves in broadcast file as one */
-    loadFlag = appData.suppressLoadMoves;
-
-    while (cm == Comment) {
-       char *p;
-       if (appData.debugMode)
-         fprintf(debugFP, "Parsed Comment: %s\n", yy_text);
-       p = yy_text;
-       AppendComment(currentMove, p, FALSE);
-       yyboardindex = forwardMostMove;
-       cm = (ChessMove) Myylex();
-    }
-
-    if ((cm == EndOfFile && lastLoadGameStart != EndOfFile ) ||
-       cm == WhiteWins || cm == BlackWins ||
-       cm == GameIsDrawn || cm == GameUnfinished) {
-       DisplayMessage("", _("No moves in game"));
-       if (cmailMsgLoaded) {
-           if (appData.debugMode)
-             fprintf(debugFP, "Setting flipView to %d.\n", FALSE);
-           ClearHighlights();
-           flipView = FALSE;
-       }
-       DrawPosition(FALSE, boards[currentMove]);
-       DisplayBothClocks();
-       gameMode = EditGame;
-       ModeHighlight();
-       gameFileFP = NULL;
-       cmailOldMove = 0;
-       return TRUE;
-    }
-
-    // [HGM] PV info: routine tests if comment empty
-    if (!matchMode && (pausing || appData.timeDelay != 0)) {
-       DisplayComment(currentMove - 1, commentList[currentMove]);
-    }
-    if (!matchMode && appData.timeDelay != 0)
-      DrawPosition(FALSE, boards[currentMove]);
-
-    if (gameMode == AnalyzeFile || gameMode == AnalyzeMode) {
-      programStats.ok_to_send = 1;
-    }
-
-    /* if the first token after the PGN tags is a move
-     * and not move number 1, retrieve it from the parser
-     */
-    if (cm != MoveNumberOne)
-       LoadGameOneMove(cm);
-
-    /* load the remaining moves from the file */
-    while (LoadGameOneMove(EndOfFile)) {
-      timeRemaining[0][forwardMostMove] = whiteTimeRemaining;
-      timeRemaining[1][forwardMostMove] = blackTimeRemaining;
-    }
-
-    /* rewind to the start of the game */
-    currentMove = backwardMostMove;
-
-    HistorySet(parseList, backwardMostMove, forwardMostMove, currentMove-1);
-
-    if (oldGameMode == AnalyzeFile) {
-      appData.loadGameIndex = -1; // [HGM] order auto-stepping through games
-      AnalyzeFileEvent();
-    } else
-    if (oldGameMode == AnalyzeMode) {
-      AnalyzeFileEvent();
-    }
-
-    if(gameInfo.result == GameUnfinished && gameInfo.resultDetails && appData.clockMode) {
-       long int w, b; // [HGM] adjourn: restore saved clock times
-       char *p = strstr(gameInfo.resultDetails, "(Clocks:");
-       if(p && sscanf(p+8, "%ld,%ld", &w, &b) == 2) {
-           timeRemaining[0][forwardMostMove] = whiteTimeRemaining = 1000*w + 500;
-           timeRemaining[1][forwardMostMove] = blackTimeRemaining = 1000*b + 500;
-       }
-    }
-
-    if(creatingBook) return TRUE;
-    if (!matchMode && pos > 0) {
-       ToNrEvent(pos); // [HGM] no autoplay if selected on position
-    } else
-    if (matchMode || appData.timeDelay == 0) {
-      ToEndEvent();
-    } else if (appData.timeDelay > 0) {
-      AutoPlayGameLoop();
-    }
-
-    if (appData.debugMode)
-       fprintf(debugFP, "LoadGame(): on exit, gameMode %d\n", gameMode);
-
-    loadFlag = 0; /* [HGM] true game starts */
-    return TRUE;
-}
-
-/* Support for LoadNextPosition, LoadPreviousPosition, ReloadSamePosition */
-int
-ReloadPosition (int offset)
-{
-    int positionNumber = lastLoadPositionNumber + offset;
-    if (lastLoadPositionFP == NULL) {
-       DisplayError(_("No position has been loaded yet"), 0);
-       return FALSE;
-    }
-    if (positionNumber <= 0) {
-       DisplayError(_("Can't back up any further"), 0);
-       return FALSE;
-    }
-    return LoadPosition(lastLoadPositionFP, positionNumber,
-                       lastLoadPositionTitle);
-}
-
-/* Load the nth position from the given file */
-int
-LoadPositionFromFile (char *filename, int n, char *title)
-{
-    FILE *f;
-    char buf[MSG_SIZ];
-
-    if (strcmp(filename, "-") == 0) {
-       return LoadPosition(stdin, n, "stdin");
-    } else {
-       f = fopen(filename, "rb");
-       if (f == NULL) {
-            snprintf(buf, sizeof(buf), _("Can't open \"%s\""), filename);
-           DisplayError(buf, errno);
-           return FALSE;
-       } else {
-           return LoadPosition(f, n, title);
-       }
-    }
-}
-
-/* Load the nth position from the given open file, and close it */
-int
-LoadPosition (FILE *f, int positionNumber, char *title)
-{
-    char *p, line[MSG_SIZ];
-    Board initial_position;
-    int i, j, fenMode, pn;
-
-    if (gameMode == Training )
-       SetTrainingModeOff();
-
-    if (gameMode != BeginningOfGame) {
-       Reset(FALSE, TRUE);
-    }
-    if (lastLoadPositionFP != NULL && lastLoadPositionFP != f) {
-       fclose(lastLoadPositionFP);
-    }
-    if (positionNumber == 0) positionNumber = 1;
-    lastLoadPositionFP = f;
-    lastLoadPositionNumber = positionNumber;
-    safeStrCpy(lastLoadPositionTitle, title, sizeof(lastLoadPositionTitle)/sizeof(lastLoadPositionTitle[0]));
-    if (first.pr == NoProc && !appData.noChessProgram) {
-      StartChessProgram(&first);
-      InitChessProgram(&first, FALSE);
-    }
-    pn = positionNumber;
-    if (positionNumber < 0) {
-       /* Negative position number means to seek to that byte offset */
-       if (fseek(f, -positionNumber, 0) == -1) {
-           DisplayError(_("Can't seek on position file"), 0);
-           return FALSE;
-       };
-       pn = 1;
-    } else {
-       if (fseek(f, 0, 0) == -1) {
-           if (f == lastLoadPositionFP ?
-               positionNumber == lastLoadPositionNumber + 1 :
-               positionNumber == 1) {
-               pn = 1;
-           } else {
-               DisplayError(_("Can't seek on position file"), 0);
-               return FALSE;
-           }
-       }
-    }
-    /* See if this file is FEN or old-style xboard */
-    if (fgets(line, MSG_SIZ, f) == NULL) {
-       DisplayError(_("Position not found in file"), 0);
-       return FALSE;
-    }
-    // [HGM] FEN can begin with digit, any piece letter valid in this variant, or a + for Shogi promoted pieces (or * for blackout)
-    fenMode = line[0] >= '0' && line[0] <= '9' || line[0] == '+' || line[0] == '*' || CharToPiece(line[0]) != EmptySquare;
-
-    if (pn >= 2) {
-       if (fenMode || line[0] == '#') pn--;
-       while (pn > 0) {
-           /* skip positions before number pn */
-           if (fgets(line, MSG_SIZ, f) == NULL) {
-               Reset(TRUE, TRUE);
-               DisplayError(_("Position not found in file"), 0);
-               return FALSE;
-           }
-           if (fenMode || line[0] == '#') pn--;
-       }
-    }
-
-    if (fenMode) {
-       char *p;
-       if (!ParseFEN(initial_position, &blackPlaysFirst, line, TRUE)) {
-           DisplayError(_("Bad FEN position in file"), 0);
-           return FALSE;
-       }
-       if((strchr(line, ';')) && (p = strstr(line, " bm "))) { // EPD with best move
-           sscanf(p+4, "%[^;]", bestMove);
-       } else *bestMove = NULLCHAR;
-       if((strchr(line, ';')) && (p = strstr(line, " am "))) { // EPD with avoid move
-           sscanf(p+4, "%[^;]", avoidMove);
-       } else *avoidMove = NULLCHAR;
-    } else {
-       (void) fgets(line, MSG_SIZ, f);
-       (void) fgets(line, MSG_SIZ, f);
-
-        for (i = BOARD_HEIGHT - 1; i >= 0; i--) {
-           (void) fgets(line, MSG_SIZ, f);
-            for (p = line, j = BOARD_LEFT; j < BOARD_RGHT; p++) {
-               if (*p == ' ')
-                 continue;
-               initial_position[i][j++] = CharToPiece(*p);
-           }
-       }
-
-       blackPlaysFirst = FALSE;
-       if (!feof(f)) {
-           (void) fgets(line, MSG_SIZ, f);
-           if (strncmp(line, "black", strlen("black"))==0)
-             blackPlaysFirst = TRUE;
-       }
-    }
-    startedFromSetupPosition = TRUE;
-
-    CopyBoard(boards[0], initial_position);
-    if (blackPlaysFirst) {
-       currentMove = forwardMostMove = backwardMostMove = 1;
-       safeStrCpy(moveList[0], "", sizeof(moveList[0])/sizeof(moveList[0][0]));
-       safeStrCpy(parseList[0], "", sizeof(parseList[0])/sizeof(parseList[0][0]));
-       CopyBoard(boards[1], initial_position);
-       DisplayMessage("", _("Black to play"));
-    } else {
-       currentMove = forwardMostMove = backwardMostMove = 0;
-       DisplayMessage("", _("White to play"));
-    }
-    initialRulePlies = FENrulePlies; /* [HGM] copy FEN attributes as well */
-    if(first.pr != NoProc) { // [HGM] in tourney-mode a position can be loaded before the chess engine is installed
-       SendToProgram("force\n", &first);
-       SendBoard(&first, forwardMostMove);
-    }
-    if (appData.debugMode) {
-int i, j;
-  for(i=0;i<2;i++){for(j=0;j<6;j++)fprintf(debugFP, " %d", boards[i][CASTLING][j]);fprintf(debugFP,"\n");}
-  for(j=0;j<6;j++)fprintf(debugFP, " %d", initialRights[j]);fprintf(debugFP,"\n");
-        fprintf(debugFP, "Load Position\n");
-    }
-
-    if (positionNumber > 1) {
-      snprintf(line, MSG_SIZ, "%s %d", title, positionNumber);
-       DisplayTitle(line);
-    } else {
-       DisplayTitle(title);
-    }
-    gameMode = EditGame;
-    ModeHighlight();
-    ResetClocks();
-    timeRemaining[0][1] = whiteTimeRemaining;
-    timeRemaining[1][1] = blackTimeRemaining;
-    DrawPosition(FALSE, boards[currentMove]);
-
-    return TRUE;
-}
-
-
-void
-CopyPlayerNameIntoFileName (char **dest, char *src)
-{
-    while (*src != NULLCHAR && *src != ',') {
-       if (*src == ' ') {
-           *(*dest)++ = '_';
-           src++;
-       } else {
-           *(*dest)++ = *src++;
-       }
-    }
-}
-
-char *
-DefaultFileName (char *ext)
-{
-    static char def[MSG_SIZ];
-    char *p;
-
-    if (gameInfo.white != NULL && gameInfo.white[0] != '-') {
-       p = def;
-       CopyPlayerNameIntoFileName(&p, gameInfo.white);
-       *p++ = '-';
-       CopyPlayerNameIntoFileName(&p, gameInfo.black);
-       *p++ = '.';
-       safeStrCpy(p, ext, MSG_SIZ-2-strlen(gameInfo.white)-strlen(gameInfo.black));
-    } else {
-       def[0] = NULLCHAR;
-    }
-    return def;
-}
-
-/* Save the current game to the given file */
-int
-SaveGameToFile (char *filename, int append)
-{
-    FILE *f;
-    char buf[MSG_SIZ];
-    int result, i, t,tot=0;
-
-    if (strcmp(filename, "-") == 0) {
-       return SaveGame(stdout, 0, NULL);
-    } else {
-       for(i=0; i<10; i++) { // upto 10 tries
-            f = fopen(filename, append ? "a" : "w");
-            if(f && i) fprintf(f, "[Delay \"%d retries, %d msec\"]\n",i,tot);
-            if(f || errno != 13) break;
-            DoSleep(t = 5 + random()%11); // wait 5-15 msec
-            tot += t;
-       }
-       if (f == NULL) {
-           snprintf(buf, sizeof(buf), _("Can't open \"%s\""), filename);
-           DisplayError(buf, errno);
-           return FALSE;
-       } else {
-           safeStrCpy(buf, lastMsg, MSG_SIZ);
-           DisplayMessage(_("Waiting for access to save file"), "");
-           flock(fileno(f), LOCK_EX); // [HGM] lock: lock file while we are writing
-           DisplayMessage(_("Saving game"), "");
-           if(lseek(fileno(f), 0, SEEK_END) == -1) DisplayError(_("Bad Seek"), errno);     // better safe than sorry...
-           result = SaveGame(f, 0, NULL);
-           DisplayMessage(buf, "");
-           return result;
-       }
-    }
-}
-
-char *
-SavePart (char *str)
-{
-    static char buf[MSG_SIZ];
-    char *p;
-
-    p = strchr(str, ' ');
-    if (p == NULL) return str;
-    strncpy(buf, str, p - str);
-    buf[p - str] = NULLCHAR;
-    return buf;
-}
-
-#define PGN_MAX_LINE 75
-
-#define PGN_SIDE_WHITE  0
-#define PGN_SIDE_BLACK  1
-
-static int
-FindFirstMoveOutOfBook (int side)
-{
-    int result = -1;
-
-    if( backwardMostMove == 0 && ! startedFromSetupPosition) {
-        int index = backwardMostMove;
-        int has_book_hit = 0;
-
-        if( (index % 2) != side ) {
-            index++;
-        }
-
-        while( index < forwardMostMove ) {
-            /* Check to see if engine is in book */
-            int depth = pvInfoList[index].depth;
-            int score = pvInfoList[index].score;
-            int in_book = 0;
-
-            if( depth <= 2 ) {
-                in_book = 1;
-            }
-            else if( score == 0 && depth == 63 ) {
-                in_book = 1; /* Zappa */
-            }
-            else if( score == 2 && depth == 99 ) {
-                in_book = 1; /* Abrok */
-            }
-
-            has_book_hit += in_book;
-
-            if( ! in_book ) {
-                result = index;
-
-                break;
-            }
-
-            index += 2;
-        }
-    }
-
-    return result;
-}
-
-void
-GetOutOfBookInfo (char * buf)
-{
-    int oob[2];
-    int i;
-    int offset = backwardMostMove & (~1L); /* output move numbers start at 1 */
-
-    oob[0] = FindFirstMoveOutOfBook( PGN_SIDE_WHITE );
-    oob[1] = FindFirstMoveOutOfBook( PGN_SIDE_BLACK );
-
-    *buf = '\0';
-
-    if( oob[0] >= 0 || oob[1] >= 0 ) {
-        for( i=0; i<2; i++ ) {
-            int idx = oob[i];
-
-            if( idx >= 0 ) {
-                if( i > 0 && oob[0] >= 0 ) {
-                    strcat( buf, "   " );
-                }
-
-                sprintf( buf+strlen(buf), "%d%s. ", (idx - offset)/2 + 1, idx & 1 ? ".." : "" );
-                sprintf( buf+strlen(buf), "%s%.2f",
-                    pvInfoList[idx].score >= 0 ? "+" : "",
-                    pvInfoList[idx].score / 100.0 );
-            }
-        }
-    }
-}
-
-/* Save game in PGN style */
-static void
-SaveGamePGN2 (FILE *f)
-{
-    int i, offset, linelen, newblock;
-//    char *movetext;
-    char numtext[32];
-    int movelen, numlen, blank;
-    char move_buffer[100]; /* [AS] Buffer for move+PV info */
-
-    offset = backwardMostMove & (~1L); /* output move numbers start at 1 */
-
-    PrintPGNTags(f, &gameInfo);
-
-    if(appData.numberTag && matchMode) fprintf(f, "[Number \"%d\"]\n", nextGame+1); // [HGM] number tag
-
-    if (backwardMostMove > 0 || startedFromSetupPosition) {
-        char *fen = PositionToFEN(backwardMostMove, NULL, 1);
-        fprintf(f, "[FEN \"%s\"]\n[SetUp \"1\"]\n", fen);
-       fprintf(f, "\n{--------------\n");
-       PrintPosition(f, backwardMostMove);
-       fprintf(f, "--------------}\n");
-        free(fen);
-    }
-    else {
-        /* [AS] Out of book annotation */
-        if( appData.saveOutOfBookInfo ) {
-            char buf[64];
-
-            GetOutOfBookInfo( buf );
-
-            if( buf[0] != '\0' ) {
-                fprintf( f, "[%s \"%s\"]\n", PGN_OUT_OF_BOOK, buf );
-            }
-        }
-
-       fprintf(f, "\n");
-    }
-
-    i = backwardMostMove;
-    linelen = 0;
-    newblock = TRUE;
-
-    while (i < forwardMostMove) {
-       /* Print comments preceding this move */
-       if (commentList[i] != NULL) {
-           if (linelen > 0) fprintf(f, "\n");
-           fprintf(f, "%s", commentList[i]);
-           linelen = 0;
-           newblock = TRUE;
-       }
-
-       /* Format move number */
-       if ((i % 2) == 0)
-         snprintf(numtext, sizeof(numtext)/sizeof(numtext[0]),"%d.", (i - offset)/2 + 1);
-        else
-         if (newblock)
-           snprintf(numtext, sizeof(numtext)/sizeof(numtext[0]), "%d...", (i - offset)/2 + 1);
-         else
-           numtext[0] = NULLCHAR;
-
-       numlen = strlen(numtext);
-       newblock = FALSE;
-
-       /* Print move number */
-       blank = linelen > 0 && numlen > 0;
-       if (linelen + (blank ? 1 : 0) + numlen > PGN_MAX_LINE) {
-           fprintf(f, "\n");
-           linelen = 0;
-           blank = 0;
-       }
-       if (blank) {
-           fprintf(f, " ");
-           linelen++;
-       }
-       fprintf(f, "%s", numtext);
-       linelen += numlen;
-
-       /* Get move */
-       safeStrCpy(move_buffer, SavePart(parseList[i]), sizeof(move_buffer)/sizeof(move_buffer[0])); // [HGM] pgn: print move via buffer, so it can be edited
-       movelen = strlen(move_buffer); /* [HGM] pgn: line-break point before move */
-
-       /* Print move */
-       blank = linelen > 0 && movelen > 0;
-       if (linelen + (blank ? 1 : 0) + movelen > PGN_MAX_LINE) {
-           fprintf(f, "\n");
-           linelen = 0;
-           blank = 0;
-       }
-       if (blank) {
-           fprintf(f, " ");
-           linelen++;
-       }
-       fprintf(f, "%s", move_buffer);
-       linelen += movelen;
-
-        /* [AS] Add PV info if present */
-        if( i >= 0 && appData.saveExtendedInfoInPGN && pvInfoList[i].depth > 0 ) {
-            /* [HGM] add time */
-            char buf[MSG_SIZ]; int seconds;
-
-            seconds = (pvInfoList[i].time+5)/10; // deci-seconds, rounded to nearest
-
-            if( seconds <= 0)
-             buf[0] = 0;
-           else
-             if( seconds < 30 )
-               snprintf(buf, MSG_SIZ, " %3.1f%c", seconds/10., 0);
-             else
-               {
-                 seconds = (seconds + 4)/10; // round to full seconds
-                 if( seconds < 60 )
-                   snprintf(buf, MSG_SIZ, " %d%c", seconds, 0);
-                 else
-                   snprintf(buf, MSG_SIZ, " %d:%02d%c", seconds/60, seconds%60, 0);
-               }
-
-            snprintf( move_buffer, sizeof(move_buffer)/sizeof(move_buffer[0]),"{%s%.2f/%d%s}",
-                     pvInfoList[i].score >= 0 ? "+" : "",
-                     pvInfoList[i].score / 100.0,
-                     pvInfoList[i].depth,
-                     buf );
-
-           movelen = strlen(move_buffer); /* [HGM] pgn: line-break point after move */
-
-           /* Print score/depth */
-           blank = linelen > 0 && movelen > 0;
-           if (linelen + (blank ? 1 : 0) + movelen > PGN_MAX_LINE) {
-               fprintf(f, "\n");
-               linelen = 0;
-               blank = 0;
-           }
-           if (blank) {
-               fprintf(f, " ");
-               linelen++;
-           }
-           fprintf(f, "%s", move_buffer);
-           linelen += movelen;
-        }
-
-       i++;
-    }
-
-    /* Start a new line */
-    if (linelen > 0) fprintf(f, "\n");
-
-    /* Print comments after last move */
-    if (commentList[i] != NULL) {
-       fprintf(f, "%s\n", commentList[i]);
-    }
-
-    /* Print result */
-    if (gameInfo.resultDetails != NULL &&
-       gameInfo.resultDetails[0] != NULLCHAR) {
-       char buf[MSG_SIZ], *p = gameInfo.resultDetails;
-       if(gameInfo.result == GameUnfinished && appData.clockMode &&
-          (gameMode == MachinePlaysWhite || gameMode == MachinePlaysBlack || gameMode == TwoMachinesPlay)) // [HGM] adjourn: save clock settings
-           snprintf(buf, MSG_SIZ, "%s (Clocks: %ld, %ld)", p, whiteTimeRemaining/1000, blackTimeRemaining/1000), p = buf;
-       fprintf(f, "{%s} %s\n\n", p, PGNResult(gameInfo.result));
-    } else {
-       fprintf(f, "%s\n\n", PGNResult(gameInfo.result));
-    }
-}
-
-/* Save game in PGN style and close the file */
-int
-SaveGamePGN (FILE *f)
-{
-    SaveGamePGN2(f);
-    fclose(f);
-    lastSavedGame = GameCheckSum(); // [HGM] save: remember ID of last saved game to prevent double saving
-    return TRUE;
-}
-
-/* Save game in old style and close the file */
-int
-SaveGameOldStyle (FILE *f)
-{
-    int i, offset;
-    time_t tm;
-
-    tm = time((time_t *) NULL);
-
-    fprintf(f, "# %s game file -- %s", programName, ctime(&tm));
-    PrintOpponents(f);
-
-    if (backwardMostMove > 0 || startedFromSetupPosition) {
-       fprintf(f, "\n[--------------\n");
-       PrintPosition(f, backwardMostMove);
-       fprintf(f, "--------------]\n");
-    } else {
-       fprintf(f, "\n");
-    }
-
-    i = backwardMostMove;
-    offset = backwardMostMove & (~1L); /* output move numbers start at 1 */
-
-    while (i < forwardMostMove) {
-       if (commentList[i] != NULL) {
-           fprintf(f, "[%s]\n", commentList[i]);
-       }
-
-       if ((i % 2) == 1) {
-           fprintf(f, "%d. ...  %s\n", (i - offset)/2 + 1, parseList[i]);
-           i++;
-       } else {
-           fprintf(f, "%d. %s  ", (i - offset)/2 + 1, parseList[i]);
-           i++;
-           if (commentList[i] != NULL) {
-               fprintf(f, "\n");
-               continue;
-           }
-           if (i >= forwardMostMove) {
-               fprintf(f, "\n");
-               break;
-           }
-           fprintf(f, "%s\n", parseList[i]);
-           i++;
-       }
-    }
-
-    if (commentList[i] != NULL) {
-       fprintf(f, "[%s]\n", commentList[i]);
-    }
-
-    /* This isn't really the old style, but it's close enough */
-    if (gameInfo.resultDetails != NULL &&
-       gameInfo.resultDetails[0] != NULLCHAR) {
-       fprintf(f, "%s (%s)\n\n", PGNResult(gameInfo.result),
-               gameInfo.resultDetails);
-    } else {
-       fprintf(f, "%s\n\n", PGNResult(gameInfo.result));
-    }
-
-    fclose(f);
-    return TRUE;
-}
-
-/* Save the current game to open file f and close the file */
-int
-SaveGame (FILE *f, int dummy, char *dummy2)
-{
-    if (gameMode == EditPosition) EditPositionDone(TRUE);
-    lastSavedGame = GameCheckSum(); // [HGM] save: remember ID of last saved game to prevent double saving
-    if (appData.oldSaveStyle)
-      return SaveGameOldStyle(f);
-    else
-      return SaveGamePGN(f);
-}
-
-/* Save the current position to the given file */
-int
-SavePositionToFile (char *filename)
-{
-    FILE *f;
-    char buf[MSG_SIZ];
-
-    if (strcmp(filename, "-") == 0) {
-       return SavePosition(stdout, 0, NULL);
-    } else {
-       f = fopen(filename, "a");
-       if (f == NULL) {
-           snprintf(buf, sizeof(buf), _("Can't open \"%s\""), filename);
-           DisplayError(buf, errno);
-           return FALSE;
-       } else {
-           safeStrCpy(buf, lastMsg, MSG_SIZ);
-           DisplayMessage(_("Waiting for access to save file"), "");
-           flock(fileno(f), LOCK_EX); // [HGM] lock
-           DisplayMessage(_("Saving position"), "");
-           lseek(fileno(f), 0, SEEK_END);     // better safe than sorry...
-           SavePosition(f, 0, NULL);
-           DisplayMessage(buf, "");
-           return TRUE;
-       }
-    }
-}
-
-/* Save the current position to the given open file and close the file */
-int
-SavePosition (FILE *f, int dummy, char *dummy2)
-{
-    time_t tm;
-    char *fen;
-
-    if (gameMode == EditPosition) EditPositionDone(TRUE);
-    if (appData.oldSaveStyle) {
-       tm = time((time_t *) NULL);
-
-       fprintf(f, "# %s position file -- %s", programName, ctime(&tm));
-       PrintOpponents(f);
-       fprintf(f, "[--------------\n");
-       PrintPosition(f, currentMove);
-       fprintf(f, "--------------]\n");
-    } else {
-       fen = PositionToFEN(currentMove, NULL, 1);
-       fprintf(f, "%s\n", fen);
-       free(fen);
-    }
-    fclose(f);
-    return TRUE;
-}
-
-void
-ReloadCmailMsgEvent (int unregister)
-{
-#if !WIN32
-    static char *inFilename = NULL;
-    static char *outFilename;
-    int i;
-    struct stat inbuf, outbuf;
-    int status;
-
-    /* Any registered moves are unregistered if unregister is set, */
-    /* i.e. invoked by the signal handler */
-    if (unregister) {
-       for (i = 0; i < CMAIL_MAX_GAMES; i ++) {
-           cmailMoveRegistered[i] = FALSE;
-           if (cmailCommentList[i] != NULL) {
-               free(cmailCommentList[i]);
-               cmailCommentList[i] = NULL;
-           }
-       }
-       nCmailMovesRegistered = 0;
-    }
-
-    for (i = 0; i < CMAIL_MAX_GAMES; i ++) {
-       cmailResult[i] = CMAIL_NOT_RESULT;
-    }
-    nCmailResults = 0;
-
-    if (inFilename == NULL) {
-       /* Because the filenames are static they only get malloced once  */
-       /* and they never get freed                                      */
-       inFilename = (char *) malloc(strlen(appData.cmailGameName) + 9);
-       sprintf(inFilename, "%s.game.in", appData.cmailGameName);
-
-       outFilename = (char *) malloc(strlen(appData.cmailGameName) + 5);
-       sprintf(outFilename, "%s.out", appData.cmailGameName);
-    }
-
-    status = stat(outFilename, &outbuf);
-    if (status < 0) {
-       cmailMailedMove = FALSE;
-    } else {
-       status = stat(inFilename, &inbuf);
-       cmailMailedMove = (inbuf.st_mtime < outbuf.st_mtime);
-    }
-
-    /* LoadGameFromFile(CMAIL_MAX_GAMES) with cmailMsgLoaded == TRUE
-       counts the games, notes how each one terminated, etc.
-
-       It would be nice to remove this kludge and instead gather all
-       the information while building the game list.  (And to keep it
-       in the game list nodes instead of having a bunch of fixed-size
-       parallel arrays.)  Note this will require getting each game's
-       termination from the PGN tags, as the game list builder does
-       not process the game moves.  --mann
-       */
-    cmailMsgLoaded = TRUE;
-    LoadGameFromFile(inFilename, CMAIL_MAX_GAMES, "", FALSE);
-
-    /* Load first game in the file or popup game menu */
-    LoadGameFromFile(inFilename, 0, appData.cmailGameName, TRUE);
-
-#endif /* !WIN32 */
-    return;
-}
-
-int
-RegisterMove ()
-{
-    FILE *f;
-    char string[MSG_SIZ];
-
-    if (   cmailMailedMove
-       || (cmailResult[lastLoadGameNumber - 1] == CMAIL_OLD_RESULT)) {
-       return TRUE;            /* Allow free viewing  */
-    }
-
-    /* Unregister move to ensure that we don't leave RegisterMove        */
-    /* with the move registered when the conditions for registering no   */
-    /* longer hold                                                       */
-    if (cmailMoveRegistered[lastLoadGameNumber - 1]) {
-       cmailMoveRegistered[lastLoadGameNumber - 1] = FALSE;
-       nCmailMovesRegistered --;
-
-       if (cmailCommentList[lastLoadGameNumber - 1] != NULL)
-         {
-             free(cmailCommentList[lastLoadGameNumber - 1]);
-             cmailCommentList[lastLoadGameNumber - 1] = NULL;
-         }
-    }
-
-    if (cmailOldMove == -1) {
-       DisplayError(_("You have edited the game history.\nUse Reload Same Game and make your move again."), 0);
-       return FALSE;
-    }
-
-    if (currentMove > cmailOldMove + 1) {
-       DisplayError(_("You have entered too many moves.\nBack up to the correct position and try again."), 0);
-       return FALSE;
-    }
-
-    if (currentMove < cmailOldMove) {
-       DisplayError(_("Displayed position is not current.\nStep forward to the correct position and try again."), 0);
-       return FALSE;
-    }
-
-    if (forwardMostMove > currentMove) {
-       /* Silently truncate extra moves */
-       TruncateGame();
-    }
-
-    if (   (currentMove == cmailOldMove + 1)
-       || (   (currentMove == cmailOldMove)
-           && (   (cmailMoveType[lastLoadGameNumber - 1] == CMAIL_ACCEPT)
-               || (cmailMoveType[lastLoadGameNumber - 1] == CMAIL_RESIGN)))) {
-       if (gameInfo.result != GameUnfinished) {
-           cmailResult[lastLoadGameNumber - 1] = CMAIL_NEW_RESULT;
-       }
-
-       if (commentList[currentMove] != NULL) {
-           cmailCommentList[lastLoadGameNumber - 1]
-             = StrSave(commentList[currentMove]);
-       }
-       safeStrCpy(cmailMove[lastLoadGameNumber - 1], moveList[currentMove - 1], sizeof(cmailMove[lastLoadGameNumber - 1])/sizeof(cmailMove[lastLoadGameNumber - 1][0]));
-
-       if (appData.debugMode)
-         fprintf(debugFP, "Saving %s for game %d\n",
-                 cmailMove[lastLoadGameNumber - 1], lastLoadGameNumber);
-
-       snprintf(string, MSG_SIZ, "%s.game.out.%d", appData.cmailGameName, lastLoadGameNumber);
-
-       f = fopen(string, "w");
-       if (appData.oldSaveStyle) {
-           SaveGameOldStyle(f); /* also closes the file */
-
-           snprintf(string, MSG_SIZ, "%s.pos.out", appData.cmailGameName);
-           f = fopen(string, "w");
-           SavePosition(f, 0, NULL); /* also closes the file */
-       } else {
-           fprintf(f, "{--------------\n");
-           PrintPosition(f, currentMove);
-           fprintf(f, "--------------}\n\n");
-
-           SaveGame(f, 0, NULL); /* also closes the file*/
-       }
-
-       cmailMoveRegistered[lastLoadGameNumber - 1] = TRUE;
-       nCmailMovesRegistered ++;
-    } else if (nCmailGames == 1) {
-       DisplayError(_("You have not made a move yet"), 0);
-       return FALSE;
-    }
-
-    return TRUE;
-}
-
-void
-MailMoveEvent ()
-{
-#if !WIN32
-    static char *partCommandString = "cmail -xv%s -remail -game %s 2>&1";
-    FILE *commandOutput;
-    char buffer[MSG_SIZ], msg[MSG_SIZ], string[MSG_SIZ];
-    int nBytes = 0;            /*  Suppress warnings on uninitialized variables    */
-    int nBuffers;
-    int i;
-    int archived;
-    char *arcDir;
-
-    if (! cmailMsgLoaded) {
-       DisplayError(_("The cmail message is not loaded.\nUse Reload CMail Message and make your move again."), 0);
-       return;
-    }
-
-    if (nCmailGames == nCmailResults) {
-       DisplayError(_("No unfinished games"), 0);
-       return;
-    }
-
-#if CMAIL_PROHIBIT_REMAIL
-    if (cmailMailedMove) {
-      snprintf(msg, MSG_SIZ, _("You have already mailed a move.\nWait until a move arrives from your opponent.\nTo resend the same move, type\n\"cmail -remail -game %s\"\non the command line."), appData.cmailGameName);
-       DisplayError(msg, 0);
-       return;
-    }
-#endif
-
-    if (! (cmailMailedMove || RegisterMove())) return;
-
-    if (   cmailMailedMove
-       || (nCmailMovesRegistered + nCmailResults == nCmailGames)) {
-      snprintf(string, MSG_SIZ, partCommandString,
-              appData.debugMode ? " -v" : "", appData.cmailGameName);
-       commandOutput = popen(string, "r");
-
-       if (commandOutput == NULL) {
-           DisplayError(_("Failed to invoke cmail"), 0);
-       } else {
-           for (nBuffers = 0; (! feof(commandOutput)); nBuffers ++) {
-               nBytes = fread(buffer, 1, MSG_SIZ - 1, commandOutput);
-           }
-           if (nBuffers > 1) {
-               (void) memcpy(msg, buffer + nBytes, MSG_SIZ - nBytes - 1);
-               (void) memcpy(msg + MSG_SIZ - nBytes - 1, buffer, nBytes);
-               nBytes = MSG_SIZ - 1;
-           } else {
-               (void) memcpy(msg, buffer, nBytes);
-           }
-           *(msg + nBytes) = '\0'; /* \0 for end-of-string*/
-
-           if(StrStr(msg, "Mailed cmail message to ") != NULL) {
-               cmailMailedMove = TRUE; /* Prevent >1 moves    */
-
-               archived = TRUE;
-               for (i = 0; i < nCmailGames; i ++) {
-                   if (cmailResult[i] == CMAIL_NOT_RESULT) {
-                       archived = FALSE;
-                   }
-               }
-               if (   archived
-                   && (   (arcDir = (char *) getenv("CMAIL_ARCDIR"))
-                       != NULL)) {
-                 snprintf(buffer, MSG_SIZ, "%s/%s.%s.archive",
-                          arcDir,
-                          appData.cmailGameName,
-                          gameInfo.date);
-                   LoadGameFromFile(buffer, 1, buffer, FALSE);
-                   cmailMsgLoaded = FALSE;
-               }
-           }
-
-           DisplayInformation(msg);
-           pclose(commandOutput);
-       }
-    } else {
-       if ((*cmailMsg) != '\0') {
-           DisplayInformation(cmailMsg);
-       }
-    }
-
-    return;
-#endif /* !WIN32 */
-}
-
-char *
-CmailMsg ()
-{
-#if WIN32
-    return NULL;
-#else
-    int  prependComma = 0;
-    char number[5];
-    char string[MSG_SIZ];      /* Space for game-list */
-    int  i;
-
-    if (!cmailMsgLoaded) return "";
-
-    if (cmailMailedMove) {
-      snprintf(cmailMsg, MSG_SIZ, _("Waiting for reply from opponent\n"));
-    } else {
-       /* Create a list of games left */
-      snprintf(string, MSG_SIZ, "[");
-       for (i = 0; i < nCmailGames; i ++) {
-           if (! (   cmailMoveRegistered[i]
-                  || (cmailResult[i] == CMAIL_OLD_RESULT))) {
-               if (prependComma) {
-                   snprintf(number, sizeof(number)/sizeof(number[0]), ",%d", i + 1);
-               } else {
-                   snprintf(number, sizeof(number)/sizeof(number[0]), "%d", i + 1);
-                   prependComma = 1;
-               }
-
-               strcat(string, number);
-           }
-       }
-       strcat(string, "]");
-
-       if (nCmailMovesRegistered + nCmailResults == 0) {
-           switch (nCmailGames) {
-             case 1:
-               snprintf(cmailMsg, MSG_SIZ, _("Still need to make move for game\n"));
-               break;
-
-             case 2:
-               snprintf(cmailMsg, MSG_SIZ, _("Still need to make moves for both games\n"));
-               break;
-
-             default:
-               snprintf(cmailMsg, MSG_SIZ, _("Still need to make moves for all %d games\n"),
-                        nCmailGames);
-               break;
-           }
-       } else {
-           switch (nCmailGames - nCmailMovesRegistered - nCmailResults) {
-             case 1:
-               snprintf(cmailMsg, MSG_SIZ, _("Still need to make a move for game %s\n"),
-                        string);
-               break;
-
-             case 0:
-               if (nCmailResults == nCmailGames) {
-                 snprintf(cmailMsg, MSG_SIZ, _("No unfinished games\n"));
-               } else {
-                 snprintf(cmailMsg, MSG_SIZ, _("Ready to send mail\n"));
-               }
-               break;
-
-             default:
-               snprintf(cmailMsg, MSG_SIZ, _("Still need to make moves for games %s\n"),
-                        string);
-           }
-       }
-    }
-    return cmailMsg;
-#endif /* WIN32 */
-}
-
-void
-ResetGameEvent ()
-{
-    if (gameMode == Training)
-      SetTrainingModeOff();
-
-    Reset(TRUE, TRUE);
-    cmailMsgLoaded = FALSE;
-    if (appData.icsActive) {
-      SendToICS(ics_prefix);
-      SendToICS("refresh\n");
-    }
-}
-
-void
-ExitEvent (int status)
-{
-    exiting++;
-    if (exiting > 2) {
-      /* Give up on clean exit */
-      exit(status);
-    }
-    if (exiting > 1) {
-      /* Keep trying for clean exit */
-      return;
-    }
-
-    if (appData.icsActive) printf("\n"); // [HGM] end on new line after closing XBoard
-    if (appData.icsActive && appData.colorize) Colorize(ColorNone, FALSE);
-
-    if (telnetISR != NULL) {
-      RemoveInputSource(telnetISR);
-    }
-    if (icsPR != NoProc) {
-      DestroyChildProcess(icsPR, TRUE);
-    }
-
-    /* [HGM] crash: leave writing PGN and position entirely to GameEnds() */
-    GameEnds(gameInfo.result, gameInfo.resultDetails==NULL ? "xboard exit" : gameInfo.resultDetails, GE_PLAYER);
-
-    /* [HGM] crash: the above GameEnds() is a dud if another one was running */
-    /* make sure this other one finishes before killing it!                  */
-    if(endingGame) { int count = 0;
-        if(appData.debugMode) fprintf(debugFP, "ExitEvent() during GameEnds(), wait\n");
-        while(endingGame && count++ < 10) DoSleep(1);
-        if(appData.debugMode && endingGame) fprintf(debugFP, "GameEnds() seems stuck, proceed exiting\n");
-    }
-
-    /* Kill off chess programs */
-    if (first.pr != NoProc) {
-       ExitAnalyzeMode();
-
-        DoSleep( appData.delayBeforeQuit );
-       SendToProgram("quit\n", &first);
-       DestroyChildProcess(first.pr, 4 + first.useSigterm /* [AS] first.useSigterm */ );
-    }
-    if (second.pr != NoProc) {
-        DoSleep( appData.delayBeforeQuit );
-       SendToProgram("quit\n", &second);
-       DestroyChildProcess(second.pr, 4 + second.useSigterm /* [AS] second.useSigterm */ );
-    }
-    if (first.isr != NULL) {
-       RemoveInputSource(first.isr);
-    }
-    if (second.isr != NULL) {
-       RemoveInputSource(second.isr);
-    }
-
-    if (pairing.pr != NoProc) SendToProgram("quit\n", &pairing);
-    if (pairing.isr != NULL) RemoveInputSource(pairing.isr);
-
-    ShutDownFrontEnd();
-    exit(status);
-}
-
-void
-PauseEngine (ChessProgramState *cps)
-{
-    SendToProgram("pause\n", cps);
-    cps->pause = 2;
-}
-
-void
-UnPauseEngine (ChessProgramState *cps)
-{
-    SendToProgram("resume\n", cps);
-    cps->pause = 1;
-}
-
-void
-PauseEvent ()
-{
-    if (appData.debugMode)
-       fprintf(debugFP, "PauseEvent(): pausing %d\n", pausing);
-    if (pausing) {
-       pausing = FALSE;
-       ModeHighlight();
-       if(stalledEngine) { // [HGM] pause: resume game by releasing withheld move
-           StartClocks();
-           if(gameMode == TwoMachinesPlay) { // we might have to make the opponent resume pondering
-               if(stalledEngine->other->pause == 2) UnPauseEngine(stalledEngine->other);
-               else if(appData.ponderNextMove) SendToProgram("hard\n", stalledEngine->other);
-           }
-           if(appData.ponderNextMove) SendToProgram("hard\n", stalledEngine);
-           HandleMachineMove(stashedInputMove, stalledEngine);
-           stalledEngine = NULL;
-           return;
-       }
-       if (gameMode == MachinePlaysWhite ||
-           gameMode == TwoMachinesPlay   ||
-           gameMode == MachinePlaysBlack) { // the thinking engine must have used pause mode, or it would have been stalledEngine
-           if(first.pause)  UnPauseEngine(&first);
-           else if(appData.ponderNextMove) SendToProgram("hard\n", &first);
-           if(second.pause) UnPauseEngine(&second);
-           else if(gameMode == TwoMachinesPlay && appData.ponderNextMove) SendToProgram("hard\n", &second);
-           StartClocks();
-       } else {
-           DisplayBothClocks();
-       }
-       if (gameMode == PlayFromGameFile) {
-           if (appData.timeDelay >= 0)
-               AutoPlayGameLoop();
-       } else if (gameMode == IcsExamining && pauseExamInvalid) {
-           Reset(FALSE, TRUE);
-           SendToICS(ics_prefix);
-           SendToICS("refresh\n");
-       } else if (currentMove < forwardMostMove && gameMode != AnalyzeMode) {
-           ForwardInner(forwardMostMove);
-       }
-       pauseExamInvalid = FALSE;
-    } else {
-       switch (gameMode) {
-         default:
-           return;
-         case IcsExamining:
-           pauseExamForwardMostMove = forwardMostMove;
-           pauseExamInvalid = FALSE;
-           /* fall through */
-         case IcsObserving:
-         case IcsPlayingWhite:
-         case IcsPlayingBlack:
-           pausing = TRUE;
-           ModeHighlight();
-           return;
-         case PlayFromGameFile:
-           (void) StopLoadGameTimer();
-           pausing = TRUE;
-           ModeHighlight();
-           break;
-         case BeginningOfGame:
-           if (appData.icsActive) return;
-           /* else fall through */
-         case MachinePlaysWhite:
-         case MachinePlaysBlack:
-         case TwoMachinesPlay:
-           if (forwardMostMove == 0)
-             return;           /* don't pause if no one has moved */
-           if(gameMode == TwoMachinesPlay) { // [HGM] pause: stop clocks if engine can be paused immediately
-               ChessProgramState *onMove = (WhiteOnMove(forwardMostMove) == (first.twoMachinesColor[0] == 'w') ? &first : &second);
-               if(onMove->pause) {           // thinking engine can be paused
-                   PauseEngine(onMove);      // do it
-                   if(onMove->other->pause)  // pondering opponent can always be paused immediately
-                       PauseEngine(onMove->other);
-                   else
-                       SendToProgram("easy\n", onMove->other);
-                   StopClocks();
-               } else if(appData.ponderNextMove) SendToProgram("easy\n", onMove); // pre-emptively bring out of ponder
-           } else if(gameMode == (WhiteOnMove(forwardMostMove) ? MachinePlaysWhite : MachinePlaysBlack)) { // engine on move
-               if(first.pause) {
-                   PauseEngine(&first);
-                   StopClocks();
-               } else if(appData.ponderNextMove) SendToProgram("easy\n", &first); // pre-emptively bring out of ponder
-           } else { // human on move, pause pondering by either method
-               if(first.pause)
-                   PauseEngine(&first);
-               else if(appData.ponderNextMove)
-                   SendToProgram("easy\n", &first);
-               StopClocks();
-           }
-           // if no immediate pausing is possible, wait for engine to move, and stop clocks then
-         case AnalyzeMode:
-           pausing = TRUE;
-           ModeHighlight();
-           break;
-       }
-    }
-}
-
-void
-EditCommentEvent ()
-{
-    char title[MSG_SIZ];
-
-    if (currentMove < 1 || parseList[currentMove - 1][0] == NULLCHAR) {
-      safeStrCpy(title, _("Edit comment"), sizeof(title)/sizeof(title[0]));
-    } else {
-      snprintf(title, MSG_SIZ, _("Edit comment on %d.%s%s"), (currentMove - 1) / 2 + 1,
-              WhiteOnMove(currentMove - 1) ? " " : ".. ",
-              parseList[currentMove - 1]);
-    }
-
-    EditCommentPopUp(currentMove, title, commentList[currentMove]);
-}
-
-
-void
-EditTagsEvent ()
-{
-    char *tags = PGNTags(&gameInfo);
-    bookUp = FALSE;
-    EditTagsPopUp(tags, NULL);
-    free(tags);
-}
-
-void
-ToggleSecond ()
-{
-  if(second.analyzing) {
-    SendToProgram("exit\n", &second);
-    second.analyzing = FALSE;
-  } else {
-    if (second.pr == NoProc) StartChessProgram(&second);
-    InitChessProgram(&second, FALSE);
-    FeedMovesToProgram(&second, currentMove);
-
-    SendToProgram("analyze\n", &second);
-    second.analyzing = TRUE;
-  }
-}
-
-/* Toggle ShowThinking */
-void
-ToggleShowThinking()
-{
-  appData.showThinking = !appData.showThinking;
-  ShowThinkingEvent();
-}
-
-int
-AnalyzeModeEvent ()
-{
-    char buf[MSG_SIZ];
-
-    if (!first.analysisSupport) {
-      snprintf(buf, sizeof(buf), _("%s does not support analysis"), first.tidy);
-      DisplayError(buf, 0);
-      return 0;
-    }
-    /* [DM] icsEngineAnalyze [HGM] This is horrible code; reverse the gameMode and isEngineAnalyze tests! */
-    if (appData.icsActive) {
-        if (gameMode != IcsObserving) {
-         snprintf(buf, MSG_SIZ, _("You are not observing a game"));
-            DisplayError(buf, 0);
-            /* secure check */
-            if (appData.icsEngineAnalyze) {
-                if (appData.debugMode)
-                    fprintf(debugFP, "Found unexpected active ICS engine analyze \n");
-                ExitAnalyzeMode();
-                ModeHighlight();
-            }
-            return 0;
-        }
-        /* if enable, user wants to disable icsEngineAnalyze */
-        if (appData.icsEngineAnalyze) {
-                ExitAnalyzeMode();
-                ModeHighlight();
-                return 0;
-        }
-        appData.icsEngineAnalyze = TRUE;
-        if (appData.debugMode)
-            fprintf(debugFP, "ICS engine analyze starting... \n");
-    }
-
-    if (gameMode == AnalyzeMode) { ToggleSecond(); return 0; }
-    if (appData.noChessProgram || gameMode == AnalyzeMode)
-      return 0;
-
-    if (gameMode != AnalyzeFile) {
-        if (!appData.icsEngineAnalyze) {
-               EditGameEvent();
-               if (gameMode != EditGame) return 0;
-        }
-       if (!appData.showThinking) ToggleShowThinking();
-       ResurrectChessProgram();
-       SendToProgram("analyze\n", &first);
-       first.analyzing = TRUE;
-       /*first.maybeThinking = TRUE;*/
-       first.maybeThinking = FALSE; /* avoid killing GNU Chess */
-       EngineOutputPopUp();
-    }
-    if (!appData.icsEngineAnalyze) {
-       gameMode = AnalyzeMode;
-       ClearEngineOutputPane(0); // [TK] exclude: to print exclusion/multipv header
-    }
-    pausing = FALSE;
-    ModeHighlight();
-    SetGameInfo();
-
-    StartAnalysisClock();
-    GetTimeMark(&lastNodeCountTime);
-    lastNodeCount = 0;
-    return 1;
-}
-
-void
-AnalyzeFileEvent ()
-{
-    if (appData.noChessProgram || gameMode == AnalyzeFile)
-      return;
-
-    if (!first.analysisSupport) {
-      char buf[MSG_SIZ];
-      snprintf(buf, sizeof(buf), _("%s does not support analysis"), first.tidy);
-      DisplayError(buf, 0);
-      return;
-    }
-
-    if (gameMode != AnalyzeMode) {
-       keepInfo = 1; // mere annotating should not alter PGN tags
-       EditGameEvent();
-       keepInfo = 0;
-       if (gameMode != EditGame) return;
-       if (!appData.showThinking) ToggleShowThinking();
-       ResurrectChessProgram();
-       SendToProgram("analyze\n", &first);
-       first.analyzing = TRUE;
-       /*first.maybeThinking = TRUE;*/
-       first.maybeThinking = FALSE; /* avoid killing GNU Chess */
-       EngineOutputPopUp();
-    }
-    gameMode = AnalyzeFile;
-    pausing = FALSE;
-    ModeHighlight();
-
-    StartAnalysisClock();
-    GetTimeMark(&lastNodeCountTime);
-    lastNodeCount = 0;
-    if(appData.timeDelay > 0) StartLoadGameTimer((long)(1000.0f * appData.timeDelay));
-    AnalysisPeriodicEvent(1);
-}
-
-void
-MachineWhiteEvent ()
-{
-    char buf[MSG_SIZ];
-    char *bookHit = NULL;
-
-    if (appData.noChessProgram || (gameMode == MachinePlaysWhite))
-      return;
-
-
-    if (gameMode == PlayFromGameFile ||
-       gameMode == TwoMachinesPlay  ||
-       gameMode == Training         ||
-       gameMode == AnalyzeMode      ||
-       gameMode == EndOfGame)
-       EditGameEvent();
-
-    if (gameMode == EditPosition)
-        EditPositionDone(TRUE);
-
-    if (!WhiteOnMove(currentMove)) {
-       DisplayError(_("It is not White's turn"), 0);
-       return;
-    }
-
-    if (gameMode == AnalyzeMode || gameMode == AnalyzeFile)
-      ExitAnalyzeMode();
-
-    if (gameMode == EditGame || gameMode == AnalyzeMode ||
-       gameMode == AnalyzeFile)
-       TruncateGame();
-
-    ResurrectChessProgram();   /* in case it isn't running */
-    if(gameMode == BeginningOfGame) { /* [HGM] time odds: to get right odds in human mode */
-       gameMode = MachinePlaysWhite;
-       ResetClocks();
-    } else
-    gameMode = MachinePlaysWhite;
-    pausing = FALSE;
-    ModeHighlight();
-    SetGameInfo();
-    snprintf(buf, MSG_SIZ, "%s %s %s", gameInfo.white, _("vs."), gameInfo.black);
-    DisplayTitle(buf);
-    if (first.sendName) {
-      snprintf(buf, MSG_SIZ, "name %s\n", gameInfo.black);
-      SendToProgram(buf, &first);
-    }
-    if (first.sendTime) {
-      if (first.useColors) {
-       SendToProgram("black\n", &first); /*gnu kludge*/
-      }
-      SendTimeRemaining(&first, TRUE);
-    }
-    if (first.useColors) {
-      SendToProgram("white\n", &first); // [HGM] book: send 'go' separately
-    }
-    bookHit = SendMoveToBookUser(forwardMostMove-1, &first, TRUE); // [HGM] book: send go or retrieve book move
-    SetMachineThinkingEnables();
-    first.maybeThinking = TRUE;
-    StartClocks();
-    firstMove = FALSE;
-
-    if (appData.autoFlipView && !flipView) {
-      flipView = !flipView;
-      DrawPosition(FALSE, NULL);
-      DisplayBothClocks();       // [HGM] logo: clocks might have to be exchanged;
-    }
-
-    if(bookHit) { // [HGM] book: simulate book reply
-       static char bookMove[MSG_SIZ]; // a bit generous?
-
-       programStats.nodes = programStats.depth = programStats.time =
-       programStats.score = programStats.got_only_move = 0;
-       sprintf(programStats.movelist, "%s (xbook)", bookHit);
-
-       safeStrCpy(bookMove, "move ", sizeof(bookMove)/sizeof(bookMove[0]));
-       strcat(bookMove, bookHit);
-       HandleMachineMove(bookMove, &first);
-    }
-}
-
-void
-MachineBlackEvent ()
-{
-  char buf[MSG_SIZ];
-  char *bookHit = NULL;
-
-    if (appData.noChessProgram || (gameMode == MachinePlaysBlack))
-       return;
-
-
-    if (gameMode == PlayFromGameFile ||
-       gameMode == TwoMachinesPlay  ||
-       gameMode == Training         ||
-       gameMode == AnalyzeMode      ||
-       gameMode == EndOfGame)
-        EditGameEvent();
-
-    if (gameMode == EditPosition)
-        EditPositionDone(TRUE);
-
-    if (WhiteOnMove(currentMove)) {
-       DisplayError(_("It is not Black's turn"), 0);
-       return;
-    }
-
-    if (gameMode == AnalyzeMode || gameMode == AnalyzeFile)
-      ExitAnalyzeMode();
-
-    if (gameMode == EditGame || gameMode == AnalyzeMode ||
-       gameMode == AnalyzeFile)
-       TruncateGame();
-
-    ResurrectChessProgram();   /* in case it isn't running */
-    gameMode = MachinePlaysBlack;
-    pausing = FALSE;
-    ModeHighlight();
-    SetGameInfo();
-    snprintf(buf, MSG_SIZ, "%s %s %s", gameInfo.white, _("vs."), gameInfo.black);
-    DisplayTitle(buf);
-    if (first.sendName) {
-      snprintf(buf, MSG_SIZ, "name %s\n", gameInfo.white);
-      SendToProgram(buf, &first);
-    }
-    if (first.sendTime) {
-      if (first.useColors) {
-       SendToProgram("white\n", &first); /*gnu kludge*/
-      }
-      SendTimeRemaining(&first, FALSE);
-    }
-    if (first.useColors) {
-      SendToProgram("black\n", &first); // [HGM] book: 'go' sent separately
-    }
-    bookHit = SendMoveToBookUser(forwardMostMove-1, &first, TRUE); // [HGM] book: send go or retrieve book move
-    SetMachineThinkingEnables();
-    first.maybeThinking = TRUE;
-    StartClocks();
-
-    if (appData.autoFlipView && flipView) {
-      flipView = !flipView;
-      DrawPosition(FALSE, NULL);
-      DisplayBothClocks();       // [HGM] logo: clocks might have to be exchanged;
-    }
-    if(bookHit) { // [HGM] book: simulate book reply
-       static char bookMove[MSG_SIZ]; // a bit generous?
-
-       programStats.nodes = programStats.depth = programStats.time =
-       programStats.score = programStats.got_only_move = 0;
-       sprintf(programStats.movelist, "%s (xbook)", bookHit);
-
-       safeStrCpy(bookMove, "move ", sizeof(bookMove)/sizeof(bookMove[0]));
-       strcat(bookMove, bookHit);
-       HandleMachineMove(bookMove, &first);
-    }
-}
-
-
-void
-DisplayTwoMachinesTitle ()
-{
-    char buf[MSG_SIZ];
-    if (appData.matchGames > 0) {
-        if(appData.tourneyFile[0]) {
-         snprintf(buf, MSG_SIZ, "%s %s %s (%d/%d%s)",
-                  gameInfo.white, _("vs."), gameInfo.black,
-                  nextGame+1, appData.matchGames+1,
-                  appData.tourneyType>0 ? "gt" : appData.tourneyType<0 ? "sw" : "rr");
-        } else
-        if (first.twoMachinesColor[0] == 'w') {
-         snprintf(buf, MSG_SIZ, "%s %s %s (%d-%d-%d)",
-                  gameInfo.white, _("vs."),  gameInfo.black,
-                  first.matchWins, second.matchWins,
-                  matchGame - 1 - (first.matchWins + second.matchWins));
-       } else {
-         snprintf(buf, MSG_SIZ, "%s %s %s (%d-%d-%d)",
-                  gameInfo.white, _("vs."), gameInfo.black,
-                  second.matchWins, first.matchWins,
-                  matchGame - 1 - (first.matchWins + second.matchWins));
-       }
-    } else {
-      snprintf(buf, MSG_SIZ, "%s %s %s", gameInfo.white, _("vs."), gameInfo.black);
-    }
-    DisplayTitle(buf);
-}
-
-void
-SettingsMenuIfReady ()
-{
-  if (second.lastPing != second.lastPong) {
-    DisplayMessage("", _("Waiting for second chess program"));
-    ScheduleDelayedEvent(SettingsMenuIfReady, 10); // [HGM] fast: lowered from 1000
-    return;
-  }
-  ThawUI();
-  DisplayMessage("", "");
-  SettingsPopUp(&second);
-}
-
-int
-WaitForEngine (ChessProgramState *cps, DelayedEventCallback retry)
-{
-    char buf[MSG_SIZ];
-    if (cps->pr == NoProc) {
-       StartChessProgram(cps);
-       if (cps->protocolVersion == 1) {
-         retry();
-         ScheduleDelayedEvent(retry, 1); // Do this also through timeout to avoid recursive calling of 'retry'
-       } else {
-         /* kludge: allow timeout for initial "feature" command */
-         if(retry != TwoMachinesEventIfReady) FreezeUI();
-         snprintf(buf, MSG_SIZ, _("Starting %s chess program"), _(cps->which));
-         DisplayMessage("", buf);
-         ScheduleDelayedEvent(retry, FEATURE_TIMEOUT);
-       }
-       return 1;
-    }
-    return 0;
-}
-
-void
-TwoMachinesEvent P((void))
-{
-    int i;
-    char buf[MSG_SIZ];
-    ChessProgramState *onmove;
-    char *bookHit = NULL;
-    static int stalling = 0;
-    TimeMark now;
-    long wait;
-
-    if (appData.noChessProgram) return;
-
-    switch (gameMode) {
-      case TwoMachinesPlay:
-       return;
-      case MachinePlaysWhite:
-      case MachinePlaysBlack:
-       if (WhiteOnMove(forwardMostMove) == (gameMode == MachinePlaysWhite)) {
-           DisplayError(_("Wait until your turn,\nor select 'Move Now'."), 0);
-           return;
-       }
-       /* fall through */
-      case BeginningOfGame:
-      case PlayFromGameFile:
-      case EndOfGame:
-       EditGameEvent();
-       if (gameMode != EditGame) return;
-       break;
-      case EditPosition:
-       EditPositionDone(TRUE);
-       break;
-      case AnalyzeMode:
-      case AnalyzeFile:
-       ExitAnalyzeMode();
-       break;
-      case EditGame:
-      default:
-       break;
-    }
-
-//    forwardMostMove = currentMove;
-    TruncateGame(); // [HGM] vari: MachineWhite and MachineBlack do this...
-    startingEngine = TRUE;
-
-    if(!ResurrectChessProgram()) return;   /* in case first program isn't running (unbalances its ping due to InitChessProgram!) */
-
-    if(!first.initDone && GetDelayedEvent() == TwoMachinesEventIfReady) return; // [HGM] engine #1 still waiting for feature timeout
-    if(first.lastPing != first.lastPong) { // [HGM] wait till we are sure first engine has set up position
-      ScheduleDelayedEvent(TwoMachinesEventIfReady, 10);
-      return;
-    }
-  if(!appData.epd) {
-    if(WaitForEngine(&second, TwoMachinesEventIfReady)) return; // (if needed:) started up second engine, so wait for features
-
-    if(!SupportedVariant(second.variants, gameInfo.variant, gameInfo.boardWidth,
-                         gameInfo.boardHeight, gameInfo.holdingsSize, second.protocolVersion, second.tidy)) {
-       startingEngine = matchMode = FALSE;
-       DisplayError("second engine does not play this", 0);
-       gameMode = TwoMachinesPlay; ModeHighlight(); // Needed to make sure menu item is unchecked
-       EditGameEvent(); // switch back to EditGame mode
-       return;
-    }
-
-    if(!stalling) {
-      InitChessProgram(&second, FALSE); // unbalances ping of second engine
-      SendToProgram("force\n", &second);
-      stalling = 1;
-      ScheduleDelayedEvent(TwoMachinesEventIfReady, 10);
-      return;
-    }
-  }
-    GetTimeMark(&now); // [HGM] matchpause: implement match pause after engine load
-    if(appData.matchPause>10000 || appData.matchPause<10)
-                appData.matchPause = 10000; /* [HGM] make pause adjustable */
-    wait = SubtractTimeMarks(&now, &pauseStart);
-    if(wait < appData.matchPause) {
-       ScheduleDelayedEvent(TwoMachinesEventIfReady, appData.matchPause - wait);
-       return;
-    }
-    // we are now committed to starting the game
-    stalling = 0;
-    DisplayMessage("", "");
-  if(!appData.epd) {
-    if (startedFromSetupPosition) {
-       SendBoard(&second, backwardMostMove);
-    if (appData.debugMode) {
-        fprintf(debugFP, "Two Machines\n");
-    }
-    }
-    for (i = backwardMostMove; i < forwardMostMove; i++) {
-       SendMoveToProgram(i, &second);
-    }
-  }
-
-    gameMode = TwoMachinesPlay;
-    pausing = startingEngine = FALSE;
-    ModeHighlight(); // [HGM] logo: this triggers display update of logos
-    SetGameInfo();
-    DisplayTwoMachinesTitle();
-    firstMove = TRUE;
-    if ((first.twoMachinesColor[0] == 'w') == WhiteOnMove(forwardMostMove)) {
-       onmove = &first;
-    } else {
-       onmove = &second;
-    }
-    if(appData.debugMode) fprintf(debugFP, "New game (%d): %s-%s (%c)\n", matchGame, first.tidy, second.tidy, first.twoMachinesColor[0]);
-    SendToProgram(first.computerString, &first);
-    if (first.sendName) {
-      snprintf(buf, MSG_SIZ, "name %s\n", second.tidy);
-      SendToProgram(buf, &first);
-    }
-  if(!appData.epd) {
-    SendToProgram(second.computerString, &second);
-    if (second.sendName) {
-      snprintf(buf, MSG_SIZ, "name %s\n", first.tidy);
-      SendToProgram(buf, &second);
-    }
-  }
-
-    ResetClocks();
-    if (!first.sendTime || !second.sendTime) {
-       timeRemaining[0][forwardMostMove] = whiteTimeRemaining;
-       timeRemaining[1][forwardMostMove] = blackTimeRemaining;
-    }
-    if (onmove->sendTime) {
-      if (onmove->useColors) {
-       SendToProgram(onmove->other->twoMachinesColor, onmove); /*gnu kludge*/
-      }
-      SendTimeRemaining(onmove, WhiteOnMove(forwardMostMove));
-    }
-    if (onmove->useColors) {
-      SendToProgram(onmove->twoMachinesColor, onmove);
-    }
-    bookHit = SendMoveToBookUser(forwardMostMove-1, onmove, TRUE); // [HGM] book: send go or retrieve book move
-//    SendToProgram("go\n", onmove);
-    onmove->maybeThinking = TRUE;
-    SetMachineThinkingEnables();
-
-    StartClocks();
-
-    if(bookHit) { // [HGM] book: simulate book reply
-       static char bookMove[MSG_SIZ]; // a bit generous?
-
-       programStats.nodes = programStats.depth = programStats.time =
-       programStats.score = programStats.got_only_move = 0;
-       sprintf(programStats.movelist, "%s (xbook)", bookHit);
-
-       safeStrCpy(bookMove, "move ", sizeof(bookMove)/sizeof(bookMove[0]));
-       strcat(bookMove, bookHit);
-       savedMessage = bookMove; // args for deferred call
-       savedState = onmove;
-       ScheduleDelayedEvent(DeferredBookMove, 1);
-    }
-}
-
-void
-TrainingEvent ()
-{
-    if (gameMode == Training) {
-      SetTrainingModeOff();
-      gameMode = PlayFromGameFile;
-      DisplayMessage("", _("Training mode off"));
-    } else {
-      gameMode = Training;
-      animateTraining = appData.animate;
-
-      /* make sure we are not already at the end of the game */
-      if (currentMove < forwardMostMove) {
-       SetTrainingModeOn();
-       DisplayMessage("", _("Training mode on"));
-      } else {
-       gameMode = PlayFromGameFile;
-       DisplayError(_("Already at end of game"), 0);
-      }
-    }
-    ModeHighlight();
-}
-
-void
-IcsClientEvent ()
-{
-    if (!appData.icsActive) return;
-    switch (gameMode) {
-      case IcsPlayingWhite:
-      case IcsPlayingBlack:
-      case IcsObserving:
-      case IcsIdle:
-      case BeginningOfGame:
-      case IcsExamining:
-       return;
-
-      case EditGame:
-       break;
-
-      case EditPosition:
-       EditPositionDone(TRUE);
-       break;
-
-      case AnalyzeMode:
-      case AnalyzeFile:
-       ExitAnalyzeMode();
-       break;
-
-      default:
-       EditGameEvent();
-       break;
-    }
-
-    gameMode = IcsIdle;
-    ModeHighlight();
-    return;
-}
-
-void
-EditGameEvent ()
-{
-    int i;
-
-    switch (gameMode) {
-      case Training:
-       SetTrainingModeOff();
-       break;
-      case MachinePlaysWhite:
-      case MachinePlaysBlack:
-      case BeginningOfGame:
-       SendToProgram("force\n", &first);
-       if(gameMode == (forwardMostMove & 1 ? MachinePlaysBlack : MachinePlaysWhite)) { // engine is thinking
-           if (first.usePing) { // [HGM] always send ping when we might interrupt machine thinking
-               char buf[MSG_SIZ];
-               abortEngineThink = TRUE;
-               snprintf(buf, MSG_SIZ, "ping %d\n", initPing = ++first.lastPing);
-               SendToProgram(buf, &first);
-               DisplayMessage("Aborting engine think", "");
-               FreezeUI();
-           }
-       }
-       SetUserThinkingEnables();
-       break;
-      case PlayFromGameFile:
-       (void) StopLoadGameTimer();
-       if (gameFileFP != NULL) {
-           gameFileFP = NULL;
-       }
-       break;
-      case EditPosition:
-       EditPositionDone(TRUE);
-       break;
-      case AnalyzeMode:
-      case AnalyzeFile:
-       ExitAnalyzeMode();
-       SendToProgram("force\n", &first);
-       break;
-      case TwoMachinesPlay:
-       GameEnds(EndOfFile, NULL, GE_PLAYER);
-       ResurrectChessProgram();
-       SetUserThinkingEnables();
-       break;
-      case EndOfGame:
-       ResurrectChessProgram();
-       break;
-      case IcsPlayingBlack:
-      case IcsPlayingWhite:
-       DisplayError(_("Warning: You are still playing a game"), 0);
-       break;
-      case IcsObserving:
-       DisplayError(_("Warning: You are still observing a game"), 0);
-       break;
-      case IcsExamining:
-       DisplayError(_("Warning: You are still examining a game"), 0);
-       break;
-      case IcsIdle:
-       break;
-      case EditGame:
-      default:
-       return;
-    }
-
-    pausing = FALSE;
-    StopClocks();
-    first.offeredDraw = second.offeredDraw = 0;
-
-    if (gameMode == PlayFromGameFile) {
-       whiteTimeRemaining = timeRemaining[0][currentMove];
-       blackTimeRemaining = timeRemaining[1][currentMove];
-       DisplayTitle("");
-    }
-
-    if (gameMode == MachinePlaysWhite ||
-       gameMode == MachinePlaysBlack ||
-       gameMode == TwoMachinesPlay ||
-       gameMode == EndOfGame) {
-       i = forwardMostMove;
-       while (i > currentMove) {
-           SendToProgram("undo\n", &first);
-           i--;
-       }
-       if(!adjustedClock) {
-       whiteTimeRemaining = timeRemaining[0][currentMove];
-       blackTimeRemaining = timeRemaining[1][currentMove];
-       DisplayBothClocks();
-       }
-       if (whiteFlag || blackFlag) {
-           whiteFlag = blackFlag = 0;
-       }
-       DisplayTitle("");
-    }
-
-    gameMode = EditGame;
-    ModeHighlight();
-    SetGameInfo();
-}
-
-void
-EditPositionEvent ()
-{
-    int i;
-    if (gameMode == EditPosition) {
-       EditGameEvent();
-       return;
-    }
-
-    EditGameEvent();
-    if (gameMode != EditGame) return;
-
-    gameMode = EditPosition;
-    ModeHighlight();
-    SetGameInfo();
-    CopyBoard(rightsBoard, nullBoard);
-    if (currentMove > 0)
-      CopyBoard(boards[0], boards[currentMove]);
-    for(i=0; i<nrCastlingRights; i++) if(boards[0][CASTLING][i] != NoRights)
-      rightsBoard[castlingRank[i]][boards[0][CASTLING][i]] = 1; // copy remaining rights
-
-    blackPlaysFirst = !WhiteOnMove(currentMove);
-    ResetClocks();
-    currentMove = forwardMostMove = backwardMostMove = 0;
-    HistorySet(parseList, backwardMostMove, forwardMostMove, currentMove-1);
-    DisplayMove(-1);
-    if(!appData.pieceMenu) DisplayMessage(_("Click clock to clear board"), "");
-}
-
-void
-ExitAnalyzeMode ()
-{
-    /* [DM] icsEngineAnalyze - possible call from other functions */
-    if (appData.icsEngineAnalyze) {
-        appData.icsEngineAnalyze = FALSE;
-
-        DisplayMessage("",_("Close ICS engine analyze..."));
-    }
-    if (first.analysisSupport && first.analyzing) {
-      SendToBoth("exit\n");
-      first.analyzing = second.analyzing = FALSE;
-    }
-    thinkOutput[0] = NULLCHAR;
-}
-
-void
-EditPositionDone (Boolean fakeRights)
-{
-    int king = gameInfo.variant == VariantKnightmate ? WhiteUnicorn : WhiteKing;
-
-    startedFromSetupPosition = TRUE;
-    InitChessProgram(&first, FALSE);
-    if(fakeRights) { // [HGM] suppress this if we just pasted a FEN.
-      int r, f;
-      boards[0][EP_STATUS] = EP_NONE;
-      for(f=0; f<=nrCastlingRights; f++) boards[0][CASTLING][f] = NoRights;
-      for(r=BOARD_HEIGHT-1; r>=0; r--) for(f=BOARD_RGHT-1; f>=BOARD_LEFT; f--) { // first pass: Kings & e.p.
-       if(rightsBoard[r][f]) {
-         ChessSquare p = boards[0][r][f];
-         if(p == (blackPlaysFirst ? WhitePawn : BlackPawn)) boards[0][EP_STATUS] = f;
-         else if(p == king) boards[0][CASTLING][2] = f;
-         else if(p == WHITE_TO_BLACK king) boards[0][CASTLING][5] = f;
-         else rightsBoard[r][f] = 2; // mark for second pass
-       }
-      }
-      for(r=BOARD_HEIGHT-1; r>=0; r--) for(f=BOARD_RGHT-1; f>=BOARD_LEFT; f--) { // second pass: Rooks
-       if(rightsBoard[r][f] == 2) {
-         ChessSquare p = boards[0][r][f];
-         if(p == WhiteRook) boards[0][CASTLING][(f < boards[0][CASTLING][2])] = f; else
-         if(p == BlackRook) boards[0][CASTLING][(f < boards[0][CASTLING][5])+3] = f;
-       }
-      }
-    }
-    SendToProgram("force\n", &first);
-    if (blackPlaysFirst) {
-        safeStrCpy(moveList[0], "", sizeof(moveList[0])/sizeof(moveList[0][0]));
-       safeStrCpy(parseList[0], "", sizeof(parseList[0])/sizeof(parseList[0][0]));
-       currentMove = forwardMostMove = backwardMostMove = 1;
-       CopyBoard(boards[1], boards[0]);
-    } else {
-       currentMove = forwardMostMove = backwardMostMove = 0;
-    }
-    SendBoard(&first, forwardMostMove);
-    if (appData.debugMode) {
-        fprintf(debugFP, "EditPosDone\n");
-    }
-    DisplayTitle("");
-    DisplayMessage("", "");
-    timeRemaining[0][forwardMostMove] = whiteTimeRemaining;
-    timeRemaining[1][forwardMostMove] = blackTimeRemaining;
-    gameMode = EditGame;
-    ModeHighlight();
-    HistorySet(parseList, backwardMostMove, forwardMostMove, currentMove-1);
-    ClearHighlights(); /* [AS] */
-}
-
-/* Pause for `ms' milliseconds */
-/* !! Ugh, this is a kludge. Fix it sometime. --tpm */
-void
-TimeDelay (long ms)
-{
-    TimeMark m1, m2;
-
-    GetTimeMark(&m1);
-    do {
-       GetTimeMark(&m2);
-    } while (SubtractTimeMarks(&m2, &m1) < ms);
-}
-
-/* !! Ugh, this is a kludge. Fix it sometime. --tpm */
-void
-SendMultiLineToICS (char *buf)
-{
-    char temp[MSG_SIZ+1], *p;
-    int len;
-
-    len = strlen(buf);
-    if (len > MSG_SIZ)
-      len = MSG_SIZ;
-
-    strncpy(temp, buf, len);
-    temp[len] = 0;
-
-    p = temp;
-    while (*p) {
-       if (*p == '\n' || *p == '\r')
-         *p = ' ';
-       ++p;
-    }
-
-    strcat(temp, "\n");
-    SendToICS(temp);
-    SendToPlayer(temp, strlen(temp));
-}
-
-void
-SetWhiteToPlayEvent ()
-{
-    if (gameMode == EditPosition) {
-       blackPlaysFirst = FALSE;
-       DisplayBothClocks();    /* works because currentMove is 0 */
-    } else if (gameMode == IcsExamining) {
-        SendToICS(ics_prefix);
-       SendToICS("tomove white\n");
-    }
-}
-
-void
-SetBlackToPlayEvent ()
-{
-    if (gameMode == EditPosition) {
-       blackPlaysFirst = TRUE;
-       currentMove = 1;        /* kludge */
-       DisplayBothClocks();
-       currentMove = 0;
-    } else if (gameMode == IcsExamining) {
-        SendToICS(ics_prefix);
-       SendToICS("tomove black\n");
-    }
-}
-
-void
-EditPositionMenuEvent (ChessSquare selection, int x, int y)
-{
-    char buf[MSG_SIZ];
-    ChessSquare piece = boards[0][y][x];
-    static Board erasedBoard, currentBoard, menuBoard, nullBoard;
-    static int lastVariant;
-    int baseRank = BOARD_HEIGHT-1, hasRights = 0;
-
-    if (gameMode != EditPosition && gameMode != IcsExamining) return;
-
-    switch (selection) {
-      case ClearBoard:
-       fromX = fromY = killX = killY = kill2X = kill2Y = -1; // [HGM] abort any move entry in progress
-       MarkTargetSquares(1);
-       CopyBoard(currentBoard, boards[0]);
-       CopyBoard(menuBoard, initialPosition);
-       if (gameMode == IcsExamining && ics_type == ICS_FICS) {
-           SendToICS(ics_prefix);
-           SendToICS("bsetup clear\n");
-       } else if (gameMode == IcsExamining && ics_type == ICS_ICC) {
-           SendToICS(ics_prefix);
-           SendToICS("clearboard\n");
-       } else {
-            int nonEmpty = 0;
-            for (x = 0; x < BOARD_WIDTH; x++) { ChessSquare p = EmptySquare;
-               if(x == BOARD_LEFT-1 || x == BOARD_RGHT) p = (ChessSquare) 0; /* [HGM] holdings */
-                for (y = 0; y < BOARD_HEIGHT; y++) {
-                   if (gameMode == IcsExamining) {
-                       if (boards[currentMove][y][x] != EmptySquare) {
-                         snprintf(buf, MSG_SIZ, "%sx@%c%c\n", ics_prefix,
-                                    AAA + x, ONE + y);
-                           SendToICS(buf);
-                       }
-                   } else if(boards[0][y][x] != DarkSquare) {
-                       if(boards[0][y][x] != p) nonEmpty++;
-                       boards[0][y][x] = p;
-                   }
-               }
-           }
-           CopyBoard(rightsBoard, nullBoard);
-           if(gameMode != IcsExamining) { // [HGM] editpos: cycle trough boards
-               int r, i;
-               for(r = 0; r < BOARD_HEIGHT; r++) {
-                 for(x = BOARD_LEFT; x < BOARD_RGHT; x++) { // create 'menu board' by removing duplicates 
-                   ChessSquare p = menuBoard[r][x];
-                   for(y = x + 1; y < BOARD_RGHT; y++) if(menuBoard[r][y] == p) menuBoard[r][y] = EmptySquare;
-                 }
-               }
-               menuBoard[CASTLING][0] = menuBoard[CASTLING][3] = NoRights; // h-side Rook was deleted
-               DisplayMessage("Clicking clock again restores position", "");
-               if(gameInfo.variant != lastVariant) lastVariant = gameInfo.variant, CopyBoard(erasedBoard, boards[0]);
-               if(!nonEmpty) { // asked to clear an empty board
-                   CopyBoard(boards[0], menuBoard);
-               } else
-               if(CompareBoards(currentBoard, menuBoard)) { // asked to clear an empty board
-                   CopyBoard(boards[0], initialPosition);
-               } else
-               if(CompareBoards(currentBoard, initialPosition) && !CompareBoards(currentBoard, erasedBoard)
-                                                                && !CompareBoards(nullBoard, erasedBoard)) {
-                   CopyBoard(boards[0], erasedBoard);
-               } else
-                   CopyBoard(erasedBoard, currentBoard);
-
-               for(i=0; i<nrCastlingRights; i++) if(boards[0][CASTLING][i] != NoRights)
-                   rightsBoard[castlingRank[i]][boards[0][CASTLING][i]] = 1; // copy remaining rights
-           }
-       }
-       if (gameMode == EditPosition) {
-           DrawPosition(FALSE, boards[0]);
-       }
-       break;
-
-      case WhitePlay:
-       SetWhiteToPlayEvent();
-       break;
-
-      case BlackPlay:
-       SetBlackToPlayEvent();
-       break;
-
-      case EmptySquare:
-       if (gameMode == IcsExamining) {
-            if (x < BOARD_LEFT || x >= BOARD_RGHT) break; // [HGM] holdings
-            snprintf(buf, MSG_SIZ, "%sx@%c%c\n", ics_prefix, AAA + x, ONE + y);
-           SendToICS(buf);
-       } else {
-            if(x < BOARD_LEFT || x >= BOARD_RGHT) {
-                if(x == BOARD_LEFT-2) {
-                    if(y < BOARD_HEIGHT-1-gameInfo.holdingsSize) break;
-                    boards[0][y][1] = 0;
-                } else
-                if(x == BOARD_RGHT+1) {
-                    if(y >= gameInfo.holdingsSize) break;
-                    boards[0][y][BOARD_WIDTH-2] = 0;
-                } else break;
-            }
-           boards[0][y][x] = EmptySquare;
-           DrawPosition(FALSE, boards[0]);
-       }
-       break;
-
-      case PromotePiece:
-        if(piece >= (int)WhitePawn && piece < (int)WhiteMan ||
-           piece >= (int)BlackPawn && piece < (int)BlackMan   ) {
-            selection = (ChessSquare) (PROMOTED(piece));
-        } else if(piece == EmptySquare) selection = WhiteSilver;
-        else selection = (ChessSquare)((int)piece - 1);
-        goto defaultlabel;
-
-      case DemotePiece:
-        if(piece > (int)WhiteMan && piece <= (int)WhiteKing ||
-           piece > (int)BlackMan && piece <= (int)BlackKing   ) {
-            selection = (ChessSquare) (DEMOTED(piece));
-        } else if(piece == EmptySquare) selection = BlackSilver;
-        else selection = (ChessSquare)((int)piece + 1);
-        goto defaultlabel;
-
-      case WhiteQueen:
-      case BlackQueen:
-        if(gameInfo.variant == VariantShatranj ||
-           gameInfo.variant == VariantXiangqi  ||
-           gameInfo.variant == VariantCourier  ||
-           gameInfo.variant == VariantASEAN    ||
-           gameInfo.variant == VariantMakruk     )
-            selection = (ChessSquare)((int)selection - (int)WhiteQueen + (int)WhiteFerz);
-        goto defaultlabel;
-
-      case WhiteRook:
-        baseRank = 0;
-      case BlackRook:
-        if(y == baseRank && (x == BOARD_LEFT || x == BOARD_RGHT-1 || appData.fischerCastling)) hasRights = 1;
-        if(y == baseRank && (x == BOARD_WIDTH>>1 || appData.fischerCastling)) hasRights = 1;
-        goto defaultlabel;
-
-      case WhiteKing:
-        baseRank = 0;
-      case BlackKing:
-        if(gameInfo.variant == VariantXiangqi)
-            selection = (ChessSquare)((int)selection - (int)WhiteKing + (int)WhiteWazir);
-        if(gameInfo.variant == VariantKnightmate)
-            selection = (ChessSquare)((int)selection - (int)WhiteKing + (int)WhiteUnicorn);
-        if(y == baseRank && (x == BOARD_WIDTH>>1 || appData.fischerCastling)) hasRights = 1;
-      default:
-        defaultlabel:
-       if (gameMode == IcsExamining) {
-            if (x < BOARD_LEFT || x >= BOARD_RGHT) break; // [HGM] holdings
-           snprintf(buf, MSG_SIZ, "%s%c@%c%c\n", ics_prefix,
-                    PieceToChar(selection), AAA + x, ONE + y);
-           SendToICS(buf);
-       } else {
-            rightsBoard[y][x] = hasRights;
-            if(x < BOARD_LEFT || x >= BOARD_RGHT) {
-                int n;
-                if(x == BOARD_LEFT-2 && selection >= BlackPawn) {
-                    n = PieceToNumber(selection - BlackPawn);
-                    if(n >= gameInfo.holdingsSize) { n = 0; selection = BlackPawn; }
-                    boards[0][BOARD_HEIGHT-1-n][0] = selection;
-                    boards[0][BOARD_HEIGHT-1-n][1]++;
-                } else
-                if(x == BOARD_RGHT+1 && selection < BlackPawn) {
-                    n = PieceToNumber(selection);
-                    if(n >= gameInfo.holdingsSize) { n = 0; selection = WhitePawn; }
-                    boards[0][n][BOARD_WIDTH-1] = selection;
-                    boards[0][n][BOARD_WIDTH-2]++;
-                }
-            } else
-           boards[0][y][x] = selection;
-           DrawPosition(TRUE, boards[0]);
-           ClearHighlights();
-           fromX = fromY = -1;
-       }
-       break;
-    }
-}
-
-
-void
-DropMenuEvent (ChessSquare selection, int x, int y)
-{
-    ChessMove moveType;
-
-    switch (gameMode) {
-      case IcsPlayingWhite:
-      case MachinePlaysBlack:
-       if (!WhiteOnMove(currentMove)) {
-           DisplayMoveError(_("It is Black's turn"));
-           return;
-       }
-       moveType = WhiteDrop;
-       break;
-      case IcsPlayingBlack:
-      case MachinePlaysWhite:
-       if (WhiteOnMove(currentMove)) {
-           DisplayMoveError(_("It is White's turn"));
-           return;
-       }
-       moveType = BlackDrop;
-       break;
-      case EditGame:
-       moveType = WhiteOnMove(currentMove) ? WhiteDrop : BlackDrop;
-       break;
-      default:
-       return;
-    }
-
-    if (moveType == BlackDrop && selection < BlackPawn) {
-      selection = (ChessSquare) ((int) selection
-                                + (int) BlackPawn - (int) WhitePawn);
-    }
-    if (boards[currentMove][y][x] != EmptySquare) {
-       DisplayMoveError(_("That square is occupied"));
-       return;
-    }
-
-    FinishMove(moveType, (int) selection, DROP_RANK, x, y, NULLCHAR);
-}
-
-void
-AcceptEvent ()
-{
-    /* Accept a pending offer of any kind from opponent */
-
-    if (appData.icsActive) {
-        SendToICS(ics_prefix);
-       SendToICS("accept\n");
-    } else if (cmailMsgLoaded) {
-       if (currentMove == cmailOldMove &&
-           commentList[cmailOldMove] != NULL &&
-           StrStr(commentList[cmailOldMove], WhiteOnMove(cmailOldMove) ?
-                  "Black offers a draw" : "White offers a draw")) {
-           TruncateGame();
-           GameEnds(GameIsDrawn, "Draw agreed", GE_PLAYER);
-           cmailMoveType[lastLoadGameNumber - 1] = CMAIL_ACCEPT;
-       } else {
-           DisplayError(_("There is no pending offer on this move"), 0);
-           cmailMoveType[lastLoadGameNumber - 1] = CMAIL_MOVE;
-       }
-    } else {
-       /* Not used for offers from chess program */
-    }
-}
-
-void
-DeclineEvent ()
-{
-    /* Decline a pending offer of any kind from opponent */
-
-    if (appData.icsActive) {
-        SendToICS(ics_prefix);
-       SendToICS("decline\n");
-    } else if (cmailMsgLoaded) {
-       if (currentMove == cmailOldMove &&
-           commentList[cmailOldMove] != NULL &&
-           StrStr(commentList[cmailOldMove], WhiteOnMove(cmailOldMove) ?
-                  "Black offers a draw" : "White offers a draw")) {
-#ifdef NOTDEF
-           AppendComment(cmailOldMove, "Draw declined", TRUE);
-           DisplayComment(cmailOldMove - 1, "Draw declined");
-#endif /*NOTDEF*/
-       } else {
-           DisplayError(_("There is no pending offer on this move"), 0);
-       }
-    } else {
-       /* Not used for offers from chess program */
-    }
-}
-
-void
-RematchEvent ()
-{
-    /* Issue ICS rematch command */
-    if (appData.icsActive) {
-        SendToICS(ics_prefix);
-       SendToICS("rematch\n");
-    }
-}
-
-void
-CallFlagEvent ()
-{
-    /* Call your opponent's flag (claim a win on time) */
-    if (appData.icsActive) {
-        SendToICS(ics_prefix);
-       SendToICS("flag\n");
-    } else {
-       switch (gameMode) {
-         default:
-           return;
-         case MachinePlaysWhite:
-           if (whiteFlag) {
-               if (blackFlag)
-                 GameEnds(GameIsDrawn, "Both players ran out of time",
-                          GE_PLAYER);
-               else
-                 GameEnds(BlackWins, "Black wins on time", GE_PLAYER);
-           } else {
-               DisplayError(_("Your opponent is not out of time"), 0);
-           }
-           break;
-         case MachinePlaysBlack:
-           if (blackFlag) {
-               if (whiteFlag)
-                 GameEnds(GameIsDrawn, "Both players ran out of time",
-                          GE_PLAYER);
-               else
-                 GameEnds(WhiteWins, "White wins on time", GE_PLAYER);
-           } else {
-               DisplayError(_("Your opponent is not out of time"), 0);
-           }
-           break;
-       }
-    }
-}
-
-void
-ClockClick (int which)
-{      // [HGM] code moved to back-end from winboard.c
-       if(which) { // black clock
-         if (gameMode == EditPosition || gameMode == IcsExamining) {
-           if(!appData.pieceMenu && blackPlaysFirst) EditPositionMenuEvent(ClearBoard, 0, 0);
-           SetBlackToPlayEvent();
-         } else if ((gameMode == AnalyzeMode || gameMode == EditGame ||
-                     gameMode == MachinePlaysBlack && PosFlags(0) & F_NULL_MOVE && !blackFlag && !shiftKey) && WhiteOnMove(currentMove)) {
-          UserMoveEvent((int)EmptySquare, DROP_RANK, 0, 0, 0); // [HGM] multi-move: if not out of time, enters null move
-         } else if (shiftKey) {
-           AdjustClock(which, -1);
-         } else if (gameMode == IcsPlayingWhite ||
-                    gameMode == MachinePlaysBlack) {
-           CallFlagEvent();
-         }
-       } else { // white clock
-         if (gameMode == EditPosition || gameMode == IcsExamining) {
-           if(!appData.pieceMenu && !blackPlaysFirst) EditPositionMenuEvent(ClearBoard, 0, 0);
-           SetWhiteToPlayEvent();
-         } else if ((gameMode == AnalyzeMode || gameMode == EditGame ||
-                     gameMode == MachinePlaysWhite && PosFlags(0) & F_NULL_MOVE && !whiteFlag && !shiftKey) && !WhiteOnMove(currentMove)) {
-          UserMoveEvent((int)EmptySquare, DROP_RANK, 0, 0, 0); // [HGM] multi-move
-         } else if (shiftKey) {
-           AdjustClock(which, -1);
-         } else if (gameMode == IcsPlayingBlack ||
-                  gameMode == MachinePlaysWhite) {
-           CallFlagEvent();
-         }
-       }
-}
-
-void
-DrawEvent ()
-{
-    /* Offer draw or accept pending draw offer from opponent */
-
-    if (appData.icsActive) {
-       /* Note: tournament rules require draw offers to be
-          made after you make your move but before you punch
-          your clock.  Currently ICS doesn't let you do that;
-          instead, you immediately punch your clock after making
-          a move, but you can offer a draw at any time. */
-
-        SendToICS(ics_prefix);
-       SendToICS("draw\n");
-        userOfferedDraw = TRUE; // [HGM] drawclaim: also set flag in ICS play
-    } else if (cmailMsgLoaded) {
-       if (currentMove == cmailOldMove &&
-           commentList[cmailOldMove] != NULL &&
-           StrStr(commentList[cmailOldMove], WhiteOnMove(cmailOldMove) ?
-                  "Black offers a draw" : "White offers a draw")) {
-           GameEnds(GameIsDrawn, "Draw agreed", GE_PLAYER);
-           cmailMoveType[lastLoadGameNumber - 1] = CMAIL_ACCEPT;
-       } else if (currentMove == cmailOldMove + 1) {
-           char *offer = WhiteOnMove(cmailOldMove) ?
-             "White offers a draw" : "Black offers a draw";
-           AppendComment(currentMove, offer, TRUE);
-           DisplayComment(currentMove - 1, offer);
-           cmailMoveType[lastLoadGameNumber - 1] = CMAIL_DRAW;
-       } else {
-           DisplayError(_("You must make your move before offering a draw"), 0);
-           cmailMoveType[lastLoadGameNumber - 1] = CMAIL_MOVE;
-       }
-    } else if (first.offeredDraw) {
-       GameEnds(GameIsDrawn, "Draw agreed", GE_XBOARD);
-    } else {
-        if (first.sendDrawOffers) {
-           SendToProgram("draw\n", &first);
-            userOfferedDraw = TRUE;
-       }
-    }
-}
-
-void
-AdjournEvent ()
-{
-    /* Offer Adjourn or accept pending Adjourn offer from opponent */
-
-    if (appData.icsActive) {
-        SendToICS(ics_prefix);
-       SendToICS("adjourn\n");
-    } else {
-       /* Currently GNU Chess doesn't offer or accept Adjourns */
-    }
-}
-
-
-void
-AbortEvent ()
-{
-    /* Offer Abort or accept pending Abort offer from opponent */
-
-    if (appData.icsActive) {
-        SendToICS(ics_prefix);
-       SendToICS("abort\n");
-    } else {
-       GameEnds(GameUnfinished, "Game aborted", GE_PLAYER);
-    }
-}
-
-void
-ResignEvent ()
-{
-    /* Resign.  You can do this even if it's not your turn. */
-
-    if (appData.icsActive) {
-        SendToICS(ics_prefix);
-       SendToICS("resign\n");
-    } else {
-       switch (gameMode) {
-         case MachinePlaysWhite:
-           GameEnds(WhiteWins, "Black resigns", GE_PLAYER);
-           break;
-         case MachinePlaysBlack:
-           GameEnds(BlackWins, "White resigns", GE_PLAYER);
-           break;
-         case EditGame:
-           if (cmailMsgLoaded) {
-               TruncateGame();
-               if (WhiteOnMove(cmailOldMove)) {
-                   GameEnds(BlackWins, "White resigns", GE_PLAYER);
-               } else {
-                   GameEnds(WhiteWins, "Black resigns", GE_PLAYER);
-               }
-               cmailMoveType[lastLoadGameNumber - 1] = CMAIL_RESIGN;
-           }
-           break;
-         default:
-           break;
-       }
-    }
-}
-
-
-void
-StopObservingEvent ()
-{
-    /* Stop observing current games */
-    SendToICS(ics_prefix);
-    SendToICS("unobserve\n");
-}
-
-void
-StopExaminingEvent ()
-{
-    /* Stop observing current game */
-    SendToICS(ics_prefix);
-    SendToICS("unexamine\n");
-}
-
-void
-ForwardInner (int target)
-{
-    int limit; int oldSeekGraphUp = seekGraphUp;
-
-    if (appData.debugMode)
-       fprintf(debugFP, "ForwardInner(%d), current %d, forward %d\n",
-               target, currentMove, forwardMostMove);
-
-    if (gameMode == EditPosition)
-      return;
-
-    seekGraphUp = FALSE;
-    MarkTargetSquares(1);
-    fromX = fromY = killX = killY = kill2X = kill2Y = -1; // [HGM] abort any move entry in progress
-
-    if (gameMode == PlayFromGameFile && !pausing)
-      PauseEvent();
-
-    if (gameMode == IcsExamining && pausing)
-      limit = pauseExamForwardMostMove;
-    else
-      limit = forwardMostMove;
-
-    if (target > limit) target = limit;
-
-    if (target > 0 && moveList[target - 1][0]) {
-       int fromX, fromY, toX, toY;
-        toX = moveList[target - 1][2] - AAA;
-        toY = moveList[target - 1][3] - ONE;
-       if (moveList[target - 1][1] == '@') {
-           if (appData.highlightLastMove) {
-               SetHighlights(-1, -1, toX, toY);
-           }
-       } else {
-            fromX = moveList[target - 1][0] - AAA;
-            fromY = moveList[target - 1][1] - ONE;
-           if (target == currentMove + 1) {
-               if(moveList[target - 1][4] == ';') { // multi-leg
-                   killX = moveList[target - 1][5] - AAA;
-                   killY = moveList[target - 1][6] - ONE;
-               }
-               AnimateMove(boards[currentMove], fromX, fromY, toX, toY);
-               killX = killY = -1;
-           }
-           if (appData.highlightLastMove) {
-               SetHighlights(fromX, fromY, toX, toY);
-           }
-       }
-    }
-    if (gameMode == EditGame || gameMode == AnalyzeMode ||
-       gameMode == Training || gameMode == PlayFromGameFile ||
-       gameMode == AnalyzeFile) {
-       while (currentMove < target) {
-           if(second.analyzing) SendMoveToProgram(currentMove, &second);
-           SendMoveToProgram(currentMove++, &first);
-       }
-    } else {
-       currentMove = target;
-    }
-
-    if (gameMode == EditGame || gameMode == EndOfGame) {
-       whiteTimeRemaining = timeRemaining[0][currentMove];
-       blackTimeRemaining = timeRemaining[1][currentMove];
-    }
-    DisplayBothClocks();
-    DisplayMove(currentMove - 1);
-    DrawPosition(oldSeekGraphUp, boards[currentMove]);
-    HistorySet(parseList,backwardMostMove,forwardMostMove,currentMove-1);
-    if ( !matchMode && gameMode != Training) { // [HGM] PV info: routine tests if empty
-       DisplayComment(currentMove - 1, commentList[currentMove]);
-    }
-    ClearMap(); // [HGM] exclude: invalidate map
-}
-
-
-void
-ForwardEvent ()
-{
-    if (gameMode == IcsExamining && !pausing) {
-        SendToICS(ics_prefix);
-       SendToICS("forward\n");
-    } else {
-       ForwardInner(currentMove + 1);
-    }
-}
-
-void
-ToEndEvent ()
-{
-    if (gameMode == AnalyzeMode || gameMode == AnalyzeFile) {
-       /* to optimze, we temporarily turn off analysis mode while we feed
-        * the remaining moves to the engine. Otherwise we get analysis output
-        * after each move.
-        */
-        if (first.analysisSupport) {
-         SendToProgram("exit\nforce\n", &first);
-         first.analyzing = FALSE;
-       }
-    }
-
-    if (gameMode == IcsExamining && !pausing) {
-        SendToICS(ics_prefix);
-       SendToICS("forward 999999\n");
-    } else {
-       ForwardInner(forwardMostMove);
-    }
-
-    if (gameMode == AnalyzeMode || gameMode == AnalyzeFile) {
-       /* we have fed all the moves, so reactivate analysis mode */
-       SendToProgram("analyze\n", &first);
-       first.analyzing = TRUE;
-       /*first.maybeThinking = TRUE;*/
-       first.maybeThinking = FALSE; /* avoid killing GNU Chess */
-    }
-}
-
-void
-BackwardInner (int target)
-{
-    int full_redraw = TRUE; /* [AS] Was FALSE, had to change it! */
-
-    if (appData.debugMode)
-       fprintf(debugFP, "BackwardInner(%d), current %d, forward %d\n",
-               target, currentMove, forwardMostMove);
-
-    if (gameMode == EditPosition) return;
-    seekGraphUp = FALSE;
-    MarkTargetSquares(1);
-    fromX = fromY = killX = killY = kill2X = kill2Y = -1; // [HGM] abort any move entry in progress
-    if (currentMove <= backwardMostMove) {
-       ClearHighlights();
-       DrawPosition(full_redraw, boards[currentMove]);
-       return;
-    }
-    if (gameMode == PlayFromGameFile && !pausing)
-      PauseEvent();
-
-    if (moveList[target][0]) {
-       int fromX, fromY, toX, toY;
-        toX = moveList[target][2] - AAA;
-        toY = moveList[target][3] - ONE;
-       if (moveList[target][1] == '@') {
-           if (appData.highlightLastMove) {
-               SetHighlights(-1, -1, toX, toY);
-           }
-       } else {
-            fromX = moveList[target][0] - AAA;
-            fromY = moveList[target][1] - ONE;
-           if (target == currentMove - 1) {
-               AnimateMove(boards[currentMove], toX, toY, fromX, fromY);
-           }
-           if (appData.highlightLastMove) {
-               SetHighlights(fromX, fromY, toX, toY);
-           }
-       }
-    }
-    if (gameMode == EditGame || gameMode==AnalyzeMode ||
-       gameMode == PlayFromGameFile || gameMode == AnalyzeFile) {
-       while (currentMove > target) {
-           if(moveList[currentMove-1][1] == '@' && moveList[currentMove-1][0] == '@') {
-               // null move cannot be undone. Reload program with move history before it.
-               int i;
-               for(i=target; i>backwardMostMove; i--) { // seek back to start or previous null move
-                   if(moveList[i-1][1] == '@' && moveList[i-1][0] == '@') break;
-               }
-               SendBoard(&first, i);
-             if(second.analyzing) SendBoard(&second, i);
-               for(currentMove=i; currentMove<target; currentMove++) {
-                   SendMoveToProgram(currentMove, &first);
-                   if(second.analyzing) SendMoveToProgram(currentMove, &second);
-               }
-               break;
-           }
-           SendToBoth("undo\n");
-           currentMove--;
-       }
-    } else {
-       currentMove = target;
-    }
-
-    if (gameMode == EditGame || gameMode == EndOfGame) {
-       whiteTimeRemaining = timeRemaining[0][currentMove];
-       blackTimeRemaining = timeRemaining[1][currentMove];
-    }
-    DisplayBothClocks();
-    DisplayMove(currentMove - 1);
-    DrawPosition(full_redraw, boards[currentMove]);
-    HistorySet(parseList,backwardMostMove,forwardMostMove,currentMove-1);
-    // [HGM] PV info: routine tests if comment empty
-    DisplayComment(currentMove - 1, commentList[currentMove]);
-    ClearMap(); // [HGM] exclude: invalidate map
-}
-
-void
-BackwardEvent ()
-{
-    if (gameMode == IcsExamining && !pausing) {
-        SendToICS(ics_prefix);
-       SendToICS("backward\n");
-    } else {
-       BackwardInner(currentMove - 1);
-    }
-}
-
-void
-ToStartEvent ()
-{
-    if (gameMode == AnalyzeMode || gameMode == AnalyzeFile) {
-       /* to optimize, we temporarily turn off analysis mode while we undo
-        * all the moves. Otherwise we get analysis output after each undo.
-        */
-        if (first.analysisSupport) {
-         SendToProgram("exit\nforce\n", &first);
-         first.analyzing = FALSE;
-       }
-    }
-
-    if (gameMode == IcsExamining && !pausing) {
-        SendToICS(ics_prefix);
-       SendToICS("backward 999999\n");
-    } else {
-       BackwardInner(backwardMostMove);
-    }
-
-    if (gameMode == AnalyzeMode || gameMode == AnalyzeFile) {
-       /* we have fed all the moves, so reactivate analysis mode */
-       SendToProgram("analyze\n", &first);
-       first.analyzing = TRUE;
-       /*first.maybeThinking = TRUE;*/
-       first.maybeThinking = FALSE; /* avoid killing GNU Chess */
-    }
-}
-
-void
-ToNrEvent (int to)
-{
-  if (gameMode == PlayFromGameFile && !pausing) PauseEvent();
-  if (to >= forwardMostMove) to = forwardMostMove;
-  if (to <= backwardMostMove) to = backwardMostMove;
-  if (to < currentMove) {
-    BackwardInner(to);
-  } else {
-    ForwardInner(to);
-  }
-}
-
-void
-RevertEvent (Boolean annotate)
-{
-    if(PopTail(annotate)) { // [HGM] vari: restore old game tail
-       return;
-    }
-    if (gameMode != IcsExamining) {
-       DisplayError(_("You are not examining a game"), 0);
-       return;
-    }
-    if (pausing) {
-       DisplayError(_("You can't revert while pausing"), 0);
-       return;
-    }
-    SendToICS(ics_prefix);
-    SendToICS("revert\n");
-}
-
-void
-RetractMoveEvent ()
-{
-    switch (gameMode) {
-      case MachinePlaysWhite:
-      case MachinePlaysBlack:
-       if (WhiteOnMove(forwardMostMove) == (gameMode == MachinePlaysWhite)) {
-           DisplayError(_("Wait until your turn,\nor select 'Move Now'."), 0);
-           return;
-       }
-       if (forwardMostMove < 2) return;
-       currentMove = forwardMostMove = forwardMostMove - 2;
-       whiteTimeRemaining = timeRemaining[0][currentMove];
-       blackTimeRemaining = timeRemaining[1][currentMove];
-       DisplayBothClocks();
-       DisplayMove(currentMove - 1);
-       ClearHighlights();/*!! could figure this out*/
-       DrawPosition(TRUE, boards[currentMove]); /* [AS] Changed to full redraw! */
-       SendToProgram("remove\n", &first);
-       /*first.maybeThinking = TRUE;*/ /* GNU Chess does not ponder here */
-       break;
-
-      case BeginningOfGame:
-      default:
-       break;
-
-      case IcsPlayingWhite:
-      case IcsPlayingBlack:
-       if (WhiteOnMove(forwardMostMove) == (gameMode == IcsPlayingWhite)) {
-           SendToICS(ics_prefix);
-           SendToICS("takeback 2\n");
-       } else {
-           SendToICS(ics_prefix);
-           SendToICS("takeback 1\n");
-       }
-       break;
-    }
-}
-
-void
-MoveNowEvent ()
-{
-    ChessProgramState *cps;
-
-    switch (gameMode) {
-      case MachinePlaysWhite:
-       if (!WhiteOnMove(forwardMostMove)) {
-           DisplayError(_("It is your turn"), 0);
-           return;
-       }
-       cps = &first;
-       break;
-      case MachinePlaysBlack:
-       if (WhiteOnMove(forwardMostMove)) {
-           DisplayError(_("It is your turn"), 0);
-           return;
-       }
-       cps = &first;
-       break;
-      case TwoMachinesPlay:
-       if (WhiteOnMove(forwardMostMove) ==
-           (first.twoMachinesColor[0] == 'w')) {
-           cps = &first;
-       } else {
-           cps = &second;
-       }
-       break;
-      case BeginningOfGame:
-      default:
-       return;
-    }
-    SendToProgram("?\n", cps);
-}
-
-void
-TruncateGameEvent ()
-{
-    EditGameEvent();
-    if (gameMode != EditGame) return;
-    TruncateGame();
-}
-
-void
-TruncateGame ()
-{
-    CleanupTail(); // [HGM] vari: only keep current variation if we explicitly truncate
-    if (forwardMostMove > currentMove) {
-       if (gameInfo.resultDetails != NULL) {
-           free(gameInfo.resultDetails);
-           gameInfo.resultDetails = NULL;
-           gameInfo.result = GameUnfinished;
-       }
-       forwardMostMove = currentMove;
-       HistorySet(parseList, backwardMostMove, forwardMostMove,
-                  currentMove-1);
-    }
-}
-
-void
-HintEvent ()
-{
-    if (appData.noChessProgram) return;
-    switch (gameMode) {
-      case MachinePlaysWhite:
-       if (WhiteOnMove(forwardMostMove)) {
-           DisplayError(_("Wait until your turn."), 0);
-           return;
-       }
-       break;
-      case BeginningOfGame:
-      case MachinePlaysBlack:
-       if (!WhiteOnMove(forwardMostMove)) {
-           DisplayError(_("Wait until your turn."), 0);
-           return;
-       }
-       break;
-      default:
-       DisplayError(_("No hint available"), 0);
-       return;
-    }
-    SendToProgram("hint\n", &first);
-    hintRequested = TRUE;
-}
-
-int
-SaveSelected (FILE *g, int dummy, char *dummy2)
-{
-    ListGame * lg = (ListGame *) gameList.head;
-    int nItem, cnt=0;
-    FILE *f;
-
-    if( !(f = GameFile()) || ((ListGame *) gameList.tailPred)->number <= 0 ) {
-        DisplayError(_("Game list not loaded or empty"), 0);
-        return 0;
-    }
-
-    creatingBook = TRUE; // suppresses stuff during load game
-
-    /* Get list size */
-    for (nItem = 1; nItem <= ((ListGame *) gameList.tailPred)->number; nItem++){
-       if(lg->position >= 0) { // selected?
-           LoadGame(f, nItem, "", TRUE);
-           SaveGamePGN2(g); // leaves g open
-           cnt++; DoEvents();
-       }
-        lg = (ListGame *) lg->node.succ;
-    }
-
-    fclose(g);
-    creatingBook = FALSE;
-
-    return cnt;
-}
-
-void
-CreateBookEvent ()
-{
-    ListGame * lg = (ListGame *) gameList.head;
-    FILE *f, *g;
-    int nItem;
-    static int secondTime = FALSE;
-
-    if( !(f = GameFile()) || ((ListGame *) gameList.tailPred)->number <= 0 ) {
-        DisplayError(_("Game list not loaded or empty"), 0);
-        return;
-    }
-
-    if(!secondTime && (g = fopen(appData.polyglotBook, "r"))) {
-        fclose(g);
-       secondTime++;
-       DisplayNote(_("Book file exists! Try again for overwrite."));
-       return;
-    }
-
-    creatingBook = TRUE;
-    secondTime = FALSE;
-
-    /* Get list size */
-    for (nItem = 1; nItem <= ((ListGame *) gameList.tailPred)->number; nItem++){
-       if(lg->position >= 0) {
-           LoadGame(f, nItem, "", TRUE);
-           AddGameToBook(TRUE);
-           DoEvents();
-       }
-        lg = (ListGame *) lg->node.succ;
-    }
-
-    creatingBook = FALSE;
-    FlushBook();
-}
-
-void
-BookEvent ()
-{
-    if (appData.noChessProgram) return;
-    switch (gameMode) {
-      case MachinePlaysWhite:
-       if (WhiteOnMove(forwardMostMove)) {
-           DisplayError(_("Wait until your turn."), 0);
-           return;
-       }
-       break;
-      case BeginningOfGame:
-      case MachinePlaysBlack:
-       if (!WhiteOnMove(forwardMostMove)) {
-           DisplayError(_("Wait until your turn."), 0);
-           return;
-       }
-       break;
-      case EditPosition:
-       EditPositionDone(TRUE);
-       break;
-      case TwoMachinesPlay:
-       return;
-      default:
-       break;
-    }
-    SendToProgram("bk\n", &first);
-    bookOutput[0] = NULLCHAR;
-    bookRequested = TRUE;
-}
-
-void
-AboutGameEvent ()
-{
-    char *tags = PGNTags(&gameInfo);
-    TagsPopUp(tags, CmailMsg());
-    free(tags);
-}
-
-/* end button procedures */
-
-void
-PrintPosition (FILE *fp, int move)
-{
-    int i, j;
-
-    for (i = BOARD_HEIGHT - 1; i >= 0; i--) {
-        for (j = BOARD_LEFT; j < BOARD_RGHT; j++) {
-           char c = PieceToChar(boards[move][i][j]);
-           fputc(c == '?' ? '.' : c, fp);
-            fputc(j == BOARD_RGHT - 1 ? '\n' : ' ', fp);
-       }
-    }
-    if ((gameMode == EditPosition) ? !blackPlaysFirst : (move % 2 == 0))
-      fprintf(fp, "white to play\n");
-    else
-      fprintf(fp, "black to play\n");
-}
-
-void
-PrintOpponents (FILE *fp)
-{
-    if (gameInfo.white != NULL) {
-       fprintf(fp, "\t%s vs. %s\n", gameInfo.white, gameInfo.black);
-    } else {
-       fprintf(fp, "\n");
-    }
-}
-
-/* Find last component of program's own name, using some heuristics */
-void
-TidyProgramName (char *prog, char *host, char buf[MSG_SIZ])
-{
-    char *p, *q, c;
-    int local = (strcmp(host, "localhost") == 0);
-    while (!local && (p = strchr(prog, ';')) != NULL) {
-       p++;
-       while (*p == ' ') p++;
-       prog = p;
-    }
-    if (*prog == '"' || *prog == '\'') {
-       q = strchr(prog + 1, *prog);
-    } else {
-       q = strchr(prog, ' ');
-    }
-    if (q == NULL) q = prog + strlen(prog);
-    p = q;
-    while (p >= prog && *p != '/' && *p != '\\') p--;
-    p++;
-    if(p == prog && *p == '"') p++;
-    c = *q; *q = 0;
-    if (q - p >= 4 && StrCaseCmp(q - 4, ".exe") == 0) *q = c, q -= 4; else *q = c;
-    memcpy(buf, p, q - p);
-    buf[q - p] = NULLCHAR;
-    if (!local) {
-       strcat(buf, "@");
-       strcat(buf, host);
-    }
-}
-
-char *
-TimeControlTagValue ()
-{
-    char buf[MSG_SIZ];
-    if (!appData.clockMode) {
-      safeStrCpy(buf, "-", sizeof(buf)/sizeof(buf[0]));
-    } else if (movesPerSession > 0) {
-      snprintf(buf, MSG_SIZ, "%d/%ld", movesPerSession, timeControl/1000);
-    } else if (timeIncrement == 0) {
-      snprintf(buf, MSG_SIZ, "%ld", timeControl/1000);
-    } else {
-      snprintf(buf, MSG_SIZ, "%ld+%ld", timeControl/1000, timeIncrement/1000);
-    }
-    return StrSave(buf);
-}
-
-void
-SetGameInfo ()
-{
-    /* This routine is used only for certain modes */
-    VariantClass v = gameInfo.variant;
-    ChessMove r = GameUnfinished;
-    char *p = NULL;
-
-    if(keepInfo) return;
-
-    if(gameMode == EditGame) { // [HGM] vari: do not erase result on EditGame
-       r = gameInfo.result;
-       p = gameInfo.resultDetails;
-       gameInfo.resultDetails = NULL;
-    }
-    ClearGameInfo(&gameInfo);
-    gameInfo.variant = v;
-
-    switch (gameMode) {
-      case MachinePlaysWhite:
-       gameInfo.event = StrSave( appData.pgnEventHeader );
-       gameInfo.site = StrSave(HostName());
-       gameInfo.date = PGNDate();
-       gameInfo.round = StrSave("-");
-       gameInfo.white = StrSave(first.tidy);
-       gameInfo.black = StrSave(UserName());
-       gameInfo.timeControl = TimeControlTagValue();
-       break;
-
-      case MachinePlaysBlack:
-       gameInfo.event = StrSave( appData.pgnEventHeader );
-       gameInfo.site = StrSave(HostName());
-       gameInfo.date = PGNDate();
-       gameInfo.round = StrSave("-");
-       gameInfo.white = StrSave(UserName());
-       gameInfo.black = StrSave(first.tidy);
-       gameInfo.timeControl = TimeControlTagValue();
-       break;
-
-      case TwoMachinesPlay:
-       gameInfo.event = StrSave( appData.pgnEventHeader );
-       gameInfo.site = StrSave(HostName());
-       gameInfo.date = PGNDate();
-       if (roundNr > 0) {
-           char buf[MSG_SIZ];
-           snprintf(buf, MSG_SIZ, "%d", roundNr);
-           gameInfo.round = StrSave(buf);
-       } else {
-           gameInfo.round = StrSave("-");
-       }
-       if (first.twoMachinesColor[0] == 'w') {
-           gameInfo.white = StrSave(appData.pgnName[0][0] ? appData.pgnName[0] : first.tidy);
-           gameInfo.black = StrSave(appData.pgnName[1][0] ? appData.pgnName[1] : second.tidy);
-       } else {
-           gameInfo.white = StrSave(appData.pgnName[1][0] ? appData.pgnName[1] : second.tidy);
-           gameInfo.black = StrSave(appData.pgnName[0][0] ? appData.pgnName[0] : first.tidy);
-       }
-       gameInfo.timeControl = TimeControlTagValue();
-       break;
-
-      case EditGame:
-       gameInfo.event = StrSave("Edited game");
-       gameInfo.site = StrSave(HostName());
-       gameInfo.date = PGNDate();
-       gameInfo.round = StrSave("-");
-       gameInfo.white = StrSave("-");
-       gameInfo.black = StrSave("-");
-       gameInfo.result = r;
-       gameInfo.resultDetails = p;
-       break;
-
-      case EditPosition:
-       gameInfo.event = StrSave("Edited position");
-       gameInfo.site = StrSave(HostName());
-       gameInfo.date = PGNDate();
-       gameInfo.round = StrSave("-");
-       gameInfo.white = StrSave("-");
-       gameInfo.black = StrSave("-");
-       break;
-
-      case IcsPlayingWhite:
-      case IcsPlayingBlack:
-      case IcsObserving:
-      case IcsExamining:
-       break;
-
-      case PlayFromGameFile:
-       gameInfo.event = StrSave("Game from non-PGN file");
-       gameInfo.site = StrSave(HostName());
-       gameInfo.date = PGNDate();
-       gameInfo.round = StrSave("-");
-       gameInfo.white = StrSave("?");
-       gameInfo.black = StrSave("?");
-       break;
-
-      default:
-       break;
-    }
-}
-
-void
-ReplaceComment (int index, char *text)
-{
-    int len;
-    char *p;
-    float score;
-
-    if(index && sscanf(text, "%f/%d", &score, &len) == 2 &&
-       pvInfoList[index-1].depth == len &&
-       fabs(pvInfoList[index-1].score - score*100.) < 0.5 &&
-       (p = strchr(text, '\n'))) text = p; // [HGM] strip off first line with PV info, if any
-    while (*text == '\n') text++;
-    len = strlen(text);
-    while (len > 0 && text[len - 1] == '\n') len--;
-
-    if (commentList[index] != NULL)
-      free(commentList[index]);
-
-    if (len == 0) {
-       commentList[index] = NULL;
-       return;
-    }
-  if( *text == '{' && strchr(text, '}') || // [HGM] braces: if certainy malformed, put braces
-      *text == '[' && strchr(text, ']') || // otherwise hope the user knows what he is doing
-      *text == '(' && strchr(text, ')')) { // (perhaps check if this parses as comment-only?)
-    commentList[index] = (char *) malloc(len + 2);
-    strncpy(commentList[index], text, len);
-    commentList[index][len] = '\n';
-    commentList[index][len + 1] = NULLCHAR;
-  } else {
-    // [HGM] braces: if text does not start with known OK delimiter, put braces around it.
-    char *p;
-    commentList[index] = (char *) malloc(len + 7);
-    safeStrCpy(commentList[index], "{\n", 3);
-    safeStrCpy(commentList[index]+2, text, len+1);
-    commentList[index][len+2] = NULLCHAR;
-    while(p = strchr(commentList[index], '}')) *p = ')'; // kill all } to make it one comment
-    strcat(commentList[index], "\n}\n");
-  }
-}
-
-void
-CrushCRs (char *text)
-{
-  char *p = text;
-  char *q = text;
-  char ch;
-
-  do {
-    ch = *p++;
-    if (ch == '\r') continue;
-    *q++ = ch;
-  } while (ch != '\0');
-}
-
-void
-AppendComment (int index, char *text, Boolean addBraces)
-/* addBraces  tells if we should add {} */
-{
-    int oldlen, len;
-    char *old;
-
-if(appData.debugMode) fprintf(debugFP, "Append: in='%s' %d\n", text, addBraces);
-    if(addBraces == 3) addBraces = 0; else // force appending literally
-    text = GetInfoFromComment( index, text ); /* [HGM] PV time: strip PV info from comment */
-
-    CrushCRs(text);
-    while (*text == '\n') text++;
-    len = strlen(text);
-    while (len > 0 && text[len - 1] == '\n') len--;
-    text[len] = NULLCHAR;
-
-    if (len == 0) return;
-
-    if (commentList[index] != NULL) {
-      Boolean addClosingBrace = addBraces;
-       old = commentList[index];
-       oldlen = strlen(old);
-       while(commentList[index][oldlen-1] ==  '\n')
-         commentList[index][--oldlen] = NULLCHAR;
-       commentList[index] = (char *) malloc(oldlen + len + 6); // might waste 4
-       safeStrCpy(commentList[index], old, oldlen + len + 6);
-       free(old);
-       // [HGM] braces: join "{A\n}\n" + "{\nB}" as "{A\nB\n}"
-       if(commentList[index][oldlen-1] == '}' && (text[0] == '{' || addBraces == TRUE)) {
-         if(addBraces == TRUE) addBraces = FALSE; else { text++; len--; }
-         while (*text == '\n') { text++; len--; }
-         commentList[index][--oldlen] = NULLCHAR;
-      }
-       if(addBraces) strcat(commentList[index], addBraces == 2 ? "\n(" : "\n{\n");
-       else          strcat(commentList[index], "\n");
-       strcat(commentList[index], text);
-       if(addClosingBrace) strcat(commentList[index], addClosingBrace == 2 ? ")\n" : "\n}\n");
-       else          strcat(commentList[index], "\n");
-    } else {
-       commentList[index] = (char *) malloc(len + 6); // perhaps wastes 4...
-       if(addBraces)
-         safeStrCpy(commentList[index], addBraces == 2 ? "(" : "{\n", 3);
-       else commentList[index][0] = NULLCHAR;
-       strcat(commentList[index], text);
-       strcat(commentList[index], addBraces == 2 ? ")\n" : "\n");
-       if(addBraces == TRUE) strcat(commentList[index], "}\n");
-    }
-}
-
-static char *
-FindStr (char * text, char * sub_text)
-{
-    char * result = strstr( text, sub_text );
-
-    if( result != NULL ) {
-        result += strlen( sub_text );
-    }
-
-    return result;
-}
-
-/* [AS] Try to extract PV info from PGN comment */
-/* [HGM] PV time: and then remove it, to prevent it appearing twice */
-char *
-GetInfoFromComment (int index, char * text)
-{
-    char * sep = text, *p;
-
-    if( text != NULL && index > 0 ) {
-        int score = 0;
-        int depth = 0;
-        int time = -1, sec = 0, deci;
-        char * s_eval = FindStr( text, "[%eval " );
-        char * s_emt = FindStr( text, "[%emt " );
-#if 0
-        if( s_eval != NULL || s_emt != NULL ) {
-#else
-        if(0) { // [HGM] this code is not finished, and could actually be detrimental
-#endif
-            /* New style */
-            char delim;
-
-            if( s_eval != NULL ) {
-                if( sscanf( s_eval, "%d,%d%c", &score, &depth, &delim ) != 3 ) {
-                    return text;
-                }
-
-                if( delim != ']' ) {
-                    return text;
-                }
-            }
-
-            if( s_emt != NULL ) {
-            }
-               return text;
-        }
-        else {
-            /* We expect something like: [+|-]nnn.nn/dd */
-            int score_lo = 0;
-
-            if(*text != '{') return text; // [HGM] braces: must be normal comment
-
-            sep = strchr( text, '/' );
-            if( sep == NULL || sep < (text+4) ) {
-                return text;
-            }
-
-            p = text;
-            if(!strncmp(p+1, "final score ", 12)) p += 12, index++; else
-            if(p[1] == '(') { // comment starts with PV
-               p = strchr(p, ')'); // locate end of PV
-               if(p == NULL || sep < p+5) return text;
-               // at this point we have something like "{(.*) +0.23/6 ..."
-               p = text; while(*++p != ')') p[-1] = *p; p[-1] = ')';
-               *p = '\n'; while(*p == ' ' || *p == '\n') p++; *--p = '{';
-               // we now moved the brace to behind the PV: "(.*) {+0.23/6 ..."
-            }
-            time = -1; sec = -1; deci = -1;
-            if( sscanf( p+1, "%d.%d/%d %d:%d", &score, &score_lo, &depth, &time, &sec ) != 5 &&
-               sscanf( p+1, "%d.%d/%d %d.%d", &score, &score_lo, &depth, &time, &deci ) != 5 &&
-                sscanf( p+1, "%d.%d/%d %d", &score, &score_lo, &depth, &time ) != 4 &&
-                sscanf( p+1, "%d.%d/%d", &score, &score_lo, &depth ) != 3   ) {
-                return text;
-            }
-
-            if( score_lo < 0 || score_lo >= 100 ) {
-                return text;
-            }
-
-            if(sec >= 0) time = 600*time + 10*sec; else
-            if(deci >= 0) time = 10*time + deci; else time *= 10; // deci-sec
-
-            score = score > 0 || !score & p[1] != '-' ? score*100 + score_lo : score*100 - score_lo;
-
-            /* [HGM] PV time: now locate end of PV info */
-            while( *++sep >= '0' && *sep <= '9'); // strip depth
-            if(time >= 0)
-            while( *++sep >= '0' && *sep <= '9' || *sep == '\n'); // strip time
-            if(sec >= 0)
-            while( *++sep >= '0' && *sep <= '9'); // strip seconds
-            if(deci >= 0)
-            while( *++sep >= '0' && *sep <= '9'); // strip fractional seconds
-            while(*sep == ' ' || *sep == '\n' || *sep == '\r') sep++;
-        }
-
-        if( depth <= 0 ) {
-            return text;
-        }
-
-        if( time < 0 ) {
-            time = -1;
-        }
-
-        pvInfoList[index-1].depth = depth;
-        pvInfoList[index-1].score = score;
-        pvInfoList[index-1].time  = 10*time; // centi-sec
-        if(*sep == '}') *sep = 0; else *--sep = '{';
-        if(p != text) {
-            while(*p++ = *sep++)
-                                ;
-            sep = text;
-        } // squeeze out space between PV and comment, and return both
-    }
-    return sep;
-}
-
-void
-SendToProgram (char *message, ChessProgramState *cps)
-{
-    int count, outCount, error;
-    char buf[MSG_SIZ];
-
-    if (cps->pr == NoProc) return;
-    Attention(cps);
-
-    if (appData.debugMode) {
-       TimeMark now;
-       GetTimeMark(&now);
-       fprintf(debugFP, "%ld >%-6s: %s",
-               SubtractTimeMarks(&now, &programStartTime),
-               cps->which, message);
-       if(serverFP)
-           fprintf(serverFP, "%ld >%-6s: %s",
-               SubtractTimeMarks(&now, &programStartTime),
-               cps->which, message), fflush(serverFP);
-    }
-
-    count = strlen(message);
-    outCount = OutputToProcess(cps->pr, message, count, &error);
-    if (outCount < count && !exiting
-                         && !endingGame) { /* [HGM] crash: to not hang GameEnds() writing to deceased engines */
-      if(!cps->initDone) return; // [HGM] should not generate fatal error during engine load
-      snprintf(buf, MSG_SIZ, _("Error writing to %s chess program"), _(cps->which));
-        if(gameInfo.resultDetails==NULL) { /* [HGM] crash: if game in progress, give reason for abort */
-            if((signed char)boards[forwardMostMove][EP_STATUS] <= EP_DRAWS) {
-                snprintf(buf, MSG_SIZ, _("%s program exits in draw position (%s)"), _(cps->which), cps->program);
-               if(matchMode && appData.tourneyFile[0]) { cps->pr = NoProc; GameEnds(GameIsDrawn, buf, GE_XBOARD); return; }
-                gameInfo.result = GameIsDrawn; /* [HGM] accept exit as draw claim */
-            } else {
-                ChessMove res = cps->twoMachinesColor[0]=='w' ? BlackWins : WhiteWins;
-               if(matchMode && appData.tourneyFile[0]) { cps->pr = NoProc; GameEnds(res, buf, GE_XBOARD); return; }
-                gameInfo.result = res;
-            }
-            gameInfo.resultDetails = StrSave(buf);
-        }
-       if(matchMode && appData.tourneyFile[0]) { cps->pr = NoProc; return; }
-        if(!cps->userError || !appData.popupExitMessage) DisplayFatalError(buf, error, 1); else errorExitStatus = 1;
-    }
-}
-
-void
-ReceiveFromProgram (InputSourceRef isr, VOIDSTAR closure, char *message, int count, int error)
-{
-    char *end_str;
-    char buf[MSG_SIZ];
-    ChessProgramState *cps = (ChessProgramState *)closure;
-
-    if (isr != cps->isr) return; /* Killed intentionally */
-    if (count <= 0) {
-       if (count == 0) {
-           RemoveInputSource(cps->isr);
-           snprintf(buf, MSG_SIZ, _("Error: %s chess program (%s) exited unexpectedly"),
-                   _(cps->which), cps->program);
-           if(LoadError(cps->userError ? NULL : buf, cps)) return; // [HGM] should not generate fatal error during engine load
-           if(gameInfo.resultDetails==NULL) { /* [HGM] crash: if game in progress, give reason for abort */
-                if((signed char)boards[forwardMostMove][EP_STATUS] <= EP_DRAWS) {
-                    snprintf(buf, MSG_SIZ, _("%s program exits in draw position (%s)"), _(cps->which), cps->program);
-                   if(matchMode && appData.tourneyFile[0]) { cps->pr = NoProc; GameEnds(GameIsDrawn, buf, GE_XBOARD); return; }
-                    gameInfo.result = GameIsDrawn; /* [HGM] accept exit as draw claim */
-                } else {
-                    ChessMove res = cps->twoMachinesColor[0]=='w' ? BlackWins : WhiteWins;
-                   if(matchMode && appData.tourneyFile[0]) { cps->pr = NoProc; GameEnds(res, buf, GE_XBOARD); return; }
-                    gameInfo.result = res;
-                }
-                gameInfo.resultDetails = StrSave(buf);
-            }
-           if(matchMode && appData.tourneyFile[0]) { cps->pr = NoProc; return; }
-           if(!cps->userError || !appData.popupExitMessage) DisplayFatalError(buf, 0, 1); else errorExitStatus = 1;
-       } else {
-           snprintf(buf, MSG_SIZ, _("Error reading from %s chess program (%s)"),
-                   _(cps->which), cps->program);
-           RemoveInputSource(cps->isr);
-
-            /* [AS] Program is misbehaving badly... kill it */
-            if( count == -2 ) {
-                DestroyChildProcess( cps->pr, 9 );
-                cps->pr = NoProc;
-            }
-
-            if(!cps->userError || !appData.popupExitMessage) DisplayFatalError(buf, error, 1); else errorExitStatus = 1;
-       }
-       return;
-    }
-
-    if ((end_str = strchr(message, '\r')) != NULL)
-      *end_str = NULLCHAR;
-    if ((end_str = strchr(message, '\n')) != NULL)
-      *end_str = NULLCHAR;
-
-    if (appData.debugMode) {
-       TimeMark now; int print = 1;
-       char *quote = ""; char c; int i;
-
-       if(appData.engineComments != 1) { /* [HGM] debug: decide if protocol-violating output is written */
-               char start = message[0];
-               if(start >='A' && start <= 'Z') start += 'a' - 'A'; // be tolerant to capitalizing
-               if(sscanf(message, "%d%c%d%d%d", &i, &c, &i, &i, &i) != 5 &&
-                  sscanf(message, "move %c", &c)!=1  && sscanf(message, "offer%c", &c)!=1 &&
-                  sscanf(message, "resign%c", &c)!=1 && sscanf(message, "feature %c", &c)!=1 &&
-                  sscanf(message, "error %c", &c)!=1 && sscanf(message, "illegal %c", &c)!=1 &&
-                  sscanf(message, "tell%c", &c)!=1   && sscanf(message, "0-1 %c", &c)!=1 &&
-                  sscanf(message, "1-0 %c", &c)!=1   && sscanf(message, "1/2-1/2 %c", &c)!=1 &&
-                  sscanf(message, "setboard %c", &c)!=1   && sscanf(message, "setup %c", &c)!=1 &&
-                  sscanf(message, "hint: %c", &c)!=1 &&
-                  sscanf(message, "pong %c", &c)!=1   && start != '#') {
-                   quote = appData.engineComments == 2 ? "# " : "### NON-COMPLIANT! ### ";
-                   print = (appData.engineComments >= 2);
-               }
-               message[0] = start; // restore original message
-       }
-       if(print) {
-               GetTimeMark(&now);
-               fprintf(debugFP, "%ld <%-6s: %s%s\n",
-                       SubtractTimeMarks(&now, &programStartTime), cps->which,
-                       quote,
-                       message);
-               if(serverFP)
-                   fprintf(serverFP, "%ld <%-6s: %s%s\n",
-                       SubtractTimeMarks(&now, &programStartTime), cps->which,
-                       quote,
-                       message), fflush(serverFP);
-       }
-    }
-
-    /* [DM] if icsEngineAnalyze is active we block all whisper and kibitz output, because nobody want to see this */
-    if (appData.icsEngineAnalyze) {
-        if (strstr(message, "whisper") != NULL ||
-             strstr(message, "kibitz") != NULL ||
-            strstr(message, "tellics") != NULL) return;
-    }
-
-    HandleMachineMove(message, cps);
-}
-
-
-void
-SendTimeControl (ChessProgramState *cps, int mps, long tc, int inc, int sd, int st)
-{
-    char buf[MSG_SIZ];
-    int seconds;
-
-    if( timeControl_2 > 0 ) {
-        if( (gameMode == MachinePlaysBlack) || (gameMode == TwoMachinesPlay && cps->twoMachinesColor[0] == 'b') ) {
-            tc = timeControl_2;
-        }
-    }
-    tc  /= cps->timeOdds; /* [HGM] time odds: apply before telling engine */
-    inc /= cps->timeOdds;
-    st  /= cps->timeOdds;
-
-    seconds = (tc / 1000) % 60; /* [HGM] displaced to after applying odds */
-
-    if (st > 0) {
-      /* Set exact time per move, normally using st command */
-      if (cps->stKludge) {
-       /* GNU Chess 4 has no st command; uses level in a nonstandard way */
-       seconds = st % 60;
-       if (seconds == 0) {
-         snprintf(buf, MSG_SIZ, "level 1 %d\n", st/60);
-       } else {
-         snprintf(buf, MSG_SIZ, "level 1 %d:%02d\n", st/60, seconds);
-       }
-      } else {
-       snprintf(buf, MSG_SIZ, "st %d\n", st);
-      }
-    } else {
-      /* Set conventional or incremental time control, using level command */
-      if (seconds == 0) {
-       /* Note old gnuchess bug -- minutes:seconds used to not work.
-          Fixed in later versions, but still avoid :seconds
-          when seconds is 0. */
-       snprintf(buf, MSG_SIZ, "level %d %ld %g\n", mps, tc/60000, inc/1000.);
-      } else {
-       snprintf(buf, MSG_SIZ, "level %d %ld:%02d %g\n", mps, tc/60000,
-                seconds, inc/1000.);
-      }
-    }
-    SendToProgram(buf, cps);
-
-    /* Orthoganally (except for GNU Chess 4), limit time to st seconds */
-    /* Orthogonally, limit search to given depth */
-    if (sd > 0) {
-      if (cps->sdKludge) {
-       snprintf(buf, MSG_SIZ, "depth\n%d\n", sd);
-      } else {
-       snprintf(buf, MSG_SIZ, "sd %d\n", sd);
-      }
-      SendToProgram(buf, cps);
-    }
-
-    if(cps->nps >= 0) { /* [HGM] nps */
-       if(cps->supportsNPS == FALSE)
-         cps->nps = -1; // don't use if engine explicitly says not supported!
-       else {
-         snprintf(buf, MSG_SIZ, "nps %d\n", cps->nps);
-         SendToProgram(buf, cps);
-       }
-    }
-}
-
-ChessProgramState *
-WhitePlayer ()
-/* [HGM] return pointer to 'first' or 'second', depending on who plays white */
-{
-    if(gameMode == TwoMachinesPlay && first.twoMachinesColor[0] == 'b' ||
-       gameMode == BeginningOfGame || gameMode == MachinePlaysBlack)
-        return &second;
-    return &first;
-}
-
-void
-SendTimeRemaining (ChessProgramState *cps, int machineWhite)
-{
-    char message[MSG_SIZ];
-    long time, otime;
-
-    /* Note: this routine must be called when the clocks are stopped
-       or when they have *just* been set or switched; otherwise
-       it will be off by the time since the current tick started.
-    */
-    if (machineWhite) {
-       time = whiteTimeRemaining / 10;
-       otime = blackTimeRemaining / 10;
-    } else {
-       time = blackTimeRemaining / 10;
-       otime = whiteTimeRemaining / 10;
-    }
-    /* [HGM] translate opponent's time by time-odds factor */
-    otime = (otime * cps->other->timeOdds) / cps->timeOdds;
-
-    if (time <= 0) time = 1;
-    if (otime <= 0) otime = 1;
-
-    snprintf(message, MSG_SIZ, "time %ld\n", time);
-    SendToProgram(message, cps);
-
-    snprintf(message, MSG_SIZ, "otim %ld\n", otime);
-    SendToProgram(message, cps);
-}
-
-char *
-EngineDefinedVariant (ChessProgramState *cps, int n)
-{   // return name of n-th unknown variant that engine supports
-    static char buf[MSG_SIZ];
-    char *p, *s = cps->variants;
-    if(!s) return NULL;
-    do { // parse string from variants feature
-      VariantClass v;
-       p = strchr(s, ',');
-       if(p) *p = NULLCHAR;
-      v = StringToVariant(s);
-      if(v == VariantNormal && strcmp(s, "normal") && !strstr(s, "_normal")) v = VariantUnknown; // garbage is recognized as normal
-       if(v == VariantUnknown) { // non-standard variant in list of engine-supported variants
-           if(!strcmp(s, "tenjiku") || !strcmp(s, "dai") || !strcmp(s, "dada") || // ignore Alien-Edition variants
-              !strcmp(s, "maka") || !strcmp(s, "tai") || !strcmp(s, "kyoku") ||
-              !strcmp(s, "checkers") || !strcmp(s, "go") || !strcmp(s, "reversi") ||
-              !strcmp(s, "dark") || !strcmp(s, "alien") || !strcmp(s, "multi") || !strcmp(s, "amazons") ) n++;
-           if(--n < 0) safeStrCpy(buf, s, MSG_SIZ);
-       }
-       if(p) *p++ = ',';
-       if(n < 0) return buf;
-    } while(s = p);
-    return NULL;
-}
-
-int
-BoolFeature (char **p, char *name, int *loc, ChessProgramState *cps)
-{
-  char buf[MSG_SIZ];
-  int len = strlen(name);
-  int val;
-
-  if (strncmp((*p), name, len) == 0 && (*p)[len] == '=') {
-    (*p) += len + 1;
-    sscanf(*p, "%d", &val);
-    *loc = (val != 0);
-    while (**p && **p != ' ')
-      (*p)++;
-    snprintf(buf, MSG_SIZ, "accepted %s\n", name);
-    SendToProgram(buf, cps);
-    return TRUE;
-  }
-  return FALSE;
-}
-
-int
-IntFeature (char **p, char *name, int *loc, ChessProgramState *cps)
-{
-  char buf[MSG_SIZ];
-  int len = strlen(name);
-  if (strncmp((*p), name, len) == 0 && (*p)[len] == '=') {
-    (*p) += len + 1;
-    sscanf(*p, "%d", loc);
-    while (**p && **p != ' ') (*p)++;
-    snprintf(buf, MSG_SIZ, "accepted %s\n", name);
-    SendToProgram(buf, cps);
-    return TRUE;
-  }
-  return FALSE;
-}
-
-int
-StringFeature (char **p, char *name, char **loc, ChessProgramState *cps)
-{
-  char buf[MSG_SIZ];
-  int len = strlen(name);
-  if (strncmp((*p), name, len) == 0
-      && (*p)[len] == '=' && (*p)[len+1] == '\"') {
-    (*p) += len + 2;
-    ASSIGN(*loc, *p); // kludge alert: assign rest of line just to be sure allocation is large enough so that sscanf below always fits
-    sscanf(*p, "%[^\"]", *loc);
-    while (**p && **p != '\"') (*p)++;
-    if (**p == '\"') (*p)++;
-    snprintf(buf, MSG_SIZ, "accepted %s\n", name);
-    SendToProgram(buf, cps);
-    return TRUE;
-  }
-  return FALSE;
-}
-
-int
-ParseOption (Option *opt, ChessProgramState *cps)
-// [HGM] options: process the string that defines an engine option, and determine
-// name, type, default value, and allowed value range
-{
-       char *p, *q, buf[MSG_SIZ];
-       int n, min = (-1)<<31, max = 1<<31, def;
-
-       opt->target = &opt->value;   // OK for spin/slider and checkbox
-       if(p = strstr(opt->name, " -spin ")) {
-           if((n = sscanf(p, " -spin %d %d %d", &def, &min, &max)) < 3 ) return FALSE;
-           if(max < min) max = min; // enforce consistency
-           if(def < min) def = min;
-           if(def > max) def = max;
-           opt->value = def;
-           opt->min = min;
-           opt->max = max;
-           opt->type = Spin;
-       } else if((p = strstr(opt->name, " -slider "))) {
-           // for now -slider is a synonym for -spin, to already provide compatibility with future polyglots
-           if((n = sscanf(p, " -slider %d %d %d", &def, &min, &max)) < 3 ) return FALSE;
-           if(max < min) max = min; // enforce consistency
-           if(def < min) def = min;
-           if(def > max) def = max;
-           opt->value = def;
-           opt->min = min;
-           opt->max = max;
-           opt->type = Spin; // Slider;
-       } else if((p = strstr(opt->name, " -string "))) {
-           opt->textValue = p+9;
-           opt->type = TextBox;
-           opt->target = &opt->textValue;
-       } else if((p = strstr(opt->name, " -file "))) {
-           // for now -file is a synonym for -string, to already provide compatibility with future polyglots
-           opt->target = opt->textValue = p+7;
-           opt->type = FileName; // FileName;
-           opt->target = &opt->textValue;
-       } else if((p = strstr(opt->name, " -path "))) {
-           // for now -file is a synonym for -string, to already provide compatibility with future polyglots
-           opt->target = opt->textValue = p+7;
-           opt->type = PathName; // PathName;
-           opt->target = &opt->textValue;
-       } else if(p = strstr(opt->name, " -check ")) {
-           if(sscanf(p, " -check %d", &def) < 1) return FALSE;
-           opt->value = (def != 0);
-           opt->type = CheckBox;
-       } else if(p = strstr(opt->name, " -combo ")) {
-           opt->textValue = (char*) (opt->choice = &cps->comboList[cps->comboCnt]); // cheat with pointer type
-           cps->comboList[cps->comboCnt++] = q = p+8; // holds possible choices
-           if(*q == '*') cps->comboList[cps->comboCnt-1]++;
-           opt->value = n = 0;
-           while(q = StrStr(q, " /// ")) {
-               n++; *q = 0;    // count choices, and null-terminate each of them
-               q += 5;
-               if(*q == '*') { // remember default, which is marked with * prefix
-                   q++;
-                   opt->value = n;
-               }
-               cps->comboList[cps->comboCnt++] = q;
-           }
-           cps->comboList[cps->comboCnt++] = NULL;
-           opt->max = n + 1;
-           opt->type = ComboBox;
-       } else if(p = strstr(opt->name, " -button")) {
-           opt->type = Button;
-       } else if(p = strstr(opt->name, " -save")) {
-           opt->type = SaveButton;
-       } else return FALSE;
-       *p = 0; // terminate option name
-       // now look if the command-line options define a setting for this engine option.
-       if(cps->optionSettings && cps->optionSettings[0])
-           p = strstr(cps->optionSettings, opt->name); else p = NULL;
-       if(p && (p == cps->optionSettings || p[-1] == ',')) {
-         snprintf(buf, MSG_SIZ, "option %s", p);
-               if(p = strstr(buf, ",")) *p = 0;
-               if(q = strchr(buf, '=')) switch(opt->type) {
-                   case ComboBox:
-                       for(n=0; n<opt->max; n++)
-                           if(!strcmp(((char**)opt->textValue)[n], q+1)) opt->value = n;
-                       break;
-                   case TextBox:
-                       safeStrCpy(opt->textValue, q+1, MSG_SIZ - (opt->textValue - opt->name));
-                       break;
-                   case Spin:
-                   case CheckBox:
-                       opt->value = atoi(q+1);
-                   default:
-                       break;
-               }
-               strcat(buf, "\n");
-               SendToProgram(buf, cps);
-       }
-       return TRUE;
-}
-
-void
-FeatureDone (ChessProgramState *cps, int val)
-{
-  DelayedEventCallback cb = GetDelayedEvent();
-  if ((cb == InitBackEnd3 && cps == &first) ||
-      (cb == SettingsMenuIfReady && cps == &second) ||
-      (cb == LoadEngine) ||
-      (cb == TwoMachinesEventIfReady)) {
-    CancelDelayedEvent();
-    ScheduleDelayedEvent(cb, val ? 1 : 3600000);
-  } else if(!val && !cps->reload) ClearOptions(cps); // let 'spurious' done=0 clear engine's option list
-  cps->initDone = val;
-  if(val) cps->reload = FALSE,  RefreshSettingsDialog(cps, val);
-}
-
-/* Parse feature command from engine */
-void
-ParseFeatures (char *args, ChessProgramState *cps)
-{
-  char *p = args;
-  char *q = NULL;
-  int val;
-  char buf[MSG_SIZ];
-
-  for (;;) {
-    while (*p == ' ') p++;
-    if (*p == NULLCHAR) return;
-
-    if (BoolFeature(&p, "setboard", &cps->useSetboard, cps)) continue;
-    if (BoolFeature(&p, "xedit", &cps->extendedEdit, cps)) continue;
-    if (BoolFeature(&p, "time", &cps->sendTime, cps)) continue;
-    if (BoolFeature(&p, "draw", &cps->sendDrawOffers, cps)) continue;
-    if (BoolFeature(&p, "sigint", &cps->useSigint, cps)) continue;
-    if (BoolFeature(&p, "sigterm", &cps->useSigterm, cps)) continue;
-    if (BoolFeature(&p, "reuse", &val, cps)) {
-      /* Engine can disable reuse, but can't enable it if user said no */
-      if (!val) cps->reuse = FALSE;
-      continue;
-    }
-    if (BoolFeature(&p, "analyze", &cps->analysisSupport, cps)) continue;
-    if (StringFeature(&p, "myname", &cps->tidy, cps)) {
-      if (gameMode == TwoMachinesPlay) {
-       DisplayTwoMachinesTitle();
-      } else {
-       DisplayTitle("");
-      }
-      continue;
-    }
-    if (StringFeature(&p, "variants", &cps->variants, cps)) continue;
-    if (BoolFeature(&p, "san", &cps->useSAN, cps)) continue;
-    if (BoolFeature(&p, "ping", &cps->usePing, cps)) continue;
-    if (BoolFeature(&p, "playother", &cps->usePlayother, cps)) continue;
-    if (BoolFeature(&p, "colors", &cps->useColors, cps)) continue;
-    if (BoolFeature(&p, "usermove", &cps->useUsermove, cps)) continue;
-    if (BoolFeature(&p, "exclude", &cps->excludeMoves, cps)) continue;
-    if (BoolFeature(&p, "ics", &cps->sendICS, cps)) continue;
-    if (BoolFeature(&p, "name", &cps->sendName, cps)) continue;
-    if (BoolFeature(&p, "pause", &cps->pause, cps)) continue; // [HGM] pause
-    if (IntFeature(&p, "done", &val, cps)) {
-      FeatureDone(cps, val);
-      continue;
-    }
-    /* Added by Tord: */
-    if (BoolFeature(&p, "fen960", &cps->useFEN960, cps)) continue;
-    if (BoolFeature(&p, "oocastle", &cps->useOOCastle, cps)) continue;
-    /* End of additions by Tord */
-
-    /* [HGM] added features: */
-    if (BoolFeature(&p, "highlight", &cps->highlight, cps)) continue;
-    if (BoolFeature(&p, "debug", &cps->debug, cps)) continue;
-    if (BoolFeature(&p, "nps", &cps->supportsNPS, cps)) continue;
-    if (IntFeature(&p, "level", &cps->maxNrOfSessions, cps)) continue;
-    if (BoolFeature(&p, "memory", &cps->memSize, cps)) continue;
-    if (BoolFeature(&p, "smp", &cps->maxCores, cps)) continue;
-    if (StringFeature(&p, "egt", &cps->egtFormats, cps)) continue;
-    if (StringFeature(&p, "option", &q, cps)) { // read to freshly allocated temp buffer first
-       if(cps->reload) { FREE(q); q = NULL; continue; } // we are reloading because of xreuse
-       FREE(cps->option[cps->nrOptions].name);
-       cps->option[cps->nrOptions].name = q; q = NULL;
-       if(!ParseOption(&(cps->option[cps->nrOptions++]), cps)) { // [HGM] options: add option feature
-         snprintf(buf, MSG_SIZ, "rejected option %s\n", cps->option[--cps->nrOptions].name);
-           SendToProgram(buf, cps);
-           continue;
-       }
-       if(cps->nrOptions >= MAX_OPTIONS) {
-           cps->nrOptions--;
-           snprintf(buf, MSG_SIZ, _("%s engine has too many options\n"), _(cps->which));
-           DisplayError(buf, 0);
-       }
-       continue;
-    }
-    /* End of additions by HGM */
-
-    /* unknown feature: complain and skip */
-    q = p;
-    while (*q && *q != '=') q++;
-    snprintf(buf, MSG_SIZ,"rejected %.*s\n", (int)(q-p), p);
-    SendToProgram(buf, cps);
-    p = q;
-    if (*p == '=') {
-      p++;
-      if (*p == '\"') {
-       p++;
-       while (*p && *p != '\"') p++;
-       if (*p == '\"') p++;
-      } else {
-       while (*p && *p != ' ') p++;
-      }
-    }
-  }
-
-}
-
-void
-PeriodicUpdatesEvent (int newState)
-{
-    if (newState == appData.periodicUpdates)
-      return;
-
-    appData.periodicUpdates=newState;
-
-    /* Display type changes, so update it now */
-//    DisplayAnalysis();
-
-    /* Get the ball rolling again... */
-    if (newState) {
-       AnalysisPeriodicEvent(1);
-       StartAnalysisClock();
-    }
-}
-
-void
-PonderNextMoveEvent (int newState)
-{
-    if (newState == appData.ponderNextMove) return;
-    if (gameMode == EditPosition) EditPositionDone(TRUE);
-    if (newState) {
-       SendToProgram("hard\n", &first);
-       if (gameMode == TwoMachinesPlay) {
-           SendToProgram("hard\n", &second);
-       }
-    } else {
-       SendToProgram("easy\n", &first);
-       thinkOutput[0] = NULLCHAR;
-       if (gameMode == TwoMachinesPlay) {
-           SendToProgram("easy\n", &second);
-       }
-    }
-    appData.ponderNextMove = newState;
-}
-
-void
-NewSettingEvent (int option, int *feature, char *command, int value)
-{
-    char buf[MSG_SIZ];
-
-    if (gameMode == EditPosition) EditPositionDone(TRUE);
-    snprintf(buf, MSG_SIZ,"%s%s %d\n", (option ? "option ": ""), command, value);
-    if(feature == NULL || *feature) SendToProgram(buf, &first);
-    if (gameMode == TwoMachinesPlay) {
-       if(feature == NULL || feature[(int*)&second - (int*)&first]) SendToProgram(buf, &second);
-    }
-}
-
-void
-ShowThinkingEvent ()
-// [HGM] thinking: this routine is now also called from "Options -> Engine..." popup
-{
-    static int oldState = 2; // kludge alert! Neither true nor fals, so first time oldState is always updated
-    int newState = appData.showThinking
-       // [HGM] thinking: other features now need thinking output as well
-       || !appData.hideThinkingFromHuman || appData.adjudicateLossThreshold != 0 || EngineOutputIsUp();
-
-    if (oldState == newState) return;
-    oldState = newState;
-    if (gameMode == EditPosition) EditPositionDone(TRUE);
-    if (oldState) {
-       SendToProgram("post\n", &first);
-       if (gameMode == TwoMachinesPlay) {
-           SendToProgram("post\n", &second);
-       }
-    } else {
-       SendToProgram("nopost\n", &first);
-       thinkOutput[0] = NULLCHAR;
-       if (gameMode == TwoMachinesPlay) {
-           SendToProgram("nopost\n", &second);
-       }
-    }
-//    appData.showThinking = newState; // [HGM] thinking: responsible option should already have be changed when calling this routine!
-}
-
-void
-AskQuestionEvent (char *title, char *question, char *replyPrefix, char *which)
-{
-  ProcRef pr = (which[0] == '1') ? first.pr : second.pr;
-  if (pr == NoProc) return;
-  AskQuestion(title, question, replyPrefix, pr);
-}
-
-void
-TypeInEvent (char firstChar)
-{
-    if ((gameMode == BeginningOfGame && !appData.icsActive) ||
-        gameMode == MachinePlaysWhite || gameMode == MachinePlaysBlack ||
-       gameMode == AnalyzeMode || gameMode == EditGame ||
-       gameMode == EditPosition || gameMode == IcsExamining ||
-       gameMode == IcsPlayingWhite || gameMode == IcsPlayingBlack ||
-       isdigit(firstChar) && // [HGM] movenum: allow typing in of move nr in 'passive' modes
-               ( gameMode == AnalyzeFile || gameMode == PlayFromGameFile ||
-                 gameMode == IcsObserving || gameMode == TwoMachinesPlay    ) ||
-       gameMode == Training) PopUpMoveDialog(firstChar);
-}
-
-void
-TypeInDoneEvent (char *move)
-{
-       Board board;
-       int n, fromX, fromY, toX, toY;
-       char promoChar;
-       ChessMove moveType;
-
-       // [HGM] FENedit
-       if(gameMode == EditPosition && ParseFEN(board, &n, move, TRUE) ) {
-               EditPositionPasteFEN(move);
-               return;
-       }
-       // [HGM] movenum: allow move number to be typed in any mode
-       if(sscanf(move, "%d", &n) == 1 && n != 0 ) {
-         ToNrEvent(2*n-1);
-         return;
-       }
-       // undocumented kludge: allow command-line option to be typed in!
-       // (potentially fatal, and does not implement the effect of the option.)
-       // should only be used for options that are values on which future decisions will be made,
-       // and definitely not on options that would be used during initialization.
-       if(strstr(move, "!!! -") == move) {
-           ParseArgsFromString(move+4);
-           return;
-        }
-
-      if (gameMode != EditGame && currentMove != forwardMostMove &&
-       gameMode != Training) {
-       DisplayMoveError(_("Displayed move is not current"));
-      } else {
-       int ok = ParseOneMove(move, gameMode == EditPosition ? blackPlaysFirst : currentMove,
-         &moveType, &fromX, &fromY, &toX, &toY, &promoChar);
-       if(!ok && move[0] >= 'a') { move[0] += 'A' - 'a'; ok = 2; } // [HGM] try also capitalized
-       if (ok==1 || ok && ParseOneMove(move, gameMode == EditPosition ? blackPlaysFirst : currentMove,
-         &moveType, &fromX, &fromY, &toX, &toY, &promoChar)) {
-         UserMoveEvent(fromX, fromY, toX, toY, promoChar);
-       } else {
-         DisplayMoveError(_("Could not parse move"));
-       }
-      }
-}
-
-void
-DisplayMove (int moveNumber)
-{
-    char message[MSG_SIZ];
-    char res[MSG_SIZ];
-    char cpThinkOutput[MSG_SIZ];
-
-    if(appData.noGUI) return; // [HGM] fast: suppress display of moves
-
-    if (moveNumber == forwardMostMove - 1 ||
-       gameMode == AnalyzeMode || gameMode == AnalyzeFile) {
-
-       safeStrCpy(cpThinkOutput, thinkOutput, sizeof(cpThinkOutput)/sizeof(cpThinkOutput[0]));
-
-        if (strchr(cpThinkOutput, '\n')) {
-           *strchr(cpThinkOutput, '\n') = NULLCHAR;
-        }
-    } else {
-       *cpThinkOutput = NULLCHAR;
-    }
-
-    /* [AS] Hide thinking from human user */
-    if( appData.hideThinkingFromHuman && gameMode != TwoMachinesPlay ) {
-        *cpThinkOutput = NULLCHAR;
-        if( thinkOutput[0] != NULLCHAR ) {
-            int i;
-
-            for( i=0; i<=hiddenThinkOutputState; i++ ) {
-                cpThinkOutput[i] = '.';
-            }
-            cpThinkOutput[i] = NULLCHAR;
-            hiddenThinkOutputState = (hiddenThinkOutputState + 1) % 3;
-        }
-    }
-
-    if (moveNumber == forwardMostMove - 1 &&
-       gameInfo.resultDetails != NULL) {
-       if (gameInfo.resultDetails[0] == NULLCHAR) {
-         snprintf(res, MSG_SIZ, " %s", PGNResult(gameInfo.result));
-       } else {
-         snprintf(res, MSG_SIZ, " {%s} %s",
-                   T_(gameInfo.resultDetails), PGNResult(gameInfo.result));
-       }
-    } else {
-       res[0] = NULLCHAR;
-    }
-
-    if (moveNumber < 0 || parseList[moveNumber][0] == NULLCHAR) {
-       DisplayMessage(res, cpThinkOutput);
-    } else {
-      snprintf(message, MSG_SIZ, "%d.%s%s%s", moveNumber / 2 + 1,
-               WhiteOnMove(moveNumber) ? " " : ".. ",
-               parseList[moveNumber], res);
-       DisplayMessage(message, cpThinkOutput);
-    }
-}
-
-void
-DisplayComment (int moveNumber, char *text)
-{
-    char title[MSG_SIZ];
-
-    if (moveNumber < 0 || parseList[moveNumber][0] == NULLCHAR) {
-      safeStrCpy(title, "Comment", sizeof(title)/sizeof(title[0]));
-    } else {
-      snprintf(title,MSG_SIZ, "Comment on %d.%s%s", moveNumber / 2 + 1,
-             WhiteOnMove(moveNumber) ? " " : ".. ",
-             parseList[moveNumber]);
-    }
-    if (text != NULL && (appData.autoDisplayComment || commentUp))
-        CommentPopUp(title, text);
-}
-
-/* This routine sends a ^C interrupt to gnuchess, to awaken it if it
- * might be busy thinking or pondering.  It can be omitted if your
- * gnuchess is configured to stop thinking immediately on any user
- * input.  However, that gnuchess feature depends on the FIONREAD
- * ioctl, which does not work properly on some flavors of Unix.
- */
-void
-Attention (ChessProgramState *cps)
-{
-#if ATTENTION
-    if (!cps->useSigint) return;
-    if (appData.noChessProgram || (cps->pr == NoProc)) return;
-    switch (gameMode) {
-      case MachinePlaysWhite:
-      case MachinePlaysBlack:
-      case TwoMachinesPlay:
-      case IcsPlayingWhite:
-      case IcsPlayingBlack:
-      case AnalyzeMode:
-      case AnalyzeFile:
-       /* Skip if we know it isn't thinking */
-       if (!cps->maybeThinking) return;
-       if (appData.debugMode)
-         fprintf(debugFP, "Interrupting %s\n", cps->which);
-       InterruptChildProcess(cps->pr);
-       cps->maybeThinking = FALSE;
-       break;
-      default:
-       break;
-    }
-#endif /*ATTENTION*/
-}
-
-int
-CheckFlags ()
-{
-    if (whiteTimeRemaining <= 0) {
-       if (!whiteFlag) {
-           whiteFlag = TRUE;
-           if (appData.icsActive) {
-               if (appData.autoCallFlag &&
-                   gameMode == IcsPlayingBlack && !blackFlag) {
-                 SendToICS(ics_prefix);
-                 SendToICS("flag\n");
-               }
-           } else {
-               if (blackFlag) {
-                    if(gameMode != TwoMachinesPlay) DisplayTitle(_("Both flags fell"));
-               } else {
-                    if(gameMode != TwoMachinesPlay) DisplayTitle(_("White's flag fell"));
-                   if (appData.autoCallFlag) {
-                       GameEnds(BlackWins, "Black wins on time", GE_XBOARD);
-                       return TRUE;
-                   }
-               }
-           }
-       }
-    }
-    if (blackTimeRemaining <= 0) {
-       if (!blackFlag) {
-           blackFlag = TRUE;
-           if (appData.icsActive) {
-               if (appData.autoCallFlag &&
-                   gameMode == IcsPlayingWhite && !whiteFlag) {
-                 SendToICS(ics_prefix);
-                 SendToICS("flag\n");
-               }
-           } else {
-               if (whiteFlag) {
-                    if(gameMode != TwoMachinesPlay) DisplayTitle(_("Both flags fell"));
-               } else {
-                    if(gameMode != TwoMachinesPlay) DisplayTitle(_("Black's flag fell"));
-                   if (appData.autoCallFlag) {
-                       GameEnds(WhiteWins, "White wins on time", GE_XBOARD);
-                       return TRUE;
-                   }
-               }
-           }
-       }
-    }
-    return FALSE;
-}
-
-void
-CheckTimeControl ()
-{
-    if (!appData.clockMode || appData.icsActive || searchTime || // [HGM] st: no inc in st mode
-       gameMode == PlayFromGameFile || forwardMostMove == 0) return;
-
-    /*
-     * add time to clocks when time control is achieved ([HGM] now also used for increment)
-     */
-    if ( !WhiteOnMove(forwardMostMove) ) {
-       /* White made time control */
-        lastWhite -= whiteTimeRemaining; // [HGM] contains start time, socalculate thinking time
-        whiteTimeRemaining += GetTimeQuota((forwardMostMove-whiteStartMove-1)/2, lastWhite, whiteTC)
-        /* [HGM] time odds: correct new time quota for time odds! */
-                                            / WhitePlayer()->timeOdds;
-        lastBlack = blackTimeRemaining; // [HGM] leave absolute time (after quota), so next switch we can us it to calculate thinking time
-    } else {
-        lastBlack -= blackTimeRemaining;
-       /* Black made time control */
-        blackTimeRemaining += GetTimeQuota((forwardMostMove-blackStartMove-1)/2, lastBlack, blackTC)
-                                            / WhitePlayer()->other->timeOdds;
-        lastWhite = whiteTimeRemaining;
-    }
-}
-
-void
-DisplayBothClocks ()
-{
-    int wom = gameMode == EditPosition ?
-      !blackPlaysFirst : WhiteOnMove(currentMove);
-    DisplayWhiteClock(whiteTimeRemaining, wom);
-    DisplayBlackClock(blackTimeRemaining, !wom);
-}
-
-
-/* Timekeeping seems to be a portability nightmare.  I think everyone
-   has ftime(), but I'm really not sure, so I'm including some ifdefs
-   to use other calls if you don't.  Clocks will be less accurate if
-   you have neither ftime nor gettimeofday.
-*/
-
-/* VS 2008 requires the #include outside of the function */
-#if !HAVE_GETTIMEOFDAY && HAVE_FTIME
-#include <sys/timeb.h>
-#endif
-
-/* Get the current time as a TimeMark */
-void
-GetTimeMark (TimeMark *tm)
-{
-#if HAVE_GETTIMEOFDAY
-
-    struct timeval timeVal;
-    struct timezone timeZone;
-
-    gettimeofday(&timeVal, &timeZone);
-    tm->sec = (long) timeVal.tv_sec;
-    tm->ms = (int) (timeVal.tv_usec / 1000L);
-
-#else /*!HAVE_GETTIMEOFDAY*/
-#if HAVE_FTIME
-
-// include <sys/timeb.h> / moved to just above start of function
-    struct timeb timeB;
-
-    ftime(&timeB);
-    tm->sec = (long) timeB.time;
-    tm->ms = (int) timeB.millitm;
-
-#else /*!HAVE_FTIME && !HAVE_GETTIMEOFDAY*/
-    tm->sec = (long) time(NULL);
-    tm->ms = 0;
-#endif
-#endif
-}
-
-/* Return the difference in milliseconds between two
-   time marks.  We assume the difference will fit in a long!
-*/
-long
-SubtractTimeMarks (TimeMark *tm2, TimeMark *tm1)
-{
-    return 1000L*(tm2->sec - tm1->sec) +
-           (long) (tm2->ms - tm1->ms);
-}
-
-
-/*
- * Code to manage the game clocks.
- *
- * In tournament play, black starts the clock and then white makes a move.
- * We give the human user a slight advantage if he is playing white---the
- * clocks don't run until he makes his first move, so it takes zero time.
- * Also, we don't account for network lag, so we could get out of sync
- * with GNU Chess's clock -- but then, referees are always right.
- */
-
-static TimeMark tickStartTM;
-static long intendedTickLength;
-
-long
-NextTickLength (long timeRemaining)
-{
-    long nominalTickLength, nextTickLength;
-
-    if (timeRemaining > 0L && timeRemaining <= 10000L)
-      nominalTickLength = 100L;
-    else
-      nominalTickLength = 1000L;
-    nextTickLength = timeRemaining % nominalTickLength;
-    if (nextTickLength <= 0) nextTickLength += nominalTickLength;
-
-    return nextTickLength;
-}
-
-/* Adjust clock one minute up or down */
-void
-AdjustClock (Boolean which, int dir)
-{
-    if(appData.autoCallFlag) { DisplayError(_("Clock adjustment not allowed in auto-flag mode"), 0); return; }
-    if(which) blackTimeRemaining += 60000*dir;
-    else      whiteTimeRemaining += 60000*dir;
-    DisplayBothClocks();
-    adjustedClock = TRUE;
-}
-
-/* Stop clocks and reset to a fresh time control */
-void
-ResetClocks ()
-{
-    (void) StopClockTimer();
-    if (appData.icsActive) {
-       whiteTimeRemaining = blackTimeRemaining = 0;
-    } else if (searchTime) {
-       whiteTimeRemaining = 1000*searchTime / WhitePlayer()->timeOdds;
-       blackTimeRemaining = 1000*searchTime / WhitePlayer()->other->timeOdds;
-    } else { /* [HGM] correct new time quote for time odds */
-        whiteTC = blackTC = fullTimeControlString;
-        whiteTimeRemaining = GetTimeQuota(-1, 0, whiteTC) / WhitePlayer()->timeOdds;
-        blackTimeRemaining = GetTimeQuota(-1, 0, blackTC) / WhitePlayer()->other->timeOdds;
-    }
-    if (whiteFlag || blackFlag) {
-       DisplayTitle("");
-       whiteFlag = blackFlag = FALSE;
-    }
-    lastWhite = lastBlack = whiteStartMove = blackStartMove = 0;
-    DisplayBothClocks();
-    adjustedClock = FALSE;
-}
-
-#define FUDGE 25 /* 25ms = 1/40 sec; should be plenty even for 50 Hz clocks */
-
-/* Decrement running clock by amount of time that has passed */
-void
-DecrementClocks ()
-{
-    long timeRemaining;
-    long lastTickLength, fudge;
-    TimeMark now;
-
-    if (!appData.clockMode) return;
-    if (gameMode==AnalyzeMode || gameMode == AnalyzeFile) return;
-
-    GetTimeMark(&now);
-
-    lastTickLength = SubtractTimeMarks(&now, &tickStartTM);
-
-    /* Fudge if we woke up a little too soon */
-    fudge = intendedTickLength - lastTickLength;
-    if (fudge < 0 || fudge > FUDGE) fudge = 0;
-
-    if (WhiteOnMove(forwardMostMove)) {
-       if(whiteNPS >= 0) lastTickLength = 0;
-       timeRemaining = whiteTimeRemaining -= lastTickLength;
-        if(timeRemaining < 0 && !appData.icsActive) {
-            GetTimeQuota((forwardMostMove-whiteStartMove-1)/2, 0, whiteTC); // sets suddenDeath & nextSession;
-            if(suddenDeath) { // [HGM] if we run out of a non-last incremental session, go to the next
-                whiteStartMove = forwardMostMove; whiteTC = nextSession;
-                lastWhite= timeRemaining = whiteTimeRemaining += GetTimeQuota(-1, 0, whiteTC);
-            }
-        }
-       DisplayWhiteClock(whiteTimeRemaining - fudge,
-                         WhiteOnMove(currentMove < forwardMostMove ? currentMove : forwardMostMove));
-    } else {
-       if(blackNPS >= 0) lastTickLength = 0;
-       timeRemaining = blackTimeRemaining -= lastTickLength;
-        if(timeRemaining < 0 && !appData.icsActive) { // [HGM] if we run out of a non-last incremental session, go to the next
-            GetTimeQuota((forwardMostMove-blackStartMove-1)/2, 0, blackTC);
-            if(suddenDeath) {
-                blackStartMove = forwardMostMove;
-                lastBlack = timeRemaining = blackTimeRemaining += GetTimeQuota(-1, 0, blackTC=nextSession);
-            }
-        }
-       DisplayBlackClock(blackTimeRemaining - fudge,
-                         !WhiteOnMove(currentMove < forwardMostMove ? currentMove : forwardMostMove));
-    }
-    if (CheckFlags()) return;
-
-    if(twoBoards) { // count down secondary board's clocks as well
-       activePartnerTime -= lastTickLength;
-       partnerUp = 1;
-       if(activePartner == 'W')
-           DisplayWhiteClock(activePartnerTime, TRUE); // the counting clock is always the highlighted one!
-       else
-           DisplayBlackClock(activePartnerTime, TRUE);
-       partnerUp = 0;
-    }
-
-    tickStartTM = now;
-    intendedTickLength = NextTickLength(timeRemaining - fudge) + fudge;
-    StartClockTimer(intendedTickLength);
-
-    /* if the time remaining has fallen below the alarm threshold, sound the
-     * alarm. if the alarm has sounded and (due to a takeback or time control
-     * with increment) the time remaining has increased to a level above the
-     * threshold, reset the alarm so it can sound again.
-     */
-
-    if (appData.icsActive && appData.icsAlarm) {
-
-       /* make sure we are dealing with the user's clock */
-       if (!( ((gameMode == IcsPlayingWhite) && WhiteOnMove(currentMove)) ||
-              ((gameMode == IcsPlayingBlack) && !WhiteOnMove(currentMove))
-          )) return;
-
-       if (alarmSounded && (timeRemaining > appData.icsAlarmTime)) {
-           alarmSounded = FALSE;
-       } else if (!alarmSounded && (timeRemaining <= appData.icsAlarmTime)) {
-           PlayAlarmSound();
-           alarmSounded = TRUE;
-       }
-    }
-}
-
-
-/* A player has just moved, so stop the previously running
-   clock and (if in clock mode) start the other one.
-   We redisplay both clocks in case we're in ICS mode, because
-   ICS gives us an update to both clocks after every move.
-   Note that this routine is called *after* forwardMostMove
-   is updated, so the last fractional tick must be subtracted
-   from the color that is *not* on move now.
-*/
-void
-SwitchClocks (int newMoveNr)
-{
-    long lastTickLength;
-    TimeMark now;
-    int flagged = FALSE;
-
-    GetTimeMark(&now);
-
-    if (StopClockTimer() && appData.clockMode) {
-       lastTickLength = SubtractTimeMarks(&now, &tickStartTM);
-       if (!WhiteOnMove(forwardMostMove)) {
-           if(blackNPS >= 0) lastTickLength = 0;
-           blackTimeRemaining -= lastTickLength;
-           /* [HGM] PGNtime: save time for PGN file if engine did not give it */
-//         if(pvInfoList[forwardMostMove].time == -1)
-                 pvInfoList[forwardMostMove].time =               // use GUI time
-                      (timeRemaining[1][forwardMostMove-1] - blackTimeRemaining)/10;
-       } else {
-          if(whiteNPS >= 0) lastTickLength = 0;
-          whiteTimeRemaining -= lastTickLength;
-           /* [HGM] PGNtime: save time for PGN file if engine did not give it */
-//         if(pvInfoList[forwardMostMove].time == -1)
-                 pvInfoList[forwardMostMove].time =
-                      (timeRemaining[0][forwardMostMove-1] - whiteTimeRemaining)/10;
-       }
-       flagged = CheckFlags();
-    }
-    forwardMostMove = newMoveNr; // [HGM] race: change stm when no timer interrupt scheduled
-    CheckTimeControl();
-
-    if (flagged || !appData.clockMode) return;
-
-    switch (gameMode) {
-      case MachinePlaysBlack:
-      case MachinePlaysWhite:
-      case BeginningOfGame:
-       if (pausing) return;
-       break;
-
-      case EditGame:
-      case PlayFromGameFile:
-      case IcsExamining:
-       return;
-
-      default:
-       break;
-    }
-
-    if (searchTime) { // [HGM] st: set clock of player that has to move to max time
-       if(WhiteOnMove(forwardMostMove))
-            whiteTimeRemaining = 1000*searchTime / WhitePlayer()->timeOdds;
-       else blackTimeRemaining = 1000*searchTime / WhitePlayer()->other->timeOdds;
-    }
-
-    tickStartTM = now;
-    intendedTickLength = NextTickLength(WhiteOnMove(forwardMostMove) ?
-      whiteTimeRemaining : blackTimeRemaining);
-    StartClockTimer(intendedTickLength);
-}
-
-
-/* Stop both clocks */
-void
-StopClocks ()
-{
-    long lastTickLength;
-    TimeMark now;
-
-    if (!StopClockTimer()) return;
-    if (!appData.clockMode) return;
-
-    GetTimeMark(&now);
-
-    lastTickLength = SubtractTimeMarks(&now, &tickStartTM);
-    if (WhiteOnMove(forwardMostMove)) {
-       if(whiteNPS >= 0) lastTickLength = 0;
-       whiteTimeRemaining -= lastTickLength;
-       DisplayWhiteClock(whiteTimeRemaining, WhiteOnMove(currentMove));
-    } else {
-       if(blackNPS >= 0) lastTickLength = 0;
-       blackTimeRemaining -= lastTickLength;
-       DisplayBlackClock(blackTimeRemaining, !WhiteOnMove(currentMove));
-    }
-    CheckFlags();
-}
-
-/* Start clock of player on move.  Time may have been reset, so
-   if clock is already running, stop and restart it. */
-void
-StartClocks ()
-{
-    (void) StopClockTimer(); /* in case it was running already */
-    DisplayBothClocks();
-    if (CheckFlags()) return;
-
-    if (!appData.clockMode) return;
-    if (gameMode == AnalyzeMode || gameMode == AnalyzeFile) return;
-
-    GetTimeMark(&tickStartTM);
-    intendedTickLength = NextTickLength(WhiteOnMove(forwardMostMove) ?
-      whiteTimeRemaining : blackTimeRemaining);
-
-   /* [HGM] nps: figure out nps factors, by determining which engine plays white and/or black once and for all */
-    whiteNPS = blackNPS = -1;
-    if(gameMode == MachinePlaysWhite || gameMode == TwoMachinesPlay && first.twoMachinesColor[0] == 'w'
-       || appData.zippyPlay && gameMode == IcsPlayingBlack) // first (perhaps only) engine has white
-       whiteNPS = first.nps;
-    if(gameMode == MachinePlaysBlack || gameMode == TwoMachinesPlay && first.twoMachinesColor[0] == 'b'
-       || appData.zippyPlay && gameMode == IcsPlayingWhite) // first (perhaps only) engine has black
-       blackNPS = first.nps;
-    if(gameMode == TwoMachinesPlay && first.twoMachinesColor[0] == 'b') // second only used in Two-Machines mode
-       whiteNPS = second.nps;
-    if(gameMode == TwoMachinesPlay && first.twoMachinesColor[0] == 'w')
-       blackNPS = second.nps;
-    if(appData.debugMode) fprintf(debugFP, "nps: w=%d, b=%d\n", whiteNPS, blackNPS);
-
-    StartClockTimer(intendedTickLength);
-}
-
-char *
-TimeString (long ms)
-{
-    long second, minute, hour, day;
-    char *sign = "";
-    static char buf[32];
-
-    if (ms > 0 && ms <= 9900) {
-      /* convert milliseconds to tenths, rounding up */
-      double tenths = floor( ((double)(ms + 99L)) / 100.00 );
-
-      snprintf(buf,sizeof(buf)/sizeof(buf[0]), " %03.1f ", tenths/10.0);
-      return buf;
-    }
-
-    /* convert milliseconds to seconds, rounding up */
-    /* use floating point to avoid strangeness of integer division
-       with negative dividends on many machines */
-    second = (long) floor(((double) (ms + 999L)) / 1000.0);
-
-    if (second < 0) {
-       sign = "-";
-       second = -second;
-    }
-
-    day = second / (60 * 60 * 24);
-    second = second % (60 * 60 * 24);
-    hour = second / (60 * 60);
-    second = second % (60 * 60);
-    minute = second / 60;
-    second = second % 60;
-
-    if (day > 0)
-      snprintf(buf, sizeof(buf)/sizeof(buf[0]), " %s%ld:%02ld:%02ld:%02ld ",
-             sign, day, hour, minute, second);
-    else if (hour > 0)
-      snprintf(buf, sizeof(buf)/sizeof(buf[0]), " %s%ld:%02ld:%02ld ", sign, hour, minute, second);
-    else
-      snprintf(buf, sizeof(buf)/sizeof(buf[0]), " %s%2ld:%02ld ", sign, minute, second);
-
-    return buf;
-}
-
-
-/*
- * This is necessary because some C libraries aren't ANSI C compliant yet.
- */
-char *
-StrStr (char *string, char *match)
-{
-    int i, length;
-
-    length = strlen(match);
-
-    for (i = strlen(string) - length; i >= 0; i--, string++)
-      if (!strncmp(match, string, length))
-       return string;
-
-    return NULL;
-}
-
-char *
-StrCaseStr (char *string, char *match)
-{
-    int i, j, length;
-
-    length = strlen(match);
-
-    for (i = strlen(string) - length; i >= 0; i--, string++) {
-       for (j = 0; j < length; j++) {
-           if (ToLower(match[j]) != ToLower(string[j]))
-             break;
-       }
-       if (j == length) return string;
-    }
-
-    return NULL;
-}
-
-#ifndef _amigados
-int
-StrCaseCmp (char *s1, char *s2)
-{
-    char c1, c2;
-
-    for (;;) {
-       c1 = ToLower(*s1++);
-       c2 = ToLower(*s2++);
-       if (c1 > c2) return 1;
-       if (c1 < c2) return -1;
-       if (c1 == NULLCHAR) return 0;
-    }
-}
-
-
-int
-ToLower (int c)
-{
-    return isupper(c) ? tolower(c) : c;
-}
-
-
-int
-ToUpper (int c)
-{
-    return islower(c) ? toupper(c) : c;
-}
-#endif /* !_amigados   */
-
-char *
-StrSave (char *s)
-{
-  char *ret;
-
-  if ((ret = (char *) malloc(strlen(s) + 1)))
-    {
-      safeStrCpy(ret, s, strlen(s)+1);
-    }
-  return ret;
-}
-
-char *
-StrSavePtr (char *s, char **savePtr)
-{
-    if (*savePtr) {
-       free(*savePtr);
-    }
-    if ((*savePtr = (char *) malloc(strlen(s) + 1))) {
-      safeStrCpy(*savePtr, s, strlen(s)+1);
-    }
-    return(*savePtr);
-}
-
-char *
-PGNDate ()
-{
-    time_t clock;
-    struct tm *tm;
-    char buf[MSG_SIZ];
-
-    clock = time((time_t *)NULL);
-    tm = localtime(&clock);
-    snprintf(buf, MSG_SIZ, "%04d.%02d.%02d",
-           tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday);
-    return StrSave(buf);
-}
-
-
-char *
-PositionToFEN (int move, char *overrideCastling, int moveCounts)
-{
-    int i, j, fromX, fromY, toX, toY;
-    int whiteToPlay, haveRights = nrCastlingRights;
-    char buf[MSG_SIZ];
-    char *p, *q;
-    int emptycount;
-    ChessSquare piece;
-
-    whiteToPlay = (gameMode == EditPosition) ?
-      !blackPlaysFirst : (move % 2 == 0);
-    p = buf;
-
-    /* Piece placement data */
-    for (i = BOARD_HEIGHT - 1; i >= 0; i--) {
-       if(MSG_SIZ - (p - buf) < BOARD_RGHT - BOARD_LEFT + 20) { *p = 0; return StrSave(buf); }
-       emptycount = 0;
-        for (j = BOARD_LEFT; j < BOARD_RGHT; j++) {
-           if (boards[move][i][j] == EmptySquare) {
-               emptycount++;
-            } else { ChessSquare piece = boards[move][i][j];
-               if (emptycount > 0) {
-                    if(emptycount<10) /* [HGM] can be >= 10 */
-                        *p++ = '0' + emptycount;
-                    else { *p++ = '0' + emptycount/10; *p++ = '0' + emptycount%10; }
-                   emptycount = 0;
-               }
-                if(PieceToChar(piece) == '+') {
-                    /* [HGM] write promoted pieces as '+<unpromoted>' (Shogi) */
-                    *p++ = '+';
-                    piece = (ChessSquare)(CHUDEMOTED(piece));
-                }
-                *p++ = (piece == DarkSquare ? '*' : PieceToChar(piece));
-                if(*p = PieceSuffix(piece)) p++;
-                if(p[-1] == '~') {
-                    /* [HGM] flag promoted pieces as '<promoted>~' (Crazyhouse) */
-                    p[-1] = PieceToChar((ChessSquare)(CHUDEMOTED(piece)));
-                    *p++ = '~';
-                }
-           }
-       }
-       if (emptycount > 0) {
-            if(emptycount<10) /* [HGM] can be >= 10 */
-                *p++ = '0' + emptycount;
-            else { *p++ = '0' + emptycount/10; *p++ = '0' + emptycount%10; }
-           emptycount = 0;
-       }
-       *p++ = '/';
-    }
-    *(p - 1) = ' ';
-
-    /* [HGM] print Crazyhouse or Shogi holdings */
-    if( gameInfo.holdingsWidth ) {
-        *(p-1) = '['; /* if we wanted to support BFEN, this could be '/' */
-        q = p;
-        for(i=0; i<gameInfo.holdingsSize; i++) { /* white holdings */
-            piece = boards[move][i][BOARD_WIDTH-1];
-            if( piece != EmptySquare )
-              for(j=0; j<(int) boards[move][i][BOARD_WIDTH-2]; j++)
-                  *p++ = PieceToChar(piece);
-        }
-        for(i=0; i<gameInfo.holdingsSize; i++) { /* black holdings */
-            piece = boards[move][BOARD_HEIGHT-i-1][0];
-            if( piece != EmptySquare )
-              for(j=0; j<(int) boards[move][BOARD_HEIGHT-i-1][1]; j++)
-                  *p++ = PieceToChar(piece);
-        }
-
-        if( q == p ) *p++ = '-';
-        *p++ = ']';
-        *p++ = ' ';
-    }
-
-    /* Active color */
-    *p++ = whiteToPlay ? 'w' : 'b';
-    *p++ = ' ';
-
-  if(pieceDesc[WhiteKing] && strchr(pieceDesc[WhiteKing], 'i') && !strchr(pieceDesc[WhiteKing], 'O')) { // redefined without castling
-    haveRights = 0; q = p;
-    for(i=BOARD_RGHT-1; i>=BOARD_LEFT; i--) {
-      piece = boards[move][0][i];
-      if(piece >= WhitePawn && piece <= WhiteKing && pieceDesc[piece] && strchr(pieceDesc[piece], 'i')) { // piece with initial move
-        if(!(boards[move][TOUCHED_W] & 1<<i)) *p++ = 'A' + i; // print file ID if it has not moved
-      }
-    }
-    for(i=BOARD_RGHT-1; i>=BOARD_LEFT; i--) {
-      piece = boards[move][BOARD_HEIGHT-1][i];
-      if(piece >= BlackPawn && piece <= BlackKing && pieceDesc[piece] && strchr(pieceDesc[piece], 'i')) { // piece with initial move
-        if(!(boards[move][TOUCHED_B] & 1<<i)) *p++ = 'a' + i; // print file ID if it has not moved
-      }
-    }
-    if(p == q) *p++ = '-';
-    *p++ = ' ';
-  }
-
-  if(q = overrideCastling) { // [HGM] FRC: override castling & e.p fields for non-compliant engines
-    while(*p++ = *q++)
-                      ;
-    if(q != overrideCastling+1) p[-1] = ' '; else --p;
-  } else {
-  if(haveRights) {
-     int handW=0, handB=0;
-     if(gameInfo.variant == VariantSChess) { // for S-Chess, all virgin backrank pieces must be listed
-       for(i=0; i<BOARD_HEIGHT; i++) handW += boards[move][i][BOARD_RGHT]; // count white held pieces
-       for(i=0; i<BOARD_HEIGHT; i++) handB += boards[move][i][BOARD_LEFT-1]; // count black held pieces
-     }
-     q = p;
-     if(appData.fischerCastling) {
-       if(handW) { // in shuffle S-Chess simply dump all virgin pieces
-           for(i=BOARD_RGHT-1; i>=BOARD_LEFT; i--)
-               if(boards[move][VIRGIN][i] & VIRGIN_W) *p++ = i + AAA + 'A' - 'a';
-       } else {
-       /* [HGM] write directly from rights */
-           if(boards[move][CASTLING][2] != NoRights &&
-              boards[move][CASTLING][0] != NoRights   )
-                *p++ = boards[move][CASTLING][0] + AAA + 'A' - 'a';
-           if(boards[move][CASTLING][2] != NoRights &&
-              boards[move][CASTLING][1] != NoRights   )
-                *p++ = boards[move][CASTLING][1] + AAA + 'A' - 'a';
-       }
-       if(handB) {
-           for(i=BOARD_RGHT-1; i>=BOARD_LEFT; i--)
-               if(boards[move][VIRGIN][i] & VIRGIN_B) *p++ = i + AAA;
-       } else {
-           if(boards[move][CASTLING][5] != NoRights &&
-              boards[move][CASTLING][3] != NoRights   )
-                *p++ = boards[move][CASTLING][3] + AAA;
-           if(boards[move][CASTLING][5] != NoRights &&
-              boards[move][CASTLING][4] != NoRights   )
-                *p++ = boards[move][CASTLING][4] + AAA;
-       }
-     } else {
-
-        /* [HGM] write true castling rights */
-        if( nrCastlingRights == 6 ) {
-            int q, k=0;
-            if(boards[move][CASTLING][0] != NoRights &&
-               boards[move][CASTLING][2] != NoRights  ) k = 1, *p++ = 'K';
-            q = (boards[move][CASTLING][1] != NoRights &&
-                 boards[move][CASTLING][2] != NoRights  );
-            if(handW) { // for S-Chess with pieces in hand, list virgin pieces between K and Q
-                for(i=BOARD_RGHT-1-k; i>=BOARD_LEFT+q; i--)
-                    if((boards[move][0][i] != WhiteKing || k+q == 0) &&
-                        boards[move][VIRGIN][i] & VIRGIN_W) *p++ = i + AAA + 'A' - 'a';
-            }
-           if(q) *p++ = 'Q';
-            k = 0;
-            if(boards[move][CASTLING][3] != NoRights &&
-               boards[move][CASTLING][5] != NoRights  ) k = 1, *p++ = 'k';
-            q = (boards[move][CASTLING][4] != NoRights &&
-                 boards[move][CASTLING][5] != NoRights  );
-            if(handB) {
-                for(i=BOARD_RGHT-1-k; i>=BOARD_LEFT+q; i--)
-                    if((boards[move][BOARD_HEIGHT-1][i] != BlackKing || k+q == 0) &&
-                        boards[move][VIRGIN][i] & VIRGIN_B) *p++ = i + AAA;
-            }
-            if(q) *p++ = 'q';
-        }
-     }
-     if (q == p) *p++ = '-'; /* No castling rights */
-     *p++ = ' ';
-  }
-
-  if(gameInfo.variant != VariantShogi    && gameInfo.variant != VariantXiangqi &&
-     gameInfo.variant != VariantShatranj && gameInfo.variant != VariantCourier &&
-     gameInfo.variant != VariantMakruk   && gameInfo.variant != VariantASEAN ) {
-    /* En passant target square */
-    if (move > backwardMostMove) {
-        fromX = moveList[move - 1][0] - AAA;
-        fromY = moveList[move - 1][1] - ONE;
-        toX = moveList[move - 1][2] - AAA;
-        toY = moveList[move - 1][3] - ONE;
-       if (fromY == (whiteToPlay ? BOARD_HEIGHT-2 : 1) &&
-           toY == (whiteToPlay ? BOARD_HEIGHT-4 : 3) &&
-           boards[move][toY][toX] == (whiteToPlay ? BlackPawn : WhitePawn) &&
-           fromX == toX) {
-           /* 2-square pawn move just happened */
-            *p++ = toX + AAA;
-           *p++ = whiteToPlay ? '6'+BOARD_HEIGHT-8 : '3';
-       } else {
-           *p++ = '-';
-       }
-    } else if(move == backwardMostMove) {
-       // [HGM] perhaps we should always do it like this, and forget the above?
-       if((signed char)boards[move][EP_STATUS] >= 0) {
-           *p++ = boards[move][EP_STATUS] + AAA;
-           *p++ = whiteToPlay ? '6'+BOARD_HEIGHT-8 : '3';
-       } else {
-           *p++ = '-';
-       }
-    } else {
-       *p++ = '-';
-    }
-    *p++ = ' ';
-  }
-  }
-
-    if(moveCounts)
-    {   int i = 0, j=move;
-
-        /* [HGM] find reversible plies */
-        if (appData.debugMode) { int k;
-            fprintf(debugFP, "write FEN 50-move: %d %d %d\n", initialRulePlies, forwardMostMove, backwardMostMove);
-            for(k=backwardMostMove; k<=forwardMostMove; k++)
-                fprintf(debugFP, "e%d. p=%d\n", k, (signed char)boards[k][EP_STATUS]);
-
-        }
-
-        while(j > backwardMostMove && (signed char)boards[j][EP_STATUS] <= EP_NONE) j--,i++;
-        if( j == backwardMostMove ) i += initialRulePlies;
-        sprintf(p, "%d ", i);
-        p += i>=100 ? 4 : i >= 10 ? 3 : 2;
-
-        /* Fullmove number */
-        sprintf(p, "%d", (move / 2) + 1);
-    } else *--p = NULLCHAR;
-
-    return StrSave(buf);
-}
-
-Boolean
-ParseFEN (Board board, int *blackPlaysFirst, char *fen, Boolean autoSize)
-{
-    int i, j, k, w=0, subst=0, shuffle=0, wKingRank = -1, bKingRank = -1;
-    char *p, c;
-    int emptycount, virgin[BOARD_FILES];
-    ChessSquare piece, king = (gameInfo.variant == VariantKnightmate ? WhiteUnicorn : WhiteKing);
-
-    p = fen;
-
-    /* Piece placement data */
-    for (i = BOARD_HEIGHT - 1; i >= 0; i--) {
-       j = 0;
-       for (;;) {
-            if (*p == '/' || *p == ' ' || *p == '[' ) {
-               if(j > w) w = j;
-                emptycount = gameInfo.boardWidth - j;
-                while (emptycount--)
-                        board[i][(j++)+gameInfo.holdingsWidth] = EmptySquare;
-                if (*p == '/') p++;
-               else if(autoSize && i != BOARD_HEIGHT-1) { // we stumbled unexpectedly into end of board
-                    for(k=i; k<BOARD_HEIGHT; k++) { // too few ranks; shift towards bottom
-                       for(j=0; j<BOARD_WIDTH; j++) board[k-i][j] = board[k][j];
-                    }
-                   appData.NrRanks = gameInfo.boardHeight - i; i=0;
-                }
-               break;
-#if(BOARD_FILES >= 10)*0
-            } else if(*p=='x' || *p=='X') { /* [HGM] X means 10 */
-                p++; emptycount=10;
-                if (j + emptycount > gameInfo.boardWidth) return FALSE;
-                while (emptycount--)
-                        board[i][(j++)+gameInfo.holdingsWidth] = EmptySquare;
-#endif
-            } else if (*p == '*') {
-               board[i][(j++)+gameInfo.holdingsWidth] = DarkSquare; p++;
-            } else if (isdigit(*p)) {
-               emptycount = *p++ - '0';
-                while(isdigit(*p)) emptycount = 10*emptycount + *p++ - '0'; /* [HGM] allow > 9 */
-                if (j + emptycount > gameInfo.boardWidth) return FALSE;
-                while (emptycount--)
-                        board[i][(j++)+gameInfo.holdingsWidth] = EmptySquare;
-            } else if (*p == '<') {
-                if(i == BOARD_HEIGHT-1) shuffle = 1;
-                else if (i != 0 || !shuffle) return FALSE;
-                p++;
-            } else if (shuffle && *p == '>') {
-                p++; // for now ignore closing shuffle range, and assume rank-end
-            } else if (*p == '?') {
-                if (j >= gameInfo.boardWidth) return FALSE;
-                if (i != 0  && i != BOARD_HEIGHT-1) return FALSE; // only on back-rank
-               board[i][(j++)+gameInfo.holdingsWidth] = ClearBoard; p++; subst++; // placeHolder
-            } else if (*p == '+' || isalpha(*p)) {
-               char *q, *s = SUFFIXES;
-                if (j >= gameInfo.boardWidth) return FALSE;
-                if(*p=='+') {
-                    char c = *++p;
-                    if(q = strchr(s, p[1])) p++;
-                    piece = CharToPiece(c + (q ? 64*(q - s + 1) : 0));
-                    if(piece == EmptySquare) return FALSE; /* unknown piece */
-                    piece = (ChessSquare) (CHUPROMOTED(piece)); p++;
-                    if(PieceToChar(piece) != '+') return FALSE; /* unpromotable piece */
-                } else {
-                    char c = *p++;
-                   if(q = strchr(s, *p)) p++;
-                   piece = CharToPiece(c + (q ? 64*(q - s + 1) : 0));
-               }
-
-                if(piece==EmptySquare) return FALSE; /* unknown piece */
-                if(*p == '~') { /* [HGM] make it a promoted piece for Crazyhouse */
-                    piece = (ChessSquare) (PROMOTED(piece));
-                    if(PieceToChar(piece) != '~') return FALSE; /* cannot be a promoted piece */
-                    p++;
-                }
-                board[i][(j++)+gameInfo.holdingsWidth] = piece;
-                if(piece == king) wKingRank = i;
-                if(piece == WHITE_TO_BLACK king) bKingRank = i;
-           } else {
-               return FALSE;
-           }
-       }
-    }
-    while (*p == '/' || *p == ' ') p++;
-
-    if(autoSize && w != 0) appData.NrFiles = w, InitPosition(TRUE);
-
-    /* [HGM] by default clear Crazyhouse holdings, if present */
-    if(gameInfo.holdingsWidth) {
-       for(i=0; i<BOARD_HEIGHT; i++) {
-           board[i][0]             = EmptySquare; /* black holdings */
-           board[i][BOARD_WIDTH-1] = EmptySquare; /* white holdings */
-           board[i][1]             = (ChessSquare) 0; /* black counts */
-           board[i][BOARD_WIDTH-2] = (ChessSquare) 0; /* white counts */
-       }
-    }
-
-    /* [HGM] look for Crazyhouse holdings here */
-    while(*p==' ') p++;
-    if( gameInfo.holdingsWidth && p[-1] == '/' || *p == '[') {
-        int swap=0, wcnt=0, bcnt=0;
-        if(*p == '[') p++;
-        if(*p == '<') swap++, p++;
-        if(*p == '-' ) p++; /* empty holdings */ else {
-            if( !gameInfo.holdingsWidth ) return FALSE; /* no room to put holdings! */
-            /* if we would allow FEN reading to set board size, we would   */
-            /* have to add holdings and shift the board read so far here   */
-            while( (piece = CharToPiece(*p) ) != EmptySquare ) {
-                p++;
-                if((int) piece >= (int) BlackPawn ) {
-                    i = (int)piece - (int)BlackPawn;
-                   i = PieceToNumber((ChessSquare)i);
-                    if( i >= gameInfo.holdingsSize ) return FALSE;
-                    board[BOARD_HEIGHT-1-i][0] = piece; /* black holdings */
-                    board[BOARD_HEIGHT-1-i][1]++;       /* black counts   */
-                    bcnt++;
-                } else {
-                    i = (int)piece - (int)WhitePawn;
-                   i = PieceToNumber((ChessSquare)i);
-                    if( i >= gameInfo.holdingsSize ) return FALSE;
-                    board[i][BOARD_WIDTH-1] = piece;    /* white holdings */
-                    board[i][BOARD_WIDTH-2]++;          /* black holdings */
-                    wcnt++;
-                }
-            }
-            if(subst) { // substitute back-rank question marks by holdings pieces
-                for(j=BOARD_LEFT; j<BOARD_RGHT; j++) {
-                    int k, m, n = bcnt + 1;
-                    if(board[0][j] == ClearBoard) {
-                        if(!wcnt) return FALSE;
-                        n = rand() % wcnt;
-                        for(k=0, m=n; k<gameInfo.holdingsSize; k++) if((m -= board[k][BOARD_WIDTH-2]) < 0) {
-                            board[0][j] = board[k][BOARD_WIDTH-1]; wcnt--;
-                            if(--board[k][BOARD_WIDTH-2] == 0) board[k][BOARD_WIDTH-1] = EmptySquare;
-                            break;
-                        }
-                    }
-                    if(board[BOARD_HEIGHT-1][j] == ClearBoard) {
-                        if(!bcnt) return FALSE;
-                        if(n >= bcnt) n = rand() % bcnt; // use same randomization for black and white if possible
-                        for(k=0, m=n; k<gameInfo.holdingsSize; k++) if((n -= board[BOARD_HEIGHT-1-k][1]) < 0) {
-                            board[BOARD_HEIGHT-1][j] = board[BOARD_HEIGHT-1-k][0]; bcnt--;
-                            if(--board[BOARD_HEIGHT-1-k][1] == 0) board[BOARD_HEIGHT-1-k][0] = EmptySquare;
-                            break;
-                        }
-                    }
-                }
-                subst = 0;
-            }
-        }
-        if(*p == ']') p++;
-    }
-
-    if(subst) return FALSE; // substitution requested, but no holdings
-
-    while(*p == ' ') p++;
-
-    /* Active color */
-    c = *p++;
-    if(appData.colorNickNames) {
-      if( c == appData.colorNickNames[0] ) c = 'w'; else
-      if( c == appData.colorNickNames[1] ) c = 'b';
-    }
-    switch (c) {
-      case 'w':
-        *blackPlaysFirst = FALSE;
-       break;
-      case 'b':
-       *blackPlaysFirst = TRUE;
-       break;
-      default:
-       return FALSE;
-    }
-
-    /* [HGM] We NO LONGER ignore the rest of the FEN notation */
-    /* return the extra info in global variiables             */
-
-    while(*p==' ') p++;
-
-    if(!isdigit(*p) && *p != '-') { // we seem to have castling rights. Make sure they are on the rank the King actually is.
-        if(wKingRank >= 0) for(i=0; i<3; i++) castlingRank[i] = wKingRank;
-        if(bKingRank >= 0) for(i=3; i<6; i++) castlingRank[i] = bKingRank;
-    }
-
-    /* set defaults in case FEN is incomplete */
-    board[EP_STATUS] = EP_UNKNOWN;
-    board[TOUCHED_W] = board[TOUCHED_B] = 0;
-    for(i=0; i<nrCastlingRights; i++ ) {
-        board[CASTLING][i] =
-            appData.fischerCastling ? NoRights : initialRights[i];
-    }   /* assume possible unless obviously impossible */
-    if(initialRights[0]!=NoRights && board[castlingRank[0]][initialRights[0]] != WhiteRook) board[CASTLING][0] = NoRights;
-    if(initialRights[1]!=NoRights && board[castlingRank[1]][initialRights[1]] != WhiteRook) board[CASTLING][1] = NoRights;
-    if(initialRights[2]!=NoRights && board[castlingRank[2]][initialRights[2]] != WhiteUnicorn
-                                 && board[castlingRank[2]][initialRights[2]] != WhiteKing) board[CASTLING][2] = NoRights;
-    if(initialRights[3]!=NoRights && board[castlingRank[3]][initialRights[3]] != BlackRook) board[CASTLING][3] = NoRights;
-    if(initialRights[4]!=NoRights && board[castlingRank[4]][initialRights[4]] != BlackRook) board[CASTLING][4] = NoRights;
-    if(initialRights[5]!=NoRights && board[castlingRank[5]][initialRights[5]] != BlackUnicorn
-                                 && board[castlingRank[5]][initialRights[5]] != BlackKing) board[CASTLING][5] = NoRights;
-    FENrulePlies = 0;
-
-    if(pieceDesc[WhiteKing] && strchr(pieceDesc[WhiteKing], 'i') && !strchr(pieceDesc[WhiteKing], 'O')) { // redefined without castling
-      char *q = p;
-      int w=0, b=0;
-      while(isalpha(*p)) {
-        if(isupper(*p)) w |= 1 << (*p++ - 'A');
-        if(islower(*p)) b |= 1 << (*p++ - 'a');
-      }
-      if(*p == '-') p++;
-      if(p != q) {
-        board[TOUCHED_W] = ~w;
-        board[TOUCHED_B] = ~b;
-        while(*p == ' ') p++;
-      }
-    } else
-
-    if(nrCastlingRights) {
-      int fischer = 0;
-      if(gameInfo.variant == VariantSChess) for(i=0; i<BOARD_FILES; i++) virgin[i] = 0;
-      if(*p >= 'A' && *p <= 'Z' || *p >= 'a' && *p <= 'z' || *p=='-') {
-          /* castling indicator present, so default becomes no castlings */
-          for(i=0; i<nrCastlingRights; i++ ) {
-                 board[CASTLING][i] = NoRights;
-          }
-      }
-      while(*p=='K' || *p=='Q' || *p=='k' || *p=='q' || *p=='-' ||
-             (appData.fischerCastling || gameInfo.variant == VariantSChess) &&
-             ( *p >= 'a' && *p < 'a' + gameInfo.boardWidth) ||
-             ( *p >= 'A' && *p < 'A' + gameInfo.boardWidth)   ) {
-        int c = *p++, whiteKingFile=NoRights, blackKingFile=NoRights;
-
-        for(i=BOARD_LEFT; i<BOARD_RGHT; i++) {
-            if(board[castlingRank[5]][i] == BlackKing) blackKingFile = i;
-            if(board[castlingRank[2]][i] == WhiteKing) whiteKingFile = i;
-        }
-        if(gameInfo.variant == VariantTwoKings || gameInfo.variant == VariantKnightmate)
-            whiteKingFile = blackKingFile = BOARD_WIDTH >> 1; // for these variant scanning fails
-        if(whiteKingFile == NoRights || board[castlingRank[2]][whiteKingFile] != WhiteUnicorn
-                                     && board[castlingRank[2]][whiteKingFile] != WhiteKing) whiteKingFile = NoRights;
-        if(blackKingFile == NoRights || board[castlingRank[5]][blackKingFile] != BlackUnicorn
-                                     && board[castlingRank[5]][blackKingFile] != BlackKing) blackKingFile = NoRights;
-        switch(c) {
-          case'K':
-              for(i=BOARD_RGHT-1; board[castlingRank[2]][i]!=WhiteRook && i>whiteKingFile; i--);
-              board[CASTLING][0] = i != whiteKingFile ? i : NoRights;
-              board[CASTLING][2] = whiteKingFile;
-             if(board[CASTLING][0] != NoRights) virgin[board[CASTLING][0]] |= VIRGIN_W;
-             if(board[CASTLING][2] != NoRights) virgin[board[CASTLING][2]] |= VIRGIN_W;
-              if(whiteKingFile != BOARD_WIDTH>>1|| i != BOARD_RGHT-1) fischer = 1;
-              break;
-          case'Q':
-              for(i=BOARD_LEFT;  i<BOARD_RGHT && board[castlingRank[2]][i]!=WhiteRook && i<whiteKingFile; i++);
-              board[CASTLING][1] = i != whiteKingFile ? i : NoRights;
-              board[CASTLING][2] = whiteKingFile;
-             if(board[CASTLING][1] != NoRights) virgin[board[CASTLING][1]] |= VIRGIN_W;
-             if(board[CASTLING][2] != NoRights) virgin[board[CASTLING][2]] |= VIRGIN_W;
-              if(whiteKingFile != BOARD_WIDTH>>1|| i != BOARD_LEFT) fischer = 1;
-              break;
-          case'k':
-              for(i=BOARD_RGHT-1; board[castlingRank[5]][i]!=BlackRook && i>blackKingFile; i--);
-              board[CASTLING][3] = i != blackKingFile ? i : NoRights;
-              board[CASTLING][5] = blackKingFile;
-             if(board[CASTLING][3] != NoRights) virgin[board[CASTLING][3]] |= VIRGIN_B;
-             if(board[CASTLING][5] != NoRights) virgin[board[CASTLING][5]] |= VIRGIN_B;
-              if(blackKingFile != BOARD_WIDTH>>1|| i != BOARD_RGHT-1) fischer = 1;
-              break;
-          case'q':
-              for(i=BOARD_LEFT; i<BOARD_RGHT && board[castlingRank[5]][i]!=BlackRook && i<blackKingFile; i++);
-              board[CASTLING][4] = i != blackKingFile ? i : NoRights;
-              board[CASTLING][5] = blackKingFile;
-             if(board[CASTLING][4] != NoRights) virgin[board[CASTLING][4]] |= VIRGIN_B;
-             if(board[CASTLING][5] != NoRights) virgin[board[CASTLING][5]] |= VIRGIN_B;
-              if(blackKingFile != BOARD_WIDTH>>1|| i != BOARD_LEFT) fischer = 1;
-          case '-':
-              break;
-          default: /* FRC castlings */
-              if(c >= 'a') { /* black rights */
-                 if(gameInfo.variant == VariantSChess) { virgin[c-AAA] |= VIRGIN_B; break; } // in S-Chess castlings are always kq, so just virginity
-                  for(i=BOARD_LEFT; i<BOARD_RGHT; i++)
-                    if(board[BOARD_HEIGHT-1][i] == BlackKing) break;
-                  if(i == BOARD_RGHT) break;
-                  board[CASTLING][5] = i;
-                  c -= AAA;
-                  if(board[BOARD_HEIGHT-1][c] <  BlackPawn ||
-                     board[BOARD_HEIGHT-1][c] >= BlackKing   ) break;
-                  if(c > i)
-                      board[CASTLING][3] = c;
-                  else
-                      board[CASTLING][4] = c;
-              } else { /* white rights */
-                 if(gameInfo.variant == VariantSChess) { virgin[c-AAA-'A'+'a'] |= VIRGIN_W; break; } // in S-Chess castlings are always KQ
-                  for(i=BOARD_LEFT; i<BOARD_RGHT; i++)
-                    if(board[0][i] == WhiteKing) break;
-                  if(i == BOARD_RGHT) break;
-                  board[CASTLING][2] = i;
-                  c -= AAA - 'a' + 'A';
-                  if(board[0][c] >= WhiteKing) break;
-                  if(c > i)
-                      board[CASTLING][0] = c;
-                  else
-                      board[CASTLING][1] = c;
-              }
-        }
-      }
-      for(i=0; i<nrCastlingRights; i++)
-        if(board[CASTLING][i] != NoRights) initialRights[i] = board[CASTLING][i];
-      if(gameInfo.variant == VariantSChess)
-        for(i=0; i<BOARD_FILES; i++) board[VIRGIN][i] = shuffle ? VIRGIN_W | VIRGIN_B : virgin[i]; // when shuffling assume all virgin
-      if(fischer && shuffle) appData.fischerCastling = TRUE;
-    if (appData.debugMode) {
-        fprintf(debugFP, "FEN castling rights:");
-        for(i=0; i<nrCastlingRights; i++)
-        fprintf(debugFP, " %d", board[CASTLING][i]);
-        fprintf(debugFP, "\n");
-    }
-
-      while(*p==' ') p++;
-    }
-
-    if(shuffle) SetUpShuffle(board, appData.defaultFrcPosition);
-
-    /* read e.p. field in games that know e.p. capture */
-    if(gameInfo.variant != VariantShogi    && gameInfo.variant != VariantXiangqi &&
-       gameInfo.variant != VariantShatranj && gameInfo.variant != VariantCourier &&
-       gameInfo.variant != VariantMakruk && gameInfo.variant != VariantASEAN ) {
-      if(*p=='-') {
-        p++; board[EP_STATUS] = EP_NONE;
-      } else {
-         char c = *p++ - AAA;
-
-         if(c < BOARD_LEFT || c >= BOARD_RGHT) return TRUE;
-         if(*p >= '0' && *p <='9') p++;
-         board[EP_STATUS] = c;
-      }
-    }
-
-
-    if(sscanf(p, "%d", &i) == 1) {
-        FENrulePlies = i; /* 50-move ply counter */
-        /* (The move number is still ignored)    */
-    }
-
-    return TRUE;
-}
-
-void
-EditPositionPasteFEN (char *fen)
-{
-  if (fen != NULL) {
-    Board initial_position;
-
-    if (!ParseFEN(initial_position, &blackPlaysFirst, fen, TRUE)) {
-      DisplayError(_("Bad FEN position in clipboard"), 0);
-      return ;
-    } else {
-      int savedBlackPlaysFirst = blackPlaysFirst;
-      EditPositionEvent();
-      blackPlaysFirst = savedBlackPlaysFirst;
-      CopyBoard(boards[0], initial_position);
-      initialRulePlies = FENrulePlies; /* [HGM] copy FEN attributes as well */
-      EditPositionDone(FALSE); // [HGM] fake: do not fake rights if we had FEN
-      DisplayBothClocks();
-      DrawPosition(FALSE, boards[currentMove]);
-    }
-  }
-}
-
-static char cseq[12] = "\\   ";
-
-Boolean
-set_cont_sequence (char *new_seq)
-{
-    int len;
-    Boolean ret;
-
-    // handle bad attempts to set the sequence
-       if (!new_seq)
-               return 0; // acceptable error - no debug
-
-    len = strlen(new_seq);
-    ret = (len > 0) && (len < sizeof(cseq));
-    if (ret)
-      safeStrCpy(cseq, new_seq, sizeof(cseq)/sizeof(cseq[0]));
-    else if (appData.debugMode)
-      fprintf(debugFP, "Invalid continuation sequence \"%s\"  (maximum length is: %u)\n", new_seq, (unsigned) sizeof(cseq)-1);
-    return ret;
-}
-
-/*
-    reformat a source message so words don't cross the width boundary.  internal
-    newlines are not removed.  returns the wrapped size (no null character unless
-    included in source message).  If dest is NULL, only calculate the size required
-    for the dest buffer.  lp argument indicats line position upon entry, and it's
-    passed back upon exit.
-*/
-int
-wrap (char *dest, char *src, int count, int width, int *lp)
-{
-    int len, i, ansi, cseq_len, line, old_line, old_i, old_len, clen;
-
-    cseq_len = strlen(cseq);
-    old_line = line = *lp;
-    ansi = len = clen = 0;
-
-    for (i=0; i < count; i++)
-    {
-        if (src[i] == '\033')
-            ansi = 1;
-
-        // if we hit the width, back up
-        if (!ansi && (line >= width) && src[i] != '\n' && src[i] != ' ')
-        {
-            // store i & len in case the word is too long
-            old_i = i, old_len = len;
-
-            // find the end of the last word
-            while (i && src[i] != ' ' && src[i] != '\n')
-            {
-                i--;
-                len--;
-            }
-
-            // word too long?  restore i & len before splitting it
-            if ((old_i-i+clen) >= width)
-            {
-                i = old_i;
-                len = old_len;
-            }
-
-            // extra space?
-            if (i && src[i-1] == ' ')
-                len--;
-
-            if (src[i] != ' ' && src[i] != '\n')
-            {
-                i--;
-                if (len)
-                    len--;
-            }
-
-            // now append the newline and continuation sequence
-            if (dest)
-                dest[len] = '\n';
-            len++;
-            if (dest)
-                strncpy(dest+len, cseq, cseq_len);
-            len += cseq_len;
-            line = cseq_len;
-            clen = cseq_len;
-            continue;
-        }
-
-        if (dest)
-            dest[len] = src[i];
-        len++;
-        if (!ansi)
-            line++;
-        if (src[i] == '\n')
-            line = 0;
-        if (src[i] == 'm')
-            ansi = 0;
-    }
-    if (dest && appData.debugMode)
-    {
-        fprintf(debugFP, "wrap(count:%d,width:%d,line:%d,len:%d,*lp:%d,src: ",
-            count, width, line, len, *lp);
-        show_bytes(debugFP, src, count);
-        fprintf(debugFP, "\ndest: ");
-        show_bytes(debugFP, dest, len);
-        fprintf(debugFP, "\n");
-    }
-    *lp = dest ? line : old_line;
-
-    return len;
-}
-
-// [HGM] vari: routines for shelving variations
-Boolean modeRestore = FALSE;
-
-void
-PushInner (int firstMove, int lastMove)
-{
-       int i, j, nrMoves = lastMove - firstMove;
-
-       // push current tail of game on stack
-       savedResult[storedGames] = gameInfo.result;
-       savedDetails[storedGames] = gameInfo.resultDetails;
-       gameInfo.resultDetails = NULL;
-       savedFirst[storedGames] = firstMove;
-       savedLast [storedGames] = lastMove;
-       savedFramePtr[storedGames] = framePtr;
-       framePtr -= nrMoves; // reserve space for the boards
-       for(i=nrMoves; i>=1; i--) { // copy boards to stack, working downwards, in case of overlap
-           CopyBoard(boards[framePtr+i], boards[firstMove+i]);
-           for(j=0; j<MOVE_LEN; j++)
-               moveList[framePtr+i][j] = moveList[firstMove+i-1][j];
-           for(j=0; j<2*MOVE_LEN; j++)
-               parseList[framePtr+i][j] = parseList[firstMove+i-1][j];
-           timeRemaining[0][framePtr+i] = timeRemaining[0][firstMove+i];
-           timeRemaining[1][framePtr+i] = timeRemaining[1][firstMove+i];
-           pvInfoList[framePtr+i] = pvInfoList[firstMove+i-1];
-           pvInfoList[firstMove+i-1].depth = 0;
-           commentList[framePtr+i] = commentList[firstMove+i];
-           commentList[firstMove+i] = NULL;
-       }
-
-       storedGames++;
-       forwardMostMove = firstMove; // truncate game so we can start variation
-}
-
-void
-PushTail (int firstMove, int lastMove)
-{
-       if(appData.icsActive) { // only in local mode
-               forwardMostMove = currentMove; // mimic old ICS behavior
-               return;
-       }
-       if(storedGames >= MAX_VARIATIONS-2) return; // leave one for PV-walk
-
-       PushInner(firstMove, lastMove);
-       if(storedGames == 1) GreyRevert(FALSE);
-       if(gameMode == PlayFromGameFile) gameMode = EditGame, modeRestore = TRUE;
-}
-
-void
-PopInner (Boolean annotate)
-{
-       int i, j, nrMoves;
-       char buf[8000], moveBuf[20];
-
-       ToNrEvent(savedFirst[storedGames-1]); // sets currentMove
-       storedGames--; // do this after ToNrEvent, to make sure HistorySet will refresh entire game after PopInner returns
-       nrMoves = savedLast[storedGames] - currentMove;
-       if(annotate) {
-               int cnt = 10;
-               if(!WhiteOnMove(currentMove))
-                 snprintf(buf, sizeof(buf)/sizeof(buf[0]),"(%d...", (currentMove+2)>>1);
-               else safeStrCpy(buf, "(", sizeof(buf)/sizeof(buf[0]));
-               for(i=currentMove; i<forwardMostMove; i++) {
-                       if(WhiteOnMove(i))
-                         snprintf(moveBuf, sizeof(moveBuf)/sizeof(moveBuf[0]), " %d. %s", (i+2)>>1, SavePart(parseList[i]));
-                       else snprintf(moveBuf, sizeof(moveBuf)/sizeof(moveBuf[0])," %s", SavePart(parseList[i]));
-                       strcat(buf, moveBuf);
-                       if(commentList[i]) { strcat(buf, " "); strcat(buf, commentList[i]); }
-                       if(!--cnt) { strcat(buf, "\n"); cnt = 10; }
-               }
-               strcat(buf, ")");
-       }
-       for(i=1; i<=nrMoves; i++) { // copy last variation back
-           CopyBoard(boards[currentMove+i], boards[framePtr+i]);
-           for(j=0; j<MOVE_LEN; j++)
-               moveList[currentMove+i-1][j] = moveList[framePtr+i][j];
-           for(j=0; j<2*MOVE_LEN; j++)
-               parseList[currentMove+i-1][j] = parseList[framePtr+i][j];
-           timeRemaining[0][currentMove+i] = timeRemaining[0][framePtr+i];
-           timeRemaining[1][currentMove+i] = timeRemaining[1][framePtr+i];
-           pvInfoList[currentMove+i-1] = pvInfoList[framePtr+i];
-           if(commentList[currentMove+i]) free(commentList[currentMove+i]);
-           commentList[currentMove+i] = commentList[framePtr+i];
-           commentList[framePtr+i] = NULL;
-       }
-       if(annotate) AppendComment(currentMove+1, buf, FALSE);
-       framePtr = savedFramePtr[storedGames];
-       gameInfo.result = savedResult[storedGames];
-       if(gameInfo.resultDetails != NULL) {
-           free(gameInfo.resultDetails);
-      }
-       gameInfo.resultDetails = savedDetails[storedGames];
-       forwardMostMove = currentMove + nrMoves;
-}
-
-Boolean
-PopTail (Boolean annotate)
-{
-       if(appData.icsActive) return FALSE; // only in local mode
-       if(!storedGames) return FALSE; // sanity
-       CommentPopDown(); // make sure no stale variation comments to the destroyed line can remain open
-
-       PopInner(annotate);
-       if(currentMove < forwardMostMove) ForwardEvent(); else
-       HistorySet(parseList, backwardMostMove, forwardMostMove, currentMove-1);
-
-       if(storedGames == 0) { GreyRevert(TRUE); if(modeRestore) modeRestore = FALSE, gameMode = PlayFromGameFile; }
-       return TRUE;
-}
-
-void
-CleanupTail ()
-{      // remove all shelved variations
-       int i;
-       for(i=0; i<storedGames; i++) {
-           if(savedDetails[i])
-               free(savedDetails[i]);
-           savedDetails[i] = NULL;
-       }
-       for(i=framePtr; i<MAX_MOVES; i++) {
-               if(commentList[i]) free(commentList[i]);
-               commentList[i] = NULL;
-       }
-       framePtr = MAX_MOVES-1;
-       storedGames = 0;
-}
-
-void
-LoadVariation (int index, char *text)
-{       // [HGM] vari: shelve previous line and load new variation, parsed from text around text[index]
-       char *p = text, *start = NULL, *end = NULL, wait = NULLCHAR;
-       int level = 0, move;
-
-       if(gameMode != EditGame && gameMode != AnalyzeMode && gameMode != PlayFromGameFile) return;
-       // first find outermost bracketing variation
-       while(*p) { // hope I got this right... Non-nesting {} and [] can screen each other and nesting ()
-           if(!wait) { // while inside [] pr {}, ignore everyting except matching closing ]}
-               if(*p == '{') wait = '}'; else
-               if(*p == '[') wait = ']'; else
-               if(*p == '(' && level++ == 0 && p-text < index) start = p+1;
-               if(*p == ')' && level > 0 && --level == 0 && p-text > index && end == NULL) end = p-1;
-           }
-           if(*p == wait) wait = NULLCHAR; // closing ]} found
-           p++;
-       }
-       if(!start || !end) return; // no variation found, or syntax error in PGN: ignore click
-       if(appData.debugMode) fprintf(debugFP, "at move %d load variation '%s'\n", currentMove, start);
-       end[1] = NULLCHAR; // clip off comment beyond variation
-       ToNrEvent(currentMove-1);
-       PushTail(currentMove, forwardMostMove); // shelve main variation. This truncates game
-       // kludge: use ParsePV() to append variation to game
-       move = currentMove;
-       ParsePV(start, TRUE, TRUE);
-       forwardMostMove = endPV; endPV = -1; currentMove = move; // cleanup what ParsePV did
-       ClearPremoveHighlights();
-       CommentPopDown();
-       ToNrEvent(currentMove+1);
-}
-
-void
-LoadTheme ()
-{
-    char *p, *q, buf[MSG_SIZ];
-    if(engineLine && engineLine[0]) { // a theme was selected from the listbox
-       snprintf(buf, MSG_SIZ, "-theme %s", engineLine);
-       ParseArgsFromString(buf);
-       ActivateTheme(TRUE); // also redo colors
-       return;
-    }
-    p = nickName;
-    if(*p && !strchr(p, '"')) // theme name specified and well-formed; add settings to theme list
-    {
-       int len;
-       q = appData.themeNames;
-       snprintf(buf, MSG_SIZ, "\"%s\"", nickName);
-      if(appData.useBitmaps) {
-       snprintf(buf+strlen(buf), MSG_SIZ-strlen(buf), " -ubt true -lbtf \"%s\" -dbtf \"%s\" -lbtm %d -dbtm %d",
-               appData.liteBackTextureFile, appData.darkBackTextureFile,
-               appData.liteBackTextureMode,
-               appData.darkBackTextureMode );
-      } else {
-       snprintf(buf+strlen(buf), MSG_SIZ-strlen(buf), " -ubt false -lsc %s -dsc %s",
-               Col2Text(2),   // lightSquareColor
-               Col2Text(3) ); // darkSquareColor
-      }
-      if(appData.useBorder) {
-       snprintf(buf+strlen(buf), MSG_SIZ-strlen(buf), " -ub true -border \"%s\"",
-               appData.border);
-      } else {
-       snprintf(buf+strlen(buf), MSG_SIZ-strlen(buf), " -ub false");
-      }
-      if(appData.useFont) {
-       snprintf(buf+strlen(buf), MSG_SIZ-strlen(buf), " -upf true -pf \"%s\" -fptc \"%s\" -fpfcw %s -fpbcb %s",
-               appData.renderPiecesWithFont,
-               appData.fontToPieceTable,
-               Col2Text(9),    // appData.fontBackColorWhite
-               Col2Text(10) ); // appData.fontForeColorBlack
-      } else {
-       snprintf(buf+strlen(buf), MSG_SIZ-strlen(buf), " -upf false -pid \"%s\"",
-               appData.pieceDirectory);
-       if(!appData.pieceDirectory[0])
-         snprintf(buf+strlen(buf), MSG_SIZ-strlen(buf), " -wpc %s -bpc %s",
-               Col2Text(0),   // whitePieceColor
-               Col2Text(1) ); // blackPieceColor
-      }
-      snprintf(buf+strlen(buf), MSG_SIZ-strlen(buf), " -hsc %s -phc %s\n",
-               Col2Text(4),   // highlightSquareColor
-               Col2Text(5) ); // premoveHighlightColor
-       appData.themeNames = malloc(len = strlen(q) + strlen(buf) + 1);
-       if(insert != q) insert[-1] = NULLCHAR;
-       snprintf(appData.themeNames, len, "%s\n%s%s", q, buf, insert);
-       if(q)   free(q);
-    }
-    ActivateTheme(FALSE);
-}
diff --git a/backend.h b/backend.h
deleted file mode 100644 (file)
index fadc926..0000000
--- a/backend.h
+++ /dev/null
@@ -1,446 +0,0 @@
-/*
- * backend.h -- Interface exported by XBoard back end
- *
- * Copyright 1991 by Digital Equipment Corporation, Maynard,
- * Massachusetts.
- *
- * Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006,
- * 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free
- * Software Foundation, Inc.
- *
- * Enhancements Copyright 2005 Alessandro Scotti
- *
- * The following terms apply to Digital Equipment Corporation's copyright
- * interest in XBoard:
- * ------------------------------------------------------------------------
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notice appear in all copies and that
- * both that copyright notice and this permission notice appear in
- * supporting documentation, and that the name of Digital not be
- * used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- *
- * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- * ------------------------------------------------------------------------
- *
- * The following terms apply to the enhanced version of XBoard
- * distributed by the Free Software Foundation:
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-#ifndef XB_BACKEND
-#define XB_BACKEND
-
-#include "lists.h"
-
-typedef int (*FileProc) P((FILE *f, int n, char *title));
-
-extern char *wbOptions;
-extern int gotPremove;
-extern GameMode gameMode;
-extern int matchMode;
-extern int matchGame;
-extern int pausing, cmailMsgLoaded, flipView, mute;
-extern char white_holding[], black_holding[];
-extern int currentMove, backwardMostMove, forwardMostMove;
-extern int blackPlaysFirst;
-extern FILE *debugFP;
-extern char* programVersion;
-extern Board boards[];
-extern char marker[BOARD_RANKS][BOARD_FILES];
-extern char lastMsg[MSG_SIZ];
-extern Boolean bookUp;
-extern Boolean addToBookFlag;
-extern int tinyLayout, smallLayout;
-extern Boolean mcMode;
-extern int dragging;
-extern char variantError[];
-extern char lastTalker[];
-
-void MarkMenuItem P((char *menuRef, int state));
-char *CmailMsg P((void));
-/* Tord: Added the useFEN960 parameter in PositionToFEN() below */
-char *PositionToFEN P((int move, char* useFEN960, int moveCounts));
-void AlphaRank P((char *s, int n)); /* [HGM] Shogi move preprocessor */
-void EditPositionPasteFEN P((char *fen));
-void TimeDelay P((long ms));
-void SendMultiLineToICS P(( char *text ));
-void AnalysisPeriodicEvent P((int force));
-void SetWhiteToPlayEvent P((void));
-void SetBlackToPlayEvent P((void));
-void UploadGameEvent P((void));
-void InitBackEnd1 P((void));
-void InitBackEnd2 P((void));
-int HasPromotionChoice P((int fromX, int fromY, int toX, int toY, char *choice, int sweep));
-int InPalace P((int row, int column));
-int PieceForSquare P((int x, int y));
-int OKToStartUserMove P((int x, int y));
-void Reset P((int redraw, int init));
-void ResetGameEvent P((void));
-Boolean HasPattern P(( const char * text, const char * pattern ));
-Boolean SearchPattern P(( const char * text, const char * pattern ));
-int LoadGame P((FILE *f, int n, char *title, int useList));
-int LoadGameFromFile P((char *filename, int n, char *title, int useList));
-int CmailLoadGame P((FILE *f, int n, char *title, int useList));
-int ReloadGame P((int offset));
-int SaveSelected P((FILE *f, int dummy, char *dummy2));
-int SaveGame P((FILE *f, int dummy, char *dummy2));
-int SaveGameToFile P((char *filename, int append));
-int LoadPosition P((FILE *f, int n, char *title));
-int ReloadPosition P((int offset));
-int SavePosition P((FILE *f, int dummy, char *dummy2));
-int DrawSeekGraph P(());
-int SeekGraphClick P((ClickType click, int x, int y, int moving));
-void EditPositionEvent P((void));
-void FlipViewEvent P((void));
-void MachineWhiteEvent P((void));
-void MachineBlackEvent P((void));
-void TwoMachinesEvent P((void));
-void EditGameEvent P((void));
-void TrainingEvent P((void));
-void IcsClientEvent P((void));
-void ForwardEvent P((void));
-void BackwardEvent P((void));
-void ToEndEvent P((void));
-void ToStartEvent P((void));
-void ToNrEvent P((int to));
-void RevertEvent P((Boolean annotate));
-void RetractMoveEvent P((void));
-void MoveNowEvent P((void));
-void TruncateGameEvent P((void));
-void PauseEvent P((void));
-void CallFlagEvent P((void));
-void ClockClick P((int which));
-void AcceptEvent P((void));
-void DeclineEvent P((void));
-void RematchEvent P((void));
-void DrawEvent P((void));
-void AbortEvent P((void));
-void AdjournEvent P((void));
-void ResignEvent P((void));
-void UserAdjudicationEvent P((int result));
-void StopObservingEvent P((void));
-void StopExaminingEvent P((void));
-void PonderNextMoveEvent P((int newState));
-void ShowThinkingEvent P(());
-void PeriodicUpdatesEvent P((int newState));
-void HintEvent P((void));
-void BookEvent P((void));
-void AboutGameEvent P((void));
-void ExitEvent P((int status));
-char *DefaultFileName P((char *));
-ChessMove UserMoveTest P((int fromX, int fromY, int toX, int toY, int promoChar, Boolean captureOwn));
-void UserMoveEvent P((int fromX, int fromY, int toX, int toY, int promoChar));
-void DecrementClocks P((void));
-char *TimeString P((long millisec));
-void AutoPlayGameLoop P((void));
-void AdjustClock P((Boolean which, int dir));
-void DisplayBothClocks P((void));
-void EditPositionMenuEvent P((ChessSquare selection, int x, int y));
-void DropMenuEvent P((ChessSquare selection, int x, int y));
-int ParseTimeControl P((char *tc, float ti, int mps));
-void EscapeExpand(char *p, char *q);
-void ProcessICSInitScript P((FILE * f));
-void EditCommentEvent P((void));
-void ReplaceComment P((int index, char *text));
-int ReplaceTags P((char *tags, GameInfo *gi));/* returns nonzero on error */
-void AppendComment P((int index, char *text, Boolean addBraces));
-void LoadVariation P((int index, char *text));
-void ReloadCmailMsgEvent P((int unregister));
-void MailMoveEvent P((void));
-void EditTagsEvent P((void));
-void GetMoveListEvent P((void));
-void ExitAnalyzeMode P((void));
-int  AnalyzeModeEvent P((void));
-void AnalyzeFileEvent P((void));
-void MatchEvent P((int mode));
-void RecentEngineEvent P((int nr));
-void TypeInEvent P((char first));
-void TypeInDoneEvent P((char *move));
-void InitPosition P((int redraw));
-void NewSettingEvent P((int option, int *feature, char *command, int value));
-void SettingsMenuIfReady P((void));
-void DoEcho P((void));
-void DontEcho P((void));
-void TidyProgramName P((char *prog, char *host, char *buf));
-void SetGameInfo P((void));
-void AskQuestionEvent P((char *title, char *question,
-                        char *replyPrefix, char *which));
-Boolean ParseOneMove P((char *move, int moveNum,
-                       ChessMove *moveType, int *fromX, int *fromY,
-                       int *toX, int *toY, char *promoChar));
-char *VariantName P((VariantClass v));
-VariantClass StringToVariant P((char *e));
-double u64ToDouble P((u64 value));
-void OutputChatMessage P((int partner, char *mess));
-void EditPositionDone P((Boolean fakeRights));
-Boolean GetArgValue P((char *name));
-Boolean LoadPV P((int x, int y));
-Boolean LoadMultiPV P((int x, int y, char *buf, int index, int *start, int *end, int pane));
-void UnLoadPV P(());
-void MovePV P((int x, int y, int h));
-int PromoScroll P((int x, int y));
-void EditBookEvent P((void));
-Boolean DisplayBook P((int moveNr));
-void SaveToBook P((char *text));
-void AddBookMove P((char *text));
-void PlayBookMove P((char *text, int index));
-void HoverEvent P((int hiX, int hiY, int x, int y));
-int PackGame P((Board board));
-Boolean ParseFEN P((Board board, int *blackPlaysFirst, char *fen, Boolean autoSize));
-void ApplyMove P((int fromX, int fromY, int toX, int toY, int promoChar, Board board));
-void PackMove P((int fromX, int fromY, int toX, int toY, ChessSquare promoPiece));
-void ics_printf P((char *format, ...));
-int GetEngineLine P((char *nick, int engine));
-void AddGameToBook P((int always));
-void FlushBook P((void));
-char PieceToChar P((ChessSquare p));
-int LoadPieceDesc P((char *s));
-
-char *StrStr P((char *string, char *match));
-char *StrCaseStr P((char *string, char *match));
-char *StrSave P((char *s));
-char *StrSavePtr P((char *s, char **savePtr));
-char *SavePart P((char *));
-char* safeStrCpy P(( char *dst, const char *src, size_t count ));
-
-#ifndef _amigados
-int StrCaseCmp P((char *s1, char *s2));
-int ToLower P((int c));
-int ToUpper P((int c));
-#else
-#define StrCaseCmp Stricmp  /*  Use utility.library functions   */
-#include <proto/utility.h>
-#endif
-
-extern GameInfo gameInfo;
-
-/* ICS vars used with backend.c and zippy.c */
-enum ICS_TYPE { ICS_GENERIC, ICS_ICC, ICS_FICS, ICS_CHESSNET /* not really supported */ };
-enum ICS_TYPE ics_type;
-
-/* pgntags.c prototypes
- */
-char *PGNTags P((GameInfo *));
-void PrintPGNTags P((FILE *f, GameInfo *));
-int ParsePGNTag P((char *, GameInfo *));
-char *PGNResult P((ChessMove result));
-
-
-/* gamelist.c prototypes
- */
-/* A game node in the double linked list of games.
- */
-typedef struct XB_ListGame {
-    ListNode node;
-    int number;
-    int position;
-    int moves;
-    unsigned long offset;   /*  Byte offset of game within file.     */
-    GameInfo gameInfo;      /*  Note that some entries may be NULL. */
-} ListGame;
-
-extern int border;
-extern int doubleClick;
-extern int storedGames;
-extern int opponentKibitzes;
-extern ChessSquare gatingPiece;
-extern List gameList;
-extern int lastLoadGameNumber;
-void ClearGameInfo P((GameInfo *));
-int GameListBuild P((FILE *));
-void GameListInitGameInfo P((GameInfo *));
-char *GameListLine P((int, GameInfo *));
-char * GameListLineFull P(( int, GameInfo *));
-void InitSearch P((void));
-int GameContainsPosition P((FILE *f, ListGame *lg));
-void GLT_TagsToList P(( char * tags ));
-void GLT_ParseList P((void));
-int NamesToList P((char *name, char **engines, char **mnemonics, char *group));
-int CreateTourney P((char *name));
-char *MakeName P((char *templ));
-void SwapEngines P((int n));
-void Substitute P((char *participants, int expunge));
-
-extern char* StripHighlight P((char *));  /* returns static data */
-extern char* StripHighlightAndTitle P((char *));  /* returns static data */
-extern void ics_update_width P((int new_width));
-extern Boolean set_cont_sequence P((char *new_seq));
-extern int wrap P((char *dest, char *src, int count, int width, int *lp));
-int Explode P((Board board, int fromX, int fromY, int toX, int toY));
-
-typedef enum { CheckBox, ComboBox, TextBox, Button, Spin, ResetButton, SaveButton, ListBox, Graph, PopUp,
-                FileName, PathName, Slider, Message, Fractional, Label, Icon,
-                BoxBegin, BoxEnd, BarBegin, BarEnd, DropDown, Break, EndMark, Skip } Control;
-
-typedef struct XB_OPT {   // [HGM] options: descriptor of UCI-style option
-    int value;          // current setting, starts as default
-    int min;           // Also used for flags
-    int max;
-    void *handle;       // for use by front end
-    void *target;       // for use by front end
-    char *textValue;    // points to beginning of text value in name field
-    char **choice;      // points to array of combo choices in cps->combo
-    Control type;
-    char *name;         // holds both option name and text value (in allocated memory)
-    char **font;
-} Option;
-
-typedef struct XB_CPS {
-    char *which;
-    int maybeThinking;
-    ProcRef pr;
-    InputSourceRef isr;
-    char *twoMachinesColor; /* "white\n" or "black\n" */
-    char *program;
-    char *host;
-    char *dir;
-    struct XB_CPS *other;
-    char *initString;
-    char *computerString;
-    int sendTime; /* 0=don't, 1=do, 2=test */
-    int sendDrawOffers;
-    int useSigint;
-    int useSigterm;
-    int offeredDraw; /* countdown */
-    int reuse;
-    int useSetboard; /* 0=use "edit"; 1=use "setboard" */
-    int extendedEdit;/* 1=also set holdings with "edit" */
-    int useSAN;      /* 0=use coordinate notation; 1=use SAN */
-    int usePing;     /* 0=not OK to use ping; 1=OK */
-    int lastPing;
-    int lastPong;
-    int usePlayother;/* 0=not OK to use playother; 1=OK */
-    int useColors;   /* 0=avoid obsolete white/black commands; 1=use them */
-    int useUsermove; /* 0=just send move; 1=send "usermove move" */
-    int sendICS;     /* 0=don't use "ics" command; 1=do */
-    int sendName;    /* 0=don't use "name" command; 1=do */
-    int sdKludge;    /* 0=use "sd DEPTH" command; 1=use "depth\nDEPTH" */
-    int stKludge;    /* 0=use "st TIME" command; 1=use "level 1 TIME" */
-    int excludeMoves;/* 0=don't use "exclude" command; 1=do */
-    char *tidy;
-    int matchWins;
-    char *variants;
-    int analysisSupport;
-    int analyzing;
-    int protocolVersion;
-    int initDone;
-    int pseudo;
-
-    /* Added by Tord: */
-    int useFEN960;   /* 0=use "KQkq" style FENs, 1=use "HAha" style FENs */
-    int useOOCastle; /* 0="O-O" notation for castling, 1="king capture rook" notation */
-    /* End of additions by Tord */
-
-    int scoreIsAbsolute; /* [AS] 0=don't know (standard), 1=score is always from white side */
-    int isUCI;           /* [AS] 0=no (Winboard), 1=UCI (requires Polyglot) */
-    int hasOwnBookUCI;   /* [AS] 0=use GUI or Polyglot book, 1=has own book */
-
-    /* [HGM] time odds */
-    float timeOdds; /* factor through which we divide time for this engine  */
-    int debug;      /* [HGM] ignore engine debug lines starting with '#'    */
-    int maxNrOfSessions; /* [HGM] secondary TC: max args in 'level' command */
-    int accumulateTC; /* [HGM] secondary TC: how to handle extra sessions   */
-    int drawDepth;    /* [HGM] egbb: search depth to play egbb draws        */
-    int nps;          /* [HGM] nps: factor for node count to replace time   */
-    int supportsNPS;
-    int alphaRank;    /* [HGM] shogi: engine uses shogi-type coordinates    */
-    int maxCores;     /* [HGM] SMP: engine understands cores command        */
-    int memSize;      /* [HGM] memsize: engine understands memory command   */
-    char *egtFormats; /* [HGM] EGT: supported tablebase formats             */
-    int bookSuspend;  /* [HGM] book: go was deferred because of book hit    */
-    int pause;        /* [HGM] pause: 1=supports it, 2=actually paused      */
-    int highlight;    /* [HGM] engine wants to get lift and put commands    */
-    int nrOptions;    /* [HGM] options: remembered option="..." features    */
-#define MAX_OPTIONS 200
-    Option option[MAX_OPTIONS];
-    int comboCnt;
-    char *comboList[20*MAX_OPTIONS];
-    char *optionSettings;
-    void *programLogo; /* [HGM] logo: bitmap of the logo                    */
-    char *fenOverride; /* [HGM} FRC: force FEN casling & ep fields by hand  */
-    char userError;    /* [HGM] crash: flag to suppress fatal-error messages*/
-    char reload;       /* [HGM] options: flag to resend options with xreuse */
-} ChessProgramState;
-
-extern ChessProgramState first, second;
-
-/* Search stats from chessprogram */
-typedef struct {
-  char movelist[2*MSG_SIZ]; /* Last PV we were sent */
-  int depth;              /* Current search depth */
-  int nr_moves;           /* Total nr of root moves */
-  int moves_left;         /* Moves remaining to be searched */
-  char move_name[MOVE_LEN];  /* Current move being searched, if provided */
-  u64 nodes;    /* # of nodes searched */
-  int time;               /* Search time (centiseconds) */
-  int score;              /* Score (centipawns) */
-  int got_only_move;      /* If last msg was "(only move)" */
-  int got_fail;           /* 0 - nothing, 1 - got "--", 2 - got "++" */
-  int ok_to_send;         /* handshaking between send & recv */
-  int line_is_book;       /* 1 if movelist is book moves */
-  int seen_stat;          /* 1 if we've seen the stat01: line */
-} ChessProgramStats;
-
-extern ChessProgramStats_Move pvInfoList[MAX_MOVES];
-extern Boolean shuffleOpenings;
-extern ChessProgramStats programStats;
-extern int opponentKibitzes; // used by wengineo.c
-extern int errorExitStatus;
-extern char *recentEngines;
-extern char *comboLine;
-extern Boolean partnerUp, twoBoards;
-extern char engineVariant[];
-char *EngineDefinedVariant P((ChessProgramState *cps, int n));
-void SettingsPopUp P((ChessProgramState *cps)); // [HGM] really in front-end, but CPS not known in frontend.h
-int WaitForEngine P((ChessProgramState *cps, DelayedEventCallback x));
-void Load P((ChessProgramState *cps, int n));
-int MultiPV P((ChessProgramState *cps, int kind));
-void MoveHistorySet P(( char movelist[][2*MOVE_LEN], int first, int last, int current, ChessProgramStats_Move * pvInfo ));
-void MakeEngineOutputTitle P((void));
-void LoadTheme P((void));
-void CreateBookEvent P((void));
-char *SupportedVariant P((char *list, VariantClass v, int w, int h, int s, int proto, char *engine));
-char *CollectPieceDescriptors P((void));
-void RefreshSettingsDialog P((ChessProgramState *cps, int val));
-void StartChessProgram P((ChessProgramState *cps));
-void SendToICS P((char *s));
-int PosFlags P((int n));
-
-
-/* A point in time */
-typedef struct {
-    long sec;  /* Assuming this is >= 32 bits */
-    int ms;    /* Assuming this is >= 16 bits */
-} TimeMark;
-
-extern TimeMark programStartTime;
-
-void GetTimeMark P((TimeMark *));
-long SubtractTimeMarks P((TimeMark *, TimeMark *));
-
-#endif /* XB_BACKEND */
diff --git a/backendz.h b/backendz.h
deleted file mode 100644 (file)
index 8946e62..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * backendz.h -- Internal interface exported by XBoard backend.c to zippy.c
- *
- * Copyright 1991 by Digital Equipment Corporation, Maynard,
- * Massachusetts.
- *
- * Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006,
- * 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free
- * Software Foundation, Inc.
- *
- * Enhancements Copyright 2005 Alessandro Scotti
- *
- * The following terms apply to Digital Equipment Corporation's copyright
- * interest in XBoard:
- * ------------------------------------------------------------------------
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notice appear in all copies and that
- * both that copyright notice and this permission notice appear in
- * supporting documentation, and that the name of Digital not be
- * used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- *
- * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- * ------------------------------------------------------------------------
- *
- * The following terms apply to the enhanced version of XBoard
- * distributed by the Free Software Foundation:
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-#ifndef XB_BACKENDZ
-#define XB_BACKENDZ
-
-extern long whiteTimeRemaining, blackTimeRemaining;
-extern int forwardMostMove;
-extern char star_match[STAR_MATCH_N][MSG_SIZ];
-extern ProcRef firstProgramPR;
-extern int startedFromSetupPosition;
-extern int firstMove;
-extern GameInfo gameInfo;
-extern void ics_printf P((char *format, ...));
-extern void SendToICS P((char *s));
-extern int looking_at P((char *, int *, char *));
-extern void SendToProgram P((char *message, ChessProgramState *cps));
-extern void SendBoard P((ChessProgramState *cps, int moveNum));
-void SendTimeRemaining P((ChessProgramState *cps,
-                         int/*boolean*/ machineWhite));
-
-extern char ics_handle[];
-extern char *ics_prefix;
-
-#endif
diff --git a/bitmaps/checkmark.bm b/bitmaps/checkmark.bm
deleted file mode 100644 (file)
index 869e77b..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-#define checkmark_width 11
-#define checkmark_height 11
-
-static unsigned char checkmark_bits[] = {
- 0x0f, 0x04, 0x0f, 0x02, 0x1e, 0x01, 0x3c, 0x01, 0xb8, 0x00, 0x58, 0x00,
- 0xe8, 0x00, 0xe4, 0x01, 0xc4, 0x03, 0xc2, 0x03, 0x81, 0x07 };
diff --git a/bitmaps/icon_black.bm b/bitmaps/icon_black.bm
deleted file mode 100644 (file)
index b7c120e..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#define icon_black_width 32
-#define icon_black_height 32
-static unsigned char icon_black_bits[] = {
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbe, 0xff, 0xff,
-   0xff, 0x9c, 0xff, 0xff, 0xff, 0x18, 0xff, 0xff, 0xff, 0x00, 0xfc, 0xff,
-   0xff, 0x18, 0xf3, 0xff, 0x7f, 0x04, 0xcc, 0xff, 0x7f, 0x00, 0x90, 0xff,
-   0x3f, 0x06, 0x20, 0xff, 0x3f, 0x01, 0x40, 0xfe, 0x3f, 0x01, 0xc0, 0xfe,
-   0x1f, 0x00, 0x80, 0xfc, 0x1f, 0x00, 0x80, 0xfd, 0x0f, 0x00, 0x01, 0xf9,
-   0x0f, 0x00, 0x00, 0xfb, 0x07, 0x00, 0x00, 0xfa, 0x07, 0xc0, 0x00, 0xf6,
-   0x13, 0xf0, 0x00, 0xf6, 0x13, 0x78, 0x00, 0xf6, 0x43, 0x7c, 0x00, 0xf6,
-   0x03, 0x3e, 0x00, 0xf4, 0x07, 0x1f, 0x00, 0xec, 0xff, 0x0f, 0x00, 0xec,
-   0xff, 0x07, 0x00, 0xec, 0xff, 0x03, 0x00, 0xec, 0xff, 0x03, 0x00, 0xec,
-   0xff, 0x01, 0x00, 0xec, 0xff, 0x01, 0x00, 0xe8, 0xff, 0x01, 0x00, 0xe0,
-   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
diff --git a/bitmaps/icon_white.bm b/bitmaps/icon_white.bm
deleted file mode 100644 (file)
index 8c3c98e..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#define icon_white_width 32
-#define icon_white_height 32
-static unsigned char icon_white_bits[] = {
-   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00,
-   0x00, 0x63, 0x00, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, 0xff, 0x03, 0x00,
-   0x00, 0xe7, 0x0c, 0x00, 0x80, 0xfb, 0x33, 0x00, 0x80, 0xff, 0x6f, 0x00,
-   0xc0, 0xf9, 0xdf, 0x00, 0xc0, 0xfe, 0xbf, 0x01, 0xc0, 0xfe, 0x3f, 0x01,
-   0xe0, 0xff, 0x7f, 0x03, 0xe0, 0xff, 0x7f, 0x02, 0xf0, 0xff, 0xfe, 0x06,
-   0xf0, 0xff, 0xff, 0x04, 0xf8, 0xff, 0xff, 0x05, 0xf8, 0x3f, 0xff, 0x09,
-   0xec, 0x0f, 0xff, 0x09, 0xec, 0x87, 0xff, 0x09, 0xbc, 0x83, 0xff, 0x09,
-   0xfc, 0xc1, 0xff, 0x0b, 0xf8, 0xe0, 0xff, 0x13, 0x00, 0xf0, 0xff, 0x13,
-   0x00, 0xf8, 0xff, 0x13, 0x00, 0xfc, 0xff, 0x13, 0x00, 0xfc, 0xff, 0x13,
-   0x00, 0xfe, 0xff, 0x13, 0x00, 0xfe, 0xff, 0x17, 0x00, 0xfe, 0xff, 0x1f,
-   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/board.c b/board.c
deleted file mode 100644 (file)
index a0ce36e..0000000
--- a/board.c
+++ /dev/null
@@ -1,1286 +0,0 @@
-/*
- * board.c -- platform-independent drawing code for XBoard
- *
- * Copyright 1991 by Digital Equipment Corporation, Maynard,
- * Massachusetts.
- *
- * Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006,
- * 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free
- * Software Foundation, Inc.
- *
- * The following terms apply to Digital Equipment Corporation's copyright
- * interest in XBoard:
- * ------------------------------------------------------------------------
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notice appear in all copies and that
- * both that copyright notice and this permission notice appear in
- * supporting documentation, and that the name of Digital not be
- * used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- *
- * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- * ------------------------------------------------------------------------
- *
- * The following terms apply to the enhanced version of XBoard
- * distributed by the Free Software Foundation:
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-#define HIGHDRAG 1
-
-#include "config.h"
-
-#include <stdio.h>
-#include <ctype.h>
-#include <signal.h>
-#include <errno.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <pwd.h>
-#include <math.h>
-
-#if STDC_HEADERS
-# include <stdlib.h>
-# include <string.h>
-#else /* not STDC_HEADERS */
-extern char *getenv();
-# if HAVE_STRING_H
-#  include <string.h>
-# else /* not HAVE_STRING_H */
-#  include <strings.h>
-# endif /* not HAVE_STRING_H */
-#endif /* not STDC_HEADERS */
-
-#if TIME_WITH_SYS_TIME
-# include <sys/time.h>
-# include <time.h>
-#else
-# if HAVE_SYS_TIME_H
-#  include <sys/time.h>
-# else
-#  include <time.h>
-# endif
-#endif
-
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
-#if HAVE_SYS_WAIT_H
-# include <sys/wait.h>
-#endif
-
-#include "common.h"
-#include "frontend.h"
-#include "backend.h"
-#include "xboard2.h"
-#include "moves.h"
-#include "board.h"
-#include "draw.h"
-
-
-#ifdef __EMX__
-#ifndef HAVE_USLEEP
-#define HAVE_USLEEP
-#endif
-#define usleep(t)   _sleep2(((t)+500)/1000)
-#endif
-
-
-int squareSize, lineGap;
-
-int damage[2][BOARD_RANKS][BOARD_FILES];
-
-/* There can be two pieces being animated at once: a player
-   can begin dragging a piece before the remote opponent has moved. */
-
-AnimState anims[NrOfAnims];
-
-static void DrawSquare P((int row, int column, ChessSquare piece, int do_flash));
-static Boolean IsDrawArrowEnabled P((void));
-static void DrawArrowHighlight P((int fromX, int fromY, int toX,int toY));
-static void ArrowDamage P((int s_col, int s_row, int d_col, int d_row));
-
-static void
-drawHighlight (int file, int rank, int type)
-{
-    int x, y;
-
-    if (lineGap == 0) return;
-
-    if (flipView) {
-       x = lineGap/2 + ((BOARD_WIDTH-1)-file) *
-         (squareSize + lineGap);
-       y = lineGap/2 + rank * (squareSize + lineGap);
-    } else {
-       x = lineGap/2 + file * (squareSize + lineGap);
-       y = lineGap/2 + ((BOARD_HEIGHT-1)-rank) *
-         (squareSize + lineGap);
-    }
-
-    DrawBorder(x,y, type, lineGap & 1); // pass whether lineGap is odd
-}
-
-int hi1X = -1, hi1Y = -1, hi2X = -1, hi2Y = -1;
-int pm1X = -1, pm1Y = -1, pm2X = -1, pm2Y = -1;
-
-void
-SetHighlights (int fromX, int fromY, int toX, int toY)
-{   // [HGM] schedule old for erasure, and leave drawing new to DrawPosition
-    int change = 0;
-
-    if (hi1X >= 0 && hi1Y >= 0) {
-       if (hi1X != fromX || hi1Y != fromY) {
-           damage[0][hi1Y][hi1X] |= 2;
-           change |= 1;
-       }
-       change |= 4;
-    }
-
-    if (hi2X >= 0 && hi2Y >= 0) {
-       if (hi2X != toX || hi2Y != toY) {
-           damage[0][hi2Y][hi2X] |= 2;
-           change |= 2;
-       }
-       change |= 8;
-    }
-
-    if(change > 12 && IsDrawArrowEnabled()) ArrowDamage(hi1X, hi1Y, hi2X, hi2Y);
-
-    hi1X = fromX;
-    hi1Y = fromY;
-    hi2X = toX;
-    hi2Y = toY;
-}
-
-void
-ClearHighlights ()
-{
-    SetHighlights(-1, -1, -1, -1);
-}
-
-
-void
-SetPremoveHighlights (int fromX, int fromY, int toX, int toY)
-{
-    if (pm1X != fromX || pm1Y != fromY) {
-       if (pm1X >= 0 && pm1Y >= 0) {
-           damage[0][pm1Y][pm1X] |= 2;
-       }
-    }
-    if (pm2X != toX || pm2Y != toY) {
-       if (pm2X >= 0 && pm2Y >= 0) {
-           damage[0][pm2Y][pm2X] |= 2;
-       }
-    }
-    pm1X = fromX;
-    pm1Y = fromY;
-    pm2X = toX;
-    pm2Y = toY;
-}
-
-void
-ClearPremoveHighlights ()
-{
-  SetPremoveHighlights(-1, -1, -1, -1);
-}
-
-/*
- * If the user selects on a border boundary, return -1; if off the board,
- *   return -2.  Otherwise map the event coordinate to the square.
- */
-int
-EventToSquare (int x, int limit)
-{
-    if (x <= 0)
-      return -2;
-    if (x < lineGap)
-      return -1;
-    x -= lineGap;
-    if ((x % (squareSize + lineGap)) >= squareSize)
-      return -1;
-    x /= (squareSize + lineGap);
-    if (x >= limit)
-      return -2;
-    return x;
-}
-
-/* [HR] determine square color depending on chess variant. */
-int
-SquareColor (int row, int column)
-{
-    int square_color;
-
-    if (gameInfo.variant == VariantXiangqi) {
-        if (column >= 3 && column <= 5 && row >= 0 && row <= 2) {
-            square_color = 1;
-        } else if (column >= 3 && column <= 5 && row >= 7 && row <= 9) {
-            square_color = 0;
-        } else if (row <= 4) {
-            square_color = 0;
-        } else {
-            square_color = 1;
-        }
-    } else {
-        square_color = ((column + row) % 2) == 1;
-    }
-
-    /* [hgm] holdings: next line makes all holdings squares light */
-    if(column < BOARD_LEFT || column >= BOARD_RGHT) square_color = 1;
-
-    if ( // [HGM] holdings: blank out area between board and holdings
-                 column == BOARD_LEFT-1
-            ||  column == BOARD_RGHT
-             || (column == BOARD_LEFT-2 && row < BOARD_HEIGHT-gameInfo.holdingsSize)
-            || (column == BOARD_RGHT+1 && row >= gameInfo.holdingsSize) )
-       square_color = 2; // black
-
-    return square_color;
-}
-
-/*     Convert board position to corner of screen rect and color       */
-
-void
-ScreenSquare (int column, int row, Pnt *pt, int *color)
-{
-  if (flipView) {
-    pt->x = lineGap + ((BOARD_WIDTH-1)-column) * (squareSize + lineGap);
-    pt->y = lineGap + row * (squareSize + lineGap);
-  } else {
-    pt->x = lineGap + column * (squareSize + lineGap);
-    pt->y = lineGap + ((BOARD_HEIGHT-1)-row) * (squareSize + lineGap);
-  }
-  *color = SquareColor(row, column);
-}
-
-/*     Convert window coords to square                 */
-
-void
-BoardSquare (int x, int y, int *column, int *row)
-{
-  *column = EventToSquare(x, BOARD_WIDTH);
-  if (flipView && *column >= 0)
-    *column = BOARD_WIDTH - 1 - *column;
-  *row = EventToSquare(y, BOARD_HEIGHT);
-  if (!flipView && *row >= 0)
-    *row = BOARD_HEIGHT - 1 - *row;
-}
-
-/*     Generate a series of frame coords from start->mid->finish.
-       The movement rate doubles until the half way point is
-       reached, then halves back down to the final destination,
-       which gives a nice slow in/out effect. The algorithmn
-       may seem to generate too many intermediates for short
-       moves, but remember that the purpose is to attract the
-       viewers attention to the piece about to be moved and
-       then to where it ends up. Too few frames would be less
-       noticeable.                                             */
-
-static void
-Tween (Pnt *start, Pnt *mid, Pnt *finish, int factor, Pnt frames[], int *nFrames)
-{
-  int fraction, n, count;
-
-  count = 0;
-
-  /* Slow in, stepping 1/16th, then 1/8th, ... */
-  fraction = 1;
-  for (n = 0; n < factor; n++)
-    fraction *= 2;
-  for (n = 0; n < factor; n++) {
-    frames[count].x = start->x + (mid->x - start->x) / fraction;
-    frames[count].y = start->y + (mid->y - start->y) / fraction;
-    count ++;
-    fraction = fraction / 2;
-  }
-
-  /* Midpoint */
-  frames[count] = *mid;
-  count ++;
-
-  /* Slow out, stepping 1/2, then 1/4, ... */
-  fraction = 2;
-  for (n = 0; n < factor; n++) {
-    frames[count].x = finish->x - (finish->x - mid->x) / fraction;
-    frames[count].y = finish->y - (finish->y - mid->y) / fraction;
-    count ++;
-    fraction = fraction * 2;
-  }
-  *nFrames = count;
-}
-
-/****  Animation code by Hugh Fisher, DCS, ANU.
-
-       Known problem: if a window overlapping the board is
-       moved away while a piece is being animated underneath,
-       the newly exposed area won't be updated properly.
-       I can live with this.
-
-       Known problem: if you look carefully at the animation
-       of pieces in mono mode, they are being drawn as solid
-       shapes without interior detail while moving. Fixing
-       this would be a major complication for minimal return.
-****/
-
-/*   Utilities */
-
-#undef Max  /* just in case */
-#undef Min
-#define Max(a, b) ((a) > (b) ? (a) : (b))
-#define Min(a, b) ((a) < (b) ? (a) : (b))
-
-typedef struct {
-  short int x, y, width, height;
-} MyRectangle;
-
-void
-DoSleep (int n)
-{
-    FrameDelay(n);
-}
-
-static void
-SetRect (MyRectangle *rect, int x, int y, int width, int height)
-{
-  rect->x = x;
-  rect->y = y;
-  rect->width  = width;
-  rect->height = height;
-}
-
-/*     Test if two frames overlap. If they do, return
-       intersection rect within old and location of
-       that rect within new. */
-
-static Boolean
-Intersect ( Pnt *old, Pnt *new, int size, MyRectangle *area, Pnt *pt)
-{
-  if (old->x > new->x + size || new->x > old->x + size ||
-      old->y > new->y + size || new->y > old->y + size) {
-    return False;
-  } else {
-    SetRect(area, Max(new->x - old->x, 0), Max(new->y - old->y, 0),
-            size - abs(old->x - new->x), size - abs(old->y - new->y));
-    pt->x = Max(old->x - new->x, 0);
-    pt->y = Max(old->y - new->y, 0);
-    return True;
-  }
-}
-
-/*     For two overlapping frames, return the rect(s)
-       in the old that do not intersect with the new.   */
-
-static void
-CalcUpdateRects (Pnt *old, Pnt *new, int size, MyRectangle update[], int *nUpdates)
-{
-  int       count;
-
-  /* If old = new (shouldn't happen) then nothing to draw */
-  if (old->x == new->x && old->y == new->y) {
-    *nUpdates = 0;
-    return;
-  }
-  /* Work out what bits overlap. Since we know the rects
-     are the same size we don't need a full intersect calc. */
-  count = 0;
-  /* Top or bottom edge? */
-  if (new->y > old->y) {
-    SetRect(&(update[count]), old->x, old->y, size, new->y - old->y);
-    count ++;
-  } else if (old->y > new->y) {
-    SetRect(&(update[count]), old->x, old->y + size - (old->y - new->y),
-                             size, old->y - new->y);
-    count ++;
-  }
-  /* Left or right edge - don't overlap any update calculated above. */
-  if (new->x > old->x) {
-    SetRect(&(update[count]), old->x, Max(new->y, old->y),
-                             new->x - old->x, size - abs(new->y - old->y));
-    count ++;
-  } else if (old->x > new->x) {
-    SetRect(&(update[count]), new->x + size, Max(new->y, old->y),
-                             old->x - new->x, size - abs(new->y - old->y));
-    count ++;
-  }
-  /* Done */
-  *nUpdates = count;
-}
-
-/* Animate the movement of a single piece */
-
-static void
-BeginAnimation (AnimNr anr, ChessSquare piece, ChessSquare bgPiece, int startColor, Pnt *start)
-{
-  AnimState *anim = &anims[anr];
-
-  if(appData.upsideDown && flipView) piece += piece < BlackPawn ? BlackPawn : -BlackPawn;
-  /* The old buffer is initialised with the start square (empty) */
-  if(bgPiece == EmptySquare) {
-    DrawBlank(anr, start->x, start->y, startColor);
-  } else {
-       /* Kludge alert: When gating we want the introduced
-          piece to appear on the from square. To generate an
-          image of it, we draw it on the board, copy the image,
-          and draw the original piece again. */
-       if(piece != bgPiece) DrawSquare(anim->startBoardY, anim->startBoardX, bgPiece, 0);
-       CopyRectangle(anr, DISP, 2,
-                 start->x, start->y, squareSize, squareSize,
-                 0, 0); // [HGM] zh: unstack in stead of grab
-       if(piece != bgPiece) DrawSquare(anim->startBoardY, anim->startBoardX, piece, 0);
-  }
-  anim->prevFrame = *start;
-
-  SetDragPiece(anr, piece);
-}
-
-static void
-AnimationFrame (AnimNr anr, Pnt *frame, ChessSquare piece)
-{
-  MyRectangle updates[4];
-  MyRectangle overlap;
-  Pnt     pt;
-  AnimState *anim = &anims[anr];
-  int     count, i, x, y, w, h;
-
-  /* Save what we are about to draw into the new buffer */
-  CopyRectangle(anr, DISP, 0,
-           x = frame->x, y = frame->y, w = squareSize, h = squareSize,
-           0, 0);
-
-  /* Erase bits of the previous frame */
-  if (Intersect(&anim->prevFrame, frame, squareSize, &overlap, &pt)) {
-    /* Where the new frame overlapped the previous,
-       the contents in newBuf are wrong. */
-    CopyRectangle(anr, 2, 0,
-             overlap.x, overlap.y,
-             overlap.width, overlap.height,
-             pt.x, pt.y);
-    /* Repaint the areas in the old that don't overlap new */
-    CalcUpdateRects(&anim->prevFrame, frame, squareSize, updates, &count);
-    for (i = 0; i < count; i++)
-      CopyRectangle(anr, 2, DISP,
-               updates[i].x - anim->prevFrame.x,
-               updates[i].y - anim->prevFrame.y,
-               updates[i].width, updates[i].height,
-               updates[i].x, updates[i].y);
-    /* [HGM] correct expose rectangle to encompass both overlapping squares */
-    if(x > anim->prevFrame.x) w += x - anim->prevFrame.x, x = anim->prevFrame.x;
-    else  w += anim->prevFrame.x - x;
-    if(y > anim->prevFrame.y) h += y - anim->prevFrame.y, y = anim->prevFrame.y;
-    else  h += anim->prevFrame.y - y;
-  } else {
-    /* Easy when no overlap */
-    CopyRectangle(anr, 2, DISP,
-                 0, 0, squareSize, squareSize,
-                 anim->prevFrame.x, anim->prevFrame.y);
-    GraphExpose(currBoard, anim->prevFrame.x, anim->prevFrame.y, squareSize, squareSize);
-  }
-
-  /* Save this frame for next time round */
-  CopyRectangle(anr, 0, 2,
-               0, 0, squareSize, squareSize,
-               0, 0);
-  anim->prevFrame = *frame;
-
-  /* Draw piece over original screen contents, not current,
-     and copy entire rect. Wipes out overlapping piece images. */
-  InsertPiece(anr, piece);
-  CopyRectangle(anr, 0, DISP,
-               0, 0, squareSize, squareSize,
-               frame->x, frame->y);
-  GraphExpose(currBoard, x, y, w, h);
-}
-
-static void
-EndAnimation (AnimNr anr, Pnt *finish)
-{
-  MyRectangle updates[4];
-  MyRectangle overlap;
-  Pnt     pt;
-  int       count, i;
-  AnimState *anim = &anims[anr];
-
-  /* The main code will redraw the final square, so we
-     only need to erase the bits that don't overlap.   */
-  if (Intersect(&anim->prevFrame, finish, squareSize, &overlap, &pt)) {
-    CalcUpdateRects(&anim->prevFrame, finish, squareSize, updates, &count);
-    for (i = 0; i < count; i++)
-      CopyRectangle(anr, 2, DISP,
-               updates[i].x - anim->prevFrame.x,
-               updates[i].y - anim->prevFrame.y,
-               updates[i].width, updates[i].height,
-               updates[i].x, updates[i].y);
-  } else {
-    CopyRectangle(anr, 2, DISP,
-               0, 0, squareSize, squareSize,
-               anim->prevFrame.x, anim->prevFrame.y);
-  }
-}
-
-static void
-FrameSequence (AnimNr anr, ChessSquare piece, int startColor, Pnt *start, Pnt *finish, Pnt frames[], int nFrames)
-{
-  int n;
-
-  BeginAnimation(anr, piece, EmptySquare, startColor, start);
-  for (n = 0; n < nFrames; n++) {
-    AnimationFrame(anr, &(frames[n]), piece);
-    FrameDelay(appData.animSpeed);
-  }
-  EndAnimation(anr, finish);
-}
-
-void
-AnimateAtomicCapture (Board board, int fromX, int fromY, int toX, int toY)
-{
-    int i, x, y;
-    ChessSquare piece = board[fromY][toY];
-    board[fromY][toY] = EmptySquare;
-    DrawPosition(FALSE, board);
-    if (flipView) {
-       x = lineGap + ((BOARD_WIDTH-1)-toX) * (squareSize + lineGap);
-       y = lineGap + toY * (squareSize + lineGap);
-    } else {
-       x = lineGap + toX * (squareSize + lineGap);
-       y = lineGap + ((BOARD_HEIGHT-1)-toY) * (squareSize + lineGap);
-    }
-    for(i=1; i<4*kFactor; i++) {
-       int r = squareSize * 9 * i/(20*kFactor - 5);
-       DrawDot(1, x + squareSize/2 - r, y+squareSize/2 - r, 2*r);
-       FrameDelay(appData.animSpeed);
-    }
-    board[fromY][toY] = piece;
-    DrawGrid();
-}
-
-/* Main control logic for deciding what to animate and how */
-
-void
-AnimateMove (Board board, int fromX, int fromY, int toX, int toY)
-{
-  ChessSquare piece;
-  int hop, x = toX, y = toY, x2 = kill2X;
-  Pnt      start, finish, mid;
-  Pnt      frames[kFactor * 2 + 1];
-  int        nFrames, startColor, endColor;
-
-  if(killX >= 0 && IS_LION(board[fromY][fromX])) Roar();
-
-  /* Are we animating? */
-  if (!appData.animate || appData.blindfold)
-    return;
-
-  if(board[toY][toX] == WhiteRook && board[fromY][fromX] == WhiteKing ||
-     board[toY][toX] == BlackRook && board[fromY][fromX] == BlackKing ||
-     board[toY][toX] == WhiteKing && board[fromY][fromX] == WhiteRook || // [HGM] seirawan
-     board[toY][toX] == BlackKing && board[fromY][fromX] == BlackRook)
-       return; // [HGM] FRC: no animtion of FRC castlings, as to-square is not true to-square
-
-  if (fromY < 0 || fromX < 0 || toX < 0 || toY < 0) return;
-  piece = board[fromY][fromX];
-  if (piece >= EmptySquare) return;
-
-  if(x2 >= 0) toX = kill2X, toY = kill2Y; else
-  if(killX >= 0) toX = killX, toY = killY; // [HGM] lion: first to kill square
-
-again:
-
-#if DONT_HOP
-  hop = FALSE;
-#else
-  hop = abs(fromX-toX) == 1 && abs(fromY-toY) == 2 || abs(fromX-toX) == 2 && abs(fromY-toY) == 1;
-#endif
-
-  ScreenSquare(fromX, fromY, &start, &startColor);
-  ScreenSquare(toX, toY, &finish, &endColor);
-
-  if (hop) {
-    /* Knight: make straight movement then diagonal */
-    if (abs(toY - fromY) < abs(toX - fromX)) {
-       mid.x = start.x + (finish.x - start.x) / 2;
-       mid.y = start.y;
-     } else {
-       mid.x = start.x;
-       mid.y = start.y + (finish.y - start.y) / 2;
-     }
-  } else {
-    mid.x = start.x + (finish.x - start.x) / 2;
-    mid.y = start.y + (finish.y - start.y) / 2;
-  }
-
-  /* Don't use as many frames for very short moves */
-  if (abs(toY - fromY) + abs(toX - fromX) <= 2)
-    Tween(&start, &mid, &finish, kFactor - 1, frames, &nFrames);
-  else
-    Tween(&start, &mid, &finish, kFactor, frames, &nFrames);
-  FrameSequence(Game, piece, startColor, &start, &finish, frames, nFrames);
-  if(Explode(board, fromX, fromY, toX, toY)) { // mark as damaged
-    int i,j;
-    for(i=0; i<BOARD_WIDTH; i++) for(j=0; j<BOARD_HEIGHT; j++)
-      if((i-toX)*(i-toX) + (j-toY)*(j-toY) < 6) damage[0][j][i] |=  1 + ((i-toX ^ j-toY) & 1);
-  }
-
-  /* Be sure end square is redrawn, with piece in it */
-  damage[0][toY][toX] |= 4;
-
-  if(toX == x2 && toY == kill2Y) { fromX = toX; fromY = toY; toX = killX; toY = killY; x2 = -1; goto again; } // second leg
-  if(toX != x || toY != y) { fromX = toX; fromY = toY; toX = x; toY = y; goto again; } // second leg
-}
-
-void
-ChangeDragPiece (ChessSquare piece)
-{
-  anims[Player].dragPiece = piece;
-  SetDragPiece(Player, piece);
-  damage[0][fromY][fromX] = True;
-}
-
-void
-DragPieceMove (int x, int y)
-{
-    Pnt corner;
-
-    /* Are we animating? */
-    if (!appData.animateDragging || appData.blindfold)
-      return;
-
-    /* Sanity check */
-    if (! anims[Player].dragActive)
-      return;
-    /* Move piece, maintaining same relative position
-       of mouse within square   */
-    corner.x = x - anims[Player].mouseDelta.x;
-    corner.y = y - anims[Player].mouseDelta.y;
-    AnimationFrame(Player, &corner, anims[Player].dragPiece);
-#if HIGHDRAG*0
-    if (appData.highlightDragging) {
-       int boardX, boardY;
-       BoardSquare(x, y, &boardX, &boardY);
-       SetHighlights(fromX, fromY, boardX, boardY);
-    }
-#endif
-}
-
-void
-DragPieceEnd (int x, int y)
-{
-    int boardX, boardY, color;
-    Pnt corner;
-
-    /* Are we animating? */
-    if (!appData.animateDragging || appData.blindfold)
-      return;
-
-    /* Sanity check */
-    if (! anims[Player].dragActive)
-      return;
-    /* Last frame in sequence is square piece is
-       placed on, which may not match mouse exactly. */
-    BoardSquare(x, y, &boardX, &boardY);
-    ScreenSquare(boardX, boardY, &corner, &color);
-    EndAnimation(Player, &corner);
-
-    /* Be sure end square is redrawn */
-    damage[0][boardY][boardX] = True;
-
-    /* This prevents weird things happening with fast successive
-       clicks which on my Sun at least can cause motion events
-       without corresponding press/release. */
-    anims[Player].dragActive = False;
-}
-
-void
-DragPieceBegin (int x, int y, Boolean instantly)
-{
-    int         boardX, boardY, color;
-    Pnt corner;
-
-    /* Are we animating? */
-    if (!appData.animateDragging || appData.blindfold)
-      return;
-
-    /* Figure out which square we start in and the
-       mouse position relative to top left corner. */
-    BoardSquare(x, y, &boardX, &boardY);
-    anims[Player].startBoardX = boardX;
-    anims[Player].startBoardY = boardY;
-    ScreenSquare(boardX, boardY, &corner, &color);
-    anims[Player].startSquare  = corner;
-    anims[Player].startColor   = color;
-    /* As soon as we start dragging, the piece will jump slightly to
-       be centered over the mouse pointer. */
-    anims[Player].mouseDelta.x = squareSize/2;
-    anims[Player].mouseDelta.y = squareSize/2;
-    /* Initialise animation */
-    anims[Player].dragPiece = PieceForSquare(boardX, boardY);
-    /* Sanity check */
-    if (anims[Player].dragPiece >= 0 && anims[Player].dragPiece < EmptySquare) {
-       ChessSquare bgPiece = EmptySquare;
-       anims[Player].dragActive = True;
-        if(boardX == BOARD_RGHT+1 && PieceForSquare(boardX-1, boardY) > 1 ||
-           boardX == BOARD_LEFT-2 && PieceForSquare(boardX+1, boardY) > 1)
-           bgPiece = anims[Player].dragPiece;
-        if(gatingPiece != EmptySquare) bgPiece = gatingPiece;
-       BeginAnimation(Player, anims[Player].dragPiece, bgPiece, color, &corner);
-       /* Mark this square as needing to be redrawn. Note that
-          we don't remove the piece though, since logically (ie
-          as seen by opponent) the move hasn't been made yet. */
-       damage[0][boardY][boardX] |= True;
-    } else {
-       anims[Player].dragActive = False;
-    }
-}
-
-/* Handle expose event while piece being dragged */
-
-static void
-DrawDragPiece ()
-{
-  if (!anims[Player].dragActive || appData.blindfold)
-    return;
-
-  /* What we're doing: logically, the move hasn't been made yet,
-     so the piece is still in it's original square. But visually
-     it's being dragged around the board. So we erase the square
-     that the piece is on and draw it at the last known drag point. */
-  DrawOneSquare(anims[Player].startSquare.x, anims[Player].startSquare.y,
-               EmptySquare, anims[Player].startColor, 0, NULL, NULL, 0);
-  AnimationFrame(Player, &anims[Player].prevFrame, anims[Player].dragPiece);
-  damage[0][anims[Player].startBoardY][anims[Player].startBoardX] |= TRUE;
-}
-
-static void
-DrawSquare (int row, int column, ChessSquare piece, int do_flash)
-{
-    int square_color, x, y, align=0;
-    int i;
-    char tString[3], bString[2];
-    int flash_delay;
-
-    /* Calculate delay in milliseconds (2-delays per complete flash) */
-    flash_delay = 500 / appData.flashRate;
-
-    if (flipView) {
-       x = lineGap + ((BOARD_WIDTH-1)-column) *
-         (squareSize + lineGap);
-       y = lineGap + row * (squareSize + lineGap);
-    } else {
-       x = lineGap + column * (squareSize + lineGap);
-       y = lineGap + ((BOARD_HEIGHT-1)-row) *
-         (squareSize + lineGap);
-    }
-
-    square_color = SquareColor(row, column);
-
-    bString[1] = bString[0] = NULLCHAR;
-    if (appData.showCoords && row == (flipView ? BOARD_HEIGHT-1 : 0)
-               && column >= BOARD_LEFT && column < BOARD_RGHT) {
-       bString[0] = 'a' + column - BOARD_LEFT;
-       align = 1; // coord in lower-right corner
-    }
-    if (appData.showCoords && column == (flipView ? BOARD_RGHT-1 : BOARD_LEFT)) {
-       snprintf(tString, 3, "%d", ONE - '0' + row);
-       align = 2; // coord in upper-left corner
-    }
-    if (column == (flipView ? BOARD_LEFT-1 : BOARD_RGHT) && piece > 1 ) {
-       snprintf(tString, 3, "%d", piece);
-       align = 3; // holdings count in upper-right corner
-    }
-    if (column == (flipView ? BOARD_RGHT : BOARD_LEFT-1) && piece > 1) {
-       snprintf(tString, 3, "%d", piece);
-       align = 4; // holdings count in upper-left corner
-    }
-    if(piece == DarkSquare) square_color = 2;
-    if(square_color == 2 || appData.blindfold) piece = EmptySquare;
-
-    if (do_flash && piece != EmptySquare && appData.flashCount > 0) {
-       for (i=0; i<appData.flashCount; ++i) {
-           DrawOneSquare(x, y, piece, square_color, 0, tString, bString, 0);
-           GraphExpose(currBoard, x, y, squareSize, squareSize);
-           DoEvents(); // requires event processing to actually update screen :-(
-           FlashDelay(flash_delay);
-           DrawOneSquare(x, y, EmptySquare, square_color, 0, tString, bString, 0);
-           GraphExpose(currBoard, x, y, squareSize, squareSize);
-           DoEvents();
-           FlashDelay(flash_delay);
-       }
-    }
-    DrawOneSquare(x, y, piece, square_color, partnerUp ? 0 : marker[row][column], tString, bString, align);
-}
-
-/* Returns 1 if there are "too many" differences between b1 and b2
-   (i.e. more than 1 move was made) */
-static int
-too_many_diffs (Board b1, Board b2)
-{
-    int i, j;
-    int c = 0;
-
-    for (i=0; i<BOARD_HEIGHT; ++i) {
-       for (j=0; j<BOARD_WIDTH; ++j) {
-           if (b1[i][j] != b2[i][j]) {
-               if (++c > 4)    /* Castling causes 4 diffs */
-                 return 1;
-           }
-       }
-    }
-    return 0;
-}
-
-/* Matrix describing castling maneuvers */
-/* Row, ColRookFrom, ColKingFrom, ColRookTo, ColKingTo */
-static int castling_matrix[4][5] = {
-    { 0, 0, 4, 3, 2 },         /* 0-0-0, white */
-    { 0, 7, 4, 5, 6 },         /* 0-0,   white */
-    { 7, 0, 4, 3, 2 },         /* 0-0-0, black */
-    { 7, 7, 4, 5, 6 }          /* 0-0,   black */
-};
-
-/* Checks whether castling occurred. If it did, *rrow and *rcol
-   are set to the destination (row,col) of the rook that moved.
-
-   Returns 1 if castling occurred, 0 if not.
-
-   Note: Only handles a max of 1 castling move, so be sure
-   to call too_many_diffs() first.
-   */
-static int
-check_castle_draw (Board newb, Board oldb, int *rrow, int *rcol)
-{
-    int i, *r, j;
-    int match;
-
-    /* For each type of castling... */
-    for (i=0; i<4; ++i) {
-       r = castling_matrix[i];
-
-       /* Check the 4 squares involved in the castling move */
-       match = 0;
-       for (j=1; j<=4; ++j) {
-           if (newb[r[0]][r[j]] == oldb[r[0]][r[j]]) {
-               match = 1;
-               break;
-           }
-       }
-
-       if (!match) {
-           /* All 4 changed, so it must be a castling move */
-           *rrow = r[0];
-           *rcol = r[3];
-           return 1;
-       }
-    }
-    return 0;
-}
-
-void
-SquareExpose(int i, int j, int d)
-{
-    int x, y;
-    if (flipView) {
-       x = lineGap + ((BOARD_WIDTH-1)-j) *
-         (squareSize + lineGap);
-       y = lineGap + i * (squareSize + lineGap);
-    } else {
-       x = lineGap + j * (squareSize + lineGap);
-       y = lineGap + ((BOARD_HEIGHT-1)-i) *
-         (squareSize + lineGap);
-    }
-    GraphExpose(currBoard, x-d, y-d, squareSize+2*d, squareSize+2*d);
-}
-
-void
-DrawPosition (int repaint, Board board)
-{
-    int i, j, do_flash, exposeAll = False;
-    static int lastFlipView = 0;
-    static int lastBoardValid[2] = {0, 0};
-    static Board lastBoard[2];
-    static char lastMarker[BOARD_RANKS][BOARD_FILES], messedUp;
-    int rrow = -1, rcol = -1;
-    int nr = twoBoards*partnerUp;
-
-    repaint |= messedUp;
-
-    if(DrawSeekGraph()) return; // [HGM] seekgraph: suppress any drawing if seek graph up
-
-    if (board == NULL) {
-       if (!lastBoardValid[nr]) return;
-       board = lastBoard[nr];
-    }
-    if (!lastBoardValid[nr] || (nr == 0 && lastFlipView != flipView)) {
-       MarkMenuItem("View.Flip View", flipView);
-    }
-
-    if(nr) { SlavePopUp(); SwitchWindow(0); } // [HGM] popup board if not yet popped up, and switch drawing to it.
-
-    /*
-     * It would be simpler to clear the window with XClearWindow()
-     * but this causes a very distracting flicker.
-     */
-
-    if (!repaint && lastBoardValid[nr] && (nr == 1 || lastFlipView == flipView)) {
-
-       /* If too much changes (begin observing new game, etc.), don't
-          do flashing */
-       do_flash = too_many_diffs(board, lastBoard[nr]) ? 0 : 1;
-
-       /* Special check for castling so we don't flash both the king
-          and the rook (just flash the king). */
-       if (do_flash) {
-           if(check_castle_draw(board, lastBoard[nr], &rrow, &rcol)) {
-               /* Mark rook for drawing with NO flashing. */
-               damage[nr][rrow][rcol] |= 1;
-           }
-       }
-
-       /* First pass -- Erase arrow and grid highlights, but keep square content unchanged. Except for new markers. */
-       for (i = 0; i < BOARD_HEIGHT; i++)
-         for (j = 0; j < BOARD_WIDTH; j++)
-           if (damage[nr][i][j] ||  !nr && marker[i][j] != lastMarker[i][j]) {
-               DrawSquare(i, j, board[i][j], 0);
-               if(lineGap && damage[nr][i][j] & 2) {
-                   drawHighlight(j, i, 0);
-                   SquareExpose(i, j, lineGap);
-               } else SquareExpose(i, j, 0);
-               damage[nr][i][j] = 0;
-           }
-
-       /* Second pass -- Draw (newly) empty squares
-          This prevents you from having a piece show up twice while it
-          is flashing on its new square */
-       for (i = 0; i < BOARD_HEIGHT; i++)
-         for (j = 0; j < BOARD_WIDTH; j++)
-           if (board[i][j] != lastBoard[nr][i][j] && board[i][j] == EmptySquare) {
-               DrawSquare(i, j, board[i][j], 0);
-               SquareExpose(i, j, 0);
-           }
-
-       /* Third pass -- Draw piece(s) in new position and flash them */
-       for (i = 0; i < BOARD_HEIGHT; i++)
-         for (j = 0; j < BOARD_WIDTH; j++)
-           if (board[i][j] != lastBoard[nr][i][j]) {
-               DrawSquare(i, j, board[i][j], do_flash && (i != rrow || j != rcol));
-               damage[nr][i][j] = 1; // mark for expose
-           }
-
-    } else {
-       if (lineGap > 0)
-         DrawGrid();
-
-       for (i = 0; i < BOARD_HEIGHT; i++)
-         for (j = 0; j < BOARD_WIDTH; j++) {
-             DrawSquare(i, j, board[i][j], 0);
-             damage[nr][i][j] = False;
-         }
-
-       exposeAll = True;
-    }
-
-    CopyBoard(lastBoard[nr], board);
-    lastBoardValid[nr] = 1;
-  if(nr == 0) { // [HGM] dual: no highlights on second board yet
-    lastFlipView = flipView;
-    for (i = 0; i < BOARD_HEIGHT; i++)
-       for (j = 0; j < BOARD_WIDTH; j++)
-           lastMarker[i][j] = marker[i][j];
-
-    /* Draw highlights */
-    if (pm1X >= 0 && pm1Y >= 0) {
-      drawHighlight(pm1X, pm1Y, 2);
-      if(lineGap) damage[nr][pm1Y][pm1X] |= 2;
-    }
-    if (pm2X >= 0 && pm2Y >= 0) {
-      drawHighlight(pm2X, pm2Y, 2);
-      if(lineGap) damage[nr][pm2Y][pm2X] |= 2;
-    }
-    if (hi1X >= 0 && hi1Y >= 0) {
-      drawHighlight(hi1X, hi1Y, 1);
-      if(lineGap) damage[nr][hi1Y][hi1X] |= 2;
-    }
-    if (hi2X >= 0 && hi2Y >= 0) {
-      drawHighlight(hi2X, hi2Y, 1);
-      if(lineGap) damage[nr][hi2Y][hi2X] |= 2;
-    }
-    DrawArrowHighlight(hi1X, hi1Y, hi2X, hi2Y);
-  }
-  else DrawArrowHighlight (board[EP_STATUS-3], board[EP_STATUS-4], board[EP_STATUS-1], board[EP_STATUS-2]);
-
-    /* If piece being dragged around board, must redraw that too */
-    DrawDragPiece();
-
-    if(exposeAll)
-       GraphExpose(currBoard, 0, 0, BOARD_WIDTH*(squareSize + lineGap) + lineGap, BOARD_HEIGHT*(squareSize + lineGap) + lineGap);
-    else {
-       for (i = 0; i < BOARD_HEIGHT; i++)
-           for (j = 0; j < BOARD_WIDTH; j++)
-               if(damage[nr][i][j]) {
-                   if(damage[nr][i][j] & 2) // damage by old or new arrow
-                       SquareExpose(i, j, lineGap);
-                   else
-                       SquareExpose(i, j, 0);
-                   if(nr == 0) damage[nr][i][j] = 0; // on auxiliary board we retain arrow damage
-               }
-    }
-
-    FlashDelay(0); // this flushes drawing queue;
-    if(nr) SwitchWindow(1);
-    else {
-       TimeMark now;
-       GetTimeMark(&now);
-       if(repaint && SubtractTimeMarks(&now, &programStartTime) < 1000) {
-           char *p = appData.message, *q;
-           i = 0;
-           while(*p) {
-               q = strchr(p, '\n');
-               if(q) *q = NULLCHAR;
-               if(!strstr(appData.suppress, p)) {
-                   if(i == 0) DrawSeekBackground(2*squareSize, 3*squareSize, 6.5*squareSize, 5*squareSize);
-                   DrawText(p, 2*squareSize + 5, (int) ((3 + 0.3*i++)*squareSize) + 5, 2);
-               }
-               if(q) *q++ = '\n'; else q = "";
-               p = q;
-           }
-           GraphExpose(currBoard, 2*squareSize, 3*squareSize, 4*squareSize, 2*squareSize);
-           messedUp = TRUE;
-       } else messedUp = FALSE;
-    }
-}
-
-/* [AS] Arrow highlighting support */
-
-static double A_WIDTH = 5; /* Width of arrow body */
-
-#define A_HEIGHT_FACTOR 6   /* Length of arrow "point", relative to body width */
-#define A_WIDTH_FACTOR  3   /* Width of arrow "point", relative to body width */
-
-static double
-Sqr (double x)
-{
-    return x*x;
-}
-
-static int
-Round (double x)
-{
-    return (int) (x + 0.5);
-}
-
-void
-SquareToPos (int rank, int file, int *x, int *y)
-{
-    if (flipView) {
-       *x = lineGap + ((BOARD_WIDTH-1)-file) * (squareSize + lineGap);
-       *y = lineGap + rank * (squareSize + lineGap);
-    } else {
-       *x = lineGap + file * (squareSize + lineGap);
-       *y = lineGap + ((BOARD_HEIGHT-1)-rank) * (squareSize + lineGap);
-    }
-}
-
-/* Draw an arrow between two points using current settings */
-static void
-DrawArrowBetweenPoints (int s_x, int s_y, int d_x, int d_y)
-{
-    Pnt arrow[8];
-    double dx, dy, j, k, x, y;
-
-    if( d_x == s_x ) {
-        int h = (d_y > s_y) ? +A_WIDTH*A_HEIGHT_FACTOR : -A_WIDTH*A_HEIGHT_FACTOR;
-
-        arrow[0].x = s_x + A_WIDTH + 0.5;
-        arrow[0].y = s_y;
-
-        arrow[1].x = s_x + A_WIDTH + 0.5;
-        arrow[1].y = d_y - h;
-
-        arrow[2].x = arrow[1].x + A_WIDTH*(A_WIDTH_FACTOR-1) + 0.5;
-        arrow[2].y = d_y - h;
-
-        arrow[3].x = d_x;
-        arrow[3].y = d_y;
-
-        arrow[5].x = arrow[1].x - 2*A_WIDTH + 0.5;
-        arrow[5].y = d_y - h;
-
-        arrow[4].x = arrow[5].x - A_WIDTH*(A_WIDTH_FACTOR-1) + 0.5;
-        arrow[4].y = d_y - h;
-
-        arrow[6].x = arrow[1].x - 2*A_WIDTH + 0.5;
-        arrow[6].y = s_y;
-    }
-    else if( d_y == s_y ) {
-        int w = (d_x > s_x) ? +A_WIDTH*A_HEIGHT_FACTOR : -A_WIDTH*A_HEIGHT_FACTOR;
-
-        arrow[0].x = s_x;
-        arrow[0].y = s_y + A_WIDTH + 0.5;
-
-        arrow[1].x = d_x - w;
-        arrow[1].y = s_y + A_WIDTH + 0.5;
-
-        arrow[2].x = d_x - w;
-        arrow[2].y = arrow[1].y + A_WIDTH*(A_WIDTH_FACTOR-1) + 0.5;
-
-        arrow[3].x = d_x;
-        arrow[3].y = d_y;
-
-        arrow[5].x = d_x - w;
-        arrow[5].y = arrow[1].y - 2*A_WIDTH + 0.5;
-
-        arrow[4].x = d_x - w;
-        arrow[4].y = arrow[5].y - A_WIDTH*(A_WIDTH_FACTOR-1) + 0.5;
-
-        arrow[6].x = s_x;
-        arrow[6].y = arrow[1].y - 2*A_WIDTH + 0.5;
-    }
-    else {
-        /* [AS] Needed a lot of paper for this! :-) */
-        dy = (double) (d_y - s_y) / (double) (d_x - s_x);
-        dx = (double) (s_x - d_x) / (double) (s_y - d_y);
-
-        j = sqrt( Sqr(A_WIDTH) / (1.0 + Sqr(dx)) );
-
-        k = sqrt( Sqr(A_WIDTH*A_HEIGHT_FACTOR) / (1.0 + Sqr(dy)) );
-
-        x = s_x;
-        y = s_y;
-
-        arrow[0].x = Round(x - j);
-        arrow[0].y = Round(y + j*dx);
-
-        arrow[1].x = Round(arrow[0].x + 2*j);   // [HGM] prevent width to be affected by rounding twice
-        arrow[1].y = Round(arrow[0].y - 2*j*dx);
-
-        if( d_x > s_x ) {
-            x = (double) d_x - k;
-            y = (double) d_y - k*dy;
-        }
-        else {
-            x = (double) d_x + k;
-            y = (double) d_y + k*dy;
-        }
-
-        x = Round(x); y = Round(y); // [HGM] make sure width of shaft is rounded the same way on both ends
-
-        arrow[6].x = Round(x - j);
-        arrow[6].y = Round(y + j*dx);
-
-        arrow[2].x = Round(arrow[6].x + 2*j);
-        arrow[2].y = Round(arrow[6].y - 2*j*dx);
-
-        arrow[3].x = Round(arrow[2].x + j*(A_WIDTH_FACTOR-1));
-        arrow[3].y = Round(arrow[2].y - j*(A_WIDTH_FACTOR-1)*dx);
-
-        arrow[4].x = d_x;
-        arrow[4].y = d_y;
-
-        arrow[5].x = Round(arrow[6].x - j*(A_WIDTH_FACTOR-1));
-        arrow[5].y = Round(arrow[6].y + j*(A_WIDTH_FACTOR-1)*dx);
-    }
-
-    DrawPolygon(arrow, 7);
-//    Polygon( hdc, arrow, 7 );
-}
-
-static void
-ArrowDamage (int s_col, int s_row, int d_col, int d_row)
-{
-    int hor, vert, i, n = partnerUp * twoBoards, delta = abs(d_row - s_row);
-
-    if( 2*(d_row - s_row) > abs(d_col - s_col) ) d_row = 4*d_row + 1; else 
-    if( 2*(s_row - d_row) > abs(d_col - s_col) ) d_row = 4*d_row + 3; else d_row = 4*d_row + 2;
-    if( 2*(d_col - s_col) > delta ) d_col = 4*d_col + 1; else 
-    if( 2*(s_col - d_col) > delta ) d_col = 4*d_col + 3; else d_col = 4*d_col + 2;
-    s_row = 4*s_row + 2; s_col = 4*s_col + 2;
-
-    hor = 64*s_col; vert = 64*s_row;
-    for(i=0; i<= 64; i++) {
-            damage[n][vert+30>>8][hor+30>>8] |= 2;
-            damage[n][vert-30>>8][hor+30>>8] |= 2;
-            damage[n][vert+30>>8][hor-30>>8] |= 2;
-            damage[n][vert-30>>8][hor-30>>8] |= 2;
-            hor += d_col - s_col; vert += d_row - s_row;
-    }
-}
-
-/* [AS] Draw an arrow between two squares */
-static void
-DrawArrowBetweenSquares (int s_col, int s_row, int d_col, int d_row)
-{
-    int s_x, s_y, d_x, d_y, delta_y;
-
-    if( s_col == d_col && s_row == d_row ) {
-        return;
-    }
-
-    /* Get source and destination points */
-    SquareToPos( s_row, s_col, &s_x, &s_y);
-    SquareToPos( d_row, d_col, &d_x, &d_y);
-    delta_y = abs(d_y - s_y);
-
-    if( d_y > s_y && 2*(d_y - s_y) > abs(d_x - s_x)) {
-        d_y += squareSize / 2 - squareSize / 4; // [HGM] round towards same centers on all sides!
-    }
-    else if( d_y < s_y && 2*(s_y - d_y) > abs(d_x - s_x)) {
-        d_y += squareSize / 2 + squareSize / 4;
-    }
-    else {
-        d_y += squareSize / 2;
-    }
-
-    if( d_x > s_x && 2*(d_x - s_x) > delta_y) {
-        d_x += squareSize / 2 - squareSize / 4;
-    }
-    else if( d_x < s_x && 2*(s_x - d_x) > delta_y) {
-        d_x += squareSize / 2 + squareSize / 4;
-    }
-    else {
-        d_x += squareSize / 2;
-    }
-
-    s_x += squareSize / 2;
-    s_y += squareSize / 2;
-
-    /* Adjust width */
-    A_WIDTH = squareSize / 14.; //[HGM] make float
-
-    DrawArrowBetweenPoints( s_x, s_y, d_x, d_y );
-    ArrowDamage(s_col, s_row, d_col, d_row);
-}
-
-static Boolean
-IsDrawArrowEnabled ()
-{
-    return (appData.highlightMoveWithArrow || twoBoards && partnerUp) && squareSize >= 32;
-}
-
-static void
-DrawArrowHighlight (int fromX, int fromY, int toX,int toY)
-{
-    if( IsDrawArrowEnabled() && fromX >= 0 && fromY >= 0 && toX >= 0 && toY >= 0)
-        DrawArrowBetweenSquares(fromX, fromY, toX, toY);
-}
diff --git a/board.h b/board.h
deleted file mode 100644 (file)
index 1511052..0000000
--- a/board.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * board.h -- header for XBoard: variables shared by xboard.c and board.c
- *
- * Copyright 1991 by Digital Equipment Corporation, Maynard,
- * Massachusetts.
- *
- * Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006,
- * 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free
- * Software Foundation, Inc.
- *
- * The following terms apply to Digital Equipment Corporation's copyright
- * interest in XBoard:
- * ------------------------------------------------------------------------
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notice appear in all copies and that
- * both that copyright notice and this permission notice appear in
- * supporting documentation, and that the name of Digital not be
- * used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- *
- * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- * ------------------------------------------------------------------------
- *
- * The following terms apply to the enhanced version of XBoard
- * distributed by the Free Software Foundation:
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-
-/* This magic number is the number of intermediate frames used
-   in each half of the animation. For short moves it's reduced
-   by 1. The total number of frames will be factor * 2 + 1.  */
-#define kFactor           4
-
-/* Variables for doing smooth animation. This whole thing
-   would be much easier if the board was double-buffered,
-   but that would require a fairly major rewrite.      */
-
-#define DISP 4
-
-typedef enum { Game=0, Player, NrOfAnims } AnimNr;
-
-typedef struct {
-       short int x, y;
-    } Pnt;
-
-typedef struct {
-       Pnt     startSquare, prevFrame, mouseDelta;
-       int     startColor;
-       int     dragPiece;
-       Boolean dragActive;
-        int     startBoardX, startBoardY;
-    } AnimState;
-
-extern AnimState anims[];
-
-void DrawPolygon P((Pnt arrow[], int nr));
-void DrawOneSquare P((int x, int y, ChessSquare piece, int square_color, int marker, char *tString, char *bString, int align));
-void DrawDot P((int marker, int x, int y, int r));
-void DrawGrid P((void));
-int SquareColor P((int row, int column));
-void ScreenSquare P((int column, int row, Pnt *pt, int *color));
-void BoardSquare P((int x, int y, int *column, int *row));
-void FrameDelay P((int time));
-void InsertPiece P((AnimNr anr, ChessSquare piece));
-void DrawBlank P((AnimNr anr, int x, int y, int startColor));
-void CopyRectangle P((AnimNr anr, int srcBuf, int destBuf, int srcX, int srcY, int width, int height, int destX, int destY));
-void SetDragPiece P((AnimNr anr, ChessSquare piece));
-void DragPieceMove P((int x, int y));
-void DrawBorder P((int x, int y, int type, int odd));
-void FlashDelay P((int flash_delay));
-void SwitchWindow P((int main));
-
-extern int damage[2][BOARD_RANKS][BOARD_FILES];
-extern Option *currBoard;
diff --git a/book.c b/book.c
deleted file mode 100644 (file)
index 9828dd2..0000000
--- a/book.c
+++ /dev/null
@@ -1,1055 +0,0 @@
-/*
- * book.c -- code for probing Polyglot opening books
- *
- * This code was first released in the public domain by Michel Van den Bergh.
- * The array Random64 is taken from the Polyglot source code.
- * I am pretty sure that a table of random numbers is never protected
- * by copyright.
- *
- * It s adapted by H.G. Muller for working with xboard / Winboard
- *
- * The following terms apply to the enhanced version of XBoard distributed
- * by the Free Software Foundation:
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- * ------------------------------------------------------------------------
- */
-
-#include "config.h"
-
-#include <stdio.h>
-#include <string.h>
-#include <time.h>
-#include <stdlib.h>
-#include <math.h>
-
-#include "common.h"
-#include "frontend.h"
-#include "backend.h"
-#include "moves.h"
-#include "gettext.h"
-
-#ifdef ENABLE_NLS
-# define  _(s) gettext (s)
-# define N_(s) gettext_noop (s)
-#else
-# define  _(s) (s)
-# define N_(s)  s
-#endif
-
-#ifdef _MSC_VER
-  typedef unsigned __int64 uint64;
-#else
-  typedef unsigned long long int uint64;
-#endif
-
-#ifdef _MSC_VER
-#  define U64(u) (u##ui64)
-#else
-#  define U64(u) (u##ULL)
-#endif
-
-typedef unsigned char uint8;
-typedef unsigned short uint16;
-typedef unsigned int uint32;
-
-typedef struct {
-    uint64 key;
-    uint16 move;
-    uint16 weight;
-    uint16 learnPoints;
-    uint16 learnCount;
-} entry_t;
-
-entry_t entry_none = {
-    0, 0, 0, 0
-};
-
-char *promote_pieces=" nbrqac=+";
-
-uint64 Random64[781] = {
-   U64(0x9D39247E33776D41), U64(0x2AF7398005AAA5C7), U64(0x44DB015024623547), U64(0x9C15F73E62A76AE2),
-   U64(0x75834465489C0C89), U64(0x3290AC3A203001BF), U64(0x0FBBAD1F61042279), U64(0xE83A908FF2FB60CA),
-   U64(0x0D7E765D58755C10), U64(0x1A083822CEAFE02D), U64(0x9605D5F0E25EC3B0), U64(0xD021FF5CD13A2ED5),
-   U64(0x40BDF15D4A672E32), U64(0x011355146FD56395), U64(0x5DB4832046F3D9E5), U64(0x239F8B2D7FF719CC),
-   U64(0x05D1A1AE85B49AA1), U64(0x679F848F6E8FC971), U64(0x7449BBFF801FED0B), U64(0x7D11CDB1C3B7ADF0),
-   U64(0x82C7709E781EB7CC), U64(0xF3218F1C9510786C), U64(0x331478F3AF51BBE6), U64(0x4BB38DE5E7219443),
-   U64(0xAA649C6EBCFD50FC), U64(0x8DBD98A352AFD40B), U64(0x87D2074B81D79217), U64(0x19F3C751D3E92AE1),
-   U64(0xB4AB30F062B19ABF), U64(0x7B0500AC42047AC4), U64(0xC9452CA81A09D85D), U64(0x24AA6C514DA27500),
-   U64(0x4C9F34427501B447), U64(0x14A68FD73C910841), U64(0xA71B9B83461CBD93), U64(0x03488B95B0F1850F),
-   U64(0x637B2B34FF93C040), U64(0x09D1BC9A3DD90A94), U64(0x3575668334A1DD3B), U64(0x735E2B97A4C45A23),
-   U64(0x18727070F1BD400B), U64(0x1FCBACD259BF02E7), U64(0xD310A7C2CE9B6555), U64(0xBF983FE0FE5D8244),
-   U64(0x9F74D14F7454A824), U64(0x51EBDC4AB9BA3035), U64(0x5C82C505DB9AB0FA), U64(0xFCF7FE8A3430B241),
-   U64(0x3253A729B9BA3DDE), U64(0x8C74C368081B3075), U64(0xB9BC6C87167C33E7), U64(0x7EF48F2B83024E20),
-   U64(0x11D505D4C351BD7F), U64(0x6568FCA92C76A243), U64(0x4DE0B0F40F32A7B8), U64(0x96D693460CC37E5D),
-   U64(0x42E240CB63689F2F), U64(0x6D2BDCDAE2919661), U64(0x42880B0236E4D951), U64(0x5F0F4A5898171BB6),
-   U64(0x39F890F579F92F88), U64(0x93C5B5F47356388B), U64(0x63DC359D8D231B78), U64(0xEC16CA8AEA98AD76),
-   U64(0x5355F900C2A82DC7), U64(0x07FB9F855A997142), U64(0x5093417AA8A7ED5E), U64(0x7BCBC38DA25A7F3C),
-   U64(0x19FC8A768CF4B6D4), U64(0x637A7780DECFC0D9), U64(0x8249A47AEE0E41F7), U64(0x79AD695501E7D1E8),
-   U64(0x14ACBAF4777D5776), U64(0xF145B6BECCDEA195), U64(0xDABF2AC8201752FC), U64(0x24C3C94DF9C8D3F6),
-   U64(0xBB6E2924F03912EA), U64(0x0CE26C0B95C980D9), U64(0xA49CD132BFBF7CC4), U64(0xE99D662AF4243939),
-   U64(0x27E6AD7891165C3F), U64(0x8535F040B9744FF1), U64(0x54B3F4FA5F40D873), U64(0x72B12C32127FED2B),
-   U64(0xEE954D3C7B411F47), U64(0x9A85AC909A24EAA1), U64(0x70AC4CD9F04F21F5), U64(0xF9B89D3E99A075C2),
-   U64(0x87B3E2B2B5C907B1), U64(0xA366E5B8C54F48B8), U64(0xAE4A9346CC3F7CF2), U64(0x1920C04D47267BBD),
-   U64(0x87BF02C6B49E2AE9), U64(0x092237AC237F3859), U64(0xFF07F64EF8ED14D0), U64(0x8DE8DCA9F03CC54E),
-   U64(0x9C1633264DB49C89), U64(0xB3F22C3D0B0B38ED), U64(0x390E5FB44D01144B), U64(0x5BFEA5B4712768E9),
-   U64(0x1E1032911FA78984), U64(0x9A74ACB964E78CB3), U64(0x4F80F7A035DAFB04), U64(0x6304D09A0B3738C4),
-   U64(0x2171E64683023A08), U64(0x5B9B63EB9CEFF80C), U64(0x506AACF489889342), U64(0x1881AFC9A3A701D6),
-   U64(0x6503080440750644), U64(0xDFD395339CDBF4A7), U64(0xEF927DBCF00C20F2), U64(0x7B32F7D1E03680EC),
-   U64(0xB9FD7620E7316243), U64(0x05A7E8A57DB91B77), U64(0xB5889C6E15630A75), U64(0x4A750A09CE9573F7),
-   U64(0xCF464CEC899A2F8A), U64(0xF538639CE705B824), U64(0x3C79A0FF5580EF7F), U64(0xEDE6C87F8477609D),
-   U64(0x799E81F05BC93F31), U64(0x86536B8CF3428A8C), U64(0x97D7374C60087B73), U64(0xA246637CFF328532),
-   U64(0x043FCAE60CC0EBA0), U64(0x920E449535DD359E), U64(0x70EB093B15B290CC), U64(0x73A1921916591CBD),
-   U64(0x56436C9FE1A1AA8D), U64(0xEFAC4B70633B8F81), U64(0xBB215798D45DF7AF), U64(0x45F20042F24F1768),
-   U64(0x930F80F4E8EB7462), U64(0xFF6712FFCFD75EA1), U64(0xAE623FD67468AA70), U64(0xDD2C5BC84BC8D8FC),
-   U64(0x7EED120D54CF2DD9), U64(0x22FE545401165F1C), U64(0xC91800E98FB99929), U64(0x808BD68E6AC10365),
-   U64(0xDEC468145B7605F6), U64(0x1BEDE3A3AEF53302), U64(0x43539603D6C55602), U64(0xAA969B5C691CCB7A),
-   U64(0xA87832D392EFEE56), U64(0x65942C7B3C7E11AE), U64(0xDED2D633CAD004F6), U64(0x21F08570F420E565),
-   U64(0xB415938D7DA94E3C), U64(0x91B859E59ECB6350), U64(0x10CFF333E0ED804A), U64(0x28AED140BE0BB7DD),
-   U64(0xC5CC1D89724FA456), U64(0x5648F680F11A2741), U64(0x2D255069F0B7DAB3), U64(0x9BC5A38EF729ABD4),
-   U64(0xEF2F054308F6A2BC), U64(0xAF2042F5CC5C2858), U64(0x480412BAB7F5BE2A), U64(0xAEF3AF4A563DFE43),
-   U64(0x19AFE59AE451497F), U64(0x52593803DFF1E840), U64(0xF4F076E65F2CE6F0), U64(0x11379625747D5AF3),
-   U64(0xBCE5D2248682C115), U64(0x9DA4243DE836994F), U64(0x066F70B33FE09017), U64(0x4DC4DE189B671A1C),
-   U64(0x51039AB7712457C3), U64(0xC07A3F80C31FB4B4), U64(0xB46EE9C5E64A6E7C), U64(0xB3819A42ABE61C87),
-   U64(0x21A007933A522A20), U64(0x2DF16F761598AA4F), U64(0x763C4A1371B368FD), U64(0xF793C46702E086A0),
-   U64(0xD7288E012AEB8D31), U64(0xDE336A2A4BC1C44B), U64(0x0BF692B38D079F23), U64(0x2C604A7A177326B3),
-   U64(0x4850E73E03EB6064), U64(0xCFC447F1E53C8E1B), U64(0xB05CA3F564268D99), U64(0x9AE182C8BC9474E8),
-   U64(0xA4FC4BD4FC5558CA), U64(0xE755178D58FC4E76), U64(0x69B97DB1A4C03DFE), U64(0xF9B5B7C4ACC67C96),
-   U64(0xFC6A82D64B8655FB), U64(0x9C684CB6C4D24417), U64(0x8EC97D2917456ED0), U64(0x6703DF9D2924E97E),
-   U64(0xC547F57E42A7444E), U64(0x78E37644E7CAD29E), U64(0xFE9A44E9362F05FA), U64(0x08BD35CC38336615),
-   U64(0x9315E5EB3A129ACE), U64(0x94061B871E04DF75), U64(0xDF1D9F9D784BA010), U64(0x3BBA57B68871B59D),
-   U64(0xD2B7ADEEDED1F73F), U64(0xF7A255D83BC373F8), U64(0xD7F4F2448C0CEB81), U64(0xD95BE88CD210FFA7),
-   U64(0x336F52F8FF4728E7), U64(0xA74049DAC312AC71), U64(0xA2F61BB6E437FDB5), U64(0x4F2A5CB07F6A35B3),
-   U64(0x87D380BDA5BF7859), U64(0x16B9F7E06C453A21), U64(0x7BA2484C8A0FD54E), U64(0xF3A678CAD9A2E38C),
-   U64(0x39B0BF7DDE437BA2), U64(0xFCAF55C1BF8A4424), U64(0x18FCF680573FA594), U64(0x4C0563B89F495AC3),
-   U64(0x40E087931A00930D), U64(0x8CFFA9412EB642C1), U64(0x68CA39053261169F), U64(0x7A1EE967D27579E2),
-   U64(0x9D1D60E5076F5B6F), U64(0x3810E399B6F65BA2), U64(0x32095B6D4AB5F9B1), U64(0x35CAB62109DD038A),
-   U64(0xA90B24499FCFAFB1), U64(0x77A225A07CC2C6BD), U64(0x513E5E634C70E331), U64(0x4361C0CA3F692F12),
-   U64(0xD941ACA44B20A45B), U64(0x528F7C8602C5807B), U64(0x52AB92BEB9613989), U64(0x9D1DFA2EFC557F73),
-   U64(0x722FF175F572C348), U64(0x1D1260A51107FE97), U64(0x7A249A57EC0C9BA2), U64(0x04208FE9E8F7F2D6),
-   U64(0x5A110C6058B920A0), U64(0x0CD9A497658A5698), U64(0x56FD23C8F9715A4C), U64(0x284C847B9D887AAE),
-   U64(0x04FEABFBBDB619CB), U64(0x742E1E651C60BA83), U64(0x9A9632E65904AD3C), U64(0x881B82A13B51B9E2),
-   U64(0x506E6744CD974924), U64(0xB0183DB56FFC6A79), U64(0x0ED9B915C66ED37E), U64(0x5E11E86D5873D484),
-   U64(0xF678647E3519AC6E), U64(0x1B85D488D0F20CC5), U64(0xDAB9FE6525D89021), U64(0x0D151D86ADB73615),
-   U64(0xA865A54EDCC0F019), U64(0x93C42566AEF98FFB), U64(0x99E7AFEABE000731), U64(0x48CBFF086DDF285A),
-   U64(0x7F9B6AF1EBF78BAF), U64(0x58627E1A149BBA21), U64(0x2CD16E2ABD791E33), U64(0xD363EFF5F0977996),
-   U64(0x0CE2A38C344A6EED), U64(0x1A804AADB9CFA741), U64(0x907F30421D78C5DE), U64(0x501F65EDB3034D07),
-   U64(0x37624AE5A48FA6E9), U64(0x957BAF61700CFF4E), U64(0x3A6C27934E31188A), U64(0xD49503536ABCA345),
-   U64(0x088E049589C432E0), U64(0xF943AEE7FEBF21B8), U64(0x6C3B8E3E336139D3), U64(0x364F6FFA464EE52E),
-   U64(0xD60F6DCEDC314222), U64(0x56963B0DCA418FC0), U64(0x16F50EDF91E513AF), U64(0xEF1955914B609F93),
-   U64(0x565601C0364E3228), U64(0xECB53939887E8175), U64(0xBAC7A9A18531294B), U64(0xB344C470397BBA52),
-   U64(0x65D34954DAF3CEBD), U64(0xB4B81B3FA97511E2), U64(0xB422061193D6F6A7), U64(0x071582401C38434D),
-   U64(0x7A13F18BBEDC4FF5), U64(0xBC4097B116C524D2), U64(0x59B97885E2F2EA28), U64(0x99170A5DC3115544),
-   U64(0x6F423357E7C6A9F9), U64(0x325928EE6E6F8794), U64(0xD0E4366228B03343), U64(0x565C31F7DE89EA27),
-   U64(0x30F5611484119414), U64(0xD873DB391292ED4F), U64(0x7BD94E1D8E17DEBC), U64(0xC7D9F16864A76E94),
-   U64(0x947AE053EE56E63C), U64(0xC8C93882F9475F5F), U64(0x3A9BF55BA91F81CA), U64(0xD9A11FBB3D9808E4),
-   U64(0x0FD22063EDC29FCA), U64(0xB3F256D8ACA0B0B9), U64(0xB03031A8B4516E84), U64(0x35DD37D5871448AF),
-   U64(0xE9F6082B05542E4E), U64(0xEBFAFA33D7254B59), U64(0x9255ABB50D532280), U64(0xB9AB4CE57F2D34F3),
-   U64(0x693501D628297551), U64(0xC62C58F97DD949BF), U64(0xCD454F8F19C5126A), U64(0xBBE83F4ECC2BDECB),
-   U64(0xDC842B7E2819E230), U64(0xBA89142E007503B8), U64(0xA3BC941D0A5061CB), U64(0xE9F6760E32CD8021),
-   U64(0x09C7E552BC76492F), U64(0x852F54934DA55CC9), U64(0x8107FCCF064FCF56), U64(0x098954D51FFF6580),
-   U64(0x23B70EDB1955C4BF), U64(0xC330DE426430F69D), U64(0x4715ED43E8A45C0A), U64(0xA8D7E4DAB780A08D),
-   U64(0x0572B974F03CE0BB), U64(0xB57D2E985E1419C7), U64(0xE8D9ECBE2CF3D73F), U64(0x2FE4B17170E59750),
-   U64(0x11317BA87905E790), U64(0x7FBF21EC8A1F45EC), U64(0x1725CABFCB045B00), U64(0x964E915CD5E2B207),
-   U64(0x3E2B8BCBF016D66D), U64(0xBE7444E39328A0AC), U64(0xF85B2B4FBCDE44B7), U64(0x49353FEA39BA63B1),
-   U64(0x1DD01AAFCD53486A), U64(0x1FCA8A92FD719F85), U64(0xFC7C95D827357AFA), U64(0x18A6A990C8B35EBD),
-   U64(0xCCCB7005C6B9C28D), U64(0x3BDBB92C43B17F26), U64(0xAA70B5B4F89695A2), U64(0xE94C39A54A98307F),
-   U64(0xB7A0B174CFF6F36E), U64(0xD4DBA84729AF48AD), U64(0x2E18BC1AD9704A68), U64(0x2DE0966DAF2F8B1C),
-   U64(0xB9C11D5B1E43A07E), U64(0x64972D68DEE33360), U64(0x94628D38D0C20584), U64(0xDBC0D2B6AB90A559),
-   U64(0xD2733C4335C6A72F), U64(0x7E75D99D94A70F4D), U64(0x6CED1983376FA72B), U64(0x97FCAACBF030BC24),
-   U64(0x7B77497B32503B12), U64(0x8547EDDFB81CCB94), U64(0x79999CDFF70902CB), U64(0xCFFE1939438E9B24),
-   U64(0x829626E3892D95D7), U64(0x92FAE24291F2B3F1), U64(0x63E22C147B9C3403), U64(0xC678B6D860284A1C),
-   U64(0x5873888850659AE7), U64(0x0981DCD296A8736D), U64(0x9F65789A6509A440), U64(0x9FF38FED72E9052F),
-   U64(0xE479EE5B9930578C), U64(0xE7F28ECD2D49EECD), U64(0x56C074A581EA17FE), U64(0x5544F7D774B14AEF),
-   U64(0x7B3F0195FC6F290F), U64(0x12153635B2C0CF57), U64(0x7F5126DBBA5E0CA7), U64(0x7A76956C3EAFB413),
-   U64(0x3D5774A11D31AB39), U64(0x8A1B083821F40CB4), U64(0x7B4A38E32537DF62), U64(0x950113646D1D6E03),
-   U64(0x4DA8979A0041E8A9), U64(0x3BC36E078F7515D7), U64(0x5D0A12F27AD310D1), U64(0x7F9D1A2E1EBE1327),
-   U64(0xDA3A361B1C5157B1), U64(0xDCDD7D20903D0C25), U64(0x36833336D068F707), U64(0xCE68341F79893389),
-   U64(0xAB9090168DD05F34), U64(0x43954B3252DC25E5), U64(0xB438C2B67F98E5E9), U64(0x10DCD78E3851A492),
-   U64(0xDBC27AB5447822BF), U64(0x9B3CDB65F82CA382), U64(0xB67B7896167B4C84), U64(0xBFCED1B0048EAC50),
-   U64(0xA9119B60369FFEBD), U64(0x1FFF7AC80904BF45), U64(0xAC12FB171817EEE7), U64(0xAF08DA9177DDA93D),
-   U64(0x1B0CAB936E65C744), U64(0xB559EB1D04E5E932), U64(0xC37B45B3F8D6F2BA), U64(0xC3A9DC228CAAC9E9),
-   U64(0xF3B8B6675A6507FF), U64(0x9FC477DE4ED681DA), U64(0x67378D8ECCEF96CB), U64(0x6DD856D94D259236),
-   U64(0xA319CE15B0B4DB31), U64(0x073973751F12DD5E), U64(0x8A8E849EB32781A5), U64(0xE1925C71285279F5),
-   U64(0x74C04BF1790C0EFE), U64(0x4DDA48153C94938A), U64(0x9D266D6A1CC0542C), U64(0x7440FB816508C4FE),
-   U64(0x13328503DF48229F), U64(0xD6BF7BAEE43CAC40), U64(0x4838D65F6EF6748F), U64(0x1E152328F3318DEA),
-   U64(0x8F8419A348F296BF), U64(0x72C8834A5957B511), U64(0xD7A023A73260B45C), U64(0x94EBC8ABCFB56DAE),
-   U64(0x9FC10D0F989993E0), U64(0xDE68A2355B93CAE6), U64(0xA44CFE79AE538BBE), U64(0x9D1D84FCCE371425),
-   U64(0x51D2B1AB2DDFB636), U64(0x2FD7E4B9E72CD38C), U64(0x65CA5B96B7552210), U64(0xDD69A0D8AB3B546D),
-   U64(0x604D51B25FBF70E2), U64(0x73AA8A564FB7AC9E), U64(0x1A8C1E992B941148), U64(0xAAC40A2703D9BEA0),
-   U64(0x764DBEAE7FA4F3A6), U64(0x1E99B96E70A9BE8B), U64(0x2C5E9DEB57EF4743), U64(0x3A938FEE32D29981),
-   U64(0x26E6DB8FFDF5ADFE), U64(0x469356C504EC9F9D), U64(0xC8763C5B08D1908C), U64(0x3F6C6AF859D80055),
-   U64(0x7F7CC39420A3A545), U64(0x9BFB227EBDF4C5CE), U64(0x89039D79D6FC5C5C), U64(0x8FE88B57305E2AB6),
-   U64(0xA09E8C8C35AB96DE), U64(0xFA7E393983325753), U64(0xD6B6D0ECC617C699), U64(0xDFEA21EA9E7557E3),
-   U64(0xB67C1FA481680AF8), U64(0xCA1E3785A9E724E5), U64(0x1CFC8BED0D681639), U64(0xD18D8549D140CAEA),
-   U64(0x4ED0FE7E9DC91335), U64(0xE4DBF0634473F5D2), U64(0x1761F93A44D5AEFE), U64(0x53898E4C3910DA55),
-   U64(0x734DE8181F6EC39A), U64(0x2680B122BAA28D97), U64(0x298AF231C85BAFAB), U64(0x7983EED3740847D5),
-   U64(0x66C1A2A1A60CD889), U64(0x9E17E49642A3E4C1), U64(0xEDB454E7BADC0805), U64(0x50B704CAB602C329),
-   U64(0x4CC317FB9CDDD023), U64(0x66B4835D9EAFEA22), U64(0x219B97E26FFC81BD), U64(0x261E4E4C0A333A9D),
-   U64(0x1FE2CCA76517DB90), U64(0xD7504DFA8816EDBB), U64(0xB9571FA04DC089C8), U64(0x1DDC0325259B27DE),
-   U64(0xCF3F4688801EB9AA), U64(0xF4F5D05C10CAB243), U64(0x38B6525C21A42B0E), U64(0x36F60E2BA4FA6800),
-   U64(0xEB3593803173E0CE), U64(0x9C4CD6257C5A3603), U64(0xAF0C317D32ADAA8A), U64(0x258E5A80C7204C4B),
-   U64(0x8B889D624D44885D), U64(0xF4D14597E660F855), U64(0xD4347F66EC8941C3), U64(0xE699ED85B0DFB40D),
-   U64(0x2472F6207C2D0484), U64(0xC2A1E7B5B459AEB5), U64(0xAB4F6451CC1D45EC), U64(0x63767572AE3D6174),
-   U64(0xA59E0BD101731A28), U64(0x116D0016CB948F09), U64(0x2CF9C8CA052F6E9F), U64(0x0B090A7560A968E3),
-   U64(0xABEEDDB2DDE06FF1), U64(0x58EFC10B06A2068D), U64(0xC6E57A78FBD986E0), U64(0x2EAB8CA63CE802D7),
-   U64(0x14A195640116F336), U64(0x7C0828DD624EC390), U64(0xD74BBE77E6116AC7), U64(0x804456AF10F5FB53),
-   U64(0xEBE9EA2ADF4321C7), U64(0x03219A39EE587A30), U64(0x49787FEF17AF9924), U64(0xA1E9300CD8520548),
-   U64(0x5B45E522E4B1B4EF), U64(0xB49C3B3995091A36), U64(0xD4490AD526F14431), U64(0x12A8F216AF9418C2),
-   U64(0x001F837CC7350524), U64(0x1877B51E57A764D5), U64(0xA2853B80F17F58EE), U64(0x993E1DE72D36D310),
-   U64(0xB3598080CE64A656), U64(0x252F59CF0D9F04BB), U64(0xD23C8E176D113600), U64(0x1BDA0492E7E4586E),
-   U64(0x21E0BD5026C619BF), U64(0x3B097ADAF088F94E), U64(0x8D14DEDB30BE846E), U64(0xF95CFFA23AF5F6F4),
-   U64(0x3871700761B3F743), U64(0xCA672B91E9E4FA16), U64(0x64C8E531BFF53B55), U64(0x241260ED4AD1E87D),
-   U64(0x106C09B972D2E822), U64(0x7FBA195410E5CA30), U64(0x7884D9BC6CB569D8), U64(0x0647DFEDCD894A29),
-   U64(0x63573FF03E224774), U64(0x4FC8E9560F91B123), U64(0x1DB956E450275779), U64(0xB8D91274B9E9D4FB),
-   U64(0xA2EBEE47E2FBFCE1), U64(0xD9F1F30CCD97FB09), U64(0xEFED53D75FD64E6B), U64(0x2E6D02C36017F67F),
-   U64(0xA9AA4D20DB084E9B), U64(0xB64BE8D8B25396C1), U64(0x70CB6AF7C2D5BCF0), U64(0x98F076A4F7A2322E),
-   U64(0xBF84470805E69B5F), U64(0x94C3251F06F90CF3), U64(0x3E003E616A6591E9), U64(0xB925A6CD0421AFF3),
-   U64(0x61BDD1307C66E300), U64(0xBF8D5108E27E0D48), U64(0x240AB57A8B888B20), U64(0xFC87614BAF287E07),
-   U64(0xEF02CDD06FFDB432), U64(0xA1082C0466DF6C0A), U64(0x8215E577001332C8), U64(0xD39BB9C3A48DB6CF),
-   U64(0x2738259634305C14), U64(0x61CF4F94C97DF93D), U64(0x1B6BACA2AE4E125B), U64(0x758F450C88572E0B),
-   U64(0x959F587D507A8359), U64(0xB063E962E045F54D), U64(0x60E8ED72C0DFF5D1), U64(0x7B64978555326F9F),
-   U64(0xFD080D236DA814BA), U64(0x8C90FD9B083F4558), U64(0x106F72FE81E2C590), U64(0x7976033A39F7D952),
-   U64(0xA4EC0132764CA04B), U64(0x733EA705FAE4FA77), U64(0xB4D8F77BC3E56167), U64(0x9E21F4F903B33FD9),
-   U64(0x9D765E419FB69F6D), U64(0xD30C088BA61EA5EF), U64(0x5D94337FBFAF7F5B), U64(0x1A4E4822EB4D7A59),
-   U64(0x6FFE73E81B637FB3), U64(0xDDF957BC36D8B9CA), U64(0x64D0E29EEA8838B3), U64(0x08DD9BDFD96B9F63),
-   U64(0x087E79E5A57D1D13), U64(0xE328E230E3E2B3FB), U64(0x1C2559E30F0946BE), U64(0x720BF5F26F4D2EAA),
-   U64(0xB0774D261CC609DB), U64(0x443F64EC5A371195), U64(0x4112CF68649A260E), U64(0xD813F2FAB7F5C5CA),
-   U64(0x660D3257380841EE), U64(0x59AC2C7873F910A3), U64(0xE846963877671A17), U64(0x93B633ABFA3469F8),
-   U64(0xC0C0F5A60EF4CDCF), U64(0xCAF21ECD4377B28C), U64(0x57277707199B8175), U64(0x506C11B9D90E8B1D),
-   U64(0xD83CC2687A19255F), U64(0x4A29C6465A314CD1), U64(0xED2DF21216235097), U64(0xB5635C95FF7296E2),
-   U64(0x22AF003AB672E811), U64(0x52E762596BF68235), U64(0x9AEBA33AC6ECC6B0), U64(0x944F6DE09134DFB6),
-   U64(0x6C47BEC883A7DE39), U64(0x6AD047C430A12104), U64(0xA5B1CFDBA0AB4067), U64(0x7C45D833AFF07862),
-   U64(0x5092EF950A16DA0B), U64(0x9338E69C052B8E7B), U64(0x455A4B4CFE30E3F5), U64(0x6B02E63195AD0CF8),
-   U64(0x6B17B224BAD6BF27), U64(0xD1E0CCD25BB9C169), U64(0xDE0C89A556B9AE70), U64(0x50065E535A213CF6),
-   U64(0x9C1169FA2777B874), U64(0x78EDEFD694AF1EED), U64(0x6DC93D9526A50E68), U64(0xEE97F453F06791ED),
-   U64(0x32AB0EDB696703D3), U64(0x3A6853C7E70757A7), U64(0x31865CED6120F37D), U64(0x67FEF95D92607890),
-   U64(0x1F2B1D1F15F6DC9C), U64(0xB69E38A8965C6B65), U64(0xAA9119FF184CCCF4), U64(0xF43C732873F24C13),
-   U64(0xFB4A3D794A9A80D2), U64(0x3550C2321FD6109C), U64(0x371F77E76BB8417E), U64(0x6BFA9AAE5EC05779),
-   U64(0xCD04F3FF001A4778), U64(0xE3273522064480CA), U64(0x9F91508BFFCFC14A), U64(0x049A7F41061A9E60),
-   U64(0xFCB6BE43A9F2FE9B), U64(0x08DE8A1C7797DA9B), U64(0x8F9887E6078735A1), U64(0xB5B4071DBFC73A66),
-   U64(0x230E343DFBA08D33), U64(0x43ED7F5A0FAE657D), U64(0x3A88A0FBBCB05C63), U64(0x21874B8B4D2DBC4F),
-   U64(0x1BDEA12E35F6A8C9), U64(0x53C065C6C8E63528), U64(0xE34A1D250E7A8D6B), U64(0xD6B04D3B7651DD7E),
-   U64(0x5E90277E7CB39E2D), U64(0x2C046F22062DC67D), U64(0xB10BB459132D0A26), U64(0x3FA9DDFB67E2F199),
-   U64(0x0E09B88E1914F7AF), U64(0x10E8B35AF3EEAB37), U64(0x9EEDECA8E272B933), U64(0xD4C718BC4AE8AE5F),
-   U64(0x81536D601170FC20), U64(0x91B534F885818A06), U64(0xEC8177F83F900978), U64(0x190E714FADA5156E),
-   U64(0xB592BF39B0364963), U64(0x89C350C893AE7DC1), U64(0xAC042E70F8B383F2), U64(0xB49B52E587A1EE60),
-   U64(0xFB152FE3FF26DA89), U64(0x3E666E6F69AE2C15), U64(0x3B544EBE544C19F9), U64(0xE805A1E290CF2456),
-   U64(0x24B33C9D7ED25117), U64(0xE74733427B72F0C1), U64(0x0A804D18B7097475), U64(0x57E3306D881EDB4F),
-   U64(0x4AE7D6A36EB5DBCB), U64(0x2D8D5432157064C8), U64(0xD1E649DE1E7F268B), U64(0x8A328A1CEDFE552C),
-   U64(0x07A3AEC79624C7DA), U64(0x84547DDC3E203C94), U64(0x990A98FD5071D263), U64(0x1A4FF12616EEFC89),
-   U64(0xF6F7FD1431714200), U64(0x30C05B1BA332F41C), U64(0x8D2636B81555A786), U64(0x46C9FEB55D120902),
-   U64(0xCCEC0A73B49C9921), U64(0x4E9D2827355FC492), U64(0x19EBB029435DCB0F), U64(0x4659D2B743848A2C),
-   U64(0x963EF2C96B33BE31), U64(0x74F85198B05A2E7D), U64(0x5A0F544DD2B1FB18), U64(0x03727073C2E134B1),
-   U64(0xC7F6AA2DE59AEA61), U64(0x352787BAA0D7C22F), U64(0x9853EAB63B5E0B35), U64(0xABBDCDD7ED5C0860),
-   U64(0xCF05DAF5AC8D77B0), U64(0x49CAD48CEBF4A71E), U64(0x7A4C10EC2158C4A6), U64(0xD9E92AA246BF719E),
-   U64(0x13AE978D09FE5557), U64(0x730499AF921549FF), U64(0x4E4B705B92903BA4), U64(0xFF577222C14F0A3A),
-   U64(0x55B6344CF97AAFAE), U64(0xB862225B055B6960), U64(0xCAC09AFBDDD2CDB4), U64(0xDAF8E9829FE96B5F),
-   U64(0xB5FDFC5D3132C498), U64(0x310CB380DB6F7503), U64(0xE87FBB46217A360E), U64(0x2102AE466EBB1148),
-   U64(0xF8549E1A3AA5E00D), U64(0x07A69AFDCC42261A), U64(0xC4C118BFE78FEAAE), U64(0xF9F4892ED96BD438),
-   U64(0x1AF3DBE25D8F45DA), U64(0xF5B4B0B0D2DEEEB4), U64(0x962ACEEFA82E1C84), U64(0x046E3ECAAF453CE9),
-   U64(0xF05D129681949A4C), U64(0x964781CE734B3C84), U64(0x9C2ED44081CE5FBD), U64(0x522E23F3925E319E),
-   U64(0x177E00F9FC32F791), U64(0x2BC60A63A6F3B3F2), U64(0x222BBFAE61725606), U64(0x486289DDCC3D6780),
-   U64(0x7DC7785B8EFDFC80), U64(0x8AF38731C02BA980), U64(0x1FAB64EA29A2DDF7), U64(0xE4D9429322CD065A),
-   U64(0x9DA058C67844F20C), U64(0x24C0E332B70019B0), U64(0x233003B5A6CFE6AD), U64(0xD586BD01C5C217F6),
-   U64(0x5E5637885F29BC2B), U64(0x7EBA726D8C94094B), U64(0x0A56A5F0BFE39272), U64(0xD79476A84EE20D06),
-   U64(0x9E4C1269BAA4BF37), U64(0x17EFEE45B0DEE640), U64(0x1D95B0A5FCF90BC6), U64(0x93CBE0B699C2585D),
-   U64(0x65FA4F227A2B6D79), U64(0xD5F9E858292504D5), U64(0xC2B5A03F71471A6F), U64(0x59300222B4561E00),
-   U64(0xCE2F8642CA0712DC), U64(0x7CA9723FBB2E8988), U64(0x2785338347F2BA08), U64(0xC61BB3A141E50E8C),
-   U64(0x150F361DAB9DEC26), U64(0x9F6A419D382595F4), U64(0x64A53DC924FE7AC9), U64(0x142DE49FFF7A7C3D),
-   U64(0x0C335248857FA9E7), U64(0x0A9C32D5EAE45305), U64(0xE6C42178C4BBB92E), U64(0x71F1CE2490D20B07),
-   U64(0xF1BCC3D275AFE51A), U64(0xE728E8C83C334074), U64(0x96FBF83A12884624), U64(0x81A1549FD6573DA5),
-   U64(0x5FA7867CAF35E149), U64(0x56986E2EF3ED091B), U64(0x917F1DD5F8886C61), U64(0xD20D8C88C8FFE65F),
-   U64(0x31D71DCE64B2C310), U64(0xF165B587DF898190), U64(0xA57E6339DD2CF3A0), U64(0x1EF6E6DBB1961EC9),
-   U64(0x70CC73D90BC26E24), U64(0xE21A6B35DF0C3AD7), U64(0x003A93D8B2806962), U64(0x1C99DED33CB890A1),
-   U64(0xCF3145DE0ADD4289), U64(0xD0E4427A5514FB72), U64(0x77C621CC9FB3A483), U64(0x67A34DAC4356550B),
-   U64(0xF8D626AAAF278509),
-};
-
-uint64 *RandomPiece     =Random64;
-uint64 *RandomCastle    =Random64+768;
-uint64 *RandomEnPassant =Random64+772;
-uint64 *RandomTurn      =Random64+780;
-
-
-uint64
-hash (int moveNr)
-{
-    int r, f, p_enc, squareNr, pieceGroup;
-    uint64 key=0, holdingsKey=0, Zobrist;
-    VariantClass v = gameInfo.variant;
-
-    switch(v) {
-       case VariantNormal:
-       case VariantFischeRandom: // compatible with normal
-       case VariantNoCastle:
-       case VariantXiangqi: // for historic reasons; does never collide anyway because of other King type
-           break;
-       case VariantGiveaway: // in opening same as suicide
-           key += VariantSuicide;
-           break;
-       case VariantGothic: // these are special cases of CRC, and can share book
-       case VariantCapablanca:
-           v = VariantCapaRandom;
-       default:
-           key += v; // variant type incorporated in key to allow mixed books without collisions
-    }
-
-    for(f=0; f<BOARD_WIDTH; f++){
-        for(r=0; r<BOARD_HEIGHT;r++){
-            ChessSquare p = boards[moveNr][r][f];
-           if(f == BOARD_LEFT-1 || f == BOARD_RGHT) continue; // between board and holdings
-            if(p != EmptySquare){
-                   int j = (int)p, promoted = 0;
-                   j -= (j >= (int)BlackPawn) ? (int)BlackPawn :(int)WhitePawn;
-                   if(j >= WhitePBishop && j != WhiteKing) promoted++, j -= WhiteTokin;
-                   if(j > (int)WhiteQueen) j++;  // make space for King
-                   if(j > (int) WhiteKing) j = (int)WhiteQueen + 1;
-                   p_enc = 2*j + ((int)p < (int)BlackPawn);
-                   // holdings squares get nmbers immediately after board; first left, then right holdings
-                   if(f == BOARD_LEFT-2) squareNr = (BOARD_RGHT - BOARD_LEFT)*BOARD_HEIGHT + r; else
-                   if(f == BOARD_RGHT+1) squareNr = (BOARD_RGHT - BOARD_LEFT + 1)*BOARD_HEIGHT + r; else
-                   squareNr = (BOARD_RGHT - BOARD_LEFT)*r + (f - BOARD_LEFT);
-                   // note that in normal Chess squareNr < 64 and p_enc < 12. The following code
-                   // maps other pieces and squares in this range, and then modify the corresponding
-                   // Zobrist random by rotating its bitpattern according to what the piece really was.
-                   pieceGroup = p_enc / 12;
-                   p_enc      = p_enc % 12;
-                   Zobrist = RandomPiece[64*p_enc + (squareNr & 63)];
-                   if(pieceGroup & 4) Zobrist *= 987654321;
-                   switch(pieceGroup & 3) {
-                       case 1: // pieces 5-10 (FEACWM)
-                               Zobrist = (Zobrist << 16) ^ (Zobrist >> 48);
-                               break;
-                       case 2: // pieces 11-16 (OHIJGD)
-                               Zobrist = (Zobrist << 32) ^ (Zobrist >> 32);
-                               break;
-                       case 3: // pieces 17-20 (VLSU)
-                               Zobrist = (Zobrist << 48) ^ (Zobrist >> 16);
-                               break;
-                   }
-                   if(promoted) Zobrist ^= 123456789*RandomPiece[squareNr & 63];
-                   if(squareNr &  64) Zobrist = (Zobrist << 8) ^ (Zobrist >> 56);
-                   if(squareNr & 128) Zobrist = (Zobrist << 4) ^ (Zobrist >> 60);
-                   // holdings have separate (additive) key, to encode presence of multiple pieces on same square
-                   if(f == BOARD_LEFT-2) holdingsKey += Zobrist * boards[moveNr][r][f+1]; else
-                   if(f == BOARD_RGHT+1) holdingsKey += Zobrist * boards[moveNr][r][f-1]; else
-                key ^= Zobrist;
-            }
-        }
-    }
-
-    if(boards[moveNr][CASTLING][2] != NoRights) {
-       if(boards[moveNr][CASTLING][0] != NoRights) key^=RandomCastle[0];
-       if(boards[moveNr][CASTLING][1] != NoRights) key^=RandomCastle[1];
-    }
-    if(boards[moveNr][CASTLING][5] != NoRights) {
-       if(boards[moveNr][CASTLING][3] != NoRights) key^=RandomCastle[2];
-       if(boards[moveNr][CASTLING][4] != NoRights) key^=RandomCastle[3];
-    }
-
-    f = boards[moveNr][EP_STATUS];
-    if(f >= 0 && f < 8){
-        if(!WhiteOnMove(moveNr)){
-           // the test for neighboring Pawns might not be needed,
-           // as epStatus already kept track of it, but better safe than sorry.
-            if((f>0 && boards[moveNr][3][f-1]==BlackPawn)||
-               (f<7 && boards[moveNr][3][f+1]==BlackPawn)){
-                key^=RandomEnPassant[f];
-            }
-        }else{
-            if((f>0 && boards[moveNr][4][f-1]==WhitePawn)||
-               (f<7 && boards[moveNr][4][f+1]==WhitePawn)){
-                key^=RandomEnPassant[f];
-            }
-        }
-    }
-
-    if(WhiteOnMove(moveNr)){
-        key^=RandomTurn[0];
-    }
-    return key + holdingsKey;
-}
-
-#define MOVE_BUF 100
-
-// fs routines read from memory buffer if no file specified
-
-static unsigned char *memBuf, *memPtr;
-static int bufSize;
-Boolean mcMode;
-
-int
-fsseek (FILE *f, int n, int mode)
-{
-    if(f) return fseek(f, n, mode);
-    if(mode == SEEK_SET) memPtr = memBuf + n; else
-    if(mode == SEEK_END) memPtr = memBuf + 16*bufSize + n;
-    return memPtr < memBuf || memPtr > memBuf + 16*bufSize;
-}
-
-int
-fstell (FILE *f)
-{
-  if(f) return ftell(f);
-  return memPtr - memBuf;
-}
-
-int
-fsgetc (FILE *f)
-{
-  if(f) return fgetc(f);
-  if(memPtr >= memBuf + 16*bufSize) return EOF;
-  return *memPtr++ ;
-}
-
-int
-int_from_file (FILE *f, int l, uint64 *r)
-{
-    int i,c;
-    for(i=0;i<l;i++){
-        c=fsgetc(f);
-        if(c==EOF){
-            return 1;
-        }
-        (*r)=((*r)<<8)+c;
-    }
-    return 0;
-}
-
-int
-entry_from_file (FILE *f, entry_t *entry)
-{
-    int ret;
-    uint64 r;
-    if(!f) { *entry = *(entry_t*) memPtr; memPtr += 16; return 0; }
-    ret=int_from_file(f,8,&r);
-    if(ret) return 1;
-    entry->key=r;
-    ret=int_from_file(f,2,&r);
-    if(ret) return 1;
-    entry->move=r;
-    ret=int_from_file(f,2,&r);
-    if(ret) return 1;
-    entry->weight=r;
-    ret=int_from_file(f,2,&r);
-    if(ret) return 1;
-    entry->learnCount=r;
-    ret=int_from_file(f,2,&r);
-    if(ret) return 1;
-    entry->learnPoints=r;
-    return 0;
-}
-
-int
-find_key (FILE *f, uint64 key, entry_t *entry)
-{
-    int first, last, middle;
-    entry_t last_entry,middle_entry;
-    first=-1;
-    if(fsseek(f,-16,SEEK_END)){
-        *entry=entry_none;
-        entry->key=key+1; //hack
-        return -1;
-    }
-    last=fstell(f)/16;
-    entry_from_file(f,&last_entry);
-    while(1){
-        if(last-first==1){
-            *entry=last_entry;
-            return last;
-        }
-        middle=(first+last)/2;
-        fsseek(f,16*middle,SEEK_SET);
-        entry_from_file(f,&middle_entry);
-        if(key<=middle_entry.key){
-            last=middle;
-            last_entry=middle_entry;
-        }else{
-            first=middle;
-        }
-    }
-}
-
-static int xStep[] = { 0, 1, 1, 1, 0,-1,-1,-1 };
-static int yStep[] = { 1, 1, 0,-1,-1,-1, 0, 1 };
-
-void
-move_to_string (char move_s[20], uint16 move)
-{
-    int f,fr,ff,t,tr,tf,p;
-    int width = BOARD_RGHT - BOARD_LEFT, size; // allow for alternative board formats
-
-    size = width * BOARD_HEIGHT;
-    p    = move / (size*size);
-    move = move % (size*size);
-    f  = move / size;
-    fr = f / width;
-    ff = f % width;
-    t  = move % size;
-    tr = t / width;
-    tf = t % width;
-    snprintf(move_s, 9, "%c%d%c%d", ff + 'a', fr + 1 - (BOARD_HEIGHT == 10), tf + 'a', tr + 1 - (BOARD_HEIGHT == 10));
-
-    if(IS_SHOGI(gameInfo.variant) && p) {
-       if(p == 2) p = 10;     // Lion moves, for boards so big that 10 is out of range
-       else if(p != 7) p = 8; // use '+' for all others that do not explicitly defer
-    }
-
-    // kludge: encode drops as special promotion code
-    if(gameInfo.holdingsSize && p == 9) {
-       move_s[0] = f + '@'; // from square encodes piece type
-       move_s[1] = '@';     // drop symbol
-       p = 0;
-    } else if(p == 10) { // decode Lion move
-       int i = t & 7, j = t >> 3 & 7;
-       tf = ff + xStep[i] + xStep[j]; tr = fr + yStep[i] + yStep[j]; // calculate true to-square
-       snprintf(move_s, 20, "%c%d%c%d,%c%d%c%d", ff + 'a', fr + 1 - (BOARD_HEIGHT == 10),
-                                                 ff + xStep[i] + 'a', fr + yStep[i] + 1 - (BOARD_HEIGHT == 10),
-                                                 ff + xStep[i] + 'a', fr + yStep[i] + 1 - (BOARD_HEIGHT == 10),
-                                                 tf + 'a', tr + 1 - (BOARD_HEIGHT == 10) );
-       p = 0;
-    }
-
-    // add promotion piece, if any
-    if(p){
-       int len = strlen(move_s);
-        move_s[len] = promote_pieces[p];
-        move_s[len+1] = '\0';
-    }
-
-    if(gameInfo.variant != VariantNormal) return;
-
-    // correct FRC-style castlings in variant normal.
-    // [HGM] This is buggy code! e1h1 could very well be a normal R or Q move.
-    if(!strcmp(move_s,"e1h1")){
-      safeStrCpy(move_s,"e1g1", 6);
-    }else  if(!strcmp(move_s,"e1a1")){
-      safeStrCpy(move_s,"e1c1", 6);
-    }else  if(!strcmp(move_s,"e8h8")){
-      safeStrCpy(move_s,"e8g8", 6);
-    }else  if(!strcmp(move_s,"e8a8")){
-      safeStrCpy(move_s,"e8c8", 6);
-    }
-}
-
-int
-GetBookMoves (FILE *f, int moveNr, entry_t entries[], int max)
-{   // retrieve all entries for given position from book in 'entries', return number.
-    entry_t entry;
-    int offset;
-    uint64 key;
-    int count;
-    int ret;
-
-    key = hash(moveNr);
-    if(appData.debugMode) fprintf(debugFP, "book key = %08x%08x\n", (unsigned int)(key>>32), (unsigned int)key);
-
-    offset=find_key(f, key, &entry);
-    if(entry.key != key) {
-         return FALSE;
-    }
-    entries[0] = entry;
-    count=1;
-    fsseek(f, 16*(offset+1), SEEK_SET);
-    while(1){
-        ret=entry_from_file(f, &entry);
-        if(ret){
-            break;
-        }
-        if(entry.key != key){
-            break;
-        }
-        if(count == max) break;
-        entries[count++] = entry;
-    }
-    return count;
-}
-
-static int dirty;
-
-int
-ReadFromBookFile (int moveNr, char *book, entry_t entries[])
-{   // retrieve all entries for given position from book in 'entries', return number.
-    static FILE *f = NULL;
-    static char curBook[MSG_SIZ];
-
-    if(book == NULL) return -1;
-    if(dirty) { if(f) fclose(f); dirty = 0; f = NULL; }
-    if(!f || strcmp(book, curBook)){ // keep book file open until book changed
-       strncpy(curBook, book, MSG_SIZ);
-       if(f) fclose(f);
-       f = fopen(book,"rb");
-    }
-    if(!f){
-       DisplayError(_("Polyglot book not valid"), 0);
-       appData.usePolyglotBook = FALSE;
-       return -1;
-    }
-
-    return GetBookMoves(f, moveNr, entries, MOVE_BUF);
-}
-
-// next three made into subroutines to facilitate future changes in storage scheme (e.g. 2 x 3 bytes)
-
-static int
-wins(entry_t *e)
-{
-    return e->learnPoints;
-}
-
-static int
-losses(entry_t *e)
-{
-    return e->learnCount;
-}
-
-static void
-CountMove (entry_t *e, int result)
-{
-    switch(result) {
-      case 0: e->learnCount ++; break;
-      case 1: e->learnCount ++; // count draw as win + loss
-      case 2: e->learnPoints ++; break;
-    }
-}
-
-#define MERGESIZE 2048
-#define HASHSIZE  1024*1024*4
-
-entry_t *memBook, *hashTab, *mergeBuf;
-int bookSize=1, mergeSize=1, mask = HASHSIZE-1;
-
-void
-InitMemBook ()
-{
-    static int initDone = FALSE;
-    if(initDone) return;
-    memBook  = (entry_t *) calloc(1024*1024, sizeof(entry_t));
-    hashTab  = (entry_t *) calloc(HASHSIZE,  sizeof(entry_t));
-    mergeBuf = (entry_t *) calloc(MERGESIZE+5, sizeof(entry_t));
-    memBook[0].key  = -1LL;
-    mergeBuf[0].key = -1LL;
-    initDone = TRUE;
-}
-
-char *
-MCprobe (int moveNr)
-{
-    int count, count2, games, i, choice=0;
-    entry_t entries[MOVE_BUF];
-    float nominal[MOVE_BUF], tot, deficit, max, min;
-    static char move_s[6];
-
-    InitMemBook();
-    memBuf = (unsigned char*) memBook; bufSize = bookSize;   // in MC mode book resides in memory
-    count = GetBookMoves(NULL, moveNr, entries, MOVE_BUF);
-    if(count < 0) count = 0; // don't care about miss yet
-    memBuf = (unsigned char*) mergeBuf; bufSize = mergeSize; // there could be moves still waiting to be merged
-    count2 = count + GetBookMoves(NULL, moveNr, entries+count, MOVE_BUF - count);
-    if(appData.debugMode) fprintf(debugFP, "MC probe: %d/%d (%d+%d)\n", count, count2,bookSize,mergeSize);
-    if(!count2) return NULL;
-    tot = games = 0;
-    for(i=0; i<count2; i++) {
-       float w = wins(entries+i) + 10., l = losses(entries+i) + 10.;
-       float h = (w*w*w*w + 22500.*w*w) / (l*l*l*l + 22500.*l*l);
-       tot += nominal[i] = h;
-       games += wins(entries+i) + losses(entries+i);
-    }
-    tot = games / tot; max = min = 0;
-    for(i=0; i<count2; i++) {
-       nominal[i] *= tot; // normalize so they sum to games
-       deficit = nominal[i] - (wins(entries+i) + losses(entries+i));
-       if(deficit > max) max = deficit, choice = i;
-       if(deficit < min) min = deficit;
-    } // note that a single move will never be underplayed
-    if(max - min > 0.5*sqrt(nominal[choice])) { // if one of the listed moves is significantly under-played, play it now.
-       move_to_string(move_s, entries[choice].move);
-       if(appData.debugMode) fprintf(debugFP, "book move field = %d\n", entries[choice].move);
-       return move_s;
-    }
-    return NULL; // otherwise fake book miss to force engine think, hoping for hitherto unplayed move.
-}
-
-char
-*ProbeBook (int moveNr, char *book)
-{   //
-    entry_t entries[MOVE_BUF];
-    int count;
-    int i, j;
-    static char move_s[6];
-    int total_weight;
-
-    if(moveNr >= 2*appData.bookDepth) return NULL;
-    if(mcMode) return MCprobe(moveNr);
-
-    if((count = ReadFromBookFile(moveNr, book, entries)) <= 0) return NULL; // no book, or no hit
-
-    if(appData.bookStrength != 50) { // transform weights
-        double power = 0, maxWeight = 0.0;
-        if(appData.bookStrength) power = (100.-appData.bookStrength)/appData.bookStrength;
-        for(i=0; i<count; i++) if(entries[i].weight > maxWeight) maxWeight = entries[i].weight;
-        for(i=0; i<count; i++){
-            double weight = entries[i].weight / maxWeight;
-             if(weight > 0)
-                entries[i].weight = appData.bookStrength || weight == 1.0 ? 1e4*exp(power * log(weight)) + 0.5 : 0.0;
-        }
-    }
-    total_weight = 0;
-    for(i=0; i<count; i++){
-        total_weight += entries[i].weight;
-    }
-    if(total_weight == 0) return NULL; // force book miss rather than playing moves with weight 0.
-    j = (random() & 0xFFF) * total_weight >> 12; // create random < total_weight
-    total_weight = 0;
-    for(i=0; i<count; i++){
-        total_weight += entries[i].weight;
-       if(total_weight > j) break;
-    }
-    if(i >= count) DisplayFatalError(_("Book Fault"), 0, 1); // safety catch, cannot happen
-    move_to_string(move_s, entries[i].move);
-    if(appData.debugMode) fprintf(debugFP, "book move field = %d\n", entries[i].move);
-
-    return move_s;
-}
-
-extern char yy_textstr[];
-entry_t lastEntries[MOVE_BUF];
-
-char *
-MovesToText(int count, entry_t *entries)
-{
-       int i, totalWeight = 0;
-       char algMove[12];
-       char *p = (char*) malloc(40*count+1);
-       for(i=0; i<count; i++) totalWeight += entries[i].weight;
-       *p = 0;
-       for(i=0; i<count; i++) {
-           char buf[MSG_SIZ], c1, c2, c3; int i1, i2, i3;
-           move_to_string(algMove, entries[i].move);
-           if(sscanf(algMove, "%c%d%*c%*d,%c%d%c%d", &c1, &i1, &c2, &i2, &c3, &i3) == 6)
-               snprintf(algMove, 12, "%c%dx%c%d-%c%d", c1, i1, c2, i2, c3, i3); // cast double-moves in format SAN parser will understand
-           else if(sscanf(algMove, "%c%d%c%d%c", &c1, &i1, &c2, &i2, &c3) >= 4) {
-               CoordsToAlgebraic(boards[currentMove], PosFlags(currentMove), i1-ONE+'0', c1-AAA, i2-ONE+'0', c2-AAA, c3, algMove);
-           }
-           buf[0] = NULLCHAR;
-           if(entries[i].learnCount || entries[i].learnPoints)
-               snprintf(buf, MSG_SIZ, " {%d/%d}", entries[i].learnPoints, entries[i].learnCount);
-           snprintf(p+strlen(p), 40, "%5.1f%% %5d %s%s\n", 100*entries[i].weight/(totalWeight+0.001),
-                                       entries[i].weight, algMove, buf);
-//lastEntries[i] = entries[i];
-       }
-       return p;
-}
-
-static int
-CoordsToMove (int fromX, int fromY, int toX, int toY, char promoChar)
-{
-    int i, width = BOARD_RGHT - BOARD_LEFT;
-    int to = toX - BOARD_LEFT + toY * width;
-    int from = fromX - BOARD_LEFT + fromY * width;
-    for(i=0; promote_pieces[i]; i++) if(promote_pieces[i] == promoChar) break;
-    if(!promote_pieces[i]) i = 0;
-    else if(i == 9 && gameInfo.variant == VariantChu) i = 1; // on 12x12 only 3 promotion codes available, so use 1 to indicate promotion
-    if(fromY == DROP_RANK) i = 9, from = ToUpper(PieceToChar(fromX)) - '@';
-    if(killX >= 0) { // multi-leg move
-       int dx = killX - fromX, dy = killY - fromY;
-       for(i=0; i<8; i++) if(dx == xStep[i] && dy == yStep[i]) {
-           int j;
-           dx = toX - killX; dy = toY - killY;
-           for(j=0; j<8; j++) if(dx == xStep[j] && dy == yStep[j]) {
-               // special encoding in to-square, with promoType = 2. Assumes board >= 64 squares!
-               return i + 8*j + (2 * width * BOARD_HEIGHT + from) * width * BOARD_HEIGHT;
-           }
-       }
-       i = 0; // if not a valid Lion move, ignore kill-square and promoChar
-    }
-    return to + (i * width * BOARD_HEIGHT + from) * width * BOARD_HEIGHT;
-}
-
-int
-TextToMoves (char *text, int moveNum, entry_t *entries)
-{
-       int i, w, count=0;
-       uint64 hashKey = hash(moveNum);
-       int  fromX, fromY, toX, toY;
-       ChessMove  moveType;
-       char promoChar, valid;
-       float dummy;
-
-       entries[0].key = hashKey; // make sure key is returned even if no moves
-       while((i=sscanf(text, "%f%%%d", &dummy, &w))==2 || (i=sscanf(text, "%d", &w))==1) {
-           if(i == 2) text = strchr(text, '%') + 1;  // skip percentage
-           if(w == 1) text = strstr(text, "1 ") + 2; // skip weight that could be recognized as move number one
-           valid = ParseOneMove(text, moveNum, &moveType, &fromX, &fromY, &toX, &toY, &promoChar);
-           text = strstr(text, yy_textstr) + strlen(yy_textstr); // skip what we parsed
-           if(!valid || moveType != NormalMove && moveType != WhiteDrop && moveType != BlackDrop
-                                               && moveType != FirstLeg
-                                                && moveType != WhitePromotion && moveType != BlackPromotion
-                                                && moveType != WhiteCapturesEnPassant && moveType != BlackCapturesEnPassant
-                                                && moveType != WhiteKingSideCastle && moveType != BlackKingSideCastle
-                                                && moveType != WhiteQueenSideCastle && moveType != BlackQueenSideCastle
-                                                && moveType != WhiteNonPromotion && moveType != BlackNonPromotion) continue;
-           if(*text == ' ' && sscanf(text+1, "{%hd/%hd}", &entries[count].learnPoints, &entries[count].learnCount) == 2) {
-               text = strchr(text+1, '}') + 1;
-           } else {
-               entries[count].learnPoints = 0;
-               entries[count].learnCount  = 0;
-           }
-           entries[count].move = CoordsToMove(fromX, fromY, toX, toY, promoChar); killX = killY = -1;
-           entries[count].key  = hashKey;
-           entries[count].weight = w;
-           count++;
-       }
-       return count;
-}
-
-Boolean bookUp;
-int currentCount;
-
-Boolean
-DisplayBook (int moveNr)
-{
-    entry_t entries[MOVE_BUF];
-    int count;
-    char *p;
-    if(!bookUp) return FALSE;
-    count = currentCount = ReadFromBookFile(moveNr, appData.polyglotBook, entries);
-    if(count < 0) return FALSE;
-    p = MovesToText(count, entries);
-    EditTagsPopUp(p, NULL);
-    free(p);
-    addToBookFlag = FALSE;
-    return TRUE;
-}
-
-void
-EditBookEvent()
-{
-      bookUp = TRUE;
-       bookUp = DisplayBook(currentMove);
-}
-
-void
-int_to_file (FILE *f, int l, uint64 r)
-{
-    int i;
-    for(i=l-1;i>=0;i--) fputc(r>>8*i & 255, f);
-}
-
-void
-entry_to_file (FILE *f, entry_t *entry)
-{
-    int_to_file(f,8,entry->key);
-    int_to_file(f,2,entry->move);
-    int_to_file(f,2,entry->weight);
-    int_to_file(f,2,entry->learnCount);
-    int_to_file(f,2,entry->learnPoints);
-}
-
-char buf1[4096], buf2[4096];
-
-void
-SaveToBook (char *text)
-{
-    entry_t entries[MOVE_BUF], entry;
-    int count = TextToMoves(text, currentMove, entries);
-    int offset, i, len1=0, len2, readpos=0, writepos=0;
-    FILE *f;
-    if(!count && !currentCount) return;
-    f=fopen(appData.polyglotBook, "rb+");
-    if(!f){    DisplayError(_("Polyglot book not valid"), 0); return; }
-    offset=find_key(f, entries[0].key, &entry);
-    if(entries[0].key != entry.key && currentCount) {
-          DisplayError(_("Hash keys are different"), 0);
-         fclose(f);
-         return;
-    }
-    if(count != currentCount) {
-       readpos = 16*(offset + currentCount);
-       writepos = 16*(offset + count);
-       fsseek(f, readpos, SEEK_SET);
-       readpos += len1 = fread(buf1, 1, 4096 - 16*currentCount, f); // salvage some entries immediately behind change
-    }
-    fsseek(f, 16*(offset), SEEK_SET);
-    for(i=0; i<count; i++) entry_to_file(f, entries + i); // save the change
-    if(count != currentCount) {
-       do {
-           for(i=0; i<len1; i++) buf2[i] = buf1[i]; len2 = len1;
-           if(readpos > writepos) {
-               fsseek(f, readpos, SEEK_SET);
-               readpos += len1 = fread(buf1, 1, 4096, f);
-           } else len1 = 0; // wrote already past old EOF
-           fsseek(f, writepos, SEEK_SET);
-           fwrite(buf2, 1, len2, f);
-           writepos += len2;
-       } while(len1);
-    }
-    dirty = 1;
-    fclose(f);
-}
-
-void
-NewEntry (entry_t *e, uint64 key, int move, int result)
-{
-    e->key = key;
-    e->move = move;
-    e->learnPoints = 0;
-    e->learnCount = 0;
-    CountMove(e, result);
-}
-
-void
-Merge ()
-{
-    int i;
-
-    if(appData.debugMode) fprintf(debugFP, "book merge %d moves (old size %d)\n", mergeSize, bookSize);
-
-    bookSize += --mergeSize;
-    for(i=bookSize-1; mergeSize; i--) {
-       while(mergeSize && (i < mergeSize || mergeBuf[mergeSize-1].key >= memBook[i-mergeSize].key))
-           memBook[i--] = mergeBuf[--mergeSize];
-       if(i < 0) break;
-       memBook[i] = memBook[i-mergeSize];
-    }
-    if(mergeSize) DisplayFatalError("merge error", 0, 0); // impossible
-    mergeSize = 1;
-    mergeBuf[0].key = -1LL;
-}
-
-void
-AddToBook (int moveNr, int result)
-{
-    entry_t entry;
-    int offset, start, move;
-    uint64 key;
-    int i, j, fromY, toY;
-    char fromX, toX, promo;
-extern char moveList[][MOVE_LEN];
-
-    if(!moveList[moveNr][0] || moveList[moveNr][0] == '\n') return; // could be terminal position
-
-    if(appData.debugMode) fprintf(debugFP, "add move %d to book %s", moveNr, moveList[moveNr]);
-
-    // calculate key and book representation of move
-    key = hash(moveNr);
-    if(moveList[moveNr][1] == '@') {
-       sscanf(moveList[moveNr], "%c@%c%d", &promo, &toX, &toY);
-       fromX = CharToPiece(WhiteOnMove(moveNr) ? ToUpper(promo) : ToLower(promo));
-       fromY = DROP_RANK; promo = NULLCHAR;
-    } else sscanf(moveList[moveNr], "%c%d%c%d%c", &fromX, &fromY, &toX, &toY, &promo), fromX -= AAA, fromY -= ONE - '0';
-    move = CoordsToMove(fromX, fromY, toX-AAA, toY-ONE+'0', promo);
-
-    // if move already in book, just add count
-    memBuf = (unsigned char*) memBook; bufSize = bookSize;   // in MC mode book resides in memory
-    offset = find_key(NULL, key, &entry);
-    while(memBook[offset].key == key) {
-       if(memBook[offset].move == move) {
-           CountMove(memBook+offset, result); return;
-       } else offset++;
-    }
-    // move did not occur in the main book
-    memBuf = (unsigned char*) mergeBuf; bufSize = mergeSize; // it could be amongst moves still waiting to be merged
-    start = offset = find_key(NULL, key, &entry);
-    while(mergeBuf[offset].key == key) {
-       if(mergeBuf[offset].move == move) {
-            if(appData.debugMode) fprintf(debugFP, "found in book merge buf @ %d\n", offset);
-           CountMove(mergeBuf+offset, result); return;
-       } else offset++;
-    }
-    if(start != offset) { // position was in mergeBuf, but move is new
-        if(appData.debugMode) fprintf(debugFP, "add in book merge buf @ %d\n", offset);
-       for(i=mergeSize++; i>offset; i--) mergeBuf[i] = mergeBuf[i-1]; // make room
-       NewEntry(mergeBuf+offset, key, move, result);
-       return;
-    }
-    // position was not in mergeBuf; look in hash table
-    i = (key & mask); offset = -1;
-    while(hashTab[i].key) { // search in hash table (necessary because sought item could be re-hashed)
-       if(hashTab[i].key == 1 && offset < 0) offset = i; // remember first invalidated entry we pass
-       if(!((hashTab[i].key - key) & ~1)) { // hit
-           if(hashTab[i].move == move) {
-               CountMove(hashTab+i, result);
-               for(j=mergeSize++; j>start; j--) mergeBuf[j] = mergeBuf[j-1];
-           } else {
-               // position already in hash now occurs with different move; move both moves to mergeBuf
-               for(j=mergeSize+1; j>start+1; j--) mergeBuf[j] = mergeBuf[j-2];
-               NewEntry(mergeBuf+start+1, key, move, result); mergeSize += 2;
-           }
-           hashTab[i].key = 1; // kludge to invalidate hash entry
-           mergeBuf[start] = hashTab[i]; mergeBuf[start].key = key;
-           if(mergeSize >= MERGESIZE) Merge();
-           return;
-       }
-       i = i+1 & mask; // wrap!
-    }
-    // position did not yet occur in hash table. Put it there
-    if(offset < 0) offset = i;
-    NewEntry(hashTab+offset, key, move, result);
-    if(appData.debugMode)
-       fprintf(debugFP, "book hash @ %d (%d-%d)\n", offset, hashTab[offset].learnPoints, hashTab[offset].learnCount);
-}
-
-void
-AddGameToBook (int always)
-{
-    int i, result;
-
-    if(!mcMode && !always) return;
-
-    InitMemBook();
-    switch(gameInfo.result) {
-      case GameIsDrawn: result = 1; break;
-      case WhiteWins:   result = 2; break;
-      case BlackWins:   result = 0; break;
-      default: return; // don't treat games with unknown result
-    }
-
-    if(appData.debugMode) fprintf(debugFP, "add game to book (%d-%d)\n", backwardMostMove, forwardMostMove);
-    for(i=backwardMostMove; i<forwardMostMove && i < 2*appData.bookDepth; i++)
-       AddToBook(i, WhiteOnMove(i) ? result : 2-result); // flip result when black moves
-}
-
-void
-PlayBookMove(char *text, int index)
-{
-    char *start = text+index, *end = start;
-    while(start > text && start[-1] != ' ' && start[-1] != '\t') start--;
-    while(*end && *++end != ' ' && *end != '\n')
-                                                ; *end = NULLCHAR; // find clicked word
-    if(start != end) TypeInDoneEvent(start); // fake it was typed in move type-in
-}
-
-void
-FlushBook ()
-{
-    FILE *f;
-    int i;
-
-    InitMemBook();
-    Merge(); // flush merge buffer to memBook
-
-    if(f = fopen(appData.polyglotBook, "wb")) {
-       for(i=0; i<bookSize; i++) {
-           entry_t entry = memBook[i];
-           entry.weight = entry.learnPoints;
-//         entry.learnPoints = 0;
-//         entry.learnCount  = 0;
-           entry_to_file(f, &entry);
-       }
-    } else DisplayError(_("Could not create book"), 0);
-}
diff --git a/childio.c b/childio.c
deleted file mode 100644 (file)
index 1d1f1a7..0000000
--- a/childio.c
+++ /dev/null
@@ -1,265 +0,0 @@
-/*
- * childio.c -- set up communication with child processes
- *
- * Copyright 1991 by Digital Equipment Corporation, Maynard,
- * Massachusetts.
- *
- * Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006,
- * 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free
- * Software Foundation, Inc.
- *
- * The following terms apply to Digital Equipment Corporation's copyright
- * interest in XBoard:
- * ------------------------------------------------------------------------
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notice appear in all copies and that
- * both that copyright notice and this permission notice appear in
- * supporting documentation, and that the name of Digital not be
- * used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- *
- * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- * ------------------------------------------------------------------------
- *
- * The following terms apply to the enhanced version of XBoard
- * distributed by the Free Software Foundation:
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-/* This file splits into two entirely different pieces of code
-   depending on whether USE_PTYS is 1.  The whole reason for all
-   the pty nonsense is that select() does not work on pipes in System-V
-   derivatives (at least some of them).  This is a problem because
-   XtAppAddInput works by adding its argument to a select that is done
-   deep inside Xlib.
-*/
-
-#include "config.h"
-
-#include <stdio.h>
-#include <signal.h>
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
-#include "common.h"
-#include "frontend.h"
-#include "backend.h" /* for safeStrCpy */
-
-#if !USE_PTYS
-/* This code is for systems where pipes work properly */
-
-void
-SetUpChildIO (int to_prog[2], int from_prog[2])
-{
-    signal(SIGPIPE, SIG_IGN);
-    pipe(to_prog);
-    pipe(from_prog);
-}
-
-#else /* USE_PTYS == 1 */
-/* This code is for all systems where we must use ptys */
-
-#include <errno.h>
-#include <sys/stat.h>
-#include <sys/ioctl.h>
-#if HAVE_STROPTS_H
-# include <stropts.h>
-#endif /* HAVE_STROPTS_H */
-#if HAVE_SYS_FCNTL_H
-# include <sys/fcntl.h>
-#else /* not HAVE_SYS_FCNTL_H */
-# if HAVE_FCNTL_H
-#  include <fcntl.h>
-# endif /* HAVE_FCNTL_H */
-#endif /* not HAVE_SYS_FCNTL_H */
-
-int PseudoTTY P((char pty_name[]));
-
-int
-SetUpChildIO (int to_prog[2], int from_prog[2])
-{
-    char pty_name[MSG_SIZ];
-
-    if ((to_prog[1] = PseudoTTY(pty_name)) == -1) {
-       DisplayFatalError("Can't open pseudo-tty", errno, 1);
-       ExitEvent(1);
-    }
-    from_prog[0] = to_prog[1];
-    to_prog[0] = from_prog[1] = open(pty_name, O_RDWR, 0);
-
-#if HAVE_STROPTS_H /* do we really need this??  pipe-like behavior is fine */
-    if (ioctl (to_prog[0], I_PUSH, "ptem") == -1 ||
-       ioctl (to_prog[0], I_PUSH, "ldterm") == -1 ||
-       ioctl (to_prog[0], I_PUSH, "ttcompat") == -1) {
-# ifdef NOTDEF /* seems some systems don't have or need ptem and ttcompat */
-       DisplayFatalError("Can't ioctl pseudo-tty", errno, 1);
-       ExitEvent(1);
-# endif /*NOTDEF*/
-    }
-#endif /* HAVE_STROPTS_H */
-
-}
-
-#if HAVE_GRANTPT
-/* This code is for SVR4 */
-
-int
-PseudoTTY (char pty_name[])
-{
-    extern char *ptsname();
-    char *ptss;
-    int fd;
-
-    fd = open("/dev/ptmx", O_RDWR);
-    if (fd < 0) return fd;
-    if (grantpt(fd) == -1) return -1;
-    if (unlockpt(fd) == -1) return -1;
-    if (!(ptss = ptsname(fd))) return -1;
-    safeStrCpy(pty_name, ptss, sizeof(pty_name)/sizeof(pty_name[0]));
-    return fd;
-}
-
-#else /* not HAVE_GRANTPT */
-#if HAVE__GETPTY
-/* This code is for IRIX */
-
-int
-PseudoTTY (char pty_name[])
-{
-    int fd;
-    char *ptyn;
-
-    ptyn = _getpty(&fd, O_RDWR, 0600, 0);
-    if (ptyn == NULL) return -1;
-    safeStrCpy(pty_name, ptyn, sizeof(pty_name)/sizeof(pty_name[0]));
-    return fd;
-}
-
-#else /* not HAVE__GETPTY */
-#if HAVE_LIBSEQ
-/* This code is for Sequent DYNIX/ptx.  Untested. --tpm */
-
-int
-PseudoTTY (char pty_name[])
-{
-    int fd;
-    char *slave, *master;
-
-    fd = getpseudotty(&slave, &master);
-    if (fd < 0) return fd;
-    safeStrCpy(pty_name, slave, sizeof(pty_name)/sizeof(pty_name[0]));
-    return fd;
-}
-
-#else /* not HAVE_LIBSEQ */
-/* This code is for all other systems */
-/* The code is adapted from GNU Emacs 19.24 */
-
-#ifndef FIRST_PTY_LETTER
-#define FIRST_PTY_LETTER 'p'
-#endif
-#ifndef LAST_PTY_LETTER
-#define LAST_PTY_LETTER 'z'
-#endif
-
-int
-PseudoTTY (char pty_name[])
-{
-  struct stat stb;
-  register c, i;
-  int fd;
-
-  /* Some systems name their pseudoterminals so that there are gaps in
-     the usual sequence - for example, on HP9000/S700 systems, there
-     are no pseudoterminals with names ending in 'f'.  So we wait for
-     three failures in a row before deciding that we've reached the
-     end of the ptys.  */
-  int failed_count = 0;
-
-#ifdef PTY_ITERATION
-  PTY_ITERATION
-#else
-  for (c = FIRST_PTY_LETTER; c <= LAST_PTY_LETTER; c++)
-    for (i = 0; i < 16; i++)
-#endif
-      {
-#ifdef PTY_NAME_SPRINTF
-       PTY_NAME_SPRINTF
-#else
-         sprintf (pty_name, "/dev/pty%c%x", c, i);
-#endif /* no PTY_NAME_SPRINTF */
-
-#ifdef PTY_OPEN
-       PTY_OPEN;
-#else /* no PTY_OPEN */
-       if (stat (pty_name, &stb) < 0)
-         {
-           failed_count++;
-           if (failed_count >= 3)
-             return -1;
-         }
-       else
-         failed_count = 0;
-       fd = open (pty_name, O_RDWR, 0);
-#endif /* no PTY_OPEN */
-
-       if (fd >= 0)
-         {
-           /* check to make certain that both sides are available
-              this avoids a nasty yet stupid bug in rlogins */
-#ifdef PTY_TTY_NAME_SPRINTF
-           PTY_TTY_NAME_SPRINTF
-#else
-             sprintf (pty_name,  "/dev/tty%c%x", c, i);
-#endif /* no PTY_TTY_NAME_SPRINTF */
-#ifndef UNIPLUS
-           if (access (pty_name, 6) != 0)
-             {
-               close (fd);
-               continue;
-             }
-#endif /* not UNIPLUS */
-#ifdef IBMRTAIX
-             /* On AIX, the parent gets SIGHUP when a pty attached
-                 child dies.  So, we ignore SIGHUP once we've started
-                 a child on a pty.  Note that this may cause xboard
-                 not to die when it should, i.e., when its own
-                 controlling tty goes away.
-             */
-             signal(SIGHUP, SIG_IGN);
-#endif /* IBMRTAIX */
-           return fd;
-         }
-      }
-  return -1;
-}
-
-#endif /* not HAVE_LIBSEQ */
-#endif /* not HAVE__GETPTY */
-#endif /* not HAVE_GRANTPT */
-#endif /* USE_PTYS */
diff --git a/childio.h b/childio.h
deleted file mode 100644 (file)
index 497fad1..0000000
--- a/childio.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * childio.h -- set up communication with child processes
- *
- * Copyright 1991 by Digital Equipment Corporation, Maynard,
- * Massachusetts.
- *
- * Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006,
- * 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free
- * Software Foundation, Inc.
- *
- * The following terms apply to Digital Equipment Corporation's copyright
- * interest in XBoard:
- * ------------------------------------------------------------------------
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notice appear in all copies and that
- * both that copyright notice and this permission notice appear in
- * supporting documentation, and that the name of Digital not be
- * used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- *
- * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- * ------------------------------------------------------------------------
- *
- * The following terms apply to the enhanced version of XBoard
- * distributed by the Free Software Foundation:
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-void SetUpChildIO P((int to_prog[2], int from_prog[2]));
diff --git a/cmail.in b/cmail.in
deleted file mode 100644 (file)
index 15d8b2b..0000000
--- a/cmail.in
+++ /dev/null
@@ -1,1836 +0,0 @@
-#! @PERLPATH@
-## (configure will change the top line to the location of perl on your system)
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-## cmail: a tool to aid playing chess by email
-## Copyright (C) 1993,2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free Software Foundation, Inc.
-## 
-##  cmail is free software: you can redistribute it and/or modify
-##  it under the terms of the GNU General Public License as published by
-##  the Free Software Foundation, either version 3 of the License, or (at
-##  your option) any later version.
-## 
-##  cmail is distributed in the hope that it will be useful, but
-##  WITHOUT ANY WARRANTY; without even the implied warranty of
-##  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-##  General Public License for more details.
-## 
-##  You should have received a copy of the GNU General Public License
-##  along with this program. If not, see http://www.gnu.org/licenses/.  *
-##
-## Email:     evan@quadstone.co.uk
-## Snailmail: Evan Welsh
-##            Quadstone Ltd
-##            16 Chester Street
-##            Edinburgh EH3 7RA
-##            Scotland
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-
-
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-## Print verbose diagnostics for debugging
-sub debug {
-    if ($DEBUG) {
-       local ($old) = select ; ## Remember selected output
-       select (logfile) ;
-       $| = 1 ;                ## Keep it flushed
-       print @_ ;              ## Print arguments
-       select ($old) ;
-    }
-}
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-
-
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-## Create a directory for storing games in if it doesn't already exist
-sub need_chess_dir {
-    local ($old) ;
-
-    ## ################################################################# ##
-    ## Check for existence of the named chess directory
-    ## ################################################################# ##
-
-    if (! (-d "$CMAILDIR")) {
-
-       ## ############################################################# ##
-       ## Ask user for confirmation if attached to tty
-       ## ############################################################# ##
-
-       if (-t) {
-           $old = select ;     ## Remember selected output
-           select (stdout) ;   ## Write to standard output
-           $| = 1 ;            ## Keep it flushed
-           print (  "CMail directory \"$CMAILDIR\" does not exist."
-                  . " Create it? [y/q]: ") ;
-
-           $_ = <tty> ;        ## Read response from tty
-           die "Bye!\n" if (/^[qQ].*/) ; ## Quit if q selected
-
-           select ($old) ;     ## Re-select the old output
-       }
-
-       ## ############################################################# ##
-       ## Create a cmail directory or die
-       ## ############################################################# ##
-
-       die "cmail: Can't create CMail directory: \"$CMAILDIR\"\n"
-           unless mkdir ("$CMAILDIR", 511) ;
-       print (  "Created cmail directory \"$CMAILDIR\".\n"
-              . "You can move it but remember to set the CMAIL_DIR"
-              . " environment variable.\n") ;
-    }
-
-    ## ################################################################# ##
-    ## Change to the $CMAILDIR directory whether newly created or not
-    ## ################################################################# ##
-
-    die "Couldn't changed directory to \"$CMAILDIR\"\n"
-       unless (chdir "$CMAILDIR") ;
-
-    ## ################################################################# ##
-    ## Check for existence of the named chess directory
-    ## ################################################################# ##
-
-    if (! (-d "$ARCDIR")) {
-
-       ## ############################################################# ##
-       ## Ask user for confirmation if attached to tty
-       ## ############################################################# ##
-
-       if (-t) {
-           $old = select ;     ## Remember selected output
-           select (stdout) ;   ## Write to standard output
-           $| = 1 ;            ## Keep it flushed
-           print (  "Archive directory \"$ARCDIR\" does not exist."
-                  . " Create it? [y/q]: ") ;
-
-           $_ = <tty> ;        ## Read response from tty
-           die "Bye!\n" if (/^[qQ].*/) ; ## Quit if q selected
-
-           select ($old) ;     ## Re-select the old output
-       }
-
-       ## ############################################################# ##
-       ## Create a chess directory or die
-       ## ############################################################# ##
-
-       die "cmail: Can't create archive directory: \"$ARCDIR\"\n"
-           unless mkdir ("$ARCDIR", 511) ;
-       print (  "Created archive directory \"$ARCDIR\".\n"
-              . "You can move it but remember to set the CMAIL_ARCDIR"
-              . " environment variable.\n") ;
-    }
-}
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-
-
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-## Parse command-line arguments
-sub parse_flags {
-    ## ################################################################# ##
-    ## Set up defaults from the environment or from hard-wired constants
-    ## ################################################################# ##
-
-    $SHOWC       = 0 ;
-    $SHOWW       = 0 ;
-    $OUTPUT_POS  = $ENV{'CMAIL_OUTPUT_POS'} ;
-    $LOGFILE     = $ENV{'CMAIL_LOGFILE'} ;
-    $MAILPROG    = $ENV{'CMAIL_MAILPROG'} ;
-    $MAILPROG    = "/usr/sbin/sendmail" if (   (-x "/usr/sbin/sendmail")
-                                           && (! $MAILPROG)) ;
-    $MAILPROG    = "/usr/lib/sendmail" if (   (-x "/usr/lib/sendmail")
-                                          && (! $MAILPROG)) ;
-    $MAILPROG    = "/etc/sendmail" if (   (-x "/usr/lib/sendmail")
-                                          && (! $MAILPROG)) ;
-    $MAILPROG    = "/usr/ucb/Mail" if (   (-x "/usr/ucb/Mail")
-                                      && (! $MAILPROG)) ;
-    $MAILPROG    = "/usr/ucb/mail" if (   (-x "/usr/ucb/mail")
-                                      && (! $MAILPROG)) ;
-    $MAILPROG    = "Mail" unless ($MAILPROG) ;
-    $HOMEDIR     = $ENV{'HOME'} ;
-    $CMAILDIR   = $ENV{'CMAIL_DIR'} ;
-    $CMAILDIR   = $ENV{'CHESSDIR'} unless ($CMAILDIR) ;
-    $CMAILDIR   = "$HOMEDIR/Chess" unless ($CMAILDIR) ;
-    $CMAILDIR   = "~/Chess"        unless ($HOMEDIR) ;
-    $NUM_GAMES  = "?" ;
-    $NUM_WGAMES         = "?" ;
-    $NUM_BGAMES         = "?" ;
-    $TIME_DELAY         = $ENV{'CMAIL_TIME_DELAY'} ;
-    $TIME_DELAY         = 0 unless ($TIME_DELAY) ;
-    $PW_NAME     = &get_pw_name () ;
-    $MY_NNAME   = $PW_NAME ;
-    $MY_NNAME   = $ENV{'LOGNAME'} unless ($MY_NNAME) ;
-    $MY_NNAME   = $ENV{'USER'} unless ($MY_NNAME) ;
-    $MY_NNAME   = "?" unless ($MY_NNAME) ;
-    $PGN_EVENT   = "Email correspondence game" ;
-    $PGN_SITE   = "NET";
-    $PGN_ROUND  = "-";
-    $PGN_MODE    = "EM";
-    $SEND_MAIL   = 1 ;
-    $REMAIL      = 0 ;
-    $LOAD_XBOARD = 1 unless $ENV{'CMAIL_NO_XBOARD'} ;
-    $REUSE       = 1 ;
-    @TD_FLAGS    = ("-td", $TIME_DELAY) ;
-    @NCP_FLAGS   = ("-ncp") ;
-
-    ## ################################################################# ##
-    ## Define the usage string
-    ## ################################################################# ##
-
-    $USAGE = ("cmail
-        [-h] [-c] [-w] [-[x]v] [-[x]mail] [-[x]xboard] [-[x]reuse] [-remail] 
-        [-game <name>] [-(w|b|)games <number>] [-(me|opp) <short name>]
-        [-(w|b|my|opp)name <full name>] [-(w|b|my|opp)na <email>]
-        [-dir <directory>] [-arcdir <directory>] [-mailprog <mail program>]
-        [-logFile <file>] [-event <event>] [-site <site>] [-round <round>]
-       [-mode <mode>]") ;
-
-    ## ################################################################# ##
-    ## Overwrite defaults if specified on the command-line
-    ## ################################################################# ##
-
-    @UNREC_ARGS = () ;
-    while ($ARGV = shift) {
-       $UNREC = 0 if ($ARGV =~ /^-/) ;
-       if    ("$ARGV" eq "-h")           {die ("Usage: $USAGE\n")     ;}
-       elsif ("$ARGV" eq "-c")           {$SHOWC       = 1            ;}
-       elsif ("$ARGV" eq "-w")           {$SHOWW       = 1            ;}
-       elsif ("$ARGV" eq "-v")           {$DEBUG       = 1            ;
-                                          @DEBUG_FLAGS = ("-debug")   ;}
-       elsif ("$ARGV" eq "-xv")          {$DEBUG       = 0            ;
-                                          $QUIET       = 1            ;}
-       elsif ("$ARGV" eq "-mail")        {$SEND_MAIL   = 1            ;}
-       elsif ("$ARGV" eq "-xmail")       {$SEND_MAIL   = 0            ;}
-       elsif ("$ARGV" eq "-xboard")      {$LOAD_XBOARD = 1            ;}
-       elsif ("$ARGV" eq "-xxboard")     {$LOAD_XBOARD = 0            ;}
-       elsif ("$ARGV" eq "-reuse")       {$REUSE       = 1            ;}
-       elsif ("$ARGV" eq "-xreuse")      {$REUSE       = 0            ;}
-       elsif ("$ARGV" eq "-remail")      {$LOAD_XBOARD = 0            ;
-                                          $SEND_MAIL   = 1            ;
-                                          $REMAIL      = 1            ;}
-       elsif ("$ARGV" eq "-game")        {$PGN_GAME    = shift        ;}
-       elsif ("$ARGV" eq "-games")       {$NUM_GAMES   = shift        ;}
-       elsif ("$ARGV" eq "-wgames")      {$NUM_WGAMES  = shift        ;}
-       elsif ("$ARGV" eq "-bgames")      {$NUM_BGAMES  = shift        ;}
-       elsif ("$ARGV" eq "-me")          {$MY_NNAME    = shift        ;}
-       elsif ("$ARGV" eq "-opp")         {$OPP_NNAME   = shift        ;}
-       elsif ("$ARGV" eq "-myname")      {$MY_FNAME    = shift        ;}
-       elsif ("$ARGV" eq "-oppname")     {$OPP_FNAME   = shift        ;}
-       elsif ("$ARGV" eq "-wname")       {$WHITE_FNAME = shift        ;}
-       elsif ("$ARGV" eq "-bname")       {$BLACK_FNAME = shift        ;}
-       elsif ("$ARGV" eq "-myna")        {$MY_ADDRESS  = shift        ;}
-       elsif ("$ARGV" eq "-oppna")       {$OPP_ADDRESS = shift        ;}
-       elsif ("$ARGV" eq "-wna")         {$WHITENA     = shift        ;}
-       elsif ("$ARGV" eq "-bna")         {$BLACKNA     = shift        ;}
-       elsif ("$ARGV" eq "-dir")         {$CMAILDIR    = shift        ;}
-       elsif ("$ARGV" eq "-arcdir")      {$ARCDIR      = shift        ;}
-       elsif ("$ARGV" eq "-mailprog")    {$MAILPROG    = shift        ;}
-       elsif ("$ARGV" eq "-logFile")     {$LOGFILE     = shift        ;}
-       elsif ("$ARGV" =~ /^-(td|timeDelay)$/)
-                                         {@TD_FLAGS    = ($ARGV,
-                                                          shift)      ;}
-       elsif ("$ARGV" =~ /^-noChessComputer$/)
-                                         {@NCP_FLAGS   = ($ARGV,
-                                                          shift)      ;}
-       elsif ("$ARGV" =~ /^-[x]?ncp$/)   {@NCP_FLAGS   = ($ARGV)      ;}
-       elsif ("$ARGV" eq "-event")       {$PGN_EVENT   = shift        ;}
-       elsif ("$ARGV" eq "-site")        {$PGN_SITE    = shift        ;}
-       elsif ("$ARGV" eq "-round")       {$PGN_ROUND   = shift        ;}
-       elsif ("$ARGV" eq "-mode")        {$PGN_MODE    = shift        ;}
-       elsif ("$ARGV" =~ /^-/ || $UNREC) {
-           push(@UNREC_ARGS, $ARGV) ;
-           $UNREC = 1 ;
-       } else {
-           die("cmail: Unrecognised flag \"$ARGV\"\nUsage: $USAGE\n") ;
-       }
-    }
-
-    ## ################################################################# ##
-    ## Assign a value to $ARCDIR if not specified on the command line
-    ## ################################################################# ##
-
-    $ARCDIR = $ENV{'CMAIL_ARCDIR'} unless ($ARCDIR) ;
-    $ARCDIR = $CMAILDIR unless ($ARCDIR) ;
-    $ENV{'CMAIL_ARCDIR'} = $ARCDIR ; ## Make sure this is set for xboard
-
-    ## ################################################################# ##
-    ## Propagate some CMAIL variables through xboard to the cmail
-    ## grandchild so that it uses the same important variables as this one
-    ## ################################################################# ##
-
-    $ENV{'CMAIL_MAILPROG'} = $MAILPROG ;
-    $ENV{'CMAIL_DIR'}      = $CMAILDIR ;
-    $ENV{'CHESSDIR'}       = $CMAILDIR ; ## Make xboard use $CMAILDIR
-    $ENV{'CMAIL_ARCDIR'}   = $ARCDIR ;
-    if ($LOGFILE) {
-       $ENV{'CMAIL_LOGFILE'}  = $LOGFILE ;
-    } else {
-       $LOGFILE = "&STDERR" ;
-    }
-
-    ## ################################################################# ##
-    ## Work out how many games of each colour will be played
-    ## ################################################################# ##
-
-    die "cmail: Illegal number of games: $NUM_GAMES\n"
-       if ($NUM_GAMES < 0) ;
-    die "cmail: Illegal number of white games: $NUM_WGAMES\n"
-       if ($NUM_WGAMES < 0) ;
-    die "cmail: Illegal number of black games: $NUM_BGAMES\n"
-       if ($NUM_BGAMES < 0) ;
-    if ("$NUM_GAMES" ne "?") {
-       if ("$NUM_WGAMES" eq "?") {
-           if ("$NUM_BGAMES" eq "?") {
-               $NUM_BGAMES = int($NUM_GAMES / 2) ;
-           }
-           $NUM_WGAMES = $NUM_GAMES - $NUM_BGAMES ;
-       } elsif ("$NUM_BGAMES" eq "?") {
-           $NUM_BGAMES = $NUM_GAMES - $NUM_WGAMES ;
-       }
-    } elsif ("$NUM_WGAMES" eq "?") {
-       if ("$NUM_BGAMES" eq "?") {
-           $NUM_GAMES  = 1 ;
-           $NUM_WGAMES = 1 ;
-           $NUM_BGAMES = 0 ;
-       } else {
-           $NUM_GAMES  = $NUM_BGAMES ;
-           $NUM_WGAMES = 0 ;
-       }
-    } else {
-       if ("$NUM_BGAMES" eq "?") {
-           $NUM_GAMES  = $NUM_WGAMES ;
-           $NUM_BGAMES = 0 ;
-       } else {
-           $NUM_GAMES  = $NUM_WGAMES + $NUM_BGAMES ;
-       }
-    }
-    die "cmail: Illegal number of games: $NUM_GAMES\n"
-       if ("$NUM_GAMES" eq "0") ;
-    die (  "cmail: Inconsistent numbers of games specified:"
-        . " $NUM_WGAMES + $NUM_BGAMES != $NUM_GAMES\n")
-       unless ($NUM_GAMES == $NUM_WGAMES + $NUM_BGAMES) ;
-}
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-
-
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-## Initialisation of variables and environment
-sub showGPL {
-    ## ################################################################# ##
-    ## Show copyright notice
-    ## ################################################################# ##
-
-    while (<DATA>) {
-       last if (/^{END OF GPL COPYRIGHT}$/) ;
-       s/\$Revision[:] (.*) \$/$1/ ;
-       print ;
-    }
-
-    ## ################################################################# ##
-    ## Show conditions if requested
-    ## ################################################################# ##
-
-    while (<DATA>) {
-       last if (/^{END OF GPL CONDITIONS}$/) ;
-       print if ($SHOWW) ;
-    }
-
-    ## ################################################################# ##
-    ## Show warranty if requested
-    ## ################################################################# ##
-
-    if ($SHOWC) {
-       print "\n" if ($SHOWW) ;
-       print while (<DATA>) ;
-    }
-
-    
-    exit 0 if ($SHOWC || $SHOWW) ; ## Abort if showed conditions or warranty
-}
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-
-
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-## Initialisation of variables and environment
-sub initialise {
-    local ($p) = "[.PRNBQKprnbqk]" ;
-    local ($l) = "$p $p $p $p $p $p $p $p\n" ;
-    local ($board) = "$l$l$l$l$l$l$l$l" ;
-    local ($tp) = ".* to play\n" ;
-    $posdiag = "\{--------------\n$board$tp--------------\}\n+" ;
-
-    &parse_flags (@ARGV) ;     ## Parse command-line arguments
-
-    &showGPL unless $QUIET ;
-
-    open (tty, "< /dev/tty") ; ## Open tty for reading
-
-    &need_chess_dir () ;       ## Check for the existence of CMAILDIR
-
-    open (logfile, ">$LOGFILE") if ($DEBUG) ; ## Default is STDERR
-
-    &debug ("Called <initialise>\n") ;
-}
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-
-
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-## Prompt for a game name, if <cr> use a default
-sub prompt_for_game_name {
-    &debug ("Called <prompt_for_game_name>\n") ;
-    local ($old) = select ;    ## Remember the selected output
-    select (stdout);           ## Prompt goes to stdout
-    $| = 1 ;                   ## Keep it flushed
-
-    print "Game name [<cr> to use default]: " ;
-    die "cmail: tty not open\n" unless (-t) ;
-    <tty> =~ /(.*)/ ;          ## Read line from tty
-    $PGN_GAME = "$1" ;         ## Assign to game name
-    
-    select ($old) ;            ## Re-select the old output
-}
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-
-
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-## Prompt for opponent's address
-sub prompt_for_opp_address {
-    &debug ("Called <prompt_for_opp_address>\n") ;
-    local ($old) = select ;    ## Remember the selected output
-    select (stdout);           ## Prompt goes to stdout
-    $| = 1 ;                   ## Keep it flushed
-
-    ## ################################################################# ##
-    ## Prompt for opponent's email address
-    ## ################################################################# ##
-
-    print "Opponent's email address: " ;
-    die "cmail: tty not open\n" unless (-t) ;
-    <tty> =~ /(.*)/ ;
-    $OPP_ADDRESS = $1 ;
-
-    ## ################################################################# ##
-    ## Use name as default if still blank
-    ## ################################################################# ##
-
-    $OPP_ADDRESS = $OPP_NNAME if ("" eq $OPP_ADDRESS) ;
-    
-    select ($old) ;            ## Re-select the old output
-}
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-
-
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-## Prompt for opponent's name
-sub prompt_for_opp_name {
-    &debug ("Called <prompt_for_opp_name>\n") ;
-    local ($old) = select ;    ## Remember the selected output
-    select (stdout) ;          ## Prompt goes to stdout
-    $| = 1 ;                   ## Keep it flushed
-    print "Opponent's name: " ;
-
-    die "cmail: tty not open\n" unless (-t) ; ## Check tty is open
-    <tty> =~ /(.*)/ ;          ## Read line from tty
-    $OPP_NNAME = $1 ;          ## Match!
-    die "cmail: Can't proceed without the opponent's name.\n"
-       unless ($OPP_NNAME) ;
-
-    select ($old) ;            ## Re-select the old output
-}
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-
-
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-## Prompt for move
-sub prompt_for_move {
-    local ($prompt) = shift ;
-    local ($pattern) = shift ;
-    &debug ("Called <prompt_for_move>\n") ;
-
-    local ($move) = "" ;
-    local ($old) = select ;    ## Remember the selected output
-    select (stdout) ;          ## Write to stdout
-    $| = 1 ;                   ## Keep it flushed
-    die "cmail: tty not open\n" unless (-t) ; ## Check tty is open
-
-    do {
-       print $prompt ;
-       <STDIN> =~ /(.*)/ ;     ## Read line from tty
-       $move = $1 ;            ## Match!
-    } until ($move =~ /^$pattern$/) ;
-
-    select ($old) ;            ## Re-select the old output
-    return ($move) ;
-}
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-
-
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-## Load the game
-sub play_game {
-    &debug ("Called <play_game>\n") ;
-
-    $| = 1 ;                   ## Start flushing output buffer
-
-    ## ################################################################# ##
-    ## Load xboard unless inhibited by command-line arguments
-    ## ################################################################# ##
-
-    if (($STARTING_NEW_GAME) && ($NUM_WGAMES == 0)) {
-       print (  "Bypassing xboard and mailing $NUM_BGAMES empty"
-              . " black games.\n") ;
-    } elsif ($LOAD_XBOARD) {
-       ## ############################################################# ##
-       ## Remove output file from previous run, but preserve
-       ## $PGN_GAME.game.out.* because they will be empty black games
-       ## ############################################################# ##
-
-       unlink "$PGN_GAME.out" ;
-
-       ## ############################################################# ##
-       ## Invoke xboard with loads of flags
-       ## ############################################################# ##
-
-       if ($PGN_GAME) {
-           if (@ARCHIVE) {
-               local ($date) = &get_date_from_games (@ARCHIVE) ;
-               $XBOARD_ARGS = join (' ', (("-lgf",
-                                           "'$ARCDIR/$PGN_GAME.$date.archive'"),
-                                          @NCP_FLAGS,
-                                          "-xics",
-                                          @TD_FLAGS,
-                                          @DEBUG_FLAGS,
-                                          @UNREC_ARGS)) ;
-           } else {
-               $XBOARD_ARGS = join (' ', (("-cmail", "'$PGN_GAME'"),
-                                          @TD_FLAGS,
-                                          @NCP_FLAGS,
-                                          "-xics",
-                                          @DEBUG_FLAGS,
-                                          @UNREC_ARGS)) ;
-           }
-       } else {
-           $PGN_GAME = "unknown.cmail" ;
-           $XBOARD_ARGS = join (' ', (("-lgf", "'$PGN_GAME'"),
-                                      @NCP_FLAGS,
-                                      "-xics",
-                                      @TD_FLAGS,
-                                      @DEBUG_FLAGS,
-                                      @UNREC_ARGS)) ;
-           $REUSE = 0 ;
-       }
-
-       $LOG_FILE = "$PGN_GAME.log" ;
-       &debug ("Invoking xboard with args: $XBOARD_ARGS\n") ;
-       $PID_FILE = "$PGN_GAME.pid" ;
-       if (   (! $REUSE)
-           || (! (   (-f $PID_FILE)
-                  && ($XBOARD_PID = `cat '$PID_FILE'`)
-                  && ("$XBOARD_PID" =~ /^\d+$/)
-                  && (kill "SIGUSR1", $XBOARD_PID)))) {
-           print "Loading xboard for game \"$PGN_GAME\"..." ;
-#          system ("gdb xboard") ;
-           system (  "{ ({ xboard $XBOARD_ARGS & } ;"
-                   . "   echo \$! > '$PID_FILE' ;"
-                   . "   wait ;"
-                   . "   rm '$PID_FILE') & } >'$LOG_FILE' 2>&1") ;
-           print (  "done.\n"
-                  . "If nothing happens look for an error message in\n"
-                  . "$CMAILDIR/$LOG_FILE\n") ;
-       } else {
-           print ("Revived existing xboard for game \"$PGN_GAME\".\n"
-                  . "If nothing happens"
-                  . " remove $CMAILDIR/$PID_FILE and try again.\n") ;
-       }
-
-       return 1 ;
-    }
-    return 0 ;
-}
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-
-
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-## Enter moves on tty instead of xboard
-sub play_on_tty {
-    &debug ("Called <play_on_tty>\n") ;
-
-    local (@results) = @_ ;
-
-    local (@games, $game, $to_play) ;
-
-    ## ################################################################# ##
-    ## Check we have access to tty
-    ## ################################################################# ##
-
-    if (open(STDIN, '/dev/tty')) {
-       ## ############################################################# ##
-       ## Read in games
-       ## ############################################################# ##
-       
-       local ($infile) = "$PGN_GAME.game.in" ;
-       if (-f $infile) {
-           @games = &get_games_from_file($infile) ;
-           &debug ("Read in games from \"$infile\"\n") ;
-
-           if (@results) {
-               foreach $game (@games) {
-                   $result = shift (@results) ;
-                   if ($result && ($game =~ /\[Result\s+"[^*]+"\]/)) {
-                       $game = "" ;
-                   }
-               }
-           }
-
-           ## ################################################################# ##
-           ## Accept move on tty for each game in turn
-           ## ################################################################# ##
-               
-           local ($comment_orig, $comment, $comment_line,
-                  $pos, $move, $normal_move, $action, $result) ;
-
-           foreach $game (@games) {
-               next unless $game ;
-
-               $game =~ s/[\s\n]*[*]?[\s\n]*$// ;
-               $pos = "" ;
-               $pos = $1 if ($game =~ s/($posdiag)//) ;
-               print $game, "\n\n", $pos ;
-
-               ($number, $to_play) = &get_to_play ($game) ;
-
-               $comment_orig = "" ;
-               $game_nocomment = $game ;
-               if ($game_nocomment =~ s/\n?{\n?([^{]*)}$//) {
-                   $comment_orig = $1 ;
-                   $comment_orig =~ s/([^\n])$/$1\n/ ;
-#                  &debug ("Comment is:\n{\n$comment_orig}\n") ;
-               }
-               if ($game =~ /\[Result\s+"[^*]+"\]/) {
-                   &prompt_for_move ("Game finished, press \"Return\" to continue: ", "") ;
-                    next ;
-               }
-
-               $tmpgame = $game_nocomment ;
-               $comment = $comment_orig ;
-
-             outer:
-               while (1) {
-                   if ($game =~ /{\n?.* offers a draw\n?}$/) {
-                       $move = &prompt_for_move ("Enter move [MOVE/(r)esign/(a)ccept/(c)omment/re(t)ry]: ",
-                                                 "([-a-h0-9PRNBQK][-a-h0-9PRNBQK]+|[ract])") ;
-                   } else {
-                       $move = &prompt_for_move ("Enter move [MOVE/(r)esign/(c)omment/re(t)ry]: ",
-                                                 "([-a-h0-9PRNBQK][-a-h0-9PRNBQK]+|[rct])") ;
-                   }
-                   $normal_move = 0 ;
-                   $result = "" ;
-                   if ($move =~ /^\s*r\s*$/i) {
-                       if ($to_play eq "White") {
-                           $result = "0-1" ;
-                       } else {
-                           $result = "1-0" ;
-                       }
-                       $move = "\n{$to_play resigns} $result" ;
-                   } elsif ($move =~ /^\s*a\s*$/i) {
-                       $move = "\n{Draw agreed} $result" ;
-                   } elsif ($move =~ /^\s*c\s*$/i) {
-                        while ($comment_line = &prompt_for_move ("Enter comment: ", ".*")) {
-                           $comment .= $comment_line . "\n" ;
-                        }
-                       next ;
-                   } elsif ($move =~ /^\s*t\s*$/i) {
-                       print $game, "\n\n", $pos ;
-                       $tmpgame = $game_nocomment ;
-                       $comment = $comment_orig ;
-                       print "Try again.\n" ;
-                       next ;
-                   } else {
-                       $normal_move = 1 ;
-                   }
-
-                   $tmpgame .= "\n{\n" . $comment . "}" if ($comment) ;
-                   if (! $normal_move) {
-                       $tmpgame .= "$move"  ;
-                   } elsif ($to_play eq "White") {
-                       $tmpgame .= "\n$number. $move"  ;
-                   } elsif ($tmpgame =~ /}$/) {
-                       $tmpgame .= "\n$number. ... $move"  ;
-                   } else {
-                       $tmpgame .= " $move"  ;
-                   }
-
-                   $tmpgame =~ s/\[Result\s+"(.*)"\]/[Result "$result"]/ if ($result) ;
-                   $comment = "" ;
-                 middle:
-                   while (1) {
-                       if ($normal_move) {
-                           $action = &prompt_for_move ("Enter action [(d)raw/(c)omment/(s)end/re(t)ry]: ",
-                                                       "[dcst]") ;
-                       } elsif ($result) {
-                           $action = &prompt_for_move ("Enter action [(s)end/re(t)ry]: ",
-                                                       "[st]") ;
-                       } else {
-                           $action = &prompt_for_move ("Enter action [(c)omment/(s)end/re(t)ry]: ",
-                                                       "[cst]") ;
-                       }
-                       if ($action =~ /^\s*d\s*$/i) {
-                           if ($normal_move) {
-                               $comment .= "$to_play offers a draw\n" ;
-
-                               while (1) {
-                                   $action = &prompt_for_move ("Enter action [(c)omment/(s)end/re(t)ry]: ",
-                                                               "[cst]") ;
-                                   if ($action =~ /^\s*c\s*$/i) {
-                                       while ($comment_line = &prompt_for_move ("Enter comment: ", ".*")) {
-                                           $comment .= $comment_line . "\n" ;
-                                       }
-                                       next ;
-                                   } elsif ($action =~ /^\s*t\s*$/i) {
-                                       print $game, "\n\n", $pos ;
-                                       $tmpgame = $game_nocomment ;
-                                       $comment = $comment_orig ;
-                                       print "Try again.\n" ;
-                                       next outer;
-                                   } elsif ($action =~ /^\s*s\s*$/i) {
-                                       $tmpgame .= "\n{\n" . $comment . "}" ;
-                                       last middle ;
-                                   }
-                               }
-                           } else {
-                               print "You can't offer a draw at this point.\n" ;
-                               next ;
-                           }
-                       } elsif ($action =~ /^\s*c\s*$/i) {
-                           if ($result) {
-                               print "You can't enter a comment after the game is finished.\n" ;
-                           } else {
-                               while ($comment_line = &prompt_for_move ("Enter comment: ", ".*")) {
-                                   $comment .= $comment_line . "\n" ;
-                               }
-                           }
-                           next ;
-                       } elsif ($action =~ /^\s*t\s*$/i) {
-                           print $game, $pos ;
-                           $tmpgame = $game_nocomment ;
-                           $comment = $comment_orig ;
-                           print "Try again.\n" ;
-                           next outer;
-                       } elsif ($action =~ /^\s*s\s*$/i) {
-                           $tmpgame .= "\n{\n" . $comment . "}\n" if ($comment) ;
-                           last ;
-                       }
-                   }
-
-                   last ;
-               }
-
-               $tmpgame .= "\n*" if ($normal_move) ;
-               $tmpgame .= "\n\n" ;
-               $game = $tmpgame ;
-           }
-       } else {
-           die "cmail: No games to be read\n" ;
-       }
-    } else {
-       die "cmail: Can't open tty" ;
-    }
-
-    return (@games) ;
-}
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-
-
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-## Find the game the user wants by any means possible
-sub find_game {
-    &debug ("Called <find_game>\n") ;
-
-    ## ################################################################# ##
-    ## Ask user for a game name if not already known
-    ## ################################################################# ##
-
-    &prompt_for_game_name () if ("" eq "$PGN_GAME") ;
-
-    ## ################################################################# ##
-    ## Find out opponent's details
-    ## ################################################################# ##
-
-    if ("" eq "$PGN_GAME") {
-       ## ############################################################# ##
-       ## Failed to find the game name so construct a default from players
-       ## ############################################################# ##
-       
-       &prompt_for_opp_name () if ("" eq "$OPP_NNAME") ; ## Ask user
-       die "cmail: Can't proceed without your opponent's short name (-opp)\n"
-           if ("" eq "$OPP_NNAME") ;
-       die "cmail: Can't proceed without your own short name (-me)\n"
-           if ("" eq "$MY_NNAME") ;
-       if ($NUM_WGAMES > 0) {
-           $PGN_GAME = "$MY_NNAME-vs-$OPP_NNAME" ; ## Construct default
-       } else {
-           $PGN_GAME = "$OPP_NNAME-vs-$MY_NNAME" ; ## Construct default
-       }
-    } elsif (("" eq "$OPP_ADDRESS") && ("" ne "$RETURN_ADDRESS")) {
-       $OPP_ADDRESS = $RETURN_ADDRESS ; ## Use return address instead
-       &debug (  "Using return address \"$OPP_ADDRESS\""
-               . " for opponent address\n") ;
-    }
-
-    ## ################################################################# ##
-    ## If no $PGN_GAME.game.in file, assume we're starting a new game
-    ## ################################################################# ##
-
-    &start_new_game () unless (-f "$PGN_GAME.game.in") ;
-}
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-
-
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-## Get the date
-sub get_date {
-    local ($the_time) = time ;
-    local ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) =
-       localtime ($the_time) ;
-    $mon ++ ;
-    $year += 1900 ;
-    if ($mon < 10) {
-       $mon = "0$mon" ;
-    }
-    if ($mday < 10) {
-        $mday = "0$mday" ;
-    }
-    "$year.$mon.$mday" ;
-}
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-
-
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-## Start a new game
-sub start_new_game {
-    print (  "Starting new game"
-          . " -- $NUM_WGAMES as white, $NUM_BGAMES as black.\n") ;
-    local ($to_play) = "white" ;
-    $move_num = 0 ;
-    $STARTING_NEW_GAME = 1 ;
-
-    local (@game) ;
-
-    ## ################################################################# ##
-    ## Ask user for opponent's email address if unknown
-    ## ################################################################# ##
-
-    &prompt_for_opp_address () if ("" eq "$OPP_ADDRESS") ;
-
-    ## ################################################################# ##
-    ## Give up if we haven't got anywhere to send a move to
-    ## ################################################################# ##
-
-    die "cmail: Can't proceed without your opponent's email address.\n"
-       if ("" eq "$OPP_ADDRESS") ;
-
-    ## ################################################################# ##
-    ## Create an empty game file
-    ## ################################################################# ##
-
-    open (GAMEFILE, "> $PGN_GAME.game.in") ;
-    for ($j = 1; $j <= $NUM_GAMES; $j ++) {
-       $PW_GCOS      =  &get_pw_gcos () ;
-
-       $PGN_MYCOL    =  $MY_FNAME ;
-       $PGN_MYCOL    =  $PW_GCOS unless $PGN_MYCOL ;
-       $PGN_MYCOL    =  $MY_NNAME unless $PGN_MYCOL ;
-       $PGN_MYCOLNA  =  $MY_ADDRESS ;
-       $PGN_MYCOLNA  =  "?" unless ($PGN_MYCOLNA) ;
-                                   
-       $PGN_OPPCOL   =  $OPP_FNAME ;
-       $PGN_OPPCOL   =  "?" unless ($PGN_OPPCOL) ;
-       $PGN_OPPCOLNA =  $OPP_ADDRESS ;
-       $PGN_OPPCOLNA =  "?" unless ($PGN_OPPCOLNA) ;
-       
-       if ($j > $NUM_WGAMES) {
-           $PGN_WHITE   = $PGN_OPPCOL ;
-           $PGN_BLACK   = $PGN_MYCOL ;
-           $PGN_WHITENA = $PGN_OPPCOLNA ;
-           $PGN_BLACKNA = $PGN_MYCOLNA ;
-       } else {
-           $PGN_WHITE   = $PGN_MYCOL ;
-           $PGN_BLACK   = $PGN_OPPCOL ;
-           $PGN_WHITENA = $PGN_MYCOLNA ;
-           $PGN_BLACKNA = $PGN_OPPCOLNA ;
-       }
-       
-       ## ######################################################### ##
-       ## If we only have one colour of game then allow command-line 
-       ## colour specs to override
-       ## ######################################################### ##
-       
-       if (! ($NUM_WGAMES && $NUM_BGAMES)) {
-           $PGN_WHITE   = $WHITE_FNAME if ($WHITE_FNAME) ;
-           $PGN_BLACK   = $BLACK_FNAME if ($BLACK_FNAME) ;
-           $PGN_WHITENA = $WHITENA     if ($WHITENA)     ;
-           $PGN_BLACKNA = $BLACKNA     if ($BLACKNA)     ;
-       }
-       
-       $PGN_DATE = &get_date () ;
-       $PGN_DATE = "?" unless ($PGN_DATE) ;
-
-       if ($NUM_GAMES > 1) {
-           $SUFFIX = ".$j" ;
-       } else {
-           $SUFFIX = "" ;
-       }
-       @game = ("[Event \"$PGN_EVENT\"]\n",
-                "[Site \"$PGN_SITE\"]\n",
-                "[Date \"$PGN_DATE\"]\n",
-                "[Round \"$PGN_ROUND\"]\n",
-                "[White \"$PGN_WHITE\"]\n",
-                "[Black \"$PGN_BLACK\"]\n",
-                "[Result \"*\"]\n",
-                "[WhiteNA \"$PGN_WHITENA\"]\n",
-                "[BlackNA \"$PGN_BLACKNA\"]\n",
-                "[Mode \"$PGN_MODE\"]\n",
-                "[CmailGameName \"$PGN_GAME$SUFFIX\"]\n\n*\n") ;
-       if ($j > $NUM_WGAMES) {
-           open (GAMEOUTFILE, "> $PGN_GAME.game.out.$j") ;
-           print GAMEOUTFILE @game ;
-           close (GAMEOUTFILE) ;
-       } else {
-           print GAMEFILE @game ;
-       }
-    }
-    close (GAMEFILE) ;
-}
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-
-
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-## Get the password file gcos (full name) entry
-sub get_pw_entry {
-    local ($name, $passwd, $uid, $gid, $quota, $comment, $gcos, $dir, $shell) =
-       getpwuid ($<);
-    ($name, $gcos) ;
-}
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-
-
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-## Get password file gcos (full name) entry
-sub get_pw_gcos {
-    local ($PW_GCOS) ;
-    if (! $PW_GCOS) {
-       ($dummy, $PW_GCOS) = &get_pw_entry () ;
-       $PW_GCOS =~ s/^\s*([^,()]+[^ ,()])[ ]*[,()].*$/$1/;
-       if ($PW_GCOS =~ /^([^,()]+)\s+([^\s,()]+)$/) { ## Multi-word name
-           $PW_GCOS = $2 . ", " . $1 ;
-       } elsif ($PW_GCOS !~ /^([^\s,()]+)/) { ## No sensible gcos entry 
-           $PW_GCOS = "" ;
-       }                       ## Else leave it as one word
-       &debug ("PW full name is \"$PW_GCOS\"\n");
-    }
-    return $PW_GCOS ;
-}
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-
-
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-## Get password file user name entry
-sub get_pw_name {
-    local ($PW_NAME) ;
-    ($PW_NAME, $dummy) = &get_pw_entry () ;
-    &debug ("PW name is $PW_NAME\n");
-
-    return $PW_NAME ;
-}
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-
-
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-## Analyse the email message
-sub analyse_email_message {
-    local ($new_result, $delete_result, $unfinished, $finished)
-       = (0, 0, 0, 0) ;
-    local ($gamefile, @games) ;
-
-    ## ################################################################# ##
-    ## Slurp the mail message
-    ## ################################################################# ##
-
-    die "cmail: No games on standard input" 
-       unless (@games = &get_games_from_file ("STDIN")) ;
-
-    ## ################################################################# ##
-    ## Is the message a real cmail message or just a chess game? $PGN_GAME
-    ## will have been set by calling get_games_from_file if it's real
-    ## ################################################################# ##
-
-    print "Processing game message..." ;
-
-    if ($PGN_GAME) {
-       ## ############################################################# ##
-       ## Restore the results file from the archive if
-       ## necessary. This is helpful if the user pipes in an old
-       ## message for take-back purposes or whatever.
-       ## ############################################################# ##
-
-       if (! -f "$PGN_GAME.res") {
-           ## Find what date would have been used to create the archive
-           foreach (@games) {
-               if (/\[Date\s"(.*)"\]/) {
-                   $date = $1 ;
-                   last ;      ## Assume all dates are the same
-               }
-           }
-           ## Restore results file from archive directory if it exists
-           if ($date && (-f "$ARCDIR/$PGN_GAME.$date.archive")) {
-               if (system ("cp",
-                           "$ARCDIR/$PGN_GAME.$date.archive",
-                           "$PGN_GAME.res")) {
-                   print stderr (  "\nWarning: couldn't restore results file"
-                                 . " from archive\n") ;
-               } else {
-                   print "restored results file from archive..." ;
-               }
-           }
-       }
-
-       ## ############################################################# ##
-       ## Find existing results, if any.
-       ## ############################################################# ##
-
-       local (@results) = &get_games_from_file ("$PGN_GAME.res") ;
-
-       ## ############################################################# ##
-       ## Parse each game
-       ## ############################################################# ##
-
-       foreach $game (@games) {
-           next unless ($game) ;
-
-           ($game_name, $game_num) = &get_game_name_and_number ($game) ;
-
-           $result = 0 ;
-           @game = split("\n", $game) ;
-           foreach (@game) {
-               if (/^\[(Black|White)\s*"[?]"\]$/) {
-                   $colour = $1;
-                   $PW_GCOS = &get_pw_gcos () unless ($PW_GCOS) ;
-                   $PW_GCOS = "$MY_NNAME" unless ($PW_GCOS) ;
-                   s/".*"/"$PW_GCOS"/ ;
-                   &debug ("Changed $colour tag to be $_") ;
-               } elsif (/^\[((Black|White)NA)\s*"(.*)"\]$/) {
-                   $NA = $3 ;
-                   if ($NA eq "?") {
-                       if ($RETURN_ADDRESS) {
-                           $NA = $RETURN_ADDRESS ;
-                       } else {
-                           $NA = "??" ;
-                       }
-                       $_ = "[$1 \"$NA\"]" ;
-                       &debug ("Changed $1 tag.\n") ;
-                   }
-                   if ($2 eq "White") {
-                       $PGN_WHITENA = $NA ;
-                       &debug ("WhiteNA tag is \"$PGN_WHITENA\"\n") ;
-                   } else {
-                       $PGN_BLACKNA = $NA ;
-                       &debug ("BlackNA tag is \"$PGN_BLACKNA\"\n") ;
-                   }
-               } elsif (/\[Result\s*"(.*)"\]$/) {
-                   if ($1 ne "*") {
-                       $result = 1 ;
-                       $finished ++ ;
-                   } else {
-                       $unfinished ++ ;
-                   }
-               } elsif (/^(.*[^\d]+)?\d+[.]\s*([^\s*]*\s+)?[^\s.*]+(\s*\d+[.]\s*)?[\s*]*$/) {
-                   if ($2) {
-                       $to_play = "white" ;
-                   } else {
-                       $to_play = "black" ;
-                   }
-                   &debug ("$to_play to play\n") ;
-               }
-           }
-
-           ## ######################################################### ##
-           ## Reconstruct possibly edited game
-           ## ######################################################### ##
-
-           $game = join ("\n", @game) . "\n\n" ;
-
-           ## ######################################################### ##
-           ## Build up results array
-           ## ######################################################### ##
-
-           if ($result) {
-               $results[$game_num] = $games[$game_num] ;
-               $new_result = 1 ;
-           } elsif ($results[$game_num]) {
-               ## Deleting a result does actually make sense if the user
-               ## pipes in an old message for take-back purposes or whatever
-               $results[$game_num] = "" ;
-               $delete_result = 1 ;
-           }
-
-           ## ######################################################### ##
-           ## Remove old .out files
-           ## ######################################################### ##
-
-           unlink <$PGN_GAME.game.out.*> ;
-
-           ## ######################################################### ##
-           ## Write ongoing games to game file and append new results
-           ## ######################################################### ##
-
-           die   "cmail: Can't open file for writing:"
-               . " \"$CMAILDIR/$PGN_GAME.game.in\"\n"
-               unless open (gamefile, ">$PGN_GAME.game.in") ;
-           &debug (@games) ;
-           print gamefile @games ;
-           close (gamefile) ;
-       }
-
-       ## ############################################################# ##
-       ## Print how many finished/unfinished games were found
-       ## ############################################################# ##
-
-       printf ("%d unfinished %s and %d finished %s...",
-               $unfinished, ($unfinished == 1) ? "game" : "games",
-               $finished, ($finished == 1) ? "game" : "games") ;
-
-       ## ############################################################# ##
-       ## Write results back to results file if there were any results
-       ## in the input
-       ## ############################################################# ##
-       
-       if ($new_result || $delete_result) {
-           die (  "cmail: Can't open results file for writing:"
-                . "\"$CMAILDIR/$PGN_GAME.res\"\n")
-               unless open (resfile, ">$PGN_GAME.res") ;
-           print resfile @results ;
-           close (resfile) ;
-       }
-
-       ## ############################################################# ##
-       ## Archive results if there are no unfinished games
-       ## ############################################################# ##
-       
-       @ARCHIVE = @results unless ($unfinished) ;
-
-       ## ############################################################# ##
-       ## Figure out return address if not known
-       ## ############################################################# ##
-
-       if (! $RETURN_ADDRESS) {
-           if ($to_play eq "black") {
-               $RETURN_ADDRESS = $PGN_WHITENA unless ("$PGN_WHITENA" eq "?") ;
-           } else {
-               $RETURN_ADDRESS = $PGN_BLACKNA unless ("$PGN_BLACKNA" eq "?") ;
-           }
-       }
-
-       ## ############################################################# ##
-       ## Decide to include position diagrams in output if not already
-       ## decided and a position diagram was found in the input
-       ## ############################################################# ##
-
-       if ("$OUTPUT_POS" eq "") {
-           if (grep (/$posdiag/, @games)) {
-               $OUTPUT_POS = "y" ; # Output position only if it was input
-           } else {
-               $OUTPUT_POS = "n" ;
-           }
-       }
-       $ENV{'CMAIL_OUTPUT_POS'} = $OUTPUT_POS ;
-
-       ## ############################################################# ##
-       ## Check that we have enough info about the players to continue
-       ## ############################################################# ##
-
-       &find_game () ;
-    } else {
-       ## ############################################################# ##
-       ## Set up xboard for viewing non-cmail PGN file
-       ## ############################################################# ##
-
-       local ($file) = "unknown.cmail" ;
-       print "done.\nDumping non-cmail file into $CMAILDIR/$file..." ;
-
-       die "cmail: Can't open file for writing: \"$CMAILDIR/$file\"\n"
-           unless open (gamefile, ">$file") ;
-       print gamefile @games ;
-       close (gamefile) ;
-    }
-
-    print "done.\n" ;
-}
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-
-
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-## Sort two filenames by the numeric suffix
-sub sort_by_numeric_suffix {
-    $a =~ /[.](\d+)$/ ; local ($na) = $1 ;
-    $b =~ /[.](\d+)$/ ; local ($nb) = $1 ;
-
-    return ($na <=> $nb) ;
-}
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-
-
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-sub get_game_name_and_number {
-    local ($game) = join ("\n", @_) ;
-
-    local ($game_name, $game_num) ;
-
-    die "CMailGameName tag missing\n"
-       unless ($game =~ /\[C[Mm]ailGameName\s+"(.*)"\]/) ;
-
-    ## ################################################################# ##
-    ## Set game name and number
-    ## ################################################################# ##
-
-    $game_name = $1 ;
-    if ($game_name =~ s/^(.*)[.](\d+)$/$1/) {
-       $game_num = $2 ;
-    } else {
-       $game_num = 1 ;
-    }
-
-    ## ################################################################# ##
-    ## Set $PGN_GAME as a side-effect or check validity
-    ## ################################################################# ##
-
-    if ($PGN_GAME) {
-       die (  "cmail: Mismatched game names in input message:\n"
-            . "\"$PGN_GAME\", \"$game_name\"\n")
-           if ("$PGN_GAME" ne "$game_name") ;
-    } else {
-       $PGN_GAME = $game_name ;
-       &debug ("PGN_GAME set to \"$PGN_GAME\"\n") ;
-    }
-
-    return ($game_name, $game_num) ;
-}
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-
-
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-## Read in a file of games and split into separate games
-sub get_games_from_file {
-    local ($file) = shift ;
-
-    local (@file, $first_line) ; ## Slurp stdin
-    if ($file eq "STDIN") {
-       if ($first_line = <STDIN>) { ## Necessary to handle no input case
-           @file = <STDIN> ; ## Slurp stdin
-           @file = ($first_line, @file) ;
-
-           foreach (@file) {
-               ## Strip off leading quotation characters
-               s/^[^\s]*>// ;
-               s/^[ \t]+// ;
-               
-               ## Find return address and set it as a side-effect
-               if (   /^From:?.*<([^>]+)>.*\n$/
-                   || /^From:? *([^ ]*).*\n$/) {
-                   $RETURN_ADDRESS = $1 ; ## Default for opp's email
-                   &debug ("Found opponent's email address",
-                           " \"$RETURN_ADDRESS\"\n") ;
-               } elsif (/\[C[Mm]ailGameName\s+"(.*)"\]/) {
-                   $PGN_GAME =  $1 ;
-                   $PGN_GAME =~ s/[.]\d+$// ;
-               }
-           }
-
-           return (@file) unless ($PGN_GAME) ;
-           if (grep (/\{--------------|\[Event/, @file)) {
-               shift (@file) while ($file[0] !~ /\{--------------|\[Event/) ;
-           }
-       } else {
-           return () ;
-       }
-    } else {
-       return () unless (open (file, "<$file")) ;
-    
-       @file = <file> ; ## Slurp file
-       close (file) ;
-    }
-    
-    local (@games, $game_name, $game_num, $game, $tag) ;
-
-    ## ################################################################# ##
-    ## Remove headers and leading blanks
-    ## ################################################################# ##
-
-    local (@tgames) = split (/($posdiag\[Event|\[Event)/, join ('', @file)) ;
-    shift (@tgames) while (!$tgames[0]) ;
-
-    ## ################################################################# ##
-    ## Set up @games array with proper game numbers
-    ## ################################################################# ##
-
-    while (@tgames) {
-       $game = shift (@tgames) . shift (@tgames) ;
-
-       ($game_name, $game_num) = &get_game_name_and_number ($game) ;
-       $games[$game_num] = $game ;
-    }
-
-    return (@games) ;
-}
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-
-
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-## Analyse output files and send the move
-sub send_move {
-    &debug ("Called <send_move>\n") ;
-
-    ## ################################################################# ##
-    ## Cat the pos (if it exists), game and result (if it exists) files
-    ## into the .out file.
-    ## ################################################################# ##
-    
-    local ($unfinished, $finished) = (0, 0) ;
-    local (@results, $move, $move_msg, $to_play, $number) ;
-   
-    ## ################################################################# ##
-    ## Find any .game.out.* files
-    ## ################################################################# ##
-
-    local (@outfiles) = (<$PGN_GAME.game.out.*>) ;
-    @outfiles = grep (/[.]\d+$/, @outfiles) ; ## Ignore autosave files
-    @outfiles = sort sort_by_numeric_suffix @outfiles ; ## Sort
-
-    ## ################################################################# ##
-    ## Find .res file if it exists
-    ## ################################################################# ##
-
-    local ($resfile) = "$PGN_GAME.res" ;
-    if (-f $resfile) {
-       @results = &get_games_from_file($resfile) ;
-       &debug ("Read in results\n") ;
-    } else {
-       @results = () ;
-       &debug ("No results to read\n") ;
-    }
-
-    ## ################################################################# ##
-    ## Find .out file if it exists
-    ## ################################################################# ##
-
-    local ($outfile) = "$PGN_GAME.out" ;
-    if (! ($REMAIL || $LOAD_XBOARD)) {
-       @games = &play_on_tty (@results) ;
-    } elsif (@outfiles) {
-       foreach (@outfiles) {
-           die "Can't open game file \"$_\" for reading"
-               unless (open (game, "<$_")) ;
-           die "Empty game file \"$_\""
-               unless ($game = join ('', <game>)) ;
-           close (game) ;
-           &debug ("Read in game file \"$_\"\n") ;
-           ## Remove position diagram if it wasn't in the input msg
-           $game =~ s/($posdiag)// if ("$OUTPUT_POS" ne "y") ;
-           ($game_name, $game_num) = &get_game_name_and_number ($game) ;
-           $games[$game_num] = $game ;
-       }
-       &debug ("Read in games from output files\n") ;
-       $games[0] = "" ;
-    } else {
-       &debug ("No games to read from STDIN\n") ;
-       if (-f $outfile) {
-           @games = &get_games_from_file($outfile) ;
-       } else {
-           die "Can't find any game files\n" unless (@results) ;
-       }
-    }
-
-    ## ################################################################# ##
-    ## Process games
-    ## ################################################################# ##
-
-    if (@games) {
-       ## ############################################################# ##
-       ## Find opponent's email address in games
-       ## ############################################################# ##
-       
-       $OPP_ADDRESS = &get_opp_address_from_games (@games)
-           unless ($OPP_ADDRESS) ;
-
-       ## ############################################################# ##
-       ## Collect the .game.out.* files into the .out file, remembering
-       ## the move number of the last line and whether result or not
-       ## ############################################################# ##
-
-       $unfinished = 0 ;
-       $move_num = 0 ;
-       $move = blank ;
-
-       ## Write games to output file
-       die "Can't open output file \"$PGN_GAME.out\" for writing\n"
-           unless open (outfile, ">$PGN_GAME.out") ;
-       print outfile @games ;
-       close (outfile) ;
-               
-       $game_num = -1 ;
-       $num_games = 0 ;
-       foreach $game (@games) {
-           $game_num ++ ;
-           next unless ($game) ;
-
-           $num_games ++ ;
-           ## Determine last move and whether result or not
-           $result = 0 ;
-           foreach (split(/\n/, $game)) {
-               if (/^(.*[^\d]+|)(\d+)[.]+\s*[^\s.]*\s+(\S+)\s*$/) {
-                   $move_num = $2 ;
-                   $move    = $3 ;
-               } elsif (/^\[Result\s*"(.*)"\]$/) {
-                   if ($1 ne "*") {
-                       $result = 1 ;
-                       $finished ++ ;
-                   } else {
-                       $unfinished ++ ;
-                   }
-               }
-           }
-           
-           $results[$game_num] = $game if ($result) ;
-       }
-
-       ## Write result files back to $PGN_GAME.res
-       if (@results) {
-           die "Can't open results file $PGN_GAME.res for writing\n"
-               unless open (resfile, ">$PGN_GAME.res") ;
-           print resfile @results ;
-           close (results) ;
-       }
-
-       unlink <$PGN_GAME.game.out.*> ;
-
-       ## ############################################################# ##
-       ## Just say how many games are in the message
-       ## ############################################################# ##
-           
-       if ($num_games > 1) {
-           $move_msg = "$num_games games" ;
-       } else {
-           $move_msg = "1 game" ;
-       }
-
-       ## ############################################################# ##
-       ## Print how many finished/unfinished games were found
-       ## ############################################################# ##
-
-       printf ("Sending %d unfinished %s and %d finished %s.\n",
-               $unfinished, ($unfinished == 1) ? "game" : "games",
-               $finished, ($finished == 1) ? "game" : "games") ;
-
-       ## ############################################################# ##
-       ## Send the mail message to opponent's address unless bypassed
-       ## ############################################################# ##
-
-       if ($SEND_MAIL) {
-           local ($subject) = "cmail $move_msg <$PGN_GAME>" ;
-           if ($MAILPROG =~ /sendmail/) {
-               $opened = open (mail, "|$MAILPROG $OPP_ADDRESS") ;
-               print mail "To: $OPP_ADDRESS\n";
-               print mail "Subject: $subject\n";
-               print mail "Mime-Version: 1.0\n";
-               print mail "Content-Type: application/x-chess;name=$PGN_GAME.pgn\n\n";
-           } else {
-               $opened = open (mail, "|$MAILPROG -s \"$subject\" $OPP_ADDRESS") ;
-           }
-           if ($opened) {
-               print mail @games ;
-               close (mail) ;
-               print (  "Mailed cmail message to \"$OPP_ADDRESS\":\n"
-                      . "$move_msg <$PGN_GAME>\n") ;
-               @ARCHIVE = @results unless ($unfinished) ;
-           } else {
-               die "Failed to mail cmail message.\n" ;
-           }
-       } else {
-           print (  "Email not sent (as requested).\n"
-                  . "Would have mailed cmail message to \"$OPP_ADDRESS\":\n"
-                  . "$NUM_GAMES games <$PGN_GAME>\n") ;
-       }
-    } else {
-       if (@results) {
-           print "Email not sent (the game is over).\n" ;
-       } else {
-           die "No games found\n" ;
-       }
-    }
-}
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-
-
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-## Get date from array of games
-sub get_date_from_games {
-    local (@games) = @_ ;
-
-    local ($date) = "nodate" ;
-
-    foreach (@games) {
-       if (/\[Date\s"(.*)"\]/) {
-           $date = $1 ;
-           last ;              ## Assume all dates are the same
-       }
-    }
-
-    return ($date) ;
-}
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-
-
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-## Determine which colour is to play and the move number
-sub get_to_play {
-    &debug ("Called <get_to_play>\n") ;
-    local ($game) = shift ;
-
-    local ($number, $to_play) = (1, "White") ;
-
-    $game =~ s/{[^}]*}//g ;
-    $game =~ s/[\s\n]*[*][\s\n]*$// ;
-
-    if ($game =~ /(\d+)[.][\n ]*([.]*)[\n ]*([^\n.]*)[\n\s]*[10-]*[\n\s]*$/) {
-       $number = $1 ;
-
-       if ($game =~ /\[Result "0-1"\]/) {
-           $to_play = "Black" ;
-       } elsif ($game =~ /\[Result "1-0"\]/) {
-           $to_play = "White" ;
-       } elsif (($2 ne "") || (($3 =~ / /) || ($3 eq ""))) {
-           $to_play = "White" ;
-           $number ++ ;
-       } else {
-           $to_play = "Black" ;
-       }
-    }
-
-    &debug ("$to_play to play on move $number\n") ;
-
-    return ($number, $to_play) ;
-}
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-
-
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-## Get opp address from array of games
-sub get_opp_address_from_games {
-    &debug ("Called <get_opp_address_from_games>\n") ;
-    local (@games) = @_ ;
-
-    local ($opp_address) = "" ;
-    local ($number, $to_play, $tag) ;
-
-    foreach (@games) {
-       next unless $_ ;
-       
-       ($number, $to_play) = &get_to_play ($_) ;
-       $tag = (  ($to_play eq "White")
-               ? "WhiteNA"
-               : "BlackNA") ;
-
-       if (/\[$tag\s"(.*)"\]/) {
-           $opp_address = $1 ;
-           die "cmail: Empty \"$tag\" tag\n" unless ($opp_address) ;
-           &debug ("Found opponent's address \"$opp_address\" from games.\n") ;
-           last ;              ## Assume all opp addresses are the same
-       } else {
-           die "cmail: Can't find \"$tag\" tag\n" ;
-       }
-    }
-
-    die "cmail: Can't find opponent's email address\n" unless ($opp_address) ;
-
-    return ($opp_address) ;
-}
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-
-
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-## Archive @ARCHIVE in the $ARCDIR directory
-sub archive {
-    return () unless (@ARCHIVE) ;
-
-    local ($date) = &get_date_from_games (@ARCHIVE) ;
-
-    local ($file) = "$ARCDIR/$PGN_GAME.$date.archive" ;
-    if (open (archive, ">$file")) {
-       print archive @ARCHIVE ;
-       close (archive) ;
-       print "Archived game in $file\n" ;
-       local (@remove) = <$PGN_GAME*> ;
-       @remove = grep ($_ ne "$PGN_GAME.$date.archive",
-                       @remove) ; ## Don't delete archive
-       unlink (@remove) ;
-    } else {
-       print "Couldn't open \"$file\" to archive game\n" ;
-    }
-}
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-
-
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-## Main body
-sub main {
-    local (@games) = () ;
-
-    &initialise () ;           ## Initialise variables etc.
-
-    if (-t || $REMAIL) { ## No input directed (invoked from a shell rather than a mailer)
-       &debug ("Interactive!\n") ;
-       &find_game () ;         ## Get the necessary info about the game
-    } else {
-       &debug ("Piping!\n") ;
-       &analyse_email_message () ; ## Analyse the mail message
-    }
-    
-    if (! &play_game ()) {     ## Load the game
-       &send_move () ;         ## Analyse output and send moves
-    }
-
-    &archive () ;              ## Archive games if all finished
-
-    close (tty) ;              ## Tidy up
-    close (logfile) if ($DEBUG) ; ## Tidy up
-}
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-&main () ;
-#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
-__END__
-cmail (From XBoard version @PACKAGE_VERSION@), Copyright (C) 1993 Free Software Foundation, Inc.
-cmail comes with ABSOLUTELY NO WARRANTY; for details type `cmail -w'.
-cmail is free software, and you are welcome to redistribute it
-under certain conditions; type `cmail -c' for details.
-
-{END OF GPL COPYRIGHT}
-                   GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-\f
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-\f
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-\f
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-{END OF GPL CONDITIONS}
-                   GNU GENERAL PUBLIC LICENSE
-                           NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
diff --git a/common.h b/common.h
deleted file mode 100644 (file)
index c557257..0000000
--- a/common.h
+++ /dev/null
@@ -1,947 +0,0 @@
-/*
- * common.h -- Common definitions for X and Windows NT versions of XBoard
- *
- * Copyright 1991 by Digital Equipment Corporation, Maynard,
- * Massachusetts.
- *
- * Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006,
- * 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free
- * Software Foundation, Inc.
- *
- * Enhancements Copyright 2005 Alessandro Scotti
- *
- * The following terms apply to Digital Equipment Corporation's copyright
- * interest in XBoard:
- * ------------------------------------------------------------------------
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notice appear in all copies and that
- * both that copyright notice and this permission notice appear in
- * supporting documentation, and that the name of Digital not be
- * used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- *
- * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- * ------------------------------------------------------------------------
- *
- * The following terms apply to the enhanced version of XBoard
- * distributed by the Free Software Foundation:
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-#ifndef XB_COMMON
-#define XB_COMMON
-
-
-/* Begin compatibility grunge  */
-
-#if defined(__STDC__) || defined(WIN32) || defined(_amigados)
-#define        P(args) args
-typedef void *VOIDSTAR;
-#else
-#define P(args)                ()
-typedef char *VOIDSTAR;
-#endif
-
-#ifdef WIN32
-typedef char Boolean;
-typedef char *String;
-#define popen _popen
-#define pclose _pclose
-
-#else
-#ifdef _amigados        /*  It is important, that these types have  */
-typedef int Boolean;    /*  a length of 4 bytes each, as we are     */
-typedef char *String;   /*  using ReadArgs() for argument parsing.  */
-#ifdef _DCC
-FILE *popen(const char *, const char *);
-int pclose(FILE *);
-#endif
-
-#else
-#ifdef X11
-#include <X11/Intrinsic.h>
-#else
-typedef char Boolean;
-typedef char *String;
-#define True 1
-#define False 0
-#endif
-#endif
-#endif
-
-
-#ifndef TRUE
-#define TRUE 1
-#define FALSE 0
-#endif
-
-#define UNKNOWN -1 /* [HGM] nps */
-
-#if !HAVE_RANDOM
-# if HAVE_RAND48
-#  define srandom srand48
-#  define random lrand48
-# else /* not HAVE_RAND48 */
-#  define srandom srand
-#  define random rand
-# endif /* not HAVE_RAND48 */
-#endif /* !HAVE_RANDOM */
-
-/* End compatibility grunge */
-
-/* unsigned int 64 for engine nodes work and display */
-#ifdef WIN32
-       /* I don't know the name for this type of other compiler
-        * If it not work, just modify here
-        * This is for MS Visual Studio
-        */
-       #ifdef _MSC_VER
-               #define u64 unsigned __int64
-               #define s64 signed __int64
-               #define u64Display "%I64u"
-               #define s64Display "%I64d"
-               #define u64Const(c) (c ## UI64)
-               #define s64Const(c) (c ## I64)
-       #else
-               /* place holder
-                * or dummy types for other compiler
-                * [HGM] seems that -mno-cygwin comple needs %I64?
-                */
-               #define u64 unsigned long long
-               #define s64 signed long long
-               #ifdef USE_I64
-                  #define u64Display "%I64u"
-                  #define s64Display "%I64d"
-               #else
-                  #define u64Display "%llu"
-                  #define s64Display "%lld"
-               #endif
-               #define u64Const(c) (c ## ULL)
-               #define s64Const(c) (c ## LL)
-       #endif
-#else
-       /* GNU gcc */
-       #define u64 unsigned long long
-       #define s64 signed long long
-       #define u64Display "%llu"
-       #define s64Display "%lld"
-       #define u64Const(c) (c ## ull)
-       #define s64Const(c) (c ## ll)
-#endif
-
-#define PROTOVER                2       /* engine protocol version */
-
-// [HGM] license: Messages that engines must print to satisfy their license requirements for patented variants
-#define GOTHIC "Gothic Chess (see www.GothicChess.com) is licensed under U.S. Patent #6,481,716 by Ed Trice"
-#define FALCON "Falcon Chess (see www.chessvariants.com) is licensed under U.S. Patent #5,690,334 by George W. Duke"
-
-/* [HGM] Some notes about board sizes:
-   In games that allow piece drops, the holdings are considered part of the
-   board, in the leftmost and rightmost two files. This way they are
-   automatically part of the game-history states, and enjoy all display
-   functions (including drag-drop and click-click moves to the regular part
-   of the board). The drawback of this is that the internal numbering of
-   files starts at 2 for the a-file if holdings are displayed. To ensure
-   consistency, this shifted numbering system is used _everywhere_ in the
-   code, and conversion to the 'normal' system only takes place when the
-   file number is converted to or from ASCII (by redefining the character
-   constant 'a'). This works because Winboard only communicates with the
-   outside world in ASCII. In a similar way, the different rank numbering
-   systems (starting at rank 0 or 1) are implemented by redefining '1'.
-*/
-#define BOARD_RANKS             17            /* [HGM] for in declarations  */
-#define BOARD_FILES             16             /* [HGM] for in declarations  */
-#define BOARD_HEIGHT (gameInfo.boardHeight)    /* [HGM] made user adjustable */
-#define BOARD_WIDTH  (gameInfo.boardWidth + 2*gameInfo.holdingsWidth)
-#define BOARD_LEFT   (gameInfo.holdingsWidth)  /* [HGM] play-board edges     */
-#define BOARD_RGHT   (gameInfo.boardWidth + gameInfo.holdingsWidth)
-#define CASTLING     (BOARD_RANKS-1)           /* [HGM] hide in upper rank   */
-#define VIRGIN       (BOARD_RANKS-2)           /* [HGM] pieces not moved     */
-#define TOUCHED_W    CASTLING][(BOARD_FILES-6) /* [HGM] in upper rank        */
-#define TOUCHED_B    CASTLING][(BOARD_FILES-5) /* [HGM] in upper rank        */
-#define EP_RANK      CASTLING][(BOARD_FILES-4) /* [HGM] in upper rank        */
-#define EP_FILE      CASTLING][(BOARD_FILES-3) /* [HGM] in upper rank        */
-#define EP_STATUS    CASTLING][(BOARD_FILES-2) /* [HGM] in upper rank        */
-#define HOLDINGS_SET CASTLING][(BOARD_FILES-1) /* [HGM] in upper-right corner*/
-#define ONE          ('1'-(BOARD_HEIGHT==10)-appData.rankOffset)  /* [HGM] foremost board rank  */
-#define AAA          ('a'-BOARD_LEFT)          /* [HGM] leftmost board file  */
-#define VIRGIN_W                 1             /* [HGM] flags in Board[VIRGIN][X] */
-#define VIRGIN_B                 2
-#define DROP_RANK               -3
-#define MAX_MOVES              1000
-#define MSG_SIZ                        512
-#define DIALOG_SIZE            256
-#define STAR_MATCH_N            16
-#define MOVE_LEN               32
-#define TIME_CONTROL           "5"     /* in minutes */
-#define TIME_DELAY_QUOTE       "1.0"   /* seconds between moves */
-#define TIME_DELAY              ((float) 1.0)
-#define MOVES_PER_SESSION      40      /* moves per TIME_CONTROL */
-#define TIME_INCREMENT          -1      /* if >= 0, MOVES_PER_SESSION unused */
-#define WhiteOnMove(move)      (((move) % 2) == 0)
-#define ICS_HOST                "chessclub.com"
-#define ICS_PORT               "5000"
-#define ICS_COMM_PORT           ""
-#define FIRST_HOST             "localhost"
-#define SECOND_HOST            "localhost"
-#define TELNET_PROGRAM          "telnet"
-#define DEF_BITMAP_DIR          BITMAPDIR
-#define MATCH_MODE             "False"
-#define INIT_STRING            "new\nrandom\n"
-#define WHITE_STRING           "white\ngo\n"
-#define BLACK_STRING           "black\ngo\n"
-#define COMPUTER_STRING         "computer\n"
-#define REUSE_CHESS_PROGRAMS    1
-#define WHITE_PIECE_COLOR      "#FFFFCC"
-#define BLACK_PIECE_COLOR      "#202020"
-#define LIGHT_SQUARE_COLOR     "#C8C365"
-#define DARK_SQUARE_COLOR      "#77A26D"
-#define JAIL_SQUARE_COLOR       "#808080"
-#define HIGHLIGHT_SQUARE_COLOR "#FFFF00"
-#define PREMOVE_HIGHLIGHT_COLOR        "#FF0000"
-#define LOWTIMEWARNING_COLOR    "#FF0000"
-#define BELLCHAR                '\007'
-#define NULLCHAR                '\000'
-#define FEATURE_TIMEOUT         10000 /*ms*/
-#define MATE_SCORE              100000
-
-#define CLOCK_FONT 0
-#define MESSAGE_FONT 1
-#define COORD_FONT 2
-#define CONSOLE_FONT 3
-#define COMMENT_FONT 4
-#define EDITTAGS_FONT 5
-#define MOVEHISTORY_FONT 6
-#define GAMELIST_FONT 7
-#define NUM_FONTS 8
-
-/* Default to no flashing (the "usual" XBoard behavior) */
-#define FLASH_COUNT    0               /* Number of times to flash */
-#define FLASH_RATE     5               /* Flashes per second */
-
-/* Default delay per character (in msec) while sending login script */
-#define MS_LOGIN_DELAY  0
-
-/* [AS] Support for background textures */
-#define BACK_TEXTURE_MODE_DISABLED      0
-#define BACK_TEXTURE_MODE_PLAIN         1
-#define BACK_TEXTURE_MODE_FULL_RANDOM   2
-
-/* Zippy defaults */
-#define ZIPPY_TALK FALSE
-#define ZIPPY_PLAY FALSE
-#define ZIPPY_LINES "yow.lines"
-#define ZIPPY_PINHEAD ""
-#define ZIPPY_PASSWORD ""
-#define ZIPPY_PASSWORD2 ""
-#define ZIPPY_WRONG_PASSWORD ""
-#define ZIPPY_ACCEPT_ONLY ""
-#define ZIPPY_USE_I TRUE
-#define ZIPPY_BUGHOUSE 0
-#define ZIPPY_NOPLAY_CRAFTY FALSE
-#define ZIPPY_GAME_END "gameend\n"
-#define ZIPPY_GAME_START ""
-#define ZIPPY_ADJOURN FALSE
-#define ZIPPY_ABORT FALSE
-#define ZIPPY_VARIANTS "normal,fischerandom,crazyhouse,losers,suicide,3checks,twokings,bughouse,shatranj"
-#define ZIPPY_MAX_GAMES 0
-#define ZIPPY_REPLAY_TIMEOUT 120
-
-typedef VOIDSTAR ProcRef;
-#define NoProc ((ProcRef) 0)
-typedef VOIDSTAR InputSourceRef;
-
-typedef void (*DelayedEventCallback) P((void));
-
-typedef enum { Press, Release } ClickType;
-
-typedef enum {
-    BeginningOfGame, MachinePlaysWhite, MachinePlaysBlack,
-    AnalyzeMode, AnalyzeFile, TwoMachinesPlay,
-    EditGame, PlayFromGameFile, EndOfGame, EditPosition, Training,
-    IcsIdle, IcsPlayingWhite, IcsPlayingBlack, IcsObserving,
-    IcsExamining
-  } GameMode;
-
-typedef enum {
-    /* [HGM] the order here is crucial for Crazyhouse & Shogi: */
-    /* only the first N pieces can go into the holdings, and   */
-    /* promotions in those variants shift P-W to U-S           */
-    WhitePawn, WhiteKnight, WhiteBishop, WhiteRook, WhiteQueen,
-    WhiteFerz, WhiteAlfil, WhiteAngel, WhiteMarshall, WhiteWazir, WhiteMan,
-    WhiteCannon, WhiteNightrider, WhiteCardinal, WhiteDragon, WhiteGrasshopper,
-    WhiteSilver, WhiteFalcon, WhiteLance, WhiteCobra, WhiteUnicorn, WhiteLion,
-    WhiteSword, WhiteZebra, WhiteCamel, WhiteTower, WhiteWolf,
-    WhiteHat, WhiteDuck, WhiteAmazon, WhiteFlying, WhiteGnu, WhiteCub,
-    WhiteShield, WhiteHorse, WhiteWizard, WhiteCopper, WhiteIron,
-    WhiteViking, WhiteFlag, WhiteAxe, WhiteDolphin, WhiteCat, WhiteClaw,
-    WhiteWheel, WhiteButterfly, WhitePBishop, WhitePRook, WhiteHCrown,
-    WhiteShierd, WhiteMonarch, WhiteMother, WhiteNothing, WhiteDrunk, WhiteWheer,
-    WhiteTokin, WhitePKnight, WhitePCardinal, WhitePDragon, WhitePLance,
-    WhitePSilver, WhiteDagger, WhitePSword, WhitePDagger, WhiteCrown, WhiteKing,
-    BlackPawn, BlackKnight, BlackBishop, BlackRook, BlackQueen,
-    BlackFerz, BlackAlfil, BlackAngel, BlackMarshall, BlackWazir, BlackMan,
-    BlackCannon, BlackNightrider, BlackCardinal, BlackDragon, BlackGrasshopper,
-    BlackSilver, BlackFalcon, BlackLance, BlackCobra, BlackUnicorn, BlackLion,
-    BlackSword, BlackZebra, BlackCamel, BlackTower, BlackWolf,
-    BlackHat, BlackDuck, BlackAmazon, BlackFlying, BlackGnu, BlackCub,
-    BlackShield, BlackHorse, BlackWizard, BlackCopper, BlackIron,
-    BlackViking, BlackFlag, BlackAxe, BlackDolphin, BlackCat, BlackClaw,
-    BlackWheel, BlackButterfly, BlackPBishop, BlackPRook, BlackHCrown,
-    BlackShierd, BlackMonarch, BlackMother, BlackNothing, BlackDrunk, BlackWheer,
-    BlackTokin, BlackPKnight, BlackPCardinal, BlackPDragon, BlackPLance,
-    BlackPSilver, BlackDagger, BlackPSword, BlackPDagger, BlackCrown, BlackKing,
-    EmptySquare, DarkSquare,
-    NoRights, // [HGM] gamestate: for castling rights hidden in board[CASTLING]
-    ClearBoard, WhitePlay, BlackPlay, PromotePiece, DemotePiece /*for use on EditPosition menus*/
-  } ChessSquare;
-
-/* [HGM] some macros that can be used as prefixes to convert piece types */
-#define WHITE_TO_BLACK (int)BlackPawn - (int)WhitePawn + (int)
-#define BLACK_TO_WHITE (int)WhitePawn - (int)BlackPawn + (int)
-#define PROMO          (int)WhiteDragon - (int)WhiteRook + (int)
-#define PROMOTED(X)    (promoPartner[X])
-#define DEMOTED(X)     (promoPartner[X])
-#define SHOGI          (int)EmptySquare + (int)
-#define CHUPROMOTED(X) (promoPartner[X])
-#define CHUDEMOTED(X)  (promoPartner[X])
-#define IS_SHOGI(V)    ((V) == VariantShogi || (V) == VariantChu)
-#define IS_LION(V)     ((V) == WhiteLion || (V) == BlackLion)
-
-
-typedef ChessSquare Board[BOARD_RANKS][BOARD_FILES];
-
-typedef enum {
-    EndOfFile = 0,
-    WhiteKingSideCastle, WhiteQueenSideCastle,
-    WhiteKingSideCastleWild, WhiteQueenSideCastleWild,
-    WhiteHSideCastleFR, WhiteASideCastleFR,
-    BlackKingSideCastle, BlackQueenSideCastle,
-    BlackKingSideCastleWild, BlackQueenSideCastleWild,
-    BlackHSideCastleFR, BlackASideCastleFR,
-    WhitePromotion, WhiteNonPromotion,
-    BlackPromotion, BlackNonPromotion,
-    WhiteCapturesEnPassant, BlackCapturesEnPassant,
-    WhiteDrop, BlackDrop, FirstLeg,
-    NormalMove, AmbiguousMove, IllegalMove, ImpossibleMove,
-    WhiteWins, BlackWins, GameIsDrawn, GameUnfinished,
-    GNUChessGame, XBoardGame, MoveNumberOne, Open, Close, Nothing,
-    Comment, PositionDiagram, ElapsedTime, PGNTag, NAG
-  } ChessMove;
-
-typedef enum {
-    ColorShout, ColorSShout, ColorChannel1, ColorChannel, ColorKibitz,
-    ColorTell, ColorChallenge, ColorRequest, ColorSeek, ColorNormal,
-    ColorNone, NColorClasses
-} ColorClass;
-
-typedef enum {
-    SoundMove, SoundBell, SoundRoar, SoundAlarm, SoundIcsWin, SoundIcsLoss,
-    SoundIcsDraw, SoundIcsUnfinished, NSoundClasses
-} SoundClass;
-
-/* Names for chess variants, not necessarily supported */
-typedef enum {
-    VariantNormal,       /* Normal chess */
-    VariantLoadable,     /* "loadgame" command allowed (not really a variant)*/
-    VariantWildCastle,   /* Shuffle chess where king can castle from d file */
-    VariantNoCastle,     /* Shuffle chess with no castling at all */
-    VariantFischeRandom, /* FischeRandom */
-    VariantBughouse,     /* Bughouse, ICC/FICS rules */
-    VariantCrazyhouse,   /* Crazyhouse, ICC/FICS rules */
-    VariantLosers,       /* Try to lose all pieces or get mated (ICC wild 17)*/
-    VariantSuicide,      /* Try to lose all pieces incl. king (FICS) */
-    VariantGiveaway,     /* Try to have no legal moves left (ICC wild 26) */
-    VariantTwoKings,     /* Weird ICC wild 9 */
-    VariantKriegspiel,   /* Kriegspiel; pawns can capture invisible pieces */
-    VariantAtomic,       /* Capturing piece explodes (ICC wild 27) */
-    Variant3Check,       /* Win by giving check 3 times (ICC wild 25) */
-    VariantShatranj,     /* Unsupported (ICC wild 28) */
-    Variant29,           /* Temporary name for possible future ICC wild 29 */
-    Variant30,           /* Temporary name for possible future ICC wild 30 */
-    Variant31,           /* Temporary name for possible future ICC wild 31 */
-    Variant32,           /* Temporary name for possible future ICC wild 32 */
-    Variant33,           /* Temporary name for possible future ICC wild 33 */
-    Variant34,           /* Temporary name for possible future ICC wild 34 */
-    Variant35,           /* Temporary name for possible future ICC wild 35 */
-    Variant36,           /* Temporary name for possible future ICC wild 36 */
-    VariantShogi,        /* [HGM] added variants */
-    VariantChu,
-    VariantCourier,
-    VariantGothic,
-    VariantCapablanca,
-    VariantKnightmate,
-    VariantFairy,
-    VariantCylinder,
-    VariantFalcon,
-    VariantCapaRandom,
-    VariantBerolina,
-    VariantJanus,
-    VariantSuper,
-    VariantGreat,
-    VariantTwilight,
-    VariantMakruk,
-    VariantSChess,
-    VariantGrand,
-    VariantSpartan,
-    VariantXiangqi,
-    VariantASEAN,
-    VariantLion,
-    VariantChuChess,
-    VariantUnknown       /* Catchall for other unknown variants */
-} VariantClass;
-
-#define VARIANT_NAMES { \
-  "normal", \
-  "normal", \
-  "wildcastle", \
-  "nocastle", \
-  "fischerandom", \
-  "bughouse", \
-  "crazyhouse", \
-  "losers", \
-  "suicide", \
-  "giveaway", \
-  "twokings", \
-  "kriegspiel", \
-  "atomic", \
-  "3check", \
-  "shatranj", \
-  "wild29", \
-  "wild30", \
-  "wild31", \
-  "wild32", \
-  "wild33", \
-  "wild34", \
-  "wild35", \
-  "wild36", \
-  "shogi", \
-  "chu", \
-  "courier", \
-  "gothic", \
-  "capablanca", \
-  "knightmate", \
-  "fairy", \
-  "cylinder", \
-  "falcon",\
-  "caparandom",\
-  "berolina",\
-  "janus",\
-  "super",\
-  "great",\
-  "twilight",\
-  "makruk",\
-  "seirawan",\
-  "grand",\
-  "spartan",\
-  "xiangqi", \
-  "asean",\
-  "lion",\
-  "elven",\
-  "unknown" \
-}
-
-#define ENGINES 2
-
-typedef struct {
-    char *language;
-#if !defined(_amigados)
-    char *whitePieceColor;
-    char *blackPieceColor;
-    char *lightSquareColor;
-    char *darkSquareColor;
-    char *jailSquareColor;
-    char *highlightSquareColor;
-    char *premoveHighlightColor;
-    char *dialogColor;
-    char *buttonColor;
-#else
-    int whitePieceColor;
-    int blackPieceColor;
-    int lightSquareColor;
-    int darkSquareColor;
-    int jailSquareColor;
-    int highlightSquareColor;
-    int premoveHighlightColor;
-#endif
-    int movesPerSession;
-    float timeIncrement;
-    char *engInitString[ENGINES];
-    char *computerString[ENGINES];
-    char *chessProgram[ENGINES];
-    char *directory[ENGINES];
-    char *pgnName[ENGINES];
-    Boolean firstPlaysBlack;
-    Boolean noChessProgram;
-    char *positionDir;
-    char *host[ENGINES];
-    char *themeNames;
-    char *pieceDirectory;
-    char *border;
-    char *soundDirectory;
-    char *remoteShell;
-    char *remoteUser;
-    float timeDelay;
-    char *timeControl;
-    Boolean trueColors;
-    Boolean icsActive;
-    Boolean autoBox;
-    char *icsHost;
-    char *icsPort;
-    char *icsCommPort;  /* if set, use serial port instead of tcp host/port */
-    char *icsLogon;     /* Hack to permit variable logon scripts. */
-    char *icsHelper;
-    Boolean icsInputBox;
-    Boolean useTelnet;
-    Boolean seekGraph;
-    Boolean autoRefresh;
-    char *telnetProgram;
-    char *gateway;
-    char *loadGameFile;
-    int loadGameIndex;      /* game # within file */
-    char *saveGameFile;
-    char *autoInstall;
-    Boolean autoSaveGames;
-    Boolean onlyOwn;        /* [HGM] suppress auto-saving of observed games */
-    char *loadPositionFile;
-    int loadPositionIndex;  /* position # within file */
-    char *savePositionFile;
-    Boolean fischerCastling;/* [HGM] fischer: allow Fischr castling in any variant */
-    Boolean matchMode;
-    int matchGames;
-    Boolean epd;
-    Boolean monoMode;
-    Boolean debugMode;
-    Boolean clockMode;
-    char *boardSize;
-    char *logoDir;
-    int logoSize;
-    Boolean Iconic;
-    char *searchTime;
-    int searchDepth;
-    Boolean showCoords;
-    char *clockFont;
-    char *messageFont; /* WinBoard only */
-    char *coordFont;
-    char *font; /* xboard only */
-    char *tagsFont;
-    char *commentFont;
-    char *historyFont;
-    char *gameListFont;
-    char *icsFont;
-    int analysisBell;
-    Boolean ringBellAfterMoves;
-    Boolean autoCallFlag;
-    Boolean flipView;
-    Boolean autoFlipView;
-    char *cmailGameName; /* xboard only */
-    Boolean headers;
-    Boolean alwaysPromoteToQueen;
-    Boolean oldSaveStyle;
-    Boolean oneClick;
-    Boolean quietPlay;
-    Boolean showThinking;
-    Boolean ponderNextMove;
-    Boolean periodicUpdates;
-    Boolean autoObserve;
-    Boolean autoCreateLogon;
-    Boolean autoComment;
-    Boolean getMoveList;
-    Boolean testLegality;
-    Boolean topLevel;      /* xboard, top-level auxiliary windows */
-    Boolean titleInWindow; /* xboard only */
-    Boolean localLineEditing; /* WinBoard only */
-    Boolean zippyTalk;
-    Boolean zippyPlay;
-    int flashCount; /* Number of times to flash (xboard only) */
-    int flashRate; /* Flashes per second (xboard only)  */
-    int msLoginDelay;  /* Delay per character (in msec) while sending
-                         ICS logon script (xboard only) */
-    Boolean colorize;  /* If True, use the following colors to color text */
-    /* Strings for colors, as "fg, bg, bold" (strings used in xboard only) */
-    char *colorShout;    // [HGM] IMPORTANT: order must conform to ColorClass definition
-    char *colorSShout;
-    char *colorChannel1;
-    char *colorChannel;
-    char *colorKibitz;
-    char *colorTell;
-    char *colorChallenge;
-    char *colorRequest;
-    char *colorSeek;
-    char *colorNormal;
-    char *soundProgram; /* sound-playing program */
-    char *soundShout;     // [HGM] IMPORTANT: order must be as in ColorClass
-    char *soundSShout;
-    char *soundChannel1;
-    char *soundChannel;
-    char *soundKibitz;
-    char *soundTell;
-    char *soundChallenge;
-    char *soundRequest;
-    char *soundSeek;
-    char *soundMove;     // [HGM] IMPORTANT: order must be as in SoundClass
-    char *soundBell;
-    char *soundRoar;
-    char *soundIcsAlarm;
-    char *soundIcsWin;
-    char *soundIcsLoss;
-    char *soundIcsDraw;
-    char *soundIcsUnfinished;
-    Boolean disguise;        /* [HGM] Promoted Pawns look like pieces in bughouse */
-    Boolean reuse[ENGINES];
-    Boolean animateDragging; /* If True, animate mouse dragging of pieces */
-    Boolean animate;   /* If True, animate non-mouse moves */
-    int animSpeed;     /* Delay in milliseconds between animation frames */
-    Boolean popupMoveErrors;
-    Boolean popupExitMessage;
-    int showJail;
-    Boolean highlightLastMove;
-    Boolean highlightDragging;
-    Boolean blindfold;          /* if true, no pieces are drawn */
-    Boolean premove;           /* true if premove feature enabled */
-    Boolean premoveWhite;      /* true if premoving White first move  */
-    char *premoveWhiteText;    /* text of White premove 1 */
-    Boolean premoveBlack;      /* true if premoving Black first move */
-    char *premoveBlackText;    /* text of Black premove 1 */
-    Boolean icsAlarm;          /* true if sounding alarm at a certain time */
-    int icsAlarmTime;          /* time to sound alarm, in milliseconds */
-    Boolean autoRaiseBoard;
-    int fontSizeTolerance; /* xboard only */
-    char *initialMode;
-    char *variant;
-    char *chatBoxes;
-    int protocolVersion[ENGINES];
-    Boolean showButtonBar;
-    Boolean icsEngineAnalyze;
-    Boolean variations;         /* [HGM] enable variation-tree walking */
-    Boolean autoExtend;         /* [HGM] enable playing move(s) of right-clicked PV in analysis mode */
-
-    /* [AS] New properties (down to the "ZIPPY" part) */
-    Boolean scoreIsAbsolute[ENGINES];  /* If true, engine score is always from white side */
-    Boolean saveExtendedInfoInPGN; /* If true, saved PGN games contain extended info */
-    Boolean hideThinkingFromHuman; /* If true, program thinking is generated but not displayed in human/computer matches */
-    Boolean useBitmaps;
-    Boolean useFont;
-    Boolean useBorder;
-    char * liteBackTextureFile; /* Name of texture bitmap for lite squares */
-    char * darkBackTextureFile; /* Name of texture bitmap for dark squares */
-    int liteBackTextureMode;
-    int darkBackTextureMode;
-    char * renderPiecesWithFont; /* Name of font for rendering chess pieces */
-    char * fontToPieceTable; /* Map to translate font character to chess pieces */
-    char * inscriptions;         /* text (kanji) to write on top of a piece     */
-    int fontBackColorWhite;
-    int fontForeColorWhite;
-    int fontBackColorBlack;
-    int fontForeColorBlack;
-    int fontPieceSize; /* Size of font relative to square (percentage) */
-    int overrideLineGap; /* If >= 0 overrides the lineGap value of the board size properties */
-    int adjudicateLossThreshold; /* Adjudicate a two-machine game if both engines agree the score is below this for 6 plies */
-    int delayBeforeQuit;
-    int delayAfterQuit;
-    char * nameOfDebugFile;
-    char * pgnEventHeader;
-    int defaultFrcPosition;
-    char * gameListTags;
-    Boolean saveOutOfBookInfo;
-    Boolean showEvalInMoveHistory;
-    int evalHistColorWhite;
-    int evalHistColorBlack;
-    Boolean highlightMoveWithArrow;
-    Boolean tourney;
-    char * tourneyOptions;
-    int highlightArrowColor;
-    Boolean useStickyWindows;
-    Boolean bgObserve;   /* [HGM] bughouse */
-    Boolean dualBoard;   /* [HGM] dual     */
-    Boolean viewer;
-    char * viewerOptions;
-    int adjudicateDrawMoves;
-    Boolean autoDisplayComment;
-    Boolean autoDisplayTags;
-    Boolean pseudo[ENGINES]; /* [HGM] pseudo-engines */
-    Boolean isUCI[ENGINES];
-    Boolean hasOwnBookUCI[ENGINES];
-    char * adapterCommand;
-    char * ucciAdapter;
-    char * polyglotDir;
-    Boolean usePolyglotBook;
-    Boolean defNoBook;
-    char * polyglotBook;
-    int bookDepth;
-    int bookStrength;
-    int defaultHashSize;
-    int defaultCacheSizeEGTB;
-    char * defaultPathEGTB;
-    int defaultMatchGames;
-
-    /* [HGM] Board size */
-    int NrFiles;
-    int NrRanks;
-    int rankOffset;
-    int holdingsSize;
-    int matchPause;
-    char * pieceToCharTable;
-    char * pieceNickNames;
-    char * colorNickNames;
-    Boolean allWhite;
-    Boolean upsideDown;
-    Boolean alphaRank;
-    Boolean testClaims;
-    Boolean checkMates;
-    Boolean materialDraws;
-    Boolean trivialDraws;
-    int ruleMoves;
-    int drawRepeats;
-
-#if ZIPPY
-    char *zippyLines;
-    char *zippyPinhead;
-    char *zippyPassword;
-    char *zippyPassword2;
-    char *zippyWrongPassword;
-    char *zippyAcceptOnly;
-    int zippyUseI;
-    int zippyBughouse;
-    int zippyNoplayCrafty;
-    char *zippyGameEnd;
-    char *zippyGameStart;
-    int zippyAdjourn;
-    int zippyAbort;
-    char *zippyVariants;
-    int zippyMaxGames;
-    int zippyReplayTimeout; /*seconds*/
-    int zippyShortGame; /* [HGM] aborter   */
-#endif
-    Boolean lowTimeWarning; /* [HGM] low time */
-    Boolean quitNext;
-    char *lowTimeWarningColor;
-
-    char *serverFileName;
-    char *serverMovesName;
-    char *finger;
-    Boolean suppressLoadMoves;
-    int serverPause;
-    int timeOdds[ENGINES];
-    int drawDepth[ENGINES];
-    int timeOddsMode;
-    int accumulateTC[ENGINES];
-    int NPS[ENGINES];
-    Boolean autoKibitz;
-    int engineComments;
-    int eloThreshold1;  /* [HGM] select   */
-    int eloThreshold2;
-    int dateThreshold;
-    int searchMode;
-    int stretch;
-    int minPieces;
-    int maxPieces;
-    Boolean ignoreColors;
-    Boolean findMirror;
-    char *userName;
-    int rewindIndex;    /* [HGM] autoinc   */
-    int sameColorGames; /* [HGM] alternate */
-    int smpCores;       /* [HGM] SMP       */
-    char *egtFormats;
-    int niceEngines;    /* [HGM] nice      */
-    char *logo[ENGINES];/* [HGM] logo      */
-    char *pairingEngine;/* [HGM] pairing   */
-    Boolean autoLogo;
-    Boolean fixedSize;
-    Boolean noGUI;      /* [HGM] fast: suppress all display updates */
-    char *engOptions[ENGINES]; /* [HGM] options   */
-    char *fenOverride[ENGINES];
-    char *features[ENGINES];
-    char *featureDefaults;
-    char *sysOpen;
-    Boolean keepAlive;  /* [HGM] alive     */
-    Boolean forceIllegal;/*[HGM] illegal   */
-    Boolean noJoin;     /* [HGM] join      */
-    char *wrapContSeq; /* continuation sequence when xboard wraps text */
-    Boolean useInternalWrap; /* use internal wrapping -- noJoin usurps this if set */
-    Boolean pasteSelection; /* paste X selection instead of clipboard */
-    int nrVariations;   /* [HGM] multivar  */
-    int zoom;           /* [HGM] evalGraph */
-    int evalThreshold;  /* [HGM] evalGraph */
-    Boolean dropMenu;   /* [HGM] pv        */
-    Boolean markers;    /* [HGM] markers   */
-    Boolean autoCopyPV;
-    Boolean pieceMenu;
-    Boolean sweepSelect;
-    Boolean monoMouse;
-    Boolean whitePOV;
-    Boolean scoreWhite;
-    Boolean pvSAN[ENGINES];
-
-    int recentEngines;
-    char *recentEngineList;
-    char *message;
-    char *suppress;
-    char *fen;
-    char *men;
-    char *tourneyFile;
-    char *defName;
-    char *processes;
-    char *results;
-    char *participants;
-    char *afterGame;
-    char *afterTourney;
-    int tourneyType;
-    int tourneyCycles;
-    int seedBase;
-    Boolean roundSync;
-    Boolean cycleSync;
-    Boolean numberTag;
-} AppData, *AppDataPtr;
-
-/*  PGN tags (for showing in the game list) */
-#define LPUSERGLT_SIZE      64
-
-#define GLT_EVENT           'e'
-#define GLT_SITE            's'
-#define GLT_DATE            'd'
-#define GLT_ROUND           'o'
-#define GLT_PLAYERS         'p'     /* I.e. white "-" black */
-#define GLT_RESULT          'r'
-#define GLT_WHITE_ELO       'w'
-#define GLT_BLACK_ELO       'b'
-#define GLT_TIME_CONTROL    't'
-#define GLT_VARIANT         'v'
-#define GLT_OUT_OF_BOOK     'a'
-#define GLT_RESULT_COMMENT  'c'     /* [HGM] rescom */
-
-#define GLT_DEFAULT_TAGS    "eprd"  /* Event, players, result, date */
-
-#define GLT_ALL_TAGS        "esdoprwbtvac"
-
-#define PGN_OUT_OF_BOOK     "Annotator"
-
-extern AppData appData;
-
-typedef struct {
-    /* PGN 7-tag info */
-    char *event;
-    char *site;
-    char *date;
-    char *round;
-    char *white;
-    char *black;
-    ChessMove result;
-    /* Additional info */
-    char *fen;          /* NULL or FEN for starting position; input only */
-    char *resultDetails;
-    char *timeControl;
-    char *extraTags;    /* NULL or "[Tag \"Value\"]\n", etc. */
-    int whiteRating;    /* -1 if unknown */
-    int blackRating;    /* -1 if unknown */
-    VariantClass variant;
-    char *variantName;
-    char *outOfBook;    /* [AS] Move and score when engine went out of book */
-    int boardWidth;     /* [HGM] adjustable board size */
-    int boardHeight;
-/* [HGM] For Shogi and Crazyhouse: */
-    int holdingsSize;  /* number of different piece types in holdings       */
-    int holdingsWidth; /* number of files left and right of board, 0 or 2   */
-} GameInfo;
-
-/* [AS] Search stats from chessprogram, for the played move */
-// [HGM] moved here from backend.h because it occurs in declarations of front-end functions
-typedef struct {
-    int score;  /* Centipawns */
-    int depth;  /* Plies */
-    int time;   /* Milliseconds */
-} ChessProgramStats_Move;
-
-/* [AS] Layout management */
-typedef struct {
-    Boolean visible;
-    int x;
-    int y;
-    int width;
-    int height;
-} WindowPlacement;
-
-extern WindowPlacement wpEngineOutput;
-extern WindowPlacement wpEvalGraph;
-extern WindowPlacement wpMoveHistory;
-extern WindowPlacement wpGameList;
-extern WindowPlacement wpTags;
-extern WindowPlacement wpTextMenu;
-
-#define MAXENGINES 2000
-
-// [HGM] chat
-#define MAX_CHAT 5
-extern int chatCount;
-extern char chatPartner[MAX_CHAT][MSG_SIZ];
-
-// Some prototypes of routines so general they should be available everywhere
-/* If status == 0, we are exiting with a benign message, not an error */
-void DisplayFatalError P((String message, int error, int status));
-void DisplayError P((String message, int error));
-
-// [HGM] generally useful macros; there are way too many memory leaks...
-#define FREE(x) if(x) free(x)
-#define ASSIGN(x, y) if(x) free(x); x = strdup(y)
-
-// [HGM] for now we use the kludge to redefine all the unstructured options by their array counterpart
-//       in due time we would have to make the actual substitutions all through the source
-
-#define firstInitString       engInitString[0]
-#define secondInitString      engInitString[1]
-#define firstComputerString   computerString[0]
-#define secondComputerString  computerString[1]
-#define firstChessProgram     chessProgram[0]
-#define secondChessProgram    chessProgram[1]
-#define firstDirectory        directory[0]
-#define secondDirectory       directory[1]
-#define firstProtocolVersion  protocolVersion[0]
-#define secondProtocolVersion protocolVersion[1]
-#define firstScoreIsAbsolute  scoreIsAbsolute[0]
-#define secondScoreIsAbsolute scoreIsAbsolute[1]
-#define firstHasOwnBookUCI    hasOwnBookUCI[0]
-#define secondHasOwnBookUCI   hasOwnBookUCI[1]
-#define firstTimeOdds         timeOdds[0]
-#define secondTimeOdds        timeOdds[1]
-#define firstAccumulateTC     accumulateTC[0]
-#define secondAccumulateTC    accumulateTC[1]
-#define firstHost    host[0]
-#define secondHost   host[1]
-#define reuseFirst   reuse[0]
-#define reuseSecond  reuse[1]
-#define firstIsUCI   isUCI[0]
-#define secondIsUCI  isUCI[1]
-#define firstNPS     NPS[0]
-#define secondNPS    NPS[1]
-#define firstLogo    logo[0]
-#define secondLogo   logo[1]
-#define fenOverride1 fenOverride[0]
-#define fenOverride2 fenOverride[1]
-#define firstOptions      engOptions[0]
-#define secondOptions     engOptions[1]
-
-#endif
diff --git a/conf/chu b/conf/chu
deleted file mode 100644 (file)
index 56ad943..0000000
--- a/conf/chu
+++ /dev/null
@@ -1,42 +0,0 @@
-;
-; settings for oriental Chu-Shogi theme
-;
--variant chu
-;
-; pieces: supplied chu-shogi svg's, and flip them in flipView
-;
--pid ~~/themes/chu
--flipBlack true
--trueColors true
-;
-; board: no checkering (both w. and w.o. texture)
-;
--liteBackTextureFile  "~~/themes/textures/wood_l.png"
--darkBackTextureFile  "~~/themes/textures/wood_l.png"
--lightSquareColor #FF8040
--darkSquareColor #FF8040
-;
-; detour under-promotion is less convenient when non-pawns promote
-;
--sweepPromotions false
-;
-; legality testing must be on for double-moves to work, no adjudication
-;
--testLegality true
--trivialDraws false
--materialDraws false
-;
-; make the Lion roar on double captures
-;
--soundRoar roar.wav
-;
-; redefine default engine
-;
--fcp hachu
--scp hachu
-;
-; set up own persistence file, used for this theme only
-;
--settingsFile ~/.xboard-chu-rc
--saveSettingsFile ~/.xboard-chu-rc
-
diff --git a/conf/ics b/conf/ics
deleted file mode 100644 (file)
index 9823c73..0000000
--- a/conf/ics
+++ /dev/null
@@ -1,10 +0,0 @@
-;
-; settings for Internet Chess Server client
-;
--ics
-;
-; set up own persistence file, used for ICS play
-;
--settingsFile ~/.xboard-ics-rc
--saveSettingsFile ~/.xboard-ics-rc
-
diff --git a/conf/judkins b/conf/judkins
deleted file mode 100644 (file)
index 250369d..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-;
-; additional settings for Judkins Shogi
-;
--variant shogi
-;
-; size overrides
-;
--boardWidth 6
--boardHeight 6
--holdingsSize 6
-;
-; remove L from piece set
-;
--pieceToCharTable "PNBR.S...G.++++.+Kpnbr.s...g.++++.+k"
-;
-; provide initial position
-;
--loadPositionFile "~~/themes/conf/judkins.fen"
-
diff --git a/conf/judkins.fen b/conf/judkins.fen
deleted file mode 100644 (file)
index d805858..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-rbnsgk/6p/6/6/P5/KGSNBR w 0 1
-
diff --git a/conf/mini b/conf/mini
deleted file mode 100644 (file)
index ee6fce6..0000000
--- a/conf/mini
+++ /dev/null
@@ -1,24 +0,0 @@
-;
-; additional settings for mini-Shogi
-;
--variant shogi
-;
-; size overrides
-;
--boardWidth 5
--boardHeight 5
--holdingsSize 5
-;
-; remove L and N from piece set
-;
--pieceToCharTable "P.BR.S...G.+.++.+Kp.br.s...g.+.++.+k"
-;
-; redefine default engine
-;
--fcp gnuminishogi
--scp gnuminishogi
-;
-; provide initial position
-;
--loadPositionFile "~~/themes/conf/mini.fen"
-
diff --git a/conf/mini.fen b/conf/mini.fen
deleted file mode 100644 (file)
index 7ddea3a..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-rbsgk/4p/5/P4/KGSBR w 0 1
-
diff --git a/conf/sho b/conf/sho
deleted file mode 100644 (file)
index 7b48f27..0000000
--- a/conf/sho
+++ /dev/null
@@ -1,28 +0,0 @@
-;
-; additional settings for Sho Shogi
-;
--variant shogi
-;
-; size overrides
-;
--boardWidth 9
--boardHeight 9
--holdingsSize 0
-;
-; add Elephant to piece set
-;
--pieceToCharTable "PNBRLSE..G.+++++++Kpnbrlse..g.+++++++k"
-;
-; provide initial position
-;
--loadPositionFile "~~/themes/conf/sho.fen"
-;
-; must play with legality testing off, for +E and mate
-;
--testLegality false
-;
-; redefine default engine
-;
--fcp hachu
--scp hachu
-
diff --git a/conf/sho.fen b/conf/sho.fen
deleted file mode 100644 (file)
index 689e5a6..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-lnsgkgsnl/1r2e2b1/ppppppppp/9/9/9/PPPPPPPPP/1B2E2R1/LNSGKGSNL w 0 1
-
diff --git a/conf/shogi b/conf/shogi
deleted file mode 100644 (file)
index f808c91..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-;
-; settings for oriental Shogi theme
-;
--variant shogi
-;
-; pieces: supplied shogi svg's, and flip them in flipView
-;
--pid ~~/themes/shogi
--flipBlack true
--trueColors true
-;
-; board: no checkering (both w. and w.o. texture)
-;
--liteBackTextureFile  "~~/themes/textures/wood_l.png"
--darkBackTextureFile  "~~/themes/textures/wood_l.png"
--lightSquareColor #FF8040
--darkSquareColor #FF8040
-;
-; detour under-promotion is less convenient when non-pawns promote
-;
--sweepPromotions false
-;
-; no adjudication
-;
--trivialDraws false
--materialDraws false
-;
-; direct Load Position to handicap positions
-;
--positionDir ~~/positions/shogihandicaps
-;
-; common non-compliant notations
-;
--colorNickNames "sg"
-;
-; redefine default engine
-;
--fcp gnushogi
--scp gnushogi
-;
-; set up own persistence file, used for this theme only
-;
--settingsFile ~/.xboard-shogi-rc
--saveSettingsFile ~/.xboard-shogi-rc
-
diff --git a/conf/xiangqi b/conf/xiangqi
deleted file mode 100644 (file)
index 23aeb36..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-;
-; settings for oriental Xiangqi theme
-;
--variant xiangqi
-;
-; pieces: supplied xiangqi svg's
-;
--pid ~~/themes/xiangqi
--trueColors true
-;
-; board: supplied board bitmap
-;
--liteBackTextureFile  "~~/themes/textures/xqboard.png"
--darkBackTextureFile  "~~/themes/textures/xqboard.png"
-;
-; suppress square boundaries and highlight with arrow instead
-;
--overrideLineGap 0
--highlightMovesWithArrow true
-;
-; define common non-compliant notations
-;
--pieceNickNames ".N...MB..G..n...mb..g."
--colorNickNames "r."
-;
-; set up own persistence file, used for this theme only
-;
--settingsFile ~/.xboard-xiangqi-rc
--saveSettingsFile ~/.xboard-xiangqi-rc
-
diff --git a/conf/xq b/conf/xq
deleted file mode 100644 (file)
index fe659ba..0000000
--- a/conf/xq
+++ /dev/null
@@ -1,36 +0,0 @@
-;
-; settings for oriental Xiangqi theme
-;
--variant xiangqi
-;
-; pieces: supplied xiangqi svg's
-;
--pid ~~/themes/xiangqi
--trueColors true
-;
-; board: supplied board bitmap
-;
--useBoardTexture true
--liteBackTextureFile  "~~/themes/textures/xqboard.png"
--darkBackTextureFile  "~~/themes/textures/xqboard.png"
-;
-; suppress square boundaries and highlight with arrow instead
-;
--overrideLineGap 0
--highlightMoveWithArrow true
-;
-; define common non-compliant notations
-;
--pieceNickNames ".N...MB..G..n...mb..g."
--colorNickNames "r."
-;
-; set default engines
-;
--fcp maxqi
--scp maxqi
-;
-; set up own persistence file, used for this theme only
-;
--settingsFile ~/.xboard-xiangqi-rc
--saveSettingsFile ~/.xboard-xiangqi-rc
-
diff --git a/configure.ac b/configure.ac
deleted file mode 100644 (file)
index 3306409..0000000
+++ /dev/null
@@ -1,603 +0,0 @@
-dnl| configure.in
-dnl|
-dnl| Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006, 2007,
-dnl| 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free Software Foundation, Inc.
-dnl|
-dnl| GNU XBoard is free software: you can redistribute it and/or modify
-dnl| it under the terms of the GNU General Public License as published by
-dnl| the Free Software Foundation, either version 3 of the License, or (at
-dnl| your option) any later version.
-dnl|
-dnl| GNU XBoard is distributed in the hope that it will be useful, but
-dnl| WITHOUT ANY WARRANTY; without even the implied warranty of
-dnl| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-dnl| General Public License for more details.
-dnl|
-dnl| You should have received a copy of the GNU General Public License
-dnl| along with this program. If not, see http://www.gnu.org/licenses/.
-dnl|
-dnl| --------------------------------------------------------------------
-dnl|
-dnl| You can process this file with autoconf to produce a configure script.
-dnl| However, normally the supplied configure script will work fine.
-dnl|
-dnl| If you do need to change the configure script, instead of editing
-dnl| it directly, try to edit configure.in (in a way that will keep
-dnl| it portable to sites and systems other than your own), and run autoconf
-dnl| to regenerate configure.  Then submit your changes to be folded into
-dnl| the standard version of xboard.
-
-dnl| define second argument as MAJOR.MINOR.PATCHLEVEL. e.g. 4.4.0
-dnl| MAJOR means large changes
-dnl| MINOR can includes new features and bug fixes
-dnl| PATCHLEVEL is used for bugfixes only
-dnl| pre-release version have a -YYYYMMDD attached, e.g 4.9.0-20160313
-AC_INIT([xboard],[4.9.0-20160402],[bug-xboard@gnu.org])
-
-dnl| need this to be able to compile some files in a subdir (filebrowser)
-AM_INIT_AUTOMAKE([subdir-objects])
-m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
-
-AC_CONFIG_HEADERS([config.h])
-
-dnl | a bunch of templates for defines used below
-AH_TEMPLATE([FIRST_PTY_LETTER],[template])
-AH_TEMPLATE([HAVE_FCNTL_H],[template])
-AH_TEMPLATE([HAVE_GETHOSTNAME],[template])
-AH_TEMPLATE([HAVE_GETTIMEOFDAY],[template])
-AH_TEMPLATE([HAVE_RANDOM],[template])
-AH_TEMPLATE([HAVE_SYS_SOCKET_H],[template])
-AH_TEMPLATE([IBMRTAIX],[template])
-AH_TEMPLATE([LAST_PTY_LETTER],[template])
-AH_TEMPLATE([PTY_ITERATION],[template])
-AH_TEMPLATE([PTY_NAME_SPRINTF],[template])
-AH_TEMPLATE([PTY_OPEN],[template])
-AH_TEMPLATE([PTY_TTY_NAME_SPRINTF],[template])
-AH_TEMPLATE([REMOTE_SHELL],[template])
-AH_TEMPLATE([RTU],[template])
-AH_TEMPLATE([UNIPLUS],[template])
-AH_TEMPLATE([USE_PTYS],[template])
-AH_TEMPLATE([X_WCHAR],[template])
-AH_TEMPLATE([ATTENTION],[template])
-AH_TEMPLATE([DEFINED_SYS_ERRLIST],[template])
-AH_TEMPLATE([USE_XAW3D],[template])
-AH_TEMPLATE([X_LOCALE],[template])
-
-
-
-if test -z "$CFLAGS" ; then
-dnl| Prevent the next macro from setting CFLAGS to -g
-  CFLAGS=" "
-fi
-AC_PROG_CC
-
-dnl| need this to be able to compile files in a subdir
-AM_PROG_CC_C_O
-
-AC_PROG_CPP
-AC_ISC_POSIX
-AC_PROG_INSTALL
-
-dnl| add gettext support
-AM_GNU_GETTEXT_VERSION(0.17)
-AM_GNU_GETTEXT([external])
-
-AC_CHECK_PROGS(RSH, remsh rsh, rsh)
-AC_CHECK_PROGS(MINFO, makeinfo, makeinfo_not_found)
-if test "$MINFO" = makeinfo_not_found ; then
-   echo Please install \"makeinfo\"
-   exit 1
-fi
-AC_DEFINE_UNQUOTED(REMOTE_SHELL, "$RSH")
-AC_CHECK_PROG(NROFF, nroff, [nroff -man], cat)
-AC_SUBST(NROFFFLAGS)
-AC_PATH_PROGS(AWKPATH, awk mawk gawk nawk)
-AC_PATH_PROGS(PERLPATH, perl)
-
-AC_HEADER_STDC
-AC_HEADER_TIME
-AC_HEADER_SYS_WAIT
-AC_HEADER_DIRENT
-AC_TYPE_SIGNAL
-AC_CHECK_HEADERS(stropts.h sys/time.h string.h unistd.h sys/systeminfo.h)
-AC_CHECK_HEADERS(fcntl.h sys/fcntl.h, break)
-AC_CHECK_HEADERS(sys/socket.h lan/socket.h, break)
-AC_CHECK_HEADER(stddef.h, [], AC_DEFINE(X_WCHAR, 1))
-
-AC_CHECK_FUNCS(_getpty grantpt setitimer usleep)
-AC_CHECK_FUNCS(gettimeofday ftime, break)
-AC_CHECK_FUNCS(random rand48, break)
-AC_CHECK_FUNCS(gethostname sysinfo, break)
-AC_CHECK_FUNC(setlocale, [],
-  AC_CHECK_LIB(i, setlocale, [], AC_DEFINE(X_LOCALE, 1)))
-
-AC_CHECK_LIB(seq, getpseudotty)
-
-dnl | add compiler warnings only if compiler understands them
-AC_MSG_CHECKING(whether compiler understands -Wall -Wno-parentheses)
-SAVE_CFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS -Wall -Wno-parentheses"
-AC_TRY_COMPILE([],[],
-  AC_MSG_RESULT(yes),
-  AC_MSG_RESULT(no)
-  CFLAGS="$SAVE_CFLAGS")
-
-dnl | check for pkg-config
-AC_CHECK_PROGS([PKGCONFIG], [pkg-config], pkgconfig_not_found)
-AS_IF( [test "x$PKGCONFIG" = xpkgconfig_not_found],
-       AC_MSG_ERROR([cannot find pkg-config! Please install it.]))
-
-dnl | check for cairo and librsvg
-PKG_CHECK_MODULES([CAIRO], [ cairo >= 1.2.0 pangocairo librsvg-2.0 >= 2.14.0 ])
-AC_SUBST(CAIRO_CFLAGS)
-AC_SUBST(CAIRO_LIBS)
-
-dnl | check which front end to use
-dnl | first check for gtk
-dnl | then for Xaw3d
-dnl | and then for Xaw
-FRONTEND_CFLAGS=""
-FRONTEND_LIBS=""
-
-AC_ARG_WITH([gtk],
-            [AS_HELP_STRING([--with-gtk],[use GTK front-end (default)])],
-            [with_GTK=$withval],
-            [with_GTK="yes"])
-
-AC_ARG_WITH([Xaw3d],
-            [AS_HELP_STRING([--with-Xaw3d],[use Xaw3d front-end (not fully supported anymore)])],
-            [with_Xaw3d="$withval"],
-            [with_Xaw3d="no"])
-dnl | overwrite default gtk
-AS_IF([test "x$with_Xaw3d" = xyes], [with_GTK="no"])
-
-AC_ARG_WITH([Xaw],
-            [AS_HELP_STRING([--with-Xaw],[use Xaw front-end])],
-            [with_Xaw="$withval"],
-            [with_Xaw="no"])
-dnl | overwrite default gtk
-AS_IF([test "x$with_Xaw" = xyes], [with_GTK="no"])
-
-AC_ARG_WITH([iconsdir],
-            [AS_HELP_STRING([--with-iconsdir=DIR],
-            [path where icons get installed (default: $datadir/icons/hicolor/48x48/apps)])],
-            [ICONSDIR="$withval"],
-            [ICONSDIR='$(datadir)/icons/hicolor/48x48/apps'])
-
-AC_ARG_WITH([svgiconsdir],
-            [AS_HELP_STRING([--with-svgiconsdir=DIR],
-            [path where svg icons get installed (default: $datadir/icons/hicolor/scalable/apps)])],
-            [SVGICONSDIR="$withval"],
-            [SVGICONSDIR='$(datadir)/icons/hicolor/scalable/apps'])
-
-AC_ARG_WITH([desktopdir],
-            [AS_HELP_STRING([--with-desktopdir=DIR],
-                            [path where desktop files get installed (default: $datadir/applications)])],
-            [DESKTOPDIR="$withval"],
-            [DESKTOPDIR='$(datadir)/applications'])
-
-AC_ARG_WITH([mimedir],
-            [AS_HELP_STRING([--with-mimedir=DIR],
-                            [path where mime files get installed (default: $datadir/mime/packages)])],
-            [MIMEDIR="$withval"],
-            [MIMEDIR='$(datadir)/mime/packages'])
-
-AC_ARG_WITH([gamedatadir],
-            [AS_HELP_STRING([--with-gamedatadir=DIR],
-                            [path where game data files get installed (default: $datadir/games/xboard)])],
-            [GAMEDATADIR="$withval"],
-            [GAMEDATADIR='$(datadir)/games/xboard'])
-
-AC_ARG_ENABLE([update-mimedb],
-             [AS_HELP_STRING([--disable-update-mimedb],[disable the update-mime-database after install [default=no]])],
-             [enable_mimedb="no"],
-             [enable_mimedb="yes"])
-
-AC_ARG_ENABLE([osxapp],
-             [AS_HELP_STRING([--enable-osxapp],[build a OSX app [default=no]])],
-              [enable_OSXAPP=$enableval],
-              [enable_OSXAPP="no"])
-
-AS_IF([test x"$enable_OSXAPP" = x"yes"], [
-     prefix=`pwd`/XBoard.app/Contents
-     AC_DEFINE([OSXAPP], [1], [We are building an OSX APP, redefine some functions])
-     with_GTK="yes"
-     enable_mimedb="no"
-     datarootdir='$(prefix)/Resources'
-     datadir='$(datarootdir)/share'
-     sysconfdir='$(datarootdir)/etc'
-     infodir='$(datadir)/info'
-     mandir='$(datadir)/man'
-     bindir='$(prefix)/MacOS'
-     localedir='$(datadir)/locale'
-     GAMEDATADIR='$(datadir)/xboard'],[])
-
-AM_CONDITIONAL(OSX_APP, test x"$enable_OSXAPP" = x"yes")
-
-AM_CONDITIONAL(NLS_ENABLED, test x"$USE_NLS" = x"yes")
-
-AM_CONDITIONAL(ENABLE_UPDATE_MIMEDB, test x"$enable_mimedb" = x"yes")
-if test x"$enable_mimedb" = x"yes"; then
-   AC_PATH_PROG([XDG_MIME],[xdg-mime])
-   AC_SUBST(XDG_MIME)
-   AC_PATH_PROG([XDG_DESKTOP_MENU],[xdg-desktop-menu])
-   AC_SUBST(XDG_DESKTOP_MENU)
-   AC_PATH_PROG([XDG_ICON_RESOURCE],[xdg-icon-resource])
-   AC_SUBST(XDG_ICON_RESOURCE)
-fi
-
-AC_SUBST(ICONSDIR)
-AC_SUBST(SVGICONSDIR)
-AC_SUBST(DESKTOPDIR)
-AC_SUBST(MIMEDIR)
-AC_SUBST(GAMEDATADIR)
-
-dnl | check for libraries
-if test x"$with_GTK" = x"yes" ; then
-  PKG_CHECK_MODULES([GTK], [ gtk+-2.0 >= 2.16.0 gmodule-2.0 ])
-  FRONTEND_CFLAGS=$GTK_CFLAGS
-  FRONTEND_LIBS=$GTK_LIBS
-  with_Xaw="no"
-fi
-
-if test x"$with_GTK" = x"no" ; then
-
-dnl | general check for Xaw and Xaw3d
-  AC_PATH_XTRA
-  if test -n "$no_x" ; then
-    AC_MSG_ERROR([ "    $PACKAGE requires the X Window System header files and libraries!
-    They were not found on your system.  See FAQ topic C.2.
-    configure failed"])
-  fi
-
-  save_cflags="$CFLAGS"
-  save_cppflags="$CPPFLAGS"
-  CFLAGS="$CFLAGS $X_CFLAGS"
-  CPPFLAGS="$CPPFLAGS $X_CFLAGS"
-  AC_CHECK_HEADER([X11/Intrinsic.h],[xt="yes"],[xt="no"])
-  CFLAGS="$save_cflags"
-  CPPFLAGS="$save_cppflags"
-
-  if test "$xt" = "no" ; then
-     AC_MSG_ERROR([Xt headers not found. Please install the X11 packages.])
-  fi
-
-dnl | check availability of Xaw3d
-  FRONTEND_LIBS=
-  AS_IF([test x"$with_Xaw3d" != x"no"],
-           [AC_CHECK_LIB([Xaw3d],
-                    [XawTextReplace],
-                    [ FRONTEND_LIBS="-lXaw3d"
-                      AC_DEFINE([USE_XAW3D], [1], [Define if you want to use Xaw3d])],
-                    [AC_MSG_ERROR([--with-Xaw3d was given, but test for Xaw3d failed. Make sure that you have Xaw3d installed, else you might want to try the configure option --without-Xaw3d])],
-                              [-lXaw])])
-
-dnl | no Xaw3d, check for Xaw; make it the default
-  if test x"$with_Xaw3d" = x"no" ; then
-     with_Xaw=yes
-     save_cflags="$CFLAGS"
-     save_cppflags="$CPPFLAGS"
-     CFLAGS="$CFLAGS $X_CFLAGS"
-     CPPFLAGS="$CPPFLAGS $X_CFLAGS"
-     AC_CHECK_HEADER([X11/Xaw/Dialog.h],[xaw_headers="yes"], [xaw_headers="no"])
-     CFLAGS="$save_cflags"
-     CPPFLAGS="$save_cppflags"
-
-     if test x"$xaw_headers" = x"no" ; then
-        AC_MSG_ERROR([Xaw headers not found. Please install the Xaw package and headers.])
-     fi
-
-     FRONTEND_LIBS="-lXaw"
-  fi
-
-fi
-
-dnl | make results available in Makefile.am
-AM_CONDITIONAL([withGTK],   [test x"$with_GTK" = x"yes"])
-AM_CONDITIONAL([withXaw],   [test x"$with_Xaw3d" = x"yes" || test x"$with_Xaw" = x"yes"])
-
-dnl | end Front-end check
-
-AC_CANONICAL_HOST
-
-dnl| The following info is mostly gathered from GNU Emacs 19.24.  Basically,
-dnl| we are trying to find out whether this is a System-V derivative in
-dnl| which pipes don't work with select() and if so, whether there is anything
-dnl| strange about the way to open a pty.  Some of the work was done above
-dnl| by looking for _getpty, grantpt, and getpseudotty.  A few other strange
-dnl| properties of particular systems are also handled here.
-
-dnl| 4/6/97 I'm not sure there really are any systems where pipes
-dnl| don't work with select(), and ptys cause problems on many
-dnl| systems, so I'm changing the default to disable ptys in all
-dnl| cases.  I will change it back if I get bug reports that are fixed
-dnl| by doing a "configure --enable-ptys"
-
-USE_PTYS=0
-case "$host" in
-  *-*-hpux* )
-    AC_DEFINE(PTY_TTY_NAME_SPRINTF,
-       [sprintf (pty_name, "/dev/pty/tty%c%x", c, i);])
-    AC_DEFINE(PTY_NAME_SPRINTF,
-       [sprintf (pty_name, "/dev/ptym/pty%c%x", c, i);])
-dnl| USE_PTYS=1
-    if test "$GCC" = yes; then
-      CONF_CFLAGS="-fwritable-strings"
-    else
-
-dnl| Note: You might be able to build xboard even if your compiler does not
-dnl| support ANSI C (-Aa).  xboard itself does not require ANSI C.  I don't
-dnl| know whether the X header files on HP-UX require it.
-
-      CONF_CFLAGS="-Aa -D_HPUX_SOURCE"
-    fi
-
-dnl| HP doesn't supply a full set of X header files and libraries.  People
-dnl| often have some things installed in one place and some in another.
-dnl| AC_PATH_XTRA will find only one place, so we try to add all the
-dnl| likely ones that might be missing here.  It might be better to
-dnl| change AC_PATH_XTRA to try to extract this information from imake,
-dnl| since folks who install the missing bits often configure their
-dnl| imake to find them, but I don't want to delve into autoconf and
-dnl| hack on its internals.
-
-    if test -d /opt/hppd/include/X11; then
-      X_CFLAGS="$X_CFLAGS -I/opt/hppd/include"
-      X_LIBS="$X_LIBS -L/opt/hppd/lib"
-    elif test -d /usr/contrib/X11R5/include; then
-      X_CFLAGS="$X_CFLAGS -I/usr/contrib/X11R5/include"
-      X_LIBS="$X_LIBS -L/usr/contrib/X11R5/lib"
-    elif test -d /usr/contrib/mitX11R5/include; then
-      X_CFLAGS="$X_CFLAGS -I/usr/contrib/mitX11R5/include"
-      X_LIBS="$X_LIBS -L/usr/contrib/mitX11R5/lib"
-    elif test -d /MIT/X11R5/include; then
-      X_CFLAGS="$X_CFLAGS -I/MIT/X11R5/include"
-      X_LIBS="$X_LIBS -L/MIT/X11R5/lib"
-    elif test -d /usr/local/include/X11R5; then
-      X_CFLAGS="$X_CFLAGS -I/usr/local/include/X11R5"
-      X_LIBS="$X_LIBS -L/usr/local/lib/X11R5"
-    fi
-    if test -d /usr/include/X11R5; then
-      X_CFLAGS="$X_CFLAGS -I/usr/include/X11R5"
-      X_LIBS="$X_LIBS -L/usr/lib/X11R5 -L/usr/lib/X11R4"
-    elif test -d /usr/include/X11R4; then
-      X_CFLAGS="$X_CFLAGS -I/usr/include/X11R4"
-      X_LIBS="$X_LIBS -L/usr/lib/X11R4"
-    fi
-  ;;
-
-  romp-ibm-aix* )
-    AC_DEFINE(IBMRTAIX, 1)
-dnl| USE_PTYS=1
-  ;;
-
-  i386-ibm-aix )
-dnl| USE_PTYS=1
-    if test "$GCC" = yes; then
-      CONF_CFLAGS="-fwritable-strings"
-    fi
-  ;;
-
-  *-*-aix3* | *-*-bosx* )
-    AC_DEFINE(PTY_ITERATION, [for (c = 0; !c; c++)])
-    AC_DEFINE(PTY_NAME_SPRINTF, [strcpy (pty_name, "/dev/ptc");])
-    AC_DEFINE(PTY_TTY_NAME_SPRINTF, [strcpy (pty_name, ttyname (fd));])
-dnl| USE_PTYS=1
-  ;;
-
-  *-*-cxux* )
-    AC_DEFINE(FIRST_PTY_LETTER, 'A')
-    AC_DEFINE(LAST_PTY_LETTER, 'P')
-dnl| USE_PTYS=1
-  ;;
-
-  *-*-uniplus* )
-    AC_DEFINE(UNIPLUS, 1)
-dnl| USE_PTYS=1
-  ;;
-
-  *-*-rtu* )
-    AC_DEFINE(FIRST_PTY_LETTER, 'z')
-    AC_DEFINE(PTY_TTY_NAME_SPRINTF,
-        [sprintf (pty_name, "/dev/ttyp%x", i);])
-    AC_DEFINE(PTY_NAME_SPRINTF,
-       [sprintf (pty_name, "/dev/pty%x", i);])
-    AC_DEFINE(RTU, 1)
-dnl| USE_PTYS=1
-  ;;
-
-  *-*-iris* | *-*-irix3* )
-    AC_DEFINE(PTY_ITERATION, [for (c = 0; !c; c++)])
-    AC_DEFINE(PTY_NAME_SPRINTF, [strcpy (pty_name, "/dev/ptc");])
-    AC_DEFINE(PTY_TTY_NAME_SPRINTF,
-       [sprintf (pty_name, "/dev/ttyq%d", minor(stb.st_rdev));])
-dnl| USE_PTYS=1
-  ;;
-
-  *-*-irix* )
-dnl| USE_PTYS=1
-  ;;
-
-  *-*-sunos4* | *-*-solaris1* )
-
-dnl| Work around a bug in the SunOS 4.x linker.  Not needed if you have patches
-dnl|  100512-02 and 100573-03 from Sun.  The X FAQ says that the following is
-dnl|  "overkill," but doesn't explain what should be done instead.
-
-    if test "$GCC" = yes; then
-      PRE_XMULIB="-static"
-      POST_XMULIB="-dynamic"
-    else
-      PRE_XMULIB="-Bstatic"
-      POST_XMULIB="-Bdynamic"
-    fi
-  ;;
-
-  *-*-sunos5* | *-*-solaris2* )
-dnl| USE_PTYS=1
-
-dnl| I'm not sure -lelf is needed, but it was in the old Imakefile.
-dnl| The other libraries should all be found by Ac_PATH_XTRA or other
-dnl| code above.
-
-    X_LIBS="$X_LIBS -lelf"
-  ;;
-
-  *-*-sco* )
-    AC_DEFINE(PTY_ITERATION, [for (i = 0; ; i++)])
-    AC_DEFINE(PTY_NAME_SPRINTF, [sprintf (pty_name, "/dev/ptyp%d", i);])
-    AC_DEFINE(PTY_TTY_NAME_SPRINTF, [sprintf (pty_name, "/dev/ttyp%d", i);])
-dnl| USE_PTYS=1
-  ;;
-
-  *-*-dynix* | *-*-ptx* )
-dnl| USE_PTYS=1
-  ;;
-
-  *-*-esix* )
-dnl| USE_PTYS=1
-  ;;
-
-  *-*-usg5-4* | *-*-sysvr4* )
-dnl| USE_PTYS=1
-  ;;
-
-  *-*-usg* | *-*-sysv* | *-*-aix* )
-dnl| USE_PTYS=1
-  ;;
-
-  vax-*-ultrix )
-    if test "$GCC" = yes; then
-      CONF_CFLAGS="-fwritable-strings"
-    fi
-  ;;
-
-dnl| add some libs for OS X
-  *-apple-* )
-    AC_MSG_WARN([Apple support is experimental, please report any problems to bug-xboard@gnu.org])
-    AC_MSG_WARN([use --enable-osxapp to enable the build target and automatically adjust target directories])
-    AC_MSG_WARN([Building an OSX app currently relies on some programs such as dylib that we don't test for])
-    AC_MSG_WARN([patches welcome ;)])
-    AC_PATH_PROG(SW_VERS, sw_vers)
-    if test "x$SW_VERS" != "x"; then
-      AC_MSG_CHECKING(Mac OS X version)
-      MACOSX_VERSION=`$SW_VERS -productVersion`
-      AC_MSG_RESULT([$MACOSX_VERSION])
-    fi
-    FRONTEND_LIBS="$FRONTEND_LIBS -headerpad_max_install_names "
-    if test x"$enable_OSXAPP" = x"yes" ; then
-        FRONTEND_LIBS="$FRONTEND_LIBS -lgtkmacintegration-gtk2"
-    fi
-    FRONTEND_CFLAGS="$FRONTEND_CFLAGS -I/opt/local/include -L/opt/local/lib"
-  ;;
-esac
-
-
-AC_SUBST(FRONTEND_CFLAGS)
-AC_SUBST(FRONTEND_LIBS)
-AC_SUBST(PRE_XMULIB)
-AC_SUBST(POST_XMULIB)
-AC_SUBST(CONF_CFLAGS)
-AC_SUBST(CONF_LDFLAGS)
-
-AC_MSG_CHECKING(whether ptys or pipes should be used)
-AC_ARG_ENABLE( [ptys],
-              [AS_HELP_STRING([--enable-ptys],[force use of pseudo-ttys with child processes])],
-[if test "$enableval" = yes; then
-  USE_PTYS=1
-  enable_ptys="ptys"
-  AC_MSG_RESULT([ptys (user override)])
-fi
-if test "$enableval" = no; then
-  USE_PTYS=0
-  enable_ptys="pipes"
-  AC_MSG_RESULT([pipes (user override)])
-fi],
-[if test "$USE_PTYS" = 1; then
-  AC_MSG_RESULT(ptys)
-  enable_ptys="ptys"
-else
-  AC_MSG_RESULT(pipes)
-  enable_ptys="pipes"
-fi])
-AC_DEFINE_UNQUOTED(USE_PTYS, $USE_PTYS)
-
-
-dnl | define not to build zippy as a default, so that autoheader is happy
-AC_ARG_ENABLE( [zippy],
-              [AS_HELP_STRING([--enable-zippy],[support interfacing a chess program to ICS (default)])],
-              [],
-              [enable_zippy="no"])
-
-if test x"$enable_zippy" != x"no"; then
-  AC_DEFINE(ZIPPY, 1,[should zippy be enabled])
-else
-  AC_DEFINE(ZIPPY, 0,[should zippy be enabled])
-fi
-AM_CONDITIONAL([ZIPPY], [test x$enable_zippy != xno])
-
-
-AC_ARG_ENABLE(sigint,
-[AS_HELP_STRING([--enable-sigint],[sending SIGINT (^C) wakes up GNU Chess (default)])],
-[if test "$enableval" = yes; then
-  AC_DEFINE(ATTENTION, 1)
-fi
-enable_sigint=$enableval
-],
-[enable_sigint="yes"
-AC_DEFINE(ATTENTION, 1)])
-
-
-if test x"$with_Xaw3d" = x"yes" -o  x"$with_Xaw" = x"yes" ; then
-dnl | save all information for X in X_LIBS, also add the libraries themself
-dnl | since AC_PATH_XTRA only adds the paths
-X_LIBS="$X_PRE_LIBS $X_LIBS $X_EXTRA_LIBS -lXmu -lX11 -lXt "
-AC_SUBST(X_CFLAGS)
-AC_SUBST(X_LIBS)
-fi
-
-dnl create a string with configure options that can be passed to the
-dnl program, good for bug reports and version printout, see output below
-CONFIGURE_OPTIONS="prefix=$prefix; datarootdir=$datarootdir; \
-datadir=$datadir; gamedatadir=$GAMEDATADIR; desktopdir=$DESKTOPDIR; \
-mimedir=$MIMEDIR; iconsdir=$ICONSDIR; svgiconsdir=$SVGICONSDIR; infodir=$infodir; \
-sysconfigdir=$sysconfigdir; update_mimedb=$enable_mimedb; NLS=$USE_NLS; \
-GTK=$with_GTK; Xaw3d=$with_Xaw3d; Xaw=$with_Xaw; \
-ptys=$enable_ptys; zippy=$enable_zippy; sigint=$enable_sigint"
-
-AC_SUBST(CONFIGURE_OPTIONS)
-
-dnl |  output Makefile
-AC_CONFIG_FILES([Makefile cmail po/Makefile.in osxapp/Info.plist])
-AC_CONFIG_COMMANDS([test-stamp-h],[test -z "$CONFIG_HEADERS" || date > stamp-h])
-AC_CONFIG_COMMANDS([chmod-cmail],[chmod 755 cmail])
-AC_OUTPUT
-
-dnl
-dnl Output a summary
-dnl
-echo ""
-echo " Configurations summary:"
-echo ""
-echo "        prefix:          $prefix       "
-echo "        datarootdir:     $datarootdir  "
-echo "        datadir:         $datadir      "
-echo "        gamedatadir:     $GAMEDATADIR  "
-echo "        desktopdir:      $DESKTOPDIR   "
-echo "        mimedir:         $MIMEDIR      "
-echo "        iconsdir:        $ICONSDIR     "
-echo "        svgiconsdir:     $SVGICONSDIR  "
-echo "        infodir:         $infodir   (info files will go here)"
-echo "        sysconfdir:      $sysconfdir   (xboard.conf will go here)"
-echo ""
-echo "        update mimedb:   $enable_mimedb"
-echo ""
-echo "        NLS support:     $USE_NLS"
-echo ""
-echo "        GTK:             $with_GTK"
-echo "        Xaw3d:           $with_Xaw3d"
-echo "        Xaw:             $with_Xaw"
-echo ""
-echo "        ptys:            $enable_ptys"
-echo "        zippy:           $enable_zippy"
-echo "        sigint:          $enable_sigint"
diff --git a/copyright.texi b/copyright.texi
deleted file mode 100644 (file)
index ba85156..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-
-@setfilename copyright.info
-
-Copyright @copyright{} 1991 Digital Equipment Corporation, Maynard, Massachusetts.
-
-All Rights Reserved.
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of Digital not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-Digital disclaims all warranties with regard to this software, including
-all implied warranties of merchantability and fitness.  In no event shall
-Digital be liable for any special, indirect or consequential damages or
-any damages whatsoever resulting from loss of use, data or profits,
-whether in an action of contract, negligence or other tortious action,
-arising out of or in connection with the use or performance of this
-software.
-
-Enhancements copyright @copyright{} 1992-2003, 2004, 2005, 2006, 2007,
-2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free Software Foundation, Inc.
-
-@format
-Published by the Free Software Foundation
-59 Temple Place - Suite 330
-Boston, MA 02111-1307 USA
-@end format
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-are preserved on all copies.
-
-@ignore
-Permission is granted to process this file through Tex and print the
-results, provided the printed document carries copying permission
-notice identical to this one except for the removal of this paragraph
-(this paragraph not being relevant to the printed manual).
-
-@end ignore
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided also that the
-section entitled ``GNU General Public License,''
-is included exactly as in the original, and provided that the entire
-resulting derived work is distributed under the terms of a permission
-notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that the section entitled ``GNU General Public License,''
-and this permission notice, may be included in translations approved by
-the Free Software Foundation instead of in the original English.
diff --git a/dialogs.c b/dialogs.c
deleted file mode 100644 (file)
index 8624ff4..0000000
--- a/dialogs.c
+++ /dev/null
@@ -1,3392 +0,0 @@
-/*
- * dialogs.c -- platform-independent code for dialogs of XBoard
- *
- * Copyright 2000, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free Software Foundation, Inc.
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-// [HGM] this file is the counterpart of woptions.c, containing xboard popup menus
-// similar to those of WinBoard, to set the most common options interactively.
-
-#include "config.h"
-
-#include <stdio.h>
-#include <ctype.h>
-#include <errno.h>
-#include <sys/types.h>
-
-#if STDC_HEADERS
-# include <stdlib.h>
-# include <string.h>
-#else /* not STDC_HEADERS */
-extern char *getenv();
-# if HAVE_STRING_H
-#  include <string.h>
-# else /* not HAVE_STRING_H */
-#  include <strings.h>
-# endif /* not HAVE_STRING_H */
-#endif /* not STDC_HEADERS */
-
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-#include <stdint.h>
-
-#include "common.h"
-#include "frontend.h"
-#include "backend.h"
-#include "xboard2.h"
-#include "menus.h"
-#include "dialogs.h"
-#include "gettext.h"
-
-#ifdef ENABLE_NLS
-# define  _(s) gettext (s)
-# define N_(s) gettext_noop (s)
-#else
-# define  _(s) (s)
-# define N_(s)  s
-#endif
-
-
-int values[MAX_OPTIONS];
-ChessProgramState *currentCps;
-char manDir[MSG_SIZ] = MANDIR;
-
-//----------------------------Generic dialog --------------------------------------------
-
-// cloned from Engine Settings dialog (and later merged with it)
-
-char *marked[NrOfDialogs];
-Boolean shellUp[NrOfDialogs];
-
-void
-MarkMenu (char *item, int dlgNr)
-{
-    MarkMenuItem(marked[dlgNr] = item, True);
-}
-
-void
-AddLine (Option *opt, char *s)
-{
-    AppendText(opt, s);
-    AppendText(opt, "\n");
-}
-
-//---------------------------------------------- Update dialog controls ------------------------------------
-
-int
-SetCurrentComboSelection (Option *opt)
-{
-    int j;
-    if(currentCps) ; else
-    if(!opt->textValue) opt->value = *(int*)opt->target; /* numeric */else {
-       for(j=0; opt->choice[j]; j++) // look up actual value in list of possible values, to get selection nr
-           if(*(char**)opt->target && !strcmp(*(char**)opt->target, ((char**)opt->textValue)[j])) break;
-       opt->value = j + (opt->choice[j] == NULL);
-    }
-    SetComboChoice(opt, opt->value);
-    return opt->value;
-}
-
-void
-GenericUpdate (Option *opts, int selected)
-{
-    int i;
-    char buf[MSG_SIZ];
-
-    for(i=0; ; i++)
-      {
-       if(selected >= 0) { if(i < selected) continue; else if(i > selected) break; }
-       switch(opts[i].type)
-         {
-         case TextBox:
-         case FileName:
-         case PathName:
-           SetWidgetText(&opts[i],  *(char**) opts[i].target, -1);
-           break;
-         case Spin:
-           sprintf(buf, "%d", *(int*) opts[i].target);
-           SetWidgetText(&opts[i], buf, -1);
-           break;
-         case Fractional:
-           sprintf(buf, "%4.2f", *(float*) opts[i].target);
-           SetWidgetText(&opts[i], buf, -1);
-           break;
-         case CheckBox:
-           SetWidgetState(&opts[i],  *(Boolean*) opts[i].target);
-           break;
-         case ComboBox:
-           if(opts[i].min & COMBO_CALLBACK) break;
-           SetCurrentComboSelection(opts+i);
-           // TODO: actually display this (but it is never used that way...)
-           break;
-         case EndMark:
-           return;
-         default:
-           printf("GenericUpdate: unexpected case in switch.\n");
-         case ListBox:
-         case Button:
-         case SaveButton:
-         case Label:
-         case Break:
-           break;
-         }
-      }
-}
-
-//------------------------------------------- Read out dialog controls ------------------------------------
-
-int
-GenericReadout (Option *opts, int selected)
-{
-    int i, j, res=1;
-    char *val;
-    char buf[MSG_SIZ], **dest;
-    float x;
-       for(i=0; ; i++) { // send all options that had to be OK-ed to engine
-           if(selected >= 0) { if(i < selected) continue; else if(i > selected) break; }
-           switch(opts[i].type) {
-               case TextBox:
-               case FileName:
-               case PathName:
-                   GetWidgetText(&opts[i], &val);
-                   dest = currentCps ? &(opts[i].textValue) : (char**) opts[i].target;
-                   if(*dest == NULL || strcmp(*dest, val)) {
-                       if(currentCps) {
-                           snprintf(buf, MSG_SIZ,  "option %s=%s\n", opts[i].name, val);
-                           SendToProgram(buf, currentCps);
-                       } else {
-                           if(*dest) free(*dest);
-                           *dest = malloc(strlen(val)+1);
-                       }
-                       safeStrCpy(*dest, val, MSG_SIZ - (*dest - opts[i].name)); // copy text there
-                   }
-                   break;
-               case Spin:
-               case Fractional:
-                   GetWidgetText(&opts[i], &val);
-                   x = 0.0; // Initialise because sscanf() will fail if non-numeric text is entered
-                   sscanf(val, "%f", &x);
-                   if(x > opts[i].max) x = opts[i].max;
-                   if(x < opts[i].min) x = opts[i].min;
-                   if(opts[i].type == Fractional)
-                       *(float*) opts[i].target = x; // engines never have float options!
-                   else {
-                       if(currentCps) {
-                         if(opts[i].value != x) { // only to engine if changed
-                           snprintf(buf, MSG_SIZ,  "option %s=%.0f\n", opts[i].name, x);
-                           SendToProgram(buf, currentCps);
-                         }
-                       } else *(int*) opts[i].target = x;
-                       opts[i].value = x;
-                   }
-                   break;
-               case CheckBox:
-                   j = 0;
-                   GetWidgetState(&opts[i], &j);
-                   if(opts[i].value != j) {
-                       opts[i].value = j;
-                       if(currentCps) {
-                           snprintf(buf, MSG_SIZ,  "option %s=%d\n", opts[i].name, j);
-                           SendToProgram(buf, currentCps);
-                       } else *(Boolean*) opts[i].target = j;
-                   }
-                   break;
-               case ComboBox:
-                   if(opts[i].min & COMBO_CALLBACK) break;
-                   if(!opts[i].textValue) { *(int*)opts[i].target = values[i]; break; } // numeric
-                   val = ((char**)opts[i].textValue)[values[i]];
-                   if(currentCps) {
-                       if(opts[i].value == values[i]) break; // not changed
-                       opts[i].value = values[i];
-                       snprintf(buf, MSG_SIZ,  "option %s=%s\n", opts[i].name, opts[i].choice[values[i]]);
-                       SendToProgram(buf, currentCps);
-                   } else if(val && (*(char**) opts[i].target == NULL || strcmp(*(char**) opts[i].target, val))) {
-                     if(*(char**) opts[i].target) free(*(char**) opts[i].target);
-                     *(char**) opts[i].target = strdup(val);
-                   }
-                   break;
-               case EndMark:
-                   if(opts[i].target && selected != -2) // callback for implementing necessary actions on OK (like redraw)
-                       res = ((OKCallback*) opts[i].target)(i);
-                   break;
-           default:
-               printf("GenericReadout: unexpected case in switch.\n");
-               case ListBox:
-               case Button:
-               case SaveButton:
-               case Label:
-               case Break:
-               case Skip:
-             break;
-           }
-           if(opts[i].type == EndMark) break;
-       }
-       return res;
-}
-
-//------------------------------------------- Match Options ------------------------------------------------------
-
-char *engineName, *engineChoice, *tfName;
-char *engineList[MAXENGINES] = {" "}, *engineMnemonic[MAXENGINES];
-
-static void AddToTourney P((int n, int sel));
-static void CloneTourney P((void));
-static void ReplaceParticipant P((void));
-static void UpgradeParticipant P((void));
-static void PseudoOK P((void));
-
-static int
-MatchOK (int n)
-{
-    ASSIGN(appData.participants, engineName);
-    if(!CreateTourney(tfName) || matchMode) return matchMode || !appData.participants[0];
-    PopDown(MasterDlg); // early popdown to prevent FreezeUI called through MatchEvent from causing XtGrab warning
-    MatchEvent(2); // start tourney
-    return FALSE;  // no double PopDown!
-}
-
-static void
-DoTimeControl(int n)
-{
-  TimeControlProc();
-}
-
-static void
-DoCommonEngine(int n)
-{
-  UciMenuProc();
-}
-
-static void
-DoGeneral(int n)
-{
-  OptionsProc();
-}
-
-#define PARTICIPANTS 6 /* This MUST be the number of the Option for &engineName!*/
-
-static Option matchOptions[] = {
-{ 0,  0,          0, NULL, (void*) &tfName, ".trn", NULL, FileName, N_("Tournament file:          ") },
-{ 0,  0,          0, NULL, NULL, NULL, NULL, Label, N_("For concurrent playing of tourney with multiple XBoards:") },
-{ 0,  0,          0, NULL, (void*) &appData.roundSync, "", NULL, CheckBox, N_("Sync after round") },
-{ 0,  0,          0, NULL, (void*) &appData.cycleSync, "", NULL, CheckBox, N_("Sync after cycle") },
-{ 0,  LR,       175, NULL, NULL, NULL, NULL, Label, N_("Tourney participants:") },
-{ 0, SAME_ROW|RR, 175, NULL, NULL, NULL, NULL, Label, N_("Select Engine:") },
-{ 200, T_VSCRL | T_FILL | T_WRAP,
-                175, NULL, (void*) &engineName, NULL, NULL, TextBox, "" },
-{ 200, SAME_ROW|RR,
-                175, NULL, (void*) engineMnemonic, (char*) &AddToTourney, NULL, ListBox, "" },
-{ 0, SAME_ROW, 0, NULL, NULL, NULL, NULL, Break, "" }, // to decouple alignment above and below boxes
-//{ 0,  COMBO_CALLBACK | NO_GETTEXT,
-//               0, NULL, (void*) &AddToTourney, (char*) (engineMnemonic+1), (engineMnemonic+1), ComboBox, N_("Select Engine:") },
-{ 0,  0,         10, NULL, (void*) &appData.tourneyType, "", NULL, Spin, N_("Tourney type (0 = round-robin, 1 = gauntlet):") },
-{ 0,  1, 1000000000, NULL, (void*) &appData.tourneyCycles, "", NULL, Spin, N_("Number of tourney cycles (or Swiss rounds):") },
-{ 0,  1, 1000000000, NULL, (void*) &appData.defaultMatchGames, "", NULL, Spin, N_("Default Number of Games in Match (or Pairing):") },
-{ 0,  0, 1000000000, NULL, (void*) &appData.matchPause, "", NULL, Spin, N_("Pause between Match Games (msec):") },
-{ 0,  0,          0, NULL, (void*) &appData.saveGameFile, ".pgn .game", NULL, FileName, N_("Save Tourney Games on:") },
-{ 0,  0,          0, NULL, (void*) &appData.loadGameFile, ".pgn .game", NULL, FileName, N_("Game File with Opening Lines:") },
-{ 0, -2, 1000000000, NULL, (void*) &appData.loadGameIndex, "", NULL, Spin, N_("Game Number (-1 or -2 = Auto-Increment):") },
-{ 0,  0,          0, NULL, (void*) &appData.loadPositionFile, ".fen .epd .pos", NULL, FileName, N_("File with Start Positions:") },
-{ 0, -2, 1000000000, NULL, (void*) &appData.loadPositionIndex, "", NULL, Spin, N_("Position Number (-1 or -2 = Auto-Increment):") },
-{ 0,  0, 1000000000, NULL, (void*) &appData.rewindIndex, "", NULL, Spin, N_("Rewind Index after this many Games (0 = never):") },
-{ 0,  0,          0, NULL, (void*) &appData.defNoBook, "", NULL, CheckBox, N_("Disable own engine books by default") },
-{ 0,  0,          0, NULL, (void*) &DoTimeControl, NULL, NULL, Button, N_("Time Control") },
-{ 0, SAME_ROW,    0, NULL, (void*) &DoCommonEngine, NULL, NULL, Button, N_("Common Engine") },
-{ 0, SAME_ROW,    0, NULL, (void*) &DoGeneral, NULL, NULL, Button, N_("General Options") },
-{ 0, SAME_ROW,    0, NULL, (void*) &PseudoOK, NULL, NULL, Button, N_("Continue Later") },
-{ 0,  0,          0, NULL, (void*) &ReplaceParticipant, NULL, NULL, Button, N_("Replace Engine") },
-{ 0, SAME_ROW,    0, NULL, (void*) &UpgradeParticipant, NULL, NULL, Button, N_("Upgrade Engine") },
-{ 0, SAME_ROW,    0, NULL, (void*) &CloneTourney, NULL, NULL, Button, N_("Clone Tourney") },
-{ 0, SAME_ROW,    0, NULL, (void*) &MatchOK, "", NULL, EndMark , "" }
-};
-
-static void
-ReplaceParticipant ()
-{
-    GenericReadout(matchOptions, PARTICIPANTS);
-    Substitute(strdup(engineName), True);
-}
-
-static void
-UpgradeParticipant ()
-{
-    GenericReadout(matchOptions, PARTICIPANTS);
-    Substitute(strdup(engineName), False);
-}
-
-static void
-PseudoOK ()
-{
-    if(matchMode) return;
-    GenericReadout(matchOptions, -2); // read all, but suppress calling of MatchOK
-    ASSIGN(appData.participants, engineName);
-    ASSIGN(appData.tourneyFile, tfName);
-    PopDown(MasterDlg); // early popdown to prevent FreezeUI called through MatchEvent from causing XtGrab warning
-}
-
-static void
-CloneTourney ()
-{
-    FILE *f;
-    char *name;
-    GetWidgetText(matchOptions, &name);
-    if(name && name[0] && (f = fopen(name, "r")) ) {
-       char *saveSaveFile;
-       saveSaveFile = appData.saveGameFile; appData.saveGameFile = NULL; // this is a persistent option, protect from change
-       ParseArgsFromFile(f);
-       engineName = appData.participants; GenericUpdate(matchOptions, -1);
-       FREE(appData.saveGameFile); appData.saveGameFile = saveSaveFile;
-    } else DisplayError(_("First you must specify an existing tourney file to clone"), 0);
-}
-
-static void
-AddToTourney (int n, int sel)
-{
-    int nr;
-    char buf[MSG_SIZ];
-    if(sel < 1) buf[0] = NULLCHAR; // back to top level
-    else if(engineList[sel][0] == '#') safeStrCpy(buf, engineList[sel], MSG_SIZ); // group header, open group
-    else { // normal line, select engine
-       AddLine(&matchOptions[PARTICIPANTS], engineMnemonic[sel]);
-       return;
-    }
-    nr = NamesToList(firstChessProgramNames, engineList, engineMnemonic, buf); // replace list by only the group contents
-    ASSIGN(engineMnemonic[0], buf);
-    LoadListBox(&matchOptions[PARTICIPANTS+1], _("# no engines are installed"), -1, -1);
-    HighlightWithScroll(&matchOptions[PARTICIPANTS+1], 0, nr);
-}
-
-void
-MatchOptionsProc ()
-{
-   if(matchOptions[PARTICIPANTS+1].type != ListBox) {
-       DisplayError(_("Internal error: PARTICIPANTS set wrong"), 0);
-       return;
-   }
-   NamesToList(firstChessProgramNames, engineList, engineMnemonic, "");
-   matchOptions[9].min = -(appData.pairingEngine[0] != NULLCHAR); // with pairing engine, allow Swiss
-   ASSIGN(tfName, appData.tourneyFile[0] ? appData.tourneyFile : MakeName(appData.defName));
-   ASSIGN(engineName, appData.participants);
-   ASSIGN(engineMnemonic[0], "");
-   GenericPopUp(matchOptions, _("Tournament Options"), MasterDlg, BoardWindow, MODAL, 0);
-}
-
-// ------------------------------------------- General Options --------------------------------------------------
-
-static int oldShow, oldBlind, oldPonder;
-
-static int
-GeneralOptionsOK (int n)
-{
-       int newPonder = appData.ponderNextMove;
-       appData.ponderNextMove = oldPonder;
-       PonderNextMoveEvent(newPonder);
-       if(!appData.highlightLastMove) ClearHighlights(), ClearPremoveHighlights();
-       if(oldShow != appData.showCoords || oldBlind != appData.blindfold) DrawPosition(TRUE, NULL);
-       return 1;
-}
-
-static Option generalOptions[] = {
-{ 0,  0, 0, NULL, (void*) &appData.whitePOV, "", NULL, CheckBox, N_("Absolute Analysis Scores") },
-{ 0,  0, 0, NULL, (void*) &appData.sweepSelect, "", NULL, CheckBox, N_("Almost Always Queen (Detour Under-Promote)") },
-{ 0,  0, 0, NULL, (void*) &appData.animateDragging, "", NULL, CheckBox, N_("Animate Dragging") },
-{ 0,  0, 0, NULL, (void*) &appData.animate, "", NULL, CheckBox, N_("Animate Moving") },
-{ 0,  0, 0, NULL, (void*) &appData.autoCallFlag, "", NULL, CheckBox, N_("Auto Flag") },
-{ 0,  0, 0, NULL, (void*) &appData.autoFlipView, "", NULL, CheckBox, N_("Auto Flip View") },
-{ 0,  0, 0, NULL, (void*) &appData.blindfold, "", NULL, CheckBox, N_("Blindfold") },
-/* TRANSLATORS: the drop menu is used to drop a piece, e.g. during bughouse or editing a position */
-{ 0,  0, 0, NULL, (void*) &appData.dropMenu, "", NULL, CheckBox, N_("Drop Menu") },
-{ 0,  0, 0, NULL, (void*) &appData.variations, "", NULL, CheckBox, N_("Enable Variation Trees") },
-{ 0,  0, 0, NULL, (void*) &appData.headers, "", NULL, CheckBox, N_("Headers in Engine Output Window") },
-{ 0,  0, 0, NULL, (void*) &appData.hideThinkingFromHuman, "", NULL, CheckBox, N_("Hide Thinking from Human") },
-{ 0,  0, 0, NULL, (void*) &appData.highlightLastMove, "", NULL, CheckBox, N_("Highlight Last Move") },
-{ 0,  0, 0, NULL, (void*) &appData.highlightMoveWithArrow, "", NULL, CheckBox, N_("Highlight with Arrow") },
-{ 0,  0, 0, NULL, (void*) &appData.oneClick, "", NULL, CheckBox, N_("One-Click Moving") },
-{ 0,  0, 0, NULL, (void*) &appData.periodicUpdates, "", NULL, CheckBox, N_("Periodic Updates (in Analysis Mode)") },
-{ 0, SAME_ROW, 0, NULL, NULL, NULL, NULL, Break, "" },
-{ 0,  0, 0, NULL, (void*) &appData.autoExtend, "", NULL, CheckBox, N_("Play Move(s) of Clicked PV (Analysis)") },
-{ 0,  0, 0, NULL, (void*) &appData.ponderNextMove, "", NULL, CheckBox, N_("Ponder Next Move") },
-{ 0,  0, 0, NULL, (void*) &appData.popupExitMessage, "", NULL, CheckBox, N_("Popup Exit Messages") },
-{ 0,  0, 0, NULL, (void*) &appData.popupMoveErrors, "", NULL, CheckBox, N_("Popup Move Errors") },
-{ 0,  0, 0, NULL, (void*) &appData.showEvalInMoveHistory, "", NULL, CheckBox, N_("Scores in Move List") },
-{ 0,  0, 0, NULL, (void*) &appData.showCoords, "", NULL, CheckBox, N_("Show Coordinates") },
-{ 0,  0, 0, NULL, (void*) &appData.markers, "", NULL, CheckBox, N_("Show Target Squares") },
-{ 0,  0, 0, NULL, (void*) &appData.useStickyWindows, "", NULL, CheckBox, N_("Sticky Windows") },
-{ 0,  0, 0, NULL, (void*) &appData.testLegality, "", NULL, CheckBox, N_("Test Legality") },
-{ 0,  0, 0, NULL, (void*) &appData.topLevel, "", NULL, CheckBox, N_("Top-Level Dialogs") },
-{ 0, 0,10,  NULL, (void*) &appData.flashCount, "", NULL, Spin, N_("Flash Moves (0 = no flashing):") },
-{ 0, 1,10,  NULL, (void*) &appData.flashRate, "", NULL, Spin, N_("Flash Rate (high = fast):") },
-{ 0, 5,100, NULL, (void*) &appData.animSpeed, "", NULL, Spin, N_("Animation Speed (high = slow):") },
-{ 0, 1,5,   NULL, (void*) &appData.zoom, "", NULL, Spin, N_("Zoom factor in Evaluation Graph:") },
-{ 0,  0, 0, NULL, (void*) &GeneralOptionsOK, "", NULL, EndMark , "" }
-};
-
-void
-OptionsProc ()
-{
-   oldPonder = appData.ponderNextMove;
-   oldShow = appData.showCoords; oldBlind = appData.blindfold;
-   GenericPopUp(generalOptions, _("General Options"), TransientDlg, BoardWindow, MODAL, 0);
-}
-
-//---------------------------------------------- New Variant ------------------------------------------------
-
-static void Pick P((int n));
-
-static char warning[MSG_SIZ];
-static int ranksTmp, filesTmp, sizeTmp;
-
-static Option variantDescriptors[] = {
-{ VariantNormal,        0, 135, NULL, (void*) &Pick, "#FFFFFF", NULL, Button, N_("Normal")},
-{ VariantMakruk, SAME_ROW, 135, NULL, (void*) &Pick, "#FFFFFF", NULL, Button, N_("Makruk")},
-{ VariantFischeRandom,  0, 135, NULL, (void*) &Pick, "#FFFFFF", NULL, Button, N_("FRC")},
-{ VariantShatranj,SAME_ROW,135, NULL, (void*) &Pick, "#FFFFFF", NULL, Button, N_("Shatranj")},
-{ VariantWildCastle,    0, 135, NULL, (void*) &Pick, "#FFFFFF", NULL, Button, N_("Wild castle")},
-{ VariantKnightmate,SAME_ROW,135,NULL,(void*) &Pick, "#FFFFFF", NULL, Button, N_("Knightmate")},
-{ VariantNoCastle,      0, 135, NULL, (void*) &Pick, "#FFFFFF", NULL, Button, N_("No castle")},
-{ VariantCylinder,SAME_ROW,135, NULL, (void*) &Pick, "#FFFFFF", NULL, Button, N_("Cylinder *")},
-{ Variant3Check,        0, 135, NULL, (void*) &Pick, "#FFFFFF", NULL, Button, N_("3-checks")},
-{ VariantBerolina,SAME_ROW,135, NULL, (void*) &Pick, "#FFFFFF", NULL, Button, N_("berolina *")},
-{ VariantAtomic,        0, 135, NULL, (void*) &Pick, "#FFFFFF", NULL, Button, N_("atomic")},
-{ VariantTwoKings,SAME_ROW,135, NULL, (void*) &Pick, "#FFFFFF", NULL, Button, N_("two kings")},
-{ -1,                   0, 135, NULL, (void*) &Pick, "#FFFFFF", NULL, Button, N_(" ")}, // dummy, to have good alignment
-{ VariantSpartan,SAME_ROW, 135, NULL, (void*) &Pick, "#FF0000", NULL, Button, N_("Spartan")},
-{ 0, 0, 0, NULL, NULL, NULL, NULL, Label, N_("Board size ( -1 = default for selected variant):")},
-{ 0, -1, BOARD_RANKS-1, NULL, (void*) &ranksTmp, "", NULL, Spin, N_("Number of Board Ranks:") },
-{ 0, -1, BOARD_FILES,   NULL, (void*) &filesTmp, "", NULL, Spin, N_("Number of Board Files:") },
-{ 0, -1, BOARD_RANKS-1, NULL, (void*) &sizeTmp,  "", NULL, Spin, N_("Holdings Size:") },
-{ 0, 0, 275, NULL, NULL, NULL, NULL, Label, warning },
-{ 0, 0, 275, NULL, NULL, NULL, NULL, Label, N_("Variants marked with * can only be played\nwith legality testing off.")},
-{ 0, SAME_ROW, 0, NULL, NULL, NULL, NULL, Break, ""},
-{ VariantASEAN,         0, 135, NULL, (void*) &Pick, "#FFFFFF", NULL, Button, N_("ASEAN")},
-{ VariantGreat,  SAME_ROW, 135, NULL, (void*) &Pick, "#BFBFFF", NULL, Button, N_("Great Shatranj (10x8)")},
-{ VariantSChess,        0, 135, NULL, (void*) &Pick, "#FFBFBF", NULL, Button, N_("Seirawan")},
-{ VariantFalcon, SAME_ROW, 135, NULL, (void*) &Pick, "#BFBFFF", NULL, Button, N_("Falcon (10x8)")},
-{ VariantSuper,         0, 135, NULL, (void*) &Pick, "#FFBFBF", NULL, Button, N_("Superchess")},
-{ VariantCapablanca,SAME_ROW,135,NULL,(void*) &Pick, "#BFBFFF", NULL, Button, N_("Capablanca (10x8)")},
-{ VariantCrazyhouse,    0, 135, NULL, (void*) &Pick, "#FFBFBF", NULL, Button, N_("Crazyhouse")},
-{ VariantGothic, SAME_ROW, 135, NULL, (void*) &Pick, "#BFBFFF", NULL, Button, N_("Gothic (10x8)")},
-{ VariantBughouse,      0, 135, NULL, (void*) &Pick, "#FFBFBF", NULL, Button, N_("Bughouse")},
-{ VariantJanus,  SAME_ROW, 135, NULL, (void*) &Pick, "#BFBFFF", NULL, Button, N_("Janus (10x8)")},
-{ VariantSuicide,       0, 135, NULL, (void*) &Pick, "#FFFFBF", NULL, Button, N_("Suicide")},
-{ VariantCapaRandom,SAME_ROW,135,NULL,(void*) &Pick, "#BFBFFF", NULL, Button, N_("CRC (10x8)")},
-{ VariantGiveaway,      0, 135, NULL, (void*) &Pick, "#FFFFBF", NULL, Button, N_("give-away")},
-{ VariantGrand,  SAME_ROW, 135, NULL, (void*) &Pick, "#5070FF", NULL, Button, N_("grand (10x10)")},
-{ VariantLosers,        0, 135, NULL, (void*) &Pick, "#FFFFBF", NULL, Button, N_("losers")},
-{ VariantShogi,  SAME_ROW, 135, NULL, (void*) &Pick, "#BFFFFF", NULL, Button, N_("shogi (9x9)")},
-{ VariantFairy,         0, 135, NULL, (void*) &Pick, "#BFBFBF", NULL, Button, N_("fairy")},
-{ VariantXiangqi, SAME_ROW,135, NULL, (void*) &Pick, "#BFFFFF", NULL, Button, N_("xiangqi (9x10)")},
-{ VariantLion,          0, 135, NULL, (void*) &Pick, "#BFBFBF", NULL, Button, N_("mighty lion")},
-{ VariantCourier, SAME_ROW,135, NULL, (void*) &Pick, "#BFFFBF", NULL, Button, N_("courier (12x8)")},
-{ VariantChuChess,      0, 135, NULL, (void*) &Pick, "#BFBFBF", NULL, Button, N_("elven chess (10x10)")},
-{ VariantChu,    SAME_ROW, 135, NULL, (void*) &Pick, "#BFFFBF", NULL, Button, N_("chu shogi (12x12)")},
-//{ -1,                   0, 135, NULL, (void*) &Pick, "#FFFFFF", NULL, Button, N_(" ")}, // dummy, to have good alignment
-// optional buttons for engine-defined variants
-{ 0, NO_OK, 0, NULL, NULL, "", NULL, EndMark , "" },
-{ 0, SAME_ROW, 0, NULL, NULL, NULL, NULL, Skip, ""},
-{ VariantUnknown,       0, 135, NULL, (void*) &Pick, "#FFFFFF", NULL, Skip, NULL },
-{ VariantUnknown, SAME_ROW,135, NULL, (void*) &Pick, "#FFFFFF", NULL, Skip, NULL },
-{ VariantUnknown,       0, 135, NULL, (void*) &Pick, "#FFFFFF", NULL, Skip, NULL },
-{ VariantUnknown, SAME_ROW,135, NULL, (void*) &Pick, "#FFFFFF", NULL, Skip, NULL },
-{ VariantUnknown,       0, 135, NULL, (void*) &Pick, "#FFFFFF", NULL, Skip, NULL },
-{ VariantUnknown, SAME_ROW,135, NULL, (void*) &Pick, "#FFFFFF", NULL, Skip, NULL },
-{ VariantUnknown,       0, 135, NULL, (void*) &Pick, "#FFFFFF", NULL, Skip, NULL },
-{ VariantUnknown, SAME_ROW,135, NULL, (void*) &Pick, "#FFFFFF", NULL, Skip, NULL },
-{ VariantUnknown,       0, 135, NULL, (void*) &Pick, "#FFFFFF", NULL, Skip, NULL },
-{ VariantUnknown, SAME_ROW,135, NULL, (void*) &Pick, "#FFFFFF", NULL, Skip, NULL },
-{ VariantUnknown,       0, 135, NULL, (void*) &Pick, "#FFFFFF", NULL, Skip, NULL },
-{ VariantUnknown, SAME_ROW,135, NULL, (void*) &Pick, "#FFFFFF", NULL, Skip, NULL },
-{ VariantUnknown,       0, 135, NULL, (void*) &Pick, "#FFFFFF", NULL, Skip, NULL },
-{ VariantUnknown, SAME_ROW,135, NULL, (void*) &Pick, "#FFFFFF", NULL, Skip, NULL },
-{ VariantUnknown,       0, 135, NULL, (void*) &Pick, "#FFFFFF", NULL, Skip, NULL },
-{ VariantUnknown, SAME_ROW,135, NULL, (void*) &Pick, "#FFFFFF", NULL, Skip, NULL },
-{ VariantUnknown,       0, 135, NULL, (void*) &Pick, "#FFFFFF", NULL, Skip, NULL },
-{ VariantUnknown, SAME_ROW,135, NULL, (void*) &Pick, "#FFFFFF", NULL, Skip, NULL },
-{ VariantUnknown,       0, 135, NULL, (void*) &Pick, "#FFFFFF", NULL, Skip, NULL },
-{ VariantUnknown, SAME_ROW,135, NULL, (void*) &Pick, "#FFFFFF", NULL, Skip, NULL },
-{ VariantUnknown,       0, 135, NULL, (void*) &Pick, "#FFFFFF", NULL, Skip, NULL },
-{ VariantUnknown, SAME_ROW,135, NULL, (void*) &Pick, "#FFFFFF", NULL, Skip, NULL },
-{ 0, NO_OK, 0, NULL, NULL, "", NULL, EndMark , "" }
-};
-
-static void
-Pick (int n)
-{
-       VariantClass v = variantDescriptors[n].value;
-       if(v == VariantUnknown) safeStrCpy(engineVariant, variantDescriptors[n].name, MSG_SIZ); else *engineVariant = NULLCHAR;
-       GenericReadout(variantDescriptors, -1); // read new ranks and file settings
-       if(!appData.noChessProgram) {
-           char buf[MSG_SIZ];
-           if (!SupportedVariant(first.variants, v, filesTmp, ranksTmp, sizeTmp, first.protocolVersion, first.tidy)) {
-               DisplayError(variantError, 0);
-               return; /* ignore OK if first engine does not support it */
-           } else
-           if (second.initDone &&
-               !SupportedVariant(second.variants, v, filesTmp, ranksTmp, sizeTmp, second.protocolVersion, second.tidy)) {
-                snprintf(buf, MSG_SIZ,  _("Warning: second engine (%s) does not support this!"), second.tidy);
-               DisplayError(buf, 0);   /* use of second engine is optional; only warn user */
-           }
-       }
-
-       gameInfo.variant = v;
-       ASSIGN(appData.variant, VariantName(v));
-
-       shuffleOpenings = FALSE; /* [HGM] shuffle: possible shuffle reset when we switch */
-       startedFromPositionFile = FALSE; /* [HGM] loadPos: no longer valid in new variant */
-       appData.fischerCastling = FALSE; /* [HGM] fischer: no longer valid in new variant */
-       appData.NrRanks = ranksTmp;
-       appData.NrFiles = filesTmp;
-       appData.holdingsSize = sizeTmp;
-       appData.pieceToCharTable = NULL;
-       ASSIGN(appData.pieceNickNames, "");
-       ASSIGN(appData.colorNickNames, "");
-       ASSIGN(appData.men, "");
-        PopDown(TransientDlg);
-       Reset(True, True);
-        return;
-}
-
-void
-NewVariantProc ()
-{
-   static int start;
-   int i, last;
-   ranksTmp = filesTmp = sizeTmp = -1; // prefer defaults over actual settings
-   if(appData.noChessProgram) sprintf(warning, _("Only bughouse is not available in viewer mode.")); else
-   sprintf(warning, _("All variants not supported by the first engine\n(currently %s) are disabled."), first.tidy);
-   if(!start) {
-       while(variantDescriptors[start].type != EndMark) start++; // locate spares
-       start += 2; // conditional EndMark and Break
-   }
-   last = -1;
-   for(i=0; variantDescriptors[start+i].type != EndMark; i++) { // create buttons for engine-defined variants
-     char *v = EngineDefinedVariant(&first, i);
-     if(v) {
-       last =  i;
-       ASSIGN(variantDescriptors[start+i].name, v);
-       variantDescriptors[start+i].type = Button;
-     } else variantDescriptors[start+i].type = Skip;
-   }
-   if(!(last&1)) { // odd number, add filler
-       ASSIGN(variantDescriptors[start+last+1].name, " ");
-       variantDescriptors[start+last+1].type = Button;
-       variantDescriptors[start+last+1].value = Skip;
-   }
-   variantDescriptors[start-2].type = (last < 0 ? EndMark : Skip);
-   variantDescriptors[start-1].type = (last < 6 ? Skip : Break);
-   safeStrCpy(engineVariant+100, engineVariant, 100); *engineVariant = NULLCHAR; // yeghh...
-   GenericPopUp(variantDescriptors, _("New Variant"), TransientDlg, BoardWindow, MODAL, 0);
-   safeStrCpy(engineVariant, engineVariant+100, MSG_SIZ); // must temporarily clear to avoid enabling all variant buttons
-}
-
-//------------------------------------------- Common Engine Options -------------------------------------
-
-static int oldCores;
-static char *egtPath;
-
-static int
-CommonOptionsOK (int n)
-{
-       int newPonder = appData.ponderNextMove;
-       if(*egtPath != '/' && strchr(egtPath, ':')) {
-           ASSIGN(appData.egtFormats, egtPath);
-       } else {
-           ASSIGN(appData.defaultPathEGTB, egtPath);
-       }
-       // make sure changes are sent to first engine by re-initializing it
-       // if it was already started pre-emptively at end of previous game
-       if(gameMode == BeginningOfGame) Reset(True, True); else {
-           // Some changed setting need immediate sending always.
-           if(oldCores != appData.smpCores)
-               NewSettingEvent(False, &(first.maxCores), "cores", appData.smpCores);
-           appData.ponderNextMove = oldPonder;
-           PonderNextMoveEvent(newPonder);
-       }
-       return 1;
-}
-
-static Option commonEngineOptions[] = {
-{ 0,  0,    0, NULL, (void*) &appData.ponderNextMove, "", NULL, CheckBox, N_("Ponder Next Move") },
-{ 0,  0, 1000, NULL, (void*) &appData.smpCores, "", NULL, Spin, N_("Maximum Number of CPUs per Engine:") },
-{ 0,  0,    0, NULL, (void*) &appData.polyglotDir, NULL, NULL, PathName, N_("Polygot Directory:") },
-{ 0,  0,16000, NULL, (void*) &appData.defaultHashSize, "", NULL, Spin, N_("Hash-Table Size (MB):") },
-{ 0,  0,    0, NULL, (void*) &egtPath, NULL, NULL, PathName, N_("EGTB Path:") },
-{ 0,  0, 1000, NULL, (void*) &appData.defaultCacheSizeEGTB, "", NULL, Spin, N_("EGTB Cache Size (MB):") },
-{ 0,  0,    0, NULL, (void*) &appData.usePolyglotBook, "", NULL, CheckBox, N_("Use GUI Book") },
-{ 0,  0,    0, NULL, (void*) &appData.polyglotBook, ".bin", NULL, FileName, N_("Opening-Book Filename:") },
-{ 0,  0,  100, NULL, (void*) &appData.bookDepth, "", NULL, Spin, N_("Book Depth (moves):") },
-{ 0,  0,  100, NULL, (void*) &appData.bookStrength, "", NULL, Spin, N_("Book Variety (0) vs. Strength (100):") },
-{ 0,  0,    0, NULL, (void*) &appData.firstHasOwnBookUCI, "", NULL, CheckBox, N_("Engine #1 Has Own Book") },
-{ 0,  0,    0, NULL, (void*) &appData.secondHasOwnBookUCI, "", NULL, CheckBox, N_("Engine #2 Has Own Book          ") },
-{ 0,SAME_ROW,0,NULL, (void*) &CommonOptionsOK, "", NULL, EndMark , "" }
-};
-
-void
-UciMenuProc ()
-{
-   oldCores = appData.smpCores;
-   oldPonder = appData.ponderNextMove;
-   if(appData.egtFormats && *appData.egtFormats) { ASSIGN(egtPath, appData.egtFormats); }
-   else { ASSIGN(egtPath, appData.defaultPathEGTB); }
-   GenericPopUp(commonEngineOptions, _("Common Engine Settings"), TransientDlg, BoardWindow, MODAL, 0);
-}
-
-//------------------------------------------ Adjudication Options --------------------------------------
-
-static Option adjudicationOptions[] = {
-{ 0, 0,    0, NULL, (void*) &appData.checkMates, "", NULL, CheckBox, N_("Detect all Mates") },
-{ 0, 0,    0, NULL, (void*) &appData.testClaims, "", NULL, CheckBox, N_("Verify Engine Result Claims") },
-{ 0, 0,    0, NULL, (void*) &appData.materialDraws, "", NULL, CheckBox, N_("Draw if Insufficient Mating Material") },
-{ 0, 0,    0, NULL, (void*) &appData.trivialDraws, "", NULL, CheckBox, N_("Adjudicate Trivial Draws (3-Move Delay)") },
-{ 0, 0,100,   NULL, (void*) &appData.ruleMoves, "", NULL, Spin, N_("N-Move Rule:") },
-{ 0, 0,    6, NULL, (void*) &appData.drawRepeats, "", NULL, Spin, N_("N-fold Repeats:") },
-{ 0, 0,1000,  NULL, (void*) &appData.adjudicateDrawMoves, "", NULL, Spin, N_("Draw after N Moves Total:") },
-{ 0, -5000,0, NULL, (void*) &appData.adjudicateLossThreshold, "", NULL, Spin, N_("Win / Loss Threshold:") },
-{ 0, 0,    0, NULL, (void*) &first.scoreIsAbsolute, "", NULL, CheckBox, N_("Negate Score of Engine #1") },
-{ 0, 0,    0, NULL, (void*) &second.scoreIsAbsolute, "", NULL, CheckBox, N_("Negate Score of Engine #2") },
-{ 0,SAME_ROW, 0, NULL, NULL, "", NULL, EndMark , "" }
-};
-
-void
-EngineMenuProc ()
-{
-   GenericPopUp(adjudicationOptions, _("Adjudicate non-ICS Games"), TransientDlg, BoardWindow, MODAL, 0);
-}
-
-//--------------------------------------------- ICS Options ---------------------------------------------
-
-static int
-IcsOptionsOK (int n)
-{
-    ParseIcsTextColors();
-    return 1;
-}
-
-Option icsOptions[] = {
-{ 0, 0, 0, NULL, (void*) &appData.autoKibitz, "",  NULL, CheckBox, N_("Auto-Kibitz") },
-{ 0, 0, 0, NULL, (void*) &appData.autoComment, "", NULL, CheckBox, N_("Auto-Comment") },
-{ 0, 0, 0, NULL, (void*) &appData.autoObserve, "", NULL, CheckBox, N_("Auto-Observe") },
-{ 0, 0, 0, NULL, (void*) &appData.autoRaiseBoard, "", NULL, CheckBox, N_("Auto-Raise Board") },
-{ 0, 0, 0, NULL, (void*) &appData.autoCreateLogon, "", NULL, CheckBox, N_("Auto-Create Logon Script") },
-{ 0, 0, 0, NULL, (void*) &appData.bgObserve, "",   NULL, CheckBox, N_("Background Observe while Playing") },
-{ 0, 0, 0, NULL, (void*) &appData.dualBoard, "",   NULL, CheckBox, N_("Dual Board for Background-Observed Game") },
-{ 0, 0, 0, NULL, (void*) &appData.getMoveList, "", NULL, CheckBox, N_("Get Move List") },
-{ 0, 0, 0, NULL, (void*) &appData.quietPlay, "",   NULL, CheckBox, N_("Quiet Play") },
-{ 0, 0, 0, NULL, (void*) &appData.seekGraph, "",   NULL, CheckBox, N_("Seek Graph") },
-{ 0, 0, 0, NULL, (void*) &appData.autoRefresh, "", NULL, CheckBox, N_("Auto-Refresh Seek Graph") },
-{ 0, 0, 0, NULL, (void*) &appData.autoBox, "", NULL, CheckBox, N_("Auto-InputBox PopUp") },
-{ 0, 0, 0, NULL, (void*) &appData.quitNext, "", NULL, CheckBox, N_("Quit after game") },
-{ 0, 0, 0, NULL, (void*) &appData.premove, "",     NULL, CheckBox, N_("Premove") },
-{ 0, 0, 0, NULL, (void*) &appData.premoveWhite, "", NULL, CheckBox, N_("Premove for White") },
-{ 0, 0, 0, NULL, (void*) &appData.premoveWhiteText, "", NULL, TextBox, N_("First White Move:") },
-{ 0, 0, 0, NULL, (void*) &appData.premoveBlack, "", NULL, CheckBox, N_("Premove for Black") },
-{ 0, 0, 0, NULL, (void*) &appData.premoveBlackText, "", NULL, TextBox, N_("First Black Move:") },
-{ 0, SAME_ROW, 0, NULL, NULL, NULL, NULL, Break, "" },
-{ 0, 0, 0, NULL, (void*) &appData.icsAlarm, "", NULL, CheckBox, N_("Alarm") },
-{ 0, 0, 100000000, NULL, (void*) &appData.icsAlarmTime, "", NULL, Spin, N_("Alarm Time (msec):") },
-//{ 0, 0, 0, NULL, (void*) &appData.chatBoxes, "", NULL, TextBox, N_("Startup Chat Boxes:") },
-{ 0, 0, 0, NULL, (void*) &appData.colorize, "", NULL, CheckBox, N_("Colorize Messages") },
-{ 0, 0, 0, NULL, (void*) &appData.colorShout, "", NULL, TextBox, N_("Shout Text Colors:") },
-{ 0, 0, 0, NULL, (void*) &appData.colorSShout, "", NULL, TextBox, N_("S-Shout Text Colors:") },
-{ 0, 0, 0, NULL, (void*) &appData.colorChannel1, "", NULL, TextBox, N_("Channel #1 Text Colors:") },
-{ 0, 0, 0, NULL, (void*) &appData.colorChannel, "", NULL, TextBox, N_("Other Channel Text Colors:") },
-{ 0, 0, 0, NULL, (void*) &appData.colorKibitz, "", NULL, TextBox, N_("Kibitz Text Colors:") },
-{ 0, 0, 0, NULL, (void*) &appData.colorTell, "", NULL, TextBox, N_("Tell Text Colors:") },
-{ 0, 0, 0, NULL, (void*) &appData.colorChallenge, "", NULL, TextBox, N_("Challenge Text Colors:") },
-{ 0, 0, 0, NULL, (void*) &appData.colorRequest, "", NULL, TextBox, N_("Request Text Colors:") },
-{ 0, 0, 0, NULL, (void*) &appData.colorSeek, "", NULL, TextBox, N_("Seek Text Colors:") },
-{ 0, 0, 0, NULL, (void*) &appData.colorNormal, "", NULL, TextBox, N_("Other Text Colors:") },
-{ 0, 0, 0, NULL, (void*) &IcsOptionsOK, "", NULL, EndMark , "" }
-};
-
-void
-IcsOptionsProc ()
-{
-   GenericPopUp(icsOptions, _("ICS Options"), TransientDlg, BoardWindow, MODAL, 0);
-}
-
-//-------------------------------------------- Load Game Options ---------------------------------
-
-static char *modeNames[] = { N_("Exact position match"), N_("Shown position is subset"), N_("Same material with exactly same Pawn chain"),
-                     N_("Same material"), N_("Material range (top board half optional)"), N_("Material difference (optional stuff balanced)"), NULL };
-static char *modeValues[] = { "1", "2", "3", "4", "5", "6" };
-static char *searchMode, *countRange;
-
-static int
-LoadOptionsOK ()
-{
-    appData.minPieces = appData.maxPieces = 0;
-    sscanf(countRange, "%d-%d", &appData.minPieces, &appData.maxPieces);
-    if(appData.maxPieces < appData.minPieces) appData.maxPieces = appData.minPieces;
-    appData.searchMode = atoi(searchMode);
-    return 1;
-}
-
-static Option loadOptions[] = {
-{ 0,  0, 0,     NULL, (void*) &appData.autoDisplayTags, "", NULL, CheckBox, N_("Auto-Display Tags") },
-{ 0,  0, 0,     NULL, (void*) &appData.autoDisplayComment, "", NULL, CheckBox, N_("Auto-Display Comment") },
-{ 0, LR, 0,     NULL, NULL, NULL, NULL, Label, N_("Auto-Play speed of loaded games\n(0 = instant, -1 = off):") },
-{ 0, -1,10000000, NULL, (void*) &appData.timeDelay, "", NULL, Fractional, N_("Seconds per Move:") },
-{ 0, LR, 0,     NULL, NULL, NULL, NULL, Label,  N_("\noptions to use in game-viewer mode:") },
-{ 0, 0,300,     NULL, (void*) &appData.viewerOptions, "", NULL, TextBox,  "" },
-{ 0, LR,  0,    NULL, NULL, NULL, NULL, Label,  N_("\nThresholds for position filtering in game list:") },
-{ 0, 0,5000,    NULL, (void*) &appData.eloThreshold1, "", NULL, Spin, N_("Elo of strongest player at least:") },
-{ 0, 0,5000,    NULL, (void*) &appData.eloThreshold2, "", NULL, Spin, N_("Elo of weakest player at least:") },
-{ 0, 0,5000,    NULL, (void*) &appData.dateThreshold, "", NULL, Spin, N_("No games before year:") },
-{ 0, 1,50,      NULL, (void*) &appData.stretch, "", NULL, Spin, N_("Minimum nr consecutive positions:") },
-{ 0, 0,197,     NULL, (void*) &countRange, "", NULL, TextBox,  "Final nr of pieces" },
-{ 0, 0,205,     NULL, (void*) &searchMode, (char*) modeValues, modeNames, ComboBox, N_("Search mode:") },
-{ 0, 0, 0,      NULL, (void*) &appData.ignoreColors, "", NULL, CheckBox, N_("Also match reversed colors") },
-{ 0, 0, 0,      NULL, (void*) &appData.findMirror, "", NULL, CheckBox, N_("Also match left-right flipped position") },
-{ 0,  0, 0,     NULL, (void*) &LoadOptionsOK, "", NULL, EndMark , "" }
-};
-
-void
-LoadOptionsPopUp (DialogClass parent)
-{
-   ASSIGN(countRange, "");
-   ASSIGN(searchMode, modeValues[appData.searchMode-1]);
-   GenericPopUp(loadOptions, _("Load Game Options"), TransientDlg, parent, MODAL, 0);
-}
-
-void
-LoadOptionsProc ()
-{   // called from menu
-    LoadOptionsPopUp(BoardWindow);
-}
-
-//------------------------------------------- Save Game Options --------------------------------------------
-
-static Option saveOptions[] = {
-{ 0, 0, 0, NULL, (void*) &appData.autoSaveGames, "", NULL, CheckBox, N_("Auto-Save Games") },
-{ 0, 0, 0, NULL, (void*) &appData.onlyOwn, "", NULL, CheckBox, N_("Own Games Only") },
-{ 0, 0, 0, NULL, (void*) &appData.saveGameFile, ".pgn", NULL, FileName,  N_("Save Games on File:") },
-{ 0, 0, 0, NULL, (void*) &appData.savePositionFile, ".fen", NULL, FileName,  N_("Save Final Positions on File:") },
-{ 0, 0, 0, NULL, (void*) &appData.pgnEventHeader, "", NULL, TextBox,  N_("PGN Event Header:") },
-{ 0, 0, 0, NULL, (void*) &appData.oldSaveStyle, "", NULL, CheckBox, N_("Old Save Style (as opposed to PGN)") },
-{ 0, 0, 0, NULL, (void*) &appData.numberTag, "", NULL, CheckBox, N_("Include Number Tag in tourney PGN") },
-{ 0, 0, 0, NULL, (void*) &appData.saveExtendedInfoInPGN, "", NULL, CheckBox, N_("Save Score/Depth Info in PGN") },
-{ 0, 0, 0, NULL, (void*) &appData.saveOutOfBookInfo, "", NULL, CheckBox, N_("Save Out-of-Book Info in PGN           ") },
-{ 0, SAME_ROW, 0, NULL, NULL, "", NULL, EndMark , "" }
-};
-
-void
-SaveOptionsProc ()
-{
-   GenericPopUp(saveOptions, _("Save Game Options"), TransientDlg, BoardWindow, MODAL, 0);
-}
-
-//----------------------------------------------- Sound Options ---------------------------------------------
-
-static void Test P((int n));
-static char *trialSound;
-
-static char *soundNames[] = {
-       N_("No Sound"),
-       N_("Default Beep"),
-       N_("Above WAV File"),
-       N_("Car Horn"),
-       N_("Cymbal"),
-       N_("Ding"),
-       N_("Gong"),
-       N_("Laser"),
-       N_("Penalty"),
-       N_("Phone"),
-       N_("Pop"),
-       N_("Roar"),
-       N_("Slap"),
-       N_("Wood Thunk"),
-       NULL,
-       N_("User File")
-};
-
-static char *soundFiles[] = { // sound files corresponding to above names
-       "",
-       "$",
-       NULL, // kludge alert: as first thing in the dialog readout this is replaced with the user-given .WAV filename
-       "honkhonk.wav",
-       "cymbal.wav",
-       "ding1.wav",
-       "gong.wav",
-       "laser.wav",
-       "penalty.wav",
-       "phone.wav",
-       "pop2.wav",
-       "roar.wav",
-       "slap.wav",
-       "woodthunk.wav",
-       NULL,
-       NULL
-};
-
-static Option soundOptions[] = {
-{ 0, 0, 0, NULL, (void*) (soundFiles+2) /* kludge! */, ".wav", NULL, FileName, N_("User WAV File:") },
-{ 0, 0, 0, NULL, (void*) &appData.soundProgram, "", NULL, TextBox, N_("Sound Program:") },
-{ 0, 0, 0, NULL, (void*) &trialSound, (char*) soundFiles, soundNames, ComboBox, N_("Try-Out Sound:") },
-{ 0, SAME_ROW, 0, NULL, (void*) &Test, NULL, NULL, Button, N_("Play") },
-{ 0, 0, 0, NULL, (void*) &appData.soundMove, (char*) soundFiles, soundNames, ComboBox, N_("Move:") },
-{ 0, 0, 0, NULL, (void*) &appData.soundIcsWin, (char*) soundFiles, soundNames, ComboBox, N_("Win:") },
-{ 0, 0, 0, NULL, (void*) &appData.soundIcsLoss, (char*) soundFiles, soundNames, ComboBox, N_("Lose:") },
-{ 0, 0, 0, NULL, (void*) &appData.soundIcsDraw, (char*) soundFiles, soundNames, ComboBox, N_("Draw:") },
-{ 0, 0, 0, NULL, (void*) &appData.soundIcsUnfinished, (char*) soundFiles, soundNames, ComboBox, N_("Unfinished:") },
-{ 0, 0, 0, NULL, (void*) &appData.soundIcsAlarm, (char*) soundFiles, soundNames, ComboBox, N_("Alarm:") },
-{ 0, 0, 0, NULL, (void*) &appData.soundChallenge, (char*) soundFiles, soundNames, ComboBox, N_("Challenge:") },
-{ 0, SAME_ROW, 0, NULL, NULL, NULL, NULL, Break, "" },
-{ 0, 0, 0, NULL, (void*) &appData.soundDirectory, "", NULL, PathName, N_("Sounds Directory:") },
-{ 0, 0, 0, NULL, (void*) &appData.soundShout, (char*) soundFiles, soundNames, ComboBox, N_("Shout:") },
-{ 0, 0, 0, NULL, (void*) &appData.soundSShout, (char*) soundFiles, soundNames, ComboBox, N_("S-Shout:") },
-{ 0, 0, 0, NULL, (void*) &appData.soundChannel, (char*) soundFiles, soundNames, ComboBox, N_("Channel:") },
-{ 0, 0, 0, NULL, (void*) &appData.soundChannel1, (char*) soundFiles, soundNames, ComboBox, N_("Channel 1:") },
-{ 0, 0, 0, NULL, (void*) &appData.soundTell, (char*) soundFiles, soundNames, ComboBox, N_("Tell:") },
-{ 0, 0, 0, NULL, (void*) &appData.soundKibitz, (char*) soundFiles, soundNames, ComboBox, N_("Kibitz:") },
-{ 0, 0, 0, NULL, (void*) &appData.soundRequest, (char*) soundFiles, soundNames, ComboBox, N_("Request:") },
-{ 0, 0, 0, NULL, (void*) &appData.soundRoar, (char*) soundFiles, soundNames, ComboBox, N_("Lion roar:") },
-{ 0, 0, 0, NULL, (void*) &appData.soundSeek, (char*) soundFiles, soundNames, ComboBox, N_("Seek:") },
-{ 0, SAME_ROW, 0, NULL, NULL, "", NULL, EndMark , "" }
-};
-
-static void
-Test (int n)
-{
-    GenericReadout(soundOptions, 1);
-    if(soundFiles[values[2]]) PlaySoundFile(soundFiles[values[2]]);
-}
-
-void
-SoundOptionsProc ()
-{
-   free(soundFiles[2]);
-   soundFiles[2] = strdup("*");
-   GenericPopUp(soundOptions, _("Sound Options"), TransientDlg, BoardWindow, MODAL, 0);
-}
-
-//--------------------------------------------- Board Options --------------------------------------
-
-static void DefColor P((int n));
-static void AdjustColor P((int i));
-static void ThemeSel P((int n, int sel));
-static int BoardOptionsOK P((int n));
-
-static char oldPieceDir[MSG_SIZ];
-extern char *engineLine, *nickName; // defined later on
-
-#define THEMELIST 1
-
-static Option boardOptions[] = {
-{   0,LR|T2T, 0, NULL, NULL, NULL, NULL, Label, N_("Selectable themes:") },
-{ 300,LR|TB,200, NULL, (void*) engineMnemonic, (char*) &ThemeSel, NULL, ListBox, "" },
-{   0,LR|T2T, 0, NULL, NULL, NULL, NULL, Label, N_("New name for current theme:") },
-{ 0, 0, 0, NULL, (void*) &nickName, "", NULL, TextBox, "" },
-{ 0,SAME_ROW, 0, NULL, NULL, NULL, NULL, Break, NULL },
-{ 0,          0, 70, NULL, (void*) &appData.whitePieceColor, "", NULL, TextBox, N_("White Piece Color:") },
-{ 1000, SAME_ROW, 0, NULL, (void*) &DefColor, NULL, (char**) "#FFFFCC", Button, "      " },
-/* TRANSLATORS: R = single letter for the color red */
-{    1, SAME_ROW, 0, NULL, (void*) &AdjustColor, NULL, NULL, Button, N_("R") },
-/* TRANSLATORS: G = single letter for the color green */
-{    2, SAME_ROW, 0, NULL, (void*) &AdjustColor, NULL, NULL, Button, N_("G") },
-/* TRANSLATORS: B = single letter for the color blue */
-{    3, SAME_ROW, 0, NULL, (void*) &AdjustColor, NULL, NULL, Button, N_("B") },
-/* TRANSLATORS: D = single letter to make a color darker */
-{    4, SAME_ROW, 0, NULL, (void*) &AdjustColor, NULL, NULL, Button, N_("D") },
-{ 0,          0, 70, NULL, (void*) &appData.blackPieceColor, "", NULL, TextBox, N_("Black Piece Color:") },
-{ 1000, SAME_ROW, 0, NULL, (void*) &DefColor, NULL, (char**) "#202020", Button, "      " },
-{    1, SAME_ROW, 0, NULL, (void*) &AdjustColor, NULL, NULL, Button, N_("R") },
-{    2, SAME_ROW, 0, NULL, (void*) &AdjustColor, NULL, NULL, Button, N_("G") },
-{    3, SAME_ROW, 0, NULL, (void*) &AdjustColor, NULL, NULL, Button, N_("B") },
-{    4, SAME_ROW, 0, NULL, (void*) &AdjustColor, NULL, NULL, Button, N_("D") },
-{ 0,          0, 70, NULL, (void*) &appData.lightSquareColor, "", NULL, TextBox, N_("Light Square Color:") },
-{ 1000, SAME_ROW, 0, NULL, (void*) &DefColor, NULL, (char**) "#C8C365", Button, "      " },
-{    1, SAME_ROW, 0, NULL, (void*) &AdjustColor, NULL, NULL, Button, N_("R") },
-{    2, SAME_ROW, 0, NULL, (void*) &AdjustColor, NULL, NULL, Button, N_("G") },
-{    3, SAME_ROW, 0, NULL, (void*) &AdjustColor, NULL, NULL, Button, N_("B") },
-{    4, SAME_ROW, 0, NULL, (void*) &AdjustColor, NULL, NULL, Button, N_("D") },
-{ 0,          0, 70, NULL, (void*) &appData.darkSquareColor, "", NULL, TextBox, N_("Dark Square Color:") },
-{ 1000, SAME_ROW, 0, NULL, (void*) &DefColor, NULL, (char**) "#77A26D", Button, "      " },
-{    1, SAME_ROW, 0, NULL, (void*) &AdjustColor, NULL, NULL, Button, N_("R") },
-{    2, SAME_ROW, 0, NULL, (void*) &AdjustColor, NULL, NULL, Button, N_("G") },
-{    3, SAME_ROW, 0, NULL, (void*) &AdjustColor, NULL, NULL, Button, N_("B") },
-{    4, SAME_ROW, 0, NULL, (void*) &AdjustColor, NULL, NULL, Button, N_("D") },
-{ 0,          0, 70, NULL, (void*) &appData.highlightSquareColor, "", NULL, TextBox, N_("Highlight Color:") },
-{ 1000, SAME_ROW, 0, NULL, (void*) &DefColor, NULL, (char**) "#FFFF00", Button, "      " },
-{    1, SAME_ROW, 0, NULL, (void*) &AdjustColor, NULL, NULL, Button, N_("R") },
-{    2, SAME_ROW, 0, NULL, (void*) &AdjustColor, NULL, NULL, Button, N_("G") },
-{    3, SAME_ROW, 0, NULL, (void*) &AdjustColor, NULL, NULL, Button, N_("B") },
-{    4, SAME_ROW, 0, NULL, (void*) &AdjustColor, NULL, NULL, Button, N_("D") },
-{ 0,          0, 70, NULL, (void*) &appData.premoveHighlightColor, "", NULL, TextBox, N_("Premove Highlight Color:") },
-{ 1000, SAME_ROW, 0, NULL, (void*) &DefColor, NULL, (char**) "#FF0000", Button, "      " },
-{    1, SAME_ROW, 0, NULL, (void*) &AdjustColor, NULL, NULL, Button, N_("R") },
-{    2, SAME_ROW, 0, NULL, (void*) &AdjustColor, NULL, NULL, Button, N_("G") },
-{    3, SAME_ROW, 0, NULL, (void*) &AdjustColor, NULL, NULL, Button, N_("B") },
-{    4, SAME_ROW, 0, NULL, (void*) &AdjustColor, NULL, NULL, Button, N_("D") },
-{ 0, 0, 0, NULL, (void*) &appData.upsideDown, "", NULL, CheckBox, N_("Flip Pieces Shogi Style        (Colored buttons restore default)") },
-//{ 0, 0, 0, NULL, (void*) &appData.allWhite, "", NULL, CheckBox, N_("Use Outline Pieces for Black") },
-{ 0, 0, 0, NULL, (void*) &appData.monoMode, "", NULL, CheckBox, N_("Mono Mode") },
-{ 0, 0, 200, NULL, (void*) &appData.logoSize, "", NULL, Spin, N_("Logo Size (0=off, requires restart):") },
-{ 0,-1, 5, NULL, (void*) &appData.overrideLineGap, "", NULL, Spin, N_("Line Gap (-1 = default for board size):") },
-{ 0, 0, 0, NULL, (void*) &appData.useBitmaps, "", NULL, CheckBox, N_("Use Board Textures") },
-{ 0, 0, 0, NULL, (void*) &appData.liteBackTextureFile, ".png", NULL, FileName, N_("Light-Squares Texture File:") },
-{ 0, 0, 0, NULL, (void*) &appData.darkBackTextureFile, ".png", NULL, FileName, N_("Dark-Squares Texture File:") },
-{ 0, 0, 0, NULL, (void*) &appData.trueColors, "", NULL, CheckBox, N_("Use external piece bitmaps with their own colors") },
-{ 0, 0, 0, NULL, (void*) &appData.pieceDirectory, "", NULL, PathName, N_("Directory with Pieces Images:") },
-{ 0, 0, 0, NULL, (void*) &BoardOptionsOK, "", NULL, EndMark , "" }
-};
-
-static int
-BoardOptionsOK (int n)
-{
-    if(n && (n = SelectedListBoxItem(&boardOptions[THEMELIST])) > 0 && *engineList[n] != '#') { // called by pressing OK, and theme selected
-       ASSIGN(engineLine, engineList[n]);
-    }
-    LoadTheme();
-    return 1;
-}
-
-static void
-SetColorText (int n, char *buf)
-{
-    SetWidgetText(&boardOptions[n-1], buf, TransientDlg);
-    SetColor(buf, &boardOptions[n]);
-}
-
-static void
-DefColor (int n)
-{
-    SetColorText(n, (char*) boardOptions[n].choice);
-}
-
-void
-RefreshColor (int source, int n)
-{
-    int col, j, r, g, b, step = 10;
-    char *s, buf[MSG_SIZ]; // color string
-    GetWidgetText(&boardOptions[source], &s);
-    if(sscanf(s, "#%x", &col) != 1) return;   // malformed
-    b = col & 0xFF; g = col & 0xFF00; r = col & 0xFF0000;
-    switch(n) {
-       case 1: r += 0x10000*step;break;
-       case 2: g += 0x100*step;  break;
-       case 3: b += step;        break;
-       case 4: r -= 0x10000*step; g -= 0x100*step; b -= step; break;
-    }
-    if(r < 0) r = 0; if(g < 0) g = 0; if(b < 0) b = 0;
-    if(r > 0xFF0000) r = 0xFF0000; if(g > 0xFF00) g = 0xFF00; if(b > 0xFF) b = 0xFF;
-    col = r | g | b;
-    snprintf(buf, MSG_SIZ, "#%06x", col);
-    for(j=1; j<7; j++) if(buf[j] >= 'a') buf[j] -= 32; // capitalize
-    SetColorText(source+1, buf);
-}
-
-static void
-AdjustColor (int i)
-{
-    int n = boardOptions[i].value;
-    RefreshColor(i-n-1, n);
-}
-
-void
-ThemeSel (int n, int sel)
-{
-    int nr;
-    char buf[MSG_SIZ];
-    if(sel < 1) buf[0] = NULLCHAR; // back to top level
-    else if(engineList[sel][0] == '#') safeStrCpy(buf, engineList[sel], MSG_SIZ); // group header, open group
-    else { // normal line, select engine
-       ASSIGN(engineLine, engineList[sel]);
-       LoadTheme();
-        PopDown(TransientDlg);
-       return;
-    }
-    nr = NamesToList(appData.themeNames, engineList, engineMnemonic, buf); // replace list by only the group contents
-    ASSIGN(engineMnemonic[0], buf);
-    LoadListBox(&boardOptions[THEMELIST], _("# no themes are defined"), -1, -1);
-    HighlightWithScroll(&boardOptions[THEMELIST], 0, nr);
-}
-
-void
-BoardOptionsProc ()
-{
-   strncpy(oldPieceDir, appData.pieceDirectory, MSG_SIZ-1); // to see if it changed
-   ASSIGN(engineLine, "");
-   ASSIGN(nickName, "");
-   ASSIGN(engineMnemonic[0], "");
-   NamesToList(appData.themeNames, engineList, engineMnemonic, "");
-   GenericPopUp(boardOptions, _("Board Options"), TransientDlg, BoardWindow, MODAL, 0);
-}
-
-//-------------------------------------------- ICS Text Menu Options ------------------------------
-
-Option textOptions[100];
-static void PutText P((char *text, int pos));
-static void NewChat P((char *name));
-static char clickedWord[MSG_SIZ], click;
-
-void
-SendString (char *p)
-{
-    char buf[MSG_SIZ], buf2[MSG_SIZ], *q;
-    if(q = strstr(p, "$name")) { // in Xaw this is already intercepted
-       if(!shellUp[TextMenuDlg] || !clickedWord[0]) return;
-       strncpy(buf2, p, MSG_SIZ);
-       snprintf(buf2 + (q-p), MSG_SIZ -(q-p), "%s%s", clickedWord, q+5);
-        p = buf2;
-    }
-    if(!strcmp(p, "$copy")) { // special case for copy selection
-        CopySomething(clickedWord);
-    } else
-    if(!strcmp(p, "$chat")) { // special case for opening chat
-        NewChat(clickedWord);
-    } else
-    if(q = strstr(p, "$input")) {
-       if(!shellUp[TextMenuDlg]) return;
-       strncpy(buf, p, MSG_SIZ);
-       strncpy(buf + (q-p), q+6, MSG_SIZ-(q-p));
-       PutText(buf, q-p);
-    } else {
-       snprintf(buf, MSG_SIZ, "%s\n", p);
-       SendToICS(buf);
-    }
-    if(click) { // popped up by memo click
-       click = clickedWord[0] = 0;
-       PopDown(TextMenuDlg);
-    }
-}
-
-void
-IcsTextPopUp ()
-{
-   int i=0, j;
-   char *p, *q, *r;
-   if((p = icsTextMenuString) == NULL) return;
-   do {
-       q = r = p; while(*p && *p != ';') p++;
-       if(textOptions[i].name == NULL) textOptions[i].name = (char*) malloc(MSG_SIZ);
-       for(j=0; j<p-q; j++) textOptions[i].name[j] = *r++;
-       textOptions[i].name[j++] = 0;
-       if(!*p) break;
-       if(*++p == '\n') p++; // optional linefeed after button-text terminating semicolon
-       q = p;
-       textOptions[i].choice = (char**) (r = textOptions[i].name + j);
-       while(*p && (*p != ';' || p[1] != '\n')) textOptions[i].name[j++] = *p++;
-       textOptions[i].name[j++] = 0;
-       if(*p) p += 2;
-       textOptions[i].max = 135;
-       textOptions[i].min = i&1;
-       textOptions[i].handle = NULL;
-       textOptions[i].target = &SendText;
-       textOptions[i].textValue = strstr(r, "$input") ? "#80FF80" : strstr(r, "$name") ? "#FF8080" : "#FFFFFF";
-       textOptions[i].type = Button;
-   } while(++i < 99 && *p);
-   if(i == 0) return;
-   textOptions[i].type = EndMark;
-   textOptions[i].target = NULL;
-   textOptions[i].min = 2;
-   MarkMenu("View.ICStextmenu", TextMenuDlg);
-   GenericPopUp(textOptions, _("ICS text menu"), TextMenuDlg, BoardWindow, NONMODAL, appData.topLevel);
-}
-
-void
-IcsTextProc ()
-{
-    if(shellUp[TextMenuDlg]) PopDown(TextMenuDlg);
-    else IcsTextPopUp();
-}
-
-//---------------------------------------------------- Edit Comment -----------------------------------
-
-static char *commentText;
-static int commentIndex;
-static void ClearComment P((int n));
-static void SaveChanges P((int n));
-int savedIndex;  /* gross that this is global (and even across files...) */
-
-static int CommentClick P((Option *opt, int n, int x, int y, char *val, int index));
-
-static int
-NewComCallback (int n)
-{
-    ReplaceComment(commentIndex, commentText);
-    return 1;
-}
-
-Option commentOptions[] = {
-{ 200, T_VSCRL | T_FILL | T_WRAP | T_TOP, 250, NULL, (void*) &commentText, NULL, (char **) &CommentClick, TextBox, "", &appData.commentFont },
-{ 0,     0,     50, NULL, (void*) &ClearComment, NULL, NULL, Button, N_("clear") },
-{ 0, SAME_ROW, 100, NULL, (void*) &SaveChanges, NULL, NULL, Button, N_("save changes") },
-{ 0, SAME_ROW,  0,  NULL, (void*) &NewComCallback, "", NULL, EndMark , "" }
-};
-
-static int
-CommentClick (Option *opt, int n, int x, int y, char *val, int index)
-{
-       if(n != 3) return FALSE; // only button-3 press is of interest
-       ReplaceComment(savedIndex, val);
-       if(savedIndex != currentMove) ToNrEvent(savedIndex);
-       LoadVariation( index, val ); // [HGM] also does the actual moving to it, now
-       return TRUE;
-}
-
-static void
-SaveChanges (int n)
-{
-    GenericReadout(commentOptions, 0);
-    ReplaceComment(commentIndex, commentText);
-}
-
-static void
-ClearComment (int n)
-{
-    SetWidgetText(&commentOptions[0], "", CommentDlg);
-}
-
-void
-NewCommentPopup (char *title, char *text, int index)
-{
-    if(DialogExists(CommentDlg)) { // if already exists, alter title and content
-       SetDialogTitle(CommentDlg, title);
-       SetWidgetText(&commentOptions[0], text, CommentDlg);
-    }
-    if(commentText) free(commentText); commentText = strdup(text);
-    commentIndex = index;
-    MarkMenu("View.Comments", CommentDlg);
-    if(GenericPopUp(commentOptions, title, CommentDlg, BoardWindow, NONMODAL, appData.topLevel))
-       AddHandler(&commentOptions[0], CommentDlg, 1);
-}
-
-void
-EditCommentPopUp (int index, char *title, char *text)
-{
-    savedIndex = index;
-    if (text == NULL) text = "";
-    NewCommentPopup(title, text, index);
-}
-
-void
-CommentPopUp (char *title, char *text)
-{
-    savedIndex = currentMove; // [HGM] vari
-    NewCommentPopup(title, text, currentMove);
-}
-
-void
-CommentPopDown ()
-{
-    PopDown(CommentDlg);
-}
-
-
-void
-EditCommentProc ()
-{
-    if (PopDown(CommentDlg)) { // popdown succesful
-//     MarkMenuItem("Edit.EditComment", False);
-//     MarkMenuItem("View.Comments", False);
-    } else // was not up
-       EditCommentEvent();
-}
-
-//------------------------------------------------------ Edit Tags ----------------------------------
-
-static void changeTags P((int n));
-static char *tagsText, **resPtr;
-
-static int TagsClick P((Option *opt, int n, int x, int y, char *val, int index));
-
-static int
-NewTagsCallback (int n)
-{
-    if(bookUp) SaveToBook(tagsText), DisplayBook(currentMove); else
-    if(resPtr) { ASSIGN(*resPtr, tagsText); } else
-    ReplaceTags(tagsText, &gameInfo);
-    return 1;
-}
-
-static void
-NewMove ()
-{
-    addToBookFlag = !addToBookFlag;
-}
-
-Option tagsOptions[] = {
-{   0,   0,   0, NULL, NULL, NULL, NULL, Label,  NULL },
-{ 200, T_VSCRL | T_FILL | T_WRAP | T_TOP, 200, NULL, (void*) &tagsText, NULL, (char **) &TagsClick, TextBox, "", &appData.tagsFont },
-{   0,   0, 100, NULL, (void*) &NewMove,    NULL, NULL, Button, N_("add next move") },
-{ 0,SAME_ROW,100,NULL, (void*) &changeTags, NULL, NULL, Button, N_("commit changes") },
-{ 0,SAME_ROW, 0, NULL, (void*) &NewTagsCallback, "", NULL, EndMark , "" }
-};
-
-static int TagsClick (Option *opt, int n, int x, int y, char *val, int index)
-{
-    if(!bookUp || n != 3) return FALSE; // only button-3 press in Edit Book is of interest
-    PlayBookMove(val, index);
-    return TRUE;
-}
-
-static void
-changeTags (int n)
-{
-    GenericReadout(tagsOptions, 1);
-    if(bookUp) SaveToBook(tagsText), DisplayBook(currentMove); else
-    if(resPtr) { ASSIGN(*resPtr, tagsText); } else
-    ReplaceTags(tagsText, &gameInfo);
-}
-
-void
-NewTagsPopup (char *text, char *msg, char *ttl)
-{
-    char *title = bookUp ? _("Edit book") : ttl;
-
-    tagsOptions[2].type = bookUp ? Button : Skip;
-    tagsOptions[3].min = bookUp ? SAME_ROW : 0;
-    if(DialogExists(TagsDlg)) { // if already exists, alter title and content
-       SetWidgetText(&tagsOptions[1], text, TagsDlg);
-       SetDialogTitle(TagsDlg, title);
-    }
-    if(tagsText) free(tagsText); tagsText = strdup(text);
-    tagsOptions[0].name = msg;
-    MarkMenu("View.Tags", TagsDlg);
-    GenericPopUp(tagsOptions + (msg == NULL), title, TagsDlg, BoardWindow, NONMODAL, appData.topLevel);
-}
-
-void
-TagsPopUp (char *tags, char *msg)
-{
-    NewTagsPopup(tags, cmailMsgLoaded ? msg : NULL, _("Tags"));
-}
-
-void
-EditTagsPopUp (char *tags, char **dest)
-{   // wrapper to preserve old name used in back-end
-    resPtr = dest; 
-    NewTagsPopup(tags, NULL, _("Tags"));
-}
-
-void
-EditEnginePopUp (char *tags, char **dest)
-{   // wrapper to preserve old name used in back-end
-    TagsPopDown();
-    resPtr = dest; 
-    NewTagsPopup(tags, NULL, _("Registered Engines"));
-}
-
-void
-TagsPopDown()
-{
-    PopDown(TagsDlg);
-    bookUp = False;
-}
-
-void
-EditTagsProc ()
-{
-  if (bookUp || !PopDown(TagsDlg)) EditTagsEvent();
-}
-
-void
-AddBookMove (char *text)
-{
-    AppendText(&tagsOptions[1], text);
-}
-
-//---------------------------------------------- ICS Input Box ----------------------------------
-
-char *icsText;
-
-// [HGM] code borrowed from winboard.c (which should thus go to backend.c!)
-#define HISTORY_SIZE 64
-static char *history[HISTORY_SIZE];
-static int histIn = 0, histP = 0;
-static Boolean noEcho;
-
-static void
-SaveInHistory (char *cmd)
-{
-  if(noEcho) return; // do not save password!
-  if (history[histIn] != NULL) {
-    free(history[histIn]);
-    history[histIn] = NULL;
-  }
-  if (*cmd == NULLCHAR) return;
-  history[histIn] = StrSave(cmd);
-  histIn = (histIn + 1) % HISTORY_SIZE;
-  if (history[histIn] != NULL) {
-    free(history[histIn]);
-    history[histIn] = NULL;
-  }
-  histP = histIn;
-}
-
-static char *
-PrevInHistory (char *cmd)
-{
-  int newhp;
-  if (histP == histIn) {
-    if (history[histIn] != NULL) free(history[histIn]);
-    history[histIn] = StrSave(cmd);
-  }
-  newhp = (histP - 1 + HISTORY_SIZE) % HISTORY_SIZE;
-  if (newhp == histIn || history[newhp] == NULL) return NULL;
-  histP = newhp;
-  return history[histP];
-}
-
-static char *
-NextInHistory ()
-{
-  if (histP == histIn) return NULL;
-  histP = (histP + 1) % HISTORY_SIZE;
-  return history[histP];
-}
-// end of borrowed code
-
-#define INPUT 0
-
-Option boxOptions[] = {
-{  30, T_TOP, 400, NULL, (void*) &icsText, NULL, NULL, TextBox, "" },
-{  0,  NO_OK,   0, NULL, NULL, "", NULL, EndMark , "" }
-};
-
-void
-ICSInputSendText ()
-{
-    char *val;
-
-    GetWidgetText(&boxOptions[INPUT], &val);
-    SaveInHistory(val);
-    SendMultiLineToICS(val);
-    SetWidgetText(&boxOptions[INPUT], "", InputBoxDlg);
-}
-
-void
-IcsKey (int n)
-{   // [HGM] input: let up-arrow recall previous line from history
-    char *val = NULL; // to suppress spurious warning
-
-    if (!shellUp[InputBoxDlg]) return;
-    switch(n) {
-      case 0:
-       ICSInputSendText();
-       return;
-      case 1:
-       GetWidgetText(&boxOptions[INPUT], &val);
-       val = PrevInHistory(val);
-       break;
-      case -1:
-       val = NextInHistory();
-    }
-    SetWidgetText(&boxOptions[INPUT], val = val ? val : "", InputBoxDlg);
-    SetInsertPos(&boxOptions[INPUT], strlen(val));
-}
-
-void
-ICSInputBoxPopUp ()
-{
-    MarkMenu("View.ICSInputBox", InputBoxDlg);
-    if(GenericPopUp(boxOptions, _("ICS input box"), InputBoxDlg, BoardWindow, NONMODAL, 0))
-       AddHandler(&boxOptions[INPUT], InputBoxDlg, 3);
-    CursorAtEnd(&boxOptions[INPUT]);
-}
-
-void
-IcsInputBoxProc ()
-{
-    if (!PopDown(InputBoxDlg)) ICSInputBoxPopUp();
-}
-
-//--------------------------------------------- Move Type In ------------------------------------------
-
-static int TypeInOK P((int n));
-
-Option typeOptions[] = {
-{ 30, T_TOP, 400, NULL, (void*) &icsText, NULL, NULL, TextBox, "" },
-{ 0,  NO_OK,   0, NULL, (void*) &TypeInOK, "", NULL, EndMark , "" }
-};
-
-static int
-TypeInOK (int n)
-{
-    TypeInDoneEvent(icsText);
-    return TRUE;
-}
-
-void
-PopUpMoveDialog (char firstchar)
-{
-    static char buf[2];
-    buf[0] = firstchar; ASSIGN(icsText, buf);
-    if(GenericPopUp(typeOptions, _("Type a move"), TransientDlg, BoardWindow, MODAL, 0))
-       AddHandler(&typeOptions[0], TransientDlg, 2);
-    CursorAtEnd(&typeOptions[0]);
-}
-
-void
-BoxAutoPopUp (char *buf)
-{       // only used in Xaw. GTK calls ConsoleAutoPopUp in stead (when we type to board)
-       if(!appData.autoBox) return;
-       if(appData.icsActive) { // text typed to board in ICS mode: divert to ICS input box
-           if(DialogExists(InputBoxDlg)) { // box already exists: append to current contents
-               char *p, newText[MSG_SIZ];
-               GetWidgetText(&boxOptions[INPUT], &p);
-               snprintf(newText, MSG_SIZ, "%s%c", p, *buf);
-               SetWidgetText(&boxOptions[INPUT], newText, InputBoxDlg);
-               if(shellUp[InputBoxDlg]) HardSetFocus (&boxOptions[INPUT], InputBoxDlg); //why???
-           } else icsText = buf; // box did not exist: make sure it pops up with char in it
-           ICSInputBoxPopUp();
-       } else PopUpMoveDialog(*buf);
-}
-
-//------------------------------------------ Engine Settings ------------------------------------
-
-void
-SettingsPopUp (ChessProgramState *cps)
-{
-   if(!cps->nrOptions) { DisplayNote(_("Engine has no options")); return; }
-   currentCps = cps;
-   GenericPopUp(cps->option, _("Engine Settings"), TransientDlg, BoardWindow, MODAL, 0);
-}
-
-void
-FirstSettingsProc ()
-{
-    SettingsPopUp(&first);
-}
-
-void
-SecondSettingsProc ()
-{
-   if(WaitForEngine(&second, SettingsMenuIfReady)) return;
-   SettingsPopUp(&second);
-}
-
-void
-RefreshSettingsDialog (ChessProgramState *cps, int val)
-{
-   if(val == 1) { // option values changed
-      if(shellUp[TransientDlg] && cps == currentCps) {
-         GenericUpdate(cps->option, -1); // normally update values when dialog is up
-      }
-      return; // and be done
-   }
-   if(val == 2) { // option list changed
-      if(!shellUp[TransientDlg] || cps != currentCps) return; // our dialog is not up, so nothing to do
-   }
-   PopDown(TransientDlg); // make sure any other dialog closes first
-   SettingsPopUp(cps);    // and popup new one
-}
-
-//----------------------------------------------- Load Engine --------------------------------------
-
-char *engineDir, *engineLine, *nickName, *params;
-Boolean isUCI, isUSI, hasBook, storeVariant, v1, addToList, useNick, secondEng;
-
-static void EngSel P((int n, int sel));
-static int InstallOK P((int n));
-
-static Option installOptions[] = {
-{   0,LR|T2T, 0, NULL, NULL, NULL, NULL, Label, N_("Select engine from list:") },
-{ 300,LR|TB,200, NULL, (void*) engineMnemonic, (char*) &EngSel, NULL, ListBox, "" },
-{ 0,SAME_ROW, 0, NULL, NULL, NULL, NULL, Break, NULL },
-{   0,  LR,   0, NULL, NULL, NULL, NULL, Label, N_("or specify one below:") },
-{   0,  0,    0, NULL, (void*) &nickName, NULL, NULL, TextBox, N_("Nickname (optional):") },
-{   0,  0,    0, NULL, (void*) &useNick, NULL, NULL, CheckBox, N_("Use nickname in PGN player tags of engine-engine games") },
-{   0,  0,    0, NULL, (void*) &engineDir, NULL, NULL, PathName, N_("Engine Directory:") },
-{   0,  0,    0, NULL, (void*) &engineName, NULL, NULL, FileName, N_("Engine Command:") },
-{   0,  LR,   0, NULL, NULL, NULL, NULL, Label, N_("(Directory will be derived from engine path when empty)") },
-{   0,  0,    0, NULL, (void*) &isUCI, NULL, NULL, CheckBox, N_("UCI") },
-{   0,  0,    0, NULL, (void*) &isUSI, NULL, NULL, CheckBox, N_("USI/UCCI (uses specified -uxiAdapter)") },
-{   0,  0,    0, NULL, (void*) &v1, NULL, NULL, CheckBox, N_("WB protocol v1 (do not wait for engine features)") },
-{   0,  0,    0, NULL, (void*) &hasBook, NULL, NULL, CheckBox, N_("Must not use GUI book") },
-{   0,  0,    0, NULL, (void*) &addToList, NULL, NULL, CheckBox, N_("Add this engine to the list") },
-{   0,  0,    0, NULL, (void*) &storeVariant, NULL, NULL, CheckBox, N_("Force current variant with this engine") },
-{   0,  0,    0, NULL, (void*) &InstallOK, "", NULL, EndMark , "" }
-};
-
-static int
-InstallOK (int n)
-{
-    if(n && (n = SelectedListBoxItem(&installOptions[1])) > 0) { // called by pressing OK, and engine selected
-       ASSIGN(engineLine, engineList[n]);
-    }
-    PopDown(TransientDlg); // early popdown, to allow FreezeUI to instate grab
-    if(isUSI) {
-       isUCI = 2; // kludge to pass isUSI to Load()
-       if(!*appData.ucciAdapter) { ASSIGN(appData.ucciAdapter, "usi2wb -%variant \"%fcp\"\"%fd\""); } // make sure -uxiAdapter is defined
-    }
-    if(!secondEng) Load(&first, 0); else Load(&second, 1);
-    return FALSE; // no double PopDown!
-}
-
-static void
-EngSel (int n, int sel)
-{
-    int nr;
-    char buf[MSG_SIZ];
-    if(sel < 1) buf[0] = NULLCHAR; // back to top level
-    else if(engineList[sel][0] == '#') safeStrCpy(buf, engineList[sel], MSG_SIZ); // group header, open group
-    else { // normal line, select engine
-       ASSIGN(engineLine, engineList[sel]);
-       InstallOK(0);
-       return;
-    }
-    nr = NamesToList(firstChessProgramNames, engineList, engineMnemonic, buf); // replace list by only the group contents
-    ASSIGN(engineMnemonic[0], buf);
-    LoadListBox(&installOptions[1], _("# no engines are installed"), -1, -1);
-    HighlightWithScroll(&installOptions[1], 0, nr);
-}
-
-static void
-LoadEngineProc (int engineNr, char *title)
-{
-   isUCI = isUSI = storeVariant = v1 = useNick = False; addToList = hasBook = True; // defaults
-   secondEng = engineNr;
-   if(engineLine)   free(engineLine);   engineLine = strdup("");
-   if(engineDir)    free(engineDir);    engineDir = strdup(".");
-   if(nickName)     free(nickName);     nickName = strdup("");
-   if(params)       free(params);       params = strdup("");
-   ASSIGN(engineMnemonic[0], "");
-   NamesToList(firstChessProgramNames, engineList, engineMnemonic, "");
-   GenericPopUp(installOptions, title, TransientDlg, BoardWindow, MODAL, 0);
-}
-
-void
-LoadEngine1Proc ()
-{
-    LoadEngineProc (0, _("Load first engine"));
-}
-
-void
-LoadEngine2Proc ()
-{
-    LoadEngineProc (1, _("Load second engine"));
-}
-
-//----------------------------------------------------- Edit Book -----------------------------------------
-
-void
-EditBookProc ()
-{
-    EditBookEvent();
-}
-
-//--------------------------------------------------- New Shuffle Game ------------------------------
-
-static void SetRandom P((int n));
-
-static int
-ShuffleOK (int n)
-{
-    ResetGameEvent();
-    return 1;
-}
-
-static Option shuffleOptions[] = {
-  {   0,  0,    0, NULL, (void*) &shuffleOpenings, NULL, NULL, CheckBox, N_("shuffle") },
-  {   0,  0,    0, NULL, (void*) &appData.fischerCastling, NULL, NULL, CheckBox, N_("Fischer castling") },
-  { 0,-1,2000000000, NULL, (void*) &appData.defaultFrcPosition, "", NULL, Spin, N_("Start-position number:") },
-  {   0,  0,    0, NULL, (void*) &SetRandom, NULL, NULL, Button, N_("randomize") },
-  {   0,  SAME_ROW,    0, NULL, (void*) &SetRandom, NULL, NULL, Button, N_("pick fixed") },
-  { 0,SAME_ROW, 0, NULL, (void*) &ShuffleOK, "", NULL, EndMark , "" }
-};
-
-static void
-SetRandom (int n)
-{
-    int r = n==3 ? -1 : random() & (1<<30)-1;
-    char buf[MSG_SIZ];
-    snprintf(buf, MSG_SIZ,  "%d", r);
-    SetWidgetText(&shuffleOptions[2], buf, TransientDlg);
-    SetWidgetState(&shuffleOptions[0], True);
-}
-
-void
-ShuffleMenuProc ()
-{
-    GenericPopUp(shuffleOptions, _("New Shuffle Game"), TransientDlg, BoardWindow, MODAL, 0);
-}
-
-//--------------------------------------------------- Fonts ------------------------------
-
-static void AdjustFont P((int n));
-
-static char *oldFont[7];
-
-static int
-NewFont (int n, int fnr, char *font)
-{   // figure out if font changed, and if so, store it in the fonts table as a side effect
-    if(!strcmp(oldFont[n], font)) return 0; // not changed
-    ASSIGN(fontTable[fnr][initialSquareSize], font);
-    fontIsSet[fnr] = fontValid[fnr][initialSquareSize] = True;
-    return 1; // changed
-}
-
-static int
-FontsOK (int n)
-{
-    int i;
-    PopDown(TransientDlg); // Early popdown to prevent expose events frommasking each other
-    LockBoardSize(0);
-    if(NewFont(0, CLOCK_FONT,   appData.clockFont)) DisplayBothClocks();
-    if(NewFont(1, MESSAGE_FONT, appData.font)) {
-       ApplyFont(&mainOptions[W_MESSG], NULL);
-       for(i=1; i<6; i++) ApplyFont(&mainOptions[W_BUTTON+i], NULL);
-    }
-    LockBoardSize(1); // unlock
-    if(NewFont(3, EDITTAGS_FONT,    appData.tagsFont))    ApplyFont(&tagsOptions[1], NULL);
-    if(NewFont(4, COMMENT_FONT,     appData.commentFont)) ApplyFont(&commentOptions[0], NULL);
-    if(NewFont(5, MOVEHISTORY_FONT, appData.historyFont)) {
-       ApplyFont(&historyOptions[0], NULL);
-       ApplyFont(&engoutOptions[5], NULL);
-       ApplyFont(&engoutOptions[12], NULL);
-    }
-    if(NewFont(6, GAMELIST_FONT, appData.gameListFont)) ApplyFont(&gamesOptions[0], NULL);
-    if(NewFont(2, CONSOLE_FONT,  appData.icsFont)) {
-       ApplyFont(&chatOptions[11], appData.icsFont);
-       AppendColorized(&chatOptions[6], NULL, 0); // kludge to replace font tag
-    }
-    DrawPosition(TRUE, NULL); // for coord font
-    return 0; // suppress normal popdown because already done
-}
-
-static Option fontOptions[] = {
-  { 0,        60, 200, NULL, (void*) &appData.clockFont, NULL, NULL, TextBox, N_("Clocks (requires restart):") },
-  {    1, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("+") },
-  {    2, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("-") },
-  {    3, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("B") },
-  {    4, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("I") },
-  {  666, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("*") },
-  { 0,         60, 70, NULL, (void*) &appData.font, NULL, NULL, TextBox, N_("Message (above board):") },
-  {    1, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("+") },
-  {    2, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("-") },
-  {    3, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("B") },
-  {    4, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("I") },
-  {  666, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("*") },
-  { 0,         60, 70, NULL, (void*) &appData.icsFont, NULL, NULL, TextBox, N_("ICS Chat/Console:") },
-  {    1, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("+") },
-  {    2, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("-") },
-  {    3, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("B") },
-  {    4, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("I") },
-  {  666, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("*") },
-  { 0,         60, 70, NULL, (void*) &appData.tagsFont, NULL, NULL, TextBox, N_("Edit tags / book / engine list:") },
-  {    1, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("+") },
-  {    2, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("-") },
-  {    3, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("B") },
-  {    4, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("I") },
-  {  666, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("*") },
-  { 0,         60, 70, NULL, (void*) &appData.commentFont, NULL, NULL, TextBox, N_("Edit comments:") },
-  {    1, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("+") },
-  {    2, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("-") },
-  {    3, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("B") },
-  {    4, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("I") },
-  {  666, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("*") },
-  { 0,         60, 70, NULL, (void*) &appData.historyFont, NULL, NULL, TextBox, N_("Move history / Engine Output:") },
-  {    1, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("+") },
-  {    2, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("-") },
-  {    3, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("B") },
-  {    4, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("I") },
-  {  666, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("*") },
-  { 0,         60, 70, NULL, (void*) &appData.gameListFont, NULL, NULL, TextBox, N_("Game list:") },
-  {    1, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("+") },
-  {    2, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("-") },
-  {    3, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("B") },
-  {    4, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("I") },
-  {  666, SAME_ROW, 0, NULL, (void*) &AdjustFont, NULL, NULL, Button, N_("*") },
-  {   0,  0,    0, NULL, NULL, NULL, NULL, Label, N_("\nThe * buttons will set the font to the one selected below:") },
-  {   0,  0,    0, NULL, NULL, NULL, NULL, Button, "fontsel" },
-  { 0, 0, 0, NULL, (void*) &FontsOK, "", NULL, EndMark , "" }
-};
-
-static char name[MSG_SIZ], *bold, *ital, points;
-
-static void
-BreakUp (char *font)
-{
-    char *p = name, *norm;
-    safeStrCpy(name, font, MSG_SIZ);
-    bold = StrCaseStr(name, "bold");
-    ital = StrCaseStr(name, "ital");
-    norm = StrCaseStr(name, "normal");
-    points = 0;
-    while(p && *p && !(points = atoi(p))) p = strchr(p+1, ' ');
-    if(points) p[*p == ' '] = 0;
-    if(bold) *bold = 0;
-    if(ital) *ital = 0;
-    if(norm) *norm = 0;
-}
-
-static void
-Collect ()
-{
-    if(bold) strcat(name, "Bold ");
-    if(ital) strcat(name, "Italic ");
-    if(!ital && !bold && strlen(name) < 2) strncpy(name, "Normal ", MSG_SIZ);
-    if(points) sprintf(name + strlen(name), "%d", points); else strcat(name, "%d");
-}
-
-static void
-AdjustFont (int n)
-{
-    int button = fontOptions[n].value, base = n - button;
-    char *oldFont;
-    GetWidgetText(&fontOptions[base], &oldFont);
-    BreakUp(oldFont); // take apart old font name
-    switch(button) {
-      case 1: points++; break;
-      case 2: points--; break;
-      case 3: if(bold) bold = NULL; else bold = name; break;
-      case 4: if(ital) ital = NULL; else ital = name; break;
-    }
-    Collect();
-    SetWidgetText(&fontOptions[base], name, TransientDlg);
-    ApplyFont(&fontOptions[base], name);
-}
-
-void
-FontsProc ()
-{
-    int i;
-    if(strstr(appData.font, "-*-")) { DisplayNote(_("This only works in the GTK build")); return; }
-    GenericPopUp(fontOptions, _("Fonts"), TransientDlg, BoardWindow, MODAL, 0);
-    for(i=0; i<7; i++) {
-       ApplyFont(&fontOptions[6*i], *(char**)fontOptions[6*i].target);
-       ASSIGN(oldFont[i], *(char**)fontOptions[6*i].target);
-    }
-}
-
-//------------------------------------------------------ Time Control -----------------------------------
-
-static int TcOK P((int n));
-int tmpMoves, tmpTc, tmpInc, tmpOdds1, tmpOdds2, tcType, by60;
-
-static void SetTcType P((int n));
-
-static char *
-Value (int n)
-{
-       static char buf[MSG_SIZ];
-       snprintf(buf, MSG_SIZ, "%d", n);
-       return buf;
-}
-
-static Option tcOptions[] = {
-{   0,  0,    0, NULL, (void*) &SetTcType, NULL, NULL, Button, N_("classical") },
-{   0,SAME_ROW,0,NULL, (void*) &SetTcType, NULL, NULL, Button, N_("incremental") },
-{   0,SAME_ROW,0,NULL, (void*) &SetTcType, NULL, NULL, Button, N_("fixed max") },
-{   0,  0,    0, NULL, (void*) &by60,     "",  NULL, CheckBox, N_("Divide entered times by 60") },
-{   0,  0,  200, NULL, (void*) &tmpMoves, NULL, NULL, Spin, N_("Moves per session:") },
-{   0,  0,10000, NULL, (void*) &tmpTc,    NULL, NULL, Spin, N_("Initial time (min):") },
-{   0, 0, 10000, NULL, (void*) &tmpInc,   NULL, NULL, Spin, N_("Increment or max (sec/move):") },
-{   0,  0,    0, NULL, NULL, NULL, NULL, Label, N_("Time-Odds factors:") },
-{   0,  1, 1000, NULL, (void*) &tmpOdds1, NULL, NULL, Spin, N_("Engine #1") },
-{   0,  1, 1000, NULL, (void*) &tmpOdds2, NULL, NULL, Spin, N_("Engine #2 / Human") },
-{   0,  0,    0, NULL, (void*) &TcOK, "", NULL, EndMark , "" }
-};
-
-static int
-TcOK (int n)
-{
-    char *tc, buf[MSG_SIZ];
-    if(tcType == 0 && tmpMoves <= 0) return 0;
-    if(tcType == 2 && tmpInc <= 0) return 0;
-    GetWidgetText(&tcOptions[5], &tc); // get original text, in case it is min:sec
-    if(by60) snprintf(buf, MSG_SIZ, "%d:%02d", tmpTc/60, tmpTc%60), tc=buf;
-    searchTime = 0;
-    switch(tcType) {
-      case 0:
-       if(!ParseTimeControl(tc, -1, tmpMoves)) return 0;
-       appData.movesPerSession = tmpMoves;
-       ASSIGN(appData.timeControl, tc);
-       appData.timeIncrement = -1;
-       break;
-      case 1:
-       if(!ParseTimeControl(tc, tmpInc, 0)) return 0;
-       ASSIGN(appData.timeControl, tc);
-       appData.timeIncrement = (by60 ? tmpInc/60. : tmpInc);
-       break;
-      case 2:
-       searchTime = (by60 ? tmpInc/60 : tmpInc);
-    }
-    appData.firstTimeOdds = first.timeOdds = tmpOdds1;
-    appData.secondTimeOdds = second.timeOdds = tmpOdds2;
-    Reset(True, True);
-    return 1;
-}
-
-static void
-SetTcType (int n)
-{
-    switch(tcType = n) {
-      case 0:
-       SetWidgetText(&tcOptions[4], Value(tmpMoves), TransientDlg);
-       SetWidgetText(&tcOptions[5], Value(tmpTc), TransientDlg);
-       SetWidgetText(&tcOptions[6], _("Unused"), TransientDlg);
-       break;
-      case 1:
-       SetWidgetText(&tcOptions[4], _("Unused"), TransientDlg);
-       SetWidgetText(&tcOptions[5], Value(tmpTc), TransientDlg);
-       SetWidgetText(&tcOptions[6], Value(tmpInc), TransientDlg);
-       break;
-      case 2:
-       SetWidgetText(&tcOptions[4], _("Unused"), TransientDlg);
-       SetWidgetText(&tcOptions[5], _("Unused"), TransientDlg);
-       SetWidgetText(&tcOptions[6], Value(tmpInc), TransientDlg);
-    }
-}
-
-void
-TimeControlProc ()
-{
-   if(gameMode != BeginningOfGame) {
-       DisplayError(_("Changing time control during a game is not implemented"), 0);
-       return;
-   }
-   tmpMoves = appData.movesPerSession;
-   tmpInc = appData.timeIncrement; if(tmpInc < 0) tmpInc = 0;
-   tmpOdds1 = tmpOdds2 = 1; tcType = 0;
-   tmpTc = atoi(appData.timeControl);
-   by60 = 0;
-   GenericPopUp(tcOptions, _("Time Control"), TransientDlg, BoardWindow, MODAL, 0);
-   SetTcType(searchTime ? 2 : appData.timeIncrement < 0 ? 0 : 1);
-}
-
-//------------------------------- Ask Question -----------------------------------------
-
-int SendReply P((int n));
-char pendingReplyPrefix[MSG_SIZ];
-ProcRef pendingReplyPR;
-char *answer;
-
-Option askOptions[] = {
-{ 0, 0, 0, NULL, NULL, NULL, NULL, Label,  NULL },
-{ 0, 0, 0, NULL, (void*) &answer, "", NULL, TextBox, "" },
-{ 0, 0, 0, NULL, (void*) &SendReply, "", NULL, EndMark , "" }
-};
-
-int
-SendReply (int n)
-{
-    char buf[MSG_SIZ];
-    int err;
-    char *reply=answer;
-//    GetWidgetText(&askOptions[1], &reply);
-    safeStrCpy(buf, pendingReplyPrefix, sizeof(buf)/sizeof(buf[0]) );
-    if (*buf) strncat(buf, " ", MSG_SIZ - strlen(buf) - 1);
-    strncat(buf, reply, MSG_SIZ - strlen(buf) - 1);
-    strncat(buf, "\n",  MSG_SIZ - strlen(buf) - 1);
-    OutputToProcess(pendingReplyPR, buf, strlen(buf), &err); // does not go into debug file??? => bug
-    if (err) DisplayFatalError(_("Error writing to chess program"), err, 0);
-    return TRUE;
-}
-
-void
-AskQuestion (char *title, char *question, char *replyPrefix, ProcRef pr)
-{
-    safeStrCpy(pendingReplyPrefix, replyPrefix, sizeof(pendingReplyPrefix)/sizeof(pendingReplyPrefix[0]) );
-    pendingReplyPR = pr;
-    ASSIGN(answer, "");
-    askOptions[0].name = question;
-    if(GenericPopUp(askOptions, title, AskDlg, BoardWindow, MODAL, 0))
-       AddHandler(&askOptions[1], AskDlg, 2);
-}
-
-//---------------------------- Promotion Popup --------------------------------------
-
-static int count;
-
-static void PromoPick P((int n));
-
-static Option promoOptions[] = {
-{   0,         0,    0, NULL, (void*) &PromoPick, NULL, NULL, Button, NULL },
-{   0,  SAME_ROW,    0, NULL, (void*) &PromoPick, NULL, NULL, Button, NULL },
-{   0,  SAME_ROW,    0, NULL, (void*) &PromoPick, NULL, NULL, Button, NULL },
-{   0,  SAME_ROW,    0, NULL, (void*) &PromoPick, NULL, NULL, Button, NULL },
-{   0,  SAME_ROW,    0, NULL, (void*) &PromoPick, NULL, NULL, Button, NULL },
-{   0,  SAME_ROW,    0, NULL, (void*) &PromoPick, NULL, NULL, Button, NULL },
-{   0,  SAME_ROW,    0, NULL, (void*) &PromoPick, NULL, NULL, Button, NULL },
-{   0,  SAME_ROW,    0, NULL, (void*) &PromoPick, NULL, NULL, Button, NULL },
-{   0, SAME_ROW | NO_OK, 0, NULL, NULL, "", NULL, EndMark , "" }
-};
-
-static void
-PromoPick (int n)
-{
-    int promoChar = promoOptions[n+count].value;
-
-    PopDown(PromoDlg);
-
-    if (promoChar == 0) fromX = -1;
-    if (fromX == -1) return;
-
-    if (! promoChar) {
-       fromX = fromY = -1;
-       ClearHighlights();
-       return;
-    }
-    if(promoChar == '=' && !IS_SHOGI(gameInfo.variant)) promoChar = NULLCHAR;
-    UserMoveEvent(fromX, fromY, toX, toY, promoChar);
-
-    if (!appData.highlightLastMove || gotPremove) ClearHighlights();
-    if (gotPremove) SetPremoveHighlights(fromX, fromY, toX, toY);
-    fromX = fromY = -1;
-}
-
-static void
-SetPromo (char *name, int nr, char promoChar)
-{
-    ASSIGN(promoOptions[nr].name, name);
-    promoOptions[nr].value = promoChar;
-    promoOptions[nr].min = SAME_ROW;
-}
-
-void
-PromotionPopUp (char choice)
-{ // choice depends on variant: prepare dialog acordingly
-  count = 8;
-  SetPromo(_("Cancel"), --count, -1); // Beware: GenericPopUp cannot handle user buttons named "cancel" (lowe case)!
-  if(choice != '+' && !IS_SHOGI(gameInfo.variant)) {
-    if (!appData.testLegality || gameInfo.variant == VariantSuicide ||
-        gameInfo.variant == VariantSpartan && !WhiteOnMove(currentMove) ||
-        gameInfo.variant == VariantGiveaway) {
-      SetPromo(_("King"), --count, 'k');
-    }
-    if(gameInfo.variant == VariantSpartan && !WhiteOnMove(currentMove)) {
-      SetPromo(_("Captain"), --count, 'c');
-      SetPromo(_("Lieutenant"), --count, 'l');
-      SetPromo(_("General"), --count, 'g');
-      SetPromo(_("Warlord"), --count, 'w');
-    } else {
-      SetPromo(_("Knight"), --count, 'n');
-      SetPromo(_("Bishop"), --count, 'b');
-      SetPromo(_("Rook"), --count, 'r');
-      if(gameInfo.variant == VariantCapablanca ||
-         gameInfo.variant == VariantGothic ||
-         gameInfo.variant == VariantCapaRandom) {
-        SetPromo(_("Archbishop"), --count, 'a');
-        SetPromo(_("Chancellor"), --count, 'c');
-      }
-      SetPromo(_("Queen"), --count, 'q');
-      if(gameInfo.variant == VariantChuChess)
-        SetPromo(_("Lion"), --count, 'l');
-    }
-  } else // [HGM] shogi
-  {
-      SetPromo(_("Defer"), --count, '=');
-      SetPromo(_("Promote"), --count, '+');
-  }
-  promoOptions[count].min = 0;
-  GenericPopUp(promoOptions + count, "Promotion", PromoDlg, BoardWindow, NONMODAL, 0);
-}
-
-//---------------------------- Chat Windows ----------------------------------------------
-
-static char *line, *memo, *chatMemo, *partner, *texts[MAX_CHAT], dirty[MAX_CHAT], *inputs[MAX_CHAT], *icsLine, *tmpLine;
-static int activePartner;
-int hidden = 1;
-
-void ChatSwitch P((int n));
-int  ChatOK P((int n));
-
-#define CHAT_ICS     6
-#define CHAT_PARTNER 8
-#define CHAT_OUT    11
-#define CHAT_PANE   12
-#define CHAT_IN     13
-
-void PaneSwitch P((void));
-void ClearChat P((void));
-
-WindowPlacement wpTextMenu;
-
-int
-ContextMenu (Option *opt, int button, int x, int y, char *text, int index)
-{ // callback for ICS-output clicks; handles button 3, passes on other events
-  int h;
-  if(button == -3) return TRUE; // supress default GTK context menu on up-click
-  if(button != 3) return FALSE;
-  if(index == -1) { // pre-existing selection in memo
-    strncpy(clickedWord, text, MSG_SIZ);
-  } else { // figure out what word was clicked
-    char *start, *end;
-    start = end = text + index;
-    while(isalnum(*end)) end++;
-    while(start > text && isalnum(start[-1])) start--;
-    clickedWord[0] = NULLCHAR;
-    if(end-start >= 80) end = start + 80; // intended for small words and numbers
-    strncpy(clickedWord, start, end-start); clickedWord[end-start] = NULLCHAR;
-  }
-  click = !shellUp[TextMenuDlg]; // request auto-popdown of textmenu when we popped it up
-  h = wpTextMenu.height; // remembered height of text menu
-  if(h <= 0) h = 65;     // when not available, position w.r.t. top
-  GetPlacement(ChatDlg, &wpTextMenu);
-  if(opt->target == (void*) &chatMemo) wpTextMenu.y += (wpTextMenu.height - 30)/2; // click in chat
-  wpTextMenu.x += x - 50; wpTextMenu.y += y - h + 50; // request positioning
-  if(wpTextMenu.x < 0) wpTextMenu.x = 0;
-  if(wpTextMenu.y < 0) wpTextMenu.y = 0;
-  wpTextMenu.width = wpTextMenu.height = -1;
-  IcsTextPopUp();
-  return TRUE;
-}
-
-Option chatOptions[] = {
-{  0,  0,   0, NULL, NULL, NULL, NULL, Label , N_("Chats:") },
-{ 1, SAME_ROW|TT, 75, NULL, (void*) &ChatSwitch, NULL, NULL, Button, N_("New Chat") },
-{ 2, SAME_ROW|TT, 75, NULL, (void*) &ChatSwitch, NULL, NULL, Button, N_("New Chat") },
-{ 3, SAME_ROW|TT, 75, NULL, (void*) &ChatSwitch, NULL, NULL, Button, N_("New Chat") },
-{ 4, SAME_ROW|TT, 75, NULL, (void*) &ChatSwitch, NULL, NULL, Button, N_("New Chat") },
-{ 5, SAME_ROW|TT, 75, NULL, (void*) &ChatSwitch, NULL, NULL, Button, N_("New Chat") },
-{ 250, T_VSCRL | T_FILL | T_WRAP | T_TOP,    510, NULL, (void*) &memo, NULL, (void*) &ContextMenu, TextBox, "" },
-{  0,  0,   0, NULL, NULL, "", NULL, Break , "" },
-{ 0,   T_TOP,    100, NULL, (void*) &partner, NULL, NULL, TextBox, N_("Chat partner:") },
-{  0, SAME_ROW, 0, NULL, (void*) &ClearChat,  NULL, NULL, Button, N_("End Chat") },
-{  0, SAME_ROW, 0, NULL, (void*) &PaneSwitch, NULL, NULL, Button, N_("Hide") },
-{ 250, T_VSCRL | T_FILL | T_WRAP | T_TOP,    510, NULL, (void*) &chatMemo, NULL, (void*) &ContextMenu, TextBox, "" },
-{  0,  0,   0, NULL, NULL, "", NULL, Break , "" },
-{  0,    0,  510, NULL, (void*) &line, NULL, NULL, TextBox, "" },
-{ 0, NO_OK|SAME_ROW, 0, NULL, (void*) &ChatOK, NULL, NULL, EndMark , "" }
-};
-
-static void
-PutText (char *text, int pos)
-{
-    char buf[MSG_SIZ], *p;
-    DialogClass dlg = ChatDlg;
-    Option *opt = &chatOptions[CHAT_IN];
-
-    if(strstr(text, "$add ") == text) {
-       GetWidgetText(&boxOptions[INPUT], &p);
-       snprintf(buf, MSG_SIZ, "%s%s", p, text+5); text = buf;
-       pos += strlen(p) - 5;
-    }
-    if(shellUp[InputBoxDlg]) opt = &boxOptions[INPUT], dlg = InputBoxDlg; // for the benefit of Xaw give priority to ICS Input Box
-    SetWidgetText(opt, text, dlg);
-    SetInsertPos(opt, pos);
-    HardSetFocus(opt, dlg);
-    CursorAtEnd(opt);
-}
-
-int
-IcsHist (int n, Option *opt, DialogClass dlg)
-{   // [HGM] input: let up-arrow recall previous line from history
-    char *val = NULL; // to suppress spurious warning
-    int chat, start;
-
-    if(opt != &chatOptions[CHAT_IN] && !(opt == &chatOptions[CHAT_PARTNER] && n == 33)) return 0;
-    switch(n) {
-      case 5:
-       if(!hidden) ClearChat();
-       break;
-      case 8:
-       if(!hidden) PaneSwitch();
-       break;
-      case 33: // <Esc>
-       if(1) BoardToTop(); else
-       if(hidden) BoardToTop();
-       else PaneSwitch();
-       break;
-      case 15:
-       NewChat(lastTalker);
-       break;
-      case 14:
-       for(chat=0; chat < MAX_CHAT; chat++) if(!chatPartner[chat][0]) break;
-       if(chat < MAX_CHAT) ChatSwitch(chat + 1);
-       break;
-      case 10: // <Tab>
-       chat = start = (activePartner - hidden + MAX_CHAT) % MAX_CHAT;
-        while(!dirty[chat = (chat + 1)%MAX_CHAT]) if(chat == start) break;
-       if(!dirty[chat])
-        while(!chatPartner[chat = (chat + 1)%MAX_CHAT][0]) if(chat == start) break;
-       if(!chatPartner[chat][0]) break; // if all unused, ignore
-        ChatSwitch(chat + 1);
-       break;
-      case 1:
-       GetWidgetText(opt, &val);
-       val = PrevInHistory(val);
-       break;
-      case -1:
-       val = NextInHistory();
-    }
-    SetWidgetText(opt, val = val ? val : "", dlg);
-    SetInsertPos(opt, strlen(val));
-    return 1;
-}
-
-void
-OutputChatMessage (int partner, char *mess)
-{
-    char *p = texts[partner];
-    int len = strlen(mess) + 1;
-
-    if(!DialogExists(ChatDlg)) return;
-    if(p) len += strlen(p);
-    texts[partner] = (char*) malloc(len);
-    snprintf(texts[partner], len, "%s%s", p ? p : "", mess);
-    FREE(p);
-    if(partner == activePartner && !hidden) {
-       AppendText(&chatOptions[CHAT_OUT], mess);
-       SetInsertPos(&chatOptions[CHAT_OUT], len-2);
-    } else {
-       SetColor("#FFC000", &chatOptions[partner + 1]);
-       dirty[partner] = 1;
-    }
-}
-
-int
-ChatOK (int n)
-{   // can only be called through <Enter> in chat-partner text-edit, as there is no OK button
-    char buf[MSG_SIZ];
-
-    if(!hidden && (!partner || strcmp(partner, chatPartner[activePartner]) || !*partner)) {
-       safeStrCpy(chatPartner[activePartner], partner, MSG_SIZ);
-       SetWidgetText(&chatOptions[CHAT_OUT], "", -1); // clear text if we alter partner
-       SetWidgetText(&chatOptions[CHAT_IN], "", ChatDlg); // clear text if we alter partner
-       SetWidgetLabel(&chatOptions[activePartner+1], chatPartner[activePartner][0] ? chatPartner[activePartner] : _("New Chat"));
-       if(!*partner) PaneSwitch();
-       HardSetFocus(&chatOptions[CHAT_IN], 0);
-    }
-    if(line[0] || hidden) { // something was typed (for ICS commands we also allow empty line!)
-       SetWidgetText(&chatOptions[CHAT_IN], "", ChatDlg);
-       // from here on it could be back-end
-       if(line[strlen(line)-1] == '\n') line[strlen(line)-1] = NULLCHAR;
-       SaveInHistory(line);
-       if(hidden || !*chatPartner[activePartner]) snprintf(buf, MSG_SIZ, "%s\n", line); else // command for ICS
-       if(!strcmp("whispers", chatPartner[activePartner]))
-             snprintf(buf, MSG_SIZ, "whisper %s\n", line); // WHISPER box uses "whisper" to send
-       else if(!strcmp("shouts", chatPartner[activePartner]))
-             snprintf(buf, MSG_SIZ, "shout %s\n", line); // SHOUT box uses "shout" to send
-       else if(!strcmp("c-shouts", chatPartner[activePartner]))
-             snprintf(buf, MSG_SIZ, "cshout %s\n", line); // C-SHOUT box uses "cshout" to send
-       else if(!strcmp("kibitzes", chatPartner[activePartner]))
-             snprintf(buf, MSG_SIZ, "kibitz %s\n", line); // KIBITZ box uses "kibitz" to send
-       else {
-           if(!atoi(chatPartner[activePartner])) {
-               snprintf(buf, MSG_SIZ, "> %s\n", line); // echo only tells to handle, not channel
-               OutputChatMessage(activePartner, buf);
-               snprintf(buf, MSG_SIZ, "xtell %s %s\n", chatPartner[activePartner], line);
-           } else
-               snprintf(buf, MSG_SIZ, "tell %s %s\n", chatPartner[activePartner], line);
-       }
-       SendToICS(buf);
-    }
-    return FALSE; // never pop down
-}
-
-void
-DelayedSetText ()
-{
-    SetWidgetText(&chatOptions[CHAT_IN], tmpLine, -1); // leave focus on chat-partner field!
-    SetInsertPos(&chatOptions[CHAT_IN], strlen(tmpLine));
-}
-
-void
-DelayedScroll ()
-{   // If we do this immediately it does it before shrinking the memo, so the lower half remains hidden (Ughh!)
-    SetInsertPos(&chatOptions[CHAT_ICS], 999999);
-    SetWidgetText(&chatOptions[CHAT_IN], tmpLine, ChatDlg);
-    SetInsertPos(&chatOptions[CHAT_IN], strlen(tmpLine));
-}
-
-void
-ChatSwitch (int n)
-{
-    int i, j;
-    char *v;
-    if(chatOptions[CHAT_ICS].type == Skip) hidden = 0; // In Xaw there is no ICS pane we can hide behind
-    Show(&chatOptions[CHAT_PANE], 0); // show
-    if(hidden) ScheduleDelayedEvent(DelayedScroll, 50); // Awful!
-    else ScheduleDelayedEvent(DelayedSetText, 50);
-    GetWidgetText(&chatOptions[CHAT_IN], &v);
-    if(hidden) { ASSIGN(icsLine, v); } else { ASSIGN(inputs[activePartner], v); }
-    hidden = 0;
-    activePartner = --n;
-    if(!texts[n]) texts[n] = strdup("");
-    dirty[n] = 0;
-    SetWidgetText(&chatOptions[CHAT_OUT], texts[n], ChatDlg);
-    SetInsertPos(&chatOptions[CHAT_OUT], strlen(texts[n]));
-    SetWidgetText(&chatOptions[CHAT_PARTNER], chatPartner[n], ChatDlg);
-    for(i=j=0; i<MAX_CHAT; i++) {
-       SetWidgetLabel(&chatOptions[++j], *chatPartner[i] ? chatPartner[i] : _("New Chat"));
-       SetColor(dirty[i] ? "#FFC000" : "#FFFFFF", &chatOptions[j]);
-    }
-    if(!inputs[n]) { ASSIGN(inputs[n], ""); }
-//    SetWidgetText(&chatOptions[CHAT_IN], inputs[n], ChatDlg); // does not work (in this widget only)
-//    SetInsertPos(&chatOptions[CHAT_IN], strlen(inputs[n]));
-    tmpLine = inputs[n]; // for the delayed event
-    HardSetFocus(&chatOptions[strcmp(chatPartner[n], "") ? CHAT_IN : CHAT_PARTNER], 0);
-}
-
-void
-PaneSwitch ()
-{
-    char *v;
-    Show(&chatOptions[CHAT_PANE], hidden = 1); // hide
-    GetWidgetText(&chatOptions[CHAT_IN], &v);
-    ASSIGN(inputs[activePartner], v);
-    if(!icsLine) { ASSIGN(icsLine, ""); }
-    tmpLine = icsLine; ScheduleDelayedEvent(DelayedSetText, 50);
-//    SetWidgetText(&chatOptions[CHAT_IN], icsLine, ChatDlg); // does not work (in this widget only)
-//    SetInsertPos(&chatOptions[CHAT_IN], strlen(icsLine));
-}
-
-void
-ClearChat ()
-{   // clear the chat to make it free for other use
-    chatPartner[activePartner][0] = NULLCHAR;
-    ASSIGN(texts[activePartner], "");
-    ASSIGN(inputs[activePartner], "");
-    SetWidgetText(&chatOptions[CHAT_PARTNER], "", ChatDlg);
-    SetWidgetText(&chatOptions[CHAT_OUT], "", ChatDlg);
-    SetWidgetText(&chatOptions[CHAT_IN], "", ChatDlg);
-    SetWidgetLabel(&chatOptions[activePartner+1], _("New Chat"));
-    HardSetFocus(&chatOptions[CHAT_PARTNER], 0);
-}
-
-static void
-NewChat (char *name)
-{   // open a chat on program request. If no empty one available, use last
-    int i;
-    for(i=0; i<MAX_CHAT-1; i++) if(!chatPartner[i][0]) break;
-    safeStrCpy(chatPartner[i], name, MSG_SIZ);
-    ChatSwitch(i+1);
-}
-
-void
-ConsoleWrite(char *message, int count)
-{
-    if(shellUp[ChatDlg] && chatOptions[CHAT_ICS].type != Skip) { // in Xaw this is a no-op
-       if(*message == 7) {
-           message++; // remove bell
-           if(strcmp(message, "\n")) return;
-       }
-       AppendColorized(&chatOptions[CHAT_ICS], message, count);
-       SetInsertPos(&chatOptions[CHAT_ICS], 999999);
-    }
-}
-
-void
-ChatPopUp ()
-{
-    if(GenericPopUp(chatOptions, _("ICS Interaction"), ChatDlg, BoardWindow, NONMODAL, appData.topLevel))
-       AddHandler(&chatOptions[CHAT_PARTNER], ChatDlg, 2), AddHandler(&chatOptions[CHAT_IN], ChatDlg, 2); // treats return as OK
-    Show(&chatOptions[CHAT_PANE], hidden = 1); // hide
-//    HardSetFocus(&chatOptions[CHAT_IN], 0);
-    MarkMenu("View.OpenChatWindow", ChatDlg);
-    CursorAtEnd(&chatOptions[CHAT_IN]);
-}
-
-void
-ChatProc ()
-{
-    if(shellUp[ChatDlg]) PopDown(ChatDlg);
-    else ChatPopUp();
-}
-
-void
-ConsoleAutoPopUp (char *buf)
-{
-       if(*buf == 27) { if(appData.icsActive && DialogExists(ChatDlg)) HardSetFocus (&chatOptions[CHAT_IN], ChatDlg); return; }
-       if(!appData.autoBox) return;
-       if(appData.icsActive) { // text typed to board in ICS mode: divert to ICS input box
-           if(DialogExists(ChatDlg)) { // box already exists: append to current contents
-               char *p, newText[MSG_SIZ];
-               GetWidgetText(&chatOptions[CHAT_IN], &p);
-               snprintf(newText, MSG_SIZ, "%s%c", p, *buf);
-               SetWidgetText(&chatOptions[CHAT_IN], newText, ChatDlg);
-               if(shellUp[ChatDlg]) HardSetFocus (&chatOptions[CHAT_IN], ChatDlg); //why???
-           } else { ASSIGN(line, buf); } // box did not exist: make sure it pops up with char in it
-           ChatPopUp();
-       } else PopUpMoveDialog(*buf);
-}
-
-void
-EchoOn ()
-{
-    if(!noEcho) return;
-    system("stty echo");
-    WidgetEcho(&chatOptions[CHAT_IN], 1);
-    noEcho = False;
-}
-
-void
-EchoOff ()
-{
-    system("stty -echo");
-    WidgetEcho(&chatOptions[CHAT_IN], 0);
-    noEcho = True;
-}
-
-//--------------------------------- Game-List options dialog ------------------------------------------
-
-char *strings[LPUSERGLT_SIZE];
-int stringPtr;
-
-void
-GLT_ClearList ()
-{
-    strings[0] = NULL;
-    stringPtr = 0;
-}
-
-void
-GLT_AddToList (char *name)
-{
-    strings[stringPtr++] = name;
-    strings[stringPtr] = NULL;
-}
-
-Boolean
-GLT_GetFromList (int index, char *name)
-{
-  safeStrCpy(name, strings[index], MSG_SIZ);
-  return TRUE;
-}
-
-void
-GLT_DeSelectList ()
-{
-}
-
-static void GLT_Button P((int n));
-static int GLT_OK P((int n));
-
-static Option listOptions[] = {
-{300, LR|TB, 200, NULL, (void*) strings, NULL, NULL, ListBox, "" }, // For GTK we need to specify a height, as default would just show 3 lines
-{ 0,    0,     0, NULL, (void*) &GLT_Button, NULL, NULL, Button, N_("factory") },
-{ 0, SAME_ROW, 0, NULL, (void*) &GLT_Button, NULL, NULL, Button, N_("up") },
-{ 0, SAME_ROW, 0, NULL, (void*) &GLT_Button, NULL, NULL, Button, N_("down") },
-{ 0, SAME_ROW, 0, NULL, (void*) &GLT_OK, "", NULL, EndMark , "" }
-};
-
-static int
-GLT_OK (int n)
-{
-    GLT_ParseList();
-    appData.gameListTags = strdup(lpUserGLT);
-    GameListUpdate();
-    return 1;
-}
-
-static void
-GLT_Button (int n)
-{
-    int index = SelectedListBoxItem (&listOptions[0]);
-    char *p;
-    if (index < 0) {
-       DisplayError(_("No tag selected"), 0);
-       return;
-    }
-    p = strings[index];
-    if (n == 3) {
-        if(index >= strlen(GLT_ALL_TAGS)) return;
-       strings[index] = strings[index+1];
-       strings[++index] = p;
-        LoadListBox(&listOptions[0], "?", index, index-1); // only change the two specified entries
-    } else
-    if (n == 2) {
-        if(index == 0) return;
-       strings[index] = strings[index-1];
-       strings[--index] = p;
-        LoadListBox(&listOptions[0], "?", index, index+1);
-    } else
-    if (n == 1) {
-      safeStrCpy(lpUserGLT, GLT_DEFAULT_TAGS, LPUSERGLT_SIZE);
-      GLT_TagsToList(lpUserGLT);
-      index = 0;
-      LoadListBox(&listOptions[0], "?", -1, -1);
-    }
-    HighlightListBoxItem(&listOptions[0], index);
-}
-
-void
-GameListOptionsPopUp (DialogClass parent)
-{
-    safeStrCpy(lpUserGLT, appData.gameListTags, LPUSERGLT_SIZE);
-    GLT_TagsToList(lpUserGLT);
-
-    GenericPopUp(listOptions, _("Game-list options"), TransientDlg, parent, MODAL, 0);
-}
-
-void
-GameListOptionsProc ()
-{
-    GameListOptionsPopUp(BoardWindow);
-}
-
-//----------------------------- Error popup in various uses -----------------------------
-
-/*
- * [HGM] Note:
- * XBoard has always had some pathologic behavior with multiple simultaneous error popups,
- * (which can occur even for modal popups when asynchrounous events, e.g. caused by engine, request a popup),
- * and this new implementation reproduces that as well:
- * Only the shell of the last instance is remembered in shells[ErrorDlg] (which replaces errorShell),
- * so that PopDowns ordered from the code always refer to that instance, and once that is down,
- * have no clue as to how to reach the others. For the Delete Window button calling PopDown this
- * has now been repaired, as the action routine assigned to it gets the shell passed as argument.
- */
-
-int errorUp = False;
-
-void
-ErrorPopDown ()
-{
-    if (!errorUp) return;
-    dialogError = errorUp = False;
-    PopDown(ErrorDlg); PopDown(FatalDlg); // on explicit request we pop down any error dialog
-    if (errorExitStatus != -1) ExitEvent(errorExitStatus);
-}
-
-int
-ErrorOK (int n)
-{
-    dialogError = errorUp = False;
-    PopDown(n == 1 ? FatalDlg : ErrorDlg); // kludge: non-modal dialogs have one less (dummy) option
-    if (errorExitStatus != -1) ExitEvent(errorExitStatus);
-    return FALSE; // prevent second Popdown !
-}
-
-static Option errorOptions[] = {
-{   0,  0,    0, NULL, NULL, NULL, NULL, Label,  NULL }, // dummy option: will never be displayed
-{   0,  0,    0, NULL, NULL, NULL, NULL, Label,  NULL }, // textValue field will be set before popup
-{ 0,NO_CANCEL,0, NULL, (void*) &ErrorOK, "", NULL, EndMark , "" }
-};
-
-void
-ErrorPopUp (char *title, char *label, int modal)
-{
-    errorUp = True;
-    errorOptions[1].name = label;
-    if(dialogError = shellUp[TransientDlg])
-       GenericPopUp(errorOptions+1, title, FatalDlg, TransientDlg, MODAL, 0); // pop up as daughter of the transient dialog
-    else if(dialogError = shellUp[MasterDlg])
-       GenericPopUp(errorOptions+1, title, FatalDlg, MasterDlg, MODAL, 0); // pop up as daughter of the master dialog
-    else
-       GenericPopUp(errorOptions+modal, title, modal ? FatalDlg: ErrorDlg, BoardWindow, modal, 0); // kludge: option start address indicates modality
-}
-
-void
-DisplayError (String message, int error)
-{
-    char buf[MSG_SIZ];
-
-    if (error == 0) {
-       if (appData.debugMode || appData.matchMode) {
-           fprintf(stderr, "%s: %s\n", programName, message);
-       }
-    } else {
-       if (appData.debugMode || appData.matchMode) {
-           fprintf(stderr, "%s: %s: %s\n",
-                   programName, message, strerror(error));
-       }
-       snprintf(buf, sizeof(buf), "%s: %s", message, strerror(error));
-       message = buf;
-    }
-    ErrorPopUp(_("Error"), message, FALSE);
-}
-
-
-void
-DisplayMoveError (String message)
-{
-    fromX = fromY = -1;
-    ClearHighlights();
-    DrawPosition(TRUE, NULL); // selective redraw would miss the from-square of the rejected move, displayed empty after drag, but not marked damaged!
-    if (appData.debugMode || appData.matchMode) {
-       fprintf(stderr, "%s: %s\n", programName, message);
-    }
-    if (appData.popupMoveErrors) {
-       ErrorPopUp(_("Error"), message, FALSE);
-    } else {
-       DisplayMessage(message, "");
-    }
-}
-
-
-void
-DisplayFatalError (String message, int error, int status)
-{
-    char buf[MSG_SIZ];
-
-    if(status == 666) { // ignore this error when ICS Console window is up
-       if(shellUp[ChatDlg]) return;
-       status = 0;
-    }
-
-    errorExitStatus = status;
-    if (error == 0) {
-       fprintf(stderr, "%s: %s\n", programName, message);
-    } else {
-       fprintf(stderr, "%s: %s: %s\n",
-               programName, message, strerror(error));
-       snprintf(buf, sizeof(buf), "%s: %s", message, strerror(error));
-       message = buf;
-    }
-    if(mainOptions[W_BOARD].handle) {
-       if (appData.popupExitMessage) {
-           if(appData.icsActive) SendToICS("logout\n"); // [HGM] make sure no new games will be started
-           ErrorPopUp(status ? _("Fatal Error") : _("Exiting"), message, TRUE);
-       } else {
-           ExitEvent(status);
-       }
-    }
-}
-
-void
-DisplayInformation (String message)
-{
-    ErrorPopDown();
-    ErrorPopUp(_("Information"), message, TRUE);
-}
-
-void
-DisplayNote (String message)
-{
-    ErrorPopDown();
-    ErrorPopUp(_("Note"), message, FALSE);
-}
-
-void
-DisplayTitle (char *text)
-{
-    char title[MSG_SIZ];
-    char icon[MSG_SIZ];
-
-    if (text == NULL) text = "";
-
-    if(partnerUp) { SetDialogTitle(DummyDlg, text); return; }
-
-    if (*text != NULLCHAR) {
-      safeStrCpy(icon, text, sizeof(icon)/sizeof(icon[0]) );
-      safeStrCpy(title, text, sizeof(title)/sizeof(title[0]) );
-    } else if (appData.icsActive) {
-        snprintf(icon, sizeof(icon), "%s", appData.icsHost);
-       snprintf(title, sizeof(title), "%s: %s", programName, appData.icsHost);
-    } else if (appData.cmailGameName[0] != NULLCHAR) {
-        snprintf(icon, sizeof(icon), "%s", "CMail");
-       snprintf(title,sizeof(title), "%s: %s", programName, "CMail");
-#ifdef GOTHIC
-    // [HGM] license: This stuff should really be done in back-end, but WinBoard already had a pop-up for it
-    } else if (gameInfo.variant == VariantGothic) {
-      safeStrCpy(icon,  programName, sizeof(icon)/sizeof(icon[0]) );
-      safeStrCpy(title, GOTHIC,     sizeof(title)/sizeof(title[0]) );
-#endif
-#ifdef FALCON
-    } else if (gameInfo.variant == VariantFalcon) {
-      safeStrCpy(icon, programName, sizeof(icon)/sizeof(icon[0]) );
-      safeStrCpy(title, FALCON, sizeof(title)/sizeof(title[0]) );
-#endif
-    } else if (appData.noChessProgram) {
-      safeStrCpy(icon, programName, sizeof(icon)/sizeof(icon[0]) );
-      safeStrCpy(title, programName, sizeof(title)/sizeof(title[0]) );
-    } else {
-      safeStrCpy(icon, first.tidy, sizeof(icon)/sizeof(icon[0]) );
-       snprintf(title,sizeof(title), "%s: %s", programName, first.tidy);
-    }
-    SetWindowTitle(text, title, icon);
-}
-
-char *textPtr;
-char *texEscapes[] = { "s-1", "s0", "&", "*(L", "*(R", NULL };
-
-int
-GetNext(FILE *f)
-{
-    if(textPtr) return *textPtr ? *textPtr++ : EOF;
-    return fgetc(f);
-}
-
-static char *
-ReadLine (FILE *f)
-{
-    static char buf[MSG_SIZ];
-    int i = 0, c;
-    while((c = GetNext(f)) != '\n') { if(c == EOF) return NULL; buf[i++] = c; }
-    buf[i] = NULLCHAR;
-    return buf;
-}
-
-void
-GetHelpText (FILE *f, char *name)
-{
-    char *line, buf[MSG_SIZ], title[MSG_SIZ], text[10000], *p = text, *q = text;
-    int len, cnt = 0;
-    while(*name == '\n') name++;
-    snprintf(buf, MSG_SIZ, ".B %s", name);
-    len = strlen(buf);
-    for(len=3; buf[len] && buf[len] != '(' && buf[len] != ':' && buf[len] != '.' && buf[len] != '?' && buf[len] != '\n'; len++);
-    buf[len] = NULLCHAR;
-    while(buf[--len] == ' ') buf[len] = NULLCHAR; len++;
-    snprintf(title, MSG_SIZ, "Help on '%s'", buf+3);
-    while((line = ReadLine(f))) {
-       if(!strncmp(line, buf, len) || !strncmp(line, ".SS ", 4) && !strncmp(line+4, buf+3, len-3)
-                             || !strncmp(line, ".IX Item \"", 10) && !strncmp(line+10, buf+3, len-3)) {
-           while((line = ReadLine(f)) && (cnt == 0 || strncmp(line, ".B ", 3) && strncmp(line, ".SS ", 4) && strncmp(line, ".IX ", 4))) {
-               if(!*line) { *p++ = '\n'; *p++ = '\n'; q = p; continue; }
-               if(*line == '.') continue;
-               *p++ = ' '; cnt++;
-               while(*line) {
-                   if(*line < ' ') { line++; continue;}
-                   if(*line == '\\') {
-                       char **esc;
-                       line++;
-                       for(esc = texEscapes; *esc; esc++) {
-                           len = strlen(*esc);
-                           if(!strncmp(*esc, line, len)) {
-                               line += len;
-                               break;
-                           }
-                       }
-                       continue;
-                   }
-                   if(*line == ' ' && p - q > 80) *line = '\n', q = p;
-                   *p++ = *line++;
-               }
-               if(p - text > 9900) break;
-           }
-           *p = NULLCHAR;
-           ErrorPopUp(title, text, FALSE);
-           return;
-       }
-    }
-    snprintf(text, MSG_SIZ, "No help available on '%s'\n", buf+3);
-    DisplayNote(text);
-}
-
-void
-DisplayHelp (char *name)
-{
-    static char *xboardMan, *manText[2], tidy[MSG_SIZ], engMan[MSG_SIZ];
-    char buf[MSG_SIZ], adapter[MSG_SIZ], *eng;
-    int n = 0;
-    FILE *f;
-    if(!xboardMan) {
-       xboardMan = BufferCommandOutput("man -w xboard", MSG_SIZ); // obtain path to XBoard's man file
-       if(xboardMan) xboardMan[strlen(xboardMan)-1] = NULLCHAR;   // strip off traling linefeed
-    }
-    if(currentCps) { // for engine options we have to look in engine manual
-       snprintf(buf, MSG_SIZ, "man -w ");            // get (tidied) engine name in buf
-       TidyProgramName(currentCps->program, "localhost", adapter);       // name of binary we are actually running
-       TidyProgramName(currentCps == &first ? appData.firstChessProgram : appData.secondChessProgram, "localhost", buf+7);
-       if(strcmp(buf+7, adapter) && StrCaseStr(name, adapter) == name) { // option starts with name of apparent proxy for engine
-           safeStrCpy(buf+7, adapter, MSG_SIZ-7);    // use adapter manual
-           name += strlen(adapter);                  // strip adapter name of option
-           while(*name == ' ') name++;
-       }
-       if(strcmp(buf, tidy)) {                       // is different engine from last time
-           FREE(manText[1]); manText[1] = NULL;      // so any currently held text is worthless
-           safeStrCpy(tidy, buf, MSG_SIZ);           // remember current engine
-           eng = BufferCommandOutput(tidy, MSG_SIZ); // obtain path to  its man file
-           safeStrCpy(engMan, eng, strlen(eng));     // and remember that too
-           FREE(eng);
-       }
-       safeStrCpy(buf, engMan, MSG_SIZ); n = 1;      // use engine man
-    } else snprintf(buf, MSG_SIZ, "%s", xboardMan);   // use xboard man
-    f = fopen(buf, "r");
-    if(f) {
-       char *msg = "Right-clicking menu item or dialog text pops up help on it";
-       ASSIGN(appData.suppress, msg);
-       if(strstr(buf, ".gz")) { // man file is gzipped
-           if(!manText[n]) {    // unzipped text not buffered yet
-               snprintf(tidy, MSG_SIZ, "gunzip -c %s", buf);
-               manText[n] = BufferCommandOutput(tidy, 250000); // store unzipped in buffer
-           }
-           textPtr = manText[n];// use buffered unzipped text
-       } else textPtr = NULL;   // use plaintext man file directly
-       GetHelpText(f, name);
-       fclose(f);
-    } else if(currentCps) DisplayNote("No manual is installed for this engine");
-}
-
-#define PAUSE_BUTTON "P"
-#define PIECE_MENU_SIZE 18
-static String pieceMenuStrings[2][PIECE_MENU_SIZE+1] = {
-    { N_("White"), "----", N_("Pawn"), N_("Knight"), N_("Bishop"), N_("Rook"),
-      N_("Queen"), N_("King"), "----", N_("Elephant"), N_("Cannon"),
-      N_("Archbishop"), N_("Chancellor"), "----", N_("Promote"), N_("Demote"),
-      N_("Empty square"), N_("Clear board"), NULL },
-    { N_("Black"), "----", N_("Pawn"), N_("Knight"), N_("Bishop"), N_("Rook"),
-      N_("Queen"), N_("King"), "----", N_("Elephant"), N_("Cannon"),
-      N_("Archbishop"), N_("Chancellor"), "----", N_("Promote"), N_("Demote"),
-      N_("Empty square"), N_("Clear board"), NULL }
-};
-/* must be in same order as pieceMenuStrings! */
-static ChessSquare pieceMenuTranslation[2][PIECE_MENU_SIZE] = {
-    { WhitePlay, (ChessSquare) 0, WhitePawn, WhiteKnight, WhiteBishop,
-       WhiteRook, WhiteQueen, WhiteKing, (ChessSquare) 0, WhiteAlfil,
-       WhiteCannon, WhiteAngel, WhiteMarshall, (ChessSquare) 0,
-       PromotePiece, DemotePiece, EmptySquare, ClearBoard },
-    { BlackPlay, (ChessSquare) 0, BlackPawn, BlackKnight, BlackBishop,
-       BlackRook, BlackQueen, BlackKing, (ChessSquare) 0, BlackAlfil,
-       BlackCannon, BlackAngel, BlackMarshall, (ChessSquare) 0,
-       PromotePiece, DemotePiece, EmptySquare, ClearBoard },
-};
-
-#define DROP_MENU_SIZE 6
-static String dropMenuStrings[DROP_MENU_SIZE+1] = {
-    "----", N_("Pawn"), N_("Knight"), N_("Bishop"), N_("Rook"), N_("Queen"), NULL
-  };
-/* must be in same order as dropMenuStrings! */
-static ChessSquare dropMenuTranslation[DROP_MENU_SIZE] = {
-    (ChessSquare) 0, WhitePawn, WhiteKnight, WhiteBishop,
-    WhiteRook, WhiteQueen
-};
-
-// [HGM] experimental code to pop up window just like the main window, using GenercicPopUp
-
-static Option *Exp P((int n, int x, int y));
-void MenuCallback P((int n));
-void SizeKludge P((int n));
-static Option *LogoW P((int n, int x, int y));
-static Option *LogoB P((int n, int x, int y));
-
-static int pmFromX = -1, pmFromY = -1;
-void *userLogo;
-
-void
-DisplayLogos (Option *w1, Option *w2)
-{
-       void *whiteLogo = first.programLogo, *blackLogo = second.programLogo;
-       if(appData.autoLogo) {
-         if(appData.noChessProgram) whiteLogo = blackLogo = NULL;
-         if(appData.icsActive) whiteLogo = blackLogo = second.programLogo;
-         switch(gameMode) { // pick logos based on game mode
-           case IcsObserving:
-               whiteLogo = second.programLogo; // ICS logo
-               blackLogo = second.programLogo;
-           default:
-               break;
-           case IcsPlayingWhite:
-               if(!appData.zippyPlay) whiteLogo = userLogo;
-               blackLogo = second.programLogo; // ICS logo
-               break;
-           case IcsPlayingBlack:
-               whiteLogo = second.programLogo; // ICS logo
-               blackLogo = appData.zippyPlay ? first.programLogo : userLogo;
-               break;
-           case TwoMachinesPlay:
-               if(first.twoMachinesColor[0] == 'b') {
-                   whiteLogo = second.programLogo;
-                   blackLogo = first.programLogo;
-               }
-               break;
-           case MachinePlaysWhite:
-               blackLogo = userLogo;
-               break;
-           case MachinePlaysBlack:
-               whiteLogo = userLogo;
-               blackLogo = first.programLogo;
-         }
-       }
-       DrawLogo(w1, whiteLogo);
-       DrawLogo(w2, blackLogo);
-}
-
-static void
-PMSelect (int n)
-{   // user callback for board context menus
-    if (pmFromX < 0 || pmFromY < 0) return;
-    if(n == W_DROP) DropMenuEvent(dropMenuTranslation[values[n]], pmFromX, pmFromY);
-    else EditPositionMenuEvent(pieceMenuTranslation[n - W_MENUW][values[n]], pmFromX, pmFromY);
-}
-
-static void
-CCB (int n)
-{
-    shiftKey = (ShiftKeys() & 3) != 0;
-    if(n < 0) { // button != 1
-       n = -n;
-       if(shiftKey && (gameMode == MachinePlaysWhite || gameMode == MachinePlaysBlack)) {
-           AdjustClock(n == W_BLACK, 1);
-       }
-    } else
-    ClockClick(n == W_BLACK);
-}
-
-Option mainOptions[] = { // description of main window in terms of generic dialog creator
-{ 0, 0xCA, 0, NULL, NULL, "", NULL, BarBegin, "" }, // menu bar
-  { 0, COMBO_CALLBACK, 0, NULL, (void*)&MenuCallback, NULL, NULL, DropDown, N_("_File") },
-  { 0, COMBO_CALLBACK, 0, NULL, (void*)&MenuCallback, NULL, NULL, DropDown, N_("_Edit") },
-  { 0, COMBO_CALLBACK, 0, NULL, (void*)&MenuCallback, NULL, NULL, DropDown, N_("_View") },
-  { 0, COMBO_CALLBACK, 0, NULL, (void*)&MenuCallback, NULL, NULL, DropDown, N_("_Mode") },
-  { 0, COMBO_CALLBACK, 0, NULL, (void*)&MenuCallback, NULL, NULL, DropDown, N_("_Action") },
-  { 0, COMBO_CALLBACK, 0, NULL, (void*)&MenuCallback, NULL, NULL, DropDown, N_("E_ngine") },
-  { 0, COMBO_CALLBACK, 0, NULL, (void*)&MenuCallback, NULL, NULL, DropDown, N_("_Options") },
-  { 0, COMBO_CALLBACK, 0, NULL, (void*)&MenuCallback, NULL, NULL, DropDown, N_("_Help") },
-{ 0, 0, 0, NULL, (void*)&SizeKludge, "", NULL, BarEnd, "" },
-{ 0, LR|T2T|BORDER|SAME_ROW, 0, NULL, NULL, NULL, NULL, Label, "1" }, // optional title in window
-{ 50,    LL|TT,            100, NULL, (void*) &LogoW, NULL, NULL, Skip, "" }, // white logo
-{ 12,   L2L|T2T,           200, NULL, (void*) &CCB, NULL, NULL, Label, "White" }, // white clock
-{ 13,   R2R|T2T|SAME_ROW,  200, NULL, (void*) &CCB, NULL, NULL, Label, "Black" }, // black clock
-{ 50,    RR|TT|SAME_ROW,   100, NULL, (void*) &LogoB, NULL, NULL, Skip, "" }, // black logo
-{ 0, LR|T2T|BORDER,        401, NULL, NULL, "", NULL, Skip, "2" }, // backup for title in window (if no room for other)
-{ 0, LR|T2T|BORDER,        270, NULL, NULL, NULL, NULL, Label, "message", &appData.font }, // message field
-{ 0, RR|TT|SAME_ROW,       125, NULL, NULL, "", NULL, BoxBegin, "" }, // (optional) button bar
-  { 0,    0,     0, NULL, (void*) &ToStartEvent,  NULL, NULL, Button, N_("<<"), &appData.font },
-  { 0, SAME_ROW, 0, NULL, (void*) &BackwardEvent, NULL, NULL, Button, N_("<"),  &appData.font },
-  { 0, SAME_ROW, 0, NULL, (void*) &PauseEvent,    NULL, NULL, Button, N_(PAUSE_BUTTON), &appData.font },
-  { 0, SAME_ROW, 0, NULL, (void*) &ForwardEvent,  NULL, NULL, Button, N_(">"),  &appData.font },
-  { 0, SAME_ROW, 0, NULL, (void*) &ToEndEvent,    NULL, NULL, Button, N_(">>"), &appData.font },
-{ 0, 0, 0, NULL, NULL, "", NULL, BoxEnd, "" },
-{ 401, LR|TB, 401, NULL, (char*) &Exp, NULL, NULL, Graph, "shadow board" }, // board
-  { 2, COMBO_CALLBACK, 0, NULL, (void*) &PMSelect, NULL, pieceMenuStrings[0], PopUp, "menuW" },
-  { 2, COMBO_CALLBACK, 0, NULL, (void*) &PMSelect, NULL, pieceMenuStrings[1], PopUp, "menuB" },
-  { -1, COMBO_CALLBACK, 0, NULL, (void*) &PMSelect, NULL, dropMenuStrings, PopUp, "menuD" },
-{ 0,  NO_OK, 0, NULL, NULL, "", NULL, EndMark , "" }
-};
-
-Option *
-LogoW (int n, int x, int y)
-{
-    if(n == 10) DisplayLogos(&mainOptions[W_WHITE-1], NULL);
-    return NULL;
-}
-
-Option *
-LogoB (int n, int x, int y)
-{
-    if(n == 10) DisplayLogos(NULL, &mainOptions[W_BLACK+1]);
-    return NULL;
-}
-
-void
-SizeKludge (int n)
-{   // callback called by GenericPopUp immediately after sizing the menu bar
-    int width = BOARD_WIDTH*(squareSize + lineGap) + lineGap;
-    int w = width - 44 - mainOptions[n].min;
-    mainOptions[W_TITLE].max = w; // width left behind menu bar
-    if(w < 0.4*width) // if no reasonable amount of space for title, force small layout
-       mainOptions[W_SMALL].type = mainOptions[W_TITLE].type, mainOptions[W_TITLE].type = Skip;
-}
-
-void
-MenuCallback (int n)
-{
-    MenuProc *proc = (MenuProc *) (((MenuItem*)(mainOptions[n].choice))[values[n]].proc);
-
-    if(!proc) RecentEngineEvent(values[n] - firstEngineItem); else (proc)();
-}
-
-static Option *
-Exp (int n, int x, int y)
-{
-    static int but1, but3, oldW, oldH, oldX, oldY;
-    int menuNr = -3, sizing, f, r;
-    TimeMark now;
-    extern Boolean right;
-
-    if(right) {  // kludgy way to let button 1 double as button 3 when back-end requests this
-       if(but1 && n == 0) but1 = 0, but3 = 1;
-       else if(n == -1) n = -3, right = FALSE;
-    }
-
-    if(n == 0) { // motion
-       oldX = x; oldY = y;
-       if(SeekGraphClick(Press, x, y, 1)) return NULL;
-       if((but1 || dragging == 2) && !PromoScroll(x, y)) DragPieceMove(x, y);
-       if(but3) MovePV(x, y, lineGap + BOARD_HEIGHT * (squareSize + lineGap));
-       if(appData.highlightDragging) {
-           f = EventToSquare(x, BOARD_WIDTH);  if ( flipView && f >= 0) f = BOARD_WIDTH - 1 - f;
-           r = EventToSquare(y, BOARD_HEIGHT); if (!flipView && r >= 0) r = BOARD_HEIGHT - 1 - r;
-           HoverEvent(x, y, f, r);
-       }
-       return NULL;
-    }
-    if(n != 10 && PopDown(PromoDlg)) fromX = fromY = -1; // user starts fiddling with board when promotion dialog is up
-    else GetTimeMark(&now);
-    shiftKey = ShiftKeys();
-    controlKey = (shiftKey & 0xC) != 0;
-    shiftKey = (shiftKey & 3) != 0;
-    switch(n) {
-       case  1: LeftClick(Press,   x, y), but1 = 1; break;
-       case -1: LeftClick(Release, x, y), but1 = 0; break;
-       case  2: shiftKey = !shiftKey;
-       case  3: menuNr = RightClick(Press,   x, y, &pmFromX, &pmFromY), but3 = 1; break;
-       case -2: shiftKey = !shiftKey;
-       case -3: menuNr = RightClick(Release, x, y, &pmFromX, &pmFromY), but3 = 0; break;
-       case  4: Wheel(-1, oldX, oldY); break;
-       case  5: Wheel(1, oldX, oldY); break;
-       case 10:
-           sizing = (oldW != x || oldH != y);
-           oldW = x; oldH = y;
-           InitDrawingHandle(mainOptions + W_BOARD);
-           if(sizing && SubtractTimeMarks(&now, &programStartTime) > 10000) return NULL; // don't redraw while sizing (except at startup)
-           DrawPosition(True, NULL);
-       default:
-           return NULL;
-    }
-
-    switch(menuNr) {
-      case 0: return &mainOptions[shiftKey ? W_MENUW: W_MENUB];
-      case 1: SetupDropMenu(); return &mainOptions[W_DROP];
-      case 2:
-      case -1: ErrorPopDown();
-      case -2:
-      default: break; // -3, so no clicks caught
-    }
-    return NULL;
-}
-
-Option *
-BoardPopUp (int squareSize, int lineGap, void *clockFontThingy)
-{
-    int i, size = BOARD_WIDTH*(squareSize + lineGap) + lineGap, logo = appData.logoSize;
-    int f = 2*appData.fixedSize; // width fudge, needed for unknown reasons to not clip board
-    mainOptions[W_WHITE].choice = (char**) clockFontThingy;
-    mainOptions[W_BLACK].choice = (char**) clockFontThingy;
-    mainOptions[W_BOARD].value = BOARD_HEIGHT*(squareSize + lineGap) + lineGap;
-    mainOptions[W_BOARD].max = mainOptions[W_SMALL].max = size; // board size
-    mainOptions[W_SMALL].max = size - 2; // board title (subtract border!)
-    mainOptions[W_BLACK].max = mainOptions[W_WHITE].max = size/2-3; // clock width
-    mainOptions[W_MESSG].max = appData.showButtonBar ? size-135+f : size-2+f; // message
-    mainOptions[W_MENU].max = size-40; // menu bar
-    mainOptions[W_TITLE].type = appData.titleInWindow ? Label : Skip ;
-    if(logo && logo <= size/4) { // Activate logos
-       mainOptions[W_WHITE-1].type = mainOptions[W_BLACK+1].type = Graph;
-       mainOptions[W_WHITE-1].max  = mainOptions[W_BLACK+1].max  = logo;
-       mainOptions[W_WHITE-1].value= mainOptions[W_BLACK+1].value= logo/2;
-       mainOptions[W_WHITE].min  |= SAME_ROW;
-       mainOptions[W_WHITE].max  = mainOptions[W_BLACK].max  -= logo + 4;
-       mainOptions[W_WHITE].name = mainOptions[W_BLACK].name = "Double\nHeight";
-    }
-    if(!appData.showButtonBar) for(i=W_BUTTON; i<W_BOARD; i++) mainOptions[i].type = Skip;
-    for(i=0; i<8; i++) mainOptions[i+1].choice = (char**) menuBar[i].mi;
-    AppendEnginesToMenu(appData.recentEngineList);
-    GenericPopUp(mainOptions, "XBoard", BoardWindow, BoardWindow, NONMODAL, 1); // allways top-level
-    return mainOptions;
-}
-
-static Option *
-SlaveExp (int n, int x, int y)
-{
-    if(n == 10) { // expose event
-       flipView = !flipView; partnerUp = !partnerUp;
-       DrawPosition(True, NULL); // [HGM] dual: draw other board in other orientation
-       flipView = !flipView; partnerUp = !partnerUp;
-    }
-    return NULL;
-}
-
-Option dualOptions[] = { // auxiliary board window
-{ 0, L2L|T2T,              198, NULL, NULL, NULL, NULL, Label, "White" }, // white clock
-{ 0, R2R|T2T|SAME_ROW,     198, NULL, NULL, NULL, NULL, Label, "Black" }, // black clock
-{ 0, LR|T2T|BORDER,        401, NULL, NULL, NULL, NULL, Label, "This feature is experimental" }, // message field
-{ 401, LR|TT, 401, NULL, (char*) &SlaveExp, NULL, NULL, Graph, "shadow board" }, // board
-{ 0,  NO_OK, 0, NULL, NULL, "", NULL, EndMark , "" }
-};
-
-void
-SlavePopUp ()
-{
-    int size = BOARD_WIDTH*(squareSize + lineGap) + lineGap;
-    // copy params from main board
-    dualOptions[0].choice = mainOptions[W_WHITE].choice;
-    dualOptions[1].choice = mainOptions[W_BLACK].choice;
-    dualOptions[3].value = BOARD_HEIGHT*(squareSize + lineGap) + lineGap;
-    dualOptions[3].max = dualOptions[2].max = size; // board width
-    dualOptions[0].max = dualOptions[1].max = size/2 - 3; // clock width
-    GenericPopUp(dualOptions, "XBoard", DummyDlg, BoardWindow, NONMODAL, appData.topLevel);
-    SlaveResize(dualOptions+3);
-}
-
-void
-DisplayWhiteClock (long timeRemaining, int highlight)
-{
-    if(appData.noGUI) return;
-    if(twoBoards && partnerUp) {
-       DisplayTimerLabel(&dualOptions[0], _("White"), timeRemaining, highlight);
-       return;
-    }
-    DisplayTimerLabel(&mainOptions[W_WHITE], _("White"), timeRemaining, highlight);
-    if(highlight) SetClockIcon(0);
-}
-
-void
-DisplayBlackClock (long timeRemaining, int highlight)
-{
-    if(appData.noGUI) return;
-    if(twoBoards && partnerUp) {
-       DisplayTimerLabel(&dualOptions[1], _("Black"), timeRemaining, highlight);
-       return;
-    }
-    DisplayTimerLabel(&mainOptions[W_BLACK], _("Black"), timeRemaining, highlight);
-    if(highlight) SetClockIcon(1);
-}
-
-
-//---------------------------------------------
-
-void
-DisplayMessage (char *message, char *extMessage)
-{
-  /* display a message in the message widget */
-
-  char buf[MSG_SIZ];
-
-  if (extMessage)
-    {
-      if (*message)
-       {
-         snprintf(buf, sizeof(buf), "%s  %s", message, extMessage);
-         message = buf;
-       }
-      else
-       {
-         message = extMessage;
-       };
-    };
-
-    safeStrCpy(lastMsg, message, MSG_SIZ); // [HGM] make available
-
-  /* need to test if messageWidget already exists, since this function
-     can also be called during the startup, if for example a Xresource
-     is not set up correctly */
-  if(mainOptions[W_MESSG].handle)
-    SetWidgetLabel(&mainOptions[W_MESSG], message);
-
-  return;
-}
-
-//----------------------------------- File Browser -------------------------------
-
-#ifdef HAVE_DIRENT_H
-#include <dirent.h>
-#else
-#include <sys/dir.h>
-#define dirent direct
-#endif
-
-#include <sys/stat.h>
-
-#define MAXFILES 1000
-
-static DialogClass savDlg;
-static ChessProgramState *savCps;
-static FILE **savFP;
-static char *fileName, *extFilter, *savMode, **namePtr;
-static int folderPtr, filePtr, oldVal, byExtension, extFlag, pageStart, cnt;
-static char curDir[MSG_SIZ], title[MSG_SIZ], *folderList[MAXFILES], *fileList[MAXFILES];
-
-static char *FileTypes[] = {
-"Chess Games",
-"Chess Positions",
-"Tournaments",
-"Opening Books",
-"Sound files",
-"Images",
-"Settings (*.ini)",
-"Log files",
-"All files",
-NULL,
-"PGN",
-"Old-Style Games",
-"FEN",
-"Old-Style Positions",
-NULL,
-NULL
-};
-
-static char *Extensions[] = {
-".pgn .game",
-".fen .epd .pos",
-".trn",
-".bin",
-".wav",
-".png",
-".ini",
-".log",
-"",
-"INVALID",
-".pgn",
-".game",
-".fen",
-".pos",
-NULL,
-""
-};
-
-void DirSelProc P((int n, int sel));
-void FileSelProc P((int n, int sel));
-void SetTypeFilter P((int n));
-int BrowseOK P((int n));
-void Switch P((int n));
-void CreateDir P((int n));
-
-Option browseOptions[] = {
-{   0,    LR|T2T,      500, NULL, NULL, NULL, NULL, Label, title },
-{   0,    L2L|T2T,     250, NULL, NULL, NULL, NULL, Label, N_("Directories:") },
-{   0,R2R|T2T|SAME_ROW,100, NULL, NULL, NULL, NULL, Label, N_("Files:") },
-{   0, R2R|TT|SAME_ROW, 70, NULL, (void*) &Switch, NULL, NULL, Button, N_("by name") },
-{   0, R2R|TT|SAME_ROW, 70, NULL, (void*) &Switch, NULL, NULL, Button, N_("by type") },
-{ 300,    L2L|TB,      250, NULL, (void*) folderList, (char*) &DirSelProc, NULL, ListBox, "" },
-{ 300, R2R|TB|SAME_ROW,250, NULL, (void*) fileList, (char*) &FileSelProc, NULL, ListBox, "" },
-{   0,       0,        300, NULL, (void*) &fileName, NULL, NULL, TextBox, N_("Filename:") },
-{   0,    SAME_ROW,    120, NULL, (void*) &CreateDir, NULL, NULL, Button, N_("New directory") },
-{   0, COMBO_CALLBACK, 150, NULL, (void*) &SetTypeFilter, NULL, FileTypes, ComboBox, N_("File type:") },
-{   0,    SAME_ROW,      0, NULL, (void*) &BrowseOK, "", NULL, EndMark , "" }
-};
-
-int
-BrowseOK (int n)
-{
-       if(!fileName[0]) { // it is enough to have a file selected
-           if(browseOptions[6].textValue) { // kludge: if callback specified we browse for file
-               int sel = SelectedListBoxItem(&browseOptions[6]);
-               if(sel < 0 || sel >= filePtr) return FALSE;
-               ASSIGN(fileName, fileList[sel]);
-           } else { // we browse for path
-               ASSIGN(fileName, curDir); // kludge: without callback we browse for path
-           }
-       }
-       if(!fileName[0]) return FALSE; // refuse OK when no file
-       if(!savMode[0]) { // browsing for name only (dialog Browse button)
-               if(fileName[0] == '/') // We already had a path name
-                   snprintf(title, MSG_SIZ, "%s", fileName);
-               else
-                   snprintf(title, MSG_SIZ, "%s/%s", curDir, fileName);
-               SetWidgetText((Option*) savFP, title, savDlg);
-               currentCps = savCps; // could return to Engine Settings dialog!
-               return TRUE;
-       }
-       *savFP = fopen(fileName, savMode);
-       if(*savFP == NULL) return FALSE; // refuse OK if file not openable
-       ASSIGN(*namePtr, fileName);
-       ScheduleDelayedEvent(DelayedLoad, 50);
-       currentCps = savCps; // not sure this is ever non-null
-       return TRUE;
-}
-
-int
-AlphaNumCompare (char *p, char *q)
-{
-    while(*p) {
-       if(isdigit(*p) && isdigit(*q) && atoi(p) != atoi(q))
-            return (atoi(p) > atoi(q) ? 1 : -1);
-       if(*p != *q) break;
-       p++, q++;
-    }
-    if(*p == *q) return 0;
-    return (*p > *q ? 1 : -1);
-}
-
-int
-Comp (const void *s, const void *t)
-{
-    char *p = *(char**) s, *q = *(char**) t;
-    if(extFlag) {
-       char *h; int r;
-       while(h = strchr(p, '.')) p = h+1;
-       if(p == *(char**) s) p = "";
-       while(h = strchr(q, '.')) q = h+1;
-       if(q == *(char**) t) q = "";
-       r = AlphaNumCompare(p, q);
-       if(r) return r;
-    }
-    return AlphaNumCompare( *(char**) s, *(char**) t );
-}
-
-void
-ListDir (int pathFlag)
-{
-       DIR *dir;
-       struct dirent *dp;
-       struct stat statBuf;
-       static int lastFlag;
-
-       if(pathFlag < 0) pathFlag = lastFlag;
-       lastFlag = pathFlag;
-       dir = opendir(".");
-       getcwd(curDir, MSG_SIZ);
-       snprintf(title, MSG_SIZ, "%s   %s", _("Contents of"), curDir);
-       folderPtr = filePtr = cnt = 0; // clear listing
-
-       while (dp = readdir(dir)) { // pass 1: list foders
-           char *s = dp->d_name;
-           if(!stat(s, &statBuf) && S_ISDIR(statBuf.st_mode)) { // stat succeeds and tells us it is directory
-               if(s[0] == '.' && strcmp(s, "..")) continue; // suppress hidden, except ".."
-               ASSIGN(folderList[folderPtr], s); if(folderPtr < MAXFILES-2) folderPtr++;
-           } else if(!pathFlag) {
-               char *s = dp->d_name, match=0;
-//             if(cnt == pageStart) { ASSIGN }
-               if(s[0] == '.') continue; // suppress hidden files
-               if(extFilter[0]) { // [HGM] filter on extension
-                   char *p = extFilter, *q;
-                   do {
-                       if(q = strchr(p, ' ')) *q = 0;
-                       if(strstr(s, p)) match++;
-                       if(q) *q = ' ';
-                   } while(q && (p = q+1));
-                   if(!match) continue;
-               }
-               if(filePtr == MAXFILES-2) continue;
-               if(cnt++ < pageStart) continue;
-               ASSIGN(fileList[filePtr], s); filePtr++;
-           }
-       }
-       if(filePtr == MAXFILES-2) { ASSIGN(fileList[filePtr], _("  next page")); filePtr++; }
-       FREE(folderList[folderPtr]); folderList[folderPtr] = NULL;
-       FREE(fileList[filePtr]); fileList[filePtr] = NULL;
-       closedir(dir);
-       extFlag = 0;         qsort((void*)folderList, folderPtr, sizeof(char*), &Comp);
-       extFlag = byExtension; qsort((void*)fileList, filePtr < MAXFILES-2 ? filePtr : MAXFILES-2, sizeof(char*), &Comp);
-}
-
-void
-Refresh (int pathFlag)
-{
-    ListDir(pathFlag); // and make new one
-    LoadListBox(&browseOptions[5], "", -1, -1);
-    LoadListBox(&browseOptions[6], "", -1, -1);
-    SetWidgetLabel(&browseOptions[0], title);
-}
-
-static char msg1[] = N_("FIRST TYPE DIRECTORY NAME HERE");
-static char msg2[] = N_("TRY ANOTHER NAME");
-
-void
-CreateDir (int n)
-{
-    char *name, *errmsg = "";
-    GetWidgetText(&browseOptions[n-1], &name);
-    if(!strcmp(name, msg1) || !strcmp(name, msg2)) return;
-    if(!name[0]) errmsg = _(msg1); else
-    if(mkdir(name, 0755)) errmsg = _(msg2);
-    else {
-       chdir(name);
-       Refresh(-1);
-    }
-    SetWidgetText(&browseOptions[n-1], errmsg, BrowserDlg);
-}
-
-void
-Switch (int n)
-{
-    if(byExtension == (n == 4)) return;
-    extFlag = byExtension = (n == 4);
-    qsort((void*)fileList, filePtr < MAXFILES-2 ? filePtr : MAXFILES-2, sizeof(char*), &Comp);
-    LoadListBox(&browseOptions[6], "", -1, -1);
-}
-
-void
-SetTypeFilter (int n)
-{
-    int j = values[n];
-    if(j == browseOptions[n].value) return; // no change
-    browseOptions[n].value = j;
-    SetWidgetLabel(&browseOptions[n], FileTypes[j]);
-    ASSIGN(extFilter, Extensions[j]);
-    pageStart = 0;
-    Refresh(-1); // uses pathflag remembered by ListDir
-    values[n] = oldVal; // do not disturb combo settings of underlying dialog
-}
-
-void
-FileSelProc (int n, int sel)
-{
-    if(sel < 0 || fileList[sel] == NULL) return;
-    if(sel == MAXFILES-2) { pageStart = cnt; Refresh(-1); return; }
-    ASSIGN(fileName, fileList[sel]);
-    if(BrowseOK(0)) PopDown(BrowserDlg);
-}
-
-void
-DirSelProc (int n, int sel)
-{
-    if(!chdir(folderList[sel])) { // cd succeeded, so we are in new directory now
-       Refresh(-1);
-    }
-}
-
-void
-StartDir (char *filter, char *newName)
-{
-    static char *gamesDir, *trnDir, *imgDir, *bookDir, *dirDir;
-    static char curDir[MSG_SIZ];
-    char **res = NULL;
-    if(!filter || !*filter) return;
-    if(strstr(filter, "dir")) {
-       res = &dirDir;
-       if(!dirDir) dirDir= strdup(dataDir);
-    } else
-    if(strstr(filter, "pgn")) res = &gamesDir; else
-    if(strstr(filter, "bin")) res = &bookDir; else
-    if(strstr(filter, "png")) res = &imgDir; else
-    if(strstr(filter, "trn")) res = &trnDir; else
-    if(strstr(filter, "fen")) res = &appData.positionDir;
-    if(res) {
-       if(newName) {
-           char *p, *q;
-           if(*newName) {
-               ASSIGN(*res, newName);
-               for(p=*res; q=strchr(p, '/');) p = q + 1; *p = NULLCHAR;
-           }
-       }
-       if(*curDir) {
-           chdir(curDir);
-           *curDir = NULLCHAR;
-       } else {
-           getcwd(curDir, MSG_SIZ);
-           if(*res && **res) chdir(*res);
-       }
-    }
-}
-
-void
-Browse (DialogClass dlg, char *label, char *proposed, char *ext, Boolean pathFlag, char *mode, char **name, FILE **fp)
-{
-    int j=0;
-    savFP = fp; savMode = mode, namePtr = name, savCps = currentCps, oldVal = values[9], savDlg = dlg; // save params, for use in callback
-    ASSIGN(extFilter, ext);
-    ASSIGN(fileName, proposed ? proposed : "");
-    for(j=0; Extensions[j]; j++) // look up actual value in list of possible values, to get selection nr
-       if(extFilter && !strcmp(extFilter, Extensions[j])) break;
-    if(Extensions[j] == NULL) { j++; ASSIGN(FileTypes[j], extFilter); }
-    browseOptions[9].value = j;
-    browseOptions[6].textValue = (char*) (pathFlag ? NULL : &FileSelProc); // disable file listbox during path browsing
-    pageStart = 0; ListDir(pathFlag);
-    currentCps = NULL;
-    GenericPopUp(browseOptions, label, BrowserDlg, dlg, MODAL, 0);
-    SetWidgetLabel(&browseOptions[9], FileTypes[j]);
-}
-
-static char *openName;
-FileProc fileProc;
-char *fileOpenMode;
-FILE *openFP;
-
-void
-DelayedLoad ()
-{
-  (void) (*fileProc)(openFP, 0, openName);
-}
-
-void
-FileNamePopUp (char *label, char *def, char *filter, FileProc proc, char *openMode)
-{
-    fileProc = proc;           /* I can't see a way not */
-    fileOpenMode = openMode;   /*   to use globals here */
-    FileNamePopUpWrapper(label, def, filter, proc, False, openMode, &openName, &openFP);
-}
-
-void
-ActivateTheme (int col)
-{
-    if(appData.overrideLineGap >= 0) lineGap = appData.overrideLineGap; else lineGap = defaultLineGap;
-    InitDrawingParams(strcmp(oldPieceDir, appData.pieceDirectory));
-    InitDrawingSizes(-1, 0);
-    DrawPosition(True, NULL);
-}
-
diff --git a/dialogs.h b/dialogs.h
deleted file mode 100644 (file)
index a0b8cf6..0000000
--- a/dialogs.h
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
- * dialogs.h -- shared variables for generic dialog popup of XBoard
- *
- * Copyright 2000, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free Software Foundation, Inc.
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-// [HGM] Some remarks about the generic dialog creator of XBoard:
-// GenericPopUp is needed to create a dialog from the lists of options supplied by the engines.
-// But once it is there, it provides a very easy way for creating other settings dialogs as well,
-// by letting XBoard provide its own, compiled-in lists of XBoard options (located in dialogs.c).
-// The Option struct uses the following fields (E = for engine options, X = for XBoard options):
-//                    Option types                  | XBoard-only ->
-// TYPE    NAME       spin check string combo button box label list graph menu break end
-// int     value       E     E    (h)    X/E         [w]       (h)   (h)
-// int     min        X/E         (2)    (3)         (1)  (1)  (1)   (1)  (3)   (1)  (4)
-// int     max        X/E   (w)   (w)    (w)   (w)   (w)  (w)  (w)   (w)
-// void*   handle     X/E   X/E   X/E    X/E   X/E    X    X    X     X    X
-// void*   target      X     X     X     X/C    C          X    X     C    C
-// char*   textValue              X/E    X/E    *
-// char ** choice                  C     X/E    *                          X
-// enum    type       X/E   X/E   X/E    X/E    X     X    X    X     X    X     X    X
-// char *  name       X/E   X/E   X/E    X/E    X          X    X     X    X
-// char ** font                    X            X          X    X                       (GTK only)
-// File and Path options are like String (but get a browse button added in the dialog), and Slider
-// is like Spin. Menu can be PopUp or PopDown; both need the COMBO_CALLBACK bit (3) set!
-// (h) or (w) means the field optionally (when non-null) specifies the height or width of the main
-// control element (excluding accompanying description texts). [w] means the width is written there.
-// C specifies the 'target' is a user-supplied callback function, which will be executed when the
-// option is exercised.
-
-
-/* Flags Option.min used (2) for TextBox (-string): */
-#define T_VSCRL                (1 << 0)
-#define T_HSCRL                (1 << 1)
-#define T_FILL         (1 << 2)
-#define T_WRAP         (1 << 3)
-#define T_TOP          (1 << 4)
-
-/* Flags Option.min used (3) for ComboBox (-combo) and menus (PopUp, PopDown): */
-#define COMBO_CALLBACK (1 << 0)
-#define NO_GETTEXT     (1 << 2)
-
-/* Flags for Option.min used (1) for Button, SaveButton, ListBox, Label: */
-#define SAME_ROW       (1 << 0) /* also in Break & EndMark */
-#define BORDER         (1 << 1) /* Label */
-#define FIX_H          (1 << 1) /* in other, this bit specifies top and botom of the control chain to same window edge */
-#define B2B            (1 << 2) /* chain bottom to bottom (by default, no chaining is done) */
-#define T2T            (1 << 3)
-#define R2R            (1 << 4)
-#define L2R            (1 << 5)
-#define R2L            (1 << 6)
-#define L2L            (1 << 7)
-#define TT             (T2T|FIX_H) /* useful combinations: 0xA = entirely to top */
-#define BB             (B2B|FIX_H) /*   6 = entirely to bottom */
-#define TB             (B2B|T2T)   /*   0xC = absorb all vertical size change */
-#define LL             (L2L|R2L)   /*   0xC0 = entirely to left */
-#define RR             (L2R|R2R)   /*   0x30 = entirely to right */
-#define LR             (L2L|R2R)   /*   0x90 = absorb all horizontal size change */
-
-/* Flags for Option.min used (4) for EndMark: */
-#define NO_OK          (1 << 1)
-#define NO_CANCEL      (1 << 2)
-
-#define REPLACE                (1 << 16)
-
-#define MODAL 1
-#define NONMODAL 0
-
-/* Board widget numbers, MUST correspond to mainOptions array */
-
-#define W_MENU   0  // main menu bar
-#define W_ENGIN  6  // engine menu
-#define W_TITLE 10
-#define W_WHITE 12
-#define W_BLACK 13
-#define W_SMALL 15  // title in small layout
-#define W_MESSG 16
-#define W_BUTTON 17 // button bar
-#define W_PAUSE 20
-#define W_BOARD 24
-#define W_MENUW 25
-#define W_MENUB 26
-#define W_DROP  27  // drop (popup) menu
-
-typedef enum {  // identifier of dialogs done by GenericPopup
-TransientDlg=0, // transient: grabs mouse events and is destroyed at pop-down (so other dialog can use this ID next time)
-CommentDlg, TagsDlg, TextMenuDlg, InputBoxDlg, ChatDlg, DummyDlg, HistoryDlg, // persistent: no grab and reused
-GameListDlg,
-EngOutDlg,
-EvalGraphDlg,
-PromoDlg,       // this and beyond are destroyed at pop-down
-ErrorDlg,
-AskDlg,         // this and beyond do grab mouse events (and are destroyed)
-FatalDlg,
-BoardWindow,
-BrowserDlg,
-MasterDlg,
-NrOfDialogs     // dummy for total
-} DialogClass;
-
-typedef int MemoCallback (Option *opt, int n, int x, int y, char *text, int index);
-typedef Option *PointerCallback(int n, int x, int y);
-typedef void ListBoxCallback(int n, int selected);
-typedef void ButtonCallback(int n);
-typedef int OKCallback(int n);
-
-extern char commentTranslations[];
-extern char historyTranslations[];
-//extern Pixel timerBackgroundPixel;
-extern int values[];
-extern ChessProgramState *currentCps;
-extern int dialogError;
-extern ButtonCallback *comboCallback;
-extern void *userLogo;
-
-extern WindowPlacement wpComment, wpTags, wpMoveHistory, wpMain, wpDualBoard, wpConsole;
-extern char *marked[];
-extern Boolean shellUp[];
-extern Option textOptions[], typeOptions[], dualOptions[], mainOptions[];
-extern Option historyOptions[], engoutOptions[], gamesOptions[], chatOptions[], tagsOptions[], commentOptions[];
-#define MAX_SIZE 130
-extern Boolean fontIsSet[], fontValid[][MAX_SIZE];
-extern int initialSquareSize;
-extern char *fontTable[][MAX_SIZE];
-
-
-void GetPlacement P((DialogClass dlg, WindowPlacement *wp));
-int DialogExists P((DialogClass n));
-int GenericPopUp P((Option *option, char *title, DialogClass dlgNr, DialogClass parent, int modal, int topLevel));
-int GenericReadout P((Option *currentOption, int selected));
-int PopDown P((DialogClass n));
-void MarkMenu P((char *item, int dlgNr));
-int AppendText P((Option *opt, char *s));
-void AppendColorized P((Option *opt, char *s, int count));
-void Show P((Option *opt, int hide));
-int  IcsHist P((int dir, Option *opt, DialogClass dlg));
-void HighlightText P((Option *opt, int from, int to, Boolean highlight));
-void SetColor P((char *colorName, Option *box));
-//void ColorChanged P((Widget w, XtPointer data, XEvent *event, Boolean *b));
-void SetInsertPos P((Option *opt, int pos));
-void HardSetFocus P((Option *opt, DialogClass dlg));
-void CursorAtEnd P((Option *opt));
-void GetWidgetText  P((Option *opt, char **buf));
-void SetWidgetText  P((Option *opt, char *buf, int n));
-void GetWidgetState  P((Option *opt, int *state));
-void SetWidgetState  P((Option *opt, int state));
-void SetWidgetLabel P((Option *opt, char *buf));
-void SetComboChoice  P((Option *opt, int choice));
-void SetDialogTitle  P((DialogClass dlg, char *title));
-void LoadListBox P((Option *opt, char *emptyText, int n1, int n2));
-void HighlightListBoxItem P((Option *opt, int nr));
-void HighlightWithScroll P((Option *opt, int sel, int max));
-void ScrollToCursor P((Option *opt, int pos));
-int  SelectedListBoxItem P((Option *opt));
-void BoardFocus P((void));
-void FocusOnWidget P((Option *opt, DialogClass dlg));
-void UnCaret P((void));
-void SetIconName P((DialogClass dlg, char *name));
-int  ReadScroll P((Option *opt, float *top, float *bottom));
-void SetScroll P((Option *opt, float f));
-void AddHandler  P((Option *opt, DialogClass dlg, int nr));
-void SendText P((int n));
-void DisplayLogos P((Option *left, Option *right));
-void StartDir P((char *filter, char *newName));
-void Browse P((DialogClass dlg, char *label, char *proposed, char *ext,
-                       Boolean pathFlag, char *mode, char **name, FILE **fp));
-void FileNamePopUpWrapper P((char *label, char *def, char *filter, FileProc proc,
-                  Boolean pathFlag, char *openMode, char **openName, FILE **openFP));
-
-void InitDrawingParams P((int reload)); // in draw.c
-void InitDrawingHandle P((Option *opt));
-void ExposeRedraw P((Option *opt, int x, int y, int w, int h));
-void DrawLogo P((Option *opt, void *logo));
-void ErrorPopUp P((char *title, char *text, int modal));
-int  ShiftKeys P((void));
-void SetClockIcon P((int color));
-void DelayedLoad P((void));
-void DisplayTimerLabel P((Option *opt, char *color, long timer, int highlight));
-void SetWindowTitle P((char *text, char *title, char *icon));
-void SetupDropMenu P((void));
-Option *BoardPopUp P((int squareSize, int lineGap, void *clockFontThingy));
-void SlaveResize P((Option *opt));
-
-int  SetCurrentComboSelection P((Option *opt));
-void BoxAutoPopUp P((char *buf));
-void ConsoleAutoPopUp P((char *buf));
-void IcsKey P((int n));
-void ICSInputBoxPopUp P((void));
-void LoadOptionsPopUp P((DialogClass parent));
-void GameListOptionsPopUp P((DialogClass parent));
-void RefreshColor P((int source, int n));
-void SendString P((char *p));
-void DisplayHelp P((char *name));
-void WidgetEcho P((Option *opt, int n));
-int  ErrorOK P((int n));
-void ApplyFont P((Option *opt, char *font));
-void LockBoardSize P((int after));
-
-
-// in ngamelist.c
-int GameListClicks P((int direction));
-void SetFilter P((void));
diff --git a/doc-maint/coding-standards.org b/doc-maint/coding-standards.org
deleted file mode 100644 (file)
index b78d40b..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-We try to follow
-
-http://www.gnu.org/prep/standards/standards.html#Formatting
-
-lots of code cleanup is needed though (2012-03-04)
-
diff --git a/doc-maint/gendocs.sh b/doc-maint/gendocs.sh
deleted file mode 100755 (executable)
index a1ed4b4..0000000
+++ /dev/null
@@ -1,361 +0,0 @@
-#!/bin/sh
-# gendocs.sh -- generate a GNU manual in many formats.  This script is
-#   mentioned in maintain.texi.  See the help message below for usage details.
-
-scriptversion=2009-04-08.09
-
-# Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009
-# Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License,
-# or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-# Original author: Mohit Agarwal.
-# Send bug reports and any other correspondence to bug-texinfo@gnu.org.
-
-prog=`basename "$0"`
-srcdir=`pwd`
-
-scripturl="http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/texinfo/texinfo/util/gendocs.sh"
-templateurl="http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/texinfo/texinfo/util/gendocs_template"
-
-: ${SETLANG="env LANG= LC_MESSAGES= LC_ALL= LANGUAGE="}
-: ${MAKEINFO="makeinfo"}
-: ${TEXI2DVI="texi2dvi -t @finalout"}
-: ${DVIPS="dvips"}
-: ${DOCBOOK2HTML="docbook2html"}
-: ${DOCBOOK2PDF="docbook2pdf"}
-: ${DOCBOOK2PS="docbook2ps"}
-: ${DOCBOOK2TXT="docbook2txt"}
-: ${GENDOCS_TEMPLATE_DIR="."}
-: ${TEXI2HTML="texi2html"}
-unset CDPATH
-unset use_texi2html
-
-version="gendocs.sh $scriptversion
-
-Copyright 2009 Free Software Foundation, Inc.
-There is NO warranty.  You may redistribute this software
-under the terms of the GNU General Public License.
-For more information about these matters, see the files named COPYING."
-
-usage="Usage: $prog [OPTION]... PACKAGE MANUAL-TITLE
-
-Generate various output formats from PACKAGE.texinfo (or .texi or .txi) source.
-See the GNU Maintainers document for a more extensive discussion:
-  http://www.gnu.org/prep/maintain_toc.html
-
-Options:
-  -o OUTDIR   write files into OUTDIR, instead of manual/.
-  --email ADR use ADR as contact in generated web pages.
-  --docbook   convert to DocBook too (xml, txt, html, pdf and ps).
-  --html ARG  pass indicated ARG to makeinfo or texi2html for HTML targets.
-  --texi2html use texi2html to generate HTML targets.
-  --help      display this help and exit successfully.
-  --version   display version information and exit successfully.
-
-Simple example: $prog --email bug-gnu-emacs@gnu.org emacs \"GNU Emacs Manual\"
-
-Typical sequence:
-  cd PACKAGESOURCE/doc
-  wget \"$scripturl\"
-  wget \"$templateurl\"
-  $prog --email BUGLIST MANUAL \"GNU MANUAL - One-line description\"
-
-Output will be in a new subdirectory \"manual\" (by default, use -o OUTDIR
-to override).  Move all the new files into your web CVS tree, as
-explained in the Web Pages node of maintain.texi.
-
-Please use the --email ADDRESS option to specify your bug-reporting
-address in the generated HTML pages.
-
-MANUAL-TITLE is included as part of the HTML <title> of the overall
-manual/index.html file.  It should include the name of the package being
-documented.  manual/index.html is created by substitution from the file
-$GENDOCS_TEMPLATE_DIR/gendocs_template.  (Feel free to modify the
-generic template for your own purposes.)
-
-If you have several manuals, you'll need to run this script several
-times with different MANUAL values, specifying a different output
-directory with -o each time.  Then write (by hand) an overall index.html
-with links to them all.
-
-If a manual's Texinfo sources are spread across several directories,
-first copy or symlink all Texinfo sources into a single directory.
-(Part of the script's work is to make a tar.gz of the sources.)
-
-You can set the environment variables MAKEINFO, TEXI2DVI, and DVIPS to
-control the programs that get executed, and GENDOCS_TEMPLATE_DIR to
-control where the gendocs_template file is looked for.  (With --docbook,
-the environment variables DOCBOOK2HTML, DOCBOOK2PDF, DOCBOOK2PS, and
-DOCBOOK2TXT are also respected.)
-
-By default, makeinfo is run in the default (English) locale, since
-that's the language of most Texinfo manuals.  If you happen to have a
-non-English manual and non-English web site, see the SETLANG setting
-in the source.
-
-Email bug reports or enhancement requests to bug-texinfo@gnu.org.
-"
-
-calcsize()
-{
-  size=`ls -ksl $1 | awk '{print $1}'`
-  echo $size
-}
-
-MANUAL_TITLE=
-PACKAGE=
-EMAIL=webmasters@gnu.org  # please override with --email
-htmlarg=
-outdir=manual
-
-while test $# -gt 0; do
-  case $1 in
-    --email) shift; EMAIL=$1;;
-    --help) echo "$usage"; exit 0;;
-    --version) echo "$version"; exit 0;;
-    -o) shift; outdir=$1;;
-    --docbook) docbook=yes;;
-    --html) shift; htmlarg=$1;;
-    --texi2html) use_texi2html=1;;
-    -*)
-      echo "$0: Unknown option \`$1'." >&2
-      echo "$0: Try \`--help' for more information." >&2
-      exit 1;;
-    *)
-      if test -z "$PACKAGE"; then
-        PACKAGE=$1
-      elif test -z "$MANUAL_TITLE"; then
-        MANUAL_TITLE=$1
-      else
-        echo "$0: extra non-option argument \`$1'." >&2
-        exit 1
-      fi;;
-  esac
-  shift
-done
-
-if test -s "$srcdir/$PACKAGE.texinfo"; then
-  srcfile=$srcdir/$PACKAGE.texinfo
-elif test -s "$srcdir/$PACKAGE.texi"; then
-  srcfile=$srcdir/$PACKAGE.texi
-elif test -s "$srcdir/$PACKAGE.txi"; then
-  srcfile=$srcdir/$PACKAGE.txi
-else
-  echo "$0: cannot find .texinfo or .texi or .txi for $PACKAGE in $srcdir." >&2
-  exit 1
-fi
-
-if test ! -r $GENDOCS_TEMPLATE_DIR/gendocs_template; then
-  echo "$0: cannot read $GENDOCS_TEMPLATE_DIR/gendocs_template." >&2
-  echo "$0: it is available from $templateurl." >&2
-  exit 1
-fi
-
-case $outdir in
-  /*) dotdot_outdir="$outdir";;
-  *) dotdot_outdir="../$outdir";;
-esac
-
-echo Generating output formats for $srcfile
-
-cmd="$SETLANG $MAKEINFO -o $PACKAGE.info \"$srcfile\""
-echo "Generating info files... ($cmd)"
-eval "$cmd"
-mkdir -p $outdir/
-tar czf $outdir/$PACKAGE.info.tar.gz $PACKAGE.info*
-info_tgz_size=`calcsize $outdir/$PACKAGE.info.tar.gz`
-# do not mv the info files, there's no point in having them available
-# separately on the web.
-
-cmd="${TEXI2DVI} \"$srcfile\""
-echo "Generating dvi ... ($cmd)"
-eval "$cmd"
-
-# now, before we compress dvi:
-echo Generating postscript...
-${DVIPS} $PACKAGE -o
-gzip -f -9 $PACKAGE.ps
-ps_gz_size=`calcsize $PACKAGE.ps.gz`
-mv $PACKAGE.ps.gz $outdir/
-
-# compress/finish dvi:
-gzip -f -9 $PACKAGE.dvi
-dvi_gz_size=`calcsize $PACKAGE.dvi.gz`
-mv $PACKAGE.dvi.gz $outdir/
-
-cmd="${TEXI2DVI} --pdf \"$srcfile\""
-echo "Generating pdf ... ($cmd)"
-eval "$cmd"
-pdf_size=`calcsize $PACKAGE.pdf`
-mv $PACKAGE.pdf $outdir/
-
-cmd="$SETLANG $MAKEINFO -o $PACKAGE.txt --no-split --no-headers \"$srcfile\""
-echo "Generating ASCII... ($cmd)"
-eval "$cmd"
-ascii_size=`calcsize $PACKAGE.txt`
-gzip -f -9 -c $PACKAGE.txt >$outdir/$PACKAGE.txt.gz
-ascii_gz_size=`calcsize $outdir/$PACKAGE.txt.gz`
-mv $PACKAGE.txt $outdir/
-
-html_split()
-{
-  opt="--split=$1 $htmlarg --node-files"
-  cmd="$SETLANG $TEXI2HTML --output $PACKAGE.html $opt \"$srcfile\""
-  echo "Generating html by $1... ($cmd)"
-  eval "$cmd"
-  split_html_dir=$PACKAGE.html
-  (
-    cd ${split_html_dir} || exit 1
-    ln -sf ${PACKAGE}.html index.html
-    tar -czf $dotdot_outdir/${PACKAGE}.html_$1.tar.gz -- *.html
-  )
-  eval html_$1_tgz_size=`calcsize $outdir/${PACKAGE}.html_$1.tar.gz`
-  rm -f $outdir/html_$1/*.html
-  mkdir -p $outdir/html_$1/
-  mv ${split_html_dir}/*.html $outdir/html_$1/
-  rmdir ${split_html_dir}
-}
-
-if test -z "$use_texi2html"; then
-  opt="--no-split --html -o $PACKAGE.html $htmlarg"
-  cmd="$SETLANG $MAKEINFO $opt \"$srcfile\""
-  echo "Generating monolithic html... ($cmd)"
-  rm -rf $PACKAGE.html  # in case a directory is left over
-  eval "$cmd"
-  html_mono_size=`calcsize $PACKAGE.html`
-  gzip -f -9 -c $PACKAGE.html >$outdir/$PACKAGE.html.gz
-  html_mono_gz_size=`calcsize $outdir/$PACKAGE.html.gz`
-  mv $PACKAGE.html $outdir/
-
-  cmd="$SETLANG $MAKEINFO --html -o $PACKAGE.html $htmlarg \"$srcfile\""
-  echo "Generating html by node... ($cmd)"
-  eval "$cmd"
-  split_html_dir=$PACKAGE.html
-  (
-   cd ${split_html_dir} || exit 1
-   tar -czf $dotdot_outdir/${PACKAGE}.html_node.tar.gz -- *.html
-  )
-  html_node_tgz_size=`calcsize $outdir/${PACKAGE}.html_node.tar.gz`
-  rm -f $outdir/html_node/*.html
-  mkdir -p $outdir/html_node/
-  mv ${split_html_dir}/*.html $outdir/html_node/
-  rmdir ${split_html_dir}
-else
-  cmd="$SETLANG $TEXI2HTML --output $PACKAGE.html $htmlarg \"$srcfile\""
-  echo "Generating monolithic html... ($cmd)"
-  rm -rf $PACKAGE.html  # in case a directory is left over
-  eval "$cmd"
-  html_mono_size=`calcsize $PACKAGE.html`
-  gzip -f -9 -c $PACKAGE.html >$outdir/$PACKAGE.html.gz
-  html_mono_gz_size=`calcsize $outdir/$PACKAGE.html.gz`
-  mv $PACKAGE.html $outdir/
-
-  html_split node
-  html_split chapter
-  html_split section
-fi
-
-echo Making .tar.gz for sources...
-srcfiles=`ls *.texinfo *.texi *.txi *.eps 2>/dev/null`
-tar cvzfh $outdir/$PACKAGE.texi.tar.gz $srcfiles
-texi_tgz_size=`calcsize $outdir/$PACKAGE.texi.tar.gz`
-
-if test -n "$docbook"; then
-  cmd="$SETLANG $MAKEINFO -o - --docbook \"$srcfile\" > ${srcdir}/$PACKAGE-db.xml"
-  echo "Generating docbook XML... $(cmd)"
-  eval "$cmd"
-  docbook_xml_size=`calcsize $PACKAGE-db.xml`
-  gzip -f -9 -c $PACKAGE-db.xml >$outdir/$PACKAGE-db.xml.gz
-  docbook_xml_gz_size=`calcsize $outdir/$PACKAGE-db.xml.gz`
-  mv $PACKAGE-db.xml $outdir/
-
-  cmd="${DOCBOOK2HTML} -o $split_html_db_dir ${outdir}/$PACKAGE-db.xml"
-  echo "Generating docbook HTML... ($cmd)"
-  eval "$cmd"
-  split_html_db_dir=html_node_db
-  (
-    cd ${split_html_db_dir} || exit 1
-    tar -czf $dotdot_outdir/${PACKAGE}.html_node_db.tar.gz -- *.html
-  )
-  html_node_db_tgz_size=`calcsize $outdir/${PACKAGE}.html_node_db.tar.gz`
-  rm -f $outdir/html_node_db/*.html
-  mkdir -p $outdir/html_node_db
-  mv ${split_html_db_dir}/*.html $outdir/html_node_db/
-  rmdir ${split_html_db_dir}
-
-  cmd="${DOCBOOK2TXT} ${outdir}/$PACKAGE-db.xml"
-  echo "Generating docbook ASCII... ($cmd)"
-  eval "$cmd"
-  docbook_ascii_size=`calcsize $PACKAGE-db.txt`
-  mv $PACKAGE-db.txt $outdir/
-
-  cmd="${DOCBOOK2PS} ${outdir}/$PACKAGE-db.xml"
-  echo "Generating docbook PS... $(cmd)"
-  eval "$cmd"
-  gzip -f -9 -c $PACKAGE-db.ps >$outdir/$PACKAGE-db.ps.gz
-  docbook_ps_gz_size=`calcsize $outdir/$PACKAGE-db.ps.gz`
-  mv $PACKAGE-db.ps $outdir/
-
-  cmd="${DOCBOOK2PDF} ${outdir}/$PACKAGE-db.xml"
-  echo "Generating docbook PDF... ($cmd)"
-  eval "$cmd"
-  docbook_pdf_size=`calcsize $PACKAGE-db.pdf`
-  mv $PACKAGE-db.pdf $outdir/
-fi
-
-echo "Writing index file..."
-if test -z "$use_texi2html"; then
-   CONDS="/%%IF  *HTML_SECTION%%/,/%%ENDIF  *HTML_SECTION%%/d;\
-          /%%IF  *HTML_CHAPTER%%/,/%%ENDIF  *HTML_CHAPTER%%/d"
-else
-   CONDS="/%%ENDIF.*%%/d;/%%IF  *HTML_SECTION%%/d;/%%IF  *HTML_CHAPTER%%/d"
-fi
-curdate=`$SETLANG date '+%B %d, %Y'`
-sed \
-   -e "s!%%TITLE%%!$MANUAL_TITLE!g" \
-   -e "s!%%EMAIL%%!$EMAIL!g" \
-   -e "s!%%PACKAGE%%!$PACKAGE!g" \
-   -e "s!%%DATE%%!$curdate!g" \
-   -e "s!%%HTML_MONO_SIZE%%!$html_mono_size!g" \
-   -e "s!%%HTML_MONO_GZ_SIZE%%!$html_mono_gz_size!g" \
-   -e "s!%%HTML_NODE_TGZ_SIZE%%!$html_node_tgz_size!g" \
-   -e "s!%%HTML_SECTION_TGZ_SIZE%%!$html_section_tgz_size!g" \
-   -e "s!%%HTML_CHAPTER_TGZ_SIZE%%!$html_chapter_tgz_size!g" \
-   -e "s!%%INFO_TGZ_SIZE%%!$info_tgz_size!g" \
-   -e "s!%%DVI_GZ_SIZE%%!$dvi_gz_size!g" \
-   -e "s!%%PDF_SIZE%%!$pdf_size!g" \
-   -e "s!%%PS_GZ_SIZE%%!$ps_gz_size!g" \
-   -e "s!%%ASCII_SIZE%%!$ascii_size!g" \
-   -e "s!%%ASCII_GZ_SIZE%%!$ascii_gz_size!g" \
-   -e "s!%%TEXI_TGZ_SIZE%%!$texi_tgz_size!g" \
-   -e "s!%%DOCBOOK_HTML_NODE_TGZ_SIZE%%!$html_node_db_tgz_size!g" \
-   -e "s!%%DOCBOOK_ASCII_SIZE%%!$docbook_ascii_size!g" \
-   -e "s!%%DOCBOOK_PS_GZ_SIZE%%!$docbook_ps_gz_size!g" \
-   -e "s!%%DOCBOOK_PDF_SIZE%%!$docbook_pdf_size!g" \
-   -e "s!%%DOCBOOK_XML_SIZE%%!$docbook_xml_size!g" \
-   -e "s!%%DOCBOOK_XML_GZ_SIZE%%!$docbook_xml_gz_size!g" \
-   -e "s,%%SCRIPTURL%%,$scripturl,g" \
-   -e "s!%%SCRIPTNAME%%!$prog!g" \
-   -e "$CONDS" \
-$GENDOCS_TEMPLATE_DIR/gendocs_template >$outdir/index.html
-
-echo "Done, see $outdir/ subdirectory for new files."
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
-# End:
diff --git a/doc-maint/make-xboard-release b/doc-maint/make-xboard-release
deleted file mode 100644 (file)
index c7acee6..0000000
+++ /dev/null
@@ -1,186 +0,0 @@
-#!/bin/bash
-
-# the script will check out the correct branch, run "make distcheck",
-# tag git, and upload the files to the GNU server.
-
-# you need to have your GPG key registered with the GNU people for the upload to work!
-
-# the script includes some minimal error checking and tries to automate the following:
-#  * check if the commit is already tagged
-#  * if version number includes a date like 20120304 (to be exact *20??????), 
-#    it will create a developer release otherwise a normal release
-#  * if you have local tags that you don't want to upload, you need to add them further down to git tag -d ...
-
-# you need to set the following to reasonable value for the script to work
-
-# the script at the moment also only works for master and branches called v4*, easy to change in the script though
-GITDIR=/home/arun/src/Prog/xboard
-UPLOADDIR=/home/arun/tmp/xboard-upload
-GPGKEYID="F51BC536"
-
-# default: make a release from master
-BRANCH="master"
-
-function usage () {
-    echo >&2 "usage: $0 [-b branch]"
-    }
-
-# check if we want to make a release from another branch
-while getopts b: opt
-do
-    case "$opt" in
-      b)  BRANCH="$OPTARG";;
-      \?) # unknown flag
-         usage 
-         exit 1;;
-    esac
-done
-shift `expr $OPTIND - 1`
-
-if [ $# -gt 0 ] ; then
-    usage
-    exit 1
-fi
-
-# output information to the user and ask for confirmation
-echo " Tagging and uploading new xboard release to GNU"
-echo "   branch: $BRANCH"
-echo ""
-
-# go into a tmp directory, clone xboard, check out branch
-
-cd $GITDIR
-
-TEX=tex
-
-git checkout $BRANCH
-
-read -n 1 -p "Should be on correct branch now. Continue?" REPLY
-
-# get version information
-
-VERSION=`grep AC_INIT configure.ac | sed -e 's/^.*\[.*\],\[\(.*\)\],.*$/\1/' `
-
-#make sure we don't do things too often
-RESULT=`git tag | grep "^$VERSION\$"`
-if [ "$RESULT" != "" ] ; then
-    echo "this version is already tagged... exiting."
-    exit 1
-fi
-
-#################
-
-# output some summary information and have user confirm it
-
-if [[ $BRANCH == v4* ]] ; then
-    TAGNAME=v$VERSION
-else
-    TAGNAME=$VERSION
-fi
-
-FTPSERVER="ftp-upload.gnu.org"
-if [[ $VERSION == *20?????? ]] ; then
-    TAGMESSAGE="new developer release"
-    FTPDIR="incoming/alpha"
-else
-    TAGMESSAGE="new release of version $VERSION"
-    FTPDIR="incoming/ftp"
-fi
-
-# ask for confirmation from user
-echo " make sure that you are on the right commit (should be the one that changes the version number)!"
-echo "  version will be tagged as:  $TAGNAME"
-echo "  tar ball will be named:   xboard-${VERSION}.tar.gz "
-echo "  tag message: $TAGMESSAGE"
-echo ""
-read -n 1 -p "Continue (y/N)?" REPLY
-echo ""
-
-if [ "x$REPLY" != "xy" ];  then 
-    echo " exiting now!"
-    exit 2
-fi
-
-echo "cleaning up tags"
-# git tag -d <add tag name here, for more than one, add more lines like this one>
-
-
-echo "tagging commit"
-git tag -u $GPGKEYID -m "$TAGMESSAGE" $TAGNAME
-
-echo "create tar ball"
-./autogen.sh
-./configure
-TEX=tex make distcheck
-
-if [ -s xboard-${VERSION}.tar.gz ] ; then
-    echo ""
-    echo " make distcheck seems to be ok"
-    echo ""
-else
-    echo ""
-    echo " problem with make distcheck"
-    echo ""
-    exit 3
-fi
-
-echo "move tar ball to upload directory"
-mv xboard-${VERSION}.tar.gz $UPLOADDIR
-
-echo "cd into upload directory"
-cd $UPLOADDIR 
-
-# create files necessary for upload to GNU
-echo "creating directive"
-echo "version: 1.1
-directory: xboard
-filename: xboard-${VERSION}.tar.gz
-comment: $TAGMESSAGE " > xboard-${VERSION}.tar.gz.directive
-
-echo "signing packages"
-gpg -b xboard-${VERSION}.tar.gz
-gpg --clearsign xboard-${VERSION}.tar.gz.directive
-
-echo "uploading..."
-
-echo "
-The files can be found in $UPLOADDIR. Go and test them :)
-
-Will do the following in a second followed by a git push
-
-ftp -n -v $FTPSERVER <<EOT
-user anonymous
-cd $FTPDIR
-put xboard-${VERSION}.tar.gz
-put xboard-${VERSION}.tar.gz.sig
-put xboard-${VERSION}.tar.gz.directive.asc
-EOT
-"
-
-read -n 1 -p "Will upload and push tags now. Continue? (y/N)" REPLY
-
-if [ "x$REPLY" != "xy" ];  then 
-    echo " exiting now!"
-    exit 3
-fi
-
-# upload to GNU
-ftp -n -v $FTPSERVER <<EOT
-user anonymous
-cd $FTPDIR
-put xboard-${VERSION}.tar.gz
-put xboard-${VERSION}.tar.gz.sig
-put xboard-${VERSION}.tar.gz.directive.asc
-EOT
-
-# push tags
-cd $GITDIR
-echo "pushing tags and commits"
-git push
-git push --tags 
-
-#possible to add other git repos here too
-#git push github
-#git push --tags github
-
-echo "done...have a nice day!"
diff --git a/doc-maint/release.org b/doc-maint/release.org
deleted file mode 100644 (file)
index 5008433..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-* Release documentation
-** Pre-release checklist
- - update AUTHORS, NEWS, check other files
- - update version in configure.ac and other places
- - run "make distcheck" and then create tar-ball via "make dist"
- - unpack tar-ball, check that it builds OK
- - tag with signature
- - check openSUSE build
- - update git@savannah, github
- - update po/pot files via "cd po; make update-po". This should happen
-   after the version number has been updated, so that the po-files
-   automatically get the correct version number.
- - send pot-file to translationproject
-
-** Release
-
-See script make-xboard-release that can handle GNU-upload and tagging in git.
-
-- update webpage, manuals
-- upload on gnu
-- update enginge-intf.html
-- create savannah news item
-- email lists; add short discription of xboard to news item
-  1) email gnu (check admin page for gnu) http://www.gnu.org/prep/maintain/html_node/Announcements.html#Announcements
-  2) email chess servers (ICS, FICS) and other web directories
-  3) email linux distributions/update opensuse (Arun can handle OpenSUSE)
-  4) email info-gnu-chess
-- update freshmeat.net (Tim can do this, email him)
-- newsgroups add short discription of xboard to news item
-  1)  gnu.chess, info-gnu-chess
-  2)  rec.games.chess.computer
-  3)  comp.os.linux.announce
-  4)  WinBoard forum web page (HGM does this one)
-- update git to the next pre-release
-
-** Template for emails
-
-fill in the <...>
-
-Subject: release of XBoard version <...>
-
-Hello,
-
-A new version of XBoard is available. Here are some details:
-
-Short description:
-
-XBoard is a graphical user interface for chess in all its major forms,
-including international chess, xiangqi (Chinese chess), shogi Japanese chess)
-and Makruk. Many variations of chess are also supported.
-
-Web page:
-
-http://www.gnu.org/software/xboard/
-
-Download at:
-
-http://ftp.gnu.org/gnu/xboard/
-
-Windows binaries will be available at:
-
-http://www.open-aurec.com/wbforum/viewforum.php?f=19
-
-Development at:
-
-https://savannah.gnu.org/projects/xboard/
-
-News:
-
-<list of most important new features>
-See the NEWS file in the distribution or git for more details.
diff --git a/doc-maint/web-pages.org b/doc-maint/web-pages.org
deleted file mode 100644 (file)
index cc71f14..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-The home page for XBoard are kept in CVS. This is a unfortunate, since
-we keep the code in git and hopefully will change in the
-future. Luckily there is a cvsexport/import command for git that can help.
-
-Possible setup:
-
-cvs web page in /home/user/xboard-cvs
-git in          /home/user/xboard-git
-
-Add the following entries in /home/user/xboard-git/.git/config:
-
-[cvsimport]
-        module = xboard
-        d = :ext:<savannah user name>@cvs.sv.gnu.org:/webcvs/xboard
-[cvsexportcommit]
-        cvsdir = /home/user/xboard-cvs
-
-It's probably best to have a tracking branch for the cvs tree, one
-that branch you should be able to use:
-
-git cvsimport -a
-
-to import all cvs-commits into the git tree. You can merge that branch
-with the www-branch in git.
-
-To push a git-commit (from branch www) into cvs, you can use:
-
-git cvsexportcommit -v -c <sha1>
-
-This can only be done one commit at a time AFAIK. In case of conflicts
-cvsexportcommit will leave a .msg and patchfile (something like
-.cvscommitpatch) in the CVS directory that you can apply by hand and
-then fix the merge conflicts and apply the commit by hand via "cvs
-commit" (use "cvs add <file>" if you need to add new files).
-
-GNU also provides a script to update the online manual from the texi
-file. It's called gendocs.sh (see same directory as this file). There
-might be newer version around, so it could be worth checking for them
-every now and then.
-
diff --git a/draw.c b/draw.c
deleted file mode 100644 (file)
index 82072bf..0000000
--- a/draw.c
+++ /dev/null
@@ -1,1117 +0,0 @@
-/*
- * draw.c -- drawing routines for XBoard
- *
- * Copyright 1991 by Digital Equipment Corporation, Maynard,
- * Massachusetts.
- *
- * Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006,
- * 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free
- * Software Foundation, Inc.
- *
- * The following terms apply to Digital Equipment Corporation's copyright
- * interest in XBoard:
- * ------------------------------------------------------------------------
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notice appear in all copies and that
- * both that copyright notice and this permission notice appear in
- * supporting documentation, and that the name of Digital not be
- * used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- *
- * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- * ------------------------------------------------------------------------
- *
- * The following terms apply to the enhanced version of XBoard
- * distributed by the Free Software Foundation:
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-#include "config.h"
-
-#include <stdio.h>
-#include <math.h>
-#include <cairo/cairo.h>
-#include <librsvg/rsvg.h>
-#include <librsvg/rsvg-cairo.h>
-#include <pango/pangocairo.h>
-
-#if STDC_HEADERS
-# include <stdlib.h>
-# include <string.h>
-#else /* not STDC_HEADERS */
-extern char *getenv();
-# if HAVE_STRING_H
-#  include <string.h>
-# else /* not HAVE_STRING_H */
-#  include <strings.h>
-# endif /* not HAVE_STRING_H */
-#endif /* not STDC_HEADERS */
-
-#if ENABLE_NLS
-#include <locale.h>
-#endif
-
-#include "common.h"
-
-#include "backend.h"
-#include "board.h"
-#include "menus.h"
-#include "dialogs.h"
-#include "evalgraph.h"
-#include "gettext.h"
-#include "draw.h"
-
-
-#ifdef __EMX__
-#ifndef HAVE_USLEEP
-#define HAVE_USLEEP
-#endif
-#define usleep(t)   _sleep2(((t)+500)/1000)
-#endif
-
-#ifdef ENABLE_NLS
-# define  _(s) gettext (s)
-# define N_(s) gettext_noop (s)
-#else
-# define  _(s) (s)
-# define N_(s)  s
-#endif
-
-#define SOLID 0
-#define OUTLINE 1
-Boolean cairoAnimate;
-Option *currBoard;
-cairo_surface_t *csBoardWindow;
-static cairo_surface_t *pngPieceImages[2][(int)BlackPawn];   // png 256 x 256 images
-static cairo_surface_t *pngPieceBitmaps[2][(int)BlackPawn];  // scaled pieces as used
-static cairo_surface_t *pngPieceBitmaps2[2][(int)BlackPawn]; // scaled pieces in store
-static RsvgHandle *svgPieces[2][(int)BlackPawn]; // vector pieces in store
-static cairo_surface_t *pngBoardBitmap[2], *pngOriginalBoardBitmap[2];
-int useTexture, textureW[2], textureH[2];
-
-#define pieceToSolid(piece) &pieceBitmap[SOLID][(piece) % (int)BlackPawn]
-#define pieceToOutline(piece) &pieceBitmap[OUTLINE][(piece) % (int)BlackPawn]
-
-#define White(piece) ((int)(piece) < (int)BlackPawn)
-
-char svgDir[MSG_SIZ] = SVGDIR;
-
-char *crWhite = "#FFFFB0";
-char *crBlack = "#AD5D3D";
-
-struct {
-  int x1, x2, y1, y2;
-} gridSegments[BOARD_RANKS + BOARD_FILES + 2];
-
-void
-SwitchWindow (int main)
-{
-    currBoard = (main ? &mainOptions[W_BOARD] : &dualOptions[3]);
-//    CsBoardWindow = DRAWABLE(currBoard);
-}
-
-
-static void
-NewCanvas (Option *graph)
-{
-       cairo_t *cr;
-       int w = graph->max, h = graph->value;
-       if(graph->choice) cairo_surface_destroy((cairo_surface_t *) graph->choice);
-       graph->choice = (char**) cairo_image_surface_create (CAIRO_FORMAT_ARGB32, w, h);
-       // paint white, to prevent weirdness when people maximize window and drag pieces over space next to board
-       cr = cairo_create ((cairo_surface_t *) graph->choice);
-       cairo_rectangle (cr, 0, 0, w, h);
-       cairo_set_source_rgba(cr, 1.0, 1.0, 1.0, 1.0);
-       cairo_fill(cr);
-       cairo_destroy (cr);
-       graph->min &= ~REPLACE;
-}
-
-static cairo_surface_t *
-CsBoardWindow (Option *opt)
-{   // test before every draw event if we need to resize the canvas
-    if(opt->min & REPLACE) NewCanvas(opt);
-    return DRAWABLE(opt);
-}
-
-
-void
-SelectPieces(VariantClass v)
-{
-    int i;
-    for(i=0; i<2; i++) {
-       int p;
-       for(p=0; p<=(int)WhiteKing; p++)
-          pngPieceBitmaps[i][p] = pngPieceBitmaps2[i][p]; // defaults
-       if(v == VariantShogi && BOARD_HEIGHT != 7) { // no exceptions in Tori Shogi
-          pngPieceBitmaps[i][(int)WhiteCannon] = pngPieceBitmaps2[i][(int)WhiteTokin];
-          pngPieceBitmaps[i][(int)WhiteNightrider] = pngPieceBitmaps2[i][(int)WhitePKnight];
-          pngPieceBitmaps[i][(int)WhiteGrasshopper] = pngPieceBitmaps2[i][(int)WhitePLance];
-          pngPieceBitmaps[i][(int)WhiteSilver] = pngPieceBitmaps2[i][(int)WhitePSilver];
-          pngPieceBitmaps[i][(int)WhiteQueen] = pngPieceBitmaps2[i][(int)WhiteLance];
-          pngPieceBitmaps[i][(int)WhiteFalcon] = pngPieceBitmaps2[i][(int)WhiteMonarch]; // for Sho Shogi
-       }
-#ifdef GOTHIC
-       if(v == VariantGothic) {
-          pngPieceBitmaps[i][(int)WhiteMarshall] = pngPieceBitmaps2[i][(int)WhiteSilver];
-       }
-#endif
-       if(v == VariantSChess) {
-          pngPieceBitmaps[i][(int)WhiteAngel]    = pngPieceBitmaps2[i][(int)WhiteFalcon];
-          pngPieceBitmaps[i][(int)WhiteMarshall] = pngPieceBitmaps2[i][(int)WhiteAlfil];
-       }
-       if(v == VariantChuChess) {
-          pngPieceBitmaps[i][(int)WhiteNightrider] = pngPieceBitmaps2[i][(int)WhiteLion];
-       }
-       if(v == VariantChu) {
-          pngPieceBitmaps[i][(int)WhiteNightrider] = pngPieceBitmaps2[i][(int)WhiteClaw];
-          pngPieceBitmaps[i][(int)WhiteClaw]    = pngPieceBitmaps2[i][(int)WhiteNightrider];
-          pngPieceBitmaps[i][(int)WhiteUnicorn] = pngPieceBitmaps2[i][(int)WhiteCat];
-          pngPieceBitmaps[i][(int)WhiteSilver]  = pngPieceBitmaps2[i][(int)WhiteSword];
-          pngPieceBitmaps[i][(int)WhiteFalcon]  = pngPieceBitmaps2[i][(int)WhiteDagger];
-          pngPieceBitmaps[i][(int)WhiteCat]     = pngPieceBitmaps2[i][(int)WhiteUnicorn];
-          pngPieceBitmaps[i][(int)WhiteSword]   = pngPieceBitmaps2[i][(int)WhiteSilver];
-          pngPieceBitmaps[i][(int)WhiteDagger]  = pngPieceBitmaps2[i][(int)WhiteFalcon];
-          pngPieceBitmaps[i][(int)WhiteMan]     = pngPieceBitmaps2[i][(int)WhiteCopper];
-          pngPieceBitmaps[i][(int)WhiteCopper]  = pngPieceBitmaps2[i][(int)WhiteMan];
-          pngPieceBitmaps[i][(int)WhiteAxe]     = pngPieceBitmaps2[i][(int)WhiteCannon];
-          pngPieceBitmaps[i][(int)WhiteCannon]  = pngPieceBitmaps2[i][(int)WhiteAxe];
-       }
-    }
-}
-
-#define BoardSize int
-void
-InitDrawingSizes (BoardSize boardSize, int flags)
-{   // [HGM] resize is functional now, but for board format changes only (nr of ranks, files)
-    int boardWidth, boardHeight;
-    static int oldWidth, oldHeight;
-    static VariantClass oldVariant;
-    static int oldTwoBoards = 0, oldNrOfFiles = 0;
-
-    if(!mainOptions[W_BOARD].handle) return;
-
-    if(boardSize == -2 && gameInfo.variant != oldVariant
-                       && oldNrOfFiles && oldNrOfFiles != BOARD_WIDTH) { // called because variant switch changed board format
-       squareSize = ((squareSize + lineGap) * oldNrOfFiles + 0.5*BOARD_WIDTH) / BOARD_WIDTH; // keep total width fixed
-       if(appData.overrideLineGap < 0) lineGap = squareSize < 37 ? 1 : squareSize < 59 ? 2 : squareSize < 116 ? 3 : 4;
-        squareSize -= lineGap;
-       CreatePNGPieces();
-        CreateGrid();
-    }
-    oldNrOfFiles = BOARD_WIDTH;
-
-    if(oldTwoBoards && !twoBoards) PopDown(DummyDlg);
-    oldTwoBoards = twoBoards;
-
-    if(appData.overrideLineGap >= 0) lineGap = appData.overrideLineGap;
-    boardWidth = lineGap + BOARD_WIDTH * (squareSize + lineGap);
-    boardHeight = lineGap + BOARD_HEIGHT * (squareSize + lineGap);
-
-  if(boardWidth != oldWidth || boardHeight != oldHeight) { // do resizing stuff only if size actually changed
-
-    oldWidth = boardWidth; oldHeight = boardHeight;
-    CreateGrid();
-    CreateAnyPieces(0); // redo texture scaling
-
-    /*
-     * Inhibit shell resizing.
-     */
-    ResizeBoardWindow(boardWidth, boardHeight, 0);
-
-    DelayedDrag();
-  }
-
-    // [HGM] pieces: tailor piece bitmaps to needs of specific variant
-    // (only for xpm)
-
-  if(gameInfo.variant != oldVariant) { // and only if variant changed
-
-    SelectPieces(gameInfo.variant);
-
-    oldVariant = gameInfo.variant;
-  }
-  CreateAnimVars();
-}
-
-void
-ExposeRedraw (Option *graph, int x, int y, int w, int h)
-{   // copy a selected part of the buffer bitmap to the display
-    cairo_t *cr = cairo_create((cairo_surface_t *) graph->textValue);
-    cairo_set_source_surface(cr, (cairo_surface_t *) graph->choice, 0, 0);
-    cairo_set_antialias(cr, CAIRO_ANTIALIAS_NONE);
-    cairo_rectangle(cr, x, y, w, h);
-    cairo_fill(cr);
-    cairo_destroy(cr);
-}
-
-static int modV[2], modH[2];
-
-static void
-CreatePNGBoard (char *s, int kind)
-{
-    float w, h;
-    static float n[2] = { 1., 1. };
-    if(!appData.useBitmaps || s == NULL || *s == 0 || *s == '*') { useTexture &= ~(kind+1); return; }
-    textureW[kind] = 0; // prevents bitmap from being used if not succesfully loaded
-    if(strstr(s, ".png")) {
-       cairo_surface_t *img = cairo_image_surface_create_from_png (s);
-       if(cairo_surface_status(img) == CAIRO_STATUS_SUCCESS) {
-           char c, *p = s, *q;
-           int r, f;
-           if(pngOriginalBoardBitmap[kind]) cairo_surface_destroy(pngOriginalBoardBitmap[kind]);
-           if(n[kind] != 1.) cairo_surface_destroy(pngBoardBitmap[kind]);
-           useTexture |= kind + 1; pngOriginalBoardBitmap[kind] = img;
-           w = textureW[kind] = cairo_image_surface_get_width (img);
-           h = textureH[kind] = cairo_image_surface_get_height (img);
-           n[kind] = 1.; modV[kind] = modH[kind] = -1;
-           while((q = strchr(p+1, '-'))) p = q; // find last '-'
-           if(strlen(p) < 11 && sscanf(p, "-%dx%d.pn%c", &f, &r, &c) == 3 && c == 'g') {
-               if(f == 0 || r == 0) f = BOARD_WIDTH, r = BOARD_HEIGHT; // 0x0 means 'fits any', so make it fit
-               textureW[kind] = (w*BOARD_WIDTH)/f; // sync cutting locations with square pattern
-               textureH[kind] = (h*BOARD_HEIGHT)/r;
-               n[kind] = r*squareSize/h; // scale to make it fit exactly vertically
-               modV[kind] = r; modH[kind] = f;
-           } else
-           if((p = strstr(s, "xq")) && (p == s || p[-1] == '/')) { // assume full-board image for Xiangqi
-               while(0.8*squareSize*BOARD_WIDTH > n[kind]*w || 0.8*squareSize*BOARD_HEIGHT > n[kind]*h) n[kind]++;
-           } else {
-               while(squareSize > n[kind]*w || squareSize > n[kind]*h) n[kind]++;
-           }
-           if(n[kind] == 1.) pngBoardBitmap[kind] = img; else {
-               // create scaled-up copy of the raw png image when it was too small
-               cairo_surface_t *cs = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, n[kind]*w, n[kind]*h);
-               cairo_t *cr = cairo_create(cs);
-               pngBoardBitmap[kind] = cs; textureW[kind] *= n[kind]; textureH[kind] *= n[kind];
-//             cairo_set_antialias(cr, CAIRO_ANTIALIAS_NONE);
-               cairo_scale(cr, n[kind], n[kind]);
-               cairo_set_source_surface (cr, img, 0, 0);
-               cairo_paint (cr);
-               cairo_destroy (cr);
-           }
-       }
-    }
-}
-
-char *pngPieceNames[] = // must be in same order as internal piece encoding
-{ "Pawn", "Knight", "Bishop", "Rook", "Queen", "Advisor", "Elephant", "Archbishop", "Marshall", "Gold", "Commoner",
-  "Canon", "Nightrider", "CrownedBishop", "CrownedRook", "Crown", "Chancellor", "Hawk", "Lance", "Cobra", "Unicorn", "Lion",
-  "Sword", "Zebra", "Camel", "Tower", "Wolf", "Hat", "Duck", "Lance", "Dragon", "Gnu", "Cub",
-  "LShield", "Pegasus", "Wizard", "Copper", "Iron", "Viking", "Flag", "Axe", "Dolphin", "Leopard", "Claw",
-  "Left", "Butterfly", "PromoBishop", "PromoRook", "HCrown", "RShield", "Prince", "Phoenix", "Kylin", "Drunk", "Right",
-  "GoldPawn", "GoldKnight", "PromoHorse", "PromoDragon", "GoldLance", "GoldSilver", "HSword", "PromoSword", "PromoHSword", "Princess", "King",
-  NULL
-};
-
-char *backupPiece[] = { // pieces that map on other in default theme ("Crown" - "Drunk")
-  "Princess", NULL, NULL, NULL, NULL, NULL, NULL,
-  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "Chancellor", NULL,
-  NULL, "Knight", NULL, "Commoner", NULL, NULL, NULL, "Canon", NULL, NULL, NULL,
-  NULL, NULL, NULL, NULL, NULL, NULL, "King", "Queen", "Lion", "Elephant"
-};
-
-RsvgHandle *
-LoadSVG (char *dir, int color, int piece, int retry)
-{
-    char buf[MSG_SIZ];
-  RsvgHandle *svg=svgPieces[color][piece];
-  RsvgDimensionData svg_dimensions;
-  GError *svgerror=NULL;
-  cairo_surface_t *img;
-  cairo_t *cr;
-  char *name = (retry ? backupPiece[piece - WhiteGrasshopper] : pngPieceNames[piece]);
-
-    if(!name) return NULL;
-
-    snprintf(buf, MSG_SIZ, "%s/%s%s.svg", dir, color ? "Black" : "White", name);
-
-    if(!svg && *dir) {
-      svg = rsvg_handle_new_from_file(buf, &svgerror);
-      if(!svg) { // failed! If -pid name starts with "sub_" we try to load the piece from the parent directory
-       char *p = buf, *q;
-       safeStrCpy(buf, dir, MSG_SIZ);
-       while((q = strchr(p, '/'))) p = q + 1;
-       if(!strncmp(p, "sub_", 4)) {
-         if(p == buf) safeStrCpy(buf, ".", MSG_SIZ); else p[-1] = NULLCHAR; // strip last directory off path
-         return LoadSVG(buf, color, piece, retry);
-       }
-      }
-      if(!svg && *appData.inscriptions) { // if there is no piece-specific SVG, but we make inscriptions, try general background
-       snprintf(buf, MSG_SIZ, "%s/%sTile.svg", dir, color ? "Black" : "White");
-       svg = rsvg_handle_new_from_file(buf, &svgerror);
-      }
-    }
-
-    if(svg) {
-      rsvg_handle_get_dimensions(svg, &svg_dimensions);
-      img = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, squareSize,  squareSize);
-
-      cr = cairo_create(img);
-      cairo_scale(cr, squareSize/(double) svg_dimensions.width, squareSize/(double) svg_dimensions.height);
-      rsvg_handle_render_cairo(svg, cr);
-      if(cairo_surface_status(img) == CAIRO_STATUS_SUCCESS) {
-        if(pngPieceImages[color][piece]) cairo_surface_destroy(pngPieceImages[color][piece]);
-        pngPieceImages[color][piece] = img;
-      }
-      cairo_destroy(cr);
-
-      return svg;
-    }
-    if(!retry && piece >= WhiteGrasshopper && piece <= WhiteDrunk) // pieces that are only different in kanji sets
-        return LoadSVG(dir, color, piece, 1);
-    if(svgerror)
-       g_error_free(svgerror);
-    return NULL;
-}
-
-static void
-ScaleOnePiece (int color, int piece)
-{
-  float w, h;
-  char buf[MSG_SIZ];
-  cairo_surface_t *img, *cs;
-  cairo_t *cr;
-
-  g_type_init ();
-
-  svgPieces[color][piece] = LoadSVG("", color, piece, 0); // this fills pngPieceImages if we had cached svg with bitmap of wanted size
-
-  if(!pngPieceImages[color][piece]) { // we don't have cached bitmap (implying we did not have cached svg)
-    if(*appData.pieceDirectory) { // user specified piece directory
-      snprintf(buf, MSG_SIZ, "%s/%s%s.png", appData.pieceDirectory, color ? "Black" : "White", pngPieceNames[piece]);
-      img = cairo_image_surface_create_from_png (buf); // try if there are png pieces there
-      if(cairo_surface_status(img) != CAIRO_STATUS_SUCCESS) { // there were not
-       svgPieces[color][piece] = LoadSVG(appData.pieceDirectory, color, piece, 0); // so try if he has svg there
-      } else pngPieceImages[color][piece] = img;
-    }
-  }
-
-  if(!pngPieceImages[color][piece]) { // we still did not manage to acquire a piece bitmap
-    static int warned = 0;
-    if(!(svgPieces[color][piece] = LoadSVG(svgDir, color, piece, 0)) // try to fall back on installed svg 
-       && !warned && strcmp(pngPieceNames[piece], "Tile")) {         // but do not complain about missing 'Tile'
-      char *msg = _("No default pieces installed!\nSelect your own using '-pieceImageDirectory'.");
-      printf("%s (%s)\n", msg, pngPieceNames[piece]); // give up
-      DisplayError(msg, 0);
-      warned = 1; // prevent error message being repeated for each piece type
-    }
-  }
-
-  img = pngPieceImages[color][piece];
-
-  // create new bitmap to hold scaled piece image (and remove any old)
-  if(pngPieceBitmaps2[color][piece]) cairo_surface_destroy (pngPieceBitmaps2[color][piece]);
-  pngPieceBitmaps2[color][piece] = cs = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, squareSize, squareSize);
-
-  if(!img) return;
-
-  // scaled copying of the raw png image
-  cr = cairo_create(cs);
-  w = cairo_image_surface_get_width (img);
-  h = cairo_image_surface_get_height (img);
-  cairo_scale(cr, squareSize/w, squareSize/h);
-  cairo_set_source_surface (cr, img, 0, 0);
-  cairo_paint (cr);
-  cairo_destroy (cr);
-
-  if(!appData.trueColors || !*appData.pieceDirectory) { // operate on bitmap to color it (king-size hack...)
-    int stride = cairo_image_surface_get_stride(cs)/4;
-    int *buf = (int *) cairo_image_surface_get_data(cs);
-    int i, j, p;
-    sscanf(color ? appData.blackPieceColor+1 : appData.whitePieceColor+1, "%x", &p); // replacement color
-    cairo_surface_flush(cs);
-    for(i=0; i<squareSize; i++) for(j=0; j<squareSize; j++) {
-       int r, a;
-       float f;
-       unsigned int c = buf[i*stride + j];
-       a = c >> 24; r = c >> 16 & 255;     // alpha and red, where red is the 'white' weight, since white is #FFFFCC in the source images
-        f = (color ? a - r : r)/255.;       // fraction of black or white in the mix that has to be replaced
-       buf[i*stride + j] = c & 0xFF000000; // alpha channel is kept at same opacity
-       buf[i*stride + j] += ((int)(f*(p&0xFF0000)) & 0xFF0000) + ((int)(f*(p&0xFF00)) & 0xFF00) + (int)(f*(p&0xFF)); // add desired fraction of new color
-       if(color) buf[i*stride + j] += r | r << 8 | r << 16; // details on black pieces get their weight added in pure white
-       if(appData.monoMode) {
-           if(a < 64) buf[i*stride + j] = 0; // if not opaque enough, totally transparent
-           else if(2*r < a) buf[i*stride + j] = 0xFF000000; // if not light enough, totally black
-            else buf[i*stride + j] = 0xFFFFFFFF; // otherwise white
-       }
-    }
-    cairo_surface_mark_dirty(cs);
-  }
-}
-
-void
-CreatePNGPieces ()
-{
-  int p;
-
-  for(p=0; pngPieceNames[p]; p++) {
-    ScaleOnePiece(0, p);
-    ScaleOnePiece(1, p);
-  }
-  SelectPieces(gameInfo.variant);
-}
-
-void
-CreateAnyPieces (int p)
-{   // [HGM] taken out of main
-    if(p) CreatePNGPieces();
-    CreatePNGBoard(appData.liteBackTextureFile, 1);
-    CreatePNGBoard(appData.darkBackTextureFile, 0);
-}
-
-void
-InitDrawingParams (int reloadPieces)
-{
-    int i, p;
-    if(reloadPieces)
-    for(i=0; i<2; i++) for(p=0; p<BlackPawn; p++) {
-       if(pngPieceImages[i][p]) cairo_surface_destroy(pngPieceImages[i][p]);
-       pngPieceImages[i][p] = NULL;
-       if(svgPieces[i][p]) rsvg_handle_close(svgPieces[i][p], NULL);
-       svgPieces[i][p] = NULL;
-    }
-    CreateAnyPieces(1);
-}
-
-// [HGM] seekgraph: some low-level drawing routines (by JC, mostly)
-
-float
-Color (char *col, int n)
-{
-  int c;
-  sscanf(col, "#%x", &c);
-  c = c >> 4*n & 255;
-  return c/255.;
-}
-
-void
-SetPen (cairo_t *cr, float w, char *col, int dash)
-{
-  static const double dotted[] = {4.0, 4.0};
-  static int len  = sizeof(dotted) / sizeof(dotted[0]);
-  cairo_set_line_width (cr, w);
-  cairo_set_source_rgba (cr, Color(col, 4), Color(col, 2), Color(col, 0), 1.0);
-  if(dash) cairo_set_dash (cr, dotted, len, 0.0);
-}
-
-void DrawSeekAxis( int x, int y, int xTo, int yTo )
-{
-    cairo_t *cr;
-
-    /* get a cairo_t */
-    cr = cairo_create (CsBoardWindow(currBoard));
-
-    cairo_move_to (cr, x, y);
-    cairo_line_to(cr, xTo, yTo );
-
-    SetPen(cr, 2, "#000000", 0);
-    cairo_stroke(cr);
-
-    /* free memory */
-    cairo_destroy (cr);
-    GraphExpose(currBoard, x-1, yTo-1, xTo-x+2, y-yTo+2);
-}
-
-void DrawSeekBackground( int left, int top, int right, int bottom )
-{
-    cairo_t *cr = cairo_create (CsBoardWindow(currBoard));
-
-    cairo_rectangle (cr, left, top, right-left, bottom-top);
-
-    cairo_set_source_rgba(cr, 0.8, 0.8, 0.4,1.0);
-    cairo_fill(cr);
-
-    /* free memory */
-    cairo_destroy (cr);
-    GraphExpose(currBoard, left, top, right-left, bottom-top);
-}
-
-void DrawSeekText(char *buf, int x, int y)
-{
-    cairo_t *cr = cairo_create (CsBoardWindow(currBoard));
-
-    cairo_select_font_face (cr, "Sans",
-                           CAIRO_FONT_SLANT_NORMAL,
-                           CAIRO_FONT_WEIGHT_NORMAL);
-
-    cairo_set_font_size (cr, 12.0);
-
-    cairo_move_to (cr, x, y+4);
-    cairo_set_source_rgba(cr, 0, 0, 0,1.0);
-    cairo_show_text( cr, buf);
-
-    /* free memory */
-    cairo_destroy (cr);
-    GraphExpose(currBoard, x-5, y-10, 60, 15);
-}
-
-void DrawSeekDot(int x, int y, int colorNr)
-{
-    cairo_t *cr = cairo_create (CsBoardWindow(currBoard));
-    int square = colorNr & 0x80;
-    colorNr &= 0x7F;
-
-    if(square)
-       cairo_rectangle (cr, x-squareSize/9, y-squareSize/9, 2*(squareSize/9), 2*(squareSize/9));
-    else
-       cairo_arc(cr, x, y, squareSize/9, 0.0, 2*M_PI);
-
-    SetPen(cr, 2, "#000000", 0);
-    cairo_stroke_preserve(cr);
-    switch (colorNr) {
-      case 0: cairo_set_source_rgba(cr, 1.0, 0, 0,1.0);        break;
-      case 1: cairo_set_source_rgba (cr, 0.0, 0.7, 0.2, 1.0); break;
-      default: cairo_set_source_rgba (cr, 1.0, 1.0, 0.0, 1.0); break;
-    }
-    cairo_fill(cr);
-
-    /* free memory */
-    cairo_destroy (cr);
-    GraphExpose(currBoard, x-squareSize/8, y-squareSize/8, 2*(squareSize/8), 2*(squareSize/8));
-}
-
-void
-InitDrawingHandle (Option *opt)
-{
-//    CsBoardWindow = DRAWABLE(opt);
-    currBoard = opt;
-}
-
-void
-CreateGrid ()
-{
-    int i, j;
-
-    if (lineGap == 0) return;
-
-    /* [HR] Split this into 2 loops for non-square boards. */
-
-    for (i = 0; i < BOARD_HEIGHT + 1; i++) {
-        gridSegments[i].x1 = 0;
-        gridSegments[i].x2 =
-          lineGap + BOARD_WIDTH * (squareSize + lineGap);
-        gridSegments[i].y1 = gridSegments[i].y2
-          = lineGap / 2 + (i * (squareSize + lineGap));
-    }
-
-    for (j = 0; j < BOARD_WIDTH + 1; j++) {
-        gridSegments[j + i].y1 = 0;
-        gridSegments[j + i].y2 =
-          lineGap + BOARD_HEIGHT * (squareSize + lineGap);
-        gridSegments[j + i].x1 = gridSegments[j + i].x2
-          = lineGap / 2 + (j * (squareSize + lineGap));
-    }
-}
-
-void
-DrawGrid()
-{
-  /* draws a grid starting around Nx, Ny squares starting at x,y */
-  int i;
-  float odd = (lineGap & 1)/2.;
-  cairo_t *cr;
-
-  /* get a cairo_t */
-  cr = cairo_create (CsBoardWindow(currBoard));
-
-  cairo_set_antialias (cr, CAIRO_ANTIALIAS_NONE);
-  SetPen(cr, lineGap, "#000000", 0);
-
-  /* lines in X */
-  for (i = 0; i < BOARD_WIDTH + BOARD_HEIGHT + 2; i++)
-    {
-      int h = (gridSegments[i].y1 == gridSegments[i].y2); // horizontal
-      cairo_move_to (cr, gridSegments[i].x1 + !h*odd, gridSegments[i].y1 + h*odd);
-      cairo_line_to (cr, gridSegments[i].x2 + !h*odd, gridSegments[i].y2 + h*odd);
-      cairo_stroke (cr);
-    }
-
-  /* free memory */
-  cairo_destroy (cr);
-
-  return;
-}
-
-void
-DrawBorder (int x, int y, int type, int odd)
-{
-    cairo_t *cr;
-    char *col;
-
-    switch(type) {
-       case 0: col = "#000000"; break;
-       case 1: col = appData.highlightSquareColor; break;
-       case 2: col = appData.premoveHighlightColor; break;
-       default: col = "#808080"; break; // cannot happen
-    }
-    cr = cairo_create(CsBoardWindow(currBoard));
-    cairo_set_antialias(cr, CAIRO_ANTIALIAS_NONE);
-    cairo_rectangle(cr, x+odd/2., y+odd/2., squareSize+lineGap, squareSize+lineGap);
-    SetPen(cr, lineGap, col, 0);
-    cairo_stroke(cr);
-    cairo_destroy(cr);
-//    GraphExpose(currBoard, x - lineGap/2, y - lineGap/2, squareSize+2*lineGap+odd, squareSize+2*lineGap+odd);
-}
-
-static int
-CutOutSquare (int x, int y, int *x0, int *y0, int  kind)
-{
-    int W = BOARD_WIDTH, H = BOARD_HEIGHT;
-    int nx = x/(squareSize + lineGap), ny = y/(squareSize + lineGap);
-    *x0 = 0; *y0 = 0;
-    if(textureW[kind] < squareSize || textureH[kind] < squareSize) return 0;
-    if(modV[kind] > 0) nx %= modH[kind], ny %= modV[kind]; // tile fixed-format board periodically to extend it
-    if(textureW[kind] < W*squareSize)
-       *x0 = (textureW[kind] - squareSize) * nx/(W-1);
-    else
-       *x0 = textureW[kind]*nx / W + (textureW[kind] - W*squareSize) / (2*W);
-    if(textureH[kind] < H*squareSize)
-       *y0 = (textureH[kind] - squareSize) * ny/(H-1);
-    else
-       *y0 = textureH[kind]*ny / H + (textureH[kind] - H*squareSize) / (2*H);
-    return 1;
-}
-
-void
-DrawLogo (Option *opt, void *logo)
-{
-    cairo_surface_t *img;
-    cairo_t *cr;
-    int w, h;
-
-    if(!opt) return;
-    cr = cairo_create(CsBoardWindow(opt));
-    cairo_rectangle (cr, 0, 0, opt->max, opt->value);
-    cairo_set_source_rgba(cr, 0.5, 0.5, 0.5, 1.0);
-    cairo_fill(cr); // paint background in case logo does not exist
-    if(logo) {
-        img = cairo_image_surface_create_from_png (logo);
-        if(cairo_surface_status(img) == CAIRO_STATUS_SUCCESS) {
-           w = cairo_image_surface_get_width (img);
-           h = cairo_image_surface_get_height (img);
-//        cairo_scale(cr, (float)appData.logoSize/w, appData.logoSize/(2.*h));
-           cairo_scale(cr, (float)opt->max/w, (float)opt->value/h);
-           cairo_set_source_surface (cr, img, 0, 0);
-           cairo_paint (cr);
-        }
-       cairo_surface_destroy (img);
-    }
-    cairo_destroy (cr);
-    GraphExpose(opt, 0, 0, opt->max, opt->value);
-}
-
-static void
-BlankSquare (cairo_surface_t *dest, int x, int y, int color, ChessSquare piece, int fac)
-{   // [HGM] extra param 'fac' for forcing destination to (0,0) for copying to animation buffer
-    int x0, y0;
-    cairo_t *cr;
-
-    cr = cairo_create (dest);
-
-    if ((useTexture & color+1) && CutOutSquare(x, y, &x0, &y0, color)) {
-           cairo_set_source_surface (cr, pngBoardBitmap[color], x*fac - x0, y*fac - y0);
-           cairo_set_antialias (cr, CAIRO_ANTIALIAS_NONE);
-           cairo_rectangle (cr, x*fac, y*fac, squareSize, squareSize);
-           cairo_fill (cr);
-           cairo_destroy (cr);
-    } else { // evenly colored squares
-       char *col = NULL;
-       switch (color) {
-         case 0: col = appData.darkSquareColor; break;
-         case 1: col = appData.lightSquareColor; break;
-         case 2: col = "#000000"; break;
-         default: col = "#808080"; break; // cannot happen
-       }
-       SetPen(cr, 2.0, col, 0);
-       cairo_rectangle (cr, fac*x, fac*y, squareSize, squareSize);
-       cairo_set_antialias (cr, CAIRO_ANTIALIAS_NONE);
-       cairo_fill (cr);
-       cairo_destroy (cr);
-    }
-}
-
-static void
-pngDrawPiece (cairo_surface_t *dest, ChessSquare piece, int square_color, int x, int y)
-{
-    int kind;
-    cairo_t *cr;
-
-    if ((int)piece < (int) BlackPawn) {
-       kind = 0;
-    } else {
-       kind = 1;
-       piece -= BlackPawn;
-    }
-    if(appData.upsideDown && flipView) kind = 1 - kind; // swap white and black pieces
-    BlankSquare(dest, x, y, square_color, piece, 1); // erase previous contents with background
-    cr = cairo_create (dest);
-    cairo_set_source_surface (cr, pngPieceBitmaps[kind][piece], x, y);
-    cairo_paint(cr);
-    cairo_destroy (cr);
-}
-
-static char *markerColor[8] = { "#FFFF00", "#FF0000", "#00FF00", "#0000FF", "#00FFFF", "#FF00FF", "#FFFFFF", "#000000" };
-
-void
-DoDrawDot (cairo_surface_t *cs, int marker, int x, int y, int r)
-{
-       cairo_t *cr;
-
-       cr = cairo_create(cs);
-       cairo_arc(cr, x+r/2, y+r/2, r/2, 0.0, 2*M_PI);
-       if(appData.monoMode) {
-           SetPen(cr, 2, marker == 2 ? "#000000" : "#FFFFFF", 0);
-           cairo_stroke_preserve(cr);
-           SetPen(cr, 2, marker == 2 ? "#FFFFFF" : "#000000", 0);
-       } else {
-           SetPen(cr, 2, markerColor[marker-1], 0);
-       }
-       cairo_fill(cr);
-
-       cairo_destroy(cr);
-}
-
-void
-DrawDot (int marker, int x, int y, int r)
-{ // used for atomic captures; no need to draw on backup
-  DoDrawDot(CsBoardWindow(currBoard), marker, x, y, r);
-  GraphExpose(currBoard, x-r, y-r, 2*r, 2*r);
-}
-
-static void
-DrawUnicode (cairo_surface_t *canvas, char *string, int x, int y, char id, int flip)
-{
-//     cairo_text_extents_t te;
-       cairo_t *cr;
-       int s = 1 - 2*flip;
-       PangoLayout *layout;
-       PangoFontDescription *desc;
-       PangoRectangle r;
-       char fontName[MSG_SIZ];
-
-       cr = cairo_create (canvas);
-       layout = pango_cairo_create_layout(cr);
-       pango_layout_set_text(layout, string, -1);
-       snprintf(fontName, MSG_SIZ, "Sans Normal %dpx", 5*squareSize/8);
-       desc = pango_font_description_from_string(fontName);
-       pango_layout_set_font_description(layout, desc);
-       pango_font_description_free(desc);
-        pango_layout_get_pixel_extents(layout, NULL, &r);
-       cairo_translate(cr, x + squareSize/2 - s*r.width/2, y + (8+s)*squareSize/16 - s*r.height/2);
-       if(s < 0) cairo_rotate(cr, G_PI);
-       cairo_set_source_rgb(cr, (id == '+' ? 1.0 : 0.0), 0.0, 0.0);
-       pango_cairo_update_layout(cr, layout);
-       pango_cairo_show_layout(cr, layout);
-       g_object_unref(layout);
-       cairo_destroy(cr);
-}
-
-void
-DrawText (char *string, int x, int y, int align)
-{
-       int xx = x, yy = y;
-       cairo_text_extents_t te;
-       cairo_t *cr;
-
-       cr = cairo_create (CsBoardWindow(currBoard));
-       cairo_select_font_face (cr, "Sans",
-                   CAIRO_FONT_SLANT_NORMAL,
-                   CAIRO_FONT_WEIGHT_BOLD);
-
-       cairo_set_font_size (cr, align < 0 ? 2*squareSize/3 : squareSize/4);
-       // calculate where it goes
-       cairo_text_extents (cr, string, &te);
-
-       if (align == 1) {
-           xx += squareSize - te.width - te.x_bearing - 1;
-           yy += squareSize - te.height - te.y_bearing - 1;
-       } else if (align == 2) {
-           xx += te.x_bearing + 1, yy += -te.y_bearing + 1;
-       } else if (align == 3) {
-           xx += squareSize - te.width -te.x_bearing - 1;
-           yy += -te.y_bearing + 3;
-       } else if (align == 4) {
-           xx += te.x_bearing + 1, yy += -te.y_bearing + 3;
-       }
-
-       cairo_move_to (cr, xx-1, yy);
-       if(align < 3) cairo_set_source_rgb (cr, 0.0, 0.0, 0.0);
-       else          cairo_set_source_rgb (cr, 1.0, 1.0, 1.0);
-       cairo_show_text (cr, string);
-       cairo_destroy (cr);
-}
-
-void
-InscribeKanji (cairo_surface_t *canvas, ChessSquare piece, int x, int y)
-{
-    char *p, *q, buf[10];
-    int n, flip = appData.upsideDown && flipView == (piece < BlackPawn);
-    if(piece == EmptySquare) return;
-    if(piece >= BlackPawn) piece = BLACK_TO_WHITE piece;
-    p = appData.inscriptions;
-    n = piece;
-    while(piece > WhitePawn) {
-      if(*p++ == NULLCHAR) {
-        if(n != WhiteKing) return;
-        p = q;
-        break;
-      }
-      q = p - 1;
-      while((*p & 0xC0) == 0x80) p++; // skip UTF-8 continuation bytes
-      piece--;
-    }
-    strncpy(buf, p, 10);
-    for(q=buf; (*++q & 0xC0) == 0x80;);
-    *q = NULLCHAR;
-    DrawUnicode(canvas, buf, x, y, PieceToChar(n), flip);
-}
-
-void
-DrawOneSquare (int x, int y, ChessSquare piece, int square_color, int marker, char *tString, char *bString, int align)
-{   // basic front-end board-draw function: takes care of everything that can be in square:
-    // piece, background, coordinate/count, marker dot
-
-    if (piece == EmptySquare) {
-       BlankSquare(CsBoardWindow(currBoard), x, y, square_color, piece, 1);
-    } else {
-       pngDrawPiece(CsBoardWindow(currBoard), piece, square_color, x, y);
-        if(appData.inscriptions[0]) InscribeKanji(CsBoardWindow(currBoard), piece, x, y);
-    }
-
-    if(align) { // square carries inscription (coord or piece count)
-       if(align > 1) DrawText(tString, x, y, align);       // top (rank or count)
-       if(bString && *bString) DrawText(bString, x, y, 1); // bottom (always lower right file ID)
-    }
-
-    if(marker) { // print fat marker dot, if requested
-       DoDrawDot(CsBoardWindow(currBoard), marker, x + squareSize/4, y+squareSize/4, squareSize/2);
-    }
-}
-
-/****  Animation code by Hugh Fisher, DCS, ANU. ****/
-
-/*     Masks for XPM pieces. Black and white pieces can have
-       different shapes, but in the interest of retaining my
-       sanity pieces must have the same outline on both light
-       and dark squares, and all pieces must use the same
-       background square colors/images.                */
-
-static cairo_surface_t *c_animBufs[3*NrOfAnims]; // newBuf, saveBuf
-
-static void
-InitAnimState (AnimNr anr)
-{
-    if(c_animBufs[anr]) cairo_surface_destroy (c_animBufs[anr]);
-    if(c_animBufs[anr+2]) cairo_surface_destroy (c_animBufs[anr+2]);
-    c_animBufs[anr+4] = CsBoardWindow(currBoard);
-    c_animBufs[anr+2] = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, squareSize, squareSize);
-    c_animBufs[anr] = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, squareSize, squareSize);
-}
-
-void
-CreateAnimVars ()
-{
-  InitAnimState(Game);
-  InitAnimState(Player);
-}
-
-static void
-CairoOverlayPiece (ChessSquare piece, cairo_surface_t *dest)
-{
-  static cairo_t *pieceSource;
-  pieceSource = cairo_create (dest);
-  cairo_set_source_surface (pieceSource, pngPieceBitmaps[!White(piece)][piece % BlackPawn], 0, 0);
-  if(doubleClick) cairo_paint_with_alpha (pieceSource, 0.6);
-  else cairo_paint(pieceSource);
-  cairo_destroy (pieceSource);
-  if(appData.inscriptions[0]) InscribeKanji(dest, piece, 0, 0);
-}
-
-void
-InsertPiece (AnimNr anr, ChessSquare piece)
-{
-    CairoOverlayPiece(piece, c_animBufs[anr]);
-}
-
-void
-DrawBlank (AnimNr anr, int x, int y, int startColor)
-{
-    BlankSquare(c_animBufs[anr+2], x, y, startColor, EmptySquare, 0);
-}
-
-void CopyRectangle (AnimNr anr, int srcBuf, int destBuf,
-                int srcX, int srcY, int width, int height, int destX, int destY)
-{
-       cairo_t *cr;
-       c_animBufs[anr+4] = CsBoardWindow(currBoard);
-       cr = cairo_create (c_animBufs[anr+destBuf]);
-       cairo_set_source_surface (cr, c_animBufs[anr+srcBuf], destX - srcX, destY - srcY);
-       cairo_rectangle (cr, destX, destY, width, height);
-       cairo_fill (cr);
-       cairo_destroy (cr);
-       if(c_animBufs[anr+destBuf] == CsBoardWindow(currBoard)) // suspect that GTK needs this!
-           GraphExpose(currBoard, destX, destY, width, height);
-}
-
-void
-SetDragPiece (AnimNr anr, ChessSquare piece)
-{
-}
-
-/* [AS] Arrow highlighting support */
-
-void
-DoDrawPolygon (cairo_surface_t *cs, Pnt arrow[], int nr)
-{
-    cairo_t *cr;
-    int i;
-    cr = cairo_create (cs);
-    cairo_move_to (cr, arrow[nr-1].x, arrow[nr-1].y);
-    for (i=0;i<nr;i++) {
-        cairo_line_to(cr, arrow[i].x, arrow[i].y);
-    }
-    if(appData.monoMode) { // should we always outline arrow?
-        cairo_line_to(cr, arrow[0].x, arrow[0].y);
-        SetPen(cr, 2, "#000000", 0);
-        cairo_stroke_preserve(cr);
-    }
-    SetPen(cr, 2, appData.highlightSquareColor, 0);
-    cairo_fill(cr);
-
-    /* free memory */
-    cairo_destroy (cr);
-}
-
-void
-DrawPolygon (Pnt arrow[], int nr)
-{
-    DoDrawPolygon(CsBoardWindow(currBoard), arrow, nr);
-//    if(!dual) DoDrawPolygon(csBoardBackup, arrow, nr);
-}
-
-//-------------------- Eval Graph drawing routines (formerly in xevalgraph.h) --------------------
-
-static void
-ChoosePen(cairo_t *cr, int i)
-{
-  switch(i) {
-    case PEN_BLACK:
-      SetPen(cr, 1.0, "#000000", 0);
-      break;
-    case PEN_DOTTED:
-      SetPen(cr, 1.0, "#A0A0A0", 1);
-      break;
-    case PEN_BLUEDOTTED:
-      SetPen(cr, 1.0, "#0000FF", 1);
-      break;
-    case PEN_BOLDWHITE:
-      SetPen(cr, 3.0, crWhite, 0);
-      break;
-    case PEN_BOLDBLACK:
-      SetPen(cr, 3.0, crBlack, 0);
-      break;
-    case PEN_BACKGD:
-      SetPen(cr, 3.0, "#E0E0F0", 0);
-      break;
-  }
-}
-
-// [HGM] front-end, added as wrapper to avoid use of LineTo and MoveToEx in other routines (so they can be back-end)
-void
-DrawSegment (int x, int y, int *lastX, int *lastY, int penType)
-{
-  static int curX, curY;
-
-  if(penType != PEN_NONE) {
-    cairo_t *cr = cairo_create(CsBoardWindow(disp));
-    cairo_set_antialias (cr, CAIRO_ANTIALIAS_NONE);
-    cairo_move_to (cr, curX, curY);
-    cairo_line_to (cr, x,y);
-    ChoosePen(cr, penType);
-    cairo_stroke (cr);
-    cairo_destroy (cr);
-  }
-
-  if(lastX != NULL) { *lastX = curX; *lastY = curY; }
-  curX = x; curY = y;
-}
-
-// front-end wrapper for drawing functions to do rectangles
-void
-DrawRectangle (int left, int top, int right, int bottom, int side, int style)
-{
-  cairo_t *cr;
-
-  cr = cairo_create (CsBoardWindow(disp));
-  cairo_set_antialias (cr, CAIRO_ANTIALIAS_NONE);
-  cairo_rectangle (cr, left, top, right-left, bottom-top);
-  switch(side)
-    {
-    case 0: ChoosePen(cr, PEN_BOLDWHITE); break;
-    case 1: ChoosePen(cr, PEN_BOLDBLACK); break;
-    case 2: ChoosePen(cr, PEN_BACKGD); break;
-    }
-  cairo_fill (cr);
-
-  if(style != FILLED)
-    {
-      cairo_rectangle (cr, left, top, right-left-1, bottom-top-1);
-      ChoosePen(cr, PEN_BLACK);
-      cairo_stroke (cr);
-    }
-
-  cairo_destroy(cr);
-}
-
-// front-end wrapper for putting text in graph
-void
-DrawEvalText (char *buf, int cbBuf, int y)
-{
-    // the magic constants 8 and 5 should really be derived from the font size somehow
-  cairo_text_extents_t extents;
-  cairo_t *cr = cairo_create(CsBoardWindow(disp));
-
-  /* GTK-TODO this has to go into the font-selection */
-  cairo_select_font_face (cr, "Sans",
-                         CAIRO_FONT_SLANT_NORMAL,
-                         CAIRO_FONT_WEIGHT_NORMAL);
-  cairo_set_font_size (cr, 12.0);
-
-
-  cairo_text_extents (cr, buf, &extents);
-
-  cairo_move_to (cr, MarginX - 2 - 8*cbBuf, y+5);
-  cairo_text_path (cr, buf);
-  cairo_set_source_rgb (cr, 0.0, 0.0, 0);
-  cairo_fill_preserve (cr);
-  cairo_set_source_rgb (cr, 0, 1.0, 0);
-  cairo_set_line_width (cr, 0.1);
-  cairo_stroke (cr);
-
-  /* free memory */
-  cairo_destroy (cr);
-}
diff --git a/draw.h b/draw.h
deleted file mode 100644 (file)
index 1d1511f..0000000
--- a/draw.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * draw.h -- declarations shared between xboard.c and draw.c
- *
- * Copyright 1991 by Digital Equipment Corporation, Maynard,
- * Massachusetts.
- *
- * Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006,
- * 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free
- * Software Foundation, Inc.
- *
- * The following terms apply to Digital Equipment Corporation's copyright
- * interest in XBoard:
- * ------------------------------------------------------------------------
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notice appear in all copies and that
- * both that copyright notice and this permission notice appear in
- * supporting documentation, and that the name of Digital not be
- * used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- *
- * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- * ------------------------------------------------------------------------
- *
- * The following terms apply to the enhanced version of XBoard
- * distributed by the Free Software Foundation:
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-#define DRAWABLE(X) ((cairo_surface_t *) ((X)->choice))
-
-// defined in xboard.c
-void ResizeBoardWindow P((int w, int h, int inhibit));
-void CreateGrid P((void));
-void CreateGCs P((int redo));
-void DelayedDrag P((void));
-
-extern int lineGap, squareSize;
-
-// defined in draw.c
-void CreateGCs P((int redo));
-void CreateAnyPieces P((int p));
-void CreatePNGPieces P((void));
-void CreateGrid P((void));
-void DrawSegment P((int x, int y, int *lastX, int *lastY, int p));
-void DrawRectangle P((int left, int top, int right, int bottom, int side, int style));
-void DrawEvalText P((char *buf, int cbBuf, int y));
-void DrawText P((char *string, int x, int y, int align));
-extern Option *disp;
-extern char svgDir[];
-
-// defined in evaldraw.c
-float Color P((char *col, int n));
-
-// defined in xoptions.c
-void GraphExpose P((Option *opt, int x, int y, int w, int h));
diff --git a/engine-intf.html b/engine-intf.html
deleted file mode 100644 (file)
index bc4815f..0000000
+++ /dev/null
@@ -1,2459 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"\r
-          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">\r
-<head>\r
-<title>Chess Engine Communication Protocol</title>\r
-<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />\r
-<style type="text/css">\r
-  .header { \r
-  border-top:2px solid black;\r
-  border-bottom:2px solid black;\r
-  }\r
-  .version1 { color: red;}\r
-  .version43 { color: green;}\r
-  .version44 { color: blue; }\r
-  .version47 { color: purple; }\r
-  .version48 { color: brown; }\r
-\r
-  table tr { text-align: left}\r
-  tr > td:first-child { font-weight:bold;}\r
-  dt { font-weight:bold;}\r
-\r
-  </style>\r
-\r
-</head>\r
-\r
-<body>\r
-<div class="header">\r
-<h1>Chess Engine Communication Protocol</h1>\r
-<h2><a href="http://www.tim-mann.org/">Tim Mann</a> &amp; <a href="http://home.hccnet.nl/h.g.muller/winboardF.html">H.G.Muller</a></h2>\r
-<p>\r
-Version 2; implemented in xboard/WinBoard 4.2.1 and later. (Sept 3, 2009)<br />\r
-Changes since version 1 are indicated in <span class="version1">red</span>.<br />\r
-Changes for WinBoard 4.3.xx are indicated in <span class="version43">green</span>.<br />\r
-Changes for WinBoard 4.4.xx are indicated in <span class="version44">blue</span>.\r
-</p>\r
-</div>\r
-\r
-<ul>\r
-<li><a href="#1">1. Introduction</a></li>\r
-<li><a href="#2">2. Connection</a></li>\r
-<li><a href="#3">3. Debugging</a></li>\r
-<li><a href="#4">4. How it got this way</a></li>\r
-<li><a href="#5">5. WinBoard requires Win32 engines</a></li>\r
-<li><a href="#6">6. Hints on input/output</a></li>\r
-<li><a href="#7">7. Signals</a></li>\r
-<li><a href="#8">8. Commands from xboard to the engine</a></li>\r
-<li><a href="#9">9. Commands from the engine to xboard</a></li>\r
-<li><a href="#10">10. Thinking Output</a></li>\r
-<li><a href="#11">11. Time control</a></li>\r
-<li><a href="#12">12. Analyze Mode</a></li>\r
-<li><a href="#13">13. Idioms and backward compatibility features</a></li>\r
-</ul>\r
-\r
-<hr />\r
-\r
-<h2><a name="1">1. Introduction</a></h2>\r
-\r
-<p>\r
-This document is a set of rough notes on the protocol that xboard and\r
-WinBoard use to communicate with gnuchessx and other chess engines.\r
-These notes may be useful if you want to connect a different chess\r
-engine to xboard.  Throughout the notes, "xboard" means both xboard\r
-and WinBoard except where they are specifically contrasted.\r
-</p>\r
-\r
-<p>\r
-There are two reasons I can imagine someone wanting to do this: \r
-</p>\r
-\r
-<ol>\r
-<li>You have, or are developing, a chess engine but you don't want to\r
-write your own graphical interface. </li>\r
-<li>You have, or are developing,a chess engine, and you want to\r
-interface it to the Internet Chess Server.</li>\r
-</ol>\r
-\r
-<p>\r
-In case (2), if you are using xboard, you will need to configure the\r
-"Zippy" code into it, but WinBoard includes this code already.  See\r
-the file <a\r
-href="http://www.tim-mann.org/xboard/zippy.README">zippy.README</a>\r
-in the xboard or WinBoard distribution for more information.\r
-</p>\r
-\r
-<p>\r
-These notes are unpolished, but I've attempted to make them complete\r
-in this release.  If you notice any errors, omissions, or misleading\r
-statements, let me know.\r
-</p>\r
-\r
-<p>\r
-I'd like to hear from everyone who is trying to interface their own\r
-chess engine to xboard/WinBoard. Please join the mailing list for \r
-authors of xboard/WinBoard compatible chess engines and post a message \r
-about what you're doing. The list is now hosted by Yahoo Groups; you \r
-can join at <a href="http://groups.yahoo.com/group/chess-engines" \r
->http://groups.yahoo.com/group/chess-engines</a>, or you can read the\r
-list there without joining.  The list is filtered to prevent spam.\r
-</p>\r
-\r
-<p class="version43">\r
-Note that the WinBoard 4.3.xx line was developed independently of the\r
-original GNU project, by H.G.Muller.\r
-If you have questions about WinBoard 4.3.xx, or want to report bugs in it,\r
-report them in the appropriate section of the \r
-<a href="http://www.open-aurec.com/wbforum/">WinBoard forum</a>.\r
-</p>\r
-\r
-<h2><a name="2">2. Connection</a></h2>\r
-\r
-<p>\r
-An xboard chess engine runs as a separate process from xboard itself,\r
-connected to xboard through a pair of anonymous pipes.  The engine\r
-does not have to do anything special to set up these pipes.  xboard\r
-sets up the pipes itself and starts the engine with one pipe as its\r
-standard input and the other as its standard output.  The engine then\r
-reads commands from its standard input and writes responses to its\r
-standard output.  This is, unfortunately, a little more complicated to\r
-do right than it sounds; see <a href="#6">section 6</a> below.\r
-</p>\r
-\r
-<p>\r
-And yes, contrary to some people's expectations, exactly the same\r
-thing is true for WinBoard.  Pipes and standard input/output are\r
-implemented in Win32 and work fine.  You don't have to use DDE, COM,\r
-DLLs, BSOD, or any of the other infinite complexity that\r
-Microsoft has created just to talk between two programs.  A WinBoard\r
-chess engine is a Win32 console program that simply reads from its\r
-standard input and writes to its standard output.  See sections \r
-<a href="#5">5</a> and <a href="#6">6</a> below for additional details.\r
-</p>\r
-\r
-<h2><a name="3">3. Debugging</a></h2>\r
-\r
-<p>\r
-To diagnose problems in your engine's interaction with xboard, use the\r
--debug flag on xboard's command line to see the messages that are\r
-being exchanged.  In WinBoard, these messages are written to the file\r
-WinBoard.debug instead of going to the screen.\r
-</p>\r
-\r
-<p>\r
-You can turn debug mode on or off while WinBoard is running by\r
-pressing Ctrl+Alt+F12.  You can turn debug mode on or off while xboard\r
-is running by binding DebugProc to a shortcut key (and pressing the\r
-key!); see the instructions on shortcut keys in the xboard man page.\r
-</p>\r
-\r
-<p>\r
-While your engine is running under xboard/WinBoard, you can send a\r
-command directly to the engine by pressing Shift+1 (xboard) or Alt+1\r
-(WinBoard 4.0.3 and later).  This brings up a dialog that you can type\r
-your command into.  Press Shift+2 (Alt+2) instead to send to the\r
-second chess engine in Two Machines mode.  On WinBoard 4.0.2 and earlier,\r
-Ctrl+Alt is used in place of Alt; this had to be changed due to a conflict\r
-with typing the @-sign on some European keyboards.\r
-</p>\r
-\r
-<h2><a name="4">4. How it got this way</a></h2>\r
-\r
-<p>\r
-Originally, xboard was just trying to talk to the existing\r
-command-line interface of GNU Chess 3.1+ and 4, which was designed\r
-for people to type commands to.  So the communication protocol is very\r
-ad-hoc.  It might have been good to redesign it early on, but because\r
-xboard and GNU Chess are separate programs, I didn't want to force\r
-people to upgrade them together to versions that matched.  I\r
-particularly wanted to keep new versions of xboard working with old\r
-versions of GNU Chess, to make it easier to compare the play of old\r
-and new gnuchess versions.  I didn't foresee the need for a clean\r
-protocol to be used with other chess engines in the future.\r
-</p>\r
-\r
-<p>\r
-Circumstances have changed over the years, and now there are many more\r
-engines that work with xboard.  I've had to make the protocol\r
-description more precise, I've added some features that GNU Chess\r
-does not support, and I've specified the standard semantics of a few\r
-features to be slightly different from what GNU Chess 4 does.\r
-</p>\r
-\r
-<p class="version1">\r
-This release of the protocol specification is the first to carry a\r
-version number of its own -- version 2.  Previous releases simply\r
-carried a last-modified date and were loosely tied to specific \r
-releases of xboard and WinBoard.  The version number "1" applies\r
-generally to all those older versions of the protocol.\r
-</p>\r
-\r
-<p class="version1">\r
-Protocol version 2 remains compatible with older engines but has\r
-several new capabilities.  In particular, it adds the \r
-"feature" command, a new mechanism for making backward-compatible\r
-changes and extensions to the protocol.  Engines that do not support a\r
-particular new feature do not have to use it; new features are not\r
-enabled unless the engine specifically requests them using the feature\r
-command.  If an engine does not send the feature command at all, the\r
-protocol behavior is nearly identical to version 1.  Several new\r
-features can be selected by the feature command in version 2,\r
-including the "ping" command (recommended for all engines), the\r
-"setboard" command, and many optional parameters.  Additional features\r
-will probably be added in future versions.\r
-</p>\r
-\r
-<p class="version43">\r
-If it is necessary to have a separate name, \r
-it would be best to refer to the protocol including the green additions as version 2f.\r
-I really don't think it is a different protocol from version 2, though.\r
-I just tried to clarify some ambiguities in the original definition,\r
-now that the WinBoard 4.3.xx line has implemented them in a specific way.\r
-The hand-shaking protocol for features as defined in protocol 2 perfectly\r
-allows addition of an occasional new features without any need for stepping up the protocol version number,\r
-and I think refraining from the latter would enormously lower the barrier for actual\r
-implementation of these features in engines.\r
-<br />\r
-The two really new things are the engine debug comments, and the "nps" command.\r
-The former merely tries to regulate an extremely common existing pactice \r
-of having engines dump debug messages on WinBoard in an unprotected way, \r
-as usually you get away with that.\r
-</p>\r
-\r
-<h2><a name="5">5. WinBoard requires Win32 engines</a></h2>\r
-\r
-<p>\r
-Due to some Microsoft brain damage that I don't understand, WinBoard\r
-does not work with chess engines that were compiled to use a DOS\r
-extender for 32-bit addressing.  (Probably not with 16-bit DOS or\r
-Windows programs either.)  WinBoard works only with engines that are\r
-compiled for the Win32 API.  You can get a free compiler that targets\r
-the Win32 API from <a href="http://sources.redhat.com/cygwin/"\r
->http://sources.redhat.com/cygwin/</a>.  I think DJGPP 2.x should also\r
-work if you use the RSXNTDJ extension, but I haven't tried it.  Of\r
-course, Microsoft Visual C++ will work.  Most likely the other\r
-commercial products that support Win32 will work too (Borland, etc.),\r
-but I have not tried them.  Delphi has been successfully used to write\r
-engines for WinBoard; if you want to do this, Tony Werten has donated\r
-some <a href="http://www.tim-mann.org/winboard/delphi.txt" >sample\r
-code</a> that should help you get started.\r
-</p>\r
-\r
-<h2><a name="6">6. Hints on input/output</a></h2>\r
-\r
-<p>\r
-Beware of using buffered I/O in your chess engine.  The C stdio\r
-library, C++ streams, and the I/O packages in most other languages use\r
-buffering both on input and output.  That means two things.  First,\r
-when your engine tries to write some characters to xboard, the library\r
-stashes them in an internal buffer and does not actually write them to\r
-the pipe connected to xboard until either the buffer fills up or you\r
-call a special library routine asking for it to be flushed.  (In C\r
-stdio, this routine is named <tt>fflush</tt>.)  Second, when your engine tries\r
-to read some characters from xboard, the library does not read just\r
-the characters you asked for -- it reads all the characters that are\r
-currently available (up to some limit) and stashes any characters you\r
-are not yet ready for in an internal buffer.  The next time you ask to\r
-read, you get the characters from the buffer (if any) before the\r
-library tries to read more data from the actual pipe.\r
-</p>\r
-\r
-<p>\r
-Why does this cause problems?  First, on the output side, remember\r
-that your engine produces output in small quantities (say, a few\r
-characters for a move, or a line or two giving the current analysis),\r
-and that data always needs to be delivered to xboard/WinBoard for\r
-display immediately.  If you use buffered output, the data you print\r
-will sit in a buffer in your own address space instead of being\r
-delivered.\r
-</p>\r
-\r
-<p>\r
-You can usually fix the output buffering problem by asking for the\r
-buffering to be turned off.  In C stdio, you do this by calling\r
-<tt>setbuf(stdout, NULL)</tt>.  A more laborious and error-prone\r
-method is to carefully call <tt>fflush(stdout)</tt> after every line\r
-you output; I don't recommend this.  In C++, you can try\r
-<tt>cout.setf(ios::unitbuf)</tt>, which is documented in current\r
-editions of "The C++ Programming Language," but not older ones.\r
-Another C++ method that might work is\r
-<tt>cout.rdbuf()-&gt;setbuf(NULL, 0)</tt>.  Alternatively, you can\r
-carefully call <tt>cout.flush()</tt> after every line you output;\r
-again, I don't recommend this.\r
-</p>\r
-\r
-<p>\r
-Another way to fix the problem is to use unbuffered operating system\r
-calls to write directly to the file descriptor for standard output.\r
-On Unix, this means <tt>write(1, ...)</tt> -- see the man page for write(2).\r
-On Win32, you can use either the Unix-like <tt>_write(1, ...)</tt> or Win32\r
-native routines like <tt>WriteFile</tt>.\r
-</p>\r
-\r
-<p>\r
-Second, on the input side, you are likely to want to poll during your\r
-search and stop it if new input has come in.  If you implement\r
-pondering, you'll need this so that pondering stops when the user\r
-makes a move.  You should also poll during normal thinking on your\r
-move, so that you can implement the "?" (move now) command, and so\r
-that you can respond promptly to a "result", "force", or "quit"\r
-command if xboard wants to end the game or terminate your engine.\r
-Buffered input makes polling more complicated -- when you poll, you\r
-must stop your search if there are <em>either</em> characters in the buffer\r
-<em>or</em> characters available from the underlying file descriptor.\r
-</p>\r
-\r
-<p>\r
-The most direct way to fix this problem is to use unbuffered operating\r
-system calls to read (and poll) the underlying file descriptor\r
-directly.  On Unix, use <tt>read(0, ...)</tt> to read from standard input, and\r
-use <tt>select()</tt> to poll it.  See the man pages read(2) and select(2).\r
-(Don't follow the example of GNU Chess 4 and use the FIONREAD ioctl to\r
-poll for input.  It is not very portable; that is, it does not exist\r
-on all versions of Unix, and is broken on some that do have it.)  On\r
-Win32, you can use either the Unix-like <tt>_read(0, ...)</tt> or the native\r
-Win32 <tt>ReadFile()</tt> to read.  Unfortunately, under Win32, the function to\r
-use for polling is different depending on whether the input device is\r
-a pipe, a console, or something else.  (More Microsoft brain damage\r
-here -- did they never hear of device independence?)  For pipes, you\r
-can use <tt>PeekNamedPipe</tt> to poll (even when the pipe is unnamed).\r
-For consoles, \r
-you can use <tt>GetNumberOfConsoleInputEvents</tt>.  For sockets only, you can\r
-use <tt>select()</tt>.  It might be possible to use\r
-<tt>WaitForSingleObject</tt> more \r
-generally, but I have not tried it.  Some code to do these things can\r
-be found in Crafty's utility.c, but I don't guarantee that it's all\r
-correct or optimal.\r
-</p>\r
-\r
-<p>\r
-A second way to fix the problem might be to ask your I/O library not\r
-to buffer on input.  It should then be safe to poll the underlying\r
-file descriptor as described above.  With C, you can try calling\r
-<tt>setbuf(stdin, NULL)</tt>.  However, I have never tried this.  Also, there\r
-could be problems if you use <tt>scanf()</tt>, at least with certain patterns,\r
-because <tt>scanf()</tt> sometimes needs to read one extra character and "push\r
-it back" into the buffer; hence, there is a one-character pushback\r
-buffer even if you asked for stdio to be unbuffered.  With C++, you\r
-can try <tt>cin.rdbuf()-&gt;setbuf(NULL, 0)</tt>, but again, I have never tried\r
-this.\r
-</p>\r
-\r
-<p>\r
-A third way to fix the problem is to check whether there are\r
-characters in the buffer whenever you poll.  C I/O libraries generally\r
-do not provide any portable way to do this.  Under C++, you can use\r
-<tt>cin.rdbuf()-&gt;in_avail()</tt>.  This method has been reported to\r
-work with \r
-EXchess.  Remember that if there are no characters in the buffer, you\r
-still have to poll the underlying file descriptor too, using the\r
-method described above.\r
-</p>\r
-\r
-<p>\r
-A fourth way to fix the problem is to use a separate thread to read\r
-from stdin.  This way works well if you are familiar with thread\r
-programming.  This thread can be blocked waiting for input to come in\r
-at all times, while the main thread of your engine does its thinking.\r
-When input arrives, you have the thread put the input into a buffer\r
-and set a flag in a global variable.  Your search routine then\r
-periodically tests the global variable to see if there is input to\r
-process, and stops if there is.  WinBoard and my Win32 ports of ICC\r
-timestamp and FICS timeseal use threads to handle multiple input\r
-sources.\r
-</p>\r
-\r
-<h2><a name="7">7. Signals</a></h2>\r
-\r
-<p>Engines that run on Unix need to be concerned with two Unix\r
-signals: <tt>SIGTERM</tt> and <tt>SIGINT</tt>.  This applies both to\r
-engines that run under xboard and (the unusual case of) engines that\r
-WinBoard remotely runs on a Unix host using the -firstHost or\r
--secondHost feature.  It does not apply to engines that run on\r
-Windows, because Windows does not have Unix-style signals.\r
-<span class="version1">\r
-Beginning with version 2, you can now turn off the use of\r
-either or both\r
-signals.  See the "feature" command in <a href="#6">section 9</a> below.\r
-</span>\r
-</p>\r
-\r
-<p>First, when an engine is sent the "quit" command, it is also given\r
-a <tt>SIGTERM</tt> signal shortly afterward to make sure it goes away.\r
-If your engine reliably responds to "quit", and the signal causes\r
-problems for you, you should either ignore it by calling\r
-<tt>signal(SIGTERM, SIG_IGN)</tt> at the start of your program,\r
-or disable it with the "feature" command.</p>\r
-\r
-<p>Second, xboard will send an interrupt signal (<tt>SIGINT</tt>) at\r
-certain times when it believes the engine may not be listening to user\r
-input (thinking or pondering).  WinBoard currently does this only when\r
-the engine is running remotely using the -firstHost or -secondHost\r
-feature, not when it is running locally.  You probably need to know\r
-only enough about this grungy feature to keep it from getting in your\r
-way.\r
-</p>\r
-\r
-<p>\r
-The <tt>SIGINT</tt>s are basically tailored to the needs of GNU Chess 4\r
-on systems where its input polling code is broken or disabled.\r
-Because they work in a rather peculiar way, it is recommended that you\r
-either ignore <tt>SIGINT</tt> by having your engine call\r
-<tt>signal(SIGINT, SIG_IGN)</tt>, or disable it with the "feature"\r
-command.</p>\r
-\r
-<p>\r
-Here are details for the curious.  If xboard needs to send a command\r
-when it is the chess engine's move (such as before the "?" command), \r
-it sends a <tt>SIGINT</tt> first.  If xboard needs to send commands when it is\r
-not the chess engine's move, but the chess engine may be pondering\r
-(thinking on its opponent's time) or analyzing (analysis or analyze\r
-file mode), xboard sends a <tt>SIGINT</tt> before the first such command only.\r
-Another <tt>SIGINT</tt> is not sent until another move is made, even if xboard\r
-issues more commands.  This behavior is necessary for GNU Chess 4.  The\r
-first <tt>SIGINT</tt> stops it from pondering until the next move, but on some\r
-systems, GNU Chess 4 will die if it receives a <tt>SIGINT</tt> when not \r
-actually thinking or pondering.\r
-</p>\r
-\r
-<p>\r
-There are two reasons why WinBoard does not send the Win32 equivalent\r
-of <tt>SIGINT</tt> (which is called <tt>CTRL_C_EVENT</tt>) to local\r
-engines.  First, the Win32 GNU Chess 4 port does not need it.  Second, I\r
-could not find a way to get it to work.  Win32 seems to be designed\r
-under the assumption that only console applications, not windowed\r
-applications, would ever want to send a <tt>CTRL_C_EVENT</tt>.\r
-</p>\r
-\r
-<h2><a name="8">8. Commands from xboard to the engine</a></h2>\r
-\r
-<p>\r
-All commands from xboard to the engine end with a newline (\n), even\r
-where that is not explicitly stated.  All your output to xboard must\r
-be in complete lines; any form of prompt or partial line will cause\r
-problems.\r
-</p>\r
-\r
-<p>\r
-At the beginning of each game, xboard sends an initialization string.\r
-This is currently "new\nrandom\n" unless the user changes it with the\r
-initString or secondInitString option.\r
-</p>\r
-\r
-<p>\r
-xboard normally reuses the same chess engine process for multiple\r
-games.  At the end of a game, xboard will send the "force" command\r
-(see below) to make sure your engine stops thinking about the current\r
-position.  It will later send the initString again to start a new\r
-game.  If your engine can't play multiple games, you can disable reuse\r
-<span class="version1">\r
-either with the "feature" command (beginning in protocol version\r
-2; see below) or \r
-</span>\r
-with xboard's -xreuse (or -xreuse2) command line\r
-option.  xboard will then ask the process to quit after each game and\r
-start a new process for the next game.\r
-</p>\r
-\r
-<dl>\r
-<dt>xboard</dt>\r
-<dd>This command will be sent once immediately after your engine\r
-process is started.  You can use it to put your engine into "xboard\r
-mode" if that is needed.  If your engine prints a prompt to ask for\r
-user input, you must turn off the prompt and output a newline when the\r
-"xboard" command comes in.\r
-</dd>\r
-\r
-<dt class="version1">protover N</dt>\r
-<dd class="version1">\r
-<p>Beginning in protocol version 2 (in which N=2), this command will\r
-be sent immediately after the "xboard" command.  If you receive some\r
-other command immediately after "xboard" (such as "new"), you can\r
-assume that protocol version 1 is in use.  The "protover" command is\r
-the only new command that xboard always sends in version 2.  All other\r
-new commands to the engine are sent only if the engine first enables\r
-them with the "feature" command.  Protocol versions will always be\r
-simple integers so that they can easily be compared.\r
-</p>\r
-\r
-<p>Your engine should reply to the protover command by sending the\r
-"feature" command (see below) with the list of non-default feature\r
-settings that you require, if any.</p>\r
-\r
-<p>Your engine should never refuse to run due to receiving a higher\r
-protocol version number than it is expecting!  New protocol versions\r
-will always be compatible with older ones by default; the larger\r
-version number is simply a hint that additional "feature" command\r
-options added in later protocol versions may be accepted.\r
-</p>\r
-</dd>\r
-\r
-<dt class="version1">accepted</dt>\r
-<dt class="version1">rejected</dt>\r
-<dd class="version1">\r
-These commands may be sent to your engine in reply to the "feature"\r
-command; see its documentation below.\r
-</dd>\r
-\r
-<dt>new</dt>\r
-<dd>Reset the board to the standard chess starting position.  Set\r
-White on move.  Leave force mode and set the engine to play Black.\r
-Associate the engine's clock with Black and the opponent's clock with\r
-White.  Reset clocks and time controls to the start of a new game.\r
-Use wall clock for time measurement.\r
-Stop clocks.  Do not ponder on this move, even if pondering is on.\r
-Remove any search depth limit previously set by the sd command.\r
-</dd>\r
-\r
-<dt>variant VARNAME</dt>\r
-<dd>If the game is not standard chess, but a variant, this command is\r
-sent after "new" and before the first move or "edit" command.  Currently\r
-defined variant names are:\r
-\r
-<table>\r
-<tr><td>wildcastle</td><td>Shuffle chess where king can castle from d file</td></tr>\r
-<tr><td>nocastle</td><td>Shuffle chess with no castling at all</td></tr>\r
-<tr><td>fischerandom</td><td>Fischer Random</td></tr>\r
-<tr><td>bughouse</td><td>Bughouse, ICC/FICS rules</td></tr>\r
-<tr><td>crazyhouse</td><td>Crazyhouse, ICC/FICS rules</td></tr>\r
-<tr><td>losers</td><td>Win by losing all pieces or getting mated (ICC)</td></tr>\r
-<tr><td>suicide</td><td>Win by losing all pieces including king,\r
-    or by having fewer pieces when one player has no legal moves (FICS)</td></tr>\r
-<tr class="version1"><td>giveaway</td><td>Win by losing all pieces including king,\r
-    or by having no legal moves (ICC)</td></tr>\r
-<tr><td>twokings</td><td>Weird ICC wild 9</td></tr>\r
-<tr><td>kriegspiel</td><td>Kriegspiel (engines not supported)</td></tr>\r
-<tr><td>atomic</td><td>Atomic</td></tr>\r
-<tr><td>3check</td><td>Win by giving check 3 times</td></tr>\r
-<tr class="version43"><td>xiangqi </td><td>Chinese Chess (9x10 board)</td></tr>\r
-<tr class="version43"><td>shogi </td><td>Japanese Chess (9x9 bord)</td></tr>\r
-<tr class="version43"><td>capablanca</td><td>Capablanca Chess (10x8 board, with Archbishop and Chancellor)</td></tr>\r
-<tr class="version43"><td>gothic  </td><td>Gothic Chess (10x8 board, same with better opening setup)</td></tr>\r
-<tr class="version43"><td>falcon  </td><td>Falcon Chess (10x8 board, with two Falcon pieces)</td></tr>\r
-<tr class="version43"><td>shatranj  </td><td>ancient Arabic Chess, with Elephants and General in stead of B and Q</td></tr>\r
-<tr class="version43"><td>courier  </td><td>Courier Chess (12x8 board, a medieval precursor of modern Chess</td></tr>\r
-<tr class="version43"><td>knightmate  </td><td>King moves as Knight and vice versa</td></tr>\r
-<tr class="version43"><td>berolina</td><td>    Pawns capture straight ahead, and move diagonally</td></tr>\r
-<tr class="version43"><td>janus</td><td>    Janus Chess (10x8, with two Archbishops)</td></tr>\r
-<tr class="version43"><td>caparandom  </td><td>shuffle variant like FRC (10x8 board)</td></tr>\r
-<tr class="version43"><td>cylinder  </td><td>Pieces wrap around between side edges, like board is a cylinder</td></tr>\r
-<tr class="version44"><td>super  </td><td>Superchess: a shuffle variant with 4 fairy pieces on 8x8 board</td></tr>\r
-<tr class="version44"><td>great  </td><td>Great Shatranj: sliders are replaced by corresponding short-range pieces on a 10x8 board</td></tr>\r
-<tr class="version48"><td>lion  </td><td>Mighty-Lion Chess, with a super-knight, more powerful than a Queen</td></tr>\r
-<tr class="version48"><td>elven  </td><td>Elven Chess: hybrid between Chess and Chu Shogi on 10x10 board</td></tr>\r
-<tr class="version48"><td>chu  </td><td>Chu Shogi: Edo-period Japanese Chess on a 12x12 board</td></tr>\r
-<tr><td>unknown</td><td>Unknown variant (not supported)</td></tr>\r
-</table>\r
-\r
-<span class="version48">As of XBoard 4.8, engines can define arbitrary variant names; see the "feature" and "setup" commands in <a href="#9">section 9</a>.</span>\r
-</dd>\r
-\r
-<dt>quit</dt>\r
-<dd>The chess engine should immediately exit.  This command is used\r
-when xboard is itself exiting, and also between games if the -xreuse\r
-command line option is given (or -xreuse2 for the second engine).\r
-See also <a href="#7">Signals</a> above.\r
-</dd>\r
-\r
-<dt>random</dt>\r
-<dd>This command is specific to GNU Chess 4.  You can either ignore it\r
-completely (that is, treat it as a no-op) or implement it as GNU Chess\r
-does.  The command toggles "random" mode (that is, it sets random =\r
-!random).  In random mode, the engine adds a small random value to its\r
-evaluation function to vary its play.  The "new" command sets random\r
-mode off.\r
-</dd>\r
-\r
-<dt>force</dt>\r
-<dd>Set the engine to play neither color ("force mode").  Stop clocks.\r
-The engine should check that moves received in force mode are legal\r
-and made in the proper turn, but should not think, ponder, or make\r
-moves of its own.\r
-</dd>\r
-\r
-<dt>go</dt>\r
-<dd>Leave force mode and set the engine to play the color that is on\r
-move.  Associate the engine's clock with the color that is on move,\r
-the opponent's clock with the color that is not on move.  Start the engine's\r
-clock.  Start thinking and eventually make a move.\r
-</dd>\r
-\r
-<dt class="version1">playother</dt>\r
-<dd class="version1">\r
-(This command is new in protocol version 2.  It is not\r
-sent unless you enable it with the feature command.)\r
-Leave force mode and set the engine to play the color that is <i>not</i> on\r
-move.  Associate the opponent's clock with the color that is on move,\r
-the engine's clock with the color that is not on move.  Start the opponent's\r
-clock.  If pondering is enabled, the engine should begin pondering.\r
-If the engine later receives a move, it should start thinking and eventually\r
-reply.\r
-</dd>\r
-\r
-<dt>white</dt>\r
-<dd>\r
-<p><span class="version1">\r
-(This command is obsolete as of protocol version 2, but is still\r
-sent in some situations to accommodate older engines unless you disable it \r
-with the feature command.)\r
-</span>\r
-Set White on move.  Set the engine to play Black.  Stop clocks.\r
-</p>\r
-</dd>\r
-  \r
-<dt>black </dt>\r
-<dd>\r
-<span class="version1">\r
-(This command is obsolete as of protocol version 2, but is still\r
-sent in some situations to accommodate older engines unless you disable it \r
-with the feature command.)\r
-</span>\r
-Set Black on move.  Set the engine to play White.  Stop clocks.\r
-</dd>\r
-\r
-<dt>level MPS BASE INC</dt>\r
-<dd>Set time controls.  See the <a href="#11">Time Control</a> section below.\r
-</dd>\r
-  \r
-<dt>st TIME</dt>\r
-<dd>Set time controls.  See the <a href="#11">Time Control</a> section\r
-below. \r
-</dd>\r
-\r
-<dt>sd DEPTH</dt>\r
-<dd>\r
-<p>The engine should limit its thinking to DEPTH ply.\r
-<span class="version43">The commands "level" or "st" and "sd" can be used together in an orthogonal way.\r
-If both are issued, the engine should observe both limitations:</span>\r
-In the protocol, the "sd" command isn't a time control.  It doesn't\r
-say that your engine has unlimited time but must search to exactly the\r
-given depth.  It says that you should pay attention to the time\r
-control as normal, but cut off the search at the specified depth even\r
-if you have time to search deeper.  If you don't have time to search\r
-to the specified depth, given your normal time management algorithm,\r
-then you will want to stop sooner than the given depth.\r
-</p><p>\r
-The "new" command should set the search depth back to unlimited.  This\r
-is already stated in the spec.  The "level" command should not affect\r
-the search depth.  As it happens, xboard/WinBoard currently always\r
-sends sd (if needed) right after level, but that isn't part of the\r
-spec.</p>\r
-</dd>\r
-\r
-<dt><span class="version43">nps NODE_RATE</span></dt>\r
-<dd><span class="version43">The engine should not use wall-clock time to make its timing decisions,\r
-but an own internal time measure based on the number of nodes it has searched\r
-(and will report as "thinking output", see <a href="#10">section 10</a>),\r
-converted to seconds through dividing by the given NODE_RATE.\r
-Example: after receiving the commands "st 8" and "nps 10000",\r
-the engine should never use more that 80,000 nodes in the search for any move.\r
-In this mode, the engine should report user CPU time used (in its thinking output), \r
-rather than wall-clock time.\r
-This even holds if NODE_RATE is given as 0,\r
-but in that case it should also use the user CPU time for its timing decisions.\r
-The effect of an "nps" command should persist until the next "new" command.\r
-</span>\r
-</dd>\r
-\r
-<dt>time N</dt>\r
-<dd>Set a clock that always belongs to the engine.  N is a number in\r
-  centiseconds (units of 1/100 second).  Even if the engine changes to\r
-  playing the opposite color, this clock remains with the engine.\r
-</dd>\r
-\r
-<dt>otim N</dt>\r
-\r
-<dd><p>Set a clock that always belongs to the opponent.  N is a number in\r
-centiseconds (units of 1/100 second).  Even if the opponent changes to\r
-playing the opposite color, this clock remains with the opponent.\r
-</p><p>\r
-If needed for purposes of board display in force mode (where the\r
-engine is not participating in the game) the time clock should be\r
-associated with the last color that the engine was set to play, the\r
-otim clock with the opposite color.\r
-</p>\r
-<p>\r
-<span class="version43">This business of "clocks remaining with the engine" is apparently so ambiguous\r
-that many engines implement it wrong.\r
-The clocks in fact always remain with the color.\r
-Which clock reading is relayed with "time", and which by "otim", is determined by which side the engine plays.\r
-Note that the way the clocks operate and receive extra time (in accordance with the selected time control)\r
-is not affected in any way by which moves are made by the engine, which by the opponent, and which were forced.\r
-</span>\r
-</p>\r
-<p>\r
-<span class="version1">\r
-Beginning in protocol version 2, if you can't handle the time and\r
-otim commands, you can use the "feature" command to disable them; see\r
-below.  \r
-</span>\r
-The following techniques from older protocol versions also\r
-work: You can ignore the time and otim commands (that is, treat them\r
-as no-ops), or send back "Error (unknown command): time" the first\r
-time you see "time".\r
-</p></dd>\r
-\r
-<dt>MOVE</dt>\r
-<dd>\r
-<p>See below for the syntax of moves.  If the move is illegal, print\r
-an error message; see the section "<a href="#9">Commands from the engine to\r
-xboard</a>".  If the move is legal and in turn, make it.  If not in force\r
-mode, stop the opponent's clock, start the engine's clock, start\r
-thinking, and eventually make a move.\r
-</p><p>\r
-When xboard sends your engine a move, it normally sends coordinate\r
-algebraic notation.  Examples:\r
-</p>\r
-<table>\r
-<tr><td>Normal moves:</td><td>e2e4</td></tr>\r
-<tr><td>Pawn promotion:</td><td>e7e8q</td></tr>\r
-<tr><td>Castling:</td><td>e1g1, e1c1, e8g8, e8c8</td></tr>\r
-<tr><td>Bughouse/crazyhouse drop:</td><td>P@h3</td></tr>\r
-<tr><td>ICS Wild 0/1 castling:</td><td>d1f1, d1b1, d8f8, d8b8</td></tr>\r
-<tr><td>FischerRandom castling:</td><td>O-O, O-O-O (oh, not zero)</td></tr>\r
-<tr class="version48"><td>Multi-leg move:</td><td>c4d5,d5e4 (legs separated by comma)</td></tr>\r
-<tr class="version48"><td>Null move:</td><td>@@@@</td></tr>\r
-</table>\r
-\r
-<p class="version43">\r
-Note that on boards with <span class="version48">exactly 10</span> ranks, counting of the ranks starts at 0.\r
-</p>\r
-<p class="version1">\r
-Beginning in protocol version 2, you can use the feature command\r
-to select SAN (standard algebraic notation) instead; for example, e4,\r
-Nf3, exd5, Bxf7+, Qxf7#, e8=Q, O-O, or P@h3.  Note that the last form,\r
-P@h3, is a extension to the PGN standard's definition of SAN, which does\r
-not support bughouse or crazyhouse.\r
-</p>\r
-\r
-<p>\r
-xboard doesn't reliably detect illegal moves, because it does not keep\r
-track of castling unavailability due to king or rook moves, or en\r
-passant availability.  If xboard sends an illegal move, send back an\r
-error message so that xboard can retract it and inform the user; see\r
-the section "<a href="#9">Commands from the engine to xboard</a>".\r
-</p>\r
-</dd>\r
-<dt class="version1">usermove MOVE</dt>\r
-<dd class="version1">\r
-By default, moves are sent to the engine without a command name;\r
-the notation is just sent as a line by itself.\r
-Beginning in protocol version 2, you can use the feature command\r
-to cause the command name "usermove" to be sent before the move.\r
-Example: "usermove e2e4".\r
-</dd>\r
-\r
-<dt>?</dt>\r
-<dd><p>Move now.  If your engine is thinking, it should move immediately;\r
-  otherwise, the command should be ignored (treated as a no-op).  It\r
-  is permissible for your engine to always ignore the ? command.  The\r
-  only bad consequence is that xboard's Move Now menu command will do\r
-  nothing.\r
-</p><p>\r
-It is also permissible for your engine to move immediately if it gets\r
-any command while thinking, as long as it processes the command right\r
-after moving, but it's preferable if you don't do this.  For example,\r
-xboard may send post, nopost, easy, hard, force, quit,\r
-<span class="version1">\r
-or other commands\r
-</span>\r
-while the engine is on move.\r
-</p>\r
-</dd>\r
-\r
-<dt class="version1">ping N</dt>\r
-<dd class="version1">\r
-<p>In this command, N is a decimal number.  When you receive the command,\r
-reply by sending the string <strong>pong N</strong>, where N is the\r
-same number you received.  Important: You must not reply to a "ping"\r
-command until you have finished executing all commands that you\r
-received before it.  Pondering does not count; if you receive a ping\r
-while pondering, you should reply immediately and continue pondering.\r
-Because of the way xboard uses the ping command, if you implement the\r
-other commands in this protocol, you should never see a "ping" command\r
-when it is your move; however, if you do, you must not send the "pong"\r
-reply to xboard until after you send your move.  For example, xboard\r
-may send "?" immediately followed by "ping".  If you implement the "?"\r
-command, you will have moved by the time you see the subsequent ping\r
-command.  Similarly, xboard may send a sequence like "force", "new",\r
-"ping".  You must not send the pong response until after you have\r
-finished executing the "new" command and are ready for the new game to\r
-start.\r
-</p>\r
-<p>\r
-The ping command is new in protocol version 2 and will not be sent\r
-unless you enable it with the "feature" command.  Its purpose is to\r
-allow several race conditions that could occur in previous versions of\r
-the protocol to be fixed, so it is highly recommended that you\r
-implement it.  It is especially important in simple engines that do\r
-not ponder and do not poll for input while thinking, but it is needed in all\r
-engines.  \r
-</p>\r
-</dd>\r
-\r
-<dt>draw</dt>\r
-<dd>The engine's opponent offers the engine a draw.  To accept the\r
-draw, send "offer draw".  To decline, ignore the offer (that is, send\r
-nothing).  If you're playing on ICS, it's possible for the draw offer\r
-to have been withdrawn by the time you accept it, so don't assume the\r
-game is over because you accept a draw offer.  Continue playing until\r
-xboard tells you the game is over.  See also "offer draw" below.\r
-</dd>\r
-\r
-<dt>result RESULT {COMMENT}</dt>\r
-<dd>After the end of each game, xboard will send you a result command.\r
-You can use this command to trigger learning.  RESULT is either 1-0,\r
-0-1, 1/2-1/2, or *, indicating whether white won, black won, the game\r
-was a draw, or the game was unfinished.  The COMMENT string is purely\r
-a human-readable comment; its content is unspecified and subject to\r
-change.  In ICS mode, it is passed through from ICS uninterpreted.\r
-Example: <pre>result 1-0 {White mates}</pre>\r
-<p>\r
-Here are some notes on interpreting the "result" command.  Some apply\r
-only to playing on ICS ("Zippy" mode).\r
-</p>\r
-\r
-<p>\r
-If you won but did not just play a mate, your opponent must have\r
-resigned or forfeited.  If you lost but were not just mated, you\r
-probably forfeited on time, or perhaps the operator resigned manually.\r
-If there was a draw for some nonobvious reason, perhaps your opponent\r
-called your flag when he had insufficient mating material (or vice\r
-versa), or perhaps the operator agreed to a draw manually.\r
-</p>\r
-\r
-<p>\r
-You will get a result command even if you already know the game ended\r
--- for example, after you just checkmated your opponent.  In fact, if\r
-you send the "RESULT {COMMENT}" command (discussed below), you will\r
-simply get the same thing fed back to you with "result" tacked in\r
-front.  You might not always get a "result *" command, however.  In\r
-particular, you won't get one in local chess engine mode when the user\r
-stops playing by selecting Reset, Edit Game, Exit or the like.\r
-</p>\r
-</dd>\r
-\r
-<dt><span class="version1">setboard FEN</span></dt>\r
-<dd>\r
-<p><span class="version1">\r
-The setboard command is the new way to set up positions, beginning\r
-in protocol version 2.  It is not used unless it has been selected\r
-with the feature command.  Here FEN is a position in Forsythe-Edwards\r
-Notation, as defined in the PGN standard.</span>\r
-<span class="version43">Note that this PGN standard referred to here\r
-only applies to normal Chess;\r
-Obviously in variants that cannot be described by a FEN for normal Chess,\r
-e.g. because the board is not 8x8, other pieces then PNBRQK participate, \r
-there are holdings that need to be specified, etc., \r
-xboard will use a FEN format that is standard or suitable for that variant.\r
-In particular, in FRC or CRC, WinBoard will use Shredder-FEN or X-FEN standard,\r
-i.e. it can use the rook-file indicator letter to represent a castling right \r
-(like HAha) whenever it wants, but if it uses KQkq, this will always refer \r
-to the outermost rook on the given side.</span>\r
-</p>\r
-\r
-<p class="version1">\r
-<em>Illegal positions:</em> Note that either setboard or edit can\r
-be used to send an illegal position to the engine.  The user can\r
-create any position with xboard's Edit Position command (even, say,\r
-an empty board, or a board with 64 white kings and no black ones).\r
-If your engine receives a position that it considers illegal, \r
-I suggest that you send the response "tellusererror Illegal position",\r
-and then respond to any attempted move with "Illegal move" until\r
-the next new, edit, or setboard command.\r
-</p>\r
-</dd>\r
-\r
-<dt>edit</dt>\r
-<dd>\r
-<p><span class="version1">\r
-The edit command is the old way to set up positions.  For compatibility\r
-with old engines, it is still used by default, but new engines may prefer\r
-to use the feature command (see below) to cause xboard to use setboard instead.\r
-</span>\r
-The edit command puts the chess engine into a special mode, where\r
-it accepts the following subcommands:</p>\r
-<table>\r
-<tr><td>c</td><td>change current piece color, initially white</td></tr>\r
-<tr><td>Pa4 (for example)</td><td>place pawn of current color on a4</td></tr>\r
-<tr><td>xa4 (for example)</td><td>empty the square a4 (not used by xboard)</td></tr>\r
-<tr><td>#</td><td>clear board</td></tr>\r
-<tr><td>.</td><td>leave edit mode</td></tr>\r
-</table>\r
-<p class="version1">\r
-See the Idioms section below for additional subcommands used in\r
-ChessBase's implementation of the protocol.\r
-</p>\r
-\r
-<p>The edit command does not change the side to move.  To set up a\r
-black-on-move position, xboard uses the following command sequence:\r
-</p>\r
-<pre>\r
-    new\r
-    force\r
-    a2a3\r
-    edit\r
-    &lt;edit commands&gt;\r
-    .\r
-</pre>\r
-\r
-<p>\r
-This sequence is used to avoid the "black" command, which is now\r
-considered obsolete and which many engines never did implement as \r
-specified in this document.\r
-</p>\r
-\r
-<p>\r
-After an edit command is complete, if a king and a rook are on their\r
-home squares, castling is assumed to be available to them.  En passant\r
-capture is assumed to be illegal on the current move regardless of the\r
-positions of the pawns.  The clock for the 50 move rule starts at\r
-zero, and for purposes of the draw by repetition rule, no prior\r
-positions are deemed to have occurred.\r
-<span class="version43">\r
-In FRC or CRC, any rook and king put on the back rank should be considered to\r
-have castling rights, even if it later becomes apparent that they cannot be both in the\r
-initial position, because the position just set up is asymmetric.\r
-It is upto WinBoard to find work-around in cases where this is not desired,\r
-similar to the "black kludge" shown above, by setting up an earlier position,\r
-and then do a move to destroy castling rights or create e.p. rights.\r
-(Don't bet your life on it...)\r
-</span>\r
-</p>\r
-</dd>\r
-\r
-<dt>hint</dt>\r
-<dd>If the user asks for a hint, xboard sends your engine the command\r
-"hint".  Your engine should respond with "Hint: xxx", where xxx is a\r
-suggested move.  If there is no move to suggest, you can ignore the\r
-hint command (that is, treat it as a no-op).\r
-</dd>\r
-\r
-<dt>bk</dt>\r
-<dd>If the user selects "Book" from the xboard menu, xboard will send\r
-your engine the command "bk".  You can send any text you like as the\r
-response, as long as each line begins with a blank space or tab (\t)\r
-character, and you send an empty line at the end.  The text pops up in\r
-a modal information dialog.\r
-</dd>\r
-\r
-<dt>undo</dt>\r
-<dd>If the user asks to back up one move, xboard will send you the\r
-"undo" command.  xboard will not send this command without putting you\r
-in "force" mode first, so you don't have to worry about what should\r
-happen if the user asks to undo a move your engine made.  (GNU Chess 4\r
-actually switches to playing the opposite color in this case.)\r
-</dd>\r
-\r
-<dt>remove</dt>\r
-<dd>If the user asks to retract a move, xboard will send you the\r
-"remove" command.  It sends this command only when the user is on\r
-move.  Your engine should undo the last two moves (one for each\r
-player) and continue playing the same color.\r
-</dd>\r
-\r
-<dt>hard</dt>\r
-<dd>Turn on pondering (thinking on the opponent's time, also known as\r
-"permanent brain").  xboard will not make any assumption about what\r
-your default is for pondering or whether "new" affects this setting.\r
-</dd>\r
-\r
-<dt>easy</dt>\r
-<dd>Turn off pondering.</dd>\r
-  \r
-<dt>post</dt>\r
-<dd>Turn on thinking/pondering output.  \r
-See <a href="#10">Thinking Output</a> section.</dd>\r
-\r
-<dt>nopost</dt>\r
-<dd>Turn off thinking/pondering output.</dd>\r
-  \r
-<dt>analyze</dt>\r
-<dd>Enter analyze mode.  See <a href="#12">Analyze Mode</a> section.</dd>\r
-\r
-<dt>name X </dt>\r
-<dd>This command informs the engine of its\r
-opponent's name.  When the engine is playing on a chess server, xboard\r
-obtains the opponent's name from the server. \r
-<span class="version1">\r
-When the engine is\r
-playing locally against a human user, xboard obtains the user's login\r
-name from the local operating system.  When the engine is playing\r
-locally against another engine, xboard uses either the other engine's\r
-filename or the name that the other engine supplied in the myname\r
-option to the feature command.  By default, xboard uses the name\r
-command only when the engine is playing on a chess server.  Beginning\r
-in protocol version 2, you can change this with the name option to the\r
-feature command; see below.\r
-</span>\r
-</dd>\r
-\r
-<dt>rating</dt>\r
-<dd>In ICS mode, xboard obtains the ICS opponent's rating from the\r
-"Creating:" message that appears before each game.  (This message may\r
-not appear on servers using outdated versions of the FICS code.)  In\r
-Zippy mode, it sends these ratings on to the chess engine using the\r
-"rating" command.  The chess engine's own rating comes first, and if\r
-either opponent is not rated, his rating is given as 0.  \r
-<span class="version1">\r
-In the future this command may also be used in other modes, if ratings\r
-are known.\r
-</span>\r
-Example: <pre>rating 2600 1500</pre>\r
-</dd>\r
-\r
-<dt><span class="version1">ics HOSTNAME</span></dt>\r
-<dd class="version1">\r
-If HOSTNAME is "-", the engine is playing against a local\r
-opponent; otherwise, the engine is playing on an Internet Chess Server\r
-(ICS) with the given hostname.  This command is new in protocol\r
-version 2 and is not sent unless the engine has enabled it with\r
-the "feature" command.  Example: "ics freechess.org"\r
-</dd>\r
-\r
-<dt>computer</dt>\r
-<dd>The opponent is also a computer chess engine.  Some engines alter\r
-their playing style when they receive this command.\r
-</dd>\r
-\r
-<dt class="version1">pause</dt>\r
-<dt class="version1">resume</dt>\r
-<dd class="version1">(These commands are new in protocol\r
-version 2 and will not be sent unless feature pause=1 is set.  At\r
-this writing, xboard actually does not use the commands at all, but it\r
-or other interfaces may use them in the future.)\r
-The "pause" command puts the engine into a special state where it\r
-does not think, ponder, or otherwise consume significant CPU time.\r
-The current thinking or pondering (if any) is suspended and both\r
-player's clocks are stopped.  The only command that the interface may\r
-send to the engine while it is in the paused state is "resume".  The\r
-paused thinking or pondering (if any) resumes from exactly where it\r
-left off, and the clock of the player on move resumes running from\r
-where it stopped.\r
-</dd>\r
-\r
-<dt class="version44">memory N</dt>\r
-<dd class="version44">\r
-This command informs the engine on how much memory it is allowed to use maximally, in MegaBytes.\r
-On receipt of this command, the engine should adapt the size of its hash tables accordingly.\r
-This command does only fix the total memory use,\r
-the engine has to decide for itself \r
-(or be configured by the user by other means) \r
-how to divide up the available memory between the various tables it wants to use \r
-(e.g. main hash, pawn hash, tablebase cache, bitbases).\r
-This command will only be sent to engines that have requested it through the memory feature,\r
-and only at the start of a game,\r
-as the first of the commands to relay engine option settings just before each "new" command.\r
-</dd>\r
-\r
-<dt class="version44">cores N</dt>\r
-<dd class="version44">\r
-This command informs the engine on how many CPU cores it is allowed to use maximally.\r
-This could be interpreted as the number of search threads for SMP engines. \r
-(Threads that do not consume significant amounts of CPU time, like I/O threads, need not be included in the count.)\r
-This command will only be sent to engines that have requested it through the smp feature.\r
-The engine should be able to respond to the "cores" command any time during a game,\r
-but it is allowed to finish a search in progress before procesing the command.\r
-(Obeying the command should take priority over finishing a ponder search, though.)\r
-In any case it will be sent at the start of every game\r
-as the last command to relay engine option settings before the "new" command.\r
-</dd>\r
-\r
-<dt class="version44">egtpath TYPE PATH</dt>\r
-<dd class="version44">\r
-This command informs the engine in which directory (given by the PATH argument)\r
-it can find end-game tables of the specified TYPE.\r
-The TYPE argument can be any character string which does not contain spaces.\r
-Currently <strong>nalimov</strong> and <strong>scorpio</strong> are defined types, \r
-for Nalimov tablebases and Scorpio bitbases, respectively,\r
-but future developers of other formats are free to define their own format names.\r
-The GUI simply matches the TYPE names the engine says it supports \r
-with those that the user supplied when configuring xboard.\r
-For every match, it sends a separate "y" command.\r
-The PATH argument would normally (for Nalimov) be the pathname of the directory the EGT files are in,\r
-but could also be the name of a file, or in fact anything the particular EGT type requires.\r
-It is upto the developer of the EGT format to specify the syntax of this parameter.\r
-This command will only be sent to engines that have told the GUI they support EGTs of the given TYPE\r
-through the egt feature.\r
-It will be sent at the start of each game, before the "new" command.\r
-</dd>\r
-\r
-<dt class="version44">option NAME[=VALUE]</dt>\r
-<dd class="version44">\r
-This command changes the setting of the option NAME defined by the engine \r
-(through an earlier feature command)\r
-to the given VALUE.\r
-XBoard will in general have no idea what the option means,\r
-and will send the command only when a user changes the value of this option through a menu,\r
-or at startup of the engine \r
-(before the first 'cores' command or, if that is not sent, the first 'new' command)\r
-in reaction to command-line options.\r
-The NAME echoes back to the engine the string that was identified as an option NAME\r
-in the feature command defining the option.\r
-The VALUE is of the type (numeric or text or absent) that was implied by the option type\r
-specified in this feature command,\r
-i.e. with 'spin' and 'check' options VALUE will be a decimal integer (in the latter case 0 or 1),\r
-with 'combo' and 'string' options VALUE will be a text string,\r
-and with 'button' and 'save' options no VALUE will be sent at all.\r
-</dd>\r
-\r
-<dt class="version47">exclude MOVE</dt>\r
-<dt class="version47">include MOVE</dt>\r
-<dt class="version47">exclude all</dt>\r
-<dt class="version47">include all</dt>\r
-<dd class="version47">\r
-These commands change the set of moves that the engine should consider in the root node of its search,\r
-by removing or adding the mentioned MOVE from this set.\r
-After reaching a new position, (e.g. through a usermove, undo, new or setboard command),\r
-or after receiving "include all",\r
-this set should always be reset to all legal moves from that position.\r
-If the set of moves changes during a search, \r
-the engine could start a new search from scratch, or it can try to be smart, \r
-and continue the current search with the new set of moves\r
-(e.g. after exclusion of a move that has not been searched yet in the current iteration).\r
-After "exclude all", the engine would have no legal moves in the root,\r
-which logically should make it behave as if it is (stale)mated,\r
-but it is allowed to defer any effects of this command on a search in progress\r
-to when the set gets non-empty again through addition of a move.\r
-These commands will only be sent to engines that have requested such through the exclude feature.\r
-</dd>\r
-\r
-<dt class="version47">setscore SCORE DEPTH</dt>\r
-<dd class="version47">\r
-This command instructs the engine to treat future search requests on the current position\r
-(also when it is encountered inside a larger search tree)\r
-upto the given DEPTH as if these result is SCORE centi-Pawn in favor of the side that has the move in this position.\r
-It is entirely up to the engine to decide when the effect of this option should expire.\r
-(E.g. it could last upto the next "new" or "quit" command,\r
-or even into future sessions until the user explicitly clears it through an engine-defined option.)\r
-This command will only be sent to engines that have requested it through the setscore feature.\r
-</dd>\r
-\r
-<dt class="version48">lift SQUARE</dt>\r
-<dt class="version48">put SQUARE</dt>\r
-<dt class="version48">hover SQUARE</dt>\r
-<dd class="version48">\r
-These commands are only important for variants the GUI does not know the rules of,\r
-and keep the engine aware of how the user is manipulating pieces in the GUI,\r
-so that it can supply relevant rule information.\r
-The "lift" command is sent by the GUI when the user 'picks up' (or selects) a piece from the mentioned SQUARE,\r
-so that the engine can reply with a "highlight" command to mark the squares where that piece can move to.\r
-The "put" command similarly indicates where the user releases that piece;\r
-as the GUI clears the highlights on that event by itself, usually no engine response would be required.\r
-For promotion moves you can get a double "put" command, the first one sent when the piece lands on the square,\r
-without being decided yet what it promotes to, so the engine can send a "choice" command to\r
-specify the promotion choice the GUI should offer when promotion wasn't already implied by the "lift" location.\r
-The "hover" command is sent whenever the mouse pointer enters a square that is currently marked in red,\r
-(reserved for captures)\r
-so that the engine can (optionally) reply with a "highlight" command to mark victims of non-standard capture\r
-(such as e.p. capture in Chess, or jump capture in Checkers) when the user would move the currently selected piece there.\r
-These commands will only be sent to engines that have requested such through the highlight feature.\r
-</dd>\r
-</dl>\r
-\r
-<h3>Bughouse commands:</h3>\r
-\r
-<p>\r
-xboard now supports bughouse engines when in Zippy mode.  See\r
-<a href="http://www.tim-mann.org/xboard/zippy.README"\r
->zippy.README</a> for information on Zippy mode and how to turn on the\r
-bughouse support.  The bughouse move format is given above.  xboard\r
-sends the following additional commands to the engine when in bughouse\r
-mode.  \r
-Commands to inform your engine of the partner's game state may\r
-be added in the future.\r
-</p>\r
-\r
-<dl>\r
-<dt>partner &lt;player&gt;</dt>\r
-<dd>&lt;player&gt; is now your partner for future games.  Example: <pre>partner mann</pre>\r
-</dd>\r
-\r
-<dt>partner</dt>\r
-<dd>Meaning: You no longer have a partner.\r
-</dd>\r
-\r
-<dt>ptell &lt;text&gt;</dt>\r
-<dd>Your partner told you &lt;text&gt;, either with a ptell or an ordinary tell.  \r
-</dd>\r
-\r
-<dt>holding [&lt;white&gt;] [&lt;black&gt;]</dt>\r
-<dd>White currently holds &lt;white&gt;; black currently holds &lt;black&gt;.\r
-  Example: <pre>holding [PPPRQ] []</pre></dd>\r
-\r
-<dt>holding [&lt;white&gt;] [&lt;black&gt;] &lt;color&gt;&lt;piece&gt;</dt>\r
-<dd>White currently holds &lt;white&gt;; black currently holds &lt;black&gt;, after\r
-  &lt;color&gt; acquired &lt;piece&gt;.   Example: <pre>holding [PPPRQ] [R] BR</pre></dd>\r
-</dl>\r
-\r
-<h2><a name="9">9. Commands from the engine to xboard</a></h2>\r
-\r
-<p class="version1">\r
-In general, an engine should not send any output to xboard that is not\r
-described in this document.  As the protocol is extended, newer\r
-versions of xboard may recognize additional strings as commands that\r
-were previously not assigned a meaning.\r
-</p>\r
-\r
-<dl>\r
-\r
-<dt class="version1"> feature FEATURE1=VALUE1 FEATURE2=VALUE2 ... </dt>\r
-<dd class="version1">\r
-<p>Beginning with version 2, the protocol includes the "feature"\r
-command, which lets your engine control certain optional protocol\r
-features.  Feature settings are written as FEATURE=VALUE, where\r
-FEATURE is a name from the list below and VALUE is the value to be\r
-assigned.  Features can take string, integer, or boolean values; the\r
-type of value is listed for each feature.  String values are written\r
-in double quotes (for example, <tt>feature myname="Miracle Chess\r
-0.9"</tt>), integers are written in decimal, and boolean values are\r
-written as 0 for false, 1 for true.  Any number of features can be set\r
-in one feature command, or multiple feature commands can be given.</p>\r
-\r
-<p>\r
-Your engine should send one or more feature commands immediately after\r
-receiving the "protover" command, since xboard needs to know the\r
-values of some features before sending further commands to the engine.\r
-Because engines that predate protocol version 2 do not send "feature",\r
-xboard uses a timeout mechanism: when it first starts your engine, it\r
-sends "xboard" and "protover N", then listens for feature commands for\r
-two seconds before sending any other commands.  To end this timeout\r
-and avoid the wait, set the feature "done=1" at the end of your last\r
-feature command.  To increase the timeout, if needed, set the feature\r
-"done=0" before your first feature command and "done=1" at the end.\r
-If needed, it is okay for your engine to set done=0 soon as it starts,\r
-even before it receives the xboard and protover commands.  This can be\r
-useful if your engine takes a long time to initialize itself.  It\r
-should be harmless even if you are talking to a (version 1) user\r
-interface that does not understand the "feature" command, since such\r
-interfaces generally ignore commands from the engine that they do not\r
-understand.\r
-</p>\r
-\r
-<p>\r
-The feature command is designed to let the protocol change without\r
-breaking engines that were written for older protocol versions.  When\r
-a new feature is added to the protocol, its default value is always\r
-chosen to be compatible with older versions of the protocol that did\r
-not have the feature.  Any feature that your engine does not set in a\r
-"feature" command retains its default value, so as the protocol\r
-changes, you do not have to change your engine to keep up with it\r
-unless you want to take advantage of a new feature.  Because some\r
-features are improvements to the protocol, while others are meant to\r
-cater to engines that do not implement all the protocol features, the\r
-recommended setting for a feature is not always the same as the\r
-default setting.  The listing below gives both default and recommended\r
-settings for most features.\r
-</p>\r
-\r
-<p>\r
-You may want to code your engine so as to be able to work with\r
-multiple versions of the engine protocol.  Protocol version 1 does not\r
-send the protover command and does not implement the feature command;\r
-if you send a feature command in protocol version 1, it will have no\r
-effect and there will be no response.  In protocol version 2 or later,\r
-each feature F that you set generates the response "accepted F" if the\r
-feature is implemented, or "rejected F" if it is not.  Thus an engine\r
-author can request any feature without having to keep track of which\r
-protocol version it was introduced in; you need only check whether the\r
-feature is accepted or rejected.  This mechanism also makes it\r
-possible for a user interface author to implement a subset of a\r
-protocol version by rejecting some features that are defined in that\r
-version; however, you should realize that engine authors are likely to\r
-code for xboard and may not be prepared to have a feature that they\r
-depend on be rejected.\r
-<span class="version44">If the GUI rejects an option feature because of the\r
-syntax of the value, it should print the value string with the\r
-"rejected" command, e.g. "rejected option nonsense" in response\r
-to receiving feature option="nonsense".</span>\r
-</p>\r
-\r
-<p>\r
-Here are the features that are currently defined.\r
-</p>\r
-\r
-<dl>\r
-<dt class="version1">ping (boolean, default 0, recommended 1)</dt>\r
-<dd class="version1">\r
-If ping=1, xboard may use the protocol's new "ping" command;\r
-if ping=0, xboard will not use the command.\r
-</dd>\r
-\r
-<dt class="version1">setboard (boolean, default 0, recommended 1)</dt>\r
-<dd class="version1">\r
-If setboard=1, xboard will use the protocol's new "setboard" command\r
-to set up positions; if setboard=0, it will use the older "edit" command.\r
-</dd>\r
-\r
-<dt class="version1">playother (boolean, default 0, recommended 1)</dt>\r
-<dd class="version1">\r
-If playother=1, xboard will use the protocol's new "playother" command\r
-when appropriate; if playother=0, it will not use the command.\r
-</dd>\r
-\r
-<dt class="version1">san (boolean, default 0)</dt>\r
-<dd class="version1">\r
-If san=1, xboard will send moves to the engine in standard algebraic\r
-notation (SAN); for example, Nf3.  If san=0, xboard will send moves in\r
-coordinate notation; for example, g1f3.  See MOVE in \r
-<a href="#8">section 8</a> above for more details of both kinds of notation.\r
-</dd>\r
-\r
-<dt class="version1">usermove (boolean, default 0)</dt>\r
-<dd class="version1">\r
-If usermove=1, xboard will send moves to the engine with the\r
-command "usermove MOVE"; if usermove=0, xboard will send just the move,\r
-with no command name.\r
-</dd>\r
-\r
-<dt class="version1">time (boolean, default 1, recommended 1)</dt>\r
-<dd class="version1">\r
-If time=1, xboard will send the "time" and "otim" commands to\r
-update the engine's clocks; if time=0, it will not.\r
-</dd>\r
-\r
-<dt class="version1">draw (boolean, default 1, recommended 1)</dt>\r
-<dd class="version1">\r
-If draw=1, xboard will send the "draw" command if the engine's opponent\r
-offers a draw; if draw=0, xboard will not inform the engine about\r
-draw offers.  Note that if draw=1, you may receive a draw offer while you\r
-are on move; if this will cause you to move immediately, you should set\r
-draw=0.\r
-</dd>\r
-\r
-<dt class="version1">sigint (boolean, default 1)</dt>\r
-<dd class="version1">\r
-If sigint=1, xboard may send SIGINT (the interrupt signal) to\r
-the engine as <a href="#7">section 7</a> above; if sigint=0, it will\r
-not.\r
-</dd>\r
-\r
-<dt class="version1">sigterm (boolean, default 1)</dt>\r
-<dd class="version1">\r
-If sigterm=1, xboard may send SIGTERM (the termination signal) to\r
-the engine as <a href="#7">section 7</a> above; if sigterm=0, it will\r
-not.\r
-</dd>\r
-\r
-<dt class="version1">reuse (boolean, default 1, recommended 1) </dt>\r
-<dd class="version1">\r
-If reuse=1, xboard may reuse your engine for multiple games.  If\r
-reuse=0 (or if the user has set the -xreuse option on xboard's command\r
-line), xboard will kill the engine process after every game and start\r
-a fresh process for the next game.\r
-</dd>\r
-\r
-<dt class="version1">analyze (boolean, default 1, recommended 1)</dt>\r
-<dd class="version1">\r
-If analyze=0, xboard will not try to use the "analyze" command; it\r
-will pop up an error message if the user asks for analysis mode.  If\r
-analyze=1, xboard will try to use the command if the user asks for\r
-analysis mode.\r
-</dd>\r
-\r
-<dt class="version1">myname (string, default determined from engine filename)</dt>\r
-<dd class="version1">\r
-This feature lets you set the name that xboard will use for your\r
-engine in window banners, in the PGN tags of saved game files, and when\r
-sending the "name" command to another engine.\r
-</dd>\r
-\r
-<dt class="version1">variants (string, see text below)</dt>\r
-<dd><span class="version1">\r
-This feature indicates which chess variants your engine accepts.\r
-It should be a comma-separated list of variant names.  See the table\r
-under the "variant" command in <a href="#8">section 8</a> above.  If\r
-you do not set this feature, xboard will assume by default that your\r
-engine supports all variants.  (However, the -zippyVariants\r
-command-line option still limits which variants will be accepted in\r
-Zippy mode.)  It is recommended that you set this feature to the\r
-correct value for your engine (just "normal" in most cases) rather\r
-than leaving the default in place, so that the user will get an\r
-appropriate error message if he tries to play a variant that your\r
-engine does not support.</span>\r
-<span class="version48">As of XBoard 4.8 a variant name not known to the GUI will be\r
-considered an engine-defined variant.\r
-The user will be given the opportunity to select such variants,\r
-but when this happens, the engine should define its meaning\r
-in detail with the aid of a "setup" command defined below,\r
-in order to avoid an error.</span>\r
-<br />\r
-<span class="version43">If your engine can play variants on a deviating board size,\r
-like capablanca on an 8x8 board, or capablanca crazyhouse,\r
-it can list them amongst the variants with a prefix specifying board size plus\r
-holdings size, like 8x8+0_capablanca or 10x8+7_capablanca.\r
-If it is capable of playing any variant with an arbitrary board size,\r
-it should list "boardsize" as one of the variants.\r
-If there is a maximum to the board size, this can be prefixed,\r
-e.g. "12x10+0_boardsize".\r
-</span>\r
-</dd>\r
-\r
-<dt class="version1">colors (boolean, default 1, recommended 0) </dt>\r
-<dd><span class="version1">\r
-If colors=1, xboard uses the obsolete "white" and "black"\r
-commands in a stylized way that works with most older chess engines\r
-that require the commands.  See the "<a href="#13">Idioms</a>" section\r
-below for details.  If colors=0, xboard does not use the "white" and\r
-"black" commands at all.\r
-</span>\r
-</dd>\r
-\r
-<dt class="version1">ics (boolean, default 0)</dt>\r
-<dd class="version1">\r
-If ics=1, xboard will use the protocol's new "ics" command\r
-to inform the engine of whether or not it is playing on a chess server;\r
-if ics=0, it will not.\r
-</dd>\r
-\r
-<dt class="version1">name (boolean, see text below)</dt>\r
-<dd class="version1">\r
-If name=1, xboard will use the protocol's "name" command\r
-to inform the engine of the opponent's name; if name=0, it will not.\r
-By default, name=1 if the engine is playing on a chess server; name=0 if not.\r
-</dd>\r
-\r
-<dt class="version1">pause (boolean, default 0)</dt>\r
-<dd class="version1">\r
-If pause=1, xboard may use the protocol's new "pause" command;\r
-if pause=0, xboard assumes that the engine does not support this command.\r
-</dd>\r
-\r
-<dt class="version43">nps (boolean, default ?)</dt>\r
-<dd class="version43">\r
-If nps=1, it means the engine supports the nps command.\r
-If nps=0, it means the engine does not support it, and WinBoard should refrain from sending it.\r
-Default is that WinBoard sends it, in an attempt to try out if the engine understand it.\r
-The engine should properly respond with "Error (unkown command): nps" if it does not implement it,\r
-(as any protocol version pre-scribes),\r
-or WinBoard might assume that the engine did understand the command. \r
-In that case the use of different time standards that ensues could lead to time forfeits for the engine.\r
-</dd>\r
-\r
-<dt class="version43">debug (boolean, default 0)</dt>\r
-<dd class="version43">\r
-If debug=1, it means the engine wants to send debug output prefixed by '#',\r
-which WinBoard should ignore, except for including it in the winboard.debug file.\r
-As this feature is added to protocol 2 ony late,\r
-so that not all protocol-2 supporting versions of WinBoard might implement it,\r
-it is important that engines check if WinBoard accepts the feature.\r
-If the feature is rejected,\r
-engines must refrain from sending the debug output,\r
-or do so at their own risk.\r
-</dd>\r
-\r
-<dt class="version44">memory (boolean, default 0)</dt>\r
-<dd class="version44">\r
-If memory=1, the size of the total amount of memory available for the memory-consuming tables of the engine \r
-(e.g. hash, EGTB cache)\r
-will be set by the GUI through the "memory" command.\r
-</dd>\r
-\r
-<dt class="version44">smp (boolean, default 0)</dt>\r
-<dd class="version44">\r
-If smp=1, the GUI will send the "cores" command to the engine to inform it how many CPU cores it can use.\r
-Note that sending smp=1 does not imply the engine can use more than one CPU;\r
-just that it wants to receive the "cores" command.\r
-</dd>\r
-\r
-<dt class="version44">egt (string, see text below)</dt>\r
-<dd class="version44">\r
-This feature indicates which end-game table formats the engine supports.\r
-It should be a comma-separated list of format names.\r
-See under the "egtpath" command in <a href="#8">section 8</a> above.\r
-If you do not set this feature, xboard will assume the engine does not support end-game tables,\r
-and will not send any "egtpath" commands to inform the engine about their whereabouts.\r
-</dd>\r
-\r
-<dt class="version44">option (string, see text below)</dt>\r
-<dd><span class="version44">\r
-This feature is used by the engine to define an option command to appear in a GUI menu,\r
-so that the user can change the corresponding setting of the engine through the GUI interactively.\r
-The string describes the option by defining a name, type, current value and (sometimes) the acceptable value range.\r
-Unlike other features, option features are accumulated by the GUI, \r
-and the GUI must be able to add a new option to the list at any time,\r
-even after having received feature done=1.\r
-There are ten different options types, each requiring a slighly different syntax of the defining string:\r
-<br />\r
-feature option="NAME -button"\r
-<br />\r
-feature option="NAME -save"\r
-<br />\r
-feature option="NAME -reset"\r
-<br />\r
-feature option="NAME -check VALUE"\r
-<br />\r
-feature option="NAME -string VALUE"\r
-<br />\r
-feature option="NAME -spin VALUE MIN MAX"\r
-<br />\r
-feature option="NAME -combo CHOICE1 /// CHOICE2 ..."\r
-<br />\r
-feature option="NAME -slider VALUE MIN MAX"\r
-<br />\r
-feature option="NAME -file VALUE"\r
-<br />\r
-feature option="NAME -path VALUE"\r
-<br />\r
-NAME is an arbitrary alphanumeric string which can contain spaces; \r
-the other words in capitals would be replaced by the current (default) setting of the option,\r
-(a character string for -string options, a decimal number for -spin and -check options,\r
-were the latter uses 1=checked, 0=unchecked),\r
-the minimum or maximum value of numeric (-spin) options, \r
-or arbitrary text labels (for -combo option).\r
-In the latter case, the current value will be preceded by an asterisk.\r
-The -file and -path options are similar to -string, but can be used to inform the GUI that\r
-the text represents a file name or folder name respectively, \r
-so the GUI dialog could add the appropriate browse button to the text-edit field.\r
-Similarly, a -slider option is like a -spin, but the GUI might make a different\r
-graphical representation for it.\r
-A -save option is like a -button, and defines an immediate command to be sent by the engine.\r
-With -save the GUI will make sure all current option settings are flushed to the engine\r
-before it sends this command.\r
-A -reset option is like a -button, but use of it purges the list of options before sending \r
-the corresponding option command to the engine.\r
-This enables the engine to completely redefine its options or their current settings,\r
-by sending a new set of option feature commands to the GUI, \r
-terminated by feature done=1.\r
-(The effect of sending an option feature for an option with the same name as was defined before, \r
-without first receiving a -reset option command, is undefined.)\r
-</span>\r
-</dd>\r
-\r
-<dt class="version47">exclude (boolean, default 0)</dt>\r
-<dd class="version47">\r
-If exclude=1 the GUI can send "exclude" and "include" commands to control which moves\r
-from the root position should be searched.\r
-</dd>\r
-\r
-<dt class="version47">setscore (boolean, default 0)</dt>\r
-<dd class="version47">\r
-If setscore=1 the GUI can send "setscore" commands to define the score of the current position.\r
-</dd>\r
-\r
-<dt class="version48">highlight (boolean, default 0)</dt>\r
-<dd class="version48">\r
-If highlight=1 the GUI will send "lift", "put" and "hover" commands to the engine,\r
-to keep the latter aware of the user's piece manipulation before the move entry is completed,\r
-so it can respond with the proper "highlight" and "click" commands.\r
-</dd>\r
-\r
-<dt class="version1">done (integer, no default)</dt>\r
-<dd><span class="version1">\r
-If you set done=1 during the initial two-second timeout after\r
-xboard sends you the "xboard" command, the\r
-timeout will end and xboard will not look for any more feature\r
-commands before starting normal operation.\r
-If you set done=0, the initial timeout is increased to one hour;\r
-in this case, you must set done=1 before xboard will enter normal operation.\r
-</span>\r
-</dd>\r
-</dl>\r
-</dd>\r
-</p>\r
-\r
-<dt>setup FEN</dt>\r
-<dt>setup (PIECETOCHAR) FEN</dt>\r
-<dt>setup (PIECETOCHAR) WxH+S_PARENTVARIANT FEN</dt>\r
-<dd>The engine can optionally send a setup command to the GUI in reply\r
-to the variant command.\r
-In the simplest form this sends the FEN of the initial position.\r
-This can be used to implement engines for non-standard variants\r
-that only differ from standard variants through the initial position.\r
-(E.g. many of the 'wild' boards you can play on an ICS.)\r
-Whether the GUI should obey or ignore this command depends on the situation.\r
-Normally it would ignore it in variants where it knows the standard initial position\r
-and legality testing is on, or when the user specified an initial position.\r
-In other cases it will use the FEN sent by the first engine\r
-for setting up the initial position, as if it was an externally supplied position.\r
-Such a position will always be sent to a second engine that might be involved,\r
-and any setup commands received from the latter will always be ignored.\r
-(This to allow for shuffle games, where the two engines might pick different setups.)\r
-When no initial position is known, such as for 'catch-all' variants like fairy,\r
-or whenever the board width is overruled to a non-standard value,\r
-the FEN will be used as default initial position even when legality testing is on.\r
-<p>\r
-Optionally the meaning of the piece ID letters in the FEN can be defined\r
-between parentheses; this will be interpreted as if it was the value of a\r
--pieceToCharTable command-line option, mapping letters to GUI piece types.\r
-Also optionally behind that, the setup command can specify board width W,\r
-board height H and holdings size S, as well as a 'parent variant'.\r
-This is typically done in response to a variant command with a non-standard name,\r
-about which the GUI is not supposed to know anything at all.\r
-The engine can then specify board size, participating pieces, initial setup,\r
-and other rule details (inherited from the parent variant),\r
-saving the user the trouble to configure the GUI for this non-standard variant.\r
-Example:\r
-<pre>\r
-  setup (PN.RQKpn.rqk) 6x6+0_fairy rnqknr/pppppp/6/6/PPPPPP/RNQKNR w - - 0 1\r
-</pre>\r
-could be used by an engine for Los-Alamos Chess in response to 'variant losalamos',\r
-and would automatically switch the GUI to this variant as soon as the user\r
-selected it from the GUI menu.\r
-The PIECETOCHAR element would ensure a Bishop would not be accepted as promotion choice. \r
-</p>\r
-</dd>\r
-\r
-<dt><span class="version48">piece ID PIECEDESC</span></dt>\r
-<dd><span class="version48">The engine can send one or more piece commands\r
-in response to a variant command, in order to specify that the piece\r
-indicated by ID moves in a non-standard way in this variant.\r
-(This to enable the GUI to reliably perform mate detection, and produce good SAN.)\r
-Like in FEN the ID is a case-sensitive letter, specifying the color.\r
-When it is a capital suffixed by &, the description is valid for both colors.\r
-PIECEDESC describes the moves in 'Betza notation',\r
-basically a concatenation of one-letter (upper-case) codes for all of its moves.\r
-These codes can be prefixed with lower-case 'modifiers' to indicate directional sub-sets\r
-(combinations of fblrvs, if the piece is not totally symmetric),\r
-move modality (non-capture, capture, e.p. capture; mce),\r
-and whether the move can jump directly to its destination,\r
-or can be blocked (n).\r
-Moves only valid for a virgin piece are prefixed by 'i'.\r
-An optional numeric suffix on the move indicates the maximum number of times\r
-the move can be repeated in the same direction,\r
-to indicate sliders / riders (with the convention 0 = infinite).\r
-</span>\r
-</dd>\r
-</p>\r
-\r
-<dt>Illegal move: MOVE</dt>\r
-<dt>Illegal move (REASON): MOVE</dt>\r
-<dd>If your engine receives a MOVE command that is recognizably a move\r
-but is not legal in the current position, your engine must print an\r
-error message in one of the above formats so that xboard can pass the\r
-error on to the user and retract the move.  The (REASON) is entirely\r
-optional.  Examples:\r
-\r
-<pre>\r
-  Illegal move: e2e4\r
-  Illegal move (in check): Nf3\r
-  Illegal move (moving into check): e1g1\r
-</pre>\r
-<p>\r
-Generally, xboard will never send an ambiguous move, so it does not \r
-matter whether you respond to such a move with an Illegal move message \r
-or an Error message.\r
-</p>\r
-</dd>\r
-\r
-<dt>Error (ERRORTYPE): COMMAND</dt>\r
-<dd>If your engine receives a command it does not understand or does\r
-not implement, it should print an error message in the above format so\r
-that xboard can parse it.  Examples:\r
-<pre>\r
-  Error (ambiguous move): Nf3\r
-  Error (unknown command): analyze\r
-  Error (command not legal now): undo\r
-  Error (too many parameters): level 1 2 3 4 5 6 7\r
-</pre>\r
-</dd>\r
-\r
-<dt>move MOVE</dt>\r
-<dd>Your engine is making the move MOVE.  Do not echo moves from\r
-xboard with this command; send only new moves made by the engine.\r
-\r
-<div class="version1">\r
-<p>For the actual move text from your chess engine (in place of MOVE\r
-above), your move should be either</p>\r
-<ul>\r
-<li>in coordinate notation (e.g.,\r
-e2e4, e7e8q) with castling indicated by the King's two-square move (e.g.,\r
-e1g1), or</li>\r
-<li>in Standard Algebraic Notation (SAN) as defined in the\r
-Portable Game Notation standard (e.g, e4, Nf3, O-O, cxb5, Nxe4, e8=Q),\r
-with the extension piece@square (e.g., P@f7) to handle piece placement\r
-in bughouse and crazyhouse.</li>\r
-</ul>\r
-<p>\r
-xboard itself also accepts some variants of SAN, but for compatibility\r
-with non-xboard interfaces, it is best not to rely on this behavior.\r
-</p>\r
-\r
-<p>Warning: Even though all versions of this protocol specification\r
-have indicated that xboard accepts SAN moves, some non-xboard\r
-interfaces are known to accept only coordinate notation.  See the\r
-Idioms section for more information on the known limitations of some\r
-non-xboard interfaces.  It should be safe to send SAN moves if you\r
-receive a "protover 2" (or later) command from the interface, but\r
-otherwise it is best to stick to coordinate notation for maximum\r
-compatibility.  An even more conservative approach would be for your\r
-engine to send SAN to the interface only if you have set feature san=1\r
-(which causes the interface to send SAN to you) and have received\r
-"accepted san" in reply.\r
-</p>\r
-\r
-<p class="version48">\r
-For a multi-leg move, each leg will have to be sent in a separate "move" command,\r
-a comma at the end of all non-final legs indicating there is more to follow.\r
-</p>\r
-</div>\r
-</dd>\r
-\r
-<dt>RESULT {COMMENT}</dt>\r
-<dd>When your engine detects\r
-that the game has ended by rule, your engine must output a line of the\r
-form "RESULT {comment}" (without the quotes), where RESULT is a PGN\r
-result code (1-0, 0-1, or 1/2-1/2), and comment is the reason.  Here\r
-"by rule" means that the game is definitely over because of what\r
-happened on the board.  In normal chess, this includes checkmate,\r
-stalemate, triple repetition, the 50 move rule, or insufficient\r
-material; it does not include loss on time or the like.\r
-Examples:\r
-<pre>\r
-  0-1 {Black mates}\r
-  1-0 {White mates}\r
-  1/2-1/2 {Draw by repetition}\r
-  1/2-1/2 {Stalemate}\r
-</pre>\r
-\r
-<p>\r
-xboard relays the result to the user, the ICS, the other engine in Two\r
-Machines mode, and the PGN save file as required.\r
-<span class="version43">Note that "definitey over" above means that sending this command \r
-will be taken by WinBoard as an unconditional refusal of the engine to play on,\r
-which might cause you to forfeit if the game was in fact not over.\r
-This command should thus not be used to offer draws, accept draws,\r
-or make draw-by-rule claims that are not yet valid in the current position\r
-(but will be after you move).\r
-For offering and claiming such draws, "offer draw" should be used.</span>\r
-</p>\r
-\r
-<p class="version44">\r
-Note that (in accordance with FIDE rules) only KK, KNK, KBK and KBKB with all bishops on the\r
-same color can be claimed as draws on the basis of insufficient mating material.\r
-The end-games KNNK, KBKN, KNKN and KBKB with unlike bishops do have mate positions,\r
-and cannot be claimed.\r
-Complex draws based on locked Pawn chains will not be recognized as draws by most interfaces,\r
-so do not claim in such positions, but just offer a draw or play on.\r
-</p>\r
-\r
-<p class="version44">\r
-Note to GUI programmers: RESULT commands that the engine sends immediately after its move\r
-might be detected by the GUI only after the opponent has moved, because of communication\r
-and scheduling delays, no matter how fast the engine sent it.\r
-Any judgement of the validity of RESULT claims based on te "current" board position\r
-will have to account for this uncertainty.\r
-</p>\r
-</dd>\r
-\r
-<dt>resign</dt>\r
-<dd>If your engine wants to resign, it can send the command "resign".\r
-Alternatively, it can use the "RESULT {comment}" command if the string\r
-"resign" is included in the comment; for example "0-1 {White\r
-resigns}".  xboard relays the resignation to the user, the ICS, the\r
-other engine in Two Machines mode, and the PGN save file as required.\r
-<span class="version44">Note that many interfaces work more smoothly if you resign <em>before</em>\r
-you move.</span>\r
-</dd>\r
-\r
-<dt>offer draw</dt>\r
-<dd>If your engine wants to offer a draw by agreement (as opposed to\r
-claiming a draw by rule), it can send the command "offer draw".\r
-xboard relays the offer to the user, the ICS, the other engine in Two\r
-Machines mode, and the PGN save file as required.  In Machine White,\r
-Machine Black, or Two Machines mode, the offer is considered valid\r
-until your engine has made two more moves.\r
-<span class="version43">This command must also be used to accept a draw offer.\r
-Do not use the 1/2-1/2 command for that, as the offer might be no longer valid,\r
-in which case a refusal to play on implied by the RESULT command might make you forfeit the game.\r
-"offer draw" should also be used to claim 50-move and 3-fold-repetition draws\r
-that will occur <em>after</em> your move, by sending it <em>before</em> making the move.\r
-WinBoard will grant draw offers without the opponent having any say in\r
-it in situations where draws can be claimed.\r
-Only if the draw cannot be claimed, the offer will be passed to your opponent after you make your next move,\r
-just before WinBoard relays this move to the opponent.\r
-</span>\r
-</dd>\r
-\r
-<dt class="version1">tellopponent MESSAGE</dt>\r
-<dd class="version1">\r
-This command lets the engine give a message to its opponent,\r
-independent of whether the opponent is a user on the local machine or\r
-a remote ICS user (Zippy mode).  MESSAGE consists of any characters,\r
-including whitespace, to the end of the line.  When the engine is\r
-playing against a user on the local machine, xboard pops up an\r
-information dialog containing the message.  When the engine is playing\r
-against an opponent on the ICS (Zippy mode), xboard sends "say\r
-MESSAGE\n" to the ICS.\r
-</dd>\r
-\r
-<dt class="version1">tellothers MESSAGE </dt>\r
-<dd class="version1">This command lets the engine give a message to people watching the\r
-game other than the engine's opponent.  MESSAGE consists of any\r
-characters, including whitespace, to the end of the line.  When the\r
-engine is playing against a user on the local machine, this command\r
-does nothing.  When the engine is playing against an opponent on the\r
-ICS (Zippy mode), xboard sends "whisper MESSAGE\n" to the ICS.\r
-</dd>\r
-\r
-<dt class="version1">tellall MESSAGE</dt>\r
-<dd class="version1">This command lets the engine give a message to its opponent and\r
-other people watching the game, \r
-independent of whether the opponent is a user on the local machine or\r
-a remote ICS user (Zippy mode).  MESSAGE consists of any characters,\r
-including whitespace, to the end of the line.  When the engine is\r
-playing against a user on the local machine, xboard pops up an\r
-information dialog containing the message.  When the engine is playing\r
-against an opponent on the ICS (Zippy mode), xboard sends "kibitz\r
-MESSAGE\n" to the ICS.\r
-</dd>\r
-\r
-<dt>telluser MESSAGE</dt>\r
-<dd>xboard pops up an information dialog containing the message.\r
-MESSAGE consists of any characters, including whitespace, to the end\r
-of the line.\r
-</dd>\r
-\r
-<dt>tellusererror MESSAGE</dt>\r
-<dd>xboard pops up an error dialog containing the message.\r
-MESSAGE consists of any characters, including whitespace, to the end\r
-of the line.\r
-</dd>\r
-\r
-<dt>askuser REPTAG MESSAGE</dt>\r
-<dd>Here REPTAG is a string containing no whitespace, and MESSAGE\r
-consists of any characters, including whitespace, to the end of the\r
-line.  xboard pops up a question dialog that says MESSAGE and\r
-has a typein box.  If the user types in "bar", xboard sends "REPTAG\r
-bar" to the engine.  The user can cancel the dialog and send nothing.\r
-</dd>\r
-\r
-<dt>tellics MESSAGE</dt>\r
-<dd>In Zippy mode, xboard sends "MESSAGE\n" to ICS.  MESSAGE consists\r
-of any characters, including whitespace, to the end of the line.\r
-</dd>\r
-\r
-<dt class="version1">tellicsnoalias MESSAGE</dt>\r
-<dd class="version1">\r
-In Zippy mode, xboard sends "xMESSAGE\n" to ICS, where "x" is a\r
-character that prevents the ICS from expanding command aliases, if\r
-xboard knows of such a character.  (On chessclub.com and chess.net,\r
-"/" is used; on freechess.org, "$" is used.)  MESSAGE consists of any\r
-characters, including whitespace, to the end of the line.\r
-</dd>\r
-\r
-<dt class="version43"># COMMENT</dt>\r
-<dd class="version43">\r
-The engine can send any string of printable characters, terminated by a newline,\r
-for inclusion in the winboard.debug file, provided the line starts with a '#' character.\r
-If the engine has set feature debug=1,\r
-it is guaranteed that WinBoard (and any future version of it) will completely ignore\r
-these lines in any other respect.\r
-</dd>\r
-\r
-<dt class="version48">highlight COLORFEN</dt>\r
-<dd class="version48">\r
-Through this command the engine can apply markers to the board squares,\r
-of the same type as the GUI uses for indicating where the user could put down a piece he grabs.\r
-The COLORFEN is a construct similar to the board part of a FEN,\r
-in which the letters indicate colors rather than piece types.\r
-Eight colors are available, through the single-letter codes: RYGCBMWD,\r
-for red, yellow, green, cyan, blue, magenta, white, black ('dark'), respectively.\r
-For example, "highlight 8/8/8/8/4y3/4yr2/8/8" would mark e3 and e4 yellow, and f3 red.\r
-Some colors have special meaning to the GUI:\r
-<table>\r
-<tr><th>color</th><th>used for</th><th>effect</th><tr>\r
-<tr><td>red</td><td>capture</td><td>hovering over the square makes the GUI send a "hover" command</td><tr>\r
-<tr><td>magenta</td><td>promotion</td><td>moving to the square will be treated by the GUI as a promotion</td><tr>\r
-<tr><td>cyan</td><td>multi-move</td><td>moving to the square will not complete the move entry</td><tr>\r
-<tr><td>green</td><td>victims</td><td>no real effect, but used by convention to indicate capture victims on "hover"</td><tr>\r
-</table>\r
-The GUI will use the markers for legality checking,\r
-and will consider moves to squares left non-marked in a highlight command as illegal even when legality checking is off.\r
-This way the GUI can be made aware of the rules of unknown variants,\r
-popping up promotion dialogs where it would otherwise not,\r
-and knowing where to wait for more input on multi-leg moves.\r
-When it would be necessary to mark squares where no legal moves go to\r
-(e.g. to indicate side effects),\r
-the corresponding lower-case character can be used for the color.\r
-For indicating a legal destination square without visibly marking it, T (transparent) can be used.\r
-</dd>\r
-\r
-<dt class="version48">choice PIECESTRING</dt>\r
-<dd class="version48">\r
-This command can be sent to the GUI in response to a 'lift' or 'put' command that implies a promotion move,\r
-to alter the choice offered to the user for the promotion piece from what the GUI would naturally assume,\r
-to the piece IDs mentioned in the PIECESTRING.\r
-The IDs in that string should be given as capitals irrespective of color.\r
-The first piece mentioned will be the default choice.\r
-</dd>\r
-</dl>\r
-\r
-<dt class="version48">click SQUARE</dt>\r
-<dd class="version48">\r
-The GUI will treat this command as if the user had clicked the mentioned SQUARE.\r
-This can be used to implement one-click moving in variants the GUI does not know the rules of\r
-(having the engine send the clicks needed to complete the move).\r
-It can also be used to implement side effects of the move the GUI would not know about\r
-(e.g. moving the Rook in a non-standard castling).\r
-</dd>\r
-</dl>\r
-\r
-<h2><a name="10">10. Thinking Output</a></h2>\r
-\r
-<p>\r
-If the user asks your engine to "show thinking", xboard sends your\r
-engine the "post" command.  It sends "nopost" to turn thinking off.\r
-In post mode, your engine sends output lines to show the progress of\r
-its thinking.  The engine can send as many or few of these lines as it\r
-wants to, whenever it wants to.  Typically they would be sent when the\r
-PV (principal variation) changes or the depth changes.  The thinking\r
-output should be in the following format:\r
-</p>\r
-\r
-<pre>ply score time nodes pv</pre>\r
-\r
-<p>Where:</p>\r
-<table>\r
-<tr><td>ply</td><td>Integer giving current search depth.</td></tr>\r
-<tr><td>score</td><td>Integer giving current evaluation in centipawns.</td></tr>\r
-<tr><td>time</td><td>Current search time in centiseconds (ex:1028 = 10.28 seconds).</td></tr>\r
-<tr><td>nodes</td><td>Nodes searched.</td></tr>\r
-<tr><td>*selective depth</td><td>Maximium length of any branch in the current search.</td></tr>\r
-<tr><td>*speed</td><td>Nodes per second in last measured time interval.</td></tr>\r
-<tr><td>*</td><td>Reserved for future extensions.</td></tr>\r
-<tr><td>*tbhits</td><td>Number of tablebase probes made in the current search.</td></tr>\r
-<tr><td>pv</td><td>Freeform text giving current "best" line.\r
-You can continue the pv onto another line if you start each\r
-continuation line with at least four space characters.</td></tr>\r
-</table>\r
-\r
-<p class="version48">\r
-The items marked with * are optional.\r
-If any of these items is present, the <b>pv</b> field must be preceeded directly by a tab character;\r
-if no tab character preceeds the first non-integer token,\r
-the <b>pv</b> field will start at the first non-blank character after <b>nodes</b>.\r
-Otherwise it will start after the last tab that is not behind any non-integer token.\r
-Of all integers between <b>nodes</b> and <b>pv</b> the last one is intepreted as <b>tbhits</b>.\r
-Of any remaining ones the first is interpreted as <b>selective depth</b>,\r
-and a second as <b>speed</b>.\r
-More infos could be added to this in the future.\r
-Note that older interfaces might consider the optional infos to be part of the <b>pv</b> field,\r
-and display them exactly as sent.\r
-It is therefore encouraged that engines use tabs or spaces to format this optional info\r
-so that it will display nicely in (not too wide) columns.\r
-</p>\r
-\r
-<p class="version48">\r
-A question mark as the last character in the <b>pv</b> field should be used to indicate\r
-the reported score is from a fail low, and thus represents an upper bound only.\r
-Similarly, an exclamation point should be used to indicate a fail high / lower bound.\r
-</p>\r
-\r
-<p class="version48">\r
-Mate scores should be indicated as 100000 + N for "mate in N moves",\r
-and -100000 - N for "mated in N moves".\r
-</p>\r
-\r
-<p>\r
-Example:\r
-</p>\r
-\r
-<pre>  9 156 1084 48000 Nf3 Nc6 Nc3 Nf6</pre>\r
-\r
-<p>\r
-Meaning:\r
-</p>\r
-\r
-<pre>\r
-9 ply, score=1.56, time = 10.84 seconds, nodes=48000, PV = "Nf3 Nc6 Nc3 Nf6"\r
-</pre>\r
-\r
-<p>\r
-Longer example from actual Crafty output:\r
-</p>\r
-\r
-<pre>\r
-  4    109      14   1435  1. e4 d5 2. Qf3 dxe4 3. Qxe4 Nc6\r
-  4    116      23   2252  1. Nf3 Nc6 2. e4 e6\r
-  4    116      27   2589  1. Nf3 Nc6 2. e4 e6\r
-  5    141      44   4539  1. Nf3 Nc6 2. O-O e5 3. e4\r
-  5    141      54   5568  1. Nf3 Nc6 2. O-O e5 3. e4\r
-</pre>\r
-\r
-<p>\r
-You can use the PV to show other things; for instance, while in book,\r
-Crafty shows the observed frequency of different reply moves in its\r
-book.  In situations like this where your engine is not really\r
-searching, start the PV with a '(' character:\r
-</p>\r
-\r
-<pre>\r
-  0      0       0      0  (e4 64%, d4 24%)\r
-</pre>\r
-\r
-<p>\r
-GNU Chess output is very slightly different.  The ply number is\r
-followed by an extra nonblank character, and the time is in seconds,\r
-not hundredths of seconds.  For compatibility, xboard accepts the\r
-extra character and takes it as a flag indicating the different time\r
-units.  Example:\r
-</p>\r
-\r
-<pre>\r
- 2.     14    0       38   d1d2  e8e7 \r
- 3+     78    0       65   d1d2  e8e7  d2d3 \r
- 3&amp;     14    0       89   d1d2  e8e7  d2d3 \r
- 3&amp;     76    0      191   d1e2  e8e7  e2e3 \r
- 3.     76    0      215   d1e2  e8e7  e2e3 \r
- 4&amp;     15    0      366   d1e2  e8e7  e2e3  e7e6 \r
- 4.     15    0      515   d1e2  e8e7  e2e3  e7e6 \r
- 5+     74    0      702   d1e2  f7f5  e2e3  e8e7  e3f4 \r
- 5&amp;     71    0     1085   d1e2  e8e7  e2e3  e7e6  e3f4 \r
- 5.     71    0     1669   d1e2  e8e7  e2e3  e7e6  e3f4 \r
- 6&amp;     48    0     3035   d1e2  e8e7  e2e3  e7e6  e3e4  f7f5  e4d4 \r
- 6.     48    0     3720   d1e2  e8e7  e2e3  e7e6  e3e4  f7f5  e4d4 \r
- 7&amp;     48    0     6381   d1e2  e8e7  e2e3  e7e6  e3e4  f7f5  e4d4 \r
- 7.     48    0    10056   d1e2  e8e7  e2e3  e7e6  e3e4  f7f5  e4d4 \r
- 8&amp;     66    1    20536   d1e2  e8e7  e2e3  e7e6  e3d4  g7g5  a2a4  f7f5 \r
- 8.     66    1    24387   d1e2  e8e7  e2e3  e7e6  e3d4  g7g5  a2a4  f7f5 \r
- 9&amp;     62    2    38886   d1e2  e8e7  e2e3  e7e6  e3d4  h7h5  a2a4  h5h4 \r
-                           d4e4 \r
- 9.     62    4    72578   d1e2  e8e7  e2e3  e7e6  e3d4  h7h5  a2a4  h5h4 \r
-                           d4e4 \r
-10&amp;     34    7   135944   d1e2  e8e7  e2e3  e7e6  e3d4  h7h5  c2c4  h5h4 \r
-                           d4e4  f7f5  e4f4 \r
-10.     34    9   173474   d1e2  e8e7  e2e3  e7e6  e3d4  h7h5  c2c4  h5h4 \r
-                           d4e4  f7f5  e4f4 \r
-</pre>\r
-\r
-<p>If your engine is pondering (thinking on its opponent's time) in post\r
-mode, it can show its thinking then too.  In this case your engine may\r
-omit the hint move (the move it is assuming its opponent will make)\r
-from the thinking lines <em>if and only if</em> it sends xboard the move in\r
-the usual "Hint: xxx" format before sending the first line.\r
-</p>\r
-\r
-<h2><a name="11">11. Time control</a></h2>\r
-\r
-<p>\r
-xboard supports three styles of time control: conventional chess clocks,\r
-the ICS-style incremental clock, and an exact number of seconds per move.\r
-</p>\r
-\r
-<p>In conventional clock mode, every time control period is the same.\r
-That is, if the time control is 40 moves in 5 minutes, then after each\r
-side has made 40 moves, they each get an additional 5 minutes, and so\r
-on, ad infinitum.  At some future time it would be nice to support a\r
-series of distinct time controls.  This is very low on my personal\r
-priority list, but code donations to the xboard project are accepted,\r
-so feel free to take a swing at it.  I suggest you talk to me first,\r
-though.\r
-</p>\r
-\r
-<p>\r
-The command to set a conventional time control looks like this:\r
-</p>\r
-\r
-<pre>\r
-  level 40 5 0\r
-  level 40 0:30 0\r
-</pre>\r
-\r
-<p>\r
-The 40 means that there are 40 moves per time control.  The 5 means\r
-there are 5 minutes in the control.  In the second example, the 0:30\r
-means there are 30 seconds.  The final 0 means that we are in\r
-conventional clock mode.\r
-</p>\r
-\r
-<p class="version43">\r
-Note that the time parameter in this command is not a pure numeric argument,\r
-but in general is a character string, in order to pass the number of seconds.\r
-Engines are encouraged to ignore any unexpected characters at the end of this string,\r
-i.e. following the MIN or MIN:SEC specification.\r
-Future protocol versions might (under control of an appropriate feature)\r
-append such extra characters to this argument,\r
-in order to inform the engine in advance of the time control it can expect after the current session completes.\r
-E.g. "level 40 25+5 0" could mean that the engine has to play 40 moves in 25 minutes,\r
-but should expect to get only 5 minutes for the entire remainder of the game after that,\r
-rather than another 25 minutes for the next 40 moves.\r
-When the time comes, (i.e. after the 40 moves), \r
-it will be informed of the time-control change by receiving a new "level 0 5 0" command,\r
-but engines with advanced time management might want to plan for this in advance.\r
-</p>\r
-\r
-<p>\r
-The command to set an incremental time control looks like this:\r
-</p>\r
-\r
-<pre>\r
-  level 0 2 12\r
-</pre>\r
-\r
-<p>\r
-Here the 0 means "play the whole game in this time control period",\r
-the 2 means "base=2 minutes", and the 12 means "inc=12 seconds".  As\r
-in conventional clock mode, the second argument to level can be in\r
-minutes and seconds.\r
-</p>\r
-\r
-<p>\r
-At the start of the game, each player's clock is set to base minutes.\r
-Immediately after a player makes a move, inc seconds are added to his\r
-clock.  A player's clock counts down while it is his turn.  Your flag\r
-can be called whenever your clock is zero or negative.  (Your clock\r
-can go negative and then become positive again because of the\r
-increment.)\r
-</p>\r
-\r
-<p class="version44">\r
-The number of moves given in the level command (when non-zero) should \r
-be taken as the number of moves still to do before the specified time\r
-will be added to the clock, if the "level" command is received after\r
-some moves have already been played.\r
-The time given should be interpreted as the time left on its clock\r
-(including any time left over from the previous sessions),\r
-and not necessarily the time that will be added to the clock\r
-after the specified number of moves has been played.\r
-This is only relevant in WinBoard 4.3.xx, which might send the engine\r
-"level" commands during a game,\r
-just before the engine has to start thinking about the first move of \r
-a new time-control session.\r
-Example: if at the start of the game "level 40 60 0" was given \r
-(40 moves per hour),\r
-and the engine receives "level 20 22 0" just before move 41,\r
-it should understand that it should do the next 20 moves in 22 minutes\r
-(pehaps because the secondary session was 20 moves per 15 minutes,\r
-and it had 7 minutes left on its clock after the first 40 moves).\r
-</p>\r
-\r
-<p>\r
-A special rule on some ICS implementations: if you ask for a game with\r
-base=0, the clocks really start at 10 seconds instead of 0.  xboard\r
-itself does not know about this rule, so it passes the 0 on to the\r
-engine instead of changing it to 0:10.\r
-</p>\r
-\r
-<p>\r
-ICS also has time odds games.  With time odds, each player has his own\r
-(base, inc) pair, but otherwise things work the same as in normal\r
-games.  The Zippy xboard accepts time odds games but ignores the fact\r
-that the opponent's parameters are different; this is perhaps not\r
-quite the right thing to do, but gnuchess doesn't understand time\r
-odds.  Time odds games are always unrated.\r
-</p>\r
-\r
-<p>\r
-The command to set an exact number of seconds per move looks like this:\r
-</p>\r
-\r
-<pre>\r
-  st 30\r
-</pre>\r
-\r
-<p>\r
-This means that each move must be made in at most 30 seconds.  Time not used\r
-on one move does not accumulate for use on later moves.\r
-</p>\r
-\r
-<h2><a name="12">12. Analyze Mode</a></h2>\r
-\r
-<p>xboard supports analyzing fresh games, edited positions, and games\r
-from files.  However, all of these look the same from the chess\r
-engine's perspective. Basically, the engine just has to respond to the\r
-"analyze" command.  \r
-<span class="version1">\r
-Beginning in protocol version 2,\r
-if your engine does not support analyze mode, it should use\r
-the feature command to set analyze=0.  \r
-</span>\r
-The older method of\r
-printing the error message "Error (unknown command): analyze" in\r
-response to the "analyze" command will also work, however.\r
-</p>\r
-\r
-<p>\r
-To enter analyze mode, xboard sends the command sequence "post", "analyze".  \r
-Analyze mode in your engine should be\r
-similar to force mode, except that your engine thinks about what move\r
-it would make next if it were on move.  Your engine should accept the\r
-following commands while in analyze mode:\r
-</p>\r
-\r
-<ul>\r
-<li>Any legal move, as in force mode</li>\r
-<li><strong>undo</strong>&nbsp;&nbsp; Back up one move and analyze previous position.</li>\r
-<li><strong>new</strong>&nbsp;&nbsp; Reset position to start of game but stay in analyze mode.</li>\r
-<li><span class="version1"><strong>setboard</strong> if you have set feature setboard=1; otherwise <strong>edit</strong>.  Exiting edit mode returns to analyze mode.</span></li>\r
-<li><strong>exit</strong>&nbsp;&nbsp; Leave analyze mode.</li>\r
-<li><strong>.</strong>&nbsp;&nbsp; Send a search status update (optional); see below.</li>\r
-<li><span class="version1">\r
-<strong>bk</strong>&nbsp;&nbsp; Show book moves from this position,\r
-if any; see above.</span></li>\r
-<li><span class="version1">\r
-<strong>hint</strong>&nbsp;&nbsp; Show the predicted move from this\r
-position, if any; see above.</span></li>\r
-</ul>\r
-  \r
-<p>\r
-If the user selects "Periodic Updates", xboard will send the string\r
-".\n" to the chess engine periodically during analyze mode, unless the\r
-last PV received began with a '(' character.\r
-</p>\r
-\r
-<p>\r
-The chess engine should respond to ".\n" with a line like this:\r
-</p>\r
-\r
-<pre>\r
-stat01: time nodes ply mvleft mvtot <span class="version1">mvname</span>\r
-</pre>\r
-\r
-<p>Where:</p>\r
-<table>\r
-<tr><td>time</td><td>Elapsed search time in centiseconds (ie: 567 = 5.67 seconds).</td></tr>\r
-<tr><td>nodes</td><td>Nodes searched so far.</td></tr>\r
-<tr><td>ply</td><td>Search depth so far.</td></tr>\r
-<tr><td>mvleft</td><td>Number of moves left to consider at this depth.</td></tr>\r
-<tr><td>mvtot</td><td>Total number of moves to consider.</td></tr>\r
-<tr class="version1"><td>mvname</td><td>Move currently being considered (SAN or coordinate notation).  Optional;\r
-added in protocol version 2.</td></tr>\r
-</table>\r
-\r
-<p>\r
-Examples:\r
-</p>\r
-<pre>\r
-  stat01: 1234 30000 7 5 30\r
-  stat01: 1234 30000 7 5 30 Nf3\r
-</pre>\r
-\r
-<p>\r
-Meaning:\r
-</p>\r
-\r
-<p>After 12.34 seconds, I've searched 7 ply/30000 nodes, there are a\r
-  total of 30 legal moves, and I have 5 more moves to search\r
-  before going to depth 8.  In the second example, of the 30 legal\r
-  moves, the one I am currently searching is Nf3.</p>\r
-\r
-<p>\r
-Implementation of the "." command is optional. If the engine does not\r
-respond to the "." command with a "stat01..." line, xboard will stop\r
-sending "."  commands.  If the engine does not implement this command,\r
-the analysis window will use a shortened format to display the engine\r
-info.\r
-</p>\r
-\r
-<p>\r
-To give the user some extra information, the chess engine can output\r
-the strings "++\n" and "--\n", to indicate that the current search is\r
-failing high or low, respectively.  You don't have to send anything\r
-else to say "Okay, I'm not failing high/low anymore."  xboard will\r
-figure this out itself.\r
-</p>\r
-\r
-<h2><a name="13">13. Idioms and backward compatibility features</a></h2>\r
-\r
-<p>\r
-Some engines have variant interpretations of the force/go/white/black,\r
-time/otim, and hard/easy command sets.  \r
-In order to accommodate these older engines, xboard uses these commands\r
-only according to the stylized patterns ("idioms") given in this section.\r
-The obsolete white and black commands\r
-have historically been particularly troublesome, and it is recommended\r
-that new engines set the feature colors=0 and/or ignore the commands.\r
-</p>\r
-\r
-<dl>\r
-\r
-<dt>time N</dt>\r
-<dt>otim N</dt>\r
-<dt>MOVE</dt>\r
-<dd>Sent when the opponent makes a move and the engine is already\r
-playing the opposite color.\r
-</dd>\r
-<dt>white</dt>\r
-<dt>go</dt>\r
-<dd>Sent when the engine is in force mode or playing Black but should\r
-switch to playing White.  This sequence is sent only when White is\r
-already on move.  \r
-<span class="version1">\r
-If you set the feature colors=0, "white" is not sent.\r
-</span>\r
-</dd>\r
-\r
-<dt>black</dt>\r
-<dt>go</dt>\r
-<dd>Sent when the engine is in force mode or playing White but should\r
-switch to playing Black.  This sequence is sent only when Black is\r
-already on move.  \r
-<span class="version1">\r
-If you set the feature colors=0, "black" is not sent.\r
-</span>\r
-</dd>\r
-\r
-<dt>white</dt>\r
-<dt>time N</dt>\r
-<dt>otim N</dt>\r
-<dt>black</dt>\r
-<dt>go</dt>\r
-<dd>Sent when Black is on move, the engine is in force mode or playing\r
-White, and the engine's clock needs to be updated before it starts\r
-playing.  \r
-The initial "white" is a kludge to accommodate GNU Chess\r
-4's variant interpretation of these commands.  \r
-<span class="version1">\r
-If you set the feature colors=0, "white" and "black" are not sent.\r
-</span>\r
-</dd>\r
-\r
-<dt>black</dt>\r
-<dt>time N</dt>\r
-<dt>otim N</dt>\r
-<dt>white</dt>\r
-<dt>go</dt>\r
-<dd>Sent when White is on move, the engine is in force mode or playing\r
-Black, and the engine's clock needs to be updated before it starts\r
-playing.  See previous idiom.  \r
-The initial "black" is a kludge to accommodate GNU Chess\r
-4's variant interpretation of these commands.  \r
-<span class="version1">\r
-If you set the feature colors=0, "black" and "white" are not sent.\r
-</span>\r
-</dd>\r
-\r
-<dt>hard</dt>\r
-<dt>easy</dt>\r
-<dd>Sent in sequence to turn off pondering if xboard is not sure\r
-whether it is on.  When xboard is sure, it will send "hard" or "easy"\r
-alone.  xboard does this because "easy" is a toggle in GNU Chess 4 but\r
-"hard" is an absolute on.\r
-</dd>\r
-</dl>\r
-\r
-<p>\r
-To support older engines, certain additional commands from the engine\r
-to xboard are also recognized.  (These are commands by themselves, not\r
-values to be placed in the comment field of the PGN result code.)\r
-These forms are not recommended for new engines; use the PGN result\r
-code commands or the resign command instead.\r
-</p>\r
-\r
-<table>\r
-<tr><th>Command</th>              <th>Interpreted as</th></tr>\r
-<tr><td>White resigns        </td><td>0-1 {White resigns}</td></tr>\r
-<tr><td>Black resigns        </td><td>1-0 {Black resigns}</td></tr>\r
-<tr><td>White                </td><td>1-0 {White mates}</td></tr>\r
-<tr><td>Black                </td><td>0-1 {Black mates}</td></tr>\r
-<tr><td>Draw                 </td><td>1/2-1/2 {Draw}</td></tr>\r
-<tr><td>computer mates       </td><td>1-0 {White mates} or 0-1 {Black mates}</td></tr>\r
-<tr><td>opponent mates       </td><td>1-0 {White mates} or 0-1 {Black mates}</td></tr>\r
-<tr><td>computer resigns     </td><td>0-1 {White resigns} or 1-0 {Black resigns}</td></tr>\r
-<tr><td>game is a draw       </td><td>1/2-1/2 {Draw}</td></tr>\r
-<tr><td>checkmate            </td><td>1-0 {White mates} or 0-1 {Black mates}</td></tr>\r
-</table>\r
-\r
-<p>\r
-Commands in the above table are recognized if they begin a line and\r
-arbitrary characters follow, so (for example) "White mates" will be\r
-recognized as "White", and "game is a draw by the 50 move rule" will\r
-be recognized as "game is a draw".  All the commands are\r
-case-sensitive.\r
-</p>\r
-\r
-<p>\r
-An alternative move syntax is also recognized:\r
-</p>\r
-\r
-<table>\r
-<tr><th>Command              </th><th>Interpreted as</th></tr>\r
-<tr><td>NUMBER ... MOVE      </td><td>move MOVE</td></tr>\r
-</table>\r
-\r
-<p>\r
-Here NUMBER means any string of decimal digits, optionally ending in a\r
-period.  MOVE is any string containing no whitespace.  In this command\r
-format, xboard requires the "..." even if your engine is playing\r
-White.  A command of the form NUMBER MOVE will be ignored.  This odd\r
-treatment of the commands is needed for compatibility with gnuchessx.\r
-The original reasons for it are lost in the mists of time, but I\r
-suspect it was originally a bug in the earliest versions of xboard,\r
-before I started working on it, which someone "fixed" in the wrong\r
-way, by creating a special version of gnuchess (gnuchessx) instead of\r
-changing xboard.\r
-</p>\r
-\r
-<p>\r
-Any line that contains the words "offer" and "draw" is recognized as\r
-"offer draw".\r
-</p>\r
-\r
-<p>\r
-The "Illegal move" message is recognized even if spelled "illegal\r
-move" and even if the colon (":") is omitted.  This accommodates GNU\r
-Chess 4, which prints messages like "Illegal move (no matching\r
-move)e2e4", and old versions of Crafty, which print just "illegal move".\r
-</p>\r
-\r
-<p>\r
-In Zippy mode, for compatibility with older versions of Crafty,\r
-xboard passes through to ICS any line that begins "kibitz", "whisper",\r
-"tell", or "draw".  Do not use this feature in new code.  Instead, use the\r
-commands "tellall", "tellothers", "tellopponent", "tellics" (if needed),\r
-"1/2-1/2 {COMMENT}", or "offer draw", as appropriate.\r
-</p>\r
-\r
-<p class="version1">\r
-If the engine responds to the "sd DEPTH" command with an error message\r
-indicating the command is not supported (such as "Illegal move: sd"),\r
-xboard sets an internal flag and subsequently uses the command\r
-"depth\nDEPTH" instead, for the benefit of GNU Chess 4.  Note the\r
-newline in the middle of this command!  New engines should not rely on\r
-this feature.\r
-</p>\r
-\r
-<p class="version1">\r
-If the engine responds to the "st TIME" command with an error message\r
-indicating the command is not supported (such as "Illegal move: st"),\r
-xboard sets an internal flag and subsequently uses the command "level\r
-1 TIME" instead, for the benefit of GNU Chess 4.  Note that this is\r
-not a standard use of the level command, as TIME seconds are not added\r
-after each player makes 1 move; rather, each move is made in at most\r
-TIME seconds.  New engines should not implement or rely on this\r
-feature.\r
-</p>\r
-\r
-<div class="version1">\r
-<p>\r
-In support of the -firstHost/-secondHost features, which allow a chess\r
-engine to be run on another machine using the rsh protocol, xboard recognizes\r
-error messages that are likely to come from rsh as fatal errors.  The following\r
-messages are currently recognized:\r
-</p>\r
-\r
-<ul>\r
-<li>unknown host</li>\r
-<li>No remote directory</li>\r
-<li>not found</li>\r
-<li>No such file</li>\r
-<li>can't alloc</li>\r
-<li>Permission denied</li>\r
-</ul>\r
-</div>\r
-\r
-<p class="version1">\r
-ChessBase/Fritz now implements the xboard/winboard protocol and can use\r
-WinBoard-compatible engines in its GUI.  ChessBase's version of the\r
-protocol is generally the same as version 1, except that they have\r
-added the commands <strong>fritz</strong>, <strong>reset</strong>, and\r
-<strong>ponder</strong>, and the edit subcommands\r
-<strong>castle</strong> and <strong>ep</strong>.  If you want your\r
-engine to work well with the ChessBase/Fritz GUI, you may need to\r
-implement these additional commands, and you should also be aware of\r
-the peculiar way that ChessBase uses the protocol.  See their <a\r
-href="http://www.chessbase.com/Products/engines/winboard/tech.htm"\r
->web page</a> for documentation.\r
-</p>\r
-\r
-<p class="version1">\r
-ChessMaster 8000 also implements version 1 of the xboard/winboard\r
-protocol and can use WinBoard-compatible engines.  The original\r
-release of CM8000 also has one additional restriction: only pure\r
-coordinate notation (e.g., e2e4) is accepted in the move command.  A\r
-patch to correct this should be available from The Learning Company\r
-(makers of CM8000) in February 2001.\r
-</p>\r
-\r
-</body>\r
-</html>\r
diff --git a/engineoutput.c b/engineoutput.c
deleted file mode 100644 (file)
index 6fd6662..0000000
+++ /dev/null
@@ -1,721 +0,0 @@
-/*
- * engineoutput.c - split-off backe-end from Engine output (PV) by HGM
- *
- * Author: Alessandro Scotti (Dec 2005)
- *
- * Copyright 2005 Alessandro Scotti
- *
- * Enhancements Copyright 1995, 2009, 2010, 2011, 2012, 2013, 2014,
- * 2015, 2016 Free Software Foundation, Inc.
- *
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-#define SHOW_PONDERING
-
-#include "config.h"
-
-#include <stdio.h>
-#include <ctype.h>
-
-#if STDC_HEADERS
-# include <stdlib.h>
-# include <string.h>
-#else /* not STDC_HEADERS */
-# if HAVE_STRING_H
-#  include <string.h>
-# else /* not HAVE_STRING_H */
-#  include <strings.h>
-# endif /* not HAVE_STRING_H */
-#endif /* not STDC_HEADERS */
-
-#include "common.h"
-#include "frontend.h"
-#include "backend.h"
-#include "moves.h"
-#include "engineoutput.h"
-#include "gettext.h"
-
-#ifdef ENABLE_NLS
-# define  _(s) gettext (s)
-# define N_(s) gettext_noop (s)
-#else
-# ifdef WIN32
-#  define  _(s) T_(s)
-#  undef  ngettext
-#  define  ngettext(s,p,n) T_(p)
-# else
-#  define  _(s) (s)
-# endif
-# define N_(s)  s
-#endif
-
-typedef struct {
-    char * name;
-    int which;
-    int depth;
-    u64 nodes;
-    int score;
-    int time;
-    char * pv;
-    char * hint;
-    int an_move_index;
-    int an_move_count;
-    int moveKey;
-} EngineOutputData;
-
-// called by other front-end
-void EngineOutputUpdate( FrontEndProgramStats * stats );
-void OutputKibitz(int window, char *text);
-
-// module back-end routines
-static void VerifyDisplayMode();
-static void UpdateControls( EngineOutputData * ed );
-
-static int  lastDepth[2] = { -1, -1 };
-static int  lastForwardMostMove[2] = { -1, -1 };
-static int  engineState[2] = { -1, -1 };
-static char lastLine[2][MSG_SIZ];
-static char header[2][MSG_SIZ];
-static char columnHeader[MSG_SIZ] = "dep\tscore\tnodes\ttime\t(not shown:  tbhits\tknps\tseldep)\n";
-static int  columnMask = 0xF0;
-
-#define MAX_VAR 400
-static int scores[MAX_VAR], textEnd[MAX_VAR], keys[MAX_VAR], curDepth[2], nrVariations[2];
-static char fail[MAX_VAR];
-
-extern int initialRulePlies;
-
-void
-MakeEngineOutputTitle ()
-{
-       static char buf[MSG_SIZ];
-       static char oldTitle[MSG_SIZ];
-       char title[MSG_SIZ];
-       int count, rule = 2*appData.ruleMoves;
-
-       snprintf(title, MSG_SIZ, _("Engine Output") );
-
-       if(!EngineOutputIsUp()) return;
-       // figure out value of 50-move counter
-       count = currentMove;
-       while( (signed char)boards[count][EP_STATUS] <= EP_NONE && count > backwardMostMove ) count--;
-       if( count == backwardMostMove ) count -= initialRulePlies;
-       count = currentMove - count;
-       if(!rule) rule = 100;
-       if(count >= rule - 40 && (!appData.icsActive || gameMode == IcsObserving || appData.zippyPlay)) {
-               snprintf(buf, MSG_SIZ, ngettext("%s (%d reversible ply)", "%s (%d reversible plies)", count), title, count);
-               safeStrCpy(title, buf, MSG_SIZ);
-       }
-       if(!strcmp(oldTitle, title)) return;
-       safeStrCpy(oldTitle, title, MSG_SIZ);
-       SetEngineOutputTitle(title);
-}
-
-// back end, due to front-end wrapper for SetWindowText, and new SetIcon arguments
-void
-SetEngineState (int which, enum ENGINE_STATE state, char * state_data)
-{
-    int x_which = 1 - which;
-
-    if( engineState[ which ] != state ) {
-        engineState[ which ] = state;
-
-        switch( state ) {
-        case STATE_THINKING:
-            SetIcon( which, nStateIcon, nThinking );
-            if( engineState[ x_which ] == STATE_THINKING ) {
-                SetEngineState( x_which, STATE_IDLE, "" );
-            }
-            break;
-        case STATE_PONDERING:
-            SetIcon( which, nStateIcon, nPondering );
-            break;
-        case STATE_ANALYZING:
-            SetIcon( which, nStateIcon, nAnalyzing );
-            break;
-        default:
-            SetIcon( which, nStateIcon, nClear );
-            break;
-        }
-    }
-
-    if( state_data != 0 ) {
-        DoSetWindowText( which, nStateData, state_data );
-    }
-}
-
-// back end, now the front-end wrapper ClearMemo is used, and ed no longer contains handles.
-void
-SetProgramStats (FrontEndProgramStats * stats) // now directly called by back-end
-{
-    EngineOutputData ed;
-    int clearMemo = FALSE;
-    int which, depth, multi;
-    ChessMove moveType;
-    int ff, ft, rf, rt;
-    char pc;
-
-    if( stats == 0 ) {
-        SetEngineState( 0, STATE_IDLE, "" );
-        SetEngineState( 1, STATE_IDLE, "" );
-        return;
-    }
-
-    if(gameMode == IcsObserving && !appData.icsEngineAnalyze)
-       return; // [HGM] kibitz: shut up engine if we are observing an ICS game
-
-    which = stats->which;
-    depth = stats->depth;
-
-    if( which < 0 || which > 1 || depth < 0 || stats->time < 0 || stats->pv == 0 ) {
-        return;
-    }
-
-    if(appData.epd && which) return; // do not write second pane in -epd mode
-
-    if( !EngineOutputDialogExists() ) {
-        return;
-    }
-
-    VerifyDisplayMode();
-
-    ed.which = which;
-    ed.depth = depth;
-    ed.nodes = stats->nodes;
-    ed.score = stats->score;
-    ed.time = stats->time;
-    ed.pv = stats->pv;
-    ed.hint = stats->hint;
-    ed.an_move_index = stats->an_move_index;
-    ed.an_move_count = stats->an_move_count;
-
-    /* Get target control. [HGM] this is moved to front end, which get them from a table */
-    if( which == 0 ) {
-        ed.name = first.tidy;
-    }
-    else {
-        ed.name = second.tidy;
-    }
-
-    if( ed.pv != 0 && ed.pv[0] == ' ' ) {
-        if( strncmp( ed.pv, " no PV", 6 ) == 0 ) { /* Hack on hack! :-O */
-            ed.pv = "";
-        }
-    }
-
-    /* Clear memo if needed */
-    if( lastDepth[which] > depth || (lastDepth[which] == depth && depth <= 1 && ed.pv[0]) ) { // no reason to clear if we won't add line
-        clearMemo = TRUE;
-    }
-
-    if( lastForwardMostMove[which] != forwardMostMove && endPV < 0) {
-        clearMemo = TRUE;
-    }
-
-    if( clearMemo ) {
-        if(!appData.headers) columnHeader[0] = NULLCHAR;
-        DoClearMemo(which); nrVariations[which] = 0;
-        header[which][0] = NULLCHAR;
-        if(gameMode == AnalyzeMode) {
-          ChessProgramState *cps = (which ? &second : &first);
-          char *exclu = cps->excludeMoves ? exclusionHeader : "";
-          if((multi = MultiPV(cps, 3)) != -1) {
-            char *s = "setting";
-            if(multi < -1) multi = -2 - multi, s = "margin";
-            snprintf(header[which], MSG_SIZ, "\t%s viewpoint\t\tfewer / Multi-PV %s = %d / more\n",
-                                       appData.whitePOV || appData.scoreWhite ? "white" : "mover", s, cps->option[multi].value);
-         }
-          if(!which) snprintf(header[which]+strlen(header[which]), MSG_SIZ-strlen(header[which]), "%s%s", exclu, columnHeader);
-          InsertIntoMemo( which, header[which], 0);
-        } else {
-          snprintf(header[which], MSG_SIZ, "%s", columnHeader);
-          if(appData.ponderNextMove && lastLine[which][0]) {
-            InsertIntoMemo( which, lastLine[which], 0 );
-            InsertIntoMemo( which, "\n", 0 );
-          }
-          InsertIntoMemo( which, header[which], 0);
-        }
-    }
-
-    if(ed.pv && ed.pv[0] && ParseOneMove(ed.pv, currentMove, &moveType, &ff, &rf, &ft, &rt, &pc))
-       ed.moveKey = (ff<<24 | rf << 16 | ft << 8 | rt) ^ pc*87161;
-    else ed.moveKey = ed.nodes; // kludge to get unique key unlikely to match any move
-
-    /* Update */
-    lastDepth[which] = depth == 1 && ed.nodes == 0 ? 0 : depth; // [HGM] info-line kudge
-    if(endPV < 0) lastForwardMostMove[which] = forwardMostMove; // not during PV walk!
-
-    UpdateControls( &ed );
-}
-
-#define ENGINE_COLOR_WHITE      'w'
-#define ENGINE_COLOR_BLACK      'b'
-#define ENGINE_COLOR_UNKNOWN    ' '
-
-// pure back end
-static char
-GetEngineColor (int which)
-{
-    char result = ENGINE_COLOR_UNKNOWN;
-
-    if( which == 0 || which == 1 ) {
-        ChessProgramState * cps;
-
-        switch (gameMode) {
-        case MachinePlaysBlack:
-        case IcsPlayingBlack:
-            result = ENGINE_COLOR_BLACK;
-            break;
-        case MachinePlaysWhite:
-        case IcsPlayingWhite:
-            result = ENGINE_COLOR_WHITE;
-            break;
-        case AnalyzeMode:
-        case AnalyzeFile:
-            result = WhiteOnMove(forwardMostMove) ? ENGINE_COLOR_WHITE : ENGINE_COLOR_BLACK;
-            break;
-        case TwoMachinesPlay:
-            cps = (which == 0) ? &first : &second;
-            result = cps->twoMachinesColor[0];
-            result = result == 'w' ? ENGINE_COLOR_WHITE : ENGINE_COLOR_BLACK;
-            break;
-        default: ; // does not happen, but suppresses pedantic warnings
-        }
-    }
-
-    return result;
-}
-
-// pure back end
-static char
-GetActiveEngineColor ()
-{
-    char result = ENGINE_COLOR_UNKNOWN;
-
-    if( gameMode == TwoMachinesPlay ) {
-        result = WhiteOnMove(forwardMostMove) ? ENGINE_COLOR_WHITE : ENGINE_COLOR_BLACK;
-    }
-
-    return result;
-}
-
-// pure back end
-static int
-IsEnginePondering (int which)
-{
-    int result = FALSE;
-
-    switch (gameMode) {
-    case MachinePlaysBlack:
-    case IcsPlayingBlack:
-        if( WhiteOnMove(forwardMostMove) ) result = TRUE;
-        break;
-    case MachinePlaysWhite:
-    case IcsPlayingWhite:
-        if( ! WhiteOnMove(forwardMostMove) ) result = TRUE;
-        break;
-    case TwoMachinesPlay:
-        if( GetActiveEngineColor() != ENGINE_COLOR_UNKNOWN ) {
-            if( GetEngineColor( which ) != GetActiveEngineColor() ) result = TRUE;
-        }
-        break;
-    default: ; // does not happen, but suppresses pedantic warnings
-    }
-
-    return result;
-}
-
-// back end
-static void
-SetDisplayMode (int mode)
-{
-    if( windowMode != mode ) {
-        windowMode = mode;
-
-        ResizeWindowControls( mode );
-    }
-}
-
-// pure back end
-static void
-VerifyDisplayMode ()
-{
-    int mode;
-
-    /* Get proper mode for current game */
-    switch( gameMode ) {
-    case IcsObserving:    // [HGM] ICS analyze
-       if(!appData.icsEngineAnalyze) return;
-    case AnalyzeFile:
-    case MachinePlaysWhite:
-    case MachinePlaysBlack:
-        mode = 0;
-        break;
-    case AnalyzeMode:
-        mode = second.analyzing;
-        break;
-    case IcsPlayingWhite:
-    case IcsPlayingBlack:
-        mode = appData.zippyPlay && opponentKibitzes; // [HGM] kibitz
-        break;
-    case TwoMachinesPlay:
-        mode = 1;
-        break;
-    default:
-        /* Do not change */
-        return;
-    }
-
-    SetDisplayMode( mode );
-}
-
-// back end. Determine what icon to set in the color-icon field, and print it
-void
-SetEngineColorIcon (int which)
-{
-    char color = GetEngineColor(which);
-    int nicon = 0;
-
-    if( color == ENGINE_COLOR_BLACK )
-        nicon = nColorBlack;
-    else if( color == ENGINE_COLOR_WHITE )
-        nicon = nColorWhite;
-    else
-        nicon = nColorUnknown;
-
-    SetIcon( which, nColorIcon, nicon );
-}
-
-#define MAX_NAME_LENGTH 32
-
-// [HGM] multivar: sort Thinking Output within one depth on score
-
-static int
-MateFlip (int n)
-{   // map mate-score to monotonous scale, so sorting compares them correctly
-    if(n >=  MATE_SCORE) return 2*MATE_SCORE - n;
-    if(n <= -MATE_SCORE) return -2*MATE_SCORE - n;
-    return n;
-}
-
-static int
-InsertionPoint (int len, EngineOutputData *ed)
-{
-       int i, offs = 0, newScore = ed->score, n = ed->which;
-       char failType;
-
-       if(ed->nodes == 0 && ed->score == 0 && ed->time == 0)
-               newScore = 1e6; // info lines inserted on top
-       if(ed->depth != curDepth[n]) { // depth has changed
-               curDepth[n] = ed->depth;
-               nrVariations[n] = 0; // throw away everything we had
-       }
-       i = strlen(ed->pv); if(i > 0) i--;
-       failType = ed->pv[i];
-       if(failType != '?' && failType != '!') failType = ' ';
-       // loop through all lines. Note even / odd used for different panes
-       for(i=nrVariations[n]-2; i>=0; i-=2) {
-               // put new item behind those we haven't looked at
-               offs = textEnd[i+n];
-               textEnd[i+n+2] = offs + len;
-               scores[i+n+2] = newScore;
-               keys[i+n+2] = ed->moveKey;
-               fail[i+n+2] = failType;
-               if(ed->moveKey != keys[i+n] && // same move always tops previous one (as a higher score must be a fail low)
-                  MateFlip(newScore) < MateFlip(scores[i+n]) && fail[i+n] == ' ') break;
-               // if it had higher score as previous, move previous in stead
-               scores[i+n+2] = ed->moveKey == keys[i+n] ? newScore : scores[i+n]; // correct scores of fail-low/high searches
-               textEnd[i+n+2] = textEnd[i+n] + len;
-               keys[i+n+2] = keys[i+n];
-               fail[i+n+2] = fail[i+n];
-       }
-       if(i<0) {
-               offs = 0;
-               textEnd[n] = offs + len;
-               scores[n] = newScore;
-               keys[n] = ed->moveKey;
-               fail[n] = failType;
-       }
-       nrVariations[n] += 2;
-      return offs + strlen(header[ed->which]);
-}
-
-static char spaces[] = "            "; // [HGM] align: spaces for padding
-
-static void
-Format(char *buf, int val)
-{ // [HGM] tbhits: print a positive integer with trailing whitespace to give it fixed width
-        if( val < 1000000 ) {
-            int h = val, i=0;
-            while(h > 0) h /= 10, i++;
-            snprintf( buf, 24, "%d%s\t", val, spaces + 2*i);
-        }
-        else {
-            char unit = 'M';
-            if(val >= 1e9) val /= 1e3, unit = 'G';
-            snprintf( buf, 24, "%.*f%c%s\t", 1 + (val < 1e7), val/1e6, unit, spaces + 10 + 2*(val >= 1e8));
-        }
-}
-
-// pure back end, now SetWindowText is called via wrapper DoSetWindowText
-static void
-UpdateControls (EngineOutputData *ed)
-{
-//    int isPondering = FALSE;
-
-    char s_label[MAX_NAME_LENGTH + 32];
-    int h;
-    char * name = ed->name;
-    char *q, *pvStart = ed->pv;
-
-    /* Label */
-    if( name == 0 || *name == '\0' ) {
-        name = "?";
-    }
-
-    strncpy( s_label, name, MAX_NAME_LENGTH );
-    s_label[ MAX_NAME_LENGTH-1 ] = '\0';
-
-    if(pvStart) { // [HGM] tbhits: plit up old PV into extra infos and real PV
-        while(strchr(pvStart, '\t')) { // locate last tab before non-int (real PV starts after that)
-            for(q=pvStart; isdigit(*q) || *q == ' '; q++);
-            if(*q != '\t') break;
-            pvStart = q + 1;
-        }
-    }
-
-#ifdef SHOW_PONDERING
-    if( IsEnginePondering( ed->which ) ) {
-        char buf[12];
-
-        buf[0] = '\0';
-
-        if( ed->hint != 0 && *ed->hint != '\0' ) {
-            strncpy( buf, ed->hint, sizeof(buf) );
-            buf[sizeof(buf)-1] = '\0';
-        }
-        else if( pvStart != 0 && *pvStart != '\0' ) {
-            char * sep;
-            int buflen = sizeof(buf);
-
-            sep = strchr( pvStart, ' ' );
-            if( sep != NULL ) {
-                buflen = sep - pvStart + 1;
-                if( buflen > sizeof(buf) ) buflen = sizeof(buf);
-            }
-
-            strncpy( buf, pvStart, buflen );
-            buf[ buflen-1 ] = '\0';
-        }
-
-        SetEngineState( ed->which, STATE_PONDERING, buf );
-    }
-    else if( gameMode == TwoMachinesPlay ) {
-        SetEngineState( ed->which, STATE_THINKING, "" );
-    }
-    else if( gameMode == AnalyzeMode || gameMode == AnalyzeFile
-         || (gameMode == IcsObserving && appData.icsEngineAnalyze)) { // [HGM] ICS-analyze
-        char buf[64];
-        int time_secs = ed->time / 100;
-        int time_mins = time_secs / 60;
-
-        buf[0] = '\0';
-
-        if( ed->an_move_index != 0 && ed->an_move_count != 0 && *ed->hint != '\0' ) {
-            char mov[16];
-
-            strncpy( mov, ed->hint, sizeof(mov) );
-            mov[ sizeof(mov)-1 ] = '\0';
-
-            snprintf( buf, sizeof(buf)/sizeof(buf[0]), "[%d] %d/%d: %s [%02d:%02d:%02d]", ed->depth, ed->an_move_index,
-                       ed->an_move_count, mov, time_mins / 60, time_mins % 60, time_secs % 60 );
-        }
-
-        SetEngineState( ed->which, STATE_ANALYZING, buf );
-    }
-    else {
-        SetEngineState( ed->which, STATE_IDLE, "" );
-    }
-#endif
-
-    DoSetWindowText( ed->which, nLabel, s_label );
-
-    s_label[0] = '\0';
-
-    if( ed->time > 0 && ed->nodes > 0 ) {
-        unsigned long nps_100 = ed->nodes / ed->time;
-
-        if( nps_100 < 100000 ) {
-         snprintf( s_label, sizeof(s_label)/sizeof(s_label[0]), "%s: %lu", _("NPS"), nps_100 * 100 );
-        }
-        else {
-         snprintf( s_label, sizeof(s_label)/sizeof(s_label[0]), "%s: %.1fk", _("NPS"), nps_100 / 10.0 );
-        }
-    }
-
-    DoSetWindowText( ed->which, nLabelNPS, s_label );
-
-    /* Memo */
-    if( pvStart != 0 && *pvStart != '\0' ) {
-        char s_nodes[24];
-        char s_score[16];
-        char s_time[24];
-        char s_hits[24];
-        char s_seld[24];
-        char s_knps[24];
-        char buf[256], fail;
-        int buflen, hits, i, params[5], extra;
-        int time_secs = ed->time / 100;
-        int time_cent = ed->time % 100;
-
-        /* Nodes */
-        if( ed->nodes < 1000000 ) {
-            int h = ed->nodes, i=0;
-            while(h > 0) h /= 10, i++; // [HGM] align: count digits; pad with 2 spaces for every missing digit
-            snprintf( s_nodes, sizeof(s_nodes)/sizeof(s_nodes[0]), u64Display "%s\t", ed->nodes, spaces + 2*i);
-        }
-        else {
-            double x = u64ToDouble(ed->nodes);
-            char unit = 'M';
-            if(x >= 1e9) x /= 1e3, unit = 'G';
-            snprintf( s_nodes, sizeof(s_nodes)/sizeof(s_nodes[0]), "%.*f%c%s\t", 1 + (x < 1e7), x / 1e6,
-                      unit, spaces + 10 + 2*(ed->nodes >= 1e8));
-        }
-
-        /* TB Hits etc. */
-        for(i=hits=0; i<5; i++) params[i] = 0;
-//fprintf(stderr, "%s\n%s\n", ed->pv, pvStart);
-        if(pvStart != ed->pv) { // check if numbers before PV
-            strncpy(buf, ed->pv, 256); buf[pvStart - ed->pv] = NULLCHAR;
-            extra = sscanf(buf, "%d %d %d %d %d", params, params+1, params+2, params+3, params+4);
-//fprintf(stderr, "extra=%d len=%d\n", extra, pvStart - ed->pv);
-            if(extra) hits = params[extra-1], params[extra-1] = 0; // last one is tbhits
-        }
-        Format(s_seld, params[0]); Format(s_knps, params[1]); Format(s_hits, hits); 
-
-        if(*ed->pv) fail = ed->pv[strlen(ed->pv)-1]; else fail = ' ';
-       if(fail != '?' && fail != '!') fail = ' ';
-
-        /* Score */
-        h = ((gameMode == AnalyzeMode && appData.whitePOV || appData.scoreWhite) && !WhiteOnMove(currentMove) ? -1 : 1) * ed->score;
-        if( h == 0 ) {
-         snprintf( s_score, sizeof(s_score)/sizeof(s_score[0]), "  0.00%c\t", fail );
-        } else
-       if( h >= MATE_SCORE) snprintf(s_score, 16, "  %s#%d%c\t", ( h > MATE_SCORE+9 ? "" : "  "),  h - MATE_SCORE, fail ); else
-       if(-h >= MATE_SCORE) snprintf(s_score, 16, " %s#-%d%c\t", (-h > MATE_SCORE+9 ? "" : "  "), -h - MATE_SCORE, fail ); else
-        if( h > 0 ) {
-         snprintf( s_score, sizeof(s_score)/sizeof(s_score[0]), "+%.2f%c\t", h / 100.0, fail );
-        }
-        else {
-         snprintf( s_score, sizeof(s_score)/sizeof(s_score[0]), " %.2f%c\t", h / 100.0, fail );
-        }
-
-        /* Time */
-        if(time_secs >= 3600)
-            snprintf( s_time, sizeof(s_time)/sizeof(s_time[0]), "%d:%02d:%02d\t", time_secs / 3600, (time_secs / 60) % 60, time_secs % 60 );
-        else
-        snprintf( s_time, sizeof(s_time)/sizeof(s_time[0]), "%d:%02d.%02d\t", time_secs / 60, time_secs % 60, time_cent );
-
-        if(columnMask & 2) s_score[0] = NULLCHAR; // [HGM] hide: erase columns the user has hidden
-        if(columnMask & 4) s_nodes[0] = NULLCHAR;
-        if(columnMask & 8) s_time[0]  = NULLCHAR;
-        if(columnMask & 16) s_hits[0]  = NULLCHAR;
-        if(columnMask & 32) s_knps[0]  = NULLCHAR;
-        if(columnMask & 64) s_seld[0]  = NULLCHAR;
-
-        /* Put all together... */
-       if(ed->nodes == 0 && ed->score == 0 && ed->time == 0)
-         snprintf( buf, sizeof(buf)/sizeof(buf[0]), "%3d\t", ed->depth );
-       else
-         snprintf( buf, sizeof(buf)/sizeof(buf[0]), "%3d\t%s%s%s%s%s%s", ed->depth, s_score, s_nodes, s_time, s_hits, s_knps, s_seld );
-
-        /* Add PV */
-        buflen = strlen(buf);
-
-        strncpy( buf + buflen, pvStart, sizeof(buf) - buflen );
-
-        buf[ sizeof(buf) - 3 ] = '\0';
-
-        strcat( buf + buflen, "\r\n" );
-
-        /* Update memo */
-        InsertIntoMemo( ed->which, buf, InsertionPoint(strlen(buf), ed) );
-        strncpy(lastLine[ed->which], buf, MSG_SIZ);
-    }
-
-    /* Colors */
-    SetEngineColorIcon( ed->which );
-}
-
-static char *titles[] = { "score\t", "nodes\t", "time\t", "tbhits\t", "knps\t", "seldep\t" };
-
-void
-Collapse(int n)
-{   // handle click on column headers, to hide / show them
-    int i, j, nr=0, m=~columnMask, Ncol=7;
-    for(i=0; columnHeader[i] && i<n; i++) nr += (columnHeader[i] == '\t');
-    if(!nr) return; // depth always shown, so clicks on it ignored
-    for(i=j=0; i<Ncol; i++) if(m & 1<<i) j++; // count hidden columns
-    if(nr < j) { // shown column clicked: hide it
-       for(i=j=0; i<Ncol; i++) if(m & 1<<i && j++ == nr) break;
-       columnMask |= 1<<i;
-    } else { // hidden column clicked: show it
-       m = ~m; nr -= j;
-       for(i=j=0; i<Ncol; i++) if(m & 1<<i && j++ == nr) break;
-       columnMask &= ~(1<<i);
-    }
-    // create new header line
-    strcpy(columnHeader, "dep\t");
-    m = ~columnMask;
-    for(i=j=1; i<Ncol; i++) if(m & 1<<i) strcat(columnHeader, titles[i-1]), j++;
-    if(j != Ncol) { // list hidden columns, so user ca click them
-       m = ~m; strcat(columnHeader, "(not shown:  ");
-       for(i=1; i<Ncol; i++) if(m & 1<<i) strcat(columnHeader, titles[i-1]);
-       strcat(columnHeader, ")");
-    }
-    strcat(columnHeader, "\n");
-}
-
-// [HGM] kibitz: write kibitz line; split window for it if necessary
-void
-OutputKibitz (int window, char *text)
-{
-       static int currentLineEnd[2];
-       int where = 0;
-       if(!EngineOutputIsUp()) return;
-       if(!opponentKibitzes && !appData.epd) { // on first kibitz of game, clear memos
-           DoClearMemo(1); currentLineEnd[1] = 0;
-           if(gameMode == IcsObserving) { DoClearMemo(0); currentLineEnd[0] = 0; }
-       }
-       opponentKibitzes = TRUE; // this causes split window DisplayMode in ICS modes.
-       VerifyDisplayMode();
-       strncpy(text+strlen(text)-1, "\r\n", 4); // to not lose line breaks on copying
-       if(gameMode == IcsObserving) {
-           DoSetWindowText(0, nLabel, gameInfo.white);
-           SetIcon( 0, nColorIcon,  nColorWhite);
-           SetIcon( 0, nStateIcon,  nClear);
-       }
-       DoSetWindowText(1, nLabel, gameMode == IcsPlayingBlack ? gameInfo.white : gameInfo.black); // opponent name
-       SetIcon( 1, nColorIcon,  gameMode == IcsPlayingBlack ? nColorWhite : nColorBlack);
-       SetIcon( 1, nStateIcon,  nClear);
-       if(strstr(text, "\\  ") == text) where = currentLineEnd[window-1]; // continuation line
-//if(appData.debugMode) fprintf(debugFP, "insert '%s' at %d (end = %d,%d)\n", text, where, currentLineEnd[0], currentLineEnd[1]);
-       InsertIntoMemo(window-1, text, where); // [HGM] multivar: always at top
-       currentLineEnd[window-1] = where + strlen(text);
-}
diff --git a/engineoutput.h b/engineoutput.h
deleted file mode 100644 (file)
index 21bb6d1..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * wengineo.h -- Clipboard routines for WinBoard
- *
- * Copyright 2000, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free
- * Software Foundation, Inc.
- *
- * Enhancements Copyright 2005 Alessandro Scotti
- *
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-// [HGM] define numbers to indicate icons, for referring to them in platform-independent way
-#define nColorBlack   1
-#define nColorWhite   2
-#define nColorUnknown 3
-#define nClear        4
-#define nPondering    5
-#define nThinking     6
-#define nAnalyzing    7
-
-// [HGM] same for output fields (note that there are two of each type, one per color)
-#define nColorIcon 1
-#define nLabel     2
-#define nStateIcon 3
-#define nStateData 4
-#define nLabelNPS  5
-#define nMemo      6 /* must match the ranking of the TextBox in following option list! */
-
-#define STRIDE 7 /* must match the number of option in one pane! */
-#define MEMO  (nMemo-1)
-
-/* Module variables */
-#define H_MARGIN            2
-#define V_MARGIN            2
-#define LABEL_V_DISTANCE    1   /* Distance between label and memo */
-#define SPLITTER_SIZE       4   /* Distance between first memo and second label */
-
-#define ICON_SIZE           14
-
-enum ENGINE_STATE { STATE_UNKNOWN, STATE_THINKING, STATE_IDLE, STATE_PONDERING, STATE_ANALYZING };
-
-extern int  windowMode;
-extern char exclusionHeader[];
-extern int highTextStart[2], highTextEnd[2], endPV;
-
-// back-end called by front-end
-void SetEngineState( int which, enum ENGINE_STATE state, char * state_data );
-
-// front-end called by back-end
-void SetEngineColorIcon( int which );
-void SetIcon( int which, int field, int nIcon );
-void DoSetWindowText(int which, int field, char *s_label);
-void InsertIntoMemo( int which, char * text, int where );
-void DoClearMemo(int which);
-void ResizeWindowControls( int mode );
-int  EngineOutputDialogExists();
-void SetEngineOutputTitle( char *title );
-void Collapse P((int colNr));
-void InitEngineOutput P((Option *opt, Option *memo2)); // XB only
-void DrawWidgetIcon P((Option *opt, int nIcon)); // XB only
diff --git a/evalgraph.c b/evalgraph.c
deleted file mode 100644 (file)
index 1a8bd07..0000000
+++ /dev/null
@@ -1,384 +0,0 @@
-/*
- * evalgraph.c - Evaluation graph back-end part
- *
- * Author: Alessandro Scotti (Dec 2005)
- *
- * Copyright 2005 Alessandro Scotti
- *
- * Enhancments Copyright 2009, 2010, 2011, 2012, 2013, 2014, 2015,
- * 2016 Free Software Foundation, Inc.
- *
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-// code refactored by HGM to obtain front-end / back-end separation
-
-#include "config.h"
-
-#include <stdio.h>
-
-#if STDC_HEADERS
-# include <stdlib.h>
-# include <string.h>
-#else /* not STDC_HEADERS */
-# if HAVE_STRING_H
-#  include <string.h>
-# else /* not HAVE_STRING_H */
-#  include <strings.h>
-# endif /* not HAVE_STRING_H */
-#endif /* not STDC_HEADERS */
-
-#include "common.h"
-#include "frontend.h"
-#include "backend.h"
-#include "evalgraph.h"
-
-/* Module globals */
-ChessProgramStats_Move * currPvInfo;
-int currFirst = 0;
-int currLast = 0;
-int currCurrent = -1;
-int range = 1;
-int differentialView;
-
-int nWidthPB = 0;
-int nHeightPB = 0;
-
-int MarginX = 18;
-int MarginW = 4;
-int MarginH = 4;
-
-// back-end
-static void
-DrawLine (int x1, int y1, int x2, int y2, int penType)
-{
-    DrawSegment( x1, y1, NULL, NULL, PEN_NONE );
-    DrawSegment( x2, y2, NULL, NULL, penType );
-}
-
-// back-end
-static void
-DrawLineEx (int x1, int y1, int x2, int y2, int penType)
-{
-    int savX, savY;
-    DrawSegment( x1, y1, &savX, &savY, PEN_NONE );
-    DrawSegment( x2, y2, NULL, NULL, penType );
-    DrawSegment( savX, savY, NULL, NULL, PEN_NONE );
-}
-
-// back-end
-static int
-GetPvScore (int index)
-{
-    int score = currPvInfo[ index ].score;
-
-    if(differentialView) score = index < currLast-1 ? -currPvInfo[ index+1 ].score - score : 0;
-    if( index & 1 ) score = -score; /* Flip score for black */
-
-    return score;
-}
-
-char *
-MakeEvalTitle (char *title)
-{
-    int score, depth;
-    static char buf[MSG_SIZ];
-
-    if( currCurrent <0 ) return title; // currCurrent = -1 crashed WB on start without ini file!
-    score = currPvInfo[ currCurrent ].score;
-    depth = currPvInfo[ currCurrent ].depth;
-
-    if( depth <=0 ) return title;
-    if( currCurrent & 1 ) score = -score; /* Flip score for black */
-    snprintf(buf, MSG_SIZ, "%s {%d: %s%.2f/%-2d %d}", title, currCurrent/2+1,
-                               score>0 ? "+" : " ", score/100., depth, (currPvInfo[currCurrent].time+50)/100);
-
-    return buf;
-}
-
-// back-end
-/*
-    For a centipawn value, this function returns the height of the corresponding
-    histogram, centered on the reference axis.
-
-    Note: height can be negative!
-*/
-static int
-GetValueY (int value)
-{
-    if( value < -range*700 ) value = -range*700;
-    if( value > +range*700 ) value = +range*700;
-    if(value > 100*range)  value += (appData.zoom - 1)*100*range; else
-    if(value < -100*range) value -= (appData.zoom - 1)*100*range; else
-       value *= appData.zoom;
-    return (nHeightPB / 2) - (int)(value * (nHeightPB - 2*MarginH) / ((1200. + 200.*appData.zoom)*range));
-}
-
-// the brush selection is made part of the DrawLine, by passing a style argument
-// the wrapper for doing the text output makes this back-end
-static void
-DrawAxisSegmentHoriz (int value, Boolean drawValue)
-{
-    int y = GetValueY( range*value*100 );
-
-    if( drawValue ) {
-        char buf[MSG_SIZ], *b = buf;
-
-        if( value > 0 ) *b++ = '+';
-       sprintf(b, "%d", range*value);
-
-       DrawEvalText(buf, strlen(buf), y);
-    }
-    // [HGM] counts on DrawEvalText to have select transparent background for dotted line!
-    DrawLine( MarginX, y, MarginX + MarginW, y, PEN_BLACK ); // Y-axis tick marks
-    DrawLine( MarginX + MarginW, y, nWidthPB - MarginW, y, PEN_DOTTED ); // hor grid
-}
-
-// The DrawLines again must select their own brush.
-// the initial brush selection is useless? BkMode needed for dotted line and text
-static void
-DrawAxis ()
-{
-    int cy = nHeightPB / 2, space = nHeightPB/(6 + appData.zoom);
-
-    DrawAxisSegmentHoriz( +5, TRUE );
-    DrawAxisSegmentHoriz( +3, space >= 20 );
-    DrawAxisSegmentHoriz( +1, space >= 20 && space*appData.zoom >= 40 );
-    DrawAxisSegmentHoriz(  0, TRUE );
-    DrawAxisSegmentHoriz( -1, space >= 20 && space*appData.zoom >= 40 );
-    DrawAxisSegmentHoriz( -3, space >= 20 );
-    DrawAxisSegmentHoriz( -5, TRUE );
-
-    DrawLine( MarginX + MarginW, cy, nWidthPB - MarginW, cy, PEN_BLACK ); // x-axis
-    DrawLine( MarginX + MarginW, MarginH, MarginX + MarginW, nHeightPB - MarginH, PEN_BLACK ); // y-axis
-}
-
-// back-end
-static void
-DrawHistogram (int x, int y, int width, int value, int side)
-{
-    int left, top, right, bottom;
-
-    if( value > -appData.evalThreshold*range && value < +appData.evalThreshold*range ) return;
-
-    left = x;
-    right = left + width + 1;
-
-    if( value > 0 ) {
-        top = GetValueY( value );
-        bottom = y+1;
-    }
-    else {
-        top = y;
-        bottom = GetValueY( value ) + 1;
-    }
-
-
-    if( width == MIN_HIST_WIDTH ) {
-        right--;
-        DrawRectangle( left, top, right, bottom, side, FILLED );
-    }
-    else {
-        DrawRectangle( left, top, right, bottom, side, OPEN );
-    }
-}
-
-// back-end
-static void
-DrawSeparator (int index, int x)
-{
-    if( index > 0 ) {
-        if( index == currCurrent ) {
-            DrawLineEx( x, MarginH, x, nHeightPB - MarginH, PEN_BLUEDOTTED );
-        }
-        else if( (index % 20) == 0 ) {
-            DrawLineEx( x, MarginH, x, nHeightPB - MarginH, PEN_DOTTED );
-        }
-    }
-}
-
-// made back-end by replacing MoveToEx and LineTo by DrawSegment
-/* Actually draw histogram as a diagram, cause there's too much data */
-static void
-DrawHistogramAsDiagram (int cy, int paint_width, int hist_count)
-{
-    double step;
-    int i;
-
-    /* Rescale the graph every few moves (as opposed to every move) */
-    hist_count -= hist_count % 8;
-    hist_count += 8;
-    hist_count /= 2;
-
-    step = (double) paint_width / (hist_count + 1);
-
-    for( i=0; i<2; i++ ) {
-        int index = currFirst;
-        int side = (currCurrent + i + 1) & 1; /* Draw current side last */
-        double x = MarginX + MarginW;
-
-        if( (index & 1) != side ) {
-            x += step / 2;
-            index++;
-        }
-
-        DrawSegment( (int) x, cy, NULL, NULL, PEN_NONE );
-
-        index += 2;
-
-        while( index < currLast ) {
-            x += step;
-
-            DrawSeparator( index, (int) x );
-
-            /* Extend line up to current point */
-            if( currPvInfo[index].depth > 0 ) {
-             DrawSegment((int) x, GetValueY( GetPvScore(index) ), NULL, NULL, (side==0 ? PEN_BOLDWHITE: PEN_BOLDBLACK) );
-            }
-
-            index += 2;
-        }
-    }
-}
-
-// back-end, delete pen selection
-static void
-DrawHistogramFull (int cy, int hist_width, int hist_count)
-{
-    int i;
-
-//    SelectObject( hdcPB, GetStockObject(BLACK_PEN) );
-
-    for( i=0; i<hist_count; i++ ) {
-        int index = currFirst + i;
-        int x = MarginX + MarginW + index * hist_width;
-
-        /* Draw a separator every 10 moves */
-        DrawSeparator( index, x );
-
-        /* Draw histogram */
-        if( currPvInfo[i].depth > 0 ) {
-            DrawHistogram( x, cy, hist_width, GetPvScore(index), index & 1 );
-        }
-    }
-}
-
-typedef struct {
-    int cy;
-    int hist_width;
-    int hist_count;
-    int paint_width;
-} VisualizationData;
-
-// back-end
-static Boolean
-InitVisualization (VisualizationData *vd)
-{
-    Boolean result = FALSE;
-
-    vd->cy = nHeightPB / 2;
-    vd->hist_width = MIN_HIST_WIDTH;
-    vd->hist_count = currLast - currFirst;
-    vd->paint_width = nWidthPB - MarginX - 2*MarginW;
-
-    if( vd->hist_count > 0 ) {
-        result = TRUE;
-
-        /* Compute width */
-        vd->hist_width = vd->paint_width / vd->hist_count;
-
-        if( vd->hist_width > MAX_HIST_WIDTH ) vd->hist_width = MAX_HIST_WIDTH;
-
-        vd->hist_width -= vd->hist_width % 2;
-    }
-
-    return result;
-}
-
-// back-end
-static void
-DrawHistograms ()
-{
-    VisualizationData vd;
-    int i; double step = 1;
-
-    if( InitVisualization( &vd ) ) {
-        if( vd.hist_width < MIN_HIST_WIDTH ) {
-            DrawHistogramAsDiagram( vd.cy, vd.paint_width, vd.hist_count );
-            step = 0.5*vd.paint_width / (((vd.hist_count | 7) + 1)/2 + 1.);
-        }
-        else {
-            DrawHistogramFull( vd.cy, step = vd.hist_width, vd.hist_count );
-        }
-    }
-    if(!differentialView) return;
-    differentialView = 0;
-    DrawSegment( MarginX + MarginW, vd.cy, NULL, NULL, PEN_NONE );
-    for( i=0; i<vd.hist_count; i++ ) {
-        int index = currFirst + i;
-        int x = MarginX + MarginW + index * step + step/2;
-        DrawSegment((int) x, GetValueY( GetPvScore(index) ), NULL, NULL, PEN_ANY );
-    }
-    differentialView = 1;
-}
-
-// back-end
-int
-GetMoveIndexFromPoint (int x, int y)
-{
-    int result = -1;
-    int start_x = MarginX + MarginW;
-    VisualizationData vd;
-
-    if( x >= start_x && InitVisualization( &vd ) ) {
-        /* Almost an hack here... we duplicate some of the paint logic */
-        if( vd.hist_width < MIN_HIST_WIDTH ) {
-            double step;
-
-            vd.hist_count -= vd.hist_count % 8;
-            vd.hist_count += 8;
-            vd.hist_count /= 2;
-
-            step = (double) vd.paint_width / (vd.hist_count + 1);
-            step /= 2;
-
-            result = (int) (0.5 + (double) (x - start_x) / step);
-        }
-        else {
-            result = (x - start_x) / vd.hist_width;
-        }
-    }
-
-    if( result >= currLast ) {
-        result = -1;
-    }
-
-    return result;
-}
-
-// init and display part split of so they can be moved to front end
-void
-PaintEvalGraph (void)
-{
-    VariantClass v = gameInfo.variant;
-    range = (gameInfo.holdingsWidth && v != VariantSuper && v != VariantGreat && v != VariantSChess) ? 2 : 1; // [HGM] double range in drop games
-    /* Draw */
-    DrawRectangle(0, 0, nWidthPB, nHeightPB, 2, FILLED);
-    DrawAxis();
-    DrawHistograms();
-}
diff --git a/evalgraph.h b/evalgraph.h
deleted file mode 100644 (file)
index f4b4f92..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * evalgraph.h -- Evaluation Graph window
- *
- * Copyright 2000, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free
- * Software Foundation, Inc.
- *
- * Enhancements Copyright 2005 Alessandro Scotti
- *
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.
- */
-
-#define MIN_HIST_WIDTH  4
-#define MAX_HIST_WIDTH  10
-
-typedef enum { PEN_NONE, PEN_BLACK, PEN_DOTTED, PEN_BLUEDOTTED, PEN_BOLDWHITE, PEN_BOLDBLACK, PEN_BACKGD, PEN_ANY } PenType;
-
-#define FILLED 1
-#define OPEN   0
-
-/* Module globals */
-ChessProgramStats_Move * currPvInfo;
-extern int currFirst;
-extern int currLast;
-extern int currCurrent;
-extern int differentialView;
-
-extern int nWidthPB;
-extern int nHeightPB;
-
-extern int MarginX;
-extern int MarginW;
-extern int MarginH;
-
-// calls from back-end part into front-end part
-void DrawSegment( int x, int y, int *lastX, int *lastY, int p );
-void DrawRectangle( int left, int top, int right, int bottom, int side, int style );
-void DrawEvalText(char *buf, int cbBuf, int y);
-void EvalGraphSet P(( int first, int last, int current, ChessProgramStats_Move * pvInfo ));
-
-// calls of front-end part into back-end part
-extern int GetMoveIndexFromPoint( int x, int y );
-extern void PaintEvalGraph( void );
-extern char *MakeEvalTitle( char *title );
diff --git a/frontend.h b/frontend.h
deleted file mode 100644 (file)
index b06484f..0000000
+++ /dev/null
@@ -1,252 +0,0 @@
-/*
- * frontend.h -- Interface exported by all XBoard front ends
- *
- * Copyright 1991 by Digital Equipment Corporation, Maynard,
- * Massachusetts.
- *
- * Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006,
- * 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free
- * Software Foundation, Inc.
- *
- * Enhancements Copyright 2005 Alessandro Scotti
- *
- * The following terms apply to Digital Equipment Corporation's copyright
- * interest in XBoard:
- * ------------------------------------------------------------------------
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notice appear in all copies and that
- * both that copyright notice and this permission notice appear in
- * supporting documentation, and that the name of Digital not be
- * used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- *
- * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- * ------------------------------------------------------------------------
- *
- * The following terms apply to the enhanced version of XBoard
- * distributed by the Free Software Foundation:
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-#ifndef XB_FRONTEND
-#define XB_FRONTEND
-
-#include <stdio.h>
-
-char *T_ P((char *s));
-void ModeHighlight P((void));
-void SetICSMode P((void));
-void SetGNUMode P((void));
-void SetNCPMode P((void));
-void SetCmailMode P((void));
-void SetTrainingModeOn P((void));
-void SetTrainingModeOff P((void));
-void SetUserThinkingEnables P((void));
-void SetMachineThinkingEnables P((void));
-void DisplayTitle P((String title));
-void DisplayMessage P((String message, String extMessage));
-void DisplayMoveError P((String message));
-
-void DisplayNote P((String message));
-
-void DisplayInformation P((String message));
-void AskQuestion P((String title, String question, String replyPrefix,
-                   ProcRef pr));
-void DisplayIcsInteractionTitle P((String title));
-void ParseArgsFromString P((char *p));
-void ParseArgsFromFile P((FILE *f));
-void DrawPosition P((int fullRedraw, Board board));
-void ResetFrontEnd P((void));
-void NotifyFrontendLogin P((void));
-void CommentPopUp P((String title, String comment));
-void CommentPopDown P((void));
-void EditCommentPopUp P((int index, String title, String text));
-void ErrorPopDown P((void));
-int  EventToSquare P((int x, int limit));
-void DrawSeekAxis P(( int x, int y, int xTo, int yTo ));
-void DrawSeekBackground P(( int left, int top, int right, int bottom ));
-void DrawSeekText P((char *buf, int x, int y));
-void DrawSeekDot P((int x, int y, int color));
-void PopUpMoveDialog P((char first));
-
-void RingBell P((void));
-int  Roar P((void));
-void PlayIcsWinSound P((void));
-void PlayIcsLossSound P((void));
-void PlayIcsDrawSound P((void));
-void PlayIcsUnfinishedSound P((void));
-void PlayAlarmSound P((void));
-void PlayTellSound P((void));
-int  PlaySoundFile P((char *name));
-void PlaySoundByColor P((void));
-void EchoOn P((void));
-void EchoOff P((void));
-void Raw P((void));
-void Colorize P((ColorClass cc, int continuation));
-char *InterpretFileName P((char *name, char *dir));
-void DoSleep P((int n));
-void DoEvents P((void));
-
-char *UserName P((void));
-char *HostName P((void));
-
-int ClockTimerRunning P((void));
-int StopClockTimer P((void));
-void StartClockTimer P((long millisec));
-void DisplayWhiteClock P((long timeRemaining, int highlight));
-void DisplayBlackClock P((long timeRemaining, int highlight));
-void UpdateLogos P((int display));
-
-int LoadGameTimerRunning P((void));
-int StopLoadGameTimer P((void));
-void StartLoadGameTimer P((long millisec));
-void AutoSaveGame P((void));
-
-void ScheduleDelayedEvent P((DelayedEventCallback cb, long millisec));
-DelayedEventCallback GetDelayedEvent P((void));
-void CancelDelayedEvent P((void));
-// [HGM] mouse: next six used by mouse handler, which was moved to backend
-extern int fromX, fromY, toX, toY;
-void PromotionPopUp P((char choice));
-void DragPieceBegin P((int x, int y, Boolean instantly));
-void DragPieceEnd P((int x, int y));
-void DragPieceMove P((int x, int y));
-void LeftClick P((ClickType c, int x, int y));
-int  RightClick P((ClickType c, int x, int y, int *col, int *row));
-void Wheel P((int dir, int x, int y));
-
-int StartChildProcess P((char *cmdLine, char *dir, ProcRef *pr));
-void DestroyChildProcess P((ProcRef pr, int/*boolean*/ signal));
-void InterruptChildProcess P((ProcRef pr));
-char *BufferCommandOutput P((char *command, int size));
-void RunCommand P((char *buf));
-
-int OpenTelnet P((char *host, char *port, ProcRef *pr));
-int OpenTCP P((char *host, char *port, ProcRef *pr));
-int OpenCommPort P((char *name, ProcRef *pr));
-int OpenLoopback P((ProcRef *pr));
-int OpenRcmd P((char *host, char *user, char *cmd, ProcRef *pr));
-
-typedef void (*InputCallback) P((InputSourceRef isr, VOIDSTAR closure,
-                                char *buf, int count, int error));
-/* pr == NoProc means the local keyboard */
-InputSourceRef AddInputSource P((ProcRef pr, int lineByLine,
-                                InputCallback func, VOIDSTAR closure));
-void RemoveInputSource P((InputSourceRef isr));
-
-/* pr == NoProc means the local display */
-int OutputToProcess P((ProcRef pr, char *message, int count, int *outError));
-int OutputToProcessDelayed P((ProcRef pr, char *message, int count,
-                             int *outError, long msdelay));
-
-void CmailSigHandlerCallBack P((InputSourceRef isr, VOIDSTAR closure,
-                               char *buf, int count, int error));
-
-extern ProcRef cmailPR;
-extern int shiftKey, controlKey;
-extern char dataDir[], manDir[];
-
-/* in xgamelist.c or winboard.c */
-void GLT_ClearList();
-void GLT_DeSelectList();
-void GLT_AddToList( char *name );
-Boolean GLT_GetFromList( int index, char *name );
-
-extern char lpUserGLT[];
-extern char *homeDir;
-
-/* these are in wgamelist.c */
-void GameListPopUp P((FILE *fp, char *filename));
-void GameListPopDown P((void));
-void GameListHighlight P((int index));
-void GameListDestroy P((void));
-void GameListUpdate P((void));
-FILE *GameFile P((void));
-
-/* these are in wedittags.c */
-void EditTagsPopUp P((char *tags, char **dest));
-void TagsPopUp P((char *tags, char *msg));
-void TagsPopDown P((void));
-
-void ParseIcsTextColors P((void));
-int  ICSInitScript P((void));
-void StartAnalysisClock P((void));
-void EngineOutputPopUp P((void));
-void EgineOutputPopDown P((void));
-
-void SetHighlights P((int fromX, int fromY, int toX, int toY));
-void ClearHighlights P((void));
-void SetPremoveHighlights P((int fromX, int fromY, int toX, int toY));
-void ClearPremoveHighlights P((void));
-
-void AnimateAtomicCapture P((Board board, int fromX, int fromY, int toX, int toY));
-void ShutDownFrontEnd P((void));
-void BoardToTop P((void));
-void AnimateMove P((Board board, int fromX, int fromY, int toX, int toY));
-void HistorySet P((char movelist[][2*MOVE_LEN], int first, int last, int current));
-void FreezeUI P((void));
-void ThawUI P((void));
-void ChangeDragPiece P((ChessSquare piece));
-void CopyFENToClipboard P((void));
-extern char *programName;
-extern int commentUp;
-extern char *firstChessProgramNames;
-
-void GreyRevert P((Boolean grey));
-void EnableNamedMenuItem P((char *menuRef, int state));
-
-typedef struct FrontEndProgramStats_TAG {
-    int which;
-    int depth;
-    u64 nodes;
-    int score;
-    int time;
-    char * pv;
-    char * hint;
-    int an_move_index;
-    int an_move_count;
-} FrontEndProgramStats;
-
-void SetProgramStats P(( FrontEndProgramStats * stats )); /* [AS] */
-
-void EngineOutputPopUp P((void));
-void EngineOutputPopDown P((void));
-int  EngineOutputIsUp P((void));
-int  EngineOutputDialogExists P((void));
-void EvalGraphPopUp P((void));
-Boolean EvalGraphIsUp P((void));
-int  EvalGraphDialogExists P((void));
-void SlavePopUp P((void));
-void ActivateTheme P((int new));
-char *Col2Text P((int n));
-
-/* these are in xhistory.c  */
-Boolean MoveHistoryIsUp P((void));
-void HistoryPopUp P((void));
-void FindMoveByCharIndex P(( int char_index ));
-
-#endif /* XB_FRONTEND */
diff --git a/gamelist.c b/gamelist.c
deleted file mode 100644 (file)
index 34e899a..0000000
+++ /dev/null
@@ -1,683 +0,0 @@
-/*
- * gamelist.c -- Functions to manage a gamelist
- *
- * Copyright 1995, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free
- * Software Foundation, Inc.
- *
- * Enhancements Copyright 2005 Alessandro Scotti
- *
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-#include "config.h"
-
-#include <stdio.h>
-#include <errno.h>
-#if STDC_HEADERS
-# include <stdlib.h>
-# include <string.h>
-#else /* not STDC_HEADERS */
-# if HAVE_STRING_H
-#  include <string.h>
-# else /* not HAVE_STRING_H */
-#  include <strings.h>
-# endif /* not HAVE_STRING_H */
-#endif /* not STDC_HEADERS */
-
-#include "common.h"
-#include "frontend.h"
-#include "backend.h"
-#include "parser.h"
-#include "moves.h"
-#include "gettext.h"
-
-#ifdef ENABLE_NLS
-# define  _(s) gettext (s)
-# define N_(s) gettext_noop (s)
-#else
-# define  _(s) (s)
-# define N_(s)  s
-#endif
-
-
-/* Variables
- */
-List gameList;
-extern Board initialPosition;
-extern int quickFlag;
-extern int movePtr;
-
-/* Local function prototypes
- */
-static void GameListDeleteGame P((ListGame *));
-static ListGame *GameListCreate P((void));
-static void GameListFree P((List *));
-static int GameListNewGame P((ListGame **));
-
-/* [AS] Wildcard pattern matching */
-Boolean
-HasPattern (const char * text, const char * pattern)
-{
-    while( *pattern != '\0' ) {
-        if( *pattern == '*' ) {
-            while( *pattern == '*' ) {
-                pattern++;
-            }
-
-            if( *pattern == '\0' ) {
-                return TRUE;
-            }
-
-            while( *text != '\0' ) {
-                if( HasPattern( text, pattern ) ) {
-                    return TRUE;
-                }
-                text++;
-            }
-        }
-        else if( (*pattern == *text) || ((*pattern == '?') && (*text != '\0')) ) {
-            pattern++;
-            text++;
-            continue;
-        }
-
-        return FALSE;
-    }
-
-    return TRUE;
-}
-
-Boolean
-SearchPattern (const char * text, const char * pattern)
-{
-    Boolean result = TRUE;
-
-    if( pattern != NULL && *pattern != '\0' ) {
-        if( *pattern == '*' ) {
-            result = HasPattern( text, pattern );
-        }
-        else {
-            result = FALSE;
-
-            while( *text != '\0' ) {
-                if( HasPattern( text, pattern ) ) {
-                    result = TRUE;
-                    break;
-                }
-                text++;
-            }
-        }
-    }
-
-    return result;
-}
-
-/* Delete a ListGame; implies removint it from a list.
- */
-static void
-GameListDeleteGame (ListGame *listGame)
-{
-    if (listGame) {
-       if (listGame->gameInfo.event) free(listGame->gameInfo.event);
-       if (listGame->gameInfo.site) free(listGame->gameInfo.site);
-       if (listGame->gameInfo.date) free(listGame->gameInfo.date);
-       if (listGame->gameInfo.round) free(listGame->gameInfo.round);
-       if (listGame->gameInfo.white) free(listGame->gameInfo.white);
-       if (listGame->gameInfo.black) free(listGame->gameInfo.black);
-       if (listGame->gameInfo.fen) free(listGame->gameInfo.fen);
-       if (listGame->gameInfo.resultDetails) free(listGame->gameInfo.resultDetails);
-       if (listGame->gameInfo.timeControl) free(listGame->gameInfo.timeControl);
-       if (listGame->gameInfo.extraTags) free(listGame->gameInfo.extraTags);
-        if (listGame->gameInfo.outOfBook) free(listGame->gameInfo.outOfBook);
-       ListNodeFree((ListNode *) listGame);
-    }
-}
-
-
-/* Free the previous list of games.
- */
-static void
-GameListFree (List *gameList)
-{
-  while (!ListEmpty(gameList))
-    {
-       GameListDeleteGame((ListGame *) gameList->head);
-    }
-}
-
-
-
-/* Initialize a new GameInfo structure.
- */
-void
-GameListInitGameInfo (GameInfo *gameInfo)
-{
-    gameInfo->event = NULL;
-    gameInfo->site = NULL;
-    gameInfo->date = NULL;
-    gameInfo->round = NULL;
-    gameInfo->white = NULL;
-    gameInfo->black = NULL;
-    gameInfo->result = GameUnfinished;
-    gameInfo->fen = NULL;
-    gameInfo->resultDetails = NULL;
-    gameInfo->timeControl = NULL;
-    gameInfo->extraTags = NULL;
-    gameInfo->whiteRating = -1; /* unknown */
-    gameInfo->blackRating = -1; /* unknown */
-    gameInfo->variant = VariantNormal;
-    gameInfo->variantName = NULL;
-    gameInfo->outOfBook = NULL;
-    gameInfo->resultDetails = NULL;
-}
-
-
-/* Create empty ListGame; returns ListGame or NULL, if out of memory.
- *
- * Note, that the ListGame is *not* added to any list
- */
-static ListGame *
-GameListCreate ()
-{
-    ListGame *listGame;
-
-    if ((listGame = (ListGame *) ListNodeCreate(sizeof(*listGame)))) {
-       GameListInitGameInfo(&listGame->gameInfo);
-    }
-    return(listGame);
-}
-
-
-/* Creates a new game for the gamelist.
- */
-static int
-GameListNewGame (ListGame **listGamePtr)
-{
-    if (!(*listGamePtr = (ListGame *) GameListCreate())) {
-       GameListFree(&gameList);
-       return(ENOMEM);
-    }
-    ListAddTail(&gameList, (ListNode *) *listGamePtr);
-    return(0);
-}
-
-
-/* Build the list of games in the open file f.
- * Returns 0 for success or error number.
- */
-int
-GameListBuild (FILE *f)
-{
-    ChessMove cm, lastStart;
-    int gameNumber;
-    ListGame *currentListGame = NULL;
-    int error, scratch=100, plyNr=0, fromX, fromY, toX, toY;
-    int offset;
-    char lastComment[MSG_SIZ], buf[MSG_SIZ];
-    TimeMark t, t2;
-
-    GetTimeMark(&t);
-    GameListFree(&gameList);
-    yynewfile(f);
-    gameNumber = 0;
-    movePtr = 0;
-
-    lastStart = (ChessMove) 0;
-    yyskipmoves = FALSE;
-    do {
-        yyboardindex = scratch;
-       offset = yyoffset();
-       quickFlag = plyNr + 1;
-       cm = (ChessMove) Myylex();
-       switch (cm) {
-         case GNUChessGame:
-           if ((error = GameListNewGame(&currentListGame))) {
-               rewind(f);
-               yyskipmoves = FALSE;
-               return(error);
-           }
-           currentListGame->number = ++gameNumber;
-           currentListGame->offset = offset;
-           if(1) { CopyBoard(boards[scratch], initialPosition); plyNr = 0; currentListGame->moves = PackGame(boards[scratch]); }
-           if (currentListGame->gameInfo.event != NULL) {
-               free(currentListGame->gameInfo.event);
-           }
-           currentListGame->gameInfo.event = StrSave(yy_text);
-           lastStart = cm;
-           break;
-         case XBoardGame:
-           lastStart = cm;
-           break;
-         case MoveNumberOne:
-           switch (lastStart) {
-             case GNUChessGame:
-               break;          /*  ignore  */
-             case PGNTag:
-               lastStart = cm;
-               break;          /*  Already started */
-             case (ChessMove) 0:
-             case MoveNumberOne:
-             case XBoardGame:
-               if ((error = GameListNewGame(&currentListGame))) {
-                   rewind(f);
-                   yyskipmoves = FALSE;
-                   return(error);
-               }
-               currentListGame->number = ++gameNumber;
-               currentListGame->offset = offset;
-               if(1) { CopyBoard(boards[scratch], initialPosition); plyNr = 0; currentListGame->moves = PackGame(boards[scratch]); }
-               lastStart = cm;
-               break;
-             default:
-               break;          /*  impossible  */
-           }
-           break;
-         case PGNTag:
-           lastStart = cm;
-           if ((error = GameListNewGame(&currentListGame))) {
-               rewind(f);
-               yyskipmoves = FALSE;
-               return(error);
-           }
-           currentListGame->number = ++gameNumber;
-           currentListGame->offset = offset;
-           ParsePGNTag(yy_text, &currentListGame->gameInfo);
-           do {
-               yyboardindex = 1;
-               offset = yyoffset();
-               cm = (ChessMove) Myylex();
-               if (cm == PGNTag) {
-                   ParsePGNTag(yy_text, &currentListGame->gameInfo);
-               }
-           } while (cm == PGNTag || cm == Comment);
-           if(1) {
-               int btm=0;
-               if(currentListGame->gameInfo.fen) ParseFEN(boards[scratch], &btm, currentListGame->gameInfo.fen, FALSE);
-               else CopyBoard(boards[scratch], initialPosition);
-               plyNr = (btm != 0);
-               currentListGame->moves = PackGame(boards[scratch]);
-           }
-           if(cm != NormalMove) break;
-         case IllegalMove:
-               if(appData.testLegality) break;
-         case NormalMove:
-           /* Allow the first game to start with an unnumbered move */
-           yyskipmoves = FALSE;
-           if (lastStart == (ChessMove) 0) {
-             if ((error = GameListNewGame(&currentListGame))) {
-               rewind(f);
-               yyskipmoves = FALSE;
-               return(error);
-             }
-             currentListGame->number = ++gameNumber;
-             currentListGame->offset = offset;
-             if(1) { CopyBoard(boards[scratch], initialPosition); plyNr = 0; currentListGame->moves = PackGame(boards[scratch]); }
-             lastStart = MoveNumberOne;
-           }
-         case WhiteCapturesEnPassant:
-         case BlackCapturesEnPassant:
-         case WhitePromotion:
-         case BlackPromotion:
-         case WhiteNonPromotion:
-         case BlackNonPromotion:
-         case WhiteKingSideCastle:
-         case WhiteQueenSideCastle:
-         case BlackKingSideCastle:
-         case BlackQueenSideCastle:
-         case WhiteKingSideCastleWild:
-         case WhiteQueenSideCastleWild:
-         case BlackKingSideCastleWild:
-         case BlackQueenSideCastleWild:
-         case WhiteHSideCastleFR:
-         case WhiteASideCastleFR:
-         case BlackHSideCastleFR:
-         case BlackASideCastleFR:
-               fromX = currentMoveString[0] - AAA;
-               fromY = currentMoveString[1] - ONE;
-               toX = currentMoveString[2] - AAA;
-               toY = currentMoveString[3] - ONE;
-               plyNr++;
-               ApplyMove(fromX, fromY, toX, toY, currentMoveString[4], boards[scratch]);
-               if(currentListGame && currentListGame->moves) PackMove(fromX, fromY, toX, toY, boards[scratch][toY][toX]);
-           break;
-        case WhiteWins: // [HGM] rescom: save last comment as result details
-        case BlackWins:
-        case GameIsDrawn:
-        case GameUnfinished:
-           if(!currentListGame) break;
-           if(currentListGame->gameInfo.result == GameUnfinished)
-               currentListGame->gameInfo.result = cm; // correct result tag with actual result
-           if (currentListGame->gameInfo.resultDetails != NULL) {
-               free(currentListGame->gameInfo.resultDetails);
-           }
-           if(yy_text[0] == '{') {
-               char *p;
-               safeStrCpy(lastComment, yy_text+1, sizeof(lastComment)/sizeof(lastComment[0]));
-               if((p = strchr(lastComment, '}'))) *p = 0;
-               currentListGame->gameInfo.resultDetails = StrSave(lastComment);
-           }
-           break;
-         default:
-           break;
-       }
-       if(gameNumber % 1000 == 0) {
-           snprintf(buf, MSG_SIZ, _("Reading game file (%d)"), gameNumber);
-           DisplayTitle(buf); DoEvents();
-       }
-    }
-    while (cm != (ChessMove) 0);
-
- if(currentListGame) {
-    if(!currentListGame->moves) DisplayError("Game cache overflowed\nPosition-searching might not work properly", 0);
-
-    if (appData.debugMode) {
-       for (currentListGame = (ListGame *) gameList.head;
-            currentListGame->node.succ;
-            currentListGame = (ListGame *) currentListGame->node.succ) {
-
-           fprintf(debugFP, "Parsed game number %d, offset %ld:\n",
-                   currentListGame->number, currentListGame->offset);
-           PrintPGNTags(debugFP, &currentListGame->gameInfo);
-       }
-    }
-  }
-    if(appData.debugMode) { GetTimeMark(&t2);printf("GameListBuild %ld msec\n", SubtractTimeMarks(&t2,&t)); }
-    quickFlag = 0;
-    PackGame(boards[scratch]); // for appending end-of-game marker.
-    DisplayTitle("WinBoard");
-    rewind(f);
-    yyskipmoves = FALSE;
-    return 0;
-}
-
-
-/* Clear an existing GameInfo structure.
- */
-void
-ClearGameInfo (GameInfo *gameInfo)
-{
-    if (gameInfo->event != NULL) {
-       free(gameInfo->event);
-    }
-    if (gameInfo->site != NULL) {
-       free(gameInfo->site);
-    }
-    if (gameInfo->date != NULL) {
-       free(gameInfo->date);
-    }
-    if (gameInfo->round != NULL) {
-       free(gameInfo->round);
-    }
-    if (gameInfo->white != NULL) {
-       free(gameInfo->white);
-    }
-    if (gameInfo->black != NULL) {
-       free(gameInfo->black);
-    }
-    if (gameInfo->resultDetails != NULL) {
-       free(gameInfo->resultDetails);
-    }
-    if (gameInfo->fen != NULL) {
-       free(gameInfo->fen);
-    }
-    if (gameInfo->timeControl != NULL) {
-       free(gameInfo->timeControl);
-    }
-    if (gameInfo->extraTags != NULL) {
-       free(gameInfo->extraTags);
-    }
-    if (gameInfo->variantName != NULL) {
-        free(gameInfo->variantName);
-    }
-    if (gameInfo->outOfBook != NULL) {
-        free(gameInfo->outOfBook);
-    }
-    GameListInitGameInfo(gameInfo);
-}
-
-/* [AS] Replaced by "dynamic" tag selection below */
-char *
-GameListLineOld (int number, GameInfo *gameInfo)
-{
-    char *event = (gameInfo->event && strcmp(gameInfo->event, "?") != 0) ?
-                    gameInfo->event : gameInfo->site ? gameInfo->site : "?";
-    char *white = gameInfo->white ? gameInfo->white : "?";
-    char *black = gameInfo->black ? gameInfo->black : "?";
-    char *date = gameInfo->date ? gameInfo->date : "?";
-    int len = 10 + strlen(event) + 2 + strlen(white) + 1 +
-      strlen(black) + 11 + strlen(date) + 1;
-    char *ret = (char *) malloc(len);
-    sprintf(ret, "%d. %s, %s-%s, %s, %s",
-           number, event, white, black, PGNResult(gameInfo->result), date);
-    return ret;
-}
-
-#define MAX_FIELD_LEN   80  /* To avoid overflowing the buffer */
-
-char *
-GameListLine (int number, GameInfo * gameInfo)
-{
-    char buffer[2*MSG_SIZ];
-    char * buf = buffer;
-    char * glt = appData.gameListTags;
-
-    buf += sprintf( buffer, "%d.", number );
-
-    while( *glt != '\0' ) {
-        *buf++ = ' ';
-
-        switch( *glt ) {
-        case GLT_EVENT:
-            strncpy( buf, gameInfo->event ? gameInfo->event : "?", MAX_FIELD_LEN );
-            break;
-        case GLT_SITE:
-            strncpy( buf, gameInfo->site ? gameInfo->site : "?", MAX_FIELD_LEN );
-            break;
-        case GLT_DATE:
-            strncpy( buf, gameInfo->date ? gameInfo->date : "?", MAX_FIELD_LEN );
-            break;
-        case GLT_ROUND:
-            strncpy( buf, gameInfo->round ? gameInfo->round : "?", MAX_FIELD_LEN );
-            break;
-        case GLT_PLAYERS:
-            strncpy( buf, gameInfo->white ? gameInfo->white : "?", MAX_FIELD_LEN );
-            buf[ MAX_FIELD_LEN-1 ] = '\0';
-            buf += strlen( buf );
-            *buf++ = '-';
-            strncpy( buf, gameInfo->black ? gameInfo->black : "?", MAX_FIELD_LEN );
-            break;
-        case GLT_RESULT:
-           safeStrCpy( buf, PGNResult(gameInfo->result), 2*MSG_SIZ );
-            break;
-        case GLT_WHITE_ELO:
-            if( gameInfo->whiteRating > 0 )
-             sprintf( buf,  "%d", gameInfo->whiteRating );
-            else
-             safeStrCpy( buf, "?" , 2*MSG_SIZ);
-            break;
-        case GLT_BLACK_ELO:
-            if( gameInfo->blackRating > 0 )
-                sprintf( buf, "%d", gameInfo->blackRating );
-            else
-             safeStrCpy( buf, "?" , 2*MSG_SIZ);
-            break;
-        case GLT_TIME_CONTROL:
-            strncpy( buf, gameInfo->timeControl ? gameInfo->timeControl : "?", MAX_FIELD_LEN );
-            break;
-        case GLT_VARIANT:
-            strncpy( buf, gameInfo->variantName ? gameInfo->variantName : VariantName(gameInfo->variant), MAX_FIELD_LEN );
-//            strncpy( buf, VariantName(gameInfo->variant), MAX_FIELD_LEN );
-            break;
-        case GLT_OUT_OF_BOOK:
-            strncpy( buf, gameInfo->outOfBook ? gameInfo->outOfBook : "?", MAX_FIELD_LEN );
-            break;
-        case GLT_RESULT_COMMENT:
-            strncpy( buf, gameInfo->resultDetails ? gameInfo->resultDetails : "res?", MAX_FIELD_LEN );
-            break;
-        default:
-            break;
-        }
-
-        buf[MAX_FIELD_LEN-1] = '\0';
-
-        buf += strlen( buf );
-
-        glt++;
-
-        if( *glt != '\0' ) {
-            *buf++ = ',';
-        }
-    }
-
-    *buf = '\0';
-
-    return strdup( buffer );
-}
-
-char *
-GameListLineFull (int number, GameInfo * gameInfo)
-{
-    char * event = gameInfo->event ? gameInfo->event : "?";
-    char * site = gameInfo->site ? gameInfo->site : "?";
-    char * white = gameInfo->white ? gameInfo->white : "?";
-    char * black = gameInfo->black ? gameInfo->black : "?";
-    char * round = gameInfo->round ? gameInfo->round : "?";
-    char * date = gameInfo->date ? gameInfo->date : "?";
-    char * oob = gameInfo->outOfBook ? gameInfo->outOfBook : "";
-    char * reason = gameInfo->resultDetails ? gameInfo->resultDetails : "";
-
-    int len = 64 + strlen(event) + strlen(site) + strlen(white) + strlen(black) + strlen(date) + strlen(oob) + strlen(reason);
-
-    char *ret = (char *) malloc(len);
-
-    sprintf(ret, "%d, \"%s\", \"%s\", \"%s\", \"%s\", \"%s\", \"%s\", \"%s\", \"%s\", \"%s\"",
-       number, event, site, round, white, black, PGNResult(gameInfo->result), reason, date, oob );
-
-    return ret;
-}
-// --------------------------------------- Game-List options dialog --------------------------------------
-
-// back-end
-typedef struct {
-    char id;
-    char * name;
-} GLT_Item;
-
-// back-end: translation table tag id-char <-> full tag name
-static GLT_Item GLT_ItemInfo[] = {
-    { GLT_EVENT,      "Event" },
-    { GLT_SITE,       "Site" },
-    { GLT_DATE,       "Date" },
-    { GLT_ROUND,      "Round" },
-    { GLT_PLAYERS,    "Players" },
-    { GLT_RESULT,     "Result" },
-    { GLT_WHITE_ELO,  "White Rating" },
-    { GLT_BLACK_ELO,  "Black Rating" },
-    { GLT_TIME_CONTROL,"Time Control" },
-    { GLT_VARIANT,    "Variant" },
-    { GLT_OUT_OF_BOOK,PGN_OUT_OF_BOOK },
-    { GLT_RESULT_COMMENT, "Result Comment" }, // [HGM] rescom
-    { 0, 0 }
-};
-
-char lpUserGLT[LPUSERGLT_SIZE];
-
-// back-end: convert the tag id-char to a full tag name
-char *
-GLT_FindItem (char id)
-{
-    char * result = 0;
-
-    GLT_Item * list = GLT_ItemInfo;
-
-    while( list->id != 0 ) {
-        if( list->id == id ) {
-            result = list->name;
-            break;
-        }
-
-        list++;
-    }
-
-    return result;
-}
-
-// back-end: build the list of tag names
-void
-GLT_TagsToList (char *tags)
-{
-    char * pc = tags;
-
-    GLT_ClearList();
-
-    while( *pc ) {
-        GLT_AddToList( GLT_FindItem(*pc) );
-        pc++;
-    }
-
-    GLT_AddToList( "     --- Hidden tags ---     " );
-
-    pc = GLT_ALL_TAGS;
-
-    while( *pc ) {
-        if( strchr( tags, *pc ) == 0 ) {
-            GLT_AddToList( GLT_FindItem(*pc) );
-        }
-        pc++;
-    }
-
-    GLT_DeSelectList();
-}
-
-// back-end: retrieve item from dialog and translate to id-char
-char
-GLT_ListItemToTag (int index)
-{
-    char result = '\0';
-    char name[MSG_SIZ];
-
-    GLT_Item * list = GLT_ItemInfo;
-
-    if( GLT_GetFromList(index, name) ) {
-        while( list->id != 0 ) {
-            if( strcmp( list->name, name ) == 0 ) {
-                result = list->id;
-                break;
-            }
-
-            list++;
-        }
-    }
-
-    return result;
-}
-
-// back-end: add items id-chars one-by-one to temp tags string
-void
-GLT_ParseList ()
-{
-    char * pc = lpUserGLT;
-    int idx = 0;
-    char id;
-
-    do {
-       id = GLT_ListItemToTag( idx );
-       *pc++ = id;
-       idx++;
-    } while( id != '\0' );
-}
diff --git a/gettext.h b/gettext.h
deleted file mode 100644 (file)
index 2b11fca..0000000
--- a/gettext.h
+++ /dev/null
@@ -1,280 +0,0 @@
-/* Convenience header for conditional use of GNU <libintl.h>.
-   Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009, 2011 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify it
-   under the terms of the GNU General Public License as published
-   by the Free Software Foundation; either version 3, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Library General Public License for more details.
-
-   You should have received a copy of the GNU General Public
-   License along with this program; if not, write to the Free Software
-   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-   USA.  */
-
-#ifndef XB_GETTEXT
-#define XB_GETTEXT
-
-/* NLS can be disabled through the configure --disable-nls option.  */
-#if ENABLE_NLS
-
-/* Get declarations of GNU message catalog functions.  */
-# include <libintl.h>
-
-/* You can set the DEFAULT_TEXT_DOMAIN macro to specify the domain used by
-   the gettext() and ngettext() macros.  This is an alternative to calling
-   textdomain(), and is useful for libraries.  */
-# ifdef DEFAULT_TEXT_DOMAIN
-#  undef gettext
-#  define gettext(Msgid) \
-     dgettext (DEFAULT_TEXT_DOMAIN, Msgid)
-#  undef ngettext
-#  define ngettext(Msgid1, Msgid2, N) \
-     dngettext (DEFAULT_TEXT_DOMAIN, Msgid1, Msgid2, N)
-# endif
-
-#else
-
-/* Solaris /usr/include/locale.h includes /usr/include/libintl.h, which
-   chokes if dcgettext is defined as a macro.  So include it now, to make
-   later inclusions of <locale.h> a NOP.  We don't include <libintl.h>
-   as well because people using "gettext.h" will not include <libintl.h>,
-   and also including <libintl.h> would fail on SunOS 4, whereas <locale.h>
-   is OK.  */
-#if defined(__sun)
-# include <locale.h>
-#endif
-
-/* Many header files from the libstdc++ coming with g++ 3.3 or newer include
-   <libintl.h>, which chokes if dcgettext is defined as a macro.  So include
-   it now, to make later inclusions of <libintl.h> a NOP.  */
-#if defined(__cplusplus) && defined(__GNUG__) && (__GNUC__ >= 3)
-# include <cstdlib>
-# if (__GLIBC__ >= 2) || _GLIBCXX_HAVE_LIBINTL_H
-#  include <libintl.h>
-# endif
-#endif
-
-/* Disabled NLS.
-   The casts to 'const char *' serve the purpose of producing warnings
-   for invalid uses of the value returned from these functions.
-   On pre-ANSI systems without 'const', the config.h file is supposed to
-   contain "#define const".  */
-# undef gettext
-# define gettext(Msgid) ((const char *) (Msgid))
-# undef dgettext
-# define dgettext(Domainname, Msgid) ((void) (Domainname), gettext (Msgid))
-# undef dcgettext
-# define dcgettext(Domainname, Msgid, Category) \
-    ((void) (Category), dgettext (Domainname, Msgid))
-# undef ngettext
-# define ngettext(Msgid1, Msgid2, N) \
-    ((N) == 1 \
-     ? ((void) (Msgid2), (const char *) (Msgid1)) \
-     : ((void) (Msgid1), (const char *) (Msgid2)))
-# undef dngettext
-# define dngettext(Domainname, Msgid1, Msgid2, N) \
-    ((void) (Domainname), ngettext (Msgid1, Msgid2, N))
-# undef dcngettext
-# define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \
-    ((void) (Category), dngettext(Domainname, Msgid1, Msgid2, N))
-# undef textdomain
-# define textdomain(Domainname) ((const char *) (Domainname))
-# undef bindtextdomain
-# define bindtextdomain(Domainname, Dirname) \
-    ((void) (Domainname), (const char *) (Dirname))
-# undef bind_textdomain_codeset
-# define bind_textdomain_codeset(Domainname, Codeset) \
-    ((void) (Domainname), (const char *) (Codeset))
-
-#endif
-
-/* A pseudo function call that serves as a marker for the automated
-   extraction of messages, but does not call gettext().  The run-time
-   translation is done at a different place in the code.
-   The argument, String, should be a literal string.  Concatenated strings
-   and other string expressions won't work.
-   The macro's expansion is not parenthesized, so that it is suitable as
-   initializer for static 'char[]' or 'const char[]' variables.  */
-#define gettext_noop(String) String
-
-/* The separator between msgctxt and msgid in a .mo file.  */
-#define GETTEXT_CONTEXT_GLUE "\004"
-
-/* Pseudo function calls, taking a MSGCTXT and a MSGID instead of just a
-   MSGID.  MSGCTXT and MSGID must be string literals.  MSGCTXT should be
-   short and rarely need to change.
-   The letter 'p' stands for 'particular' or 'special'.  */
-#ifdef DEFAULT_TEXT_DOMAIN
-# define pgettext(Msgctxt, Msgid) \
-   pgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES)
-#else
-# define pgettext(Msgctxt, Msgid) \
-   pgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES)
-#endif
-#define dpgettext(Domainname, Msgctxt, Msgid) \
-  pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES)
-#define dcpgettext(Domainname, Msgctxt, Msgid, Category) \
-  pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, Category)
-#ifdef DEFAULT_TEXT_DOMAIN
-# define npgettext(Msgctxt, Msgid, MsgidPlural, N) \
-   npgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES)
-#else
-# define npgettext(Msgctxt, Msgid, MsgidPlural, N) \
-   npgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES)
-#endif
-#define dnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N) \
-  npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES)
-#define dcnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N, Category) \
-  npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, Category)
-
-#ifdef __GNUC__
-__inline
-#else
-#ifdef __cplusplus
-inline
-#endif
-#endif
-static const char *
-pgettext_aux (const char *domain,
-              const char *msg_ctxt_id, const char *msgid,
-              int category)
-{
-  const char *translation = dcgettext (domain, msg_ctxt_id, category);
-  if (translation == msg_ctxt_id)
-    return msgid;
-  else
-    return translation;
-}
-
-#ifdef __GNUC__
-__inline
-#else
-#ifdef __cplusplus
-inline
-#endif
-#endif
-static const char *
-npgettext_aux (const char *domain,
-               const char *msg_ctxt_id, const char *msgid,
-               const char *msgid_plural, unsigned long int n,
-               int category)
-{
-  const char *translation =
-    dcngettext (domain, msg_ctxt_id, msgid_plural, n, category);
-  if (translation == msg_ctxt_id || translation == msgid_plural)
-    return (n == 1 ? msgid : msgid_plural);
-  else
-    return translation;
-}
-
-/* The same thing extended for non-constant arguments.  Here MSGCTXT and MSGID
-   can be arbitrary expressions.  But for string literals these macros are
-   less efficient than those above.  */
-
-#include <string.h>
-
-#define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS \
-  (((__GNUC__ >= 3 || __GNUG__ >= 2) && !__STRICT_ANSI__) \
-   /* || __STDC_VERSION__ >= 199901L */ )
-
-#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
-#include <stdlib.h>
-#endif
-
-#define pgettext_expr(Msgctxt, Msgid) \
-  dcpgettext_expr (NULL, Msgctxt, Msgid, LC_MESSAGES)
-#define dpgettext_expr(Domainname, Msgctxt, Msgid) \
-  dcpgettext_expr (Domainname, Msgctxt, Msgid, LC_MESSAGES)
-
-#ifdef __GNUC__
-__inline
-#else
-#ifdef __cplusplus
-inline
-#endif
-#endif
-static const char *
-dcpgettext_expr (const char *domain,
-                 const char *msgctxt, const char *msgid,
-                 int category)
-{
-  size_t msgctxt_len = strlen (msgctxt) + 1;
-  size_t msgid_len = strlen (msgid) + 1;
-  const char *translation;
-#if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
-  char msg_ctxt_id[msgctxt_len + msgid_len];
-#else
-  char buf[1024];
-  char *msg_ctxt_id =
-    (msgctxt_len + msgid_len <= sizeof (buf)
-     ? buf
-     : (char *) malloc (msgctxt_len + msgid_len));
-  if (msg_ctxt_id != NULL)
-#endif
-    {
-      memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1);
-      msg_ctxt_id[msgctxt_len - 1] = '\004';
-      memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len);
-      translation = dcgettext (domain, msg_ctxt_id, category);
-#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
-      if (msg_ctxt_id != buf)
-        free (msg_ctxt_id);
-#endif
-      if (translation != msg_ctxt_id)
-        return translation;
-    }
-  return msgid;
-}
-
-#define npgettext_expr(Msgctxt, Msgid, MsgidPlural, N) \
-  dcnpgettext_expr (NULL, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES)
-#define dnpgettext_expr(Domainname, Msgctxt, Msgid, MsgidPlural, N) \
-  dcnpgettext_expr (Domainname, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES)
-
-#ifdef __GNUC__
-__inline
-#else
-#ifdef __cplusplus
-inline
-#endif
-#endif
-static const char *
-dcnpgettext_expr (const char *domain,
-                  const char *msgctxt, const char *msgid,
-                  const char *msgid_plural, unsigned long int n,
-                  int category)
-{
-  size_t msgctxt_len = strlen (msgctxt) + 1;
-  size_t msgid_len = strlen (msgid) + 1;
-  const char *translation;
-#if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
-  char msg_ctxt_id[msgctxt_len + msgid_len];
-#else
-  char buf[1024];
-  char *msg_ctxt_id =
-    (msgctxt_len + msgid_len <= sizeof (buf)
-     ? buf
-     : (char *) malloc (msgctxt_len + msgid_len));
-  if (msg_ctxt_id != NULL)
-#endif
-    {
-      memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1);
-      msg_ctxt_id[msgctxt_len - 1] = '\004';
-      memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len);
-      translation = dcngettext (domain, msg_ctxt_id, msgid_plural, n, category);
-#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
-      if (msg_ctxt_id != buf)
-        free (msg_ctxt_id);
-#endif
-      if (!(translation == msg_ctxt_id || translation == msgid_plural))
-        return translation;
-    }
-  return (n == 1 ? msgid : msgid_plural);
-}
-
-#endif /* XB_GETTEXT */
diff --git a/gpl.texinfo b/gpl.texinfo
deleted file mode 100644 (file)
index 97a17e1..0000000
+++ /dev/null
@@ -1,717 +0,0 @@
-@c The GNU General Public License.
-@center Version 3, 29 June 2007
-
-@c This file is intended to be included within another document,
-@c hence no sectioning command or @node.
-
-@display
-Copyright @copyright{} 2007 Free Software Foundation, Inc. @url{http://fsf.org/}
-
-Everyone is permitted to copy and distribute verbatim copies of this
-license document, but changing it is not allowed.
-@end display
-
-@heading Preamble
-
-The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
-The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works.  By contrast,
-the GNU General Public License is intended to guarantee your freedom
-to share and change all versions of a program---to make sure it remains
-free software for all its users.  We, the Free Software Foundation,
-use the GNU General Public License for most of our software; it
-applies also to any other work released this way by its authors.  You
-can apply it to your programs, too.
-
-When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
-To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights.  Therefore, you
-have certain responsibilities if you distribute copies of the
-software, or if you modify it: responsibilities to respect the freedom
-of others.
-
-For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received.  You must make sure that they, too,
-receive or can get the source code.  And you must show them these
-terms so they know their rights.
-
-Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
-For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software.  For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
-Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the
-manufacturer can do so.  This is fundamentally incompatible with the
-aim of protecting users' freedom to change the software.  The
-systematic pattern of such abuse occurs in the area of products for
-individuals to use, which is precisely where it is most unacceptable.
-Therefore, we have designed this version of the GPL to prohibit the
-practice for those products.  If such problems arise substantially in
-other domains, we stand ready to extend this provision to those
-domains in future versions of the GPL, as needed to protect the
-freedom of users.
-
-Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish
-to avoid the special danger that patents applied to a free program
-could make it effectively proprietary.  To prevent this, the GPL
-assures that patents cannot be used to render the program non-free.
-
-The precise terms and conditions for copying, distribution and
-modification follow.
-
-@heading TERMS AND CONDITIONS
-
-@enumerate 0
-@item Definitions.
-
-``This License'' refers to version 3 of the GNU General Public License.
-
-``Copyright'' also means copyright-like laws that apply to other kinds
-of works, such as semiconductor masks.
-
-``The Program'' refers to any copyrightable work licensed under this
-License.  Each licensee is addressed as ``you''.  ``Licensees'' and
-``recipients'' may be individuals or organizations.
-
-To ``modify'' a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of
-an exact copy.  The resulting work is called a ``modified version'' of
-the earlier work or a work ``based on'' the earlier work.
-
-A ``covered work'' means either the unmodified Program or a work based
-on the Program.
-
-To ``propagate'' a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy.  Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
-To ``convey'' a work means any kind of propagation that enables other
-parties to make or receive copies.  Mere interaction with a user
-through a computer network, with no transfer of a copy, is not
-conveying.
-
-An interactive user interface displays ``Appropriate Legal Notices'' to
-the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License.  If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
-@item Source Code.
-
-The ``source code'' for a work means the preferred form of the work for
-making modifications to it.  ``Object code'' means any non-source form
-of a work.
-
-A ``Standard Interface'' means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
-The ``System Libraries'' of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form.  A
-``Major Component'', in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
-The ``Corresponding Source'' for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities.  However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work.  For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
-The Corresponding Source need not include anything that users can
-regenerate automatically from other parts of the Corresponding Source.
-
-The Corresponding Source for a work in source code form is that same
-work.
-
-@item Basic Permissions.
-
-All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met.  This License explicitly affirms your unlimited
-permission to run the unmodified Program.  The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work.  This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
-You may make, run and propagate covered works that you do not convey,
-without conditions so long as your license otherwise remains in force.
-You may convey covered works to others for the sole purpose of having
-them make modifications exclusively for you, or provide you with
-facilities for running those works, provided that you comply with the
-terms of this License in conveying all material for which you do not
-control copyright.  Those thus making or running the covered works for
-you must do so exclusively on your behalf, under your direction and
-control, on terms that prohibit them from making any copies of your
-copyrighted material outside their relationship with you.
-
-Conveying under any other circumstances is permitted solely under the
-conditions stated below.  Sublicensing is not allowed; section 10
-makes it unnecessary.
-
-@item Protecting Users' Legal Rights From Anti-Circumvention Law.
-
-No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
-When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such
-circumvention is effected by exercising rights under this License with
-respect to the covered work, and you disclaim any intention to limit
-operation or modification of the work as a means of enforcing, against
-the work's users, your or third parties' legal rights to forbid
-circumvention of technological measures.
-
-@item Conveying Verbatim Copies.
-
-You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
-You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
-@item Conveying Modified Source Versions.
-
-You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these
-conditions:
-
-@enumerate a
-@item
-The work must carry prominent notices stating that you modified it,
-and giving a relevant date.
-
-@item
-The work must carry prominent notices stating that it is released
-under this License and any conditions added under section 7.  This
-requirement modifies the requirement in section 4 to ``keep intact all
-notices''.
-
-@item
-You must license the entire work, as a whole, under this License to
-anyone who comes into possession of a copy.  This License will
-therefore apply, along with any applicable section 7 additional terms,
-to the whole of the work, and all its parts, regardless of how they
-are packaged.  This License gives no permission to license the work in
-any other way, but it does not invalidate such permission if you have
-separately received it.
-
-@item
-If the work has interactive user interfaces, each must display
-Appropriate Legal Notices; however, if the Program has interactive
-interfaces that do not display Appropriate Legal Notices, your work
-need not make them do so.
-@end enumerate
-
-A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-``aggregate'' if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit.  Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
-@item  Conveying Non-Source Forms.
-
-You may convey a covered work in object code form under the terms of
-sections 4 and 5, provided that you also convey the machine-readable
-Corresponding Source under the terms of this License, in one of these
-ways:
-
-@enumerate a
-@item
-Convey the object code in, or embodied in, a physical product
-(including a physical distribution medium), accompanied by the
-Corresponding Source fixed on a durable physical medium customarily
-used for software interchange.
-
-@item
-Convey the object code in, or embodied in, a physical product
-(including a physical distribution medium), accompanied by a written
-offer, valid for at least three years and valid for as long as you
-offer spare parts or customer support for that product model, to give
-anyone who possesses the object code either (1) a copy of the
-Corresponding Source for all the software in the product that is
-covered by this License, on a durable physical medium customarily used
-for software interchange, for a price no more than your reasonable
-cost of physically performing this conveying of source, or (2) access
-to copy the Corresponding Source from a network server at no charge.
-
-@item
-Convey individual copies of the object code with a copy of the written
-offer to provide the Corresponding Source.  This alternative is
-allowed only occasionally and noncommercially, and only if you
-received the object code with such an offer, in accord with subsection
-6b.
-
-@item
-Convey the object code by offering access from a designated place
-(gratis or for a charge), and offer equivalent access to the
-Corresponding Source in the same way through the same place at no
-further charge.  You need not require recipients to copy the
-Corresponding Source along with the object code.  If the place to copy
-the object code is a network server, the Corresponding Source may be
-on a different server (operated by you or a third party) that supports
-equivalent copying facilities, provided you maintain clear directions
-next to the object code saying where to find the Corresponding Source.
-Regardless of what server hosts the Corresponding Source, you remain
-obligated to ensure that it is available for as long as needed to
-satisfy these requirements.
-
-@item
-Convey the object code using peer-to-peer transmission, provided you
-inform other peers where the object code and Corresponding Source of
-the work are being offered to the general public at no charge under
-subsection 6d.
-
-@end enumerate
-
-A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
-A ``User Product'' is either (1) a ``consumer product'', which means any
-tangible personal property which is normally used for personal,
-family, or household purposes, or (2) anything designed or sold for
-incorporation into a dwelling.  In determining whether a product is a
-consumer product, doubtful cases shall be resolved in favor of
-coverage.  For a particular product received by a particular user,
-``normally used'' refers to a typical or common use of that class of
-product, regardless of the status of the particular user or of the way
-in which the particular user actually uses, or expects or is expected
-to use, the product.  A product is a consumer product regardless of
-whether the product has substantial commercial, industrial or
-non-consumer uses, unless such uses represent the only significant
-mode of use of the product.
-
-``Installation Information'' for a User Product means any methods,
-procedures, authorization keys, or other information required to
-install and execute modified versions of a covered work in that User
-Product from a modified version of its Corresponding Source.  The
-information must suffice to ensure that the continued functioning of
-the modified object code is in no case prevented or interfered with
-solely because modification has been made.
-
-If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information.  But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
-The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or
-updates for a work that has been modified or installed by the
-recipient, or for the User Product in which it has been modified or
-installed.  Access to a network may be denied when the modification
-itself materially and adversely affects the operation of the network
-or violates the rules and protocols for communication across the
-network.
-
-Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
-@item Additional Terms.
-
-``Additional permissions'' are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law.  If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
-When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it.  (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.)  You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
-Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders
-of that material) supplement the terms of this License with terms:
-
-@enumerate a
-@item
-Disclaiming warranty or limiting liability differently from the terms
-of sections 15 and 16 of this License; or
-
-@item
-Requiring preservation of specified reasonable legal notices or author
-attributions in that material or in the Appropriate Legal Notices
-displayed by works containing it; or
-
-@item
-Prohibiting misrepresentation of the origin of that material, or
-requiring that modified versions of such material be marked in
-reasonable ways as different from the original version; or
-
-@item
-Limiting the use for publicity purposes of names of licensors or
-authors of the material; or
-
-@item
-Declining to grant rights under trademark law for use of some trade
-names, trademarks, or service marks; or
-
-@item
-Requiring indemnification of licensors and authors of that material by
-anyone who conveys the material (or modified versions of it) with
-contractual assumptions of liability to the recipient, for any
-liability that these contractual assumptions directly impose on those
-licensors and authors.
-@end enumerate
-
-All other non-permissive additional terms are considered ``further
-restrictions'' within the meaning of section 10.  If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term.  If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
-If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
-Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions; the
-above requirements apply either way.
-
-@item Termination.
-
-You may not propagate or modify a covered work except as expressly
-provided under this License.  Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
-However, if you cease all violation of this License, then your license
-from a particular copyright holder is reinstated (a) provisionally,
-unless and until the copyright holder explicitly and finally
-terminates your license, and (b) permanently, if the copyright holder
-fails to notify you of the violation by some reasonable means prior to
-60 days after the cessation.
-
-Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
-Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License.  If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
-@item Acceptance Not Required for Having Copies.
-
-You are not required to accept this License in order to receive or run
-a copy of the Program.  Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance.  However,
-nothing other than this License grants you permission to propagate or
-modify any covered work.  These actions infringe copyright if you do
-not accept this License.  Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
-@item Automatic Licensing of Downstream Recipients.
-
-Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License.  You are not responsible
-for enforcing compliance by third parties with this License.
-
-An ``entity transaction'' is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations.  If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
-You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License.  For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
-@item Patents.
-
-A ``contributor'' is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based.  The
-work thus licensed is called the contributor's ``contributor version''.
-
-A contributor's ``essential patent claims'' are all patent claims owned
-or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version.  For
-purposes of this definition, ``control'' includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
-Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
-In the following three paragraphs, a ``patent license'' is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement).  To ``grant'' such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
-If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients.  ``Knowingly relying'' means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
-If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
-A patent license is ``discriminatory'' if it does not include within the
-scope of its coverage, prohibits the exercise of, or is conditioned on
-the non-exercise of one or more of the rights that are specifically
-granted under this License.  You may not convey a covered work if you
-are a party to an arrangement with a third party that is in the
-business of distributing software, under which you make payment to the
-third party based on the extent of your activity of conveying the
-work, and under which the third party grants, to any of the parties
-who would receive the covered work from you, a discriminatory patent
-license (a) in connection with copies of the covered work conveyed by
-you (or copies made from those copies), or (b) primarily for and in
-connection with specific products or compilations that contain the
-covered work, unless you entered into that arrangement, or that patent
-license was granted, prior to 28 March 2007.
-
-Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
-@item No Surrender of Others' Freedom.
-
-If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot convey
-a covered work so as to satisfy simultaneously your obligations under
-this License and any other pertinent obligations, then as a
-consequence you may not convey it at all.  For example, if you agree
-to terms that obligate you to collect a royalty for further conveying
-from those to whom you convey the Program, the only way you could
-satisfy both those terms and this License would be to refrain entirely
-from conveying the Program.
-
-@item Use with the GNU Affero General Public License.
-
-Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work.  The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
-@item Revised Versions of this License.
-
-The Free Software Foundation may publish revised and/or new versions
-of the GNU General Public License from time to time.  Such new
-versions will be similar in spirit to the present version, but may
-differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies that a certain numbered version of the GNU General Public
-License ``or any later version'' applies to it, you have the option of
-following the terms and conditions either of that numbered version or
-of any later version published by the Free Software Foundation.  If
-the Program does not specify a version number of the GNU General
-Public License, you may choose any version ever published by the Free
-Software Foundation.
-
-If the Program specifies that a proxy can decide which future versions
-of the GNU General Public License can be used, that proxy's public
-statement of acceptance of a version permanently authorizes you to
-choose that version for the Program.
-
-Later license versions may give you additional or different
-permissions.  However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
-@item Disclaimer of Warranty.
-
-THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM ``AS IS'' WITHOUT
-WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND
-PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE PROGRAM PROVE
-DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR
-CORRECTION.
-
-@item Limitation of Liability.
-
-IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR
-CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
-ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT
-NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR
-LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM
-TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER
-PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-
-@item Interpretation of Sections 15 and 16.
-
-If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
-@end enumerate
-
-@heading END OF TERMS AND CONDITIONS
-
-@heading How to Apply These Terms to Your New Programs
-
-If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these
-terms.
-
-To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the ``copyright'' line and a pointer to where the full notice is found.
-
-@smallexample
-@var{one line to give the program's name and a brief idea of what it does.}
-Copyright (C) @var{year} @var{name of author}
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or (at
-your option) any later version.
-
-This program is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see @url{http://www.gnu.org/licenses/}.
-@end smallexample
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
-@smallexample
-@var{program} Copyright (C) @var{year} @var{name of author}
-This program comes with ABSOLUTELY NO WARRANTY; for details type @samp{show w}.
-This is free software, and you are welcome to redistribute it
-under certain conditions; type @samp{show c} for details.
-@end smallexample
-
-The hypothetical commands @samp{show w} and @samp{show c} should show
-the appropriate parts of the General Public License.  Of course, your
-program's commands might be different; for a GUI interface, you would
-use an ``about box''.
-
-You should also get your employer (if you work as a programmer) or school,
-if any, to sign a ``copyright disclaimer'' for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-@url{http://www.gnu.org/licenses/}.
-
-The GNU General Public License does not permit incorporating your
-program into proprietary programs.  If your program is a subroutine
-library, you may consider it more useful to permit linking proprietary
-applications with the library.  If this is what you want to do, use
-the GNU Lesser General Public License instead of this License.  But
-first, please read @url{http://www.gnu.org/philosophy/why-not-lgpl.html}.
diff --git a/gtk/.dirstamp b/gtk/.dirstamp
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/gtk/xboard.c b/gtk/xboard.c
deleted file mode 100644 (file)
index 5ad75b1..0000000
+++ /dev/null
@@ -1,2518 +0,0 @@
-/*
- * xboard.c -- X front end for XBoard
- *
- * Copyright 1991 by Digital Equipment Corporation, Maynard,
- * Massachusetts.
- *
- * Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006,
- * 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free
- * Software Foundation, Inc.
- *
- * The following terms apply to Digital Equipment Corporation's copyright
- * interest in XBoard:
- * ------------------------------------------------------------------------
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notice appear in all copies and that
- * both that copyright notice and this permission notice appear in
- * supporting documentation, and that the name of Digital not be
- * used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- *
- * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- * ------------------------------------------------------------------------
- *
- * The following terms apply to the enhanced version of XBoard
- * distributed by the Free Software Foundation:
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-#define HIGHDRAG 1
-
-#include "config.h"
-
-#include <stdio.h>
-#include <ctype.h>
-#include <signal.h>
-#include <errno.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <pwd.h>
-#include <math.h>
-#include <cairo/cairo.h>
-#include <gtk/gtk.h>
-
-#if !OMIT_SOCKETS
-# if HAVE_SYS_SOCKET_H
-#  include <sys/socket.h>
-#  include <netinet/in.h>
-#  include <netdb.h>
-# else /* not HAVE_SYS_SOCKET_H */
-#  if HAVE_LAN_SOCKET_H
-#   include <lan/socket.h>
-#   include <lan/in.h>
-#   include <lan/netdb.h>
-#  else /* not HAVE_LAN_SOCKET_H */
-#   define OMIT_SOCKETS 1
-#  endif /* not HAVE_LAN_SOCKET_H */
-# endif /* not HAVE_SYS_SOCKET_H */
-#endif /* !OMIT_SOCKETS */
-
-#if STDC_HEADERS
-# include <stdlib.h>
-# include <string.h>
-#else /* not STDC_HEADERS */
-extern char *getenv();
-# if HAVE_STRING_H
-#  include <string.h>
-# else /* not HAVE_STRING_H */
-#  include <strings.h>
-# endif /* not HAVE_STRING_H */
-#endif /* not STDC_HEADERS */
-
-#if HAVE_SYS_FCNTL_H
-# include <sys/fcntl.h>
-#else /* not HAVE_SYS_FCNTL_H */
-# if HAVE_FCNTL_H
-#  include <fcntl.h>
-# endif /* HAVE_FCNTL_H */
-#endif /* not HAVE_SYS_FCNTL_H */
-
-#if HAVE_SYS_SYSTEMINFO_H
-# include <sys/systeminfo.h>
-#endif /* HAVE_SYS_SYSTEMINFO_H */
-
-#if TIME_WITH_SYS_TIME
-# include <sys/time.h>
-# include <time.h>
-#else
-# if HAVE_SYS_TIME_H
-#  include <sys/time.h>
-# else
-#  include <time.h>
-# endif
-#endif
-
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
-#if HAVE_SYS_WAIT_H
-# include <sys/wait.h>
-#endif
-
-#if HAVE_DIRENT_H
-# include <dirent.h>
-# define NAMLEN(dirent) strlen((dirent)->d_name)
-# define HAVE_DIR_STRUCT
-#else
-# define dirent direct
-# define NAMLEN(dirent) (dirent)->d_namlen
-# if HAVE_SYS_NDIR_H
-#  include <sys/ndir.h>
-#  define HAVE_DIR_STRUCT
-# endif
-# if HAVE_SYS_DIR_H
-#  include <sys/dir.h>
-#  define HAVE_DIR_STRUCT
-# endif
-# if HAVE_NDIR_H
-#  include <ndir.h>
-#  define HAVE_DIR_STRUCT
-# endif
-#endif
-
-#if ENABLE_NLS
-#include <locale.h>
-#endif
-
-// [HGM] bitmaps: put before incuding the bitmaps / pixmaps, to know how many piece types there are.
-#include "common.h"
-
-#include "frontend.h"
-#include "backend.h"
-#include "backendz.h"
-#include "moves.h"
-#include "xboard.h"
-#include "xboard2.h"
-#include "childio.h"
-#include "menus.h"
-#include "board.h"
-#include "dialogs.h"
-#include "engineoutput.h"
-#include "usystem.h"
-#include "gettext.h"
-#include "draw.h"
-
-#ifdef OSXAPP
-#  include <gtkmacintegration/gtkosxapplication.h>
-   // prevent pathname of positional file argument provided by OS X being be mistaken for option name
-   // (price is that we won't recognize Windows option format anymore).
-#  define SLASH '-'
-#  define IMG ".png"
-   // redefine some defaults
-#  undef ICS_LOGON
-#  undef LOCALEDIR
-#  undef SETTINGS_FILE
-#  define ICS_LOGON "Library/Preferences/XboardICS.conf"
-#  define LOCALEDIR localeDir
-#  define SETTINGS_FILE masterSettings
-#  define SYNC_MENUBAR gtkosx_application_sync_menubar(theApp)
-   char localeDir[MSG_SIZ];
-   char masterSettings[MSG_SIZ];
-#else
-#  define SLASH '/'
-#  define IMG ".svg"
-#  define SYNC_MENUBAR
-#endif
-
-#ifdef __EMX__
-#ifndef HAVE_USLEEP
-#define HAVE_USLEEP
-#endif
-#define usleep(t)   _sleep2(((t)+500)/1000)
-#endif
-
-#ifdef ENABLE_NLS
-# define  _(s) gettext (s)
-# define N_(s) gettext_noop (s)
-#else
-# define  _(s) (s)
-# define N_(s)  s
-#endif
-
-int main P((int argc, char **argv));
-RETSIGTYPE CmailSigHandler P((int sig));
-RETSIGTYPE IntSigHandler P((int sig));
-RETSIGTYPE TermSizeSigHandler P((int sig));
-char *InsertPxlSize P((char *pattern, int targetPxlSize));
-#ifdef TODO_GTK
-#if ENABLE_NLS
-XFontSet CreateFontSet P((char *base_fnt_lst));
-#else
-char *FindFont P((char *pattern, int targetPxlSize));
-#endif
-#endif
-void DelayedDrag P((void));
-void ICSInputBoxPopUp P((void));
-void MoveTypeInProc P((GdkEventKey *eventkey));
-gboolean KeyPressProc P((GtkWindow *window, GdkEventKey *eventkey, gpointer data));
-Boolean TempBackwardActive = False;
-void DisplayMove P((int moveNumber));
-void update_ics_width P(());
-int CopyMemoProc P(());
-static gboolean EventProc P((GtkWidget *widget, GdkEvent *event, gpointer g));
-static int FindLogo P((char *place, char *name, char *buf));
-
-#ifdef TODO_GTK
-#if ENABLE_NLS
-XFontSet fontSet, clockFontSet;
-#else
-Font clockFontID;
-XFontStruct *clockFontStruct;
-#endif
-Font coordFontID, countFontID;
-XFontStruct *coordFontStruct, *countFontStruct;
-#else
-void *shellWidget, *formWidget, *boardWidget, *titleWidget, *dropMenu, *menuBarWidget;
-GtkWidget       *mainwindow;
-#endif
-Option *optList; // contains all widgets of main window
-char *layoutName;
-
-char installDir[] = "."; // [HGM] UCI: needed for UCI; probably needs run-time initializtion
-
-/* pixbufs */
-static GdkPixbuf       *mainwindowIcon=NULL;
-static GdkPixbuf       *WhiteIcon=NULL;
-static GdkPixbuf       *BlackIcon=NULL;
-
-/* key board accelerators */
-GtkAccelGroup *GtkAccelerators;
-
-typedef unsigned int BoardSize;
-BoardSize boardSize;
-Boolean chessProgram;
-int initialSquareSize;
-
-int  minX, minY; // [HGM] placement: volatile limits on upper-left corner
-int smallLayout = 0, tinyLayout = 0,
-  marginW, marginH, // [HGM] for run-time resizing
-  fromX = -1, fromY = -1, toX, toY, commentUp = False,
-  errorExitStatus = -1, defaultLineGap;
-#ifdef TODO_GTK
-Dimension textHeight;
-#endif
-char *chessDir, *programName, *programVersion;
-Boolean alwaysOnTop = False;
-char *icsTextMenuString;
-char *icsNames;
-char *firstChessProgramNames;
-char *secondChessProgramNames;
-
-WindowPlacement wpMain;
-WindowPlacement wpConsole;
-WindowPlacement wpComment;
-WindowPlacement wpMoveHistory;
-WindowPlacement wpEvalGraph;
-WindowPlacement wpEngineOutput;
-WindowPlacement wpGameList;
-WindowPlacement wpTags;
-WindowPlacement wpDualBoard;
-
-/* This magic number is the number of intermediate frames used
-   in each half of the animation. For short moves it's reduced
-   by 1. The total number of frames will be factor * 2 + 1.  */
-#define kFactor           4
-
-SizeDefaults sizeDefaults[] = SIZE_DEFAULTS;
-
-typedef struct {
-    char piece;
-    char* widget;
-} DropMenuEnables;
-
-DropMenuEnables dmEnables[] = {
-    { 'P', "Pawn" },
-    { 'N', "Knight" },
-    { 'B', "Bishop" },
-    { 'R', "Rook" },
-    { 'Q', "Queen" }
-};
-
-#ifdef TODO_GTK
-XtResource clientResources[] = {
-    { "flashCount", "flashCount", XtRInt, sizeof(int),
-       XtOffset(AppDataPtr, flashCount), XtRImmediate,
-       (XtPointer) FLASH_COUNT  },
-};
-#endif
-
-/* keyboard shortcuts not yet transistioned int menuitem @ menu.c */
-char globalTranslations[] =
-  ":Ctrl<Key>Down: LoadSelectedProc(3) \n \
-   :Ctrl<Key>Up: LoadSelectedProc(-3) \n \
-   :<KeyDown>Return: TempBackwardProc() \n \
-   :<KeyUp>Return: TempForwardProc() \n";
-
-char ICSInputTranslations[] =
-    "<Key>Up: UpKeyProc() \n "
-    "<Key>Down: DownKeyProc() \n "
-    "<Key>Return: EnterKeyProc() \n";
-
-// [HGM] vari: another hideous kludge: call extend-end first so we can be sure select-start works,
-//             as the widget is destroyed before the up-click can call extend-end
-char commentTranslations[] = "<Btn3Down>: extend-end() select-start() CommentClick() \n";
-
-#ifdef TODO_GTK
-String xboardResources[] = {
-    "*Error*translations: #override\\n <Key>Return: ErrorPopDown()",
-    NULL
-  };
-#endif
-
-void
-BoardToTop ()
-{
-  gtk_window_present(GTK_WINDOW(shells[BoardWindow]));
-}
-
-//---------------------------------------------------------------------------------------------------------
-// some symbol definitions to provide the proper (= XBoard) context for the code in args.h
-#define XBOARD True
-#define JAWS_ARGS
-#define CW_USEDEFAULT (1<<31)
-#define ICS_TEXT_MENU_SIZE 90
-#define DEBUG_FILE "xboard.debug"
-#define SetCurrentDirectory chdir
-#define GetCurrentDirectory(SIZE, NAME) getcwd(NAME, SIZE)
-#define OPTCHAR "-"
-#define SEPCHAR " "
-
-// The option definition and parsing code common to XBoard and WinBoard is collected in this file
-#include "args.h"
-
-// front-end part of option handling
-
-// [HGM] This platform-dependent table provides the location for storing the color info
-extern char *crWhite, * crBlack;
-
-void *
-colorVariable[] = {
-  &appData.whitePieceColor,
-  &appData.blackPieceColor,
-  &appData.lightSquareColor,
-  &appData.darkSquareColor,
-  &appData.highlightSquareColor,
-  &appData.premoveHighlightColor,
-  &appData.lowTimeWarningColor,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  &crWhite,
-  &crBlack,
-  NULL
-};
-
-// [HGM] font: keep a font for each square size, even non-stndard ones
-#define NUM_SIZES 18
-Boolean fontIsSet[NUM_FONTS], fontValid[NUM_FONTS][MAX_SIZE];
-char *fontTable[NUM_FONTS][MAX_SIZE];
-
-void
-ParseFont (char *name, int number)
-{ // in XBoard, only 2 of the fonts are currently implemented, and we just copy their name
-  int size;
-  if(sscanf(name, "size%d:", &size)) {
-    // [HGM] font: font is meant for specific boardSize (likely from settings file);
-    //       defer processing it until we know if it matches our board size
-    if(!strstr(name, "-*-") &&       // ignore X-fonts
-       size >= 0 && size<MAX_SIZE) { // for now, fixed limit
-       fontTable[number][size] = strdup(strchr(name, ':')+1);
-       fontValid[number][size] = True;
-    }
-    return;
-  }
-  switch(number) {
-    case 0: // CLOCK_FONT
-       appData.clockFont = strdup(name);
-      break;
-    case 1: // MESSAGE_FONT
-       appData.font = strdup(name);
-      break;
-    case 2: // COORD_FONT
-       appData.coordFont = strdup(name);
-      break;
-    case CONSOLE_FONT:
-       appData.icsFont = strdup(name);
-      break;
-    case EDITTAGS_FONT:
-       appData.tagsFont = strdup(name);
-      break;
-    case COMMENT_FONT:
-       appData.commentFont = strdup(name);
-      break;
-    case MOVEHISTORY_FONT:
-       appData.historyFont = strdup(name);
-      break;
-    case GAMELIST_FONT:
-       appData.gameListFont = strdup(name);
-      break;
-    default:
-      return;
-  }
-  fontIsSet[number] = True; // [HGM] font: indicate a font was specified (not from settings file)
-}
-
-void
-SetFontDefaults ()
-{ // only 2 fonts currently
-  appData.clockFont = strdup(CLOCK_FONT_NAME);
-  appData.coordFont = strdup(COORD_FONT_NAME);
-  appData.font  =   strdup(DEFAULT_FONT_NAME);
-  appData.icsFont = strdup(CONSOLE_FONT_NAME);
-  appData.tagsFont = strdup(TAGS_FONT_NAME);
-  appData.commentFont = strdup(COMMENT_FONT_NAME);
-  appData.historyFont = strdup(HISTORY_FONT_NAME);
-  appData.gameListFont = strdup(GAMELIST_FONT_NAME);
-}
-
-void
-ChangeFont (int force, char **font, int fnr, int size, char *def, int pix)
-{
-    if(!fontValid[fnr][size]) {
-       if(fontIsSet[fnr] && !force) return; // unless forced we do not replace an explicitly specified font by a default
-       ASSIGN(fontTable[fnr][size], def);   // use default
-       fontIsSet[fnr] = False;
-    } else fontIsSet[fnr] = True;
-    FREE(*font); *font = InsertPxlSize(fontTable[fnr][size], pix);
-}
-
-void
-CreateFonts ()
-{ // no-op, until we identify the code for this already in XBoard and move it here
-}
-
-void
-ParseColor (int n, char *name)
-{ // in XBoard, just copy the color-name string
-  if(colorVariable[n] && *name == '#') *(char**)colorVariable[n] = strdup(name);
-}
-
-char *
-Col2Text (int n)
-{
-    return *(char**)colorVariable[n];
-}
-
-void
-ParseTextAttribs (ColorClass cc, char *s)
-{
-    (&appData.colorShout)[cc] = strdup(s);
-}
-
-void
-ParseBoardSize (void *addr, char *name)
-{
-    appData.boardSize = strdup(name);
-}
-
-void
-LoadAllSounds ()
-{ // In XBoard the sound-playing program takes care of obtaining the actual sound
-}
-
-void
-SetCommPortDefaults ()
-{ // for now, this is a no-op, as the corresponding option does not exist in XBoard
-}
-
-// [HGM] args: these three cases taken out to stay in front-end
-void
-SaveFontArg (FILE *f, ArgDescriptor *ad)
-{
-  char *name;
-  int i, n = (int)(intptr_t)ad->argLoc;
-  switch(n) {
-    case 0: // CLOCK_FONT
-       name = appData.clockFont;
-      break;
-    case 1: // MESSAGE_FONT
-       name = appData.font;
-      break;
-    case 2: // COORD_FONT
-       name = appData.coordFont;
-      break;
-    case CONSOLE_FONT:
-       name = appData.icsFont;
-      break;
-    case EDITTAGS_FONT:
-       name = appData.tagsFont;
-      break;
-    case COMMENT_FONT:
-       name = appData.commentFont;
-      break;
-    case MOVEHISTORY_FONT:
-       name = appData.historyFont;
-      break;
-    case GAMELIST_FONT:
-       name = appData.gameListFont;
-      break;
-    default:
-      return;
-  }
-  if(fontIsSet[n])           // only save fonts that were not defaults
-  for(i=0; i<NUM_SIZES; i++) // [HGM] font: current font becomes standard for current size
-    if(sizeDefaults[i].squareSize == initialSquareSize) { // only for standard sizes!
-       ASSIGN(fontTable[n][initialSquareSize], name);
-       fontValid[n][initialSquareSize] = True;
-       break;
-  }
-  for(i=0; i<MAX_SIZE; i++) if(fontValid[n][i]) // [HGM] font: store all standard fonts
-    fprintf(f, OPTCHAR "%s" SEPCHAR "\"size%d:%s\"\n", ad->argName, i, fontTable[n][i]);
-}
-
-void
-ExportSounds ()
-{ // nothing to do, as the sounds are at all times represented by their text-string names already
-}
-
-void
-SaveAttribsArg (FILE *f, ArgDescriptor *ad)
-{      // here the "argLoc" defines a table index. It could have contained the 'ta' pointer itself, though
-       fprintf(f, OPTCHAR "%s" SEPCHAR "%s\n", ad->argName, (&appData.colorShout)[(int)(intptr_t)ad->argLoc]);
-}
-
-void
-SaveColor (FILE *f, ArgDescriptor *ad)
-{      // in WinBoard the color is an int and has to be converted to text. In X it would be a string already?
-       if(colorVariable[(int)(intptr_t)ad->argLoc])
-       fprintf(f, OPTCHAR "%s" SEPCHAR "%s\n", ad->argName, *(char**)colorVariable[(int)(intptr_t)ad->argLoc]);
-}
-
-void
-SaveBoardSize (FILE *f, char *name, void *addr)
-{ // wrapper to shield back-end from BoardSize & sizeInfo
-  fprintf(f, OPTCHAR "%s" SEPCHAR "%s\n", name, appData.boardSize);
-}
-
-void
-ParseCommPortSettings (char *s)
-{ // no such option in XBoard (yet)
-}
-
-int frameX, frameY;
-
-void
-GetActualPlacement (GtkWidget *shell, WindowPlacement *wp)
-{
-  GtkAllocation a;
-  if(!shell) return;
-  gtk_widget_get_allocation(shell, &a);
-  gtk_window_get_position(GTK_WINDOW(shell), &a.x, &a.y);
-  wp->x = a.x;
-  wp->y = a.y;
-  wp->width = a.width;
-  wp->height = a.height;
-//printf("placement: (%d,%d) %dx%d\n", a.x, a.y, a.width, a.height);
-  frameX = 3; frameY = 3; // remember to decide if windows touch
-}
-
-void
-GetPlacement (DialogClass dlg, WindowPlacement *wp)
-{ // wrapper to shield back-end from widget type
-  if(shellUp[dlg]) GetActualPlacement(shells[dlg], wp);
-}
-
-void
-GetWindowCoords ()
-{ // wrapper to shield use of window handles from back-end (make addressible by number?)
-  // In XBoard this will have to wait until awareness of window parameters is implemented
-  GetActualPlacement(shellWidget, &wpMain);
-  if(shellUp[EngOutDlg]) GetActualPlacement(shells[EngOutDlg], &wpEngineOutput);
-  if(shellUp[HistoryDlg]) GetActualPlacement(shells[HistoryDlg], &wpMoveHistory);
-  if(shellUp[EvalGraphDlg]) GetActualPlacement(shells[EvalGraphDlg], &wpEvalGraph);
-  if(shellUp[GameListDlg]) GetActualPlacement(shells[GameListDlg], &wpGameList);
-  if(shellUp[CommentDlg]) GetActualPlacement(shells[CommentDlg], &wpComment);
-  if(shellUp[TagsDlg]) GetActualPlacement(shells[TagsDlg], &wpTags);
-  GetPlacement(ChatDlg, &wpConsole); if(appData.icsActive) wpConsole.visible = shellUp[ChatDlg];
-}
-
-void
-PrintCommPortSettings (FILE *f, char *name)
-{ // This option does not exist in XBoard
-}
-
-void
-EnsureOnScreen (int *x, int *y, int minX, int minY)
-{
-  return;
-}
-
-int
-MainWindowUp ()
-{ // [HGM] args: allows testing if main window is realized from back-end
-  return DialogExists(BoardWindow);
-}
-
-void
-PopUpStartupDialog ()
-{  // start menu not implemented in XBoard
-}
-
-char *
-ConvertToLine (int argc, char **argv)
-{
-  static char line[128*1024], buf[1024];
-  int i;
-
-  line[0] = NULLCHAR;
-  for(i=1; i<argc; i++)
-    {
-      if( (strchr(argv[i], ' ') || strchr(argv[i], '\n') ||strchr(argv[i], '\t') || argv[i][0] == NULLCHAR)
-         && argv[i][0] != '{' )
-       snprintf(buf, sizeof(buf)/sizeof(buf[0]), "{%s} ", argv[i]);
-      else
-       snprintf(buf, sizeof(buf)/sizeof(buf[0]), "%s ", argv[i]);
-      strncat(line, buf, 128*1024 - strlen(line) - 1 );
-    }
-
-  line[strlen(line)-1] = NULLCHAR;
-  return line;
-}
-
-//--------------------------------------------------------------------------------------------
-
-int clockKludge;
-
-void
-ResizeBoardWindow (int w, int h, int inhibit)
-{
-    GtkAllocation a;
-    int bw;
-//    if(clockKludge) return; // ignore as long as clock does not have final height
-    gtk_widget_get_allocation(optList[W_BOARD].handle, &a);
-    bw = a.width;
-    gtk_widget_get_allocation(shellWidget, &a);
-    marginW = a.width - bw;
-    gtk_widget_get_allocation(optList[W_WHITE].handle, &a);
-    gtk_widget_set_size_request(optList[W_BOARD].handle, w, h);   // protect board widget
-//    w += marginW + 1; // [HGM] not sure why the +1 is (sometimes) needed...
-//    h += marginH + a.height + 1;
-    gtk_window_resize(GTK_WINDOW(shellWidget), w, 10);
-    DoEvents();
-    gtk_widget_set_size_request(optList[W_BOARD].handle, 100, 100); // liberate board again
-}
-
-int
-MakeColors ()
-{   // dummy, as the GTK code does not make colors in advance
-    return FALSE;
-}
-
-void
-InitializeFonts (int clockFontPxlSize, int coordFontPxlSize, int fontPxlSize)
-{   // determine what fonts to use, and create them
-
-    if(!fontIsSet[CLOCK_FONT] && fontValid[CLOCK_FONT][squareSize])
-       appData.clockFont = fontTable[CLOCK_FONT][squareSize], fontIsSet[CLOCK_FONT] = True;
-    if(!fontIsSet[MESSAGE_FONT] && fontValid[MESSAGE_FONT][squareSize])
-       appData.font = fontTable[MESSAGE_FONT][squareSize], fontIsSet[MESSAGE_FONT] = True;
-    if(!fontIsSet[COORD_FONT] && fontValid[COORD_FONT][squareSize])
-       appData.coordFont = fontTable[COORD_FONT][squareSize], fontIsSet[COORD_FONT] = True;
-    if(!fontIsSet[CONSOLE_FONT] && fontValid[CONSOLE_FONT][squareSize])
-       appData.icsFont = fontTable[CONSOLE_FONT][squareSize], fontIsSet[CONSOLE_FONT] = True;
-    if(!fontIsSet[EDITTAGS_FONT] && fontValid[EDITTAGS_FONT][squareSize])
-       appData.tagsFont = fontTable[EDITTAGS_FONT][squareSize], fontIsSet[EDITTAGS_FONT] = True;
-    if(!fontIsSet[COMMENT_FONT] && fontValid[COMMENT_FONT][squareSize])
-       appData.commentFont = fontTable[COMMENT_FONT][squareSize], fontIsSet[COMMENT_FONT] = True;
-    if(!fontIsSet[MOVEHISTORY_FONT] && fontValid[MOVEHISTORY_FONT][squareSize])
-       appData.historyFont = fontTable[MOVEHISTORY_FONT][squareSize], fontIsSet[MOVEHISTORY_FONT] = True;
-    if(!fontIsSet[GAMELIST_FONT] && fontValid[GAMELIST_FONT][squareSize])
-       appData.gameListFont = fontTable[GAMELIST_FONT][squareSize], fontIsSet[GAMELIST_FONT] = True;
-
-    appData.font = InsertPxlSize(appData.font, coordFontPxlSize);
-    appData.clockFont = InsertPxlSize(appData.clockFont, clockFontPxlSize);
-    appData.coordFont = InsertPxlSize(appData.coordFont, coordFontPxlSize);
-    appData.icsFont = InsertPxlSize(appData.icsFont, coordFontPxlSize);
-    appData.tagsFont = InsertPxlSize(appData.tagsFont, coordFontPxlSize);
-    appData.commentFont = InsertPxlSize(appData.commentFont, coordFontPxlSize);
-    appData.historyFont = InsertPxlSize(appData.historyFont, coordFontPxlSize);
-    appData.gameListFont = InsertPxlSize(appData.gameListFont, coordFontPxlSize);
-
-#ifdef TODO_GTK
-    XrmValue vTo;
-    XrmDatabase xdb;
-
-    if(!fontIsSet[CLOCK_FONT] && fontValid[CLOCK_FONT][squareSize])
-       appData.clockFont = fontTable[CLOCK_FONT][squareSize];
-    if(!fontIsSet[MESSAGE_FONT] && fontValid[MESSAGE_FONT][squareSize])
-       appData.font = fontTable[MESSAGE_FONT][squareSize];
-    if(!fontIsSet[COORD_FONT] && fontValid[COORD_FONT][squareSize])
-       appData.coordFont = fontTable[COORD_FONT][squareSize];
-
-#if ENABLE_NLS
-    appData.font = InsertPxlSize(appData.font, fontPxlSize);
-    appData.clockFont = InsertPxlSize(appData.clockFont, clockFontPxlSize);
-    appData.coordFont = InsertPxlSize(appData.coordFont, coordFontPxlSize);
-    fontSet = CreateFontSet(appData.font);
-    clockFontSet = CreateFontSet(appData.clockFont);
-    {
-      /* For the coordFont, use the 0th font of the fontset. */
-      XFontSet coordFontSet = CreateFontSet(appData.coordFont);
-      XFontStruct **font_struct_list;
-      XFontSetExtents *fontSize;
-      char **font_name_list;
-      XFontsOfFontSet(coordFontSet, &font_struct_list, &font_name_list);
-      coordFontID = XLoadFont(xDisplay, font_name_list[0]);
-      coordFontStruct = XQueryFont(xDisplay, coordFontID);
-      fontSize = XExtentsOfFontSet(fontSet); // [HGM] figure out how much vertical space font takes
-      textHeight = fontSize->max_logical_extent.height + 5; // add borderWidth
-    }
-#else
-    appData.font = FindFont(appData.font, fontPxlSize);
-    appData.clockFont = FindFont(appData.clockFont, clockFontPxlSize);
-    appData.coordFont = FindFont(appData.coordFont, coordFontPxlSize);
-    clockFontID = XLoadFont(xDisplay, appData.clockFont);
-    clockFontStruct = XQueryFont(xDisplay, clockFontID);
-    coordFontID = XLoadFont(xDisplay, appData.coordFont);
-    coordFontStruct = XQueryFont(xDisplay, coordFontID);
-    // textHeight in !NLS mode!
-#endif
-    countFontID = coordFontID;  // [HGM] holdings
-    countFontStruct = coordFontStruct;
-
-    xdb = XtDatabase(xDisplay);
-#if ENABLE_NLS
-    XrmPutLineResource(&xdb, "*international: True");
-    vTo.size = sizeof(XFontSet);
-    vTo.addr = (XtPointer) &fontSet;
-    XrmPutResource(&xdb, "*fontSet", XtRFontSet, &vTo);
-#else
-    XrmPutStringResource(&xdb, "*font", appData.font);
-#endif
-#endif
-}
-
-char *
-PrintArg (ArgType t)
-{
-  char *p="";
-  switch(t) {
-    case ArgZ:
-    case ArgInt:      p = " N"; break;
-    case ArgString:   p = " STR"; break;
-    case ArgBoolean:  p = " TF"; break;
-    case ArgSettingsFilename:
-    case ArgBackupSettingsFile:
-    case ArgFilename: p = " FILE"; break;
-    case ArgX:        p = " Nx"; break;
-    case ArgY:        p = " Ny"; break;
-    case ArgAttribs:  p = " TEXTCOL"; break;
-    case ArgColor:    p = " COL"; break;
-    case ArgFont:     p = " FONT"; break;
-    case ArgBoardSize: p = " SIZE"; break;
-    case ArgFloat: p = " FLOAT"; break;
-    case ArgTrue:
-    case ArgFalse:
-    case ArgTwo:
-    case ArgNone:
-    case ArgCommSettings:
-    default:
-      break;
-  }
-  return p;
-}
-
-void
-PrintOptions ()
-{
-  char buf[MSG_SIZ];
-  int len=0;
-  ArgDescriptor *q, *p = argDescriptors+5;
-  printf("\nXBoard accepts the following options:\n"
-         "(N = integer, TF = true or false, STR = text string, FILE = filename,\n"
-         " Nx, Ny = relative coordinates, COL = color, FONT = X-font spec,\n"
-         " SIZE = board-size spec(s)\n"
-         " Within parentheses are short forms, or options to set to true or false.\n"
-         " Persistent options (saved in the settings file) are marked with *)\n\n");
-  while(p->argName) {
-    if(p->argType == ArgCommSettings) { p++; continue; } // XBoard has no comm port
-    snprintf(buf+len, MSG_SIZ, "-%s%s", p->argName, PrintArg(p->argType));
-    if(p->save) strcat(buf+len, "*");
-    for(q=p+1; q->argLoc == p->argLoc; q++) {
-      if(q->argName[0] == '-') continue;
-      strcat(buf+len, q == p+1 ? " (" : " ");
-      sprintf(buf+strlen(buf), "-%s%s", q->argName, PrintArg(q->argType));
-    }
-    if(q != p+1) strcat(buf+len, ")");
-    len = strlen(buf);
-    if(len > 39) len = 0, printf("%s\n", buf); else while(len < 39) buf[len++] = ' ';
-    p = q;
-  }
-  if(len) buf[len] = NULLCHAR, printf("%s\n", buf);
-}
-
-void
-SlaveResize (Option *opt)
-{
-    static int slaveW, slaveH, w, h;
-    GtkAllocation a;
-    if(!slaveH) {
-       gtk_widget_get_allocation(shells[DummyDlg], &a);
-       w = a.width; h = a.height;
-       gtk_widget_get_allocation(opt->handle, &a);
-       slaveW =  w - opt->max; // [HGM] needed to set new shellWidget size when we resize board
-       slaveH =  h - a.height + 13;
-   }
-  gtk_window_resize(GTK_WINDOW(shells[DummyDlg]), slaveW + opt->max, slaveH + opt->value);
-}
-
-GdkPixbuf *
-LoadIconFile (gchar *svgFilename)
-{
-    char buf[MSG_SIZ];
-
-    snprintf(buf, MSG_SIZ, "%s/%s" IMG, svgDir, svgFilename);
-    return gdk_pixbuf_new_from_file(buf, NULL);
-}
-
-#ifdef OSXAPP
-static char clickedFile[MSG_SIZ];
-TimeMark started;
-
-static gboolean
-StartNewXBoard(GtkosxApplication *app, gchar *path, gpointer user_data)
-{ // handler of OSX OpenFile signal, which sends us the filename of clicked file or first argument
-    TimeMark now;
-    GetTimeMark(&now);
-    if(1000*now.sec + now.ms - 1000*started.sec - started.ms < 1000) { // received during first second
-        strncpy(clickedFile, path, MSG_SIZ); // remember file name, but otherwise ignore
-    } else {       // we are running something presumably useful
-        char buf[MSG_SIZ];
-        snprintf(buf, MSG_SIZ, "open -n -a \"xboard\" --args \"%s\"", path);
-        system(buf); // start new instance on this file
-    }
-    return TRUE;
-}
-
-GtkosxApplication *theApp;
-#endif
-
-int
-main (int argc, char **argv)
-{
-    int i, clockFontPxlSize, coordFontPxlSize, fontPxlSize;
-    int boardWidth, w, h; //, boardHeight;
-    char *p;
-    int forceMono = False;
-
-    srandom(time(0)); // [HGM] book: make random truly random
-
-    setbuf(stdout, NULL);
-    setbuf(stderr, NULL);
-    debugFP = stderr;
-
-    if(argc > 1 && (!strcmp(argv[1], "-v" ) || !strcmp(argv[1], "--version" ))) {
-        printf("%s version %s\n\n  configure options: %s\n", PACKAGE_NAME, PACKAGE_VERSION, CONFIGURE_OPTIONS);
-       exit(0);
-    }
-
-    if(argc > 1 && !strcmp(argv[1], "--help" )) {
-       PrintOptions();
-       exit(0);
-    }
-
-    /* set up GTK */
-    gtk_init (&argc, &argv);
-#ifdef OSXAPP
-    {   // prepare to catch OX OpenFile signal, which will tell us the clicked file
-        char *path = gtkosx_application_get_bundle_path();
-#ifdef ENABLE_NLS
-        char *res_path = gtkosx_application_get_resource_path();
-        snprintf(localeDir, MSG_SIZ, "%s/share/locale", res_path); // redefine locale dir for OSX bundle
-#endif
-        GetTimeMark(&started); // remember start time
-        theApp = g_object_new(GTKOSX_TYPE_APPLICATION, NULL);
-        snprintf(masterSettings, MSG_SIZ, "%s/Contents/Resources/etc/xboard.conf", path);
-        snprintf(dataDir, MSG_SIZ, "%s/Contents/Resources/share/xboard", path);
-        snprintf(manDir, MSG_SIZ, "%s/Contents/Resources/share/man", path);
-        snprintf(svgDir, MSG_SIZ, "%s/themes/default", dataDir);
-        g_signal_connect(theApp, "NSApplicationOpenFile", G_CALLBACK(StartNewXBoard), NULL);
-        g_signal_connect(theApp, "NSApplicationWillTerminate", G_CALLBACK(ExitEvent), NULL);
-        // we must call application ready before we can get the signal,
-        // and supply a (dummy) menu bar before that, to avoid problems with dual apples in it
-        gtkosx_application_set_menu_bar(theApp, GTK_MENU_SHELL(gtk_menu_bar_new()));
-        gtkosx_application_ready(theApp);
-        if(argc == 1) {                  // called without args: OSX open-file signal might follow
-            static char *fakeArgv[3] = {NULL, clickedFile, NULL};
-            usleep(10000);               // wait 10 msec (and hope this is long enough).
-            while(gtk_events_pending())
-            gtk_main_iteration();    // process all events that came in upto now
-            if(clickedFile[0]) {         // we were sent an open-file signal with filename!
-                fakeArgv[0] = argv[0];
-                argc = 2; argv = fakeArgv; // fake that we were called as "xboard filename"
-            }
-        }
-    }
-#endif
-
-    if(argc > 1 && !strcmp(argv[1], "--show-config")) { // [HGM] install: called to print config info
-       typedef struct {char *name, *value; } Config;
-       static Config configList[] = {
-         { "Datadir", dataDir },
-         { "Mandir", manDir },
-         { "Sysconfdir", SYSCONFDIR },
-         { NULL }
-       };
-       int i;
-
-       for(i=0; configList[i].name; i++) {
-           if(argc > 2 && strcmp(argv[2], configList[i].name)) continue;
-           if(argc > 2) printf("%s", configList[i].value);
-           else printf("%-12s: %s\n", configList[i].name, configList[i].value);
-       }
-       exit(0);
-    }
-
-    /* set up keyboard accelerators group */
-    GtkAccelerators = gtk_accel_group_new();
-
-    programName = strrchr(argv[0], '/');
-    if (programName == NULL)
-      programName = argv[0];
-    else
-      programName++;
-
-#ifdef ENABLE_NLS
-//    if (appData.debugMode) {
-//      fprintf(debugFP, "locale = %s\n", setlocale(LC_ALL, NULL));
-//    }
-
-    bindtextdomain(PACKAGE, LOCALEDIR);
-    bind_textdomain_codeset(PACKAGE, "UTF-8"); // needed when creating markup for the clocks
-    textdomain(PACKAGE);
-#endif
-
-    appData.boardSize = "";
-    InitAppData(ConvertToLine(argc, argv));
-    p = getenv("HOME");
-    if (p == NULL) p = "/tmp";
-    i = strlen(p) + strlen("/.xboardXXXXXx.pgn") + 1;
-    gameCopyFilename = (char*) malloc(i);
-    gamePasteFilename = (char*) malloc(i);
-    snprintf(gameCopyFilename,i, "%s/.xboard%05uc.pgn", p, getpid());
-    snprintf(gamePasteFilename,i, "%s/.xboard%05up.pgn", p, getpid());
-
-    { // [HGM] initstring: kludge to fix bad bug. expand '\n' characters in init string and computer string.
-       static char buf[MSG_SIZ];
-       snprintf(buf, MSG_SIZ, appData.sysOpen, dataDir);
-       ASSIGN(appData.sysOpen, buf); // expand %s in -openCommand to DATADIR (usefull for OS X configuring)
-       EscapeExpand(buf, appData.firstInitString);
-       appData.firstInitString = strdup(buf);
-       EscapeExpand(buf, appData.secondInitString);
-       appData.secondInitString = strdup(buf);
-       EscapeExpand(buf, appData.firstComputerString);
-       appData.firstComputerString = strdup(buf);
-       EscapeExpand(buf, appData.secondComputerString);
-       appData.secondComputerString = strdup(buf);
-    }
-
-    if ((chessDir = (char *) getenv("CHESSDIR")) == NULL) {
-       chessDir = ".";
-    } else {
-       if (chdir(chessDir) != 0) {
-           fprintf(stderr, _("%s: can't cd to CHESSDIR: "), programName);
-           perror(chessDir);
-           exit(1);
-       }
-    }
-
-    if (appData.debugMode && appData.nameOfDebugFile && strcmp(appData.nameOfDebugFile, "stderr")) {
-       /* [DM] debug info to file [HGM] make the filename a command-line option, and allow it to remain stderr */
-        if ((debugFP = fopen(appData.nameOfDebugFile, "w")) == NULL)  {
-           printf(_("Failed to open file '%s'\n"), appData.nameOfDebugFile);
-           exit(errno);
-        }
-        setbuf(debugFP, NULL);
-    }
-
-#if ENABLE_NLS
-    if (appData.debugMode) {
-      fprintf(debugFP, "locale = %s\n", setlocale(LC_ALL, NULL));
-    }
-#endif
-
-    /* [HGM,HR] make sure board size is acceptable */
-    if(appData.NrFiles > BOARD_FILES ||
-       appData.NrRanks > BOARD_RANKS   )
-        DisplayFatalError(_("Recompile with larger BOARD_RANKS or BOARD_FILES to support this size"), 0, 2);
-
-#if !HIGHDRAG
-    /* This feature does not work; animation needs a rewrite */
-    appData.highlightDragging = FALSE;
-#endif
-    InitBackEnd1();
-
-       gameInfo.variant = StringToVariant(appData.variant);
-       InitPosition(FALSE);
-
-    /*
-     * determine size, based on supplied or remembered -size, or screen size
-     */
-    if (isdigit(appData.boardSize[0])) {
-        i = sscanf(appData.boardSize, "%d,%d,%d,%d,%d,%d,%d", &squareSize,
-                  &lineGap, &clockFontPxlSize, &coordFontPxlSize,
-                  &fontPxlSize, &smallLayout, &tinyLayout);
-        if (i == 0) {
-           fprintf(stderr, _("%s: bad boardSize syntax %s\n"),
-                   programName, appData.boardSize);
-           exit(2);
-       }
-       if (i < 7) {
-           /* Find some defaults; use the nearest known size */
-           SizeDefaults *szd, *nearest;
-           int distance = 99999;
-           nearest = szd = sizeDefaults;
-           while (szd->name != NULL) {
-               if (abs(szd->squareSize - squareSize) < distance) {
-                   nearest = szd;
-                   distance = abs(szd->squareSize - squareSize);
-                   if (distance == 0) break;
-               }
-               szd++;
-           }
-           if (i < 2) lineGap = nearest->lineGap;
-           if (i < 3) clockFontPxlSize = nearest->clockFontPxlSize;
-           if (i < 4) coordFontPxlSize = nearest->coordFontPxlSize;
-           if (i < 5) fontPxlSize = nearest->fontPxlSize;
-           if (i < 6) smallLayout = nearest->smallLayout;
-           if (i < 7) tinyLayout = nearest->tinyLayout;
-       }
-    } else {
-        SizeDefaults *szd = sizeDefaults;
-        if (*appData.boardSize == NULLCHAR) {
-//            GdkScreen *screen = gtk_window_get_screen(GTK_WINDOW(mainwindow)); // TODO: this does not work, as no mainwindow yet
-            GdkScreen *screen = gdk_screen_get_default();
-            guint screenwidth = gdk_screen_get_width(screen);
-            guint screenheight = gdk_screen_get_height(screen);
-           while (screenwidth  < (szd->minScreenSize*BOARD_WIDTH  + 4)/8 ||
-                  screenheight < (szd->minScreenSize*BOARD_HEIGHT + 4)/8) {
-             szd++;
-           }
-           if (szd->name == NULL) szd--;
-           appData.boardSize = strdup(szd->name); // [HGM] settings: remember name for saving settings
-       } else {
-           while (szd->name != NULL &&
-                  StrCaseCmp(szd->name, appData.boardSize) != 0) szd++;
-           if (szd->name == NULL) {
-               fprintf(stderr, _("%s: unrecognized boardSize name %s\n"),
-                       programName, appData.boardSize);
-               exit(2);
-           }
-       }
-       squareSize = szd->squareSize;
-       lineGap = szd->lineGap;
-       clockFontPxlSize = szd->clockFontPxlSize;
-       coordFontPxlSize = szd->coordFontPxlSize;
-       fontPxlSize = szd->fontPxlSize;
-       smallLayout = szd->smallLayout;
-       tinyLayout = szd->tinyLayout;
-       // [HGM] font: use defaults from settings file if available and not overruled
-    }
-    initialSquareSize = squareSize; // [HGM] remember for saving font info
-    if(BOARD_WIDTH != 8) {
-       squareSize = (squareSize*8 + BOARD_WIDTH/2)/BOARD_WIDTH; // keep width the same
-       lineGap = (squareSize < 37 ? 1 : squareSize < 59 ? 2 : squareSize < 116 ? 3 : 4);
-    }
-
-    defaultLineGap = lineGap;
-    if(appData.overrideLineGap >= 0) lineGap = appData.overrideLineGap;
-
-    /* [HR] height treated separately (hacked) */
-    boardWidth = lineGap + BOARD_WIDTH * (squareSize + lineGap);
-//    boardHeight = lineGap + BOARD_HEIGHT * (squareSize + lineGap);
-
-    /*
-     * Determine what fonts to use.
-     */
-    InitializeFonts((2*clockFontPxlSize+1)/3, coordFontPxlSize, fontPxlSize);
-
-    /*
-     * Detect if there are not enough colors available and adapt.
-     */
-#ifdef TODO_GTK
-    if (DefaultDepth(xDisplay, xScreen) <= 2) {
-      appData.monoMode = True;
-    }
-#endif
-
-    forceMono = MakeColors();
-
-    if (forceMono) {
-      fprintf(stderr, _("%s: too few colors available; trying monochrome mode\n"),
-             programName);
-       appData.monoMode = True;
-    }
-
-    ParseIcsTextColors();
-
-    /*
-     * widget hierarchy
-     */
-    if (tinyLayout) {
-       layoutName = "tinyLayout";
-    } else if (smallLayout) {
-       layoutName = "smallLayout";
-    } else {
-       layoutName = "normalLayout";
-    }
-
-    if(appData.logoSize) appData.logoSize = boardWidth/4-3;
-    wpMain.width = -1; // prevent popup sizes window
-    optList = BoardPopUp(squareSize, lineGap, (void*)
-#ifdef TODO_GTK
-#if ENABLE_NLS
-                                               &clockFontSet);
-#else
-                                               clockFontStruct);
-#endif
-#else
-0);
-#endif
-    InitDrawingHandle(optList + W_BOARD);
-    shellWidget      = shells[BoardWindow];
-    currBoard        = &optList[W_BOARD];
-    boardWidget      = optList[W_BOARD].handle;
-    menuBarWidget    = optList[W_MENU].handle;
-    dropMenu         = optList[W_DROP].handle;
-    titleWidget = optList[optList[W_TITLE].type != Skip ? W_TITLE : W_SMALL].handle;
-#ifdef TODO_GTK
-    formWidget  = XtParent(boardWidget);
-    XtSetArg(args[0], XtNbackground, &timerBackgroundPixel);
-    XtSetArg(args[1], XtNforeground, &timerForegroundPixel);
-    XtGetValues(optList[W_WHITE].handle, args, 2);
-    if (appData.showButtonBar) { // can't we use timer pixels for this? (Or better yet, just black & white?)
-      XtSetArg(args[0], XtNbackground, &buttonBackgroundPixel);
-      XtSetArg(args[1], XtNforeground, &buttonForegroundPixel);
-      XtGetValues(optList[W_PAUSE].handle, args, 2);
-    }
-#endif
-
-    // [HGM] it seems the layout code ends here, but perhaps the color stuff is size independent and would
-    //       not need to go into InitDrawingSizes().
-
-    InitMenuMarkers();
-
-    // add accelerators to main shell
-    gtk_window_add_accel_group(GTK_WINDOW(shellWidget), GtkAccelerators);
-
-    /*
-     * Create an icon. (Use two icons, to indicate whther it is white's or black's turn.)
-     */
-    WhiteIcon  = LoadIconFile("icon_white");
-    BlackIcon  = LoadIconFile("icon_black");
-    SetClockIcon(0); // sets white icon
-
-
-    /*
-     * Create a cursor for the board widget.
-     */
-#ifdef TODO_GTK
-    window_attributes.cursor = XCreateFontCursor(xDisplay, XC_hand2);
-    XChangeWindowAttributes(xDisplay, xBoardWindow,
-                           CWCursor, &window_attributes);
-#endif
-
-    /*
-     * Inhibit shell resizing.
-     */
-#ifdef TODO_GTK
-    shellArgs[0].value = (XtArgVal) &w;
-    shellArgs[1].value = (XtArgVal) &h;
-    XtGetValues(shellWidget, shellArgs, 2);
-    shellArgs[4].value = shellArgs[2].value = w;
-    shellArgs[5].value = shellArgs[3].value = h;
-//    XtSetValues(shellWidget, &shellArgs[2], 4);
-#endif
-    {
-       // Note: We cannot do sensible sizing here, because the height of the clock widget is not yet known
-       // It wil only become known asynchronously, when we first write a string into it.
-       // This will then change the clock widget height, which triggers resizing the top-level window
-       // and a configure event. Only then can we know the total height of the top-level window,
-       // and calculate the height we need. The clockKludge flag suppresses all resizing until
-       // that moment comes, after which the configure event-handler handles it through a (delayed) DragProg.
-       int hc;
-       GtkAllocation a;
-       gtk_widget_get_allocation(shells[BoardWindow], &a);
-       w = a.width; h = a.height;
-       gtk_widget_get_allocation(optList[W_WHITE].handle, &a);
-       clockKludge = hc = a.height;
-       gtk_widget_get_allocation(boardWidget, &a);
-       marginW =  w - boardWidth; // [HGM] needed to set new shellWidget size when we resize board
-       marginH =  h - a.height - hc; // subtract current clock height, so it can be added back dynamically
-    }
-
-    CreateAnyPieces(1);
-    CreateGrid();
-
-    if(appData.logoSize)
-    {   // locate and read user logo
-       char buf[MSG_SIZ], name[MSG_SIZ];
-       snprintf(name, MSG_SIZ, "/home/%s", UserName());
-       if(!FindLogo(name, ".logo", buf))
-           FindLogo(appData.logoDir, name + 6, buf);
-       ASSIGN(userLogo, buf);
-    }
-
-    if (appData.animate || appData.animateDragging)
-      CreateAnimVars();
-
-    g_signal_connect(shells[BoardWindow], "key-press-event", G_CALLBACK(KeyPressProc), NULL);
-    g_signal_connect(shells[BoardWindow], "configure-event", G_CALLBACK(EventProc), NULL);
-
-    /* [AS] Restore layout */
-    if( wpMoveHistory.visible ) {
-      HistoryPopUp();
-    }
-
-    if( wpEvalGraph.visible )
-      {
-       EvalGraphPopUp();
-      };
-
-    if( wpEngineOutput.visible ) {
-      EngineOutputPopUp();
-    }
-
-    if( wpConsole.visible && appData.icsActive ) {
-      ChatProc();
-      BoardToTop();
-    }
-
-    gameInfo.boardWidth = 0; // [HGM] pieces: kludge to ensure InitPosition() calls InitDrawingSizes()
-    InitPosition(TRUE);
-
-    InitBackEnd2();
-
-    if (errorExitStatus == -1) {
-       if (appData.icsActive) {
-           /* We now wait until we see "login:" from the ICS before
-              sending the logon script (problems with timestamp otherwise) */
-           /*ICSInitScript();*/
-           if (appData.icsInputBox) ICSInputBoxPopUp();
-       }
-
-    #ifdef SIGWINCH
-    signal(SIGWINCH, TermSizeSigHandler);
-    #endif
-       signal(SIGINT, IntSigHandler);
-       signal(SIGTERM, IntSigHandler);
-       if (*appData.cmailGameName != NULLCHAR) {
-           signal(SIGUSR1, CmailSigHandler);
-       }
-    }
-
-    UpdateLogos(TRUE);
-//    XtSetKeyboardFocus(shellWidget, formWidget);
-#ifdef TODO_GTK
-    XSetInputFocus(xDisplay, XtWindow(formWidget), RevertToPointerRoot, CurrentTime);
-#endif
-
-    /* check for GTK events and process them */
-//    gtk_main();
-while(1) {
-gtk_main_iteration();
-}
-
-    if (appData.debugMode) fclose(debugFP); // [DM] debug
-    return 0;
-}
-
-void
-DoEvents ()
-{
-    while(gtk_events_pending()) gtk_main_iteration();
-}
-
-RETSIGTYPE
-TermSizeSigHandler (int sig)
-{
-    update_ics_width();
-}
-
-RETSIGTYPE
-IntSigHandler (int sig)
-{
-    ExitEvent(sig);
-}
-
-RETSIGTYPE
-CmailSigHandler (int sig)
-{
-    int dummy = 0;
-    int error;
-
-    signal(SIGUSR1, SIG_IGN);  /* suspend handler     */
-
-    /* Activate call-back function CmailSigHandlerCallBack()             */
-    OutputToProcess(cmailPR, (char *)(&dummy), sizeof(int), &error);
-
-    signal(SIGUSR1, CmailSigHandler); /* re-activate handler */
-}
-
-void
-CmailSigHandlerCallBack (InputSourceRef isr, VOIDSTAR closure, char *message, int count, int error)
-{
-    BoardToTop();
-    ReloadCmailMsgEvent(TRUE); /* Reload cmail msg  */
-}
-/**** end signal code ****/
-
-
-#define Abs(n) ((n)<0 ? -(n) : (n))
-
-char *
-InsertPxlSize (char *pattern, int targetPxlSize)
-{
-    char buf[MSG_SIZ];
-    snprintf(buf, MSG_SIZ, pattern, targetPxlSize); // pattern is something like "Sans Bold %d"
-    return strdup(buf);
-}
-
-#ifdef ENABLE_NLS
-#ifdef TODO_GTK
-char *
-InsertPxlSize (char *pattern, int targetPxlSize)
-{
-    char *base_fnt_lst, strInt[12], *p, *q;
-    int alternatives, i, len, strIntLen;
-
-    /*
-     * Replace the "*" (if present) in the pixel-size slot of each
-     * alternative with the targetPxlSize.
-     */
-    p = pattern;
-    alternatives = 1;
-    while ((p = strchr(p, ',')) != NULL) {
-      alternatives++;
-      p++;
-    }
-    snprintf(strInt, sizeof(strInt), "%d", targetPxlSize);
-    strIntLen = strlen(strInt);
-    base_fnt_lst = calloc(1, strlen(pattern) + strIntLen * alternatives + 1);
-
-    p = pattern;
-    q = base_fnt_lst;
-    while (alternatives--) {
-      char *comma = strchr(p, ',');
-      for (i=0; i<14; i++) {
-       char *hyphen = strchr(p, '-');
-       if (!hyphen) break;
-       if (comma && hyphen > comma) break;
-       len = hyphen + 1 - p;
-       if (i == 7 && *p == '*' && len == 2) {
-         p += len;
-         memcpy(q, strInt, strIntLen);
-         q += strIntLen;
-         *q++ = '-';
-       } else {
-         memcpy(q, p, len);
-         p += len;
-         q += len;
-       }
-      }
-      if (!comma) break;
-      len = comma + 1 - p;
-      memcpy(q, p, len);
-      p += len;
-      q += len;
-    }
-    strcpy(q, p);
-
-    return base_fnt_lst;
-}
-#endif
-
-#ifdef TODO_GTK
-XFontSet
-CreateFontSet (char *base_fnt_lst)
-{
-    XFontSet fntSet;
-    char **missing_list;
-    int missing_count;
-    char *def_string;
-
-    fntSet = XCreateFontSet(xDisplay, base_fnt_lst,
-                           &missing_list, &missing_count, &def_string);
-    if (appData.debugMode) {
-      int i, count;
-      XFontStruct **font_struct_list;
-      char **font_name_list;
-      fprintf(debugFP, "Requested font set for list %s\n", base_fnt_lst);
-      if (fntSet) {
-       fprintf(debugFP, " got list %s, locale %s\n",
-               XBaseFontNameListOfFontSet(fntSet),
-               XLocaleOfFontSet(fntSet));
-       count = XFontsOfFontSet(fntSet, &font_struct_list, &font_name_list);
-       for (i = 0; i < count; i++) {
-         fprintf(debugFP, " got charset %s\n", font_name_list[i]);
-       }
-      }
-      for (i = 0; i < missing_count; i++) {
-       fprintf(debugFP, " missing charset %s\n", missing_list[i]);
-      }
-    }
-    if (fntSet == NULL) {
-      fprintf(stderr, _("Unable to create font set for %s.\n"), base_fnt_lst);
-      exit(2);
-    }
-    return fntSet;
-}
-#endif
-#else // not ENABLE_NLS
-/*
- * Find a font that matches "pattern" that is as close as
- * possible to the targetPxlSize.  Prefer fonts that are k
- * pixels smaller to fonts that are k pixels larger.  The
- * pattern must be in the X Consortium standard format,
- * e.g. "-*-helvetica-bold-r-normal--*-*-*-*-*-*-*-*".
- * The return value should be freed with XtFree when no
- * longer needed.
- */
-#ifdef TODO_GTK
-char *
-FindFont (char *pattern, int targetPxlSize)
-{
-    char **fonts, *p, *best, *scalable, *scalableTail;
-    int i, j, nfonts, minerr, err, pxlSize;
-
-    fonts = XListFonts(xDisplay, pattern, 999999, &nfonts);
-    if (nfonts < 1) {
-       fprintf(stderr, _("%s: no fonts match pattern %s\n"),
-               programName, pattern);
-       exit(2);
-    }
-
-    best = fonts[0];
-    scalable = NULL;
-    minerr = 999999;
-    for (i=0; i<nfonts; i++) {
-       j = 0;
-       p = fonts[i];
-       if (*p != '-') continue;
-       while (j < 7) {
-           if (*p == NULLCHAR) break;
-           if (*p++ == '-') j++;
-       }
-       if (j < 7) continue;
-       pxlSize = atoi(p);
-       if (pxlSize == 0) {
-           scalable = fonts[i];
-           scalableTail = p;
-       } else {
-           err = pxlSize - targetPxlSize;
-           if (Abs(err) < Abs(minerr) ||
-               (minerr > 0 && err < 0 && -err == minerr)) {
-               best = fonts[i];
-               minerr = err;
-           }
-       }
-    }
-    if (scalable && Abs(minerr) > appData.fontSizeTolerance) {
-        /* If the error is too big and there is a scalable font,
-          use the scalable font. */
-        int headlen = scalableTail - scalable;
-        p = (char *) XtMalloc(strlen(scalable) + 10);
-       while (isdigit(*scalableTail)) scalableTail++;
-       sprintf(p, "%.*s%d%s", headlen, scalable, targetPxlSize, scalableTail);
-    } else {
-        p = (char *) XtMalloc(strlen(best) + 2);
-        safeStrCpy(p, best, strlen(best)+1 );
-    }
-    if (appData.debugMode) {
-        fprintf(debugFP, "resolved %s at pixel size %d\n  to %s\n",
-               pattern, targetPxlSize, p);
-    }
-    XFreeFontNames(fonts);
-    return p;
-}
-#endif
-#endif
-
-void
-MarkMenuItem (char *menuRef, int state)
-{
-    MenuItem *item = MenuNameToItem(menuRef);
-
-    if(item && item->handle) {
-        ((GtkCheckMenuItem *) (item->handle))->active = state;
-    }
-    SYNC_MENUBAR;
-}
-
-void
-EnableNamedMenuItem (char *menuRef, int state)
-{
-    MenuItem *item = MenuNameToItem(menuRef);
-
-    if(item && item->handle) gtk_widget_set_sensitive(item->handle, state);
-    SYNC_MENUBAR;
-}
-
-void
-EnableButtonBar (int state)
-{
-#ifdef TODO_GTK
-    XtSetSensitive(optList[W_BUTTON].handle, state);
-#endif
-}
-
-
-void
-SetMenuEnables (Enables *enab)
-{
-  while (enab->name != NULL) {
-    EnableNamedMenuItem(enab->name, enab->value);
-    enab++;
-  }
-}
-
-gboolean KeyPressProc(window, eventkey, data)
-     GtkWindow *window;
-     GdkEventKey  *eventkey;
-     gpointer data;
-{
-
-    MoveTypeInProc(eventkey); // pop up for typed in moves
-
-#ifdef TODO_GTK
-    /* check for other key values */
-    switch(eventkey->keyval) {
-        case GDK_question:
-         AboutGameEvent();
-         break;
-        default:
-         break;
-    }
-#endif
-    return False;
-}
-#ifdef TODO_GTK
-void
-KeyBindingProc (Widget w, XEvent *event, String *prms, Cardinal *nprms)
-{   // [HGM] new method of key binding: specify MenuItem(FlipView) in stead of FlipViewProc in translation string
-    MenuItem *item;
-    if(*nprms == 0) return;
-    item = MenuNameToItem(prms[0]);
-    if(item) ((MenuProc *) item->proc) ();
-}
-#endif
-
-void
-SetupDropMenu ()
-{
-#ifdef TODO_GTK
-    int i, j, count;
-    char label[32];
-    Arg args[16];
-    Widget entry;
-    char* p;
-
-    for (i=0; i<sizeof(dmEnables)/sizeof(DropMenuEnables); i++) {
-       entry = XtNameToWidget(dropMenu, dmEnables[i].widget);
-       p = strchr(gameMode == IcsPlayingWhite ? white_holding : black_holding,
-                  dmEnables[i].piece);
-       XtSetSensitive(entry, p != NULL || !appData.testLegality
-                      /*!!temp:*/ || (gameInfo.variant == VariantCrazyhouse
-                                      && !appData.icsActive));
-       count = 0;
-       while (p && *p++ == dmEnables[i].piece) count++;
-       snprintf(label, sizeof(label), "%s  %d", dmEnables[i].widget, count);
-       j = 0;
-       XtSetArg(args[j], XtNlabel, label); j++;
-       XtSetValues(entry, args, j);
-    }
-#endif
-}
-
-static void
-do_flash_delay (unsigned long msec)
-{
-    TimeDelay(msec);
-}
-
-void
-FlashDelay (int flash_delay)
-{
-       if(flash_delay) do_flash_delay(flash_delay);
-}
-
-double
-Fraction (int x, int start, int stop)
-{
-   double f = ((double) x - start)/(stop - start);
-   if(f > 1.) f = 1.; else if(f < 0.) f = 0.;
-   return f;
-}
-
-static WindowPlacement wpNew;
-
-void
-CoDrag (GtkWidget *sh, WindowPlacement *wp)
-{
-    int touch=0, fudge = 4, f = 3;
-    GetActualPlacement(sh, wp);
-    if(abs(wpMain.x + wpMain.width + 2*frameX - f - wp->x)         < fudge) touch = 1; else // right touch
-    if(abs(wp->x + wp->width + 2*frameX - f - wpMain.x)            < fudge) touch = 2; else // left touch
-    if(abs(wpMain.y + wpMain.height + frameX - f + frameY - wp->y) < fudge) touch = 3; else // bottom touch
-    if(abs(wp->y + wp->height + frameX + frameY - f - wpMain.y)    < fudge) touch = 4;      // top touch
-//printf("CoDrag: touch = %d x=%d w=%d x2=%d w2=%d fx=%d\n", touch, wpMain.x, wpMain.width, wp->x, wp->width, frameX);
-    if(!touch ) return; // only windows that touch co-move
-    if(touch < 3 && wpNew.height != wpMain.height) { // left or right and height changed
-       int heightInc = wpNew.height - wpMain.height;
-       double fracTop = Fraction(wp->y, wpMain.y, wpMain.y + wpMain.height + frameX + frameY);
-       double fracBot = Fraction(wp->y + wp->height + frameX + frameY + 1, wpMain.y, wpMain.y + wpMain.height + frameX + frameY);
-       wp->y += fracTop * heightInc;
-       heightInc = (int) (fracBot * heightInc) - (int) (fracTop * heightInc);
-#ifdef TODO_GTK
-       if(heightInc) XtSetArg(args[j], XtNheight, wp->height + heightInc), j++;
-#endif
-       wp->height += heightInc;
-    } else if(touch > 2 && wpNew.width != wpMain.width) { // top or bottom and width changed
-       int widthInc = wpNew.width - wpMain.width;
-       double fracLeft = Fraction(wp->x, wpMain.x, wpMain.x + wpMain.width + 2*frameX);
-       double fracRght = Fraction(wp->x + wp->width + 2*frameX + 1, wpMain.x, wpMain.x + wpMain.width + 2*frameX);
-       wp->y += fracLeft * widthInc;
-       widthInc = (int) (fracRght * widthInc) - (int) (fracLeft * widthInc);
-#ifdef TODO_GTK
-       if(widthInc) XtSetArg(args[j], XtNwidth, wp->width + widthInc), j++;
-#endif
-       wp->width += widthInc;
-    }
-    wp->x += wpNew.x - wpMain.x;
-    wp->y += wpNew.y - wpMain.y;
-    if(touch == 1) wp->x += wpNew.width - wpMain.width; else
-    if(touch == 3) wp->y += wpNew.height - wpMain.height;
-#ifdef TODO_GTK
-    XtSetArg(args[j], XtNx, wp->x); j++;
-    XtSetArg(args[j], XtNy, wp->y); j++;
-    XtSetValues(sh, args, j);
-#endif
-       gtk_window_move(GTK_WINDOW(sh), wp->x, wp->y);
-//printf("moved to (%d,%d)\n", wp->x, wp->y);
-       gtk_window_resize(GTK_WINDOW(sh), wp->width, wp->height);
-}
-
-void
-ReSize (WindowPlacement *wp)
-{
-       GtkAllocation a;
-       int sqx, sqy, i, w, h, lg = lineGap;
-       static int first = 1;
-//     DisplayBothClocks();
-       if(wp->width == wpMain.width && wp->height == wpMain.height && !first) return; // not sized
-       gtk_widget_get_allocation(optList[W_DROP+1].handle, &a); // table that should contain everything
-       w = a.width; h = a.height;
-       gtk_widget_get_allocation(shellWidget, &a);
-       if(a.width < w || a.height < h) { // outer window smaller than dialog content?
-           w = a.width - w; h = a.height - h; // subtract matrgins, measured as table minus board dimensions
-           gtk_widget_get_allocation(optList[W_BOARD].handle, &a);
-           w += a.width; h += a.height;
-       } else {
-           gtk_widget_get_allocation(optList[W_BOARD].handle, &a);
-           w = a.width; h = a.height;
-       }
-       sqx = (w - lg) / BOARD_WIDTH - lg;
-       sqy = (h - lg) / BOARD_HEIGHT - lg;
-       if(sqy < sqx) sqx = sqy;
-        if(sqx < 20) return;
-       if(appData.overrideLineGap < 0) { // do second iteration with adjusted lineGap
-           int oldSqx = sqx;
-           lg = lineGap = sqx < 37 ? 1 : sqx < 59 ? 2 : sqx < 116 ? 3 : 4;
-           sqx = (w  - lg) / BOARD_WIDTH - lg;
-           sqy = (h - lg) / BOARD_HEIGHT - lg;
-           if(sqy < sqx) sqx = sqy;
-           lg = sqx < 37 ? 1 : sqx < 59 ? 2 : sqx < 116 ? 3 : 4;
-           if(sqx == oldSqx + 1 && lg == lineGap + 1) sqx = oldSqx, squareSize = 0; // prevent oscillations, force resize by kludge
-       }
-       for(h=0; sizeDefaults[h+1].name && sizeDefaults[h].squareSize*8 > sqx*BOARD_WIDTH; h++) {}
-       if(initialSquareSize != sizeDefaults[h].squareSize) { // boardSize changed
-           initialSquareSize = sizeDefaults[h].squareSize; // used for saving font
-           ChangeFont(1, &appData.clockFont, CLOCK_FONT, initialSquareSize, CLOCK_FONT_NAME, 2*(sizeDefaults[h].clockFontPxlSize+1)/3);
-           ChangeFont(1, &appData.font, MESSAGE_FONT, initialSquareSize, DEFAULT_FONT_NAME, sizeDefaults[h].coordFontPxlSize);
-           ChangeFont(0, &appData.icsFont, CONSOLE_FONT, initialSquareSize, CONSOLE_FONT_NAME, sizeDefaults[h].coordFontPxlSize);
-           ChangeFont(0, &appData.tagsFont, EDITTAGS_FONT, initialSquareSize, TAGS_FONT_NAME, sizeDefaults[h].coordFontPxlSize);
-           ChangeFont(0, &appData.commentFont, COMMENT_FONT, initialSquareSize, COMMENT_FONT_NAME, sizeDefaults[h].coordFontPxlSize);
-           ChangeFont(0, &appData.gameListFont, GAMELIST_FONT, initialSquareSize, GAMELIST_FONT_NAME, sizeDefaults[h].coordFontPxlSize);
-           ChangeFont(0, &appData.historyFont, MOVEHISTORY_FONT, initialSquareSize, HISTORY_FONT_NAME, sizeDefaults[h].coordFontPxlSize);
-           DisplayBothClocks();
-           ApplyFont(&mainOptions[W_MESSG], NULL);
-           for(i=1; i<6; i++) ApplyFont(&mainOptions[W_BUTTON+i], NULL);
-           ApplyFont(&tagsOptions[1], NULL);
-           ApplyFont(&commentOptions[0], NULL);
-           ApplyFont(&historyOptions[0], NULL);
-           ApplyFont(&engoutOptions[5], NULL);
-           ApplyFont(&engoutOptions[12], NULL);
-           ApplyFont(&chatOptions[11], appData.icsFont);
-           AppendColorized(&chatOptions[6], NULL, 0); // kludge to replace font tag
-       }
-       if(!strchr(appData.boardSize, ',')) {
-           ASSIGN(appData.boardSize, sizeDefaults[h].name);
-       }
-#ifndef OSXAPP
-       if(sizeDefaults[h].tinyLayout != tinyLayout) { // alter clipping of menu names to conform to board width
-           int clip = (tinyLayout = sizeDefaults[h].tinyLayout) + 1;
-           char text[MSG_SIZ];
-           for(h=1; mainOptions[h].type == DropDown; h++) {
-               strncpy(text, _(mainOptions[h].name), MSG_SIZ);
-               if(clip != 1) text[clip + (text[clip-1] == '_')] = NULLCHAR;
-               gtk_menu_item_set_label((GtkMenuItem *) mainOptions[h].handle, text);
-           }
-       }
-#endif
-       if(sqx != squareSize && !first) {
-           squareSize = sqx; // adopt new square size
-           CreatePNGPieces(); // make newly scaled pieces
-           InitDrawingSizes(0, 0); // creates grid etc.
-       } else ResizeBoardWindow(BOARD_WIDTH * (squareSize + lineGap) + lineGap, BOARD_HEIGHT * (squareSize + lineGap) + lineGap, 0);
-       w = BOARD_WIDTH * (squareSize + lineGap) + lineGap;
-       h = BOARD_HEIGHT * (squareSize + lineGap) + lineGap;
-       if(optList[W_BOARD].max   > w) optList[W_BOARD].max = w;
-       if(optList[W_BOARD].value > h) optList[W_BOARD].value = h;
-       first = appData.fixedSize;
-       if(twoBoards && shellUp[DummyDlg]) {
-           SlavePopUp(); dualOptions[3].max = 0; DoEvents(); // calls SlaveResize, kludge to force assigning new canvas
-           partnerUp = !partnerUp; flipView = !flipView;
-           DrawPosition(True, NULL);
-           partnerUp = !partnerUp; flipView = !flipView;
-       }
-}
-
-static guint delayedDragTag = 0;
-
-void
-DragProc ()
-{
-    static int busy;
-    if(busy++) return; // prevent recursive calling, but remember we missed an event in 'busy'
-
-    if(delayedDragTag) g_source_remove(delayedDragTag); // no more timer interrupts from same event!
-    delayedDragTag = 0;
-
-    do {
-       GetActualPlacement(shellWidget, &wpNew);
-       if(wpNew.x == wpMain.x && wpNew.y == wpMain.y && // not moved
-          wpNew.width == wpMain.width && wpNew.height == wpMain.height) { // not sized
-           busy = 0; break; // false alarm
-       }
-       ReSize(&wpNew); // this can be interrupted by other events
-       if(appData.useStickyWindows) {
-           if(shellUp[EngOutDlg]) CoDrag(shells[EngOutDlg], &wpEngineOutput);
-           if(shellUp[HistoryDlg]) CoDrag(shells[HistoryDlg], &wpMoveHistory);
-           if(shellUp[EvalGraphDlg]) CoDrag(shells[EvalGraphDlg], &wpEvalGraph);
-           if(shellUp[GameListDlg]) CoDrag(shells[GameListDlg], &wpGameList);
-           if(shellUp[ChatDlg]) CoDrag(shells[ChatDlg], &wpConsole);
-        }
-       wpMain = wpNew;
-       DrawPosition(True, NULL);
-       if(busy > 2) busy = 2; // if multiple events were backlogged, only do one more
-    } while(--busy);
-}
-
-void
-DelayedDrag ()
-{
-//printf("old timr = %d\n", delayedDragTag);
-    if(delayedDragTag) g_source_remove(delayedDragTag);
-    delayedDragTag = g_timeout_add( 200, (GSourceFunc) DragProc, NULL);
-//printf("new timr = %d\n", delayedDragTag);
-}
-
-static gboolean
-EventProc (GtkWidget *widget, GdkEvent *event, gpointer g)
-{
-//printf("event proc (%d,%d) %dx%d\n", event->configure.x, event->configure.y, event->configure.width, event->configure.height);
-    // immediately
-    wpNew.x = event->configure.x;
-    wpNew.y = event->configure.y;
-    wpNew.width  = event->configure.width;
-    wpNew.height = event->configure.height;
-//    SetWidgetLabel(&mainOptions[W_WHITE], ""); SetWidgetLabel(&mainOptions[W_BLACK], "");
-    DelayedDrag(); // as long as events keep coming in faster than 50 msec, they destroy each other
-    return FALSE;
-}
-
-
-
-/* Disable all user input other than deleting the window */
-static int frozen = 0;
-
-void
-FreezeUI ()
-{
-  if (frozen) return;
-  /* Grab by a widget that doesn't accept input */
-  gtk_grab_add(optList[W_MESSG].handle);
-  frozen = 1;
-}
-
-/* Undo a FreezeUI */
-void
-ThawUI ()
-{
-  if (!frozen) return;
-  gtk_grab_remove(optList[W_MESSG].handle);
-  frozen = 0;
-}
-
-void
-ModeHighlight ()
-{
-    static int oldPausing = FALSE;
-    static GameMode oldMode = (GameMode) -1;
-    char *wname;
-    if (!boardWidget) return;
-
-    if (pausing != oldPausing) {
-       oldPausing = pausing;
-       MarkMenuItem("Mode.Pause", pausing);
-
-       if (appData.showButtonBar) {
-         /* Always toggle, don't set.  Previous code messes up when
-            invoked while the button is pressed, as releasing it
-            toggles the state again. */
-           GdkColor color;
-            gdk_color_parse( pausing ? "#808080" : "#F0F0F0", &color );
-            gtk_widget_modify_bg ( GTK_WIDGET(optList[W_PAUSE].handle), GTK_STATE_NORMAL, &color );
-       }
-    }
-
-    wname = ModeToWidgetName(oldMode);
-    if (wname != NULL) {
-       MarkMenuItem(wname, False);
-    }
-    wname = ModeToWidgetName(gameMode);
-    if (wname != NULL) {
-       MarkMenuItem(wname, True);
-    }
-    if(oldMode == TwoMachinesPlay) EnableNamedMenuItem("Mode.MachineMatch", True);
-    MarkMenuItem("Mode.MachineMatch", matchMode && matchGame < appData.matchGames);
-    oldMode = gameMode;
-
-    /* Maybe all the enables should be handled here, not just this one */
-    EnableNamedMenuItem("Mode.Training", gameMode == Training || gameMode == PlayFromGameFile);
-
-    DisplayLogos(&optList[W_WHITE-1], &optList[W_BLACK+1]);
-}
-
-
-/*
- * Button/menu procedures
- */
-
-void CopyFileToClipboard(gchar *filename)
-{
-    gchar *selection_tmp;
-    GtkClipboard *cb;
-
-    // read the file
-    FILE* f = fopen(filename, "r");
-    long len;
-    size_t count;
-    if (f == NULL) return;
-    fseek(f, 0, 2);
-    len = ftell(f);
-    rewind(f);
-    selection_tmp = g_try_malloc(len + 1);
-    if (selection_tmp == NULL) {
-        printf("Malloc failed in CopyFileToClipboard\n");
-        return;
-    }
-    count = fread(selection_tmp, 1, len, f);
-    fclose(f);
-    if (len != count) {
-      g_free(selection_tmp);
-      return;
-    }
-    selection_tmp[len] = NULLCHAR; // file is now in selection_tmp
-
-    // copy selection_tmp to clipboard
-    GdkDisplay *gdisp = gdk_display_get_default();
-    if (!gdisp) {
-        g_free(selection_tmp);
-        return;
-    }
-    cb = gtk_clipboard_get_for_display(gdisp, GDK_SELECTION_CLIPBOARD);
-    gtk_clipboard_set_text(cb, selection_tmp, -1);
-    g_free(selection_tmp);
-}
-
-void
-CopySomething (char *src)
-{
-    GdkDisplay *gdisp = gdk_display_get_default();
-    GtkClipboard *cb;
-    if(!src) { CopyFileToClipboard(gameCopyFilename); return; }
-    if (gdisp == NULL) return;
-    cb = gtk_clipboard_get_for_display(gdisp, GDK_SELECTION_CLIPBOARD);
-    gtk_clipboard_set_text(cb, src, -1);
-}
-
-void
-PastePositionProc ()
-{
-    GdkDisplay *gdisp = gdk_display_get_default();
-    GtkClipboard *cb;
-    gchar *fenstr;
-
-    if (gdisp == NULL) return;
-    cb = gtk_clipboard_get_for_display(gdisp, GDK_SELECTION_CLIPBOARD);
-    fenstr = gtk_clipboard_wait_for_text(cb);
-    if (fenstr==NULL) return; // nothing had been selected to copy
-    EditPositionPasteFEN(fenstr);
-    return;
-}
-
-void
-PasteGameProc ()
-{
-    gchar *text=NULL;
-    GtkClipboard *cb;
-    guint len=0; int flip = appData.flipView;
-    FILE* f;
-
-    // get game from clipboard
-    GdkDisplay *gdisp = gdk_display_get_default();
-    if (gdisp == NULL) return;
-    cb = gtk_clipboard_get_for_display(gdisp, GDK_SELECTION_CLIPBOARD);
-    text = gtk_clipboard_wait_for_text(cb);
-    if (text == NULL) return; // nothing to paste
-    len = strlen(text);
-
-    // write to temp file
-    if (text == NULL || len == 0) {
-      return; //nothing to paste
-    }
-    f = fopen(gamePasteFilename, "w");
-    if (f == NULL) {
-      DisplayError(_("Can't open temp file"), errno);
-      return;
-    }
-    fwrite(text, 1, len, f);
-    fclose(f);
-
-    // load from file
-    if(!appData.autoFlipView) appData.flipView = flipView;
-    LoadGameFromFile(gamePasteFilename, 0, gamePasteFilename, TRUE);
-    appData.flipView = flip;
-    return;
-}
-
-
-#ifdef TODO_GTK
-void
-QuitWrapper (Widget w, XEvent *event, String *prms, Cardinal *nprms)
-{
-    QuitProc();
-}
-#endif
-
-void MoveTypeInProc(eventkey)
-    GdkEventKey  *eventkey;
-{
-    char buf[10];
-
-    // ingnore if ctrl, alt, or meta is pressed
-    if (eventkey->state & (GDK_CONTROL_MASK | GDK_MOD1_MASK | GDK_META_MASK)) {
-        return;
-    }
-
-    buf[0]=eventkey->keyval;
-    buf[1]='\0';
-    if (eventkey->keyval > 32 && eventkey->keyval < 256 || *buf == 27)
-       ConsoleAutoPopUp (buf);
-}
-
-#ifdef TODO_GTK
-void
-TempBackwardProc (Widget w, XEvent *event, String *prms, Cardinal *nprms)
-{
-       if (!TempBackwardActive) {
-               TempBackwardActive = True;
-               BackwardEvent();
-       }
-}
-
-void
-TempForwardProc (Widget w, XEvent *event, String *prms, Cardinal *nprms)
-{
-       /* Check to see if triggered by a key release event for a repeating key.
-        * If so the next queued event will be a key press of the same key at the same time */
-       if (XEventsQueued(xDisplay, QueuedAfterReading)) {
-               XEvent next;
-               XPeekEvent(xDisplay, &next);
-               if (next.type == KeyPress && next.xkey.time == event->xkey.time &&
-                       next.xkey.keycode == event->xkey.keycode)
-                               return;
-       }
-    ForwardEvent();
-       TempBackwardActive = False;
-}
-#endif
-
-void
-ManProc ()
-{   // called from menu
-#ifdef OSXAPP
-    char buf[MSG_SIZ];
-    snprintf(buf, MSG_SIZ, "osascript -e 'tell application \"Terminal\"' -e 'activate' -e 'do script \"man %s/../man/man6/xboard.6\"' -e 'end tell'", dataDir);
-    system(buf);
-#else
-    system("xterm -e man xboard &");
-#endif
-}
-
-void
-InfoProc ()
-{
-    char buf[MSG_SIZ];
-#ifdef OSXAPP
-    snprintf(buf, MSG_SIZ, "osascript -e 'tell application \"Terminal\"' -e 'activate' -e 'do script \"info -d %s/../info -f xboard.info\"' -e 'end tell'", dataDir);
-#else
-        snprintf(buf, sizeof(buf), "xterm -e info --directory %s --directory . -f %s &",
-                 INFODIR, INFOFILE);
-#endif
-    system(buf);
-}
-
-
-void
-SetWindowTitle (char *text, char *title, char *icon)
-{
-#ifdef TODO_GTK
-    Arg args[16];
-    int i;
-    if (appData.titleInWindow) {
-       i = 0;
-       XtSetArg(args[i], XtNlabel, text);   i++;
-       XtSetValues(titleWidget, args, i);
-    }
-    i = 0;
-    XtSetArg(args[i], XtNiconName, (XtArgVal) icon);    i++;
-    XtSetArg(args[i], XtNtitle, (XtArgVal) title);      i++;
-    XtSetValues(shellWidget, args, i);
-    XSync(xDisplay, False);
-#endif
-    if (appData.titleInWindow) {
-       SetWidgetLabel(titleWidget, text);
-    }
-    gtk_window_set_title (GTK_WINDOW(shells[BoardWindow]), title);
-}
-
-
-void
-DisplayIcsInteractionTitle (String message)
-{
-#ifdef TODO_GTK
-  if (oldICSInteractionTitle == NULL) {
-    /* Magic to find the old window title, adapted from vim */
-    char *wina = getenv("WINDOWID");
-    if (wina != NULL) {
-      Window win = (Window) atoi(wina);
-      Window root, parent, *children;
-      unsigned int nchildren;
-      int (*oldHandler)() = XSetErrorHandler(NullXErrorCheck);
-      for (;;) {
-       if (XFetchName(xDisplay, win, &oldICSInteractionTitle)) break;
-       if (!XQueryTree(xDisplay, win, &root, &parent,
-                       &children, &nchildren)) break;
-       if (children) XFree((void *)children);
-       if (parent == root || parent == 0) break;
-       win = parent;
-      }
-      XSetErrorHandler(oldHandler);
-    }
-    if (oldICSInteractionTitle == NULL) {
-      oldICSInteractionTitle = "xterm";
-    }
-  }
-  printf("\033]0;%s\007", message);
-  fflush(stdout);
-#endif
-}
-
-void
-LockBoardSize (int after)
-{
-    static char *oldClockFont, *oldMessgFont;
-    int w, h;
-    if(oldMessgFont && !strcmp(oldMessgFont, appData.font) &&
-       oldClockFont && !strcmp(oldClockFont, appData.clockFont) && after < 2) return; // only do something when font changed
-    w = BOARD_WIDTH*(squareSize + lineGap) + lineGap;
-    h = BOARD_HEIGHT*(squareSize + lineGap) + lineGap;
-    if(after & 1) {
-       ASSIGN(oldClockFont, appData.clockFont);
-       ASSIGN(oldMessgFont, appData.font);
-       gtk_window_resize(GTK_WINDOW(shellWidget), w, h);
-       DoEvents();
-       gtk_widget_set_size_request(optList[W_BOARD].handle, -1, -1); // liberate board
-    } else { // before
-       gtk_widget_set_size_request(optList[W_BOARD].handle, w, h);   // protect board widget
-    }
-}
-
-void
-DisplayTimerLabel (Option *opt, char *color, long timer, int highlight)
-{
-    static int twoLines = -1;
-    GtkWidget *w = (GtkWidget *) opt->handle;
-    GdkColor col;
-    char *markup, two = (appData.logoSize != 0);
-    char bgcolor[10];
-    char fgcolor[10];
-
-    if (highlight) {
-       strcpy(bgcolor, "black");
-        strcpy(fgcolor, "white");
-    } else {
-        strcpy(bgcolor, "white");
-        strcpy(fgcolor, "black");
-    }
-    if (timer > 0 &&
-        appData.lowTimeWarning &&
-        (timer / 1000) < appData.icsAlarmTime) {
-        strcpy(fgcolor, appData.lowTimeWarningColor);
-    }
-
-    if(! partnerUp && two != twoLines) LockBoardSize(2); // lock board size if clock height changes
-
-    gdk_color_parse( bgcolor, &col );
-    gtk_widget_modify_bg(gtk_widget_get_parent(opt->handle), GTK_STATE_NORMAL, &col);
-
-    if (appData.clockMode) {
-        markup = g_markup_printf_escaped("<span font=\"%s\" background=\"%s\" foreground=\"%s\">%s:%s%s</span>", appData.clockFont,
-                                        bgcolor, fgcolor, color, two ? "\n" : " ", TimeString(timer));
-//        markup = g_markup_printf_escaped("<span size=\"xx-large\" weight=\"heavy\" background=\"%s\" foreground=\"%s\">%s:%s%s</span>",
-//                                      bgcolor, fgcolor, color, appData.logoSize && !partnerUp ? "\n" : " ", TimeString(timer));
-    } else {
-        markup = g_markup_printf_escaped("<span font=\"%s\" background=\"%s\" foreground=\"%s\">%s  </span>", appData.clockFont,
-                                        bgcolor, fgcolor, color);
-//        markup = g_markup_printf_escaped("<span size=\"xx-large\" weight=\"heavy\" background=\"%s\" foreground=\"%s\">%s  </span>",
-//                                      bgcolor, fgcolor, color);
-    }
-    gtk_label_set_markup(GTK_LABEL(w), markup);
-    g_free(markup);
-
-    if(!partnerUp && two != twoLines) LockBoardSize(3), twoLines = two;
-}
-
-static GdkPixbuf **clockIcons[] = { &WhiteIcon, &BlackIcon };
-
-void
-SetClockIcon (int color)
-{
-    GdkPixbuf *pm = *clockIcons[color];
-    if (mainwindowIcon != pm) {
-        mainwindowIcon = pm;
-#ifdef OSXAPP
-        gtkosx_application_set_dock_icon_pixbuf(theApp, mainwindowIcon);
-#else
-        gtk_window_set_icon(GTK_WINDOW(shellWidget), mainwindowIcon);
-#endif
-    }
-}
-
-#define INPUT_SOURCE_BUF_SIZE 8192
-
-typedef struct {
-    CPKind kind;
-    int fd;
-    int lineByLine;
-    char *unused;
-    InputCallback func;
-    guint sid;
-    char buf[INPUT_SOURCE_BUF_SIZE];
-    VOIDSTAR closure;
-} InputSource;
-
-gboolean
-DoInputCallback(io, cond, data)
-     GIOChannel  *io;
-     GIOCondition cond;
-     gpointer    *data;
-{
-  /* read input from one of the input source (for example a chess program, ICS, etc).
-   * and call a function that will handle the input
-   */
-
-    int count;
-    int error;
-    char *p, *q;
-
-    /* All information (callback function, file descriptor, etc) is
-     * saved in an InputSource structure
-     */
-    InputSource *is = (InputSource *) data;
-
-    if (is->lineByLine) {
-       count = read(is->fd, is->unused,
-                    INPUT_SOURCE_BUF_SIZE - (is->unused - is->buf));
-       if (count <= 0) {
-           if(count == 0 && is->kind == CPReal && shells[ChatDlg]) { // [HGM] absence of terminal is no error if ICS Console present
-               RemoveInputSource(is); // cease reading stdin
-               stdoutClosed = TRUE;   // suppress future output
-               return True;
-           } 
-           (is->func)(is, is->closure, is->buf, count, count ? errno : 0);
-           return True;
-       }
-       is->unused += count;
-       p = is->buf;
-       /* break input into lines and call the callback function on each
-        * line
-        */
-       while (p < is->unused) {
-           q = memchr(p, '\n', is->unused - p);
-           if (q == NULL) break;
-           q++;
-           (is->func)(is, is->closure, p, q - p, 0);
-           p = q;
-       }
-       /* remember not yet used part of the buffer */
-       q = is->buf;
-       while (p < is->unused) {
-           *q++ = *p++;
-       }
-       is->unused = q;
-    } else {
-      /* read maximum length of input buffer and send the whole buffer
-       * to the callback function
-       */
-       count = read(is->fd, is->buf, INPUT_SOURCE_BUF_SIZE);
-       if (count == -1)
-         error = errno;
-       else
-         error = 0;
-       (is->func)(is, is->closure, is->buf, count, error);
-    }
-    return True; // Must return true or the watch will be removed
-}
-
-InputSourceRef AddInputSource(pr, lineByLine, func, closure)
-     ProcRef pr;
-     int lineByLine;
-     InputCallback func;
-     VOIDSTAR closure;
-{
-    InputSource *is;
-    GIOChannel *channel;
-    ChildProc *cp = (ChildProc *) pr;
-
-    is = (InputSource *) calloc(1, sizeof(InputSource));
-    is->lineByLine = lineByLine;
-    is->func = func;
-    if (pr == NoProc) {
-       is->kind = CPReal;
-       is->fd = fileno(stdin);
-    } else {
-       is->kind = cp->kind;
-       is->fd = cp->fdFrom;
-    }
-    if (lineByLine)
-      is->unused = is->buf;
-    else
-      is->unused = NULL;
-
-   /* GTK-TODO: will this work on windows?*/
-
-    channel = g_io_channel_unix_new(is->fd);
-    g_io_channel_set_close_on_unref (channel, TRUE);
-    is->sid = g_io_add_watch(channel, G_IO_IN,(GIOFunc) DoInputCallback, is);
-
-    is->closure = closure;
-    return (InputSourceRef) is;
-}
-
-
-void
-RemoveInputSource(isr)
-     InputSourceRef isr;
-{
-    InputSource *is = (InputSource *) isr;
-
-    if (is->sid == 0) return;
-    g_source_remove(is->sid);
-    is->sid = 0;
-    return;
-}
-
-#ifndef HAVE_USLEEP
-
-static Boolean frameWaiting;
-
-static RETSIGTYPE
-FrameAlarm (int sig)
-{
-  frameWaiting = False;
-  /* In case System-V style signals.  Needed?? */
-  signal(SIGALRM, FrameAlarm);
-}
-
-void
-FrameDelay (int time)
-{
-  struct itimerval delay;
-
-  if (time > 0) {
-    frameWaiting = True;
-    signal(SIGALRM, FrameAlarm);
-    delay.it_interval.tv_sec =
-      delay.it_value.tv_sec = time / 1000;
-    delay.it_interval.tv_usec =
-      delay.it_value.tv_usec = (time % 1000) * 1000;
-    setitimer(ITIMER_REAL, &delay, NULL);
-    while (frameWaiting) pause();
-    delay.it_interval.tv_sec = delay.it_value.tv_sec = 0;
-    delay.it_interval.tv_usec = delay.it_value.tv_usec = 0;
-    setitimer(ITIMER_REAL, &delay, NULL);
-  }
-}
-
-#else
-
-void
-FrameDelay (int time)
-{
-#ifdef TODO_GTK
-  XSync(xDisplay, False);
-#endif
-//  gtk_main_iteration_do(False);
-
-  if (time > 0)
-    usleep(time * 1000);
-}
-
-#endif
-
-static int
-FindLogo (char *place, char *name, char *buf)
-{   // check if file exists in given place
-    FILE *f;
-    if(!place) return 0;
-    snprintf(buf, MSG_SIZ, "%s/%s.png", place, name);
-    if(*place && strcmp(place, ".") && (f = fopen(buf, "r")) ) {
-       fclose(f);
-       return 1;
-    }
-    return 0;
-}
-
-static void
-LoadLogo (ChessProgramState *cps, int n, Boolean ics)
-{
-    char buf[MSG_SIZ], *logoName = buf;
-    if(appData.logo[n][0]) {
-       logoName = appData.logo[n];
-    } else if(appData.autoLogo) {
-       if(ics) { // [HGM] logo: in ICS mode second can be used for ICS
-           sprintf(buf, "%s/%s.png", appData.logoDir, appData.icsHost);
-       } else { // engine; cascade
-           if(!FindLogo(appData.logoDir, cps->tidy, buf) &&   // first try user log folder
-              !FindLogo(appData.directory[n], "logo", buf) && // then engine directory
-              !FindLogo("/usr/local/share/games/plugins/logos", cps->tidy, buf) ) // then system folders
-               FindLogo("/usr/share/games/plugins/logos", cps->tidy, buf);
-       }
-    }
-    if(logoName[0])
-       { ASSIGN(cps->programLogo, logoName); }
-}
-
-void
-UpdateLogos (int displ)
-{
-    if(optList[W_WHITE-1].handle == NULL) return;
-    LoadLogo(&first, 0, 0);
-    LoadLogo(&second, 1, appData.icsActive);
-    if(displ) DisplayLogos(&optList[W_WHITE-1], &optList[W_BLACK+1]);
-    return;
-}
-
-void FileNamePopUpWrapper(
-     char *label,
-     char *def,
-     char *filter,
-     FileProc proc,
-     Boolean pathFlag,
-     char *openMode,
-     char **name,
-     FILE **fp)
-{
-  GtkWidget     *dialog;
-  GtkFileFilter *gtkfilter;
-  GtkFileFilter *gtkfilter_all;
-  char space[]     = " ";
-  char fileext[10] = "";
-  char *result     = NULL;
-  char *cp;
-  char curDir[MSG_SIZ];
-
-  StartDir(filter, NULL); // change to start directory for this file type
-
-  if(def && *def && def[strlen(def)-1] == '/') {
-    getcwd(curDir, MSG_SIZ);
-    chdir(def);
-  }
-
-
-  /* make a copy of the filter string, so that strtok can work with it*/
-  cp = strdup(filter);
-
-  /* add filters for file extensions */
-  gtkfilter     = gtk_file_filter_new();
-  gtkfilter_all = gtk_file_filter_new();
-
-  /* one filter to show everything */
-  gtk_file_filter_add_pattern(gtkfilter_all, "*.*");
-  gtk_file_filter_set_name   (gtkfilter_all, "All Files");
-
-  /* add filter if present */
-  result = strtok(cp, space);
-  while( result != NULL  ) {
-    snprintf(fileext,10,"*%s",result);
-    result = strtok( NULL, space );
-    gtk_file_filter_add_pattern(gtkfilter, fileext);
-  };
-
-  /* second filter to only show what's useful */
-  gtk_file_filter_set_name (gtkfilter,filter);
-
-  if (openMode[0] == 'r')
-    {
-      dialog = gtk_file_chooser_dialog_new (label,
-                                           NULL,
-                                           GTK_FILE_CHOOSER_ACTION_OPEN,
-                                           GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
-                                           GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
-                                           NULL);
-    }
-  else
-    {
-      dialog = gtk_file_chooser_dialog_new (label,
-                                           NULL,
-                                           GTK_FILE_CHOOSER_ACTION_SAVE,
-                                           GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
-                                           GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
-                                           NULL);
-      /* add filename suggestions */
-      if (strlen(def) > 0 )
-       gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(dialog), def);
-
-      //gtk_file_chooser_set_create_folders(GTK_FILE_CHOOSER (dialog),TRUE);
-    }
-
-  /* add filters */
-  gtk_file_chooser_add_filter (GTK_FILE_CHOOSER(dialog),gtkfilter_all);
-  gtk_file_chooser_add_filter (GTK_FILE_CHOOSER(dialog),gtkfilter);
-  /* activate filter */
-  gtk_file_chooser_set_filter (GTK_FILE_CHOOSER(dialog),gtkfilter);
-
-  if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
-    {
-      char *filename;
-      FILE *f;
-
-      filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
-
-      //see loadgamepopup
-      f = fopen(filename, openMode);
-      if (f == NULL)
-        {
-          DisplayError(_("Failed to open file"), errno);
-        }
-      else
-        {
-          /* TODO add indec */
-           *fp = f;
-           ASSIGN(*name, filename);
-           ScheduleDelayedEvent(DelayedLoad, 50);
-        }
-      StartDir(filter, filename);
-      g_free (filename);
-    }
-  else StartDir(filter, "");
-
-  gtk_widget_destroy (dialog);
-  ModeHighlight();
-
-  if(def && *def && def[strlen(def)-1] == '/') chdir(curDir);
-
-  free(cp);
-  return;
-
-}
diff --git a/gtk/xboard.h b/gtk/xboard.h
deleted file mode 100644 (file)
index ca3656b..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * xboard.h -- Parameter definitions for X front end
- *
- * Copyright 1991 by Digital Equipment Corporation, Maynard,
- * Massachusetts.
- *
- * Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006,
- * 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free
- * Software Foundation, Inc.
- *
- * The following terms apply to Digital Equipment Corporation's copyright
- * interest in XBoard:
- * ------------------------------------------------------------------------
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notice appear in all copies and that
- * both that copyright notice and this permission notice appear in
- * supporting documentation, and that the name of Digital not be
- * used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- *
- * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- * ------------------------------------------------------------------------
- *
- * The following terms apply to the enhanced version of XBoard
- * distributed by the Free Software Foundation:
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-#include <stdio.h>
-
-#define ICS_LOGON    ".icsrc"
-#define MANPAGE      "xboard.6"
-#define CLOCK_FONT_NAME         "Sans Bold %d"
-#define COORD_FONT_NAME         "Sans Bold %d"
-#define DEFAULT_FONT_NAME       "Sans Normal %d"
-#define CONSOLE_FONT_NAME       "Monospace Normal %d"
-#define HISTORY_FONT_NAME       "Sans Normal %d"
-#define COMMENT_FONT_NAME       "Sans Normal %d"
-#define TAGS_FONT_NAME          "Sans Normal %d"
-#define GAMELIST_FONT_NAME      "Sans Normal %d"
-#define COLOR_SHOUT             "green"
-#define COLOR_SSHOUT            "green,black,1"
-#define COLOR_CHANNEL1          "cyan"
-#define COLOR_CHANNEL           "cyan,black,1"
-#define COLOR_KIBITZ            "magenta,black,1"
-#define COLOR_TELL              "yellow,black,1"
-#define COLOR_CHALLENGE         "red,black,1"
-#define COLOR_REQUEST           "red"
-#define COLOR_SEEK              "blue"
-#define COLOR_NORMAL            "default"
-#define COLOR_LOWTIMEWARNING    "red"
-
-typedef struct {
-    char *name;
-    int squareSize;
-    int lineGap;
-    int clockFontPxlSize;
-    int coordFontPxlSize;
-    int fontPxlSize;
-    int smallLayout;
-    int tinyLayout;
-    int minScreenSize;
-} SizeDefaults;
-
-#define SIZE_DEFAULTS \
-{ { "Titanic",  129, 4, 34, 14, 14, 0, 0, 1200 }, \
-  { "Colossal", 116, 4, 34, 14, 14, 0, 0, 1200 }, \
-  { "Giant",    108, 3, 34, 14, 14, 0, 0, 1024 }, \
-  { "Huge",     95, 3, 34, 14, 14, 0, 0, 1024 }, \
-  { "Big",      87, 3, 34, 14, 14, 0, 0, 864 }, \
-  { "Large",    80, 3, 34, 14, 14, 0, 0, 864 }, \
-  { "Bulky",    72, 3, 34, 12, 14, 0, 0, 864 }, \
-  { "Medium",   64, 3, 34, 12, 14, 1, 0, 768 }, \
-  { "Moderate", 58, 3, 34, 12, 14, 1, 0, 768 }, \
-  { "Average",  54, 2, 30, 11, 12, 1, 0, 600 }, \
-  { "Middling", 49, 2, 24, 10, 12, 1, 0, 600 }, \
-  { "Mediocre", 45, 2, 20, 10, 12, 1, 4, 600 }, \
-  { "Small",    40, 2, 20, 10, 12, 1, 3, 480 }, \
-  { "Slim",     37, 2, 20, 10, 12, 1, 3, 480 }, \
-  { "Petite",   33, 1, 15, 9,  11, 1, 2, 480 }, \
-  { "Dinky",    29, 1, 15, 9,  11, 1, 1, 480 }, \
-  { "Teeny",    25, 1, 12, 8,  11, 1, 1, 480 }, \
-  { "Tiny",     21, 1, 12, 8,  11, 1, 1, 0 }, \
-  {   NULL,      0, 0,  0, 0,   0, 0, 0, 0 } }
-
-#define BORDER_X_OFFSET 3
-#define BORDER_Y_OFFSET 27
-#define FIRST_CHESS_PROGRAM    "fairymax"
-#define SECOND_CHESS_PROGRAM   ""
-#define FIRST_DIRECTORY         "."
-#define SECOND_DIRECTORY        "."
-#define SOUND_BELL              ""
-#define ICS_NAMES               ""
-#define FCP_NAMES               ""
-#define SCP_NAMES               ""
-#define ICS_TEXT_MENU_DEFAULT   ""
-#define SETTINGS_FILE           SYSCONFDIR"/xboard.conf"
-#define COLOR_BKGD              "white"
-
-GdkPixbuf *LoadIconFile P((char *name));
-void NewTagsPopup P((char *text, char *msg));
-int AppendText P((Option *opt, char *s));
-void NewCommentPopup P((char *title, char *text, int index));
-void GetActualPlacement P((GtkWidget *shell, WindowPlacement *wp));
-#ifdef TODO_GTK
-void CatchDeleteWindow(Widget w, String procname);
-void GenericPopDown P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void SetFocus(Widget w, XtPointer data, XEvent *event, Boolean *b); // from xoptions.c
-void TypeInProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-Widget CreateMenuItem P((Widget menu, char *msg, XtCallbackProc CB, int n));
-void WheelProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void TabProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void GenericMenu P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-
-// from xengineoutput.c
-void SelectPV P((Widget w, XEvent * event, String * params, Cardinal * nParams));
-void StopPV P((Widget w, XEvent * event, String * params, Cardinal * nParams));
-#endif
-
-extern char memoTranslations[];
-
-extern GtkAccelGroup *GtkAccelerators;
-
-#if TODO_GTK
-extern Widget shells[];
-extern Widget formWidget, shellWidget, boardWidget, menuBarWidget;
-extern Display *xDisplay;
-extern Window xBoardWindow;
-extern Pixmap xMarkPixmap, wIconPixmap, bIconPixmap;
-extern Pixel timerForegroundPixel, timerBackgroundPixel, dialogColor, buttonColor;
-extern Atom wm_delete_window;
-extern GC coordGC;
-extern Dimension textHeight; // of message widget in board window
-#else
-extern GtkWidget *shells[];
-#endif
-extern int dialogError;
-extern int squareSize;
-extern char *layoutName;
-extern int useImages, useImageSqs;
-extern char ICSInputTranslations[];
-extern char *selected_fen_position;
-
-
-#define TOPLEVEL 1 /* preference item; 1 = make popup windows toplevel */
diff --git a/gtk/xengineoutput.c b/gtk/xengineoutput.c
deleted file mode 100644 (file)
index 374cbc1..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Engine output (PV)
- *
- * Author: Alessandro Scotti (Dec 2005)
- *
- * Copyright 2005 Alessandro Scotti
- *
- * Enhancements Copyright 2009, 2010, 2011, 2012, 2013, 2014, 2015,
- * 2016 Free Software Foundation, Inc.
- *
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.
- *
- * ------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-#include "config.h"
-
-#include <stdio.h>
-#include <ctype.h>
-#include <errno.h>
-#include <sys/types.h>
-
-#if STDC_HEADERS
-# include <stdlib.h>
-# include <string.h>
-#else /* not STDC_HEADERS */
-extern char *getenv();
-# if HAVE_STRING_H
-#  include <string.h>
-# else /* not HAVE_STRING_H */
-#  include <strings.h>
-# endif /* not HAVE_STRING_H */
-#endif /* not STDC_HEADERS */
-
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
-#include <gtk/gtk.h>
-
-#include "common.h"
-#include "frontend.h"
-#include "backend.h"
-#include "dialogs.h"
-#include "xboard.h"
-#include "engineoutput.h"
-#include "gettext.h"
-
-#ifdef ENABLE_NLS
-# define  _(s) gettext (s)
-# define N_(s) gettext_noop (s)
-#else
-# define  _(s) (s)
-# define N_(s)  s
-#endif
-
-extern Option engoutOptions[]; // must go in header, but which?
-
-/* Module variables */
-#ifdef TODO_GTK
-static Widget memoWidget;
-#endif
-static GdkPixbuf *iconsGTK[8];
-
-static void
-ReadIcon (gchar *svgFilename, int iconNr)
-{
-    iconsGTK[iconNr] = LoadIconFile(svgFilename);
-}
-
-void
-InitEngineOutput (Option *opt, Option *memo2)
-{      // front-end, because it must have access to the pixmaps
-#ifdef TODO_GTK
-       Widget w = opt->handle;
-       memoWidget = memo2->handle;
-#endif
-    ReadIcon("eo_White", nColorWhite);
-    ReadIcon("eo_Black", nColorBlack);
-    ReadIcon("eo_Unknown", nColorUnknown);
-
-    ReadIcon("eo_Clear", nClear);
-    ReadIcon("eo_Ponder", nPondering);
-    ReadIcon("eo_Thinking", nThinking);
-    ReadIcon("eo_Analyzing", nAnalyzing);
-}
-
-void
-DrawWidgetIcon (Option *opt, int nIcon)
-{   // as we are already in GTK front-end, so do GTK-stuff here
-    if( nIcon != 0 ) gtk_image_set_from_pixbuf(GTK_IMAGE(opt->handle), GDK_PIXBUF(iconsGTK[nIcon]));
-}
-
-void
-InsertIntoMemo (int which, char * text, int where)
-{
-    char *p;
-    GtkTextIter start;
-
-    /* the backend adds \r\n, which is needed for winboard,
-     * for xboard we delete them again over here */
-    if(p = strchr(text, '\r')) *p = ' ';
-
-    GtkTextBuffer *tb = (GtkTextBuffer *) (engoutOptions[which ? 12 : 5].handle);
-//    gtk_text_buffer_get_start_iter(GTK_TEXT_BUFFER(tb), &start);
-    gtk_text_buffer_get_iter_at_offset(tb, &start, where);
-    gtk_text_buffer_insert(tb, &start, text, -1);
-    if(where < highTextStart[which]) { // [HGM] multiPVdisplay: move highlighting
-       int len = strlen(text);
-       highTextStart[which] += len; highTextEnd[which] += len;
-    }
-}
-
-//------------------------------- pane switching -----------------------------------
-
-void
-ResizeWindowControls (int mode)
-{   // another hideous kludge: to have only a single pane, we resize the
-    // second to 5 pixels (which makes it too small to display anything)
-    if(mode) gtk_widget_show(engoutOptions[13].handle);
-    else     gtk_widget_hide(engoutOptions[13].handle);
-}
diff --git a/gtk/xoptions.c b/gtk/xoptions.c
deleted file mode 100644 (file)
index 3cf123e..0000000
+++ /dev/null
@@ -1,1892 +0,0 @@
-/*
- * xoptions.c -- Move list window, part of X front end for XBoard
- *
- * Copyright 2000, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free Software Foundation, Inc.
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-// [HGM] this file is the counterpart of woptions.c, containing xboard popup menus
-// similar to those of WinBoard, to set the most common options interactively.
-
-#include "config.h"
-
-#include <stdio.h>
-#include <ctype.h>
-#include <errno.h>
-#include <sys/types.h>
-
-#if STDC_HEADERS
-# include <stdlib.h>
-# include <string.h>
-#else /* not STDC_HEADERS */
-extern char *getenv();
-# if HAVE_STRING_H
-#  include <string.h>
-# else /* not HAVE_STRING_H */
-#  include <strings.h>
-# endif /* not HAVE_STRING_H */
-#endif /* not STDC_HEADERS */
-
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-#include <stdint.h>
-
-#include <cairo/cairo.h>
-#include <gtk/gtk.h>
-#include <gdk/gdkkeysyms.h>
-#ifdef OSXAPP
-#  include <gtkmacintegration/gtkosxapplication.h>
-#endif
-
-#include "common.h"
-#include "backend.h"
-#include "xboard.h"
-#include "xboard2.h"
-#include "dialogs.h"
-#include "menus.h"
-#include "gettext.h"
-
-#ifdef ENABLE_NLS
-# define  _(s) gettext (s)
-# define N_(s) gettext_noop (s)
-#else
-# define  _(s) (s)
-# define N_(s)  s
-#endif
-
-// [HGM] the following code for makng menu popups was cloned from the FileNamePopUp routines
-
-#ifdef TODO_GTK
-static Widget previous = NULL;
-#endif
-static Option *currentOption;
-static Boolean browserUp;
-
-void
-UnCaret ()
-{
-#ifdef TODO_GTK
-    Arg args[2];
-
-    if(previous) {
-       XtSetArg(args[0], XtNdisplayCaret, False);
-       XtSetValues(previous, args, 1);
-    }
-    previous = NULL;
-#endif
-}
-
-#ifdef TODO_GTK
-void
-SetFocus (Widget w, XtPointer data, XEvent *event, Boolean *b)
-{
-    Arg args[2];
-    char *s;
-    int j;
-
-    UnCaret();
-    XtSetArg(args[0], XtNstring, &s);
-    XtGetValues(w, args, 1);
-    j = 1;
-    XtSetArg(args[0], XtNdisplayCaret, True);
-    if(!strchr(s, '\n') && strlen(s) < 80) XtSetArg(args[1], XtNinsertPosition, strlen(s)), j++;
-    XtSetValues(w, args, j);
-    XtSetKeyboardFocus((Widget) data, w);
-    previous = w;
-}
-#endif
-
-void
-BoardFocus ()
-{
-#ifdef TODO_GTK
-    XtSetKeyboardFocus(shellWidget, formWidget);
-#endif
-}
-
-//--------------------------- Engine-specific options menu ----------------------------------
-
-int dialogError;
-Option *dialogOptions[NrOfDialogs];
-
-#ifdef TODO_GTK
-static Arg layoutArgs[] = {
-    { XtNborderWidth, 0 },
-    { XtNdefaultDistance, 0 },
-};
-
-static Arg formArgs[] = {
-    { XtNborderWidth, 0 },
-    { XtNresizable, (XtArgVal) True },
-};
-#endif
-
-void GetWidgetTextGTK(GtkWidget *w, char **buf)
-{
-    GtkTextIter start;
-    GtkTextIter end;
-
-    if (GTK_IS_ENTRY(w)) {
-       *buf = (char *) gtk_entry_get_text(GTK_ENTRY (w));
-    } else
-    if (GTK_IS_TEXT_BUFFER(w)) {
-        gtk_text_buffer_get_start_iter(GTK_TEXT_BUFFER(w), &start);
-        gtk_text_buffer_get_end_iter(GTK_TEXT_BUFFER(w), &end);
-        *buf = gtk_text_buffer_get_text(GTK_TEXT_BUFFER(w), &start, &end, FALSE);
-    }
-    else {
-        printf("error in GetWidgetText, invalid widget\n");
-        *buf = NULL;
-    }
-}
-
-void
-GetWidgetText (Option *opt, char **buf)
-{
-    int x;
-    static char val[12];
-    switch(opt->type) {
-      case Fractional:
-      case FileName:
-      case PathName:
-      case TextBox: GetWidgetTextGTK((GtkWidget *) opt->handle, buf); break;
-      case Spin:
-       x = gtk_spin_button_get_value (GTK_SPIN_BUTTON(opt->handle));
-       snprintf(val, 12, "%d", x); *buf = val;
-       break;
-      default:
-       printf("unexpected case (%d) in GetWidgetText\n", opt->type);
-       *buf = NULL;
-    }
-}
-
-void SetSpinValue(Option *opt, char *val, int n)
-{
-    if (opt->type == Spin)
-      {
-        if (!strcmp(val, _("Unused")))
-           gtk_widget_set_sensitive(opt->handle, FALSE);
-        else
-          {
-            gtk_widget_set_sensitive(opt->handle, TRUE);
-            gtk_spin_button_set_value(opt->handle, atoi(val));
-          }
-      }
-    else
-      printf("error in SetSpinValue, unknown type %d\n", opt->type);
-}
-
-void SetWidgetTextGTK(GtkWidget *w, char *text)
-{
-    if (GTK_IS_ENTRY(w)) {
-       gtk_entry_set_text (GTK_ENTRY (w), text);
-    } else
-    if (GTK_IS_TEXT_BUFFER(w)) {
-       gtk_text_buffer_set_text(GTK_TEXT_BUFFER(w), text, -1);
-    } else
-       printf("error: SetWidgetTextGTK arg is neitherGtkEntry nor GtkTextBuffer\n");
-}
-
-void
-SetWidgetText (Option *opt, char *buf, int n)
-{
-    switch(opt->type) {
-      case Fractional:
-      case FileName:
-      case PathName:
-      case TextBox: SetWidgetTextGTK((GtkWidget *) opt->handle, buf); break;
-      case Spin: SetSpinValue(opt, buf, n); break;
-      default:
-       printf("unexpected case (%d) in GetWidgetText\n", opt->type);
-    }
-#ifdef TODO_GTK
-// focus is automatic in GTK?
-    if(n >= 0) SetFocus(opt->handle, shells[n], NULL, False);
-#endif
-}
-
-void
-GetWidgetState (Option *opt, int *state)
-{
-    *state = gtk_toggle_button_get_active(opt->handle);
-}
-
-void
-SetWidgetState (Option *opt, int state)
-{
-    gtk_toggle_button_set_active(opt->handle, state);
-}
-
-void
-SetWidgetLabel (Option *opt, char *buf)
-{
-    if(opt->type == Button) // Chat window uses this routine for changing button labels
-       gtk_button_set_label(opt->handle, buf);
-    else
-       gtk_label_set_text(opt->handle, buf);
-}
-
-void
-SetComboChoice (Option *opt, int n)
-{
-    gtk_combo_box_set_active(opt->handle, n);
-}
-
-void
-SetDialogTitle (DialogClass dlg, char *title)
-{
-    gtk_window_set_title(GTK_WINDOW(shells[dlg]), title);
-}
-
-void
-WidgetEcho (Option *opt, int n)
-{
-    gtk_entry_set_visibility(opt->handle, n);
-}
-
-void
-SetWidgetFont (GtkWidget *w, char **s)
-{
-    PangoFontDescription *pfd;
-    if (!s || !*s || !**s) return; // uses no font, no font spec or empty font spec
-    pfd = pango_font_description_from_string(*s);
-    gtk_widget_modify_font(w, pfd);
-}
-
-void
-ApplyFont (Option *opt, char *font)
-{
-    GtkWidget *w = NULL;
-    if(!font && opt->font) font = *opt->font;
-    if(!font) return;
-    switch(opt->type) {
-      case ListBox:
-      case Label:   w = opt->handle; break;
-      case Button:  if(opt->handle) w = gtk_bin_get_child(GTK_BIN(opt->handle)); break;
-      case TextBox: w = (GtkWidget *) opt->textValue; if(!w) w = opt->handle; break;
-      default: ;
-    }
-    if(w && font) SetWidgetFont(w, &font);
-}
-
-GtkWidget *fbutton;
-
-void
-FontCallback (GtkWidget *widget, gpointer gdata)
-{
-    Option *opt = (Option *) gdata;
-    gchar *p = (char *) gtk_font_button_get_font_name(GTK_FONT_BUTTON(fbutton));
-    SetWidgetText(opt, p, TransientDlg);
-    ApplyFont(opt, p);
-}
-
-void
-ColorCallback (GtkWidget *widget, gpointer gdata)
-{
-    Option *opt = (Option *) gdata;
-    GdkColor rgba;
-    char buf[MSG_SIZ]; 
-    gtk_color_button_get_color(GTK_COLOR_BUTTON(widget), &rgba);
-    snprintf(buf, MSG_SIZ, "#%02x%02x%02x", rgba.red>>8, rgba.green>>8, rgba.blue>>8);
-    gtk_widget_modify_bg ( GTK_WIDGET(opt[1].handle), GTK_STATE_NORMAL, &rgba );
-    SetWidgetText(opt, buf, TransientDlg);
-}
-
-void
-SetListBoxItem (GtkListStore *store, int n, char *msg)
-{
-    GtkTreeIter iter;
-    GtkTreePath *path = gtk_tree_path_new_from_indices(n, -1);
-    gtk_tree_model_get_iter(GTK_TREE_MODEL (store), &iter, path);
-    gtk_tree_path_free(path);
-    gtk_list_store_set(store, &iter, 0, msg, -1);
-}
-
-void
-LoadListBox (Option *opt, char *emptyText, int n1, int n2)
-{
-    char **data = (char **) (opt->target);
-    GtkWidget *list = (GtkWidget *) (opt->handle);
-    GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(list));
-    GtkListStore *store = GTK_LIST_STORE(model);
-    GtkTreeIter iter;
-
-    if(n1 >= 0 && n2 >= 0) {
-       SetListBoxItem(store, n1, data[n1]);
-       SetListBoxItem(store, n2, data[n2]);
-       return;
-    }
-
-    if (gtk_tree_model_get_iter_first(model, &iter))
-       gtk_list_store_clear(store);
-
-    while(*data) { // add elements to listbox one by one
-        gtk_list_store_append(store, &iter);
-        gtk_list_store_set(store, &iter, 0, *data++, -1); // 0 = first column
-    }
-}
-
-void
-HighlightItem (Option *opt, int index, int scroll)
-{
-    GtkWidget *list = (GtkWidget *) (opt->handle);
-    GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(list));
-    GtkTreePath *path = gtk_tree_path_new_from_indices(index, -1);
-    gtk_tree_selection_select_path(selection, path);
-    if(scroll) gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW(list), path, NULL, 0, 0, 0);
-    gtk_tree_path_free(path);
-}
-
-void
-HighlightListBoxItem (Option *opt, int index)
-{
-    HighlightItem (opt, index, FALSE);
-}
-
-void
-HighlightWithScroll (Option *opt, int index, int max)
-{
-    HighlightItem (opt, index, TRUE); // ignore max
-}
-
-void
-ScrollToCursor (Option *opt, int caretPos)
-{
-    static GtkTextIter iter;
-    GtkTextMark *mark = gtk_text_buffer_get_mark((GtkTextBuffer *) opt->handle, "scrollmark");
-    gtk_text_buffer_get_iter_at_offset((GtkTextBuffer *) opt->handle, &iter, caretPos);
-    gtk_text_buffer_move_mark((GtkTextBuffer *) opt->handle, mark, &iter);
-    gtk_text_view_scroll_to_mark((GtkTextView *) opt->textValue, mark, 0.0, 0, 0.5, 0.5);
-}
-
-int
-SelectedListBoxItem (Option *opt)
-{
-    int i;
-    char *value, **data = (char **) (opt->target);
-    GtkWidget *list = (GtkWidget *) (opt->handle);
-    GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(list));
-
-    GtkTreeModel *model;
-    GtkTreeIter iter;
-    if (!gtk_tree_selection_get_selected(GTK_TREE_SELECTION(selection), &model, &iter)) return -1;
-    gtk_tree_model_get(model, &iter, 0, &value,  -1);
-    for(i=0; data[i]; i++) if(!strcmp(data[i], value)) return i;
-    g_free(value);
-    return -1;
-}
-
-void
-FocusOnWidget (Option *opt, DialogClass dlg)
-{
-    UnCaret();
-#ifdef TODO_GTK
-    XtSetKeyboardFocus(shells[dlg], opt->handle);
-#endif
-    if(dlg) gtk_window_present(GTK_WINDOW(shells[dlg]));
-    gtk_widget_grab_focus(opt->handle);
-}
-
-void
-SetIconName (DialogClass dlg, char *name)
-{
-#ifdef TODO_GTK
-       Arg args[16];
-       int j = 0;
-       XtSetArg(args[j], XtNiconName, (XtArgVal) name);  j++;
-//     XtSetArg(args[j], XtNtitle, (XtArgVal) name);  j++;
-       XtSetValues(shells[dlg], args, j);
-#endif
-}
-
-static int menuBlock;
-
-static gboolean
-HelpEvent(GtkWidget *widget, GdkEventButton *event, gpointer gdata)
-{   // intercept button3 clicks to pop up help
-    char *msg = (char *) gdata;
-    int menu = (event->type == GDK_BUTTON_RELEASE); // only menu items trigger help on release
-    if(event->button != 3) return FALSE;
-    menuBlock = 2*menu; // prevent menu action is really excuted by default action
-    if(menu) gtk_menu_item_activate(GTK_MENU_ITEM(widget)); // hideous kludge: activate (blocked) menu item twice to prevent check-marking
-    DisplayHelp(msg);
-    return !menu; // in case of menu we have to execute default action to popdown and unfocus
-}
-
-void ComboSelect(GtkWidget *widget, gpointer addr)
-{
-    Option *opt = dialogOptions[((intptr_t)addr)>>8]; // applicable option list
-    gint i = ((intptr_t)addr) & 255; // option number
-    gint g;
-
-    g = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
-    values[i] = g; // store in temporary, for transfer at OK
-
-#if TODO_GTK
-// Note: setting text on button is probably automatic
-// Is this still needed? Could be all comboboxes that needed a callbak are now listboxes!
-#endif
-    if(opt[i].type == Graph || opt[i].min & COMBO_CALLBACK && (!currentCps || shellUp[BrowserDlg])) {
-       ((ButtonCallback*) opt[i].target)(i);
-       return;
-    }
-}
-
-#ifdef TODO_GTK
-Widget
-CreateMenuItem (Widget menu, char *msg, XtCallbackProc CB, int n)
-{
-    int j=0;
-    Widget entry;
-    Arg args[16];
-    XtSetArg(args[j], XtNleftMargin, 20);   j++;
-    XtSetArg(args[j], XtNrightMargin, 20);  j++;
-    if(!strcmp(msg, "----")) { XtCreateManagedWidget(msg, smeLineObjectClass, menu, args, j); return NULL; }
-    XtSetArg(args[j], XtNlabel, msg);
-    entry = XtCreateManagedWidget("item", smeBSBObjectClass, menu, args, j+1);
-    XtAddCallback(entry, XtNcallback, CB, (caddr_t)(intptr_t) n);
-    return entry;
-}
-#endif
-
-static void
-MenuSelect (gpointer addr) // callback for all combo items
-{
-    Option *opt = dialogOptions[((intptr_t)addr)>>24]; // applicable option list
-    int i = ((intptr_t)addr)>>16 & 255; // option number
-    int j = 0xFFFF & (intptr_t) addr;
-
-    if(menuBlock) { menuBlock--; return; } // was help click only
-    values[i] = j; // store selected value in Option struct, for retrieval at OK
-    ((ButtonCallback*) opt[i].target)(i);
-}
-
-static GtkWidget *
-CreateMenuPopup (Option *opt, int n, int def)
-{   // fromList determines if the item texts are taken from a list of strings, or from a menu table
-    int i;
-    GtkWidget *menu, *entry;
-    MenuItem *mb = (MenuItem *) opt->choice;
-
-    menu = gtk_menu_new();
-//    menu = XtCreatePopupShell(opt->name, simpleMenuWidgetClass, parent, NULL, 0);
-    for (i=0; 1; i++)
-      {
-       char *msg = mb[i].string;
-       if(!msg) break;
-#ifdef OSXAPP
-       if(!strcmp(msg, "Quit ")) continue;             // Quit item will appear automatically in App menu
-       if(!strcmp(msg, "About XBoard")) msg = "About"; // 'XBoard' will be appended automatically when moved to App menu 1st item
-#endif
-        if(!strcmp(msg, "ICS Input Box")) { mb[i].handle = NULL; continue; } // suppress ICS Input Box in GTK
-       if(strcmp(msg, "----")) { //
-         if(!(opt->min & NO_GETTEXT)) msg = _(msg);
-         if(mb[i].handle) {
-           entry = gtk_check_menu_item_new_with_label(msg); // should be used for items that can be checkmarked
-           if(mb[i].handle == RADIO) gtk_check_menu_item_set_draw_as_radio(GTK_CHECK_MENU_ITEM(entry), True);
-         } else
-           entry = gtk_menu_item_new_with_label(msg);
-         gtk_signal_connect_object (GTK_OBJECT (entry), "activate", GTK_SIGNAL_FUNC(MenuSelect), (gpointer) (intptr_t) ((n<<16)+i));
-         g_signal_connect(entry, "button-release-event", G_CALLBACK (HelpEvent), (gpointer) (mb[i].proc ? mb[i].string : "Recently Used Engines"));
-         if(mb[i].accel) {
-           guint accelerator_key;
-           GdkModifierType accelerator_mods;
-
-           gtk_accelerator_parse(mb[i].accel, &accelerator_key, &accelerator_mods);
-#ifdef OSXAPP
-          if(accelerator_mods & GDK_CONTROL_MASK &&
-             accelerator_key != 'v' &&          // don't use Cmd+V as this is a OS text edit command
-             accelerator_key != 'c' &&           // and Cmd+C
-             accelerator_key != 'x' &&          // and CMD+X
-             accelerator_key != 'a'           // and CMD+A
-             ) {  // in OSX use Meta (Cmd) where Linux uses Ctrl
-              accelerator_mods &= ~GDK_CONTROL_MASK; // clear Ctrl flag
-              accelerator_mods |= GDK_META_MASK;     // set Meta flag
-                 } else if (accelerator_mods & GDK_CONTROL_MASK &&
-                                        accelerator_key == 'v' ||
-                                        accelerator_key == 'c' ||
-                                        accelerator_key == 'x' ||
-                                        accelerator_key == 'a'
-                                        ) { // For these conflicting commands, lets make them alt-cmd
-                         accelerator_mods &= ~GDK_CONTROL_MASK; // clear Ctrl flag
-                         accelerator_mods |= GDK_META_MASK;
-                         accelerator_mods |= GDK_MOD1_MASK;
-                 } 
-#endif
-           gtk_widget_add_accelerator (GTK_WIDGET(entry), "activate",GtkAccelerators,
-                                       accelerator_key, accelerator_mods, GTK_ACCEL_VISIBLE);
-         }
-       } else entry = gtk_separator_menu_item_new();
-       gtk_widget_show(entry);
-       gtk_menu_append(GTK_MENU (menu), entry);
-//CreateMenuItem(menu, opt->min & NO_GETTEXT ? msg : _(msg), (XtCallbackProc) ComboSelect, (n<<16)+i);
-       mb[i].handle = (void*) entry; // save item ID, for enabling / checkmarking
-//     if(i==def) {
-//         XtSetArg(arg, XtNpopupOnEntry, entry);
-//         XtSetValues(menu, &arg, 1);
-//     }
-      }
-      return menu;
-}
-
-Option *icsBox; // kludge to distinguish type-in callback from input-box callback
-
-void
-CursorAtEnd (Option *opt)
-{
-    gtk_editable_set_position(opt->handle, -1);
-}
-
-static gboolean
-ICSKeyEvent (int keyval)
-{   // TODO_GTK: arrow-handling should really be integrated in type-in proc, and this should be a backe-end OK handler
-    switch(keyval) {
-      case GDK_Return: IcsKey(0); return TRUE;
-      case GDK_Up:     IcsKey(1); return TRUE;
-      case GDK_Down:  IcsKey(-1); return TRUE;
-      default: return FALSE;
-    }
-}
-
-int shiftState, controlState;
-
-static gboolean
-TypeInProc (GtkWidget *widget, GdkEventKey *event, gpointer gdata)
-{   // This callback catches key presses on text-entries, and uses <Enter> and <Esc> as synonyms for dialog OK or Cancel
-    // *** kludge alert *** If a dialog does want some other action, like sending the line typed in the text-entry to an ICS,
-    // it should define an OK handler that does so, and returns FALSE to suppress the popdown.
-    int n = (intptr_t) gdata;
-    int dlg = n >> 16;
-    Option *opt;
-    n &= 0xFFFF;
-    opt = &dialogOptions[dlg][n];
-
-    if(opt == icsBox) return ICSKeyEvent(event->keyval); // Intercept ICS Input Box, which needs special treatment
-
-    shiftState = event->state & GDK_SHIFT_MASK;
-    controlState = event->state & GDK_CONTROL_MASK;
-    switch(event->keyval) {
-      case 'e':       return (controlState && IcsHist( 5, opt, dlg));
-      case 'h':       return (controlState && IcsHist( 8, opt, dlg));
-      case 'n':       return (controlState && IcsHist(14, opt, dlg));
-      case 'o':       return (controlState && IcsHist(15, opt, dlg));
-      case GDK_Tab:   IcsHist(10, opt, dlg); break;
-      case GDK_Up:     IcsHist(1, opt, dlg); break;
-      case GDK_Down:  IcsHist(-1, opt, dlg); break;
-      case GDK_Return:
-       if(GenericReadout(dialogOptions[dlg], -1)) PopDown(dlg);
-       break;
-      case GDK_Escape:
-       if(!IcsHist(33, opt, dlg)) PopDown(dlg);
-       break;
-      default:
-       return FALSE;
-    }
-    return TRUE;
-}
-
-void
-HighlightText (Option *opt, int from, int to, Boolean highlight)
-{
-#   define INIT 0x8000
-    static GtkTextIter start, end;
-
-    if(!(opt->min & INIT)) {
-       opt->min |= INIT; // each memo its own init flag!
-       gtk_text_buffer_create_tag(opt->handle, "highlight", "background", "yellow", NULL);
-    }
-    gtk_text_buffer_get_iter_at_offset(opt->handle, &start, from);
-    gtk_text_buffer_get_iter_at_offset(opt->handle, &end, to);
-    if(highlight) gtk_text_buffer_apply_tag_by_name(opt->handle, "highlight", &start, &end);
-    else gtk_text_buffer_remove_tag_by_name(opt->handle, "highlight", &start, &end);
-}
-
-static char **names;
-static int curFG, curBG, curAttr;
-static GdkColor backgroundColor;
-
-void
-SetTextColor(char **cnames, int fg, int bg, int attr)
-{
-    if(fg < 0) fg = 0; if(bg < 0) bg = 7;
-    names = cnames; curFG = fg; curBG = bg, curAttr = attr;
-    if(attr == -2) { // background color of ICS console.
-       gdk_color_parse(cnames[bg&7], &backgroundColor);
-       curAttr = 0;
-    }
-}
-
-void
-AppendColorized (Option *opt, char *s, int count)
-{
-    static GtkTextIter end;
-    static GtkTextTag *fgTags[8], *bgTags[8], *font, *bold, *normal, *attr = NULL;
-
-    if(!s) {
-       font = NULL;
-       return;
-    }
-
-    if(!font) {
-       font = gtk_text_buffer_create_tag(opt->handle, NULL, "font", appData.icsFont, NULL);
-       gtk_widget_modify_base(GTK_WIDGET(opt->textValue), GTK_STATE_NORMAL, &backgroundColor);
-    }
-
-    gtk_text_buffer_get_end_iter(GTK_TEXT_BUFFER(opt->handle), &end);
-
-    if(names) {
-      if(curAttr == 1) {
-       if(!bold) bold = gtk_text_buffer_create_tag(opt->handle, NULL, "weight", PANGO_WEIGHT_BOLD, NULL);
-        attr = bold;
-      } else {
-       if(!normal) normal = gtk_text_buffer_create_tag(opt->handle, NULL, "weight", PANGO_WEIGHT_NORMAL, NULL);
-        attr = normal;
-      }
-      if(!fgTags[curFG]) {
-       fgTags[curFG] = gtk_text_buffer_create_tag(opt->handle, NULL, "foreground", names[curFG], NULL);
-      }
-      if(!bgTags[curBG]) {
-       bgTags[curBG] = gtk_text_buffer_create_tag(opt->handle, NULL, "background", names[curBG], NULL);
-      }
-      gtk_text_buffer_insert_with_tags(opt->handle, &end, s, count, fgTags[curFG], bgTags[curBG], font, attr, NULL);
-    } else
-      gtk_text_buffer_insert_with_tags(opt->handle, &end, s, count, font, NULL);
-
-}
-
-void
-Show (Option *opt, int hide)
-{
-    if(hide) gtk_widget_hide(opt->handle);
-    else     gtk_widget_show(opt->handle);
-}
-
-int
-ShiftKeys ()
-{   // bassic primitive for determining if modifier keys are pressed
-    return 3*(shiftState != 0) + 0xC*(controlState != 0); // rely on what last mouse button press left us
-}
-
-static gboolean
-GameListEvent(GtkWidget *widget, GdkEvent *event, gpointer gdata)
-{
-    int n = (intptr_t) gdata;
-
-    if(n == 4) {
-       if(((GdkEventKey *) event)->keyval != GDK_Return) return FALSE;
-       SetFilter();
-       return TRUE;
-    }
-
-    if(event->type == GDK_KEY_PRESS) {
-       int ctrl = (((GdkEventKey *) event)->state & GDK_CONTROL_MASK) != 0;
-       switch(((GdkEventKey *) event)->keyval) {
-         case GDK_Up: GameListClicks(-1 - 2*ctrl); return TRUE;
-         case GDK_Left: GameListClicks(-1); return TRUE;
-         case GDK_Down: GameListClicks(1 + 2*ctrl); return TRUE;
-         case GDK_Right: GameListClicks(1); return TRUE;
-         case GDK_Prior: GameListClicks(-4); return TRUE;
-         case GDK_Next: GameListClicks(4); return TRUE;
-         case GDK_Home: GameListClicks(-2); return TRUE;
-         case GDK_End: GameListClicks(2); return TRUE;
-         case GDK_Return: GameListClicks(0); return TRUE;
-         default: return FALSE;
-       }
-    }
-    if(event->type != GDK_2BUTTON_PRESS || ((GdkEventButton *) event)->button != 1) return FALSE;
-    GameListClicks(0);
-    return TRUE;
-}
-
-static gboolean
-MemoEvent(GtkWidget *widget, GdkEvent *event, gpointer gdata)
-{   // handle mouse clicks on text widgets that need it
-    int w, h;
-    int button=10, f=1;
-    Option *memo = (Option *) gdata;
-    MemoCallback *userHandler = (MemoCallback *) memo->choice;
-    GdkEventButton *bevent = (GdkEventButton *) event;
-    GdkEventMotion *mevent = (GdkEventMotion *) event;
-    GtkTextIter start, end;
-    String val = NULL;
-    gboolean res;
-    gint index = 0, x, y;
-
-    switch(event->type) { // figure out what's up
-       case GDK_MOTION_NOTIFY:
-           f = 0;
-           w = mevent->x; h = mevent->y;
-           break;
-       case GDK_BUTTON_RELEASE:
-           f = -1; // release indicated by negative button numbers
-           w = bevent->x; h = bevent->y;
-           button = bevent->button;
-           break;
-       case GDK_BUTTON_PRESS:
-           w = bevent->x; h = bevent->y;
-           button = bevent->button;
-           shiftState = bevent->state & GDK_SHIFT_MASK;
-           controlState = bevent->state & GDK_CONTROL_MASK;
-           if(memo->type == Label) { // only clock widgets use this
-               ((ButtonCallback*) memo->target)(button == 1 ? memo->value : -memo->value);
-               return TRUE;
-           }
-           if(memo->value == 250 // kludge to recognize ICS Console and Chat panes
-            && gtk_text_buffer_get_selection_bounds(memo->handle, NULL, NULL) ) {
-               gtk_text_buffer_get_selection_bounds(memo->handle, &start, &end); // only return selected text
-               index = -1; // kludge to indicate something was selected
-           } else {
-               if(abs(button) == 3 && gtk_text_buffer_get_selection_bounds(memo->handle, NULL, NULL)) return FALSE; // normal context menu
-// GTK_TODO: is this really the most efficient way to get the character at the mouse cursor???
-               gtk_text_view_window_to_buffer_coords(GTK_TEXT_VIEW(widget), GTK_TEXT_WINDOW_WIDGET, w, h, &x, &y);
-               gtk_text_view_get_iter_at_location(GTK_TEXT_VIEW(widget), &start, x, y);
-               gtk_text_buffer_place_cursor(memo->handle, &start);
-               /* get cursor position into index */
-               g_object_get(memo->handle, "cursor-position", &index, NULL);
-               /* take complete contents */
-               gtk_text_buffer_get_start_iter (memo->handle, &start);
-               gtk_text_buffer_get_end_iter (memo->handle, &end);
-           }
-           /* get text from textbuffer */
-           val = gtk_text_buffer_get_text (memo->handle, &start, &end, FALSE);
-           if(strlen(val) != index) break; // if we clicked behind all text, fall through to do default action
-       default:
-           return FALSE; // should not happen
-    }
-    button *= f;
-    // hand click parameters as well as text & location to user
-    res = (userHandler) (memo, button, w, h, val, index);
-    if(val) g_free(val);
-    return res;
-}
-
-void
-AddHandler (Option *opt, DialogClass dlg, int nr)
-{
-    switch(nr) {
-      case 0: // history (now uses generic textview callback)
-      case 1: // comment (likewise)
-       break;
-      case 3: // input box
-       icsBox = opt;
-      case 2: // move type-in
-       g_signal_connect(opt->handle, "key-press-event", G_CALLBACK (TypeInProc), (gpointer) (dlg<<16 | (opt - dialogOptions[dlg])));
-       break;
-      case 5: // game list
-       g_signal_connect(opt->handle, "button-press-event", G_CALLBACK (GameListEvent), (gpointer) 0 );
-      case 4: // game-list filter
-       g_signal_connect(opt->handle, "key-press-event", G_CALLBACK (GameListEvent), (gpointer) (intptr_t) nr );
-       break;
-      case 6: // engine output (uses generic textview callback)
-       break;
-    }
-}
-
-//----------------------------Generic dialog --------------------------------------------
-
-// cloned from Engine Settings dialog (and later merged with it)
-
-GtkWidget *shells[NrOfDialogs];
-DialogClass parents[NrOfDialogs];
-WindowPlacement *wp[NrOfDialogs] = { // Beware! Order must correspond to DialogClass enum
-    NULL, &wpComment, &wpTags, &wpTextMenu, NULL, &wpConsole, &wpDualBoard, &wpMoveHistory, &wpGameList, &wpEngineOutput, &wpEvalGraph,
-    NULL, NULL, NULL, NULL, &wpMain
-};
-
-int
-DialogExists (DialogClass n)
-{   // accessor for use in back-end
-    return shells[n] != NULL;
-}
-
-void
-RaiseWindow (DialogClass dlg)
-{
-#ifdef TODO_GTK
-    static XEvent xev;
-    Window root = RootWindow(xDisplay, DefaultScreen(xDisplay));
-    Atom atom = XInternAtom (xDisplay, "_NET_ACTIVE_WINDOW", False);
-
-    xev.xclient.type = ClientMessage;
-    xev.xclient.serial = 0;
-    xev.xclient.send_event = True;
-    xev.xclient.display = xDisplay;
-    xev.xclient.window = XtWindow(shells[dlg]);
-    xev.xclient.message_type = atom;
-    xev.xclient.format = 32;
-    xev.xclient.data.l[0] = 1;
-    xev.xclient.data.l[1] = CurrentTime;
-
-    XSendEvent (xDisplay,
-          root, False,static gboolean
-MemoEvent(GtkWidget *widget, GdkEvent *event, gpointer gdata)
-
-          SubstructureRedirectMask | SubstructureNotifyMask,
-          &xev);
-
-    XFlush(xDisplay);
-    XSync(xDisplay, False);
-#endif
-}
-
-int
-PopDown (DialogClass n)
-{
-    //Arg args[10];
-
-    if (!shellUp[n] || !shells[n]) return 0;
-    if(n && wp[n]) { // remember position
-       GetActualPlacement(shells[n], wp[n]);
-    }
-
-    gtk_widget_hide(shells[n]);
-    shellUp[n]--; // count rather than clear
-
-    if(n == 0 || n >= PromoDlg) {
-        gtk_widget_destroy(shells[n]);
-        shells[n] = NULL;
-    }
-
-    if(marked[n]) {
-       MarkMenuItem(marked[n], False);
-       marked[n] = NULL;
-    }
-
-    if(!n) currentCps = NULL; // if an Engine Settings dialog was up, we must be popping it down now
-    currentOption = dialogOptions[TransientDlg]; // just in case a transient dialog was up (to allow its check and combo callbacks to work)
-#ifdef TODO_GTK
-    RaiseWindow(parents[n]); // automatic in GTK?
-    if(parents[n] == BoardWindow) XtSetKeyboardFocus(shellWidget, formWidget); // also automatic???
-#endif
-    return 1;
-}
-
-/* GTK callback used when OK/cancel clicked in genericpopup for non-modal dialog */
-gboolean GenericPopDown(w, resptype, gdata)
-     GtkWidget *w;
-     GtkResponseType  resptype;
-     gpointer  gdata;
-{
-    DialogClass dlg = (intptr_t) gdata; /* dialog number dlgnr */
-    GtkWidget *sh = shells[dlg];
-
-    currentOption = dialogOptions[dlg];
-
-#ifdef TODO_GTK
-// I guess BrowserDlg will be abandoned, as GTK has a better browser of its own
-    if(shellUp[BrowserDlg] && dlg != BrowserDlg || dialogError) return True; // prevent closing dialog when it has an open file-browse daughter
-#else
-    if(browserUp || dialogError && dlg != FatalDlg || dlg == MasterDlg && shellUp[TransientDlg])
-       return True; // prevent closing dialog when it has an open file-browse, transient or error-popup daughter
-#endif
-    shells[dlg] = w; // make sure we pop down the right one in case of multiple instances
-
-    /* OK pressed */
-    if (resptype == GTK_RESPONSE_ACCEPT) {
-        if (GenericReadout(currentOption, -1)) PopDown(dlg);
-        return TRUE;
-    } else
-    /* cancel pressed */
-    {
-       if(dlg == BoardWindow) ExitEvent(0);
-       if(dlg == FatalDlg) ErrorOK(1); else PopDown(dlg);
-    }
-    shells[dlg] = sh; // restore
-    return TRUE;
-}
-
-gboolean PopDownProxy(w, gdata)
-     GtkWidget *w;
-     gpointer  gdata;
-{
-    GtkResponseType resp = GTK_RESPONSE_ACCEPT;
-    int dlg = (intptr_t) gdata;
-    if(dlg >= 3000) dlg -= 3000, resp = GTK_RESPONSE_REJECT;
-    return GenericPopDown(gtk_widget_get_toplevel(w), resp, (gpointer)(intptr_t)dlg);
-}
-
-int AppendText(Option *opt, char *s)
-{
-    char *v;
-    int len;
-    GtkTextIter end;
-
-    GetWidgetTextGTK(opt->handle, &v);
-    len = strlen(v);
-    g_free(v);
-    gtk_text_buffer_get_end_iter(GTK_TEXT_BUFFER(opt->handle), &end);
-    gtk_text_buffer_insert(opt->handle, &end, s, -1);
-
-    return len;
-}
-
-void
-SetColor (char *colorName, Option *box)
-{       // sets the color of a widget
-    GdkColor color;
-
-    /* set the colour of the colour button to the colour that will be used */
-    gdk_color_parse( colorName, &color );
-    gtk_widget_modify_bg ( GTK_WIDGET(box->handle), GTK_STATE_NORMAL, &color );
-}
-
-#ifdef TODO_GTK
-void
-ColorChanged (Widget w, XtPointer data, XEvent *event, Boolean *b)
-{   // for detecting a typed change in color
-    char buf[10];
-    if ( (XLookupString(&(event->xkey), buf, 2, NULL, NULL) == 1) && *buf == '\r' )
-       RefreshColor((int)(intptr_t) data, 0);
-}
-#endif
-
-static void
-ExposeDraw (Option *graph, GdkEventExpose *eevent)
-{
-    int w = eevent->area.width;
-    cairo_t *cr;
-    if(eevent->area.x + w > graph->max) w--; // cut off fudge pixel
-    cr = gdk_cairo_create(((GtkWidget *) (graph->handle))->window);
-    cairo_set_source_surface(cr, (cairo_surface_t *) graph->choice, 0, 0);
-//cairo_set_source_rgb(cr, 1, 0, 0);
-    cairo_set_antialias(cr, CAIRO_ANTIALIAS_NONE);
-    cairo_rectangle(cr, eevent->area.x, eevent->area.y, w, eevent->area.height);
-    cairo_fill(cr);
-    cairo_destroy(cr);
-}
-
-static void
-GraphEventProc(GtkWidget *widget, GdkEvent *event, gpointer gdata)
-{   // handle expose and mouse events on Graph widget
-    int w, h;
-    int button=10, f=1, sizing=0;
-    Option *opt, *graph = (Option *) gdata;
-    PointerCallback *userHandler = graph->target;
-    GdkEventExpose *eevent = (GdkEventExpose *) event;
-    GdkEventButton *bevent = (GdkEventButton *) event;
-    GdkEventMotion *mevent = (GdkEventMotion *) event;
-    GdkEventScroll *sevent = (GdkEventScroll *) event;
-    GtkAllocation a;
-
-//    if (!XtIsRealized(widget)) return;
-
-    switch(event->type) {
-       case GDK_EXPOSE: // make handling of expose events generic, just copying from memory buffer (->choice) to display (->textValue)
-           /* Get window size */
-           gtk_widget_get_allocation(widget, &a);
-           w = a.width; h = a.height;
-//printf("expose %dx%d @ (%d,%d): %dx%d @(%d,%d)\n", w, h, a.x, a.y, eevent->area.width, eevent->area.height, eevent->area.x, eevent->area.y);
-#ifdef TODO_GTK
-           j = 0;
-           XtSetArg(args[j], XtNwidth, &w); j++;
-           XtSetArg(args[j], XtNheight, &h); j++;
-           XtGetValues(widget, args, j);
-#endif
-           if(w < graph->max || w > graph->max + 1 || h != graph->value) { // use width fudge of 1 pixel
-               if(eevent->count >= 0) { // suppress sizing on expose for ordered redraw in response to sizing.
-                   sizing = 1;
-                   graph->max = w; graph->value = h; // note: old values are kept if we we don't exceed width fudge
-               }
-           } else w = graph->max;
-           if(sizing && eevent->count > 0) { graph->max = 0; return; } // don't bother if further exposure is pending during resize
-#ifdef TODO_GTK
-           if(!graph->textValue || sizing) { // create surfaces of new size for display widget
-               if(graph->textValue) cairo_surface_destroy((cairo_surface_t *)graph->textValue);
-               graph->textValue = (char*) cairo_xlib_surface_create(xDisplay, XtWindow(widget), DefaultVisual(xDisplay, 0), w, h);
-           }
-#endif
-           if(sizing) { // the memory buffer was already created in GenericPopup(),
-                        // to give drawing routines opportunity to use it before first expose event
-                        // (which are only processed when main gets to the event loop, so after all init!)
-                        // so only change when size is no longer good
-//             NewCanvas(graph);
-               graph->min |= REPLACE; // defer making new canvas
-               break;
-           }
-           ExposeDraw(graph, eevent);
-       default:
-           return;
-       case GDK_SCROLL:
-           if(sevent->direction == GDK_SCROLL_UP) button = 4;
-           if(sevent->direction == GDK_SCROLL_DOWN) button = 5;
-           w = h = 0; // to keep Clang happy
-           break;
-       case GDK_MOTION_NOTIFY:
-           f = 0;
-           w = mevent->x; h = mevent->y;
-           break;
-       case GDK_BUTTON_RELEASE:
-           f = -1; // release indicated by negative button numbers
-       case GDK_BUTTON_PRESS:
-           w = bevent->x; h = bevent->y;
-           button = bevent->button;
-           shiftState = bevent->state & GDK_SHIFT_MASK;
-           controlState = bevent->state & GDK_CONTROL_MASK;
-    }
-    button *= f;
-
-    opt = userHandler(button, w, h);
-#ifdef TODO_GTK
-    if(opt) { // user callback specifies a context menu; pop it up
-       XUngrabPointer(xDisplay, CurrentTime);
-       XtCallActionProc(widget, "XawPositionSimpleMenu", event, &(opt->name), 1);
-       XtPopupSpringLoaded(opt->handle);
-    }
-    XSync(xDisplay, False);
-#endif
-}
-
-void
-GraphExpose (Option *opt, int x, int y, int w, int h)
-{
-#if 0
-  GdkRectangle r;
-  r.x = x; r.y = y; r.width = w; r.height = h;
-  gdk_window_invalidate_rect(((GtkWidget *)(opt->handle))->window, &r, FALSE);
-#endif
-  GdkEventExpose e;
-  if(!opt->handle) return;
-  e.area.x = x; e.area.y = y; e.area.width = w; e.area.height = h; e.count = -1; e.type = GDK_EXPOSE; // count = -1: kludge to suppress sizing
-  ExposeDraw(opt, &e); // fake expose event
-}
-
-void GenericCallback(GtkWidget *widget, gpointer gdata)
-{
-    const gchar *name;
-    char buf[MSG_SIZ];
-    int data = (intptr_t) gdata;
-    DialogClass dlg;
-#ifdef TODO_GTK
-    GtkWidget *sh = XtParent(XtParent(XtParent(w))), *oldSh;
-#else
-    GtkWidget *sh, *oldSh;
-#endif
-
-    currentOption = dialogOptions[dlg=data>>16]; data &= 0xFFFF;
-#ifndef TODO_GTK
-    sh = shells[dlg]; // make following line a no-op, as we haven't found out what the real shell is yet (breaks multiple popups of same type!)
-#endif
-    oldSh = shells[dlg]; shells[dlg] = sh; // bow to reality
-
-    if (data == 30000) { // cancel
-        PopDown(dlg);
-    } else
-    if (data == 30001) { // save buttons imply OK
-        if(GenericReadout(currentOption, -1)) PopDown(dlg); // calls OK-proc after full readout, but no popdown if it returns false
-    } else
-
-    if(currentCps) {
-        name = gtk_button_get_label (GTK_BUTTON(widget));
-       if(currentOption[data].type == SaveButton) GenericReadout(currentOption, -1);
-        snprintf(buf, MSG_SIZ,  "option %s\n", name);
-        SendToProgram(buf, currentCps);
-    } else ((ButtonCallback*) currentOption[data].target)(data);
-
-    shells[dlg] = oldSh; // in case of multiple instances, restore previous (as this one could be popped down now)
-}
-
-void BrowseGTK(GtkWidget *widget, gpointer gdata)
-{
-    GtkWidget *entry;
-    GtkWidget *dialog;
-    GtkFileFilter *gtkfilter;
-    GtkFileFilter *gtkfilter_all;
-    int opt_i = (intptr_t) gdata;
-    GtkFileChooserAction fc_action;
-    char buf[MSG_SIZ];
-
-    gtkfilter     = gtk_file_filter_new();
-    gtkfilter_all = gtk_file_filter_new();
-
-    char fileext[MSG_SIZ], *filter = currentOption[opt_i].textValue, *old = NULL;
-
-    if(currentCps) filter = NULL; else if(currentOption[opt_i].type == PathName && filter) filter = "dir";
-    GetWidgetText(&currentOption[opt_i], &old); // start in same directory as current widget contents
-    StartDir(filter, old); // change to start directory for this file type
-
-    /* select file or folder depending on option_type */
-    if (currentOption[opt_i].type == PathName)
-        fc_action = GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER;
-    else
-        fc_action = GTK_FILE_CHOOSER_ACTION_OPEN;
-
-    dialog = gtk_file_chooser_dialog_new ("Open File",
-                      NULL,
-                      fc_action,
-                      GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
-                      GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
-                      NULL);
-
-    gtk_file_chooser_add_shortcut_folder(GTK_FILE_CHOOSER(dialog), dataDir, NULL);
-    snprintf(buf, MSG_SIZ, "%s/themes", dataDir);
-    gtk_file_chooser_add_shortcut_folder(GTK_FILE_CHOOSER(dialog), buf, NULL);
-    snprintf(buf, MSG_SIZ, "%s/themes/textures", dataDir);
-    gtk_file_chooser_add_shortcut_folder(GTK_FILE_CHOOSER(dialog), buf, NULL);
-
-    /* one filter to show everything */
-    gtk_file_filter_add_pattern(gtkfilter_all, "*");
-    gtk_file_filter_set_name   (gtkfilter_all, "All Files");
-    gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog),gtkfilter_all);
-
-    /* filter for specific filetypes e.g. pgn or fen */
-    if (currentOption[opt_i].textValue != NULL && !currentCps) // no filters for engine options!
-      {
-        char *q, *p = currentOption[opt_i].textValue;
-        gtk_file_filter_set_name (gtkfilter, p);
-        while(*p) {
-          snprintf(fileext, MSG_SIZ, "*%s", p);
-          while(*p) if(*p++ == ' ')  break;
-          for(q=fileext; *q; q++) if(*q == ' ') { *q = NULLCHAR; break; }
-          gtk_file_filter_add_pattern(gtkfilter, fileext);
-        }
-        gtk_file_chooser_add_filter (GTK_FILE_CHOOSER(dialog),gtkfilter);
-        /* activate filter */
-        gtk_file_chooser_set_filter (GTK_FILE_CHOOSER(dialog),gtkfilter);
-      }
-    else
-      gtk_file_chooser_set_filter (GTK_FILE_CHOOSER(dialog),gtkfilter_all);
-
-    if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
-      {
-        char *filename;
-        filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
-        entry = currentOption[opt_i].handle;
-        gtk_entry_set_text (GTK_ENTRY (entry), filename);
-       StartDir(filter, filename); // back to original, and remember this one
-        g_free (filename);
-      }
-    else StartDir(filter, ""); // change back to original directory
-    gtk_widget_destroy (dialog);
-    dialog = NULL;
-}
-
-gboolean
-ListCallback (GtkWidget *widget, GdkEventButton *event, gpointer gdata)
-{
-    int n = (intptr_t) gdata & 0xFFFF;
-    int dlg = (intptr_t) gdata >> 16;
-    Option *opt = dialogOptions[dlg] + n;
-
-    if(event->type != GDK_2BUTTON_PRESS || event->button != 1) return FALSE;
-    ((ListBoxCallback*) opt->textValue)(n, SelectedListBoxItem(opt));
-    return TRUE;
-}
-
-#ifdef TODO_GTK
-// This is needed for color pickers?
-static char *oneLiner  =
-   "<Key>Return: redraw-display() \n \
-    <Key>Tab: TabProc() \n ";
-#endif
-
-#ifdef TODO_GTK
-static void
-SqueezeIntoBox (Option *opt, int nr, int width)
-{   // size buttons in bar to fit, clipping button names where necessary
-    int i, wtot = 0;
-    Dimension widths[20], oldWidths[20];
-    Arg arg;
-    for(i=1; i<nr; i++) {
-       XtSetArg(arg, XtNwidth, &widths[i]);
-       XtGetValues(opt[i].handle, &arg, 1);
-       wtot +=  oldWidths[i] = widths[i];
-    }
-    opt->min = wtot;
-    if(width <= 0) return;
-    while(wtot > width) {
-       int wmax=0, imax=0;
-       for(i=1; i<nr; i++) if(widths[i] > wmax) wmax = widths[imax=i];
-       widths[imax]--;
-       wtot--;
-    }
-    for(i=1; i<nr; i++) if(widths[i] != oldWidths[i]) {
-       XtSetArg(arg, XtNwidth, widths[i]);
-       XtSetValues(opt[i].handle, &arg, 1);
-    }
-    opt->min = wtot;
-}
-#endif
-
-#ifdef TODO_GTK
-int
-SetPositionAndSize (Arg *args, Widget leftNeigbor, Widget topNeigbor, int b, int w, int h, int chaining)
-{   // sizing and positioning most widgets have in common
-    int j = 0;
-    // first position the widget w.r.t. earlier ones
-    if(chaining & 1) { // same row: position w.r.t. last (on current row) and lastrow
-       XtSetArg(args[j], XtNfromVert, topNeigbor); j++;
-       XtSetArg(args[j], XtNfromHoriz, leftNeigbor); j++;
-    } else // otherwise it goes at left margin (which is default), below the previous element
-       XtSetArg(args[j], XtNfromVert, leftNeigbor),  j++;
-    // arrange chaining ('2'-bit indicates top and bottom chain the same)
-    if((chaining & 14) == 6) XtSetArg(args[j], XtNtop,    XtChainBottom), j++;
-    if((chaining & 14) == 10) XtSetArg(args[j], XtNbottom, XtChainTop ), j++;
-    if(chaining & 4) XtSetArg(args[j], XtNbottom, XtChainBottom ), j++;
-    if(chaining & 8) XtSetArg(args[j], XtNtop,    XtChainTop), j++;
-    if(chaining & 0x10) XtSetArg(args[j], XtNright, XtChainRight), j++;
-    if(chaining & 0x20) XtSetArg(args[j], XtNleft,  XtChainRight), j++;
-    if(chaining & 0x40) XtSetArg(args[j], XtNright, XtChainLeft ), j++;
-    if(chaining & 0x80) XtSetArg(args[j], XtNleft,  XtChainLeft ), j++;
-    // set size (if given)
-    if(w) XtSetArg(args[j], XtNwidth, w), j++;
-    if(h) XtSetArg(args[j], XtNheight, h),  j++;
-    // color
-    if(!appData.monoMode) {
-       if(!b && appData.dialogColor[0]) XtSetArg(args[j], XtNbackground, dialogColor),  j++;
-       if(b == 3 && appData.buttonColor[0]) XtSetArg(args[j], XtNbackground, buttonColor),  j++;
-    }
-    if(b == 3) b = 1;
-    // border
-    XtSetArg(args[j], XtNborderWidth, b);  j++;
-    return j;
-}
-#endif
-
-static int
-TableWidth (Option *opt)
-{   // Hideous work-around! If the table is 3 columns, but 2 & 3 are always occupied together, the fixing of the width of column 1 does not work
-    while(opt->type != EndMark && opt->type != Break)
-       if(opt->type == FileName || opt->type == PathName || opt++->type == BarBegin) return 3; // This table needs browse button
-    return 2; // no browse button;
-}
-
-static int
-SameRow (Option *opt)
-{
-    return (opt->min & SAME_ROW && (opt->type == Button || opt->type == SaveButton || opt->type == Label
-                                || opt->type == ListBox || opt->type == BoxBegin || opt->type == Icon || opt->type == Graph));
-}
-
-static void
-Pack (GtkWidget *hbox, GtkWidget *table, GtkWidget *entry, int left, int right, int top, GtkAttachOptions vExpand)
-{
-    if(hbox) gtk_box_pack_start(GTK_BOX (hbox), entry, TRUE, TRUE, 0);
-    else     gtk_table_attach(GTK_TABLE(table), entry, left, right, top, top+1,
-                               GTK_FILL | GTK_EXPAND, GTK_FILL | vExpand, 2, 1);
-}
-
-int
-GenericPopUp (Option *option, char *title, DialogClass dlgNr, DialogClass parent, int modal, int topLevel)
-{
-    GtkWidget *dialog = NULL;
-    gint       w;
-    GtkWidget *label;
-    GtkWidget *box;
-    GtkWidget *checkbutton;
-    GtkWidget *entry;
-    GtkWidget *oldHbox = NULL, *hbox = NULL;
-    GtkWidget *pane = NULL;
-    GtkWidget *button;
-    GtkWidget *table;
-    GtkWidget *spinner;
-    GtkAdjustment *spinner_adj;
-    GtkWidget *combobox;
-    GtkWidget *textview;
-    GtkTextBuffer *textbuffer;
-    GdkColor color;
-    GtkWidget *actionarea;
-    GtkWidget *sw;
-    GtkWidget *list;
-    GtkWidget *graph;
-    GtkWidget *menuButton;
-    GtkWidget *menuBar = NULL;
-    GtkWidget *menu;
-
-    int i, j, arraysize, left, top, height=999, width=1, boxStart=0, breakType = 0, r;
-    char def[MSG_SIZ], *msg, engineDlg = (currentCps != NULL && dlgNr != BrowserDlg);
-    gboolean expandable = FALSE;
-
-    if(dlgNr < PromoDlg && shellUp[dlgNr]) return 0; // already up
-
-    if(dlgNr && dlgNr < PromoDlg && shells[dlgNr]) { // reusable, and used before (but popped down)
-        gtk_widget_show(shells[dlgNr]);
-        shellUp[dlgNr] = True;
-       if(wp[dlgNr]) gtk_window_move(GTK_WINDOW(shells[dlgNr]), wp[dlgNr]->x, wp[dlgNr]->y);
-        return 0;
-    }
-    if(dlgNr == TransientDlg && parent == BoardWindow && shellUp[MasterDlg]) parent = MasterDlg; // MasterDlg can always take role of main window
-
-    dialogOptions[dlgNr] = option; // make available to callback
-    // post currentOption globally, so Spin and Combo callbacks can already use it
-    // WARNING: this kludge does not work for persistent dialogs, so that these cannot have spin or combo controls!
-    currentOption = option;
-
-    if(engineDlg) { // Settings popup for engine: format through heuristic
-        int n = currentCps->nrOptions;
-//        if(n > 50) width = 4; else if(n>24) width = 2; else width = 1;
-       width = n / 20 + 1;
-        height = n / width + 1;
-if(appData.debugMode) printf("n=%d, h=%d, w=%d\n",n,height,width);
-//     if(n && (currentOption[n-1].type == Button || currentOption[n-1].type == SaveButton)) currentOption[n].min = SAME_ROW; // OK on same line
-        currentOption[n].type = EndMark; currentOption[n].target = NULL; // delimit list by callback-less end mark
-    }
-
-    parents[dlgNr] = parent;
-#ifdef TODO_GTK
-    shells[BoardWindow] = shellWidget; parents[dlgNr] = parent;
-
-    if(dlgNr == BoardWindow) dialog = shellWidget; else
-    dialog =
-      XtCreatePopupShell(title, !top || !appData.topLevel ? transientShellWidgetClass : topLevelShellWidgetClass,
-                                                           shells[parent], args, i);
-#endif
-
-    if(topLevel)
-      {
-       dialog = gtk_window_new(GTK_WINDOW_TOPLEVEL);
-       gtk_window_set_title(GTK_WINDOW(dialog), title);
-       box = gtk_vbox_new(FALSE,0);
-       gtk_container_add (GTK_CONTAINER (dialog), box);
-      }
-    else
-      {
-       dialog = gtk_dialog_new_with_buttons( title,
-                                             GTK_WINDOW(shells[parent]),
-                                             GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_NO_SEPARATOR |
-                                             (modal ? GTK_DIALOG_MODAL : 0),
-                                             GTK_STOCK_OK, GTK_RESPONSE_ACCEPT,
-                                             GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT,
-                                             NULL );
-       box = gtk_dialog_get_content_area( GTK_DIALOG( dialog ) );
-      }
-
-    shells[dlgNr] = dialog;
-//    gtk_box_set_spacing(GTK_BOX(box), 5);
-
-    arraysize = 0;
-    for (i=0;option[i].type != EndMark;i++) {
-        arraysize++;
-    }
-
-    table = gtk_table_new(arraysize, r=TableWidth(option), FALSE);
-    left = 0;
-    top = -1;
-
-    for (i=0;option[i].type != EndMark;i++) {
-       if(option[i].type == Skip) continue;
-        top++;
-//printf("option =%2d, top =%2d\n", i, top);
-        if (top >= height || breakType) {
-            gtk_table_resize(GTK_TABLE(table), top - (breakType != 0), r);
-           if(!pane) { // multi-column: put tables in intermediate hbox
-               if(breakType & SAME_ROW || engineDlg)
-                   pane =  gtk_hbox_new (FALSE, 0);
-               else
-                   pane =  gtk_vbox_new (FALSE, 0);
-               gtk_box_set_spacing(GTK_BOX(pane), 5 + 5*breakType);
-               gtk_box_pack_start (GTK_BOX (/*GTK_DIALOG (dialog)->vbox*/box), pane, TRUE, TRUE, 0);
-           }
-           gtk_box_pack_start (GTK_BOX (pane), table, expandable, TRUE, 0);
-           table = gtk_table_new(arraysize - i, r=TableWidth(option + i), FALSE);
-            top = breakType = 0; expandable = FALSE;
-        }
-        if(!SameRow(&option[i])) {
-           if(SameRow(&option[i+1]) || topLevel && option[i].type == Button && option[i+1].type == EndMark && option[i+1].min & SAME_ROW) {
-               GtkAttachOptions x = GTK_FILL;
-               // make sure hbox is always available when we have more options on same row
-                hbox = gtk_hbox_new (option[i].type == Button && option[i].textValue || option[i].type == Graph, 0);
-               if(!currentCps && option[i].value > 80 && option[i].type == TextBox) x |= GTK_EXPAND; // only vertically extended widgets should size vertically
-                if (strcmp(option[i].name, "") == 0 || option[i].type == Label || option[i].type == Button)
-                    // for Label and Button name is contained inside option
-                    gtk_table_attach(GTK_TABLE(table), hbox, left, left+r, top, top+1, GTK_FILL | GTK_EXPAND, x, 2, 1);
-                else
-                    gtk_table_attach(GTK_TABLE(table), hbox, left+1, left+r, top, top+1, GTK_FILL | GTK_EXPAND, x, 2, 1);
-           } else hbox = NULL; //and also make sure no hbox exists if only singl option on row
-        } else top--;
-        switch(option[i].type) {
-          case Fractional:
-           snprintf(def, MSG_SIZ,  "%.2f", *(float*)option[i].target);
-           option[i].value = *(float*)option[i].target;
-            goto tBox;
-          case Spin:
-            if(!currentCps) option[i].value = *(int*)option[i].target;
-            snprintf(def, MSG_SIZ,  "%d", option[i].value);
-          case TextBox:
-         case FileName:
-         case PathName:
-          tBox:
-            label = gtk_label_new(_(option[i].name));
-            /* Left Justify */
-            gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
-
-            /* width */
-            w = option[i].type == Spin || option[i].type == Fractional ? 70 : option[i].max ? option[i].max : 205;
-           if(option[i].type == FileName || option[i].type == PathName) w -= 55;
-
-            if (option[i].type==TextBox && option[i].value > 80){
-                GtkTextIter iter;
-                expandable = TRUE;
-                textview = gtk_text_view_new();
-                gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(textview), option[i].min & T_WRAP ? GTK_WRAP_WORD : GTK_WRAP_NONE);
-#ifdef TODO_GTK
-               if(option[i].min & T_FILL)  { XtSetArg(args[j], XtNautoFill, True);  j++; }
-               if(option[i].min & T_TOP)   { XtSetArg(args[j], XtNtop, XtChainTop); j++;
-#endif
-                /* add textview to scrolled window so we have vertical scroll bar */
-                sw = gtk_scrolled_window_new(NULL, NULL);
-                gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw),
-                                               option[i].min & T_HSCRL ? GTK_POLICY_ALWAYS : GTK_POLICY_AUTOMATIC,
-                                               option[i].min & T_VSCRL ? GTK_POLICY_ALWAYS : GTK_POLICY_NEVER);
-                gtk_container_add(GTK_CONTAINER(sw), textview);
-                gtk_widget_set_size_request(GTK_WIDGET(sw), w, -1);
-                gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_OUT);
-
-                textbuffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview));
-                /* check if label is empty */
-                if (strcmp(option[i].name,"") != 0) {
-                    gtk_table_attach(GTK_TABLE(table), label, left, left+1, top, top+1, GTK_FILL, GTK_FILL, 2, 1);
-                    Pack(hbox, table, sw, left+1, left+r, top, 0);
-                }
-                else {
-                    /* no label so let textview occupy all columns */
-                    Pack(hbox, table, sw, left, left+r, top, GTK_EXPAND);
-                }
-                SetWidgetFont(textview, option[i].font);
-                if ( *(char**)option[i].target != NULL )
-                    gtk_text_buffer_set_text (textbuffer, *(char**)option[i].target, -1);
-                else
-                    gtk_text_buffer_set_text (textbuffer, "", -1);
-                option[i].handle = (void*)textbuffer;
-                option[i].textValue = (char*)textview;
-                gtk_text_buffer_get_iter_at_offset(textbuffer, &iter, -1);
-                gtk_text_buffer_create_mark(textbuffer, "scrollmark", &iter, FALSE); // permanent mark
-               if(option[i].choice) { // textviews can request a handler for mouse events in the choice field
-                   g_signal_connect(textview, "button-press-event", G_CALLBACK (MemoEvent), (gpointer) &option[i] );
-                   g_signal_connect(textview, "button-release-event", G_CALLBACK (MemoEvent), (gpointer) &option[i] );
-                   g_signal_connect(textview, "motion-notify-event", G_CALLBACK (MemoEvent), (gpointer) &option[i] );
-               }
-                break;
-            }
-
-            entry = gtk_entry_new();
-
-            if (option[i].type==Spin || option[i].type==Fractional)
-                gtk_entry_set_text (GTK_ENTRY (entry), def);
-            else if (currentCps)
-                gtk_entry_set_text (GTK_ENTRY (entry), option[i].textValue);
-            else if ( *(char**)option[i].target != NULL )
-                gtk_entry_set_text (GTK_ENTRY (entry), *(char**)option[i].target);
-
-            //gtk_entry_set_width_chars (GTK_ENTRY (entry), 18);
-            gtk_entry_set_max_length (GTK_ENTRY (entry), w);
-
-            // left, right, top, bottom
-            if (strcmp(option[i].name, "") != 0) {
-               button = gtk_event_box_new();
-                gtk_container_add(GTK_CONTAINER(button), label);
-               label = button;
-               gtk_widget_add_events(GTK_WIDGET(label), GDK_BUTTON_PRESS_MASK);
-               g_signal_connect(label, "button-press-event", G_CALLBACK(HelpEvent), (gpointer) option[i].name);
-               gtk_widget_set_sensitive(label, TRUE);
-                gtk_table_attach(GTK_TABLE(table), label, left, left+1, top, top+1, GTK_FILL, GTK_FILL, 2, 1); // leading names do not expand
-            }
-
-            if (option[i].type == Spin) {
-                spinner_adj = (GtkAdjustment *) gtk_adjustment_new (option[i].value, option[i].min, option[i].max, 1.0, 0.0, 0.0);
-                spinner = gtk_spin_button_new (spinner_adj, 1.0, 0);
-                gtk_table_attach(GTK_TABLE(table), spinner, left+1, left+r, top, top+1, GTK_FILL | GTK_EXPAND, GTK_FILL, 2, 1);
-                option[i].handle = (void*)spinner;
-            }
-            else if (option[i].type == FileName || option[i].type == PathName) {
-                gtk_table_attach(GTK_TABLE(table), entry, left+1, left+2, top, top+1, GTK_FILL | GTK_EXPAND, GTK_FILL, 2, 1);
-                button = gtk_button_new_with_label (_("Browse"));
-                gtk_table_attach(GTK_TABLE(table), button, left+2, left+r, top, top+1, GTK_FILL, GTK_FILL, 2, 1); // Browse button does not expand
-                g_signal_connect (button, "clicked", G_CALLBACK (BrowseGTK), (gpointer)(intptr_t) i);
-                option[i].handle = (void*)entry;
-            }
-            else {
-                Pack(hbox, table, entry, left + (strcmp(option[i].name, "") != 0), left+r, top, 0);
-                option[i].handle = (void*)entry;
-            }
-            break;
-          case CheckBox:
-            checkbutton = gtk_check_button_new_with_label(_(option[i].name));
-           g_signal_connect(checkbutton, "button-press-event", G_CALLBACK (HelpEvent), (gpointer) option[i].name );
-            if(!currentCps) option[i].value = *(Boolean*)option[i].target;
-            gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbutton), option[i].value);
-            gtk_table_attach(GTK_TABLE(table), checkbutton, left, left+r, top, top+1, GTK_FILL | GTK_EXPAND, GTK_FILL, 2, 0);
-            option[i].handle = (void *)checkbutton;
-            break;
-         case Icon:
-            option[i].handle = (void *) (label = gtk_image_new_from_pixbuf(NULL));
-            gtk_widget_set_size_request(label, option[i].max ? option[i].max : -1, -1);
-            Pack(hbox, table, label, left, left+2, top, 0);
-            break;
-         case Label:
-            option[i].handle = (void *) (label = gtk_label_new(_(option[i].name)));
-            /* Left Justify */
-            gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
-            SetWidgetFont(label, option[i].font);
-            gtk_widget_set_size_request(label, option[i].max ? option[i].max : -1, -1);
-           if(option[i].min & BORDER) {
-               GtkWidget *frame = gtk_frame_new(NULL);
-                gtk_container_add(GTK_CONTAINER(frame), label);
-               label = frame;
-           }
-           if(option[i].target || dlgNr != ErrorDlg && option[i].name) { // allow user to specify event handler for button presses
-               button = gtk_event_box_new();
-                gtk_container_add(GTK_CONTAINER(button), label);
-               label = button;
-               gtk_widget_add_events(GTK_WIDGET(label), GDK_BUTTON_PRESS_MASK);
-               if(option[i].target)
-                    g_signal_connect(label, "button-press-event", G_CALLBACK(MemoEvent), (gpointer) &option[i]);
-               else g_signal_connect(label, "button-press-event", G_CALLBACK(HelpEvent), (gpointer) option[i].name);
-               gtk_widget_set_sensitive(label, TRUE);
-           }
-            Pack(hbox, table, label, left, left+r, top, 0);
-           break;
-          case SaveButton:
-          case Button:
-            if(!strcmp(option[i].name, "fontsel")) {
-                option[i].handle = (void *) (fbutton = gtk_font_button_new());
-                Pack(hbox, table, fbutton, left, left+r, top, 0);
-                break;
-            }
-            if(!strcmp(option[i].name, "R") || !strcmp(option[i].name, "G") ||
-               !strcmp(option[i].name, "B") && !strcmp(option[i+1].name, "D")) {
-                break;
-            } else
-            if(!strcmp(option[i].name, "D")) {
-                GdkColor color;
-                char *name;
-               GetWidgetText(&option[i-5], &name);
-                gdk_color_parse(name, &color);
-                option[i].handle = (void *) (button = gtk_color_button_new_with_color(&color));
-            } else
-            button = gtk_button_new_with_label (_(option[i].name));
-            SetWidgetFont(gtk_bin_get_child(GTK_BIN(button)), option[i].font);
-
-            /* set button color on view board dialog */
-            if(option[i].choice && ((char*)option[i].choice)[0] == '#' && !currentCps) {
-                gdk_color_parse( *(char**) option[i-1].target, &color );
-                gtk_widget_modify_bg ( GTK_WIDGET(button), GTK_STATE_NORMAL, &color );
-           }
-
-            /* set button color on new variant dialog */
-            if(option[i].textValue) {
-                static char *b = "Bold";
-                char *v, *p = NULL, n = option[i].value;
-                if(n >= 0) v = VariantName(n), p = strstr(first.variants, v);
-                gdk_color_parse( option[i].textValue, &color );
-                gtk_widget_modify_bg ( GTK_WIDGET(button), GTK_STATE_NORMAL, &color );
-                gtk_widget_set_sensitive(button, option[i].value >= 0 && (appData.noChessProgram
-                                        || p && (!*v || strlen(p) == strlen(v) || p[strlen(v)] == ',')));
-                if(engineVariant[100] ? !strcmp(engineVariant+100, option[i].name) : 
-                   gameInfo.variant ? option[i].value == gameInfo.variant : !strcmp(option[i].name, "Normal"))
-                    SetWidgetFont(gtk_bin_get_child(GTK_BIN(button)), &b);
-            }
-
-            Pack(hbox, table, button, left, left+1, top, 0);
-            if(!strcmp(option[i].name, "D")) // color button
-            g_signal_connect (button, "color-set", G_CALLBACK (ColorCallback), (gpointer) &option[i-5]);
-            else
-            if(option[i].value == 666 && !strcmp(option[i].name, "*")) // font-assignment buttons
-            g_signal_connect (button, "clicked", G_CALLBACK (FontCallback), (gpointer) &option[i-5]);
-            else
-            g_signal_connect (button, "clicked", G_CALLBACK (GenericCallback), (gpointer)(intptr_t) i + (dlgNr<<16));
-           g_signal_connect(button, "button-press-event", G_CALLBACK (HelpEvent), (gpointer) option[i].name );
-            option[i].handle = (void*)button;
-            break;
-         case ComboBox:
-            label = gtk_label_new(_(option[i].name));
-            /* Left Justify */
-            gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
-           button = gtk_event_box_new();
-            gtk_container_add(GTK_CONTAINER(button), label);
-           label = button;
-           gtk_widget_add_events(GTK_WIDGET(label), GDK_BUTTON_PRESS_MASK);
-           g_signal_connect(label, "button-press-event", G_CALLBACK(HelpEvent), (gpointer) option[i].name);
-           gtk_widget_set_sensitive(label, TRUE);
-            gtk_table_attach(GTK_TABLE(table), label, left, left+1, top, top+1, GTK_FILL, GTK_FILL, 2, 1);
-
-            combobox = gtk_combo_box_new_text();
-
-            for(j=0;;j++) {
-               if (  ((char **) option[i].textValue)[j] == NULL) break;
-               gtk_combo_box_append_text(GTK_COMBO_BOX(combobox), ((char **) option[i].choice)[j]);
-            }
-
-            if(currentCps)
-                option[i].choice = (char**) option[i].textValue;
-            else {
-                for(j=0; option[i].choice[j]; j++) {
-                    if(*(char**)option[i].target && !strcmp(*(char**)option[i].target, ((char**)(option[i].textValue))[j])) break;
-                }
-                /* If choice is NULL set to first */
-                if (option[i].choice[j] == NULL)
-                   option[i].value = 0;
-                else
-                   option[i].value = j;
-            }
-
-            //option[i].value = j + (option[i].choice[j] == NULL);
-            gtk_combo_box_set_active(GTK_COMBO_BOX(combobox), option[i].value);
-
-            Pack(hbox, table, combobox, left+1, left+r, top, 0);
-            g_signal_connect(G_OBJECT(combobox), "changed", G_CALLBACK(ComboSelect), (gpointer) (intptr_t) (i + 256*dlgNr));
-
-            option[i].handle = (void*)combobox;
-            values[i] = option[i].value;
-            break;
-         case ListBox:
-            {
-                GtkCellRenderer *renderer;
-                GtkTreeViewColumn *column;
-                GtkListStore *store;
-
-                option[i].handle = (void *) (list = gtk_tree_view_new());
-                SetWidgetFont(option[i].handle, option[i].font);
-                gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(list), FALSE);
-                renderer = gtk_cell_renderer_text_new();
-                column = gtk_tree_view_column_new_with_attributes("List Items", renderer, "text", 0, NULL);
-                gtk_tree_view_append_column(GTK_TREE_VIEW(list), column);
-                store = gtk_list_store_new(1, G_TYPE_STRING); // 1 column of text
-                gtk_tree_view_set_model(GTK_TREE_VIEW(list), GTK_TREE_MODEL(store));
-                g_object_unref(store);
-                LoadListBox(&option[i], "?", -1, -1);
-               HighlightListBoxItem(&option[i], 0);
-
-                /* add listbox to scrolled window so we have vertical scroll bar */
-                sw = gtk_scrolled_window_new(NULL, NULL);
-                gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
-                gtk_container_add(GTK_CONTAINER(sw), list);
-                gtk_widget_set_size_request(GTK_WIDGET(sw), option[i].max ? option[i].max : -1, option[i].value ? option[i].value : -1);
-                gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_OUT);
-
-                if(option[i].textValue) // generic callback for double-clicking listbox item
-                    g_signal_connect(list, "button-press-event", G_CALLBACK(ListCallback), (gpointer) (intptr_t) (dlgNr<<16 | i) );
-
-                /* never has label, so let listbox occupy all columns */
-                Pack(hbox, table, sw, left, left+r, top, GTK_EXPAND);
-                expandable = TRUE;
-            }
-           break;
-         case Graph:
-           option[i].handle = (void*) (graph = gtk_drawing_area_new());
-            gtk_widget_set_size_request(graph, option[i].max, option[i].value);
-            g_signal_connect (graph, "expose-event", G_CALLBACK (GraphEventProc), (gpointer) &option[i]);
-           gtk_widget_add_events(GTK_WIDGET(graph), GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK);
-            g_signal_connect (graph, "button-press-event", G_CALLBACK (GraphEventProc), (gpointer) &option[i]);
-            g_signal_connect (graph, "button-release-event", G_CALLBACK (GraphEventProc), (gpointer) &option[i]);
-            g_signal_connect (graph, "motion-notify-event", G_CALLBACK (GraphEventProc), (gpointer) &option[i]);
-            g_signal_connect (graph, "scroll-event", G_CALLBACK (GraphEventProc), (gpointer) &option[i]);
-           if(option[i].min & FIX_H) { // logo
-               GtkWidget *frame = gtk_aspect_frame_new(NULL, 0.5, 0.5, option[i].max/(float)option[i].value, FALSE);
-               gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_NONE);
-                gtk_container_add(GTK_CONTAINER(frame), graph);
-               graph = frame;
-           }
-            Pack(hbox, table, graph, left, left+r, top, GTK_EXPAND);
-            expandable = TRUE;
-
-#ifdef TODO_GTK
-           if(option[i].min & SAME_ROW) last = forelast, forelast = lastrow;
-#endif
-           option[i].choice = (char**) cairo_image_surface_create (CAIRO_FORMAT_ARGB32, option[i].max, option[i].value); // image buffer
-           break;
-#ifdef TODO_GTK
-         case PopUp: // note: used only after Graph, so 'last' refers to the Graph widget
-           option[i].handle = (void*) CreateComboPopup(last, option + i, i + 256*dlgNr, TRUE, option[i].value);
-           break;
-#endif
-         case DropDown:
-           top--;
-           msg = _(option[i].name); // write name on the menu button
-#ifndef OSXAPP
-           if(tinyLayout) { // clip menu text to keep menu bar small
-               int clip = tinyLayout + 1;
-               strcpy(def, msg + (msg[clip-1] == '_'));
-               def[clip] = NULLCHAR; msg = def;
-           }
-#endif
-//         XtSetArg(args[j], XtNmenuName, XtNewString(option[i].name));  j++;
-//         XtSetArg(args[j], XtNlabel, msg);  j++;
-           option[i].handle = (void*)
-               (menuButton = gtk_menu_item_new_with_mnemonic(msg));
-           gtk_widget_show(menuButton);
-           option[i].textValue = (char*) (menu = CreateMenuPopup(option + i, i + 256*dlgNr, -1));
-           gtk_menu_item_set_submenu(GTK_MENU_ITEM (menuButton), menu);
-           gtk_menu_bar_append (GTK_MENU_BAR (menuBar), menuButton);
-           break;
-         case BarBegin:
-           menuBar = gtk_menu_bar_new ();
-           gtk_widget_show (menuBar);
-           boxStart = i;
-           break;
-         case BoxBegin:
-           option[i+1].min |= SAME_ROW; // kludge to suppress allocation of new hbox
-           oldHbox = hbox;
-           option[i].handle = (void*) (hbox = gtk_hbox_new(FALSE, 0)); // hbox to collect buttons
-           gtk_box_pack_start(GTK_BOX (oldHbox), hbox, FALSE, TRUE, 0); // *** Beware! Assumes button bar always on same row with other! ***
-//            gtk_table_attach(GTK_TABLE(table), hbox, left+2, left+3, top, top+1, GTK_FILL | GTK_SHRINK, GTK_FILL, 2, 1);
-           boxStart = i;
-           break;
-         case BarEnd:
-           top--;
-#ifndef OSXAPP
-            gtk_table_attach(GTK_TABLE(table), menuBar, left, left+r, top, top+1, GTK_FILL | GTK_EXPAND, GTK_FILL, 2, 1);
-
-           if(option[i].target) ((ButtonCallback*)option[i].target)(boxStart); // callback that can make sizing decisions
-#else
-           top--; // in OSX menu bar is not put in window, so also don't count it
-           {   // in stead, offer it to OSX, and move About item to top of App menu
-               GtkosxApplication *theApp = g_object_new(GTKOSX_TYPE_APPLICATION, NULL);
-               extern MenuItem helpMenu[]; // oh, well... Adding items in help menu breaks this anyway
-               gtk_widget_hide (menuBar);
-               gtkosx_application_set_menu_bar(theApp, GTK_MENU_SHELL(menuBar));
-               gtkosx_application_insert_app_menu_item(theApp, GTK_MENU_ITEM(helpMenu[8].handle), 0); // hack
-               gtkosx_application_sync_menubar(theApp);
-           }
-#endif
-           break;
-         case BoxEnd:
-//         XtManageChildren(&form, 1);
-//         SqueezeIntoBox(&option[boxStart], i-boxStart, option[boxStart].max);
-           hbox = oldHbox; top--;
-           if(option[i].target) ((ButtonCallback*)option[i].target)(boxStart); // callback that can make sizing decisions
-           break;
-         case Break:
-            breakType = option[i].min & SAME_ROW | BORDER; // kludge to flag we must break
-           option[i].handle = table;
-            break;
-
-         case PopUp:
-           top--;
-            break;
-       default:
-           printf("GenericPopUp: unexpected case in switch. i=%d type=%d name=%s.\n", i, option[i].type, option[i].name);
-           break;
-       }
-    }
-
-    if(topLevel && !(option[i].min & NO_OK)) { // buttons requested in top-level window
-        button = gtk_button_new_with_label (_("OK"));
-        g_signal_connect (button, "clicked", G_CALLBACK (PopDownProxy), (gpointer)(intptr_t) dlgNr);
-        if(!(option[i].min & NO_CANCEL)) {
-            GtkWidget *button2 = gtk_button_new_with_label (_("Cancel"));
-            g_signal_connect (button2, "clicked", G_CALLBACK (PopDownProxy), (gpointer)(intptr_t) dlgNr + 3000);
-            if(!hbox) {
-                hbox = gtk_hbox_new (False, 0);
-                gtk_table_attach(GTK_TABLE(table), hbox, left, left+r, top+1, top+2, GTK_FILL | GTK_EXPAND, GTK_FILL, 2, 1);
-            }
-            Pack(hbox, table, button, left, left+1, top+1, 0);
-            Pack(hbox, table, button2, left, left+1, top+1, 0);
-        } else Pack(hbox, table, button, left, left+1, ++top, 0);
-    }
-
-    gtk_table_resize(GTK_TABLE(table), top+1, r);
-    if(dlgNr == BoardWindow && appData.fixedSize) { // inhibit sizing
-       GtkWidget *h = gtk_hbox_new(FALSE, 0);
-       gtk_box_pack_start (GTK_BOX (h), table, TRUE, FALSE, 2);
-       table = h;
-    }
-    if(pane)
-       gtk_box_pack_start (GTK_BOX (pane), table, expandable, TRUE, 0);
-    else
-       gtk_box_pack_start (GTK_BOX (/*GTK_DIALOG (dialog)->vbox*/box), table, TRUE, TRUE, 0);
-
-    option[i].handle = (void *) table; // remember last table in EndMark handle (for hiding Engine-Output pane).
-
-    gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_NONE);
-
-    /* Show dialog */
-    gtk_widget_show_all( dialog );
-
-    /* hide OK/cancel buttons */
-    if(!topLevel)
-      {
-       if((option[i].min & NO_OK)) {
-         actionarea = gtk_dialog_get_action_area(GTK_DIALOG(dialog));
-         gtk_widget_hide(actionarea);
-       } else if((option[i].min & NO_CANCEL)) {
-         button = gtk_dialog_get_widget_for_response(GTK_DIALOG(dialog), GTK_RESPONSE_REJECT);
-         gtk_widget_hide(button);
-       }
-       gtk_dialog_get_widget_for_response(GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT);
-        g_signal_connect (dialog, "response",
-                      G_CALLBACK (GenericPopDown),
-                      (gpointer)(intptr_t) dlgNr);
-      }
-
-    g_signal_connect (dialog, "delete-event",
-                      G_CALLBACK (GenericPopDown),
-                      (gpointer)(intptr_t) dlgNr);
-    shellUp[dlgNr]++;
-
-    if(dlgNr && wp[dlgNr]) { // if persistent window-info available, reposition
-      if(wp[dlgNr]->x > 0 && wp[dlgNr]->y > 0)
-       gtk_window_move(GTK_WINDOW(dialog), wp[dlgNr]->x, wp[dlgNr]->y);
-      if(wp[dlgNr]->width > 0 && wp[dlgNr]->height > 0)
-       gtk_window_resize(GTK_WINDOW(dialog), wp[dlgNr]->width, wp[dlgNr]->height);
-    }
-
-    for(i=0; option[i].type != EndMark; i++) if(option[i].type == Graph || dlgNr == BoardWindow && option[i].handle) {
-       gtk_widget_set_size_request(option[i].handle, -1, -1); // remove size requests after realization, so user can shrink
-       if(option[i].type == Label) gtk_label_set_ellipsize(option[i].handle, PANGO_ELLIPSIZE_END);
-    }
-
-    return 1; // tells caller he must do initialization (e.g. add specific event handlers)
-}
-
-/* function called when the data to Paste is ready */
-#ifdef TODO_GTK
-static void
-SendTextCB (Widget w, XtPointer client_data, Atom *selection,
-           Atom *type, XtPointer value, unsigned long *len, int *format)
-{
-  char buf[MSG_SIZ], *p = (char*) textOptions[(int)(intptr_t) client_data].choice, *name = (char*) value, *q;
-  if (value==NULL || *len==0) return; /* nothing selected, abort */
-  name[*len]='\0';
-  strncpy(buf, p, MSG_SIZ);
-  q = strstr(p, "$name");
-  snprintf(buf + (q-p), MSG_SIZ -(q-p), "%s%s", name, q+5);
-  SendString(buf);
-  XtFree(value);
-}
-#endif
-
-void
-SendText (int n)
-{
-    char *p = (char*) textOptions[n].choice;
-#ifdef TODO_GTK
-    if(strstr(p, "$name")) {
-       XtGetSelectionValue(menuBarWidget,
-         XA_PRIMARY, XA_STRING,
-         /* (XtSelectionCallbackProc) */ SendTextCB,
-         (XtPointer) (intptr_t) n, /* client_data passed to PastePositionCB */
-         CurrentTime
-       );
-    } else
-#endif
-    SendString(p);
-}
-
-void
-SetInsertPos (Option *opt, int pos)
-{
-    if(opt->value > 80) ScrollToCursor(opt, pos);
-    else gtk_editable_set_position(GTK_EDITABLE(opt->handle), pos);
-}
-
-void
-HardSetFocus (Option *opt, DialogClass dlg)
-{
-    FocusOnWidget(opt, dlg);
-}
diff --git a/gtk/xtimer.c b/gtk/xtimer.c
deleted file mode 100644 (file)
index 162a265..0000000
+++ /dev/null
@@ -1,239 +0,0 @@
-/*
- * xtimer.c -- timing functions for X front end of XBoard
- *
- * Copyright 1991 by Digital Equipment Corporation, Maynard,
- * Massachusetts.
- *
- * Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006,
- * 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free
- * Software Foundation, Inc.
- *
- * The following terms apply to Digital Equipment Corporation's copyright
- * interest in XBoard:
- * ------------------------------------------------------------------------
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notice appear in all copies and that
- * both that copyright notice and this permission notice appear in
- * supporting documentation, and that the name of Digital not be
- * used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- *
- * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- * ------------------------------------------------------------------------
- *
- * The following terms apply to the enhanced version of XBoard
- * distributed by the Free Software Foundation:
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-#define HIGHDRAG 1
-
-#include "config.h"
-
-#include <stdio.h>
-#include <signal.h>
-#include <sys/types.h>
-
-#include <gtk/gtk.h>
-
-#if STDC_HEADERS
-# include <stdlib.h>
-# include <string.h>
-#else /* not STDC_HEADERS */
-extern char *getenv();
-# if HAVE_STRING_H
-#  include <string.h>
-# else /* not HAVE_STRING_H */
-#  include <strings.h>
-# endif /* not HAVE_STRING_H */
-#endif /* not STDC_HEADERS */
-
-#if HAVE_SYS_SYSTEMINFO_H
-# include <sys/systeminfo.h>
-#endif /* HAVE_SYS_SYSTEMINFO_H */
-
-#if TIME_WITH_SYS_TIME
-# include <sys/time.h>
-# include <time.h>
-#else
-# if HAVE_SYS_TIME_H
-#  include <sys/time.h>
-# else
-#  include <time.h>
-# endif
-#endif
-
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
-#if HAVE_SYS_WAIT_H
-# include <sys/wait.h>
-#endif
-
-#include "common.h"
-#include "backend.h"
-#include "frontend.h"
-
-#ifdef __EMX__
-#ifndef HAVE_USLEEP
-#define HAVE_USLEEP
-#endif
-#define usleep(t)   _sleep2(((t)+500)/1000)
-#endif
-
-guint delayedEventTimerTag = 0;
-DelayedEventCallback delayedEventCallback = 0;
-
-void
-FireDelayedEvent(gpointer data)
-{
-    g_source_remove(delayedEventTimerTag);
-    delayedEventTimerTag = 0;
-    delayedEventCallback();
-}
-
-void
-ScheduleDelayedEvent (DelayedEventCallback cb, long millisec)
-{
-    if(delayedEventTimerTag && delayedEventCallback == cb)
-       // [HGM] alive: replace, rather than add or flush identical event
-        g_source_remove(delayedEventTimerTag);
-    delayedEventCallback = cb;
-    delayedEventCallback = cb;
-    delayedEventTimerTag = g_timeout_add(millisec,(GSourceFunc) FireDelayedEvent, NULL);
-}
-
-DelayedEventCallback
-GetDelayedEvent ()
-{
-  if (delayedEventTimerTag) {
-    return delayedEventCallback;
-  } else {
-    return NULL;
-  }
-}
-
-void
-CancelDelayedEvent ()
-{
-  if (delayedEventTimerTag) {
-    g_source_remove(delayedEventTimerTag);
-    delayedEventTimerTag = 0;
-  }
-}
-
-
-guint loadGameTimerTag = 0;
-
-int LoadGameTimerRunning()
-{
-    return loadGameTimerTag != 0;
-}
-
-int
-StopLoadGameTimer ()
-{
-    if (loadGameTimerTag != 0) {
-       g_source_remove(loadGameTimerTag);
-       loadGameTimerTag = 0;
-       return TRUE;
-    } else {
-       return FALSE;
-    }
-}
-
-void
-LoadGameTimerCallback(gpointer data)
-{
-    g_source_remove(loadGameTimerTag);
-    loadGameTimerTag = 0;
-    AutoPlayGameLoop();
-}
-
-void
-StartLoadGameTimer (long millisec)
-{
-    loadGameTimerTag =
-       g_timeout_add( millisec, (GSourceFunc) LoadGameTimerCallback, NULL);
-}
-
-guint analysisClockTag = 0;
-
-int
-AnalysisClockCallback(gpointer data)
-{
-    if (gameMode == AnalyzeMode || gameMode == AnalyzeFile
-         || appData.icsEngineAnalyze) { // [DM]
-       AnalysisPeriodicEvent(0);
-    }
-    return 1;
-}
-
-void
-StartAnalysisClock ()
-{
-    analysisClockTag =
-       g_timeout_add( 2000,(GSourceFunc) AnalysisClockCallback, NULL);
-}
-
-guint clockTimerTag = 0;
-
-int
-ClockTimerRunning ()
-{
-    return clockTimerTag != 0;
-}
-
-int
-StopClockTimer ()
-{
-    if (clockTimerTag != 0)
-    {
-       g_source_remove(clockTimerTag);
-       clockTimerTag = 0;
-       return TRUE;
-    } else {
-       return FALSE;
-    }
-}
-
-void
-ClockTimerCallback(gpointer data)
-{
-    /* remove timer */
-    g_source_remove(clockTimerTag);
-    clockTimerTag = 0;
-
-    DecrementClocks();
-}
-
-void
-StartClockTimer (long millisec)
-{
-    clockTimerTag = g_timeout_add(millisec,(GSourceFunc) ClockTimerCallback,NULL);
-}
diff --git a/history.c b/history.c
deleted file mode 100644 (file)
index 1270ed9..0000000
--- a/history.c
+++ /dev/null
@@ -1,258 +0,0 @@
-/*
- * Move history for WinBoard
- *
- * Author: Alessandro Scotti (Dec 2005)
- * back-end part split off by HGM
- *
- * Copyright 2005 Alessandro Scotti
- *
- * Enhancements Copyright 2009, 2010, 2011, 2012, 2013, 2014, 2015,
- * 2016 Free Software Foundation, Inc.
- *
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.
- *
- * ------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-#include "config.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "common.h"
-#include "frontend.h"
-#include "backend.h"
-
-/* templates for low-level front-end tasks (requiring platform-dependent implementation) */
-void ClearHistoryMemo P((void));                                   // essential
-int AppendToHistoryMemo P(( char * text, int bold, int colorNr )); // essential (coloring / styling optional)
-void HighlightMove P(( int from, int to, Boolean highlight ));     // optional (can be dummy)
-void ScrollToCurrent P((int caretPos));                            // optional (can be dummy)
-
-/* templates for front-end entry point to allow inquiring about front-end state */
-Boolean MoveHistoryDialogExists P((void));
-Boolean MoveHistoryIsUp P((void));
-
-/* Module globals */
-typedef char MoveHistoryString[ MOVE_LEN*2 ];
-
-static int lastFirst = 0;
-static int lastLast = 0;
-static int lastCurrent = -1;
-static int lastGames;
-
-static char lastLastMove[ MOVE_LEN ];
-
-static MoveHistoryString * currMovelist;
-static ChessProgramStats_Move * currPvInfo;
-static int currFirst = 0;
-static int currLast = 0;
-static int currCurrent = -1;
-
-typedef struct {
-    int memoOffset;
-    int memoLength;
-} HistoryMove;
-
-static HistoryMove histMoves[ MAX_MOVES ];
-
-/* Note: in the following code a "Memo" is a Rich Edit control (it's Delphi lingo) */
-
-// back-end after replacing Windows data-types by equivalents
-static Boolean
-OnlyCurrentPositionChanged ()
-{
-    Boolean result = FALSE;
-
-    if( lastFirst >= 0 &&
-        lastLast >= lastFirst &&
-        lastCurrent >= lastFirst &&
-        currFirst == lastFirst &&
-        currLast == lastLast &&
-        currCurrent >= 0 &&
-        lastGames == storedGames )
-    {
-        result = TRUE;
-
-        /* Special case: last move changed */
-        if( currCurrent == currLast-1 ) {
-            if( strcmp( currMovelist[currCurrent], lastLastMove ) != 0 ) {
-                result = FALSE;
-            }
-        }
-    }
-
-    return result;
-}
-
-// back-end, after replacing Windows data types
-static Boolean
-OneMoveAppended ()
-{
-    Boolean result = FALSE;
-
-    if( lastCurrent >= 0 && lastCurrent >= lastFirst && lastLast >= lastFirst &&
-        currCurrent >= 0 && currCurrent >= currFirst && currLast >= currFirst &&
-        lastFirst == currFirst &&
-        lastLast == (currLast-1) &&
-        lastCurrent == (currCurrent-1) &&
-        currCurrent == (currLast-1) &&
-        lastGames == storedGames )
-    {
-        result = TRUE;
-    }
-
-    return result;
-}
-
-// back-end, now that color and font-style are passed as numbers
-static void
-AppendMoveToMemo (int index)
-{
-    char buf[64];
-
-    if( index < 0 || index >= MAX_MOVES ) {
-        return;
-    }
-
-    buf[0] = '\0';
-
-    /* Move number */
-    if( (index % 2) == 0 ) {
-        sprintf( buf, "%d.%s ", (index / 2)+1, index & 1 ? ".." : "" );
-        AppendToHistoryMemo( buf, 1, 0 ); // [HGM] 1 means bold, 0 default color
-    }
-
-    /* Move text */
-    safeStrCpy( buf, SavePart( currMovelist[index]) , sizeof( buf)/sizeof( buf[0]) );
-    strcat( buf, " " );
-
-    histMoves[index].memoOffset = AppendToHistoryMemo( buf, 0, 0 );
-    histMoves[index].memoLength = strlen(buf)-1;
-
-    /* PV info (if any) */
-    if( appData.showEvalInMoveHistory && currPvInfo[index].depth > 0 ) {
-        sprintf( buf, "{%s%.2f/%d} ",
-            currPvInfo[index].score >= 0 ? "+" : "",
-            currPvInfo[index].score / 100.0,
-            currPvInfo[index].depth );
-
-        AppendToHistoryMemo( buf, 0, 1); // [HGM] 1 means gray
-    }
-}
-
-// back-end
-void
-RefreshMemoContent ()
-{
-    int i;
-
-    ClearHistoryMemo();
-
-    for( i=currFirst; i<currLast; i++ ) {
-        AppendMoveToMemo( i );
-    }
-}
-
-// back-end part taken out of HighlightMove to determine character positions
-static void
-DoHighlight (int index, int onoff)
-{
-    if( index >= 0 && index < MAX_MOVES ) {
-        HighlightMove( histMoves[index].memoOffset,
-            histMoves[index].memoOffset + histMoves[index].memoLength, onoff );
-    }
-}
-
-// back-end, now that a wrapper is provided for the front-end code to do the actual scrolling
-void
-MemoContentUpdated ()
-{
-    int caretPos;
-
-    if(lastCurrent <= currLast) DoHighlight( lastCurrent, FALSE );
-
-    lastFirst = currFirst;
-    lastLast = currLast;
-    lastCurrent = currCurrent;
-    lastGames = storedGames;
-    lastLastMove[0] = '\0';
-
-    if( lastLast > 0 ) {
-      safeStrCpy( lastLastMove, SavePart( currMovelist[lastLast-1] ) , sizeof( lastLastMove)/sizeof( lastLastMove[0]) );
-    }
-
-    /* Deselect any text, move caret to end of memo */
-    if( currCurrent >= 0 ) {
-        caretPos = histMoves[currCurrent].memoOffset + histMoves[currCurrent].memoLength;
-    }
-    else {
-        caretPos = -1;
-    }
-
-    ScrollToCurrent(caretPos);
-    DoHighlight( currCurrent, TRUE ); // [HGM] moved last, because in X some scrolling methods spoil highlighting
-}
-
-// back-end. Must be called as double-click call-back on move-history text edit
-void
-FindMoveByCharIndex (int char_index)
-{
-    int index;
-
-    for( index=currFirst; index<currLast; index++ ) {
-        if( char_index >= histMoves[index].memoOffset &&
-            char_index <  (histMoves[index].memoOffset + histMoves[index].memoLength) )
-        {
-            ToNrEvent( index + 1 ); // moved here from call-back
-        }
-    }
-}
-
-// back-end. In WinBoard called by call-back, but could be called directly by SetIfExists?
-void
-UpdateMoveHistory ()
-{
-        /* Update the GUI */
-        if( OnlyCurrentPositionChanged() ) {
-            /* Only "cursor" changed, no need to update memo content */
-        }
-        else if( OneMoveAppended() ) {
-            AppendMoveToMemo( currCurrent );
-        }
-        else {
-            RefreshMemoContent();
-        }
-
-        MemoContentUpdated();
-}
-
-// back-end
-void
-MoveHistorySet (char movelist[][2*MOVE_LEN], int first, int last, int current, ChessProgramStats_Move * pvInfo)
-{
-    /* [AS] Danger! For now we rely on the movelist parameter being a static variable! */
-
-    currMovelist = movelist;
-    currFirst = first;
-    currLast = last;
-    currCurrent = current;
-    currPvInfo = pvInfo;
-
-    if(MoveHistoryDialogExists())
-        UpdateMoveHistory(); // [HGM] call this directly, in stead of through call-back
-}
diff --git a/ics-parsing.txt b/ics-parsing.txt
deleted file mode 100644 (file)
index 6cdb7df..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-Parsing of ICS Output
-Updated to match xboard/WinBoard 4.0.2
-==============================================================================
-
-This document describes how xboard and WinBoard parse ICS output.  The
-general parsing method is to compare a list of patterns against the
-current line (whether partial or complete) each time new input is
-received from ICS.  The patterns are considered in a fixed order.  The
-pattern matching is not "anchored", so unmatched text at the beginning
-of a line (including the prompt, usually) is skipped.  Whenever a
-pattern is matched, the characters are "consumed" and matching begins
-again with the next unmatched character, starting at the top of the
-list.  The last pattern is "\n", causing characters up to a newline to
-be discarded if they have not matched any patterns.  The pattern
-language is very simple.  Every character but "*" must match
-literally.  "*" matches zero or more characters that don't include a
-newline and don't match the character immediately following the *, if
-any.  A "*" at the end of a pattern will not match until a complete
-line is received
-
-This method of pattern matching is rather fragile.  The patterns have
-to be chosen quite carefully to avoid unexpected results.  For
-example, at one time "* shouts: *" was used to match shouts, while
-"<12>" was used to match the start of a board.  If someone shouted
-"<12>", xboard would succeed in ignoring the <12> only if all the
-characters from the ">" to the next newline were received at one time,
-so that the shout pattern could match before the start-of-board
-pattern was considered.  (This usually happens on TCP connections, but
-is not guaranteed.)
-       
-The patterns intentionally allow text in finger notes to be parsed and
-colorized as tells, shouts, etc.  I did this because Zek once said
-that ZIICS users like this feature, even though he originally
-considered it a bug in ZIICS, and so he doesn't dare change it.  I may
-eventually change it anyway so that people stop reporting it as a bug.
-
-Here is the complete list of patterns that xboard looks for, in order.
-The list was obtained by grepping the source code for "looking_at", my
-procedure for pattern-matching.  Some of these are specific to FICS,
-some to ICC, and some may be outdated---that is, they may reflect
-messages that no ICS produces anymore.  Occasionally the same pattern
-appears more than once because earlier occurrences were inside
-if/then/else statements.  There may also be a couple of places where I
-do a test without calling looking_at.
-
-zippy.c (runs first if Zippy is active, otherwise skipped):
-"* kibitzes: Hello from Crafty"
-"* is in the computer list."
-"* * is a computer *"
-"* offers to be your bughouse partner"
-"* tells you: [automatic message] I chose you"
-"* agrees to be your partner"
-"are no longer *'s partner"
-"no longer have a bughouse partner"
-"partner has disconnected"
-"partner has just chosen a new partner"
-"* tells you: [automatic message] I'm no longer your"
-"* (your partner) tells you: *"
-"* tells you: *"
-"* says: *"
-"--> * *"
-"* shouts: *"
-"* kibitzes: *"
-"* whispers: *"
-"You have * message*."
-"* has left a message for you."
-"* just sent you a message."
-"--* (*:*): *"
-"*. * (*:*): *"
-"*. * at *:*: *"
-"*(*): *"
-"*(*)(*): *"
-"Notification: * has arrived"
-"Not sent -- * is censoring you"
-"command is currently turned off"
-"* * match * * requested with * (*)"
-"* * match * requested with * (*)"
-* has made an alternate proposal of * * match * *."
-"Challenge: * (*) *(*) * * * * Loaded from *"
-"Challenge: * (*) *(*) * * * * : * * Loaded from *"
-"Challenge: * (*) *(*) * * * * : * *"
-"Challenge: * (*) *(*) * * * * * *"
-"Challenge: * (*) *(*) * * * *"
-"offers you a draw"
-"requests that the game be aborted"
-"would like to abort"
-"requests adjournment"
-"would like to adjourn"
-
-backend.c:
-"ics%"                 /* right after login only; nonessential */
-"chessclub.com"         /* before login; turns on ICC mode */
-"\"*\" is *a registered name"
-"Logging you in as \"*\""
-"Your name will be \"*\""
-"* s-shouts: "
-"* c-shouts: "
-"--->"                 /* seen in FICS login, not a shout */
-"* shouts: "
-"--> "
-"* tells you: "
-"* (your partner) tells you: "
-"* says: "
-"* has left a message "
-"* just sent you a message:\n"
-"*. * (*:*): "
-"*. * at *:*: "
-"* whispers: "
-"* kibitzes: "
-"*)(*): *"              /* channel tell or allobs or admin comment */
-"*(*): *"               /* channel tell or allobs or admin comment */
-"*)(*)(*): *"           /* channel tell */
-"Challenge:"
-"* offers you"
-"* offers to be"
-"* would like to"
-"* requests to"
-"Your opponent offers"
-"Your opponent requests"
-"\\   "                  /* continuation line */
-"Black Strength :"       /* need to issue "style 12; refresh" */
-"<<< style 10 board >>>" /* need to issue "style 12; refresh" */
-"<10>"                   /* need to issue "style 12; refresh" */
-"#@#"                    /* need to issue "style 12; refresh" */
-"login:"
-"\n<12> "
-"<12> "
-"\n<b1> "
-"<b1> "
-"* *vs. * *--- *"        /* move list coming */
-"* * match, initial time: * minute*, increment: * second"
-"Move  "                 /* move list is here */
-"% "                    /* end of prompt; nonessential */
-"}*"                    /* ends a move list */
-"Adding game * to observation list"
-"Game notification: * (*) vs. * (*)"
-"Entering examine mode for game *"
-"has made you an examiner of game *"
-"Illegal move"
-"Not a legal move"
-"Your king is in check"
-"It isn't your turn"
-"It is not your move"
-"still have time"
-"not out of time"
-"either player is out of time"
-"has timeseal; checking"
-"added * seconds to"
-"seconds were added to"
-"clock paused"
-"clock resumed"
-"Creating: * (*)* * (*)"
-"Creating: * (*) [*] * (*)"
-"{Game * (* vs. *) *}*"
-"Removing game * from observation"
-"no longer observing game *"
-"Game * (*) has no examiners"
-"no longer examining game *"
-"\n"
-"*% "                   /* end of prompt; nonessential */
diff --git a/install-sh b/install-sh
deleted file mode 100755 (executable)
index 058b26c..0000000
+++ /dev/null
@@ -1,250 +0,0 @@
-#! /bin/sh
-#
-# install - install a program, script, or datafile
-# This comes from X11R5 (mit/util/scripts/install.sh).
-#
-# Copyright 1991 by the Massachusetts Institute of Technology
-#
-# Permission to use, copy, modify, distribute, and sell this software and its
-# documentation for any purpose is hereby granted without fee, provided that
-# the above copyright notice appear in all copies and that both that
-# copyright notice and this permission notice appear in supporting
-# documentation, and that the name of M.I.T. not be used in advertising or
-# publicity pertaining to distribution of the software without specific,
-# written prior permission.  M.I.T. makes no representations about the
-# suitability of this software for any purpose.  It is provided "as is"
-# without express or implied warranty.
-#
-# Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
-# when there is no Makefile.
-#
-# This script is compatible with the BSD install script, but was written
-# from scratch.  It can only install one file at a time, a restriction
-# shared with many OS's install programs.
-
-
-# set DOITPROG to echo to test this script
-
-# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
-
-
-# put in absolute paths if you don't have them in your path; or use env. vars.
-
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
-
-transformbasename=""
-transform_arg=""
-instcmd="$mvprog"
-chmodcmd="$chmodprog 0755"
-chowncmd=""
-chgrpcmd=""
-stripcmd=""
-rmcmd="$rmprog -f"
-mvcmd="$mvprog"
-src=""
-dst=""
-dir_arg=""
-
-while [ x"$1" != x ]; do
-    case $1 in
-       -c) instcmd="$cpprog"
-           shift
-           continue;;
-
-       -d) dir_arg=true
-           shift
-           continue;;
-
-       -m) chmodcmd="$chmodprog $2"
-           shift
-           shift
-           continue;;
-
-       -o) chowncmd="$chownprog $2"
-           shift
-           shift
-           continue;;
-
-       -g) chgrpcmd="$chgrpprog $2"
-           shift
-           shift
-           continue;;
-
-       -s) stripcmd="$stripprog"
-           shift
-           continue;;
-
-       -t=*) transformarg=`echo $1 | sed 's/-t=//'`
-           shift
-           continue;;
-
-       -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
-           shift
-           continue;;
-
-       *)  if [ x"$src" = x ]
-           then
-               src=$1
-           else
-               # this colon is to work around a 386BSD /bin/sh bug
-               :
-               dst=$1
-           fi
-           shift
-           continue;;
-    esac
-done
-
-if [ x"$src" = x ]
-then
-       echo "install:  no input file specified"
-       exit 1
-else
-       true
-fi
-
-if [ x"$dir_arg" != x ]; then
-       dst=$src
-       src=""
-
-       if [ -d $dst ]; then
-               instcmd=:
-       else
-               instcmd=mkdir
-       fi
-else
-
-# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad
-# if $src (and thus $dsttmp) contains '*'.
-
-       if [ -f $src -o -d $src ]
-       then
-               true
-       else
-               echo "install:  $src does not exist"
-               exit 1
-       fi
-
-       if [ x"$dst" = x ]
-       then
-               echo "install:  no destination specified"
-               exit 1
-       else
-               true
-       fi
-
-# If destination is a directory, append the input filename; if your system
-# does not like double slashes in filenames, you may need to add some logic
-
-       if [ -d $dst ]
-       then
-               dst="$dst"/`basename $src`
-       else
-               true
-       fi
-fi
-
-## this sed command emulates the dirname command
-dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
-
-# Make sure that the destination directory exists.
-#  this part is taken from Noah Friedman's mkinstalldirs script
-
-# Skip lots of stat calls in the usual case.
-if [ ! -d "$dstdir" ]; then
-defaultIFS='
-'
-IFS="${IFS-${defaultIFS}}"
-
-oIFS="${IFS}"
-# Some sh's can't handle IFS=/ for some reason.
-IFS='%'
-set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
-IFS="${oIFS}"
-
-pathcomp=''
-
-while [ $# -ne 0 ] ; do
-       pathcomp="${pathcomp}${1}"
-       shift
-
-       if [ ! -d "${pathcomp}" ] ;
-        then
-               $mkdirprog "${pathcomp}"
-       else
-               true
-       fi
-
-       pathcomp="${pathcomp}/"
-done
-fi
-
-if [ x"$dir_arg" != x ]
-then
-       $doit $instcmd $dst &&
-
-       if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
-       if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
-       if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
-       if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
-else
-
-# If we're going to rename the final executable, determine the name now.
-
-       if [ x"$transformarg" = x ]
-       then
-               dstfile=`basename $dst`
-       else
-               dstfile=`basename $dst $transformbasename |
-                       sed $transformarg`$transformbasename
-       fi
-
-# don't allow the sed command to completely eliminate the filename
-
-       if [ x"$dstfile" = x ]
-       then
-               dstfile=`basename $dst`
-       else
-               true
-       fi
-
-# Make a temp file name in the proper directory.
-
-       dsttmp=$dstdir/#inst.$$#
-
-# Move or copy the file name to the temp name
-
-       $doit $instcmd $src $dsttmp &&
-
-       trap "rm -f ${dsttmp}" 0 &&
-
-# and set any options; do chmod last to preserve setuid bits
-
-# If any of these fail, we abort the whole thing.  If we want to
-# ignore errors from any of these, just make sure not to ignore
-# errors from the above "$doit $instcmd $src $dsttmp" command.
-
-       if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
-       if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
-       if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
-       if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
-
-# Now rename the file to the real destination.
-
-       $doit $rmcmd -f $dstdir/$dstfile &&
-       $doit $mvcmd $dsttmp $dstdir/$dstfile
-
-fi &&
-
-
-exit 0
diff --git a/lists.c b/lists.c
deleted file mode 100644 (file)
index 68f1a5d..0000000
--- a/lists.c
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * lists.c -- Functions to implement a double linked list XBoard
- *
- * Copyright 1995, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free
- * Software Foundation, Inc.
- *
- * Enhancements Copyright 2005 Alessandro Scotti
- *
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-/*
- * This file could well be a part of backend.c, but I prefer it this
- * way.
- */
-
-#include "config.h"
-
-#include <stdio.h>
-#if STDC_HEADERS
-# include <stdlib.h>
-#endif /* not STDC_HEADERS */
-
-#include "common.h"
-#include "lists.h"
-
-
-
-/* Check, if List l is empty; returns TRUE, if it is, FALSE
- * otherwise.
- */
-int
-ListEmpty (List *l)
-{
-    return(l->head == (ListNode *) &l->tail);
-}
-
-
-/* Initialize a list. Must be executed before list is used.
- */
-void
-ListNew (List *l)
-{
-    l->head = (ListNode *) &l->tail;
-    l->tail = NULL;
-    l->tailPred = (ListNode *) l;
-}
-
-
-/* Remove node n from the list it is inside.
- */
-void
-ListRemove (ListNode *n)
-{
-    if (n->succ != NULL) {  /*  Be safe  */
-       n->pred->succ = n->succ;
-       n->succ->pred = n->pred;
-       n->succ = NULL;     /*  Mark node as no longer being member */
-       n->pred = NULL;     /*  of a list.                          */
-    }
-}
-
-
-/* Delete node n.
- */
-void
-ListNodeFree (ListNode *n)
-{
-    if (n) {
-       ListRemove(n);
-       free(n);
-    }
-}
-
-
-/* Create a list node with size s. Returns NULL, if out of memory.
- */
-ListNode *
-ListNodeCreate (size_t s)
-{
-    ListNode *n;
-
-    if ((n = (ListNode*) malloc(s))) {
-       n->succ = NULL; /*  Mark node as not being member of a list.    */
-       n->pred = NULL;
-    }
-    return(n);
-}
-
-
-/* Insert node n into the list of node m after m.
- */
-void
-ListInsert (ListNode *m, ListNode *n)
-{
-    n->succ = m->succ;
-    n->pred = m;
-    m->succ = n;
-    n->succ->pred = n;
-}
-
-
-/* Add node n to the head of list l.
- */
-void
-ListAddHead (List *l, ListNode *n)
-{
-    ListInsert((ListNode *) &l->head, n);
-}
-
-
-/* Add node n to the tail of list l.
- */
-void
-ListAddTail (List *l, ListNode *n)
-{
-    ListInsert((ListNode *) l->tailPred, n);
-}
-
-
-/* Return element with number n of list l. (NULL, if n doesn't exist.)
- * Counting starts with 0.
- */
-ListNode *
-ListElem (List *l, int n)
-{
-    ListNode *ln;
-
-    for (ln = l->head;  ln->succ;  ln = ln->succ) {
-       if (!n--) {
-           return (ln);
-       }
-    }
-
-    return(NULL);
-}
diff --git a/lists.h b/lists.h
deleted file mode 100644 (file)
index fb46709..0000000
--- a/lists.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * lists.c -- Includefile of lists.c
- *
- * Copyright 1995, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free
- * Software Foundation, Inc.
- *
- * Enhancements Copyright 2005 Alessandro Scotti
- *
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-/*
- * This file could well be a part of backend.c, but I prefer it this
- * way.
- */
-
-#ifndef XB_LISTS
-#define XB_LISTS
-
-
-/* Type definition: Node of a double linked list.
- */
-typedef struct XB_ListNode {
-    struct XB_ListNode *succ;
-    struct XB_ListNode *pred;
-} ListNode;
-
-
-/* Type definition: Double linked list.
- *
- * The list structure consists of two ListNode's: The pred entry of
- * the head being the succ entry of the tail. Thus a list is empty
- * if and only if it consists of 2 nodes. :-)
- */
-typedef struct {
-    struct XB_ListNode *head;     /*  The list structure consists of two  */
-    struct XB_ListNode *tail;     /*  ListNode's: The pred entry of the   */
-    struct XB_ListNode *tailPred; /*  head being the succ entry of the    */
-} List;                         /*  tail.                               */
-
-
-
-/* Function prototypes
- */
-extern int ListEmpty P((List *));
-void ListNew P((List *));
-void ListRemove P((ListNode *));
-void ListNodeFree P((ListNode *));
-ListNode *ListNodeCreate P((size_t));
-void ListInsert P((ListNode *, ListNode *));
-void ListAddHead P((List *, ListNode *));
-void ListAddTail P((List *, ListNode *));
-ListNode *ListElem P((List *, int));
-
-
-#endif
diff --git a/menus.c b/menus.c
deleted file mode 100644 (file)
index af8e33d..0000000
--- a/menus.c
+++ /dev/null
@@ -1,1320 +0,0 @@
-/*
- * menus.c -- platform-indendent menu handling code for XBoard
- *
- * Copyright 1991 by Digital Equipment Corporation, Maynard,
- * Massachusetts.
- *
- * Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006,
- * 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free
- * Software Foundation, Inc.
- *
- * The following terms apply to Digital Equipment Corporation's copyright
- * interest in XBoard:
- * ------------------------------------------------------------------------
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notice appear in all copies and that
- * both that copyright notice and this permission notice appear in
- * supporting documentation, and that the name of Digital not be
- * used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- *
- * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- * ------------------------------------------------------------------------
- *
- * The following terms apply to the enhanced version of XBoard
- * distributed by the Free Software Foundation:
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-#define HIGHDRAG 1
-
-#include "config.h"
-
-#include <stdio.h>
-#include <ctype.h>
-#include <signal.h>
-#include <errno.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <pwd.h>
-#include <math.h>
-
-#if STDC_HEADERS
-# include <stdlib.h>
-# include <string.h>
-#else /* not STDC_HEADERS */
-extern char *getenv();
-# if HAVE_STRING_H
-#  include <string.h>
-# else /* not HAVE_STRING_H */
-#  include <strings.h>
-# endif /* not HAVE_STRING_H */
-#endif /* not STDC_HEADERS */
-
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
-#if ENABLE_NLS
-#include <locale.h>
-#endif
-
-// [HGM] bitmaps: put before incuding the bitmaps / pixmaps, to know how many piece types there are.
-#include "common.h"
-
-#include "frontend.h"
-#include "backend.h"
-#include "menus.h"
-#include "gettext.h"
-
-#ifdef ENABLE_NLS
-# define  _(s) gettext (s)
-# define N_(s) gettext_noop (s)
-#else
-# define  _(s) (s)
-# define N_(s)  s
-#endif
-
-/*
- * Button/menu procedures
- */
-
-char  *gameCopyFilename, *gamePasteFilename;
-Boolean saveSettingsOnExit;
-char *settingsFileName;
-char gamesDir[MSG_SIZ], positionsDir[MSG_SIZ], textureDir[MSG_SIZ], bookDir[MSG_SIZ], piecesDir[MSG_SIZ];
-
-static int
-LoadGamePopUp (FILE *f, int gameNumber, char *title)
-{
-    cmailMsgLoaded = FALSE;
-    if (gameNumber == 0) {
-       int error = GameListBuild(f);
-       if (error) {
-           DisplayError(_("Cannot build game list"), error);
-       } else if (!ListEmpty(&gameList) &&
-                  ((ListGame *) gameList.tailPred)->number > 1) {
-           GameListPopUp(f, title);
-           return TRUE;
-       }
-       GameListDestroy();
-       gameNumber = 1;
-    }
-    return LoadGame(f, gameNumber, title, FALSE);
-}
-
-void
-LoadGameProc ()
-{
-    if (gameMode == AnalyzeMode || gameMode == AnalyzeFile) {
-       Reset(FALSE, TRUE);
-    }
-    FileNamePopUp(_("Load game file name?"), "", ".pgn .game", LoadGamePopUp, "rb");
-}
-
-void
-LoadNextGameProc ()
-{
-    ReloadGame(1);
-}
-
-void
-LoadPrevGameProc ()
-{
-    ReloadGame(-1);
-}
-
-void
-ReloadGameProc ()
-{
-    ReloadGame(0);
-}
-
-void
-LoadNextPositionProc ()
-{
-    ReloadPosition(1);
-}
-
-void
-LoadPrevPositionProc ()
-{
-    ReloadPosition(-1);
-}
-
-void
-ReloadPositionProc ()
-{
-    ReloadPosition(0);
-}
-
-void
-LoadPositionProc()
-{
-    static char buf[MSG_SIZ];
-    if (gameMode == AnalyzeMode || gameMode == AnalyzeFile) {
-       Reset(FALSE, TRUE);
-    }
-    snprintf(buf, MSG_SIZ, "%s/", appData.positionDir);
-    FileNamePopUp(_("Load position file name?"), buf, ".fen .epd .pos", LoadPosition, "rb");
-}
-
-void
-SaveGameProc ()
-{
-    FileNamePopUp(_("Save game file name?"),
-                 DefaultFileName(appData.oldSaveStyle ? "game" : "pgn"),
-                 appData.oldSaveStyle ? ".game" : ".pgn",
-                 SaveGame, "a");
-}
-
-void
-SavePositionProc ()
-{
-    FileNamePopUp(_("Save position file name?"),
-                 DefaultFileName(appData.oldSaveStyle ? "pos" : "fen"),
-                 appData.oldSaveStyle ? ".pos" : ".fen",
-                 SavePosition, "a");
-}
-
-void
-ReloadCmailMsgProc ()
-{
-    ReloadCmailMsgEvent(FALSE);
-}
-
-void
-CopyFENToClipboard ()
-{ // wrapper to make call from back-end possible
-  CopyPositionProc();
-}
-
-void
-CopyPositionProc ()
-{
-    static char *selected_fen_position=NULL;
-    if(gameMode == EditPosition) EditPositionDone(TRUE);
-    if (selected_fen_position) free(selected_fen_position);
-    selected_fen_position = (char *)PositionToFEN(currentMove, NULL, 1);
-    if (!selected_fen_position) return;
-    CopySomething(selected_fen_position);
-}
-
-void
-CopyGameProc ()
-{
-  int ret;
-
-  ret = SaveGameToFile(gameCopyFilename, FALSE);
-  if (!ret) return;
-
-  CopySomething(NULL);
-}
-
-void
-CopyGameListProc ()
-{
-  if(!SaveGameListAsText(fopen(gameCopyFilename, "w"))) return;
-  CopySomething(NULL);
-}
-
-void
-AutoSaveGame ()
-{
-    SaveGameProc();
-}
-
-
-void
-QuitProc ()
-{
-    ExitEvent(0);
-}
-
-void
-MatchProc ()
-{
-    static Enables matchOff[] = { { "Mode.MachineMatch", False }, { NULL, False } };
-    if(matchMode) SetMenuEnables(matchOff);
-    MatchEvent(2);
-}
-
-void
-AdjuWhiteProc ()
-{
-    UserAdjudicationEvent(+1);
-}
-
-void
-AdjuBlackProc ()
-{
-    UserAdjudicationEvent(-1);
-}
-
-void
-AdjuDrawProc ()
-{
-    UserAdjudicationEvent(0);
-}
-
-void
-RevertProc ()
-{
-    RevertEvent(False);
-}
-
-void
-AnnotateProc ()
-{
-    RevertEvent(True);
-}
-
-void
-FlipViewProc ()
-{
-    if(twoBoards) { partnerUp = 1; DrawPosition(True, NULL); partnerUp = 0; }
-    flipView = !flipView;
-    DrawPosition(True, NULL);
-}
-
-void
-SaveOnExitProc ()
-{
-  saveSettingsOnExit = !saveSettingsOnExit;
-
-  MarkMenuItem("Options.SaveSettingsonExit", saveSettingsOnExit);
-}
-
-void
-SaveSettingsProc ()
-{
-  SaveSettings(settingsFileName);
-}
-
-void
-BugReportProc ()
-{
-    char buf[MSG_SIZ];
-    snprintf(buf, MSG_SIZ, "%s mailto:bug-xboard@gnu.org", appData.sysOpen);
-    system(buf);
-}
-
-void
-GuideProc ()
-{
-    char buf[MSG_SIZ];
-    snprintf(buf, MSG_SIZ, "%s http://www.gnu.org/software/xboard/user_guide/UserGuide.html", appData.sysOpen);
-    system(buf);
-}
-
-void
-HomePageProc ()
-{
-    char buf[MSG_SIZ];
-    snprintf(buf, MSG_SIZ, "%s http://www.gnu.org/software/xboard/", appData.sysOpen);
-    system(buf);
-}
-
-void
-NewsPageProc ()
-{
-    char buf[MSG_SIZ];
-    snprintf(buf, MSG_SIZ, "%s http://www.gnu.org/software/xboard/whats_new/portal.html", appData.sysOpen);
-    system(buf);
-}
-
-void
-AboutProc ()
-{
-    char buf[2 * MSG_SIZ];
-#if ZIPPY
-    char *zippy = _(" (with Zippy code)");
-#else
-    char *zippy = "";
-#endif
-    snprintf(buf, sizeof(buf),
-_("%s%s\n\n"
-"Copyright 1991 Digital Equipment Corporation\n"
-"Enhancements Copyright 1992-2016 Free Software Foundation\n"
-"Enhancements Copyright 2005 Alessandro Scotti\n\n"
-"%s is free software and carries NO WARRANTY;"
-"see the file COPYING for more information.\n\n"
-"Visit XBoard on the web at: http://www.gnu.org/software/xboard/\n"
-"Check out the newest features at: http://www.gnu.org/software/xboard/whats_new.html\n\n"
-"Report bugs via email at: <bug-xboard@gnu.org>\n\n"
-  ),
-           programVersion, zippy, PACKAGE);
-    ErrorPopUp(_("About XBoard"), buf, FALSE);
-}
-
-void
-DebugProc ()
-{
-    appData.debugMode = !appData.debugMode;
-    if(!strcmp(appData.nameOfDebugFile, "stderr")) return; // stderr is already open, and should never be closed
-    if(!appData.debugMode) fclose(debugFP);
-    else {
-       debugFP = fopen(appData.nameOfDebugFile, "w");
-       if(debugFP == NULL) debugFP = stderr;
-       else setbuf(debugFP, NULL);
-    }
-}
-
-void
-EditEngineProc ()
-{
-    EditEnginePopUp(firstChessProgramNames, &firstChessProgramNames);
-}
-
-void
-NothingProc ()
-{
-    return;
-}
-
-#ifdef OPTIONSDIALOG
-#   define MARK_MENU_ITEM(X,Y)
-#else
-#   define MARK_MENU_ITEM(X,Y) MarkMenuItem(X, Y)
-#endif
-
-void
-PonderNextMoveProc ()
-{
-  PonderNextMoveEvent(!appData.ponderNextMove);
-  MARK_MENU_ITEM("Options.PonderNextMove", appData.ponderNextMove);
-}
-
-void
-AlwaysQueenProc ()
-{
-    appData.alwaysPromoteToQueen = !appData.alwaysPromoteToQueen;
-    MARK_MENU_ITEM("Options.AlwaysQueen", appData.alwaysPromoteToQueen);
-}
-
-void
-AnimateDraggingProc ()
-{
-    appData.animateDragging = !appData.animateDragging;
-
-    if (appData.animateDragging) CreateAnimVars();
-    MARK_MENU_ITEM("Options.AnimateDragging", appData.animateDragging);
-}
-
-void
-AnimateMovingProc ()
-{
-    appData.animate = !appData.animate;
-    if (appData.animate) CreateAnimVars();
-    MARK_MENU_ITEM("Options.AnimateMoving", appData.animate);
-}
-
-void
-AutoflagProc ()
-{
-    appData.autoCallFlag = !appData.autoCallFlag;
-    MARK_MENU_ITEM("Options.AutoFlag", appData.autoCallFlag);
-}
-
-void
-AutoflipProc ()
-{
-    appData.autoFlipView = !appData.autoFlipView;
-    MARK_MENU_ITEM("Options.AutoFlipView", appData.autoFlipView);
-}
-
-void
-BlindfoldProc ()
-{
-    appData.blindfold = !appData.blindfold;
-    MARK_MENU_ITEM("Options.Blindfold", appData.blindfold);
-    DrawPosition(True, NULL);
-}
-
-void
-TestLegalityProc ()
-{
-    appData.testLegality = !appData.testLegality;
-    MARK_MENU_ITEM("Options.TestLegality", appData.testLegality);
-}
-
-
-void
-FlashMovesProc ()
-{
-    if (appData.flashCount == 0) {
-       appData.flashCount = 3;
-    } else {
-       appData.flashCount = -appData.flashCount;
-    }
-    MARK_MENU_ITEM("Options.FlashMoves", appData.flashCount > 0);
-}
-
-#if HIGHDRAG
-void
-HighlightDraggingProc ()
-{
-    appData.highlightDragging = !appData.highlightDragging;
-    MARK_MENU_ITEM("Options.HighlightDragging", appData.highlightDragging);
-}
-#endif
-
-void
-HighlightLastMoveProc ()
-{
-    appData.highlightLastMove = !appData.highlightLastMove;
-    MARK_MENU_ITEM("Options.HighlightLastMove", appData.highlightLastMove);
-}
-
-void
-HighlightArrowProc ()
-{
-    appData.highlightMoveWithArrow = !appData.highlightMoveWithArrow;
-    MARK_MENU_ITEM("Options.HighlightWithArrow", appData.highlightMoveWithArrow);
-}
-
-void
-IcsAlarmProc ()
-{
-    appData.icsAlarm = !appData.icsAlarm;
-//    MARK_MENU_ITEM("Options.ICSAlarm", appData.icsAlarm);
-}
-
-void
-MoveSoundProc ()
-{
-    appData.ringBellAfterMoves = !appData.ringBellAfterMoves;
-    MARK_MENU_ITEM("Options.MoveSound", appData.ringBellAfterMoves);
-}
-
-void
-OneClickProc ()
-{
-    appData.oneClick = !appData.oneClick;
-    MARK_MENU_ITEM("Options.OneClickMoving", appData.oneClick);
-}
-
-void
-PeriodicUpdatesProc ()
-{
-    PeriodicUpdatesEvent(!appData.periodicUpdates);
-    MARK_MENU_ITEM("Options.PeriodicUpdates", appData.periodicUpdates);
-}
-
-void
-PopupExitMessageProc ()
-{
-    appData.popupExitMessage = !appData.popupExitMessage;
-    MARK_MENU_ITEM("Options.PopupExitMessage", appData.popupExitMessage);
-}
-
-void
-PopupMoveErrorsProc ()
-{
-    appData.popupMoveErrors = !appData.popupMoveErrors;
-    MARK_MENU_ITEM("Options.PopupMoveErrors", appData.popupMoveErrors);
-}
-
-void
-PremoveProc ()
-{
-    appData.premove = !appData.premove;
-//    MARK_MENU_ITEM("Options.Premove", appData.premove);
-}
-
-void
-ShowCoordsProc ()
-{
-    appData.showCoords = !appData.showCoords;
-    MARK_MENU_ITEM("Options.ShowCoords", appData.showCoords);
-    DrawPosition(True, NULL);
-}
-
-void
-ShowThinkingProc ()
-{
-    appData.showThinking = !appData.showThinking; // [HGM] thinking: taken out of ShowThinkingEvent
-    ShowThinkingEvent();
-}
-
-void
-HideThinkingProc ()
-{
-  appData.hideThinkingFromHuman = !appData.hideThinkingFromHuman; // [HGM] thinking: taken out of ShowThinkingEvent
-  ShowThinkingEvent();
-
-  MARK_MENU_ITEM("Options.HideThinking", appData.hideThinkingFromHuman);
-}
-
-void
-CreateBookDelayed ()
-{
-  ScheduleDelayedEvent(CreateBookEvent, 50);
-}
-
-void
-SaveSelectedProc ()
-{
-  FileNamePopUp(_("Save game file name?"),
-                 "",
-                 ".pgn",
-                 SaveSelected, "a");
-}
-
-/*
- *  Menu definition tables
- */
-
-MenuItem fileMenu[] = {
-  {N_("New Game"),             "<Ctrl>n",          "NewGame",              ResetGameEvent},
-  {N_("New Shuffle Game..."),   NULL,              "NewShuffleGame",       ShuffleMenuProc},
-  {N_("New Variant..."),       "<Alt><Shift>v",    "NewVariant",           NewVariantProc},// [HGM] variant: not functional yet
-  {"----",                      NULL,               NULL,                  NothingProc},
-  {N_("Load Game"),            "<Ctrl>o",          "LoadGame",             LoadGameProc,           CHECK},
-  {N_("Load Position"),        "<Ctrl><Shift>o",   "LoadPosition",         LoadPositionProc},
-  {N_("Next Position"),        "<Shift>Page_Down", "LoadNextPosition",     LoadNextPositionProc},
-  {N_("Prev Position"),        "<Shift>Page_Up",   "LoadPreviousPosition", LoadPrevPositionProc},
-  {"----",                      NULL,               NULL,                  NothingProc},
-  {N_("Save Game"),            "<Ctrl>s",          "SaveGame",             SaveGameProc},
-  {N_("Save Position"),        "<Ctrl><Shift>s",   "SavePosition",         SavePositionProc},
-  {N_("Save Selected Games"),   NULL,              "SaveSelected",         SaveSelectedProc},
-  {N_("Save Games as Book"),    NULL,              "CreateBook",           CreateBookDelayed},
-  {"----",                      NULL,               NULL,                  NothingProc},
-  {N_("Mail Move"),             NULL,              "MailMove",             MailMoveEvent},
-  {N_("Reload CMail Message"),  NULL,              "ReloadCMailMessage",   ReloadCmailMsgProc},
-  {"----",                      NULL,               NULL,                  NothingProc},
-  {N_("Quit "),                "<Ctrl>q",          "Quit",                 QuitProc},
-  {NULL,                        NULL,               NULL,                  NULL}
-};
-
-MenuItem editMenu[] = {
-  {N_("Copy Game"),      "<Ctrl>c",        "CopyGame",      CopyGameProc},
-  {N_("Copy Position"),  "<Ctrl><Shift>c", "CopyPosition",  CopyPositionProc},
-  {N_("Copy Game List"),  NULL,            "CopyGameList",  CopyGameListProc},
-  {"----",                NULL,             NULL,           NothingProc},
-  {N_("Paste Game"),     "<Ctrl>v",        "PasteGame",     PasteGameProc},
-  {N_("Paste Position"), "<Ctrl><Shift>v", "PastePosition", PastePositionProc},
-  {"----",                NULL,             NULL,           NothingProc},
-  {N_("Edit Game"),      "<Ctrl>e",        "EditGame",      EditGameEvent},
-  {N_("Edit Position"),  "<Ctrl><Shift>e", "EditPosition",  EditPositionEvent},
-  {N_("Edit Tags"),       NULL,            "EditTags",      EditTagsProc},
-  {N_("Edit Comment"),    NULL,            "EditComment",   EditCommentProc},
-  {N_("Edit Book"),       NULL,            "EditBook",      EditBookEvent},
-  {"----",                NULL,             NULL,           NothingProc},
-  {N_("Revert"),         "Home",           "Revert",        RevertProc},
-  {N_("Annotate"),        NULL,            "Annotate",      AnnotateProc},
-  {N_("Truncate Game"),  "End",            "TruncateGame",  TruncateGameEvent},
-  {"----",                NULL,             NULL,           NothingProc},
-  {N_("Backward"),       "<Alt>Left",      "Backward",      BackwardEvent},
-  {N_("Forward"),        "<Alt>Right",     "Forward",       ForwardEvent},
-  {N_("Back to Start"),  "<Alt>Home",      "BacktoStart",   ToStartEvent},
-  {N_("Forward to End"), "<Alt>End",       "ForwardtoEnd",  ToEndEvent},
-  {NULL,                  NULL,             NULL,          NULL}
-};
-
-MenuItem viewMenu[] = {
-  {N_("Flip View"),         "F2",            "FlipView",        FlipViewProc,           CHECK},
-  {"----",                   NULL,            NULL,             NothingProc},
-  {N_("Engine Output"),     "<Alt><Shift>o", "EngineOutput",    EngineOutputProc,       CHECK},
-  {N_("Move History"),      "<Alt><Shift>h", "MoveHistory",     HistoryShowProc,        CHECK}, // [HGM] hist: activate 4.2.7 code
-  {N_("Evaluation Graph"),  "<Alt><Shift>e", "EvaluationGraph", EvalGraphProc,          CHECK},
-  {N_("Game List"),         "<Alt><Shift>g", "GameList",        ShowGameListProc,       CHECK},
-  {N_("ICS text menu"),      NULL,           "ICStextmenu",     IcsTextProc,            CHECK},
-  {"----",                   NULL,            NULL,             NothingProc},
-  {N_("Tags"),               NULL,           "Tags",            EditTagsProc,           CHECK},
-  {N_("Comments"),           NULL,           "Comments",        EditCommentProc,        CHECK},
-  {N_("ICS Input Box"),      NULL,           "ICSInputBox",     IcsInputBoxProc,        CHECK},
-  {N_("ICS/Chat Console"),   NULL,           "OpenChatWindow",  ChatProc,               CHECK},
-  {"----",                   NULL,            NULL,             NothingProc},
-  {N_("Board..."),           NULL,           "Board",           BoardOptionsProc},
-  {N_("Fonts..."),           NULL,           "Fonts",           FontsProc},
-  {N_("Game List Tags..."),  NULL,           "GameListTags",    GameListOptionsProc},
-  {NULL,                     NULL,            NULL,             NULL}
-};
-
-MenuItem modeMenu[] = {
-  {N_("Machine White"),  "<Ctrl>w",        "MachineWhite",  MachineWhiteEvent,              RADIO },
-  {N_("Machine Black"),  "<Ctrl>b",        "MachineBlack",  MachineBlackEvent,              RADIO },
-  {N_("Two Machines"),   "<Ctrl>t",        "TwoMachines",   TwoMachinesEvent,               RADIO },
-  {N_("Analysis Mode"),  "<Ctrl>a",        "AnalysisMode",  (MenuProc*) AnalyzeModeEvent,   RADIO },
-  {N_("Analyze Game"),   "<Ctrl>g",        "AnalyzeFile",   AnalyzeFileEvent,               RADIO },
-  {N_("Edit Game"),      "<Ctrl>e",        "EditGame",      EditGameEvent,                  RADIO },
-  {N_("Edit Position"),  "<Ctrl><Shift>e", "EditPosition",  EditPositionEvent,              RADIO },
-  {N_("Training"),        NULL,            "Training",      TrainingEvent,                  RADIO },
-  {N_("ICS Client"),      NULL,            "ICSClient",     IcsClientEvent,                 RADIO },
-  {"----",                NULL,             NULL,           NothingProc},
-  {N_("Machine Match"),   NULL,            "MachineMatch",  MatchProc,                      CHECK },
-  {N_("Pause"),          "Pause",          "Pause",         PauseEvent,                     CHECK },
-  {NULL,                  NULL,             NULL,           NULL}
-};
-
-MenuItem actionMenu[] = {
-  {N_("Accept"),             "F3",   "Accept",             AcceptEvent},
-  {N_("Decline"),            "F4",   "Decline",            DeclineEvent},
-  {N_("Rematch"),            "F12",  "Rematch",            RematchEvent},
-  {"----",                    NULL,   NULL,                NothingProc},
-  {N_("Call Flag"),          "F5",   "CallFlag",           CallFlagEvent},
-  {N_("Draw"),               "F6",   "Draw",               DrawEvent},
-  {N_("Adjourn"),            "F7",   "Adjourn",            AdjournEvent},
-  {N_("Abort"),              "F8",   "Abort",              AbortEvent},
-  {N_("Resign"),             "F9",   "Resign",             ResignEvent},
-  {"----",                    NULL,   NULL,                NothingProc},
-  {N_("Stop Observing"),     "F10",  "StopObserving",      StopObservingEvent},
-  {N_("Stop Examining"),     "F11",  "StopExamining",      StopExaminingEvent},
-  {N_("Upload to Examine"),   NULL,  "UploadtoExamine",    UploadGameEvent},
-  {"----",                    NULL,   NULL,                NothingProc},
-  {N_("Adjudicate to White"), NULL,  "AdjudicatetoWhite",  AdjuWhiteProc},
-  {N_("Adjudicate to Black"), NULL,  "AdjudicatetoBlack",  AdjuBlackProc},
-  {N_("Adjudicate Draw"),     NULL,  "AdjudicateDraw",     AdjuDrawProc},
-  {NULL,                      NULL,   NULL,               NULL}
-};
-
-MenuItem engineMenu[100] = {
-  {N_("Edit Engine List..."),      NULL,     "EditEngList",      EditEngineProc},
-  {"----",                         NULL,      NULL,              NothingProc},
-  {N_("Load New 1st Engine..."),   NULL,     "LoadNew1stEngine", LoadEngine1Proc},
-  {N_("Load New 2nd Engine..."),   NULL,     "LoadNew2ndEngine", LoadEngine2Proc},
-  {"----",                         NULL,      NULL,              NothingProc},
-  {N_("Engine #1 Settings..."),    NULL,     "Engine#1Settings", FirstSettingsProc},
-  {N_("Engine #2 Settings..."),    NULL,     "Engine#2Settings", SecondSettingsProc},
-  {N_("Common Settings..."), "<Alt><Shift>u","CommonEngine",     UciMenuProc},
-  {"----",                         NULL,      NULL,              NothingProc},
-  {N_("Hint"),                     NULL,     "Hint",             HintEvent},
-  {N_("Book"),                     NULL,     "Book",             BookEvent},
-  {"----",                         NULL,      NULL,              NothingProc},
-  {N_("Move Now"),                "<Ctrl>m", "MoveNow",          MoveNowEvent},
-  {N_("Retract Move"),            "<Ctrl>x", "RetractMove",      RetractMoveEvent},
-  {NULL,                           NULL,      NULL,              NULL}
-};
-
-MenuItem optionsMenu[] = {
-#ifdef OPTIONSDIALOG
-  {N_("General..."),              NULL,             "General",             OptionsProc},
-#endif
-  {N_("Time Control..."),        "<Alt><Shift>t",   "TimeControl",         TimeControlProc},
-  {N_("Adjudications..."),       "<Alt><Shift>j",   "Adjudications",       EngineMenuProc},
-  {N_("ICS..."),                  NULL,             "ICS",                 IcsOptionsProc},
-  {N_("Tournament..."),           NULL,             "Match",               MatchOptionsProc},
-  {N_("Load Game..."),            NULL,             "LoadGame",            LoadOptionsProc},
-  {N_("Save Game..."),            NULL,             "SaveGame",            SaveOptionsProc},
-  {N_("Game List..."),            NULL,             "GameList",            GameListOptionsProc},
-  {N_("Sounds..."),               NULL,             "Sounds",              SoundOptionsProc},
-  {"----",                        NULL,              NULL,                 NothingProc},
-#ifndef OPTIONSDIALOG
-  {N_("Always Queen"),           "<Ctrl><Shift>q",  "AlwaysQueen",         AlwaysQueenProc},
-  {N_("Animate Dragging"),        NULL,             "AnimateDragging",     AnimateDraggingProc},
-  {N_("Animate Moving"),         "<Ctrl><Shift>a",  "AnimateMoving",       AnimateMovingProc},
-  {N_("Auto Flag"),              "<Ctrl><Shift>f",  "AutoFlag",            AutoflagProc},
-  {N_("Auto Flip View"),          NULL,             "AutoFlipView",        AutoflipProc},
-  {N_("Blindfold"),               NULL,             "Blindfold",           BlindfoldProc},
-  {N_("Flash Moves"),             NULL,             "FlashMoves",          FlashMovesProc},
-#if HIGHDRAG
-  {N_("Highlight Dragging"),      NULL,             "HighlightDragging",   HighlightDraggingProc},
-#endif
-  {N_("Highlight Last Move"),     NULL,             "HighlightLastMove",   HighlightLastMoveProc},
-  {N_("Highlight With Arrow"),    NULL,             "HighlightWithArrow",  HighlightArrowProc},
-  {N_("Move Sound"),              NULL,             "MoveSound",           MoveSoundProc},
-  {N_("One-Click Moving"),        NULL,             "OneClickMoving",      OneClickProc},
-  {N_("Periodic Updates"),        NULL,             "PeriodicUpdates",     PeriodicUpdatesProc},
-  {N_("Ponder Next Move"),       "<Ctrl><Shift>p",  "PonderNextMove",      PonderNextMoveProc},
-  {N_("Popup Exit Message"),      NULL,             "PopupExitMessage",    PopupExitMessageProc},
-  {N_("Popup Move Errors"),       NULL,             "PopupMoveErrors",     PopupMoveErrorsProc},
-  {N_("Show Coords"),             NULL,             "ShowCoords",          ShowCoordsProc},
-  {N_("Hide Thinking"),          "<Ctrl><Shift>h",  "HideThinking",        HideThinkingProc},
-  {N_("Test Legality"),          "<Ctrl><Shift>l",  "TestLegality",        TestLegalityProc},
-  {"----",                        NULL,              NULL,                 NothingProc},
-#endif
-  {N_("Save Settings Now"),       NULL,             "SaveSettingsNow",     SaveSettingsProc},
-  {N_("Save Settings on Exit"),   NULL,             "SaveSettingsonExit",  SaveOnExitProc,         CHECK },
-  {NULL,                          NULL,              NULL,                 NULL}
-};
-
-MenuItem helpMenu[] = {
-  {N_("Info XBoard"),           NULL,   "InfoXBoard",           InfoProc},
-  {N_("Man XBoard"),           "F1",    "ManXBoard",            ManProc},
-  {"----",                      NULL,    NULL,                  NothingProc},
-  {N_("XBoard Home Page"),      NULL,   "XBoardHomePage",       HomePageProc},
-  {N_("On-line User Guide"),    NULL,   "On-lineUserGuide",     GuideProc},
-  {N_("Development News"),      NULL,   "DevelopmentNews",      NewsPageProc},
-  {N_("e-Mail Bug Report"),     NULL,   "e-MailBugReport",      BugReportProc},
-  {"----",                      NULL,    NULL,                  NothingProc},
-  {N_("About XBoard"),          NULL,   "AboutXBoard",          AboutProc},
-  {NULL,                        NULL,    NULL,                  NULL}
-};
-
-MenuItem noMenu[] = {
-  { "", "<Alt>Next" ,"LoadNextGame", LoadNextGameProc },
-  { "", "<Alt>Prior" ,"LoadPrevGame", LoadPrevGameProc },
-  { "", NULL,"ReloadGame", ReloadGameProc },
-  { "", NULL,"ReloadPosition", ReloadPositionProc },
-#ifndef OPTIONSDIALOG
-  { "", NULL,"AlwaysQueen", AlwaysQueenProc },
-  { "", NULL,"AnimateDragging", AnimateDraggingProc },
-  { "", NULL,"AnimateMoving", AnimateMovingProc },
-  { "", NULL,"Autoflag", AutoflagProc },
-  { "", NULL,"Autoflip", AutoflipProc },
-  { "", NULL,"Blindfold", BlindfoldProc },
-  { "", NULL,"FlashMoves", FlashMovesProc },
-#if HIGHDRAG
-  { "", NULL,"HighlightDragging", HighlightDraggingProc },
-#endif
-  { "", NULL,"HighlightLastMove", HighlightLastMoveProc },
-  { "", NULL,"MoveSound", MoveSoundProc },
-  { "", NULL,"PeriodicUpdates", PeriodicUpdatesProc },
-  { "", NULL,"PopupExitMessage", PopupExitMessageProc },
-  { "", NULL,"PopupMoveErrors", PopupMoveErrorsProc },
-  { "", NULL,"ShowCoords", ShowCoordsProc },
-  { "", NULL,"ShowThinking", ShowThinkingProc },
-  { "", NULL,"HideThinking", HideThinkingProc },
-  { "", NULL,"TestLegality", TestLegalityProc },
-#endif
-  { "", NULL,"AboutGame", AboutGameEvent },
-  { "", "<Ctrl>d" ,"DebugProc", DebugProc },
-  { "", NULL,"Nothing", NothingProc },
-  {NULL, NULL, NULL, NULL}
-};
-
-Menu menuBar[] = {
-    {N_("File"),    "File", fileMenu},
-    {N_("Edit"),    "Edit", editMenu},
-    {N_("View"),    "View", viewMenu},
-    {N_("Mode"),    "Mode", modeMenu},
-    {N_("Action"),  "Action", actionMenu},
-    {N_("Engine"),  "Engine", engineMenu},
-    {N_("Options"), "Options", optionsMenu},
-    {N_("Help"),    "Help", helpMenu},
-    {NULL, NULL, NULL},
-    {   "",         "None", noMenu}
-};
-
-MenuItem *
-MenuNameToItem (char *menuName)
-{
-    int i=0;
-    char buf[MSG_SIZ], *p;
-    MenuItem *menuTab;
-    static MenuItem a = { NULL, NULL, NULL, NothingProc };
-    extern Option mainOptions[];
-    safeStrCpy(buf, menuName, MSG_SIZ);
-    p = strchr(buf, '.');
-    if(!p) menuTab = noMenu, p = menuName; else {
-       *p++ = NULLCHAR;
-       for(i=0; menuBar[i].name; i++)
-           if(!strcmp(buf, menuBar[i].name)) break;
-       if(!menuBar[i].name) return NULL; // main menu not found
-       menuTab = menuBar[i].mi;
-    }
-    if(*p == NULLCHAR) { a.handle = mainOptions[i+1].handle; return &a; } // main menu bar
-    for(i=0; menuTab[i].string; i++)
-       if(menuTab[i].ref && !strcmp(p, menuTab[i].ref)) return menuTab + i;
-    return NULL; // item not found
-}
-
-int firstEngineItem;
-
-void
-AppendEnginesToMenu (char *list)
-{
-    int i=0;
-    char *p;
-    if(appData.icsActive || appData.recentEngines <= 0) return;
-    for(firstEngineItem=0; engineMenu[firstEngineItem].string; firstEngineItem++);
-    recentEngines = strdup(list);
-    while (*list) {
-       p = strchr(list, '\n'); if(p == NULL) break;
-       if(i == 0) engineMenu[firstEngineItem++].string = "----"; // at least one valid item to add
-       *p = 0;
-       if(firstEngineItem + i < 99)
-           engineMenu[firstEngineItem+i].string = strdup(list); // just set name; MenuProc stays NULL
-       i++; *p = '\n'; list = p + 1;
-    }
-}
-
-Enables icsEnables[] = {
-    { "File.MailMove", False },
-    { "File.ReloadCMailMessage", False },
-    { "Mode.MachineBlack", False },
-    { "Mode.MachineWhite", False },
-    { "Mode.AnalysisMode", False },
-    { "Mode.AnalyzeFile", False },
-    { "Mode.TwoMachines", False },
-    { "Mode.MachineMatch", False },
-#if !ZIPPY
-    { "Engine.Hint", False },
-    { "Engine.Book", False },
-    { "Engine.MoveNow", False },
-#ifndef OPTIONSDIALOG
-    { "PeriodicUpdates", False },
-    { "HideThinking", False },
-    { "PonderNextMove", False },
-#endif
-#endif
-    { "Engine.Engine#1Settings", False },
-    { "Engine.Engine#2Settings", False },
-    { "Engine.Load1stEngine", False },
-    { "Engine.Load2ndEngine", False },
-    { "Edit.Annotate", False },
-    { "Options.Match", False },
-    { NULL, False }
-};
-
-Enables ncpEnables[] = {
-    { "File.MailMove", False },
-    { "File.ReloadCMailMessage", False },
-    { "Mode.MachineWhite", False },
-    { "Mode.MachineBlack", False },
-    { "Mode.AnalysisMode", False },
-    { "Mode.AnalyzeFile", False },
-    { "Mode.TwoMachines", False },
-    { "Mode.MachineMatch", False },
-    { "Mode.ICSClient", False },
-    { "View.ICStextmenu", False },
-    { "View.ICSInputBox", False },
-    { "View.OpenChatWindow", False },
-    { "Action.", False },
-    { "Edit.Revert", False },
-    { "Edit.Annotate", False },
-    { "Engine.Engine#1Settings", False },
-    { "Engine.Engine#2Settings", False },
-    { "Engine.MoveNow", False },
-    { "Engine.RetractMove", False },
-    { "Options.ICS", False },
-#ifndef OPTIONSDIALOG
-    { "Options.AutoFlag", False },
-    { "Options.AutoFlip View", False },
-//    { "Options.ICSAlarm", False },
-    { "Options.MoveSound", False },
-    { "Options.HideThinking", False },
-    { "Options.PeriodicUpdates", False },
-    { "Options.PonderNextMove", False },
-#endif
-    { "Engine.Hint", False },
-    { "Engine.Book", False },
-    { NULL, False }
-};
-
-Enables gnuEnables[] = {
-    { "Mode.ICSClient", False },
-    { "View.ICStextmenu", False },
-    { "View.ICSInputBox", False },
-    { "View.OpenChatWindow", False },
-    { "Action.Accept", False },
-    { "Action.Decline", False },
-    { "Action.Rematch", False },
-    { "Action.Adjourn", False },
-    { "Action.StopExamining", False },
-    { "Action.StopObserving", False },
-    { "Action.UploadtoExamine", False },
-    { "Edit.Revert", False },
-    { "Edit.Annotate", False },
-    { "Options.ICS", False },
-
-    /* The next two options rely on SetCmailMode being called *after*    */
-    /* SetGNUMode so that when GNU is being used to give hints these     */
-    /* menu options are still available                                  */
-
-    { "File.MailMove", False },
-    { "File.ReloadCMailMessage", False },
-    // [HGM] The following have been added to make a switch from ncp to GNU mode possible
-    { "Mode.MachineWhite", True },
-    { "Mode.MachineBlack", True },
-    { "Mode.AnalysisMode", True },
-    { "Mode.AnalyzeFile", True },
-    { "Mode.TwoMachines", True },
-    { "Mode.MachineMatch", True },
-    { "Engine.Engine#1Settings", True },
-    { "Engine.Engine#2Settings", True },
-    { "Engine.Hint", True },
-    { "Engine.Book", True },
-    { "Engine.MoveNow", True },
-    { "Engine.RetractMove", True },
-    { "Action.", True },
-    { NULL, False }
-};
-
-Enables cmailEnables[] = {
-    { "Action.", True },
-    { "Action.CallFlag", False },
-    { "Action.Draw", True },
-    { "Action.Adjourn", False },
-    { "Action.Abort", False },
-    { "Action.StopObserving", False },
-    { "Action.StopExamining", False },
-    { "File.MailMove", True },
-    { "File.ReloadCMailMessage", True },
-    { NULL, False }
-};
-
-Enables trainingOnEnables[] = {
-  { "Edit.EditComment", False },
-  { "Mode.Pause", False },
-  { "Edit.Forward", False },
-  { "Edit.Backward", False },
-  { "Edit.ForwardtoEnd", False },
-  { "Edit.BacktoStart", False },
-  { "Engine.MoveNow", False },
-  { "Edit.TruncateGame", False },
-  { NULL, False }
-};
-
-Enables trainingOffEnables[] = {
-  { "Edit.EditComment", True },
-  { "Mode.Pause", True },
-  { "Edit.Forward", True },
-  { "Edit.Backward", True },
-  { "Edit.ForwardtoEnd", True },
-  { "Edit.BacktoStart", True },
-  { "Engine.MoveNow", True },
-  { "Engine.TruncateGame", True },
-  { NULL, False }
-};
-
-Enables machineThinkingEnables[] = {
-  { "File.LoadGame", False },
-//  { "LoadNextGame", False },
-//  { "LoadPreviousGame", False },
-//  { "ReloadSameGame", False },
-  { "Edit.PasteGame", False },
-  { "File.LoadPosition", False },
-//  { "LoadNextPosition", False },
-//  { "LoadPreviousPosition", False },
-//  { "ReloadSamePosition", False },
-  { "Edit.PastePosition", False },
-  { "Mode.MachineWhite", False },
-  { "Mode.MachineBlack", False },
-  { "Mode.TwoMachines", False },
-//  { "MachineMatch", False },
-  { "Engine.RetractMove", False },
-  { NULL, False }
-};
-
-Enables userThinkingEnables[] = {
-  { "File.LoadGame", True },
-//  { "LoadNextGame", True },
-//  { "LoadPreviousGame", True },
-//  { "ReloadSameGame", True },
-  { "Edit.PasteGame", True },
-  { "File.LoadPosition", True },
-//  { "LoadNextPosition", True },
-//  { "LoadPreviousPosition", True },
-//  { "ReloadSamePosition", True },
-  { "Edit.PastePosition", True },
-  { "Mode.MachineWhite", True },
-  { "Mode.MachineBlack", True },
-  { "Mode.TwoMachines", True },
-//  { "MachineMatch", True },
-  { "Engine.RetractMove", True },
-  { NULL, False }
-};
-
-void
-SetICSMode ()
-{
-  SetMenuEnables(icsEnables);
-
-#if ZIPPY
-  if (appData.zippyPlay && !appData.noChessProgram) { /* [DM] icsEngineAnalyze */
-     EnableNamedMenuItem("Mode.AnalysisMode", True);
-     EnableNamedMenuItem("Engine.Engine#1Settings", True);
-  }
-#endif
-}
-
-void
-SetNCPMode ()
-{
-  SetMenuEnables(ncpEnables);
-}
-
-void
-SetGNUMode ()
-{
-  SetMenuEnables(gnuEnables);
-}
-
-void
-SetCmailMode ()
-{
-  SetMenuEnables(cmailEnables);
-}
-
-void
-SetTrainingModeOn ()
-{
-  SetMenuEnables(trainingOnEnables);
-  if (appData.showButtonBar) {
-    EnableButtonBar(False);
-  }
-  CommentPopDown();
-}
-
-void
-SetTrainingModeOff ()
-{
-  SetMenuEnables(trainingOffEnables);
-  if (appData.showButtonBar) {
-    EnableButtonBar(True);
-  }
-}
-
-void
-SetUserThinkingEnables ()
-{
-  if (appData.noChessProgram) return;
-  SetMenuEnables(userThinkingEnables);
-}
-
-void
-SetMachineThinkingEnables ()
-{
-  if (appData.noChessProgram) return;
-  SetMenuEnables(machineThinkingEnables);
-  switch (gameMode) {
-  case MachinePlaysBlack:
-  case MachinePlaysWhite:
-  case TwoMachinesPlay:
-    EnableNamedMenuItem(ModeToWidgetName(gameMode), True);
-    break;
-  default:
-    break;
-  }
-}
-
-void
-GreyRevert (Boolean grey)
-{
-    EnableNamedMenuItem("Edit.Revert", !grey);
-    EnableNamedMenuItem("Edit.Annotate", !grey);
-}
-
-char *
-ModeToWidgetName (GameMode mode)
-{
-    switch (mode) {
-      case BeginningOfGame:
-       if (appData.icsActive)
-         return "Mode.ICSClient";
-       else if (appData.noChessProgram ||
-                *appData.cmailGameName != NULLCHAR)
-         return "Mode.EditGame";
-       else
-         return "Mode.MachineBlack";
-      case MachinePlaysBlack:
-       return "Mode.MachineBlack";
-      case MachinePlaysWhite:
-       return "Mode.MachineWhite";
-      case AnalyzeMode:
-       return "Mode.AnalysisMode";
-      case AnalyzeFile:
-       return "Mode.AnalyzeFile";
-      case TwoMachinesPlay:
-       return "Mode.TwoMachines";
-      case EditGame:
-       return "Mode.EditGame";
-      case PlayFromGameFile:
-       return "File.LoadGame";
-      case EditPosition:
-       return "Mode.EditPosition";
-      case Training:
-       return "Mode.Training";
-      case IcsPlayingWhite:
-      case IcsPlayingBlack:
-      case IcsObserving:
-      case IcsIdle:
-      case IcsExamining:
-       return "Mode.ICSClient";
-      default:
-      case EndOfGame:
-       return NULL;
-    }
-}
-
-static void
-InstallNewEngine (char *command, char *dir, char *variants, char *protocol)
-{ // install the given engine in XBoard's -firstChessProgramNames
-    char buf[MSG_SIZ], *quote = "";
-    if(strchr(command, ' ')) { // quoting needed
-       if(!strchr(command, '"')) quote = "\""; else
-       if(!strchr(command, '\'')) quote = "'"; else {
-           printf("Could not auto-install %s\n", command); // too complex
-       }
-    }
-    // construct engine line, with optional -fd and -fUCI arguments
-    snprintf(buf, MSG_SIZ, "%s%s%s", quote, command, quote);
-    if(strcmp(dir, "") && strcmp(dir, "."))
-       snprintf(buf + strlen(buf), MSG_SIZ - strlen(buf), " -fd %s", dir);
-    if(!strcmp(protocol, "uci"))
-       snprintf(buf + strlen(buf), MSG_SIZ - strlen(buf), " -fUCI");
-    if(strstr(firstChessProgramNames, buf)) return; // avoid duplicats
-    // append line
-    quote = malloc(strlen(firstChessProgramNames) + strlen(buf) + 2);
-    sprintf(quote, "%s%s\n", firstChessProgramNames, buf);
-    FREE(firstChessProgramNames); firstChessProgramNames = quote;
-}
-
-#ifdef HAVE_DIRENT_H
-#include <dirent.h>
-#else
-#include <sys/dir.h>
-#define dirent direct
-#endif
-
-static void
-InstallFromDir (char *dirName, char *protocol, char *settingsFile)
-{   // scan system for new plugin specs in given directory
-    DIR *dir;
-    struct dirent *dp;
-    struct stat statBuf;
-    time_t lastSaved = 0;
-    char buf[1024];
-
-    if(!stat(settingsFile, &statBuf)) lastSaved = statBuf.st_mtime;
-    snprintf(buf, 1024, "%s/%s", dirName, protocol);
-
-    if(!(dir = opendir(buf))) return;
-    while( (dp = readdir(dir))) {
-       time_t installed = 0;
-       if(!strstr(dp->d_name, ".eng")) continue; // to suppress . and ..
-       snprintf(buf, 1024, "%s/%s/%s", dirName, protocol, dp->d_name);
-       if(!stat(buf, &statBuf)) installed = statBuf.st_mtime;
-       if(lastSaved == 0 || (int) (installed - lastSaved) > 0) { // first time we see it
-           FILE *f = fopen(buf, "r");
-           if(f) { // read the plugin-specs
-               char engineCommand[1024], engineDir[1024], variants[1024];
-               char bad=0, dummy, *engineCom = engineCommand;
-               int major, minor;
-               if(fscanf(f, "plugin spec %d.%d%c", &major, &minor, &dummy) != 3 ||
-                  fscanf(f, "%[^\n]%c", engineCommand, &dummy) != 2 ||
-                  fscanf(f, "%[^\n]%c", variants, &dummy) != 2) bad = 1;
-               fclose(f);
-               if(bad) continue;
-               // uncomment following two lines for chess-only installs
-//             if(!(p = strstr(variants, "chess")) ||
-//                  p != variants && p[-1] != ',' || p[5] && p[5] != ',') continue;
-               // split off engine working directory (if any)
-               strcpy(engineDir, "");
-               if(sscanf(engineCommand, "cd %[^;];%c", engineDir, &dummy) == 2)
-                   engineCom = engineCommand + strlen(engineDir) + 4;
-               InstallNewEngine(engineCom, engineDir, variants, protocol);
-           }
-       }
-    }
-    closedir(dir);
-}
-
-static void
-AutoInstallProtocol (char *settingsFile, char *protocol)
-{   // install new engines for given protocol (both from package and source)
-    InstallFromDir("/usr/local/share/games/plugins", protocol, settingsFile);
-    InstallFromDir("/usr/share/games/plugins", protocol, settingsFile);
-}
-
-void
-AutoInstall (char *settingsFile)
-{   // install all new XBoard and UCI engines
-    AutoInstallProtocol(settingsFile, "xboard");
-    AutoInstallProtocol(settingsFile, "uci");
-}
-
-void
-InitMenuMarkers()
-{
-#ifndef OPTIONSDIALOG
-    if (appData.alwaysPromoteToQueen) {
-       MarkMenuItem("Options.Always Queen", True);
-    }
-    if (appData.animateDragging) {
-       MarkMenuItem("Options.Animate Dragging", True);
-    }
-    if (appData.animate) {
-       MarkMenuItem("Options.Animate Moving", True);
-    }
-    if (appData.autoCallFlag) {
-       MarkMenuItem("Options.Auto Flag", True);
-    }
-    if (appData.autoFlipView) {
-       XtSetValues(XtNameToWidget(menuBarWidget,"Options.Auto Flip View", True);
-    }
-    if (appData.blindfold) {
-       MarkMenuItem("Options.Blindfold", True);
-    }
-    if (appData.flashCount > 0) {
-       MarkMenuItem("Options.Flash Moves", True);
-    }
-#if HIGHDRAG
-    if (appData.highlightDragging) {
-       MarkMenuItem("Options.Highlight Dragging", True);
-    }
-#endif
-    if (appData.highlightLastMove) {
-       MarkMenuItem("Options.Highlight Last Move", True);
-    }
-    if (appData.highlightMoveWithArrow) {
-       MarkMenuItem("Options.Arrow", True);
-    }
-//    if (appData.icsAlarm) {
-//     MarkMenuItem("Options.ICS Alarm", True);
-//    }
-    if (appData.ringBellAfterMoves) {
-       MarkMenuItem("Options.Move Sound", True);
-    }
-    if (appData.oneClick) {
-       MarkMenuItem("Options.OneClick", True);
-    }
-    if (appData.periodicUpdates) {
-       MarkMenuItem("Options.Periodic Updates", True);
-    }
-    if (appData.ponderNextMove) {
-       MarkMenuItem("Options.Ponder Next Move", True);
-    }
-    if (appData.popupExitMessage) {
-       MarkMenuItem("Options.Popup Exit Message", True);
-    }
-    if (appData.popupMoveErrors) {
-       MarkMenuItem("Options.Popup Move Errors", True);
-    }
-//    if (appData.premove) {
-//     MarkMenuItem("Options.Premove", True);
-//    }
-    if (appData.showCoords) {
-       MarkMenuItem("Options.Show Coords", True);
-    }
-    if (appData.hideThinkingFromHuman) {
-       MarkMenuItem("Options.Hide Thinking", True);
-    }
-    if (appData.testLegality) {
-       MarkMenuItem("Options.Test Legality", True);
-    }
-#endif
-    if (saveSettingsOnExit) {
-       MarkMenuItem("Options.SaveSettingsonExit", True);
-    }
-    EnableNamedMenuItem("File.SaveSelected", False);
-
-    // all XBoard builds get here, but not WinBoard...
-    if(*appData.autoInstall) AutoInstall(settingsFileName);
-}
diff --git a/menus.h b/menus.h
deleted file mode 100644 (file)
index b088cc7..0000000
--- a/menus.h
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * menus.h -- platform-indendent menu handling code for XBoard
- *
- * Copyright 1991 by Digital Equipment Corporation, Maynard,
- * Massachusetts.
- *
- * Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006,
- * 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free
- * Software Foundation, Inc.
- *
- * The following terms apply to Digital Equipment Corporation's copyright
- * interest in XBoard:
- * ------------------------------------------------------------------------
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notice appear in all copies and that
- * both that copyright notice and this permission notice appear in
- * supporting documentation, and that the name of Digital not be
- * used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- *
- * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- * ------------------------------------------------------------------------
- *
- * The following terms apply to the enhanced version of XBoard
- * distributed by the Free Software Foundation:
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-
-
-typedef void MenuProc P((void));
-
-typedef struct {
-    char *string;
-    char *accel;
-    char *ref;
-    MenuProc *proc;
-    void *handle;
-} MenuItem;
-
-typedef struct {
-    char *name;
-    char *ref;
-    MenuItem *mi;
-} Menu;
-
-typedef struct {
-    char *name;
-    Boolean value;
-} Enables;
-
-extern Menu menuBar[];
-
-void ErrorPopUp P((char *title, char *text, int modal));
-void AppendEnginesToMenu P((char *list));
-void LoadGameProc P((void));
-void LoadNextGameProc P((void));
-void LoadPrevGameProc P((void));
-void ReloadGameProc P((void));
-void LoadPositionProc P((void));
-void LoadNextPositionProc P((void));
-void LoadPrevPositionProc P((void));
-void ReloadPositionProc P((void));
-void CopyPositionProc P((void));
-void PastePositionProc P((void));
-void CopyGameProc P((void));
-void CopyGameListProc P((void));
-void PasteGameProc P((void));
-void SaveGameProc P((void));
-void SavePositionProc P((void));
-void ReloadCmailMsgProc P((void));
-void QuitProc P((void));
-void AnalyzeModeProc P((void));
-void AnalyzeFileProc P((void));
-void MatchProc P((void));
-void MatchOptionsProc P((void));
-void EditTagsProc P((void));
-void EditCommentProc P((void));
-void IcsInputBoxProc P((void));
-void ChatProc P((void));
-void AdjuWhiteProc P((void));
-void AdjuBlackProc P((void));
-void AdjuDrawProc P((void));
-void RevertProc P((void));
-void AnnotateProc P((void));
-void AlwaysQueenProc P((void));
-void AnimateDraggingProc P((void));
-void AnimateMovingProc P((void));
-void AutoflagProc P((void));
-void AutoflipProc P((void));
-void BlindfoldProc P((void));
-void FlashMovesProc P((void));
-void FlipViewProc P((void));
-void HighlightDraggingProc P((void));
-void HighlightLastMoveProc P((void));
-void HighlightArrowProc P((void));
-void MoveSoundProc P((void));
-//void IcsAlarmProc P((void));
-void OneClickProc P((void));
-void PeriodicUpdatesProc P((void));
-void PonderNextMoveProc P((void));
-void PopupMoveErrorsProc P((void));
-void PopupExitMessageProc P((void));
-//void PremoveProc P((void));
-void ShowCoordsProc P((void));
-void ShowThinkingProc P((void));
-void HideThinkingProc P((void));
-void TestLegalityProc P((void));
-void SaveSettingsProc P((void));
-void SaveOnExitProc P((void));
-void InfoProc P((void));
-void ManProc P((void));
-void GuideProc P((void));
-void HomePageProc P((void));
-void NewsPageProc P((void));
-void BugReportProc P((void));
-void AboutGameProc P((void));
-void AboutProc P((void));
-void DebugProc P((void));
-void NothingProc P((void));
-void ShuffleMenuProc P((void));
-void EngineMenuProc P((void));
-void UciMenuProc P((void));
-void TimeControlProc P((void));
-void OptionsProc P((void));
-void NewVariantProc P((void));
-void IcsTextProc P((void));
-void LoadEngine1Proc P((void));
-void LoadEngine2Proc P((void));
-void FirstSettingsProc P((void));
-void SecondSettingsProc P((void));
-void GameListOptionsProc P((void));
-void IcsOptionsProc P((void));
-void SoundOptionsProc P((void));
-void BoardOptionsProc P((void));
-void LoadOptionsProc P((void));
-void SaveOptionsProc P((void));
-void SaveSettings P((char *));
-void EditBookProc P((void));
-void InitMenuMarkers P((void));
-void FontsProc P((void));
-void ShowGameListProc P((void)); // in ngamelist.c
-void HistoryShowProc P((void));  // in nhistory.c
-
-// only here because it is the only header shared by xoptions.c and usystem.c
-void SetTextColor P((char **cnames, int fg, int bg, int attr));
-void ConsoleWrite P((char *message, int count));
-
-// must be moved to xengineoutput.h
-
-void EngineOutputProc P((void));
-void EvalGraphProc P((void));
-
-int SaveGameListAsText P((FILE *f));
-void FileNamePopUp P((char *label, char *def, char *filter,
-                     FileProc proc, char *openMode));
-
-void AppendMenuItem P((char *text, int n));
-MenuItem *MenuNameToItem P((char *menuName));
-void SetMenuEnables P((Enables *enab));
-void EnableButtonBar P((int state));
-char *ModeToWidgetName P((GameMode mode));
-void CreateAnimVars P((void));
-void CopySomething P((char *s));
-void EditEnginePopUp P((char *tags, char **dest));
-
-
-
-extern char  *gameCopyFilename, *gamePasteFilename;
-extern Boolean saveSettingsOnExit;
-extern char *settingsFileName;
-extern int firstEngineItem;
-
-
-
-#define CHECK (void *) 1
-#define RADIO (void *) 2
-
-#define OPTIONSDIALOG
-#define INFOFILE     "xboard.info"
diff --git a/mkinstalldirs b/mkinstalldirs
deleted file mode 100644 (file)
index f945dbf..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-#! /bin/sh
-# mkinstalldirs --- make directory hierarchy
-# Author: Noah Friedman <friedman@prep.ai.mit.edu>
-# Created: 1993-05-16
-# Public domain
-
-errstatus=0
-
-for file
-do
-   set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
-   shift
-
-   pathcomp=
-   for d
-   do
-     pathcomp="$pathcomp$d"
-     case "$pathcomp" in
-       -* ) pathcomp=./$pathcomp ;;
-     esac
-
-     if test ! -d "$pathcomp"; then
-        echo "mkdir $pathcomp" 1>&2
-
-        mkdir "$pathcomp" || lasterr=$?
-
-        if test ! -d "$pathcomp"; then
-         errstatus=$lasterr
-        fi
-     fi
-
-     pathcomp="$pathcomp/"
-   done
-done
-
-exit $errstatus
-
-# mkinstalldirs ends here
diff --git a/moves.c b/moves.c
deleted file mode 100644 (file)
index cc3343b..0000000
--- a/moves.c
+++ /dev/null
@@ -1,2706 +0,0 @@
-/*
- * moves.c - Move generation and checking
- *
- * Copyright 1991 by Digital Equipment Corporation, Maynard,
- * Massachusetts.
- *
- * Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006,
- * 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free
- * Software Foundation, Inc.
- *
- * Enhancements Copyright 2005 Alessandro Scotti
- *
- * The following terms apply to Digital Equipment Corporation's copyright
- * interest in XBoard:
- * ------------------------------------------------------------------------
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notice appear in all copies and that
- * both that copyright notice and this permission notice appear in
- * supporting documentation, and that the name of Digital not be
- * used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- *
- * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- * ------------------------------------------------------------------------
- *
- * The following terms apply to the enhanced version of XBoard
- * distributed by the Free Software Foundation:
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-#include "config.h"
-
-#include <stdio.h>
-#include <ctype.h>
-#include <stdlib.h>
-#if HAVE_STRING_H
-# include <string.h>
-#else /* not HAVE_STRING_H */
-# include <strings.h>
-#endif /* not HAVE_STRING_H */
-#include "common.h"
-#include "backend.h"
-#include "moves.h"
-#include "parser.h"
-
-int WhitePiece P((ChessSquare));
-int BlackPiece P((ChessSquare));
-int SameColor P((ChessSquare, ChessSquare));
-int PosFlags(int index);
-
-int quickFlag;
-char *pieceDesc[EmptySquare];
-char *defaultDesc[EmptySquare] = {
- "fmWfceFifmnD", "N", "B", "R", "Q",
- "F", "A", "BN", "RN", "W", "K",
- "mRcpR", "N0", "BW", "RF", "gQ",
- "", "", "QN", "", "N", "",
- "", "", "", "", "",
- "", "", "", "", "", "",
- "", "", "", "", "",
- "", "", "", "", "", "K"
-};
-
-int
-WhitePiece (ChessSquare piece)
-{
-    return (int) piece >= (int) WhitePawn && (int) piece < (int) BlackPawn;
-}
-
-int
-BlackPiece (ChessSquare piece)
-{
-    return (int) piece >= (int) BlackPawn && (int) piece < (int) EmptySquare;
-}
-
-#if 0
-int
-SameColor (ChessSquare piece1, ChessSquare piece2)
-{
-    return ((int) piece1 >= (int) WhitePawn &&   /* [HGM] can be > King ! */
-            (int) piece1 <  (int) BlackPawn &&
-           (int) piece2 >= (int) WhitePawn &&
-            (int) piece2 <  (int) BlackPawn)
-      ||   ((int) piece1 >= (int) BlackPawn &&
-            (int) piece1 <  (int) EmptySquare &&
-           (int) piece2 >= (int) BlackPawn &&
-            (int) piece2 <  (int) EmptySquare);
-}
-#else
-#define SameColor(piece1, piece2) (piece1 < EmptySquare && piece2 < EmptySquare && (piece1 < BlackPawn) == (piece2 < BlackPawn) || piece1 == DarkSquare || piece2 == DarkSquare)
-#endif
-
-unsigned char pieceToChar[EmptySquare+1] = {
-                        'P', 'N', 'B', 'R', 'Q', 'F', 'E', 'A', 'C', 'W', 'M',
-                        'O', 'H', 'I', 'J', 'G', 'D', 'V', 'L', 'S', 'U', 'K',
-                        'p', 'n', 'b', 'r', 'q', 'f', 'e', 'a', 'c', 'w', 'm',
-                        'o', 'h', 'i', 'j', 'g', 'd', 'v', 'l', 's', 'u', 'k',
-                        'x' };
-unsigned char pieceNickName[EmptySquare];
-int promoPartner[EmptySquare];
-
-char
-PieceToChar (ChessSquare p)
-{
-    int c;
-    if((int)p < 0 || (int)p >= (int)EmptySquare) return('?'); /* [HGM] for safety */
-    c = pieceToChar[(int) p];
-    if(c & 128) c = c & 63 | 64;
-    return c;
-}
-
-char
-PieceSuffix (ChessSquare p)
-{
-    int c;
-    if((int)p < 0 || (int)p >= (int)EmptySquare) return 0; /* [HGM] for safety */
-    c = pieceToChar[(int) p];
-    if(c < 128) return 0;
-    return SUFFIXES[c - 128 >> 6];
-}
-
-int
-PieceToNumber (ChessSquare p)  /* [HGM] holdings: count piece type, ignoring non-participating piece types */
-{
-    int i=0;
-    ChessSquare start = (int)p >= (int)BlackPawn ? BlackPawn : WhitePawn;
-
-    while(start++ != p) if(pieceToChar[start-1] != '.' && pieceToChar[start-1] != '+') i++;
-    return i;
-}
-
-ChessSquare
-CharToPiece (int c)
-{
-     int i;
-     if(c == '.') return EmptySquare;
-     for(i=0; i< (int) EmptySquare; i++)
-          if(pieceNickName[i] == c) return (ChessSquare) i;
-     for(i=0; i< (int) EmptySquare; i++)
-          if(pieceToChar[i] == c) return (ChessSquare) i;
-     return EmptySquare;
-}
-
-void
-CopyBoard (Board to, Board from)
-{
-    int i, j;
-
-    for (i = 0; i < BOARD_HEIGHT; i++)
-      for (j = 0; j < BOARD_WIDTH; j++)
-       to[i][j] = from[i][j];
-    for (j = 0; j < BOARD_FILES; j++) // [HGM] gamestate: copy castling rights and ep status
-       to[VIRGIN][j] = from[VIRGIN][j],
-       to[CASTLING][j] = from[CASTLING][j];
-    to[HOLDINGS_SET] = 0; // flag used in ICS play
-}
-
-int
-CompareBoards (Board board1, Board board2)
-{
-    int i, j;
-
-    for (i = 0; i < BOARD_HEIGHT; i++)
-      for (j = 0; j < BOARD_WIDTH; j++) {
-         if (board1[i][j] != board2[i][j])
-           return FALSE;
-    }
-    return TRUE;
-}
-
-char defaultName[] = "PNBRQ......................................K"  // white
-                     "pnbrq......................................k"; // black
-char shogiName[]   = "PNBRLS...G.++++++..........................K"  // white
-                     "pnbrls...g.++++++..........................k"; // black
-char xqName[]      = "PH.R.AE..K.C................................"  // white
-                     "ph.r.ae..k.c................................"; // black
-
-char *
-CollectPieceDescriptors ()
-{   // make a line of piece descriptions for use in the PGN Piece tag:
-    // dump all engine defined pieces, and pieces with non-standard names,
-    // but suppress black pieces that are the same as their white counterpart
-    ChessSquare p;
-    static char buf[MSG_SIZ], s[2];
-    char *m, *pieceName = defaultName;
-    int len, c, d;
-    *buf = NULLCHAR;
-    if(!pieceDefs) return "";
-    if(gameInfo.variant == VariantChu) return ""; // for now don't do this for Chu Shogi
-    if(gameInfo.variant == VariantShogi) pieceName = shogiName;
-    if(gameInfo.variant == VariantXiangqi) pieceName = xqName;
-    for(p=WhitePawn; p<EmptySquare; p++) {
-       if((c = pieceToChar[p]) == '.' || c == '~') continue;  // does not participate
-       m = pieceDesc[p]; d = (c == '+' ? pieceToChar[DEMOTED(p)] : c);
-       if(p >= BlackPawn && pieceToChar[BLACK_TO_WHITE p] == (c & ~32)
-             && (c != '+' || pieceToChar[DEMOTED(BLACK_TO_WHITE p)] == d)) {// black member of normal pair
-           char *wm = pieceDesc[BLACK_TO_WHITE p];
-           if(!m && !wm || m && wm && !strcmp(wm, m)) continue;            // moves as a white piece
-       } else                                                              // white or unpaired black
-       if((p < BlackPawn || CharToPiece(d & ~32) != EmptySquare) &&        // white or lone black
-          !pieceDesc[p] /*&& pieceName[p] == c*/) continue; // orthodox piece known by its usual name
-// TODO: listing pieces because of unusual name can only be done if we have accurate Betza of all defaults
-       if(!m) m = defaultDesc[p];
-       if(!m) continue;
-       len = strlen(buf);
-       *s = (d > 128 ? SUFFIXES[d-128>>6] : 0); d = 64 + (d & 63);
-       snprintf(buf+len, MSG_SIZ-len, "%s%s%c%s:%s", len ? ";" : "", c == '+' ? "+" : "", d, s, m);
-    }
-    return buf;
-}
-
-int
-LoadPieceDesc (char *s)
-{
-    ChessSquare piece;
-    static char suf[] = SUFFIXES;
-    char *r, *p, *q = s;
-    int ok = TRUE, promoted, c;
-    while(q && *s) {
-       p = s;
-       q = strchr(s, ';');
-       if(q) *q = 0, s = q+1;
-       if(*p == '+') promoted = 1, p++; else promoted = 0;
-       c = *p++;
-       if(!c) { ok = FALSE; continue; } // bad syntax
-       if(*p && (r = strchr(suf, *p))) c += 64*(r - suf + 1), p++;
-       if(*p++ != ':') { ok = FALSE; continue; } // bad syntax
-       if(!strcmp(p, "(null)")) continue; // handle bug in writing of XBoard 4.8.0
-        piece = CharToPiece(c);
-       if(piece >= EmptySquare) { ok = FALSE; continue; } // non-existent piece
-       if(promoted) {
-           piece = promoPartner[piece];
-           if(pieceToChar[piece] != '+') { ok = FALSE; continue; } // promoted form does not exist
-       }
-       ASSIGN(pieceDesc[piece], p);
-       if(piece < BlackPawn && (pieceToChar[WHITE_TO_BLACK piece] == pieceToChar[piece] + 32 || promoted)) {
-           ASSIGN(pieceDesc[WHITE_TO_BLACK piece], p);
-       }
-       pieceDefs = TRUE;
-       if(q) *q = ';';
-    }
-    return ok;
-}
-
-// [HGM] gen: configurable move generation from Betza notation sent by engine.
-// Some notes about two-leg moves: GenPseudoLegal() works in two modes, depending on whether a 'kill-
-// square has been set: without one is generates all moves, and a global int legNr flags in bits 0 and 1
-// if the move has 1 or 2 legs. Only the marking of squares makes use of this info, by only marking
-// target squares of leg 1 (rejecting null move). A dummy move with MoveType 'FirstLeg' to the relay square
-// is generated, so a cyan marker can be put there, and other functions can ignore such a move. When the
-// user selects this square, it becomes the kill-square. Once a kill-square is set, only 2-leg moves are
-// generated that use that square as relay, plus 1-leg moves, so the 1-leg move that goes to the kill-square
-// can be marked during 2nd-leg entry to terminate the move there. For judging the pseudo-legality of the
-// 2nd leg, the from-square has to be considered empty, although the moving piece is still on it.
-
-Boolean pieceDefs;
-
-//  alphabet      "abcdefghijklmnopqrstuvwxyz"
-char symmetry[] = "FBNW.FFW.NKN.NW.QR....W..N";
-char xStep[]    = "2110.130.102.10.00....0..2";
-char yStep[]    = "2132.133.313.20.11....1..3";
-char dirType[]  = "01000104000200000260050000";
-char upgrade[]  = "AFCD.BGH.JQL.NO.KW....R..Z";
-char rotate[]   = "DRCA.WHG.JKL.NO.QB....F..Z";
-
-//  alphabet   "a b    c d e f    g h    i j k l    m n o p q r    s    t u v    w x y z "
-int dirs1[] = { 0,0x3C,0,0,0,0xC3,0,0,   0,0,0,0xF0,0,0,0,0,0,0x0F,0   ,0,0,0   ,0,0,0,0 };
-int dirs2[] = { 0,0x18,0,0,0,0x81,0,0xFF,0,0,0,0x60,0,0,0,0,0,0x06,0x66,0,0,0x99,0,0,0,0 };
-int dirs3[] = { 0,0x38,0,0,0,0x83,0,0xFF,0,0,0,0xE0,0,0,0,0,0,0x0E,0xEE,0,0,0xBB,0,0,0,0 };
-int dirs4[] = { 0,0x10,0,0,0,0x01,0,0xFF,0,0,0,0x40,0,0,0,0,0,0x04,0x44,0,0,0x11,0,0,0,0 };
-
-int rot[][4] = { // rotation matrices for each direction
-  { 1, 0, 0, 1 },
-  { 0, 1, 1, 0 },
-  { 0, 1,-1, 0 },
-  { 1, 0, 0,-1 },
-  {-1, 0, 0,-1 },
-  { 0,-1,-1, 0 },
-  { 0,-1, 1, 0 },
-  {-1, 0, 0, 1 }
-};
-
-void
-OK (Board board, int flags, ChessMove kind, int rf, int ff, int rt, int ft, VOIDSTAR cl)
-{
-    (*(int*)cl)++;
-}
-
-void
-MovesFromString (Board board, int flags, int f, int r, int tx, int ty, int angle, int range, char *desc, MoveCallback cb, VOIDSTAR cl)
-{
-    char buf[80], *p = desc, *atom = NULL;
-    int mine, his, dir, bit, occup, i, ep, promoRank = -1;
-    ChessMove promo= NormalMove; ChessSquare pc = board[r][f];
-    if(pc == DarkSquare) return; // this is not a piece, but a 'hole' in the board
-    if(flags & F_WHITE_ON_MOVE) his = 2, mine = 1; else his = 1, mine = 2;
-    if(pc == WhitePawn || pc == WhiteLance) promo = WhitePromotion, promoRank = BOARD_HEIGHT-1; else
-    if(pc == BlackPawn || pc == BlackLance) promo = BlackPromotion, promoRank = 0;
-    while(*p) {                  // more moves to go
-       int expo = -1, dx, dy, x, y, mode, dirSet, ds2=0, retry=0, initial=0, jump=1, skip = 0, all = 0;
-       char *cont = NULL;
-       while(*p == 'i') initial++, desc = ++p;
-       while(islower(*p)) p++;  // skip prefixes
-       if(!isupper(*p)) return; // syntax error: no atom
-       dx = xStep[*p-'A'] - '0';// step vector of atom
-       dy = yStep[*p-'A'] - '0';
-       dirSet = 0;              // build direction set based on atom symmetry
-       switch(symmetry[*p-'A']) {
-         case 'B': expo = 0;    // bishop, slide
-         case 'F': all = 0xAA;  // diagonal atom (degenerate 4-fold)
-                   if(tx >= 0) goto king;        // continuation legs specified in K/Q system!
-                   while(islower(*desc) && (i = dirType[*desc-'a']) != '0') {
-                       int b = dirs1[*desc-'a']; // use wide version
-                       if( islower(desc[1]) &&
-                                ((i | dirType[desc[1]-'a']) & 3) == 3) {   // combinable (perpendicular dim)
-                           b = dirs1[*desc-'a'] & dirs1[desc[1]-'a'];      // intersect wide & perp wide
-                           desc += 2;
-                       } else desc++;
-                       dirSet |= b;
-                   }
-                   dirSet &= 0xAA; if(!dirSet) dirSet = 0xAA;
-                   break;
-         case 'R': expo = 0;    // rook, slide
-         case 'W': all = 0x55;  // orthogonal atom (non-deg 4-fold)
-                   if(tx >= 0) goto king;        // continuation legs specified in K/Q system!
-                   while(islower(*desc) && (dirType[*desc-'a'] & ~4) != '0') dirSet |= dirs2[*desc++-'a'];
-                   dirSet &= 0x55; if(!dirSet) dirSet = 0x55;
-                   dirSet = (dirSet << angle | dirSet >> 8-angle) & 255;   // re-orient direction system
-                   break;
-         case 'N': all = 0xFF;  // oblique atom (degenerate 8-fold)
-                   if(tx >= 0) goto king;        // continuation legs specified in K/Q system!
-                   if(*desc == 'h') {            // chiral direction sets 'hr' and 'hl'
-                       dirSet = (desc[1] == 'r' ? 0x55 :  0xAA); desc += 2;
-                   } else
-                   while(islower(*desc) && (i = dirType[*desc-'a']) != '0') {
-                       int b = dirs2[*desc-'a']; // when alone, use narrow version
-                       if(desc[1] == 'h') b = dirs1[*desc-'a'], desc += 2; // dirs1 is wide version
-                       else if(*desc == desc[1] || islower(desc[1]) && i < '4'
-                               && ((i | dirType[desc[1]-'a']) & 3) == 3) { // combinable (perpendicular dim or same)
-                           b = dirs1[*desc-'a'] & dirs2[desc[1]-'a'];      // intersect wide & perp narrow
-                           desc += 2;
-                       } else desc++;
-                       dirSet |= b;
-                   }
-                   if(!dirSet) dirSet = 0xFF;
-                   break;
-         case 'Q': expo = 0;    // queen, slide
-         case 'K': all = 0xFF;  // non-deg (pseudo) 8-fold
-         king:
-                   while(islower(*desc) && (i = dirType[*desc-'a']) != '0') {
-                       int b = dirs4[*desc-'a'];    // when alone, use narrow version
-                       if(desc[1] == *desc) desc++; // doubling forces alone
-                       else if(islower(desc[1]) && i < '4'
-                               && ((i | dirType[desc[1]-'a']) & 3) == 3) { // combinable (perpendicular dim or same)
-                           b = dirs3[*desc-'a'] & dirs3[desc[1]-'a'];      // intersect wide & perp wide
-                           desc += 2;
-                       } else desc++;
-                       dirSet |= b;
-                   }
-                   if(!dirSet) dirSet = (tx < 0 ? 0xFF                     // default is all directions, but in continuation leg
-                                         : all == 0xFF ? 0xEF : 0x45);     // omits backward, and for 4-fold atoms also diags
-                   dirSet = (dirSet << angle | dirSet >> 8-angle) & 255;   // re-orient direction system
-                   ds2 = dirSet & 0xAA;          // extract diagonal directions
-                   if(dirSet &= 0x55)            // start with orthogonal moves, if present
-                        retry = 1, dx = 0;       // and schedule the diagonal moves for later
-                   else dx = dy, dirSet = ds2;   // if no orthogonal directions, do diagonal immediately
-                   break;       // should not have direction indicators
-         default:  return;      // syntax error: invalid atom
-       }
-       if(mine == 2 && tx < 0) dirSet = dirSet >> 4 | dirSet << 4 & 255;   // invert black moves
-       mode = 0;                // build mode mask
-       if(*desc == 'm') mode |= 4, desc++;           // move to empty
-       if(*desc == 'c') mode |= his, desc++;         // capture foe
-       if(*desc == 'd') mode |= mine, desc++;        // destroy (capture friend)
-       if(*desc == 'e') mode |= 8, desc++;           // e.p. capture last mover
-       if(*desc == 't') mode |= 16, desc++;          // exclude enemies as hop platform ('test')
-       if(*desc == 'p') mode |= 32, desc++;          // hop over occupied
-       if(*desc == 'g') mode |= 64, desc++;          // hop and toggle range
-       if(*desc == 'o') mode |= 128, desc++;         // wrap around cylinder board
-       if(*desc == 'y') mode |= 512, desc++;         // toggle range on empty square
-       if(*desc == 'n') jump = 0, desc++;            // non-jumping
-       while(*desc == 'j') jump++, desc++;           // must jump (on B,R,Q: skip first square)
-       if(*desc == 'a') cont = ++desc;               // move again after doing what preceded it
-       if(isdigit(*++p)) expo = atoi(p++);           // read exponent
-       if(expo > 9) p++;                             // allow double-digit
-       desc = p;                                     // this is start of next move
-       if(initial == 2) { if(board[r][f] != initialPosition[r-2*his+3][f]) continue; initial = 0; } else
-       if(initial && !range) {
-               if(   (board[r][f] != initialPosition[r][f] ||
-                      r == 0              && board[TOUCHED_W] & 1<<f ||
-                      r == BOARD_HEIGHT-1 && board[TOUCHED_B] & 1<<f   )) continue;
-               initial = 0;
-       }
-       if(expo > 0 && dx == 0 && dy == 0) {          // castling indicated by O + number
-           mode |= 1024; dy = 1;
-       }
-       if(expo < 0) expo = 1;                        // use 1 for default
-        if(!cont) {
-           if(!(mode & 15)) mode |= his + 4;         // no mode spec, use default = mc
-       } else {
-           strncpy(buf, cont, 80); cont = buf;       // copy next leg(s), so we can modify
-           atom = buf; while(islower(*atom)) atom++; // skip to atom
-           if(mode & 32) mode ^= 256 + 32;           // in non-final legs 'p' means 'pass through'
-           if(mode & 64 + 512) {
-               mode |= 256;                          // and 'g' too, but converts leaper <-> slider
-               if(mode & 512) mode ^= 0x304;         // and 'y' is m-like 'g'
-               *atom = upgrade[*atom-'A'];           // replace atom, BRQ <-> FWK
-               atom[1] = atom[2] = '\0';             // make sure any old range is stripped off
-               if(expo == 1) atom[1] = '0';          // turn other leapers into riders 
-           }
-           if(!(mode & 0x30F)) mode |= 4;            // and default of this leg = m
-       }
-       if(dy == 1) skip = jump - 1, jump = 1;        // on W & F atoms 'j' = skip first square
-        do {
-         for(dir=0, bit=1; dir<8; dir++, bit += bit) { // loop over directions
-           int i = expo, j = skip, hop = mode, vx, vy, loop = 0;
-           if(!(bit & dirSet)) continue;             // does not move in this direction
-           if(dy != 1 || mode & 1024) j = 0;         // 
-           vx = dx*rot[dir][0] + dy*rot[dir][1];     // rotate step vector
-           vy = dx*rot[dir][2] + dy*rot[dir][3];
-           if(tx < 0) x = f, y = r;                  // start square
-           else      x = tx, y = ty;                 // from previous to-square if continuation
-           do {                                      // traverse ray
-               x += vx; y += vy;                     // step to next square
-               if(y < 0 || y >= BOARD_HEIGHT) break; // vertically off-board: always done
-               if(x <  BOARD_LEFT) { if(mode & 128) x += BOARD_RGHT - BOARD_LEFT, loop++; else break; }
-               if(x >= BOARD_RGHT) { if(mode & 128) x -= BOARD_RGHT - BOARD_LEFT, loop++; else break; }
-               if(j) { j--; continue; }              // skip irrespective of occupation
-               if(board[y][x] == DarkSquare) break;  // black squares are supposed to be off board
-               if(!jump    && board[y - vy + vy/2][x - vx + vx/2] != EmptySquare) break; // blocked
-               if(jump > 1 && board[y - vy + vy/2][x - vx + vx/2] == EmptySquare) break; // no hop
-               if(x == f && y == r && !loop) occup = 4;     else // start square counts as empty (if not around cylinder!)
-               if(board[y][x] < BlackPawn)   occup = 0x101; else
-               if(board[y][x] < EmptySquare) occup = 0x102; else
-                                             occup = 4;
-               if(initial && expo - i + 1 != range) { if(occup == 4) continue; else break; }
-               if(cont) {                            // non-final leg
-                 if(mode&16 && his&occup) occup &= 3;// suppress hopping foe in t-mode
-                 if(occup & mode) {                  // valid intermediate square, do continuation
-                   char origAtom = *atom;
-                   int rg = (expo != 1 ? expo - i + 1 : range);   // pass length of last *slider* leg
-                   if(!(bit & all)) *atom = rotate[*atom - 'A']; // orth-diag interconversion to make direction valid
-                   if(occup & mode & 0x104)          // no side effects, merge legs to one move
-                       MovesFromString(board, flags, f, r, x, y, dir, rg, cont, cb, cl);
-                   if(occup & mode & 3 && (killX < 0 || kill2X < 0 && (legNr > 1 || killX == x && killY == y) ||
-                                           (legNr == 1 ? kill2X == x && kill2Y == y : killX == x && killY == y))) {     // destructive first leg
-                       int cnt = 0;
-                       legNr <<= 1;
-                       MovesFromString(board, flags, f, r, x, y, dir, rg, cont, &OK, &cnt); // count possible continuations
-                       legNr >>= 1;
-                       if(cnt) {                                                            // and if there are
-                           if(legNr & 1 ? killX < 0 : kill2X < 0) cb(board, flags, FirstLeg, r, f, y, x, cl);     // then generate their first leg
-                           legNr <<= 1;
-                           MovesFromString(board, flags, f, r, x, y, dir, rg, cont, cb, cl);
-                           legNr >>= 1;
-                       }
-                   }
-                   *atom = origAtom;        // undo any interconversion
-                 }
-                 if(occup != 4) break;      // occupied squares always terminate the leg
-                 continue;
-               }
-               if(hop & 32+64) { if(occup != 4) { if(hop & 64 && i != 1) i = 2; hop &= 31; } continue; } // hopper
-               ep = board[EP_RANK];
-               if(mode & 8 && occup == 4 && board[EP_FILE] == x && (y == (ep & 127) || y - vy == ep - 128)) { // to e.p. square (or 2nd e.p. square)
-                   cb(board, flags, mine == 1 ? WhiteCapturesEnPassant : BlackCapturesEnPassant, r, f, y, x, cl);
-               }
-               if(mode & 1024) {            // castling
-                   i = 2;                   // kludge to elongate move indefinitely
-                   if(occup == 4) continue; // skip empty squares
-                   if((x == BOARD_LEFT + skip || x > BOARD_LEFT + skip && vx < 0 && board[y][x-1-skip] == DarkSquare)
-                                                                   && board[y][x] == initialPosition[y][x]) { // reached initial corner piece
-                     if(pc != WhiteKing && pc != BlackKing || expo == 1) { // non-royal castling (to be entered as two-leg move via 'Rook')
-                       if(killX < 0) cb(board, flags, FirstLeg,   r, f, y, x, cl); if(killX < f)
-                       legNr <<= 1,  cb(board, flags, NormalMove, r, f, y, f - expo, cl), legNr >>= 1;
-                     } else
-                       cb(board, flags, mine == 1 ? WhiteQueenSideCastle : BlackQueenSideCastle, r, f, y, f - expo, cl);
-                   }
-                   if((x == BOARD_RGHT-1-skip || x < BOARD_RGHT-1-skip && vx > 0 && board[y][x+1+skip] == DarkSquare)
-                                                                   && board[y][x] == initialPosition[y][x]) {
-                     if(pc != WhiteKing && pc != BlackKing || expo == 1) {
-                       if(killX < 0) cb(board, flags, FirstLeg,   r, f, y, x, cl); if(killX > f)
-                       legNr <<= 1,  cb(board, flags, NormalMove, r, f, y, f + expo, cl), legNr >>= 1;
-                     } else
-                       cb(board, flags, mine == 1 ? WhiteKingSideCastle : BlackKingSideCastle, r, f, y, f + expo, cl);
-                   }
-                   break;
-               }
-               if(mode & 16 && (board[y][x] == WhiteKing || board[y][x] == BlackKing)) break; // tame piece, cannot capture royal
-               if(occup & mode) cb(board, flags, y == promoRank ? promo : NormalMove, r, f, y, x, cl); // allowed, generate
-               if(occup != 4) break; // not valid transit square
-           } while(--i);
-         }
-         dx = dy; dirSet = ds2;      // prepare for diagonal moves of K,Q
-       } while(retry-- && ds2);      // and start doing them
-       if(tx >= 0) break;            // don't do other atoms in continuation legs
-    }
-} // next atom
-
-// [HGM] move generation now based on hierarchy of subroutines for rays and combinations of rays
-
-void
-SlideForward (Board board, int flags, int rf, int ff, MoveCallback callback, VOIDSTAR closure)
-{
-  int i, rt, ft = ff;
-  for (i = 1;; i++) {
-      rt = rf + i;
-      if (rt >= BOARD_HEIGHT) break;
-      if (SameColor(board[rf][ff], board[rt][ft])) break;
-      callback(board, flags, NormalMove, rf, ff, rt, ft, closure);
-      if (board[rt][ft] != EmptySquare) break;
-  }
-}
-
-void
-SlideBackward (Board board, int flags, int rf, int ff, MoveCallback callback, VOIDSTAR closure)
-{
-  int i, rt, ft = ff;
-  for (i = 1;; i++) {
-      rt = rf - i;
-      if (rt < 0) break;
-      if (SameColor(board[rf][ff], board[rt][ft])) break;
-      callback(board, flags, NormalMove, rf, ff, rt, ft, closure);
-      if (board[rt][ft] != EmptySquare) break;
-  }
-}
-
-void
-SlideVertical (Board board, int flags, int rf, int ff, MoveCallback callback, VOIDSTAR closure)
-{
-  SlideForward(board, flags, rf, ff, callback, closure);
-  SlideBackward(board, flags, rf, ff, callback, closure);
-}
-
-void
-SlideSideways (Board board, int flags, int rf, int ff, MoveCallback callback, VOIDSTAR closure)
-{
-  int i, s, rt = rf, ft;
-  for(s = -1; s <= 1; s+= 2) {
-    for (i = 1;; i++) {
-      ft = ff + i*s;
-      if (ft < BOARD_LEFT || ft >= BOARD_RGHT) break;
-      if (SameColor(board[rf][ff], board[rt][ft])) break;
-      callback(board, flags, NormalMove, rf, ff, rt, ft, closure);
-      if (board[rt][ft] != EmptySquare) break;
-    }
-  }
-}
-
-void
-SlideDiagForward (Board board, int flags, int rf, int ff, MoveCallback callback, VOIDSTAR closure)
-{
-  int i, s, rt, ft;
-  for(s = -1; s <= 1; s+= 2) {
-    for (i = 1;; i++) {
-      rt = rf + i;
-      ft = ff + i * s;
-      if (rt >= BOARD_HEIGHT || ft < BOARD_LEFT || ft >= BOARD_RGHT) break;
-      if (SameColor(board[rf][ff], board[rt][ft])) break;
-      callback(board, flags, NormalMove, rf, ff, rt, ft, closure);
-      if (board[rt][ft] != EmptySquare) break;
-    }
-  }
-}
-
-void
-SlideDiagBackward (Board board, int flags, int rf, int ff, MoveCallback callback, VOIDSTAR closure)
-{
-  int i, s, rt, ft;
-  for(s = -1; s <= 1; s+= 2) {
-    for (i = 1;; i++) {
-      rt = rf - i;
-      ft = ff + i * s;
-      if (rt < 0 || ft < BOARD_LEFT || ft >= BOARD_RGHT) break;
-      if (SameColor(board[rf][ff], board[rt][ft])) break;
-      callback(board, flags, NormalMove, rf, ff, rt, ft, closure);
-      if (board[rt][ft] != EmptySquare) break;
-    }
-  }
-}
-
-void
-Rook (Board board, int flags, int rf, int ff, MoveCallback callback, VOIDSTAR closure)
-{
-  SlideVertical(board, flags, rf, ff, callback, closure);
-  SlideSideways(board, flags, rf, ff, callback, closure);
-}
-
-void
-Bishop (Board board, int flags, int rf, int ff, MoveCallback callback, VOIDSTAR closure)
-{
-  SlideDiagForward(board, flags, rf, ff, callback, closure);
-  SlideDiagBackward(board, flags, rf, ff, callback, closure);
-}
-
-void
-Sting (Board board, int flags, int rf, int ff, int dy, int dx, MoveCallback callback, VOIDSTAR closure)
-{ // Lion-like move of Horned Falcon and Soaring Eagle
-  int ft = ff + dx, rt = rf + dy;
-  if (rt < 0 || rt >= BOARD_HEIGHT || ft < BOARD_LEFT || ft >= BOARD_RGHT) return;
-  legNr += 2;
-  if (!SameColor(board[rf][ff], board[rt][ft]))
-    callback(board, flags, killX < 0 && board[rt][ft] != EmptySquare ? FirstLeg : NormalMove, rf, ff, rt, ft, closure);
-  legNr -= 2;
-  ft += dx; rt += dy;
-  if (rt < 0 || rt >= BOARD_HEIGHT || ft < BOARD_LEFT || ft >= BOARD_RGHT) return;
-  legNr += 2;
-  if (!SameColor(board[rf][ff], board[rt][ft]))
-    callback(board, flags, NormalMove, rf, ff, rt, ft, closure);
-  if (!SameColor(board[rf][ff], board[rf+dy][ff+dx]))
-    callback(board, flags, NormalMove, rf, ff, rf, ff, closure);
-  legNr -= 2;
-}
-
-void
-StepForward (Board board, int flags, int rf, int ff, MoveCallback callback, VOIDSTAR closure)
-{
-  int ft = ff, rt = rf + 1;
-  if (rt >= BOARD_HEIGHT) return;
-  if (SameColor(board[rf][ff], board[rt][ft])) return;
-  callback(board, flags, NormalMove, rf, ff, rt, ft, closure);
-}
-
-void
-StepBackward (Board board, int flags, int rf, int ff, MoveCallback callback, VOIDSTAR closure)
-{
-  int ft = ff, rt = rf - 1;
-  if (rt < 0) return;
-  if (SameColor(board[rf][ff], board[rt][ft])) return;
-  callback(board, flags, NormalMove, rf, ff, rt, ft, closure);
-}
-
-void
-StepSideways (Board board, int flags, int rf, int ff, MoveCallback callback, VOIDSTAR closure)
-{
-  int ft, rt = rf;
-  ft = ff + 1;
-  if (!(rt >= BOARD_HEIGHT || ft >= BOARD_RGHT) && !SameColor(board[rf][ff], board[rt][ft]))
-      callback(board, flags, NormalMove, rf, ff, rt, ft, closure);
-  ft = ff - 1;
-  if (!(rt >= BOARD_HEIGHT || ft < BOARD_LEFT) && !SameColor(board[rf][ff], board[rt][ft]))
-      callback(board, flags, NormalMove, rf, ff, rt, ft, closure);
-}
-
-void
-StepDiagForward (Board board, int flags, int rf, int ff, MoveCallback callback, VOIDSTAR closure)
-{
-  int ft, rt = rf + 1;
-  if (rt >= BOARD_HEIGHT) return;
-  ft = ff + 1;
-  if (!(rt >= BOARD_HEIGHT || ft >= BOARD_RGHT) && !SameColor(board[rf][ff], board[rt][ft]))
-      callback(board, flags, NormalMove, rf, ff, rt, ft, closure);
-  ft = ff - 1;
-  if (!(rt >= BOARD_HEIGHT || ft < BOARD_LEFT) && !SameColor(board[rf][ff], board[rt][ft]))
-      callback(board, flags, NormalMove, rf, ff, rt, ft, closure);
-}
-
-void
-StepDiagBackward (Board board, int flags, int rf, int ff, MoveCallback callback, VOIDSTAR closure)
-{
-  int ft, rt = rf - 1;
-  if(rt < 0) return;
-  ft = ff + 1;
-  if (!(rt < 0 || ft >= BOARD_RGHT) && !SameColor(board[rf][ff], board[rt][ft]))
-      callback(board, flags, NormalMove, rf, ff, rt, ft, closure);
-  ft = ff - 1;
-  if (!(rt < 0 || ft < BOARD_LEFT) && !SameColor(board[rf][ff], board[rt][ft]))
-      callback(board, flags, NormalMove, rf, ff, rt, ft, closure);
-}
-
-void
-StepVertical (Board board, int flags, int rf, int ff, MoveCallback callback, VOIDSTAR closure)
-{
-  StepForward(board, flags, rf, ff, callback, closure);
-  StepBackward(board, flags, rf, ff, callback, closure);
-}
-
-void
-Ferz (Board board, int flags, int rf, int ff, MoveCallback callback, VOIDSTAR closure)
-{
-  StepDiagForward(board, flags, rf, ff, callback, closure);
-  StepDiagBackward(board, flags, rf, ff, callback, closure);
-}
-
-void
-Wazir (Board board, int flags, int rf, int ff, MoveCallback callback, VOIDSTAR closure)
-{
-  StepVertical(board, flags, rf, ff, callback, closure);
-  StepSideways(board, flags, rf, ff, callback, closure);
-}
-
-void
-Knight (Board board, int flags, int rf, int ff, MoveCallback callback, VOIDSTAR closure)
-{
-    int i, j, s, rt, ft;
-    for (i = -1; i <= 1; i += 2)
-       for (j = -1; j <= 1; j += 2)
-           for (s = 1; s <= 2; s++) {
-               rt = rf + i*s;
-               ft = ff + j*(3-s);
-               if (!(rt < 0 || rt >= BOARD_HEIGHT || ft < BOARD_LEFT || ft >= BOARD_RGHT)
-                   && ( gameInfo.variant != VariantXiangqi || board[rf+i*(s-1)][ff+j*(2-s)] == EmptySquare)
-                   && !SameColor(board[rf][ff], board[rt][ft]))
-                   callback(board, flags, NormalMove, rf, ff, rt, ft, closure);
-           }
-}
-
-/* Call callback once for each pseudo-legal move in the given
-   position, except castling moves. A move is pseudo-legal if it is
-   legal, or if it would be legal except that it leaves the king in
-   check.  In the arguments, epfile is EP_NONE if the previous move
-   was not a double pawn push, or the file 0..7 if it was, or
-   EP_UNKNOWN if we don't know and want to allow all e.p. captures.
-   Promotion moves generated are to Queen only.
-*/
-void
-GenPseudoLegal (Board board, int flags, MoveCallback callback, VOIDSTAR closure, ChessSquare filter)
-// speed: only do moves with this piece type
-{
-    int rf, ff;
-    int i, j, d, s, fs, rs, rt, ft, m;
-    int epfile = (signed char)board[EP_STATUS]; // [HGM] gamestate: extract ep status from board
-    int promoRank = gameInfo.variant == VariantMakruk || gameInfo.variant == VariantGrand || gameInfo.variant == VariantChuChess ? 3 : 1;
-
-    for (rf = 0; rf < BOARD_HEIGHT; rf++)
-      for (ff = BOARD_LEFT; ff < BOARD_RGHT; ff++) {
-          ChessSquare piece;
-
-         if(board[rf][ff] == EmptySquare) continue;
-         if ((flags & F_WHITE_ON_MOVE) != (board[rf][ff] < BlackPawn)) continue; // [HGM] speed: wrong color
-          m = 0; piece = board[rf][ff];
-          if(PieceToChar(piece) == '~')
-                 piece = (ChessSquare) ( DEMOTED(piece) );
-          if(filter != EmptySquare && piece != filter) continue;
-          if(pieceDefs && pieceDesc[piece]) { // [HGM] gen: use engine-defined moves
-              MovesFromString(board, flags, ff, rf, -1, -1, 0, 0, pieceDesc[piece], callback, closure);
-              continue;
-          }
-          if(IS_SHOGI(gameInfo.variant))
-                 piece = (ChessSquare) ( SHOGI piece );
-
-          switch ((int)piece) {
-            /* case EmptySquare: [HGM] this is nonsense, and conflicts with Shogi cases */
-           default:
-             /* can't happen ([HGM] except for faries...) */
-             break;
-
-             case WhitePawn:
-              if(gameInfo.variant == VariantXiangqi) {
-                  /* [HGM] capture and move straight ahead in Xiangqi */
-                  if (rf < BOARD_HEIGHT-1 &&
-                           !SameColor(board[rf][ff], board[rf + 1][ff]) ) {
-                           callback(board, flags, NormalMove,
-                                    rf, ff, rf + 1, ff, closure);
-                  }
-                  /* and move sideways when across the river */
-                  for (s = -1; s <= 1; s += 2) {
-                      if (rf >= BOARD_HEIGHT>>1 &&
-                          ff + s >= BOARD_LEFT && ff + s < BOARD_RGHT &&
-                          !WhitePiece(board[rf][ff+s]) ) {
-                           callback(board, flags, NormalMove,
-                                    rf, ff, rf, ff+s, closure);
-                      }
-                  }
-                  break;
-              }
-              if (rf < BOARD_HEIGHT-1 && board[rf + 1][ff] == EmptySquare) {
-                 callback(board, flags,
-                          rf >= BOARD_HEIGHT-1-promoRank ? WhitePromotion : NormalMove,
-                          rf, ff, rf + 1, ff, closure);
-             }
-             if (rf <= (BOARD_HEIGHT>>1)-3 && board[rf+1][ff] == EmptySquare && // [HGM] grand: also on 3rd rank on 10-board
-                  gameInfo.variant != VariantShatranj && /* [HGM] */
-                  gameInfo.variant != VariantCourier  && /* [HGM] */
-                  board[rf+2][ff] == EmptySquare ) {
-                      callback(board, flags, NormalMove,
-                               rf, ff, rf+2, ff, closure);
-             }
-             for (s = -1; s <= 1; s += 2) {
-                  if (rf < BOARD_HEIGHT-1 && ff + s >= BOARD_LEFT && ff + s < BOARD_RGHT &&
-                     ((flags & F_KRIEGSPIEL_CAPTURE) ||
-                      BlackPiece(board[rf + 1][ff + s]))) {
-                     callback(board, flags,
-                              rf >= BOARD_HEIGHT-1-promoRank ? WhitePromotion : NormalMove,
-                              rf, ff, rf + 1, ff + s, closure);
-                 }
-                 if (rf >= BOARD_HEIGHT+1>>1) {// [HGM] grand: 4th & 5th rank on 10-board
-                      if (ff + s >= BOARD_LEFT && ff + s < BOARD_RGHT &&
-                         (epfile == ff + s || epfile == EP_UNKNOWN) && rf < BOARD_HEIGHT-3 &&
-                          board[rf][ff + s] == BlackPawn &&
-                          board[rf+1][ff + s] == EmptySquare) {
-                         callback(board, flags, WhiteCapturesEnPassant,
-                                  rf, ff, rf+1, ff + s, closure);
-                     }
-                 }
-             }
-             break;
-
-           case BlackPawn:
-              if(gameInfo.variant == VariantXiangqi) {
-                  /* [HGM] capture straight ahead in Xiangqi */
-                  if (rf > 0 && !SameColor(board[rf][ff], board[rf - 1][ff]) ) {
-                           callback(board, flags, NormalMove,
-                                    rf, ff, rf - 1, ff, closure);
-                  }
-                  /* and move sideways when across the river */
-                  for (s = -1; s <= 1; s += 2) {
-                      if (rf < BOARD_HEIGHT>>1 &&
-                          ff + s >= BOARD_LEFT && ff + s < BOARD_RGHT &&
-                          !BlackPiece(board[rf][ff+s]) ) {
-                           callback(board, flags, NormalMove,
-                                    rf, ff, rf, ff+s, closure);
-                      }
-                  }
-                  break;
-              }
-             if (rf > 0 && board[rf - 1][ff] == EmptySquare) {
-                 callback(board, flags,
-                          rf <= promoRank ? BlackPromotion : NormalMove,
-                          rf, ff, rf - 1, ff, closure);
-             }
-             if (rf >= (BOARD_HEIGHT+1>>1)+2 && board[rf-1][ff] == EmptySquare && // [HGM] grand
-                  gameInfo.variant != VariantShatranj && /* [HGM] */
-                  gameInfo.variant != VariantCourier  && /* [HGM] */
-                 board[rf-2][ff] == EmptySquare) {
-                 callback(board, flags, NormalMove,
-                          rf, ff, rf-2, ff, closure);
-             }
-             for (s = -1; s <= 1; s += 2) {
-                  if (rf > 0 && ff + s >= BOARD_LEFT && ff + s < BOARD_RGHT &&
-                     ((flags & F_KRIEGSPIEL_CAPTURE) ||
-                      WhitePiece(board[rf - 1][ff + s]))) {
-                     callback(board, flags,
-                              rf <= promoRank ? BlackPromotion : NormalMove,
-                              rf, ff, rf - 1, ff + s, closure);
-                 }
-                 if (rf < BOARD_HEIGHT>>1) {
-                      if (ff + s >= BOARD_LEFT && ff + s < BOARD_RGHT &&
-                         (epfile == ff + s || epfile == EP_UNKNOWN) && rf > 2 &&
-                         board[rf][ff + s] == WhitePawn &&
-                         board[rf-1][ff + s] == EmptySquare) {
-                         callback(board, flags, BlackCapturesEnPassant,
-                                  rf, ff, rf-1, ff + s, closure);
-                     }
-                 }
-             }
-             break;
-
-            case WhiteUnicorn:
-            case BlackUnicorn:
-           case WhiteKnight:
-           case BlackKnight:
-             for (i = -1; i <= 1; i += 2)
-               for (j = -1; j <= 1; j += 2)
-                 for (s = 1; s <= 2; s++) {
-                     rt = rf + i*s;
-                     ft = ff + j*(3-s);
-                      if (!(rt < 0 || rt >= BOARD_HEIGHT || ft < BOARD_LEFT || ft >= BOARD_RGHT)
-                          && ( gameInfo.variant != VariantXiangqi || board[rf+i*(s-1)][ff+j*(2-s)] == EmptySquare)
-                          && !SameColor(board[rf][ff], board[rt][ft]))
-                     callback(board, flags, NormalMove,
-                              rf, ff, rt, ft, closure);
-                 }
-             break;
-
-            case SHOGI WhiteKnight:
-             for (s = -1; s <= 1; s += 2) {
-                  if (rf < BOARD_HEIGHT-2 && ff + s >= BOARD_LEFT && ff + s < BOARD_RGHT &&
-                      !SameColor(board[rf][ff], board[rf + 2][ff + s])) {
-                      callback(board, flags, NormalMove,
-                               rf, ff, rf + 2, ff + s, closure);
-                 }
-              }
-             break;
-
-            case SHOGI BlackKnight:
-             for (s = -1; s <= 1; s += 2) {
-                  if (rf > 1 && ff + s >= BOARD_LEFT && ff + s < BOARD_RGHT &&
-                      !SameColor(board[rf][ff], board[rf - 2][ff + s])) {
-                      callback(board, flags, NormalMove,
-                               rf, ff, rf - 2, ff + s, closure);
-                 }
-             }
-             break;
-
-            case WhiteCannon:
-            case BlackCannon:
-              for (d = 0; d <= 1; d++)
-                for (s = -1; s <= 1; s += 2) {
-                  m = 0;
-                 for (i = 1;; i++) {
-                     rt = rf + (i * s) * d;
-                     ft = ff + (i * s) * (1 - d);
-                      if (rt < 0 || rt >= BOARD_HEIGHT || ft < BOARD_LEFT || ft >= BOARD_RGHT) break;
-                      if (m == 0 && board[rt][ft] == EmptySquare)
-                                 callback(board, flags, NormalMove,
-                                          rf, ff, rt, ft, closure);
-                      if (m == 1 && board[rt][ft] != EmptySquare &&
-                          !SameColor(board[rf][ff], board[rt][ft]) )
-                                 callback(board, flags, NormalMove,
-                                          rf, ff, rt, ft, closure);
-                      if (board[rt][ft] != EmptySquare && m++) break;
-                  }
-                }
-             break;
-
-            /* Gold General (and all its promoted versions) . First do the */
-            /* diagonal forward steps, then proceed as normal Wazir        */
-            case SHOGI (PROMO WhitePawn):
-               if(gameInfo.variant == VariantShogi) goto WhiteGold;
-            case SHOGI (PROMO BlackPawn):
-               if(gameInfo.variant == VariantShogi) goto BlackGold;
-               SlideVertical(board, flags, rf, ff, callback, closure);
-               break;
-
-            case SHOGI (PROMO WhiteKnight):
-               if(gameInfo.variant == VariantShogi) goto WhiteGold;
-            case SHOGI BlackDrunk:
-            case SHOGI BlackAlfil:
-               Ferz(board, flags, rf, ff, callback, closure);
-               StepSideways(board, flags, rf, ff, callback, closure);
-               StepBackward(board, flags, rf, ff, callback, closure);
-               break;
-
-            case SHOGI (PROMO BlackKnight):
-               if(gameInfo.variant == VariantShogi) goto BlackGold;
-            case SHOGI WhiteDrunk:
-            case SHOGI WhiteAlfil:
-               Ferz(board, flags, rf, ff, callback, closure);
-               StepSideways(board, flags, rf, ff, callback, closure);
-               StepForward(board, flags, rf, ff, callback, closure);
-               break;
-
-
-            case SHOGI WhiteGnu:
-            case SHOGI BlackGnu:
-               if(gameInfo.variant == VariantShogi) goto BlackGold;
-               SlideVertical(board, flags, rf, ff, callback, closure);
-               Ferz(board, flags, rf, ff, callback, closure);
-               StepSideways(board, flags, rf, ff, callback, closure);
-               break;
-
-            case SHOGI (PROMO WhiteQueen):
-            case SHOGI WhiteTokin:
-            case SHOGI WhiteWazir:
-           WhiteGold:
-               StepDiagForward(board, flags, rf, ff, callback, closure);
-               Wazir(board, flags, rf, ff, callback, closure);
-               break;
-
-            case SHOGI (PROMO BlackQueen):
-            case SHOGI BlackTokin:
-            case SHOGI BlackWazir:
-            BlackGold:
-               StepDiagBackward(board, flags, rf, ff, callback, closure);
-               Wazir(board, flags, rf, ff, callback, closure);
-               break;
-
-            case WhiteWazir:
-            case BlackWazir:
-               Wazir(board, flags, rf, ff, callback, closure);
-               break;
-
-            case SHOGI WhiteMarshall:
-            case SHOGI BlackMarshall:
-               Ferz(board, flags, rf, ff, callback, closure);
-               for (d = 0; d <= 1; d++)
-                   for (s = -2; s <= 2; s += 4) {
-                       rt = rf + s * d;
-                       ft = ff + s * (1 - d);
-                       if (rt < 0 || rt >= BOARD_HEIGHT || ft < BOARD_LEFT || ft >= BOARD_RGHT) continue;
-                       if (!SameColor(board[rf][ff], board[rt][ft]) )
-                           callback(board, flags, NormalMove, rf, ff, rt, ft, closure);
-                   }
-               break;
-
-            case SHOGI WhiteAngel:
-            case SHOGI BlackAngel:
-               Wazir(board, flags, rf, ff, callback, closure);
-
-            case WhiteAlfil:
-            case BlackAlfil:
-                /* [HGM] support Shatranj pieces */
-                for (rs = -1; rs <= 1; rs += 2)
-                  for (fs = -1; fs <= 1; fs += 2) {
-                      rt = rf + 2 * rs;
-                      ft = ff + 2 * fs;
-                      if (!(rt < 0 || rt >= BOARD_HEIGHT || ft < BOARD_LEFT || ft >= BOARD_RGHT)
-                          && ( gameInfo.variant != VariantXiangqi ||
-                               board[rf+rs][ff+fs] == EmptySquare && (2*rf < BOARD_HEIGHT) == (2*rt < BOARD_HEIGHT) )
-
-                          && !SameColor(board[rf][ff], board[rt][ft]))
-                               callback(board, flags, NormalMove,
-                                        rf, ff, rt, ft, closure);
-                      if(gameInfo.variant == VariantShatranj || gameInfo.variant == VariantCourier ||
-                         gameInfo.variant == VariantChu      || gameInfo.variant == VariantXiangqi) continue; // classical Alfil
-                      rt = rf + rs; // in unknown variant we assume Modern Elephant, which can also do one step
-                      ft = ff + fs;
-                      if (!(rt < 0 || rt >= BOARD_HEIGHT || ft < BOARD_LEFT || ft >= BOARD_RGHT)
-                          && !SameColor(board[rf][ff], board[rt][ft]))
-                               callback(board, flags, NormalMove,
-                                        rf, ff, rt, ft, closure);
-                 }
-                if(gameInfo.variant == VariantSpartan)
-                   for(fs = -1; fs <= 1; fs += 2) {
-                      ft = ff + fs;
-                      if (!(ft < BOARD_LEFT || ft >= BOARD_RGHT) && board[rf][ft] == EmptySquare)
-                               callback(board, flags, NormalMove, rf, ff, rf, ft, closure);
-                   }
-                break;
-
-            /* Make Dragon-Horse also do Dababba moves outside Shogi, for better disambiguation in variant Fairy */
-           case WhiteCardinal:
-           case BlackCardinal:
-              if(gameInfo.variant == VariantChuChess) goto DragonHorse;
-              for (d = 0; d <= 1; d++) // Dababba moves that Rook cannot do
-                for (s = -2; s <= 2; s += 4) {
-                     rt = rf + s * d;
-                     ft = ff + s * (1 - d);
-                      if (rt < 0 || rt >= BOARD_HEIGHT || ft < BOARD_LEFT || ft >= BOARD_RGHT) continue;
-                     if (SameColor(board[rf][ff], board[rt][ft])) continue;
-                     callback(board, flags, NormalMove, rf, ff, rt, ft, closure);
-                 }
-
-            /* Shogi Dragon Horse has to continue with Wazir after Bishop */
-            case SHOGI WhiteCardinal:
-            case SHOGI BlackCardinal:
-            case SHOGI WhitePCardinal:
-            case SHOGI BlackPCardinal:
-            DragonHorse:
-               Bishop(board, flags, rf, ff, callback, closure);
-               Wazir(board, flags, rf, ff, callback, closure);
-               break;
-
-            /* Capablanca Archbishop continues as Knight                  */
-            case WhiteAngel:
-            case BlackAngel:
-               Knight(board, flags, rf, ff, callback, closure);
-
-            /* Shogi Bishops are ordinary Bishops */
-            case SHOGI WhiteBishop:
-            case SHOGI BlackBishop:
-            case SHOGI WhitePBishop:
-            case SHOGI BlackPBishop:
-           case WhiteBishop:
-           case BlackBishop:
-               Bishop(board, flags, rf, ff, callback, closure);
-               break;
-
-            /* Shogi Lance is unlike anything, and asymmetric at that */
-            case SHOGI WhiteQueen:
-              if(gameInfo.variant == VariantChu) goto doQueen;
-              for(i = 1;; i++) {
-                      rt = rf + i;
-                      ft = ff;
-                      if (rt >= BOARD_HEIGHT) break;
-                     if (SameColor(board[rf][ff], board[rt][ft])) break;
-                     callback(board, flags, NormalMove,
-                              rf, ff, rt, ft, closure);
-                      if (board[rt][ft] != EmptySquare) break;
-              }
-              break;
-
-            case SHOGI BlackQueen:
-              if(gameInfo.variant == VariantChu) goto doQueen;
-              for(i = 1;; i++) {
-                      rt = rf - i;
-                      ft = ff;
-                      if (rt < 0) break;
-                     if (SameColor(board[rf][ff], board[rt][ft])) break;
-                     callback(board, flags, NormalMove,
-                              rf, ff, rt, ft, closure);
-                      if (board[rt][ft] != EmptySquare) break;
-              }
-              break;
-
-            /* Make Dragon-King Dababba & Rook-like outside Shogi, for better disambiguation in variant Fairy */
-           case WhiteDragon:
-           case BlackDragon:
-              if(gameInfo.variant == VariantChuChess) goto DragonKing;
-              for (d = 0; d <= 1; d++) // Dababba moves that Rook cannot do
-                for (s = -2; s <= 2; s += 4) {
-                     rt = rf + s * d;
-                     ft = ff + s * (1 - d);
-                      if (rt < 0 || rt >= BOARD_HEIGHT || ft < BOARD_LEFT || ft >= BOARD_RGHT) continue;
-                      if (board[rf+rt>>1][ff+ft>>1] == EmptySquare && gameInfo.variant != VariantSpartan) continue;
-                     if (SameColor(board[rf][ff], board[rt][ft])) continue;
-                     callback(board, flags, NormalMove, rf, ff, rt, ft, closure);
-                 }
-              if(gameInfo.variant == VariantSpartan) // in Spartan Chess restrict range to modern Dababba
-               Wazir(board, flags, rf, ff, callback, closure);
-             else
-               Rook(board, flags, rf, ff, callback, closure);
-              break;
-
-            /* Shogi Dragon King has to continue as Ferz after Rook moves */
-            case SHOGI WhiteDragon:
-            case SHOGI BlackDragon:
-            case SHOGI WhitePDragon:
-            case SHOGI BlackPDragon:
-            DragonKing:
-               Rook(board, flags, rf, ff, callback, closure);
-               Ferz(board, flags, rf, ff, callback, closure);
-               break;
-              m++;
-
-            /* Capablanca Chancellor sets flag to continue as Knight      */
-            case WhiteMarshall:
-            case BlackMarshall:
-               Rook(board, flags, rf, ff, callback, closure);
-               if(gameInfo.variant == VariantSpartan) // in Spartan Chess Chancellor is used for Dragon King.
-                   Ferz(board, flags, rf, ff, callback, closure);
-               else
-                   Knight(board, flags, rf, ff, callback, closure);
-               break;
-
-            /* Shogi Rooks are ordinary Rooks */
-            case SHOGI WhiteRook:
-            case SHOGI BlackRook:
-            case SHOGI WhitePRook:
-            case SHOGI BlackPRook:
-           case WhiteRook:
-           case BlackRook:
-               Rook(board, flags, rf, ff, callback, closure);
-               break;
-
-           case WhiteQueen:
-           case BlackQueen:
-            case SHOGI WhiteMother:
-            case SHOGI BlackMother:
-           doQueen:
-               Rook(board, flags, rf, ff, callback, closure);
-               Bishop(board, flags, rf, ff, callback, closure);
-               break;
-
-           case SHOGI WhitePawn:
-               StepForward(board, flags, rf, ff, callback, closure);
-               break;
-
-            case SHOGI BlackPawn:
-               StepBackward(board, flags, rf, ff, callback, closure);
-               break;
-
-            case WhiteMan:
-                if(gameInfo.variant != VariantMakruk && gameInfo.variant != VariantASEAN) goto commoner;
-            case SHOGI WhiteFerz:
-               Ferz(board, flags, rf, ff, callback, closure);
-               StepForward(board, flags, rf, ff, callback, closure);
-               break;
-
-            case BlackMan:
-                if(gameInfo.variant != VariantMakruk && gameInfo.variant != VariantASEAN) goto commoner;
-            case SHOGI BlackFerz:
-               StepBackward(board, flags, rf, ff, callback, closure);
-
-            case WhiteFerz:
-            case BlackFerz:
-                /* [HGM] support Shatranj pieces */
-               Ferz(board, flags, rf, ff, callback, closure);
-               break;
-
-           case WhiteSilver:
-           case BlackSilver:
-               Knight(board, flags, rf, ff, callback, closure); // [HGM] superchess: use for Centaur
-
-            commoner:
-            case SHOGI WhiteMonarch:
-            case SHOGI BlackMonarch:
-            case SHOGI WhiteKing:
-            case SHOGI BlackKing:
-           case WhiteKing:
-           case BlackKing:
-               Ferz(board, flags, rf, ff, callback, closure);
-               Wazir(board, flags, rf, ff, callback, closure);
-               break;
-
-           case WhiteNightrider:
-           case BlackNightrider:
-             for (i = -1; i <= 1; i += 2)
-               for (j = -1; j <= 1; j += 2)
-                 for (s = 1; s <= 2; s++) {  int k;
-                    for(k=1;; k++) {
-                     rt = rf + k*i*s;
-                     ft = ff + k*j*(3-s);
-                      if (rt < 0 || rt >= BOARD_HEIGHT || ft < BOARD_LEFT || ft >= BOARD_RGHT) break;
-                     if (SameColor(board[rf][ff], board[rt][ft])) break;
-                     callback(board, flags, NormalMove,
-                              rf, ff, rt, ft, closure);
-                     if (board[rt][ft] != EmptySquare) break;
-                    }
-                 }
-             break;
-
-           Amazon:
-               Bishop(board, flags, rf, ff, callback, closure);
-               Rook(board, flags, rf, ff, callback, closure);
-               Knight(board, flags, rf, ff, callback, closure);
-               break;
-
-           // Use Lance as Berolina / Spartan Pawn.
-           case WhiteLance:
-             if(gameInfo.variant == VariantSuper) goto Amazon;
-             if (rf < BOARD_HEIGHT-1 && BlackPiece(board[rf + 1][ff]))
-                 callback(board, flags,
-                          rf >= BOARD_HEIGHT-1-promoRank ? WhitePromotion : NormalMove,
-                          rf, ff, rf + 1, ff, closure);
-             for (s = -1; s <= 1; s += 2) {
-                 if (rf < BOARD_HEIGHT-1 && ff + s >= BOARD_LEFT && ff + s < BOARD_RGHT && board[rf + 1][ff + s] == EmptySquare)
-                     callback(board, flags,
-                              rf >= BOARD_HEIGHT-1-promoRank ? WhitePromotion : NormalMove,
-                              rf, ff, rf + 1, ff + s, closure);
-                 if (rf == 1 && ff + 2*s >= BOARD_LEFT && ff + 2*s < BOARD_RGHT && board[3][ff + 2*s] == EmptySquare )
-                     callback(board, flags, NormalMove, rf, ff, 3, ff + 2*s, closure);
-             }
-             break;
-
-           case BlackLance:
-             if(gameInfo.variant == VariantSuper) goto Amazon;
-             if (rf > 0 && WhitePiece(board[rf - 1][ff]))
-                 callback(board, flags,
-                          rf <= promoRank ? BlackPromotion : NormalMove,
-                          rf, ff, rf - 1, ff, closure);
-             for (s = -1; s <= 1; s += 2) {
-                 if (rf > 0 && ff + s >= BOARD_LEFT && ff + s < BOARD_RGHT && board[rf - 1][ff + s] == EmptySquare)
-                     callback(board, flags,
-                              rf <= promoRank ? BlackPromotion : NormalMove,
-                              rf, ff, rf - 1, ff + s, closure);
-                 if (rf == BOARD_HEIGHT-2 && ff + 2*s >= BOARD_LEFT && ff + 2*s < BOARD_RGHT && board[rf-2][ff + 2*s] == EmptySquare )
-                     callback(board, flags, NormalMove, rf, ff, rf-2, ff + 2*s, closure);
-             }
-            break;
-
-            case SHOGI WhiteNothing:
-            case SHOGI BlackNothing:
-            case SHOGI WhiteLion:
-            case SHOGI BlackLion:
-            case WhiteLion:
-            case BlackLion:
-              for(rt = rf - 2; rt <= rf + 2; rt++) for(ft = ff - 2; ft <= ff + 2; ft++) {
-                if (rt < 0 || rt >= BOARD_HEIGHT || ft < BOARD_LEFT || ft >= BOARD_RGHT) continue;
-                if (!(ff == ft && rf == rt) && SameColor(board[rf][ff], board[rt][ft])) continue;
-                i = (killX >= 0 && (rt-killY)*(rt-killY) + (killX-ft)*(killX-ft) < 3); legNr += 2*i;
-                callback(board, flags, (rt-rf)*(rt-rf) + (ff-ft)*(ff-ft) < 3 && board[rt][ft] != EmptySquare && !i ? FirstLeg : NormalMove,
-                         rf, ff, rt, ft, closure);
-                legNr -= 2*i;
-              }
-              break;
-
-            case SHOGI WhiteFalcon:
-            case SHOGI BlackFalcon:
-            case SHOGI WhitePDagger:
-            case SHOGI BlackPDagger:
-               SlideSideways(board, flags, rf, ff, callback, closure);
-               StepVertical(board, flags, rf, ff, callback, closure);
-               break;
-
-            case SHOGI WhiteCobra:
-            case SHOGI BlackCobra:
-               StepVertical(board, flags, rf, ff, callback, closure);
-               break;
-
-            case SHOGI (PROMO WhiteFerz):
-               if(gameInfo.variant == VariantShogi) goto WhiteGold;
-            case SHOGI (PROMO BlackFerz):
-               if(gameInfo.variant == VariantShogi) goto BlackGold;
-            case SHOGI WhitePSword:
-            case SHOGI BlackPSword:
-               SlideVertical(board, flags, rf, ff, callback, closure);
-               StepSideways(board, flags, rf, ff, callback, closure);
-               break;
-
-            case SHOGI WhiteUnicorn:
-            case SHOGI BlackUnicorn:
-               Ferz(board, flags, rf, ff, callback, closure);
-               StepVertical(board, flags, rf, ff, callback, closure);
-               break;
-
-            case SHOGI WhiteMan:
-               StepDiagForward(board, flags, rf, ff, callback, closure);
-               StepVertical(board, flags, rf, ff, callback, closure);
-               break;
-
-            case SHOGI BlackMan:
-               StepDiagBackward(board, flags, rf, ff, callback, closure);
-               StepVertical(board, flags, rf, ff, callback, closure);
-               break;
-
-            case SHOGI WhiteHCrown:
-            case SHOGI BlackHCrown:
-               Bishop(board, flags, rf, ff, callback, closure);
-               SlideSideways(board, flags, rf, ff, callback, closure);
-               break;
-
-            case SHOGI WhiteCrown:
-            case SHOGI BlackCrown:
-               Bishop(board, flags, rf, ff, callback, closure);
-               SlideVertical(board, flags, rf, ff, callback, closure);
-               break;
-
-            case SHOGI WhiteCat:
-               Sting(board, flags, rf, ff, 1, 0, callback, closure);
-               callback(board, flags, NormalMove, rf, ff, rf, ff, closure);
-               if(killX >= 0) break;
-               Bishop(board, flags, rf, ff, callback, closure);
-               SlideSideways(board, flags, rf, ff, callback, closure);
-               SlideBackward(board, flags, rf, ff, callback, closure);
-               break;
-
-            case SHOGI BlackCat:
-               Sting(board, flags, rf, ff, -1, 0, callback, closure);
-               callback(board, flags, NormalMove, rf, ff, rf, ff, closure);
-               if(killX >= 0) break;
-               Bishop(board, flags, rf, ff, callback, closure);
-               SlideSideways(board, flags, rf, ff, callback, closure);
-               SlideForward(board, flags, rf, ff, callback, closure);
-               break;
-
-            case SHOGI WhiteDagger:
-               Sting(board, flags, rf, ff, 1,  1, callback, closure);
-               Sting(board, flags, rf, ff, 1, -1, callback, closure);
-               callback(board, flags, NormalMove, rf, ff, rf, ff, closure);
-               if(killX >= 0) break;
-               Rook(board, flags, rf, ff, callback, closure);
-               SlideDiagBackward(board, flags, rf, ff, callback, closure);
-               break;
-
-            case SHOGI BlackDagger:
-               Sting(board, flags, rf, ff, -1,  1, callback, closure);
-               Sting(board, flags, rf, ff, -1, -1, callback, closure);
-               callback(board, flags, NormalMove, rf, ff, rf, ff, closure);
-               if(killX >= 0) break;
-               Rook(board, flags, rf, ff, callback, closure);
-               SlideDiagForward(board, flags, rf, ff, callback, closure);
-               break;
-
-            case SHOGI WhiteDolphin:
-            case SHOGI BlackHorse:
-               SlideDiagBackward(board, flags, rf, ff, callback, closure);
-               SlideVertical(board, flags, rf, ff, callback, closure);
-               break;
-
-            case SHOGI BlackDolphin:
-            case SHOGI WhiteHorse:
-               SlideDiagForward(board, flags, rf, ff, callback, closure);
-               SlideVertical(board, flags, rf, ff, callback, closure);
-               break;
-
-            case SHOGI WhiteLance:
-               SlideForward(board, flags, rf, ff, callback, closure);
-               break;
-
-            case SHOGI BlackLance:
-               SlideBackward(board, flags, rf, ff, callback, closure);
-               break;
-
-           case WhiteFalcon: // [HGM] wild: for wildcards, self-capture symbolizes move to anywhere
-           case BlackFalcon:
-           case WhiteCobra:
-           case BlackCobra:
-             callback(board, flags, NormalMove, rf, ff, rf, ff, closure);
-             break;
-
-         }
-      }
-}
-
-
-typedef struct {
-    MoveCallback cb;
-    VOIDSTAR cl;
-} GenLegalClosure;
-
-int rFilter, fFilter; // [HGM] speed: sorry, but I get a bit tired of this closure madness
-Board xqCheckers, nullBoard;
-
-extern void GenLegalCallback P((Board board, int flags, ChessMove kind,
-                               int rf, int ff, int rt, int ft,
-                               VOIDSTAR closure));
-
-void
-GenLegalCallback (Board board, int flags, ChessMove kind, int rf, int ff, int rt, int ft, VOIDSTAR closure)
-{
-    register GenLegalClosure *cl = (GenLegalClosure *) closure;
-
-    if(rFilter >= 0 && rFilter != rt || fFilter >= 0 && fFilter != ft) return; // [HGM] speed: ignore moves with wrong to-square
-
-    if ((int)board[EP_STATUS] == EP_IRON_LION && (board[rt][ft] == WhiteLion || board[rt][ft] == BlackLion)) return; //[HGM] lion
-
-    if (!(flags & F_IGNORE_CHECK) ) {
-      int check, promo = (gameInfo.variant == VariantSpartan && kind == BlackPromotion);
-      if(promo) {
-           int r, f, kings=0;
-           for(r=0; r<BOARD_HEIGHT; r++) for(f=BOARD_LEFT; f<BOARD_RGHT;       f++)
-               kings += (board[r][f] == BlackKing);
-           if(kings >= 2)
-             promo = 0;
-           else
-               board[rf][ff] = BlackKing; // [HGM] spartan: promote to King before check-test
-       }
-       check = CheckTest(board, flags, rf, ff, rt, ft,
-                 kind == WhiteCapturesEnPassant ||
-                 kind == BlackCapturesEnPassant);
-       if(promo) board[rf][ff] = BlackLance;
-      if(check) return;
-    }
-    if (flags & F_ATOMIC_CAPTURE) {
-      if (board[rt][ft] != EmptySquare ||
-         kind == WhiteCapturesEnPassant || kind == BlackCapturesEnPassant) {
-       int r, f;
-       ChessSquare king = (flags & F_WHITE_ON_MOVE) ? WhiteKing : BlackKing;
-       if (board[rf][ff] == king) return;
-       for (r = rt-1; r <= rt+1; r++) {
-         for (f = ft-1; f <= ft+1; f++) {
-            if (r >= 0 && r < BOARD_HEIGHT && f >= BOARD_LEFT && f < BOARD_RGHT &&
-               board[r][f] == king) return;
-         }
-       }
-      }
-    }
-    cl->cb(board, flags, kind, rf, ff, rt, ft, cl->cl);
-}
-
-
-typedef struct {
-    int rf, ff, rt, ft;
-    ChessMove kind;
-    int captures; // [HGM] losers
-} LegalityTestClosure;
-
-
-/* Like GenPseudoLegal, but (1) include castling moves, (2) unless
-   F_IGNORE_CHECK is set in the flags, omit moves that would leave the
-   king in check, and (3) if F_ATOMIC_CAPTURE is set in the flags, omit
-   moves that would destroy your own king.  The CASTLE_OK flags are
-   true if castling is not yet ruled out by a move of the king or
-   rook.  Return TRUE if the player on move is currently in check and
-   F_IGNORE_CHECK is not set.  [HGM] add castlingRights parameter */
-int
-GenLegal (Board board, int  flags, MoveCallback callback, VOIDSTAR closure, ChessSquare filter)
-{
-    GenLegalClosure cl;
-    int ff, ft, k, left, right, swap;
-    int ignoreCheck = (flags & F_IGNORE_CHECK) != 0;
-    ChessSquare wKing = WhiteKing, bKing = BlackKing, *castlingRights = board[CASTLING];
-    int inCheck = !ignoreCheck && CheckTest(board, flags, -1, -1, -1, -1, FALSE); // kludge alert: this would mark pre-existing checkers if status==1
-    char *p;
-
-    cl.cb = callback;
-    cl.cl = closure;
-    xqCheckers[EP_STATUS] *= 2; // quasi: if previous CheckTest has been marking, we now set flag for suspending same checkers
-    if(filter == EmptySquare) rFilter = fFilter = -1; // [HGM] speed: do not filter on square if we do not filter on piece
-    GenPseudoLegal(board, flags, GenLegalCallback, (VOIDSTAR) &cl, filter);
-
-    if (inCheck) return TRUE;
-
-    /* Generate castling moves */
-    if(gameInfo.variant == VariantKnightmate) { /* [HGM] Knightmate */
-        wKing = WhiteUnicorn; bKing = BlackUnicorn;
-    }
-
-    p = (flags & F_WHITE_ON_MOVE ? pieceDesc[wKing] : pieceDesc[bKing]);
-    if(p && strchr(p, 'O')) return FALSE; // [HGM] gen: castlings were already generated from string
-
-    for (ff = BOARD_WIDTH>>1; ff >= (BOARD_WIDTH-1)>>1; ff-- /*ics wild 1*/) {
-       if ((flags & F_WHITE_ON_MOVE) &&
-           (flags & F_WHITE_KCASTLE_OK) &&
-            board[0][ff] == wKing &&
-            board[0][ff + 1] == EmptySquare &&
-            board[0][ff + 2] == EmptySquare &&
-            board[0][BOARD_RGHT-3] == EmptySquare &&
-            board[0][BOARD_RGHT-2] == EmptySquare &&
-            board[0][BOARD_RGHT-1] == WhiteRook &&
-            castlingRights[0] != NoRights && /* [HGM] check rights */
-            ( castlingRights[2] == ff || castlingRights[6] == ff ) &&
-            (ignoreCheck ||
-            (!CheckTest(board, flags, 0, ff, 0, ff + 1, FALSE) &&
-              !CheckTest(board, flags, 0, ff, 0, BOARD_RGHT-3, FALSE) &&
-              (gameInfo.variant != VariantJanus || !CheckTest(board, flags, 0, ff, 0, BOARD_RGHT-2, FALSE)) &&
-             !CheckTest(board, flags, 0, ff, 0, ff + 2, FALSE)))) {
-
-           callback(board, flags,
-                     ff==BOARD_WIDTH>>1 ? WhiteKingSideCastle : WhiteKingSideCastleWild,
-                     0, ff, 0, ff + ((gameInfo.boardWidth+2)>>2) + (gameInfo.variant == VariantJanus), closure);
-       }
-       if ((flags & F_WHITE_ON_MOVE) &&
-           (flags & F_WHITE_QCASTLE_OK) &&
-            board[0][ff] == wKing &&
-           board[0][ff - 1] == EmptySquare &&
-           board[0][ff - 2] == EmptySquare &&
-            board[0][BOARD_LEFT+2] == EmptySquare &&
-            board[0][BOARD_LEFT+1] == EmptySquare &&
-            board[0][BOARD_LEFT+0] == WhiteRook &&
-            castlingRights[1] != NoRights && /* [HGM] check rights */
-            ( castlingRights[2] == ff || castlingRights[6] == ff ) &&
-           (ignoreCheck ||
-            (!CheckTest(board, flags, 0, ff, 0, ff - 1, FALSE) &&
-              !CheckTest(board, flags, 0, ff, 0, BOARD_LEFT+3, FALSE) &&
-             !CheckTest(board, flags, 0, ff, 0, ff - 2, FALSE)))) {
-
-           callback(board, flags,
-                    ff==BOARD_WIDTH>>1 ? WhiteQueenSideCastle : WhiteQueenSideCastleWild,
-                     0, ff, 0, ff - ((gameInfo.boardWidth+2)>>2), closure);
-       }
-       if (!(flags & F_WHITE_ON_MOVE) &&
-           (flags & F_BLACK_KCASTLE_OK) &&
-            board[BOARD_HEIGHT-1][ff] == bKing &&
-           board[BOARD_HEIGHT-1][ff + 1] == EmptySquare &&
-           board[BOARD_HEIGHT-1][ff + 2] == EmptySquare &&
-            board[BOARD_HEIGHT-1][BOARD_RGHT-3] == EmptySquare &&
-            board[BOARD_HEIGHT-1][BOARD_RGHT-2] == EmptySquare &&
-            board[BOARD_HEIGHT-1][BOARD_RGHT-1] == BlackRook &&
-            castlingRights[3] != NoRights && /* [HGM] check rights */
-            ( castlingRights[5] == ff || castlingRights[7] == ff ) &&
-           (ignoreCheck ||
-            (!CheckTest(board, flags, BOARD_HEIGHT-1, ff, BOARD_HEIGHT-1, ff + 1, FALSE) &&
-              !CheckTest(board, flags, BOARD_HEIGHT-1, ff, BOARD_HEIGHT-1, BOARD_RGHT-3, FALSE) &&
-              (gameInfo.variant != VariantJanus || !CheckTest(board, flags, BOARD_HEIGHT-1, ff, BOARD_HEIGHT-1, BOARD_RGHT-2, FALSE)) &&
-             !CheckTest(board, flags, BOARD_HEIGHT-1, ff, BOARD_HEIGHT-1, ff + 2, FALSE)))) {
-
-           callback(board, flags,
-                    ff==BOARD_WIDTH>>1 ? BlackKingSideCastle : BlackKingSideCastleWild,
-                     BOARD_HEIGHT-1, ff, BOARD_HEIGHT-1, ff + ((gameInfo.boardWidth+2)>>2) + (gameInfo.variant == VariantJanus), closure);
-       }
-       if (!(flags & F_WHITE_ON_MOVE) &&
-           (flags & F_BLACK_QCASTLE_OK) &&
-            board[BOARD_HEIGHT-1][ff] == bKing &&
-           board[BOARD_HEIGHT-1][ff - 1] == EmptySquare &&
-           board[BOARD_HEIGHT-1][ff - 2] == EmptySquare &&
-            board[BOARD_HEIGHT-1][BOARD_LEFT+2] == EmptySquare &&
-            board[BOARD_HEIGHT-1][BOARD_LEFT+1] == EmptySquare &&
-            board[BOARD_HEIGHT-1][BOARD_LEFT+0] == BlackRook &&
-            castlingRights[4] != NoRights && /* [HGM] check rights */
-            ( castlingRights[5] == ff || castlingRights[7] == ff ) &&
-           (ignoreCheck ||
-            (!CheckTest(board, flags, BOARD_HEIGHT-1, ff, BOARD_HEIGHT-1, ff - 1, FALSE) &&
-              !CheckTest(board, flags, BOARD_HEIGHT-1, ff, BOARD_HEIGHT-1, BOARD_LEFT+3, FALSE) &&
-              !CheckTest(board, flags, BOARD_HEIGHT-1, ff, BOARD_HEIGHT-1, ff - 2, FALSE)))) {
-
-           callback(board, flags,
-                    ff==BOARD_WIDTH>>1 ? BlackQueenSideCastle : BlackQueenSideCastleWild,
-                     BOARD_HEIGHT-1, ff, BOARD_HEIGHT-1, ff - ((gameInfo.boardWidth+2)>>2), closure);
-       }
-    }
-
-  if((swap = gameInfo.variant == VariantSChess) || flags & F_FRC_TYPE_CASTLING) {
-
-    /* generate all potential FRC castling moves (KxR), ignoring flags */
-    /* [HGM] test if the Rooks we find have castling rights */
-    /* In S-Chess we generate RxK for allowed castlings, for gating at Rook square */
-
-
-    if ((flags & F_WHITE_ON_MOVE) != 0) {
-        ff = castlingRights[2]; /* King file if we have any rights */
-        if(ff != NoRights && board[0][ff] == WhiteKing) {
-    if (appData.debugMode) {
-        fprintf(debugFP, "FRC castling, %d %d %d %d %d %d\n",
-                castlingRights[0],castlingRights[1],ff,castlingRights[3],castlingRights[4],castlingRights[5]);
-    }
-            ft = castlingRights[0]; /* Rook file if we have H-side rights */
-            left  = ff+1;
-            right = BOARD_RGHT-2;
-            if(ff == BOARD_RGHT-2) left = right = ff-1;    /* special case */
-            for(k=left; k<=right && ft != NoRights; k++) /* first test if blocked */
-                if(k != ft && board[0][k] != EmptySquare) ft = NoRights;
-            for(k=left; k<right && ft != NoRights; k++) /* then if not checked */
-                if(!ignoreCheck && CheckTest(board, flags, 0, ff, 0, k, FALSE)) ft = NoRights;
-            if(ft != NoRights && board[0][ft] == WhiteRook) {
-                if(flags & F_FRC_TYPE_CASTLING) callback(board, flags, WhiteHSideCastleFR, 0, ff, 0, ft, closure);
-                if(swap)                        callback(board, flags, WhiteHSideCastleFR, 0, ft, 0, ff, closure);
-            }
-
-            ft = castlingRights[1]; /* Rook file if we have A-side rights */
-            left  = BOARD_LEFT+2;
-            right = ff-1;
-            if(ff <= BOARD_LEFT+2) { left = ff+1; right = BOARD_LEFT+3; }
-            for(k=left; k<=right && ft != NoRights; k++) /* first test if blocked */
-                if(k != ft && board[0][k] != EmptySquare) ft = NoRights;
-            if(ft == 0 && ff != 1 && board[0][1] != EmptySquare) ft = NoRights; /* Rook can be blocked on b1 */
-            if(ff > BOARD_LEFT+2)
-            for(k=left+1; k<=right && ft != NoRights; k++) /* then if not checked */
-                if(!ignoreCheck && CheckTest(board, flags, 0, ff, 0, k, FALSE)) ft = NoRights;
-            if(ft != NoRights && board[0][ft] == WhiteRook) {
-                if(flags & F_FRC_TYPE_CASTLING) callback(board, flags, WhiteASideCastleFR, 0, ff, 0, ft, closure);
-                if(swap)                        callback(board, flags, WhiteASideCastleFR, 0, ft, 0, ff, closure);
-            }
-        }
-    } else {
-        ff = castlingRights[5]; /* King file if we have any rights */
-        if(ff != NoRights && board[BOARD_HEIGHT-1][ff] == BlackKing) {
-            ft = castlingRights[3]; /* Rook file if we have H-side rights */
-            left  = ff+1;
-            right = BOARD_RGHT-2;
-            if(ff == BOARD_RGHT-2) left = right = ff-1;    /* special case */
-            for(k=left; k<=right && ft != NoRights; k++) /* first test if blocked */
-                if(k != ft && board[BOARD_HEIGHT-1][k] != EmptySquare) ft = NoRights;
-            for(k=left; k<right && ft != NoRights; k++) /* then if not checked */
-                if(!ignoreCheck && CheckTest(board, flags, BOARD_HEIGHT-1, ff, BOARD_HEIGHT-1, k, FALSE)) ft = NoRights;
-            if(ft != NoRights && board[BOARD_HEIGHT-1][ft] == BlackRook) {
-                if(flags & F_FRC_TYPE_CASTLING) callback(board, flags, BlackHSideCastleFR, BOARD_HEIGHT-1, ff, BOARD_HEIGHT-1, ft, closure);
-                if(swap)                        callback(board, flags, BlackHSideCastleFR, BOARD_HEIGHT-1, ft, BOARD_HEIGHT-1, ff, closure);
-            }
-
-            ft = castlingRights[4]; /* Rook file if we have A-side rights */
-            left  = BOARD_LEFT+2;
-            right = ff-1;
-            if(ff <= BOARD_LEFT+2) { left = ff+1; right = BOARD_LEFT+3; }
-            for(k=left; k<=right && ft != NoRights; k++) /* first test if blocked */
-                if(k != ft && board[BOARD_HEIGHT-1][k] != EmptySquare) ft = NoRights;
-            if(ft == 0 && ff != 1 && board[BOARD_HEIGHT-1][1] != EmptySquare) ft = NoRights; /* Rook can be blocked on b8 */
-            if(ff > BOARD_LEFT+2)
-            for(k=left+1; k<=right && ft != NoRights; k++) /* then if not checked */
-                if(!ignoreCheck && CheckTest(board, flags, BOARD_HEIGHT-1, ff, BOARD_HEIGHT-1, k, FALSE)) ft = NoRights;
-            if(ft != NoRights && board[BOARD_HEIGHT-1][ft] == BlackRook) {
-                if(flags & F_FRC_TYPE_CASTLING) callback(board, flags, BlackASideCastleFR, BOARD_HEIGHT-1, ff, BOARD_HEIGHT-1, ft, closure);
-                if(swap)                        callback(board, flags, BlackASideCastleFR, BOARD_HEIGHT-1, ft, BOARD_HEIGHT-1, ff, closure);
-            }
-        }
-    }
-
-  }
-
-    return FALSE;
-}
-
-
-typedef struct {
-    int rking, fking;
-    int check;
-} CheckTestClosure;
-
-
-extern void CheckTestCallback P((Board board, int flags, ChessMove kind,
-                                int rf, int ff, int rt, int ft,
-                                VOIDSTAR closure));
-
-
-void
-CheckTestCallback (Board board, int flags, ChessMove kind, int rf, int ff, int rt, int ft, VOIDSTAR closure)
-{
-    register CheckTestClosure *cl = (CheckTestClosure *) closure;
-
-    if (rt == cl->rking && ft == cl->fking) {
-       if((int)xqCheckers[EP_STATUS] >= 2 && xqCheckers[rf][ff]) return; // checker is piece with suspended checking power
-       cl->check++;
-       xqCheckers[rf][ff] = xqCheckers[EP_STATUS] & 1; // remember who is checking (if status == 1)
-    }
-    if( (int)board[EP_STATUS] == EP_ROYAL_LION && (board[rt][ft] == WhiteLion || board[rt][ft] == BlackLion)
-       && (gameInfo.variant != VariantLion || board[rf][ff] != WhiteKing && board[rf][ff] != BlackKing) )
-       cl->check++; // [HGM] lion: forbidden counterstrike against Lion equated to putting yourself in check
-}
-
-
-/* If the player on move were to move from (rf, ff) to (rt, ft), would
-   he leave himself in check?  Or if rf == -1, is the player on move
-   in check now?  enPassant must be TRUE if the indicated move is an
-   e.p. capture.  The possibility of castling out of a check along the
-   back rank is not accounted for (i.e., we still return nonzero), as
-   this is illegal anyway.  Return value is the number of times the
-   king is in check. */
-int
-CheckTest (Board board, int flags, int rf, int ff, int rt, int ft, int enPassant)
-{
-    CheckTestClosure cl;
-    ChessSquare king = flags & F_WHITE_ON_MOVE ? WhiteKing : BlackKing;
-    ChessSquare captured = EmptySquare, ep=0, trampled=0, trampled2 = 0;
-    int saveKill = killX;
-    /*  Suppress warnings on uninitialized variables    */
-
-    if(gameInfo.variant == VariantXiangqi)
-        king = flags & F_WHITE_ON_MOVE ? WhiteWazir : BlackWazir;
-    if(gameInfo.variant == VariantKnightmate)
-        king = flags & F_WHITE_ON_MOVE ? WhiteUnicorn : BlackUnicorn;
-    if(gameInfo.variant == VariantChu || gameInfo.variant == VariantShogi) { // strictly speaking this is not needed, as Chu officially has no check
-       int r, f, k = king, royals=0, prince = flags & F_WHITE_ON_MOVE ? WhiteMonarch : BlackMonarch;
-       if(gameInfo.variant == VariantShogi) prince -= 11;                   // White/BlackFalcon
-       for(r=0; r<BOARD_HEIGHT; r++) for(f=BOARD_LEFT; f<BOARD_RGHT; f++) {
-           if(board[r][f] == k || board[r][f] == prince) {
-               if(++royals > 1) return FALSE; // no check if we have two royals (ignores double captureby Lion!)
-               king = board[r][f]; // remember hich one we had
-           }
-       }
-    }
-
-    if (rt >= 0) {
-       if (enPassant) {
-           captured = board[rf][ft];
-           board[rf][ft] = EmptySquare;
-       } else {
-           captured = board[rt][ft];
-           if(killX >= 0) {
-               trampled = board[killY][killX]; board[killY][killX] = EmptySquare; killX = -1; saveKill += (kill2X << 16) + (1 << 30);
-               if(kill2X >= 0) { trampled2 = board[kill2Y][kill2X]; board[kill2Y][kill2X] = EmptySquare; kill2X = -1; }
-           }
-       }
-       if(rf == DROP_RANK) board[rt][ft] = ff; else { // [HGM] drop
-           board[rt][ft] = board[rf][ff];
-           if(rf != rt || ff != ft) board[rf][ff] = EmptySquare;
-       }
-       ep = board[EP_STATUS];
-       if( captured == WhiteLion || captured == BlackLion ) { // [HGM] lion: Chu Lion-capture rules
-           ChessSquare victim = saveKill < 0 ? EmptySquare : trampled;
-           if( (board[rt][ft] == WhiteLion || board[rt][ft] == BlackLion) &&           // capturer is Lion
-               (ff - ft > 1 || ft - ff > 1 || rf - rt > 1 || rt - rf > 1) &&           // captures from a distance
-               (victim == EmptySquare || victim == WhitePawn || victim == BlackPawn    // no or worthless 'bridge'
-                                    || victim == WhiteCobra || victim == BlackCobra) ) // (Pawn or Go Between)
-                    board[EP_STATUS] = EP_ROYAL_LION; // on distant Lion x Lion victim must not be pseudo-legally protected
-       }
-    }
-
-    /* For compatibility with ICS wild 9, we scan the board in the
-       order a1, a2, a3, ... b1, b2, ..., h8 to find the first king,
-       and we test only whether that one is in check. */
-    for (cl.fking = BOARD_LEFT+0; cl.fking < BOARD_RGHT; cl.fking++)
-       for (cl.rking = 0; cl.rking < BOARD_HEIGHT; cl.rking++) {
-          if (board[cl.rking][cl.fking] == king) {
-             cl.check = 0;
-              if(gameInfo.variant == VariantXiangqi) {
-                  /* [HGM] In Xiangqi opposing Kings means check as well */
-                  int i, dir;
-                  dir = (king >= BlackPawn) ? -1 : 1;
-                  for( i=cl.rking+dir; i>=0 && i<BOARD_HEIGHT &&
-                                board[i][cl.fking] == EmptySquare; i+=dir );
-                  if(i>=0 && i<BOARD_HEIGHT &&
-                      board[i][cl.fking] == (dir>0 ? BlackWazir : WhiteWazir) )
-                          cl.check++;
-              }
-             GenPseudoLegal(board, flags ^ F_WHITE_ON_MOVE, CheckTestCallback, (VOIDSTAR) &cl, EmptySquare);
-             if(gameInfo.variant != VariantSpartan || cl.check == 0) // in Spartan Chess go on to test if other King is checked too
-                goto undo_move;  /* 2-level break */
-         }
-      }
-
-  undo_move:
-
-    if (rt >= 0) {
-       if(rf != DROP_RANK) // [HGM] drop
-           board[rf][ff] = board[rt][ft];
-       if (enPassant) {
-           board[rf][ft] = captured;
-           board[rt][ft] = EmptySquare;
-       } else {
-           if(saveKill >= 0) {
-               if(saveKill & 1<<30) board[kill2Y][kill2X = saveKill >> 16 & 0xFFF] = trampled2;
-               board[killY][killX = saveKill & 0xFFF] = trampled;
-           }
-           board[rt][ft] = captured;
-       }
-       board[EP_STATUS] = ep;
-    }
-
-    return cl.fking < BOARD_RGHT ? cl.check : 1000; // [HGM] atomic: return 1000 if we have no king
-}
-
-int
-HasLion (Board board, int flags)
-{
-    int lion = F_WHITE_ON_MOVE & flags ? WhiteLion : BlackLion;
-    int r, f;
-    for(r=0; r<BOARD_HEIGHT; r++) for(f=BOARD_LEFT; f<BOARD_RGHT; f++)
-        if(board[r][f] == lion) return 1;
-    return 0;
-}
-
-ChessMove
-LegalDrop (Board board, int flags, ChessSquare piece, int rt, int ft)
-{   // [HGM] put drop legality testing in separate routine for clarity
-    int n;
-if(appData.debugMode) fprintf(debugFP, "LegalDrop: %d @ %d,%d)\n", piece, ft, rt);
-    if(board[rt][ft] != EmptySquare) return ImpossibleMove; // must drop to empty square
-    n = PieceToNumber(piece);
-    if((gameInfo.holdingsWidth == 0 || (flags & F_WHITE_ON_MOVE ? board[n][BOARD_WIDTH-1] : board[BOARD_HEIGHT-1-n][0]) != piece)
-       && gameInfo.variant != VariantBughouse) // in bughouse we don't check for availability, because ICS doesn't always tell us
-        return ImpossibleMove; // piece not available
-    if(gameInfo.variant == VariantShogi) { // in Shogi lots of drops are forbidden!
-        if((piece == WhitePawn || piece == WhiteQueen) && rt == BOARD_HEIGHT-1 ||
-           (piece == BlackPawn || piece == BlackQueen) && rt == 0 ||
-            piece == WhiteKnight && rt > BOARD_HEIGHT-3 ||
-            piece == BlackKnight && rt < 2 ) return IllegalMove; // e.g. where dropped piece has no moves
-        if(piece == WhitePawn || piece == BlackPawn) {
-            int r, max = 1 + (BOARD_HEIGHT == 7); // two Pawns per file in Tori!
-            for(r=1; r<BOARD_HEIGHT-1; r++)
-                if(!(max -= (board[r][ft] == piece))) return IllegalMove; // or there already is a Pawn in file
-            // should still test if we mate with this Pawn
-        }
-    } else if(gameInfo.variant == VariantSChess) { // only back-rank drops
-        if (rt != (piece < BlackPawn ? 0 : BOARD_HEIGHT-1)) return IllegalMove;
-    } else {
-        if( (piece == WhitePawn || piece == BlackPawn) &&
-            (rt == 0 || rt == BOARD_HEIGHT -1 ) )
-            return IllegalMove; /* no pawn drops on 1st/8th */
-    }
-if(appData.debugMode) fprintf(debugFP, "LegalDrop: %d @ %d,%d)\n", piece, ft, rt);
-    if (!(flags & F_IGNORE_CHECK) &&
-       CheckTest(board, flags, DROP_RANK, piece, rt, ft, FALSE) ) return IllegalMove;
-    return flags & F_WHITE_ON_MOVE ? WhiteDrop : BlackDrop;
-}
-
-extern void LegalityTestCallback P((Board board, int flags, ChessMove kind,
-                                   int rf, int ff, int rt, int ft,
-                                   VOIDSTAR closure));
-
-void
-LegalityTestCallback (Board board, int flags, ChessMove kind, int rf, int ff, int rt, int ft, VOIDSTAR closure)
-{
-    register LegalityTestClosure *cl = (LegalityTestClosure *) closure;
-
-    if(board[rt][ft] != EmptySquare || kind==WhiteCapturesEnPassant || kind==BlackCapturesEnPassant)
-       cl->captures++; // [HGM] losers: count legal captures
-    if (rf == cl->rf && ff == cl->ff && rt == cl->rt && ft == cl->ft)
-      cl->kind = kind;
-}
-
-ChessMove
-LegalityTest (Board board, int flags, int rf, int ff, int rt, int ft, int promoChar)
-{
-    LegalityTestClosure cl; ChessSquare piece, filterPiece;
-
-    if(quickFlag) flags = flags & ~1 | quickFlag & 1; // [HGM] speed: in quick mode quickFlag specifies side-to-move.
-    if(rf == DROP_RANK) return LegalDrop(board, flags, ff, rt, ft);
-    piece = filterPiece = board[rf][ff];
-    if(PieceToChar(piece) == '~') filterPiece = DEMOTED(piece);
-
-    /* [HGM] Cobra and Falcon are wildcard pieces; consider all their moves legal */
-    /* (perhaps we should disallow moves that obviously leave us in check?)              */
-    if((piece == WhiteFalcon || piece == BlackFalcon ||
-        piece == WhiteCobra  || piece == BlackCobra) && gameInfo.variant != VariantChu && !pieceDesc[piece])
-        return CheckTest(board, flags, rf, ff, rt, ft, FALSE) ? IllegalMove : NormalMove;
-
-    cl.rf = rf;
-    cl.ff = ff;
-    cl.rt = rFilter = rt; // [HGM] speed: filter on to-square
-    cl.ft = fFilter = ft;
-    cl.kind = IllegalMove;
-    cl.captures = 0; // [HGM] losers: prepare to count legal captures.
-    if(flags & F_MANDATORY_CAPTURE) filterPiece = EmptySquare; // [HGM] speed: do not filter in suicide, to find all captures
-    GenLegal(board, flags, LegalityTestCallback, (VOIDSTAR) &cl, filterPiece);
-    if((flags & F_MANDATORY_CAPTURE) && cl.captures && board[rt][ft] == EmptySquare
-               && cl.kind != WhiteCapturesEnPassant && cl.kind != BlackCapturesEnPassant)
-       return(IllegalMove); // [HGM] losers: if there are legal captures, non-capts are illegal
-
-    if(promoChar == 'x') promoChar = NULLCHAR; // [HGM] is this ever the case?
-    if(gameInfo.variant == VariantSChess && promoChar && promoChar != '=' && board[rf][ff] != WhitePawn && board[rf][ff] != BlackPawn) {
-        if(board[rf][ff] < BlackPawn) { // white
-            if(rf != 0) return IllegalMove; // must be on back rank
-            if(!(board[VIRGIN][ff] & VIRGIN_W)) return IllegalMove; // non-virgin
-            if(board[PieceToNumber(CharToPiece(ToUpper(promoChar)))][BOARD_WIDTH-2] == 0) return ImpossibleMove;// must be in stock
-            if(cl.kind == WhiteHSideCastleFR && (ff == BOARD_RGHT-2 || ff == BOARD_RGHT-3)) return ImpossibleMove;
-            if(cl.kind == WhiteASideCastleFR && (ff == BOARD_LEFT+2 || ff == BOARD_LEFT+3)) return ImpossibleMove;
-        } else {
-            if(rf != BOARD_HEIGHT-1) return IllegalMove;
-            if(!(board[VIRGIN][ff] & VIRGIN_B)) return IllegalMove; // non-virgin
-            if(board[BOARD_HEIGHT-1-PieceToNumber(CharToPiece(ToLower(promoChar)))][1] == 0) return ImpossibleMove;
-            if(cl.kind == BlackHSideCastleFR && (ff == BOARD_RGHT-2 || ff == BOARD_RGHT-3)) return ImpossibleMove;
-            if(cl.kind == BlackASideCastleFR && (ff == BOARD_LEFT+2 || ff == BOARD_LEFT+3)) return ImpossibleMove;
-        }
-    } else
-    if(gameInfo.variant == VariantChu) {
-        if(cl.kind != NormalMove || promoChar == NULLCHAR || promoChar == '=') return cl.kind;
-        if(promoChar != '+')
-            return CharToPiece(promoChar) == EmptySquare ? ImpossibleMove : IllegalMove;
-        if(PieceToChar(CHUPROMOTED(board[rf][ff])) != '+') {
-           if(PieceToChar(CHUPROMOTED (board[rf][ff] < BlackPawn ? WhitePawn : BlackPawn)) != '.')
-           return ImpossibleMove;
-       }
-        return flags & F_WHITE_ON_MOVE ? WhitePromotion : BlackPromotion;
-    } else
-    if(gameInfo.variant == VariantShogi) {
-        /* [HGM] Shogi promotions. '=' means defer */
-        if(rf != DROP_RANK && cl.kind == NormalMove) {
-            ChessSquare piece = board[rf][ff];
-            int zone = BOARD_HEIGHT/3 + (BOARD_HEIGHT == 8);
-
-            if(promoChar == PieceToChar(BlackQueen)) promoChar = NULLCHAR; /* [HGM] Kludge */
-            if(promoChar == 'd' && (piece == WhiteRook   || piece == BlackRook)   ||
-               promoChar == 'h' && (piece == WhiteBishop || piece == BlackBishop) ||
-               promoChar == 'g' && (piece <= WhiteFerz || piece <= BlackFerz && piece >= BlackPawn) )
-                  promoChar = '+'; // allowed ICS notations
-if(appData.debugMode)fprintf(debugFP,"SHOGI promoChar = %c\n", promoChar ? promoChar : '-');
-            if(promoChar != NULLCHAR && promoChar != '+' && promoChar != '=')
-                return CharToPiece(promoChar) == EmptySquare ? ImpossibleMove : IllegalMove;
-            else if(flags & F_WHITE_ON_MOVE) {
-                if( (int) piece < (int) WhiteWazir &&
-                     (rf >= BOARD_HEIGHT - zone || rt >= BOARD_HEIGHT - zone) ) {
-                    if( (piece == WhitePawn || piece == WhiteQueen) && rt > BOARD_HEIGHT-2 ||
-                         piece == WhiteKnight && rt > BOARD_HEIGHT-3) /* promotion mandatory */
-                       cl.kind = promoChar == '=' ? IllegalMove : WhitePromotion;
-                    else /* promotion optional, default is defer */
-                       cl.kind = promoChar == '+' ? WhitePromotion : WhiteNonPromotion;
-                } else cl.kind = promoChar == '+' ? IllegalMove : NormalMove;
-            } else {
-                if( (int) piece < (int) BlackWazir && (rf < zone || rt < zone) ) {
-                    if( (piece == BlackPawn || piece == BlackQueen) && rt < 1 ||
-                         piece == BlackKnight && rt < 2 ) /* promotion obligatory */
-                       cl.kind = promoChar == '=' ? IllegalMove : BlackPromotion;
-                    else /* promotion optional, default is defer */
-                       cl.kind = promoChar == '+' ? BlackPromotion : BlackNonPromotion;
-                } else cl.kind = promoChar == '+' ? IllegalMove : NormalMove;
-            }
-        }
-    } else
-    if (promoChar != NULLCHAR) {
-       if(cl.kind == NormalMove && promoChar == '+') { // allow shogi-style promotion is pieceToChar specifies them
-            ChessSquare piece = board[rf][ff];
-            if(piece < BlackPawn ? piece > WhiteMan : piece > BlackMan) return ImpossibleMove; // already promoted
-            // should test if in zone, really
-            if(gameInfo.variant == VariantChuChess && (piece == WhiteKnight || piece == BlackKnight) && HasLion(board, flags))
-                return IllegalMove;
-            if(PieceToChar(PROMOTED(piece)) == '+') return flags & F_WHITE_ON_MOVE ? WhitePromotion : BlackPromotion;
-        } else
-       if(promoChar == '=') cl.kind = IllegalMove; else // [HGM] shogi: no deferred promotion outside Shogi
-       if (cl.kind == WhitePromotion || cl.kind == BlackPromotion) {
-           ChessSquare piece = CharToPiece(flags & F_WHITE_ON_MOVE ? ToUpper(promoChar) : ToLower(promoChar));
-           if(piece == EmptySquare)
-                cl.kind = ImpossibleMove; // non-existing piece
-           if(gameInfo.variant == VariantChuChess && promoChar == 'l' && HasLion(board, flags)) {
-                cl.kind = IllegalMove; // no two Lions
-           } else if(gameInfo.variant == VariantSpartan && cl.kind == BlackPromotion ) {
-               if(promoChar != PieceToChar(BlackKing)) {
-                   if(CheckTest(board, flags, rf, ff, rt, ft, FALSE)) cl.kind = IllegalMove; // [HGM] spartan: only promotion to King was possible
-                   if(piece == BlackLance) cl.kind = ImpossibleMove;
-               } else { // promotion to King allowed only if we do not have two yet
-                   int r, f, kings = 0;
-                   for(r=0; r<BOARD_HEIGHT; r++) for(f=BOARD_LEFT; f<BOARD_RGHT; f++) kings += (board[r][f] == BlackKing);
-                   if(kings == 2) cl.kind = IllegalMove;
-               }
-           } else if(piece == WhitePawn && rt == BOARD_HEIGHT-1 ||
-                         piece == BlackPawn && rt == 0) cl.kind = IllegalMove; // cannot stay Pawn on last rank in any variant
-           else if((piece == WhiteUnicorn || piece == BlackUnicorn) && gameInfo.variant == VariantKnightmate)
-             cl.kind = IllegalMove; // promotion to Royal Knight not allowed
-           else if((piece == WhiteKing || piece == BlackKing) && gameInfo.variant != VariantSuicide && gameInfo.variant != VariantGiveaway)
-             cl.kind = IllegalMove; // promotion to King usually not allowed
-       } else {
-           cl.kind = IllegalMove;
-       }
-    }
-    return cl.kind;
-}
-
-typedef struct {
-    int count;
-} MateTestClosure;
-
-extern void MateTestCallback P((Board board, int flags, ChessMove kind,
-                               int rf, int ff, int rt, int ft,
-                               VOIDSTAR closure));
-
-void
-MateTestCallback (Board board, int flags, ChessMove kind, int rf, int ff, int rt, int ft, VOIDSTAR closure)
-{
-    register MateTestClosure *cl = (MateTestClosure *) closure;
-
-    cl->count++;
-}
-
-/* Return MT_NONE, MT_CHECK, MT_CHECKMATE, or MT_STALEMATE */
-int
-MateTest (Board board, int flags)
-{
-    MateTestClosure cl;
-    int inCheck, r, f, myPieces=0, hisPieces=0, nrKing=0;
-    ChessSquare king = flags & F_WHITE_ON_MOVE ? WhiteKing : BlackKing;
-
-    for(r=0; r<BOARD_HEIGHT; r++) for(f=BOARD_LEFT; f<BOARD_RGHT; f++) {
-        // [HGM] losers: Count pieces and kings, to detect other unorthodox winning conditions
-       nrKing += (board[r][f] == king);   // stm has king
-        if( board[r][f] != EmptySquare ) {
-           if((int)board[r][f] <= (int)king && (int)board[r][f] >= (int)king - (int)WhiteKing + (int)WhitePawn)
-                myPieces++;
-           else hisPieces++;
-       }
-    }
-    switch(gameInfo.variant) { // [HGM] losers: extinction wins
-       case VariantShatranj:
-               if(hisPieces == 1) return myPieces > 1 ? MT_BARE : MT_DRAW;
-       default:
-               break;
-       case VariantAtomic:
-               if(nrKing == 0) return MT_NOKING;
-               break;
-       case VariantLosers:
-               if(myPieces == 1) return MT_BARE;
-    }
-    cl.count = 0;
-    inCheck = GenLegal(board, flags, MateTestCallback, (VOIDSTAR) &cl, EmptySquare);
-    // [HGM] 3check: yet to do!
-    if (cl.count > 0) {
-       return inCheck ? MT_CHECK : MT_NONE;
-    } else {
-        if(gameInfo.holdingsWidth && gameInfo.variant != VariantSuper && gameInfo.variant != VariantGreat
-                                 && gameInfo.variant != VariantSChess && gameInfo.variant != VariantGrand) { // drop game
-            int r, f, n, holdings = flags & F_WHITE_ON_MOVE ? BOARD_WIDTH-1 : 0;
-            for(r=0; r<BOARD_HEIGHT; r++) for(f=BOARD_LEFT; f<BOARD_RGHT; f++) if(board[r][f] == EmptySquare) // all empty squares
-                for(n=0; n<BOARD_HEIGHT; n++) // all pieces in hand
-                    if(board[n][holdings] != EmptySquare) {
-                        int moveType = LegalDrop(board, flags, board[n][holdings], r, f);
-                        if(moveType == WhiteDrop || moveType == BlackDrop) return (inCheck ? MT_CHECK : MT_NONE); // we have legal drop
-                    }
-        }
-       if(gameInfo.variant == VariantSuicide) // [HGM] losers: always stalemate, since no check, but result varies
-               return myPieces == hisPieces ? MT_STALEMATE :
-                                       myPieces > hisPieces ? MT_STAINMATE : MT_STEALMATE;
-       else if(gameInfo.variant == VariantLosers) return inCheck ? MT_TRICKMATE : MT_STEALMATE;
-       else if(gameInfo.variant == VariantGiveaway) return MT_STEALMATE; // no check exists, stalemated = win
-
-        return inCheck ? MT_CHECKMATE
-                      : (gameInfo.variant == VariantXiangqi || gameInfo.variant == VariantShatranj || IS_SHOGI(gameInfo.variant)) ?
-                         MT_STAINMATE : MT_STALEMATE;
-    }
-}
-
-
-extern void DisambiguateCallback P((Board board, int flags, ChessMove kind,
-                                   int rf, int ff, int rt, int ft,
-                                   VOIDSTAR closure));
-
-void
-DisambiguateCallback (Board board, int flags, ChessMove kind, int rf, int ff, int rt, int ft, VOIDSTAR closure)
-{
-    register DisambiguateClosure *cl = (DisambiguateClosure *) closure;
-    int wildCard = FALSE; ChessSquare piece = board[rf][ff];
-    extern int kifu; // in parser.c
-
-    // [HGM] wild: for wild-card pieces rt and rf are dummies
-    if(piece == WhiteFalcon || piece == BlackFalcon ||
-       piece == WhiteCobra  || piece == BlackCobra)
-        wildCard = !pieceDefs; // no wildcards when engine defined pieces
-
-    if ((cl->pieceIn == EmptySquare || cl->pieceIn == board[rf][ff]
-         || PieceToChar(board[rf][ff]) == '~'
-              && cl->pieceIn == (ChessSquare)(DEMOTED(board[rf][ff]))
-                                                                      ) &&
-       (cl->rfIn == -1 || cl->rfIn == rf) &&
-       (cl->ffIn == -1 || cl->ffIn == ff) &&
-       (cl->rtIn == -1 || cl->rtIn == rt || wildCard) &&
-       (cl->ftIn == -1 || cl->ftIn == ft || wildCard)) {
-
-       if(cl->count && rf == cl->rf && ff == cl->ff && rt == cl->rt && ft == cl->ft) return; // duplicate move
-
-       if(cl->count == 1 && kifu & 0x7E && cl->rfIn == -1 && cl->ffIn == -1) { // traditional Shogi disambiguation required
-           int this = 1, other = 1;
-           if(kifu & 2) this &= (flags & 1 ? rt > rf : rt < rf), other &= (flags & 1 ? cl->rt > cl->rf : cl->rt < cl->rf);
-           if(kifu & 4) this &= (flags & 1 ? rt < rf : rt > rf), other &= (flags & 1 ? cl->rt < cl->rf : cl->rt > cl->rf);
-           if(kifu & 8) this &= (rf == rt), other &= (cl->rt == cl->rf);
-           if(kifu & 0x10) this &= (flags & 1 ? ft <= ff : ft >= ff), other &= (flags & 1 ? cl->ft <= cl->ff : cl->ft >= cl->ff);
-           if(kifu & 0x20) this &= (flags & 1 ? ft >= ff : ft <= ff), other &= (flags & 1 ? cl->ft >= cl->ff : cl->ft <= cl->ff);
-           if(kifu & 0x40) this &= (ft == ff), other &= (cl->ft == cl->ff); // should never be used
-           if(!other) cl->count--; // the old move did not satisfy the requested relative position, erase it
-           if(!this) return;       // the current move does not satisfy the requested relative position, ignore it
-       }
-
-       cl->count++;
-       if(cl->count == 1 || board[rt][ft] != EmptySquare) {
-         // [HGM] oneclick: if multiple moves, be sure we remember capture
-         cl->piece = board[rf][ff];
-         cl->rf = rf;
-         cl->ff = ff;
-         cl->rt = wildCard ? cl->rtIn : rt;
-         cl->ft = wildCard ? cl->ftIn : ft;
-         cl->kind = kind;
-       }
-       cl->captures += (board[rt][ft] != EmptySquare); // [HGM] oneclick: count captures
-    }
-}
-
-void
-Disambiguate (Board board, int flags, DisambiguateClosure *closure)
-{
-    int illegal = 0; char c = closure->promoCharIn;
-
-    if(quickFlag) flags = flags & ~1 | quickFlag & 1; // [HGM] speed: in quick mode quickFlag specifies side-to-move.
-    closure->count = closure->captures = 0;
-    closure->rf = closure->ff = closure->rt = closure->ft = 0;
-    closure->kind = ImpossibleMove;
-    rFilter = closure->rtIn; // [HGM] speed: only consider moves to given to-square
-    fFilter = closure->ftIn;
-    if(quickFlag) { // [HGM] speed: try without check test first, because if that is not ambiguous, we are happy
-        GenLegal(board, flags|F_IGNORE_CHECK, DisambiguateCallback, (VOIDSTAR) closure, closure->pieceIn);
-        if(closure->count > 1) { // gamble did not pay off. retry with check test to resolve ambiguity
-            closure->count = closure->captures = 0;
-            closure->rf = closure->ff = closure->rt = closure->ft = 0;
-            closure->kind = ImpossibleMove;
-            GenLegal(board, flags, DisambiguateCallback, (VOIDSTAR) closure, closure->pieceIn); // [HGM] speed: only pieces of requested type
-        }
-    } else
-    GenLegal(board, flags, DisambiguateCallback, (VOIDSTAR) closure, closure->pieceIn); // [HGM] speed: only pieces of requested type
-    if (closure->count == 0) {
-       /* See if it's an illegal move due to check */
-        illegal = 1;
-        GenLegal(board, flags|F_IGNORE_CHECK, DisambiguateCallback, (VOIDSTAR) closure, closure->pieceIn);
-       if (closure->count == 0) {
-           /* No, it's not even that */
-         if(!appData.testLegality && !pieceDefs && closure->pieceIn != EmptySquare) {
-           int f, r; // if there is only a single piece of the requested type on the board, use that
-           closure->rt = closure->rtIn, closure->ft = closure->ftIn;
-           for(r=0; r<BOARD_HEIGHT; r++) for(f=BOARD_LEFT; f<BOARD_RGHT; f++)
-               if(board[r][f] == closure->pieceIn) closure->count++, closure->rf = r, closure->ff = f;
-           if(closure->count > 1) illegal = 0; // ambiguous
-         }
-         if(closure->count == 0) {
-           if (appData.debugMode) { int i, j;
-               for(i=BOARD_HEIGHT-1; i>=0; i--) {
-                   for(j=0; j<BOARD_WIDTH; j++)
-                       fprintf(debugFP, "%3d", (int) board[i][j]);
-                   fprintf(debugFP, "\n");
-               }
-           }
-           return;
-         }
-       }
-    } else if(pieceDefs && closure->count > 1 && closure->rtIn >=0) { // [HGM] gen: move is ambiguous under engine-defined rules (and not one-click)
-       DisambiguateClosure spare = *closure;
-       pieceDefs = FALSE; spare.count = 0;     // See if the (erroneous) built-in rules would resolve that
-        GenLegal(board, flags, DisambiguateCallback, (VOIDSTAR) &spare, closure->pieceIn);
-       if(spare.count == 1) *closure = spare;  // It does, so use those in stead (game from file saved before gen patch?)
-       pieceDefs = TRUE;
-    }
-
-    if (c == 'x') c = NULLCHAR; // get rid of any 'x' (which should never happen?)
-    if(gameInfo.variant == VariantSChess && c && c != '=' && closure->piece != WhitePawn && closure->piece != BlackPawn) {
-        if(closure->piece < BlackPawn) { // white
-            if(closure->rf != 0) closure->kind = IllegalMove; // must be on back rank
-            if(!(board[VIRGIN][closure->ff] & VIRGIN_W)) closure->kind = IllegalMove; // non-virgin
-            if(board[PieceToNumber(CharToPiece(ToUpper(c)))][BOARD_WIDTH-2] == 0) closure->kind = ImpossibleMove;// must be in stock
-            if(closure->kind == WhiteHSideCastleFR && (closure->ff == BOARD_RGHT-2 || closure->ff == BOARD_RGHT-3)) closure->kind = ImpossibleMove;
-            if(closure->kind == WhiteASideCastleFR && (closure->ff == BOARD_LEFT+2 || closure->ff == BOARD_LEFT+3)) closure->kind = ImpossibleMove;
-        } else {
-            if(closure->rf != BOARD_HEIGHT-1) closure->kind = IllegalMove;
-            if(!(board[VIRGIN][closure->ff] & VIRGIN_B)) closure->kind = IllegalMove; // non-virgin
-            if(board[BOARD_HEIGHT-1-PieceToNumber(CharToPiece(ToLower(c)))][1] == 0) closure->kind = ImpossibleMove;
-            if(closure->kind == BlackHSideCastleFR && (closure->ff == BOARD_RGHT-2 || closure->ff == BOARD_RGHT-3)) closure->kind = ImpossibleMove;
-            if(closure->kind == BlackASideCastleFR && (closure->ff == BOARD_LEFT+2 || closure->ff == BOARD_LEFT+3)) closure->kind = ImpossibleMove;
-        }
-    } else
-    if(gameInfo.variant == VariantChu) {
-        if(c == '+') closure->kind = (flags & F_WHITE_ON_MOVE ? WhitePromotion : BlackPromotion); // for now, accept any
-    } else
-    if(gameInfo.variant == VariantShogi) {
-        /* [HGM] Shogi promotions. On input, '=' means defer, '+' promote. Afterwards, c is set to '+' for promotions, NULL other */
-        if(closure->rfIn != DROP_RANK && closure->kind == NormalMove) {
-            ChessSquare piece = closure->piece;
-            int zone = BOARD_HEIGHT/3 + (BOARD_HEIGHT == 8);
-            if (c == 'd' && (piece == WhiteRook   || piece == BlackRook)   ||
-                c == 'h' && (piece == WhiteBishop || piece == BlackBishop) ||
-                c == 'g' && (piece <= WhiteFerz || piece <= BlackFerz && piece >= BlackPawn) )
-                   c = '+'; // allowed ICS notations
-            if(c != NULLCHAR && c != '+' && c != '=') closure->kind = IllegalMove; // otherwise specifying a piece is illegal
-            else if(flags & F_WHITE_ON_MOVE) {
-                if( (int) piece < (int) WhiteWazir &&
-                     (closure->rf >= BOARD_HEIGHT-zone || closure->rt >= BOARD_HEIGHT-zone) ) {
-                    if( (piece == WhitePawn || piece == WhiteQueen) && closure->rt > BOARD_HEIGHT-2 ||
-                         piece == WhiteKnight && closure->rt > BOARD_HEIGHT-3) /* promotion mandatory */
-                       closure->kind = c == '=' ? IllegalMove : WhitePromotion;
-                    else /* promotion optional, default is defer */
-                       closure->kind = c == '+' ? WhitePromotion : WhiteNonPromotion;
-                } else closure->kind = c == '+' ? IllegalMove : NormalMove;
-            } else {
-                if( (int) piece < (int) BlackWazir && (closure->rf < zone || closure->rt < zone) ) {
-                    if( (piece == BlackPawn || piece == BlackQueen) && closure->rt < 1 ||
-                         piece == BlackKnight && closure->rt < 2 ) /* promotion obligatory */
-                       closure->kind = c == '=' ? IllegalMove : BlackPromotion;
-                    else /* promotion optional, default is defer */
-                       closure->kind = c == '+' ? BlackPromotion : BlackNonPromotion;
-                } else closure->kind = c == '+' ? IllegalMove : NormalMove;
-            }
-        }
-        if(closure->kind == WhitePromotion || closure->kind == BlackPromotion) c = '+'; else
-        if(closure->kind == WhiteNonPromotion || closure->kind == BlackNonPromotion) c = '=';
-    } else
-    if (closure->kind == WhitePromotion || closure->kind == BlackPromotion) {
-        if(c == NULLCHAR) { // missing promoChar on mandatory promotion; use default for variant
-            if(gameInfo.variant == VariantShatranj || gameInfo.variant == VariantCourier ||
-               gameInfo.variant == VariantMakruk)
-                c = PieceToChar(BlackFerz);
-            else if(gameInfo.variant == VariantASEAN)
-                c = PieceToChar(BlackRook);
-            else if(gameInfo.variant == VariantGreat)
-                c = PieceToChar(BlackMan);
-            else if(gameInfo.variant == VariantGrand)
-                   closure->kind = closure->rt != 0 && closure->rt != BOARD_HEIGHT-1 ? NormalMove : AmbiguousMove; // no default in Grand Chess
-            else
-                c = PieceToChar(BlackQueen);
-        } else if(c == '=') closure->kind = IllegalMove; // no deferral outside Shogi
-        else if(c == 'l' && gameInfo.variant == VariantChuChess && HasLion(board, flags)) closure->kind = IllegalMove;
-    } else if (c == '+') { // '+' outside shogi, check if pieceToCharTable enabled it
-        ChessSquare p = closure->piece;
-        if(p > WhiteMan && p < BlackPawn || p > BlackMan || PieceToChar(PROMOTED(p)) != '+')
-            closure->kind = ImpossibleMove; // used on non-promotable piece
-        else if(gameInfo.variant == VariantChuChess && HasLion(board, flags)) closure->kind = IllegalMove;
-    } else if (c != NULLCHAR) closure->kind = IllegalMove;
-
-    closure->promoChar = ToLower(c); // this can be NULLCHAR! Note we keep original promoChar even if illegal.
-    if(c != '+' && c != '=' && c != NULLCHAR && CharToPiece(flags & F_WHITE_ON_MOVE ? ToUpper(c) : ToLower(c)) == EmptySquare)
-       closure->kind = ImpossibleMove; // but we cannot handle non-existing piece types!
-    if (closure->count > 1) {
-       closure->kind = AmbiguousMove;
-    }
-    if (illegal) {
-       /* Note: If more than one illegal move matches, but no legal
-          moves, we return IllegalMove, not AmbiguousMove.  Caller
-          can look at closure->count to detect this.
-       */
-       closure->kind = IllegalMove;
-    }
-}
-
-
-typedef struct {
-    /* Input */
-    ChessSquare piece;
-    int rf, ff, rt, ft;
-    /* Output */
-    ChessMove kind;
-    int rank;
-    int file;
-    int either;
-} CoordsToAlgebraicClosure;
-
-extern void CoordsToAlgebraicCallback P((Board board, int flags,
-                                        ChessMove kind, int rf, int ff,
-                                        int rt, int ft, VOIDSTAR closure));
-
-void
-CoordsToAlgebraicCallback (Board board, int flags, ChessMove kind, int rf, int ff, int rt, int ft, VOIDSTAR closure)
-{
-    register CoordsToAlgebraicClosure *cl =
-      (CoordsToAlgebraicClosure *) closure;
-
-    if ((rt == cl->rt && ft == cl->ft || rt == rf && ft == ff) && // [HGM] null move matches any toSquare
-        (board[rf][ff] == cl->piece
-         || PieceToChar(board[rf][ff]) == '~' &&
-            (ChessSquare) (DEMOTED(board[rf][ff])) == cl->piece)
-                                     ) {
-       if (rf == cl->rf) {
-           if (ff == cl->ff) {
-               cl->kind = kind; /* this is the move we want */
-           } else {
-               cl->file++; /* need file to rule out this move */
-           }
-       } else {
-           if (ff == cl->ff) {
-               cl->rank++; /* need rank to rule out this move */
-           } else {
-               cl->either++; /* rank or file will rule out this move */
-           }
-       }
-    }
-}
-
-/* Convert coordinates to normal algebraic notation.
-   promoChar must be NULLCHAR or 'x' if not a promotion.
-*/
-ChessMove
-CoordsToAlgebraic (Board board, int flags, int rf, int ff, int rt, int ft, int promoChar, char out[MOVE_LEN])
-{
-    ChessSquare piece;
-    ChessMove kind;
-    char *outp = out, c, capture;
-    CoordsToAlgebraicClosure cl;
-
-    if (rf == DROP_RANK) {
-       if(ff == EmptySquare) { strncpy(outp, "--",3); return NormalMove; } // [HGM] pass
-       /* Bughouse piece drop */
-       *outp++ = ToUpper(PieceToChar((ChessSquare) ff));
-       *outp++ = '@';
-        *outp++ = ft + AAA;
-        if(rt+ONE <= '9')
-           *outp++ = rt + ONE;
-        else { *outp++ = (rt+ONE-'0')/10 + '0';*outp++ = (rt+ONE-'0')%10 + '0'; }
-       *outp = NULLCHAR;
-       return (flags & F_WHITE_ON_MOVE) ? WhiteDrop : BlackDrop;
-    }
-
-    if (promoChar == 'x') promoChar = NULLCHAR;
-    piece = board[rf][ff];
-    if(PieceToChar(piece)=='~') piece = (ChessSquare)(DEMOTED(piece));
-
-    switch (piece) {
-      case WhitePawn:
-      case BlackPawn:
-        kind = LegalityTest(board, flags, rf, ff, rt, ft, promoChar);
-       if (kind == IllegalMove && !(flags&F_IGNORE_CHECK)) {
-           /* Keep short notation if move is illegal only because it
-               leaves the player in check, but still return IllegalMove */
-            kind = LegalityTest(board, flags|F_IGNORE_CHECK, rf, ff, rt, ft, promoChar);
-           if (kind == IllegalMove) break;
-           kind = IllegalMove;
-       }
-       /* Pawn move */
-        *outp++ = ff + AAA;
-       capture = board[rt][ft] != EmptySquare || kind == WhiteCapturesEnPassant || kind == BlackCapturesEnPassant;
-        if (ff == ft && !capture) { /* [HGM] Xiangqi has straight noncapts! */
-           /* Non-capture; use style "e5" */
-            if(rt+ONE <= '9')
-               *outp++ = rt + ONE;
-            else { *outp++ = (rt+ONE-'0')/10 + '0';*outp++ = (rt+ONE-'0')%10 + '0'; }
-       } else {
-           /* Capture; use style "exd5" */
-            if(capture)
-            *outp++ = 'x';  /* [HGM] Xiangqi has sideway noncaptures across river! */
-            *outp++ = ft + AAA;
-            if(rt+ONE <= '9')
-               *outp++ = rt + ONE;
-            else { *outp++ = (rt+ONE-'0')/10 + '0';*outp++ = (rt+ONE-'0')%10 + '0'; }
-       }
-       /* Use promotion suffix style "=Q" */
-       *outp = NULLCHAR;
-        if (promoChar != NULLCHAR) {
-            if(IS_SHOGI(gameInfo.variant)) {
-                /* [HGM] ... but not in Shogi! */
-                *outp++ = promoChar == '=' ? '=' : '+';
-            } else {
-                *outp++ = '=';
-                *outp++ = ToUpper(promoChar);
-            }
-            *outp = NULLCHAR;
-       }
-        return kind;
-
-
-      case WhiteKing:
-      case BlackKing:
-        /* Fabien moved code: FRC castling first (if KxR), wild castling second */
-       /* Code added by Tord:  FRC castling. */
-       if((piece == WhiteKing && board[rt][ft] == WhiteRook) ||
-          (piece == BlackKing && board[rt][ft] == BlackRook)) {
-         if(ft > ff)
-           safeStrCpy(out, "O-O", MOVE_LEN);
-         else
-           safeStrCpy(out, "O-O-O", MOVE_LEN);
-         return LegalityTest(board, flags, rf, ff, rt, ft, promoChar);
-       }
-       /* End of code added by Tord */
-       /* Test for castling or ICS wild castling */
-       /* Use style "O-O" (oh-oh) for PGN compatibility */
-       else if (rf == rt &&
-           rf == ((piece == WhiteKing) ? 0 : BOARD_HEIGHT-1) &&
-            (ft - ff > 1 || ff - ft > 1) &&  // No castling if legal King move (on narrow boards!)
-            ((ff == BOARD_WIDTH>>1 && (ft == BOARD_LEFT+2 || ft == BOARD_RGHT-2)) ||
-             (ff == (BOARD_WIDTH-1)>>1 && (ft == BOARD_LEFT+1 || ft == BOARD_RGHT-3)))) {
-            if(ft==BOARD_LEFT+1 || ft==BOARD_RGHT-2)
-             snprintf(out, MOVE_LEN, "O-O%c%c", promoChar ? '/' : 0, ToUpper(promoChar));
-            else
-             snprintf(out, MOVE_LEN, "O-O-O%c%c", promoChar ? '/' : 0, ToUpper(promoChar));
-
-           /* This notation is always unambiguous, unless there are
-              kings on both the d and e files, with "wild castling"
-              possible for the king on the d file and normal castling
-              possible for the other.  ICS rules for wild 9
-              effectively make castling illegal for either king in
-              this situation.  So I am not going to worry about it;
-              I'll just generate an ambiguous O-O in this case.
-           */
-            return LegalityTest(board, flags, rf, ff, rt, ft, promoChar);
-       }
-
-       /* else fall through */
-      default:
-       /* Piece move */
-       cl.rf = rf;
-       cl.ff = ff;
-       cl.rt = rFilter = rt; // [HGM] speed: filter on to-square
-       cl.ft = fFilter = ft;
-       cl.piece = piece;
-       cl.kind = IllegalMove;
-       cl.rank = cl.file = cl.either = 0;
-        c = PieceToChar(piece) ;
-        GenLegal(board, flags, CoordsToAlgebraicCallback, (VOIDSTAR) &cl, c!='~' ? piece : (DEMOTED(piece))); // [HGM] speed
-
-       if (cl.kind == IllegalMove && !(flags&F_IGNORE_CHECK)) {
-           /* Generate pretty moves for moving into check, but
-              still return IllegalMove.
-           */
-            GenLegal(board, flags|F_IGNORE_CHECK, CoordsToAlgebraicCallback, (VOIDSTAR) &cl, c!='~' ? piece : (DEMOTED(piece)));
-           if (cl.kind == IllegalMove) break;
-           cl.kind = IllegalMove;
-       }
-
-       /* Style is "Nf3" or "Nxf7" if this is unambiguous,
-          else "Ngf3" or "Ngxf7",
-          else "N1f3" or "N5xf7",
-          else "Ng1f3" or "Ng5xf7".
-       */
-        if( c == '~' || c == '+') {
-           /* [HGM] print nonexistent piece as its demoted version */
-           piece = (ChessSquare) (CHUDEMOTED(piece));
-        }
-        if(c=='+') *outp++ = c;
-        *outp++ = ToUpper(PieceToChar(piece));
-        if(*outp = PieceSuffix(piece)) outp++;
-
-       if (cl.file || (cl.either && !cl.rank)) {
-            *outp++ = ff + AAA;
-       }
-       if (cl.rank) {
-            if(rf+ONE <= '9')
-                *outp++ = rf + ONE;
-            else { *outp++ = (rf+ONE-'0')/10 + '0';*outp++ = (rf+ONE-'0')%10 + '0'; }
-       }
-
-       if(board[rt][ft] != EmptySquare)
-         *outp++ = 'x';
-
-        *outp++ = ft + AAA;
-        if(rt+ONE <= '9')
-           *outp++ = rt + ONE;
-        else { *outp++ = (rt+ONE-'0')/10 + '0';*outp++ = (rt+ONE-'0')%10 + '0'; }
-        if (IS_SHOGI(gameInfo.variant)) {
-            /* [HGM] in Shogi non-pawns can promote */
-            *outp++ = promoChar; // Don't bother to correct move type, return value is never used!
-        }
-        else if (gameInfo.variant == VariantChuChess && promoChar ||
-                 gameInfo.variant != VariantSuper && promoChar &&
-                 (piece == WhiteLance || piece == BlackLance) ) { // Lance sometimes represents Pawn
-            *outp++ = '=';
-            *outp++ = ToUpper(promoChar);
-        }
-        else if (gameInfo.variant == VariantSChess && promoChar) { // and in S-Chess we have gating
-            *outp++ = '/';
-            *outp++ = ToUpper(promoChar);
-        }
-       *outp = NULLCHAR;
-        return cl.kind;
-
-      case EmptySquare:
-       /* Moving a nonexistent piece */
-       break;
-    }
-
-    /* Not a legal move, even ignoring check.
-       If there was a piece on the from square,
-       use style "Ng1g3" or "Ng1xe8";
-       if there was a pawn or nothing (!),
-       use style "g1g3" or "g1xe8".  Use "x"
-       if a piece was on the to square, even
-       a piece of the same color.
-    */
-    outp = out;
-    c = 0;
-    if (piece != EmptySquare && piece != WhitePawn && piece != BlackPawn) {
-       int r, f;
-      for(r=0; r<BOARD_HEIGHT; r++) for(f=BOARD_LEFT; f<=BOARD_RGHT; f++)
-               c += (board[r][f] == piece); // count on-board pieces of given type
-        *outp = PieceToChar(piece);
-        if(*outp == '+') outp++, piece = CHUDEMOTED(piece);
-        *outp++ = ToUpper(PieceToChar(piece));
-        if(*outp = PieceSuffix(piece)) outp++;
-    }
-  if(c != 1) { // [HGM] but if there is only one piece of the mentioned type, no from-square, thank you!
-    *outp++ = ff + AAA;
-    if(rf+ONE <= '9')
-       *outp++ = rf + ONE;
-    else { *outp++ = (rf+ONE-'0')/10 + '0';*outp++ = (rf+ONE-'0')%10 + '0'; }
-  }
-    if (board[rt][ft] != EmptySquare) *outp++ = 'x';
-    *outp++ = ft + AAA;
-    if(rt+ONE <= '9')
-       *outp++ = rt + ONE;
-    else { *outp++ = (rt+ONE-'0')/10 + '0';*outp++ = (rt+ONE-'0')%10 + '0'; }
-    /* Use promotion suffix style "=Q" */
-    if (promoChar != NULLCHAR && promoChar != 'x') {
-       *outp++ = '=';
-       *outp++ = ToUpper(promoChar);
-    }
-    *outp = NULLCHAR;
-
-    return IllegalMove;
-}
-
-// [HGM] XQ: the following code serves to detect perpetual chasing (Asian rules)
-
-typedef struct {
-    /* Input */
-    int rf, ff, rt, ft;
-    /* Output */
-    int recaptures;
-} ChaseClosure;
-
-// I guess the following variables logically belong in the closure too, but I was too lazy and used globals
-
-int preyStackPointer, chaseStackPointer;
-
-struct {
-unsigned char rf, ff, rt, ft;
-} chaseStack[100];
-
-struct {
-unsigned char rank, file;
-} preyStack[100];
-
-
-
-
-// there are three new callbacks for use with GenLegal: for adding captures, deleting them, and finding a recapture
-
-extern void AtacksCallback P((Board board, int flags, ChessMove kind,
-                               int rf, int ff, int rt, int ft,
-                               VOIDSTAR closure));
-
-void
-AttacksCallback (Board board, int flags, ChessMove kind, int rf, int ff, int rt, int ft, VOIDSTAR closure)
-{   // For adding captures that can lead to chase indictment to the chaseStack
-    if(board[rt][ft] == EmptySquare) return;                               // non-capture
-    if(board[rt][ft] == WhitePawn && rt <  BOARD_HEIGHT/2) return;         // Pawn before river can be chased
-    if(board[rt][ft] == BlackPawn && rt >= BOARD_HEIGHT/2) return;         // Pawn before river can be chased
-    if(board[rf][ff] == WhitePawn  || board[rf][ff] == BlackPawn)  return; // Pawns are allowed to chase
-    if(board[rf][ff] == WhiteWazir || board[rf][ff] == BlackWazir) return; // King is allowed to chase
-    // move cannot be excluded from being a chase trivially (based on attacker and victim); save it on chaseStack
-    chaseStack[chaseStackPointer].rf = rf;
-    chaseStack[chaseStackPointer].ff = ff;
-    chaseStack[chaseStackPointer].rt = rt;
-    chaseStack[chaseStackPointer].ft = ft;
-    chaseStackPointer++;
-}
-
-extern void ExistingAtacksCallback P((Board board, int flags, ChessMove kind,
-                               int rf, int ff, int rt, int ft,
-                               VOIDSTAR closure));
-
-void
-ExistingAttacksCallback (Board board, int flags, ChessMove kind, int rf, int ff, int rt, int ft, VOIDSTAR closure)
-{   // for removing pre-exsting captures from the chaseStack, to be left with newly created ones
-    int i;
-    register ChaseClosure *cl = (ChaseClosure *) closure; //closure tells us the move played in the repeat loop
-
-    if(board[rt][ft] == EmptySquare) return; // no capture
-    if(rf == cl->rf && ff == cl->ff) { // attacks with same piece from new position are not considered new
-       rf = cl->rt; ff = cl->ft;      // doctor their fromSquare so they will be recognized in chaseStack
-    }
-    // search move in chaseStack, and delete it if it occurred there (as we know now it is not a new capture)
-    for(i=0; i<chaseStackPointer; i++) {
-       if(chaseStack[i].rf == rf && chaseStack[i].ff == ff &&
-          chaseStack[i].rt == rt && chaseStack[i].ft == ft   ) {
-           // move found on chaseStack, delete it by overwriting with move popped from top of chaseStack
-           chaseStack[i] = chaseStack[--chaseStackPointer];
-           break;
-       }
-    }
-}
-
-extern void ProtectedCallback P((Board board, int flags, ChessMove kind,
-                               int rf, int ff, int rt, int ft,
-                               VOIDSTAR closure));
-
-void
-ProtectedCallback (Board board, int flags, ChessMove kind, int rf, int ff, int rt, int ft, VOIDSTAR closure)
-{   // for determining if a piece (given through the closure) is protected
-    register ChaseClosure *cl = (ChaseClosure *) closure; // closure tells us where to recapture
-
-    if(rt == cl->rt && ft == cl->ft) cl->recaptures++;    // count legal recaptures to this square
-    if(appData.debugMode && board[rt][ft] != EmptySquare)
-       fprintf(debugFP, "try %c%c%c%c=%d\n", ff+AAA, rf+ONE,ft+AAA, rt+ONE, cl->recaptures);
-}
-
-extern char moveList[MAX_MOVES][MOVE_LEN];
-
-int
-PerpetualChase (int first, int last)
-{   // this routine detects if the side to move in the 'first' position is perpetually chasing (when not checking)
-    int i, j, k, tail;
-    ChaseClosure cl;
-    ChessSquare captured;
-
-    preyStackPointer = 0;        // clear stack of chased pieces
-    for(i=first; i<last; i+=2) { // for all positions with same side to move
-        if(appData.debugMode) fprintf(debugFP, "judge position %i\n", i);
-       chaseStackPointer = 0;   // clear stack that is going to hold possible chases
-       // determine all captures possible after the move, and put them on chaseStack
-       GenLegal(boards[i+1], PosFlags(i), AttacksCallback, &cl, EmptySquare);
-       if(appData.debugMode) { int n;
-           for(n=0; n<chaseStackPointer; n++)
-                fprintf(debugFP, "%c%c%c%c ", chaseStack[n].ff+AAA, chaseStack[n].rf+ONE,
-                                              chaseStack[n].ft+AAA, chaseStack[n].rt+ONE);
-            fprintf(debugFP, ": all capts\n");
-       }
-       // determine all captures possible before the move, and delete them from chaseStack
-       cl.rf = moveList[i][1]-ONE; // prepare closure to pass move that led from i to i+1
-       cl.ff = moveList[i][0]-AAA+BOARD_LEFT;
-       cl.rt = moveList[i][3]-ONE;
-       cl.ft = moveList[i][2]-AAA+BOARD_LEFT;
-       CopyBoard(xqCheckers, nullBoard); xqCheckers[EP_STATUS] = 1; // giant kludge to make GenLegal ignore pre-existing checks
-       GenLegal(boards[i],   PosFlags(i), ExistingAttacksCallback, &cl, EmptySquare);
-       xqCheckers[EP_STATUS] = 0; // disable the generation of quasi-legal moves again
-       if(appData.debugMode) { int n;
-           for(n=0; n<chaseStackPointer; n++)
-                fprintf(debugFP, "%c%c%c%c ", chaseStack[n].ff+AAA, chaseStack[n].rf+ONE,
-                                              chaseStack[n].ft+AAA, chaseStack[n].rt+ONE);
-            fprintf(debugFP, ": new capts after %c%c%c%c\n", cl.ff+AAA, cl.rf+ONE, cl.ft+AAA, cl.rt+ONE);
-       }
-       // chaseSack now contains all captures made possible by the move
-       for(j=0; j<chaseStackPointer; j++) { // run through chaseStack to identify true chases
-            int attacker = (int)boards[i+1][chaseStack[j].rf][chaseStack[j].ff];
-            int victim   = (int)boards[i+1][chaseStack[j].rt][chaseStack[j].ft];
-
-           if(attacker >= (int) BlackPawn) attacker = BLACK_TO_WHITE attacker; // convert to white, as piecee type
-           if(victim   >= (int) BlackPawn) victim   = BLACK_TO_WHITE victim;
-
-           if((attacker == WhiteKnight || attacker == WhiteCannon) && victim == WhiteRook)
-               continue; // C or H attack on R is always chase; leave on chaseStack
-
-           if(attacker == victim) {
-                if(LegalityTest(boards[i+1], PosFlags(i+1), chaseStack[j].rt,
-                   chaseStack[j].ft, chaseStack[j].rf, chaseStack[j].ff, NULLCHAR) == NormalMove) {
-                       // we can capture back with equal piece, so this is no chase but a sacrifice
-                        chaseStack[j] = chaseStack[--chaseStackPointer]; // delete the capture from the chaseStack
-                       j--; /* ! */ continue;
-               }
-
-           }
-
-           // the attack is on a lower piece, or on a pinned or blocked equal one
-           CopyBoard(xqCheckers, nullBoard); xqCheckers[EP_STATUS] = 1;
-           CheckTest(boards[i+1], PosFlags(i+1), -1, -1, -1, -1, FALSE); // if we deliver check with our move, the checkers get marked
-            // test if the victim is protected by a true protector. First make the capture.
-           captured = boards[i+1][chaseStack[j].rt][chaseStack[j].ft];
-           boards[i+1][chaseStack[j].rt][chaseStack[j].ft] = boards[i+1][chaseStack[j].rf][chaseStack[j].ff];
-           boards[i+1][chaseStack[j].rf][chaseStack[j].ff] = EmptySquare;
-           // Then test if the opponent can recapture
-           cl.recaptures = 0;         // prepare closure to pass recapture square and count moves to it
-           cl.rt = chaseStack[j].rt;
-           cl.ft = chaseStack[j].ft;
-           if(appData.debugMode) {
-               fprintf(debugFP, "test if we can recapture %c%c\n", cl.ft+AAA, cl.rt+ONE);
-           }
-           xqCheckers[EP_STATUS] = 2; // causes GenLegal to ignore the checks we delivered with the move, in real life evaded before we captured
-            GenLegal(boards[i+1], PosFlags(i+1), ProtectedCallback, &cl, EmptySquare); // try all moves
-           xqCheckers[EP_STATUS] = 0; // disable quasi-legal moves again
-           // unmake the capture
-           boards[i+1][chaseStack[j].rf][chaseStack[j].ff] = boards[i+1][chaseStack[j].rt][chaseStack[j].ft];
-            boards[i+1][chaseStack[j].rt][chaseStack[j].ft] = captured;
-           // if a recapture was found, piece is protected, and we are not chasing it.
-           if(cl.recaptures) { // attacked piece was defended by true protector, no chase
-               chaseStack[j] = chaseStack[--chaseStackPointer]; // so delete from chaseStack
-               j--; /* ! */
-           }
-       }
-       // chaseStack now contains all moves that chased
-       if(appData.debugMode) { int n;
-           for(n=0; n<chaseStackPointer; n++)
-                fprintf(debugFP, "%c%c%c%c ", chaseStack[n].ff+AAA, chaseStack[n].rf+ONE,
-                                              chaseStack[n].ft+AAA, chaseStack[n].rt+ONE);
-            fprintf(debugFP, ": chases\n");
-       }
-        if(i == first) { // copy all people chased by first move of repeat cycle to preyStack
-           for(j=0; j<chaseStackPointer; j++) {
-                preyStack[j].rank = chaseStack[j].rt;
-                preyStack[j].file = chaseStack[j].ft;
-           }
-           preyStackPointer = chaseStackPointer;
-       }
-       tail = 0;
-        for(j=0; j<chaseStackPointer; j++) {
-           for(k=0; k<preyStackPointer; k++) {
-               // search the victim of each chase move on the preyStack (first occurrence)
-               if(chaseStack[j].ft == preyStack[k].file && chaseStack[j].rt == preyStack[k].rank ) {
-                   if(k < tail) break; // piece was already identified as still being chased
-                   preyStack[preyStackPointer] = preyStack[tail]; // move chased piece to bottom part of preyStack
-                   preyStack[tail] = preyStack[k];                // by swapping
-                   preyStack[k] = preyStack[preyStackPointer];
-                   tail++;
-                   break;
-               }
-           }
-       }
-        preyStackPointer = tail; // keep bottom part of preyStack, popping pieces unchased on move i.
-       if(appData.debugMode) { int n;
-            for(n=0; n<preyStackPointer; n++)
-                fprintf(debugFP, "%c%c ", preyStack[n].file+AAA, preyStack[n].rank+ONE);
-            fprintf(debugFP, "always chased upto ply %d\n", i);
-       }
-        // now adjust the location of the chased pieces according to opponent move
-        for(j=0; j<preyStackPointer; j++) {
-            if(preyStack[j].rank == moveList[i+1][1]-ONE &&
-               preyStack[j].file == moveList[i+1][0]-AAA+BOARD_LEFT) {
-                preyStack[j].rank = moveList[i+1][3]-ONE;
-                preyStack[j].file = moveList[i+1][2]-AAA+BOARD_LEFT;
-                break;
-            }
-        }
-    }
-    return preyStackPointer ? 256*(preyStack[preyStackPointer].file - BOARD_LEFT + AAA) + (preyStack[preyStackPointer].rank + ONE)
-                               : 0; // if any piece was left on preyStack, it has been perpetually chased,and we return the
-}
diff --git a/moves.h b/moves.h
deleted file mode 100644 (file)
index 4a02a19..0000000
--- a/moves.h
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- * moves.h - Move generation and checking
- *
- * Copyright 1991 by Digital Equipment Corporation, Maynard,
- * Massachusetts.
- *
- * Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006,
- * 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free
- * Software Foundation, Inc.
- *
- * Enhancements Copyright 2005 Alessandro Scotti
- *
- * The following terms apply to Digital Equipment Corporation's copyright
- * interest in XBoard:
- * ------------------------------------------------------------------------
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notice appear in all copies and that
- * both that copyright notice and this permission notice appear in
- * supporting documentation, and that the name of Digital not be
- * used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- *
- * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- * ------------------------------------------------------------------------
- *
- * The following terms apply to the enhanced version of XBoard
- * distributed by the Free Software Foundation:
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-#define SUFFIXES "'!"
-
-extern ChessSquare PromoPiece P((ChessMove moveType));
-extern ChessMove PromoCharToMoveType P((int whiteOnMove, int promoChar));
-extern char PieceSuffix P((ChessSquare p));
-extern ChessSquare CharToPiece P((int c));
-extern int PieceToNumber P((ChessSquare p));
-
-extern void CopyBoard P((Board to, Board from));
-extern int CompareBoards P((Board board1, Board board2));
-extern unsigned char pieceToChar[(int)EmptySquare+1];
-extern unsigned char pieceNickName[(int)EmptySquare];
-extern int promoPartner[(int)EmptySquare];
-extern char *pieceDesc[(int)EmptySquare];
-extern Board initialPosition;
-extern Boolean pieceDefs;
-
-typedef void (*MoveCallback) P((Board board, int flags, ChessMove kind,
-                               int rf, int ff, int rt, int ft,
-                               VOIDSTAR closure));
-
-/* Values for flags arguments */
-#define F_WHITE_ON_MOVE 1
-#define F_WHITE_KCASTLE_OK 2
-#define F_WHITE_QCASTLE_OK 4
-#define F_BLACK_KCASTLE_OK 8
-#define F_BLACK_QCASTLE_OK 16
-#define F_ALL_CASTLE_OK (F_WHITE_KCASTLE_OK | F_WHITE_QCASTLE_OK | \
-                        F_BLACK_KCASTLE_OK | F_BLACK_QCASTLE_OK)
-#define F_IGNORE_CHECK 32
-#define F_KRIEGSPIEL_CAPTURE 64 /* pawns can try to capture invisible pieces */
-#define F_ATOMIC_CAPTURE 128    /* capturing piece explodes, destroying itself
-                                  and all non-pawns on adjacent squares;
-                                  destroying your own king is illegal */
-#define F_FRC_TYPE_CASTLING 256 /* generate castlings as captures of own Rook */
-#define F_MANDATORY_CAPTURE 0x200
-#define F_NULL_MOVE         0x400
-
-/* Special epfile values. [HGM] positive values are non-reversible moves! */
-#define EP_NONE (-6)           /* [HGM] Tricky! order matters:            */
-#define EP_UNKNOWN (-1)        /*       >= EP_UNKNOWN spoils rep-draw     */
-#define EP_CAPTURE (-2)        /*       <= EP_NONE is reversible move     */
-#define EP_PAWN_MOVE (-3)
-#define EP_IRON_LION (-4)
-#define EP_ROYAL_LION (-5)
-#define EP_REP_DRAW   (-15)
-#define EP_RULE_DRAW  (-14)
-#define EP_INSUF_DRAW  (-13)
-#define EP_DRAWS (-10)
-#define EP_WINS (-9)
-#define EP_BEROLIN_A 16        /* [HGM] berolina: add to file if pawn to be taken of a-side of e.p.file */
-#define EP_CHECKMATE 100       /* [HGM] verify: record mates in epStatus for easy claim verification    */
-#define EP_STALEMATE -16
-
-/* Call callback once for each pseudo-legal move in the given
-   position, except castling moves.  A move is pseudo-legal if it is
-   legal, or if it would be legal except that it leaves the king in
-   check.  In the arguments, epfile is EP_NONE if the previous move
-   was not a double pawn push, or the file 0..7 if it was, or
-   EP_UNKNOWN if we don't know and want to allow all e.p. captures.
-   Promotion moves generated are to Queen only.
-*/
-extern void GenPseudoLegal P((Board board, int flags,
-                             MoveCallback callback, VOIDSTAR closure, ChessSquare filter));
-
-/* Like GenPseudoLegal, but include castling moves and (unless
-   F_IGNORE_CHECK is set in the flags) omit moves that would leave the
-   king in check.  The CASTLE_OK flags are true if castling is not yet
-   ruled out by a move of the king or rook.  Return TRUE if the player
-   on move is currently in check and F_IGNORE_CHECK is not set.
-*/
-extern int GenLegal P((Board board, int flags,
-                       MoveCallback callback, VOIDSTAR closure, ChessSquare filter));
-
-/* If the player on move were to move from (rf, ff) to (rt, ft), would
-   he leave himself in check?  Or if rf == -1, is the player on move
-   in check now?  enPassant must be TRUE if the indicated move is an
-   e.p. capture.  The possibility of castling out of a check along the
-   back rank is not accounted for (i.e., we still return nonzero), as
-   this is illegal anyway.  Return value is the number of times the
-   king is in check. */
-extern int CheckTest P((Board board, int flags,
-                       int rf, int ff, int rt, int ft, int enPassant));
-
-/* Is a move from (rf, ff) to (rt, ft) legal for the player whom the
-   flags say is on move?  Other arguments as in GenPseudoLegal.
-   Returns the type of move made, taking promoChar into account. */
-extern ChessMove LegalityTest P((Board board, int flags,
-                                int rf, int ff, int rt, int ft,
-                                int promoChar));
-
-#define MT_NONE 0
-#define MT_CHECK 1
-#define MT_CHECKMATE 2
-#define MT_STALEMATE 3
-#define MT_STAINMATE 4 /* [HGM] xq: for games where being stalemated counts as a loss    */
-#define MT_STEALMATE 5 /* [HGM] losers: for games where being stalemated counts as a win */
-#define MT_TRICKMATE 6 /* [HGM] losers: for games where being checkmated counts as a win */
-#define MT_BARE      7 /* [HGM] shatranj: for games where having bare king loses         */
-#define MT_DRAW      8 /* [HGM] shatranj: other draws                                    */
-#define MT_NOKING    9 /* [HGM] atomic: for games lost through king capture              */
-
-/* Return MT_NONE, MT_CHECK, MT_CHECKMATE, or MT_STALEMATE */
-extern int MateTest P((Board board, int flags));
-
-typedef struct {
-    /* Input data */
-    ChessSquare pieceIn;        /* EmptySquare if unknown */
-    int rfIn, ffIn, rtIn, ftIn; /* -1 if unknown */
-    int promoCharIn;            /* NULLCHAR if unknown */
-    /* Output data for matched move */
-    ChessMove kind;
-    ChessSquare piece;
-    int rf, ff, rt, ft;
-    int promoChar; /* 'q' if a promotion and promoCharIn was NULLCHAR */
-    int count;     /* Number of possibilities found */
-    int captures;  /* [HGM] oneclick: number of matching captures */
-} DisambiguateClosure;
-
-/* Disambiguate a partially-known move */
-void Disambiguate P((Board board, int flags, DisambiguateClosure *closure));
-
-
-/* Convert coordinates to normal algebraic notation.
-   promoChar must be NULLCHAR or '.' if not a promotion.
-*/
-ChessMove CoordsToAlgebraic P((Board board, int flags,
-                              int rf, int ff, int rt, int ft,
-                              int promoChar, char out[MOVE_LEN]));
-
-extern int quickFlag, killX, killY, kill2X, kill2Y, legNr;
diff --git a/nengineoutput.c b/nengineoutput.c
deleted file mode 100644 (file)
index 70fc936..0000000
+++ /dev/null
@@ -1,197 +0,0 @@
-/*
- * Engine output (PV)
- *
- * Author: Alessandro Scotti (Dec 2005)
- *
- * Copyright 2005 Alessandro Scotti
- *
- * Enhancements Copyright 2009, 2010, 2011, 2012, 2013, 2014, 2015,
- * 2016 Free Software Foundation, Inc.
- *
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.
- *
- * ------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-#include "config.h"
-
-#include <stdio.h>
-#include <ctype.h>
-#include <errno.h>
-#include <sys/types.h>
-
-#if STDC_HEADERS
-# include <stdlib.h>
-# include <string.h>
-#else /* not STDC_HEADERS */
-extern char *getenv();
-# if HAVE_STRING_H
-#  include <string.h>
-# else /* not HAVE_STRING_H */
-#  include <strings.h>
-# endif /* not HAVE_STRING_H */
-#endif /* not STDC_HEADERS */
-
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
-#include "common.h"
-#include "frontend.h"
-#include "backend.h"
-#include "dialogs.h"
-#include "menus.h"
-#include "engineoutput.h"
-#include "gettext.h"
-
-#ifdef ENABLE_NLS
-# define  _(s) gettext (s)
-# define N_(s) gettext_noop (s)
-#else
-# define  _(s) (s)
-# define N_(s)  s
-#endif
-
-
-/* Module variables */
-int  windowMode = 1;
-
-char *mem1, *mem2; // dummies, as this dialog can never be OK'ed
-int highTextStart[2], highTextEnd[2];
-
-int MemoProc P((Option *opt, int n, int x, int y, char *text, int index));
-
-Option engoutOptions[] = {
-{  0,  LL|T2T,           18, NULL, NULL, NULL, NULL, Icon, " " },
-{  0, L2L|T2T|SAME_ROW, 162, NULL, NULL, NULL, NULL, Label, N_("engine name") },
-{  0,     T2T|SAME_ROW,  30, NULL, NULL, NULL, NULL, Icon, " " },
-/* TRANSLATORS: noun, as in "the move Nf3"*/
-{  0, R2R|T2T|SAME_ROW, 188, NULL, NULL, NULL, NULL, Label, N_("move") },
-{  0,  RR|T2T|SAME_ROW,  80, NULL, NULL, NULL, NULL, Label, N_("NPS") },
-{200, T_VSCRL | T_TOP,  500, NULL, (void*) &mem1, NULL, (char**) MemoProc, TextBox, "", &appData.historyFont },
-{  0,         0,         0, NULL, NULL, "", NULL, Break , "" },
-{  0,  LL|T2T,           18, NULL, NULL, NULL, NULL, Icon, " " },
-{  0, L2L|T2T|SAME_ROW, 162, NULL, NULL, NULL, NULL, Label, N_("engine name") },
-{  0,     T2T|SAME_ROW,  30, NULL, NULL, NULL, NULL, Icon, " " },
-/* TRANSLATORS: noun, as in "the move Nf3"*/
-{  0, R2R|T2T|SAME_ROW, 188, NULL, NULL, NULL, NULL, Label, N_("move") },
-{  0,  RR|T2T|SAME_ROW,  80, NULL, NULL, NULL, NULL, Label, N_("NPS") },
-{200, T_VSCRL | T_TOP,  500, NULL, (void*) &mem2, NULL, (char**) MemoProc, TextBox, "", &appData.historyFont },
-{   0,      NO_OK,       0, NULL, NULL, "", NULL, EndMark , "" }
-};
-
-int
-MemoProc (Option *opt, int n, int x, int y, char *text, int index)
-{   // user callback for mouse events in memo
-    static int pressed; // keep track of button 3 state
-    int start, end, currentPV = (opt != &engoutOptions[5]);
-
-    switch(n) {
-      case 0: // pointer motion
-       if(!pressed) return FALSE; // only motion with button 3 down is of interest
-       MovePV(x, y, 500/*lineGap + BOARD_HEIGHT * (squareSize + lineGap)*/);
-       break;
-      case 3: // press button 3
-       pressed = 1;
-       if(LoadMultiPV(x, y, text, index, &start, &end, currentPV)) {
-           highTextStart[currentPV] = start; highTextEnd[currentPV] = end;
-           HighlightText(&engoutOptions[currentPV ? 12 : 5], start, end, TRUE);
-       }
-       break;
-      case -3: // release button 3
-       pressed = 0;
-        if(highTextStart[currentPV] != highTextEnd[currentPV])
-            HighlightText(&engoutOptions[currentPV ? 12 : 5], highTextStart[currentPV], highTextEnd[currentPV], FALSE);
-        highTextStart[currentPV] = highTextEnd[currentPV] = 0;
-        UnLoadPV();
-       break;
-      default:
-       return FALSE; // not meant for us; do regular event handler
-    }
-    return TRUE;
-}
-
-void
-SetIcon (int which, int field, int nIcon)
-{   // first call into xengineoutput.c to pick up icon pixmap
-    if( nIcon ) DrawWidgetIcon(&engoutOptions[STRIDE*which + field - 1], nIcon);
-}
-
-void
-DoSetWindowText (int which, int field, char *s_label)
-{
-       SetWidgetLabel (&engoutOptions[STRIDE*which + field - 1], s_label);
-}
-
-void
-SetEngineOutputTitle (char *title)
-{
-       SetDialogTitle(EngOutDlg, title);
-}
-
-
-void
-DoClearMemo (int which)
-{
-      SetWidgetText(&engoutOptions[STRIDE*which + MEMO], "", -1);
-}
-
-void
-EngineOutputPopUp ()
-{
-    static int  needInit = TRUE;
-    static char *title = N_("Engine output");
-
-    if (GenericPopUp(engoutOptions, _(title), EngOutDlg, BoardWindow, NONMODAL, appData.topLevel)) {
-       if(engoutOptions[STRIDE-1].type != Break)
-           DisplayFatalError(_("Mismatch of STRIDE in nengineoutput.c\nChange and recompile!"), 0, 2);
-       AddHandler(&engoutOptions[MEMO], EngOutDlg, 6);
-       AddHandler(&engoutOptions[MEMO+STRIDE], EngOutDlg, 6);
-       if( needInit ) {
-           InitEngineOutput(&engoutOptions[0], &engoutOptions[MEMO]); // make icon bitmaps
-           needInit = FALSE;
-       }
-        SetEngineColorIcon( 0 );
-        SetEngineColorIcon( 1 );
-        SetEngineState( 0, STATE_IDLE, "" );
-        SetEngineState( 1, STATE_IDLE, "" );
-    } else {
-       SetIconName(EngOutDlg, _(title));
-       SetDialogTitle(EngOutDlg, _(title));
-    }
-
-    MarkMenu("View.EngineOutput", EngOutDlg);
-
-    ShowThinkingEvent(); // [HGM] thinking: might need to prompt engine for thinking output
-}
-
-int
-EngineOutputIsUp ()
-{
-    return shellUp[EngOutDlg];
-}
-
-int
-EngineOutputDialogExists ()
-{
-    return DialogExists(EngOutDlg);
-}
-
-void
-EngineOutputProc ()
-{
-  if (!PopDown(EngOutDlg)) EngineOutputPopUp();
-}
diff --git a/nevalgraph.c b/nevalgraph.c
deleted file mode 100644 (file)
index 8fdef4b..0000000
+++ /dev/null
@@ -1,195 +0,0 @@
-/*
- * Evaluation graph
- *
- * Author: Alessandro Scotti (Dec 2005)
- * Translated to X by H.G.Muller (Nov 2009)
- *
- * Copyright 2005 Alessandro Scotti
- *
- * Enhancements Copyright 2009, 2010, 2011, 2012, 2013, 2014, 2015,
- * 2016 Free Software Foundation, Inc.
- *
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.
- *
- * ------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-#include "config.h"
-
-#include <stdio.h>
-#include <ctype.h>
-#include <errno.h>
-#include <sys/types.h>
-
-#if STDC_HEADERS
-# include <stdlib.h>
-# include <string.h>
-#else /* not STDC_HEADERS */
-extern char *getenv();
-# if HAVE_STRING_H
-#  include <string.h>
-# else /* not HAVE_STRING_H */
-#  include <strings.h>
-# endif /* not HAVE_STRING_H */
-#endif /* not STDC_HEADERS */
-
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
-#include "common.h"
-#include "backend.h"
-#include "dialogs.h"
-#include "menus.h"
-#include "evalgraph.h"
-#include "draw.h"
-#include "gettext.h"
-
-#ifdef ENABLE_NLS
-# define  _(s) gettext (s)
-# define N_(s) gettext_noop (s)
-#else
-# define  _(s) (s)
-# define N_(s)  s
-#endif
-
-static char *title[2] = { N_("Evaluation graph"), N_("Blunder graph") };
-Option *disp;
-
-/* Module variables */
-
-static Option *EvalCallback P((int button, int x, int y));
-
-static int initDone = FALSE;
-
-static void
-InitializeEvalGraph (Option *opt, int w, int h)
-{
-  nWidthPB = w, nHeightPB = h;
-
-  initDone = TRUE;
-}
-
-// The following stuff is really back-end (but too little to bother with a separate file)
-
-static void
-EvalClick (int x, int y)
-{
-    int index = GetMoveIndexFromPoint( x, y );
-
-    if( index >= 0 && index < currLast ) ToNrEvent( index + 1 );
-}
-
-static Option graphOptions[] = {
-{ 150, 0x9C, 300, NULL, (void*) &EvalCallback, NULL, NULL, Graph , "" },
-{ 0, 2, 0, NULL, NULL, "", NULL, EndMark , "" }
-};
-
-static void
-DisplayEvalGraph ()
-{   // back-end painting; calls back front-end primitives for lines, rectangles and text
-    char *t = MakeEvalTitle(_(title[differentialView]));
-    nWidthPB = disp->max; nHeightPB = disp->value;
-    if(t != title[differentialView] && nWidthPB < 340)
-       t = MakeEvalTitle(nWidthPB < 240 ? "" : differentialView ? _("Blunder") : _("Eval"));
-    PaintEvalGraph();
-    GraphExpose(graphOptions, 0, 0, nWidthPB, nHeightPB);
-    SetDialogTitle(EvalGraphDlg, t);
-}
-
-static Option *
-EvalCallback (int button, int x, int y)
-{
-    int dir = appData.zoom + 1;
-    if(!initDone) return NULL;
-
-    switch(button) {
-       case 3: dir = 0; differentialView = !differentialView;
-       case 4: dir -= 2;
-       case 5: if(dir > 0) appData.zoom = dir;
-       case 10: // expose event
-           /* Create or recreate paint box if needed */
-           if(x != nWidthPB || y != nHeightPB) {
-               InitializeEvalGraph(&graphOptions[0], x, y);
-           }
-           nWidthPB = x;
-           nHeightPB = y;
-           DisplayEvalGraph();
-           break;
-       case 1: EvalClick(x, y); // left button
-       default: break; // other buttons ignored
-    }
-    return NULL; // no context menu!
-}
-
-void
-EvalGraphPopUp ()
-{
-    if (GenericPopUp(graphOptions, _(title[differentialView]), EvalGraphDlg, BoardWindow, NONMODAL, appData.topLevel)) {
-       InitializeEvalGraph(&graphOptions[0], wpEvalGraph.width, wpEvalGraph.height); // first time: add callbacks and initialize pens
-       disp = graphOptions;
-    } else {
-       SetDialogTitle(EvalGraphDlg, _(title[differentialView]));
-       SetIconName(EvalGraphDlg, _(title[differentialView]));
-    }
-
-    MarkMenu("View.EvaluationGraph", EvalGraphDlg);
-
-//    ShowThinkingEvent(); // [HGM] thinking: might need to prompt engine for thinking output
-}
-
-void
-EvalGraphPopDown ()
-{
-    PopDown(EvalGraphDlg);
-
-//    ShowThinkingEvent(); // [HGM] thinking: might need to shut off thinking output
-}
-
-Boolean
-EvalGraphIsUp ()
-{
-    return shellUp[EvalGraphDlg];
-}
-
-int
-EvalGraphDialogExists ()
-{
-    return DialogExists(EvalGraphDlg);
-}
-
-void
-EvalGraphProc ()
-{
-  if (!PopDown(EvalGraphDlg)) EvalGraphPopUp();
-}
-
-// This function is the interface to the back-end.
-
-void
-EvalGraphSet (int first, int last, int current, ChessProgramStats_Move * pvInfo)
-{
-    /* [AS] Danger! For now we rely on the pvInfo parameter being a static variable! */
-
-    currFirst = first;
-    currLast = last;
-    currCurrent = current;
-    currPvInfo = pvInfo;
-
-    if( DialogExists(EvalGraphDlg) ) {
-        DisplayEvalGraph();
-    }
-}
diff --git a/ngamelist.c b/ngamelist.c
deleted file mode 100644 (file)
index 3d2b417..0000000
+++ /dev/null
@@ -1,387 +0,0 @@
-/*
- * ngamelist.c -- Game list window, Xt-independent front-end code for XBoard
- *
- * Copyright 1995, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free Software Foundation, Inc.
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-#include "config.h"
-
-#include <stdio.h>
-#include <ctype.h>
-#include <errno.h>
-#include <sys/types.h>
-
-#if STDC_HEADERS
-# include <stdlib.h>
-# include <string.h>
-#else /* not STDC_HEADERS */
-extern char *getenv();
-# if HAVE_STRING_H
-#  include <string.h>
-# else /* not HAVE_STRING_H */
-#  include <strings.h>
-# endif /* not HAVE_STRING_H */
-#endif /* not STDC_HEADERS */
-
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
-#include "common.h"
-#include "frontend.h"
-#include "backend.h"
-#include "dialogs.h"
-#include "menus.h"
-#include "gettext.h"
-
-#ifdef ENABLE_NLS
-# define  _(s) gettext (s)
-# define N_(s) gettext_noop (s)
-#else
-# define  _(s) (s)
-# define N_(s)  s
-#endif
-
-
-static char filterString[MSG_SIZ];
-static int listLength, wins, losses, draws, page;
-int narrowFlag;
-
-
-typedef struct {
-    short int x, y;
-    short int w, h;
-    FILE *fp;
-    char *filename;
-    char **strings;
-} GameListClosure;
-static GameListClosure *glc = NULL;
-
-static char *filterPtr;
-static char *list[1003];
-static int listEnd;
-
-static int GameListPrepare P((int byPos, int narrow));
-static void GameListReplace P((int page));
-static void GL_Button P((int n));
-
-Option gamesOptions[] = {
-{ 200,  LR|TB,     400, NULL, (void*) list,       NULL, NULL, ListBox, "", &appData.gameListFont },
-{   0,  0,         100, NULL, (void*) &filterPtr, "", NULL, TextBox, "" },
-{   4,  SAME_ROW,    0, NULL, (void*) &GL_Button, NULL, NULL, Button, N_("find position") },
-{   2,  SAME_ROW,    0, NULL, (void*) &GL_Button, NULL, NULL, Button, N_("narrow") }, // buttons referred to by ID in value (=first) field!
-{   3,  SAME_ROW,    0, NULL, (void*) &GL_Button, NULL, NULL, Button, N_("thresholds") },
-{   9,  SAME_ROW,    0, NULL, (void*) &GL_Button, NULL, NULL, Button, N_("tags") },
-{   5,  SAME_ROW,    0, NULL, (void*) &GL_Button, NULL, NULL, Button, N_("next") },
-{   6,  SAME_ROW,    0, NULL, (void*) &GL_Button, NULL, NULL, Button, N_("close") },
-{   0,  SAME_ROW | NO_OK, 0, NULL, NULL, "", NULL, EndMark , "" }
-};
-
-static void
-GL_Button (int n)
-{
-    int index;
-    n = gamesOptions[n].value; // use marker in option rather than n itself, for more easy adding/deletng of buttons
-    if (n == 6) { // close
-       PopDown(GameListDlg);
-       return;
-    }
-    if (n == 3) { // thresholds
-       LoadOptionsPopUp(GameListDlg);
-       return;
-    }
-    if (n == 9) { // tags
-       GameListOptionsPopUp(GameListDlg);
-       return;
-    }
-    index = SelectedListBoxItem(&gamesOptions[0]);
-    if (n == 7) { // load
-       if (index < 0) {
-           DisplayError(_("No game selected"), 0);
-           return;
-       }
-    } else if (n == 5) { // next
-       index++;
-       if (index >= listLength || !list[index]) {
-           DisplayError(_("Can't go forward any further"), 0);
-           return;
-       }
-       HighlightWithScroll(&gamesOptions[0], index, listEnd);
-    } else if (n == 8) { // prev
-       index--;
-       if (index < 0) {
-           DisplayError(_("Can't back up any further"), 0);
-           return;
-       }
-       HighlightWithScroll(&gamesOptions[0], index, listEnd);
-    } else if (n == 2 || // narrow
-               n == 4) { // find position
-       char *text;
-       GetWidgetText(&gamesOptions[1], &text);
-        safeStrCpy(filterString, text, sizeof(filterString)/sizeof(filterString[0]));
-        GameListPrepare(True, n == 2); GameListReplace(0);
-        return;
-    }
-
-    index = atoi(list[index])-1; // [HGM] filter: read true index from sequence nr of line
-    if (cmailMsgLoaded) {
-       CmailLoadGame(glc->fp, index + 1, glc->filename, True);
-    } else {
-       LoadGame(glc->fp, index + 1, glc->filename, True);
-    }
-}
-
-static int
-GameListCreate (char *name)
-{
-    int new;
-    if(new = GenericPopUp(gamesOptions, name, GameListDlg, BoardWindow, NONMODAL, appData.topLevel))
-       AddHandler(&gamesOptions[1], GameListDlg, 4),
-       AddHandler(&gamesOptions[0], GameListDlg, 5);
-    FocusOnWidget(&gamesOptions[0], GameListDlg);
-    return new;
-}
-
-static int
-GameListPrepare (int byPos, int narrow)
-{   // [HGM] filter: put in separate routine, to make callable from call-back
-    int nstrings;
-    ListGame *lg;
-    char **st, *line;
-    TimeMark t, t2;
-
-    GetTimeMark(&t);
-    if(st = glc->strings) while(*st) free(*st++);
-    nstrings = ((ListGame *) gameList.tailPred)->number;
-    glc->strings = (char **) malloc((nstrings + 1) * sizeof(char *));
-    st = glc->strings;
-    lg = (ListGame *) gameList.head;
-    listLength = wins = losses = draws = 0;
-    if(byPos) InitSearch();
-    while (nstrings--) {
-       int pos = -1;
-       if(!narrow || lg->position >= 0) { // only consider already selected positions when narrowing
-         line = GameListLine(lg->number, &lg->gameInfo);
-         if((filterString[0] == NULLCHAR || SearchPattern( line, filterString )) && (!byPos || (pos=GameContainsPosition(glc->fp, lg)) >= 0) ) {
-            *st++ = line; // [HGM] filter: make adding line conditional.
-           listLength++;
-            if( lg->gameInfo.result == WhiteWins ) wins++; else
-            if( lg->gameInfo.result == BlackWins ) losses++; else
-            if( lg->gameInfo.result == GameIsDrawn ) draws++;
-           if(!byPos) pos = 0; // indicate selected
-         }
-       }
-       if(lg->number % 2000 == 0) {
-           char buf[MSG_SIZ];
-           snprintf(buf, MSG_SIZ, _("Scanning through games (%d)"), lg->number);
-           DisplayTitle(buf); DoEvents();
-       }
-       lg->position = pos;
-       lg = (ListGame *) lg->node.succ;
-    }
-    if(appData.debugMode) { GetTimeMark(&t2);printf("GameListPrepare %ld msec\n", SubtractTimeMarks(&t2,&t)); }
-    DisplayTitle("XBoard");
-    *st = NULL;
-    return listLength;
-}
-
-static void
-GameListReplace (int page)
-{
-  // filter: put in separate routine, to make callable from call-back
-  char buf[MSG_SIZ], **st=list;
-  int i;
-
-  if(page) *st++ = _("previous page"); else if(listLength > 1000) *st++ = "";
-  for(i=0; i<1000; i++) if( !(*st++ = glc->strings[page+i]) ) { st--; break; }
-  listEnd = st - list;
-  if(page + 1000 <= listLength) *st++ = _("next page");
-  *st = NULL;
-
-  LoadListBox(&gamesOptions[0], _("no games matched your request"), -1, -1);
-  HighlightWithScroll(&gamesOptions[0], listEnd > 1000, listEnd);
-  snprintf(buf, MSG_SIZ, _("%s - %d/%d games (%d-%d-%d)"), glc->filename, listLength, ((ListGame *) gameList.tailPred)->number, wins, losses, draws);
-  SetDialogTitle(GameListDlg, buf);
-}
-
-void
-GameListUpdate ()
-{
-    if(!DialogExists(GameListDlg)) return;
-    GameListPrepare(False, False);
-    GameListReplace(0);
-}
-
-void
-GameListPopUp (FILE *fp, char *filename)
-{
-    if (glc == NULL) {
-       glc = (GameListClosure *) calloc(1, sizeof(GameListClosure));
-       glc->x = glc->y = -1;
-       glc->filename = NULL;
-    }
-
-    GameListPrepare(False, False); // [HGM] filter: code put in separate routine
-
-    glc->fp = fp;
-
-    if (glc->filename != NULL) free(glc->filename);
-    glc->filename = StrSave(filename);
-
-    if (!GameListCreate(filename))
-       SetIconName(GameListDlg, filename);
-
-    page = 0;
-    GameListReplace(0); // [HGM] filter: code put in separate routine, and also called to set title
-    MarkMenu("View.GameList", GameListDlg);
-    EnableNamedMenuItem("File.SaveSelected", TRUE);
-}
-
-FILE *
-GameFile ()
-{
-  return glc ? glc->fp : NULL;
-}
-
-void
-GameListDestroy ()
-{
-    if (glc == NULL) return;
-    EnableNamedMenuItem("File.SaveSelected", FALSE);
-    PopDown(GameListDlg);
-    if (glc->strings != NULL) {
-       char **st;
-       st = glc->strings;
-       while (*st) {
-           free(*st++);
-       }
-       free(glc->strings);
-    }
-    free(glc);
-    glc = NULL;
-}
-
-void
-ShowGameListProc ()
-{
-    if (glc == NULL) {
-       DisplayError(_("There is no game list"), 0);
-       return;
-    }
-    if (shellUp[GameListDlg]) {
-       PopDown(GameListDlg);
-       return;
-    }
-    GenericPopUp(NULL, NULL, GameListDlg, BoardWindow, NONMODAL, appData.topLevel); // first two args ignored when shell exists!
-    MarkMenu("View.GameList", GameListDlg);
-    GameListHighlight(lastLoadGameNumber);
-}
-
-int
-GameListClicks (int direction)
-{
-    int index;
-
-    if (glc == NULL || listLength == 0) return 1;
-    if(direction == 100) { FocusOnWidget(&gamesOptions[0], GameListDlg); return 1; }
-    index = SelectedListBoxItem(&gamesOptions[0]);
-
-    if (index < 0) return 1;
-    if(page && (index == 0 && direction < 1 || direction == -4)) {
-        page -= 1000;
-        if(page < 0) page = 0; // safety
-        GameListReplace(page);
-       return 1;
-    }
-    if(index == 1001 && direction >= 0 || listEnd == 1001 && direction == 4) {
-        page += 1000;
-        GameListReplace(page);
-       return 1;
-    }
-
-    if(direction != 0) {
-       int doLoad = abs(direction) == 3;
-       if(doLoad) direction /= 3;
-       index += direction;
-       if(direction < -1) index = 0;
-       if(direction >  1) index = listEnd-1;
-       if(index < 0 || index >= listEnd) return 1;
-       HighlightWithScroll(&gamesOptions[0], index, listEnd);
-       if(!doLoad) return 1;
-    }
-    index = atoi(list[index])-1; // [HGM] filter: read true index from sequence nr of line
-    if (cmailMsgLoaded) {
-       CmailLoadGame(glc->fp, index + 1, glc->filename, True);
-    } else {
-       LoadGame(glc->fp, index + 1, glc->filename, True);
-    }
-    return 0;
-}
-
-void
-SetFilter ()
-{
-        char *name;
-       GetWidgetText(&gamesOptions[1], &name);
-        safeStrCpy(filterString, name, sizeof(filterString)/sizeof(filterString[0]));
-        GameListPrepare(False, False); GameListReplace(0);
-       UnCaret(); // filter text-edit
-       FocusOnWidget(&gamesOptions[0], GameListDlg); // listbox
-}
-
-void
-GameListHighlight (int index)
-{
-    int i=0; char **st;
-    if (!shellUp[GameListDlg]) return;
-    st = list;
-    while(*st && atoi(*st)<index) st++,i++;
-    HighlightWithScroll(&gamesOptions[0], i, listEnd);
-}
-
-int
-SaveGameListAsText (FILE *f)
-{
-    ListGame * lg = (ListGame *) gameList.head;
-    int nItem;
-
-    if( !glc || ((ListGame *) gameList.tailPred)->number <= 0 ) {
-      DisplayError(_("Game list not loaded or empty"), 0);
-        return False;
-    }
-
-    /* Copy the list into the global memory block */
-    if( f != NULL ) {
-
-        lg = (ListGame *) gameList.head;
-
-        for (nItem = 0; nItem < ((ListGame *) gameList.tailPred)->number; nItem++){
-            char * st = GameListLineFull(lg->number, &lg->gameInfo);
-           char *line = GameListLine(lg->number, &lg->gameInfo);
-           if(filterString[0] == NULLCHAR || SearchPattern( line, filterString ) )
-                   fprintf( f, "%s\n", st );
-           free(st); free(line);
-            lg = (ListGame *) lg->node.succ;
-        }
-
-        fclose(f);
-       return True;
-    }
-    return False;
-}
diff --git a/nhistory.c b/nhistory.c
deleted file mode 100644 (file)
index aa65b16..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * New (WinBoard-style) Move history for XBoard
- *
- * Copyright 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free Software Foundation, Inc.
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.
- *
- * ------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-#include "config.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "common.h"
-#include "frontend.h"
-#include "backend.h"
-#include "dialogs.h"
-#include "gettext.h"
-
-#ifdef ENABLE_NLS
-# define  _(s) gettext (s)
-# define N_(s) gettext_noop (s)
-#else
-# define  _(s) (s)
-# define N_(s)  s
-#endif
-
-// templates for calls into back-end (= history.c; should be moved to history.h header shared with it!)
-void RefreshMemoContent P((void));
-void MemoContentUpdated P((void));
-
-// variables in xoptions.c
-extern Option historyOptions[];
-
-// ------------- low-level front-end actions called by MoveHistory back-end -----------------
-
-void
-ClearHistoryMemo ()
-{
-    SetWidgetText(&historyOptions[0], "", HistoryDlg);
-}
-
-// the bold argument says 0 = normal, 1 = bold typeface
-// the colorNr argument says 0 = font-default, 1 = gray
-int
-AppendToHistoryMemo (char * text, int bold, int colorNr)
-{
-    return AppendText(&historyOptions[0], text); // for now ignore bold & color stuff, as Xaw cannot handle that
-}
-
-void
-HighlightMove (int from, int to, Boolean highlight)
-{
-    HighlightText (&historyOptions[0], from, to, highlight);
-}
-
-char *historyText;
-
-int
-SelectMove (Option *opt, int n, int x, int y, char *text, int index)
-{
-       if(n != 3 && n != 1) return FALSE; // only on button-1 and 3 press
-       FindMoveByCharIndex( index ); // [HGM] also does the actual moving to it, now
-       return (n == 3);  // suppress context menu for button 3, but allow selection with button 1
-}
-
-Option historyOptions[] = {
-{ 200, T_VSCRL | T_FILL | T_WRAP | T_TOP, 400, NULL, (void*) &historyText, NULL , (char**) &SelectMove, TextBox, "", &appData.historyFont },
-{   0,           NO_OK,             0, NULL, (void*) NULL, "", NULL, EndMark , "" }
-};
-
-void
-ScrollToCurrent (int caretPos)
-{
-    ScrollToCursor(&historyOptions[0], caretPos);
-}
-
-// ------------ standard entry points into MoveHistory code -----------
-
-Boolean
-MoveHistoryIsUp ()
-{
-    return shellUp[HistoryDlg];
-}
-
-Boolean
-MoveHistoryDialogExists ()
-{
-    return DialogExists(HistoryDlg);
-}
-
-void
-HistoryPopUp ()
-{
-    if(GenericPopUp(historyOptions, _("Move list"), HistoryDlg, BoardWindow, NONMODAL, appData.topLevel))
-       AddHandler(&historyOptions[0], HistoryDlg, 0);
-    MarkMenu("View.MoveHistory", HistoryDlg);
-}
-
-void
-HistoryShowProc ()
-{
-  if (!shellUp[HistoryDlg]) {
-    ASSIGN(historyText, "");
-    HistoryPopUp();
-    RefreshMemoContent();
-    MemoContentUpdated();
-  } else PopDown(HistoryDlg);
-  ToNrEvent(currentMove);
-}
diff --git a/osxapp/Info.plist.in b/osxapp/Info.plist.in
deleted file mode 100644 (file)
index ab239b0..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-       <key>CFBundleDocumentTypes</key>
-       <array>
-               <dict>
-                       <key>CFBundleTypeName</key>
-                       <string>Portable Game Notation</string>
-                       <key>CFBundleTypeIconFile</key>
-                       <string>pgn.icns</string>
-                       <key>LSHandlerRank</key>
-                       <string>Owner</string>
-                       <key>CFBundleTypeRole</key>
-                       <string>Editor</string>
-                       <key>LSItemContentTypes</key>
-                       <array>
-                               <string>org.fsf.xboard.pgn</string>
-                               <string>com.apple.chess.pgn</string>
-                       </array>
-               </dict>
-               <dict>
-                       <key>CFBundleTypeName</key>
-                       <string>XBoard Option File</string>
-                       <key>CFBundleTypeIconFile</key>
-                       <string>xop.icns</string>
-                       <key>LSHandlerRank</key>
-                       <string>Owner</string>
-                       <key>CFBundleTypeRole</key>
-                       <string>Editor</string>
-                       <key>LSItemContentTypes</key>
-                       <array>
-                               <string>org.fsf.xboard.xop</string>
-                       </array>
-               </dict>
-               <dict>
-                       <key>CFBundleTypeName</key>
-                       <string>XBoard Positions File</string>
-                       <key>CFBundleTypeIconFile</key>
-                       <string>fen.icns</string>
-                       <key>LSHandlerRank</key>
-                       <string>Owner</string>
-                       <key>CFBundleTypeRole</key>
-                       <string>Editor</string>
-                       <key>LSItemContentTypes</key>
-                       <array>
-                               <string>org.fsf.xboard.fen</string>
-                       </array>
-               </dict>
-               <dict>
-                       <key>CFBundleTypeName</key>
-                       <string>XBoard Tournament File</string>
-                       <key>CFBundleTypeIconFile</key>
-                       <string>trn.icns</string>
-                       <key>LSHandlerRank</key>
-                       <string>Owner</string>
-                       <key>CFBundleTypeRole</key>
-                       <string>Editor</string>
-                       <key>LSItemContentTypes</key>
-                       <array>
-                               <string>org.fsf.xboard.trn</string>
-                       </array>
-               </dict>
-       </array>
-       <key>UTExportedTypeDeclarations</key>
-       <array>
-               <dict>
-                       <key>UTTypeIdentifier</key>
-                       <string>org.fsf.xboard.pgn</string>
-                       <key>UTTypeDescription</key>
-                       <string>Portable Game Notation</string>
-                       <key>UTTypeIconFile</key>
-                       <string>pgn.icns</string>
-                       <key>UTTypeTagSpecification</key>
-                       <dict>
-                               <key>public.filename-extension</key>
-                               <array>
-                                       <string>pgn</string>
-                               </array>
-                               <key>public.mime-type</key>
-                               <array>
-                                       <string>application/x-chess-pgn</string>
-                               </array>
-                       </dict>
-                       <key>UTTypeConformsTo</key>
-                       <array>
-                               <string>public.utf8-plain-text</string>
-                       </array>
-               </dict>
-               <dict>
-                       <key>UTTypeIdentifier</key>
-                       <string>org.fsf.xboard.xop</string>
-                       <key>UTTypeDescription</key>
-                       <string>XBoard Options File</string>
-                       <key>UTTypeIconFile</key>
-                       <string>xop.icns</string>
-                       <key>UTTypeTagSpecification</key>
-                       <dict>
-                               <key>public.filename-extension</key>
-                               <array>
-                                       <string>xop</string>
-                               </array>
-                               <key>public.mime-type</key>
-                               <array>
-                                       <string>application/x-xboard-opt</string>
-                               </array>
-                       </dict>
-                       <key>UTTypeConformsTo</key>
-                       <array>
-                               <string>public.utf8-plain-text</string>
-                       </array>
-               </dict>
-               <dict>
-                       <key>UTTypeIdentifier</key>
-                       <string>org.fsf.xboard.fen</string>
-                       <key>UTTypeDescription</key>
-                       <string>XBoard Positions File</string>
-                       <key>UTTypeIconFile</key>
-                       <string>fen.icns</string>
-                       <key>UTTypeTagSpecification</key>
-                       <dict>
-                               <key>public.filename-extension</key>
-                               <array>
-                                       <string>fen</string>
-                               </array>
-                               <key>public.mime-type</key>
-                               <array>
-                                       <string>application/x-chess-fen</string>
-                               </array>
-                       </dict>
-                       <key>UTTypeConformsTo</key>
-                       <array>
-                               <string>public.utf8-plain-text</string>
-                       </array>
-               </dict>
-               <dict>
-                       <key>UTTypeIdentifier</key>
-                       <string>org.fsf.xboard.trn</string>
-                       <key>UTTypeDescription</key>
-                       <string>XBoard Tournament File</string>
-                       <key>UTTypeIconFile</key>
-                       <string>trn.icns</string>
-                       <key>UTTypeTagSpecification</key>
-                       <dict>
-                               <key>public.filename-extension</key>
-                               <array>
-                                       <string>trn</string>
-                               </array>
-                               <key>public.mime-type</key>
-                               <array>
-                                       <string>application/x-xboard-trn</string>
-                               </array>
-                       </dict>
-                       <key>UTTypeConformsTo</key>
-                       <array>
-                               <string>public.utf8-plain-text</string>
-                       </array>
-               </dict>
-       </array>
-       <key>CFBundleExecutable</key>
-       <string>XBoard</string>
-       <key>CFBundleIconFile</key>
-       <string>XBoard</string>
-       <key>CFBundleInfoDictionaryVersion</key>
-       <string>6.0</string>
-       <key>CFBundleName</key>
-       <string>XBoard</string>
-       <key>CFBundlePackageType</key>
-       <string>APPL</string>
-       <key>NSHumanReadableCopyright</key>
-       <string>©1992-2016 Free-Software-Foundation</string>
-       <key>CFBundleSignature</key>
-       <string>xbrd</string>
-       <key>CFBundleShortVersionString</key>
-       <string>@PACKAGE_VERSION@</string>
-       <key>CFBundleIdentifier</key>
-       <string>org.fsf.xboard.www</string>
-       <key>CFBundleVersion</key>
-       <string>@PACKAGE_VERSION@</string>
-       <key>NSPrincipalClass</key>
-       <string>NSApplication</string>
-       <key>LSMinimumSystemVersionByArchitecture</key>
-       <dict>
-               <key>x86_64</key>
-               <string>10.6</string>
-       </dict>
-</dict>
-</plist>
diff --git a/osxapp/PkgInfo b/osxapp/PkgInfo
deleted file mode 100644 (file)
index fce933d..0000000
+++ /dev/null
@@ -1 +0,0 @@
-APPLxbrd
\ No newline at end of file
diff --git a/osxapp/XBoard.gtklauncher b/osxapp/XBoard.gtklauncher
deleted file mode 100755 (executable)
index 33333ed..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/bin/bash
-
-# Inherited from gtk-mac-bundler example launcher script
-# Where we get the paths from
-name=$(basename "$0")
-echo $name
-
-dirn=$(dirname "$0")
-echo $dirn
-
-bundle=$(cd "$dirn/../../" && pwd)
-bundle_contents="$bundle"/Contents
-bundle_res="$bundle_contents"/Resources
-bundle_lib="$bundle_res"/lib
-bundle_bin="$bundle_res"/bin
-bundle_data="$bundle_res"/share
-bundle_etc="$bundle_res"/etc
-
-export PATH="$bundle_bin:$PATH"
-
-export PATH="$bundle_contents/MacOS/:$PATH"
-
-chmod -R +x $bundle_bin
-
-# Use fallback instead of normal dlyd path, may not be required
-export DYLD_FALLBACK_LIBRARY_PATH="$bundle_lib:$DYLD_FALLBACK_LIBRARY_PATH"
-
-# Help fontconfig find its configuration file
-export FONTCONFIG_FILE="$bundle_etc/fonts/fonts.conf"
-
-# Help gdk find its loader modules
-export GDK_PIXBUF_MODULE_FILE="$bundle_etc/gtk-2.0/gdk-pixbuf.loaders"
-
-# Fix for the theme engine paths
-export GTK_PATH="$bundle_lib/gtk-2.0/2.10.0"
-
-# GTK path no longer required
- export GTK_IM_MODULE_FILE="$bundle_etc/gtk-2.0/gtk.immodules"
-
-# Fix the gegl path issue
-export GEGL_PATH="$bundle_lib/gegl-0.2"
-
-# Define gtkrc file
-export GTK2_RC_FILES="$bundle_etc/gtk-2.0/gtkrc"
-
-# set as absolute directory to find GTK resources internally, thanks GIMP.
-LNDIR=/tmp/skl/XBoard.app
-if [ ! -e "$LNDIR/Contents/Resources/launcher_rc" ]; then
-rm -f "$LNDIR"
-mkdir -p /tmp/skl
-chmod a+w /tmp/skl
-ln -s "$bundle" "$LNDIR"
-fi
-
-# set the working directory to users home
-cd ~/ > /dev/null
-
-
-# Strip out arguments added by the OS
-if [ x`echo "x$1" | sed -e "s/^x-psn_.*//"` == x ]; then
-       shift 1
-fi
-
-if [ "x$GTK_DEBUG_SHELL" != "x" ]; then
-       exec bash
-
-else
-       $EXEC "$bundle_contents/MacOS/xboard-bin" "$@"
-fi
-
-
diff --git a/osxapp/gtk2-themes/Mac/gtk-2.0/gtkrc b/osxapp/gtk2-themes/Mac/gtk-2.0/gtkrc
deleted file mode 100644 (file)
index 3744371..0000000
+++ /dev/null
@@ -1,672 +0,0 @@
-# GIMP GTK+ 2 Mac integration theme\r
-# Author: scl\r
-#\r
-# Based upon:\r
-#     Zukitwo by lassekongo83\r
-#     Gnome-Cupertino by Rafa Cobreros\r
-#\r
-# Requirements:\r
-#     Murrine Theme Engine\r
-#     For a documentation of the Murrine properties see\r
-#     https://wiki.ubuntu.com/Artwork/Documentation/Murrine\r
-#\r
-# For explanations of the theme properties see:\r
-#   - the GTK+ 2 Settings Reference Manual\r
-#       https://developer.gnome.org/gtk2/2.24/GtkSettings.html\r
-#   - the API documentation of the GTK widgets and\r
-#   - the Murrine Engine documentation:\r
-#       https://wiki.ubuntu.com/Artwork/Documentation/Murrine\r
-#\r
-# This theme is free software: you can redistribute it and/or modify\r
-# it under the terms of the GNU General Public License as published by\r
-# the Free Software Foundation, either version 3 of the License, or\r
-# (at your option) any later version.\r
-#\r
-# This program is distributed in the hope that it will be useful,\r
-# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
-# GNU General Public License for more details.\r
-#\r
-# You should have received a copy of the GNU General Public License\r
-# along with this program. If not, see <http://www.gnu.org/licenses/>.\r
-#\r
-# See the file COPYING for the full license text.\r
-#\r
-\r
-# Global settings #\r
-\r
-## Color definitions ##\r
-# Background, base:\r
-gtk_color_scheme = "bg_color:#e8e8e8\nselected_bg_color:#6699cc\nbase_color:#f7f7f7"\r
-\r
-# Foreground, text:\r
-gtk_color_scheme = "fg_color:#2c2c2c\nselected_fg_color:#f5f5f5\ntext_color:#2c2c2c"\r
-\r
-# Tooltips:\r
-gtk_color_scheme = "tooltip_bg_color:#f5f5b5\ntooltip_fg_color:#000000"\r
-\r
- # Hyperlinks:\r
-gtk_color_scheme = "link_color:#08c"\r
-\r
-# Dark colors:\r
-gtk_color_scheme = "bg_color_dark:#3f3f3f\ntext_color_dark:#ffffff"\r
-\r
-# Filechooser sidebar background:\r
-gtk-color-scheme = "sidebar_background:#e1e5eb"\r
-\r
-\r
-## Miscellanous definitions ##\r
-gtk-auto-mnemonics = 1  # disables ugly lines under menu items\r
-gtk-button-images  = 0  # enables icons in buttons\r
-gtk-icon-sizes     = "gtk-button=16,16"  # reduce button icon size\r
-gtk-toolbar-style  = 0  # disables text in toolbar\r
-\r
-# Styles #\r
-## Basic styles ##\r
-style "default"\r
-{\r
-  ### Color Definitions ###\r
-  base[ACTIVE]      = shade (0.92, @selected_bg_color)\r
-  base[INSENSITIVE] = @bg_color\r
-  base[NORMAL]      = @base_color\r
-  base[PRELIGHT]    = shade (0.95, @bg_color)\r
-  base[SELECTED]    = shade (0.93, @selected_bg_color)\r
-  bg[ACTIVE]        = shade (1.04, @bg_color)\r
-  bg[INSENSITIVE]   = @bg_color\r
-  bg[NORMAL]        = @bg_color\r
-  bg[PRELIGHT]      = shade (1.02, @bg_color)\r
-  bg[SELECTED]      = @selected_bg_color\r
-  fg[ACTIVE]        = @fg_color\r
-  fg[INSENSITIVE]   = darker (@bg_color)\r
-  fg[NORMAL]        = @fg_color\r
-  fg[PRELIGHT]      = @fg_color\r
-  fg[SELECTED]      = @selected_fg_color\r
-  text[ACTIVE]      = @selected_fg_color\r
-  text[INSENSITIVE] = darker (@bg_color)\r
-  text[NORMAL]      = @text_color\r
-  text[PRELIGHT]    = @text_color\r
-  text[SELECTED]    = @selected_fg_color\r
-\r
-  xthickness = 1\r
-  ythickness = 1\r
-\r
-  GnomeHRef::link_color                      = @link_color\r
-  GtkHTML::link-color                        = @link_color\r
-  GtkIMHtmlr::hyperlink-color                = @link_color\r
-  GtkIMHtml::hyperlink-color                 = @link_color\r
-  GtkWidget::link-color                      = @link_color\r
-  GtkWidget::visited-link-color              = @text_color\r
-  GtkButton::child-displacement-x            = 1\r
-  GtkButton::child-displacement-y            = 1\r
-  GtkButton::default-border                  = {0, 0, 0, 0}\r
-  GtkCheckButton::indicator-size             = 15\r
-  GtkWidget::new-tooltip-style               = 1\r
-  GtkWidget::focus-line-width                = 1\r
-\r
-  # 0 = prevent the Firefox tabs from jumping a few pixels when creating a new\r
-  # tab. Set the value locally if needed.\r
-  GtkWidget::focus-padding                   = 0\r
-\r
-  GtkImage::x-ayatana-indicator-dynamic      = 1\r
-  GtkScrollbar::activate-slider              = 0\r
-  GtkScrollbar::has-backward-stepper         = 0\r
-  GtkScrollbar::has-forward-stepper          = 1\r
-  GtkScrollbar::min-slider-length            = 30\r
-  GtkScrollbar::slider-width                 = 9\r
-  GtkScrollbar::stepper-size                 = 1\r
-  GtkScrollbar::trough-border                = 3\r
-  GtkScrollbar::trough-side-details          = 0\r
-  GtkScrolledWindow::scrollbar-spacing       = 0\r
-  GtkScrolledWindow::scrollbars-within-bevel = 1\r
-  GtkPaned::handle-size                      = 6\r
-  GtkRange::slider-width                     = 11\r
-  GtkRange::stepper-size                     = 0\r
-  GtkRange::stepper_spacing                  = 0\r
-  GtkRange::trough-border                    = 0\r
-  GtkRange::trough-under-steppers            = 0\r
-  GtkScale::slider-length                    = 14\r
-  GtkScale::slider-width                     = 14\r
-  GtkMenuBar::internal-padding               = 0\r
-  GtkExpander::expander-size                 = 16\r
-  GtkToolbar::internal-padding               = 0\r
-  GtkTreeView::expander-size                 = 6\r
-  GtkTreeView::indent-expanders              = 1\r
-  GtkTreeView::vertical-separator            = 1\r
-  GtkNotebook::tab-curvature                 = 1  # 1 = default\r
-  GtkNotebook::tab-overlap                   = 2  # 2 = default\r
-  GtkMenu::horizontal-padding                = 0\r
-  GtkMenu::vertical-padding                  = 0\r
-  WnckTasklist::fade-overlay-rect            = 0\r
-\r
-  # 1 = hint to Gecko (and possibly other appliations) that the entry should be\r
-  # drawn transparently on the canvas. Without this, Gecko will fill in the\r
-  # background of the entry.\r
-  GtkEntry::honors-transparent-bg-hint       = 1\r
-\r
-  GtkEntry::state-hint                       = 0\r
-  GtkEntry::progress-border                  = {2, 2, 2, 2}\r
-  GtkProgressBar::min-horizontal-bar-height  = 16\r
-  GtkProgressBar::min-vertical-bar-width     = 16\r
-  GtkMenuBar::window-dragging                = 1\r
-  GtkToolbar::window-dragging                = 1\r
-\r
-  # remove little ugly gripper at the bottom right\r
-  GtkWindow::resize-grip-height              = 0\r
-  GtkWindow::resize-grip-width               = 0\r
-\r
-  # Murrine engine properties\r
-  engine "murrine"\r
-  {\r
-    animation            = FALSE\r
-    arrowstyle           = 1  # 1 = filled arrows\r
-    border_shades        = {1.0, 0.7}  # gradient to draw on border\r
-    colorize_scrollbar   = TRUE\r
-    comboboxstyle        = 0  # 0 = normal combobox\r
-    contrast             = 0.4  # 0.4 for less contrast on borders\r
-    default_button_color = "#4c8ed4"\r
-    expanderstyle        = 0\r
-    focus_color          = @selected_bg_color\r
-    focusstyle           = 3\r
-    glazestyle           = 1  # 1 = curved highlight\r
-    glow_shade           = 1.1\r
-    glowstyle            = 1  # 1 = bottom\r
-    gradient_shades      = {1.31, 1.0, 1.0, 1.2}  # gradients on the widgets\r
-    highlight_shade      = 1.0  # highlight amount for buttons or widgets\r
-    lightborder_shade    = 1.1  # lightborder amount for buttons or widgets\r
-    lightborderstyle     = 0  # 0 = lightborder on top side\r
-    listviewheaderstyle  = 1  # 1 = glassy\r
-    listviewstyle        = 1  # 1 = dotted\r
-    menubaritemstyle     = 0  # 0 = menuitem look\r
-    menubarstyle         = 2  # 2 = gradient\r
-    menuitemstyle        = 0  # 0 = flat\r
-    menustyle            = 0  # 0 = no vertical menu stripe\r
-\r
-    # shade level for scrollbar's slider, comboboxstyle(1), and prelight state\r
-    # with gradient_colors:\r
-    prelight_shade       = 0.95\r
-\r
-    progressbarstyle     = 0  # 0 = nothing\r
-    reliefstyle          = 2  # 2 = shadow\r
-    rgba                 = FALSE  # FALSE = disabled\r
-    roundness            = 3  # 0 = squared, greater values increase roundness\r
-    scrollbarstyle       = 0  # 0 = nothing\r
-    separatorstyle       = 1  # 1 = smooth separators\r
-    shadow_shades        = {0.5, 0.0}  # gradient for shadows\r
-    sliderstyle          = 0  # 0 = nothing added\r
-    stepperstyle         = 1  # 1 = integrated stepper handles\r
-    textstyle            = 0  # 0 = normal text,1=inset and very resource heavy!\r
-    toolbarstyle         = 2  # 2 = gradient\r
-\r
-    # draw gradient on trough of GtkScrollbar and GtkProgressbar:\r
-    trough_shades        = {0.95, 1.05}\r
-  }\r
-}\r
-\r
-style "thin" = "default"\r
-{\r
-  xthickness = 0\r
-  ythickness = 0\r
-}\r
-\r
-style "wide" = "default"\r
-{\r
-  xthickness = 2\r
-  ythickness = 2\r
-}\r
-\r
-style "wider" = "default"\r
-{\r
-  xthickness = 3\r
-  ythickness = 3\r
-}\r
-\r
-style "widest" = "default"\r
-{\r
-  xthickness = 4\r
-  ythickness = 4\r
-}\r
-\r
-## Widget styles ##\r
-style "button" = "wider"\r
-{\r
-  bg[ACTIVE]      = shade (0.85, @bg_color)\r
-  bg[INSENSITIVE] = shade (0.95, @bg_color)\r
-  bg[NORMAL]      = shade (1.06, @bg_color)\r
-  bg[PRELIGHT]    = shade (1.2, @bg_color)\r
-  bg[SELECTED]    = shade (1.0, @selected_bg_color)\r
-\r
-  engine "murrine"\r
-  {\r
-    contrast          = 0.8\r
-    lightborder_shade = 1.9\r
-    roundness         = 3\r
-  }\r
-}\r
-\r
-style "comboboxentry"\r
-{\r
-  engine "murrine"\r
-  {\r
-    contrast = 0.4\r
-  }\r
-}\r
-\r
-style "entry"\r
-{\r
-  # text input box\r
-  base[ACTIVE]      = "#b5d5ff"  # background of active text\r
-  base[INSENSITIVE] = shade(0.85, @base_color)  # background text-box disabled\r
-  base[NORMAL]      = @base_color  # background text-box\r
-  base[SELECTED]    = "#b5d5ff"  # background of selected text\r
-  bg[INSENSITIVE]   = shade(0.85, @base_color)  # background spinbutton disabled\r
-                                                # (probably a bug)\r
-  bg[NORMAL]        = @bg_color  # base color of edges\r
-  text[ACTIVE]      = @text_color\r
-  text[SELECTED]    = @text_color\r
-\r
-  xthickness = 3\r
-  ythickness = 3\r
-\r
-  engine "murrine"\r
-  {\r
-    border_shades = {1.2, 0.90}\r
-    contrast      = 0.7\r
-    focus_color   = shade(0.75, mix(0.95, "#83aadc", @bg_color))\r
-    roundness     = 2\r
-  }\r
-}\r
-\r
-style "filechooser-sidepane-treeview" = "treeview"\r
-{\r
-  base[NORMAL] = @sidebar_background  # background\r
-  bg[NORMAL]   = shade (0.91, @base_color)\r
-  bg[PRELIGHT] = @fg_color\r
-\r
-  GtkTreeView::allow-rules    = 0  # disable alternating row colors\r
-  GtkTreeView::even_row_color = @sidebar_background\r
-\r
-  engine "murrine"\r
-  {\r
-    contrast = 0.80\r
-  }\r
-}\r
-\r
-style "frame-title"\r
-{\r
-  fg[NORMAL] = lighter (@fg_color)\r
-}\r
-\r
-style "menu"\r
-{\r
-  bg[NORMAL] = @base_color\r
-\r
-  xthickness = 0\r
-  ythickness = 0\r
-\r
-  engine "murrine"\r
-  {\r
-    border_shades = {1.2, 1.0}\r
-    roundness     = 0  # roundness of menu items\r
-    textstyle     = 0\r
-  }\r
-}\r
-\r
-style "menu-item" = "wider"\r
-{\r
-  bg[SELECTED] = shade (0.95, @selected_bg_color)\r
-  bg[PRELIGHT] = shade (0.95, @selected_bg_color)\r
-  fg[PRELIGHT] = @selected_fg_color\r
-\r
-  xthickness = 2\r
-  ythickness = 3\r
-\r
-  engine "murrine"\r
-  {\r
-    border_shades = {1.2, 1.0}\r
-    roundness     = 0\r
-    textstyle     = 0\r
-  }\r
-}\r
-\r
-# This style is there to modify the separator menu items. The goals are:\r
-# 1. Get a specific height.\r
-# 2. The line should go to the edges (i.e. no border at the left/right)\r
-style "menu-separator-item"\r
-{\r
-  bg[NORMAL] = @base_color  # Remove for visible separators\r
-\r
-  xthickness = 1\r
-  ythickness = 0\r
-\r
-  GtkSeparatorMenuItem::horizontal-padding = 0\r
-  GtkWidget::separator-height              = 7\r
-  GtkWidget::separator-width               = 1\r
-  GtkWidget::wide-separators               = 1\r
-\r
-  engine "murrine"\r
-  {\r
-    contrast       = 0.0  # set the contrast to 0.6 for visible separators.\r
-    separatorstyle = 0\r
-  }\r
-}\r
-\r
-style "menubar" = "default"\r
-{\r
-  bg[NORMAL]   = @bg_color\r
-  fg[NORMAL]   = @fg_color\r
-  fg[PRELIGHT] = @fg_color\r
-  fg[SELECTED] = @fg_color\r
-}\r
-\r
-style "menubar-menuitem" = "wider"\r
-{\r
-  bg[PRELIGHT] = @selected_bg_color\r
-  bg[SELECTED] = @bg_color\r
-\r
-  engine "murrine"\r
-  {\r
-    border_shades   = {1.0, 0.8}\r
-    contrast        = 0.0\r
-    gradient_shades = {1.0, 1.0, 0.85, 0.85}\r
-    roundness       = 0\r
-  }\r
-}\r
-\r
-style "notebook"\r
-{\r
-  bg[ACTIVE] = shade (1.04, @bg_color)  # unselected tab\r
-  bg[NORMAL] = shade (0.96, @bg_color)  # selected tab entire\r
-\r
-  xthickness = 2\r
-  ythickness = 2\r
-\r
-  engine "murrine"\r
-  {\r
-    contrast        = 0.75\r
-    focus_color     = shade (0.96, @bg_color)\r
-    focusstyle      = 2\r
-    gradient_shades = {1.18, 0.96, 0.92, 0.92}\r
-    roundness       = 3\r
-  }\r
-}\r
-\r
-# performance fix if murrine textstyle is on by default in the theme.\r
-style "performance-fix"\r
-{\r
-  engine "murrine"\r
-  {\r
-    textstyle = 0\r
-  }\r
-}\r
-\r
-style "progressbar"\r
-{\r
-  bg[SELECTED] = @selected_bg_color\r
-\r
-  xthickness = 0\r
-  ythickness = 0\r
-\r
-  engine "murrine"\r
-  {\r
-    gradient_shades = {1.17, 1.00, 1.01, 1.12}\r
-    roundness       = 2\r
-  }\r
-}\r
-\r
-style "radiocheck" = "wider"\r
-{\r
-  bg[ACTIVE]      = shade (0.85, @bg_color)\r
-  bg[INSENSITIVE] = shade (0.95, @bg_color)\r
-  bg[NORMAL]      = shade (1.06, @bg_color)\r
-  bg[PRELIGHT]    = shade (1.06, @bg_color)\r
-  bg[SELECTED]    = @selected_bg_color\r
-\r
-  engine "murrine"\r
-  {\r
-    contrast          = 0.8\r
-    lightborder_shade = 1.9\r
-  }\r
-}\r
-\r
-style "radiocheck-menu"\r
-{\r
-  fg[PRELIGHT]   = @selected_fg_color\r
-  text[PRELIGHT] = @selected_fg_color\r
-}\r
-\r
-style "scale" = "wider"\r
-{\r
-  bg[ACTIVE]      = shade (0.85, @bg_color)\r
-  bg[INSENSITIVE] = shade (0.95, @bg_color)\r
-  bg[NORMAL]      = shade (1.06, @bg_color)\r
-  bg[PRELIGHT]    = shade (1.2, @bg_color)\r
-  bg[SELECTED]    = @selected_bg_color\r
-\r
-  engine "murrine"\r
-  {\r
-    border_shades = {1.0, 1.0}\r
-    contrast      = 0.8\r
-    roundness     = 7\r
-    trough_shades = {1.06, 1.16}\r
-  }\r
-}\r
-\r
-style "scrollbar"\r
-{\r
-  bg[ACTIVE]   = shade (0.96, @base_color)\r
-  bg[SELECTED] = shade (0.74, @base_color)\r
-\r
-  # steppers' color\r
-  fg[ACTIVE]      = @base_color\r
-  fg[INSENSITIVE] = @base_color\r
-  fg[NORMAL]      = @base_color\r
-  fg[PRELIGHT]    = @base_color\r
-  fg[SELECTED]    = @base_color\r
-\r
-  engine "murrine"\r
-  {\r
-    border_shades     = {0.935, 1.00}\r
-    contrast          = 0.00\r
-    glow_shade        = 1.0\r
-    gradient_colors   = FALSE\r
-    gradient_shades   = {1.0, 1.0, 1.0, 1.0}\r
-    highlight_shade   = 1.0\r
-    lightborder_shade = 1.0\r
-    lightborderstyle  = 0\r
-    prelight_shade    = 0.75\r
-    roundness         = 8\r
-    trough_shades     = {0.935, 1.00}\r
-    }\r
-}\r
-\r
-style "spinbutton"\r
-{\r
-  bg[NORMAL] = @base_color\r
-\r
-  engine "murrine"\r
-  {\r
-    border_shades     = {1.0, 0.7}\r
-    contrast          = 0.70\r
-    gradient_shades   = {1.01, 1.00, 1.00, 0.93}\r
-    lightborder_shade = 1.00\r
-    lightborderstyle  = 1\r
-  }\r
-}\r
-\r
-style "statusbar"\r
-{\r
-  font_name  = "10"\r
-  xthickness = 2\r
-}\r
-\r
-style "toolbar" = "thin"\r
-{\r
-  bg[NORMAL] = @bg_color\r
-}\r
-\r
-style "tooltips" = "wider"\r
-{\r
-  bg[NORMAL] = @tooltip_bg_color\r
-  fg[NORMAL] = @tooltip_fg_color\r
-\r
-  engine "murrine"\r
-  {\r
-    textstyle = 0\r
-  }\r
-}\r
-\r
-style "treeview"\r
-{\r
-  bg[SELECTED]   = @selected_bg_color    # background mini-checkbox checked\r
-  fg[NORMAL]     = @fg_color  # header text color\r
-  text[ACTIVE]   = @selected_fg_color  # text+indicator selected unfocused\r
-  text[NORMAL]   = shade (1.05, @fg_color)  # text+indicator checked normal\r
-  text[SELECTED] = @selected_fg_color  # text+indicator selected focused\r
-\r
-  # enable alternating row colors for the file chooser's middle pane:\r
-  GtkTreeView::allow-rules    = 1\r
-  GtkTreeView::odd_row_color  = mix (0.05, @selected_bg_color, @base_color)\r
-  GtkTreeView::even_row_color = @base_color\r
-\r
-  engine "murrine"\r
-  {\r
-    gradient_shades = {1.00, 1.05, 1.05, 1.10}\r
-    roundness       = 2\r
-    separatorstyle  = 0\r
-  }\r
-}\r
-\r
-style "treeview-header"\r
-{\r
-  bg[ACTIVE]      = "#80b8ea"\r
-  bg[INSENSITIVE] = "#ffffff"\r
-  bg[NORMAL]      = shade (0.95, "#ffffff")\r
-  bg[PRELIGHT]    = shade (1.05, "#80b8ea")\r
-  bg[SELECTED]    = shade (0.95, "#80b8ea")\r
-\r
-  ythickness = 1\r
-\r
-  GtkWidget::focus-padding = 0\r
-\r
-  engine "murrine"\r
-  {\r
-    border_shades    = {1.2, 1.05}\r
-    contrast         = 1.22\r
-    gradient_shades  = {1.20, 1.02, 0.99, 1.15}\r
-    lightborderstyle = 1\r
-    textstyle = 1\r
-  }\r
-}\r
-\r
-# workaround style for widgets that use the text color instead of the fg color:\r
-style "workaround-for-text-is-fg-color"\r
-{\r
-  text[ACTIVE]      = @fg_color\r
-  text[INSENSITIVE] = darker (@bg_color)\r
-  text[NORMAL]      = @fg_color\r
-  text[PRELIGHT]    = @fg_color\r
-  text[SELECTED]    = @selected_fg_color\r
-}\r
-\r
-# workaround style for menus that use the text color instead of the fg color:\r
-style "workaround-for-menuitem-text-is-fg-color"\r
-{\r
-  text[ACTIVE]      = @fg_color\r
-  text[INSENSITIVE] = darker (@bg_color)\r
-  text[NORMAL]      = @fg_color\r
-  text[PRELIGHT]    = @selected_fg_color\r
-  text[SELECTED]    = @selected_fg_color\r
-}\r
-\r
-# workaround style for widgets that use the fg color instead of the text color:\r
-style "workaround-for-fg-is-text-color"\r
-{\r
-  fg[ACTIVE]      = @selected_fg_color\r
-  fg[INSENSITIVE] = darker (@bg_color)\r
-  fg[NORMAL]      = @text_color\r
-  fg[PRELIGHT]    = @text_color\r
-  fg[SELECTED]    = @selected_fg_color\r
-}\r
-\r
-# Assign styles to the widgets #\r
-\r
-# Apply default style to every widget:\r
-class "GtkWidget"     style "default"\r
-\r
-# Increase the x/ythickness (= space) in some widgets.\r
-class "GtkFrame"      style "wide"\r
-class "GtkEntry"      style "entry"\r
-class "GtkSeparator"  style "wide"\r
-class "GtkCalendar"   style "wide"\r
-\r
-class "GtkInfoBar"    style "default"\r
-class "GtkIconView"   style "default"\r
-class "GtkSpinButton" style "spinbutton"\r
-widget_class "*<GtkSpinButton>.*.<GtkEntry>" style "entry"\r
-class "GtkScale"      style "scale"\r
-class "GtkVScale"     style "scale"\r
-class "GtkHScale"     style "scale"\r
-class "GtkScrollbar"  style "scrollbar"\r
-class "GtkVScrollbar" style "scrollbar"\r
-class "GtkHScrollbar" style "scrollbar"\r
-\r
-# General matching following, later matching styles override earlier matches.\r
-widget_class "*<GtkNotebook>"               style "notebook"\r
-widget_class "*<GtkButton>"                 style "button"\r
-widget_class "*<GtkStatusbar>*"             style "statusbar"\r
-widget_class "*<GtkComboBoxEntry>*"         style "comboboxentry"\r
-widget_class "*<GtkCombo>*"                 style "comboboxentry"\r
-widget_class "*<GtkMenuBar>*"               style "menubar"\r
-widget_class "*<GtkMenu>*"                  style "menu"\r
-widget_class "*<GtkMenuItem>*"              style "menu-item"\r
-widget_class "*<GtkSeparatorMenuItem>*"     style "menu-separator-item"\r
-widget_class "*<GtkMenuBar>*<GtkMenuItem>*" style "menubar-menuitem"\r
-widget_class "*<GtkMenuBar>*<GtkSeparatorMenuItem>*" style "menu-separator-item"\r
-widget_class "*.<GtkFrame>.<GtkLabel>"      style "frame-title"\r
-widget_class "*.<GtkTreeView>*"             style "treeview"\r
-widget_class\r
-  "*GtkFileChooserWidget.GtkFileChooserDefault.GtkVBox.GtkHPaned.GtkVBox.GtkScrolledWindow.GtkTreeView*"\r
-  style "filechooser-sidepane-treeview"\r
-widget_class "*<GtkProgress>"               style "progressbar"\r
-widget_class "*<GtkProgressBar>"            style "progressbar"\r
-widget_class "*<GtkRadioButton>*"           style "radiocheck"\r
-widget_class "*<GtkCheckButton>*"           style "radiocheck"\r
-class "GtkCheckMenuItem"                    style:highest "radiocheck-menu"\r
-class "GtkRadioMenuItem"                    style:highest "radiocheck-menu"\r
-\r
-# Treeview header\r
-widget_class "*.<GtkTreeView>.<GtkButton>"  style "treeview-header"\r
-widget_class "*.<GtkCTree>.<GtkButton>"     style "treeview-header"\r
-widget_class "*.<GtkList>.<GtkButton>"      style "treeview-header"\r
-widget_class "*.<GtkCList>.<GtkButton>"     style "treeview-header"\r
-\r
-# FIXME: This will not work if one embeds eg. a button into the tooltip.\r
-widget "gtk-tooltip*" style "tooltips"\r
-\r
-# Special cases and workarounds: #\r
-\r
-# workaround for http://bugzilla.gnome.org/show_bug.cgi?id=382646\r
-# Note that this workaround assumes that the combobox is _NOT_ in\r
-# appears-as-list mode.\r
-widget_class "*.<GtkComboBox>.<GtkCellView>"\r
-  style "workaround-for-text-is-fg-color"\r
-\r
-# This is the part of the workaround that fixes the menus\r
-widget "*.gtk-combobox-popup-menu.*"\r
-  style "workaround-for-menuitem-text-is-fg-color"\r
-\r
-# workaround the usage of GtkLabel inside GtkListItems to display text.\r
-# This breaks because the label is shown on a background that is based on\r
-# the base color.\r
-widget_class "*<GtkListItem>*" style "workaround-for-fg-is-text-color"\r
-\r
-# GtkCList also uses the fg color to draw text on top of the base colors.\r
-widget_class "*<GtkCList>" style "workaround-for-fg-is-text-color"\r
-\r
-# Draw arrows dark on dark toolbars.\r
-widget_class "*GtkToolbar*GtkArrow*"        style "default"\r
-\r
-# Various performance fixes if murrine textstyle is on by default in the theme.\r
-widget_class "*GimpDisplayShell*"           style "performance-fix"\r
-widget_class "*GimpToolbox*"                style "performance-fix"\r
-widget_class "*GimpMenuDock*"               style "performance-fix"
\ No newline at end of file
diff --git a/osxapp/gtkrc b/osxapp/gtkrc
deleted file mode 100644 (file)
index 15a2f22..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-# Set default theme to Mac
-gtk-theme-name = "Mac"
-
-#Include Mac path to fix plugins not applying theme
-include "../../share/themes/Mac/gtk-2.0/gtkrc"
-
-# Set default key-bindings to Mac
-gtk-key-theme-name = "Mac"
-
-# Include Mac path to fix plugins not applying key-bindings
-include "../../share/themes/Mac/gtk-2.0-key/gtkrc"
diff --git a/osxapp/icons/XBoard.icns b/osxapp/icons/XBoard.icns
deleted file mode 100644 (file)
index 31d3008..0000000
Binary files a/osxapp/icons/XBoard.icns and /dev/null differ
diff --git a/osxapp/icons/fen.icns b/osxapp/icons/fen.icns
deleted file mode 100644 (file)
index ca282d6..0000000
Binary files a/osxapp/icons/fen.icns and /dev/null differ
diff --git a/osxapp/icons/pgn.icns b/osxapp/icons/pgn.icns
deleted file mode 100644 (file)
index c5f9cb1..0000000
Binary files a/osxapp/icons/pgn.icns and /dev/null differ
diff --git a/osxapp/icons/trn.icns b/osxapp/icons/trn.icns
deleted file mode 100644 (file)
index 90a1304..0000000
Binary files a/osxapp/icons/trn.icns and /dev/null differ
diff --git a/osxapp/icons/xop.icns b/osxapp/icons/xop.icns
deleted file mode 100644 (file)
index 184b2d0..0000000
Binary files a/osxapp/icons/xop.icns and /dev/null differ
diff --git a/osxapp/launcher_rc b/osxapp/launcher_rc
deleted file mode 100644 (file)
index 23f9e1e..0000000
+++ /dev/null
@@ -1 +0,0 @@
-*** Please do _NOT_ delete this file. The file MacOS/XBoard depends on it. ***
diff --git a/osxapp/logos/207.99.83.228.png b/osxapp/logos/207.99.83.228.png
deleted file mode 100644 (file)
index 4b2408c..0000000
Binary files a/osxapp/logos/207.99.83.228.png and /dev/null differ
diff --git a/osxapp/logos/dummy.png b/osxapp/logos/dummy.png
deleted file mode 100644 (file)
index 8fff278..0000000
Binary files a/osxapp/logos/dummy.png and /dev/null differ
diff --git a/osxapp/logos/freechess.org.png b/osxapp/logos/freechess.org.png
deleted file mode 100644 (file)
index d3942eb..0000000
Binary files a/osxapp/logos/freechess.org.png and /dev/null differ
diff --git a/osxapp/logos/winboard.nl.png b/osxapp/logos/winboard.nl.png
deleted file mode 100644 (file)
index 32ca0d8..0000000
Binary files a/osxapp/logos/winboard.nl.png and /dev/null differ
diff --git a/osxapp/themes/default/eo_Analyzing.png b/osxapp/themes/default/eo_Analyzing.png
deleted file mode 100644 (file)
index 997b741..0000000
Binary files a/osxapp/themes/default/eo_Analyzing.png and /dev/null differ
diff --git a/osxapp/themes/default/eo_Black.png b/osxapp/themes/default/eo_Black.png
deleted file mode 100644 (file)
index 13ec5a8..0000000
Binary files a/osxapp/themes/default/eo_Black.png and /dev/null differ
diff --git a/osxapp/themes/default/eo_Clear.png b/osxapp/themes/default/eo_Clear.png
deleted file mode 100644 (file)
index 3cea7c4..0000000
Binary files a/osxapp/themes/default/eo_Clear.png and /dev/null differ
diff --git a/osxapp/themes/default/eo_Ponder.png b/osxapp/themes/default/eo_Ponder.png
deleted file mode 100644 (file)
index 3a96f86..0000000
Binary files a/osxapp/themes/default/eo_Ponder.png and /dev/null differ
diff --git a/osxapp/themes/default/eo_Thinking.png b/osxapp/themes/default/eo_Thinking.png
deleted file mode 100644 (file)
index 54e6188..0000000
Binary files a/osxapp/themes/default/eo_Thinking.png and /dev/null differ
diff --git a/osxapp/themes/default/eo_Unknown.png b/osxapp/themes/default/eo_Unknown.png
deleted file mode 100644 (file)
index 10f795d..0000000
Binary files a/osxapp/themes/default/eo_Unknown.png and /dev/null differ
diff --git a/osxapp/themes/default/eo_White.png b/osxapp/themes/default/eo_White.png
deleted file mode 100644 (file)
index 3d7ba7d..0000000
Binary files a/osxapp/themes/default/eo_White.png and /dev/null differ
diff --git a/osxapp/themes/default/icon_black.png b/osxapp/themes/default/icon_black.png
deleted file mode 100644 (file)
index 07de156..0000000
Binary files a/osxapp/themes/default/icon_black.png and /dev/null differ
diff --git a/osxapp/themes/default/icon_white.png b/osxapp/themes/default/icon_white.png
deleted file mode 100644 (file)
index 9f98df2..0000000
Binary files a/osxapp/themes/default/icon_white.png and /dev/null differ
diff --git a/parser.c b/parser.c
deleted file mode 100644 (file)
index 8378132..0000000
--- a/parser.c
+++ /dev/null
@@ -1,894 +0,0 @@
-/*
- * parser.c --
- *
- * Copyright 2011, 2012, 2013, 2014, 2015, 2016 Free Software Foundation, Inc.
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-#include "config.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <string.h>
-#include "common.h"
-#include "backend.h"
-#include "frontend.h"
-#include "parser.h"
-#include "moves.h"
-
-
-extern Board   boards[MAX_MOVES];
-extern int     PosFlags(int nr);
-int            yyboardindex;
-int             yyskipmoves = FALSE;
-char           currentMoveString[4096]; // a bit ridiculous size?
-char *yy_text;
-
-#define PARSEBUFSIZE 10000
-
-static FILE *inputFile;
-static char *inPtr, *parsePtr, *parseStart;
-static char inputBuf[PARSEBUFSIZE];
-static char yytext[PARSEBUFSIZE];
-static char fromString = 0, lastChar = '\n';
-
-#define NOTHING 0
-#define NUMERIC 1
-#define ALPHABETIC 2
-#define BADNUMBER (-2000000000)
-
-#define XCO    0
-#define YCO   53
-#define PIECE 94
-#define MISC 155
-#define JIS  200
-
-unsigned char kanjiTab[] = {
-  '1', 0357, 0274, 0221, // kanji notation for arabic digits
-  '2', 0357, 0274, 0222,
-  '3', 0357, 0274, 0223,
-  '4', 0357, 0274, 0224,
-  '5', 0357, 0274, 0225,
-  '6', 0357, 0274, 0226,
-  '7', 0357, 0274, 0227,
-  '8', 0357, 0274, 0230,
-  '9', 0357, 0274, 0231,
-  'x', 0345, 0220, 0214,
-  's', 0345, 0205, 0210, // sente
-  'g', 0345, 0276, 0214, // gote
-  '-', 0346, 0212, 0225, // resign
-   0,
-  'a', 0344, 0270, 0200, // in reality these are numbers in Japanese a=1, b=2 etc.
-  'b', 0344, 0272, 0214,
-  'c', 0344, 0270, 0211,
-  'd', 0345, 0233, 0233,
-  'e', 0344, 0272, 0224,
-  'f', 0345, 0205, 0255,
-  'g', 0344, 0270, 0203,
-  'h', 0345, 0205, 0253,
-  'i', 0344, 0271, 0235,
-  ' ', 0343, 0200, 0200,
-   0,
-  'K', 0347, 0216, 0211, // piece names
-  'K', 0347, 0216, 0213,
-  'G', 0351, 0207, 0221,
-  'S', 0351, 0212, 0200,
-  'R', 0351, 0243, 0233,
-  'B', 0350, 0247, 0222,
-  'N', 0346, 0241, 0202,
-  'L', 0351, 0246, 0231,
-  'P', 0346, 0255, 0251,
-  'r', 0351, 0276, 0215,
-  'b', 0351, 0246, 0254,
-  'p', 0343, 0201, 0250,
-  'r', 0347, 0253, 0234,
-  '+', 0346, 0210, 0220,
-  'G', 0, 0, 0,
-   0,
-  '+', 0346, 0210, 0220, // helper
-  '@', 0346, 0211, 0223,
-  'p', 0346, 0211, 0213, // player
-  ':', 0357, 0274, 0232,
-  '-', 0344, 0272, 0206,
-  'f', 0344, 0270, 0212,
-  's', 0345, 0257, 0204,
-  'b', 0345, 0274, 0225,
-  'r', 0345, 0267, 0246,
-  'l', 0345, 0217, 0263,
-  'v', 0347, 0233, 0264,
-   0,
-   // shift-JIS
-  '1', 0202, 0120, 0,
-  '2', 0202, 0121, 0,
-  '3', 0202, 0122, 0,
-  '4', 0202, 0123, 0,
-  '5', 0202, 0124, 0,
-  '6', 0202, 0125, 0,
-  '7', 0202, 0126, 0,
-  '8', 0202, 0127, 0,
-  '9', 0202, 0130, 0,
-  'x', 0223, 0257, 0,
-  's', 0220, 0346, 0,
-  'g', 0214, 0343, 0,
-  '-', 0223, 0212, 0,
-   0,
-  'a', 0210, 0352, 0, 
-  'b', 0223, 0361, 0, 
-  'c', 0216, 0117, 0, 
-  'd', 0216, 0154, 0, 
-  'e', 0214, 0334, 0, 
-  'f', 0230, 0132, 0, 
-  'g', 0216, 0265, 0, 
-  'h', 0224, 0252, 0, 
-  'i', 0213, 0343, 0, 
-  ' ', 0201, 0100, 0, 
-   0,
-  'K', 0213, 0312, 0, 
-  'K', 0213, 0312, 0, 
-  'G', 0213, 0340, 0, 
-  'S', 0213, 0342, 0, 
-  'R', 0224, 0362, 0, 
-  'B', 0212, 0160, 0,
-  'N', 0214, 0152, 0, 
-  'L', 0215, 0201, 0, 
-  'P', 0225, 0340, 0, 
-  'r', 0227, 0264, 0, 
-  'b', 0224, 0156, 0, 
-  'p', 0202, 0306, 0, 
-  'r', 0227, 0263, 0, 
-  '+', 0220, 0254, 0, 
-  'G', 0, 0, 0, 
-   0,
-  '+', 0220, 0254, 0, 
-  '@', 0221, 0305, 0, 
-//  'p', 0214, 0343, 0,
-  'p', 0216, 0350, 0,
-  ':', 0201, 0106, 0,
-  '-', 0227, 0271, 0,
-  'f', 0217, 0343, 0,
-  's', 0212, 0361, 0,
-  'b', 0210, 0370, 0,
-  'r', 0215, 0266, 0,
-  'l', 0211, 0105, 0,
-  'v', 0222, 0274, 0,
-   0,
-     
-};
-
-int NextUnit P((char **p));
-
-int kifu = 0;
-
-char
-GetKanji (char **p, int start)
-{
-    unsigned char *q = *(unsigned char **) p;
-    int i;
-
-    if((*q & 0x80) == 0) return 0; // plain ASCII, refuse to parse
-    if((**p & 0xC0) == 0x80) { // this is an illegal starting code in utf-8, so assume shift-JIS
-       for(i=start+JIS; kanjiTab[i]; i+=4) {
-           if(q[0] == kanjiTab[i+1] && q[1] == kanjiTab[i+2]) {
-               (*p) += 2; kifu = 0x80;
-               return kanjiTab[i];
-           }
-       }
-       (*p) += (kifu ? 2 : 1); // assume this is an unrecognized kanji when reading kif files
-       return 0;
-    }
-
-    for(i=start; kanjiTab[i]; i+=4) {
-       if(q[0] == kanjiTab[i+1] && q[1] == kanjiTab[i+2] && q[2] == kanjiTab[i+3]) {
-           (*p) += 3; kifu = 0x80;
-           return kanjiTab[i];
-       }
-    }
-
-    if((q[0] & 0xE0) == 0xC0 && (q[1] & 0xC0) == 0x80) (*p) += 2; else // for now skip unrecognized utf-8 characters
-    if((q[0] & 0xF0) == 0xE0 && (q[1] & 0xC0) == 0x80 && (q[2] & 0xC0) == 0x80) (*p) += 3; else
-    if((q[0] & 0xF8) == 0xF0 && (q[1] & 0xC0) == 0x80 && (q[2] & 0xC0) == 0x80 && (q[3] & 0xC0) == 0x80) (*p) += 4;
-    else if(**p & 0x80) return -1; // not valid utf-8
-
-    return 0; // unrecognized but valid kanji (skipped), or plain ASCII
-}
-
-int
-KifuMove (char **p)
-{
-    static char buf[MSG_SIZ];
-    char *ptr = buf+3, *q, k;
-    int wom = quickFlag ? quickFlag&1 : WhiteOnMove(yyboardindex);
-    k = GetKanji(p, XCO);
-    if(k < 0) { (*p)++; return Nothing; } // must try shift-JIS here
-    if(k >= '1' && k <= '9') {
-       buf[0] = k; buf[1] = GetKanji(p, YCO); // to-square coords
-    } else if(k == 'x') {
-       if(GetKanji(p, YCO) != ' ') (*p) -= 3; // skip spacer kanji after recapture 
-    } else if((k == 's' || k == 'g') && GetKanji(p, MISC) == 'p' && GetKanji(p, MISC) == ':') { // player name
-       snprintf(yytext, MSG_SIZ, "[%s \"", k == 's' ? "White" : "Black"); // construct PGN tag
-       for(q=yytext+8; **p && **p != '\n' && **p != '\r' && q < yytext + MSG_SIZ; ) *q++ = *(*p)++;
-       strcpy(q, "\"]\n"); parseStart = yytext; lastChar = '\n';
-       return PGNTag;
-    } else if(k == '-' && GetKanji(p, MISC) == '-') { // resign
-       int res;
-       parseStart = yytext;
-       if(wom)
-            res = BlackWins, strcpy(yytext, "{sente resigns} 0-1"); 
-       else res = WhiteWins, strcpy(yytext, "{gote resigns} 1-0");
-       return res;
-    } else {
-       while(**p && **p != '\n') (*p)++; // unrecognized Japanese kanji: skip to end of line
-       return Nothing;
-    }
-    buf[3] = GetKanji(p, PIECE); // piece ID
-    if(buf[3] == '+') buf[2] = '+', buf[3] = GetKanji(p, PIECE); // +N, +L, +S
-    k = GetKanji(p, MISC);
-    if(k == '@') { // drop move
-       buf[4] = '@', buf[5] = buf[0], buf[6] = buf[1]; buf[7] = NULLCHAR;
-       if(appData.debugMode) fprintf(debugFP, "kifu drop %s\n", ptr);
-       return NextUnit(&ptr);
-    }
-
-    kifu = 0x80;
-    do { // read disambiguation (and promotion) kanji
-       switch(k) {
-         case '+': kifu |= 1; break;
-         case 'f': kifu |= 2; break;
-         case 'b': kifu |= 4; break;
-         case 's': kifu |= 8; break;
-         case 'l': kifu |= 0x10; break;
-         case 'r': kifu |= 0x20; break;
-         case 'v': kifu |= 0x40; break;
-       }
-    } while(k = GetKanji(p, MISC));
-
-    if(**p == '(' && (*p)[3] == ')') { // kif disambiguation
-       buf[4] = (*p)[1]; buf[5] = (*p)[2] + 'a' - '1'; buf[6] = buf[0]; buf[7] = buf[1]; buf[8] = (kifu & 1)*'+'; buf[9] = NULLCHAR;
-       (*p) += 4; ptr++; // strip off piece name if we know full from-square
-       if(appData.debugMode) fprintf(debugFP, "kifu move %s\n", ptr);
-       return NextUnit(&ptr);
-    } else { // kif2
-       char *q = buf+4;
-       if(islower(buf[3])) // kludge: kanji for promoted types translate as lower case
-           buf[3] += 'A' - 'a', buf[2] = '+', ptr--;        // so prefix with '+'
-       if(kifu * ~1) { // disambiguation was given, and thus is probably needed
-           if(buf[3] != 'B' && buf[3] != 'R') {                // stepper, so distance must be <= 1 (N or L never need vertical disambiguation!)
-               if(kifu & 0x10) *q++ = buf[0] - (wom ? -1 : 1); // translate left/right/straight to PSN file disambiguators
-               if(kifu & 0x20) *q++ = buf[0] + (wom ? -1 : 1);
-               if(kifu & 0x40) *q++ = buf[0], kifu |= 2;       // kludge: 'straight' only needs disambiguation if forward!
-               if(kifu & 2) *q++ = buf[1] + (wom ? -1 : 1);    // translate forward/backward/sideway to PSN rank disambiguators
-               if(kifu & 4) *q++ = buf[1] - (wom ? -1 : 1);
-               if(kifu & 8) *q++ = buf[1];
-           } // for B, R, +B and +R it gets ugly, as we cannot deduce the distance, and the Disambiguate callback has to directly look at 'kifu'
-       }
-       *q++ = buf[0]; *q++ = buf[1]; *q++ = (kifu & 1)*'+'; *q = NULLCHAR;
-       if(appData.debugMode) fprintf(debugFP, "kif2 move %s\n", ptr);
-       return NextUnit(&ptr);
-    }
-}
-
-int
-ReadLine ()
-{   // Read one line from the input file, and append to the buffer
-    char c, *start = inPtr;
-    if(fromString) return 0; // parsing string, so the end is a hard end
-    if(!inputFile) return 0;
-    while((c = fgetc(inputFile)) != EOF) {
-       *inPtr++ = c;
-       if(c == '\n') { *inPtr = NULLCHAR; return 1; }
-       if(inPtr - inputBuf > PARSEBUFSIZE-2) inPtr--; //prevent crash on overflow
-    }
-    if(inPtr == start) return 0;
-    *inPtr++ = '\n', *inPtr = NULLCHAR; // repair missing linefeed at EOF
-    return 1;
-}
-
-int
-Scan (char c, char **p)
-{   // line-spanning skip to mentioned character or EOF
-    do {
-       while(**p) if(*(*p)++ == c) return 0;
-    } while(ReadLine());
-    // no closing bracket; force match for entire rest of file.
-    return 1;
-}
-
-int
-SkipWhite (char **p)
-{   // skip spaces tabs and newlines; return 1 if anything was skipped
-    char *start = *p;
-    do{
-       while(**p == ' ' || **p == '\t' || **p == '\n' || **p == '\r') (*p)++;
-    } while(**p == NULLCHAR && ReadLine()); // continue as long as ReadLine reads something
-    return *p != start;
-}
-
-static inline int
-Match (char *pattern, char **ptr)
-{
-    char *p = pattern, *s = *ptr;
-    while(*p && (*p == *s++ || s[-1] == '\r' && *p--)) p++;
-    if(*p == 0) {
-       *ptr = s;
-       return 1;
-    }
-    return 0; // no match, no ptr update
-}
-
-static inline int
-Word (char *pattern, char **p)
-{
-    if(Match(pattern, p)) return 1;
-    if(*pattern >= 'a' && *pattern <= 'z' && *pattern - **p == 'a' - 'A') { // capitalized
-       (*p)++;
-       if(Match(pattern + 1, p)) return 1;
-       (*p)--;
-    }
-    return 0;
-}
-
-int
-Verb (char *pattern, char **p)
-{
-    int res = Word(pattern, p);
-    if(res && !Match("s", p)) Match("ed", p); // eat conjugation suffix, if any
-    return res;
-}
-
-int
-Number (char **p)
-{
-    int val = 0;
-    if(**p < '0' || **p > '9') return BADNUMBER;
-    while(**p >= '0' && **p <= '9') {
-       val = 10*val + *(*p)++ - '0';
-    }
-    return val;
-}
-
-int
-RdTime (char c, char **p)
-{
-    char *start = ++(*p), *sec; // increment *p, as it was pointing to the opening ( or {
-    if(Number(p) == BADNUMBER) return 0;
-    sec = *p;
-    if(Match(":", p) && Number(p) != BADNUMBER && *p - sec == 3) { // well formed
-       sec = *p;
-       if(Match(".", p) && Number(p) != BADNUMBER && *(*p)++ == c) return 1; // well-formed fraction
-       *p = sec;
-       if(*(*p)++ == c) return 1; // matching bracket without fraction
-    }
-    *p = start; // failure
-    return 0;
-}
-
-char
-PromoSuffix (char **p)
-{
-    char *start = *p;
-    if(**p == ' ') return NULLCHAR; // common case, test explicitly for speed
-    if(**p == 'e' && (Match("ep", p) || Match("e.p.", p))) { *p = start; return NULLCHAR; } // non-compliant e.p. suffix is no promoChar!
-    if(**p == '+' && IS_SHOGI(gameInfo.variant)) { (*p)++; return '+'; }
-    if(**p == '=' || (gameInfo.variant == VariantSChess) && **p == '/') (*p)++; // optional = (or / for Seirawan gating)
-    if(**p == '(' && (*p)[2] == ')' && isalpha( (*p)[1] )) { (*p) += 3; return ToLower((*p)[-2]); }
-    if(isalpha(**p) && **p != 'x') return ToLower(*(*p)++); // reserve 'x' for multi-leg captures? 
-    if(*p != start) return **p == '+' ? *(*p)++ : '='; // must be the optional = (or =+)
-    return NULLCHAR; // no suffix detected
-}
-
-int
-NextUnit (char **p)
-{      // Main parser routine
-       int coord[4], n, result, piece, i;
-       char type[4], promoted, separator, slash, *oldp, *commentEnd, c;
-        int wom = quickFlag ? quickFlag&1 : WhiteOnMove(yyboardindex);
-
-       // ********* try white first, because it is so common **************************
-       if(**p == ' ' || **p == '\n' || **p == '\t') { parseStart = (*p)++; return Nothing; }
-
-
-       if(**p == NULLCHAR) { // make sure there is something to parse
-           if(fromString) return 0; // we are parsing string, so the end is really the end
-           *p = inPtr = parseStart = inputBuf;
-           if(!ReadLine()) return 0; // EOF
-       } else if(inPtr > inputBuf + PARSEBUFSIZE/2) { // buffer fills up with already parsed stuff
-           char *q = *p, *r = inputBuf;
-           while(*r++ = *q++);
-           *p = inputBuf; inPtr = r - 1;
-       }
-       parseStart = oldp = *p; // remember where we begin
-
-       // ********* attempt to recognize a SAN move in the leading non-blank text *****
-       piece = separator = promoted = slash = n = 0;
-       for(i=0; i<4; i++) coord[i] = -1, type[i] = NOTHING;
-       if(**p & 0x80) return KifuMove(p); // non-ascii. Could be some kanj notation for Shogi or Xiangqi
-       if(**p == '+') (*p)++, promoted++;
-       if(**p >= 'a' && **p <= 'z' && (*p)[1]== '@') piece =*(*p)++ + 'A' - 'a'; else
-       if(**p >= 'A' && **p <= 'Z') {
-            static char s[] = SUFFIXES;
-            char *q;
-            piece = *(*p)++; // Note we could test for 2-byte non-ascii names here
-            if(q = strchr(s, **p)) (*p)++, piece += 64*(q - s + 1);
-            if(**p == '/') slash = *(*p)++;
-       }
-        while(n < 4) {
-           if(**p >= 'a' && **p < 'x') coord[n] = *(*p)++ - 'a', type[n++] = ALPHABETIC;
-           else if((i = Number(p)) != BADNUMBER) coord[n] = i, type[n++] = NUMERIC;
-           else break;
-           if(n == 2 && type[0] == type[1]) { // if two identical types, the opposite type in between must have been missing
-               type[2] = type[1]; coord[2] = coord[1];
-               type[1] = NOTHING; coord[1] = -1; n++;
-           }
-       }
-       // we always get here, and might have read a +, a piece, and upto 4 potential coordinates
-       if(n <= 2) { // could be from-square or disambiguator, when -:xX follow, or drop with @ directly after piece, but also to-square
-            if(**p == '-' || **p == ':' || **p == 'x' || **p == 'X' || // these cannot be move suffix, so to-square must follow
-                (**p == '@' || **p == '*') && n == 0 && !promoted && piece) { // P@ must also be followed by to-square
-               separator = *(*p)++;
-               if(n == 1) coord[1] = coord[0]; // must be disambiguator, but we do not know which yet
-               n = 2;
-               while(n < 4) { // attempt to read to-square
-                   if(**p >= 'a' && **p < 'x') coord[n] = *(*p)++ - 'a', type[n++] = ALPHABETIC;
-                   else if((i = Number(p)) != BADNUMBER) coord[n] = i, type[n++] = NUMERIC;
-                   else break;
-               }
-           } else if((**p == '+' || **p == '=') && n == 1 && piece && type[0] == NUMERIC) { // can be traditional Xiangqi notation
-               separator = *(*p)++;
-               n = 2;
-               if((i = Number(p)) != BADNUMBER) coord[n] = i, type[n++] = NUMERIC;
-           } else if(n == 2) { // only one square mentioned, must be to-square
-               while(n < 4) { coord[n] = coord[n-2], type[n] = type[n-2], coord[n-2] = -1, type[n-2] = NOTHING; n++; }
-           }
-       } else if(n == 3 && type[1] != NOTHING) { // must be hyphenless disambiguator + to-square
-           for(i=3; i>0; i--) coord[i] = coord[i-1], type[i] = type[i-1]; // move to-square to where it belongs
-           type[1] = NOTHING; // disambiguator goes in first two positions
-           n = 4;
-       }
-       // we always get here; move must be completely read now, with to-square coord(s) at end
-       if(n == 3) { // incomplete to-square. Could be Xiangqi traditional, or stuff like fxg
-           if(piece && type[1] == NOTHING && type[0] == NUMERIC && type[2] == NUMERIC &&
-               (separator == '+' || separator == '=' || separator == '-')) {
-                    // Xiangqi traditional
-
-               return ImpossibleMove; // for now treat as invalid
-           }
-           // fxg stuff, but also things like 0-0, 0-1 and 1-0
-           if(!piece && type[1] == NOTHING && type[0] == ALPHABETIC && type[2] == ALPHABETIC
-                && (coord[0] != 14 || coord[2] != 14) /* reserve oo for castling! */ ) {
-               piece = 'P'; n = 4; // kludge alert: fake full to-square
-           }
-       } else if(n == 1 && type[0] == NUMERIC && coord[0] > 1) { while(**p == '.') (*p)++; return Nothing; } // fast exit for move numbers
-       if(n == 4 && type[2] != type[3] && // we have a valid to-square (kludge: type[3] can be NOTHING on fxg type move)
-                    (piece || !promoted) && // promoted indicator only valid on named piece type
-                    (type[2] == ALPHABETIC || IS_SHOGI(gameInfo.variant))) { // in Shogi also allow alphabetic rank
-           DisambiguateClosure cl;
-           int fromX, fromY, toX, toY;
-
-           if(slash && (!piece || type[1] == NOTHING)) goto badMove; // slash after piece only in ICS long format
-           if (yyskipmoves) return (int) AmbiguousMove; /* not disambiguated */
-
-           if(type[2] == NUMERIC) { // alpha-rank
-               coord[2] = BOARD_RGHT - BOARD_LEFT - coord[2];
-               coord[3] = BOARD_HEIGHT - coord[3];
-               if(coord[0] >= 0) coord[0] = BOARD_RGHT - BOARD_LEFT - coord[0];
-               if(coord[1] >= 0) coord[1] = BOARD_HEIGHT - coord[1];
-           }
-           toX = cl.ftIn = (currentMoveString[2] = coord[2] + 'a') - AAA;
-           toY = cl.rtIn = (currentMoveString[3] = coord[3] + '0') - ONE;
-           if(type[3] == NOTHING) cl.rtIn = -1; // for fxg type moves ask for toY disambiguation
-           else if(toY >= BOARD_HEIGHT || toY < 0)   return ImpossibleMove; // vert off-board to-square
-           if(toX < BOARD_LEFT || toX >= BOARD_RGHT) return ImpossibleMove;
-           if(piece) {
-               cl.pieceIn = CharToPiece(wom ? piece : piece + 'a' - 'A');
-               if(cl.pieceIn == EmptySquare) return ImpossibleMove; // non-existent piece
-               if(promoted) cl.pieceIn = (ChessSquare) (CHUPROMOTED(cl.pieceIn));
-           } else cl.pieceIn = EmptySquare;
-           if(separator == '@' || separator == '*') { // drop move. We only get here without from-square or promoted piece
-               fromY = DROP_RANK; fromX = cl.pieceIn;
-               currentMoveString[0] = piece;
-               currentMoveString[1] = '@';
-               currentMoveString[4] = NULLCHAR;
-               return LegalityTest(boards[yyboardindex], PosFlags(yyboardindex)&~F_MANDATORY_CAPTURE, fromY, fromX, toY, toX, NULLCHAR);
-           }
-           if(type[1] == NOTHING && type[0] != NOTHING) { // there is a disambiguator
-               if(type[0] != type[2]) coord[0] = -1, type[1] = type[0], type[0] = NOTHING; // it was a rank-disambiguator
-           }
-           if(  type[1] != type[2] && // means fromY is of opposite type as ToX, or NOTHING
-               (type[0] == NOTHING || type[0] == type[2]) ) { // well formed
-               int suffix = 7;
-               fromX = (currentMoveString[0] = coord[0] + 'a') - AAA;
-               fromY = (currentMoveString[1] = coord[1] + '0') - ONE;
-               currentMoveString[4] = cl.promoCharIn = PromoSuffix(p);
-               currentMoveString[5] = NULLCHAR;
-               if(**p == 'x' && !cl.promoCharIn) { // other leg follows
-                   char *q = *p;
-                   int x = *++*p, y;
-                   ++*p; y = Number(p);
-                   if(**p == '-' || **p == 'x') {  // 3-leg move!
-                       currentMoveString[7] = (kill2X = toX) + AAA; // what we thought was to-square is in fact 1st kill-square of two
-                       currentMoveString[8] = (kill2Y = toY) + ONE; // append it after 2nd kill-square
-                       toX = x - AAA;       // kludge alert: this will become 2nd kill square
-                       toY = y + '0' - ONE;
-                       suffix += 2;
-                   } else *p = q; // 2-leg move, rewind to leave reading of 2nd leg to code below
-               }
-               if(!cl.promoCharIn && (**p == '-' || **p == 'x')) { // Lion-type multi-leg move
-                   currentMoveString[5] = (killX = toX) + AAA; // what we thought was to-square is in fact kill-square
-                   currentMoveString[6] = (killY = toY) + ONE; // append it as suffix behind long algebraic move
-                   currentMoveString[4] = ';';
-                   currentMoveString[suffix+1] = NULLCHAR;
-                   // read new to-square (VERY non-robust! Assumes correct (non-alpha-rank) syntax, and messes up on errors)
-                   toX = cl.ftIn = (currentMoveString[2] = *++*p) - AAA; ++*p;
-                   toY = cl.rtIn = (currentMoveString[3] = Number(p) + '0') - ONE;
-                   currentMoveString[suffix] = cl.promoCharIn = PromoSuffix(p);
-               }
-               if(type[0] != NOTHING && type[1] != NOTHING && type[3] != NOTHING) { // fully specified.
-                   ChessSquare realPiece = boards[yyboardindex][fromY][fromX];
-                   // Note that Disambiguate does not work for illegal moves, but flags them as impossible
-                   if(piece) { // check if correct piece indicated
-                       if(PieceToChar(realPiece) == '~') realPiece = (ChessSquare) (DEMOTED(realPiece));
-                       if(!(appData.icsActive && PieceToChar(realPiece) == '+') && // trust ICS if it moves promoted pieces
-                          piece && realPiece != cl.pieceIn) return ImpossibleMove;
-                   } else if(!separator && **p == '+') { // could be a protocol move, where bare '+' suffix means shogi-style promotion
-                       if(realPiece < (wom ?  WhiteCannon : BlackCannon) && PieceToChar(PROMOTED(realPiece)) == '+') // seems to be that
-                          currentMoveString[4] = cl.promoCharIn = *(*p)++; // append promochar after all
-                   }
-                   result = LegalityTest(boards[yyboardindex], PosFlags(yyboardindex), fromY, fromX, toY, toX, cl.promoCharIn);
-                   if (currentMoveString[4] == NULLCHAR) { // suppy missing mandatory promotion character
-                     if(result == WhitePromotion  || result == BlackPromotion) {
-                       switch(gameInfo.variant) {
-                         case VariantCourier:
-                         case VariantShatranj: currentMoveString[4] = PieceToChar(BlackFerz); break;
-                         case VariantGreat:    currentMoveString[4] = PieceToChar(BlackMan); break;
-                         case VariantShogi:    currentMoveString[4] = '+'; break;
-                         default:              currentMoveString[4] = PieceToChar(BlackQueen);
-                       }
-                     } else if(result == WhiteNonPromotion  || result == BlackNonPromotion) {
-                                               currentMoveString[4] = '=';
-                     }
-                   } else if(appData.testLegality && gameInfo.variant != VariantSChess && // strip off unnecessary and false promo characters
-                      !(result == WhitePromotion  || result == BlackPromotion ||
-                        result == WhiteNonPromotion || result == BlackNonPromotion)) currentMoveString[4] = NULLCHAR;
-                   return result;
-               } else if(cl.pieceIn == EmptySquare) cl.pieceIn = wom ? WhitePawn : BlackPawn;
-               cl.ffIn = type[0] == NOTHING ? -1 : coord[0] + 'a' - AAA;
-               cl.rfIn = type[1] == NOTHING ? -1 : coord[1] + '0' - ONE;
-
-               Disambiguate(boards[yyboardindex], PosFlags(yyboardindex), &cl);
-
-               if(cl.kind == ImpossibleMove && !piece && type[1] == NOTHING // fxg5 type
-                       && toY == (wom ? 4 : 3)) { // could be improperly written e.p.
-                   cl.rtIn += wom ? 1 : -1; // shift target square to e.p. square
-                   Disambiguate(boards[yyboardindex], PosFlags(yyboardindex), &cl);
-                   if((cl.kind != WhiteCapturesEnPassant && cl.kind != BlackCapturesEnPassant))
-                       return ImpossibleMove; // nice try, but no cigar
-               }
-
-               currentMoveString[0] = cl.ff + AAA;
-               currentMoveString[1] = cl.rf + ONE;
-               currentMoveString[3] = cl.rt + ONE;
-               if(killX < 0) // [HGM] lion: do not overwrite kill-square suffix
-               currentMoveString[4] = cl.promoChar;
-
-               if((cl.kind == WhiteCapturesEnPassant || cl.kind == BlackCapturesEnPassant) && !Match("ep", p)) Match("e.p.", p);
-
-               return (int) cl.kind;
-           }
-       }
-badMove:// we failed to find algebraic move
-       *p = oldp;
-
-
-       // Next we do some common symbols where the first character commits us to things that cannot possibly be a move
-
-       // ********* PGN tags ******************************************
-       if(**p == '[') {
-           oldp = ++(*p); kifu = 0;
-           if(Match("--", p)) { // "[--" could be start of position diagram
-               if(!Scan(']', p) && (*p)[-3] == '-' && (*p)[-2] == '-') return PositionDiagram;
-               *p = oldp;
-           }
-           SkipWhite(p);
-           if(isdigit(**p) || isalpha(**p)) {
-               do (*p)++; while(isdigit(**p) || isalpha(**p) || **p == '+' ||
-                               **p == '-' || **p == '=' || **p == '_' || **p == '#');
-               SkipWhite(p);
-               if(**p == '"') {
-                   (*p)++;
-                   while(**p != '\n' && (*(*p)++ != '"'|| (*p)[-2] == '\\')); // look for unescaped quote
-                   if((*p)[-1] !='"') { *p = oldp; Scan(']', p); return Comment; } // string closing delimiter missing
-                   SkipWhite(p); if(*(*p)++ == ']') return PGNTag;
-               }
-           }
-           Scan(']', p); return Comment;
-       }
-
-       // ********* SAN Castings *************************************
-       if(**p == 'O' || **p == 'o' || **p == '0' && !Match("00:", p)) { // exclude 00 in time stamps
-           int castlingType = 0;
-           if(Match("O-O-O", p) || Match("o-o-o", p) || Match("0-0-0", p) ||
-              Match("OOO", p) || Match("ooo", p) || Match("000", p)) castlingType = 2;
-           else if(Match("O-O", p) || Match("o-o", p) || Match("0-0", p) ||
-                   Match("OO", p) || Match("oo", p) || Match("00", p)) castlingType = 1;
-           if(castlingType) { //code from old parser, collapsed for both castling types, and streamlined a bit
-               int rf, ff, rt, ft; ChessSquare king;
-               char promo=NULLCHAR;
-
-               if(gameInfo.variant == VariantSChess) promo = PromoSuffix(p);
-
-               if (yyskipmoves) return (int) AmbiguousMove; /* not disambiguated */
-
-               if (wom) {
-                   rf = castlingRank[0];
-                   rt = castlingRank[0];
-                   king = WhiteKing;
-               } else {
-                   rf = castlingRank[3];
-                   rt = castlingRank[3];
-                   king = BlackKing;
-               }
-               ff = (BOARD_WIDTH-1)>>1; // this would be d-file
-               if (boards[yyboardindex][rf][ff] == king) {
-                   /* ICS wild castling */
-                   ft = castlingType == 1 ? BOARD_LEFT+1 : (gameInfo.variant == VariantJanus ? BOARD_RGHT-2 : BOARD_RGHT-3);
-               } else {
-                   char *q;
-                   ff = BOARD_WIDTH>>1; // e-file
-                   ft = castlingType == 1 ? BOARD_RGHT-2 : BOARD_LEFT+2;
-                   if(pieceDesc[king] && (q = strchr(pieceDesc[king], 'O'))) { // redefined to non-default King stride
-                       ft = (castlingType == 1 ? ff + atoi(q+1) : ff - atoi(q+1));
-                   }
-               }
-               if(PosFlags(0) & F_FRC_TYPE_CASTLING) {
-                   if (wom) {
-                       ff = initialRights[2];
-                       ft = initialRights[castlingType-1];
-                   } else {
-                       ff = initialRights[5];
-                       ft = initialRights[castlingType+2];
-                   }
-                   if (appData.debugMode) fprintf(debugFP, "Parser FRC (type=%d) %d %d\n", castlingType, ff, ft);
-                   if(ff == NoRights || ft == NoRights) return ImpossibleMove;
-               }
-               sprintf(currentMoveString, "%c%c%c%c%c",ff+AAA,rf+ONE,ft+AAA,rt+ONE,promo);
-               if (appData.debugMode) fprintf(debugFP, "(%d-type) castling %d %d\n", castlingType, ff, ft);
-
-               return (int) LegalityTest(boards[yyboardindex],
-                             PosFlags(yyboardindex)&~F_MANDATORY_CAPTURE, // [HGM] losers: e.p.!
-                             rf, ff, rt, ft, promo);
-           } else if(Match("01", p)) return Nothing; // prevent this from being mistaken for move number 1
-       }
-
-
-       // ********* variations (nesting) ******************************
-       if(**p =='(') {
-           if(RdTime(')', p)) return ElapsedTime;
-           return Open;
-       }
-       if(**p ==')') { (*p)++; return Close; }
-       if(**p == ';') { while(**p != '\n') (*p)++; return Comment; }
-
-
-       // ********* Comments and result messages **********************
-       *p = oldp; commentEnd = NULL; result = 0;
-       if(**p == '{') {
-           if(RdTime('}', p)) return ElapsedTime;
-           if(lastChar == '\n' && Match("--------------\n", p)) {
-               char *q;
-               i = Scan ('}', p); q = *p - 16;
-               if(Match("\n--------------}\n", &q)) return PositionDiagram;
-           } else i = Scan('}', p);
-           commentEnd = *p; if(i) return Comment; // return comment that runs to EOF immediately
-       }
-        if(commentEnd) SkipWhite(p);
-       if(kifu && **p == '*') { // .kif comment
-           char *q = yytext;
-           while(**p && **p != '\n') { if(q < yytext + 10*MSG_SIZ-3) *q++ = **p; (*p)++; }
-           parseStart = yytext; *yytext = '{'; strcpy(q, "}\n"); // wrap in braces
-           return Comment;
-       }
-       if(Match("*", p)) result = GameUnfinished;
-       else if(**p == '0') {
-           if( Match("0-1", p) || Match("0/1", p) || Match("0:1", p) ||
-               Match("0 - 1", p) || Match("0 / 1", p) || Match("0 : 1", p)) result = BlackWins;
-       } else if(**p == '1') {
-           if( Match("1-0", p) || Match("1/0", p) || Match("1:0", p) ||
-               Match("1 - 0", p) || Match("1 / 0", p) || Match("1 : 0", p)) result = WhiteWins;
-           else if(Match("1/2 - 1/2", p) || Match("1/2:1/2", p) || Match("1/2 : 1/2", p) || Match("1 / 2 - 1 / 2", p) ||
-                   Match("1 / 2 : 1 / 2", p) || Match("1/2", p) || Match("1 / 2", p)) result = GameIsDrawn;
-       }
-       if(result) {
-           if(Match(" (", p) && !Scan(')', p) || Match(" {", p) && !Scan('}', p)) { // there is a comment after the PGN result!
-               if(commentEnd) { *p = commentEnd; return Comment; } // so comment before it is normal comment; return that first
-           }
-           return result; // this returns a possible preceeding comment as result details
-       }
-       if(commentEnd) { *p = commentEnd; return Comment; } // there was no PGN result following, so return as normal comment
-
-
-       // ********* Move numbers (after castlings or PGN results!) ***********
-       if((i = Number(p)) != BADNUMBER) { // a single number was read as part of our attempt to read a move
-           char *numEnd = *p;
-           if(**p == '.') (*p)++; SkipWhite(p);
-           if(**p == '+' || isalpha(**p) || gameInfo.variant == VariantShogi && *p != numEnd && isdigit(**p)) {
-               *p = numEnd;
-               return i == 1 ? MoveNumberOne : Nothing;
-           }
-           *p = numEnd; return Nothing;
-       }
-
-
-       // ********* non-compliant game-result indicators *********************
-       if(Match("+-+", p) || Word("stalemate", p)) return GameIsDrawn;
-       if(Match("++", p) || Verb("resign", p) || (Word("check", p) || 1) && Word("mate", p) )
-           return (wom ? BlackWins : WhiteWins);
-       c = ToUpper(**p);
-       if(Word("w", p) && (Match("hite", p) || 1) || Word("b", p) && (Match("lack", p) || 1) ) {
-           if(**p != ' ') return Nothing;
-           ++*p;
-           if(Verb("disconnect", p)) return GameUnfinished;
-           if(Verb("resign", p) || Verb("forfeit", p) || Word("mated", p) || Word("lost", p) || Word("loses", p))
-               return (c == 'W' ? BlackWins : WhiteWins);
-           if(Word("mates", p) || Word("wins", p) || Word("won", p))
-               return (c != 'W' ? BlackWins : WhiteWins);
-           return Nothing;
-       }
-       if(Word("draw", p)) {
-           if(**p == 'n') (*p)++;
-           if(**p != ' ') return GameIsDrawn;
-           oldp = ++*p;
-           if(Word("agreed", p)) return GameIsDrawn;
-           if(Match("by ", p) && (Word("repetition", p) || Word("agreement", p)) ) return GameIsDrawn;
-           *p = oldp;
-           if(*(*p)++ == '(') {
-               while(**p != '\n') if(*(*p)++ == ')') break;
-               if((*p)[-1] == ')')  return GameIsDrawn;
-           }
-           *p = oldp - 1; return GameIsDrawn;
-       }
-
-
-       // ********* Numeric annotation glyph **********************************
-       if(**p == '$') { (*p)++; if(Number(p) != BADNUMBER) return NAG; return Nothing; }
-
-
-       // ********** by now we are getting down to the silly stuff ************
-       if(Word("gnu", p) || Match("GNU", p)) {
-           if(**p == ' ') (*p)++;
-           if(Word("chess", p) || Match("CHESS", p)) {
-               char *q;
-               if((q = strstr(*p, "game")) || (q = strstr(*p, "GAME")) || (q = strstr(*p, "Game"))) {
-                   (*p) = q + 4; return GNUChessGame;
-               }
-           }
-           return Nothing;
-       }
-       if(lastChar == '\n' && (Match("# ", p) || Match("; ", p) || Match("% ", p))) {
-           while(**p != '\n' && **p != ' ') (*p)++;
-           if(**p == ' ' && (Match(" game file", p) || Match(" position file", p))) {
-               while(**p != '\n') (*p)++; // skip to EOLN
-               return XBoardGame;
-           }
-           *p = oldp; // we might need to re-match the skipped stuff
-       }
-
-       if(Match("---", p)) { while(**p == '-') (*p)++; return Nothing; } // prevent separators parsing as null move
-       if(Match("@@@@", p) || Match("--", p) || Match("Z0", p) || Match("pass", p) || Match("null", p)) {
-           strncpy(currentMoveString, "@@@@", 5);
-           return yyboardindex & F_WHITE_ON_MOVE ? WhiteDrop : BlackDrop;
-       }
-
-       // ********* Efficient skipping of (mostly) alphabetic chatter **********
-       while(isdigit(**p) || isalpha(**p) || **p == '-') (*p)++;
-       if(*p != oldp) {
-           if(**p == '\'') {
-               while(isdigit(**p) || isalpha(**p) || **p == '-' || **p == '\'') (*p)++;
-               return Nothing; // random word
-           }
-           if(lastChar == '\n' && Match(": ", p)) { // mail header, skip indented lines
-               do {
-                   while(**p != '\n') (*p)++;
-                   if(!ReadLine()) return Nothing; // append next line if not EOF
-               } while(Match("\n ", p) || Match("\n\t", p));
-           }
-           return Nothing;
-       }
-
-       // ********* Prevent 00 in unprotected time stamps to be mistaken for castling *******
-       if(Match(":00", p)) return Nothing;
-
-       // ********* Could not match to anything. Return offending character ****
-       (*p)++;
-       return Nothing;
-}
-
-/*
-    Return offset of next pattern in the current file.
-*/
-int
-yyoffset ()
-{
-    return ftell(inputFile) - (inPtr - parsePtr); // subtract what is read but not yet parsed
-}
-
-void
-yynewfile (FILE *f)
-{   // prepare parse buffer for reading file
-    inputFile = f;
-    inPtr = parsePtr = inputBuf;
-    fromString = 0;
-    lastChar = '\n';
-    *inPtr = NULLCHAR; // make sure we will start by reading a line
-}
-
-void
-yynewstr P((char *s))
-{
-    parsePtr = s;
-    inputFile = NULL;
-    fromString = 1;
-}
-
-int
-yylex ()
-{   // this replaces the flex-generated parser
-    int result = NextUnit(&parsePtr);
-    char *p = parseStart, *q = yytext;
-    if(p == yytext) return result;   // kludge to allow kanji expansion
-    while(p < parsePtr) *q++ = *p++; // copy the matched text to yytext[]
-    *q = NULLCHAR;
-    lastChar = q[-1];
-    return result;
-}
-
-int
-Myylex ()
-{   // [HGM] wrapper for yylex, which treats nesting of parentheses
-    int symbol, nestingLevel = 0, i=0;
-    char *p;
-    static char buf[256*MSG_SIZ];
-    buf[0] = NULLCHAR;
-    do { // eat away anything not at level 0
-        symbol = yylex();
-        if(symbol == Open) nestingLevel++;
-        if(nestingLevel) { // save all parsed text between (and including) the ()
-            for(p=yytext; *p && i<256*MSG_SIZ-2;) buf[i++] = *p++;
-            buf[i] = NULLCHAR;
-        }
-        if(symbol == 0) break; // ran into EOF
-        if(symbol == Close) symbol = Comment, nestingLevel--;
-    } while(nestingLevel || symbol == Nothing);
-    yy_text = buf[0] ? buf : (char*)yytext;
-    return symbol;
-}
-
-ChessMove
-yylexstr (int boardIndex, char *s, char *buf, int buflen)
-{
-    ChessMove ret;
-    char *savPP = parsePtr;
-    fromString = 1;
-    yyboardindex = boardIndex;
-    parsePtr = s;
-    ret = (ChessMove) Myylex();
-    strncpy(buf, yy_text, buflen-1);
-    buf[buflen-1] = NULLCHAR;
-    parsePtr = savPP;
-    fromString = 0;
-    return ret;
-}
diff --git a/parser.h b/parser.h
deleted file mode 100644 (file)
index 9ffacc9..0000000
--- a/parser.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * parser.h -- Interface to XBoard move parser
- *
- * Copyright 1991 by Digital Equipment Corporation, Maynard,
- * Massachusetts.
- *
- * Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006,
- * 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free
- * Software Foundation, Inc.
- *
- * Enhancements Copyright 2005 Alessandro Scotti
- *
- * The following terms apply to Digital Equipment Corporation's copyright
- * interest in XBoard:
- * ------------------------------------------------------------------------
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notice appear in all copies and that
- * both that copyright notice and this permission notice appear in
- * supporting documentation, and that the name of Digital not be
- * used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- *
- * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- * ------------------------------------------------------------------------
- *
- * The following terms apply to the enhanced version of XBoard
- * distributed by the Free Software Foundation:
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-extern void yynewfile P((FILE *f));
-extern void yynewstr P((char *s));
-extern int Myylex P((void)); // [HGM] yylex now globally invisible, all calls must use wrapper
-extern ChessMove yylexstr P((int boardIndex, char *s, char *buf, int buflen));
-extern char currentMoveString[];
-extern int yyboardindex;
-extern int yyskipmoves;  /* If TRUE, all moves are reported as AmbiguousMove
-                           instead of being disambiguated. */
-extern char *yy_text;  /* Needed because yytext can be either a char[]
-                         or a (non-constant) char* */
-extern int yyoffset P((void));
-extern unsigned char initialRights[BOARD_FILES];
-extern signed char  castlingRank[BOARD_FILES];
-
diff --git a/pgntags.c b/pgntags.c
deleted file mode 100644 (file)
index 9833d10..0000000
--- a/pgntags.c
+++ /dev/null
@@ -1,271 +0,0 @@
-/*
- * pgntags.c -- Functions to manage PGN tags
- *
- * Copyright 1995, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free
- * Software Foundation, Inc.
- *
- * Enhancements Copyright 2005 Alessandro Scotti
- *
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- * ------------------------------------------------------------------------
- *
- * This file could well be a part of backend.c, but I prefer it this
- * way.
- */
-
-#include "config.h"
-
-#include <stdio.h>
-#include <errno.h>
-#include <ctype.h>
-#if STDC_HEADERS
-# include <stdlib.h>
-# include <string.h>
-#else /* not STDC_HEADERS */
-# if HAVE_STRING_H
-#  include <string.h>
-# else /* not HAVE_STRING_H */
-#  include <strings.h>
-# endif /* not HAVE_STRING_H */
-#endif /* not STDC_HEADERS */
-
-#include "common.h"
-#include "frontend.h"
-#include "backend.h"
-#include "parser.h"
-
-
-/* Parse PGN tags; returns 0 for success or error number
- */
-int
-ParsePGNTag (char *tag, GameInfo *gameInfo)
-{
-    char *name, *value, *p, *oldTags;
-    int len;
-    int success;
-
-    name = tag;
-    while (!isalpha(*name) && !isdigit(*name)) {
-       name++;
-    }
-    p = name;
-    while (*p != ' ' && *p != '\t' && *p != '\n') {
-       p++;
-    }
-    *p = NULLCHAR;
-    value = strchr(p + 1, '"') + 1;
-    p = strrchr(value, '"');
-    *p = NULLCHAR;
-
-    if (StrCaseCmp(name, "Event") == 0) {
-       success = StrSavePtr(value, &gameInfo->event) != NULL;
-    } else if (StrCaseCmp(name, "Site") == 0) {
-       success = StrSavePtr(value, &gameInfo->site) != NULL;
-    } else if (StrCaseCmp(name, "Date") == 0) {
-       success = StrSavePtr(value, &gameInfo->date) != NULL;
-    } else if (StrCaseCmp(name, "Round") == 0) {
-       success = StrSavePtr(value, &gameInfo->round) != NULL;
-    } else if (StrCaseCmp(name, "White") == 0) {
-       success = StrSavePtr(value, &gameInfo->white) != NULL;
-    } else if (StrCaseCmp(name, "Black") == 0) {
-       success = StrSavePtr(value, &gameInfo->black) != NULL;
-    }
-    /* Fold together the various ways of denoting White/Black rating */
-    else if ((StrCaseCmp(name, "WhiteElo")==0) ||
-            (StrCaseCmp(name, "WhiteUSCF")==0) ) {
-      success = TRUE;
-      gameInfo->whiteRating = atoi( value );
-    } else if ((StrCaseCmp(name, "BlackElo")==0) ||
-              (StrCaseCmp(name, "BlackUSCF")==0)) {
-      success = TRUE;
-      gameInfo->blackRating = atoi( value );
-    }
-    else if (StrCaseCmp(name, "Result") == 0) {
-       if (strcmp(value, "1-0") == 0)
-           gameInfo->result = WhiteWins;
-       else if (strcmp(value, "0-1") == 0)
-           gameInfo->result = BlackWins;
-       else if (strcmp(value, "1/2-1/2") == 0)
-           gameInfo->result = GameIsDrawn;
-       else
-           gameInfo->result = GameUnfinished;
-       success = TRUE;
-    } else if (StrCaseCmp(name, "TimeControl") == 0) {
-//     int tc, mps, inc = -1;
-//     if(sscanf(value, "%d/%d", &mps, &tc) == 2 || )
-       success = StrSavePtr(value, &gameInfo->timeControl) != NULL;
-    } else if (StrCaseCmp(name, "FEN") == 0) {
-       success = StrSavePtr(value, &gameInfo->fen) != NULL;
-    } else if (StrCaseCmp(name, "SetUp") == 0) {
-       /* ignore on input; presence of FEN governs */
-       success = TRUE;
-    } else if (StrCaseCmp(name, "Variant") == 0) {
-        /* xboard-defined extension */
-       success = StrSavePtr(value, &gameInfo->variantName) != NULL;
-        if(*value && strcmp(value, engineVariant)) // keep current engine-defined variant if it matches
-            gameInfo->variant = StringToVariant(value);
-    } else if (StrCaseCmp(name, "VariantMen") == 0) {
-        success = LoadPieceDesc(value);
-    } else if (StrCaseCmp(name, PGN_OUT_OF_BOOK) == 0) {
-        /* [AS] Out of book annotation */
-        success = StrSavePtr(value, &gameInfo->outOfBook) != NULL;
-    } else {
-       if (gameInfo->extraTags == NULL) {
-           oldTags = "";
-       } else {
-           oldTags = gameInfo->extraTags;
-       }
-       /* Buffer size includes 7 bytes of space for [ ""]\n\0 */
-       len = strlen(oldTags) + strlen(value) + strlen(name) + 7;
-       if ((p = (char *) malloc(len))  !=  NULL) {
-           sprintf(p, "%s[%s \"%s\"]\n", oldTags, name, value);
-           if (gameInfo->extraTags != NULL) free(gameInfo->extraTags);
-           gameInfo->extraTags = p;
-           success = TRUE;
-       } else {
-           success = FALSE;
-       }
-    }
-    return(success ? 0 : ENOMEM);
-}
-
-
-/* Print game info */
-void
-PrintPGNTags (FILE *fp, GameInfo *gameInfo)
-{
-    char *p;
-    fprintf(fp, "[Event \"%s\"]\n", gameInfo->event ? gameInfo->event : "?");
-    fprintf(fp, "[Site \"%s\"]\n", gameInfo->site ? gameInfo->site : "?");
-    fprintf(fp, "[Date \"%s\"]\n", gameInfo->date ? gameInfo->date : "?");
-    fprintf(fp, "[Round \"%s\"]\n", gameInfo->round ? gameInfo->round : "-");
-    fprintf(fp, "[White \"%s\"]\n", gameInfo->white ? gameInfo->white : "?");
-    fprintf(fp, "[Black \"%s\"]\n", gameInfo->black ? gameInfo->black : "?");
-    fprintf(fp, "[Result \"%s\"]\n", PGNResult(gameInfo->result));
-    if (gameInfo->whiteRating >= 0)
-       fprintf(fp, "[WhiteElo \"%d\"]\n", gameInfo->whiteRating);
-    if (gameInfo->blackRating >= 0)
-       fprintf(fp, "[BlackElo \"%d\"]\n", gameInfo->blackRating);
-    if (gameInfo->timeControl)
-       fprintf(fp, "[TimeControl \"%s\"]\n", gameInfo->timeControl);
-    if (gameInfo->variant != VariantNormal)
-        fprintf(fp, "[Variant \"%s\"]\n", VariantName(gameInfo->variant));
-    if (*(p = CollectPieceDescriptors()))
-        fprintf(fp, "[VariantMen \"%s\"]\n", p);
-    if (gameInfo->extraTags)
-       fputs(gameInfo->extraTags, fp);
-}
-
-
-/* Return a non-static buffer with a games info.
- */
-char *
-PGNTags (GameInfo *gameInfo)
-{
-    size_t len;
-    char *buf;
-    char *p;
-
-    // First calculate the needed buffer size.
-    // Then we don't have to check the buffer size later.
-    len = 12 + 11 + 11 + 12 + 12 + 12 + 25 + 1; // The first 7 tags
-    if (gameInfo->event) len += strlen(gameInfo->event);
-    if (gameInfo->site)  len += strlen(gameInfo->site);
-    if (gameInfo->date)  len += strlen(gameInfo->date);
-    if (gameInfo->round) len += strlen(gameInfo->round);
-    if (gameInfo->white) len += strlen(gameInfo->white);
-    if (gameInfo->black) len += strlen(gameInfo->black);
-    if (gameInfo->whiteRating >= 0) len += 40;
-    if (gameInfo->blackRating >= 0) len += 40;
-    if (gameInfo->timeControl) len += strlen(gameInfo->timeControl) + 20;
-    if (gameInfo->variant != VariantNormal) len += 50;
-    if (gameInfo->extraTags) len += strlen(gameInfo->extraTags);
-
-    buf = malloc(len);
-    if (!buf)
-       return 0;
-
-    p = buf;
-    p += sprintf(p, "[Event \"%s\"]\n", gameInfo->event ? gameInfo->event : "?");
-    p += sprintf(p, "[Site \"%s\"]\n", gameInfo->site ? gameInfo->site : "?");
-    p += sprintf(p, "[Date \"%s\"]\n", gameInfo->date ? gameInfo->date : "?");
-    p += sprintf(p, "[Round \"%s\"]\n", gameInfo->round ? gameInfo->round : "-");
-    p += sprintf(p, "[White \"%s\"]\n", gameInfo->white ? gameInfo->white : "?");
-    p += sprintf(p, "[Black \"%s\"]\n", gameInfo->black ? gameInfo->black : "?");
-    p += sprintf(p, "[Result \"%s\"]\n", PGNResult(gameInfo->result));
-    if (gameInfo->whiteRating >= 0)
-       p += sprintf(p, "[WhiteElo \"%d\"]\n", gameInfo->whiteRating);
-    if (gameInfo->blackRating >= 0)
-       p += sprintf(p, "[BlackElo \"%d\"]\n", gameInfo->blackRating);
-    if (gameInfo->timeControl)
-       p += sprintf(p, "[TimeControl \"%s\"]\n", gameInfo->timeControl);
-    if (gameInfo->variant != VariantNormal)
-        p += sprintf(p, "[Variant \"%s\"]\n", VariantName(gameInfo->variant));
-    if (gameInfo->extraTags)
-       strcpy(p, gameInfo->extraTags);
-    return buf;
-}
-
-
-/* Returns pointer to a static string with a result.
- */
-char *
-PGNResult (ChessMove result)
-{
-    switch (result) {
-      case GameUnfinished:
-      default:
-       return "*";
-      case WhiteWins:
-       return "1-0";
-      case BlackWins:
-       return "0-1";
-      case GameIsDrawn:
-       return "1/2-1/2";
-    }
-}
-
-/* Returns 0 for success, nonzero for error */
-int
-ReplaceTags (char *tags, GameInfo *gameInfo)
-{
-    ChessMove moveType;
-    int err;
-
-    ClearGameInfo(gameInfo);
-    yynewstr(tags);
-    for (;;) {
-       yyboardindex = 0;
-       moveType = (ChessMove) Myylex();
-       if (moveType == (ChessMove) 0) {
-           break;
-       } else if (moveType == PGNTag) {
-           err = ParsePGNTag(yy_text, gameInfo);
-           if (err != 0) return err;
-       }
-    }
-    /* just one problem...if there is a result in the new tags,
-     * DisplayMove() won't ever show it because ClearGameInfo() set
-     * gameInfo->resultDetails to NULL. So we must plug something in if there
-     * is a result.
-     */
-    if (gameInfo->result != GameUnfinished) {
-      if (gameInfo->resultDetails) free(gameInfo->resultDetails);
-      gameInfo->resultDetails = strdup("");
-    }
-    return 0;
-}
diff --git a/pixmaps/board32.png b/pixmaps/board32.png
deleted file mode 100644 (file)
index 1f2ffa6..0000000
Binary files a/pixmaps/board32.png and /dev/null differ
diff --git a/pixmaps/board48.png b/pixmaps/board48.png
deleted file mode 100644 (file)
index f47e085..0000000
Binary files a/pixmaps/board48.png and /dev/null differ
diff --git a/pixmaps/cross32.png b/pixmaps/cross32.png
deleted file mode 100644 (file)
index ccad759..0000000
Binary files a/pixmaps/cross32.png and /dev/null differ
diff --git a/pixmaps/cross48.png b/pixmaps/cross48.png
deleted file mode 100644 (file)
index 5247864..0000000
Binary files a/pixmaps/cross48.png and /dev/null differ
diff --git a/pixmaps/ini32.png b/pixmaps/ini32.png
deleted file mode 100644 (file)
index ce8af9c..0000000
Binary files a/pixmaps/ini32.png and /dev/null differ
diff --git a/pixmaps/ini48.png b/pixmaps/ini48.png
deleted file mode 100644 (file)
index ea0415e..0000000
Binary files a/pixmaps/ini48.png and /dev/null differ
diff --git a/png/BlackAdvisor.png b/png/BlackAdvisor.png
deleted file mode 100644 (file)
index 604ed17..0000000
Binary files a/png/BlackAdvisor.png and /dev/null differ
diff --git a/png/BlackArchbishop.png b/png/BlackArchbishop.png
deleted file mode 100644 (file)
index 983054c..0000000
Binary files a/png/BlackArchbishop.png and /dev/null differ
diff --git a/png/BlackBishop.png b/png/BlackBishop.png
deleted file mode 100644 (file)
index eb7b7f0..0000000
Binary files a/png/BlackBishop.png and /dev/null differ
diff --git a/png/BlackCanon.png b/png/BlackCanon.png
deleted file mode 100644 (file)
index 437000b..0000000
Binary files a/png/BlackCanon.png and /dev/null differ
diff --git a/png/BlackChancellor.png b/png/BlackChancellor.png
deleted file mode 100644 (file)
index eeb7a82..0000000
Binary files a/png/BlackChancellor.png and /dev/null differ
diff --git a/png/BlackCobra.png b/png/BlackCobra.png
deleted file mode 100644 (file)
index 35f1ade..0000000
Binary files a/png/BlackCobra.png and /dev/null differ
diff --git a/png/BlackCommoner.png b/png/BlackCommoner.png
deleted file mode 100644 (file)
index 25801f2..0000000
Binary files a/png/BlackCommoner.png and /dev/null differ
diff --git a/png/BlackCrownedBishop.png b/png/BlackCrownedBishop.png
deleted file mode 100644 (file)
index e808b4c..0000000
Binary files a/png/BlackCrownedBishop.png and /dev/null differ
diff --git a/png/BlackCrownedRook.png b/png/BlackCrownedRook.png
deleted file mode 100644 (file)
index c338bb4..0000000
Binary files a/png/BlackCrownedRook.png and /dev/null differ
diff --git a/png/BlackElephant.png b/png/BlackElephant.png
deleted file mode 100644 (file)
index a32742a..0000000
Binary files a/png/BlackElephant.png and /dev/null differ
diff --git a/png/BlackGold.png b/png/BlackGold.png
deleted file mode 100644 (file)
index 8f45faa..0000000
Binary files a/png/BlackGold.png and /dev/null differ
diff --git a/png/BlackGoldKnight.png b/png/BlackGoldKnight.png
deleted file mode 100644 (file)
index c3f3c60..0000000
Binary files a/png/BlackGoldKnight.png and /dev/null differ
diff --git a/png/BlackGoldLance.png b/png/BlackGoldLance.png
deleted file mode 100644 (file)
index 37d5f54..0000000
Binary files a/png/BlackGoldLance.png and /dev/null differ
diff --git a/png/BlackGoldPawn.png b/png/BlackGoldPawn.png
deleted file mode 100644 (file)
index c368ee6..0000000
Binary files a/png/BlackGoldPawn.png and /dev/null differ
diff --git a/png/BlackGoldSilver.png b/png/BlackGoldSilver.png
deleted file mode 100644 (file)
index f2c5a50..0000000
Binary files a/png/BlackGoldSilver.png and /dev/null differ
diff --git a/png/BlackHawk.png b/png/BlackHawk.png
deleted file mode 100644 (file)
index accaadd..0000000
Binary files a/png/BlackHawk.png and /dev/null differ
diff --git a/png/BlackKing.png b/png/BlackKing.png
deleted file mode 100644 (file)
index 2a2f28b..0000000
Binary files a/png/BlackKing.png and /dev/null differ
diff --git a/png/BlackKnight.png b/png/BlackKnight.png
deleted file mode 100644 (file)
index 28d6818..0000000
Binary files a/png/BlackKnight.png and /dev/null differ
diff --git a/png/BlackLance.png b/png/BlackLance.png
deleted file mode 100644 (file)
index adc840e..0000000
Binary files a/png/BlackLance.png and /dev/null differ
diff --git a/png/BlackMarshall.png b/png/BlackMarshall.png
deleted file mode 100644 (file)
index 5158c56..0000000
Binary files a/png/BlackMarshall.png and /dev/null differ
diff --git a/png/BlackNightrider.png b/png/BlackNightrider.png
deleted file mode 100644 (file)
index 72b9b4a..0000000
Binary files a/png/BlackNightrider.png and /dev/null differ
diff --git a/png/BlackPawn.png b/png/BlackPawn.png
deleted file mode 100644 (file)
index b8e4a87..0000000
Binary files a/png/BlackPawn.png and /dev/null differ
diff --git a/png/BlackPrincess.png b/png/BlackPrincess.png
deleted file mode 100644 (file)
index 238532a..0000000
Binary files a/png/BlackPrincess.png and /dev/null differ
diff --git a/png/BlackQueen.png b/png/BlackQueen.png
deleted file mode 100644 (file)
index 2c760da..0000000
Binary files a/png/BlackQueen.png and /dev/null differ
diff --git a/png/BlackRook.png b/png/BlackRook.png
deleted file mode 100644 (file)
index 42ac028..0000000
Binary files a/png/BlackRook.png and /dev/null differ
diff --git a/png/BlackUnicorn.png b/png/BlackUnicorn.png
deleted file mode 100644 (file)
index 1e577ad..0000000
Binary files a/png/BlackUnicorn.png and /dev/null differ
diff --git a/png/WhiteAdvisor.png b/png/WhiteAdvisor.png
deleted file mode 100644 (file)
index cf1f4cf..0000000
Binary files a/png/WhiteAdvisor.png and /dev/null differ
diff --git a/png/WhiteArchbishop.png b/png/WhiteArchbishop.png
deleted file mode 100644 (file)
index 28259e0..0000000
Binary files a/png/WhiteArchbishop.png and /dev/null differ
diff --git a/png/WhiteBishop.png b/png/WhiteBishop.png
deleted file mode 100644 (file)
index b2c1980..0000000
Binary files a/png/WhiteBishop.png and /dev/null differ
diff --git a/png/WhiteCanon.png b/png/WhiteCanon.png
deleted file mode 100644 (file)
index 20d5655..0000000
Binary files a/png/WhiteCanon.png and /dev/null differ
diff --git a/png/WhiteChancellor.png b/png/WhiteChancellor.png
deleted file mode 100644 (file)
index 2cc3f57..0000000
Binary files a/png/WhiteChancellor.png and /dev/null differ
diff --git a/png/WhiteCobra.png b/png/WhiteCobra.png
deleted file mode 100644 (file)
index 1b29df7..0000000
Binary files a/png/WhiteCobra.png and /dev/null differ
diff --git a/png/WhiteCommoner.png b/png/WhiteCommoner.png
deleted file mode 100644 (file)
index abdab67..0000000
Binary files a/png/WhiteCommoner.png and /dev/null differ
diff --git a/png/WhiteCrownedBishop.png b/png/WhiteCrownedBishop.png
deleted file mode 100644 (file)
index ee28c21..0000000
Binary files a/png/WhiteCrownedBishop.png and /dev/null differ
diff --git a/png/WhiteCrownedRook.png b/png/WhiteCrownedRook.png
deleted file mode 100644 (file)
index beeb2f2..0000000
Binary files a/png/WhiteCrownedRook.png and /dev/null differ
diff --git a/png/WhiteElephant.png b/png/WhiteElephant.png
deleted file mode 100644 (file)
index dbacd3f..0000000
Binary files a/png/WhiteElephant.png and /dev/null differ
diff --git a/png/WhiteGold.png b/png/WhiteGold.png
deleted file mode 100644 (file)
index e0446ea..0000000
Binary files a/png/WhiteGold.png and /dev/null differ
diff --git a/png/WhiteGoldKnight.png b/png/WhiteGoldKnight.png
deleted file mode 100644 (file)
index 9a81fe3..0000000
Binary files a/png/WhiteGoldKnight.png and /dev/null differ
diff --git a/png/WhiteGoldLance.png b/png/WhiteGoldLance.png
deleted file mode 100644 (file)
index b6ebc40..0000000
Binary files a/png/WhiteGoldLance.png and /dev/null differ
diff --git a/png/WhiteGoldPawn.png b/png/WhiteGoldPawn.png
deleted file mode 100644 (file)
index ab19e36..0000000
Binary files a/png/WhiteGoldPawn.png and /dev/null differ
diff --git a/png/WhiteGoldSilver.png b/png/WhiteGoldSilver.png
deleted file mode 100644 (file)
index 553773f..0000000
Binary files a/png/WhiteGoldSilver.png and /dev/null differ
diff --git a/png/WhiteHawk.png b/png/WhiteHawk.png
deleted file mode 100644 (file)
index bafc079..0000000
Binary files a/png/WhiteHawk.png and /dev/null differ
diff --git a/png/WhiteKing.png b/png/WhiteKing.png
deleted file mode 100644 (file)
index 1384044..0000000
Binary files a/png/WhiteKing.png and /dev/null differ
diff --git a/png/WhiteKnight.png b/png/WhiteKnight.png
deleted file mode 100644 (file)
index fcd55b0..0000000
Binary files a/png/WhiteKnight.png and /dev/null differ
diff --git a/png/WhiteLance.png b/png/WhiteLance.png
deleted file mode 100644 (file)
index 926a1ed..0000000
Binary files a/png/WhiteLance.png and /dev/null differ
diff --git a/png/WhiteMarshall.png b/png/WhiteMarshall.png
deleted file mode 100644 (file)
index 4150dfe..0000000
Binary files a/png/WhiteMarshall.png and /dev/null differ
diff --git a/png/WhiteNightrider.png b/png/WhiteNightrider.png
deleted file mode 100644 (file)
index 0d806c7..0000000
Binary files a/png/WhiteNightrider.png and /dev/null differ
diff --git a/png/WhitePawn.png b/png/WhitePawn.png
deleted file mode 100644 (file)
index 39a58a6..0000000
Binary files a/png/WhitePawn.png and /dev/null differ
diff --git a/png/WhitePrincess.png b/png/WhitePrincess.png
deleted file mode 100644 (file)
index d9e8054..0000000
Binary files a/png/WhitePrincess.png and /dev/null differ
diff --git a/png/WhiteQueen.png b/png/WhiteQueen.png
deleted file mode 100644 (file)
index 5b5972a..0000000
Binary files a/png/WhiteQueen.png and /dev/null differ
diff --git a/png/WhiteRook.png b/png/WhiteRook.png
deleted file mode 100644 (file)
index bf889e7..0000000
Binary files a/png/WhiteRook.png and /dev/null differ
diff --git a/png/WhiteUnicorn.png b/png/WhiteUnicorn.png
deleted file mode 100644 (file)
index 87414c6..0000000
Binary files a/png/WhiteUnicorn.png and /dev/null differ
diff --git a/png/hatch.png b/png/hatch.png
deleted file mode 100644 (file)
index aef36ed..0000000
Binary files a/png/hatch.png and /dev/null differ
diff --git a/png/marble_d.png b/png/marble_d.png
deleted file mode 100644 (file)
index a0ed12d..0000000
Binary files a/png/marble_d.png and /dev/null differ
diff --git a/png/marble_l.png b/png/marble_l.png
deleted file mode 100644 (file)
index b78bac2..0000000
Binary files a/png/marble_l.png and /dev/null differ
diff --git a/png/wood_d.png b/png/wood_d.png
deleted file mode 100644 (file)
index ac8cd1e..0000000
Binary files a/png/wood_d.png and /dev/null differ
diff --git a/png/wood_l.png b/png/wood_l.png
deleted file mode 100644 (file)
index e596123..0000000
Binary files a/png/wood_l.png and /dev/null differ
diff --git a/png/xqboard-9x10.png b/png/xqboard-9x10.png
deleted file mode 100644 (file)
index e6ea5ac..0000000
Binary files a/png/xqboard-9x10.png and /dev/null differ
diff --git a/png/xqwood-9x10.png b/png/xqwood-9x10.png
deleted file mode 100644 (file)
index 385f6d5..0000000
Binary files a/png/xqwood-9x10.png and /dev/null differ
diff --git a/po/LINGUAS b/po/LINGUAS
deleted file mode 100755 (executable)
index c2e114e..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-# whitespace separated list of translated languages goes below
-# note: zh translations are untested; xboard fails to create a fontset for them
-da de es fr it nl pl ru sr tr uk vi zh_CN zh_HK zh_TW
diff --git a/po/Makevars b/po/Makevars
deleted file mode 100755 (executable)
index 32692ab..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-# Makefile variables for PO directory in any package using GNU gettext.
-
-# Usually the message domain is the same as the package name.
-DOMAIN = $(PACKAGE)
-
-# These two variables depend on the location of this directory.
-subdir = po
-top_builddir = ..
-
-# These options get passed to xgettext.
-XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
-
-# This is the copyright holder that gets inserted into the header of the
-# $(DOMAIN).pot file.  Set this to the copyright holder of the surrounding
-# package.  (Note that the msgstr strings, extracted from the package's
-# sources, belong to the copyright holder of the package.)  Translators are
-# expected to transfer the copyright for their translations to this person
-# or entity, or to disclaim their copyright.  The empty string stands for
-# the public domain; in this case the translators are expected to disclaim
-# their copyright.
-COPYRIGHT_HOLDER = Free Software Foundation, Inc.
-
-# This is the email address or URL to which the translators shall report
-# bugs in the untranslated strings:
-# - Strings which are not entire sentences, see the maintainer guidelines
-#   in the GNU gettext documentation, section 'Preparing Strings'.
-# - Strings which use unclear terms or require additional context to be
-#   understood.
-# - Strings which make invalid assumptions about notation of date, time or
-#   money.
-# - Pluralisation problems.
-# - Incorrect English spelling.
-# - Incorrect formatting.
-# It can be your email address, or a mailing list address where translators
-# can write to without being subscribed, or the URL of a web page through
-# which the translators can contact you.
-MSGID_BUGS_ADDRESS =
-
-# This is the list of locale categories, beyond LC_MESSAGES, for which the
-# message catalogs shall be used.  It is usually empty.
-EXTRA_LOCALE_CATEGORIES =
diff --git a/po/POTFILES.in b/po/POTFILES.in
deleted file mode 100755 (executable)
index 6f37115..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-args.h
-backend.c
-book.c
-dialogs.c
-draw.c
-engineoutput.c
-gamelist.c
-gtk/xboard.c
-gtk/xengineoutput.c
-gtk/xoptions.c
-menus.c
-nengineoutput.c
-nevalgraph.c
-ngamelist.c
-nhistory.c
-usystem.c
-xaw/xboard.c
-xaw/xengineoutput.c
-xaw/xhistory.c
-xaw/xoptions.c
diff --git a/po/da.po b/po/da.po
deleted file mode 100644 (file)
index 27535f5..0000000
--- a/po/da.po
+++ /dev/null
@@ -1,3575 +0,0 @@
-# Danish translation for xboard.
-#
-# Copyright (C) 2011, 2012 Free Software Foundation, Inc.
-# This file is distributed under the same license as the xboard package.
-#
-# Note: Jeg har foreløbig efterladt navne på varianter og uortodokse brikker mv.
-#   uoversatte fordi jeg ikke kender dansk sprogbrug for dette om nogen. Byrial.
-#
-# Sprogbrug:
-# Chess engine, engine, chess program, chess machine: Disse bruges i flæng
-#    i originalen. Er oversat til skakprogram.
-# Pairing engine: Paringsprogram
-#
-# Korrektur og gode forslag:
-# Morten Bo Johansen, dec. 2011
-# Joe Dalton, feb. 2012
-#
-# Oversætter:
-# Byrial Ole Jensen <byrial@vip.cybercity.dk>, 2011, 2012.
-msgid ""
-msgstr ""
-"Project-Id-Version: GNU xboard 4.6.0.20120304\n"
-"Report-Msgid-Bugs-To: bug-xboard@gnu.org\n"
-"POT-Creation-Date: 2016-04-03 13:44-0700\n"
-"PO-Revision-Date: 2012-03-06 12:27+0100\n"
-"Last-Translator: Byrial Ole Jensen <byrial@vip.cybercity.dk>\n"
-"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
-"Language: da\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Lokalize 1.2\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: args.h:851
-#, c-format
-msgid "%s in settings file\n"
-msgstr "%s i indstillingsfil\n"
-
-#: args.h:885
-#, c-format
-msgid "Bad integer value %s"
-msgstr "Forkert heltalsværdi %s"
-
-#: args.h:991 args.h:1252
-#, c-format
-msgid "Unrecognized argument %s"
-msgstr "Ikke genkendt argument %s"
-
-#: args.h:1022
-#, c-format
-msgid "No value provided for argument %s"
-msgstr "Ingen værdi givet for argumentet %s"
-
-#: args.h:1082
-#, c-format
-msgid "Incomplete \\ escape in value for %s"
-msgstr "Ukomplet \\-undvigesekvens i værdi for %s"
-
-#: args.h:1193
-#, c-format
-msgid "Failed to open indirection file %s"
-msgstr "Åbning af inkluderet fil \"%s\" mislykkedes"
-
-#: args.h:1210
-#, c-format
-msgid "Unrecognized boolean argument value %s"
-msgstr "Ikke genkendt boolesk argumentværdi %s"
-
-#. TRANSLATORS: "first" is the first of possible two chess engines. It is inserted into strings
-#. such as "%s engine" / "%s chess program" / "%s machine" - all meaning the same thing
-#: backend.c:811
-msgid "first"
-msgstr "første"
-
-#. TRANSLATORS: "second" is the second of possible two chess engines. It is inserted into strings
-#. such as "%s engine" / "%s chess program" / "%s machine" - all meaning the same thing
-#: backend.c:814
-msgid "second"
-msgstr "det andet"
-
-#: backend.c:897
-#, c-format
-msgid "protocol version %d not supported"
-msgstr "protokolversion %d er ikke understøttet"
-
-#: backend.c:1004
-msgid "You did not specify the engine executable"
-msgstr "Du angav ikke et kørbart skakprogram"
-
-#: backend.c:1062
-#, c-format
-msgid "bad timeControl option %s"
-msgstr "forkert timeControl-tilvalg %s"
-
-#: backend.c:1077
-#, c-format
-msgid "bad searchTime option %s"
-msgstr "forkert searchTime-tilvalg %s"
-
-#: backend.c:1183
-#, c-format
-msgid "Variant %s supported only in ICS mode"
-msgstr "Varianten %s er kun understøttet i ICS-tilstand"
-
-#: backend.c:1201
-#, c-format
-msgid "Unknown variant name %s"
-msgstr "Ukendt variantnavn %s"
-
-#: backend.c:1456
-msgid "Starting chess program"
-msgstr "Starter skakprogram"
-
-#: backend.c:1479
-msgid "Bad game file"
-msgstr "Fejl i partifil"
-
-#: backend.c:1486
-msgid "Bad position file"
-msgstr "Fejl i stillingsfil"
-
-#: backend.c:1500
-msgid "Pick new game"
-msgstr "Vælg nyt spil"
-
-# cycle = runde?
-#: backend.c:1569
-#, fuzzy
-msgid ""
-"You restarted an already completed tourney.\n"
-"One more cycle will now be added to it.\n"
-"Games commence in 10 sec."
-msgstr ""
-"Du genstartede en allerede afsluttet turnering\n"
-"En mere cyklus vil nu blive tilføjet\n"
-"Partierne starter om 10 sekunder"
-
-#: backend.c:1576
-#, c-format
-msgid "All games in tourney '%s' are already played or playing"
-msgstr "Alle partier i turneringen \"%s\" er allerede færdige eller i gang"
-
-#: backend.c:1583
-msgid "Can't have a match with no chess programs"
-msgstr "Kan ikke have en match uden skakprogrammer"
-
-#: backend.c:1637
-#, c-format
-msgid "Could not open comm port %s"
-msgstr "Kunne ikke åbne seriel port %s"
-
-#: backend.c:1640
-#, c-format
-msgid "Could not connect to host %s, port %s"
-msgstr "Kunne ikke forbinde til vært %s, port %s"
-
-#: backend.c:1696
-#, c-format
-msgid "Unknown initialMode %s"
-msgstr "Ukendt initialMode %s"
-
-#: backend.c:1722
-msgid "AnalyzeFile mode requires a game file"
-msgstr "AnalyzeFile-tilstand kræver en partifil"
-
-#: backend.c:1755
-msgid "Analysis mode requires a chess engine"
-msgstr "Analysetilstand kræver et skakprogram"
-
-#: backend.c:1759
-msgid "Analysis mode does not work with ICS mode"
-msgstr "Analysetilstand virker ikke sammen med ICS-tilstand"
-
-#: backend.c:1770
-msgid "MachineWhite mode requires a chess engine"
-msgstr "MachineWhite-tilstand kræver et skakprogram"
-
-#: backend.c:1775
-msgid "MachineWhite mode does not work with ICS mode"
-msgstr "MachineWhite-tilstand virker ikke sammen med ICS-tilstand"
-
-#: backend.c:1782
-msgid "MachineBlack mode requires a chess engine"
-msgstr "MachineBlack-tilstand kræver et skakprogram"
-
-#: backend.c:1787
-msgid "MachineBlack mode does not work with ICS mode"
-msgstr "MachineBlack-tilstand virker ikke sammen med ICS-tilstand"
-
-#: backend.c:1794
-msgid "TwoMachines mode requires a chess engine"
-msgstr "TwoMachines-tilstand kræver et skakprogram"
-
-#: backend.c:1799
-msgid "TwoMachines mode does not work with ICS mode"
-msgstr "TwoMachines-tilstand virker ikke sammen med ICS-tilstand"
-
-#: backend.c:1810
-msgid "Training mode requires a game file"
-msgstr "Træningstilstand kræver en partifil"
-
-#: backend.c:1973 backend.c:2028 backend.c:2051 backend.c:2453
-msgid "Error writing to ICS"
-msgstr "Fejl ved skrivning til ICS"
-
-#: backend.c:1988
-msgid "Error reading from keyboard"
-msgstr "Fejl ved læsning fra tastatur"
-
-#: backend.c:1991
-msgid "Got end of file from keyboard"
-msgstr "Fik filafslutning fra tastatur"
-
-#: backend.c:2299
-#, c-format
-msgid "Unknown wild type %d"
-msgstr "Ukendt vild type %d"
-
-#: backend.c:2370 usystem.c:317
-msgid "Error writing to display"
-msgstr "Fejl ved skrivning til skærm"
-
-#. TRANSLATORS: to 'kibitz' is to send a message to all players and the game observers
-#: backend.c:3138
-#, c-format
-msgid "your opponent kibitzes: %s"
-msgstr "din modstander kommenterer: %s"
-
-#: backend.c:3677
-msgid "Error gathering move list: two headers"
-msgstr "Fejl ved tolkning af trækliste: to teksthoveder"
-
-#: backend.c:3724
-msgid "Error gathering move list: nested"
-msgstr "Fejl ved tolkning af trækliste: indlejret"
-
-#: backend.c:3828 backend.c:4254 backend.c:4458 backend.c:5017 backend.c:5021
-#: backend.c:7292 backend.c:13054 backend.c:14805 backend.c:14882
-#: backend.c:14928 backend.c:14934 backend.c:14939 backend.c:14944
-msgid "vs."
-msgstr "–"
-
-#: backend.c:3956
-msgid "Illegal move (rejected by ICS)"
-msgstr "Ulovligt træk (afvist af ICS)"
-
-#: backend.c:4302
-msgid "Connection closed by ICS"
-msgstr "Forbindelse lukket af ICS"
-
-#: backend.c:4304
-msgid "Error reading from ICS"
-msgstr "Fejl ved læsning fra ICS"
-
-#: backend.c:4381
-#, c-format
-msgid ""
-"Failed to parse board string:\n"
-"\"%s\""
-msgstr ""
-"Fortolkning af brætstreng mislykkedes:\n"
-"\"%s\""
-
-#: backend.c:4390 backend.c:10628
-msgid "Game too long; increase MAX_MOVES and recompile"
-msgstr "Parti for langt; forøg MAX_MOVES og genoversæt"
-
-#: backend.c:4509
-msgid "Error gathering move list: extra board"
-msgstr "Fejl ved tolkning af trækliste: ekstra bræt"
-
-#: backend.c:4941 backend.c:4963
-#, c-format
-msgid "Couldn't parse move \"%s\" from ICS"
-msgstr "Kunne ikke fortolke \"%s\" fra ICS"
-
-#: backend.c:5228
-#, c-format
-msgid "say Internal error; bad moveType %d (%d,%d-%d,%d)"
-msgstr "say Intern fejl; forkert moveType%d (%d,%d-%d,%d)"
-
-#: backend.c:5299
-msgid "You cannot do this while you are playing or observing"
-msgstr "Du kan ikke gøre dette, mens du spiller eller observerer"
-
-#: backend.c:6359
-msgid "Recompile to support this BOARD_RANKS or BOARD_FILES!"
-msgstr "Genoversæt for at understøtte denne BOARD_RANKS eller BOARD_FILES!"
-
-#: backend.c:6851
-msgid "You are playing Black"
-msgstr "Du spiller sort"
-
-#: backend.c:6860 backend.c:6888
-msgid "You are playing White"
-msgstr "Du spiller hvid"
-
-#: backend.c:6870 backend.c:6896 backend.c:7018 backend.c:7043 backend.c:7059
-#: backend.c:15645
-msgid "It is White's turn"
-msgstr "Det er hvids tur"
-
-#: backend.c:6874 backend.c:6900 backend.c:7026 backend.c:7049 backend.c:7081
-#: backend.c:15637
-msgid "It is Black's turn"
-msgstr "Det er sorts tur"
-
-#: backend.c:6913
-msgid "Displayed position is not current"
-msgstr "Den viste stilling er ikke den aktuelle"
-
-#: backend.c:7116
-msgid "rights granted"
-msgstr ""
-
-#: backend.c:7116
-msgid "rights revoked"
-msgstr ""
-
-#: backend.c:7169
-msgid "Illegal move"
-msgstr "Ulovligt træk"
-
-#: backend.c:7249
-msgid "End of game"
-msgstr "Slutningen af partiet"
-
-#: backend.c:7252
-msgid "Incorrect move"
-msgstr "Ukorrekt træk"
-
-#: backend.c:7655 backend.c:7811
-msgid "Pull pawn backwards to under-promote"
-msgstr "Træk bonde baglæns for at underforvandle"
-
-#: backend.c:7772
-msgid "only marked squares are legal"
-msgstr ""
-
-#: backend.c:8093
-msgid "Swiss tourney finished"
-msgstr "Svejtserturnering afsluttet"
-
-#: backend.c:8609
-msgid "could not load EGBB library"
-msgstr ""
-
-#: backend.c:8612
-msgid "wrong EGBB version"
-msgstr ""
-
-#: backend.c:8725
-msgid "Invalid pairing from pairing engine"
-msgstr "Ikke tilladt parring fra parringsprogram"
-
-#: backend.c:8892
-#, c-format
-msgid "Illegal move \"%s\" from %s machine"
-msgstr "Ulovligt træk \"%s\" fra %s skakprogram"
-
-#: backend.c:9179
-msgid "Bad FEN received from engine"
-msgstr "Fejl i FEN modtaget fra skakprogram"
-
-#: backend.c:9280
-msgid "Engine did not send setup for non-standard variant"
-msgstr ""
-
-#: backend.c:9358 backend.c:14667 backend.c:14735
-#, c-format
-msgid "%s does not support analysis"
-msgstr "%s understøtter ikke analyse"
-
-#: backend.c:9424
-#, c-format
-msgid "Illegal move \"%s\" (rejected by %s chess program)"
-msgstr "Ulovligt træk \"%s\" (afvist af %s skakprogram)"
-
-#: backend.c:9455
-#, c-format
-msgid "Failed to start %s chess program %s on %s: %s\n"
-msgstr "Fejl ved start af %s skakprogram %s på %s: %s\n"
-
-#: backend.c:9476
-#, c-format
-msgid "Hint: %s"
-msgstr "Tip: %s"
-
-#: backend.c:9481
-#, c-format
-msgid ""
-"Illegal hint move \"%s\"\n"
-"from %s chess program"
-msgstr ""
-"Ulovligt tip om træk \"%s\"\n"
-"fra %s skakprogram"
-
-#: backend.c:9656
-msgid "Machine accepts your draw offer"
-msgstr "Skakprogrammet accepterer dit remistilbud"
-
-#: backend.c:9659
-#, fuzzy
-msgid ""
-"Machine offers a draw.\n"
-"Select Action / Draw to accept."
-msgstr ""
-"Skakprogrammet tilbyder remis\n"
-"Vælg Handlinger / Remis for at acceptere"
-
-#. TRANSLATORS: PV = principal variation, the variation the chess engine thinks is the best for everyone
-#: backend.c:9777
-msgid "failed writing PV"
-msgstr "skrivning af analysevariant mislykkedes"
-
-#: backend.c:10083
-#, c-format
-msgid "Ambiguous move in ICS output: \"%s\""
-msgstr "Flertydigt træk i ICS-output: \"%s\""
-
-#: backend.c:10093
-#, c-format
-msgid "Illegal move in ICS output: \"%s\""
-msgstr "Ulovligt træk i ICS-output: \"%s\""
-
-#: backend.c:10104
-msgid "Gap in move list"
-msgstr "Hul i trækliste"
-
-#: backend.c:10782
-#, c-format
-msgid "Variant %s not supported by %s"
-msgstr "Variant %s understøttes ikke af %s"
-
-#: backend.c:10789
-#, c-format
-msgid ", but %s is"
-msgstr ""
-
-#: backend.c:10945
-#, c-format
-msgid "Startup failure on '%s'"
-msgstr "Opstartsfejl på \"%s\""
-
-#: backend.c:10976
-msgid "Waiting for first chess program"
-msgstr "Venter på første skakprogram"
-
-#: backend.c:10981 backend.c:14953
-msgid "Waiting for second chess program"
-msgstr "Venter på andet skakprogram"
-
-#: backend.c:11030
-msgid "Could not write on tourney file"
-msgstr "Kunne ikke skrive turneringsfil"
-
-#: backend.c:11104
-msgid ""
-"You cannot replace an engine while it is engaged!\n"
-"Terminate its game first."
-msgstr ""
-"Du kan ikke udskifte et skakprogram, mens det bruges!\n"
-"Afslut dets parti først."
-
-#: backend.c:11118
-msgid "No engine with the name you gave is installed"
-msgstr "Der er ikke installeret et skakprogram med det angivne navn"
-
-#: backend.c:11120
-msgid ""
-"First change an engine by editing the participants list\n"
-"of the Tournament Options dialog"
-msgstr ""
-"Ændr først skakprogram ved at redigere deltagerlisten\n"
-"i turneringsindstillingerne"
-
-#: backend.c:11121
-msgid "You can only change one engine at the time"
-msgstr "Du kan kun ændre et skakprogram ad gangen"
-
-#: backend.c:11136 backend.c:11285
-#, fuzzy, c-format
-msgid "No engine %s is installed"
-msgstr "Der er ikke installeret et skakprogram med det angivne navn"
-
-#: backend.c:11156
-msgid ""
-"You must supply a tournament file,\n"
-"for storing the tourney progress"
-msgstr ""
-"Du skal angive en turneringsfil\n"
-"til at gemme turneringens afvikling"
-
-#: backend.c:11166
-msgid "Not enough participants"
-msgstr "Der er ikke nok deltagere"
-
-#: backend.c:11369
-msgid "Bad tournament file"
-msgstr "Fejl i turneringsfil"
-
-#: backend.c:11381
-msgid "Waiting for other game(s)"
-msgstr "Venter på andet parti/andre partier"
-
-#: backend.c:11394
-msgid "No pairing engine specified"
-msgstr "Der er ikke noget parringsprogram specificeret"
-
-#: backend.c:11879
-#, c-format
-msgid "Average solving time %4.2f sec (total time %4.2f sec) "
-msgstr ""
-
-#: backend.c:11881
-#, c-format
-msgid "%d avoid-moves played "
-msgstr ""
-
-#: backend.c:11883
-#, c-format
-msgid "Solved %d out of %d (%3.1f%%) "
-msgstr ""
-
-#: backend.c:11886
-#, c-format
-msgid "Match %s vs. %s: final score %d-%d-%d"
-msgstr "Match %s - %s: slutscore %d-%d-%d"
-
-#: backend.c:12363 backend.c:12399
-#, c-format
-msgid "Illegal move: %d.%s%s"
-msgstr "Ulovligt træk: %d.%s%s"
-
-#: backend.c:12388
-#, c-format
-msgid "Ambiguous move: %d.%s%s"
-msgstr "Flertydigt træk: %d.%s%s"
-
-#: backend.c:12442 backend.c:13495 backend.c:13695 backend.c:14065
-#, c-format
-msgid "Can't open \"%s\""
-msgstr "Kan ikke åbne \"%s\""
-
-#: backend.c:12454 menus.c:118
-msgid "Cannot build game list"
-msgstr "Kan ikke konstruere partiliste"
-
-#: backend.c:12539
-msgid "No more games in this message"
-msgstr "Der er ikke flere partier i denne besked"
-
-#: backend.c:12579
-msgid "No game has been loaded yet"
-msgstr "Der er endnu ingen indlæste partier"
-
-#: backend.c:12583 backend.c:13476 ngamelist.c:129
-msgid "Can't back up any further"
-msgstr "Kan ikke gå længere tilbage"
-
-#: backend.c:13030
-msgid "Game number out of range"
-msgstr "Partinummer findes ikke"
-
-#: backend.c:13041
-msgid "Can't seek on game file"
-msgstr "Kan ikke spole i partifil"
-
-#: backend.c:13099
-msgid "Game not found in file"
-msgstr "Parti ikke fundet i fil"
-
-#: backend.c:13230 backend.c:13573
-msgid "Bad FEN position in file"
-msgstr "Fejl i FEN-stilling i fil"
-
-#: backend.c:13388
-msgid "No moves in game"
-msgstr "Ingen træk i partiet"
-
-#: backend.c:13472
-msgid "No position has been loaded yet"
-msgstr "Ingen stilling er endnu indlæst"
-
-#: backend.c:13533 backend.c:13544
-msgid "Can't seek on position file"
-msgstr "Kan ikke spole i stillingsfil"
-
-#: backend.c:13551 backend.c:13563
-msgid "Position not found in file"
-msgstr "Stilling er ikke fundet i fil"
-
-#: backend.c:13610
-msgid "Black to play"
-msgstr "Sort i trækket"
-
-#: backend.c:13613
-msgid "White to play"
-msgstr "Hvid i trækket"
-
-#: backend.c:13700 backend.c:14070
-msgid "Waiting for access to save file"
-msgstr "Venter på adgang til gemmefil"
-
-#: backend.c:13702
-msgid "Saving game"
-msgstr "Gemmer parti"
-
-#: backend.c:13703
-msgid "Bad Seek"
-msgstr "Søgning mislykkedes"
-
-#: backend.c:14072
-msgid "Saving position"
-msgstr "Gemmer stilling"
-
-#: backend.c:14198
-msgid ""
-"You have edited the game history.\n"
-"Use Reload Same Game and make your move again."
-msgstr ""
-"Du har redigeret i parti-historikken.\n"
-"Genindlæs partiet og udfør trækket igen."
-
-#: backend.c:14203
-msgid ""
-"You have entered too many moves.\n"
-"Back up to the correct position and try again."
-msgstr ""
-"Du har indtastet for mange træk.\n"
-"Gå tilbage til den aktuelle stilling og prøv igen."
-
-#: backend.c:14208
-msgid ""
-"Displayed position is not current.\n"
-"Step forward to the correct position and try again."
-msgstr ""
-"Den viste stilling er ikke den aktuelle.\n"
-"Gå fremad til den korrekte stilling og prøv igen."
-
-#: backend.c:14255
-msgid "You have not made a move yet"
-msgstr "Du har ikke trukket endnu"
-
-#: backend.c:14276
-msgid ""
-"The cmail message is not loaded.\n"
-"Use Reload CMail Message and make your move again."
-msgstr ""
-"Cmail-beskeden er ikke indlæst.\n"
-"Brug Genindlæs CMail-besked og lav dit træk igen."
-
-#: backend.c:14281
-msgid "No unfinished games"
-msgstr "Der er ingen uafsluttede partier"
-
-#: backend.c:14287
-#, c-format
-msgid ""
-"You have already mailed a move.\n"
-"Wait until a move arrives from your opponent.\n"
-"To resend the same move, type\n"
-"\"cmail -remail -game %s\"\n"
-"on the command line."
-msgstr ""
-"Du har allerede sendt et træk.\n"
-"Vent indtil der kommer et træk fra din modstander.\n"
-"For at gensende det samme træk, tast\n"
-"\"cmail -remail -game %s\"\n"
-"på kommandolinjen."
-
-#: backend.c:14302
-msgid "Failed to invoke cmail"
-msgstr "Start af cmail mislykkedes"
-
-#: backend.c:14364
-#, c-format
-msgid "Waiting for reply from opponent\n"
-msgstr "Venter på svar fra modstander\n"
-
-#: backend.c:14386
-#, c-format
-msgid "Still need to make move for game\n"
-msgstr "Der er stadig nødvendigt at trække i partiet\n"
-
-#: backend.c:14390
-#, c-format
-msgid "Still need to make moves for both games\n"
-msgstr "Der er stadig nødvendigt at trække i begge partier\n"
-
-#: backend.c:14394
-#, c-format
-msgid "Still need to make moves for all %d games\n"
-msgstr "Der er stadig nødvendigt at trække i alle %d partier\n"
-
-#: backend.c:14401
-#, c-format
-msgid "Still need to make a move for game %s\n"
-msgstr "Der er stadig nødvendigt at trække i partiet %s\n"
-
-#: backend.c:14407
-#, c-format
-msgid "No unfinished games\n"
-msgstr "Der er ingen uafsluttede partier\n"
-
-#: backend.c:14409
-#, c-format
-msgid "Ready to send mail\n"
-msgstr "Klar til at sende e-mail\n"
-
-#: backend.c:14414
-#, c-format
-msgid "Still need to make moves for games %s\n"
-msgstr "Der er stadig nødvendigt at trække i partierne %s\n"
-
-#: backend.c:14617
-msgid "Edit comment"
-msgstr "Redigér kommentar"
-
-#: backend.c:14619
-#, c-format
-msgid "Edit comment on %d.%s%s"
-msgstr "Redigér kommentar til %d.%s%s"
-
-#: backend.c:14674
-#, c-format
-msgid "You are not observing a game"
-msgstr "Du observerer ikke et parti"
-
-#: backend.c:14785
-msgid "It is not White's turn"
-msgstr "Hvid er ikke i trækket"
-
-#: backend.c:14866
-msgid "It is not Black's turn"
-msgstr "Sort er ikke i trækket"
-
-#: backend.c:14974
-#, c-format
-msgid "Starting %s chess program"
-msgstr "Starter %s skakprogram"
-
-#: backend.c:15002 backend.c:16189
-#, fuzzy
-msgid ""
-"Wait until your turn,\n"
-"or select 'Move Now'."
-msgstr ""
-"Vent på din tur,\n"
-"eller vælg Træk nu"
-
-#: backend.c:15145
-msgid "Training mode off"
-msgstr "Træningstilstand fra"
-
-#: backend.c:15153
-msgid "Training mode on"
-msgstr "Træningstilstand til"
-
-#: backend.c:15156
-msgid "Already at end of game"
-msgstr "Allerede ved slutningen af partiet"
-
-#: backend.c:15246
-msgid "Warning: You are still playing a game"
-msgstr "Advarsel: Du spiller stadig et parti"
-
-#: backend.c:15249
-msgid "Warning: You are still observing a game"
-msgstr "Advarsel: Du observerer stadig et parti"
-
-#: backend.c:15252
-msgid "Warning: You are still examining a game"
-msgstr "Advarsel: Du undersøger stadig et parti"
-
-#: backend.c:15322
-msgid "Click clock to clear board"
-msgstr ""
-
-#: backend.c:15332
-msgid "Close ICS engine analyze..."
-msgstr "Lukker skakprogram til ICS-analyse ..."
-
-#: backend.c:15662
-msgid "That square is occupied"
-msgstr "Det felt er besat"
-
-#: backend.c:15686 backend.c:15712
-msgid "There is no pending offer on this move"
-msgstr "Der er ingen aktuelle tilbud ved dette træk"
-
-#: backend.c:15748 backend.c:15759
-msgid "Your opponent is not out of time"
-msgstr "Din modstander har ikke overskredet tiden"
-
-#: backend.c:15827
-msgid "You must make your move before offering a draw"
-msgstr "Du skal trække før du tilbyder remis"
-
-#: backend.c:16171
-msgid "You are not examining a game"
-msgstr "Du undersøger ikke et parti"
-
-#: backend.c:16175
-msgid "You can't revert while pausing"
-msgstr "Du kan ikke annullere variantlinje under pause"
-
-#: backend.c:16229 backend.c:16236
-msgid "It is your turn"
-msgstr "Det er dig som er i trækket"
-
-#: backend.c:16287 backend.c:16294 backend.c:16380 backend.c:16387
-#, fuzzy
-msgid "Wait until your turn."
-msgstr "Vent til du kommer i trækket"
-
-#: backend.c:16299
-msgid "No hint available"
-msgstr "Tip er ikke tilgængeligt"
-
-#: backend.c:16314 backend.c:16345 ngamelist.c:365
-msgid "Game list not loaded or empty"
-msgstr "Partiliste ikke indlæst eller tom"
-
-#: backend.c:16352
-msgid "Book file exists! Try again for overwrite."
-msgstr ""
-
-#: backend.c:16833
-#, c-format
-msgid "Error writing to %s chess program"
-msgstr "Fejl ved skrivning til %s skakprogram"
-
-#: backend.c:16836 backend.c:16867
-#, c-format
-msgid "%s program exits in draw position (%s)"
-msgstr "%s program afslutter i remisstilling (%s)"
-
-#: backend.c:16862
-#, c-format
-msgid "Error: %s chess program (%s) exited unexpectedly"
-msgstr "Fejl: %s skakprogram (%s) afsluttede uventet"
-
-#: backend.c:16880
-#, c-format
-msgid "Error reading from %s chess program (%s)"
-msgstr "Fejl ved læsning fra %s skakprogram (%s)"
-
-#: backend.c:17312
-#, c-format
-msgid "%s engine has too many options\n"
-msgstr "%s skakprogram har for mange tilvalg\n"
-
-#: backend.c:17468
-msgid "Displayed move is not current"
-msgstr "Det viste træk er ikke det aktuelle"
-
-#: backend.c:17477
-msgid "Could not parse move"
-msgstr "Kunne ikke fortolke træk"
-
-#: backend.c:17602 backend.c:17624
-msgid "Both flags fell"
-msgstr "Begge flag er faldet"
-
-#: backend.c:17604
-msgid "White's flag fell"
-msgstr "Hvids flag er faldet"
-
-#: backend.c:17626
-msgid "Black's flag fell"
-msgstr "Sorts flag er faldet"
-
-#: backend.c:17757
-msgid "Clock adjustment not allowed in auto-flag mode"
-msgstr "Det er ikke tilladt er stille på uret i auto-flag-tilstand"
-
-#: backend.c:18719
-msgid "Bad FEN position in clipboard"
-msgstr "Fejl i FEN-stilling i udklipsholder"
-
-#: book.c:598 book.c:874
-msgid "Polyglot book not valid"
-msgstr "Fejl i polyglyt-åbningsbog"
-
-#: book.c:722
-msgid "Book Fault"
-msgstr "Fejl i åbningsbog"
-
-#: book.c:877
-msgid "Hash keys are different"
-msgstr "Hashnøgler er forskellige"
-
-#: book.c:1053
-#, fuzzy
-msgid "Could not create book"
-msgstr "Kunne ikke fortolke træk"
-
-#: dialogs.c:286
-#, fuzzy
-msgid "Tournament file:          "
-msgstr "Turneringsfil:"
-
-#: dialogs.c:287
-#, fuzzy
-msgid "For concurrent playing of tourney with multiple XBoards:"
-msgstr "Synkronisér efter cyklus    turnering med flere XBoard'er)"
-
-#: dialogs.c:288
-msgid "Sync after round"
-msgstr ""
-
-#: dialogs.c:289
-msgid "Sync after cycle"
-msgstr ""
-
-#: dialogs.c:290
-msgid "Tourney participants:"
-msgstr "Turneringsdeltagere:"
-
-#: dialogs.c:291
-msgid "Select Engine:"
-msgstr "Vælg skakprogram:"
-
-#: dialogs.c:299
-msgid "Tourney type (0 = round-robin, 1 = gauntlet):"
-msgstr "Turneringstype (0 = alle mod alle, 1 = en imod resten):"
-
-#: dialogs.c:300
-msgid "Number of tourney cycles (or Swiss rounds):"
-msgstr "Antal cyklusser i turneringen (eller svejtserrunder):"
-
-#: dialogs.c:301
-msgid "Default Number of Games in Match (or Pairing):"
-msgstr "Standard for antal partier i match (eller parring):"
-
-#: dialogs.c:302
-msgid "Pause between Match Games (msec):"
-msgstr "Pause imellem matchpartier (millisekunder):"
-
-#: dialogs.c:303
-msgid "Save Tourney Games on:"
-msgstr "Gem turneringspartier i:"
-
-#: dialogs.c:304
-msgid "Game File with Opening Lines:"
-msgstr "Partifil med åbninger:"
-
-#: dialogs.c:305
-msgid "Game Number (-1 or -2 = Auto-Increment):"
-msgstr "Partinummer (-1 eller -2 = automatisk forøgelse):"
-
-#: dialogs.c:306
-msgid "File with Start Positions:"
-msgstr "Fil med startstillinger:"
-
-#: dialogs.c:307
-msgid "Position Number (-1 or -2 = Auto-Increment):"
-msgstr "Stillingsnummer (-1 eller -2 = automatisk forøgelse):"
-
-#: dialogs.c:308
-msgid "Rewind Index after this many Games (0 = never):"
-msgstr "Genstart nummering efter dette antal partier (0 = aldrig):"
-
-#: dialogs.c:309
-msgid "Disable own engine books by default"
-msgstr "Deaktivér skakprogrammets egen åbningsbog som standard"
-
-#: dialogs.c:310 dialogs.c:1840
-msgid "Time Control"
-msgstr "Betænkningstid"
-
-#: dialogs.c:311
-#, fuzzy
-msgid "Common Engine"
-msgstr "Skakprogram ...    Alt+Shift+U"
-
-#: dialogs.c:312 dialogs.c:446
-msgid "General Options"
-msgstr "Generelle indstillinger"
-
-#: dialogs.c:313
-msgid "Continue Later"
-msgstr ""
-
-#: dialogs.c:314
-msgid "Replace Engine"
-msgstr "Udskift skakprogram"
-
-#: dialogs.c:315
-msgid "Upgrade Engine"
-msgstr "Opgradér skakprogram"
-
-#: dialogs.c:316
-msgid "Clone Tourney"
-msgstr "Kopiér turnering"
-
-#: dialogs.c:356
-msgid "First you must specify an existing tourney file to clone"
-msgstr "Du skal angive en eksisterende turneringsfil til at kopiere"
-
-#: dialogs.c:372 dialogs.c:1549
-msgid "# no engines are installed"
-msgstr ""
-
-#: dialogs.c:380
-msgid "Internal error: PARTICIPANTS set wrong"
-msgstr ""
-
-#: dialogs.c:388
-#, fuzzy
-msgid "Tournament Options"
-msgstr "Lydindstillinger"
-
-#: dialogs.c:407
-msgid "Absolute Analysis Scores"
-msgstr "Absolutte analysescorer"
-
-#: dialogs.c:408
-msgid "Almost Always Queen (Detour Under-Promote)"
-msgstr "Næsten altid dronning (Omvejs-underforvandling)"
-
-#: dialogs.c:409 menus.c:729
-msgid "Animate Dragging"
-msgstr "Animeret trækudførelse"
-
-#: dialogs.c:410 menus.c:730
-msgid "Animate Moving"
-msgstr "Animeret flytning"
-
-#: dialogs.c:411 menus.c:731
-msgid "Auto Flag"
-msgstr "Automatisk annoncering af tidsoverskridelse"
-
-#: dialogs.c:412 menus.c:732
-msgid "Auto Flip View"
-msgstr "Automatisk vending af brættet"
-
-#: dialogs.c:413 menus.c:733
-msgid "Blindfold"
-msgstr "Blindskak"
-
-# Menu til indsætning af brik på brættet i babyskak mv.
-#. TRANSLATORS: the drop menu is used to drop a piece, e.g. during bughouse or editing a position
-#: dialogs.c:415
-msgid "Drop Menu"
-msgstr "Placér brik-menu"
-
-#: dialogs.c:416
-msgid "Enable Variation Trees"
-msgstr ""
-
-#: dialogs.c:417
-msgid "Headers in Engine Output Window"
-msgstr ""
-
-#: dialogs.c:418
-msgid "Hide Thinking from Human"
-msgstr "Skjul tænkning fra menneske"
-
-#: dialogs.c:419 menus.c:738
-msgid "Highlight Last Move"
-msgstr "Fremhæv sidste træk"
-
-#: dialogs.c:420
-msgid "Highlight with Arrow"
-msgstr "Fremhæv med pil"
-
-#: dialogs.c:421 menus.c:741
-msgid "One-Click Moving"
-msgstr "Ét-klikstræk"
-
-#: dialogs.c:422
-msgid "Periodic Updates (in Analysis Mode)"
-msgstr "Periodisk opdatering (i analysetilstand)"
-
-#: dialogs.c:424
-msgid "Play Move(s) of Clicked PV (Analysis)"
-msgstr ""
-
-# ... mens modstanderen er i trækket
-#: dialogs.c:425 dialogs.c:626 menus.c:743
-msgid "Ponder Next Move"
-msgstr "Spekulér på næste træk"
-
-#: dialogs.c:426
-msgid "Popup Exit Messages"
-msgstr "Pop op med afslutningsbeskeder"
-
-#: dialogs.c:427 menus.c:745
-msgid "Popup Move Errors"
-msgstr "Pop op ved trækfejl"
-
-#: dialogs.c:428
-msgid "Scores in Move List"
-msgstr "Scorer i trækliste"
-
-#: dialogs.c:429
-msgid "Show Coordinates"
-msgstr "Vis koordinater"
-
-#: dialogs.c:430
-msgid "Show Target Squares"
-msgstr "Vis målfelter"
-
-#: dialogs.c:431
-msgid "Sticky Windows"
-msgstr "Klæbrige vinduer"
-
-#: dialogs.c:432 menus.c:748
-msgid "Test Legality"
-msgstr "Test lovlighed"
-
-#: dialogs.c:433
-msgid "Top-Level Dialogs"
-msgstr ""
-
-#: dialogs.c:434
-msgid "Flash Moves (0 = no flashing):"
-msgstr "Blink ved træk (0 = ingen blink):"
-
-#: dialogs.c:435
-msgid "Flash Rate (high = fast):"
-msgstr "Blinkhastighed (høj = hurtig):"
-
-#: dialogs.c:436
-msgid "Animation Speed (high = slow):"
-msgstr "Animeringshastighed (høj = langsom):"
-
-#: dialogs.c:437
-msgid "Zoom factor in Evaluation Graph:"
-msgstr "Zoomfaktor i evalueringsgraf:"
-
-#: dialogs.c:457
-#, fuzzy
-msgid "Normal"
-msgstr "normal"
-
-#: dialogs.c:458
-msgid "Makruk"
-msgstr ""
-
-#: dialogs.c:459
-msgid "FRC"
-msgstr "skak960"
-
-#: dialogs.c:460
-msgid "Shatranj"
-msgstr ""
-
-#: dialogs.c:461
-msgid "Wild castle"
-msgstr ""
-
-#: dialogs.c:462
-#, fuzzy
-msgid "Knightmate"
-msgstr "Springer"
-
-#: dialogs.c:463
-msgid "No castle"
-msgstr ""
-
-#: dialogs.c:464
-msgid "Cylinder *"
-msgstr ""
-
-#: dialogs.c:465
-msgid "3-checks"
-msgstr ""
-
-#: dialogs.c:466
-msgid "berolina *"
-msgstr ""
-
-#: dialogs.c:467
-msgid "atomic"
-msgstr ""
-
-#: dialogs.c:468
-msgid "two kings"
-msgstr ""
-
-#: dialogs.c:469
-msgid " "
-msgstr ""
-
-#: dialogs.c:470
-msgid "Spartan"
-msgstr ""
-
-#: dialogs.c:471
-msgid "Board size ( -1 = default for selected variant):"
-msgstr "Brætstørrelse (-1 = standard for valgt variant):"
-
-#: dialogs.c:472
-msgid "Number of Board Ranks:"
-msgstr "Antal brætrækker:"
-
-#: dialogs.c:473
-msgid "Number of Board Files:"
-msgstr "Antal brætlinjer:"
-
-#: dialogs.c:474
-msgid "Holdings Size:"
-msgstr "Depotstørrelse:"
-
-#: dialogs.c:476
-msgid ""
-"Variants marked with * can only be played\n"
-"with legality testing off."
-msgstr ""
-
-#: dialogs.c:478
-msgid "ASEAN"
-msgstr ""
-
-#: dialogs.c:479
-msgid "Great Shatranj (10x8)"
-msgstr ""
-
-#: dialogs.c:480
-msgid "Seirawan"
-msgstr ""
-
-#: dialogs.c:481
-msgid "Falcon (10x8)"
-msgstr ""
-
-#: dialogs.c:482
-msgid "Superchess"
-msgstr ""
-
-#: dialogs.c:483
-msgid "Capablanca (10x8)"
-msgstr ""
-
-#: dialogs.c:484
-msgid "Crazyhouse"
-msgstr ""
-
-#: dialogs.c:485
-msgid "Gothic (10x8)"
-msgstr ""
-
-#: dialogs.c:486
-msgid "Bughouse"
-msgstr ""
-
-#: dialogs.c:487
-msgid "Janus (10x8)"
-msgstr ""
-
-#: dialogs.c:488
-msgid "Suicide"
-msgstr ""
-
-#: dialogs.c:489
-msgid "CRC (10x8)"
-msgstr ""
-
-#: dialogs.c:490
-msgid "give-away"
-msgstr ""
-
-#: dialogs.c:491
-msgid "grand (10x10)"
-msgstr ""
-
-#: dialogs.c:492
-msgid "losers"
-msgstr ""
-
-#: dialogs.c:493
-msgid "shogi (9x9)"
-msgstr ""
-
-#: dialogs.c:494
-msgid "fairy"
-msgstr ""
-
-#: dialogs.c:495
-msgid "xiangqi (9x10)"
-msgstr ""
-
-#: dialogs.c:496
-msgid "mighty lion"
-msgstr ""
-
-#: dialogs.c:497
-msgid "courier (12x8)"
-msgstr ""
-
-#: dialogs.c:498
-msgid "elven chess (10x10)"
-msgstr ""
-
-#: dialogs.c:499
-msgid "chu shogi (12x12)"
-msgstr ""
-
-#: dialogs.c:543
-#, c-format
-msgid "Warning: second engine (%s) does not support this!"
-msgstr "Advarsel: det andet skakprogram (%s) understøtter ikke dette!"
-
-#: dialogs.c:572
-#, c-format
-msgid "Only bughouse is not available in viewer mode."
-msgstr ""
-
-#: dialogs.c:573
-#, c-format
-msgid ""
-"All variants not supported by the first engine\n"
-"(currently %s) are disabled."
-msgstr ""
-
-#: dialogs.c:595
-msgid "New Variant"
-msgstr "Ny variant"
-
-#: dialogs.c:627
-msgid "Maximum Number of CPUs per Engine:"
-msgstr "Maksimalt antal CPU'er pr. skakprogram:"
-
-#: dialogs.c:628
-msgid "Polygot Directory:"
-msgstr "Polyglot-katalog:"
-
-#: dialogs.c:629
-msgid "Hash-Table Size (MB):"
-msgstr "Hashtabel-størrelse (MB):"
-
-#: dialogs.c:630
-#, fuzzy
-msgid "EGTB Path:"
-msgstr "Sti til Nalimov-EGTB:"
-
-#: dialogs.c:631
-msgid "EGTB Cache Size (MB):"
-msgstr "EGTB-cachestørrelse (MB):"
-
-#: dialogs.c:632
-msgid "Use GUI Book"
-msgstr "Brug GUI's åbningsbog"
-
-#: dialogs.c:633
-msgid "Opening-Book Filename:"
-msgstr "Åbningsbogsfilnavn:"
-
-#: dialogs.c:634
-msgid "Book Depth (moves):"
-msgstr "Åbningsbogsdybde (træk):"
-
-#: dialogs.c:635
-msgid "Book Variety (0) vs. Strength (100):"
-msgstr "Åbningsbogvariation (0) vs. styrke (100):"
-
-#: dialogs.c:636
-msgid "Engine #1 Has Own Book"
-msgstr "Skakprogram nr. 1 har egen åbningsbog"
-
-#: dialogs.c:637
-msgid "Engine #2 Has Own Book          "
-msgstr "Skakprogram nr. 2 har egen åbningsbog"
-
-#: dialogs.c:648
-msgid "Common Engine Settings"
-msgstr "Indstillinger for skakprogrammer"
-
-#: dialogs.c:654
-msgid "Detect all Mates"
-msgstr "Find alle matter"
-
-#: dialogs.c:655
-msgid "Verify Engine Result Claims"
-msgstr "Efterprøv resultatangivelser fra skakprogrammer"
-
-#: dialogs.c:656
-msgid "Draw if Insufficient Mating Material"
-msgstr "Remis ved utilstrækkeligt matsættende materiale"
-
-#: dialogs.c:657
-msgid "Adjudicate Trivial Draws (3-Move Delay)"
-msgstr "Døm trivielle remiser (3-træks forsinkelse)"
-
-#: dialogs.c:658
-msgid "N-Move Rule:"
-msgstr "N-træksregel:"
-
-#: dialogs.c:659
-msgid "N-fold Repeats:"
-msgstr "N-gange gentagelser:"
-
-#: dialogs.c:660
-msgid "Draw after N Moves Total:"
-msgstr "Remis efter i alt N træk:"
-
-#: dialogs.c:661
-msgid "Win / Loss Threshold:"
-msgstr "Gevinst/tabs-tærskel:"
-
-#: dialogs.c:662
-msgid "Negate Score of Engine #1"
-msgstr "Negér skakprogram nr. 1's score"
-
-#: dialogs.c:663
-msgid "Negate Score of Engine #2"
-msgstr "Negér skakprogram nr. 2's score"
-
-#: dialogs.c:670
-msgid "Adjudicate non-ICS Games"
-msgstr "Døm ikke-ICS partier"
-
-#: dialogs.c:683
-msgid "Auto-Kibitz"
-msgstr "Send kommentarer fra skakprogram"
-
-#: dialogs.c:684
-msgid "Auto-Comment"
-msgstr "Gem kommentarer til træk"
-
-#: dialogs.c:685
-msgid "Auto-Observe"
-msgstr "Observér automatisk"
-
-#: dialogs.c:686
-msgid "Auto-Raise Board"
-msgstr "Bræt øverst ved partistart"
-
-#: dialogs.c:687
-msgid "Auto-Create Logon Script"
-msgstr ""
-
-#: dialogs.c:688
-msgid "Background Observe while Playing"
-msgstr "Obsevér i baggrunden når der spilles"
-
-#: dialogs.c:689
-msgid "Dual Board for Background-Observed Game"
-msgstr "Andet bræt til baggrundsobservede partier"
-
-#: dialogs.c:690
-msgid "Get Move List"
-msgstr "Hent trækliste"
-
-#: dialogs.c:691
-msgid "Quiet Play"
-msgstr "Stille spil"
-
-#: dialogs.c:692
-msgid "Seek Graph"
-msgstr "Søgegraf"
-
-#: dialogs.c:693
-msgid "Auto-Refresh Seek Graph"
-msgstr "Automatisk opdatering af søgegraf"
-
-#: dialogs.c:694
-msgid "Auto-InputBox PopUp"
-msgstr ""
-
-#: dialogs.c:695
-#, fuzzy
-msgid "Quit after game"
-msgstr "Venter på andet parti/andre partier"
-
-#: dialogs.c:696
-msgid "Premove"
-msgstr "Forhåndstræk"
-
-#: dialogs.c:697
-msgid "Premove for White"
-msgstr "Forhåndstræk for hvid"
-
-#: dialogs.c:698
-msgid "First White Move:"
-msgstr "Hvids første træk:"
-
-#: dialogs.c:699
-msgid "Premove for Black"
-msgstr "Forhåndstræk for sort"
-
-#: dialogs.c:700
-msgid "First Black Move:"
-msgstr "Sorts første træk:"
-
-#: dialogs.c:702
-msgid "Alarm"
-msgstr "Alarm"
-
-#: dialogs.c:703
-msgid "Alarm Time (msec):"
-msgstr "Alarmtid (millisekunder):"
-
-#: dialogs.c:705
-msgid "Colorize Messages"
-msgstr "Farv meddelelser"
-
-#: dialogs.c:706
-msgid "Shout Text Colors:"
-msgstr "Tekstfarver for råb:"
-
-#: dialogs.c:707
-msgid "S-Shout Text Colors:"
-msgstr "Tekstfarver for s-råb:"
-
-#: dialogs.c:708
-msgid "Channel #1 Text Colors:"
-msgstr "Tekstfarver for kanal nr. 1:"
-
-#: dialogs.c:709
-msgid "Other Channel Text Colors:"
-msgstr "Tekstfarver for andre kanaler:"
-
-#: dialogs.c:710
-msgid "Kibitz Text Colors:"
-msgstr "Tekstfarver for kommentar:"
-
-#: dialogs.c:711
-msgid "Tell Text Colors:"
-msgstr "Tekstfarver for tale:"
-
-#: dialogs.c:712
-msgid "Challenge Text Colors:"
-msgstr "Tekstfarver for udfordring:"
-
-#: dialogs.c:713
-msgid "Request Text Colors:"
-msgstr "Tekstfarver for forespørgsel:"
-
-#: dialogs.c:714
-msgid "Seek Text Colors:"
-msgstr "Tekstfarver for søgning:"
-
-#: dialogs.c:715
-#, fuzzy
-msgid "Other Text Colors:"
-msgstr "Tekstfarver for andre kanaler:"
-
-#: dialogs.c:722
-msgid "ICS Options"
-msgstr "ICS-indstillinger"
-
-#: dialogs.c:727
-msgid "Exact position match"
-msgstr "Eksakt stilling"
-
-#: dialogs.c:727
-msgid "Shown position is subset"
-msgstr "Viste stilling er en delmængde"
-
-#: dialogs.c:727
-msgid "Same material with exactly same Pawn chain"
-msgstr "Samme materiale med samme bondestruktur"
-
-#: dialogs.c:728
-msgid "Same material"
-msgstr "Samme materiale"
-
-#: dialogs.c:728
-msgid "Material range (top board half optional)"
-msgstr "Materiale-interval (øverste halvdel af brættet valgfrit)"
-
-#: dialogs.c:728
-msgid "Material difference (optional stuff balanced)"
-msgstr "Materiale-forskel (balanceret valgfrit materiale)"
-
-#: dialogs.c:743
-msgid "Auto-Display Tags"
-msgstr "Automatisk visning af partidata"
-
-#: dialogs.c:744
-msgid "Auto-Display Comment"
-msgstr "Automatisk visning af kommentarer"
-
-#: dialogs.c:745
-msgid ""
-"Auto-Play speed of loaded games\n"
-"(0 = instant, -1 = off):"
-msgstr ""
-"Hastighed af gennemspilning af indlæste partier\n"
-"(0 = øjeblikkeligt, -1 fra):"
-
-#: dialogs.c:746
-msgid "Seconds per Move:"
-msgstr "Sekunder pr. træk:"
-
-# Ingen grund til ikke at bruge stort begyndelsesbogstav her.
-#: dialogs.c:747
-msgid ""
-"\n"
-"options to use in game-viewer mode:"
-msgstr ""
-"\n"
-"Indstillinger til brug ved gennemkigning af partier:"
-
-#: dialogs.c:749
-msgid ""
-"\n"
-"Thresholds for position filtering in game list:"
-msgstr ""
-"\n"
-"Grænseværdier for stillingsfiltrering i partiliste:"
-
-#: dialogs.c:750
-msgid "Elo of strongest player at least:"
-msgstr "Stærkeste spillers rating er mindst:"
-
-#: dialogs.c:751
-msgid "Elo of weakest player at least:"
-msgstr "Svageste spillers rating er mindst:"
-
-#: dialogs.c:752
-msgid "No games before year:"
-msgstr "Ingen partier før år:"
-
-#: dialogs.c:753
-msgid "Minimum nr consecutive positions:"
-msgstr "Mindste antal stillinger i følge ad gangen:"
-
-#: dialogs.c:755
-msgid "Search mode:"
-msgstr "Søgemetode:"
-
-#: dialogs.c:756
-msgid "Also match reversed colors"
-msgstr "Match også omvendte farver"
-
-#: dialogs.c:757
-msgid "Also match left-right flipped position"
-msgstr "Match også spejlvendt stilling"
-
-#: dialogs.c:766
-msgid "Load Game Options"
-msgstr "Indstillinger for indlæsning af parti"
-
-#: dialogs.c:778
-msgid "Auto-Save Games"
-msgstr "Gem partier automatisk"
-
-#: dialogs.c:779
-msgid "Own Games Only"
-msgstr ""
-
-#: dialogs.c:780
-msgid "Save Games on File:"
-msgstr "Gem partier i filen:"
-
-#: dialogs.c:781
-msgid "Save Final Positions on File:"
-msgstr "Gem slutstillinger i filen:"
-
-#: dialogs.c:782
-msgid "PGN Event Header:"
-msgstr "Event-tekst i PGN-fil:"
-
-#: dialogs.c:783
-msgid "Old Save Style (as opposed to PGN)"
-msgstr "Gammel gemmestil (i modsætning til PGN)"
-
-#: dialogs.c:784
-msgid "Include Number Tag in tourney PGN"
-msgstr "Brug partinumre i PGN-fil for turnering"
-
-#: dialogs.c:785
-msgid "Save Score/Depth Info in PGN"
-msgstr "Gem score/dybde-information i PGN"
-
-#: dialogs.c:786
-msgid "Save Out-of-Book Info in PGN           "
-msgstr "Gem ud af åbningsbog-info i PGN      "
-
-#: dialogs.c:793
-msgid "Save Game Options"
-msgstr "Indstillinger for gemning af parti"
-
-#: dialogs.c:802
-msgid "No Sound"
-msgstr "Ingen lyd"
-
-#: dialogs.c:803
-msgid "Default Beep"
-msgstr "Standard bip"
-
-#: dialogs.c:804
-msgid "Above WAV File"
-msgstr "WAV-filen ovenfor"
-
-#: dialogs.c:805
-msgid "Car Horn"
-msgstr "Bilhorn"
-
-#: dialogs.c:806
-msgid "Cymbal"
-msgstr "Bækken"
-
-#: dialogs.c:807
-msgid "Ding"
-msgstr "Ding"
-
-#: dialogs.c:808
-msgid "Gong"
-msgstr "Gongon"
-
-#: dialogs.c:809
-msgid "Laser"
-msgstr "Laser"
-
-#: dialogs.c:810
-msgid "Penalty"
-msgstr "Straffe"
-
-#: dialogs.c:811
-msgid "Phone"
-msgstr "Telefon"
-
-#: dialogs.c:812
-msgid "Pop"
-msgstr "Plop"
-
-#: dialogs.c:813
-msgid "Roar"
-msgstr ""
-
-#: dialogs.c:814
-msgid "Slap"
-msgstr "Slag"
-
-#: dialogs.c:815
-msgid "Wood Thunk"
-msgstr "Dunk"
-
-#: dialogs.c:817
-msgid "User File"
-msgstr "Brugerfil"
-
-#: dialogs.c:840
-msgid "User WAV File:"
-msgstr "Bruger WAV-fil:"
-
-#: dialogs.c:841
-msgid "Sound Program:"
-msgstr "Lydprogram:"
-
-#: dialogs.c:842
-msgid "Try-Out Sound:"
-msgstr "Afprøv lyd:"
-
-#: dialogs.c:843
-msgid "Play"
-msgstr "Afspil"
-
-#: dialogs.c:844
-msgid "Move:"
-msgstr "Træk:"
-
-#: dialogs.c:845
-msgid "Win:"
-msgstr "Gevinst:"
-
-#: dialogs.c:846
-msgid "Lose:"
-msgstr "Tab:"
-
-#: dialogs.c:847
-msgid "Draw:"
-msgstr "Remis:"
-
-#: dialogs.c:848
-msgid "Unfinished:"
-msgstr "Uafsluttet:"
-
-#: dialogs.c:849
-msgid "Alarm:"
-msgstr "Alarm:"
-
-#: dialogs.c:850
-msgid "Challenge:"
-msgstr "Udfodring:"
-
-#: dialogs.c:852
-msgid "Sounds Directory:"
-msgstr "Lydkatalog:"
-
-#: dialogs.c:853
-msgid "Shout:"
-msgstr "Råb:"
-
-#: dialogs.c:854
-msgid "S-Shout:"
-msgstr "S-råb:"
-
-#: dialogs.c:855
-msgid "Channel:"
-msgstr "Kanal:"
-
-#: dialogs.c:856
-msgid "Channel 1:"
-msgstr "Kanal 1:"
-
-#: dialogs.c:857
-msgid "Tell:"
-msgstr "Tale:"
-
-#: dialogs.c:858
-msgid "Kibitz:"
-msgstr "Kommentar:"
-
-#: dialogs.c:859
-msgid "Request:"
-msgstr "Forespøgsel:"
-
-#: dialogs.c:860
-msgid "Lion roar:"
-msgstr ""
-
-#: dialogs.c:861
-msgid "Seek:"
-msgstr "Søgning:"
-
-#: dialogs.c:877
-msgid "Sound Options"
-msgstr "Lydindstillinger"
-
-#: dialogs.c:893
-msgid "Selectable themes:"
-msgstr ""
-
-#: dialogs.c:895
-msgid "New name for current theme:"
-msgstr ""
-
-#: dialogs.c:898
-msgid "White Piece Color:"
-msgstr "Farve for hvide brikker:"
-
-#. TRANSLATORS: R = single letter for the color red
-#: dialogs.c:901 dialogs.c:910 dialogs.c:916 dialogs.c:922 dialogs.c:928
-#: dialogs.c:934
-msgid "R"
-msgstr "R"
-
-#. TRANSLATORS: G = single letter for the color green
-#: dialogs.c:903 dialogs.c:911 dialogs.c:917 dialogs.c:923 dialogs.c:929
-#: dialogs.c:935
-msgid "G"
-msgstr "G"
-
-#. TRANSLATORS: B = single letter for the color blue
-#: dialogs.c:905 dialogs.c:912 dialogs.c:918 dialogs.c:924 dialogs.c:930
-#: dialogs.c:936 dialogs.c:1650 dialogs.c:1656 dialogs.c:1662 dialogs.c:1668
-#: dialogs.c:1674 dialogs.c:1680 dialogs.c:1686
-msgid "B"
-msgstr "B"
-
-#. TRANSLATORS: D = single letter to make a color darker
-#: dialogs.c:907 dialogs.c:913 dialogs.c:919 dialogs.c:925 dialogs.c:931
-#: dialogs.c:937
-msgid "D"
-msgstr "M"
-
-#: dialogs.c:908
-msgid "Black Piece Color:"
-msgstr "Farve for sorte brikker:"
-
-#: dialogs.c:914
-msgid "Light Square Color:"
-msgstr "Farve for lyse felter:"
-
-#: dialogs.c:920
-msgid "Dark Square Color:"
-msgstr "Farve for mørke felter:"
-
-#: dialogs.c:926
-msgid "Highlight Color:"
-msgstr "Farve til fremhævelse:"
-
-#: dialogs.c:932
-msgid "Premove Highlight Color:"
-msgstr "Farve til forhåndstræk:"
-
-#: dialogs.c:938
-msgid "Flip Pieces Shogi Style        (Colored buttons restore default)"
-msgstr "Ombyt brikker som i shogi    (Farvede knapper gendanner standard)"
-
-#: dialogs.c:940
-msgid "Mono Mode"
-msgstr "Monokrom-tilstand"
-
-#: dialogs.c:941
-msgid "Logo Size (0=off, requires restart):"
-msgstr ""
-
-#: dialogs.c:942
-#, fuzzy
-msgid "Line Gap (-1 = default for board size):"
-msgstr "Mellemrum mellem felter (-1 = standard for brætstørrelsen):"
-
-#: dialogs.c:943
-msgid "Use Board Textures"
-msgstr "Brug brætteksturer"
-
-#: dialogs.c:944
-msgid "Light-Squares Texture File:"
-msgstr "Teksturfil for lyse felter:"
-
-#: dialogs.c:945
-msgid "Dark-Squares Texture File:"
-msgstr "Teksturfil for mørke felter:"
-
-#: dialogs.c:946
-msgid "Use external piece bitmaps with their own colors"
-msgstr ""
-
-#: dialogs.c:947
-#, fuzzy
-msgid "Directory with Pieces Images:"
-msgstr "Katalog med bitmap-brikker:"
-
-#: dialogs.c:1018
-msgid "# no themes are defined"
-msgstr ""
-
-#: dialogs.c:1030
-msgid "Board Options"
-msgstr "Brætindstillinger"
-
-#: dialogs.c:1101 menus.c:646
-msgid "ICS text menu"
-msgstr "ICS-tekstmenu"
-
-#: dialogs.c:1130
-msgid "clear"
-msgstr "ryd"
-
-#: dialogs.c:1131
-msgid "save changes"
-msgstr "gem ændringer"
-
-# ... mens modstanderen er i trækket
-#: dialogs.c:1229
-#, fuzzy
-msgid "add next move"
-msgstr "Spekulér på næste træk"
-
-#: dialogs.c:1230
-#, fuzzy
-msgid "commit changes"
-msgstr "gem ændringer"
-
-#: dialogs.c:1253
-msgid "Edit book"
-msgstr "Redigér åbningsbog"
-
-#: dialogs.c:1270 dialogs.c:1277 menus.c:648
-msgid "Tags"
-msgstr "Partidata"
-
-#: dialogs.c:1285
-#, fuzzy
-msgid "Registered Engines"
-msgstr "Første skakprogram"
-
-#: dialogs.c:1401
-msgid "ICS input box"
-msgstr "ICS-inputboks"
-
-#: dialogs.c:1433
-msgid "Type a move"
-msgstr "Tast et træk"
-
-#: dialogs.c:1459
-msgid "Engine has no options"
-msgstr "Skakprogrammet har ingen tilvalg"
-
-#: dialogs.c:1461
-msgid "Engine Settings"
-msgstr "Indstillinger for skakprogram"
-
-#: dialogs.c:1502
-msgid "Select engine from list:"
-msgstr "Vælg skakprogram fra liste:"
-
-#: dialogs.c:1505
-msgid "or specify one below:"
-msgstr "eller specificér en herunder:"
-
-#: dialogs.c:1506
-msgid "Nickname (optional):"
-msgstr "Kaldenavn (ikke nødvendigt):"
-
-#: dialogs.c:1507
-msgid "Use nickname in PGN player tags of engine-engine games"
-msgstr "Brug kaldenavnet som spillerbetegnelse i PGN-filer"
-
-#: dialogs.c:1508
-msgid "Engine Directory:"
-msgstr "Skakprogramkatalog:"
-
-#: dialogs.c:1509
-msgid "Engine Command:"
-msgstr "Skakprogramkommando:"
-
-#: dialogs.c:1510
-msgid "(Directory will be derived from engine path when empty)"
-msgstr "(Katalog vil blive udledt fra programstien hvis ikke udfyldt)"
-
-#: dialogs.c:1511
-msgid "UCI"
-msgstr "UCI"
-
-#: dialogs.c:1512
-msgid "USI/UCCI (uses specified -uxiAdapter)"
-msgstr ""
-
-#: dialogs.c:1513
-msgid "WB protocol v1 (do not wait for engine features)"
-msgstr "WB-protokol v1 (brug ikke særlige skakprogramfunktioner)"
-
-#: dialogs.c:1514
-msgid "Must not use GUI book"
-msgstr "Må ikke bruge GUI's åbningsbog"
-
-#: dialogs.c:1515
-msgid "Add this engine to the list"
-msgstr "Tilføj dette skakprogram til listen"
-
-#: dialogs.c:1516
-msgid "Force current variant with this engine"
-msgstr "Brug aktuel variant med dette skakprogram"
-
-#: dialogs.c:1570
-#, fuzzy
-msgid "Load first engine"
-msgstr "Indlæs skakprogram"
-
-#: dialogs.c:1576
-#, fuzzy
-msgid "Load second engine"
-msgstr "Indlæs skakprogrammet som"
-
-#: dialogs.c:1599
-msgid "shuffle"
-msgstr "bland brikker"
-
-#: dialogs.c:1600
-msgid "Fischer castling"
-msgstr ""
-
-#: dialogs.c:1601
-msgid "Start-position number:"
-msgstr "Startstillingsnummer:"
-
-#: dialogs.c:1602
-msgid "randomize"
-msgstr "vælg tilfældigt"
-
-#: dialogs.c:1603
-msgid "pick fixed"
-msgstr "vælg bestemt"
-
-#: dialogs.c:1620
-msgid "New Shuffle Game"
-msgstr "Nyt blandet parti"
-
-#: dialogs.c:1647
-msgid "Clocks (requires restart):"
-msgstr ""
-
-#: dialogs.c:1648 dialogs.c:1654 dialogs.c:1660 dialogs.c:1666 dialogs.c:1672
-#: dialogs.c:1678 dialogs.c:1684
-msgid "+"
-msgstr ""
-
-#: dialogs.c:1649 dialogs.c:1655 dialogs.c:1661 dialogs.c:1667 dialogs.c:1673
-#: dialogs.c:1679 dialogs.c:1685
-msgid "-"
-msgstr ""
-
-#: dialogs.c:1651 dialogs.c:1657 dialogs.c:1663 dialogs.c:1669 dialogs.c:1675
-#: dialogs.c:1681 dialogs.c:1687
-msgid "I"
-msgstr ""
-
-#: dialogs.c:1652 dialogs.c:1658 dialogs.c:1664 dialogs.c:1670 dialogs.c:1676
-#: dialogs.c:1682 dialogs.c:1688
-msgid "*"
-msgstr ""
-
-#: dialogs.c:1653
-msgid "Message (above board):"
-msgstr ""
-
-#: dialogs.c:1659
-msgid "ICS Chat/Console:"
-msgstr ""
-
-#: dialogs.c:1665
-msgid "Edit tags / book / engine list:"
-msgstr ""
-
-#: dialogs.c:1671
-#, fuzzy
-msgid "Edit comments:"
-msgstr "Redigér kommentar"
-
-#: dialogs.c:1677
-#, fuzzy
-msgid "Move history / Engine Output:"
-msgstr "Output fra skakprogram"
-
-#: dialogs.c:1683
-#, fuzzy
-msgid "Game list:"
-msgstr "Partiliste ..."
-
-#: dialogs.c:1689
-msgid ""
-"\n"
-"The * buttons will set the font to the one selected below:"
-msgstr ""
-
-#: dialogs.c:1743
-msgid "This only works in the GTK build"
-msgstr ""
-
-#: dialogs.c:1744
-msgid "Fonts"
-msgstr ""
-
-# Stort begyndelsesbogstav med vilje
-#: dialogs.c:1764
-msgid "classical"
-msgstr "Klassisk"
-
-# Stort begyndelsesbogstav med vilje
-#: dialogs.c:1765
-msgid "incremental"
-msgstr "Tillægstid"
-
-# Stort begyndelsesbogstav med vilje
-#: dialogs.c:1766
-msgid "fixed max"
-msgstr "Maks. pr. træk"
-
-#: dialogs.c:1767
-msgid "Divide entered times by 60"
-msgstr ""
-
-#: dialogs.c:1768
-msgid "Moves per session:"
-msgstr "Træk pr.  tidsperiode:"
-
-#: dialogs.c:1769
-msgid "Initial time (min):"
-msgstr "Tid fra start (minutter):"
-
-#: dialogs.c:1770
-msgid "Increment or max (sec/move):"
-msgstr "Tillægstid eller maks. pr. træk (sekunder):"
-
-#: dialogs.c:1771
-msgid "Time-Odds factors:"
-msgstr "Tidsforkortelses-faktorer:"
-
-#: dialogs.c:1772
-msgid "Engine #1"
-msgstr "Skakprogram nr. 1"
-
-#: dialogs.c:1773
-msgid "Engine #2 / Human"
-msgstr "Skakprogram nr. 2 / menneske"
-
-#: dialogs.c:1814 dialogs.c:1817 dialogs.c:1822 dialogs.c:1823
-#: gtk/xoptions.c:183
-msgid "Unused"
-msgstr "Ubrugt"
-
-#: dialogs.c:1832
-msgid "Changing time control during a game is not implemented"
-msgstr ""
-
-#: dialogs.c:1869
-msgid "Error writing to chess program"
-msgstr "Fejl ved skrivning til skakprogram"
-
-#: dialogs.c:1937 gtk/xoptions.c:1775 xaw/xoptions.c:1341
-msgid "Cancel"
-msgstr "Annullér"
-
-#: dialogs.c:1942 dialogs.c:2695 dialogs.c:2699
-msgid "King"
-msgstr "Konge"
-
-#: dialogs.c:1945
-msgid "Captain"
-msgstr ""
-
-#: dialogs.c:1946
-msgid "Lieutenant"
-msgstr ""
-
-#: dialogs.c:1947
-msgid "General"
-msgstr ""
-
-#: dialogs.c:1948
-msgid "Warlord"
-msgstr ""
-
-#: dialogs.c:1950 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Knight"
-msgstr "Springer"
-
-#: dialogs.c:1951 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Bishop"
-msgstr "Løber"
-
-#: dialogs.c:1952 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Rook"
-msgstr "Tårn"
-
-#: dialogs.c:1956 dialogs.c:2696 dialogs.c:2700
-msgid "Archbishop"
-msgstr ""
-
-#: dialogs.c:1957 dialogs.c:2696 dialogs.c:2700
-msgid "Chancellor"
-msgstr ""
-
-#: dialogs.c:1959 dialogs.c:2695 dialogs.c:2699 dialogs.c:2717
-msgid "Queen"
-msgstr "Dronning"
-
-#: dialogs.c:1961
-msgid "Lion"
-msgstr ""
-
-#: dialogs.c:1965
-msgid "Defer"
-msgstr ""
-
-#: dialogs.c:1966 dialogs.c:2696 dialogs.c:2700
-msgid "Promote"
-msgstr "Bondeforvandling"
-
-#: dialogs.c:2023
-msgid "Chats:"
-msgstr ""
-
-#: dialogs.c:2024 dialogs.c:2025 dialogs.c:2026 dialogs.c:2027 dialogs.c:2028
-#: dialogs.c:2134 dialogs.c:2199 dialogs.c:2231
-#, fuzzy
-msgid "New Chat"
-msgstr "Ny variant"
-
-#: dialogs.c:2031
-msgid "Chat partner:"
-msgstr ""
-
-#: dialogs.c:2032
-msgid "End Chat"
-msgstr ""
-
-#: dialogs.c:2033
-msgid "Hide"
-msgstr ""
-
-#: dialogs.c:2260
-#, fuzzy
-msgid "ICS Interaction"
-msgstr "ICS-indstillinger"
-
-#: dialogs.c:2345
-msgid "factory"
-msgstr "standard"
-
-#: dialogs.c:2346
-msgid "up"
-msgstr "op"
-
-#: dialogs.c:2347
-msgid "down"
-msgstr "ned"
-
-#: dialogs.c:2366
-msgid "No tag selected"
-msgstr "Ingen overskrift valgt"
-
-#: dialogs.c:2397
-msgid "Game-list options"
-msgstr "Indstillinger for partiliste"
-
-#: dialogs.c:2475 dialogs.c:2489
-msgid "Error"
-msgstr "Fejl"
-
-#: dialogs.c:2518
-msgid "Fatal Error"
-msgstr "Fatal fejl"
-
-#: dialogs.c:2518
-msgid "Exiting"
-msgstr "Afslutter"
-
-#: dialogs.c:2529
-msgid "Information"
-msgstr "Meddelelse"
-
-#: dialogs.c:2536
-msgid "Note"
-msgstr "Notits"
-
-#: dialogs.c:2694 dialogs.c:2987 dialogs.c:2990
-msgid "White"
-msgstr "Hvid"
-
-#: dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Pawn"
-msgstr "Bonde"
-
-#: dialogs.c:2695 dialogs.c:2699
-msgid "Elephant"
-msgstr ""
-
-#: dialogs.c:2695 dialogs.c:2699
-msgid "Cannon"
-msgstr ""
-
-#: dialogs.c:2696 dialogs.c:2700
-msgid "Demote"
-msgstr ""
-
-#: dialogs.c:2697 dialogs.c:2701
-msgid "Empty square"
-msgstr "Tomt felt"
-
-#: dialogs.c:2697 dialogs.c:2701
-msgid "Clear board"
-msgstr "Ryd bræt"
-
-#: dialogs.c:2698 dialogs.c:2999 dialogs.c:3002
-msgid "Black"
-msgstr "Sort"
-
-#: dialogs.c:2798
-#, fuzzy
-msgid "_File"
-msgstr "Fil"
-
-#: dialogs.c:2799
-#, fuzzy
-msgid "_Edit"
-msgstr "Redigér"
-
-#: dialogs.c:2800
-#, fuzzy
-msgid "_View"
-msgstr "Vis"
-
-#: dialogs.c:2801
-#, fuzzy
-msgid "_Mode"
-msgstr "Tilstand"
-
-#: dialogs.c:2802
-#, fuzzy
-msgid "_Action"
-msgstr "Handlinger"
-
-#: dialogs.c:2803
-#, fuzzy
-msgid "E_ngine"
-msgstr "Skakprogram"
-
-#: dialogs.c:2804
-#, fuzzy
-msgid "_Options"
-msgstr "Indstillinger"
-
-#: dialogs.c:2805
-#, fuzzy
-msgid "_Help"
-msgstr "Hjælp"
-
-#: dialogs.c:2815
-msgid "<<"
-msgstr ""
-
-#: dialogs.c:2816
-msgid "<"
-msgstr ""
-
-#: dialogs.c:2818
-msgid ">"
-msgstr ""
-
-#: dialogs.c:2819
-msgid ">>"
-msgstr ""
-
-#: dialogs.c:3107
-#, fuzzy
-msgid "Directories:"
-msgstr "Lydkatalog:"
-
-#: dialogs.c:3108
-#, fuzzy
-msgid "Files:"
-msgstr "Fil"
-
-#: dialogs.c:3109
-msgid "by name"
-msgstr ""
-
-#: dialogs.c:3110
-msgid "by type"
-msgstr ""
-
-#: dialogs.c:3113
-#, fuzzy
-msgid "Filename:"
-msgstr "Filter:"
-
-#: dialogs.c:3114
-#, fuzzy
-msgid "New directory"
-msgstr "Skakprogramkatalog:"
-
-#: dialogs.c:3115
-#, fuzzy
-msgid "File type:"
-msgstr "Filter:"
-
-#: dialogs.c:3190
-#, fuzzy
-msgid "Contents of"
-msgstr "Kommentarer"
-
-#: dialogs.c:3216
-#, fuzzy
-msgid "  next page"
-msgstr "næste side"
-
-#: dialogs.c:3233
-msgid "FIRST TYPE DIRECTORY NAME HERE"
-msgstr ""
-
-#: dialogs.c:3234
-msgid "TRY ANOTHER NAME"
-msgstr ""
-
-#: draw.c:405
-msgid ""
-"No default pieces installed!\n"
-"Select your own using '-pieceImageDirectory'."
-msgstr ""
-
-#: engineoutput.c:112 menus.c:642
-#, c-format
-msgid "Engine Output"
-msgstr "Output fra skakprogram"
-
-#: engineoutput.c:122
-#, c-format
-msgid "%s (%d reversible ply)"
-msgid_plural "%s (%d reversible plies)"
-msgstr[0] "%s (%d reversibelt træk)"
-msgstr[1] "%s (%d reversible træk)"
-
-# NPS = Nodes pr. second
-# SPS = Stillinger pr. sekund (i motoranalyse)
-#: engineoutput.c:565 engineoutput.c:568 nengineoutput.c:83 nengineoutput.c:91
-msgid "NPS"
-msgstr "SPS"
-
-#: gamelist.c:379
-#, c-format
-msgid "Reading game file (%d)"
-msgstr "Læser partifil (%d)"
-
-#: gtk/xboard.c:979 xaw/xboard.c:1074
-#, c-format
-msgid "%s: can't cd to CHESSDIR: "
-msgstr "%s: kan ikke cd til CHESSDIR: "
-
-#: gtk/xboard.c:988 xaw/xboard.c:1083
-#, c-format
-msgid "Failed to open file '%s'\n"
-msgstr "Åbning af filen \"%s\" mislykkedes\n"
-
-#: gtk/xboard.c:1003 xaw/xboard.c:1092
-msgid "Recompile with larger BOARD_RANKS or BOARD_FILES to support this size"
-msgstr ""
-"Genoversæt med større BOARD_RANKS eller BOARD_FILES for at understøtte denne "
-"størrelse"
-
-#: gtk/xboard.c:1022 xaw/xboard.c:1124
-#, c-format
-msgid "%s: bad boardSize syntax %s\n"
-msgstr "%s: forkert boardSize-syntaks %s\n"
-
-#: gtk/xboard.c:1063 xaw/xboard.c:1163
-#, c-format
-msgid "%s: unrecognized boardSize name %s\n"
-msgstr "%s: ikke genkendt boardSize-navn %s\n"
-
-#: gtk/xboard.c:1107 xaw/xboard.c:1200
-#, c-format
-msgid "%s: too few colors available; trying monochrome mode\n"
-msgstr "%s: for få farver tilgængelige; prøver monokrom tilstand\n"
-
-#: gtk/xboard.c:1421 xaw/xboard.c:1492
-#, c-format
-msgid "Unable to create font set for %s.\n"
-msgstr "Kan ikke lave skrifttypegruppe for %s.\n"
-
-#: gtk/xboard.c:1446 xaw/xboard.c:1515
-#, c-format
-msgid "%s: no fonts match pattern %s\n"
-msgstr "%s: Ingen skrifttyper matcher mønstret %s\n"
-
-#: gtk/xboard.c:1914 xaw/xboard.c:2007
-msgid "Can't open temp file"
-msgstr "Kan ikke åbne midlertidig fil"
-
-#: gtk/xboard.c:2422
-msgid "Failed to open file"
-msgstr "Åbning af fil mislykkedes"
-
-#: gtk/xoptions.c:1498
-msgid "Browse"
-msgstr "Gennemse"
-
-#: gtk/xoptions.c:1772 xaw/xoptions.c:1337
-msgid "OK"
-msgstr "o.k."
-
-#: menus.c:136
-msgid "Load game file name?"
-msgstr "Filnavn for indlæsning af parti?"
-
-#: menus.c:183
-msgid "Load position file name?"
-msgstr "Filnavn for indlæsning af stilling?"
-
-#: menus.c:189 menus.c:582
-msgid "Save game file name?"
-msgstr "Filnavn for gemning af parti?"
-
-#: menus.c:198
-msgid "Save position file name?"
-msgstr "Filnavn for gemning af stilling?"
-
-#: menus.c:355
-msgid " (with Zippy code)"
-msgstr " (med Zippy-kode)"
-
-#: menus.c:360
-#, fuzzy, c-format
-msgid ""
-"%s%s\n"
-"\n"
-"Copyright 1991 Digital Equipment Corporation\n"
-"Enhancements Copyright 1992-2016 Free Software Foundation\n"
-"Enhancements Copyright 2005 Alessandro Scotti\n"
-"\n"
-"%s is free software and carries NO WARRANTY;see the file COPYING for more "
-"information.\n"
-"\n"
-"Visit XBoard on the web at: http://www.gnu.org/software/xboard/\n"
-"Check out the newest features at: http://www.gnu.org/software/xboard/"
-"whats_new.html\n"
-"\n"
-"Report bugs via email at: <bug-xboard@gnu.org>\n"
-"\n"
-msgstr ""
-"%s%s\n"
-"\n"
-"Copyright 1991 Digital Equipment Corporation\n"
-"Ændringer Copyright 1992-2012 Free Software Foundation\n"
-"Ændringer Copyright 2005 Alessandro Scotti\n"
-"\n"
-"%s er frit programmel og er uden nogen form for garanti; se filen COPYING "
-"for mere information. \n"
-"Besøg XBoard på nettet på http://www.gnu.org/software/xboard/\n"
-"Se de nyeste funktioner på http://www.gnu.org/software/xboard/whats_new."
-"html\n"
-"\n"
-"Rapportér fejl via e-mail til <bug-xboard@gnu.org>\n"
-"Rapportér fejl i den danske oversættelse til <dansk@dansk-gruppen.dk>\n"
-"\n"
-
-#: menus.c:371 menus.c:765
-msgid "About XBoard"
-msgstr "Om Xboard"
-
-#: menus.c:593
-#, fuzzy
-msgid "New Game"
-msgstr "Nyt blandet parti"
-
-#: menus.c:594
-#, fuzzy
-msgid "New Shuffle Game..."
-msgstr "Nyt blandet parti ..."
-
-#: menus.c:595
-#, fuzzy
-msgid "New Variant..."
-msgstr "Ny variant"
-
-#: menus.c:597
-#, fuzzy
-msgid "Load Game"
-msgstr "Indlæs parti ..."
-
-#: menus.c:598
-#, fuzzy
-msgid "Load Position"
-msgstr "find stilling"
-
-#: menus.c:599
-#, fuzzy
-msgid "Next Position"
-msgstr "Næste stilling    Shift+PgDn"
-
-#: menus.c:600
-#, fuzzy
-msgid "Prev Position"
-msgstr "Gemmer stilling"
-
-#: menus.c:602
-#, fuzzy
-msgid "Save Game"
-msgstr "Gem parti ..."
-
-#: menus.c:603
-#, fuzzy
-msgid "Save Position"
-msgstr "Gemmer stilling"
-
-#: menus.c:604
-#, fuzzy
-msgid "Save Selected Games"
-msgstr "Gem parti ..."
-
-#: menus.c:605
-#, fuzzy
-msgid "Save Games as Book"
-msgstr "Gem partier i filen:"
-
-#: menus.c:607
-msgid "Mail Move"
-msgstr "Send træk med e-post"
-
-#: menus.c:608
-msgid "Reload CMail Message"
-msgstr "Genindlæs CMail-besked"
-
-#: menus.c:610
-msgid "Quit "
-msgstr ""
-
-#: menus.c:615
-#, fuzzy
-msgid "Copy Game"
-msgstr "Kopiér partiliste"
-
-#: menus.c:616
-#, fuzzy
-msgid "Copy Position"
-msgstr "Kopiér stilling    Ctrl+Shift+C"
-
-#: menus.c:617
-msgid "Copy Game List"
-msgstr "Kopiér partiliste"
-
-#: menus.c:619
-#, fuzzy
-msgid "Paste Game"
-msgstr "Indsæt parti    Ctrl+V"
-
-#: menus.c:620
-#, fuzzy
-msgid "Paste Position"
-msgstr "Indsæt stilling    Ctrl+Shift+V"
-
-#: menus.c:622 menus.c:665
-#, fuzzy
-msgid "Edit Game"
-msgstr "Redigér kommentar"
-
-#: menus.c:623 menus.c:666
-#, fuzzy
-msgid "Edit Position"
-msgstr "find stilling"
-
-# Partibeskrivelse i PGN-fil
-#: menus.c:624
-msgid "Edit Tags"
-msgstr "Redigér partidata"
-
-#: menus.c:625
-msgid "Edit Comment"
-msgstr "Redigér kommentar"
-
-#: menus.c:626
-msgid "Edit Book"
-msgstr "Redigér åbningsbog"
-
-#: menus.c:628
-msgid "Revert"
-msgstr ""
-
-#: menus.c:629
-msgid "Annotate"
-msgstr "Kommentér"
-
-#: menus.c:630
-#, fuzzy
-msgid "Truncate Game"
-msgstr "Afkort partiet    End"
-
-#: menus.c:632
-msgid "Backward"
-msgstr ""
-
-#: menus.c:633
-msgid "Forward"
-msgstr ""
-
-#: menus.c:634
-#, fuzzy
-msgid "Back to Start"
-msgstr "Sort i trækket"
-
-#: menus.c:635
-#, fuzzy
-msgid "Forward to End"
-msgstr "Frem til enden    Alt+End"
-
-#: menus.c:640
-#, fuzzy
-msgid "Flip View"
-msgstr "Automatisk vending af brættet"
-
-#: menus.c:643
-#, fuzzy
-msgid "Move History"
-msgstr "Trækliste"
-
-#: menus.c:644
-#, fuzzy
-msgid "Evaluation Graph"
-msgstr "Evalueringsgraf"
-
-#: menus.c:645
-#, fuzzy
-msgid "Game List"
-msgstr "Partiliste ..."
-
-#: menus.c:649
-msgid "Comments"
-msgstr "Kommentarer"
-
-#: menus.c:650
-msgid "ICS Input Box"
-msgstr "ICS-inputboks"
-
-#: menus.c:651
-msgid "ICS/Chat Console"
-msgstr ""
-
-#: menus.c:653
-msgid "Board..."
-msgstr "Bræt..."
-
-#: menus.c:654
-#, fuzzy
-msgid "Fonts..."
-msgstr "Lyde ..."
-
-#: menus.c:655
-msgid "Game List Tags..."
-msgstr "Partidata-overskrifter ..."
-
-#: menus.c:660
-#, fuzzy
-msgid "Machine White"
-msgstr "Skakprogram har hvid    Ctrl+W"
-
-#: menus.c:661
-#, fuzzy
-msgid "Machine Black"
-msgstr "Skakprogrammatch"
-
-#: menus.c:662
-#, fuzzy
-msgid "Two Machines"
-msgstr "To skakprogrammer    Ctrl+T"
-
-#: menus.c:663
-#, fuzzy
-msgid "Analysis Mode"
-msgstr "Analysetilstand    Ctrl+A"
-
-#: menus.c:664
-#, fuzzy
-msgid "Analyze Game"
-msgstr "Analysér parti    Ctrl+G"
-
-#: menus.c:667
-msgid "Training"
-msgstr "Træning"
-
-#: menus.c:668
-msgid "ICS Client"
-msgstr "ICS-klient"
-
-#: menus.c:670
-msgid "Machine Match"
-msgstr "Skakprogrammatch"
-
-#: menus.c:671
-msgid "Pause"
-msgstr ""
-
-#: menus.c:676
-msgid "Accept"
-msgstr ""
-
-#: menus.c:677
-msgid "Decline"
-msgstr ""
-
-#: menus.c:678
-msgid "Rematch"
-msgstr ""
-
-#: menus.c:680
-#, fuzzy
-msgid "Call Flag"
-msgstr "Annoncér tidsoverskridelse    F5"
-
-#: menus.c:681
-#, fuzzy
-msgid "Draw"
-msgstr "Remis:"
-
-#: menus.c:682
-msgid "Adjourn"
-msgstr ""
-
-#: menus.c:683
-msgid "Abort"
-msgstr ""
-
-#: menus.c:684
-msgid "Resign"
-msgstr ""
-
-#: menus.c:686
-#, fuzzy
-msgid "Stop Observing"
-msgstr "Stop observation    F10"
-
-#: menus.c:687
-#, fuzzy
-msgid "Stop Examining"
-msgstr "Stop undersøgelse    F11"
-
-#: menus.c:688
-msgid "Upload to Examine"
-msgstr "Overfør til undersøgelse"
-
-#: menus.c:690
-msgid "Adjudicate to White"
-msgstr "Døm hvid gevinst"
-
-#: menus.c:691
-msgid "Adjudicate to Black"
-msgstr "Døm sort gevinst"
-
-#: menus.c:692
-msgid "Adjudicate Draw"
-msgstr "Døm remis"
-
-#: menus.c:697
-#, fuzzy
-msgid "Edit Engine List..."
-msgstr "Indstillinger for skakprogram nr. 1 ..."
-
-#: menus.c:699
-#, fuzzy
-msgid "Load New 1st Engine..."
-msgstr "Indlæs nyt skakprogram ..."
-
-#: menus.c:700
-#, fuzzy
-msgid "Load New 2nd Engine..."
-msgstr "Indlæs nyt skakprogram ..."
-
-#: menus.c:702
-#, fuzzy
-msgid "Engine #1 Settings..."
-msgstr "Indstillinger for skakprogram nr. 1 ..."
-
-#: menus.c:703
-#, fuzzy
-msgid "Engine #2 Settings..."
-msgstr "Indstillinger for skakprogram nr. 2 ..."
-
-#: menus.c:704
-#, fuzzy
-msgid "Common Settings..."
-msgstr "Indstillinger for skakprogrammer"
-
-#: menus.c:706
-msgid "Hint"
-msgstr "Tip"
-
-#: menus.c:707
-msgid "Book"
-msgstr "Åbningsbog"
-
-#: menus.c:709
-#, fuzzy
-msgid "Move Now"
-msgstr "Lyd ved træk"
-
-#: menus.c:710
-#, fuzzy
-msgid "Retract Move"
-msgstr "Annullér træk    Ctrl+X"
-
-#: menus.c:716
-#, fuzzy
-msgid "General..."
-msgstr "Generelle ..."
-
-#: menus.c:718
-#, fuzzy
-msgid "Time Control..."
-msgstr "Betænkningstid"
-
-#: menus.c:719
-#, fuzzy
-msgid "Adjudications..."
-msgstr "Afgørelser ...    Alt+Shift+J"
-
-#: menus.c:720
-msgid "ICS..."
-msgstr ""
-
-#: menus.c:721
-msgid "Tournament..."
-msgstr ""
-
-#: menus.c:722
-#, fuzzy
-msgid "Load Game..."
-msgstr "Indlæs parti ..."
-
-#: menus.c:723
-#, fuzzy
-msgid "Save Game..."
-msgstr "Gem parti ..."
-
-#: menus.c:724
-#, fuzzy
-msgid "Game List..."
-msgstr "Partiliste ..."
-
-#: menus.c:725
-#, fuzzy
-msgid "Sounds..."
-msgstr "Lyde ..."
-
-#: menus.c:728
-msgid "Always Queen"
-msgstr ""
-
-#: menus.c:734
-msgid "Flash Moves"
-msgstr "Blink ved træk"
-
-#: menus.c:736
-msgid "Highlight Dragging"
-msgstr "Fremhæv flytning"
-
-#: menus.c:739
-msgid "Highlight With Arrow"
-msgstr "Fremhæv med pil"
-
-#: menus.c:740
-msgid "Move Sound"
-msgstr "Lyd ved træk"
-
-#: menus.c:742
-msgid "Periodic Updates"
-msgstr "Periodisk opdatering"
-
-#: menus.c:744
-msgid "Popup Exit Message"
-msgstr "Pop op med afslutningsbeskeder"
-
-#: menus.c:746
-msgid "Show Coords"
-msgstr "Vis koordinater"
-
-#: menus.c:747
-#, fuzzy
-msgid "Hide Thinking"
-msgstr "Skjul tænkning fra menneske"
-
-#: menus.c:751
-msgid "Save Settings Now"
-msgstr "Gem indstillinger nu"
-
-#: menus.c:752
-msgid "Save Settings on Exit"
-msgstr "Gem indstillinger ved afslutning"
-
-#: menus.c:757
-msgid "Info XBoard"
-msgstr "Info XBoard"
-
-#: menus.c:758
-#, fuzzy
-msgid "Man XBoard"
-msgstr "Man XBoard    F1"
-
-#: menus.c:760
-msgid "XBoard Home Page"
-msgstr "XBoards hjemmeside (engelsk)"
-
-#: menus.c:761
-msgid "On-line User Guide"
-msgstr "Online brugervejledning (engelsk)"
-
-#: menus.c:762
-msgid "Development News"
-msgstr "Nyheder i denne version (engelsk)"
-
-#: menus.c:763
-msgid "e-Mail Bug Report"
-msgstr "E-mail fejlrapport"
-
-#: menus.c:802
-msgid "File"
-msgstr "Fil"
-
-#: menus.c:803
-msgid "Edit"
-msgstr "Redigér"
-
-#: menus.c:804
-msgid "View"
-msgstr "Vis"
-
-#: menus.c:805
-msgid "Mode"
-msgstr "Tilstand"
-
-#: menus.c:806
-msgid "Action"
-msgstr "Handlinger"
-
-#: menus.c:807
-msgid "Engine"
-msgstr "Skakprogram"
-
-#: menus.c:808
-msgid "Options"
-msgstr "Indstillinger"
-
-#: menus.c:809
-msgid "Help"
-msgstr "Hjælp"
-
-#: nengineoutput.c:79 nengineoutput.c:87
-#, fuzzy
-msgid "engine name"
-msgstr "Skakprogram nr. 1"
-
-#. TRANSLATORS: noun, as in "the move Nf3"
-#: nengineoutput.c:82 nengineoutput.c:90
-#, fuzzy
-msgid "move"
-msgstr "Forhåndstræk"
-
-#: nengineoutput.c:156
-msgid "Engine output"
-msgstr "Output fra skakprogram"
-
-#: nengineoutput.c:160
-msgid ""
-"Mismatch of STRIDE in nengineoutput.c\n"
-"Change and recompile!"
-msgstr ""
-
-#: nevalgraph.c:69
-msgid "Evaluation graph"
-msgstr "Evalueringsgraf"
-
-#: nevalgraph.c:69
-#, fuzzy
-msgid "Blunder graph"
-msgstr "Evalueringsgraf"
-
-#: nevalgraph.c:107
-msgid "Blunder"
-msgstr ""
-
-#: nevalgraph.c:107
-msgid "Eval"
-msgstr ""
-
-#: ngamelist.c:87
-msgid "find position"
-msgstr "find stilling"
-
-#: ngamelist.c:88
-msgid "narrow"
-msgstr ""
-
-#: ngamelist.c:89
-msgid "thresholds"
-msgstr "grænseværdier"
-
-#: ngamelist.c:90
-#, fuzzy
-msgid "tags"
-msgstr "Partidata"
-
-#: ngamelist.c:91
-msgid "next"
-msgstr "næste"
-
-#: ngamelist.c:92
-msgid "close"
-msgstr "luk"
-
-#: ngamelist.c:116
-msgid "No game selected"
-msgstr "Der er ikke valgt et parti"
-
-#: ngamelist.c:122
-msgid "Can't go forward any further"
-msgstr "Kan ikke gå længere fremad"
-
-#: ngamelist.c:192
-#, c-format
-msgid "Scanning through games (%d)"
-msgstr "Skanner gennem partier (%d)"
-
-#: ngamelist.c:211
-msgid "previous page"
-msgstr "forrige side"
-
-#: ngamelist.c:214
-msgid "next page"
-msgstr "næste side"
-
-#: ngamelist.c:217
-msgid "no games matched your request"
-msgstr "ingen partier svarer til din forespørgsel"
-
-#: ngamelist.c:219
-#, c-format
-msgid "%s - %d/%d games (%d-%d-%d)"
-msgstr "%s - %d/%d partier (%d-%d-%d)"
-
-#: ngamelist.c:284
-msgid "There is no game list"
-msgstr "Der er ingen partiliste"
-
-#: nhistory.c:109
-msgid "Move list"
-msgstr "Trækliste"
-
-#: usystem.c:223
-#, c-format
-msgid "%s: unrecognized color %s\n"
-msgstr "%s: ikke genkendt farve %s\n"
-
-#: usystem.c:231
-#, fuzzy, c-format
-msgid "%s: can't parse foreground color in '%s'\n"
-msgstr "%s: kan ikke fortolke forgrundsfarve i \"%s\"\n"
-
-#: usystem.c:260
-#, c-format
-msgid "%s: can't parse color names; disabling colorization\n"
-msgstr "%s: kan ikke fortolke farvenavne; deaktiverer farvning\n"
-
-#: usystem.c:362
-#, c-format
-msgid "ERROR: Unknown user %s (in path %s)\n"
-msgstr "FEJL: Ukendt bruger %s (i stien %s)\n"
-
-#: usystem.c:564
-msgid "Socket support is not configured in"
-msgstr "Er ikke konfigureret med sokkelunderstøttelse"
-
-#: usystem.c:653
-msgid "internal rcmd not implemented for Unix"
-msgstr "intern rcmd er ikke implementeret til Unix"
-
-#: xaw/xboard.c:1206
-#, c-format
-msgid "white pixel = 0x%lx, black pixel = 0x%lx\n"
-msgstr "hvid pixel = 0x%lx, sort pixel = 0x%lx\n"
-
-#: xaw/xoptions.c:378 xaw/xoptions.c:1082
-msgid "browse"
-msgstr "gennemse"
-
-#: xaw/xoptions.c:444 xaw/xoptions.c:445
-msgid "Ctrl"
-msgstr ""
-
-#: xaw/xoptions.c:450 xaw/xoptions.c:451
-msgid "Alt"
-msgstr ""
-
-#: xaw/xoptions.c:456 xaw/xoptions.c:457
-msgid "Shift"
-msgstr ""
-
-#, fuzzy
-#~ msgid "Common Engine..."
-#~ msgstr "Skakprogram ...    Alt+Shift+U"
-
-#, fuzzy
-#~ msgid "    (for concurrent playing of a single"
-#~ msgstr "Synkronisér efter runde    (for samtidig afvikling af en"
-
-#~ msgid "Match Options"
-#~ msgstr "Matchindstillinger"
-
-#~ msgid "ICS ..."
-#~ msgstr "ICS ..."
-
-#~ msgid "Match ..."
-#~ msgstr "Match ..."
-
-#~ msgid "%s: Can't access XPM directory %s\n"
-#~ msgstr "%s: Har ikke adgang til XPM-katalog %s\n"
-
-#~ msgid "Available `%s' sizes:\n"
-#~ msgstr "Tilgængelige \"%s\"-størrelser:\n"
-
-#~ msgid "Error: No `%s' files!\n"
-#~ msgstr "Fejl: Ingen \"%s\"-filer!\n"
-
-#~ msgid ""
-#~ "Warning: No DIR structure found on this system --\n"
-#~ "         Unable to autosize for XPM/XIM pieces.\n"
-#~ "   Please report this error to %s.\n"
-#~ "   Include system type & operating system in message.\n"
-#~ msgstr ""
-#~ "Advarsel: Ingen DIR-struktur fundet på dette system --\n"
-#~ "      Kan ikke vælge størrelse for XPM/XIM-brikker.\n"
-#~ "  Rappotér venligst denne fejl til %s.\n"
-#~ "  Inkludér systemtype og styresystem i beskeden.\n"
-
-#~ msgid "Error %d loading icon image\n"
-#~ msgstr "Fejl %d ved indlæsning af ikonbillede\n"
-
-#~ msgid "cancel"
-#~ msgstr "annullér"
-
-#~ msgid "recognized '%s' (%d) as variant %s\n"
-#~ msgstr "genkendte \"%s\" (%d) som variant %s\n"
-
-#~ msgid "Ratings from header: W %d, B %d\n"
-#~ msgstr "Ratinger fra teksthovede: H %d, S %d\n"
-
-#~ msgid "Parsing board: %s\n"
-#~ msgstr "Fortolker bræt: %s\n"
-
-#~ msgid "Found unexpected active ICS engine analyze \n"
-#~ msgstr "Fandt uventet aktivt skakprogram til ICS-analyse\n"
-
-#~ msgid "ICS engine analyze starting... \n"
-#~ msgstr "Starter skakprogram til ICS-analyse ...\n"
-
-#~ msgid ""
-#~ "resolved %s at pixel size %d\n"
-#~ "  to %s\n"
-#~ msgstr ""
-#~ "løste %s ved pixelstørrelse %d\n"
-#~ " til %s\n"
-
-#~ msgid "New Game        Ctrl+N"
-#~ msgstr "Nyt parti    Ctrl+N"
-
-#~ msgid "New Variant ...   Alt+Shift+V"
-#~ msgstr "Ny variant ...    Alt-shift+V"
-
-#~ msgid "Load Game       Ctrl+O"
-#~ msgstr "Indlæs parti    Ctrl+O"
-
-#~ msgid "Load Position    Ctrl+Shift+O"
-#~ msgstr "Indlæs stilling    Ctrl+Shift+O"
-
-#~ msgid "Prev Position     Shift+PgUp"
-#~ msgstr "Forrige stilling    Shift+PgUp"
-
-#~ msgid "Save Game       Ctrl+S"
-#~ msgstr "Gem parti    Ctrl+S"
-
-#~ msgid "Save Position    Ctrl+Shift+S"
-#~ msgstr "Gem stilling    Ctrl+Shift+S"
-
-#~ msgid "Quit                 Ctr+Q"
-#~ msgstr "Afslut    Ctrl+Q"
-
-#~ msgid "Copy Game    Ctrl+C"
-#~ msgstr "Kopiér parti    Ctrl+C"
-
-#~ msgid "Edit Game      Ctrl+E"
-#~ msgstr "Redigér parti    Ctrl+E"
-
-#~ msgid "Edit Position   Ctrl+Shift+E"
-#~ msgstr "Redigér stilling    Ctrl+Shift+E"
-
-#~ msgid "Revert              Home"
-#~ msgstr "Annullér variantlinje    Home"
-
-#~ msgid "Backward         Alt+Left"
-#~ msgstr "Tilbage    Alt+Venstre"
-
-#~ msgid "Forward           Alt+Right"
-#~ msgstr "Fremad    Alt+Højre"
-
-#~ msgid "Back to Start     Alt+Home"
-#~ msgstr "Tilbage til start    Alt+Home"
-
-#~ msgid "Flip View             F2"
-#~ msgstr "Vend brættet    F2"
-
-#~ msgid "Engine Output      Alt+Shift+O"
-#~ msgstr "Output fra skakprogram    Alt+Shift+O"
-
-#~ msgid "Move History       Alt+Shift+H"
-#~ msgstr "Trækliste    Alt+Shift+H"
-
-#~ msgid "Evaluation Graph  Alt+Shift+E"
-#~ msgstr "Evalueringsgraf    Alt+Shift+E"
-
-#~ msgid "Game List            Alt+Shift+G"
-#~ msgstr "Partiliste    Alt+Shift+G"
-
-#~ msgid "Machine Black  Ctrl+B"
-#~ msgstr "Skakprogram har sort    Ctrl+B"
-
-#~ msgid "Edit Game         Ctrl+E"
-#~ msgstr "Redigér parti    Ctrl+E"
-
-#~ msgid "Edit Position      Ctrl+Shift+E"
-#~ msgstr "Redigér stilling    Ctrl+Shift+E"
-
-#~ msgid "Pause               Pause"
-#~ msgstr "Pause    Pause"
-
-#~ msgid "Accept             F3"
-#~ msgstr "Godkend    F3"
-
-#~ msgid "Decline            F4"
-#~ msgstr "Afvis    F4"
-
-#~ msgid "Rematch           F12"
-#~ msgstr "Ny match    F12"
-
-#~ msgid "Draw                F6"
-#~ msgstr "Remis    F6"
-
-#~ msgid "Adjourn            F7"
-#~ msgstr "Udsæt partiet    F7"
-
-#~ msgid "Abort                F8"
-#~ msgstr "Annullér partiet   F8"
-
-#~ msgid "Resign              F9"
-#~ msgstr "Opgiv    F9"
-
-#~ msgid "Move Now     Ctrl+M"
-#~ msgstr "Træk nu    Ctrl+M"
-
-#~ msgid "Time Control ...       Alt+Shift+T"
-#~ msgstr "Betænkningstid ...    Alt+Shift+T"
-
-#~ msgid "Always Queen        Ctrl+Shift+Q"
-#~ msgstr "Altid dronning    Ctrl+Shift+Q"
-
-#~ msgid "Animate Moving      Ctrl+Shift+A"
-#~ msgstr "Animeret flytning    Ctrl+Shift+A"
-
-#~ msgid "Auto Flag               Ctrl+Shift+F"
-#~ msgstr "Automatisk tidsoverskridelse    Ctrl+Shift+F"
-
-#~ msgid "Ponder Next Move  Ctrl+Shift+P"
-#~ msgstr "Spekulér på næste træk    Ctrl+Shift+P"
-
-#~ msgid "Hide Thinking        Ctrl+Shift+H"
-#~ msgstr "Skjul tænkning    Ctrl+Shift+H"
-
-#~ msgid "Test Legality          Ctrl+Shift+L"
-#~ msgstr "Test lovlighed    Ctrl+Shift+L"
-
-#~ msgid ""
-#~ "WARNING: variants with un-orthodox\n"
-#~ "pieces only have built-in bitmaps\n"
-#~ "for -boardSize middling, bulky and\n"
-#~ "petite, and substitute king or amazon\n"
-#~ "for missing bitmaps. (See manual.)"
-#~ msgstr ""
-#~ "ADVARSEL: varianter med uortodokse\n"
-#~ "brikker har kun indbyggede bitmaps\n"
-#~ "for -boardSize middling, bulky og\n"
-#~ "petite, og bruger konge eller amazone\n"
-#~ "for manglende bitmaps. (Se manualen.)"
-
-#~ msgid "Directory with Pixmap Pieces:"
-#~ msgstr "Katalog med pixmap-brikker:"
-
-#~ msgid "Error expanding path name \"%s\"\n"
-#~ msgstr "Fejl ved udfoldning af stinavn \"%s\"\n"
-
-#~ msgid ""
-#~ "XBoard square size (hint): %d\n"
-#~ "%s fulldir:%s:\n"
-#~ msgstr ""
-#~ "XBoard feltstørrelse (tip): %d\n"
-#~ "%s-fuldt katalog: %s:\n"
-
-#~ msgid "Closest %s size: %d\n"
-#~ msgstr "Nærmeste %s størrelse: %d\n"
-
-#~ msgid "%s: error loading XIM!\n"
-#~ msgstr "%s: fejl ved indlæsning af XIM!\n"
-
-#~ msgid "XIM pieces cannot be used in monochrome mode"
-#~ msgstr "XIM-brikker kan ikke bruges i monokrom-tilstand"
-
-#~ msgid ""
-#~ "\n"
-#~ "Loading XIMs...\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Indlæser XIM'er ...\n"
-
-#~ msgid "(File:%s:) "
-#~ msgstr "(Fil:%s:) "
-
-#~ msgid "light square "
-#~ msgstr "lyst felt "
-
-#~ msgid "dark square "
-#~ msgstr "mørkt felt "
-
-#~ msgid "Done.\n"
-#~ msgstr "Udført.\n"
-
-#~ msgid "XPM pieces cannot be used in monochrome mode"
-#~ msgstr "XPM-brikker kan ikke bruges i monokrom-tilstand"
-
-#~ msgid "No builtin XPM pieces of size %d\n"
-#~ msgstr "Der er ingen indbyggede XPM-brikker af størrelse %d\n"
-
-#~ msgid "Error %d loading XPM image \"%s\"\n"
-#~ msgstr "Error %d ved indlæsning af XPM-billede \"%s\"\n"
-
-#~ msgid ""
-#~ "\n"
-#~ "Loading XPMs...\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Indlæser XPM'er ...\n"
-
-#~ msgid "(Replace by File:%s:) "
-#~ msgstr "(Erstatter med fil: %s) "
-
-#~ msgid "Error %d loading XPM file \"%s\"\n"
-#~ msgstr "Error %d ved indlæsning af XPM-fil \"%s\"\n"
-
-#~ msgid "Can't open bitmap file %s"
-#~ msgstr "Kan ikke åbne bitmapfil %s"
-
-#~ msgid "Invalid bitmap in file %s"
-#~ msgstr "Ukorrekt bitmap i fil %s"
-
-#~ msgid "Ran out of memory reading bitmap file %s"
-#~ msgstr "Ikke nok hukommelse til at læse bitmapfil %s"
-
-#~ msgid "Unknown XReadBitmapFile error %d on file %s"
-#~ msgstr "Ukendt XReadBitmapFile-fejl %d på fil %s"
-
-#~ msgid "%s: %s...using built-in\n"
-#~ msgstr "%s: %s ... bruger indbygget\n"
-
-#~ msgid "%s: Bitmap %s is %dx%d, not %dx%d...using built-in\n"
-#~ msgstr "%s: Bitmap %s er %dx%d, ikke %dx%d ... bruger indbygget\n"
-
-#~ msgid "Filter on extensions:"
-#~ msgstr "Filter for filendelser:"
-
-#~ msgid "Pathname:"
-#~ msgstr "Stinavn:"
-
-#~ msgid "XsraSelFile: can't get current directory"
-#~ msgstr "XsraSelFile: Kan ikke hente det aktuelle katalog"
-
-#~ msgid "%s: titleWidget geometry error %d %d %d %d %d\n"
-#~ msgstr "%s: titleWidget-geometrifejl %d %d %d %d %d\n"
-
-#~ msgid "%s: messageWidget geometry error %d %d %d %d %d\n"
-#~ msgstr "%s: messageWidget-geometrifejl %d %d %d %d %d\n"
-
-#~ msgid "Drop"
-#~ msgstr "Placér"
-
-#~ msgid "could not open: "
-#~ msgstr "kunne ikke åbne: "
-
-#~ msgid "Can't open file"
-#~ msgstr "Kan ikke åbne fil"
-
-#~ msgid "Promotion"
-#~ msgstr "Bondeforvandling"
-
-#~ msgid "Promote to what?"
-#~ msgstr "Hvad skal bonden forvandles til?"
-
-#~ msgid "ok"
-#~ msgstr "o.k."
-
-#~ msgid "AskQuestionProc needed 4 parameters, got %d\n"
-#~ msgstr "AskQuestionProc skal have 4 parametre, men fik %d\n"
-
-#~ msgid "enter"
-#~ msgstr "udfør"
-
-#~ msgid "This feature is experimental"
-#~ msgstr "Denne funktion er eksperimental"
-
-#~ msgid "filtertext"
-#~ msgstr "filtertekst"
-
-#~ msgid "apply"
-#~ msgstr "anvend"
-
-#~ msgid "load"
-#~ msgstr "indlæs"
-
-#~ msgid "prev"
-#~ msgstr "forrige"
-
-#~ msgid "Second Engine"
-#~ msgstr "Andet skakprogram"
-
-#~ msgid "AnimateMove: piece %d hops from %d,%d to %d,%d \n"
-#~ msgstr "AnimateMove: brik %d hopper fra %d,%d til %d,%d\n"
-
-#~ msgid "AnimateMove: piece %d slides from %d,%d to %d,%d \n"
-#~ msgstr "AnimateMove: brik %d glider fra %d,%d til %d,%d\n"
-
-#~ msgid "Highlight Dragging (Show Move Targets)"
-#~ msgstr "Fremhæv flytning (vis trækmål)"
diff --git a/po/de.po b/po/de.po
deleted file mode 100644 (file)
index e33c548..0000000
--- a/po/de.po
+++ /dev/null
@@ -1,3121 +0,0 @@
-# XBoard -- a graphical chessboard for X
-# Copyright (C) 2012 Free Software Foundation, Inc.
-# This file is distributed under the same license as the XBoard package.
-# Arun Persaud <arun@nubati.net>, 2009,2012,2013
-# Roland Illig <roland.illig@gmx.de>, 2015-2016
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: xboard 4.9.0-pre2\n"
-"Report-Msgid-Bugs-To: bug-xboard@gnu.org\n"
-"POT-Creation-Date: 2016-04-03 13:44-0700\n"
-"PO-Revision-Date: 2016-04-06 22:35+0200\n"
-"Last-Translator: Roland Illig <roland.illig@gmx.de>\n"
-"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
-"Language: de\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 1.8.7\n"
-"X-Poedit-Basepath: .\n"
-"X-Poedit-SearchPath-0: .\n"
-
-#: args.h:851
-#, c-format
-msgid "%s in settings file\n"
-msgstr "%s in der Konfigurationsdatei\n"
-
-#: args.h:885
-#, c-format
-msgid "Bad integer value %s"
-msgstr "Falscher ganzzahliger Wert %s"
-
-#: args.h:991 args.h:1252
-#, c-format
-msgid "Unrecognized argument %s"
-msgstr "Nicht erkanntes Argument %s"
-
-#: args.h:1022
-#, c-format
-msgid "No value provided for argument %s"
-msgstr "Fehlender Wert für Argument %s"
-
-#: args.h:1082
-#, c-format
-msgid "Incomplete \\ escape in value for %s"
-msgstr "Unvollständiges \\-Escape im Wert von »%s«"
-
-#: args.h:1193
-#, c-format
-msgid "Failed to open indirection file %s"
-msgstr "Fehler beim Öffnen der Datei »%s«"
-
-#: args.h:1210
-#, c-format
-msgid "Unrecognized boolean argument value %s"
-msgstr "Unbekannter logischer Wert für Argument %s"
-
-#. TRANSLATORS: "first" is the first of possible two chess engines. It is inserted into strings
-#. such as "%s engine" / "%s chess program" / "%s machine" - all meaning the same thing
-#: backend.c:811
-msgid "first"
-msgstr "erstes"
-
-#. TRANSLATORS: "second" is the second of possible two chess engines. It is inserted into strings
-#. such as "%s engine" / "%s chess program" / "%s machine" - all meaning the same thing
-#: backend.c:814
-msgid "second"
-msgstr "zweites"
-
-#: backend.c:897
-#, c-format
-msgid "protocol version %d not supported"
-msgstr "Protokollversion %d nicht unterstützt"
-
-#: backend.c:1004
-msgid "You did not specify the engine executable"
-msgstr "Das Computerprogramm für das Schachprogramm wurde nicht angegeben"
-
-#: backend.c:1062
-#, c-format
-msgid "bad timeControl option %s"
-msgstr "falsche timeControl-Option %s"
-
-#: backend.c:1077
-#, c-format
-msgid "bad searchTime option %s"
-msgstr "falsche searchTime-Option %s"
-
-#: backend.c:1183
-#, c-format
-msgid "Variant %s supported only in ICS mode"
-msgstr "Variante %s wird nur im ICS-Modus unterstützt"
-
-#: backend.c:1201
-#, c-format
-msgid "Unknown variant name %s"
-msgstr "Unbekannte Variante mit Namen %s"
-
-#: backend.c:1456
-msgid "Starting chess program"
-msgstr "Schachprogramm wird gestartet"
-
-#: backend.c:1479
-msgid "Bad game file"
-msgstr "Fehler in Partiedatei"
-
-#: backend.c:1486
-msgid "Bad position file"
-msgstr "Fehler in Positionsdatei"
-
-#: backend.c:1500
-msgid "Pick new game"
-msgstr "Neues Spiel wählen"
-
-#: backend.c:1569
-msgid ""
-"You restarted an already completed tourney.\n"
-"One more cycle will now be added to it.\n"
-"Games commence in 10 sec."
-msgstr ""
-"Sie haben ein Turnier neu gestartet, das schon beendet war.\n"
-"Eine neue Runde wird hinzugefügt.\n"
-"Die Spiele beginnen in 10 Sekunden."
-
-#: backend.c:1576
-#, c-format
-msgid "All games in tourney '%s' are already played or playing"
-msgstr "Alle Spiele im Turnier »%s« sind entweder beendet oder werden gespielt"
-
-#: backend.c:1583
-msgid "Can't have a match with no chess programs"
-msgstr "Partie ohne Schachprogram ist nicht möglich"
-
-#: backend.c:1637
-#, c-format
-msgid "Could not open comm port %s"
-msgstr "Kommunikationsport %s konnte nicht geöffnet werden"
-
-#: backend.c:1640
-#, c-format
-msgid "Could not connect to host %s, port %s"
-msgstr "Verbindung zu Hostrechner %s, Portnummer %s konnte nicht hergestellt werden"
-
-#: backend.c:1696
-#, c-format
-msgid "Unknown initialMode %s"
-msgstr "Unbekannter initalMode %s"
-
-#: backend.c:1722
-msgid "AnalyzeFile mode requires a game file"
-msgstr "»Datei analysieren«-Modus benötigt eine Partiedatei"
-
-#: backend.c:1755
-msgid "Analysis mode requires a chess engine"
-msgstr "Analyse-Modus benötigt ein Schachprogramm"
-
-#: backend.c:1759
-msgid "Analysis mode does not work with ICS mode"
-msgstr "Analyse-Modus funktioniert nicht im ICS-Modus"
-
-#: backend.c:1770
-msgid "MachineWhite mode requires a chess engine"
-msgstr "»Schachprogramm Weiß«-Modus benötigt ein Schachprogramm"
-
-#: backend.c:1775
-msgid "MachineWhite mode does not work with ICS mode"
-msgstr "»Schachprogramm Weiß«-Modus funktioniert nicht im ICS-Modus"
-
-#: backend.c:1782
-msgid "MachineBlack mode requires a chess engine"
-msgstr "»Schachprogramm Schwarz«-Modus benötigt ein Schachprogramm"
-
-#: backend.c:1787
-msgid "MachineBlack mode does not work with ICS mode"
-msgstr "»Schachprogramm Schwarz«-Modus funktioniert nicht im ICS-Modus"
-
-#: backend.c:1794
-msgid "TwoMachines mode requires a chess engine"
-msgstr "»Zwei Schachprogramme«-Modus benötigt ein Schachprogramm"
-
-#: backend.c:1799
-msgid "TwoMachines mode does not work with ICS mode"
-msgstr "»Zwei Schachprogramme«-Modus funktioniert nicht im ICS-Modus"
-
-#: backend.c:1810
-msgid "Training mode requires a game file"
-msgstr "Trainieren-Modus benötigt eine Partiedatei"
-
-#: backend.c:1973 backend.c:2028 backend.c:2051 backend.c:2453
-msgid "Error writing to ICS"
-msgstr "Fehler beim Schreiben zum ICS"
-
-#: backend.c:1988
-msgid "Error reading from keyboard"
-msgstr "Fehler beim Lesen der Tastatur"
-
-#: backend.c:1991
-msgid "Got end of file from keyboard"
-msgstr "Ende-der-Datei von der Tastatur erhalten"
-
-#: backend.c:2299
-#, c-format
-msgid "Unknown wild type %d"
-msgstr "Unbekannte wild-Variante %d"
-
-#: backend.c:2370 usystem.c:317
-msgid "Error writing to display"
-msgstr "Fehler beim Schreiben auf dem Display"
-
-#. TRANSLATORS: to 'kibitz' is to send a message to all players and the game observers
-#: backend.c:3138
-#, c-format
-msgid "your opponent kibitzes: %s"
-msgstr "Ihr Gegner kibitzt: %s"
-
-#: backend.c:3677
-msgid "Error gathering move list: two headers"
-msgstr "Fehler beim Erstellen der Zugliste: zwei Dateiköpfe"
-
-#: backend.c:3724
-msgid "Error gathering move list: nested"
-msgstr "Fehler beim Erstellen der Zugliste: verschachtelt"
-
-#: backend.c:3828 backend.c:4254 backend.c:4458 backend.c:5017 backend.c:5021
-#: backend.c:7292 backend.c:13054 backend.c:14805 backend.c:14882
-#: backend.c:14928 backend.c:14934 backend.c:14939 backend.c:14944
-msgid "vs."
-msgstr "gegen"
-
-#: backend.c:3956
-msgid "Illegal move (rejected by ICS)"
-msgstr "Illegaler Zug (abgelehnt vom ICS)"
-
-#: backend.c:4302
-msgid "Connection closed by ICS"
-msgstr "Verbindung zum ICS beendet"
-
-#: backend.c:4304
-msgid "Error reading from ICS"
-msgstr "Fehler beim Lesen vom ICS"
-
-#: backend.c:4381
-#, c-format
-msgid ""
-"Failed to parse board string:\n"
-"\"%s\""
-msgstr ""
-"Konnte Schachbrettzeichenkette nicht parsen:\n"
-"»%s«"
-
-#: backend.c:4390 backend.c:10628
-msgid "Game too long; increase MAX_MOVES and recompile"
-msgstr "Partie zu lang; erhöhen Sie MAX_MOVES und kompilieren Sie das Programm neu"
-
-#: backend.c:4509
-msgid "Error gathering move list: extra board"
-msgstr "Fehler beim Erstellen der Zugliste: extra Schachbrett"
-
-#: backend.c:4941 backend.c:4963
-#, c-format
-msgid "Couldn't parse move \"%s\" from ICS"
-msgstr "Zug »%s« vom ICS konnte nicht geparst werden"
-
-#: backend.c:5228
-#, c-format
-msgid "say Internal error; bad moveType %d (%d,%d-%d,%d)"
-msgstr "Interner Fehler; falscher moveType %d (%d,%d-%d,%d)"
-
-#: backend.c:5299
-msgid "You cannot do this while you are playing or observing"
-msgstr "Solange Sie spielen oder einem Spiel zuschauen, ist das nicht möglich"
-
-#: backend.c:6359
-msgid "Recompile to support this BOARD_RANKS or BOARD_FILES!"
-msgstr "Kompilieren Sie das Programm erneut mit Unterstützung von BOARD_RANKS oder BOARD_FILES!"
-
-#: backend.c:6851
-msgid "You are playing Black"
-msgstr "Sie spielen Schwarz"
-
-#: backend.c:6860 backend.c:6888
-msgid "You are playing White"
-msgstr "Sie spielen Weiß"
-
-#: backend.c:6870 backend.c:6896 backend.c:7018 backend.c:7043 backend.c:7059
-#: backend.c:15645
-msgid "It is White's turn"
-msgstr "Weiß ist am Zug"
-
-#: backend.c:6874 backend.c:6900 backend.c:7026 backend.c:7049 backend.c:7081
-#: backend.c:15637
-msgid "It is Black's turn"
-msgstr "Schwarz ist am Zug"
-
-#: backend.c:6913
-msgid "Displayed position is not current"
-msgstr "Angezeigte Position ist nicht die aktuelle"
-
-#: backend.c:7116
-msgid "rights granted"
-msgstr "Rechte gewährt"
-
-#: backend.c:7116
-msgid "rights revoked"
-msgstr "Rechte verwährt"
-
-#: backend.c:7169
-msgid "Illegal move"
-msgstr "Ungültiger Zug"
-
-#: backend.c:7249
-msgid "End of game"
-msgstr "Ende des Spiels"
-
-#: backend.c:7252
-msgid "Incorrect move"
-msgstr "Ungültiger Zug"
-
-#: backend.c:7655 backend.c:7811
-msgid "Pull pawn backwards to under-promote"
-msgstr "Bauern zum Unterverwandeln rückwärts bewegen"
-
-#: backend.c:7772
-msgid "only marked squares are legal"
-msgstr "Nur markierte Felder sind erlaubt"
-
-#: backend.c:8093
-msgid "Swiss tourney finished"
-msgstr "Turnier im Schweizer System beendet"
-
-#: backend.c:8609
-msgid "could not load EGBB library"
-msgstr "EGBB-Bibliothek konnte nicht geladen werden"
-
-#: backend.c:8612
-msgid "wrong EGBB version"
-msgstr "Falsche EGBB-Version"
-
-#: backend.c:8725
-msgid "Invalid pairing from pairing engine"
-msgstr "Ungültige Paarungen vom Paarungsprogramm"
-
-#: backend.c:8892
-#, c-format
-msgid "Illegal move \"%s\" from %s machine"
-msgstr "Illegaler Zug »%s« vom Schachprogramm %s"
-
-#: backend.c:9179
-msgid "Bad FEN received from engine"
-msgstr "Schlechte FEN vom Schachprogramm erhalten"
-
-#: backend.c:9280
-msgid "Engine did not send setup for non-standard variant"
-msgstr "Schachprogramm hat die Startaufstellung für die Spielvariante nicht gesendet"
-
-#: backend.c:9358 backend.c:14667 backend.c:14735
-#, c-format
-msgid "%s does not support analysis"
-msgstr "%s unterstützt keine Analyse"
-
-#: backend.c:9424
-#, c-format
-msgid "Illegal move \"%s\" (rejected by %s chess program)"
-msgstr "Illegaler Zug »%s« (abgelehnt vom Schachprogram %s)"
-
-#: backend.c:9455
-#, c-format
-msgid "Failed to start %s chess program %s on %s: %s\n"
-msgstr "Konnte %s Schachprogram %s auf %s nicht starten: %s\n"
-
-#: backend.c:9476
-#, c-format
-msgid "Hint: %s"
-msgstr "Hinweis: %s"
-
-#: backend.c:9481
-#, c-format
-msgid ""
-"Illegal hint move \"%s\"\n"
-"from %s chess program"
-msgstr ""
-"Illegaler Zughinweis »%s«\n"
-"vom Schachprogramm %s"
-
-#: backend.c:9656
-msgid "Machine accepts your draw offer"
-msgstr "Das Schachprogramm akzeptiert Ihr Remisangebot"
-
-#: backend.c:9659
-msgid ""
-"Machine offers a draw.\n"
-"Select Action / Draw to accept."
-msgstr ""
-"Das Schachprogramm bietet Remis an.\n"
-"Wählen Sie Aktion/Remis, um anzunehmen."
-
-#. TRANSLATORS: PV = principal variation, the variation the chess engine thinks is the best for everyone
-#: backend.c:9777
-msgid "failed writing PV"
-msgstr "Schreiben des PV fehlgeschlagen"
-
-#: backend.c:10083
-#, c-format
-msgid "Ambiguous move in ICS output: \"%s\""
-msgstr "Nicht eindeutiger Zug in der ICS-Ausgabe: »%s«"
-
-#: backend.c:10093
-#, c-format
-msgid "Illegal move in ICS output: \"%s\""
-msgstr "Ungültiger Zug in der ICS-Ausgabe: »%s«"
-
-#: backend.c:10104
-msgid "Gap in move list"
-msgstr "Lücke in Zugliste"
-
-#: backend.c:10782
-#, c-format
-msgid "Variant %s not supported by %s"
-msgstr "Variante %s wird von %s nicht unterstützt"
-
-#: backend.c:10789
-#, c-format
-msgid ", but %s is"
-msgstr ", aber %s ist"
-
-#: backend.c:10945
-#, c-format
-msgid "Startup failure on '%s'"
-msgstr "Fehler beim Starten »%s«"
-
-#: backend.c:10976
-msgid "Waiting for first chess program"
-msgstr "Warte auf erstes Schachprogramm"
-
-#: backend.c:10981 backend.c:14953
-msgid "Waiting for second chess program"
-msgstr "Warte auf zweites Schachprogramm"
-
-#: backend.c:11030
-msgid "Could not write on tourney file"
-msgstr "Schreibzugriff auf Turnierdatei nicht möglich"
-
-#: backend.c:11104
-msgid ""
-"You cannot replace an engine while it is engaged!\n"
-"Terminate its game first."
-msgstr ""
-"Ersetzen eines Schachprogramms während es läuft nicht möglich!\n"
-"Beenden Sie das Spiel zuerst."
-
-#: backend.c:11118
-msgid "No engine with the name you gave is installed"
-msgstr "Ein Schachprogram mit dem angegebenen Namen ist nicht installiert"
-
-#: backend.c:11120
-msgid ""
-"First change an engine by editing the participants list\n"
-"of the Tournament Options dialog"
-msgstr ""
-"Ändern Sie ein Schachprogramm, indem Sie die Liste der Teilnehmner\n"
-"im Turnieroptionendialog editieren"
-
-#: backend.c:11121
-msgid "You can only change one engine at the time"
-msgstr "Sie können immer nur ein Schachprogramm ändern"
-
-#: backend.c:11136 backend.c:11285
-#, c-format
-msgid "No engine %s is installed"
-msgstr "Das Schachprogram %s ist nicht installiert"
-
-#: backend.c:11156
-msgid ""
-"You must supply a tournament file,\n"
-"for storing the tourney progress"
-msgstr ""
-"Sie müssen eine Turnierdatei zum Speichern\n"
-"der Turnierdaten angeben"
-
-#: backend.c:11166
-msgid "Not enough participants"
-msgstr "Nicht genügend Teilnehmer"
-
-#: backend.c:11369
-msgid "Bad tournament file"
-msgstr "Fehler in Turnierdatei"
-
-#: backend.c:11381
-msgid "Waiting for other game(s)"
-msgstr "Warte auf weitere Spiele"
-
-#: backend.c:11394
-msgid "No pairing engine specified"
-msgstr "Kein Paarungsprogram angegeben"
-
-#: backend.c:11879
-#, c-format
-msgid "Average solving time %4.2f sec (total time %4.2f sec) "
-msgstr "Durchschnittliche Lösungszeit %4.2f Sek (Gesamtzeit %4.2f Sek) "
-
-#: backend.c:11881
-#, c-format
-msgid "%d avoid-moves played "
-msgstr "%d Verhinderungszüge gespielt "
-
-#: backend.c:11883
-#, c-format
-msgid "Solved %d out of %d (%3.1f%%) "
-msgstr "%d von %d gelöst (%3.1f%%) "
-
-#: backend.c:11886
-#, c-format
-msgid "Match %s vs. %s: final score %d-%d-%d"
-msgstr "Match %s gegen %s: Endergebnis %d-%d-%d"
-
-#: backend.c:12363 backend.c:12399
-#, c-format
-msgid "Illegal move: %d.%s%s"
-msgstr "Unerlaubter Zug: %d.%s%s"
-
-#: backend.c:12388
-#, c-format
-msgid "Ambiguous move: %d.%s%s"
-msgstr "Mehrdeutiger Zug: %d.%s%s"
-
-#: backend.c:12442 backend.c:13495 backend.c:13695 backend.c:14065
-#, c-format
-msgid "Can't open \"%s\""
-msgstr "»%s« konnte nicht geöffnet werden"
-
-#: backend.c:12454 menus.c:118
-msgid "Cannot build game list"
-msgstr "Zugliste konnte nicht erstellt werden"
-
-#: backend.c:12539
-msgid "No more games in this message"
-msgstr "Keine weiteren Partien in dieser Nachricht"
-
-#: backend.c:12579
-msgid "No game has been loaded yet"
-msgstr "Noch keine Partie geladen"
-
-#: backend.c:12583 backend.c:13476 ngamelist.c:129
-msgid "Can't back up any further"
-msgstr "Kann nicht weiter zurückgehen"
-
-#: backend.c:13030
-msgid "Game number out of range"
-msgstr "Partienummer außerhalb des Bereichs"
-
-#: backend.c:13041
-msgid "Can't seek on game file"
-msgstr "Fehler beim Springen in der Partiedatei"
-
-#: backend.c:13099
-msgid "Game not found in file"
-msgstr "Spiel in Datei nicht gefunden"
-
-#: backend.c:13230 backend.c:13573
-msgid "Bad FEN position in file"
-msgstr "Ungültige FEN-Stellung in Datei"
-
-#: backend.c:13388
-msgid "No moves in game"
-msgstr "Keine Züge in dem Spiel"
-
-#: backend.c:13472
-msgid "No position has been loaded yet"
-msgstr "Noch keine Stellung geladen"
-
-#: backend.c:13533 backend.c:13544
-msgid "Can't seek on position file"
-msgstr "Fehler beim Springen in der Stellungsdatei"
-
-#: backend.c:13551 backend.c:13563
-msgid "Position not found in file"
-msgstr "Stellung in Datei nicht gefunden"
-
-#: backend.c:13610
-msgid "Black to play"
-msgstr "Schwarz am Zug"
-
-#: backend.c:13613
-msgid "White to play"
-msgstr "Weiß am Zug"
-
-#: backend.c:13700 backend.c:14070
-msgid "Waiting for access to save file"
-msgstr "Warte auf Zugriff zur Datei zum Speichern"
-
-#: backend.c:13702
-msgid "Saving game"
-msgstr "Spiel wird gespeichert"
-
-#: backend.c:13703
-msgid "Bad Seek"
-msgstr "Fehler beim Springen in der Datei"
-
-#: backend.c:14072
-msgid "Saving position"
-msgstr "Stellung wird gespeichert"
-
-#: backend.c:14198
-msgid ""
-"You have edited the game history.\n"
-"Use Reload Same Game and make your move again."
-msgstr ""
-"Sie haben die Partieentwicklung verändert.\n"
-"Benutzen Sie »Spiel erneut laden« und führen Sie ihren Zug erneut aus."
-
-#: backend.c:14203
-msgid ""
-"You have entered too many moves.\n"
-"Back up to the correct position and try again."
-msgstr ""
-"Sie haben zu viele Züge eingegeben.\n"
-"Gehen Sie zur richtigen Stellung zurück und versuchen Sie es erneut."
-
-#: backend.c:14208
-msgid ""
-"Displayed position is not current.\n"
-"Step forward to the correct position and try again."
-msgstr ""
-"Die angezeigte Stellung ist nicht die aktuelle.\n"
-"Gehen Sie vorwärts zur richtigen Stellung und versuchen Sie es erneut."
-
-#: backend.c:14255
-msgid "You have not made a move yet"
-msgstr "Sie haben noch keinen Zug gemacht"
-
-#: backend.c:14276
-msgid ""
-"The cmail message is not loaded.\n"
-"Use Reload CMail Message and make your move again."
-msgstr ""
-"Die CMail-Nachricht wurde noch nicht geladen.\n"
-"Benutzen sie »CMail Nachricht erneut laden« und führen Sie ihren Zug erneut aus."
-
-#: backend.c:14281
-msgid "No unfinished games"
-msgstr "Keine laufenden Partien"
-
-#: backend.c:14287
-#, c-format
-msgid ""
-"You have already mailed a move.\n"
-"Wait until a move arrives from your opponent.\n"
-"To resend the same move, type\n"
-"\"cmail -remail -game %s\"\n"
-"on the command line."
-msgstr ""
-"Sie haben ihren Zug schon verschickt.\n"
-"Warten Sie bis der Zug ihres Gegners ankommt.\n"
-"Um denselben Zug erneut zu versenden, tippen Sie\n"
-"»cmail -remail -game %s«\n"
-"in die Kommandozeile."
-
-#: backend.c:14302
-msgid "Failed to invoke cmail"
-msgstr "Fehler beim Aufruf von cmail"
-
-#: backend.c:14364
-#, c-format
-msgid "Waiting for reply from opponent\n"
-msgstr "Warte auf Antwort des Gegners\n"
-
-#: backend.c:14386
-#, c-format
-msgid "Still need to make move for game\n"
-msgstr "Sie müssen noch einen Zug für die Partie machen\n"
-
-#: backend.c:14390
-#, c-format
-msgid "Still need to make moves for both games\n"
-msgstr "Sie müssen noch Züge für beide Partien machen\n"
-
-#: backend.c:14394
-#, c-format
-msgid "Still need to make moves for all %d games\n"
-msgstr "Sie müssen noch Züge für alle %d Partien machen\n"
-
-#: backend.c:14401
-#, c-format
-msgid "Still need to make a move for game %s\n"
-msgstr "Sie müssen noch einen Zug für Partie %s machen\n"
-
-#: backend.c:14407
-#, c-format
-msgid "No unfinished games\n"
-msgstr "Keine laufenden Partien\n"
-
-#: backend.c:14409
-#, c-format
-msgid "Ready to send mail\n"
-msgstr "Bereit zum Versenden der Mail\n"
-
-#: backend.c:14414
-#, c-format
-msgid "Still need to make moves for games %s\n"
-msgstr "Sie müssen noch Züge für Partie %s machen\n"
-
-#: backend.c:14617
-msgid "Edit comment"
-msgstr "Kommentar bearbeiten"
-
-#: backend.c:14619
-#, c-format
-msgid "Edit comment on %d.%s%s"
-msgstr "Kommentar für %d.%s%s bearbeiten"
-
-#: backend.c:14674
-#, c-format
-msgid "You are not observing a game"
-msgstr "Sie schauen keiner Partie zu"
-
-#: backend.c:14785
-msgid "It is not White's turn"
-msgstr "Weiß ist nicht am Zug"
-
-#: backend.c:14866
-msgid "It is not Black's turn"
-msgstr "Schwarz ist nicht am Zug"
-
-#: backend.c:14974
-#, c-format
-msgid "Starting %s chess program"
-msgstr "Schachprogramm %s wird gestartet"
-
-#: backend.c:15002 backend.c:16189
-msgid ""
-"Wait until your turn,\n"
-"or select 'Move Now'."
-msgstr ""
-"Warten Sie, bis Sie am Zug sind,\n"
-"oder wählen Sie »Jetzt ziehen«."
-
-#: backend.c:15145
-msgid "Training mode off"
-msgstr "Trainier-Modus aus"
-
-#: backend.c:15153
-msgid "Training mode on"
-msgstr "Trainier-Modus ein"
-
-#: backend.c:15156
-msgid "Already at end of game"
-msgstr "Schon am Ende der Partie"
-
-#: backend.c:15246
-msgid "Warning: You are still playing a game"
-msgstr "Warnung: Sie spielen noch eine Partie"
-
-#: backend.c:15249
-msgid "Warning: You are still observing a game"
-msgstr "Warnung: Sie schauen noch einer Partie zu"
-
-#: backend.c:15252
-msgid "Warning: You are still examining a game"
-msgstr "Warnung: Sie untersuchen noch eine Partie"
-
-#: backend.c:15322
-msgid "Click clock to clear board"
-msgstr "Klicke auf eine Uhr, um das Brett zu leeren"
-
-#: backend.c:15332
-msgid "Close ICS engine analyze..."
-msgstr "Schließe ICS Programmanalyse…"
-
-#: backend.c:15662
-msgid "That square is occupied"
-msgstr "Dieses Feld ist besetzt"
-
-#: backend.c:15686 backend.c:15712
-msgid "There is no pending offer on this move"
-msgstr "Es liegt kein unbeantwortes Angebot für diesen Zug vor"
-
-#: backend.c:15748 backend.c:15759
-msgid "Your opponent is not out of time"
-msgstr "Ihr Gegner hat die Zeit noch nicht überschritten"
-
-#: backend.c:15827
-msgid "You must make your move before offering a draw"
-msgstr "Sie müssen erst ziehen, bevor Sie Remis anbieten können"
-
-#: backend.c:16171
-msgid "You are not examining a game"
-msgstr "Sie untersuchen keine Partie"
-
-#: backend.c:16175
-msgid "You can't revert while pausing"
-msgstr "Sie können nicht zurücknehmen, solange die Partie pausiert"
-
-#: backend.c:16229 backend.c:16236
-msgid "It is your turn"
-msgstr "Sie sind am Zug"
-
-#: backend.c:16287 backend.c:16294 backend.c:16380 backend.c:16387
-msgid "Wait until your turn."
-msgstr "Warten Sie, bis Sie am Zug sind."
-
-#: backend.c:16299
-msgid "No hint available"
-msgstr "Kein Hinweis erhältlich"
-
-#: backend.c:16314 backend.c:16345 ngamelist.c:365
-msgid "Game list not loaded or empty"
-msgstr "Noch keine Partie geladen"
-
-#: backend.c:16352
-msgid "Book file exists! Try again for overwrite."
-msgstr "Buchdatei existiert bereits! Versuchen Sie es erneut zum Überschreiben."
-
-#: backend.c:16833
-#, c-format
-msgid "Error writing to %s chess program"
-msgstr "Fehler beim Schreiben zum Schachprogramm %s"
-
-#: backend.c:16836 backend.c:16867
-#, c-format
-msgid "%s program exits in draw position (%s)"
-msgstr "%s Schachprogramm beendet in Remisstellung (%s)"
-
-#: backend.c:16862
-#, c-format
-msgid "Error: %s chess program (%s) exited unexpectedly"
-msgstr "Fehler: %s Schachprogramm (%s) unerwartet beendet"
-
-#: backend.c:16880
-#, c-format
-msgid "Error reading from %s chess program (%s)"
-msgstr "Fehler beim Lesen vom Schachprogramm %s (%s)"
-
-#: backend.c:17312
-#, c-format
-msgid "%s engine has too many options\n"
-msgstr "Schachprogramm %s hat zu viele Optionen\n"
-
-#: backend.c:17468
-msgid "Displayed move is not current"
-msgstr "Der angezeigte Zug ist nicht der aktuelle"
-
-#: backend.c:17477
-msgid "Could not parse move"
-msgstr "Konnte Zug nicht parsen"
-
-#: backend.c:17602 backend.c:17624
-msgid "Both flags fell"
-msgstr "Beide Plättchen sind gefallen"
-
-#: backend.c:17604
-msgid "White's flag fell"
-msgstr "Das weiße Plättchen ist gefallen"
-
-#: backend.c:17626
-msgid "Black's flag fell"
-msgstr "Das schwarze Plättchen ist gefallen"
-
-#: backend.c:17757
-msgid "Clock adjustment not allowed in auto-flag mode"
-msgstr "Veränderungen an der Uhr sind im »Auto-flag«-Modus nicht erlaubt"
-
-#: backend.c:18719
-msgid "Bad FEN position in clipboard"
-msgstr "Fehlerhafte FEN-Stellung in der Zwischenablage"
-
-#: book.c:598 book.c:874
-msgid "Polyglot book not valid"
-msgstr "Polyglotbuch nicht zulässig"
-
-#: book.c:722
-msgid "Book Fault"
-msgstr "Buchfehler"
-
-#: book.c:877
-msgid "Hash keys are different"
-msgstr "Hashschlüssel sind verschieden"
-
-#: book.c:1053
-msgid "Could not create book"
-msgstr "Buch konnte nicht erzeugt werden"
-
-#: dialogs.c:286
-msgid "Tournament file:          "
-msgstr "Turnierdatei:          "
-
-#: dialogs.c:287
-msgid "For concurrent playing of tourney with multiple XBoards:"
-msgstr "Zum gleichzeitigen Durchführen eines Turniers mit mehreren XBoards:"
-
-#: dialogs.c:288
-msgid "Sync after round"
-msgstr "Sync. nach der Runde"
-
-#: dialogs.c:289
-msgid "Sync after cycle"
-msgstr "Sync. nach Zyklus"
-
-#: dialogs.c:290
-msgid "Tourney participants:"
-msgstr "Tunierteilnehmer:"
-
-#: dialogs.c:291
-msgid "Select Engine:"
-msgstr "Schachprogramm auswählen:"
-
-#: dialogs.c:299
-msgid "Tourney type (0 = round-robin, 1 = gauntlet):"
-msgstr "Turniertyp (0 = round-robin, 1 = gauntlet):"
-
-#: dialogs.c:300
-msgid "Number of tourney cycles (or Swiss rounds):"
-msgstr "Anzahl der Turnierrunden:"
-
-#: dialogs.c:301
-msgid "Default Number of Games in Match (or Pairing):"
-msgstr "Standardanzahl der Spiele pro Match (oder Paarung):"
-
-#: dialogs.c:302
-msgid "Pause between Match Games (msec):"
-msgstr "Pause zwischen Tournierspielen (msek):"
-
-#: dialogs.c:303
-msgid "Save Tourney Games on:"
-msgstr "Turnierspiele speichern auf:"
-
-#: dialogs.c:304
-msgid "Game File with Opening Lines:"
-msgstr "Spieldatei mit Eröffnungen:"
-
-#: dialogs.c:305
-msgid "Game Number (-1 or -2 = Auto-Increment):"
-msgstr "Spielnummer (-1 oder -2 bedeutet automatische Zählung):"
-
-#: dialogs.c:306
-msgid "File with Start Positions:"
-msgstr "Datei mit Startstellung:"
-
-#: dialogs.c:307
-msgid "Position Number (-1 or -2 = Auto-Increment):"
-msgstr "Positionsnummer (-1 oder -2 bedeutet automatische Zählung):"
-
-#: dialogs.c:308
-msgid "Rewind Index after this many Games (0 = never):"
-msgstr "Index nach so vielen Spielen zurücksetzen (0 = niemals):"
-
-#: dialogs.c:309
-msgid "Disable own engine books by default"
-msgstr "Eigene Eröffnungsbücher standardmäßig deaktivieren"
-
-#: dialogs.c:310 dialogs.c:1840
-msgid "Time Control"
-msgstr "Zeitkontrolle"
-
-#: dialogs.c:311
-msgid "Common Engine"
-msgstr "Allgemeines Schachprogramm"
-
-#: dialogs.c:312 dialogs.c:446
-msgid "General Options"
-msgstr "Allgemeine Einstellungen"
-
-#: dialogs.c:313
-msgid "Continue Later"
-msgstr "Später fortsetzen"
-
-#: dialogs.c:314
-msgid "Replace Engine"
-msgstr "Schachprogramm ersetzen"
-
-#: dialogs.c:315
-msgid "Upgrade Engine"
-msgstr "Schachprogramm aktualisieren"
-
-#: dialogs.c:316
-msgid "Clone Tourney"
-msgstr "Turnier klonen"
-
-#: dialogs.c:356
-msgid "First you must specify an existing tourney file to clone"
-msgstr "Bitte geben Sie zuerst eine existierende Turnierdatei an, die geklont werden soll"
-
-#: dialogs.c:372 dialogs.c:1549
-msgid "# no engines are installed"
-msgstr "# keine Schachprogramme installiert"
-
-#: dialogs.c:380
-msgid "Internal error: PARTICIPANTS set wrong"
-msgstr "Interner Fehler: PARTICIPANTS falsch"
-
-#: dialogs.c:388
-msgid "Tournament Options"
-msgstr "Turniereinstellungen"
-
-#: dialogs.c:407
-msgid "Absolute Analysis Scores"
-msgstr "Absolute Analysepunkte"
-
-#: dialogs.c:408
-msgid "Almost Always Queen (Detour Under-Promote)"
-msgstr "Fast immer Dame (Unterverwandlung vermeiden)"
-
-#: dialogs.c:409 menus.c:729
-msgid "Animate Dragging"
-msgstr "Ziehen animieren"
-
-#: dialogs.c:410 menus.c:730
-msgid "Animate Moving"
-msgstr "Ziehen animieren"
-
-#: dialogs.c:411 menus.c:731
-msgid "Auto Flag"
-msgstr "Zeit automatisch reklamieren"
-
-#: dialogs.c:412 menus.c:732
-msgid "Auto Flip View"
-msgstr "Brett automatisch drehen"
-
-#: dialogs.c:413 menus.c:733
-msgid "Blindfold"
-msgstr "Blindschach"
-
-#. TRANSLATORS: the drop menu is used to drop a piece, e.g. during bughouse or editing a position
-#: dialogs.c:415
-msgid "Drop Menu"
-msgstr "Loslassmenü"
-
-#: dialogs.c:416
-msgid "Enable Variation Trees"
-msgstr "Erlaube Varianten"
-
-#: dialogs.c:417
-msgid "Headers in Engine Output Window"
-msgstr "Kopfzeilen im Schachprogramm-Ausgabefenster"
-
-#: dialogs.c:418
-msgid "Hide Thinking from Human"
-msgstr "Nachdenken vor dem Menschen verstecken"
-
-#: dialogs.c:419 menus.c:738
-msgid "Highlight Last Move"
-msgstr "Letzten Zug hervorheben"
-
-#: dialogs.c:420
-msgid "Highlight with Arrow"
-msgstr "Hervorhebung mit Pfeil"
-
-#: dialogs.c:421 menus.c:741
-msgid "One-Click Moving"
-msgstr "Ein-Klick Züge"
-
-#: dialogs.c:422
-msgid "Periodic Updates (in Analysis Mode)"
-msgstr "Regelmäßige Aktualisierung (im Analysemodus)"
-
-#: dialogs.c:424
-msgid "Play Move(s) of Clicked PV (Analysis)"
-msgstr "Züge der angeklickten Variante spielen (Analyse)"
-
-#: dialogs.c:425 dialogs.c:626 menus.c:743
-msgid "Ponder Next Move"
-msgstr "Nächsten Zug abwägen"
-
-#: dialogs.c:426
-msgid "Popup Exit Messages"
-msgstr "Popup Nachricht beim Beenden"
-
-#: dialogs.c:427 menus.c:745
-msgid "Popup Move Errors"
-msgstr "Dialogfenster für Zugfehler"
-
-#: dialogs.c:428
-msgid "Scores in Move List"
-msgstr "Bewertung in Zugliste"
-
-#: dialogs.c:429
-msgid "Show Coordinates"
-msgstr "Zeige Koordinaten"
-
-#: dialogs.c:430
-msgid "Show Target Squares"
-msgstr "Zeige Zielfeld"
-
-#: dialogs.c:431
-msgid "Sticky Windows"
-msgstr "Haftende Fenster"
-
-#: dialogs.c:432 menus.c:748
-msgid "Test Legality"
-msgstr "Auf erlaubte Züge prüfen"
-
-#: dialogs.c:433
-msgid "Top-Level Dialogs"
-msgstr "Haupt-Dialoge"
-
-#: dialogs.c:434
-msgid "Flash Moves (0 = no flashing):"
-msgstr "Züge blinken lassen (0 = nicht blinken):"
-
-#: dialogs.c:435
-msgid "Flash Rate (high = fast):"
-msgstr "Blinkgeschwindigkeit (hoch = schnell):"
-
-#: dialogs.c:436
-msgid "Animation Speed (high = slow):"
-msgstr "Animationsgeschwindigkeit (hoch = langsam):"
-
-#: dialogs.c:437
-msgid "Zoom factor in Evaluation Graph:"
-msgstr "Vergrößerungsfaktor in Auswertungsgraph:"
-
-#: dialogs.c:457
-msgid "Normal"
-msgstr "Normal"
-
-#: dialogs.c:458
-msgid "Makruk"
-msgstr "Makruk"
-
-#: dialogs.c:459
-msgid "FRC"
-msgstr "Schach960"
-
-#: dialogs.c:460
-msgid "Shatranj"
-msgstr "Schatrandsch"
-
-#: dialogs.c:461
-msgid "Wild castle"
-msgstr "Wilde Rochade"
-
-#: dialogs.c:462
-msgid "Knightmate"
-msgstr "Springermatt"
-
-#: dialogs.c:463
-msgid "No castle"
-msgstr "Keine Rochade"
-
-#: dialogs.c:464
-msgid "Cylinder *"
-msgstr "Zylinder *"
-
-#: dialogs.c:465
-msgid "3-checks"
-msgstr "3-fach-Schach"
-
-#: dialogs.c:466
-msgid "berolina *"
-msgstr "Berolina *"
-
-#: dialogs.c:467
-msgid "atomic"
-msgstr "Atomschach"
-
-#: dialogs.c:468
-msgid "two kings"
-msgstr "Zwei Könige"
-
-#: dialogs.c:469
-msgid " "
-msgstr " "
-
-#: dialogs.c:470
-msgid "Spartan"
-msgstr "Sparta-Schach"
-
-#: dialogs.c:471
-msgid "Board size ( -1 = default for selected variant):"
-msgstr "Brettgröße (-1 = default für gewählte Variante):"
-
-#: dialogs.c:472
-msgid "Number of Board Ranks:"
-msgstr "Anzahl der Reihen:"
-
-#: dialogs.c:473
-msgid "Number of Board Files:"
-msgstr "Anzahl der Linien:"
-
-#: dialogs.c:474
-msgid "Holdings Size:"
-msgstr "Vorrats-Größe:"
-
-#: dialogs.c:476
-msgid ""
-"Variants marked with * can only be played\n"
-"with legality testing off."
-msgstr ""
-"Varianten, die mit * markiert sind, können nur gespielt\n"
-"werden, wenn die Prüfung auf erlaubte Züge ausgeschaltet ist."
-
-#: dialogs.c:478
-msgid "ASEAN"
-msgstr "ASEAN-Schach"
-
-#: dialogs.c:479
-msgid "Great Shatranj (10x8)"
-msgstr "Groß-Schatrandsch (10×8)"
-
-#: dialogs.c:480
-msgid "Seirawan"
-msgstr "Seiwaran"
-
-#: dialogs.c:481
-msgid "Falcon (10x8)"
-msgstr "Falken-Schach"
-
-#: dialogs.c:482
-msgid "Superchess"
-msgstr "Superschach"
-
-#: dialogs.c:483
-msgid "Capablanca (10x8)"
-msgstr "Capablanca (10×8)"
-
-#: dialogs.c:484
-msgid "Crazyhouse"
-msgstr "Crazyhouse"
-
-#: dialogs.c:485
-msgid "Gothic (10x8)"
-msgstr "Gothic (10×8)"
-
-#: dialogs.c:486
-msgid "Bughouse"
-msgstr "Bughouse"
-
-#: dialogs.c:487
-msgid "Janus (10x8)"
-msgstr "Janusschach (10×8)"
-
-#: dialogs.c:488
-msgid "Suicide"
-msgstr "Räuberschach"
-
-#: dialogs.c:489
-msgid "CRC (10x8)"
-msgstr "CRC (10×8)"
-
-#: dialogs.c:490
-msgid "give-away"
-msgstr "Verzichten"
-
-#: dialogs.c:491
-msgid "grand (10x10)"
-msgstr "groß (10×10)"
-
-#: dialogs.c:492
-msgid "losers"
-msgstr "Losers"
-
-#: dialogs.c:493
-msgid "shogi (9x9)"
-msgstr "Shogi (9×9)"
-
-#: dialogs.c:494
-msgid "fairy"
-msgstr "Feenschach"
-
-#: dialogs.c:495
-msgid "xiangqi (9x10)"
-msgstr "Xiangqi (9×10)"
-
-#: dialogs.c:496
-msgid "mighty lion"
-msgstr "Mächtiger Löwe"
-
-#: dialogs.c:497
-msgid "courier (12x8)"
-msgstr "Kurier (12×8)"
-
-#: dialogs.c:498
-msgid "elven chess (10x10)"
-msgstr "Elfenschach (10×10)"
-
-#: dialogs.c:499
-msgid "chu shogi (12x12)"
-msgstr "Chu-Shogi (12×12)"
-
-#: dialogs.c:543
-#, c-format
-msgid "Warning: second engine (%s) does not support this!"
-msgstr "Warnung: zweites Schachprogramm (%s) unterstützt dies nicht!"
-
-#: dialogs.c:572
-#, c-format
-msgid "Only bughouse is not available in viewer mode."
-msgstr "Nur Bughouse ist nicht im Partieansicht-Modus verfügbar."
-
-#: dialogs.c:573
-#, c-format
-msgid ""
-"All variants not supported by the first engine\n"
-"(currently %s) are disabled."
-msgstr ""
-"Alle Varianten, die das erste Schachprogramm nicht kann\n"
-"(derzeit %s) sind deaktiviert."
-
-#: dialogs.c:595
-msgid "New Variant"
-msgstr "Neue Variante"
-
-#: dialogs.c:627
-msgid "Maximum Number of CPUs per Engine:"
-msgstr "Maximal Anzahl der CPUs pro Schachprogram:"
-
-#: dialogs.c:628
-msgid "Polygot Directory:"
-msgstr "Polyglotverzeichnis:"
-
-#: dialogs.c:629
-msgid "Hash-Table Size (MB):"
-msgstr "Größe der Hashtabelle (MB):"
-
-#: dialogs.c:630
-msgid "EGTB Path:"
-msgstr "EGTB-Pfad:"
-
-#: dialogs.c:631
-msgid "EGTB Cache Size (MB):"
-msgstr "EGTB-Cachegröße (MB):"
-
-#: dialogs.c:632
-msgid "Use GUI Book"
-msgstr "GUI-Buch benutzen"
-
-#: dialogs.c:633
-msgid "Opening-Book Filename:"
-msgstr "Dateiname des Eröffnungsbuches:"
-
-#: dialogs.c:634
-msgid "Book Depth (moves):"
-msgstr "Buchtiefe (Züge):"
-
-#: dialogs.c:635
-msgid "Book Variety (0) vs. Strength (100):"
-msgstr "Buchvielfalt (0) gegenüber Spielstärke (100):"
-
-#: dialogs.c:636
-msgid "Engine #1 Has Own Book"
-msgstr "Engine #1 hat eigenes Buch"
-
-#: dialogs.c:637
-msgid "Engine #2 Has Own Book          "
-msgstr "Engine #2 hat eigenes Buch"
-
-#: dialogs.c:648
-msgid "Common Engine Settings"
-msgstr "Allgemeine Schachprogramm-Einstellungen"
-
-#: dialogs.c:654
-msgid "Detect all Mates"
-msgstr "Alle Mattbilder erkennen"
-
-#: dialogs.c:655
-msgid "Verify Engine Result Claims"
-msgstr "Partieergebnisse des Schachprogramms kontrollieren"
-
-#: dialogs.c:656
-msgid "Draw if Insufficient Mating Material"
-msgstr "Remis bei zuwenig Material zum Mattsetzen"
-
-#: dialogs.c:657
-msgid "Adjudicate Trivial Draws (3-Move Delay)"
-msgstr "Triviale Remis entscheiden (nach 3 Zügen)"
-
-#: dialogs.c:658
-msgid "N-Move Rule:"
-msgstr "N-Züge Regel:"
-
-#: dialogs.c:659
-msgid "N-fold Repeats:"
-msgstr "N-fache Stellungswiederholung:"
-
-#: dialogs.c:660
-msgid "Draw after N Moves Total:"
-msgstr "Remis nach N Zügen (insgesamt):"
-
-#: dialogs.c:661
-msgid "Win / Loss Threshold:"
-msgstr "Gewinn/Verlust Grenzwert:"
-
-#: dialogs.c:662
-msgid "Negate Score of Engine #1"
-msgstr "Negiere Bewertung des 1. Schachprogramms"
-
-#: dialogs.c:663
-msgid "Negate Score of Engine #2"
-msgstr "Negiere Bewertung des 2. Schachprogramms"
-
-#: dialogs.c:670
-msgid "Adjudicate non-ICS Games"
-msgstr "Nicht-ICS-Spiele entscheiden"
-
-#: dialogs.c:683
-msgid "Auto-Kibitz"
-msgstr "Auto-Kibitz"
-
-#: dialogs.c:684
-msgid "Auto-Comment"
-msgstr "Automatische Kommentare"
-
-#: dialogs.c:685
-msgid "Auto-Observe"
-msgstr "Automatisch Beobachten"
-
-#: dialogs.c:686
-msgid "Auto-Raise Board"
-msgstr "Automatisch das Brett in den Vordergrung bringen"
-
-#: dialogs.c:687
-msgid "Auto-Create Logon Script"
-msgstr "Automatisch Login-Skript erzeugen"
-
-#: dialogs.c:688
-msgid "Background Observe while Playing"
-msgstr "Beobachte im Hintegrund während einer Partie"
-
-#: dialogs.c:689
-msgid "Dual Board for Background-Observed Game"
-msgstr "Zweites Brett für beobachtetes Spiel"
-
-#: dialogs.c:690
-msgid "Get Move List"
-msgstr "Zugliste abholen"
-
-#: dialogs.c:691
-msgid "Quiet Play"
-msgstr "Ruhiges Spiel"
-
-#: dialogs.c:692
-msgid "Seek Graph"
-msgstr "Suchgraph"
-
-#: dialogs.c:693
-msgid "Auto-Refresh Seek Graph"
-msgstr "Suchgraph automatisch aktualisieren"
-
-#: dialogs.c:694
-msgid "Auto-InputBox PopUp"
-msgstr "Automatisches Eingabefenster einblenden"
-
-#: dialogs.c:695
-msgid "Quit after game"
-msgstr "Nach der Partie beenden"
-
-#: dialogs.c:696
-msgid "Premove"
-msgstr "Vorzeitiges Ziehen"
-
-#: dialogs.c:697
-msgid "Premove for White"
-msgstr "Vorzeitiges Ziehen für Weiß"
-
-#: dialogs.c:698
-msgid "First White Move:"
-msgstr "Erster Zug von Weiß:"
-
-#: dialogs.c:699
-msgid "Premove for Black"
-msgstr "Vorzeitiges Ziehen für Schwarz"
-
-#: dialogs.c:700
-msgid "First Black Move:"
-msgstr "Erster Zug von Schwarz:"
-
-#: dialogs.c:702
-msgid "Alarm"
-msgstr "Alarm"
-
-#: dialogs.c:703
-msgid "Alarm Time (msec):"
-msgstr "Alarmzeit (msek):"
-
-#: dialogs.c:705
-msgid "Colorize Messages"
-msgstr "Nachrichten einfärben"
-
-#: dialogs.c:706
-msgid "Shout Text Colors:"
-msgstr "Textfarbe Ruf:"
-
-#: dialogs.c:707
-msgid "S-Shout Text Colors:"
-msgstr "Textfarbe S-Ruf:"
-
-#: dialogs.c:708
-msgid "Channel #1 Text Colors:"
-msgstr "Textfarbe Kanal #1:"
-
-#: dialogs.c:709
-msgid "Other Channel Text Colors:"
-msgstr "Textfarbe andere Kanäle:"
-
-#: dialogs.c:710
-msgid "Kibitz Text Colors:"
-msgstr "Textfarbe Kibitz:"
-
-#: dialogs.c:711
-msgid "Tell Text Colors:"
-msgstr "Textfarbe Mitteilung:"
-
-#: dialogs.c:712
-msgid "Challenge Text Colors:"
-msgstr "Textfarbe Herausforderung:"
-
-#: dialogs.c:713
-msgid "Request Text Colors:"
-msgstr "Textfarbe für Anfragen:"
-
-#: dialogs.c:714
-msgid "Seek Text Colors:"
-msgstr "Textfarbe Spielgesuch:"
-
-#: dialogs.c:715
-msgid "Other Text Colors:"
-msgstr "Andere Textfarben:"
-
-#: dialogs.c:722
-msgid "ICS Options"
-msgstr "ICS Optionen"
-
-#: dialogs.c:727
-msgid "Exact position match"
-msgstr "Exakte Stellungsübereinstimmung"
-
-#: dialogs.c:727
-msgid "Shown position is subset"
-msgstr "Die angezeigte Stellung ist eine Teilstellung"
-
-#: dialogs.c:727
-msgid "Same material with exactly same Pawn chain"
-msgstr "Gleiches Material mit genau gleicher Bauernstruktur"
-
-#: dialogs.c:728
-msgid "Same material"
-msgstr "Gleiches Material"
-
-#: dialogs.c:728
-msgid "Material range (top board half optional)"
-msgstr "Materialstärke (obere Bretthälfte ist optional)"
-
-#: dialogs.c:728
-msgid "Material difference (optional stuff balanced)"
-msgstr "Materialunterschied (optionale Figuren ausgeglichen)"
-
-#: dialogs.c:743
-msgid "Auto-Display Tags"
-msgstr "Markierungen automatisch anzeigen"
-
-#: dialogs.c:744
-msgid "Auto-Display Comment"
-msgstr "Kommentar automatisch anzeigen"
-
-#: dialogs.c:745
-msgid ""
-"Auto-Play speed of loaded games\n"
-"(0 = instant, -1 = off):"
-msgstr ""
-"Abspielgeschwindigkeit von geladenen Spielen\n"
-"(0 = sofort, -1 = aus):"
-
-#: dialogs.c:746
-msgid "Seconds per Move:"
-msgstr "Sekunden pro Zug:"
-
-#: dialogs.c:747
-msgid ""
-"\n"
-"options to use in game-viewer mode:"
-msgstr ""
-"\n"
-"Einstellungen für den Spielbetrachten-Modus:"
-
-#: dialogs.c:749
-msgid ""
-"\n"
-"Thresholds for position filtering in game list:"
-msgstr ""
-"\n"
-"Schwellwert für Stellungsfilter in Partieliste:"
-
-#: dialogs.c:750
-msgid "Elo of strongest player at least:"
-msgstr "Mind. Elo des stärksten Spielers:"
-
-#: dialogs.c:751
-msgid "Elo of weakest player at least:"
-msgstr "Mind. Elo des schwächsten Spielers:"
-
-#: dialogs.c:752
-msgid "No games before year:"
-msgstr "Nur Partien ab Jahr:"
-
-#: dialogs.c:753
-msgid "Minimum nr consecutive positions:"
-msgstr "Mindestanzahl von aufeinanderfolgenden Stellungen:"
-
-#: dialogs.c:755
-msgid "Search mode:"
-msgstr "Suchmodus:"
-
-#: dialogs.c:756
-msgid "Also match reversed colors"
-msgstr "Auch mit vertauschten Farben suchen"
-
-#: dialogs.c:757
-msgid "Also match left-right flipped position"
-msgstr "Auch gespiegelte Positionen suchen"
-
-#: dialogs.c:766
-msgid "Load Game Options"
-msgstr "Spieleinstellungen laden"
-
-#: dialogs.c:778
-msgid "Auto-Save Games"
-msgstr "Automatisch Partien speichern"
-
-#: dialogs.c:779
-msgid "Own Games Only"
-msgstr "Nur eigene Partien"
-
-#: dialogs.c:780
-msgid "Save Games on File:"
-msgstr "Partien speichern als Datei:"
-
-#: dialogs.c:781
-msgid "Save Final Positions on File:"
-msgstr "Speichere Endstellung in Datei:"
-
-#: dialogs.c:782
-msgid "PGN Event Header:"
-msgstr "PGN-Veranstaltungs-Kopfzeile:"
-
-#: dialogs.c:783
-msgid "Old Save Style (as opposed to PGN)"
-msgstr "Alter Speichermodus (im Gegensatz zu PGN)"
-
-#: dialogs.c:784
-msgid "Include Number Tag in tourney PGN"
-msgstr "Nummernkennzeichen in Turnier-PGN einschließen"
-
-#: dialogs.c:785
-msgid "Save Score/Depth Info in PGN"
-msgstr "Stellungsbewertung/Rechentiefe in PGN speichern"
-
-#: dialogs.c:786
-msgid "Save Out-of-Book Info in PGN           "
-msgstr "Eröffnungsbuch-Daten in PGN speichern"
-
-#: dialogs.c:793
-msgid "Save Game Options"
-msgstr "Spieleinstellungen speichern"
-
-#: dialogs.c:802
-msgid "No Sound"
-msgstr "Kein Ton"
-
-#: dialogs.c:803
-msgid "Default Beep"
-msgstr "Standard-Piepton"
-
-#: dialogs.c:804
-msgid "Above WAV File"
-msgstr "Obige WAV-Datei"
-
-#: dialogs.c:805
-msgid "Car Horn"
-msgstr "Hupe"
-
-#: dialogs.c:806
-msgid "Cymbal"
-msgstr "Becken"
-
-#: dialogs.c:807
-msgid "Ding"
-msgstr "Ding"
-
-#: dialogs.c:808
-msgid "Gong"
-msgstr "Gong"
-
-#: dialogs.c:809
-msgid "Laser"
-msgstr "Laser"
-
-#: dialogs.c:810
-msgid "Penalty"
-msgstr "Strafe"
-
-#: dialogs.c:811
-msgid "Phone"
-msgstr "Telefon"
-
-#: dialogs.c:812
-msgid "Pop"
-msgstr "Pop"
-
-#: dialogs.c:813
-msgid "Roar"
-msgstr "Fauchen"
-
-#: dialogs.c:814
-msgid "Slap"
-msgstr "Schlagbass"
-
-#: dialogs.c:815
-msgid "Wood Thunk"
-msgstr "Holzblock"
-
-#: dialogs.c:817
-msgid "User File"
-msgstr "Benutzerdatei"
-
-#: dialogs.c:840
-msgid "User WAV File:"
-msgstr "Eigene WAV-Datei:"
-
-#: dialogs.c:841
-msgid "Sound Program:"
-msgstr "Abspielprogramm:"
-
-#: dialogs.c:842
-msgid "Try-Out Sound:"
-msgstr "Teste Geräusch:"
-
-#: dialogs.c:843
-msgid "Play"
-msgstr "Spielen"
-
-#: dialogs.c:844
-msgid "Move:"
-msgstr "Zug:"
-
-#: dialogs.c:845
-msgid "Win:"
-msgstr "Gewonnen:"
-
-#: dialogs.c:846
-msgid "Lose:"
-msgstr "Verloren:"
-
-#: dialogs.c:847
-msgid "Draw:"
-msgstr "Remis:"
-
-#: dialogs.c:848
-msgid "Unfinished:"
-msgstr "Nicht beendet:"
-
-#: dialogs.c:849
-msgid "Alarm:"
-msgstr "Alarm:"
-
-#: dialogs.c:850
-msgid "Challenge:"
-msgstr "Herausforderung:"
-
-#: dialogs.c:852
-msgid "Sounds Directory:"
-msgstr "Klangverzeichnis:"
-
-#: dialogs.c:853
-msgid "Shout:"
-msgstr "Ruf:"
-
-#: dialogs.c:854
-msgid "S-Shout:"
-msgstr "S-Ruf:"
-
-#: dialogs.c:855
-msgid "Channel:"
-msgstr "Kanal:"
-
-#: dialogs.c:856
-msgid "Channel 1:"
-msgstr "Kanal 1:"
-
-#: dialogs.c:857
-msgid "Tell:"
-msgstr "Mitteilung:"
-
-#: dialogs.c:858
-msgid "Kibitz:"
-msgstr "Kibitz:"
-
-#: dialogs.c:859
-msgid "Request:"
-msgstr "Anfrage:"
-
-#: dialogs.c:860
-msgid "Lion roar:"
-msgstr "Löwenfauchen:"
-
-#: dialogs.c:861
-msgid "Seek:"
-msgstr "Gesuch:"
-
-#: dialogs.c:877
-msgid "Sound Options"
-msgstr "Klangeinstellungen"
-
-#: dialogs.c:893
-msgid "Selectable themes:"
-msgstr "Wählbare Designs:"
-
-#: dialogs.c:895
-msgid "New name for current theme:"
-msgstr "Neuer Name für aktuelles Design:"
-
-#: dialogs.c:898
-msgid "White Piece Color:"
-msgstr "Farbe weiße Figuren:"
-
-#. TRANSLATORS: R = single letter for the color red
-#: dialogs.c:901 dialogs.c:910 dialogs.c:916 dialogs.c:922 dialogs.c:928
-#: dialogs.c:934
-msgid "R"
-msgstr "R"
-
-#. TRANSLATORS: G = single letter for the color green
-#: dialogs.c:903 dialogs.c:911 dialogs.c:917 dialogs.c:923 dialogs.c:929
-#: dialogs.c:935
-msgid "G"
-msgstr "G"
-
-#. TRANSLATORS: B = single letter for the color blue
-#: dialogs.c:905 dialogs.c:912 dialogs.c:918 dialogs.c:924 dialogs.c:930
-#: dialogs.c:936 dialogs.c:1650 dialogs.c:1656 dialogs.c:1662 dialogs.c:1668
-#: dialogs.c:1674 dialogs.c:1680 dialogs.c:1686
-msgid "B"
-msgstr "B"
-
-#. TRANSLATORS: D = single letter to make a color darker
-#: dialogs.c:907 dialogs.c:913 dialogs.c:919 dialogs.c:925 dialogs.c:931
-#: dialogs.c:937
-msgid "D"
-msgstr "D"
-
-#: dialogs.c:908
-msgid "Black Piece Color:"
-msgstr "Farbe schwarze Figuren:"
-
-#: dialogs.c:914
-msgid "Light Square Color:"
-msgstr "Weißes Feld:"
-
-#: dialogs.c:920
-msgid "Dark Square Color:"
-msgstr "Schwarzes Feld:"
-
-#: dialogs.c:926
-msgid "Highlight Color:"
-msgstr "Farbe zum Hervorheben:"
-
-#: dialogs.c:932
-msgid "Premove Highlight Color:"
-msgstr "Farbe zum Hervorheben vorzeitiger Züge:"
-
-#: dialogs.c:938
-msgid "Flip Pieces Shogi Style        (Colored buttons restore default)"
-msgstr "Figuren im Shogi-Stil umdrehen (Farbige Schaltflächen setzen die Einstellung zurück)"
-
-#: dialogs.c:940
-msgid "Mono Mode"
-msgstr "Mono-Modus"
-
-#: dialogs.c:941
-msgid "Logo Size (0=off, requires restart):"
-msgstr "Logo-Größe (0=aus, benötigt Neustart):"
-
-#: dialogs.c:942
-msgid "Line Gap (-1 = default for board size):"
-msgstr "Linienabstand (-1 = Vorgabewert für Brettgröße):"
-
-#: dialogs.c:943
-msgid "Use Board Textures"
-msgstr "Benutze Bretttexturen"
-
-#: dialogs.c:944
-msgid "Light-Squares Texture File:"
-msgstr "Texturedatei für weiße Felder:"
-
-#: dialogs.c:945
-msgid "Dark-Squares Texture File:"
-msgstr "Texturdatei für schwarze Felder:"
-
-#: dialogs.c:946
-msgid "Use external piece bitmaps with their own colors"
-msgstr "Benutze externe Figurebitmaps mit deren Farben"
-
-#: dialogs.c:947
-msgid "Directory with Pieces Images:"
-msgstr "Verzeichnis mit Bildern für Figuren:"
-
-#: dialogs.c:1018
-msgid "# no themes are defined"
-msgstr "# keine Designs installiert"
-
-#: dialogs.c:1030
-msgid "Board Options"
-msgstr "Bretteinstellungen"
-
-#: dialogs.c:1101 menus.c:646
-msgid "ICS text menu"
-msgstr "ICS-Textmenü"
-
-#: dialogs.c:1130
-msgid "clear"
-msgstr "Leeren"
-
-#: dialogs.c:1131
-msgid "save changes"
-msgstr "Änderungen speichern"
-
-#: dialogs.c:1229
-msgid "add next move"
-msgstr "Nächsten Zug hinzufügen"
-
-#: dialogs.c:1230
-msgid "commit changes"
-msgstr "Änderungen speichern"
-
-#: dialogs.c:1253
-msgid "Edit book"
-msgstr "Buch editieren"
-
-#: dialogs.c:1270 dialogs.c:1277 menus.c:648
-msgid "Tags"
-msgstr "Markierungen"
-
-#: dialogs.c:1285
-msgid "Registered Engines"
-msgstr "Registrierte Schachprogramme"
-
-#: dialogs.c:1401
-msgid "ICS input box"
-msgstr "ICS Eingabefeld"
-
-#: dialogs.c:1433
-msgid "Type a move"
-msgstr "Geben Sie einen Zug ein"
-
-#: dialogs.c:1459
-msgid "Engine has no options"
-msgstr "Schachprogramm hat keine Optionen"
-
-#: dialogs.c:1461
-msgid "Engine Settings"
-msgstr "Schachprogrammeinstellungen"
-
-#: dialogs.c:1502
-msgid "Select engine from list:"
-msgstr "Schachprogram aus der Liste auswählen:"
-
-#: dialogs.c:1505
-msgid "or specify one below:"
-msgstr "Oder geben Sie unten eins an:"
-
-#: dialogs.c:1506
-msgid "Nickname (optional):"
-msgstr "Spitzname (optional):"
-
-#: dialogs.c:1507
-msgid "Use nickname in PGN player tags of engine-engine games"
-msgstr "Spitzname in PGN-Spieler-Kennzeichen bei Spielen zwischen Schachprogrammen benutzen"
-
-#: dialogs.c:1508
-msgid "Engine Directory:"
-msgstr "Schachprogramm-Verzeichnis:"
-
-#: dialogs.c:1509
-msgid "Engine Command:"
-msgstr "Schachprogramkommando:"
-
-#: dialogs.c:1510
-msgid "(Directory will be derived from engine path when empty)"
-msgstr "(Verzeichnis wird vom Schachprogrampfad genommen, falls leer)"
-
-#: dialogs.c:1511
-msgid "UCI"
-msgstr "UCI"
-
-#: dialogs.c:1512
-msgid "USI/UCCI (uses specified -uxiAdapter)"
-msgstr "USI/UCCI (benutzt den angegebenen -uxiAdapter)"
-
-#: dialogs.c:1513
-msgid "WB protocol v1 (do not wait for engine features)"
-msgstr "WB-Protokoll Version 1 (nicht auf Features des Schachprogramms warten)"
-
-#: dialogs.c:1514
-msgid "Must not use GUI book"
-msgstr "Kein GUI-Buch benutzen"
-
-#: dialogs.c:1515
-msgid "Add this engine to the list"
-msgstr "Füge diese Schachprogramm zur Liste hinzu"
-
-#: dialogs.c:1516
-msgid "Force current variant with this engine"
-msgstr "Aktuelle Variante mit diesem Schachprogramm erzwingen"
-
-#: dialogs.c:1570
-msgid "Load first engine"
-msgstr "Lade erstes Schachprogramm"
-
-#: dialogs.c:1576
-msgid "Load second engine"
-msgstr "Lade zweites Schachprogramm"
-
-#: dialogs.c:1599
-msgid "shuffle"
-msgstr "Shuffle"
-
-#: dialogs.c:1600
-msgid "Fischer castling"
-msgstr "Fischer-Rochade"
-
-#: dialogs.c:1601
-msgid "Start-position number:"
-msgstr "Startposition-Nummer:"
-
-#: dialogs.c:1602
-msgid "randomize"
-msgstr "zufällig"
-
-#: dialogs.c:1603
-msgid "pick fixed"
-msgstr "Feste Aufstellung auswählen"
-
-#: dialogs.c:1620
-msgid "New Shuffle Game"
-msgstr "Neue Shuffle-Partie"
-
-#: dialogs.c:1647
-msgid "Clocks (requires restart):"
-msgstr "Uhren (benötigt Neustart):"
-
-#: dialogs.c:1648 dialogs.c:1654 dialogs.c:1660 dialogs.c:1666 dialogs.c:1672
-#: dialogs.c:1678 dialogs.c:1684
-msgid "+"
-msgstr "+"
-
-#: dialogs.c:1649 dialogs.c:1655 dialogs.c:1661 dialogs.c:1667 dialogs.c:1673
-#: dialogs.c:1679 dialogs.c:1685
-msgid "-"
-msgstr "-"
-
-#: dialogs.c:1651 dialogs.c:1657 dialogs.c:1663 dialogs.c:1669 dialogs.c:1675
-#: dialogs.c:1681 dialogs.c:1687
-msgid "I"
-msgstr "K"
-
-#: dialogs.c:1652 dialogs.c:1658 dialogs.c:1664 dialogs.c:1670 dialogs.c:1676
-#: dialogs.c:1682 dialogs.c:1688
-msgid "*"
-msgstr "*"
-
-#: dialogs.c:1653
-msgid "Message (above board):"
-msgstr "Nachricht (über dem Brett):"
-
-#: dialogs.c:1659
-msgid "ICS Chat/Console:"
-msgstr "ICS-Chat/Konsole:"
-
-#: dialogs.c:1665
-msgid "Edit tags / book / engine list:"
-msgstr "Tags / Buch / Schachprogramme bearbeiten:"
-
-#: dialogs.c:1671
-msgid "Edit comments:"
-msgstr "Kommentare bearbeiten:"
-
-#: dialogs.c:1677
-msgid "Move history / Engine Output:"
-msgstr "Zughistorie / Schachprogrammausgabe:"
-
-#: dialogs.c:1683
-msgid "Game list:"
-msgstr "Partieliste:"
-
-#: dialogs.c:1689
-msgid ""
-"\n"
-"The * buttons will set the font to the one selected below:"
-msgstr ""
-"\n"
-"Die *-Schaltflächen ändern die Schrift zu der unten ausgewählten:"
-
-#: dialogs.c:1743
-msgid "This only works in the GTK build"
-msgstr "Das funktioniert nur der GTK-Variante des Programms"
-
-#: dialogs.c:1744
-msgid "Fonts"
-msgstr "Schriftarten"
-
-#: dialogs.c:1764
-msgid "classical"
-msgstr "klassisch"
-
-#: dialogs.c:1765
-msgid "incremental"
-msgstr "Zuwachs"
-
-#: dialogs.c:1766
-msgid "fixed max"
-msgstr "Feste Maximalbedenkzeit"
-
-#: dialogs.c:1767
-msgid "Divide entered times by 60"
-msgstr "Eingegebene Zeiten durch 60 teilen"
-
-#: dialogs.c:1768
-msgid "Moves per session:"
-msgstr "Züge pro Sitzung:"
-
-#: dialogs.c:1769
-msgid "Initial time (min):"
-msgstr "Grundbedenkzeit (min):"
-
-#: dialogs.c:1770
-msgid "Increment or max (sec/move):"
-msgstr "Zeitbonus oder Maximalbedenkzeit (sek/Zug):"
-
-#: dialogs.c:1771
-msgid "Time-Odds factors:"
-msgstr "Ungleiche Zeitverteilung:"
-
-#: dialogs.c:1772
-msgid "Engine #1"
-msgstr "Schachprogramm #1"
-
-#: dialogs.c:1773
-msgid "Engine #2 / Human"
-msgstr "Schachprogram #2 / Spieler"
-
-#: dialogs.c:1814 dialogs.c:1817 dialogs.c:1822 dialogs.c:1823
-#: gtk/xoptions.c:183
-msgid "Unused"
-msgstr "Nicht benutzt"
-
-#: dialogs.c:1832
-msgid "Changing time control during a game is not implemented"
-msgstr "Das Ändern der Bedenkzeit während eines Spiels ist nicht implementiert"
-
-#: dialogs.c:1869
-msgid "Error writing to chess program"
-msgstr "Fehler beim Schreiben zum Schachprogramm"
-
-#: dialogs.c:1937 gtk/xoptions.c:1775 xaw/xoptions.c:1341
-msgid "Cancel"
-msgstr "Abbrechen"
-
-#: dialogs.c:1942 dialogs.c:2695 dialogs.c:2699
-msgid "King"
-msgstr "König"
-
-#: dialogs.c:1945
-msgid "Captain"
-msgstr "Kapitän"
-
-#: dialogs.c:1946
-msgid "Lieutenant"
-msgstr "Leutnant"
-
-#: dialogs.c:1947
-msgid "General"
-msgstr "General"
-
-#: dialogs.c:1948
-msgid "Warlord"
-msgstr "Kriegsherr"
-
-#: dialogs.c:1950 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Knight"
-msgstr "Springer"
-
-#: dialogs.c:1951 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Bishop"
-msgstr "Läufer"
-
-#: dialogs.c:1952 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Rook"
-msgstr "Turm"
-
-#: dialogs.c:1956 dialogs.c:2696 dialogs.c:2700
-msgid "Archbishop"
-msgstr "Erzbischof"
-
-#: dialogs.c:1957 dialogs.c:2696 dialogs.c:2700
-msgid "Chancellor"
-msgstr "Kanzler"
-
-#: dialogs.c:1959 dialogs.c:2695 dialogs.c:2699 dialogs.c:2717
-msgid "Queen"
-msgstr "Königin"
-
-#: dialogs.c:1961
-msgid "Lion"
-msgstr "Löwe"
-
-#: dialogs.c:1965
-msgid "Defer"
-msgstr "Vertagen"
-
-#: dialogs.c:1966 dialogs.c:2696 dialogs.c:2700
-msgid "Promote"
-msgstr "Umwandeln"
-
-#: dialogs.c:2023
-msgid "Chats:"
-msgstr "Chats:"
-
-#: dialogs.c:2024 dialogs.c:2025 dialogs.c:2026 dialogs.c:2027 dialogs.c:2028
-#: dialogs.c:2134 dialogs.c:2199 dialogs.c:2231
-msgid "New Chat"
-msgstr "Neuer Chat"
-
-#: dialogs.c:2031
-msgid "Chat partner:"
-msgstr "Chatpartner:"
-
-#: dialogs.c:2032
-msgid "End Chat"
-msgstr "Chat beenden"
-
-#: dialogs.c:2033
-msgid "Hide"
-msgstr "Verstecken"
-
-#: dialogs.c:2260
-msgid "ICS Interaction"
-msgstr "ICS-Interaktion"
-
-#: dialogs.c:2345
-msgid "factory"
-msgstr "Fabrik"
-
-#: dialogs.c:2346
-msgid "up"
-msgstr "hoch"
-
-#: dialogs.c:2347
-msgid "down"
-msgstr "runter"
-
-#: dialogs.c:2366
-msgid "No tag selected"
-msgstr "Keine Markierung selektiert"
-
-#: dialogs.c:2397
-msgid "Game-list options"
-msgstr "Spieleliste-Optionen"
-
-#: dialogs.c:2475 dialogs.c:2489
-msgid "Error"
-msgstr "Fehler"
-
-#: dialogs.c:2518
-msgid "Fatal Error"
-msgstr "Schwerwiegender Fehler"
-
-#: dialogs.c:2518
-msgid "Exiting"
-msgstr "Programm wird beendet"
-
-#: dialogs.c:2529
-msgid "Information"
-msgstr "Information"
-
-#: dialogs.c:2536
-msgid "Note"
-msgstr "Notiz"
-
-#: dialogs.c:2694 dialogs.c:2987 dialogs.c:2990
-msgid "White"
-msgstr "Weiß"
-
-#: dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Pawn"
-msgstr "Bauer"
-
-#: dialogs.c:2695 dialogs.c:2699
-msgid "Elephant"
-msgstr "Elefant"
-
-#: dialogs.c:2695 dialogs.c:2699
-msgid "Cannon"
-msgstr "Kanone"
-
-#: dialogs.c:2696 dialogs.c:2700
-msgid "Demote"
-msgstr "Degradieren"
-
-#: dialogs.c:2697 dialogs.c:2701
-msgid "Empty square"
-msgstr "Leeres Feld"
-
-#: dialogs.c:2697 dialogs.c:2701
-msgid "Clear board"
-msgstr "Brett leeren"
-
-#: dialogs.c:2698 dialogs.c:2999 dialogs.c:3002
-msgid "Black"
-msgstr "Schwarz"
-
-#: dialogs.c:2798
-msgid "_File"
-msgstr "_Datei"
-
-#: dialogs.c:2799
-msgid "_Edit"
-msgstr "_Bearbeiten"
-
-#: dialogs.c:2800
-msgid "_View"
-msgstr "_Ansicht"
-
-#: dialogs.c:2801
-msgid "_Mode"
-msgstr "_Modus"
-
-#: dialogs.c:2802
-msgid "_Action"
-msgstr "A_ktion"
-
-#: dialogs.c:2803
-msgid "E_ngine"
-msgstr "Schach_programm"
-
-#: dialogs.c:2804
-msgid "_Options"
-msgstr "_Optionen"
-
-#: dialogs.c:2805
-msgid "_Help"
-msgstr "_Hilfe"
-
-#: dialogs.c:2815
-msgid "<<"
-msgstr "<<"
-
-#: dialogs.c:2816
-msgid "<"
-msgstr "<"
-
-#: dialogs.c:2818
-msgid ">"
-msgstr ">"
-
-#: dialogs.c:2819
-msgid ">>"
-msgstr ">>"
-
-#: dialogs.c:3107
-msgid "Directories:"
-msgstr "Verzeichnisse:"
-
-#: dialogs.c:3108
-msgid "Files:"
-msgstr "Dateien:"
-
-#: dialogs.c:3109
-msgid "by name"
-msgstr "nach Namen"
-
-#: dialogs.c:3110
-msgid "by type"
-msgstr "nach Typ"
-
-#: dialogs.c:3113
-msgid "Filename:"
-msgstr "Dateinname:"
-
-#: dialogs.c:3114
-msgid "New directory"
-msgstr "Neues Verzeichnis"
-
-#: dialogs.c:3115
-msgid "File type:"
-msgstr "Dateityp:"
-
-#: dialogs.c:3190
-msgid "Contents of"
-msgstr "Inhalt von"
-
-#: dialogs.c:3216
-msgid "  next page"
-msgstr "  nächste Seite"
-
-#: dialogs.c:3233
-msgid "FIRST TYPE DIRECTORY NAME HERE"
-msgstr "Geben Sie zuerst hier den Verzeichnisnamen an"
-
-#: dialogs.c:3234
-msgid "TRY ANOTHER NAME"
-msgstr "VERSUCHE EINEN ANDEREN NAMEN"
-
-#: draw.c:405
-msgid ""
-"No default pieces installed!\n"
-"Select your own using '-pieceImageDirectory'."
-msgstr ""
-"Kein Standard-Figurensatz installiert!\n"
-"Wählen Sie mit der Option »-pieceImageDirectory« Ihren eigenen."
-
-#: engineoutput.c:112 menus.c:642
-#, c-format
-msgid "Engine Output"
-msgstr "Schachprogrammausgabe"
-
-#: engineoutput.c:122
-#, c-format
-msgid "%s (%d reversible ply)"
-msgid_plural "%s (%d reversible plies)"
-msgstr[0] "%s (%d rücknehmbarer Halbzug)"
-msgstr[1] "%s (%d rücknehmbare Halbzüge)"
-
-#: engineoutput.c:565 engineoutput.c:568 nengineoutput.c:83 nengineoutput.c:91
-msgid "NPS"
-msgstr "NPS"
-
-#: gamelist.c:379
-#, c-format
-msgid "Reading game file (%d)"
-msgstr "Lese Partiedatei (%d)"
-
-#: gtk/xboard.c:979 xaw/xboard.c:1074
-#, c-format
-msgid "%s: can't cd to CHESSDIR: "
-msgstr "%s: cd zu CHESSDIR funktioniert nicht: "
-
-#: gtk/xboard.c:988 xaw/xboard.c:1083
-#, c-format
-msgid "Failed to open file '%s'\n"
-msgstr "Fehler beim Öffnen der Datei '%s'\n"
-
-#: gtk/xboard.c:1003 xaw/xboard.c:1092
-msgid "Recompile with larger BOARD_RANKS or BOARD_FILES to support this size"
-msgstr "Kompiliere erneut mit größeren BOARD_RANKS oder BOARD_FILES, um diese Größe zu unterstützen"
-
-#: gtk/xboard.c:1022 xaw/xboard.c:1124
-#, c-format
-msgid "%s: bad boardSize syntax %s\n"
-msgstr "%s: falsche boardSize Syntax %s\n"
-
-#: gtk/xboard.c:1063 xaw/xboard.c:1163
-#, c-format
-msgid "%s: unrecognized boardSize name %s\n"
-msgstr "%s: unbekannter Name fuer boardSize %s\n"
-
-#: gtk/xboard.c:1107 xaw/xboard.c:1200
-#, c-format
-msgid "%s: too few colors available; trying monochrome mode\n"
-msgstr "%s: nicht genügend Farben vorhanden; versuche monochrom Modus\n"
-
-#: gtk/xboard.c:1421 xaw/xboard.c:1492
-#, c-format
-msgid "Unable to create font set for %s.\n"
-msgstr "Nicht in der Lage Schriftsatz für %s zu generieren.\n"
-
-#: gtk/xboard.c:1446 xaw/xboard.c:1515
-#, c-format
-msgid "%s: no fonts match pattern %s\n"
-msgstr "%s: keine Schriften stimmen mit Muster %s überein\n"
-
-#: gtk/xboard.c:1914 xaw/xboard.c:2007
-msgid "Can't open temp file"
-msgstr "Kann temporäre Datei nicht öffnen"
-
-#: gtk/xboard.c:2422
-msgid "Failed to open file"
-msgstr "Fehler beim Öffnen der Datei"
-
-#: gtk/xoptions.c:1498
-msgid "Browse"
-msgstr "Durchsuchen"
-
-#: gtk/xoptions.c:1772 xaw/xoptions.c:1337
-msgid "OK"
-msgstr "OK"
-
-#: menus.c:136
-msgid "Load game file name?"
-msgstr "Lade Partiedatei mit Namen?"
-
-#: menus.c:183
-msgid "Load position file name?"
-msgstr "Lade Stellungsdatei mit Namen?"
-
-#: menus.c:189 menus.c:582
-msgid "Save game file name?"
-msgstr "Speichere Partiedatei mit Namen?"
-
-#: menus.c:198
-msgid "Save position file name?"
-msgstr "Speicher Stellungsdatei mit Namen?"
-
-#: menus.c:355
-msgid " (with Zippy code)"
-msgstr " (mit Zippy)"
-
-#: menus.c:360
-#, c-format
-msgid ""
-"%s%s\n"
-"\n"
-"Copyright 1991 Digital Equipment Corporation\n"
-"Enhancements Copyright 1992-2016 Free Software Foundation\n"
-"Enhancements Copyright 2005 Alessandro Scotti\n"
-"\n"
-"%s is free software and carries NO WARRANTY;see the file COPYING for more information.\n"
-"\n"
-"Visit XBoard on the web at: http://www.gnu.org/software/xboard/\n"
-"Check out the newest features at: http://www.gnu.org/software/xboard/whats_new.html\n"
-"\n"
-"Report bugs via email at: <bug-xboard@gnu.org>\n"
-"\n"
-msgstr ""
-"%s%s\n"
-"\n"
-"Copyright 1991 Digital Equipment Corporation\n"
-"Verbesserungen Copyright 1992-2014 Free Software Foundation\n"
-"Verbesserungen Copyright 2005 Alessandro Scotti\n"
-"\n"
-"%s ist freie Software und gewährt keinerlei Garantie;\n"
-"weitere Details finden Sie in der Datei COPYING.\n"
-"\n"
-"Besuchen Sie XBoard im Web unter: http://www.gnu.org/software/xboard/\n"
-"Die neuesten Features finden Sie unter: http://www.gnu.org/software/xboard/whats_new.html\n"
-"\n"
-"Fehler melden Sie bitte (auf Englisch) per E-Mail an: <bug-xboard@gnu.org>\n"
-"\n"
-
-#: menus.c:371 menus.c:765
-msgid "About XBoard"
-msgstr "Über XBoard"
-
-#: menus.c:593
-msgid "New Game"
-msgstr "Neue Partie"
-
-#: menus.c:594
-msgid "New Shuffle Game..."
-msgstr "Neue zufällige Partie…"
-
-#: menus.c:595
-msgid "New Variant..."
-msgstr "Neue Variante…"
-
-#: menus.c:597
-msgid "Load Game"
-msgstr "Partie laden…"
-
-#: menus.c:598
-msgid "Load Position"
-msgstr "Stellung laden"
-
-#: menus.c:599
-msgid "Next Position"
-msgstr "Nächste Stellung"
-
-#: menus.c:600
-msgid "Prev Position"
-msgstr "Vorherige Stellung"
-
-#: menus.c:602
-msgid "Save Game"
-msgstr "Partie speichern…"
-
-#: menus.c:603
-msgid "Save Position"
-msgstr "Speichere Stellung"
-
-#: menus.c:604
-msgid "Save Selected Games"
-msgstr "Ausgewählte Partien speichern"
-
-#: menus.c:605
-msgid "Save Games as Book"
-msgstr "Partien speichern als Buch"
-
-#: menus.c:607
-msgid "Mail Move"
-msgstr "Verschicke Zug"
-
-#: menus.c:608
-msgid "Reload CMail Message"
-msgstr "CMail Nachricht erneut laden"
-
-#: menus.c:610
-msgid "Quit "
-msgstr "Beenden"
-
-#: menus.c:615
-msgid "Copy Game"
-msgstr "Partie kopieren"
-
-#: menus.c:616
-msgid "Copy Position"
-msgstr "Stellung kopieren"
-
-#: menus.c:617
-msgid "Copy Game List"
-msgstr "Partieliste kopieren"
-
-#: menus.c:619
-msgid "Paste Game"
-msgstr "Partie einfügen"
-
-#: menus.c:620
-msgid "Paste Position"
-msgstr "Stellung einfügen"
-
-#: menus.c:622 menus.c:665
-msgid "Edit Game"
-msgstr "Partie editiere"
-
-#: menus.c:623 menus.c:666
-msgid "Edit Position"
-msgstr "Stellung editieren"
-
-#: menus.c:624
-msgid "Edit Tags"
-msgstr "Markierung bearbeiten"
-
-#: menus.c:625
-msgid "Edit Comment"
-msgstr "Kommentar bearbeiten"
-
-#: menus.c:626
-msgid "Edit Book"
-msgstr "Editiere Buch"
-
-#: menus.c:628
-msgid "Revert"
-msgstr "Neuladen"
-
-#: menus.c:629
-msgid "Annotate"
-msgstr "Annotieren"
-
-#: menus.c:630
-msgid "Truncate Game"
-msgstr "Partie abbrechen"
-
-#: menus.c:632
-msgid "Backward"
-msgstr "Zurück"
-
-#: menus.c:633
-msgid "Forward"
-msgstr "Vorwärts"
-
-#: menus.c:634
-msgid "Back to Start"
-msgstr "Zurück zum Anfang"
-
-#: menus.c:635
-msgid "Forward to End"
-msgstr "Zur Schlussstellung"
-
-#: menus.c:640
-msgid "Flip View"
-msgstr "Brett drehen"
-
-#: menus.c:643
-msgid "Move History"
-msgstr "Zugliste"
-
-#: menus.c:644
-msgid "Evaluation Graph"
-msgstr "Auswertungsgraph"
-
-#: menus.c:645
-msgid "Game List"
-msgstr "Partieliste"
-
-#: menus.c:649
-msgid "Comments"
-msgstr "Kommentare"
-
-#: menus.c:650
-msgid "ICS Input Box"
-msgstr "ICS Eingabefeld"
-
-#: menus.c:651
-msgid "ICS/Chat Console"
-msgstr "ICS/Chat-Konsole"
-
-#: menus.c:653
-msgid "Board..."
-msgstr "Brett…"
-
-#: menus.c:654
-msgid "Fonts..."
-msgstr "Schriftarten…"
-
-#: menus.c:655
-msgid "Game List Tags..."
-msgstr "Partie-Markierungen…"
-
-#: menus.c:660
-msgid "Machine White"
-msgstr "Schachprogramm weiß"
-
-#: menus.c:661
-msgid "Machine Black"
-msgstr "Schachprogramm schwarz"
-
-#: menus.c:662
-msgid "Two Machines"
-msgstr "Zwei Schachprogramme"
-
-#: menus.c:663
-msgid "Analysis Mode"
-msgstr "Analyse-Modus"
-
-#: menus.c:664
-msgid "Analyze Game"
-msgstr "Spiel analysieren"
-
-#: menus.c:667
-msgid "Training"
-msgstr "Training"
-
-#: menus.c:668
-msgid "ICS Client"
-msgstr "ICS-Client"
-
-#: menus.c:670
-msgid "Machine Match"
-msgstr "Schachprogramm Partie"
-
-#: menus.c:671
-msgid "Pause"
-msgstr "Pause"
-
-#: menus.c:676
-msgid "Accept"
-msgstr "Annehmen"
-
-#: menus.c:677
-msgid "Decline"
-msgstr "Ablehnen"
-
-#: menus.c:678
-msgid "Rematch"
-msgstr "Revanche"
-
-#: menus.c:680
-msgid "Call Flag"
-msgstr "Zeit reklamieren"
-
-#: menus.c:681
-msgid "Draw"
-msgstr "Remis"
-
-#: menus.c:682
-msgid "Adjourn"
-msgstr "Aussetzen"
-
-#: menus.c:683
-msgid "Abort"
-msgstr "Abbrechen"
-
-#: menus.c:684
-msgid "Resign"
-msgstr "Aufgeben"
-
-#: menus.c:686
-msgid "Stop Observing"
-msgstr "Beobachtung beenden"
-
-#: menus.c:687
-msgid "Stop Examining"
-msgstr "Untersuchen beenden"
-
-#: menus.c:688
-msgid "Upload to Examine"
-msgstr "Hochladen zum Untersuchen"
-
-#: menus.c:690
-msgid "Adjudicate to White"
-msgstr "Weiß den Gewinn zuerkennen"
-
-#: menus.c:691
-msgid "Adjudicate to Black"
-msgstr "Schwarz den Gewinn zuerkennnen"
-
-#: menus.c:692
-msgid "Adjudicate Draw"
-msgstr "Auf Remis entscheiden"
-
-#: menus.c:697
-msgid "Edit Engine List..."
-msgstr "Schachprogramm-Liste bearbeiten…"
-
-#: menus.c:699
-msgid "Load New 1st Engine..."
-msgstr "Neues erstes Schachprogramm laden…"
-
-#: menus.c:700
-msgid "Load New 2nd Engine..."
-msgstr "Neues zweites Schachprogramm laden…"
-
-#: menus.c:702
-msgid "Engine #1 Settings..."
-msgstr "Einstellungen für Schachprogramm #1…"
-
-#: menus.c:703
-msgid "Engine #2 Settings..."
-msgstr "Einstellungen für Schachprogramm #2…"
-
-#: menus.c:704
-msgid "Common Settings..."
-msgstr "Allgemeine Einstellungen…"
-
-#: menus.c:706
-msgid "Hint"
-msgstr "Hinweis"
-
-#: menus.c:707
-msgid "Book"
-msgstr "Buch"
-
-#: menus.c:709
-msgid "Move Now"
-msgstr "Jetzt ziehen"
-
-#: menus.c:710
-msgid "Retract Move"
-msgstr "Zug zurücknehmen"
-
-#: menus.c:716
-msgid "General..."
-msgstr "Allgemein…"
-
-#: menus.c:718
-msgid "Time Control..."
-msgstr "Zeitnahme…"
-
-#: menus.c:719
-msgid "Adjudications..."
-msgstr "Entscheidungen…"
-
-#: menus.c:720
-msgid "ICS..."
-msgstr "ICS…"
-
-#: menus.c:721
-msgid "Tournament..."
-msgstr "Turnier…"
-
-#: menus.c:722
-msgid "Load Game..."
-msgstr "Partie laden…"
-
-#: menus.c:723
-msgid "Save Game..."
-msgstr "Partie speichern…"
-
-#: menus.c:724
-msgid "Game List..."
-msgstr "Partieliste…"
-
-#: menus.c:725
-msgid "Sounds..."
-msgstr "Klang…"
-
-#: menus.c:728
-msgid "Always Queen"
-msgstr "Immer Königin"
-
-#: menus.c:734
-msgid "Flash Moves"
-msgstr "Züge aufblitzen lassen"
-
-#: menus.c:736
-msgid "Highlight Dragging"
-msgstr "Züge hervorheben"
-
-#: menus.c:739
-msgid "Highlight With Arrow"
-msgstr "Mit Pfeil hervorheben"
-
-#: menus.c:740
-msgid "Move Sound"
-msgstr "Klang für Zug"
-
-#: menus.c:742
-msgid "Periodic Updates"
-msgstr "Periodische Updates"
-
-#: menus.c:744
-msgid "Popup Exit Message"
-msgstr "Dialogfenster für Nachricht beim Beenden"
-
-#: menus.c:746
-msgid "Show Coords"
-msgstr "Zeige Koordinaten"
-
-#: menus.c:747
-msgid "Hide Thinking"
-msgstr "Denken verstecken"
-
-#: menus.c:751
-msgid "Save Settings Now"
-msgstr "Einstellungen jetzt speichern"
-
-#: menus.c:752
-msgid "Save Settings on Exit"
-msgstr "Einstellung am Ende speichern"
-
-#: menus.c:757
-msgid "Info XBoard"
-msgstr "Info über XBoard"
-
-#: menus.c:758
-msgid "Man XBoard"
-msgstr "XBoard-Hilfe"
-
-#: menus.c:760
-msgid "XBoard Home Page"
-msgstr "XBoard Homepage"
-
-#: menus.c:761
-msgid "On-line User Guide"
-msgstr "Online Benutzerhandbuch"
-
-#: menus.c:762
-msgid "Development News"
-msgstr "Entwicklungsneuigkeiten"
-
-#: menus.c:763
-msgid "e-Mail Bug Report"
-msgstr "Sende Fehlerbericht"
-
-#: menus.c:802
-msgid "File"
-msgstr "Datei"
-
-#: menus.c:803
-msgid "Edit"
-msgstr "Bearbeiten"
-
-#: menus.c:804
-msgid "View"
-msgstr "Anzeigen"
-
-#: menus.c:805
-msgid "Mode"
-msgstr "Modus"
-
-#: menus.c:806
-msgid "Action"
-msgstr "Aktion"
-
-#: menus.c:807
-msgid "Engine"
-msgstr "Schachprogramm"
-
-#: menus.c:808
-msgid "Options"
-msgstr "Optionen"
-
-#: menus.c:809
-msgid "Help"
-msgstr "Hilfe"
-
-#: nengineoutput.c:79 nengineoutput.c:87
-msgid "engine name"
-msgstr "Schachprogramm"
-
-#. TRANSLATORS: noun, as in "the move Nf3"
-#: nengineoutput.c:82 nengineoutput.c:90
-msgid "move"
-msgstr "Zug"
-
-#: nengineoutput.c:156
-msgid "Engine output"
-msgstr "Schachprogrammausgabe"
-
-#: nengineoutput.c:160
-msgid ""
-"Mismatch of STRIDE in nengineoutput.c\n"
-"Change and recompile!"
-msgstr ""
-"Interner Fehler:\n"
-"Mismatch of STRIDE in nengineoutput.c\n"
-"Change and recompile!"
-
-#: nevalgraph.c:69
-msgid "Evaluation graph"
-msgstr "Auswertungsgraph"
-
-#: nevalgraph.c:69
-msgid "Blunder graph"
-msgstr "Patzer-Graph"
-
-#: nevalgraph.c:107
-msgid "Blunder"
-msgstr "Patzer"
-
-#: nevalgraph.c:107
-msgid "Eval"
-msgstr "Stellungsbewertung"
-
-#: ngamelist.c:87
-msgid "find position"
-msgstr "Suche Stellung"
-
-#: ngamelist.c:88
-msgid "narrow"
-msgstr "Eng"
-
-#: ngamelist.c:89
-msgid "thresholds"
-msgstr "Schwellenwert"
-
-#: ngamelist.c:90
-msgid "tags"
-msgstr "Kennzeichen"
-
-#: ngamelist.c:91
-msgid "next"
-msgstr "Nächste"
-
-#: ngamelist.c:92
-msgid "close"
-msgstr "Schließen"
-
-#: ngamelist.c:116
-msgid "No game selected"
-msgstr "Keine Partie ausgewählt"
-
-#: ngamelist.c:122
-msgid "Can't go forward any further"
-msgstr "Kann nicht weiter vorwärts gehen"
-
-#: ngamelist.c:192
-#, c-format
-msgid "Scanning through games (%d)"
-msgstr "Durchsuche Spiele (%d)"
-
-#: ngamelist.c:211
-msgid "previous page"
-msgstr "Vorherige Seite"
-
-#: ngamelist.c:214
-msgid "next page"
-msgstr "Nächste Seite"
-
-#: ngamelist.c:217
-msgid "no games matched your request"
-msgstr "Keine zu Ihrer Anfrage passenden Spiele gefunden"
-
-#: ngamelist.c:219
-#, c-format
-msgid "%s - %d/%d games (%d-%d-%d)"
-msgstr "%s - %d/%d Spiele (%d-%d-%d)"
-
-#: ngamelist.c:284
-msgid "There is no game list"
-msgstr "Partieliste existiert nicht"
-
-#: nhistory.c:109
-msgid "Move list"
-msgstr "Zugliste"
-
-#: usystem.c:223
-#, c-format
-msgid "%s: unrecognized color %s\n"
-msgstr "%s: nicht erkannte Farbe %s\n"
-
-#: usystem.c:231
-#, c-format
-msgid "%s: can't parse foreground color in '%s'\n"
-msgstr "%s: Kann Vordergrundfarbe in »%s« nicht parsen\n"
-
-#: usystem.c:260
-#, c-format
-msgid "%s: can't parse color names; disabling colorization\n"
-msgstr "%s: kann Farbname nicht parsen; deaktiere Farben\n"
-
-#: usystem.c:362
-#, c-format
-msgid "ERROR: Unknown user %s (in path %s)\n"
-msgstr "FEHLER: unbekannter Benutzer %s (im Pfad %s)\n"
-
-#: usystem.c:564
-msgid "Socket support is not configured in"
-msgstr "Socketunterstützung ist nicht konfiguriert"
-
-#: usystem.c:653
-msgid "internal rcmd not implemented for Unix"
-msgstr "Interes rcmd ist in UNIX nicht implementiert"
-
-#: xaw/xboard.c:1206
-#, c-format
-msgid "white pixel = 0x%lx, black pixel = 0x%lx\n"
-msgstr "weißes Pixel = 0x%lx, schwarzes Pixel = 0x%lx\n"
-
-#: xaw/xoptions.c:378 xaw/xoptions.c:1082
-msgid "browse"
-msgstr "durchsuche"
-
-#: xaw/xoptions.c:444 xaw/xoptions.c:445
-msgid "Ctrl"
-msgstr "Strg"
-
-#: xaw/xoptions.c:450 xaw/xoptions.c:451
-msgid "Alt"
-msgstr "Alt"
-
-#: xaw/xoptions.c:456 xaw/xoptions.c:457
-msgid "Shift"
-msgstr "Umschalt"
diff --git a/po/es.po b/po/es.po
deleted file mode 100644 (file)
index cb99585..0000000
--- a/po/es.po
+++ /dev/null
@@ -1,3173 +0,0 @@
-# XBoard -- a graphical chessboard for X
-# Copyright (C) 2013, 2014 Free Software Foundation, Inc.
-# This file is distributed under the same license as the XBoard package.
-# Traducción por Óscar Toledo G., 2010
-# Antonio Ceballos <aceballos@gmail.com>, 2014, 2016
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: GNU xboard 4.9.0-pre2\n"
-"Report-Msgid-Bugs-To: bug-xboard@gnu.org\n"
-"POT-Creation-Date: 2016-04-03 13:44-0700\n"
-"PO-Revision-Date: 2016-04-10 11:05+0200\n"
-"Last-Translator: Antonio Ceballos <aceballos@gmail.com>\n"
-"Language-Team: Spanish <es@tp.org.es>\n"
-"Language: es\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: args.h:851
-#, c-format
-msgid "%s in settings file\n"
-msgstr "%s en el fichero de configuración\n"
-
-#: args.h:885
-#, c-format
-msgid "Bad integer value %s"
-msgstr "Valor entero malo %s"
-
-#: args.h:991 args.h:1252
-#, c-format
-msgid "Unrecognized argument %s"
-msgstr "Argumento no reconocido %s"
-
-#: args.h:1022
-#, c-format
-msgid "No value provided for argument %s"
-msgstr "No se ha dado valor al argumento %s"
-
-#: args.h:1082
-#, c-format
-msgid "Incomplete \\ escape in value for %s"
-msgstr "Carácter de escape \\ incompleto en el valor de %s"
-
-#: args.h:1193
-#, c-format
-msgid "Failed to open indirection file %s"
-msgstr "Fallo al abrir fichero de indirección %s"
-
-#: args.h:1210
-#, c-format
-msgid "Unrecognized boolean argument value %s"
-msgstr "Valor del argumento lógico %s no reconocido"
-
-#. TRANSLATORS: "first" is the first of possible two chess engines. It is inserted into strings
-#. such as "%s engine" / "%s chess program" / "%s machine" - all meaning the same thing
-#: backend.c:811
-msgid "first"
-msgstr "primer"
-
-#. TRANSLATORS: "second" is the second of possible two chess engines. It is inserted into strings
-#. such as "%s engine" / "%s chess program" / "%s machine" - all meaning the same thing
-#: backend.c:814
-msgid "second"
-msgstr "segundo"
-
-#: backend.c:897
-#, c-format
-msgid "protocol version %d not supported"
-msgstr "versión %d del protocolo no es admitida"
-
-#: backend.c:1004
-msgid "You did not specify the engine executable"
-msgstr "No se especificó el ejecutable del motor"
-
-#: backend.c:1062
-#, c-format
-msgid "bad timeControl option %s"
-msgstr "opción timeControl incorrecta %s"
-
-#: backend.c:1077
-#, c-format
-msgid "bad searchTime option %s"
-msgstr "opción searchTime incorrecta %s"
-
-#: backend.c:1183
-#, c-format
-msgid "Variant %s supported only in ICS mode"
-msgstr "La variante %s solo se admite en modo ICS"
-
-#: backend.c:1201
-#, c-format
-msgid "Unknown variant name %s"
-msgstr "Nombre de variante desconocido %s"
-
-#: backend.c:1456
-msgid "Starting chess program"
-msgstr "Iniciando programa de ajedrez"
-
-#: backend.c:1479
-msgid "Bad game file"
-msgstr "archivo de partidas incorrecto"
-
-#: backend.c:1486
-msgid "Bad position file"
-msgstr "archivo de posición incorrecto"
-
-#: backend.c:1500
-msgid "Pick new game"
-msgstr "Seleccionar una nueva partida"
-
-#: backend.c:1569
-msgid ""
-"You restarted an already completed tourney.\n"
-"One more cycle will now be added to it.\n"
-"Games commence in 10 sec."
-msgstr ""
-"Se ha reiniciado un torneo que ya había concluido.\n"
-"Se le va a añadir un nuevo ciclo.\n"
-"Las partidas comienzan dentro de 10 s."
-
-#: backend.c:1576
-#, c-format
-msgid "All games in tourney '%s' are already played or playing"
-msgstr "Ya se han disputado o se están disputando todas las partidas del torneo '%s'"
-
-#: backend.c:1583
-msgid "Can't have a match with no chess programs"
-msgstr "No se puede tener una partida sin programas de ajedrez"
-
-#: backend.c:1637
-#, c-format
-msgid "Could not open comm port %s"
-msgstr "No se pudo abrir la puerta de comunicaciones %s"
-
-#: backend.c:1640
-#, c-format
-msgid "Could not connect to host %s, port %s"
-msgstr "No se pudo conectar al servidor %s, puerta %s"
-
-#: backend.c:1696
-#, c-format
-msgid "Unknown initialMode %s"
-msgstr "Modo inicial desconocido %s"
-
-#: backend.c:1722
-msgid "AnalyzeFile mode requires a game file"
-msgstr "El modo análisis de archivo requiere un archivo de partidas"
-
-#: backend.c:1755
-msgid "Analysis mode requires a chess engine"
-msgstr "El modo de análisis requiere un motor de ajedrez"
-
-#: backend.c:1759
-msgid "Analysis mode does not work with ICS mode"
-msgstr "El modo de análisis no funciona con el modo ICS"
-
-#: backend.c:1770
-msgid "MachineWhite mode requires a chess engine"
-msgstr "El modo de máquina con blancas requiere un motor de ajedrez"
-
-#: backend.c:1775
-msgid "MachineWhite mode does not work with ICS mode"
-msgstr "El modo de máquina con blancas no funciona con el modo ICS"
-
-#: backend.c:1782
-msgid "MachineBlack mode requires a chess engine"
-msgstr "El modo de máquina con negras requiere un motor de ajedrez"
-
-#: backend.c:1787
-msgid "MachineBlack mode does not work with ICS mode"
-msgstr "El modo de máquina con negras no funciona con el modo ICS"
-
-#: backend.c:1794
-msgid "TwoMachines mode requires a chess engine"
-msgstr "El modo de dos máquinas requiere un motor de ajedrez"
-
-#: backend.c:1799
-msgid "TwoMachines mode does not work with ICS mode"
-msgstr "El modo de dos máquinas no funciona con el modo ICS"
-
-#: backend.c:1810
-msgid "Training mode requires a game file"
-msgstr "El modo de entrenamiento requiere un archivo de partidas"
-
-#: backend.c:1973 backend.c:2028 backend.c:2051 backend.c:2453
-msgid "Error writing to ICS"
-msgstr "Error al escribir a ICS"
-
-#: backend.c:1988
-msgid "Error reading from keyboard"
-msgstr "Error al leer el teclado"
-
-#: backend.c:1991
-msgid "Got end of file from keyboard"
-msgstr "Se obtuvo del teclado un fin de archivo"
-
-#: backend.c:2299
-#, c-format
-msgid "Unknown wild type %d"
-msgstr "Tipo «wild» %d desconocido"
-
-#: backend.c:2370 usystem.c:317
-msgid "Error writing to display"
-msgstr "Error al escribir en la pantalla"
-
-#. TRANSLATORS: to 'kibitz' is to send a message to all players and the game observers
-#: backend.c:3138
-#, c-format
-msgid "your opponent kibitzes: %s"
-msgstr "información kibitz de su oponente: %s"
-
-#: backend.c:3677
-msgid "Error gathering move list: two headers"
-msgstr "Error al recolectar lista de jugadas: dos encabezados"
-
-#: backend.c:3724
-msgid "Error gathering move list: nested"
-msgstr "Error al recolectar lista de jugadas: anidado"
-
-#: backend.c:3828 backend.c:4254 backend.c:4458 backend.c:5017 backend.c:5021
-#: backend.c:7292 backend.c:13054 backend.c:14805 backend.c:14882
-#: backend.c:14928 backend.c:14934 backend.c:14939 backend.c:14944
-msgid "vs."
-msgstr "contra"
-
-#: backend.c:3956
-msgid "Illegal move (rejected by ICS)"
-msgstr "La jugada no es válida (la ha rechazado ICS)"
-
-#: backend.c:4302
-msgid "Connection closed by ICS"
-msgstr "Conexión cerrada por ICS"
-
-#: backend.c:4304
-msgid "Error reading from ICS"
-msgstr "Error al leer de ICS"
-
-#: backend.c:4381
-#, c-format
-msgid ""
-"Failed to parse board string:\n"
-"\"%s\""
-msgstr ""
-"Fallo al analizar texto del tablero:\n"
-"\"%s\""
-
-#: backend.c:4390 backend.c:10628
-msgid "Game too long; increase MAX_MOVES and recompile"
-msgstr "Partida demasiado larga; incremente MAX_MOVES y recompile"
-
-#: backend.c:4509
-msgid "Error gathering move list: extra board"
-msgstr "Error al recolectar lista de jugadas: tablero extra"
-
-#: backend.c:4941 backend.c:4963
-#, c-format
-msgid "Couldn't parse move \"%s\" from ICS"
-msgstr "No se pudo analizar la jugada \"%s\" de ICS"
-
-#: backend.c:5228
-#, c-format
-msgid "say Internal error; bad moveType %d (%d,%d-%d,%d)"
-msgstr "say Error interno; moveType incorrecto %d (%d,%d-%d,%d)"
-
-#: backend.c:5299
-msgid "You cannot do this while you are playing or observing"
-msgstr "No se puede hacer esto mientras se está jugando u observando"
-
-#  TRANSLATORS: BOARDS_RANKS, BOARD_FILES translatable?
-#: backend.c:6359
-msgid "Recompile to support this BOARD_RANKS or BOARD_FILES!"
-msgstr "¡Hace falta recompilar para disponer de BOARD_RANKS o BOARD_FILES!"
-
-#: backend.c:6851
-msgid "You are playing Black"
-msgstr "Usted juega negras"
-
-#: backend.c:6860 backend.c:6888
-msgid "You are playing White"
-msgstr "Usted juega blancas"
-
-#: backend.c:6870 backend.c:6896 backend.c:7018 backend.c:7043 backend.c:7059
-#: backend.c:15645
-msgid "It is White's turn"
-msgstr "Turno de las blancas"
-
-#: backend.c:6874 backend.c:6900 backend.c:7026 backend.c:7049 backend.c:7081
-#: backend.c:15637
-msgid "It is Black's turn"
-msgstr "Turno de las negras"
-
-#: backend.c:6913
-msgid "Displayed position is not current"
-msgstr "La posición mostrada no es la actual"
-
-#: backend.c:7116
-msgid "rights granted"
-msgstr "derechos otorgados"
-
-#: backend.c:7116
-msgid "rights revoked"
-msgstr "derechos revocados"
-
-#: backend.c:7169
-msgid "Illegal move"
-msgstr "Jugada ilegal"
-
-#: backend.c:7249
-msgid "End of game"
-msgstr "Fin del juego"
-
-#: backend.c:7252
-msgid "Incorrect move"
-msgstr "Jugada incorrecta"
-
-#: backend.c:7655 backend.c:7811
-msgid "Pull pawn backwards to under-promote"
-msgstr "Retrasar el peón a la posición previa a la coronación"
-
-#: backend.c:7772
-msgid "only marked squares are legal"
-msgstr "solo son legales los escaques señalados"
-
-#: backend.c:8093
-msgid "Swiss tourney finished"
-msgstr "Torneo suizo terminado"
-
-#: backend.c:8609
-msgid "could not load EGBB library"
-msgstr "no se ha podido cargar la biblioteca de base de datos de finales de partida"
-
-#: backend.c:8612
-msgid "wrong EGBB version"
-msgstr "versión incorrecta de base de datos de finales de partida"
-
-#: backend.c:8725
-msgid "Invalid pairing from pairing engine"
-msgstr "El bando del otro motor no es válido"
-
-#: backend.c:8892
-#, c-format
-msgid "Illegal move \"%s\" from %s machine"
-msgstr "Jugada ilegal \"%s\" del %s motor"
-
-#: backend.c:9179
-msgid "Bad FEN received from engine"
-msgstr "El FEN recibido del motor es incorrecto"
-
-#: backend.c:9280
-msgid "Engine did not send setup for non-standard variant"
-msgstr "El motor no ha enviado la configuración para la variante no estándar"
-
-#: backend.c:9358 backend.c:14667 backend.c:14735
-#, c-format
-msgid "%s does not support analysis"
-msgstr "%s no admite análisis"
-
-#: backend.c:9424
-#, c-format
-msgid "Illegal move \"%s\" (rejected by %s chess program)"
-msgstr "Jugada ilegal \"%s\" (rechazada por el programa de ajedrez %s)"
-
-#: backend.c:9455
-#, c-format
-msgid "Failed to start %s chess program %s on %s: %s\n"
-msgstr "Fallo al iniciar el programa de ajedrez %s %s en %s: %s\n"
-
-#: backend.c:9476
-#, c-format
-msgid "Hint: %s"
-msgstr "Sugerencia: %s"
-
-#: backend.c:9481
-#, c-format
-msgid ""
-"Illegal hint move \"%s\"\n"
-"from %s chess program"
-msgstr ""
-"La jugada sugerida \"%s\"\n"
-"por el programa de ajedrez %s no es válida"
-
-#: backend.c:9656
-msgid "Machine accepts your draw offer"
-msgstr "La máquina acepta su oferta de tablas"
-
-# TRANSLATORS: Action / Draw translatable?
-#: backend.c:9659
-msgid ""
-"Machine offers a draw.\n"
-"Select Action / Draw to accept."
-msgstr ""
-"La máquina ofrece tablas.\n"
-"Seleccione Action / Draw si está de acuerdo."
-
-#. TRANSLATORS: PV = principal variation, the variation the chess engine thinks is the best for everyone
-#: backend.c:9777
-msgid "failed writing PV"
-msgstr "fallo al escribir la PV"
-
-#: backend.c:10083
-#, c-format
-msgid "Ambiguous move in ICS output: \"%s\""
-msgstr "Jugada ambigua en la salida ICS: \"%s\""
-
-#: backend.c:10093
-#, c-format
-msgid "Illegal move in ICS output: \"%s\""
-msgstr "Jugada ilegal en la salida ICS: \"%s\""
-
-#: backend.c:10104
-msgid "Gap in move list"
-msgstr "Hueco en la lista de jugadas"
-
-#: backend.c:10782
-#, c-format
-msgid "Variant %s not supported by %s"
-msgstr "La variante %s no es admitida por %s"
-
-#: backend.c:10789
-#, c-format
-msgid ", but %s is"
-msgstr ", pero %s es"
-
-#: backend.c:10945
-#, c-format
-msgid "Startup failure on '%s'"
-msgstr "Fallo al iniciar '%s'"
-
-#: backend.c:10976
-msgid "Waiting for first chess program"
-msgstr "Esperando al primer programa de ajedrez"
-
-#: backend.c:10981 backend.c:14953
-msgid "Waiting for second chess program"
-msgstr "Esperando al segundo programa de ajedrez"
-
-#: backend.c:11030
-msgid "Could not write on tourney file"
-msgstr "No se ha podido escribir en el fichero de torneos"
-
-#: backend.c:11104
-msgid ""
-"You cannot replace an engine while it is engaged!\n"
-"Terminate its game first."
-msgstr ""
-"¡No se puede reemplazar un motor mientras está ocupado!\n"
-"Termine primero la partida del motor."
-
-#: backend.c:11118
-msgid "No engine with the name you gave is installed"
-msgstr "No hay ningún motor instalado con el nombre indicado"
-
-#: backend.c:11120
-msgid ""
-"First change an engine by editing the participants list\n"
-"of the Tournament Options dialog"
-msgstr ""
-"Cambie primero un motor editando la lista de participantes\n"
-"en el diálogo de las Opciones de Torneo"
-
-#: backend.c:11121
-msgid "You can only change one engine at the time"
-msgstr "Solo se puede cambiar un motor a la vez"
-
-#: backend.c:11136 backend.c:11285
-#, c-format
-msgid "No engine %s is installed"
-msgstr "No hay ningún motor %s instalado"
-
-#: backend.c:11156
-msgid ""
-"You must supply a tournament file,\n"
-"for storing the tourney progress"
-msgstr ""
-"Hay que proporcionar un fichero de torneos,\n"
-"para almacenar el progreso del torneo"
-
-#: backend.c:11166
-msgid "Not enough participants"
-msgstr "No hay suficientes participantes"
-
-#: backend.c:11369
-msgid "Bad tournament file"
-msgstr "Archivo de torneos incorrecto"
-
-#: backend.c:11381
-msgid "Waiting for other game(s)"
-msgstr "Esperando por otra(s) partida(s)"
-
-#: backend.c:11394
-msgid "No pairing engine specified"
-msgstr "iNo se ha especificado el otro motor"
-
-#: backend.c:11879
-#, c-format
-msgid "Average solving time %4.2f sec (total time %4.2f sec) "
-msgstr "Tiempo medio de resolución %4.2f s (tiempo total %4.2f s) "
-
-#: backend.c:11881
-#, c-format
-msgid "%d avoid-moves played "
-msgstr "%d movimientos de evasión jugados "
-
-#: backend.c:11883
-#, c-format
-msgid "Solved %d out of %d (%3.1f%%) "
-msgstr "Resueltos %d de %d (%3.1f%%) "
-
-#: backend.c:11886
-#, c-format
-msgid "Match %s vs. %s: final score %d-%d-%d"
-msgstr "Encuentro %s - %s: puntuación final %d-%d-%d"
-
-#: backend.c:12363 backend.c:12399
-#, c-format
-msgid "Illegal move: %d.%s%s"
-msgstr "Jugada ilegal: %d.%s%s"
-
-#: backend.c:12388
-#, c-format
-msgid "Ambiguous move: %d.%s%s"
-msgstr "Jugada ambigua: %d.%s%s"
-
-#: backend.c:12442 backend.c:13495 backend.c:13695 backend.c:14065
-#, c-format
-msgid "Can't open \"%s\""
-msgstr "No se puede abrir \"%s\""
-
-#: backend.c:12454 menus.c:118
-msgid "Cannot build game list"
-msgstr "No se pudo construir la lista de partidas"
-
-#: backend.c:12539
-msgid "No more games in this message"
-msgstr "No hay más partidas en este mensaje"
-
-#: backend.c:12579
-msgid "No game has been loaded yet"
-msgstr "Ninguna partida se ha cargado aún"
-
-#: backend.c:12583 backend.c:13476 ngamelist.c:129
-msgid "Can't back up any further"
-msgstr "Ya no se puede ir más atrás"
-
-#: backend.c:13030
-msgid "Game number out of range"
-msgstr "Número de partida fuera de rango"
-
-#: backend.c:13041
-msgid "Can't seek on game file"
-msgstr "No se puede buscar en archivo de partidas"
-
-#: backend.c:13099
-msgid "Game not found in file"
-msgstr "Partida no hallada en archivo"
-
-#: backend.c:13230 backend.c:13573
-msgid "Bad FEN position in file"
-msgstr "Posición FEN incorrecta en archivo"
-
-#: backend.c:13388
-msgid "No moves in game"
-msgstr "Ninguna jugada en la partida"
-
-#: backend.c:13472
-msgid "No position has been loaded yet"
-msgstr "Ninguna posición se ha cargado aún"
-
-#: backend.c:13533 backend.c:13544
-msgid "Can't seek on position file"
-msgstr "No se puede buscar en archivo de aperturas"
-
-#: backend.c:13551 backend.c:13563
-msgid "Position not found in file"
-msgstr "No se halló la posición en el archivo"
-
-#: backend.c:13610
-msgid "Black to play"
-msgstr "Negras juegan"
-
-#: backend.c:13613
-msgid "White to play"
-msgstr "Blancas juegan"
-
-#: backend.c:13700 backend.c:14070
-msgid "Waiting for access to save file"
-msgstr "Esperando a tener acceso para guardar el fichero"
-
-#: backend.c:13702
-msgid "Saving game"
-msgstr "Guardando partida"
-
-#: backend.c:13703
-msgid "Bad Seek"
-msgstr "Búsqueda incorrecta"
-
-#: backend.c:14072
-msgid "Saving position"
-msgstr "Guardando posición"
-
-#: backend.c:14198
-msgid ""
-"You have edited the game history.\n"
-"Use Reload Same Game and make your move again."
-msgstr ""
-"Usted ha editado el historial de la partida.\n"
-"Use «Reload Same Game» y vuelva a realizar un movimiento."
-
-#: backend.c:14203
-msgid ""
-"You have entered too many moves.\n"
-"Back up to the correct position and try again."
-msgstr ""
-"Usted ha introducido demasiadas jugadas.\n"
-"Retroceda hasta la posición correcta e inténtelo de nuevo."
-
-#: backend.c:14208
-msgid ""
-"Displayed position is not current.\n"
-"Step forward to the correct position and try again."
-msgstr ""
-"La posición que se está mostrando no es la actual.\n"
-"Avance hasta la posición correcta e inténtelo de nuevo."
-
-#: backend.c:14255
-msgid "You have not made a move yet"
-msgstr "Usted no ha realizado todavía ninguna jugada"
-
-#: backend.c:14276
-msgid ""
-"The cmail message is not loaded.\n"
-"Use Reload CMail Message and make your move again."
-msgstr ""
-"El mensaje «cmail» no está cargado.\n"
-"Use «Reload CMail Message» y vuelva a realizar un movimiento."
-
-#: backend.c:14281
-msgid "No unfinished games"
-msgstr "No hay partidas sin terminar"
-
-#: backend.c:14287
-#, c-format
-msgid ""
-"You have already mailed a move.\n"
-"Wait until a move arrives from your opponent.\n"
-"To resend the same move, type\n"
-"\"cmail -remail -game %s\"\n"
-"on the command line."
-msgstr ""
-"Ya ha enviado una jugada por correo.\n"
-"Espere hasta recibir una jugada de su adversario.\n"
-"Para volver a enviar la misma jugada, teclee\n"
-"\"cmail -remail -game %s\"\n"
-"en la línea de órdenes."
-
-#: backend.c:14302
-msgid "Failed to invoke cmail"
-msgstr "Fallo al invocar cmail"
-
-#: backend.c:14364
-#, c-format
-msgid "Waiting for reply from opponent\n"
-msgstr "Esperando respuesta del oponente\n"
-
-#: backend.c:14386
-#, c-format
-msgid "Still need to make move for game\n"
-msgstr "Todavía necesita hacer una jugada para la partida\n"
-
-#: backend.c:14390
-#, c-format
-msgid "Still need to make moves for both games\n"
-msgstr "Todavía necesita hacer jugadas para ambas partidas\n"
-
-#: backend.c:14394
-#, c-format
-msgid "Still need to make moves for all %d games\n"
-msgstr "Todavía necesita hacer jugadas para las %d partidas\n"
-
-#: backend.c:14401
-#, c-format
-msgid "Still need to make a move for game %s\n"
-msgstr "Todavía necesita hacer una jugada para la partida %s\n"
-
-#: backend.c:14407
-#, c-format
-msgid "No unfinished games\n"
-msgstr "No hay juegos sin terminar\n"
-
-#: backend.c:14409
-#, c-format
-msgid "Ready to send mail\n"
-msgstr "Listo para enviar correo\n"
-
-#: backend.c:14414
-#, c-format
-msgid "Still need to make moves for games %s\n"
-msgstr "Todavía necesita hacer jugadas para las partidas %s\n"
-
-#: backend.c:14617
-msgid "Edit comment"
-msgstr "Editar comentario"
-
-#: backend.c:14619
-#, c-format
-msgid "Edit comment on %d.%s%s"
-msgstr "Editar comentario en %d.%s%s"
-
-#: backend.c:14674
-#, c-format
-msgid "You are not observing a game"
-msgstr "Usted no está observando una partida"
-
-#: backend.c:14785
-msgid "It is not White's turn"
-msgstr "No es turno de las blancas"
-
-#: backend.c:14866
-msgid "It is not Black's turn"
-msgstr "No es turno de las negras"
-
-#: backend.c:14974
-#, c-format
-msgid "Starting %s chess program"
-msgstr "Iniciando el programa de ajedrez %s"
-
-#: backend.c:15002 backend.c:16189
-msgid ""
-"Wait until your turn,\n"
-"or select 'Move Now'."
-msgstr ""
-"Espere su turno.\n"
-"o seleccione 'Move Now'."
-
-#: backend.c:15145
-msgid "Training mode off"
-msgstr "Modo de entrenamiento apagado"
-
-#: backend.c:15153
-msgid "Training mode on"
-msgstr "Modo de entrenamiento activo"
-
-#: backend.c:15156
-msgid "Already at end of game"
-msgstr "Ya se encuentra al final de la partida"
-
-#: backend.c:15246
-msgid "Warning: You are still playing a game"
-msgstr "Advertencia: Usted todavía está jugando una partida"
-
-#: backend.c:15249
-msgid "Warning: You are still observing a game"
-msgstr "Advertencia: Usted todavía está observando una partida"
-
-#: backend.c:15252
-msgid "Warning: You are still examining a game"
-msgstr "Advertencia: Usted todavía está examinando una partida"
-
-#: backend.c:15322
-msgid "Click clock to clear board"
-msgstr "Pinche el reloj para limpiar el tablero"
-
-#: backend.c:15332
-msgid "Close ICS engine analyze..."
-msgstr "Cerrar el modo de análisis del motor ICS..."
-
-#: backend.c:15662
-msgid "That square is occupied"
-msgstr "Ese cuadro está ocupado"
-
-#: backend.c:15686 backend.c:15712
-msgid "There is no pending offer on this move"
-msgstr "No hay oferta pendiente para esta jugada"
-
-#: backend.c:15748 backend.c:15759
-msgid "Your opponent is not out of time"
-msgstr "Su oponente no está fuera de tiempo"
-
-#: backend.c:15827
-msgid "You must make your move before offering a draw"
-msgstr "Debe hacer su jugada antes de ofrecer tablas"
-
-#: backend.c:16171
-msgid "You are not examining a game"
-msgstr "Usted no está examinando una partida"
-
-#: backend.c:16175
-msgid "You can't revert while pausing"
-msgstr "No puede revertir si está en pausa"
-
-#: backend.c:16229 backend.c:16236
-msgid "It is your turn"
-msgstr "Es su turno"
-
-#: backend.c:16287 backend.c:16294 backend.c:16380 backend.c:16387
-msgid "Wait until your turn."
-msgstr "Espero su turno."
-
-#: backend.c:16299
-msgid "No hint available"
-msgstr "No hay sugerencia disponible"
-
-#: backend.c:16314 backend.c:16345 ngamelist.c:365
-msgid "Game list not loaded or empty"
-msgstr "La lista de partidas no se ha cargado o está vacía"
-
-#: backend.c:16352
-msgid "Book file exists! Try again for overwrite."
-msgstr "¡Ya existe el fichero del libro! Inténtelo de nuevo si quiere sobreescribirlo."
-
-#: backend.c:16833
-#, c-format
-msgid "Error writing to %s chess program"
-msgstr "Error al escribir al %s programa de ajedrez"
-
-#: backend.c:16836 backend.c:16867
-#, c-format
-msgid "%s program exits in draw position (%s)"
-msgstr "El programa %s termina en posición de tablas (%s)"
-
-#: backend.c:16862
-#, c-format
-msgid "Error: %s chess program (%s) exited unexpectedly"
-msgstr "Error: el %s programa de ajedrez (%s) terminó inesperadamente"
-
-#: backend.c:16880
-#, c-format
-msgid "Error reading from %s chess program (%s)"
-msgstr "Error al leer del %s programa de ajedrez (%s)"
-
-#: backend.c:17312
-#, c-format
-msgid "%s engine has too many options\n"
-msgstr "El motor %s tiene demasiadas opciones\n"
-
-#: backend.c:17468
-msgid "Displayed move is not current"
-msgstr "La jugada ilustrada no es la actual"
-
-#: backend.c:17477
-msgid "Could not parse move"
-msgstr "No se pudo analizar la jugada"
-
-#: backend.c:17602 backend.c:17624
-msgid "Both flags fell"
-msgstr "Ambas banderas cayeron"
-
-#: backend.c:17604
-msgid "White's flag fell"
-msgstr "La bandera blanca cayó"
-
-#: backend.c:17626
-msgid "Black's flag fell"
-msgstr "La bandera negra cayó"
-
-#: backend.c:17757
-msgid "Clock adjustment not allowed in auto-flag mode"
-msgstr "El ajuste del reloj no está permitido en el modo de advertencia de tiempo automático"
-
-#: backend.c:18719
-msgid "Bad FEN position in clipboard"
-msgstr "Posición FEN incorrecta en portapapeles"
-
-#: book.c:598 book.c:874
-msgid "Polyglot book not valid"
-msgstr "El libro de Polyglot no es válido"
-
-#: book.c:722
-msgid "Book Fault"
-msgstr "Error en el libro"
-
-#: book.c:877
-msgid "Hash keys are different"
-msgstr "Las claves «hash» son diferentes"
-
-#: book.c:1053
-msgid "Could not create book"
-msgstr "No se ha podido crear el libro"
-
-#: dialogs.c:286
-msgid "Tournament file:          "
-msgstr "Fichero de torneos:       "
-
-#: dialogs.c:287
-msgid "For concurrent playing of tourney with multiple XBoards:"
-msgstr "Para jugar en torneos de forma concurrente con múltiples XBoards:"
-
-#: dialogs.c:288
-msgid "Sync after round"
-msgstr "Sincronizar después de la ronda"
-
-#: dialogs.c:289
-msgid "Sync after cycle"
-msgstr "Sincronizar después de una vuelta"
-
-#: dialogs.c:290
-msgid "Tourney participants:"
-msgstr "Participantes del torneo:"
-
-#: dialogs.c:291
-msgid "Select Engine:"
-msgstr "Seleccione Motor:"
-
-#: dialogs.c:299
-msgid "Tourney type (0 = round-robin, 1 = gauntlet):"
-msgstr "Tipo de torneo (0 = liga, 1 = uno contra todos):"
-
-#: dialogs.c:300
-msgid "Number of tourney cycles (or Swiss rounds):"
-msgstr "Número de vueltas del torneo (o rondas de torneo suizo)"
-
-#: dialogs.c:301
-msgid "Default Number of Games in Match (or Pairing):"
-msgstr "Número predeterminado de partidas del encuentro (o emparejamiento):"
-
-#: dialogs.c:302
-msgid "Pause between Match Games (msec):"
-msgstr "Pausa entre partidas del encuentro (ms):"
-
-#: dialogs.c:303
-msgid "Save Tourney Games on:"
-msgstr "Guardar partidas del torneo en:"
-
-#: dialogs.c:304
-msgid "Game File with Opening Lines:"
-msgstr "Fichero de partidas con líneas de apertura:"
-
-#: dialogs.c:305
-msgid "Game Number (-1 or -2 = Auto-Increment):"
-msgstr "Número de la partida (-1 o -2 = incremento automático):"
-
-#: dialogs.c:306
-msgid "File with Start Positions:"
-msgstr "Fichero con posiciones iniciales:"
-
-#: dialogs.c:307
-msgid "Position Number (-1 or -2 = Auto-Increment):"
-msgstr "Número de la posición (-1 o -2 = incremento automático):"
-
-#: dialogs.c:308
-msgid "Rewind Index after this many Games (0 = never):"
-msgstr "Rebobinar Índice después de este número de Partidas (0 = nunca)"
-
-#: dialogs.c:309
-msgid "Disable own engine books by default"
-msgstr "Inicialmente, desactivar los libros propios del motor"
-
-#: dialogs.c:310 dialogs.c:1840
-msgid "Time Control"
-msgstr "Control de tiempo"
-
-#: dialogs.c:311
-msgid "Common Engine"
-msgstr "General de los motores"
-
-#: dialogs.c:312 dialogs.c:446
-msgid "General Options"
-msgstr "Opciones generales"
-
-#: dialogs.c:313
-msgid "Continue Later"
-msgstr "Seguir más tarde"
-
-#: dialogs.c:314
-msgid "Replace Engine"
-msgstr "Reemplazar motor"
-
-#: dialogs.c:315
-msgid "Upgrade Engine"
-msgstr "Actualizar motor"
-
-#: dialogs.c:316
-msgid "Clone Tourney"
-msgstr "Clonar torneo"
-
-#: dialogs.c:356
-msgid "First you must specify an existing tourney file to clone"
-msgstr "En primer lugar, debe usted especificar un fichero de torneos que exista, para ser clonado"
-
-#: dialogs.c:372 dialogs.c:1549
-msgid "# no engines are installed"
-msgstr "# no hay ningún motor instalado"
-
-#: dialogs.c:380
-msgid "Internal error: PARTICIPANTS set wrong"
-msgstr "Error interno: PARTICIPANTS incorrecto"
-
-#: dialogs.c:388
-msgid "Tournament Options"
-msgstr "Opciones de Torneo"
-
-#: dialogs.c:407
-msgid "Absolute Analysis Scores"
-msgstr "Puntuaciones absolutas del análisis"
-
-#: dialogs.c:408
-msgid "Almost Always Queen (Detour Under-Promote)"
-msgstr "Casi siempre dama (rodeo para subcoronar)"
-
-#: dialogs.c:409 menus.c:729
-msgid "Animate Dragging"
-msgstr "Animar arrastre"
-
-#: dialogs.c:410 menus.c:730
-msgid "Animate Moving"
-msgstr "Animar movimiento"
-
-#: dialogs.c:411 menus.c:731
-msgid "Auto Flag"
-msgstr "Bandera automática"
-
-#: dialogs.c:412 menus.c:732
-msgid "Auto Flip View"
-msgstr "Cambio de lado automático"
-
-#: dialogs.c:413 menus.c:733
-msgid "Blindfold"
-msgstr "A ciegas"
-
-#. TRANSLATORS: the drop menu is used to drop a piece, e.g. during bughouse or editing a position
-#: dialogs.c:415
-msgid "Drop Menu"
-msgstr "Menú «drop»"
-
-#: dialogs.c:416
-msgid "Enable Variation Trees"
-msgstr "Activar árboles de variaciones"
-
-#: dialogs.c:417
-msgid "Headers in Engine Output Window"
-msgstr "Cabeceras en la ventana de salida del motor"
-
-#: dialogs.c:418
-msgid "Hide Thinking from Human"
-msgstr "Ocultar cogitaciones al jugar contra humano"
-
-#: dialogs.c:419 menus.c:738
-msgid "Highlight Last Move"
-msgstr "Iluminar última jugada"
-
-#: dialogs.c:420
-msgid "Highlight with Arrow"
-msgstr "Iluminar con flecha"
-
-#: dialogs.c:421 menus.c:741
-msgid "One-Click Moving"
-msgstr "Moviemento de un click"
-
-#: dialogs.c:422
-msgid "Periodic Updates (in Analysis Mode)"
-msgstr "Actualización periódica (en análisis)"
-
-#: dialogs.c:424
-msgid "Play Move(s) of Clicked PV (Analysis)"
-msgstr "Realizar la(s) jugada(s) de la PV escogida (análisis)"
-
-#: dialogs.c:425 dialogs.c:626 menus.c:743
-msgid "Ponder Next Move"
-msgstr "Prever siguente jugada"
-
-#: dialogs.c:426
-msgid "Popup Exit Messages"
-msgstr "Ventana emergente al salir"
-
-#: dialogs.c:427 menus.c:745
-msgid "Popup Move Errors"
-msgstr "Ventana emergente si error en jugada"
-
-#: dialogs.c:428
-msgid "Scores in Move List"
-msgstr "Puntuaciones de la lista de jugadas"
-
-#: dialogs.c:429
-msgid "Show Coordinates"
-msgstr "Mostrar coordenadas"
-
-#: dialogs.c:430
-msgid "Show Target Squares"
-msgstr "Mostrar casillas objetivo"
-
-#: dialogs.c:431
-msgid "Sticky Windows"
-msgstr "Ventanas adhesivas"
-
-#: dialogs.c:432 menus.c:748
-msgid "Test Legality"
-msgstr "Verificar legalidad"
-
-#: dialogs.c:433
-msgid "Top-Level Dialogs"
-msgstr "Diálogos de alto nivel"
-
-#: dialogs.c:434
-msgid "Flash Moves (0 = no flashing):"
-msgstr "Destello en las jugadas (0 = sin destello):"
-
-#: dialogs.c:435
-msgid "Flash Rate (high = fast):"
-msgstr "Velocidad de destello (high = rápido):"
-
-#: dialogs.c:436
-msgid "Animation Speed (high = slow):"
-msgstr "Velocidad de animación (high = lenta):"
-
-#: dialogs.c:437
-msgid "Zoom factor in Evaluation Graph:"
-msgstr "Factor de «zoom» en el grafo de evaluación:"
-
-#: dialogs.c:457
-msgid "Normal"
-msgstr "Normal"
-
-#: dialogs.c:458
-msgid "Makruk"
-msgstr "«Makruk» (tailandés)"
-
-#: dialogs.c:459
-msgid "FRC"
-msgstr "FRC (ajedrez aleatorio de Fischer)"
-
-#: dialogs.c:460
-msgid "Shatranj"
-msgstr "«Shatranj»"
-
-#: dialogs.c:461
-msgid "Wild castle"
-msgstr "Enroque salvaje"
-
-#: dialogs.c:462
-msgid "Knightmate"
-msgstr "Mate al caballo"
-
-#: dialogs.c:463
-msgid "No castle"
-msgstr "Sin enroque"
-
-#: dialogs.c:464
-msgid "Cylinder *"
-msgstr "Cilíndrico *"
-
-#: dialogs.c:465
-msgid "3-checks"
-msgstr "tres jaques"
-
-#: dialogs.c:466
-msgid "berolina *"
-msgstr "belorina *"
-
-#: dialogs.c:467
-msgid "atomic"
-msgstr "atómico"
-
-#: dialogs.c:468
-msgid "two kings"
-msgstr "dos reyes"
-
-#: dialogs.c:469
-msgid " "
-msgstr " "
-
-#: dialogs.c:470
-msgid "Spartan"
-msgstr "espartano"
-
-#: dialogs.c:471
-msgid "Board size ( -1 = default for selected variant):"
-msgstr "Tamaño del tablero ( -1 = el predeterminado para la variante seleccionada):"
-
-#: dialogs.c:472
-msgid "Number of Board Ranks:"
-msgstr "Número de filas del tablero:"
-
-#: dialogs.c:473
-msgid "Number of Board Files:"
-msgstr "Número de columnas del tablero:"
-
-#: dialogs.c:474
-msgid "Holdings Size:"
-msgstr "Tamaño tenencias:"
-
-#: dialogs.c:476
-msgid ""
-"Variants marked with * can only be played\n"
-"with legality testing off."
-msgstr ""
-"Las variantes señaladas con * solo pueden jugarse\n"
-"con la comprobación de legalidad desactivada."
-
-# What's this?
-#: dialogs.c:478
-msgid "ASEAN"
-msgstr "ASEAN"
-
-#: dialogs.c:479
-msgid "Great Shatranj (10x8)"
-msgstr "Gran shatranj (10x8)"
-
-#: dialogs.c:480
-msgid "Seirawan"
-msgstr "Seirawan"
-
-#: dialogs.c:481
-msgid "Falcon (10x8)"
-msgstr "Halcón (10x8)"
-
-#: dialogs.c:482
-msgid "Superchess"
-msgstr "Superajedrez"
-
-#: dialogs.c:483
-msgid "Capablanca (10x8)"
-msgstr "Capablanca (10x8)"
-
-#: dialogs.c:484
-msgid "Crazyhouse"
-msgstr "«Crazyhouse»"
-
-#: dialogs.c:485
-msgid "Gothic (10x8)"
-msgstr "Gótico (10x8)"
-
-#: dialogs.c:486
-msgid "Bughouse"
-msgstr "Pasapiezas"
-
-#: dialogs.c:487
-msgid "Janus (10x8)"
-msgstr "Janus (10x8)"
-
-#: dialogs.c:488
-msgid "Suicide"
-msgstr "Suicida"
-
-#: dialogs.c:489
-msgid "CRC (10x8)"
-msgstr "CRC (10x8)"
-
-# TRANSLATORS: give-away = losers?
-#: dialogs.c:490
-msgid "give-away"
-msgstr "pierde gana"
-
-#: dialogs.c:491
-msgid "grand (10x10)"
-msgstr "gran ajedrez (10x10)"
-
-# TRANSLATORS: give-away = losers?
-#: dialogs.c:492
-msgid "losers"
-msgstr "pierde gana"
-
-#: dialogs.c:493
-msgid "shogi (9x9)"
-msgstr "japonés (9x9)"
-
-#: dialogs.c:494
-msgid "fairy"
-msgstr "mágico"
-
-#: dialogs.c:495
-msgid "xiangqi (9x10)"
-msgstr "chino"
-
-#: dialogs.c:496
-msgid "mighty lion"
-msgstr "león poderoso"
-
-#: dialogs.c:497
-msgid "courier (12x8)"
-msgstr "ajedrez del mensajero (12x8)"
-
-#: dialogs.c:498
-msgid "elven chess (10x10)"
-msgstr "ajedrez élfico (10x10)"
-
-#: dialogs.c:499
-msgid "chu shogi (12x12)"
-msgstr "japonés (12x12)"
-
-#: dialogs.c:543
-#, c-format
-msgid "Warning: second engine (%s) does not support this!"
-msgstr "Advertencia: ¡el segundo motor (%s) no admite esto!"
-
-#: dialogs.c:572
-#, c-format
-msgid "Only bughouse is not available in viewer mode."
-msgstr "Solo pasapiezas no está disponible en el modo visor."
-
-#: dialogs.c:573
-#, c-format
-msgid ""
-"All variants not supported by the first engine\n"
-"(currently %s) are disabled."
-msgstr ""
-"Todas las variantes no disponibles en el primer motor\n"
-"(actualmente %s) están desactivas."
-
-#: dialogs.c:595
-msgid "New Variant"
-msgstr "Nueva variante"
-
-#: dialogs.c:627
-msgid "Maximum Number of CPUs per Engine:"
-msgstr "Número max. CPUs por motor:"
-
-#: dialogs.c:628
-msgid "Polygot Directory:"
-msgstr "Directorio de Ployglot:"
-
-#: dialogs.c:629
-msgid "Hash-Table Size (MB):"
-msgstr "Tamaño de la tabla de transposición (MB):"
-
-#: dialogs.c:630
-msgid "EGTB Path:"
-msgstr "Carpeta de la EGTB:"
-
-#: dialogs.c:631
-msgid "EGTB Cache Size (MB):"
-msgstr "Tamaño de la caché de la EGTB (MB):"
-
-#: dialogs.c:632
-msgid "Use GUI Book"
-msgstr "Usar el libro de la GUI"
-
-#: dialogs.c:633
-msgid "Opening-Book Filename:"
-msgstr "Fichero del libro de aperturas:"
-
-#: dialogs.c:634
-msgid "Book Depth (moves):"
-msgstr "Profundidad del libro (jugadas):"
-
-#: dialogs.c:635
-msgid "Book Variety (0) vs. Strength (100):"
-msgstr "Variedad del libro (0) frente a fuerza (100):"
-
-#: dialogs.c:636
-msgid "Engine #1 Has Own Book"
-msgstr "El motor 1 tiene libro propio"
-
-#: dialogs.c:637
-msgid "Engine #2 Has Own Book          "
-msgstr "El motor 2 tiene libro propio"
-
-#: dialogs.c:648
-msgid "Common Engine Settings"
-msgstr "Configuración general de los motores"
-
-#: dialogs.c:654
-msgid "Detect all Mates"
-msgstr "Detectar todos los mates"
-
-#: dialogs.c:655
-msgid "Verify Engine Result Claims"
-msgstr "Verificar avisos del motor"
-
-#: dialogs.c:656
-msgid "Draw if Insufficient Mating Material"
-msgstr "Tablas si el material es insuficiente"
-
-#: dialogs.c:657
-msgid "Adjudicate Trivial Draws (3-Move Delay)"
-msgstr "Adjudicar tablas triviales (regla de las tres jugadas)"
-
-#: dialogs.c:658
-msgid "N-Move Rule:"
-msgstr "Regla de las N jugadas:"
-
-#: dialogs.c:659
-msgid "N-fold Repeats:"
-msgstr "N repeticiones:"
-
-#: dialogs.c:660
-msgid "Draw after N Moves Total:"
-msgstr "Adjudicar mate después de:"
-
-#: dialogs.c:661
-msgid "Win / Loss Threshold:"
-msgstr "Límite para adjudicar juego:"
-
-#: dialogs.c:662
-msgid "Negate Score of Engine #1"
-msgstr "Negar puntuación del motor #1"
-
-#: dialogs.c:663
-msgid "Negate Score of Engine #2"
-msgstr "Negar puntuación del motor #2"
-
-#: dialogs.c:670
-msgid "Adjudicate non-ICS Games"
-msgstr "Adjudicar partidas no ICS"
-
-#: dialogs.c:683
-msgid "Auto-Kibitz"
-msgstr "Auto Kibitz"
-
-#: dialogs.c:684
-msgid "Auto-Comment"
-msgstr "Auto-comentario"
-
-#: dialogs.c:685
-msgid "Auto-Observe"
-msgstr "Auto-Observar"
-
-#: dialogs.c:686
-msgid "Auto-Raise Board"
-msgstr "Tablero al frente (automático)"
-
-#: dialogs.c:687
-msgid "Auto-Create Logon Script"
-msgstr "Creación de fichero de registro automática"
-
-#: dialogs.c:688
-msgid "Background Observe while Playing"
-msgstr "Seguir observando mientras se juega"
-
-#: dialogs.c:689
-msgid "Dual Board for Background-Observed Game"
-msgstr "Tablero dual para partidas observadas"
-
-#: dialogs.c:690
-msgid "Get Move List"
-msgstr "Leer lista de jugadas"
-
-#: dialogs.c:691
-msgid "Quiet Play"
-msgstr "Jugar en silencio"
-
-#: dialogs.c:692
-msgid "Seek Graph"
-msgstr "Buscar gráfica"
-
-#: dialogs.c:693
-msgid "Auto-Refresh Seek Graph"
-msgstr "Grafo de búsqueda con refresco automático"
-
-#: dialogs.c:694
-msgid "Auto-InputBox PopUp"
-msgstr "Ventana emergente de buzón automática"
-
-#: dialogs.c:695
-msgid "Quit after game"
-msgstr "Después de la partida salir"
-
-#: dialogs.c:696
-msgid "Premove"
-msgstr "Pre-jugada"
-
-#: dialogs.c:697
-msgid "Premove for White"
-msgstr "Prejugada de las blancas"
-
-#: dialogs.c:698
-msgid "First White Move:"
-msgstr "1er. mov. blancas"
-
-#: dialogs.c:699
-msgid "Premove for Black"
-msgstr "Prejugada de las negras"
-
-#: dialogs.c:700
-msgid "First Black Move:"
-msgstr "1er. mov. negras"
-
-#: dialogs.c:702
-msgid "Alarm"
-msgstr "Alarma"
-
-#: dialogs.c:703
-msgid "Alarm Time (msec):"
-msgstr "Tiempo de la alarma (ms):"
-
-#: dialogs.c:705
-msgid "Colorize Messages"
-msgstr "Mensajes coloreados"
-
-#: dialogs.c:706
-msgid "Shout Text Colors:"
-msgstr "Colores del texto que se expresa en voz alta:"
-
-#: dialogs.c:707
-msgid "S-Shout Text Colors:"
-msgstr "Colores «S» del texto que se expresa en voz alta:"
-
-#: dialogs.c:708
-msgid "Channel #1 Text Colors:"
-msgstr "Colores del texto del canal 1:"
-
-#: dialogs.c:709
-msgid "Other Channel Text Colors:"
-msgstr "Colores del texto del otro canal:"
-
-#: dialogs.c:710
-msgid "Kibitz Text Colors:"
-msgstr "Colores del texto kibitz:"
-
-#: dialogs.c:711
-msgid "Tell Text Colors:"
-msgstr "Colores del texto de hablar con otros:"
-
-#: dialogs.c:712
-msgid "Challenge Text Colors:"
-msgstr "Colores del texto de desafíos:"
-
-#: dialogs.c:713
-msgid "Request Text Colors:"
-msgstr "Colores del texto de peticiones:"
-
-#: dialogs.c:714
-msgid "Seek Text Colors:"
-msgstr "Colores del texto de búsqueda:"
-
-#: dialogs.c:715
-msgid "Other Text Colors:"
-msgstr "Colores del otro texto:"
-
-#: dialogs.c:722
-msgid "ICS Options"
-msgstr "Opciones ICS"
-
-#: dialogs.c:727
-msgid "Exact position match"
-msgstr "Coincidencia exacta de la posición"
-
-#: dialogs.c:727
-msgid "Shown position is subset"
-msgstr "La posición mostrada es un subconjunto"
-
-#: dialogs.c:727
-msgid "Same material with exactly same Pawn chain"
-msgstr "Mismo material con exactamente la misma cadena de peones"
-
-#: dialogs.c:728
-msgid "Same material"
-msgstr "Mismo material"
-
-#: dialogs.c:728
-msgid "Material range (top board half optional)"
-msgstr "Rango de material (mitad superior del tablero opcional)"
-
-#: dialogs.c:728
-msgid "Material difference (optional stuff balanced)"
-msgstr "Diferencia de material (situación equilibrada opcional)"
-
-#: dialogs.c:743
-msgid "Auto-Display Tags"
-msgstr "Etiquetas de visualización automática"
-
-#: dialogs.c:744
-msgid "Auto-Display Comment"
-msgstr "Comentario de visualización automática"
-
-#: dialogs.c:745
-msgid ""
-"Auto-Play speed of loaded games\n"
-"(0 = instant, -1 = off):"
-msgstr ""
-"Velocidad de juego automático de las partidas cargadas\n"
-"(0 = instantánea, -1 = desactivada):"
-
-#: dialogs.c:746
-msgid "Seconds per Move:"
-msgstr "Segundos por jugadas:"
-
-#: dialogs.c:747
-msgid ""
-"\n"
-"options to use in game-viewer mode:"
-msgstr ""
-"\n"
-"opciones para el modo de visualización de partidas:"
-
-#: dialogs.c:749
-msgid ""
-"\n"
-"Thresholds for position filtering in game list:"
-msgstr ""
-"\n"
-"Umbral para filtrar posiciones en la lista de partidas:"
-
-#: dialogs.c:750
-msgid "Elo of strongest player at least:"
-msgstr "Elo del mejor jugador como mínimo:"
-
-#: dialogs.c:751
-msgid "Elo of weakest player at least:"
-msgstr "Elo del peor jugador como mínimo:"
-
-#: dialogs.c:752
-msgid "No games before year:"
-msgstr "Número de partidas antes del año:"
-
-#: dialogs.c:753
-msgid "Minimum nr consecutive positions:"
-msgstr "Número mínimo de posiciones consecutivas:"
-
-#: dialogs.c:755
-msgid "Search mode:"
-msgstr "Modo de búsqueda:"
-
-#: dialogs.c:756
-msgid "Also match reversed colors"
-msgstr "También colores invertidos"
-
-#: dialogs.c:757
-msgid "Also match left-right flipped position"
-msgstr "También posición volteada izquierda-derecha"
-
-#: dialogs.c:766
-msgid "Load Game Options"
-msgstr "Opciones al leer partida"
-
-#: dialogs.c:778
-msgid "Auto-Save Games"
-msgstr "Guardar partidas automáticamente"
-
-#: dialogs.c:779
-msgid "Own Games Only"
-msgstr "Solo partidas propias"
-
-#: dialogs.c:780
-msgid "Save Games on File:"
-msgstr "Guardar partidas en fichero"
-
-#: dialogs.c:781
-msgid "Save Final Positions on File:"
-msgstr "Guardar en fichero posiciones finales:"
-
-#: dialogs.c:782
-msgid "PGN Event Header:"
-msgstr "Cabecera PGN del evento:"
-
-#: dialogs.c:783
-msgid "Old Save Style (as opposed to PGN)"
-msgstr "Estilo de guardado antiguo (en contraposición a PGN)"
-
-#: dialogs.c:784
-msgid "Include Number Tag in tourney PGN"
-msgstr "Incluir etiqueta de número en el PGN del torneo"
-
-#: dialogs.c:785
-msgid "Save Score/Depth Info in PGN"
-msgstr "Guardar la información de puntuación/profundidad en el PGN"
-
-#: dialogs.c:786
-msgid "Save Out-of-Book Info in PGN           "
-msgstr "Guardar información fuera-de-libro en PGN "
-
-#: dialogs.c:793
-msgid "Save Game Options"
-msgstr "Opciones al salvar partida"
-
-#: dialogs.c:802
-msgid "No Sound"
-msgstr "Sin sonido"
-
-#: dialogs.c:803
-msgid "Default Beep"
-msgstr "Bip predeterminado"
-
-#: dialogs.c:804
-msgid "Above WAV File"
-msgstr "Fichero WAV de arriba"
-
-#: dialogs.c:805
-msgid "Car Horn"
-msgstr "Bocina de coche"
-
-#: dialogs.c:806
-msgid "Cymbal"
-msgstr "Platillos"
-
-#: dialogs.c:807
-msgid "Ding"
-msgstr "Timbre"
-
-#: dialogs.c:808
-msgid "Gong"
-msgstr "«Gong»"
-
-#: dialogs.c:809
-msgid "Laser"
-msgstr "Láser"
-
-# TRANSLATORS
-#: dialogs.c:810
-msgid "Penalty"
-msgstr "Penalización"
-
-#: dialogs.c:811
-msgid "Phone"
-msgstr "Teléfono"
-
-#: dialogs.c:812
-msgid "Pop"
-msgstr "«Pop»"
-
-#: dialogs.c:813
-msgid "Roar"
-msgstr "Rugido"
-
-#: dialogs.c:814
-msgid "Slap"
-msgstr "Palmada"
-
-# TRANSLATORS
-#: dialogs.c:815
-msgid "Wood Thunk"
-msgstr "«Wood thunk»"
-
-#: dialogs.c:817
-msgid "User File"
-msgstr "Fichero del usuario"
-
-#: dialogs.c:840
-msgid "User WAV File:"
-msgstr "Fichero WAV del usuario:"
-
-#: dialogs.c:841
-msgid "Sound Program:"
-msgstr "Programa de sonido:"
-
-#: dialogs.c:842
-msgid "Try-Out Sound:"
-msgstr "Sonido de prueba"
-
-#: dialogs.c:843
-msgid "Play"
-msgstr "Reproducir"
-
-#: dialogs.c:844
-msgid "Move:"
-msgstr "Jugada:"
-
-# TRANSLATORS
-#: dialogs.c:845
-msgid "Win:"
-msgstr "Victorias:"
-
-#: dialogs.c:846
-msgid "Lose:"
-msgstr "Derrotas:"
-
-#: dialogs.c:847
-msgid "Draw:"
-msgstr "Tablas"
-
-#: dialogs.c:848
-msgid "Unfinished:"
-msgstr "No terminadas:"
-
-#: dialogs.c:849
-msgid "Alarm:"
-msgstr "Alarma:"
-
-#: dialogs.c:850
-msgid "Challenge:"
-msgstr "Desafío:"
-
-#: dialogs.c:852
-msgid "Sounds Directory:"
-msgstr "Carpeta de sonidos:"
-
-#: dialogs.c:853
-msgid "Shout:"
-msgstr "En voz alta:"
-
-# TRANSLATORS
-#: dialogs.c:854
-msgid "S-Shout:"
-msgstr "En voz alta S"
-
-#: dialogs.c:855
-msgid "Channel:"
-msgstr "Canal:"
-
-#: dialogs.c:856
-msgid "Channel 1:"
-msgstr "Canal 1:"
-
-#: dialogs.c:857
-msgid "Tell:"
-msgstr "Decir:"
-
-#: dialogs.c:858
-msgid "Kibitz:"
-msgstr "Kibitz:"
-
-#: dialogs.c:859
-msgid "Request:"
-msgstr "Pedir:"
-
-#: dialogs.c:860
-msgid "Lion roar:"
-msgstr "Rugido de león:"
-
-#: dialogs.c:861
-msgid "Seek:"
-msgstr "Buscar:"
-
-#: dialogs.c:877
-msgid "Sound Options"
-msgstr "Opciones de sonido"
-
-#: dialogs.c:893
-msgid "Selectable themes:"
-msgstr "Temas seleccionables:"
-
-#: dialogs.c:895
-msgid "New name for current theme:"
-msgstr "Nuevo nombre para el tema actual:"
-
-#: dialogs.c:898
-msgid "White Piece Color:"
-msgstr "Color de las piezas blancas:"
-
-#. TRANSLATORS: R = single letter for the color red
-#: dialogs.c:901 dialogs.c:910 dialogs.c:916 dialogs.c:922 dialogs.c:928
-#: dialogs.c:934
-msgid "R"
-msgstr "R"
-
-#. TRANSLATORS: G = single letter for the color green
-#: dialogs.c:903 dialogs.c:911 dialogs.c:917 dialogs.c:923 dialogs.c:929
-#: dialogs.c:935
-msgid "G"
-msgstr "V"
-
-#. TRANSLATORS: B = single letter for the color blue
-#: dialogs.c:905 dialogs.c:912 dialogs.c:918 dialogs.c:924 dialogs.c:930
-#: dialogs.c:936 dialogs.c:1650 dialogs.c:1656 dialogs.c:1662 dialogs.c:1668
-#: dialogs.c:1674 dialogs.c:1680 dialogs.c:1686
-msgid "B"
-msgstr "A"
-
-#. TRANSLATORS: D = single letter to make a color darker
-#: dialogs.c:907 dialogs.c:913 dialogs.c:919 dialogs.c:925 dialogs.c:931
-#: dialogs.c:937
-msgid "D"
-msgstr "O"
-
-#: dialogs.c:908
-msgid "Black Piece Color:"
-msgstr "Color de las piezas negras:"
-
-#: dialogs.c:914
-msgid "Light Square Color:"
-msgstr "Color de los escaques claros"
-
-#: dialogs.c:920
-msgid "Dark Square Color:"
-msgstr "Color de los escaques oscuros"
-
-#: dialogs.c:926
-msgid "Highlight Color:"
-msgstr "Color de escaque iluminado"
-
-#: dialogs.c:932
-msgid "Premove Highlight Color:"
-msgstr "Color de iluminación de prejugada:"
-
-#: dialogs.c:938
-msgid "Flip Pieces Shogi Style        (Colored buttons restore default)"
-msgstr "Voltear piezas estilo Shogi    (Botones de colores predefinidos)"
-
-#: dialogs.c:940
-msgid "Mono Mode"
-msgstr "Modo mono"
-
-#: dialogs.c:941
-msgid "Logo Size (0=off, requires restart):"
-msgstr "Tamaño del logo (0=desactivado, requiere reiniciar):"
-
-#: dialogs.c:942
-msgid "Line Gap (-1 = default for board size):"
-msgstr "Hueco de la línea (-1 = el predeterminado para el tamaño del tablero):"
-
-#: dialogs.c:943
-msgid "Use Board Textures"
-msgstr "Utilizar tablero con texturas"
-
-#: dialogs.c:944
-msgid "Light-Squares Texture File:"
-msgstr "Fichero de texturas para escaques claros:"
-
-#: dialogs.c:945
-msgid "Dark-Squares Texture File:"
-msgstr "Fichero de texturas para escaques oscuros:"
-
-#: dialogs.c:946
-msgid "Use external piece bitmaps with their own colors"
-msgstr "Utilizar «bitmaps» externos para las piezas con sus propios colores"
-
-#: dialogs.c:947
-msgid "Directory with Pieces Images:"
-msgstr "Carpeta con imágenes de piezas:"
-
-#: dialogs.c:1018
-msgid "# no themes are defined"
-msgstr "# no hay ningún tema definido"
-
-#: dialogs.c:1030
-msgid "Board Options"
-msgstr "Opciones de tablero"
-
-#: dialogs.c:1101 menus.c:646
-msgid "ICS text menu"
-msgstr "Menú de texto ICS"
-
-#: dialogs.c:1130
-msgid "clear"
-msgstr "borrar"
-
-#: dialogs.c:1131
-msgid "save changes"
-msgstr "guardar cambios"
-
-#: dialogs.c:1229
-msgid "add next move"
-msgstr "añadir siguente jugada"
-
-#: dialogs.c:1230
-msgid "commit changes"
-msgstr "hacer cambios"
-
-#: dialogs.c:1253
-msgid "Edit book"
-msgstr "Editar libro"
-
-#: dialogs.c:1270 dialogs.c:1277 menus.c:648
-msgid "Tags"
-msgstr "Etiquetas"
-
-#: dialogs.c:1285
-msgid "Registered Engines"
-msgstr "Motores registrados"
-
-#: dialogs.c:1401
-msgid "ICS input box"
-msgstr "Cuadro de entrada ICS"
-
-#: dialogs.c:1433
-msgid "Type a move"
-msgstr "Teclear una jugada"
-
-#: dialogs.c:1459
-msgid "Engine has no options"
-msgstr "El motor no tiene opciones"
-
-#: dialogs.c:1461
-msgid "Engine Settings"
-msgstr "Configuración del motor"
-
-#: dialogs.c:1502
-msgid "Select engine from list:"
-msgstr "Seleccionar un motor de la lista:"
-
-#: dialogs.c:1505
-msgid "or specify one below:"
-msgstr "o especificar uno debajo:"
-
-#: dialogs.c:1506
-msgid "Nickname (optional):"
-msgstr "Sobrenombre (opcional):"
-
-#: dialogs.c:1507
-msgid "Use nickname in PGN player tags of engine-engine games"
-msgstr "Usar el sobrenombre de las etiquetas de jugadores del PGN en las partidas motor-motor"
-
-#: dialogs.c:1508
-msgid "Engine Directory:"
-msgstr "Carpeta del motor:"
-
-#: dialogs.c:1509
-msgid "Engine Command:"
-msgstr "Instrucción para el motor:"
-
-#: dialogs.c:1510
-msgid "(Directory will be derived from engine path when empty)"
-msgstr "(La carpeta se derivará de la del motor cuando esté vacía)"
-
-#: dialogs.c:1511
-msgid "UCI"
-msgstr "UCI"
-
-#: dialogs.c:1512
-msgid "USI/UCCI (uses specified -uxiAdapter)"
-msgstr "USI/UCCI (utiliza el -uxiAdapter especificado)"
-
-#: dialogs.c:1513
-msgid "WB protocol v1 (do not wait for engine features)"
-msgstr "Protocolo WB v1 (no esperar por las características del motor)"
-
-#: dialogs.c:1514
-msgid "Must not use GUI book"
-msgstr "No debe utilizar el libro de la GUI"
-
-#: dialogs.c:1515
-msgid "Add this engine to the list"
-msgstr "Añadir este motor a la lista"
-
-#: dialogs.c:1516
-msgid "Force current variant with this engine"
-msgstr "Forzar la variante actual con este motor"
-
-#: dialogs.c:1570
-msgid "Load first engine"
-msgstr "Cargar el primer motor"
-
-#: dialogs.c:1576
-msgid "Load second engine"
-msgstr "Cargar el segundo motor"
-
-#: dialogs.c:1599
-msgid "shuffle"
-msgstr "barajar"
-
-#: dialogs.c:1600
-msgid "Fischer castling"
-msgstr "Enroque de Fischer"
-
-#: dialogs.c:1601
-msgid "Start-position number:"
-msgstr "Núm. de pos. inicial:"
-
-#: dialogs.c:1602
-msgid "randomize"
-msgstr "aleatorizar"
-
-#: dialogs.c:1603
-msgid "pick fixed"
-msgstr "selección fijada"
-
-#: dialogs.c:1620
-msgid "New Shuffle Game"
-msgstr "Nueva partida revuelta..."
-
-#: dialogs.c:1647
-msgid "Clocks (requires restart):"
-msgstr "Relojes (requiere reiniciar):"
-
-#: dialogs.c:1648 dialogs.c:1654 dialogs.c:1660 dialogs.c:1666 dialogs.c:1672
-#: dialogs.c:1678 dialogs.c:1684
-msgid "+"
-msgstr "+"
-
-#: dialogs.c:1649 dialogs.c:1655 dialogs.c:1661 dialogs.c:1667 dialogs.c:1673
-#: dialogs.c:1679 dialogs.c:1685
-msgid "-"
-msgstr "-"
-
-#: dialogs.c:1651 dialogs.c:1657 dialogs.c:1663 dialogs.c:1669 dialogs.c:1675
-#: dialogs.c:1681 dialogs.c:1687
-msgid "I"
-msgstr "C"
-
-#: dialogs.c:1652 dialogs.c:1658 dialogs.c:1664 dialogs.c:1670 dialogs.c:1676
-#: dialogs.c:1682 dialogs.c:1688
-msgid "*"
-msgstr "*"
-
-#: dialogs.c:1653
-msgid "Message (above board):"
-msgstr "Mensaje (encima del tablero):"
-
-#: dialogs.c:1659
-msgid "ICS Chat/Console:"
-msgstr "Consola de ICS/Charla:"
-
-#: dialogs.c:1665
-msgid "Edit tags / book / engine list:"
-msgstr "Editar etiquetas / libro / lista de motores:"
-
-#: dialogs.c:1671
-msgid "Edit comments:"
-msgstr "Editar comentarios:"
-
-#: dialogs.c:1677
-msgid "Move history / Engine Output:"
-msgstr "Historial de movimientos / Salida del motor:"
-
-#: dialogs.c:1683
-msgid "Game list:"
-msgstr "Lista de partidas:"
-
-#: dialogs.c:1689
-msgid ""
-"\n"
-"The * buttons will set the font to the one selected below:"
-msgstr ""
-"\n"
-"Los botones * seleccionarán la fuente abajo indicada:"
-
-#: dialogs.c:1743
-msgid "This only works in the GTK build"
-msgstr "Esto solo funciona en el «build» de GTK"
-
-#: dialogs.c:1744
-msgid "Fonts"
-msgstr "Fuentes"
-
-#: dialogs.c:1764
-msgid "classical"
-msgstr "clásica"
-
-#: dialogs.c:1765
-msgid "incremental"
-msgstr "incremental"
-
-#: dialogs.c:1766
-msgid "fixed max"
-msgstr "máximo fijado"
-
-#: dialogs.c:1767
-msgid "Divide entered times by 60"
-msgstr "Divide por 60 los tiempos introducidos"
-
-#: dialogs.c:1768
-msgid "Moves per session:"
-msgstr "Jugadas por sesión:"
-
-#: dialogs.c:1769
-msgid "Initial time (min):"
-msgstr "Tiempo inicial (min):"
-
-#: dialogs.c:1770
-msgid "Increment or max (sec/move):"
-msgstr "Incremento o máximo (s(jugada):"
-
-#: dialogs.c:1771
-msgid "Time-Odds factors:"
-msgstr "Factores de tiempo extra:"
-
-#: dialogs.c:1772
-msgid "Engine #1"
-msgstr "Motor 1"
-
-#: dialogs.c:1773
-msgid "Engine #2 / Human"
-msgstr "Motor 2 / Humano"
-
-#: dialogs.c:1814 dialogs.c:1817 dialogs.c:1822 dialogs.c:1823
-#: gtk/xoptions.c:183
-msgid "Unused"
-msgstr "No se usa"
-
-#: dialogs.c:1832
-msgid "Changing time control during a game is not implemented"
-msgstr "No se puede cambiar el control de tiempo en medio de una partida"
-
-#: dialogs.c:1869
-msgid "Error writing to chess program"
-msgstr "Error al escribir al programa de ajedrez"
-
-#: dialogs.c:1937 gtk/xoptions.c:1775 xaw/xoptions.c:1341
-msgid "Cancel"
-msgstr "Cancelar"
-
-#: dialogs.c:1942 dialogs.c:2695 dialogs.c:2699
-msgid "King"
-msgstr "Rey"
-
-#: dialogs.c:1945
-msgid "Captain"
-msgstr "Capitán"
-
-#: dialogs.c:1946
-msgid "Lieutenant"
-msgstr "Teniente"
-
-#: dialogs.c:1947
-msgid "General"
-msgstr "General"
-
-#: dialogs.c:1948
-msgid "Warlord"
-msgstr "Caudillo"
-
-#: dialogs.c:1950 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Knight"
-msgstr "Caballo"
-
-#: dialogs.c:1951 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Bishop"
-msgstr "Alfil"
-
-#: dialogs.c:1952 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Rook"
-msgstr "Torre"
-
-#: dialogs.c:1956 dialogs.c:2696 dialogs.c:2700
-msgid "Archbishop"
-msgstr "Arzobispo"
-
-#: dialogs.c:1957 dialogs.c:2696 dialogs.c:2700
-msgid "Chancellor"
-msgstr "Canciller"
-
-#: dialogs.c:1959 dialogs.c:2695 dialogs.c:2699 dialogs.c:2717
-msgid "Queen"
-msgstr "Dama"
-
-#: dialogs.c:1961
-msgid "Lion"
-msgstr "León"
-
-#: dialogs.c:1965
-msgid "Defer"
-msgstr "Diferir"
-
-#: dialogs.c:1966 dialogs.c:2696 dialogs.c:2700
-msgid "Promote"
-msgstr "Coronar"
-
-#: dialogs.c:2023
-msgid "Chats:"
-msgstr "Charlas:"
-
-#: dialogs.c:2024 dialogs.c:2025 dialogs.c:2026 dialogs.c:2027 dialogs.c:2028
-#: dialogs.c:2134 dialogs.c:2199 dialogs.c:2231
-msgid "New Chat"
-msgstr "Nueva Charla"
-
-#: dialogs.c:2031
-msgid "Chat partner:"
-msgstr "Charlar con compañero:"
-
-#: dialogs.c:2032
-msgid "End Chat"
-msgstr "Fin de la charla"
-
-#: dialogs.c:2033
-msgid "Hide"
-msgstr "Ocultar"
-
-#: dialogs.c:2260
-msgid "ICS Interaction"
-msgstr "Interacciones ICS"
-
-#: dialogs.c:2345
-msgid "factory"
-msgstr "De fábrica"
-
-#: dialogs.c:2346
-msgid "up"
-msgstr "arriba"
-
-#: dialogs.c:2347
-msgid "down"
-msgstr "abajo"
-
-#: dialogs.c:2366
-msgid "No tag selected"
-msgstr "Número de la etiqueta seleccionada"
-
-#: dialogs.c:2397
-msgid "Game-list options"
-msgstr "Opciones de la lista de partidas"
-
-#: dialogs.c:2475 dialogs.c:2489
-msgid "Error"
-msgstr "Error"
-
-#: dialogs.c:2518
-msgid "Fatal Error"
-msgstr "Error fatal"
-
-#: dialogs.c:2518
-msgid "Exiting"
-msgstr "Saliendo"
-
-#: dialogs.c:2529
-msgid "Information"
-msgstr "Información"
-
-#: dialogs.c:2536
-msgid "Note"
-msgstr "Nota"
-
-#: dialogs.c:2694 dialogs.c:2987 dialogs.c:2990
-msgid "White"
-msgstr "Blancas"
-
-#: dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Pawn"
-msgstr "Peón"
-
-#: dialogs.c:2695 dialogs.c:2699
-msgid "Elephant"
-msgstr "Elefante"
-
-#: dialogs.c:2695 dialogs.c:2699
-msgid "Cannon"
-msgstr "Cañón"
-
-#: dialogs.c:2696 dialogs.c:2700
-msgid "Demote"
-msgstr "Degradar"
-
-#: dialogs.c:2697 dialogs.c:2701
-msgid "Empty square"
-msgstr "Vaciar el escaque"
-
-#: dialogs.c:2697 dialogs.c:2701
-msgid "Clear board"
-msgstr "Limpiar el tablero"
-
-#: dialogs.c:2698 dialogs.c:2999 dialogs.c:3002
-msgid "Black"
-msgstr "Negras"
-
-#: dialogs.c:2798
-msgid "_File"
-msgstr "_Archivo"
-
-#: dialogs.c:2799
-msgid "_Edit"
-msgstr "_Editar"
-
-#: dialogs.c:2800
-msgid "_View"
-msgstr "_Ver"
-
-#: dialogs.c:2801
-msgid "_Mode"
-msgstr "_Modo"
-
-#: dialogs.c:2802
-msgid "_Action"
-msgstr "A_cción"
-
-#: dialogs.c:2803
-msgid "E_ngine"
-msgstr "Mo_tor"
-
-#: dialogs.c:2804
-msgid "_Options"
-msgstr "_Opciones"
-
-#: dialogs.c:2805
-msgid "_Help"
-msgstr "A_yuda"
-
-#: dialogs.c:2815
-msgid "<<"
-msgstr "<<"
-
-#: dialogs.c:2816
-msgid "<"
-msgstr "<"
-
-#: dialogs.c:2818
-msgid ">"
-msgstr ">"
-
-#: dialogs.c:2819
-msgid ">>"
-msgstr ">>"
-
-#: dialogs.c:3107
-msgid "Directories:"
-msgstr "Carpetas:"
-
-#: dialogs.c:3108
-msgid "Files:"
-msgstr "Archivos:"
-
-#: dialogs.c:3109
-msgid "by name"
-msgstr "por nombre"
-
-#: dialogs.c:3110
-msgid "by type"
-msgstr "por tipo"
-
-#: dialogs.c:3113
-msgid "Filename:"
-msgstr "Nombre del fichero:"
-
-#: dialogs.c:3114
-msgid "New directory"
-msgstr "Nueva carpeta"
-
-#: dialogs.c:3115
-msgid "File type:"
-msgstr "Tipo de fichero:"
-
-#: dialogs.c:3190
-msgid "Contents of"
-msgstr "Contenido de"
-
-#: dialogs.c:3216
-msgid "  next page"
-msgstr "  siguiente página"
-
-#: dialogs.c:3233
-msgid "FIRST TYPE DIRECTORY NAME HERE"
-msgstr "NOMBRE DEL DIRECTORIO PRIMERO AQUÍ"
-
-#: dialogs.c:3234
-msgid "TRY ANOTHER NAME"
-msgstr "INTENTAR OTRO NOMBRE"
-
-#: draw.c:405
-msgid ""
-"No default pieces installed!\n"
-"Select your own using '-pieceImageDirectory'."
-msgstr ""
-"No hay piezas predeterminadas instaladas\n"
-"Seleccione su propio '-pieceImageDirectory'."
-
-#: engineoutput.c:112 menus.c:642
-#, c-format
-msgid "Engine Output"
-msgstr "Salida del motor"
-
-#: engineoutput.c:122
-#, c-format
-msgid "%s (%d reversible ply)"
-msgid_plural "%s (%d reversible plies)"
-msgstr[0] "%s (%d media-jugada reversible)"
-msgstr[1] "%s (%d medias-jugadas reversibles)"
-
-#: engineoutput.c:565 engineoutput.c:568 nengineoutput.c:83 nengineoutput.c:91
-msgid "NPS"
-msgstr "NPS"
-
-#: gamelist.c:379
-#, c-format
-msgid "Reading game file (%d)"
-msgstr "Leyendo fichero de partidas (%d)"
-
-#: gtk/xboard.c:979 xaw/xboard.c:1074
-#, c-format
-msgid "%s: can't cd to CHESSDIR: "
-msgstr "%s: no se puede ir a la carpeta CHESSDIR: "
-
-#: gtk/xboard.c:988 xaw/xboard.c:1083
-#, c-format
-msgid "Failed to open file '%s'\n"
-msgstr "Fallo al abrir el fichero '%s'\n"
-
-#  TRANSLATORS: BOARDS_RANKS, BOARD_FILES translatable?
-#: gtk/xboard.c:1003 xaw/xboard.c:1092
-msgid "Recompile with larger BOARD_RANKS or BOARD_FILES to support this size"
-msgstr "Recompilar con BOARD_RANKS o BOARD_FILES mayor para admitir este tamaño"
-
-#: gtk/xboard.c:1022 xaw/xboard.c:1124
-#, c-format
-msgid "%s: bad boardSize syntax %s\n"
-msgstr "%s: sintaxis de boardSize incorrecta %s\n"
-
-#: gtk/xboard.c:1063 xaw/xboard.c:1163
-#, c-format
-msgid "%s: unrecognized boardSize name %s\n"
-msgstr "%s: nombre de boardSize no reconocido %s\n"
-
-#: gtk/xboard.c:1107 xaw/xboard.c:1200
-#, c-format
-msgid "%s: too few colors available; trying monochrome mode\n"
-msgstr "%s: insuficientes colores disponibles: probando modo monocromo\n"
-
-#: gtk/xboard.c:1421 xaw/xboard.c:1492
-#, c-format
-msgid "Unable to create font set for %s.\n"
-msgstr "No se ha podido crear conjunto de fuentes para %s.\n"
-
-#: gtk/xboard.c:1446 xaw/xboard.c:1515
-#, c-format
-msgid "%s: no fonts match pattern %s\n"
-msgstr "%s: ninguna fuente concuerda con el patrón %s\n"
-
-#: gtk/xboard.c:1914 xaw/xboard.c:2007
-msgid "Can't open temp file"
-msgstr "No se puede abrir el fichero temporal"
-
-#: gtk/xboard.c:2422
-msgid "Failed to open file"
-msgstr "Fallo al abrir fichero"
-
-#: gtk/xoptions.c:1498
-msgid "Browse"
-msgstr "Navegar"
-
-#: gtk/xoptions.c:1772 xaw/xoptions.c:1337
-msgid "OK"
-msgstr "Aceptar"
-
-#: menus.c:136
-msgid "Load game file name?"
-msgstr "¿Nombre del fichero de partidas para cargar?"
-
-#: menus.c:183
-msgid "Load position file name?"
-msgstr "¿Nombre del fichero de posiciones para cargar?"
-
-#: menus.c:189 menus.c:582
-msgid "Save game file name?"
-msgstr "¿Nombre del fichero de partidas para guardar?"
-
-#: menus.c:198
-msgid "Save position file name?"
-msgstr "¿Nombre del fichero de posiciones para guardar?"
-
-#: menus.c:355
-msgid " (with Zippy code)"
-msgstr " (con el código de Zippy)"
-
-#: menus.c:360
-#, c-format
-msgid ""
-"%s%s\n"
-"\n"
-"Copyright 1991 Digital Equipment Corporation\n"
-"Enhancements Copyright 1992-2016 Free Software Foundation\n"
-"Enhancements Copyright 2005 Alessandro Scotti\n"
-"\n"
-"%s is free software and carries NO WARRANTY;see the file COPYING for more information.\n"
-"\n"
-"Visit XBoard on the web at: http://www.gnu.org/software/xboard/\n"
-"Check out the newest features at: http://www.gnu.org/software/xboard/whats_new.html\n"
-"\n"
-"Report bugs via email at: <bug-xboard@gnu.org>\n"
-"\n"
-msgstr ""
-"%s%s\n"
-"\n"
-"Copyright 1991 Digital Equipment Corporation\n"
-"Copyright de las mejoras 1992-2014 Free Software Foundation\n"
-"Copyright de las mejoras 2005 Alessandro Scotti\n"
-"\n"
-"%s es software libre SIN NINGUNA GARANTÍA; ver el fichero COPYING para más información.\n"
-"\n"
-"Visite XBoard en la web en: http://www.gnu.org/software/xboard/\n"
-"Obtenga las características más recientes en: http://www.gnu.org/software/xboard/whats_new.html\n"
-"\n"
-"Informe de errores por correo a: <bug-xboard@gnu.org>\n"
-"\n"
-
-#: menus.c:371 menus.c:765
-msgid "About XBoard"
-msgstr "Acerca de XBoard"
-
-#: menus.c:593
-msgid "New Game"
-msgstr "Nueva partida"
-
-#: menus.c:594
-msgid "New Shuffle Game..."
-msgstr "Nueva partida revuelta..."
-
-#: menus.c:595
-msgid "New Variant..."
-msgstr "Nueva variante..."
-
-#: menus.c:597
-msgid "Load Game"
-msgstr "Cargar partida"
-
-#: menus.c:598
-msgid "Load Position"
-msgstr "Cargar posición"
-
-#: menus.c:599
-msgid "Next Position"
-msgstr "Siguiente posición"
-
-#: menus.c:600
-msgid "Prev Position"
-msgstr "Posición previa"
-
-#: menus.c:602
-msgid "Save Game"
-msgstr "Guardar partida"
-
-#: menus.c:603
-msgid "Save Position"
-msgstr "Guardar posición"
-
-#: menus.c:604
-msgid "Save Selected Games"
-msgstr "Guardar partidas seleccionadas"
-
-#: menus.c:605
-msgid "Save Games as Book"
-msgstr "Guardar partidas como libro"
-
-#: menus.c:607
-msgid "Mail Move"
-msgstr "Jugada por correo"
-
-#: menus.c:608
-msgid "Reload CMail Message"
-msgstr "Volver a cargar mensaje CMail"
-
-#: menus.c:610
-msgid "Quit "
-msgstr "Salir "
-
-#: menus.c:615
-msgid "Copy Game"
-msgstr "Copiar partida"
-
-#: menus.c:616
-msgid "Copy Position"
-msgstr "Copiar posición"
-
-#: menus.c:617
-msgid "Copy Game List"
-msgstr "Copiar lista de partidas"
-
-#: menus.c:619
-msgid "Paste Game"
-msgstr "Pegar partida"
-
-#: menus.c:620
-msgid "Paste Position"
-msgstr "Pegar posición"
-
-#: menus.c:622 menus.c:665
-msgid "Edit Game"
-msgstr "Editar partida"
-
-#: menus.c:623 menus.c:666
-msgid "Edit Position"
-msgstr "Editar posición"
-
-#: menus.c:624
-msgid "Edit Tags"
-msgstr "Editar etiquetas"
-
-#: menus.c:625
-msgid "Edit Comment"
-msgstr "Editar comentario"
-
-#: menus.c:626
-msgid "Edit Book"
-msgstr "Editar libro"
-
-#: menus.c:628
-msgid "Revert"
-msgstr "Revertir"
-
-#: menus.c:629
-msgid "Annotate"
-msgstr "Anotar"
-
-#: menus.c:630
-msgid "Truncate Game"
-msgstr "Truncar partida"
-
-#: menus.c:632
-msgid "Backward"
-msgstr "Hacia atrás"
-
-#: menus.c:633
-msgid "Forward"
-msgstr "Hacia delante"
-
-#: menus.c:634
-msgid "Back to Start"
-msgstr "Volver a empezar"
-
-#: menus.c:635
-msgid "Forward to End"
-msgstr "Avanzar hasta el final"
-
-#: menus.c:640
-msgid "Flip View"
-msgstr "Voltear vista"
-
-#: menus.c:643
-msgid "Move History"
-msgstr "Historial de jugadas"
-
-#: menus.c:644
-msgid "Evaluation Graph"
-msgstr "Gráfica de evaluación"
-
-#: menus.c:645
-msgid "Game List"
-msgstr "Lista de partidas"
-
-#: menus.c:649
-msgid "Comments"
-msgstr "Comentarios"
-
-#: menus.c:650
-msgid "ICS Input Box"
-msgstr "Cuatro de entrada ICS"
-
-#: menus.c:651
-msgid "ICS/Chat Console"
-msgstr "Consola de ICS/Charla"
-
-#: menus.c:653
-msgid "Board..."
-msgstr "Tablero..."
-
-#: menus.c:654
-msgid "Fonts..."
-msgstr "Fuentes..."
-
-#: menus.c:655
-msgid "Game List Tags..."
-msgstr "Etiquetas de la lista de partidas..."
-
-#: menus.c:660
-msgid "Machine White"
-msgstr "El programa con blancas"
-
-#: menus.c:661
-msgid "Machine Black"
-msgstr "El programa con negras"
-
-#: menus.c:662
-msgid "Two Machines"
-msgstr "Dos programas"
-
-#: menus.c:663
-msgid "Analysis Mode"
-msgstr "Modo de análisis"
-
-#: menus.c:664
-msgid "Analyze Game"
-msgstr "Analizar partida"
-
-#: menus.c:667
-msgid "Training"
-msgstr "Entrenamiento"
-
-#: menus.c:668
-msgid "ICS Client"
-msgstr "Cliente ICS"
-
-#: menus.c:670
-msgid "Machine Match"
-msgstr "Torneo de dos programas"
-
-#: menus.c:671
-msgid "Pause"
-msgstr "Pausa"
-
-#: menus.c:676
-msgid "Accept"
-msgstr "Aceptar"
-
-#: menus.c:677
-msgid "Decline"
-msgstr "Declinar"
-
-#: menus.c:678
-msgid "Rematch"
-msgstr "Revancha"
-
-#: menus.c:680
-msgid "Call Flag"
-msgstr "Pedir la bandera"
-
-#: menus.c:681
-msgid "Draw"
-msgstr "Tablas"
-
-#: menus.c:682
-msgid "Adjourn"
-msgstr "Aplazar"
-
-#: menus.c:683
-msgid "Abort"
-msgstr "Abortar"
-
-#: menus.c:684
-msgid "Resign"
-msgstr "Rendirse"
-
-#: menus.c:686
-msgid "Stop Observing"
-msgstr "Dejar de observar"
-
-#: menus.c:687
-msgid "Stop Examining"
-msgstr "Dejar de examinar"
-
-#: menus.c:688
-msgid "Upload to Examine"
-msgstr "Enviar para examinar"
-
-#: menus.c:690
-msgid "Adjudicate to White"
-msgstr "Adjudicar a blancas"
-
-#: menus.c:691
-msgid "Adjudicate to Black"
-msgstr "Adjudicar a negras"
-
-#: menus.c:692
-msgid "Adjudicate Draw"
-msgstr "Adjudicar tablas"
-
-#: menus.c:697
-msgid "Edit Engine List..."
-msgstr "Editar lista de motores..."
-
-#: menus.c:699
-msgid "Load New 1st Engine..."
-msgstr "Cargar un nuevo primer motor..."
-
-#: menus.c:700
-msgid "Load New 2nd Engine..."
-msgstr "Cargar un nuevo segundo motor..."
-
-#: menus.c:702
-msgid "Engine #1 Settings..."
-msgstr "Configuración del motor #1..."
-
-#: menus.c:703
-msgid "Engine #2 Settings..."
-msgstr "Configuración del motor #2..."
-
-#: menus.c:704
-msgid "Common Settings..."
-msgstr "Configuración general..."
-
-#: menus.c:706
-msgid "Hint"
-msgstr "Pista"
-
-#: menus.c:707
-msgid "Book"
-msgstr "Repertorio de aperturas"
-
-#: menus.c:709
-msgid "Move Now"
-msgstr "Mover ahora"
-
-#: menus.c:710
-msgid "Retract Move"
-msgstr "Revocar jugada"
-
-#: menus.c:716
-msgid "General..."
-msgstr "General..."
-
-#: menus.c:718
-msgid "Time Control..."
-msgstr "Controles de tiempo..."
-
-#: menus.c:719
-msgid "Adjudications..."
-msgstr "Adjudicaciones..."
-
-#: menus.c:720
-msgid "ICS..."
-msgstr "ICS..."
-
-#: menus.c:721
-msgid "Tournament..."
-msgstr "Torneo..."
-
-#: menus.c:722
-msgid "Load Game..."
-msgstr "Cargar partida..."
-
-#: menus.c:723
-msgid "Save Game..."
-msgstr "Guardar partida..."
-
-#: menus.c:724
-msgid "Game List..."
-msgstr "Lista de partidas..."
-
-#: menus.c:725
-msgid "Sounds..."
-msgstr "Sonidos..."
-
-#: menus.c:728
-msgid "Always Queen"
-msgstr "Siempre dama"
-
-#: menus.c:734
-msgid "Flash Moves"
-msgstr "Destello en las jugadas"
-
-#: menus.c:736
-msgid "Highlight Dragging"
-msgstr "Iluminar arrastre"
-
-#: menus.c:739
-msgid "Highlight With Arrow"
-msgstr "Iluminar con flecha"
-
-#: menus.c:740
-msgid "Move Sound"
-msgstr "Sonido en jugadas"
-
-#: menus.c:742
-msgid "Periodic Updates"
-msgstr "Actualización periódica"
-
-#: menus.c:744
-msgid "Popup Exit Message"
-msgstr "Mensaje de salida en venta emergente"
-
-#: menus.c:746
-msgid "Show Coords"
-msgstr "Mostrar coordenadas"
-
-#: menus.c:747
-msgid "Hide Thinking"
-msgstr "Ocultar cogitaciones"
-
-#: menus.c:751
-msgid "Save Settings Now"
-msgstr "Guardar config. ahora"
-
-#: menus.c:752
-msgid "Save Settings on Exit"
-msgstr "Guardar config. al salir del programa"
-
-#: menus.c:757
-msgid "Info XBoard"
-msgstr "Información XBoard"
-
-#: menus.c:758
-msgid "Man XBoard"
-msgstr "Manual de XBoard"
-
-#: menus.c:760
-msgid "XBoard Home Page"
-msgstr "Página web de XBoard"
-
-#: menus.c:761
-msgid "On-line User Guide"
-msgstr "Guía del usuario en línea"
-
-#: menus.c:762
-msgid "Development News"
-msgstr "Noticias sobre el desarrollo"
-
-#: menus.c:763
-msgid "e-Mail Bug Report"
-msgstr "correo-e para informar de errores"
-
-#: menus.c:802
-msgid "File"
-msgstr "Archivo"
-
-#: menus.c:803
-msgid "Edit"
-msgstr "Editar"
-
-#: menus.c:804
-msgid "View"
-msgstr "Ver"
-
-#: menus.c:805
-msgid "Mode"
-msgstr "Modo"
-
-#: menus.c:806
-msgid "Action"
-msgstr "Acción"
-
-#: menus.c:807
-msgid "Engine"
-msgstr "Motor"
-
-#: menus.c:808
-msgid "Options"
-msgstr "Opciones"
-
-#: menus.c:809
-msgid "Help"
-msgstr "Ayuda"
-
-#: nengineoutput.c:79 nengineoutput.c:87
-msgid "engine name"
-msgstr "nombre del motor"
-
-#. TRANSLATORS: noun, as in "the move Nf3"
-#: nengineoutput.c:82 nengineoutput.c:90
-msgid "move"
-msgstr "jugada"
-
-#: nengineoutput.c:156
-msgid "Engine output"
-msgstr "Salida del motor"
-
-#: nengineoutput.c:160
-msgid ""
-"Mismatch of STRIDE in nengineoutput.c\n"
-"Change and recompile!"
-msgstr ""
-"STRIDE desajustado en nengineoutput.c\n"
-"¡Cambiar y recompilar!"
-
-#: nevalgraph.c:69
-msgid "Evaluation graph"
-msgstr "Gráfica de evaluación"
-
-#: nevalgraph.c:69
-msgid "Blunder graph"
-msgstr "Gráfica de fallos garrafales"
-
-#: nevalgraph.c:107
-msgid "Blunder"
-msgstr "Fallo garrafal"
-
-#: nevalgraph.c:107
-msgid "Eval"
-msgstr "Evaluación"
-
-#: ngamelist.c:87
-msgid "find position"
-msgstr "encontrar posición"
-
-#: ngamelist.c:88
-msgid "narrow"
-msgstr "estrecho"
-
-#: ngamelist.c:89
-msgid "thresholds"
-msgstr "umbrales"
-
-#: ngamelist.c:90
-msgid "tags"
-msgstr "etiquetas"
-
-#: ngamelist.c:91
-msgid "next"
-msgstr "siguiente"
-
-#: ngamelist.c:92
-msgid "close"
-msgstr "cerrar"
-
-#: ngamelist.c:116
-msgid "No game selected"
-msgstr "Ninguna partida seleccionada"
-
-#: ngamelist.c:122
-msgid "Can't go forward any further"
-msgstr "Ya no se puede ir más adelante"
-
-#: ngamelist.c:192
-#, c-format
-msgid "Scanning through games (%d)"
-msgstr "Explorando partidas (%d)"
-
-#: ngamelist.c:211
-msgid "previous page"
-msgstr "página anterior"
-
-#: ngamelist.c:214
-msgid "next page"
-msgstr "página siguiente"
-
-#: ngamelist.c:217
-msgid "no games matched your request"
-msgstr "ninguna partida responde a su búsqueda"
-
-#: ngamelist.c:219
-#, c-format
-msgid "%s - %d/%d games (%d-%d-%d)"
-msgstr "%s - %d/%d partidas (%d-%d-%d)"
-
-#: ngamelist.c:284
-msgid "There is no game list"
-msgstr "No hay lista de partidas"
-
-#: nhistory.c:109
-msgid "Move list"
-msgstr "Lista de jugadas"
-
-#: usystem.c:223
-#, c-format
-msgid "%s: unrecognized color %s\n"
-msgstr "%s: color no reconocido %s\n"
-
-#: usystem.c:231
-#, c-format
-msgid "%s: can't parse foreground color in '%s'\n"
-msgstr "%s: no se puede analizar el color de primer plano en '%s'\n"
-
-#: usystem.c:260
-#, c-format
-msgid "%s: can't parse color names; disabling colorization\n"
-msgstr "%s: no se puede analizar los nombres de los colores; desactivando colorido\n"
-
-#: usystem.c:362
-#, c-format
-msgid "ERROR: Unknown user %s (in path %s)\n"
-msgstr "ERROR: usuario desconocido %s (en carpeta %s)\n"
-
-#: usystem.c:564
-msgid "Socket support is not configured in"
-msgstr "La capacidad de «socket» no está configurada en"
-
-#: usystem.c:653
-msgid "internal rcmd not implemented for Unix"
-msgstr "rcmd interno no implementado para Unix"
-
-#: xaw/xboard.c:1206
-#, c-format
-msgid "white pixel = 0x%lx, black pixel = 0x%lx\n"
-msgstr "pixel blanco = 0x%lx, pixel negro = 0x%lx\n"
-
-#: xaw/xoptions.c:378 xaw/xoptions.c:1082
-msgid "browse"
-msgstr "navegar"
-
-#: xaw/xoptions.c:444 xaw/xoptions.c:445
-msgid "Ctrl"
-msgstr "Ctrl"
-
-#: xaw/xoptions.c:450 xaw/xoptions.c:451
-msgid "Alt"
-msgstr "Alt"
-
-#: xaw/xoptions.c:456 xaw/xoptions.c:457
-msgid "Shift"
-msgstr "Mayús"
-
-#~ msgid "Common Engine..."
-#~ msgstr "General de los motores..."
-
-#~ msgid "    (for concurrent playing of a single"
-#~ msgstr "    (para jugar simultáneamente en un solo"
-
-#~ msgid "Match Options"
-#~ msgstr "Opciones del encuentro"
-
-#~ msgid "Chat box"
-#~ msgstr "Cuadro de charla"
-
-#~ msgid "Open Chat Window"
-#~ msgstr "Abrir ventana de conversación"
-
-#~ msgid "ICS ..."
-#~ msgstr "ICS ..."
-
-#~ msgid "Match ..."
-#~ msgstr "Encuentro ..."
-
-#~ msgid "%s: Can't access XPM directory %s\n"
-#~ msgstr "%s: No se puede acceder a la carpeta XPM %s\n"
-
-#~ msgid "Available `%s' sizes:\n"
-#~ msgstr "Disponibles `%s' tamaños:\n"
-
-#~ msgid "Error: No `%s' files!\n"
-#~ msgstr "¡Error: no hay ficheros `%s'!\n"
-
-#~ msgid ""
-#~ "Warning: No DIR structure found on this system --\n"
-#~ "         Unable to autosize for XPM/XIM pieces.\n"
-#~ "   Please report this error to %s.\n"
-#~ "   Include system type & operating system in message.\n"
-#~ msgstr ""
-#~ "ATENCIÓN: No se ha encontrado estructura DIR en este sistema --\n"
-#~ "          No se puede asignar tamaño automáticamente a las piezas XPM/XIM.\n"
-#~ "   Por favor, informe de este error a %s.\n"
-#~ "   Incluya en su mensaje el tipo de sistema y de sistema operativo.\n"
-
-#~ msgid "Error %d loading icon image\n"
-#~ msgstr "Error %d cargando imagen de icono\n"
-
-#~ msgid "cancel"
-#~ msgstr "Cancelar"
diff --git a/po/fr.po b/po/fr.po
deleted file mode 100644 (file)
index 3b69b40..0000000
--- a/po/fr.po
+++ /dev/null
@@ -1,3119 +0,0 @@
-# French translation for xboard.
-# Copyright (C) 2014 Free Software Foundation, Inc.
-# This file is distributed under the same license as the xboard package.
-#
-# Florian Ganee <flo.ganee@gmail.com>, 2014.
-# Stéphane Aulery <lkppo@free.fr>, 2015, 2016.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: xboard 4.9.0-pre2\n"
-"Report-Msgid-Bugs-To: bug-xboard@gnu.org\n"
-"POT-Creation-Date: 2016-04-03 13:44-0700\n"
-"PO-Revision-Date: 2016-04-06 00:21+0200\n"
-"Last-Translator: Stéphane Aulery <lkppo@free.fr>\n"
-"Language-Team: French <traduc@traduc.org>\n"
-"Language: fr\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Lokalize 1.5\n"
-
-#: args.h:851
-#, c-format
-msgid "%s in settings file\n"
-msgstr "%s dans le fichier de configuration\n"
-
-#: args.h:885
-#, c-format
-msgid "Bad integer value %s"
-msgstr "Valeur de l'entier %s incorrecte"
-
-#: args.h:991 args.h:1252
-#, c-format
-msgid "Unrecognized argument %s"
-msgstr "Argument %s non reconnu"
-
-#: args.h:1022
-#, c-format
-msgid "No value provided for argument %s"
-msgstr "Aucune valeur donnée pour l'argument %s"
-
-#: args.h:1082
-#, c-format
-msgid "Incomplete \\ escape in value for %s"
-msgstr "Incomplet \\ fuite en valeur pour %s"
-
-#: args.h:1193
-#, c-format
-msgid "Failed to open indirection file %s"
-msgstr "Impossible d'ouvrir le fichier des indirections %s"
-
-#: args.h:1210
-#, c-format
-msgid "Unrecognized boolean argument value %s"
-msgstr "Valeur de l'argument booléen %s non reconnue "
-
-#. TRANSLATORS: "first" is the first of possible two chess engines. It is inserted into strings
-#. such as "%s engine" / "%s chess program" / "%s machine" - all meaning the same thing
-#: backend.c:811
-msgid "first"
-msgstr "Premier"
-
-#. TRANSLATORS: "second" is the second of possible two chess engines. It is inserted into strings
-#. such as "%s engine" / "%s chess program" / "%s machine" - all meaning the same thing
-#: backend.c:814
-msgid "second"
-msgstr "Deuxième"
-
-#: backend.c:897
-#, c-format
-msgid "protocol version %d not supported"
-msgstr "Version %d du protocole non supportée"
-
-#: backend.c:1004
-msgid "You did not specify the engine executable"
-msgstr "Vous n'avez pas précisé l'exécutable du moteur / moteur exécutable ?"
-
-#: backend.c:1062
-#, c-format
-msgid "bad timeControl option %s"
-msgstr "Option %s du timeControl incorrecte "
-
-#: backend.c:1077
-#, c-format
-msgid "bad searchTime option %s"
-msgstr "Option %s de searchTime incorrecte "
-
-#: backend.c:1183
-#, c-format
-msgid "Variant %s supported only in ICS mode"
-msgstr "La variante %s n'est supporté qu'en mode ICS"
-
-#: backend.c:1201
-#, c-format
-msgid "Unknown variant name %s"
-msgstr "Nom divers %s inconnu"
-
-#: backend.c:1456
-msgid "Starting chess program"
-msgstr "Démarrage du jeu d'échecs"
-
-#: backend.c:1479
-msgid "Bad game file"
-msgstr "Fichier de jeu incorrect"
-
-#: backend.c:1486
-msgid "Bad position file"
-msgstr "Chemin de fichier incorrect"
-
-#: backend.c:1500
-msgid "Pick new game"
-msgstr "Choisissez nouveau jeu"
-
-#: backend.c:1569
-msgid ""
-"You restarted an already completed tourney.\n"
-"One more cycle will now be added to it.\n"
-"Games commence in 10 sec."
-msgstr ""
-"Vous avez redémarré un tournoi déjà terminé.\n"
-"Une nouvelle manche va y être ajoutée.\n"
-"Les jeux débutent dans 10 secondes."
-
-#: backend.c:1576
-#, c-format
-msgid "All games in tourney '%s' are already played or playing"
-msgstr "Tous les jeux du tournoi '%s' sont déjà terminés ou sont en cours"
-
-#: backend.c:1583
-msgid "Can't have a match with no chess programs"
-msgstr "Impossible d'obtenir un match sans programme d'échecs"
-
-#: backend.c:1637
-#, c-format
-msgid "Could not open comm port %s"
-msgstr "Impossible d'ouvrir le port de communication %s"
-
-#: backend.c:1640
-#, c-format
-msgid "Could not connect to host %s, port %s"
-msgstr "Impossible de se connecter à l'hôte %s, au port %s"
-
-#: backend.c:1696
-#, c-format
-msgid "Unknown initialMode %s"
-msgstr "initialMode %s inconnu"
-
-#: backend.c:1722
-msgid "AnalyzeFile mode requires a game file"
-msgstr "Le mode AnalyzeFile nécessite un fichier de jeu"
-
-#: backend.c:1755
-msgid "Analysis mode requires a chess engine"
-msgstr "Le mode Analyse nécessite un moteur d'échecs"
-
-#: backend.c:1759
-msgid "Analysis mode does not work with ICS mode"
-msgstr "Le mode Analyse n'est pas compatible avec le mode ICS"
-
-#: backend.c:1770
-msgid "MachineWhite mode requires a chess engine"
-msgstr "Le mode MachineWhite nécessite un moteur d'échecs"
-
-#: backend.c:1775
-msgid "MachineWhite mode does not work with ICS mode"
-msgstr "Le mode MachineWhite n'est pas compatible avec le mode ICS"
-
-#: backend.c:1782
-msgid "MachineBlack mode requires a chess engine"
-msgstr "Le mode MachineBlack nécessite un moteur d'échecs"
-
-#: backend.c:1787
-msgid "MachineBlack mode does not work with ICS mode"
-msgstr "Le mode MachineBlack n'est pas compatible avec le mode ICS"
-
-#: backend.c:1794
-msgid "TwoMachines mode requires a chess engine"
-msgstr "Le mode Versus requiert un moteur d'échecs"
-
-#: backend.c:1799
-msgid "TwoMachines mode does not work with ICS mode"
-msgstr "Le mode multi-joueurs n'est pas compatible avec le mode ICS"
-
-#: backend.c:1810
-msgid "Training mode requires a game file"
-msgstr "Le mode d'entraînement nécessite un fichier de jeu"
-
-#: backend.c:1973 backend.c:2028 backend.c:2051 backend.c:2453
-msgid "Error writing to ICS"
-msgstr "Erreur dans l'écriture vers ICS"
-
-#: backend.c:1988
-msgid "Error reading from keyboard"
-msgstr "Erreur dans la lecture du clavier"
-
-#: backend.c:1991
-msgid "Got end of file from keyboard"
-msgstr "Fin de fichier obtenue du clavier"
-
-#: backend.c:2299
-#, c-format
-msgid "Unknown wild type %d"
-msgstr "Type étranger %d inconnu"
-
-#: backend.c:2370 usystem.c:317
-msgid "Error writing to display"
-msgstr "Erreur lors d'écriture sur l'écran"
-
-#. TRANSLATORS: to 'kibitz' is to send a message to all players and the game observers
-#: backend.c:3138
-#, c-format
-msgid "your opponent kibitzes: %s"
-msgstr "Votre adversaire vous conseille : %s"
-
-#: backend.c:3677
-msgid "Error gathering move list: two headers"
-msgstr "Erreur lors du rassemblement de la liste des mouvements : deux en-têtes"
-
-#: backend.c:3724
-msgid "Error gathering move list: nested"
-msgstr "Erreur lors du rassemblement de la liste des mouvements : enchevêtrement "
-
-#: backend.c:3828 backend.c:4254 backend.c:4458 backend.c:5017 backend.c:5021
-#: backend.c:7292 backend.c:13054 backend.c:14805 backend.c:14882
-#: backend.c:14928 backend.c:14934 backend.c:14939 backend.c:14944
-msgid "vs."
-msgstr "contre"
-
-#: backend.c:3956
-msgid "Illegal move (rejected by ICS)"
-msgstr "Mouvement non autorisé (rejeté par l'ICS)"
-
-#: backend.c:4302
-msgid "Connection closed by ICS"
-msgstr "Connexion terminée par l'ICS"
-
-#: backend.c:4304
-msgid "Error reading from ICS"
-msgstr "Erreur lors de la lecture de l'ICS"
-
-#: backend.c:4381
-#, c-format
-msgid ""
-"Failed to parse board string:\n"
-"\"%s\""
-msgstr ""
-"Échec lors de l'analyse la chaîne du plateau :\n"
-"\"%s\""
-
-#: backend.c:4390 backend.c:10628
-msgid "Game too long; increase MAX_MOVES and recompile"
-msgstr "Jeu trop long; augmentez MAX_MOVES et recompilez"
-
-#: backend.c:4509
-msgid "Error gathering move list: extra board"
-msgstr "Erreur lors du rassemblement de la liste des mouvements : plateau superflu"
-
-#: backend.c:4941 backend.c:4963
-#, c-format
-msgid "Couldn't parse move \"%s\" from ICS"
-msgstr "Impossible d'analyser le mouvement \"%s\" de l'ICS"
-
-#: backend.c:5228
-#, c-format
-msgid "say Internal error; bad moveType %d (%d,%d-%d,%d)"
-msgstr "Une erreur interne est survenue; moveType %d (%d,%d-%d,%d) incorrect"
-
-#: backend.c:5299
-msgid "You cannot do this while you are playing or observing"
-msgstr "Vous ne pouvez pas exécuter cette action en tant que joueur ou observateur"
-
-#: backend.c:6359
-msgid "Recompile to support this BOARD_RANKS or BOARD_FILES!"
-msgstr "Recompilez pour supporter ce BOARD_RANKS ou BOARD_FILES !"
-
-#: backend.c:6851
-msgid "You are playing Black"
-msgstr "Vous jouez les Noirs"
-
-#: backend.c:6860 backend.c:6888
-msgid "You are playing White"
-msgstr "Vous jouez les Blancs"
-
-#: backend.c:6870 backend.c:6896 backend.c:7018 backend.c:7043 backend.c:7059
-#: backend.c:15645
-msgid "It is White's turn"
-msgstr "Au tour des Blancs de jouer"
-
-#: backend.c:6874 backend.c:6900 backend.c:7026 backend.c:7049 backend.c:7081
-#: backend.c:15637
-msgid "It is Black's turn"
-msgstr "Au tour des Noirs de jouer"
-
-#: backend.c:6913
-msgid "Displayed position is not current"
-msgstr "La position affichée n'est pas la position courante"
-
-#: backend.c:7116
-msgid "rights granted"
-msgstr "droits accordés"
-
-#: backend.c:7116
-msgid "rights revoked"
-msgstr "droits révoqués"
-
-#: backend.c:7169
-msgid "Illegal move"
-msgstr "Mouvement interdit"
-
-#: backend.c:7249
-msgid "End of game"
-msgstr "Fin de partie"
-
-#: backend.c:7252
-msgid "Incorrect move"
-msgstr "Mouvement incorrect"
-
-#: backend.c:7655 backend.c:7811
-msgid "Pull pawn backwards to under-promote"
-msgstr "Amenez le pion en arrière pour le sous-promouvoir"
-
-#: backend.c:7772
-msgid "only marked squares are legal"
-msgstr "Seuls les cases marquées sont autorisées"
-
-#: backend.c:8093
-msgid "Swiss tourney finished"
-msgstr "Le tournoi à système suisse est terminé"
-
-#: backend.c:8609
-msgid "could not load EGBB library"
-msgstr "Impossible de charger la bibliothèque EGBB"
-
-#: backend.c:8612
-msgid "wrong EGBB version"
-msgstr "Version d'EGBB incorrecte"
-
-#: backend.c:8725
-msgid "Invalid pairing from pairing engine"
-msgstr "Jumelage invalide de la part du moteur de jumelage"
-
-#: backend.c:8892
-#, c-format
-msgid "Illegal move \"%s\" from %s machine"
-msgstr "Mouvement \"%s\" interdit de la machine %s"
-
-#: backend.c:9179
-msgid "Bad FEN received from engine"
-msgstr "FEN reçue du moteur incorrecte "
-
-#: backend.c:9280
-msgid "Engine did not send setup for non-standard variant"
-msgstr "Le moteur n'a pas fourni de d'installation pour une variante non-standard "
-
-#: backend.c:9358 backend.c:14667 backend.c:14735
-#, c-format
-msgid "%s does not support analysis"
-msgstr "%s ne supporte pas l'analyse"
-
-#: backend.c:9424
-#, c-format
-msgid "Illegal move \"%s\" (rejected by %s chess program)"
-msgstr "Mouvement \"%s\" interdit (rejeté par le programme d'échecs %s)"
-
-#: backend.c:9455
-#, c-format
-msgid "Failed to start %s chess program %s on %s: %s\n"
-msgstr "Échec dans le démarrage du programme d'échec %s %s sur %s: %s\n"
-
-#: backend.c:9476
-#, c-format
-msgid "Hint: %s"
-msgstr "Indice : %s"
-
-#: backend.c:9481
-#, c-format
-msgid ""
-"Illegal hint move \"%s\"\n"
-"from %s chess program"
-msgstr ""
-"Mouvement d'indice \"%s\" interdit\n"
-"dans le programme d'échecs %s"
-
-#: backend.c:9656
-msgid "Machine accepts your draw offer"
-msgstr "La machine accepte votre proposition de match nul"
-
-#: backend.c:9659
-msgid ""
-"Machine offers a draw.\n"
-"Select Action / Draw to accept."
-msgstr ""
-"La machine propose un match nul.\n"
-"Sélectionnez Action / Égalité pour accepter."
-
-#. TRANSLATORS: PV = principal variation, the variation the chess engine thinks is the best for everyone
-#: backend.c:9777
-msgid "failed writing PV"
-msgstr "Écriture de PV échouée"
-
-#: backend.c:10083
-#, c-format
-msgid "Ambiguous move in ICS output: \"%s\""
-msgstr "Mouvement ambigu dans la sortie ICS : \"%s\""
-
-#: backend.c:10093
-#, c-format
-msgid "Illegal move in ICS output: \"%s\""
-msgstr "Mouvement interdit dans la sortie ICS : \"%s\""
-
-#: backend.c:10104
-msgid "Gap in move list"
-msgstr "Il y a un trou dans la liste des mouvements "
-
-#: backend.c:10782
-#, c-format
-msgid "Variant %s not supported by %s"
-msgstr "La variante %s n'est pas supportée par %s"
-
-#: backend.c:10789
-#, c-format
-msgid ", but %s is"
-msgstr ", mais %s est"
-
-#: backend.c:10945
-#, c-format
-msgid "Startup failure on '%s'"
-msgstr "Échec de démarrage sur '%s'"
-
-#: backend.c:10976
-msgid "Waiting for first chess program"
-msgstr "En attente du premier programme d'échecs"
-
-#: backend.c:10981 backend.c:14953
-msgid "Waiting for second chess program"
-msgstr "En attente du second programme d'échecs"
-
-#: backend.c:11030
-msgid "Could not write on tourney file"
-msgstr "Impossible d'écrire dans le fichier du tournoi"
-
-#: backend.c:11104
-msgid ""
-"You cannot replace an engine while it is engaged!\n"
-"Terminate its game first."
-msgstr ""
-"Vous ne pouvez pas remplacer un moteur pendant qu'il est engagé !\n"
-"Veuillez d'abord clôturer le jeu associé. "
-
-#: backend.c:11118
-msgid "No engine with the name you gave is installed"
-msgstr "Aucun moteur portant le nom fourni n'est installé"
-
-#: backend.c:11120
-msgid ""
-"First change an engine by editing the participants list\n"
-"of the Tournament Options dialog"
-msgstr ""
-"Tout d'abord, changez le moteur d'échecs en éditant la liste des participants\n"
-"de la boîte de dialogue Options du Tournoi"
-
-#: backend.c:11121
-msgid "You can only change one engine at the time"
-msgstr "Vous ne pouvez changer qu'un seul moteur à la fois "
-
-#: backend.c:11136 backend.c:11285
-#, c-format
-msgid "No engine %s is installed"
-msgstr "Aucun moteur %s n'est installé"
-
-#: backend.c:11156
-msgid ""
-"You must supply a tournament file,\n"
-"for storing the tourney progress"
-msgstr ""
-"Vous devez fournir un fichier de tournoi,\n"
-"afin de conserver la progression du tournoi"
-
-#: backend.c:11166
-msgid "Not enough participants"
-msgstr "Pas assez de participants"
-
-#: backend.c:11369
-msgid "Bad tournament file"
-msgstr "Mauvais fichier de tournoi"
-
-#: backend.c:11381
-msgid "Waiting for other game(s)"
-msgstr "En attente d'autres parties"
-
-#: backend.c:11394
-msgid "No pairing engine specified"
-msgstr "Aucun moteur de jumelage n'est spécifié"
-
-#: backend.c:11879
-#, c-format
-msgid "Average solving time %4.2f sec (total time %4.2f sec) "
-msgstr "Temps de résolution moyen %4.2f s (durée totale %4.2f s) "
-
-#: backend.c:11881
-#, c-format
-msgid "%d avoid-moves played "
-msgstr "%d mouvements d’évitement joués"
-
-#: backend.c:11883
-#, c-format
-msgid "Solved %d out of %d (%3.1f%%) "
-msgstr "%d résolus sur %d (%3.1f%%) "
-
-#: backend.c:11886
-#, c-format
-msgid "Match %s vs. %s: final score %d-%d-%d"
-msgstr "Match %s contre %s : score final %d-%d-%d"
-
-#: backend.c:12363 backend.c:12399
-#, c-format
-msgid "Illegal move: %d.%s%s"
-msgstr "Mouvement interdit : %d.%s%s"
-
-#: backend.c:12388
-#, c-format
-msgid "Ambiguous move: %d.%s%s"
-msgstr "Mouvement ambigu : %d.%s%s"
-
-#: backend.c:12442 backend.c:13495 backend.c:13695 backend.c:14065
-#, c-format
-msgid "Can't open \"%s\""
-msgstr "Impossible d'ouvrir \"%s\""
-
-#: backend.c:12454 menus.c:118
-msgid "Cannot build game list"
-msgstr "Impossible de construire la liste de jeu"
-
-#: backend.c:12539
-msgid "No more games in this message"
-msgstr "Plus de jeux dans ce message"
-
-#: backend.c:12579
-msgid "No game has been loaded yet"
-msgstr "Aucun jeu n'a encore été chargé "
-
-#: backend.c:12583 backend.c:13476 ngamelist.c:129
-msgid "Can't back up any further"
-msgstr "Impossible de reculer davantage"
-
-#: backend.c:13030
-msgid "Game number out of range"
-msgstr "Numéro de la partie hors de la plage"
-
-#: backend.c:13041
-msgid "Can't seek on game file"
-msgstr "Impossible d'appeler le fichier de jeu"
-
-#: backend.c:13099
-msgid "Game not found in file"
-msgstr "Partie non trouvée dans le fichier"
-
-#: backend.c:13230 backend.c:13573
-msgid "Bad FEN position in file"
-msgstr "Position de FEN incorrecte dans le fichier"
-
-#: backend.c:13388
-msgid "No moves in game"
-msgstr "Aucun mouvement dans le jeu"
-
-#: backend.c:13472
-msgid "No position has been loaded yet"
-msgstr "Aucune position n'a encore été chargée"
-
-#: backend.c:13533 backend.c:13544
-msgid "Can't seek on position file"
-msgstr "Impossible d'appeler le fichier de position"
-
-#: backend.c:13551 backend.c:13563
-msgid "Position not found in file"
-msgstr "Position non trouvée dans le fichier"
-
-#: backend.c:13610
-msgid "Black to play"
-msgstr "Aux noirs de jouer"
-
-#: backend.c:13613
-msgid "White to play"
-msgstr "Aux blancs de jouer"
-
-#: backend.c:13700 backend.c:14070
-msgid "Waiting for access to save file"
-msgstr "En attente de l'accès au fichier de sauvegarde"
-
-#: backend.c:13702
-msgid "Saving game"
-msgstr "Sauvegarde du jeu en cours"
-
-#: backend.c:13703
-msgid "Bad Seek"
-msgstr "Mauvaise recherche"
-
-#: backend.c:14072
-msgid "Saving position"
-msgstr "Sauvegarde de la position en cours"
-
-#: backend.c:14198
-msgid ""
-"You have edited the game history.\n"
-"Use Reload Same Game and make your move again."
-msgstr ""
-"Vous avez modifié l'historique de la partie.\n"
-"Utilisez Recharger la Même Partie et faites votre mouvement encore une fois. "
-
-#: backend.c:14203
-msgid ""
-"You have entered too many moves.\n"
-"Back up to the correct position and try again."
-msgstr ""
-"Vous avez entré trop de mouvements.\n"
-"Veuillez retourner à une position correcte and veuillez réessayer. "
-
-#: backend.c:14208
-msgid ""
-"Displayed position is not current.\n"
-"Step forward to the correct position and try again."
-msgstr ""
-"La position affichée n'est pas la position courante.\n"
-"Avancez d'un pas vers la position correcte et veuillez réessayer. "
-
-#: backend.c:14255
-msgid "You have not made a move yet"
-msgstr "Vous n'avez pas encore fait de mouvement"
-
-#: backend.c:14276
-msgid ""
-"The cmail message is not loaded.\n"
-"Use Reload CMail Message and make your move again."
-msgstr ""
-"Le message cmail n'est pas chargé.\n"
-"Utilisez Recharger le Message CMail et veuillez refaire votre mouvement."
-
-#: backend.c:14281
-msgid "No unfinished games"
-msgstr "Aucune partie non terminée"
-
-#: backend.c:14287
-#, c-format
-msgid ""
-"You have already mailed a move.\n"
-"Wait until a move arrives from your opponent.\n"
-"To resend the same move, type\n"
-"\"cmail -remail -game %s\"\n"
-"on the command line."
-msgstr ""
-"Vous avez déjà envoyé un mouvement par mail.\n"
-"Veuillez attendre que votre adversaire vous envoie un mouvement.\n"
-"Pour renvoyer le même mouvement, tapez\n"
-"\"cmail -remail -game %s\"\n"
-"dans la ligne de commande."
-
-#: backend.c:14302
-msgid "Failed to invoke cmail"
-msgstr "Échec lors de l'invocation de cmail"
-
-#: backend.c:14364
-#, c-format
-msgid "Waiting for reply from opponent\n"
-msgstr "En attente de la réponse de votre adversaire\n"
-
-#: backend.c:14386
-#, c-format
-msgid "Still need to make move for game\n"
-msgstr "Il est encore nécessaire de faire un mouvement pour la partie restante\n"
-
-#: backend.c:14390
-#, c-format
-msgid "Still need to make moves for both games\n"
-msgstr "Il est encore nécessaire de faire des mouvements pour les deux parties restantes\n"
-
-#: backend.c:14394
-#, c-format
-msgid "Still need to make moves for all %d games\n"
-msgstr "Il est encore nécessaire de faire des mouvements pour les %d parties restantes\n"
-
-#: backend.c:14401
-#, c-format
-msgid "Still need to make a move for game %s\n"
-msgstr "Il est encore nécessaire de faire un mouvement pour la partie %s\n"
-
-#: backend.c:14407
-#, c-format
-msgid "No unfinished games\n"
-msgstr "Aucun jeu non terminé\n"
-
-#: backend.c:14409
-#, c-format
-msgid "Ready to send mail\n"
-msgstr "Prêt à envoyer le mai\n"
-
-#: backend.c:14414
-#, c-format
-msgid "Still need to make moves for games %s\n"
-msgstr "Il est encore nécessaire de faire des mouvements pour les parties %s\n"
-
-#: backend.c:14617
-msgid "Edit comment"
-msgstr "Édit un commentaire"
-
-#: backend.c:14619
-#, c-format
-msgid "Edit comment on %d.%s%s"
-msgstr "Édit un commentaire sur %d.%s%s"
-
-#: backend.c:14674
-#, c-format
-msgid "You are not observing a game"
-msgstr "Vous n'observez aucune partie "
-
-#: backend.c:14785
-msgid "It is not White's turn"
-msgstr "C'est maintenant au tour des Blancs"
-
-#: backend.c:14866
-msgid "It is not Black's turn"
-msgstr "C'est maintenant au tour des Noirs"
-
-#: backend.c:14974
-#, c-format
-msgid "Starting %s chess program"
-msgstr "Démarrage du programme d'échecs %s"
-
-#: backend.c:15002 backend.c:16189
-msgid ""
-"Wait until your turn,\n"
-"or select 'Move Now'."
-msgstr ""
-"Veuillez attendre votre tour,\n"
-"ou sélectionnez 'Bouger maintenant'."
-
-#: backend.c:15145
-msgid "Training mode off"
-msgstr "Mode d'entraînement éteint "
-
-#: backend.c:15153
-msgid "Training mode on"
-msgstr "Mode d'entraînement démarré"
-
-#: backend.c:15156
-msgid "Already at end of game"
-msgstr "Déjà à la fin de la partie"
-
-#: backend.c:15246
-msgid "Warning: You are still playing a game"
-msgstr "Attention : Vous êtes encore en train de jouer une partie "
-
-#: backend.c:15249
-msgid "Warning: You are still observing a game"
-msgstr "Attention : Vous êtes encore en train d'observer une partie "
-
-#: backend.c:15252
-msgid "Warning: You are still examining a game"
-msgstr "Attention : Vous êtes encore en train d'examiner une partie "
-
-#: backend.c:15322
-msgid "Click clock to clear board"
-msgstr "Cliquez sur le chronomètre pour nettoyer le plateau"
-
-#: backend.c:15332
-msgid "Close ICS engine analyze..."
-msgstr "Fermer l'analyse du moteur ICS..."
-
-#: backend.c:15662
-msgid "That square is occupied"
-msgstr "La case est occupée"
-
-#: backend.c:15686 backend.c:15712
-msgid "There is no pending offer on this move"
-msgstr "Il n'y a aucune offre en suspens pour ce mouvement "
-
-#: backend.c:15748 backend.c:15759
-msgid "Your opponent is not out of time"
-msgstr "Votre adversaire n'est pas en retard"
-
-#: backend.c:15827
-msgid "You must make your move before offering a draw"
-msgstr "Vous devez faire votre mouvement avec de proposer un match nul"
-
-#: backend.c:16171
-msgid "You are not examining a game"
-msgstr "Vous n'êtes pas en train d'étudier le jeu"
-
-#: backend.c:16175
-msgid "You can't revert while pausing"
-msgstr "Vous ne pouvez pas revenir en arrière lorsque vous êtes en pause"
-
-#: backend.c:16229 backend.c:16236
-msgid "It is your turn"
-msgstr "C'est à vous de jouer"
-
-#: backend.c:16287 backend.c:16294 backend.c:16380 backend.c:16387
-msgid "Wait until your turn."
-msgstr "Veuillez patienter jusqu'à votre tour"
-
-#: backend.c:16299
-msgid "No hint available"
-msgstr "Aucun indice n'est disponible"
-
-#: backend.c:16314 backend.c:16345 ngamelist.c:365
-msgid "Game list not loaded or empty"
-msgstr "Liste de jeux non chargée ou vide"
-
-#: backend.c:16352
-msgid "Book file exists! Try again for overwrite."
-msgstr "Fichier de bibliothèque existant ! Essayez encore pour écraser."
-
-#: backend.c:16833
-#, c-format
-msgid "Error writing to %s chess program"
-msgstr "Erreur lors de l'écriture dans le programme d'échecs %s"
-
-#: backend.c:16836 backend.c:16867
-#, c-format
-msgid "%s program exits in draw position (%s)"
-msgstr "Le programme %s quitte sur un match nul (%s)"
-
-#: backend.c:16862
-#, c-format
-msgid "Error: %s chess program (%s) exited unexpectedly"
-msgstr "Erreur : le programme d'échec %s (%s) a quitté de façon inattendue"
-
-#: backend.c:16880
-#, c-format
-msgid "Error reading from %s chess program (%s)"
-msgstr "Erreur de lecture dans le programme d'échecs %s (%s)"
-
-#: backend.c:17312
-#, c-format
-msgid "%s engine has too many options\n"
-msgstr "Le moteur %s possède trop d'options\n"
-
-#: backend.c:17468
-msgid "Displayed move is not current"
-msgstr "Le mouvement affiché n'est pas celui qui est courant "
-
-#: backend.c:17477
-msgid "Could not parse move"
-msgstr "Impossible d'analyser le mouvement "
-
-#: backend.c:17602 backend.c:17624
-msgid "Both flags fell"
-msgstr "Les deux drapeaux ont chuté"
-
-#: backend.c:17604
-msgid "White's flag fell"
-msgstr "Le drapeau des Blancs a chuté"
-
-#: backend.c:17626
-msgid "Black's flag fell"
-msgstr "Le drapeau des Noirs a chuté"
-
-#: backend.c:17757
-msgid "Clock adjustment not allowed in auto-flag mode"
-msgstr "Le réajustement d'horloge n'est pas autorisé dans le mode drapeau automatique"
-
-#: backend.c:18719
-msgid "Bad FEN position in clipboard"
-msgstr "Mauvaise position FEN dans le presse-papier"
-
-#: book.c:598 book.c:874
-msgid "Polyglot book not valid"
-msgstr "Bibliothèque d'ouverture invalide"
-
-#: book.c:722
-msgid "Book Fault"
-msgstr "Défaut de bibliothèque"
-
-#: book.c:877
-msgid "Hash keys are different"
-msgstr "Les clés de hashage sont différentes"
-
-#: book.c:1053
-msgid "Could not create book"
-msgstr "Impossible de créer la bibliothèque"
-
-#: dialogs.c:286
-msgid "Tournament file:          "
-msgstr "Fichier de tournoi :"
-
-#: dialogs.c:287
-msgid "For concurrent playing of tourney with multiple XBoards:"
-msgstr "Pour les parties de tournoi simultanées avec plusieurs XBoards :"
-
-#: dialogs.c:288
-msgid "Sync after round"
-msgstr "Synchronisation après le tour"
-
-#: dialogs.c:289
-msgid "Sync after cycle"
-msgstr "Synchronisation après le cycle"
-
-#: dialogs.c:290
-msgid "Tourney participants:"
-msgstr "Participants du tournoi : "
-
-#: dialogs.c:291
-msgid "Select Engine:"
-msgstr "Sélectionnez le moteur :"
-
-#: dialogs.c:299
-msgid "Tourney type (0 = round-robin, 1 = gauntlet):"
-msgstr "Type du tournoi (0 = toutes rondes, 1 = gantelet) : "
-
-#: dialogs.c:300
-msgid "Number of tourney cycles (or Swiss rounds):"
-msgstr "Nombre de cycles du tournoi (ou rondes suisses) : "
-
-#: dialogs.c:301
-msgid "Default Number of Games in Match (or Pairing):"
-msgstr "Nombre de jeux par défaut dans le match (ou appariement ) :"
-
-#: dialogs.c:302
-msgid "Pause between Match Games (msec):"
-msgstr "Pause entre les jeux de match (msec) :"
-
-#: dialogs.c:303
-msgid "Save Tourney Games on:"
-msgstr "Sauvegarder les jeux de tournoi sur :"
-
-#: dialogs.c:304
-msgid "Game File with Opening Lines:"
-msgstr "Fichier de jeu avec ouverture de lignes :"
-
-#: dialogs.c:305
-msgid "Game Number (-1 or -2 = Auto-Increment):"
-msgstr "Nombre de jeux (-1 ou -2 = incrémentation automatique) : "
-
-#: dialogs.c:306
-msgid "File with Start Positions:"
-msgstr "Fichier avec les positions de départ : "
-
-#: dialogs.c:307
-msgid "Position Number (-1 or -2 = Auto-Increment):"
-msgstr "Nombre de positions (-1 ou -2 = incrémentation automatique) :"
-
-#: dialogs.c:308
-msgid "Rewind Index after this many Games (0 = never):"
-msgstr "Rebobinage d'index après ce nombre de jeux (0 = jamais) :"
-
-#: dialogs.c:309
-msgid "Disable own engine books by default"
-msgstr "Désactiver ses propres bibliothèques de moteurs par défaut"
-
-#: dialogs.c:310 dialogs.c:1840
-msgid "Time Control"
-msgstr "Contrôle temporel"
-
-#: dialogs.c:311
-msgid "Common Engine"
-msgstr "Moteur commun"
-
-#: dialogs.c:312 dialogs.c:446
-msgid "General Options"
-msgstr "Options générales"
-
-#: dialogs.c:313
-msgid "Continue Later"
-msgstr "Poursuivre ultérieurement "
-
-#: dialogs.c:314
-msgid "Replace Engine"
-msgstr "Remplacer le moteur"
-
-#: dialogs.c:315
-msgid "Upgrade Engine"
-msgstr "Mettre à niveau le moteur"
-
-#: dialogs.c:316
-msgid "Clone Tourney"
-msgstr "Fermer le tournoi"
-
-#: dialogs.c:356
-msgid "First you must specify an existing tourney file to clone"
-msgstr "Tout d'abord, vous devez spécifier un fichier de tournoi existant à cloner "
-
-#: dialogs.c:372 dialogs.c:1549
-msgid "# no engines are installed"
-msgstr "# aucun moteur n'est installé"
-
-#: dialogs.c:380
-msgid "Internal error: PARTICIPANTS set wrong"
-msgstr "Erreur interne : réglage PARTICIPANTS erroné"
-
-#: dialogs.c:388
-msgid "Tournament Options"
-msgstr "Options du tournoi"
-
-#: dialogs.c:407
-msgid "Absolute Analysis Scores"
-msgstr "Analyse absolue des scores "
-
-#: dialogs.c:408
-msgid "Almost Always Queen (Detour Under-Promote)"
-msgstr "Presque toujours une Reine (voire une sous-promotion)"
-
-#: dialogs.c:409 menus.c:729
-msgid "Animate Dragging"
-msgstr "Traînée animée"
-
-#: dialogs.c:410 menus.c:730
-msgid "Animate Moving"
-msgstr "Mouvement animé"
-
-#: dialogs.c:411 menus.c:731
-msgid "Auto Flag"
-msgstr "Drapeau automatique"
-
-#: dialogs.c:412 menus.c:732
-msgid "Auto Flip View"
-msgstr "Retournement de vue automatique"
-
-#: dialogs.c:413 menus.c:733
-msgid "Blindfold"
-msgstr "Aveugle"
-
-#. TRANSLATORS: the drop menu is used to drop a piece, e.g. during bughouse or editing a position
-#: dialogs.c:415
-msgid "Drop Menu"
-msgstr "Menu déroulant"
-
-#: dialogs.c:416
-msgid "Enable Variation Trees"
-msgstr "Autoriser les arbres de variation"
-
-#: dialogs.c:417
-msgid "Headers in Engine Output Window"
-msgstr "En-têtes dans la fenêtre de sortie du moteur"
-
-#: dialogs.c:418
-msgid "Hide Thinking from Human"
-msgstr "Cacher la pensée de l'Humain"
-
-#: dialogs.c:419 menus.c:738
-msgid "Highlight Last Move"
-msgstr "Surligner le dernier mouvement "
-
-#: dialogs.c:420
-msgid "Highlight with Arrow"
-msgstr "Surligner avec une flèche"
-
-#: dialogs.c:421 menus.c:741
-msgid "One-Click Moving"
-msgstr "Déplacement en un clic"
-
-#: dialogs.c:422
-msgid "Periodic Updates (in Analysis Mode)"
-msgstr "Mises à jour périodiques (en mode d'analyse)"
-
-#: dialogs.c:424
-msgid "Play Move(s) of Clicked PV (Analysis)"
-msgstr "Mouvement(s) de jeu du PV sélectionné (Analyse)"
-
-#: dialogs.c:425 dialogs.c:626 menus.c:743
-msgid "Ponder Next Move"
-msgstr "Réfléchir au mouvement suivant"
-
-#: dialogs.c:426
-msgid "Popup Exit Messages"
-msgstr "Faire apparaître les messages de sortie"
-
-#: dialogs.c:427 menus.c:745
-msgid "Popup Move Errors"
-msgstr "Faire apparaître les erreurs de mouvement"
-
-#: dialogs.c:428
-msgid "Scores in Move List"
-msgstr "Scores dans la liste des mouvements"
-
-#: dialogs.c:429
-msgid "Show Coordinates"
-msgstr "Montrer les coordonnées"
-
-#: dialogs.c:430
-msgid "Show Target Squares"
-msgstr "Montrer les cases cibles"
-
-#: dialogs.c:431
-msgid "Sticky Windows"
-msgstr "Fenêtres collantes"
-
-#: dialogs.c:432 menus.c:748
-msgid "Test Legality"
-msgstr "Tester la légalité"
-
-#: dialogs.c:433
-msgid "Top-Level Dialogs"
-msgstr "Dialogues de haut-niveau"
-
-#: dialogs.c:434
-msgid "Flash Moves (0 = no flashing):"
-msgstr "Mouvements clignotants (0 = pas de clignotement) :"
-
-#: dialogs.c:435
-msgid "Flash Rate (high = fast):"
-msgstr "Taux de clignotement (haut = rapide) :"
-
-#: dialogs.c:436
-msgid "Animation Speed (high = slow):"
-msgstr "Vitesse des animations (haut = lent) :"
-
-#: dialogs.c:437
-msgid "Zoom factor in Evaluation Graph:"
-msgstr "Facteur de zoom dans le graphique d'évaluation :"
-
-#: dialogs.c:457
-msgid "Normal"
-msgstr "Normal"
-
-#: dialogs.c:458
-msgid "Makruk"
-msgstr "Makruk"
-
-#: dialogs.c:459
-msgid "FRC"
-msgstr "FRC"
-
-#: dialogs.c:460
-msgid "Shatranj"
-msgstr "Chatrang"
-
-#: dialogs.c:461
-msgid "Wild castle"
-msgstr "Roque furieux"
-
-#: dialogs.c:462
-msgid "Knightmate"
-msgstr "Compagnon du roi"
-
-#: dialogs.c:463
-msgid "No castle"
-msgstr "Sans roque"
-
-#: dialogs.c:464
-msgid "Cylinder *"
-msgstr "Cylindre *"
-
-#: dialogs.c:465
-msgid "3-checks"
-msgstr "Tri-échecs"
-
-#: dialogs.c:466
-msgid "berolina *"
-msgstr "Berolina *"
-
-#: dialogs.c:467
-msgid "atomic"
-msgstr "Atomique"
-
-#: dialogs.c:468
-msgid "two kings"
-msgstr "Deux rois"
-
-#: dialogs.c:469
-msgid " "
-msgstr " "
-
-#: dialogs.c:470
-msgid "Spartan"
-msgstr "Spartan"
-
-#: dialogs.c:471
-msgid "Board size ( -1 = default for selected variant):"
-msgstr "Taille de l'échiquier (-1 = par défaut pour la variante sélectionnée) :"
-
-#: dialogs.c:472
-msgid "Number of Board Ranks:"
-msgstr "Nombre de rangées :"
-
-#: dialogs.c:473
-msgid "Number of Board Files:"
-msgstr "Nombre de colonnes : "
-
-#: dialogs.c:474
-msgid "Holdings Size:"
-msgstr "Taille de la zone de stockage :"
-
-#: dialogs.c:476
-msgid ""
-"Variants marked with * can only be played\n"
-"with legality testing off."
-msgstr ""
-"Les variantes marquées d'une * ne peuvent être jouées\n"
-" qu'avec la vérification de la légalité désactivée."
-
-#: dialogs.c:478
-msgid "ASEAN"
-msgstr "ASEAN"
-
-#: dialogs.c:479
-msgid "Great Shatranj (10x8)"
-msgstr "Grand Chatrang"
-
-#: dialogs.c:480
-msgid "Seirawan"
-msgstr "Seirawan"
-
-#: dialogs.c:481
-msgid "Falcon (10x8)"
-msgstr "Faucon (10x8)"
-
-#: dialogs.c:482
-msgid "Superchess"
-msgstr "Super échec"
-
-#: dialogs.c:483
-msgid "Capablanca (10x8)"
-msgstr "Capablanca (10x8)"
-
-#: dialogs.c:484
-msgid "Crazyhouse"
-msgstr "Maison de fous"
-
-#: dialogs.c:485
-msgid "Gothic (10x8)"
-msgstr "Gothique (10x8)"
-
-#: dialogs.c:486
-msgid "Bughouse"
-msgstr "Blitz à quatre"
-
-#: dialogs.c:487
-msgid "Janus (10x8)"
-msgstr "Janus (10x8)"
-
-#: dialogs.c:488
-msgid "Suicide"
-msgstr "Qui perd gagne"
-
-#: dialogs.c:489
-msgid "CRC (10x8)"
-msgstr "Échecs aléatoires Capablanca (10x8)"
-
-#: dialogs.c:490
-msgid "give-away"
-msgstr "Qui perd gagne"
-
-#: dialogs.c:491
-msgid "grand (10x10)"
-msgstr "Grand (10x10)"
-
-#: dialogs.c:492
-msgid "losers"
-msgstr "Qui perd gagne"
-
-#: dialogs.c:493
-msgid "shogi (9x9)"
-msgstr "Shogi (9x9)"
-
-#: dialogs.c:494
-msgid "fairy"
-msgstr "Féerique"
-
-#: dialogs.c:495
-msgid "xiangqi (9x10)"
-msgstr "Xianggi (9x10)"
-
-#: dialogs.c:496
-msgid "mighty lion"
-msgstr "Mat du lion "
-
-#: dialogs.c:497
-msgid "courier (12x8)"
-msgstr "Coursier (12x8)"
-
-#: dialogs.c:498
-msgid "elven chess (10x10)"
-msgstr "Échecs elfiques (10x10)"
-
-#: dialogs.c:499
-msgid "chu shogi (12x12)"
-msgstr "Chu Shogi (12x12)"
-
-#: dialogs.c:543
-#, c-format
-msgid "Warning: second engine (%s) does not support this!"
-msgstr "Attention : le second moteur (%s) ne supporte pas cela !"
-
-#: dialogs.c:572
-#, c-format
-msgid "Only bughouse is not available in viewer mode."
-msgstr "Seul le Blitz à quatre n'est pas disponible en mode spectateur."
-
-#: dialogs.c:573
-#, c-format
-msgid ""
-"All variants not supported by the first engine\n"
-"(currently %s) are disabled."
-msgstr ""
-"Toutes les variantes non supportées par le premier moteur\n"
-"(actuellement %s) sont désactivées."
-
-#: dialogs.c:595
-msgid "New Variant"
-msgstr "Nouvelle variante"
-
-#: dialogs.c:627
-msgid "Maximum Number of CPUs per Engine:"
-msgstr "Nombre maximum de CPUs par moteur :"
-
-#: dialogs.c:628
-msgid "Polygot Directory:"
-msgstr "Répertoire multilingue : "
-
-#: dialogs.c:629
-msgid "Hash-Table Size (MB):"
-msgstr "Taille du tableau de hashage (Mo) : "
-
-#: dialogs.c:630
-msgid "EGTB Path:"
-msgstr "Chemin EGTB : "
-
-#: dialogs.c:631
-msgid "EGTB Cache Size (MB):"
-msgstr "Taille du cache EGTB (Mo) :"
-
-#: dialogs.c:632
-msgid "Use GUI Book"
-msgstr "Utiliser le livre graphique"
-
-#: dialogs.c:633
-msgid "Opening-Book Filename:"
-msgstr "Nom de fichier de bibliothèque d'ouverture : "
-
-#: dialogs.c:634
-msgid "Book Depth (moves):"
-msgstr "Profondeur de la bibliothèque (mouvements) :"
-
-#: dialogs.c:635
-msgid "Book Variety (0) vs. Strength (100):"
-msgstr "Diversité de la bibliothèque (0) face à la force (100) :"
-
-#: dialogs.c:636
-msgid "Engine #1 Has Own Book"
-msgstr "Le moteur #1 possède sa propre bibliothèque"
-
-#: dialogs.c:637
-msgid "Engine #2 Has Own Book          "
-msgstr "Le moteur #1 possède sa propre bibliothèque"
-
-#: dialogs.c:648
-msgid "Common Engine Settings"
-msgstr "Paramètres communs aux moteurs"
-
-#: dialogs.c:654
-msgid "Detect all Mates"
-msgstr "Détecter tous les partenaires"
-
-#: dialogs.c:655
-msgid "Verify Engine Result Claims"
-msgstr "Vérifier les déclarations du résultat du moteur"
-
-#: dialogs.c:656
-msgid "Draw if Insufficient Mating Material"
-msgstr "Faire match nul si les moyens de mat sont insuffisants"
-
-#: dialogs.c:657
-msgid "Adjudicate Trivial Draws (3-Move Delay)"
-msgstr "Arbitrer les matchs nuls évidents (retard de 3 mouvements)"
-
-#: dialogs.c:658
-msgid "N-Move Rule:"
-msgstr "Règle des N coups :"
-
-#: dialogs.c:659
-msgid "N-fold Repeats:"
-msgstr "N répétitions de position :"
-
-#: dialogs.c:660
-msgid "Draw after N Moves Total:"
-msgstr "Match nul après un total de N coups :"
-
-#: dialogs.c:661
-msgid "Win / Loss Threshold:"
-msgstr "Seuil de victoire / défaite :"
-
-#: dialogs.c:662
-msgid "Negate Score of Engine #1"
-msgstr "Annuler le score du moteur #1"
-
-#: dialogs.c:663
-msgid "Negate Score of Engine #2"
-msgstr "Annuler le score du moteur #2"
-
-#: dialogs.c:670
-msgid "Adjudicate non-ICS Games"
-msgstr "Arbitrer les jeux non-ICS"
-
-#: dialogs.c:683
-msgid "Auto-Kibitz"
-msgstr "Kibitz automatique"
-
-#: dialogs.c:684
-msgid "Auto-Comment"
-msgstr "Commentaire automatique"
-
-#: dialogs.c:685
-msgid "Auto-Observe"
-msgstr "Observation automatique"
-
-#: dialogs.c:686
-msgid "Auto-Raise Board"
-msgstr "Échiquier au premier plan automatique"
-
-#: dialogs.c:687
-msgid "Auto-Create Logon Script"
-msgstr "Création automatique du script de connexion"
-
-#: dialogs.c:688
-msgid "Background Observe while Playing"
-msgstr "Observation en second plan lors du jeu"
-
-#: dialogs.c:689
-msgid "Dual Board for Background-Observed Game"
-msgstr "Échiquier parallèle pour les jeux observés en second plan"
-
-#: dialogs.c:690
-msgid "Get Move List"
-msgstr "Obtenir la liste des coups"
-
-#: dialogs.c:691
-msgid "Quiet Play"
-msgstr "Jeu tranquille"
-
-#: dialogs.c:692
-msgid "Seek Graph"
-msgstr "Graphique de recherche"
-
-#: dialogs.c:693
-msgid "Auto-Refresh Seek Graph"
-msgstr "Rafraîchissement automatique du graphique de recherche"
-
-#: dialogs.c:694
-msgid "Auto-InputBox PopUp"
-msgstr "Pop-up de saisi automatique"
-
-#: dialogs.c:695
-msgid "Quit after game"
-msgstr "Quitter à la fin du jeu"
-
-#: dialogs.c:696
-msgid "Premove"
-msgstr "Pré-coup"
-
-#: dialogs.c:697
-msgid "Premove for White"
-msgstr "Pré-coup pour les Blancs"
-
-#: dialogs.c:698
-msgid "First White Move:"
-msgstr "Premier coup des Blancs :"
-
-#: dialogs.c:699
-msgid "Premove for Black"
-msgstr "Pré-coup pour les Noirs"
-
-#: dialogs.c:700
-msgid "First Black Move:"
-msgstr "Premier coup des Noirs :"
-
-#: dialogs.c:702
-msgid "Alarm"
-msgstr "Alarme"
-
-#: dialogs.c:703
-msgid "Alarm Time (msec):"
-msgstr "Temps de l'alarme (msec) :"
-
-#: dialogs.c:705
-msgid "Colorize Messages"
-msgstr "Messages colorés"
-
-#: dialogs.c:706
-msgid "Shout Text Colors:"
-msgstr "Couleurs du texte Crier:"
-
-#: dialogs.c:707
-msgid "S-Shout Text Colors:"
-msgstr "Couleurs du texte S-Crier:"
-
-#: dialogs.c:708
-msgid "Channel #1 Text Colors:"
-msgstr "Couleurs du texte du Canal #1 :"
-
-#: dialogs.c:709
-msgid "Other Channel Text Colors:"
-msgstr "Couleurs du texte Autre Canal :"
-
-#: dialogs.c:710
-msgid "Kibitz Text Colors:"
-msgstr "Couleurs du texte Kibitz :"
-
-#: dialogs.c:711
-msgid "Tell Text Colors:"
-msgstr "Couleurs du texte Dire:"
-
-#: dialogs.c:712
-msgid "Challenge Text Colors:"
-msgstr "Couleurs du texte Défi :"
-
-#: dialogs.c:713
-msgid "Request Text Colors:"
-msgstr "Couleurs du texte Requête : "
-
-#: dialogs.c:714
-msgid "Seek Text Colors:"
-msgstr "Couleurs du texte Recherche :"
-
-#: dialogs.c:715
-msgid "Other Text Colors:"
-msgstr "Couleurs du texte Autre :"
-
-#: dialogs.c:722
-msgid "ICS Options"
-msgstr "Options de l'ICS"
-
-#: dialogs.c:727
-msgid "Exact position match"
-msgstr "Correspondance de la position exacte"
-
-#: dialogs.c:727
-msgid "Shown position is subset"
-msgstr "La position montrée est un sous-ensemble"
-
-#: dialogs.c:727
-msgid "Same material with exactly same Pawn chain"
-msgstr "Même matériel avec exactement la même structure de pions"
-
-#: dialogs.c:728
-msgid "Same material"
-msgstr "Même matériel"
-
-#: dialogs.c:728
-msgid "Material range (top board half optional)"
-msgstr "Rangée du matériel (moitié supérieure de l'échiquier optionnelle)"
-
-#: dialogs.c:728
-msgid "Material difference (optional stuff balanced)"
-msgstr "Différence matérielle (équipement optionnel équilibré)"
-
-#: dialogs.c:743
-msgid "Auto-Display Tags"
-msgstr "Affichage automatique des étiquettes"
-
-#: dialogs.c:744
-msgid "Auto-Display Comment"
-msgstr "Affichage automatique des commentaires "
-
-#: dialogs.c:745
-msgid ""
-"Auto-Play speed of loaded games\n"
-"(0 = instant, -1 = off):"
-msgstr ""
-"Vitesse de jeu automatique des jeux chargés\n"
-"(0 = instantané, -1 = désactivé) :"
-
-#: dialogs.c:746
-msgid "Seconds per Move:"
-msgstr "Secondes par coup :"
-
-#: dialogs.c:747
-msgid ""
-"\n"
-"options to use in game-viewer mode:"
-msgstr ""
-"\n"
-"Options à utiliser en mode spectateur de jeu: "
-
-#: dialogs.c:749
-msgid ""
-"\n"
-"Thresholds for position filtering in game list:"
-msgstr ""
-"\n"
-"Seuils pour le filtrage des positions dans la liste de jeux :"
-
-#: dialogs.c:750
-msgid "Elo of strongest player at least:"
-msgstr "Elo du meilleur joueur en dernier :"
-
-#: dialogs.c:751
-msgid "Elo of weakest player at least:"
-msgstr "Elo du joueur le plus faible en dernier :"
-
-#: dialogs.c:752
-msgid "No games before year:"
-msgstr "Aucun jeu précédant l'année : "
-
-#: dialogs.c:753
-msgid "Minimum nr consecutive positions:"
-msgstr "Nombre minimum de positions consécutives :"
-
-#: dialogs.c:755
-msgid "Search mode:"
-msgstr "Mode de recherche :"
-
-#: dialogs.c:756
-msgid "Also match reversed colors"
-msgstr "Associer aussi les couleurs inversées"
-
-#: dialogs.c:757
-msgid "Also match left-right flipped position"
-msgstr "Associer aussi la position inversée verticalement"
-
-#: dialogs.c:766
-msgid "Load Game Options"
-msgstr "Charger les options de jeu"
-
-#: dialogs.c:778
-msgid "Auto-Save Games"
-msgstr "Sauvegarder automatiquement les parties "
-
-#: dialogs.c:779
-msgid "Own Games Only"
-msgstr "Uniquement mes parties "
-
-#: dialogs.c:780
-msgid "Save Games on File:"
-msgstr "Sauvegarder les parties dans le fichier :"
-
-#: dialogs.c:781
-msgid "Save Final Positions on File:"
-msgstr "Sauvegarder les positions finales dans le fichier :"
-
-#: dialogs.c:782
-msgid "PGN Event Header:"
-msgstr "En-têtes des résultats PGN :"
-
-#: dialogs.c:783
-msgid "Old Save Style (as opposed to PGN)"
-msgstr "Ancien type de sauvegarde (contrairement au PGN)"
-
-#: dialogs.c:784
-msgid "Include Number Tag in tourney PGN"
-msgstr "Inclure l'identifiant numérique dans le tournoi PGN"
-
-#: dialogs.c:785
-msgid "Save Score/Depth Info in PGN"
-msgstr "Sauvegarder la donnée Score / Profondeur dans le PGN"
-
-#: dialogs.c:786
-msgid "Save Out-of-Book Info in PGN           "
-msgstr "Sauvegarder la donnée Sortie de la Bibliothèque dans le PGN"
-
-#: dialogs.c:793
-msgid "Save Game Options"
-msgstr "Sauvegarder les options de jeu"
-
-#: dialogs.c:802
-msgid "No Sound"
-msgstr "Muet"
-
-#: dialogs.c:803
-msgid "Default Beep"
-msgstr "Bip par défaut"
-
-#: dialogs.c:804
-msgid "Above WAV File"
-msgstr "Fichier WAV ci-dessus"
-
-#: dialogs.c:805
-msgid "Car Horn"
-msgstr "Klaxon de voiture"
-
-#: dialogs.c:806
-msgid "Cymbal"
-msgstr "Cymbale"
-
-#: dialogs.c:807
-msgid "Ding"
-msgstr "Ding"
-
-#: dialogs.c:808
-msgid "Gong"
-msgstr "Gong"
-
-#: dialogs.c:809
-msgid "Laser"
-msgstr "Laser"
-
-#: dialogs.c:810
-msgid "Penalty"
-msgstr "Penalty"
-
-#: dialogs.c:811
-msgid "Phone"
-msgstr "Téléphone"
-
-#: dialogs.c:812
-msgid "Pop"
-msgstr "Pop"
-
-#: dialogs.c:813
-msgid "Roar"
-msgstr "Rugissement"
-
-#: dialogs.c:814
-msgid "Slap"
-msgstr "Claquement "
-
-#: dialogs.c:815
-msgid "Wood Thunk"
-msgstr "Wood Thunk"
-
-#: dialogs.c:817
-msgid "User File"
-msgstr "Fichier utilisateur"
-
-#: dialogs.c:840
-msgid "User WAV File:"
-msgstr "Fichier WAV de l'utilisateur :"
-
-#: dialogs.c:841
-msgid "Sound Program:"
-msgstr "Lecteur de son :"
-
-#: dialogs.c:842
-msgid "Try-Out Sound:"
-msgstr "Son d'essai : "
-
-#: dialogs.c:843
-msgid "Play"
-msgstr "Jouer "
-
-#: dialogs.c:844
-msgid "Move:"
-msgstr "Coup :"
-
-#: dialogs.c:845
-msgid "Win:"
-msgstr "Gagner :"
-
-#: dialogs.c:846
-msgid "Lose:"
-msgstr "Perdre :"
-
-#: dialogs.c:847
-msgid "Draw:"
-msgstr "Match nul :"
-
-#: dialogs.c:848
-msgid "Unfinished:"
-msgstr "Non terminé :"
-
-#: dialogs.c:849
-msgid "Alarm:"
-msgstr "Alarme :"
-
-#: dialogs.c:850
-msgid "Challenge:"
-msgstr "Défi :"
-
-#: dialogs.c:852
-msgid "Sounds Directory:"
-msgstr "Répertoire de sons :"
-
-#: dialogs.c:853
-msgid "Shout:"
-msgstr "Cri :"
-
-#: dialogs.c:854
-msgid "S-Shout:"
-msgstr "S-Cri : "
-
-#: dialogs.c:855
-msgid "Channel:"
-msgstr "Canal :"
-
-#: dialogs.c:856
-msgid "Channel 1:"
-msgstr "Canal 1 :"
-
-#: dialogs.c:857
-msgid "Tell:"
-msgstr "Dire :"
-
-#: dialogs.c:858
-msgid "Kibitz:"
-msgstr "Kibitz :"
-
-#: dialogs.c:859
-msgid "Request:"
-msgstr "Requêtes :"
-
-#: dialogs.c:860
-msgid "Lion roar:"
-msgstr "Rugissement de lion :"
-
-#: dialogs.c:861
-msgid "Seek:"
-msgstr "Recherche :"
-
-#: dialogs.c:877
-msgid "Sound Options"
-msgstr "Options sonores"
-
-#: dialogs.c:893
-msgid "Selectable themes:"
-msgstr "Thèmes sélectionnables :"
-
-#: dialogs.c:895
-msgid "New name for current theme:"
-msgstr "Nouveau nom pour le thème courant :"
-
-#: dialogs.c:898
-msgid "White Piece Color:"
-msgstr "Couleur du pion blanc :"
-
-#. TRANSLATORS: R = single letter for the color red
-#: dialogs.c:901 dialogs.c:910 dialogs.c:916 dialogs.c:922 dialogs.c:928
-#: dialogs.c:934
-msgid "R"
-msgstr "R"
-
-#. TRANSLATORS: G = single letter for the color green
-#: dialogs.c:903 dialogs.c:911 dialogs.c:917 dialogs.c:923 dialogs.c:929
-#: dialogs.c:935
-msgid "G"
-msgstr "G"
-
-#. TRANSLATORS: B = single letter for the color blue
-#: dialogs.c:905 dialogs.c:912 dialogs.c:918 dialogs.c:924 dialogs.c:930
-#: dialogs.c:936 dialogs.c:1650 dialogs.c:1656 dialogs.c:1662 dialogs.c:1668
-#: dialogs.c:1674 dialogs.c:1680 dialogs.c:1686
-msgid "B"
-msgstr "B"
-
-#. TRANSLATORS: D = single letter to make a color darker
-#: dialogs.c:907 dialogs.c:913 dialogs.c:919 dialogs.c:925 dialogs.c:931
-#: dialogs.c:937
-msgid "D"
-msgstr "D"
-
-#: dialogs.c:908
-msgid "Black Piece Color:"
-msgstr "Couleur du pion noir : "
-
-#: dialogs.c:914
-msgid "Light Square Color:"
-msgstr "Couleur de la case claire :"
-
-#: dialogs.c:920
-msgid "Dark Square Color:"
-msgstr "Couleur de la case foncée :"
-
-#: dialogs.c:926
-msgid "Highlight Color:"
-msgstr "Couleur de surbrillance :"
-
-#: dialogs.c:932
-msgid "Premove Highlight Color:"
-msgstr "Couleur de surbrillance de pré-coup :"
-
-#: dialogs.c:938
-msgid "Flip Pieces Shogi Style        (Colored buttons restore default)"
-msgstr "Retourner les pièces style Shogi  (Les boutons colorés restaurent la valeur par défaut)"
-
-#: dialogs.c:940
-msgid "Mono Mode"
-msgstr "Mode solo"
-
-#: dialogs.c:941
-msgid "Logo Size (0=off, requires restart):"
-msgstr "Taille du logo (0 = pas de logo, redémarrage requis) :"
-
-#: dialogs.c:942
-msgid "Line Gap (-1 = default for board size):"
-msgstr "Ligne d'ouverture (-1 = taille de plateau par défaut) :"
-
-#: dialogs.c:943
-msgid "Use Board Textures"
-msgstr "Utiliser les textures de l'échiquier"
-
-#: dialogs.c:944
-msgid "Light-Squares Texture File:"
-msgstr "Fichier de texture des cases blanches :"
-
-#: dialogs.c:945
-msgid "Dark-Squares Texture File:"
-msgstr "Fichier de texture des cases noires :"
-
-#: dialogs.c:946
-msgid "Use external piece bitmaps with their own colors"
-msgstr "Utiliser des bitmaps de pièce externes avec leurs propres couleurs"
-
-#: dialogs.c:947
-msgid "Directory with Pieces Images:"
-msgstr "Répertoire contenant les images des pièces :"
-
-#: dialogs.c:1018
-msgid "# no themes are defined"
-msgstr "# Aucun thème n'est défini"
-
-#: dialogs.c:1030
-msgid "Board Options"
-msgstr "Options de l'échiquier"
-
-#: dialogs.c:1101 menus.c:646
-msgid "ICS text menu"
-msgstr "Menu texte de l'ICS"
-
-#: dialogs.c:1130
-msgid "clear"
-msgstr "Nettoyer"
-
-#: dialogs.c:1131
-msgid "save changes"
-msgstr "Sauvegarder les changements"
-
-#: dialogs.c:1229
-msgid "add next move"
-msgstr "Ajouter le prochain mouvement"
-
-#: dialogs.c:1230
-msgid "commit changes"
-msgstr "Enregistrer les changements"
-
-#: dialogs.c:1253
-msgid "Edit book"
-msgstr "Éditer la bibliothèque"
-
-#: dialogs.c:1270 dialogs.c:1277 menus.c:648
-msgid "Tags"
-msgstr "Étiquettes"
-
-#: dialogs.c:1285
-msgid "Registered Engines"
-msgstr "Moteurs enregistrés"
-
-#: dialogs.c:1401
-msgid "ICS input box"
-msgstr "Boîte de saisie ICS"
-
-#: dialogs.c:1433
-msgid "Type a move"
-msgstr "Entrez un mouvement "
-
-#: dialogs.c:1459
-msgid "Engine has no options"
-msgstr "Le moteur n'a aucune option"
-
-#: dialogs.c:1461
-msgid "Engine Settings"
-msgstr "Réglages du moteur"
-
-#: dialogs.c:1502
-msgid "Select engine from list:"
-msgstr "Sélectionnez un moteur dans la liste :"
-
-#: dialogs.c:1505
-msgid "or specify one below:"
-msgstr "ou indiquez en un ci-dessous :"
-
-#: dialogs.c:1506
-msgid "Nickname (optional):"
-msgstr "Pseudonyme (optionnel) :"
-
-#: dialogs.c:1507
-msgid "Use nickname in PGN player tags of engine-engine games"
-msgstr "Utiliser le pseudonyme dans les étiquettes du joueur en PGN des jeux moteur-moteur"
-
-#: dialogs.c:1508
-msgid "Engine Directory:"
-msgstr "Répertoire du moteur :"
-
-#: dialogs.c:1509
-msgid "Engine Command:"
-msgstr "Commande du moteur : "
-
-#: dialogs.c:1510
-msgid "(Directory will be derived from engine path when empty)"
-msgstr "(Le répertoire sera dérivé du chemin du moteur s'il est vide)"
-
-#: dialogs.c:1511
-msgid "UCI"
-msgstr "UCI"
-
-#: dialogs.c:1512
-msgid "USI/UCCI (uses specified -uxiAdapter)"
-msgstr "USI/UCCI (Utilise l’option -uxiAdapter)"
-
-#: dialogs.c:1513
-msgid "WB protocol v1 (do not wait for engine features)"
-msgstr "Protocole WB v1 (ne vous attendez pas à des fonctionnalités du moteur)"
-
-#: dialogs.c:1514
-msgid "Must not use GUI book"
-msgstr "Vous ne devez pas utiliser la bibliothèque graphique"
-
-#: dialogs.c:1515
-msgid "Add this engine to the list"
-msgstr "Ajouter ce moteur à la liste "
-
-#: dialogs.c:1516
-msgid "Force current variant with this engine"
-msgstr "Forcer la variante courante avec ce moteur"
-
-#: dialogs.c:1570
-msgid "Load first engine"
-msgstr "Charger le premier moteur"
-
-#: dialogs.c:1576
-msgid "Load second engine"
-msgstr "Charger le second moteur"
-
-#: dialogs.c:1599
-msgid "shuffle"
-msgstr "Brassage"
-
-#: dialogs.c:1600
-msgid "Fischer castling"
-msgstr "Roque de Fischer"
-
-#: dialogs.c:1601
-msgid "Start-position number:"
-msgstr "Numéro de la position de départ : "
-
-#: dialogs.c:1602
-msgid "randomize"
-msgstr "Randomiser"
-
-#: dialogs.c:1603
-msgid "pick fixed"
-msgstr "Choix truqué"
-
-#: dialogs.c:1620
-msgid "New Shuffle Game"
-msgstr "Nouveau Jeu Aléatoire"
-
-#: dialogs.c:1647
-msgid "Clocks (requires restart):"
-msgstr "Horloges (nécessite de redémarrer) :"
-
-#: dialogs.c:1648 dialogs.c:1654 dialogs.c:1660 dialogs.c:1666 dialogs.c:1672
-#: dialogs.c:1678 dialogs.c:1684
-msgid "+"
-msgstr "+"
-
-#: dialogs.c:1649 dialogs.c:1655 dialogs.c:1661 dialogs.c:1667 dialogs.c:1673
-#: dialogs.c:1679 dialogs.c:1685
-msgid "-"
-msgstr "-"
-
-#: dialogs.c:1651 dialogs.c:1657 dialogs.c:1663 dialogs.c:1669 dialogs.c:1675
-#: dialogs.c:1681 dialogs.c:1687
-msgid "I"
-msgstr "I"
-
-#: dialogs.c:1652 dialogs.c:1658 dialogs.c:1664 dialogs.c:1670 dialogs.c:1676
-#: dialogs.c:1682 dialogs.c:1688
-msgid "*"
-msgstr "*"
-
-#: dialogs.c:1653
-msgid "Message (above board):"
-msgstr "Message (plateau ci-dessus) :"
-
-#: dialogs.c:1659
-msgid "ICS Chat/Console:"
-msgstr "ICS / Console de tchat :"
-
-#: dialogs.c:1665
-msgid "Edit tags / book / engine list:"
-msgstr "Modifier les tags / livre / liste de moteurs :"
-
-#: dialogs.c:1671
-msgid "Edit comments:"
-msgstr "Modifier des commentaires :"
-
-#: dialogs.c:1677
-msgid "Move history / Engine Output:"
-msgstr "Historique des coups / Sortie du moteur :"
-
-#: dialogs.c:1683
-msgid "Game list:"
-msgstr "Liste des parties :"
-
-#: dialogs.c:1689
-msgid ""
-"\n"
-"The * buttons will set the font to the one selected below:"
-msgstr ""
-"\n"
-"Les bouttons * sélectionneront la police choisie ci-dessous :"
-
-#: dialogs.c:1743
-msgid "This only works in the GTK build"
-msgstr "Fonctionne seulement avec la version GTK"
-
-#: dialogs.c:1744
-msgid "Fonts"
-msgstr "Polices de caractères"
-
-#: dialogs.c:1764
-msgid "classical"
-msgstr "Classique"
-
-#: dialogs.c:1765
-msgid "incremental"
-msgstr "Incrémental"
-
-#: dialogs.c:1766
-msgid "fixed max"
-msgstr "Maximum fixé"
-
-#: dialogs.c:1767
-msgid "Divide entered times by 60"
-msgstr "Divise par 60 le temps d’ouverture"
-
-#: dialogs.c:1768
-msgid "Moves per session:"
-msgstr "Mouvements par session :"
-
-#: dialogs.c:1769
-msgid "Initial time (min):"
-msgstr "Temps initial (min) :"
-
-#: dialogs.c:1770
-msgid "Increment or max (sec/move):"
-msgstr "Incrémentation ou maximum (sec/mouvement) :"
-
-#: dialogs.c:1771
-msgid "Time-Odds factors:"
-msgstr "Facteurs temps d'handicap : "
-
-#: dialogs.c:1772
-msgid "Engine #1"
-msgstr "Moteur #1"
-
-#: dialogs.c:1773
-msgid "Engine #2 / Human"
-msgstr "Moteur #2 / Humain"
-
-#: dialogs.c:1814 dialogs.c:1817 dialogs.c:1822 dialogs.c:1823
-#: gtk/xoptions.c:183
-msgid "Unused"
-msgstr "Non utilisé"
-
-#: dialogs.c:1832
-msgid "Changing time control during a game is not implemented"
-msgstr "La modification du temps en cours de partie n’est pas implémentée"
-
-#: dialogs.c:1869
-msgid "Error writing to chess program"
-msgstr "Erreur lors de l'écriture dans le programme d'échecs"
-
-#: dialogs.c:1937 gtk/xoptions.c:1775 xaw/xoptions.c:1341
-msgid "Cancel"
-msgstr "Annuler"
-
-#: dialogs.c:1942 dialogs.c:2695 dialogs.c:2699
-msgid "King"
-msgstr "Roi "
-
-#: dialogs.c:1945
-msgid "Captain"
-msgstr "Capitaine "
-
-#: dialogs.c:1946
-msgid "Lieutenant"
-msgstr "Lieutenant"
-
-#: dialogs.c:1947
-msgid "General"
-msgstr "Général"
-
-#: dialogs.c:1948
-msgid "Warlord"
-msgstr "Seigneur de guerre"
-
-#: dialogs.c:1950 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Knight"
-msgstr "Cavalier"
-
-#: dialogs.c:1951 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Bishop"
-msgstr "Fou"
-
-#: dialogs.c:1952 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Rook"
-msgstr "Tour"
-
-#: dialogs.c:1956 dialogs.c:2696 dialogs.c:2700
-msgid "Archbishop"
-msgstr "Archevêque "
-
-#: dialogs.c:1957 dialogs.c:2696 dialogs.c:2700
-msgid "Chancellor"
-msgstr "Chancelier "
-
-#: dialogs.c:1959 dialogs.c:2695 dialogs.c:2699 dialogs.c:2717
-msgid "Queen"
-msgstr "Reine"
-
-#: dialogs.c:1961
-msgid "Lion"
-msgstr "Lion"
-
-#: dialogs.c:1965
-msgid "Defer"
-msgstr "Ajourner"
-
-#: dialogs.c:1966 dialogs.c:2696 dialogs.c:2700
-msgid "Promote"
-msgstr "Promouvoir "
-
-#: dialogs.c:2023
-msgid "Chats:"
-msgstr "Tchats :  "
-
-#: dialogs.c:2024 dialogs.c:2025 dialogs.c:2026 dialogs.c:2027 dialogs.c:2028
-#: dialogs.c:2134 dialogs.c:2199 dialogs.c:2231
-msgid "New Chat"
-msgstr "Nouveau tchat"
-
-#: dialogs.c:2031
-msgid "Chat partner:"
-msgstr "Partenaire de tchat :"
-
-#: dialogs.c:2032
-msgid "End Chat"
-msgstr "Terminer le tchat"
-
-#: dialogs.c:2033
-msgid "Hide"
-msgstr "Cacher"
-
-#: dialogs.c:2260
-msgid "ICS Interaction"
-msgstr "Interaction ICS"
-
-#: dialogs.c:2345
-msgid "factory"
-msgstr "Fabrique"
-
-#: dialogs.c:2346
-msgid "up"
-msgstr "Haut"
-
-#: dialogs.c:2347
-msgid "down"
-msgstr "Bas"
-
-#: dialogs.c:2366
-msgid "No tag selected"
-msgstr "Aucune étiquette n'est sélectionnée"
-
-#: dialogs.c:2397
-msgid "Game-list options"
-msgstr "Options de la liste de jeu"
-
-#: dialogs.c:2475 dialogs.c:2489
-msgid "Error"
-msgstr "Erreur"
-
-#: dialogs.c:2518
-msgid "Fatal Error"
-msgstr "Erreur fatale"
-
-#: dialogs.c:2518
-msgid "Exiting"
-msgstr "En cours de fermeture"
-
-#: dialogs.c:2529
-msgid "Information"
-msgstr "Information"
-
-#: dialogs.c:2536
-msgid "Note"
-msgstr "Note"
-
-#: dialogs.c:2694 dialogs.c:2987 dialogs.c:2990
-msgid "White"
-msgstr "Blancs"
-
-#: dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Pawn"
-msgstr "Pion"
-
-#: dialogs.c:2695 dialogs.c:2699
-msgid "Elephant"
-msgstr "Éléphant"
-
-#: dialogs.c:2695 dialogs.c:2699
-msgid "Cannon"
-msgstr "Canon "
-
-#: dialogs.c:2696 dialogs.c:2700
-msgid "Demote"
-msgstr "Rétrograder"
-
-#: dialogs.c:2697 dialogs.c:2701
-msgid "Empty square"
-msgstr "Case vide"
-
-#: dialogs.c:2697 dialogs.c:2701
-msgid "Clear board"
-msgstr "Vider l'échiquier"
-
-#: dialogs.c:2698 dialogs.c:2999 dialogs.c:3002
-msgid "Black"
-msgstr "Noirs"
-
-#: dialogs.c:2798
-msgid "_File"
-msgstr "_Fichier"
-
-#: dialogs.c:2799
-msgid "_Edit"
-msgstr "É_dition"
-
-#: dialogs.c:2800
-msgid "_View"
-msgstr "_Vue"
-
-#: dialogs.c:2801
-msgid "_Mode"
-msgstr "_Mode"
-
-#: dialogs.c:2802
-msgid "_Action"
-msgstr "A_ction "
-
-#: dialogs.c:2803
-msgid "E_ngine"
-msgstr "Mo_teur"
-
-#: dialogs.c:2804
-msgid "_Options"
-msgstr "_Options "
-
-#: dialogs.c:2805
-msgid "_Help"
-msgstr "_Aide"
-
-#: dialogs.c:2815
-msgid "<<"
-msgstr "<<"
-
-#: dialogs.c:2816
-msgid "<"
-msgstr "<"
-
-#: dialogs.c:2818
-msgid ">"
-msgstr ">"
-
-#: dialogs.c:2819
-msgid ">>"
-msgstr ">>"
-
-#: dialogs.c:3107
-msgid "Directories:"
-msgstr "Répertoires : "
-
-#: dialogs.c:3108
-msgid "Files:"
-msgstr "Fichiers :"
-
-#: dialogs.c:3109
-msgid "by name"
-msgstr "Par nom"
-
-#: dialogs.c:3110
-msgid "by type"
-msgstr "Par type"
-
-#: dialogs.c:3113
-msgid "Filename:"
-msgstr "Nom du fichier : "
-
-#: dialogs.c:3114
-msgid "New directory"
-msgstr "Nouveau répertoire"
-
-#: dialogs.c:3115
-msgid "File type:"
-msgstr "Type du fichier : "
-
-#: dialogs.c:3190
-msgid "Contents of"
-msgstr "Sommaire de "
-
-#: dialogs.c:3216
-msgid "  next page"
-msgstr "Page suivante"
-
-#: dialogs.c:3233
-msgid "FIRST TYPE DIRECTORY NAME HERE"
-msgstr "TOUT D'ABORD ENTREZ LE NOM DE REPERTOIRE ICI "
-
-#: dialogs.c:3234
-msgid "TRY ANOTHER NAME"
-msgstr "ESSAYEZ UN AUTRE NOM"
-
-#: draw.c:405
-msgid ""
-"No default pieces installed!\n"
-"Select your own using '-pieceImageDirectory'."
-msgstr ""
-"Aucune pièce par défaut n'est installée !\n"
-"Sélectionnez la vôtre en utilisant '-pieceImageDirectory'."
-
-#: engineoutput.c:112 menus.c:642
-#, c-format
-msgid "Engine Output"
-msgstr "Sortie du moteur "
-
-#: engineoutput.c:122
-#, c-format
-msgid "%s (%d reversible ply)"
-msgid_plural "%s (%d reversible plies)"
-msgstr[0] "%s (%d tour réversible)"
-msgstr[1] "%s (%d tours réversibles)"
-
-#: engineoutput.c:565 engineoutput.c:568 nengineoutput.c:83 nengineoutput.c:91
-msgid "NPS"
-msgstr "NPS"
-
-#: gamelist.c:379
-#, c-format
-msgid "Reading game file (%d)"
-msgstr "Lecture du fichier de jeu (%d)"
-
-#: gtk/xboard.c:979 xaw/xboard.c:1074
-#, c-format
-msgid "%s: can't cd to CHESSDIR: "
-msgstr "%s : impossible d'accéder au dossier CHESSDIR :"
-
-#: gtk/xboard.c:988 xaw/xboard.c:1083
-#, c-format
-msgid "Failed to open file '%s'\n"
-msgstr "Échec dans l'ouverture du fichier '%s'\n"
-
-#: gtk/xboard.c:1003 xaw/xboard.c:1092
-msgid "Recompile with larger BOARD_RANKS or BOARD_FILES to support this size"
-msgstr "Recompilez avec BOARD_RANKS ou BOARD_FILES plus grand pour supporter cette taille"
-
-#: gtk/xboard.c:1022 xaw/xboard.c:1124
-#, c-format
-msgid "%s: bad boardSize syntax %s\n"
-msgstr "%s : Mauvaise syntaxe %s pour boardSize\n"
-
-#: gtk/xboard.c:1063 xaw/xboard.c:1163
-#, c-format
-msgid "%s: unrecognized boardSize name %s\n"
-msgstr "%s : Nom %s de la boardSize non reconnu\n"
-
-#: gtk/xboard.c:1107 xaw/xboard.c:1200
-#, c-format
-msgid "%s: too few colors available; trying monochrome mode\n"
-msgstr "%s: Trop peu de couleurs sont disponibles; tentative du mode monochrome\n"
-
-#: gtk/xboard.c:1421 xaw/xboard.c:1492
-#, c-format
-msgid "Unable to create font set for %s.\n"
-msgstr "Incapable de créer l'ensemble des polices pour %s.\n"
-
-#: gtk/xboard.c:1446 xaw/xboard.c:1515
-#, c-format
-msgid "%s: no fonts match pattern %s\n"
-msgstr "%s : aucune police ne correspond au motif %s\n"
-
-#: gtk/xboard.c:1914 xaw/xboard.c:2007
-msgid "Can't open temp file"
-msgstr "Impossible d'ouvrir le fichier temporaire"
-
-#: gtk/xboard.c:2422
-msgid "Failed to open file"
-msgstr "Échec lors de l'ouverture du fichier"
-
-#: gtk/xoptions.c:1498
-msgid "Browse"
-msgstr "Naviguer"
-
-#: gtk/xoptions.c:1772 xaw/xoptions.c:1337
-msgid "OK"
-msgstr "OK"
-
-#: menus.c:136
-msgid "Load game file name?"
-msgstr "Charger le nom du fichier de jeu ?"
-
-#: menus.c:183
-msgid "Load position file name?"
-msgstr "Charger la position du fichier de jeu ?"
-
-#: menus.c:189 menus.c:582
-msgid "Save game file name?"
-msgstr "Sauvegarder le nom du fichier de jeu ?"
-
-#: menus.c:198
-msgid "Save position file name?"
-msgstr "Sauvegarder la position du fichier de jeu ?"
-
-#: menus.c:355
-msgid " (with Zippy code)"
-msgstr "(avec le code)"
-
-#: menus.c:360
-#, c-format
-msgid ""
-"%s%s\n"
-"\n"
-"Copyright 1991 Digital Equipment Corporation\n"
-"Enhancements Copyright 1992-2016 Free Software Foundation\n"
-"Enhancements Copyright 2005 Alessandro Scotti\n"
-"\n"
-"%s is free software and carries NO WARRANTY;see the file COPYING for more information.\n"
-"\n"
-"Visit XBoard on the web at: http://www.gnu.org/software/xboard/\n"
-"Check out the newest features at: http://www.gnu.org/software/xboard/whats_new.html\n"
-"\n"
-"Report bugs via email at: <bug-xboard@gnu.org>\n"
-"\n"
-msgstr ""
-"%s%s\n"
-"\n"
-"Copyright 1991 Digital Equipment Corporation\n"
-"Copyright d'améliorations 1992-2016 Free Software Foundation\n"
-"Copyright d'améliorations 2005 Alessandro Scotti\n"
-"\n"
-"%s est un logiciel gratuit et ne transporte AUCUNE GARANTIE; veuillez vous référer au fichier COPYING pour plus d'informations.\n"
-"La version GTK de cette version est expérimentale et instable\n"
-"\n"
-"Visitez XBoard à l'adresse : http://www.gnu.org/software/xboard/\n"
-"Regardez les dernières fonctionnalités à l'adresse : http://www.gnu.org/software/xboard/whats_new.html\n"
-"\n"
-"Reportez les bogues par mail à l'adresse : <bug-xboard@gnu.org>\n"
-"\n"
-
-#: menus.c:371 menus.c:765
-msgid "About XBoard"
-msgstr "À propos de XBoard"
-
-#: menus.c:593
-msgid "New Game"
-msgstr "Nouveau jeu"
-
-#: menus.c:594
-msgid "New Shuffle Game..."
-msgstr "Nouveau jeu aléatoire..."
-
-#: menus.c:595
-msgid "New Variant..."
-msgstr "Nouvelle variante..."
-
-#: menus.c:597
-msgid "Load Game"
-msgstr "Charger une partie"
-
-#: menus.c:598
-msgid "Load Position"
-msgstr "Charger une position"
-
-#: menus.c:599
-msgid "Next Position"
-msgstr "Position suivante"
-
-#: menus.c:600
-msgid "Prev Position"
-msgstr "Position précédente"
-
-#: menus.c:602
-msgid "Save Game"
-msgstr "Sauvegarder la partie"
-
-#: menus.c:603
-msgid "Save Position"
-msgstr "Sauvegarder la position"
-
-#: menus.c:604
-msgid "Save Selected Games"
-msgstr "Sauvegarder les parties sélectionnées"
-
-#: menus.c:605
-msgid "Save Games as Book"
-msgstr "Sauvegarder les parties comme bibliothèques"
-
-#: menus.c:607
-msgid "Mail Move"
-msgstr "Envoyer par mail le mouvement"
-
-#: menus.c:608
-msgid "Reload CMail Message"
-msgstr "Recharger le message CMail"
-
-#: menus.c:610
-msgid "Quit "
-msgstr "Quitter"
-
-#: menus.c:615
-msgid "Copy Game"
-msgstr "Copier la partie"
-
-#: menus.c:616
-msgid "Copy Position"
-msgstr "Copier la position"
-
-#: menus.c:617
-msgid "Copy Game List"
-msgstr "Copier la liste des parties"
-
-#: menus.c:619
-msgid "Paste Game"
-msgstr "Coller le jeu"
-
-#: menus.c:620
-msgid "Paste Position"
-msgstr "Coller la position"
-
-#: menus.c:622 menus.c:665
-msgid "Edit Game"
-msgstr "Éditer la partie"
-
-#: menus.c:623 menus.c:666
-msgid "Edit Position"
-msgstr "Éditer la position "
-
-#: menus.c:624
-msgid "Edit Tags"
-msgstr "Éditer les étiquettes"
-
-#: menus.c:625
-msgid "Edit Comment"
-msgstr "Éditer le commentaire"
-
-#: menus.c:626
-msgid "Edit Book"
-msgstr "Éditer la bibliothèque"
-
-#: menus.c:628
-msgid "Revert"
-msgstr "Revenir"
-
-#: menus.c:629
-msgid "Annotate"
-msgstr "Annoter"
-
-#: menus.c:630
-msgid "Truncate Game"
-msgstr "Tronquer le jeu"
-
-#: menus.c:632
-msgid "Backward"
-msgstr "En arrière"
-
-#: menus.c:633
-msgid "Forward"
-msgstr "En avant"
-
-#: menus.c:634
-msgid "Back to Start"
-msgstr "Retour au début"
-
-#: menus.c:635
-msgid "Forward to End"
-msgstr "Avancer vers la fin"
-
-#: menus.c:640
-msgid "Flip View"
-msgstr "Renverser la vue"
-
-#: menus.c:643
-msgid "Move History"
-msgstr "Historique des mouvements "
-
-#: menus.c:644
-msgid "Evaluation Graph"
-msgstr "Graphique des évaluations"
-
-#: menus.c:645
-msgid "Game List"
-msgstr "Liste des parties"
-
-#: menus.c:649
-msgid "Comments"
-msgstr "Commentaires"
-
-#: menus.c:650
-msgid "ICS Input Box"
-msgstr "Boe de dialogue ICS"
-
-#: menus.c:651
-msgid "ICS/Chat Console"
-msgstr "ICS / Console de tchat"
-
-#: menus.c:653
-msgid "Board..."
-msgstr "Échiquier..."
-
-#: menus.c:654
-msgid "Fonts..."
-msgstr "Polices..."
-
-#: menus.c:655
-msgid "Game List Tags..."
-msgstr "Étiquettes de la liste des parties..."
-
-#: menus.c:660
-msgid "Machine White"
-msgstr "Blancs Machine"
-
-#: menus.c:661
-msgid "Machine Black"
-msgstr "Noirs Machine"
-
-#: menus.c:662
-msgid "Two Machines"
-msgstr "Deux machines"
-
-#: menus.c:663
-msgid "Analysis Mode"
-msgstr "Mode d'analyse"
-
-#: menus.c:664
-msgid "Analyze Game"
-msgstr "Analyser le jeu"
-
-#: menus.c:667
-msgid "Training"
-msgstr "Entraînement"
-
-#: menus.c:668
-msgid "ICS Client"
-msgstr "Client ICS"
-
-#: menus.c:670
-msgid "Machine Match"
-msgstr "Match de machines"
-
-#: menus.c:671
-msgid "Pause"
-msgstr "Pause"
-
-#: menus.c:676
-msgid "Accept"
-msgstr "Accepter"
-
-#: menus.c:677
-msgid "Decline"
-msgstr "Décliner"
-
-#: menus.c:678
-msgid "Rematch"
-msgstr "Nouvelle partie"
-
-#: menus.c:680
-msgid "Call Flag"
-msgstr "Demander un drapeau"
-
-#: menus.c:681
-msgid "Draw"
-msgstr "Match nul"
-
-#: menus.c:682
-msgid "Adjourn"
-msgstr "Ajourner"
-
-#: menus.c:683
-msgid "Abort"
-msgstr "Annuler"
-
-#: menus.c:684
-msgid "Resign"
-msgstr "Abandonner"
-
-#: menus.c:686
-msgid "Stop Observing"
-msgstr "Arrêter d'observer"
-
-#: menus.c:687
-msgid "Stop Examining"
-msgstr "Arrêter d'examiner"
-
-#: menus.c:688
-msgid "Upload to Examine"
-msgstr "Télécharger pour examiner"
-
-#: menus.c:690
-msgid "Adjudicate to White"
-msgstr "Arbitrer pour les Blancs"
-
-#: menus.c:691
-msgid "Adjudicate to Black"
-msgstr "Arbitrer pour les Noirs"
-
-#: menus.c:692
-msgid "Adjudicate Draw"
-msgstr "Arbitrer match nul"
-
-#: menus.c:697
-msgid "Edit Engine List..."
-msgstr "Éditer la liste des moteurs..."
-
-#: menus.c:699
-msgid "Load New 1st Engine..."
-msgstr "Charger un nouveau premier moteur... "
-
-#: menus.c:700
-msgid "Load New 2nd Engine..."
-msgstr "Charger un nouveau second moteur..."
-
-#: menus.c:702
-msgid "Engine #1 Settings..."
-msgstr "Réglages du moteur # 1..."
-
-#: menus.c:703
-msgid "Engine #2 Settings..."
-msgstr "Réglages du moteur # 2..."
-
-#: menus.c:704
-msgid "Common Settings..."
-msgstr "Paramètres communs…"
-
-#: menus.c:706
-msgid "Hint"
-msgstr "Indice"
-
-#: menus.c:707
-msgid "Book"
-msgstr "Bibliothèque"
-
-#: menus.c:709
-msgid "Move Now"
-msgstr "Bouger maintenant"
-
-#: menus.c:710
-msgid "Retract Move"
-msgstr "Rétracter le mouvement "
-
-#: menus.c:716
-msgid "General..."
-msgstr "Général..."
-
-#: menus.c:718
-msgid "Time Control..."
-msgstr "Contrôle du temps"
-
-#: menus.c:719
-msgid "Adjudications..."
-msgstr "Décisions..."
-
-#: menus.c:720
-msgid "ICS..."
-msgstr "ICS..."
-
-#: menus.c:721
-msgid "Tournament..."
-msgstr "Tournoi..."
-
-#: menus.c:722
-msgid "Load Game..."
-msgstr "Charger le jeu..."
-
-#: menus.c:723
-msgid "Save Game..."
-msgstr "Sauvegarder le jeu..."
-
-#: menus.c:724
-msgid "Game List..."
-msgstr "Liste des jeux..."
-
-#: menus.c:725
-msgid "Sounds..."
-msgstr "Sons..."
-
-#: menus.c:728
-msgid "Always Queen"
-msgstr "Toujours Reine"
-
-#: menus.c:734
-msgid "Flash Moves"
-msgstr "Mouvements rapides"
-
-#: menus.c:736
-msgid "Highlight Dragging"
-msgstr "Surligner la traînée"
-
-#: menus.c:739
-msgid "Highlight With Arrow"
-msgstr "Surligner avec une flèche"
-
-#: menus.c:740
-msgid "Move Sound"
-msgstr "Son du mouvement "
-
-#: menus.c:742
-msgid "Periodic Updates"
-msgstr "Mises à jour périodiques"
-
-#: menus.c:744
-msgid "Popup Exit Message"
-msgstr "Afficher un message de sortie"
-
-#: menus.c:746
-msgid "Show Coords"
-msgstr "Montrer les coordonnées"
-
-#: menus.c:747
-msgid "Hide Thinking"
-msgstr "Cacher l'opinion"
-
-#: menus.c:751
-msgid "Save Settings Now"
-msgstr "Sauvegarder les réglages maintenant"
-
-#: menus.c:752
-msgid "Save Settings on Exit"
-msgstr "Sauvegarder les réglages à la sortie"
-
-#: menus.c:757
-msgid "Info XBoard"
-msgstr "Informations XBoard"
-
-#: menus.c:758
-msgid "Man XBoard"
-msgstr "Manuel XBoard"
-
-#: menus.c:760
-msgid "XBoard Home Page"
-msgstr "Page d'Accueil XBoard"
-
-#: menus.c:761
-msgid "On-line User Guide"
-msgstr "Guide Utilisateur en ligne"
-
-#: menus.c:762
-msgid "Development News"
-msgstr "Nouvelles de développement "
-
-#: menus.c:763
-msgid "e-Mail Bug Report"
-msgstr "Reporter un bogue par mail "
-
-#: menus.c:802
-msgid "File"
-msgstr "Fichier"
-
-#: menus.c:803
-msgid "Edit"
-msgstr "Éditer"
-
-#: menus.c:804
-msgid "View"
-msgstr "Vue"
-
-#: menus.c:805
-msgid "Mode"
-msgstr "Mode"
-
-#: menus.c:806
-msgid "Action"
-msgstr "Action "
-
-#: menus.c:807
-msgid "Engine"
-msgstr "Moteur"
-
-#: menus.c:808
-msgid "Options"
-msgstr "Options "
-
-#: menus.c:809
-msgid "Help"
-msgstr "Aide"
-
-#: nengineoutput.c:79 nengineoutput.c:87
-msgid "engine name"
-msgstr "Nom du moteur"
-
-#. TRANSLATORS: noun, as in "the move Nf3"
-#: nengineoutput.c:82 nengineoutput.c:90
-msgid "move"
-msgstr "Mouvement "
-
-#: nengineoutput.c:156
-msgid "Engine output"
-msgstr "Sortie du moteur"
-
-#: nengineoutput.c:160
-msgid ""
-"Mismatch of STRIDE in nengineoutput.c\n"
-"Change and recompile!"
-msgstr ""
-"Mauvaise association de STRIDE dans nengineoutput.c\n"
-"Modifiez et recompilez !"
-
-#: nevalgraph.c:69
-msgid "Evaluation graph"
-msgstr "Graphique des évaluations"
-
-#: nevalgraph.c:69
-msgid "Blunder graph"
-msgstr "Graphique des gaffes"
-
-#: nevalgraph.c:107
-msgid "Blunder"
-msgstr "Gaffe"
-
-#: nevalgraph.c:107
-msgid "Eval"
-msgstr "Évaluer"
-
-#: ngamelist.c:87
-msgid "find position"
-msgstr "Trouver la position"
-
-#: ngamelist.c:88
-msgid "narrow"
-msgstr "Restreindre"
-
-#: ngamelist.c:89
-msgid "thresholds"
-msgstr "Seuils"
-
-#: ngamelist.c:90
-msgid "tags"
-msgstr "Étiquettes"
-
-#: ngamelist.c:91
-msgid "next"
-msgstr "Suivant"
-
-#: ngamelist.c:92
-msgid "close"
-msgstr "Fermer"
-
-#: ngamelist.c:116
-msgid "No game selected"
-msgstr "Aucun jeu n'est sélectionné"
-
-#: ngamelist.c:122
-msgid "Can't go forward any further"
-msgstr "Ne peut pas avancer plus loin "
-
-#: ngamelist.c:192
-#, c-format
-msgid "Scanning through games (%d)"
-msgstr "Balayage parmi les parties (%d)"
-
-#: ngamelist.c:211
-msgid "previous page"
-msgstr "Page précédente"
-
-#: ngamelist.c:214
-msgid "next page"
-msgstr "Page suivante"
-
-#: ngamelist.c:217
-msgid "no games matched your request"
-msgstr "Aucun jeu n'a correspondu à votre requête"
-
-#: ngamelist.c:219
-#, c-format
-msgid "%s - %d/%d games (%d-%d-%d)"
-msgstr "jeux %s - %d/%d (%d-%d-%d)"
-
-#: ngamelist.c:284
-msgid "There is no game list"
-msgstr "Il n'y a aucun jeu dans la liste"
-
-#: nhistory.c:109
-msgid "Move list"
-msgstr "Liste des mouvements"
-
-#: usystem.c:223
-#, c-format
-msgid "%s: unrecognized color %s\n"
-msgstr "%s : couleur %s non reconnue\n"
-
-#: usystem.c:231
-#, c-format
-msgid "%s: can't parse foreground color in '%s'\n"
-msgstr "%s : impossible d'analyser la couleur de premier plan dans '%s'\n"
-
-#: usystem.c:260
-#, c-format
-msgid "%s: can't parse color names; disabling colorization\n"
-msgstr "%s : impossible d'analyser les noms de couleurs; désactivation de la colorisation\n"
-
-#: usystem.c:362
-#, c-format
-msgid "ERROR: Unknown user %s (in path %s)\n"
-msgstr "ERREUR : Utilisateur %s inconnu (dans le chemin %s)\n"
-
-#: usystem.c:564
-msgid "Socket support is not configured in"
-msgstr "Le support socket n'est pas configuré"
-
-#: usystem.c:653
-msgid "internal rcmd not implemented for Unix"
-msgstr "rcmd interne non implémenté pour Unix"
-
-#: xaw/xboard.c:1206
-#, c-format
-msgid "white pixel = 0x%lx, black pixel = 0x%lx\n"
-msgstr "Pixel blanc = 0x%lx, pixel noir = 0x%lx\n"
-
-#: xaw/xoptions.c:378 xaw/xoptions.c:1082
-msgid "browse"
-msgstr "Naviguer"
-
-#: xaw/xoptions.c:444 xaw/xoptions.c:445
-msgid "Ctrl"
-msgstr "Ctrl"
-
-#: xaw/xoptions.c:450 xaw/xoptions.c:451
-msgid "Alt"
-msgstr "Alt"
-
-#: xaw/xoptions.c:456 xaw/xoptions.c:457
-msgid "Shift"
-msgstr "Shift"
diff --git a/po/it.po b/po/it.po
deleted file mode 100644 (file)
index 5e64198..0000000
--- a/po/it.po
+++ /dev/null
@@ -1,3327 +0,0 @@
-# XBoard -- a graphical chessboard for X
-# Copyright (C) 1991 by Digital Equipment Corporation, Maynard, Massachusetts.
-# Enhancements Copyright (C) 1992-98 Free Software Foundation, Inc.
-# This file is distributed under the same license as the XBoard package.
-# Traduzione di Giorgio Medeot, 2010
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: GNU xboard master-20110411\n"
-"Report-Msgid-Bugs-To: bug-xboard@gnu.org\n"
-"POT-Creation-Date: 2016-04-03 13:44-0700\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: it\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: args.h:851
-#, c-format
-msgid "%s in settings file\n"
-msgstr ""
-
-#: args.h:885
-#, c-format
-msgid "Bad integer value %s"
-msgstr ""
-
-#: args.h:991 args.h:1252
-#, c-format
-msgid "Unrecognized argument %s"
-msgstr ""
-
-#: args.h:1022
-#, c-format
-msgid "No value provided for argument %s"
-msgstr ""
-
-#: args.h:1082
-#, c-format
-msgid "Incomplete \\ escape in value for %s"
-msgstr ""
-
-#: args.h:1193
-#, c-format
-msgid "Failed to open indirection file %s"
-msgstr ""
-
-#: args.h:1210
-#, c-format
-msgid "Unrecognized boolean argument value %s"
-msgstr ""
-
-#. TRANSLATORS: "first" is the first of possible two chess engines. It is inserted into strings
-#. such as "%s engine" / "%s chess program" / "%s machine" - all meaning the same thing
-#: backend.c:811
-msgid "first"
-msgstr ""
-
-#. TRANSLATORS: "second" is the second of possible two chess engines. It is inserted into strings
-#. such as "%s engine" / "%s chess program" / "%s machine" - all meaning the same thing
-#: backend.c:814
-msgid "second"
-msgstr ""
-
-#: backend.c:897
-#, c-format
-msgid "protocol version %d not supported"
-msgstr "Versione %d del protocollo non supportata"
-
-#: backend.c:1004
-msgid "You did not specify the engine executable"
-msgstr ""
-
-#: backend.c:1062
-#, c-format
-msgid "bad timeControl option %s"
-msgstr "Opzione timeControl non corretta: %s"
-
-#: backend.c:1077
-#, c-format
-msgid "bad searchTime option %s"
-msgstr "Opzione searchTime non corretta: %s"
-
-#: backend.c:1183
-#, c-format
-msgid "Variant %s supported only in ICS mode"
-msgstr "La variante %s è supportata solo in modalità ICS"
-
-#: backend.c:1201
-#, c-format
-msgid "Unknown variant name %s"
-msgstr "Nome di variante sconosciuto: %s"
-
-#: backend.c:1456
-msgid "Starting chess program"
-msgstr "Avvio del motore di gioco"
-
-#: backend.c:1479
-msgid "Bad game file"
-msgstr "File partita non riconosciuto"
-
-#: backend.c:1486
-msgid "Bad position file"
-msgstr "File posizione non riconosciuto"
-
-#: backend.c:1500
-msgid "Pick new game"
-msgstr ""
-
-#: backend.c:1569
-msgid ""
-"You restarted an already completed tourney.\n"
-"One more cycle will now be added to it.\n"
-"Games commence in 10 sec."
-msgstr ""
-
-#: backend.c:1576
-#, c-format
-msgid "All games in tourney '%s' are already played or playing"
-msgstr ""
-
-#: backend.c:1583
-msgid "Can't have a match with no chess programs"
-msgstr "Impossibile avviare un match senza specificare alcun motore di gioco"
-
-#: backend.c:1637
-#, c-format
-msgid "Could not open comm port %s"
-msgstr "Apertura della porta comm %s fallita"
-
-#: backend.c:1640
-#, c-format
-msgid "Could not connect to host %s, port %s"
-msgstr "Connessione all'host %s, porta %s fallita"
-
-#: backend.c:1696
-#, c-format
-msgid "Unknown initialMode %s"
-msgstr "Valore per initialMode non riconosciuto: %s"
-
-#: backend.c:1722
-msgid "AnalyzeFile mode requires a game file"
-msgstr "La modalità 'Analizza file' richiede un file partita"
-
-#: backend.c:1755
-msgid "Analysis mode requires a chess engine"
-msgstr "La modalità Analisi richiede un motore di gioco"
-
-#: backend.c:1759
-msgid "Analysis mode does not work with ICS mode"
-msgstr "La funzione di Analisi non è disponibile in modalità ICS"
-
-#: backend.c:1770
-msgid "MachineWhite mode requires a chess engine"
-msgstr "La modalità 'Bianco al motore di gioco' richiede almeno un motore"
-
-#: backend.c:1775
-msgid "MachineWhite mode does not work with ICS mode"
-msgstr ""
-"La funzione 'Bianco al motore di gioco' non è disponibile in modalità ICS"
-
-#: backend.c:1782
-msgid "MachineBlack mode requires a chess engine"
-msgstr "La modalità 'Nero al motore di gioco' richiede almeno un motore"
-
-#: backend.c:1787
-msgid "MachineBlack mode does not work with ICS mode"
-msgstr ""
-"La funzione 'Nero al motore di gioco' non è disponibile in modalità ICS"
-
-#: backend.c:1794
-msgid "TwoMachines mode requires a chess engine"
-msgstr ""
-"La modalità 'Motore di gioco 1 vs 2' richiede almeno un motore di gioco"
-
-#: backend.c:1799
-msgid "TwoMachines mode does not work with ICS mode"
-msgstr "La funzione 'Motore di gioco 1 vs 2' non è disponibile in modalità ICS"
-
-#: backend.c:1810
-msgid "Training mode requires a game file"
-msgstr "La modalità Allenamento richiede un file partita"
-
-#: backend.c:1973 backend.c:2028 backend.c:2051 backend.c:2453
-msgid "Error writing to ICS"
-msgstr "Errore in scrittura sull'ICS"
-
-#: backend.c:1988
-msgid "Error reading from keyboard"
-msgstr "Errore in lettura da tastiera"
-
-#: backend.c:1991
-msgid "Got end of file from keyboard"
-msgstr "Ricevuto carattere di Fine file (EOF) dalla tastiera"
-
-#: backend.c:2299
-#, c-format
-msgid "Unknown wild type %d"
-msgstr ""
-
-#: backend.c:2370 usystem.c:317
-msgid "Error writing to display"
-msgstr "Errore in scrittura sul display"
-
-#. TRANSLATORS: to 'kibitz' is to send a message to all players and the game observers
-#: backend.c:3138
-#, c-format
-msgid "your opponent kibitzes: %s"
-msgstr ""
-
-#: backend.c:3677
-msgid "Error gathering move list: two headers"
-msgstr "Errore nella lettura della lista mosse: sono presenti due intestazioni"
-
-#: backend.c:3724
-msgid "Error gathering move list: nested"
-msgstr "Errore nella lettura della lista mosse: mosse annidate"
-
-#: backend.c:3828 backend.c:4254 backend.c:4458 backend.c:5017 backend.c:5021
-#: backend.c:7292 backend.c:13054 backend.c:14805 backend.c:14882
-#: backend.c:14928 backend.c:14934 backend.c:14939 backend.c:14944
-msgid "vs."
-msgstr ""
-
-#: backend.c:3956
-msgid "Illegal move (rejected by ICS)"
-msgstr ""
-
-#: backend.c:4302
-msgid "Connection closed by ICS"
-msgstr "Connessione chiusa dal'ICS"
-
-#: backend.c:4304
-msgid "Error reading from ICS"
-msgstr "Errore in lettura dall'ICS"
-
-#: backend.c:4381
-#, c-format
-msgid ""
-"Failed to parse board string:\n"
-"\"%s\""
-msgstr ""
-
-#: backend.c:4390 backend.c:10628
-msgid "Game too long; increase MAX_MOVES and recompile"
-msgstr ""
-"Partita troppo lunga; incrementare il valore di MAX_MOVES e ricompilare"
-
-#: backend.c:4509
-msgid "Error gathering move list: extra board"
-msgstr "Errore nela lettura della lista mosse: è presente una posizione in più"
-
-#: backend.c:4941 backend.c:4963
-#, c-format
-msgid "Couldn't parse move \"%s\" from ICS"
-msgstr "Impossibile interpretare la mossa dall'ICS: \"%s\""
-
-#: backend.c:5228
-#, c-format
-msgid "say Internal error; bad moveType %d (%d,%d-%d,%d)"
-msgstr "say Errore interno; moveType malformato %d (%d,%d-%d,%d)"
-
-#: backend.c:5299
-msgid "You cannot do this while you are playing or observing"
-msgstr ""
-
-#: backend.c:6359
-msgid "Recompile to support this BOARD_RANKS or BOARD_FILES!"
-msgstr ""
-
-#: backend.c:6851
-msgid "You are playing Black"
-msgstr "Stai giocando con il Nero"
-
-#: backend.c:6860 backend.c:6888
-msgid "You are playing White"
-msgstr "Stai giocando con il Bianco"
-
-#: backend.c:6870 backend.c:6896 backend.c:7018 backend.c:7043 backend.c:7059
-#: backend.c:15645
-msgid "It is White's turn"
-msgstr "Il tratto è al Bianco"
-
-#: backend.c:6874 backend.c:6900 backend.c:7026 backend.c:7049 backend.c:7081
-#: backend.c:15637
-msgid "It is Black's turn"
-msgstr "Il tratto è al Nero"
-
-#: backend.c:6913
-msgid "Displayed position is not current"
-msgstr "La posizione mostrata non è quella corrente"
-
-#: backend.c:7116
-msgid "rights granted"
-msgstr ""
-
-#: backend.c:7116
-msgid "rights revoked"
-msgstr ""
-
-#: backend.c:7169
-msgid "Illegal move"
-msgstr "Mossa illegale"
-
-#: backend.c:7249
-msgid "End of game"
-msgstr "Termine della partita"
-
-#: backend.c:7252
-msgid "Incorrect move"
-msgstr "Mossa non corretta"
-
-#: backend.c:7655 backend.c:7811
-msgid "Pull pawn backwards to under-promote"
-msgstr ""
-
-#: backend.c:7772
-msgid "only marked squares are legal"
-msgstr ""
-
-#: backend.c:8093
-msgid "Swiss tourney finished"
-msgstr ""
-
-#: backend.c:8609
-msgid "could not load EGBB library"
-msgstr ""
-
-#: backend.c:8612
-msgid "wrong EGBB version"
-msgstr ""
-
-#: backend.c:8725
-msgid "Invalid pairing from pairing engine"
-msgstr ""
-
-#: backend.c:8892
-#, c-format
-msgid "Illegal move \"%s\" from %s machine"
-msgstr "Mossa illegale \"%s\" dal %s motore di gioco"
-
-#: backend.c:9179
-msgid "Bad FEN received from engine"
-msgstr ""
-
-#: backend.c:9280
-msgid "Engine did not send setup for non-standard variant"
-msgstr ""
-
-#: backend.c:9358 backend.c:14667 backend.c:14735
-#, c-format
-msgid "%s does not support analysis"
-msgstr "%s non supporta l'analisi"
-
-#: backend.c:9424
-#, c-format
-msgid "Illegal move \"%s\" (rejected by %s chess program)"
-msgstr "Mossa illegale \"%s\" (rifiutata dal %s motore di gioco)"
-
-#: backend.c:9455
-#, c-format
-msgid "Failed to start %s chess program %s on %s: %s\n"
-msgstr "Avvio del %s motore di gioco %s su %s fallito: %s\n"
-
-#: backend.c:9476
-#, c-format
-msgid "Hint: %s"
-msgstr "Suggerimento: %s"
-
-#: backend.c:9481
-#, c-format
-msgid ""
-"Illegal hint move \"%s\"\n"
-"from %s chess program"
-msgstr ""
-
-#: backend.c:9656
-msgid "Machine accepts your draw offer"
-msgstr "Il motore di gioco accetta la tua offerta di patta"
-
-#: backend.c:9659
-msgid ""
-"Machine offers a draw.\n"
-"Select Action / Draw to accept."
-msgstr ""
-
-#. TRANSLATORS: PV = principal variation, the variation the chess engine thinks is the best for everyone
-#: backend.c:9777
-msgid "failed writing PV"
-msgstr ""
-
-#: backend.c:10083
-#, c-format
-msgid "Ambiguous move in ICS output: \"%s\""
-msgstr "Mossa ambigua nell'output dell'ICS: \"%s\""
-
-#: backend.c:10093
-#, c-format
-msgid "Illegal move in ICS output: \"%s\""
-msgstr "Mossa illegale nell'output dell'ICS: \"%s\""
-
-#: backend.c:10104
-msgid "Gap in move list"
-msgstr "Mosse mancanti nella lista mosse"
-
-#: backend.c:10782
-#, c-format
-msgid "Variant %s not supported by %s"
-msgstr "La variante %s non è supportata da %s"
-
-#: backend.c:10789
-#, c-format
-msgid ", but %s is"
-msgstr ""
-
-#: backend.c:10945
-#, c-format
-msgid "Startup failure on '%s'"
-msgstr "Avvio di '%s' fallito"
-
-#: backend.c:10976
-msgid "Waiting for first chess program"
-msgstr "In attesa del primo motore di gioco"
-
-#: backend.c:10981 backend.c:14953
-msgid "Waiting for second chess program"
-msgstr "In attesa del secondo motore di gioco"
-
-#: backend.c:11030
-msgid "Could not write on tourney file"
-msgstr ""
-
-#: backend.c:11104
-msgid ""
-"You cannot replace an engine while it is engaged!\n"
-"Terminate its game first."
-msgstr ""
-
-#: backend.c:11118
-msgid "No engine with the name you gave is installed"
-msgstr ""
-
-#: backend.c:11120
-msgid ""
-"First change an engine by editing the participants list\n"
-"of the Tournament Options dialog"
-msgstr ""
-
-#: backend.c:11121
-msgid "You can only change one engine at the time"
-msgstr ""
-
-#: backend.c:11136 backend.c:11285
-#, c-format
-msgid "No engine %s is installed"
-msgstr ""
-
-#: backend.c:11156
-msgid ""
-"You must supply a tournament file,\n"
-"for storing the tourney progress"
-msgstr ""
-
-#: backend.c:11166
-msgid "Not enough participants"
-msgstr ""
-
-#: backend.c:11369
-#, fuzzy
-msgid "Bad tournament file"
-msgstr "File partita non riconosciuto"
-
-#: backend.c:11381
-#, fuzzy
-msgid "Waiting for other game(s)"
-msgstr "In attesa del primo motore di gioco"
-
-#: backend.c:11394
-msgid "No pairing engine specified"
-msgstr ""
-
-#: backend.c:11879
-#, c-format
-msgid "Average solving time %4.2f sec (total time %4.2f sec) "
-msgstr ""
-
-#: backend.c:11881
-#, c-format
-msgid "%d avoid-moves played "
-msgstr ""
-
-#: backend.c:11883
-#, c-format
-msgid "Solved %d out of %d (%3.1f%%) "
-msgstr ""
-
-#: backend.c:11886
-#, c-format
-msgid "Match %s vs. %s: final score %d-%d-%d"
-msgstr "Match %s vs %s: punteggio finale %d-%d-%d"
-
-#: backend.c:12363 backend.c:12399
-#, c-format
-msgid "Illegal move: %d.%s%s"
-msgstr "Mossa illegale: %d.%s%s"
-
-#: backend.c:12388
-#, c-format
-msgid "Ambiguous move: %d.%s%s"
-msgstr "Mossa ambigua: %d.%s%s"
-
-#: backend.c:12442 backend.c:13495 backend.c:13695 backend.c:14065
-#, c-format
-msgid "Can't open \"%s\""
-msgstr "Impossibile aprire \"%s\""
-
-#: backend.c:12454 menus.c:118
-msgid "Cannot build game list"
-msgstr "Impossibile costruire lista delle partite"
-
-#: backend.c:12539
-msgid "No more games in this message"
-msgstr "In questo messaggio non sono presenti altre partite"
-
-#: backend.c:12579
-msgid "No game has been loaded yet"
-msgstr "Non è ancora stata caricata nessuna partita"
-
-#: backend.c:12583 backend.c:13476 ngamelist.c:129
-msgid "Can't back up any further"
-msgstr "Impossibile tornare più indietro"
-
-#: backend.c:13030
-msgid "Game number out of range"
-msgstr "Indice superiore al numero di partite"
-
-#: backend.c:13041
-msgid "Can't seek on game file"
-msgstr "Impossibile effettuare la ricerca nel file di partita"
-
-#: backend.c:13099
-msgid "Game not found in file"
-msgstr "Partita non trovata nel file"
-
-#: backend.c:13230 backend.c:13573
-msgid "Bad FEN position in file"
-msgstr "Stringa FEN di posizione scorretta nel file"
-
-#: backend.c:13388
-msgid "No moves in game"
-msgstr "Partita senza mosse"
-
-#: backend.c:13472
-msgid "No position has been loaded yet"
-msgstr "Non è ancora stata caricata nessuna posizione"
-
-#: backend.c:13533 backend.c:13544
-msgid "Can't seek on position file"
-msgstr "Impossibile effettuare la ricerca nel file di posizione"
-
-#: backend.c:13551 backend.c:13563
-msgid "Position not found in file"
-msgstr "Posizione non trovata nel file"
-
-#: backend.c:13610
-msgid "Black to play"
-msgstr "Il tratto è al Nero"
-
-#: backend.c:13613
-msgid "White to play"
-msgstr "Il tratto è al Bianco"
-
-#: backend.c:13700 backend.c:14070
-#, fuzzy
-msgid "Waiting for access to save file"
-msgstr "In attesa del secondo motore di gioco"
-
-#: backend.c:13702
-msgid "Saving game"
-msgstr ""
-
-#: backend.c:13703
-msgid "Bad Seek"
-msgstr ""
-
-#: backend.c:14072
-#, fuzzy
-msgid "Saving position"
-msgstr "File posizione non riconosciuto"
-
-#: backend.c:14198
-msgid ""
-"You have edited the game history.\n"
-"Use Reload Same Game and make your move again."
-msgstr ""
-
-#: backend.c:14203
-msgid ""
-"You have entered too many moves.\n"
-"Back up to the correct position and try again."
-msgstr ""
-
-#: backend.c:14208
-msgid ""
-"Displayed position is not current.\n"
-"Step forward to the correct position and try again."
-msgstr ""
-
-#: backend.c:14255
-msgid "You have not made a move yet"
-msgstr "Non hai ancora fatto alcuna mossa"
-
-#: backend.c:14276
-msgid ""
-"The cmail message is not loaded.\n"
-"Use Reload CMail Message and make your move again."
-msgstr ""
-
-#: backend.c:14281
-msgid "No unfinished games"
-msgstr "Non è presente nessuna partita non terminata"
-
-#: backend.c:14287
-#, c-format
-msgid ""
-"You have already mailed a move.\n"
-"Wait until a move arrives from your opponent.\n"
-"To resend the same move, type\n"
-"\"cmail -remail -game %s\"\n"
-"on the command line."
-msgstr ""
-
-#: backend.c:14302
-msgid "Failed to invoke cmail"
-msgstr "Impossibile aprire l'applicazione cmail"
-
-#: backend.c:14364
-#, c-format
-msgid "Waiting for reply from opponent\n"
-msgstr "In attesa di risposta dall'avversario\n"
-
-#: backend.c:14386
-#, c-format
-msgid "Still need to make move for game\n"
-msgstr "Occorre ancora eseguire la mossa per la partita\n"
-
-#: backend.c:14390
-#, c-format
-msgid "Still need to make moves for both games\n"
-msgstr "Occorre ancora eseguire mosse per entrambe le partite\n"
-
-#: backend.c:14394
-#, c-format
-msgid "Still need to make moves for all %d games\n"
-msgstr "Occorre ancora eseguire mosse per tutte le %d partite\n"
-
-#: backend.c:14401
-#, c-format
-msgid "Still need to make a move for game %s\n"
-msgstr "Occorre ancora eseguire una mossa per la partita %s\n"
-
-#: backend.c:14407
-#, c-format
-msgid "No unfinished games\n"
-msgstr "Non è presente nessuna partita non terminata\n"
-
-#: backend.c:14409
-#, c-format
-msgid "Ready to send mail\n"
-msgstr "Pronto all'invio della posta\n"
-
-#: backend.c:14414
-#, c-format
-msgid "Still need to make moves for games %s\n"
-msgstr "Occorre ancora eseguire mosse per le partite %s\n"
-
-#: backend.c:14617
-msgid "Edit comment"
-msgstr "Modifica commento"
-
-#: backend.c:14619
-#, c-format
-msgid "Edit comment on %d.%s%s"
-msgstr "Modifica commento a %d.%s%s"
-
-#: backend.c:14674
-#, c-format
-msgid "You are not observing a game"
-msgstr ""
-
-#: backend.c:14785
-msgid "It is not White's turn"
-msgstr "Il tratto non è al Bianco"
-
-#: backend.c:14866
-msgid "It is not Black's turn"
-msgstr "Il tratto non è al Nero"
-
-#: backend.c:14974
-#, c-format
-msgid "Starting %s chess program"
-msgstr ""
-
-#: backend.c:15002 backend.c:16189
-#, fuzzy
-msgid ""
-"Wait until your turn,\n"
-"or select 'Move Now'."
-msgstr "Attendi il tuo turno"
-
-#: backend.c:15145
-msgid "Training mode off"
-msgstr "Modalità Allenamento disattivata"
-
-#: backend.c:15153
-msgid "Training mode on"
-msgstr "Modalità Allenamento attivata"
-
-#: backend.c:15156
-msgid "Already at end of game"
-msgstr "Già alla fine della partita"
-
-#: backend.c:15246
-msgid "Warning: You are still playing a game"
-msgstr "Avviso: Stai ancora giocando una partita"
-
-#: backend.c:15249
-msgid "Warning: You are still observing a game"
-msgstr "Avviso: Stai ancora osservando una partita"
-
-#: backend.c:15252
-msgid "Warning: You are still examining a game"
-msgstr "Avviso: Stai ancora esaminando una partita"
-
-#: backend.c:15322
-msgid "Click clock to clear board"
-msgstr ""
-
-#: backend.c:15332
-msgid "Close ICS engine analyze..."
-msgstr ""
-
-#: backend.c:15662
-msgid "That square is occupied"
-msgstr "La casa è già occupata"
-
-#: backend.c:15686 backend.c:15712
-msgid "There is no pending offer on this move"
-msgstr "Non vi è alcuna offerta pendente a questa mossa"
-
-#: backend.c:15748 backend.c:15759
-msgid "Your opponent is not out of time"
-msgstr "Il tuo avversario non ha ancora esaurito il proprio tempo"
-
-#: backend.c:15827
-msgid "You must make your move before offering a draw"
-msgstr "Devi eseguire la tua mossa prima di offrire la patta"
-
-#: backend.c:16171
-msgid "You are not examining a game"
-msgstr "Non stai esaminando alcuna partita"
-
-#: backend.c:16175
-msgid "You can't revert while pausing"
-msgstr "Non è possibile ripristinare mentre la pausa è attiva"
-
-#: backend.c:16229 backend.c:16236
-msgid "It is your turn"
-msgstr "E' il tuo turno"
-
-#: backend.c:16287 backend.c:16294 backend.c:16380 backend.c:16387
-#, fuzzy
-msgid "Wait until your turn."
-msgstr "Attendi il tuo turno"
-
-#: backend.c:16299
-msgid "No hint available"
-msgstr "Nessun suggerimento disponibile"
-
-#: backend.c:16314 backend.c:16345 ngamelist.c:365
-#, fuzzy
-msgid "Game list not loaded or empty"
-msgstr "Non è ancora stata caricata nessuna partita"
-
-#: backend.c:16352
-msgid "Book file exists! Try again for overwrite."
-msgstr ""
-
-#: backend.c:16833
-#, c-format
-msgid "Error writing to %s chess program"
-msgstr "Errore in scrittura sul %s motore di gioco"
-
-#: backend.c:16836 backend.c:16867
-#, c-format
-msgid "%s program exits in draw position (%s)"
-msgstr ""
-
-#: backend.c:16862
-#, c-format
-msgid "Error: %s chess program (%s) exited unexpectedly"
-msgstr "Errore: il %s motore di gioco (%s) è terminato in maniera inaspettata"
-
-#: backend.c:16880
-#, c-format
-msgid "Error reading from %s chess program (%s)"
-msgstr "Errore in lettura dal %s motore di gioco (%s)"
-
-#: backend.c:17312
-#, c-format
-msgid "%s engine has too many options\n"
-msgstr ""
-
-#: backend.c:17468
-msgid "Displayed move is not current"
-msgstr "La mossa mostrata non è quella corrente"
-
-#: backend.c:17477
-msgid "Could not parse move"
-msgstr "Impossibile leggere mossa"
-
-#: backend.c:17602 backend.c:17624
-msgid "Both flags fell"
-msgstr "Tempo esaurito per entrambi"
-
-#: backend.c:17604
-msgid "White's flag fell"
-msgstr "Tempo esaurito per il Bianco"
-
-#: backend.c:17626
-msgid "Black's flag fell"
-msgstr ""
-
-#: backend.c:17757
-msgid "Clock adjustment not allowed in auto-flag mode"
-msgstr ""
-
-#: backend.c:18719
-msgid "Bad FEN position in clipboard"
-msgstr "Stringa FEN di posizione scorretta negli Appunti"
-
-#: book.c:598 book.c:874
-msgid "Polyglot book not valid"
-msgstr ""
-
-#: book.c:722
-msgid "Book Fault"
-msgstr ""
-
-#: book.c:877
-msgid "Hash keys are different"
-msgstr ""
-
-#: book.c:1053
-#, fuzzy
-msgid "Could not create book"
-msgstr "Impossibile leggere mossa"
-
-#: dialogs.c:286
-#, fuzzy
-msgid "Tournament file:          "
-msgstr "Aggiorna   F7"
-
-#: dialogs.c:287
-msgid "For concurrent playing of tourney with multiple XBoards:"
-msgstr ""
-
-#: dialogs.c:288
-msgid "Sync after round"
-msgstr ""
-
-#: dialogs.c:289
-msgid "Sync after cycle"
-msgstr ""
-
-#: dialogs.c:290
-msgid "Tourney participants:"
-msgstr ""
-
-#: dialogs.c:291
-#, fuzzy
-msgid "Select Engine:"
-msgstr "Motore"
-
-#: dialogs.c:299
-msgid "Tourney type (0 = round-robin, 1 = gauntlet):"
-msgstr ""
-
-#: dialogs.c:300
-msgid "Number of tourney cycles (or Swiss rounds):"
-msgstr ""
-
-#: dialogs.c:301
-#, fuzzy
-msgid "Default Number of Games in Match (or Pairing):"
-msgstr "Partite per match:"
-
-#: dialogs.c:302
-msgid "Pause between Match Games (msec):"
-msgstr ""
-
-#: dialogs.c:303
-#, fuzzy
-msgid "Save Tourney Games on:"
-msgstr "Impostazioni salvataggio partita"
-
-#: dialogs.c:304
-msgid "Game File with Opening Lines:"
-msgstr ""
-
-#: dialogs.c:305
-msgid "Game Number (-1 or -2 = Auto-Increment):"
-msgstr ""
-
-#: dialogs.c:306
-msgid "File with Start Positions:"
-msgstr ""
-
-#: dialogs.c:307
-msgid "Position Number (-1 or -2 = Auto-Increment):"
-msgstr ""
-
-#: dialogs.c:308
-msgid "Rewind Index after this many Games (0 = never):"
-msgstr ""
-
-#: dialogs.c:309
-msgid "Disable own engine books by default"
-msgstr ""
-
-#: dialogs.c:310 dialogs.c:1840
-msgid "Time Control"
-msgstr ""
-
-#: dialogs.c:311
-#, fuzzy
-msgid "Common Engine"
-msgstr "Motori di gioco...   Alt+Shift+U"
-
-#: dialogs.c:312 dialogs.c:446
-msgid "General Options"
-msgstr "Impostazioni generali"
-
-#: dialogs.c:313
-msgid "Continue Later"
-msgstr ""
-
-#: dialogs.c:314
-#, fuzzy
-msgid "Replace Engine"
-msgstr "Motore"
-
-#: dialogs.c:315
-#, fuzzy
-msgid "Upgrade Engine"
-msgstr "Motore"
-
-#: dialogs.c:316
-msgid "Clone Tourney"
-msgstr ""
-
-#: dialogs.c:356
-msgid "First you must specify an existing tourney file to clone"
-msgstr ""
-
-#: dialogs.c:372 dialogs.c:1549
-msgid "# no engines are installed"
-msgstr ""
-
-#: dialogs.c:380
-msgid "Internal error: PARTICIPANTS set wrong"
-msgstr ""
-
-#: dialogs.c:388
-#, fuzzy
-msgid "Tournament Options"
-msgstr "Impostazioni suoni"
-
-#: dialogs.c:407
-msgid "Absolute Analysis Scores"
-msgstr ""
-
-#: dialogs.c:408
-msgid "Almost Always Queen (Detour Under-Promote)"
-msgstr ""
-
-#: dialogs.c:409 menus.c:729
-msgid "Animate Dragging"
-msgstr "Trascinamento animato"
-
-#: dialogs.c:410 menus.c:730
-msgid "Animate Moving"
-msgstr "Mosse animate"
-
-#: dialogs.c:411 menus.c:731
-msgid "Auto Flag"
-msgstr "Aggiudica sul tempo"
-
-#: dialogs.c:412 menus.c:732
-msgid "Auto Flip View"
-msgstr "Ruota vista automaticamente"
-
-#: dialogs.c:413 menus.c:733
-msgid "Blindfold"
-msgstr "Alla cieca"
-
-#. TRANSLATORS: the drop menu is used to drop a piece, e.g. during bughouse or editing a position
-#: dialogs.c:415
-msgid "Drop Menu"
-msgstr ""
-
-#: dialogs.c:416
-msgid "Enable Variation Trees"
-msgstr ""
-
-#: dialogs.c:417
-msgid "Headers in Engine Output Window"
-msgstr ""
-
-#: dialogs.c:418
-msgid "Hide Thinking from Human"
-msgstr "Nascondi l'output del motore se gioca contro un uomo"
-
-#: dialogs.c:419 menus.c:738
-msgid "Highlight Last Move"
-msgstr "Evidenzia l'ultima mossa"
-
-#: dialogs.c:420
-msgid "Highlight with Arrow"
-msgstr "Evidenzia con una freccia"
-
-#: dialogs.c:421 menus.c:741
-msgid "One-Click Moving"
-msgstr "Muovi con click singolo"
-
-#: dialogs.c:422
-msgid "Periodic Updates (in Analysis Mode)"
-msgstr "Aggiornamenti continui (per Modalità di analisi)"
-
-#: dialogs.c:424
-msgid "Play Move(s) of Clicked PV (Analysis)"
-msgstr ""
-
-#: dialogs.c:425 dialogs.c:626 menus.c:743
-msgid "Ponder Next Move"
-msgstr "Pensa sul mio tempo"
-
-#: dialogs.c:426
-msgid "Popup Exit Messages"
-msgstr "Chiedi conferma alla chiusura"
-
-#: dialogs.c:427 menus.c:745
-msgid "Popup Move Errors"
-msgstr "Mostra popup per mosse errate"
-
-#: dialogs.c:428
-#, fuzzy
-msgid "Scores in Move List"
-msgstr "Scarica lista mosse"
-
-#: dialogs.c:429
-msgid "Show Coordinates"
-msgstr "Mostra coordinate"
-
-#: dialogs.c:430
-msgid "Show Target Squares"
-msgstr ""
-
-#: dialogs.c:431
-msgid "Sticky Windows"
-msgstr ""
-
-#: dialogs.c:432 menus.c:748
-msgid "Test Legality"
-msgstr "Verifica mosse illegali"
-
-#: dialogs.c:433
-msgid "Top-Level Dialogs"
-msgstr ""
-
-#: dialogs.c:434
-msgid "Flash Moves (0 = no flashing):"
-msgstr ""
-
-#: dialogs.c:435
-msgid "Flash Rate (high = fast):"
-msgstr ""
-
-#: dialogs.c:436
-msgid "Animation Speed (high = slow):"
-msgstr ""
-
-#: dialogs.c:437
-#, fuzzy
-msgid "Zoom factor in Evaluation Graph:"
-msgstr "Grafico della valutazione"
-
-#: dialogs.c:457
-#, fuzzy
-msgid "Normal"
-msgstr "Normale"
-
-#: dialogs.c:458
-#, fuzzy
-msgid "Makruk"
-msgstr "Makruk"
-
-#: dialogs.c:459
-msgid "FRC"
-msgstr "FRC"
-
-#: dialogs.c:460
-msgid "Shatranj"
-msgstr ""
-
-#: dialogs.c:461
-msgid "Wild castle"
-msgstr ""
-
-#: dialogs.c:462
-#, fuzzy
-msgid "Knightmate"
-msgstr "Knightmate"
-
-#: dialogs.c:463
-msgid "No castle"
-msgstr ""
-
-#: dialogs.c:464
-#, fuzzy
-msgid "Cylinder *"
-msgstr "Cilindrici"
-
-#: dialogs.c:465
-msgid "3-checks"
-msgstr ""
-
-#: dialogs.c:466
-msgid "berolina *"
-msgstr ""
-
-#: dialogs.c:467
-msgid "atomic"
-msgstr "Atomic"
-
-#: dialogs.c:468
-msgid "two kings"
-msgstr ""
-
-#: dialogs.c:469
-msgid " "
-msgstr ""
-
-#: dialogs.c:470
-msgid "Spartan"
-msgstr ""
-
-#: dialogs.c:471
-msgid "Board size ( -1 = default for selected variant):"
-msgstr ""
-
-#: dialogs.c:472
-msgid "Number of Board Ranks:"
-msgstr ""
-
-#: dialogs.c:473
-msgid "Number of Board Files:"
-msgstr ""
-
-#: dialogs.c:474
-msgid "Holdings Size:"
-msgstr ""
-
-#: dialogs.c:476
-msgid ""
-"Variants marked with * can only be played\n"
-"with legality testing off."
-msgstr ""
-
-#: dialogs.c:478
-msgid "ASEAN"
-msgstr ""
-
-#: dialogs.c:479
-msgid "Great Shatranj (10x8)"
-msgstr ""
-
-#: dialogs.c:480
-msgid "Seirawan"
-msgstr ""
-
-#: dialogs.c:481
-msgid "Falcon (10x8)"
-msgstr ""
-
-#: dialogs.c:482
-msgid "Superchess"
-msgstr ""
-
-#: dialogs.c:483
-msgid "Capablanca (10x8)"
-msgstr ""
-
-#: dialogs.c:484
-#, fuzzy
-msgid "Crazyhouse"
-msgstr "Crazyhouse"
-
-#: dialogs.c:485
-msgid "Gothic (10x8)"
-msgstr ""
-
-#: dialogs.c:486
-#, fuzzy
-msgid "Bughouse"
-msgstr "Bughouse"
-
-#: dialogs.c:487
-msgid "Janus (10x8)"
-msgstr ""
-
-#: dialogs.c:488
-#, fuzzy
-msgid "Suicide"
-msgstr "Suicide"
-
-#: dialogs.c:489
-msgid "CRC (10x8)"
-msgstr ""
-
-#: dialogs.c:490
-msgid "give-away"
-msgstr ""
-
-#: dialogs.c:491
-msgid "grand (10x10)"
-msgstr ""
-
-#: dialogs.c:492
-msgid "losers"
-msgstr "Losers"
-
-#: dialogs.c:493
-msgid "shogi (9x9)"
-msgstr ""
-
-#: dialogs.c:494
-msgid "fairy"
-msgstr "Fairy"
-
-#: dialogs.c:495
-msgid "xiangqi (9x10)"
-msgstr ""
-
-#: dialogs.c:496
-msgid "mighty lion"
-msgstr ""
-
-#: dialogs.c:497
-msgid "courier (12x8)"
-msgstr ""
-
-#: dialogs.c:498
-msgid "elven chess (10x10)"
-msgstr ""
-
-#: dialogs.c:499
-msgid "chu shogi (12x12)"
-msgstr ""
-
-#: dialogs.c:543
-#, c-format
-msgid "Warning: second engine (%s) does not support this!"
-msgstr ""
-"Attenzione: il secondo motore di gioco (%s) non supporta questa azione!"
-
-#: dialogs.c:572
-#, c-format
-msgid "Only bughouse is not available in viewer mode."
-msgstr ""
-
-#: dialogs.c:573
-#, c-format
-msgid ""
-"All variants not supported by the first engine\n"
-"(currently %s) are disabled."
-msgstr ""
-
-#: dialogs.c:595
-msgid "New Variant"
-msgstr "Varianti di gioco"
-
-#: dialogs.c:627
-msgid "Maximum Number of CPUs per Engine:"
-msgstr "Num max di CPU:"
-
-#: dialogs.c:628
-msgid "Polygot Directory:"
-msgstr ""
-
-#: dialogs.c:629
-msgid "Hash-Table Size (MB):"
-msgstr "Dimensione Hash [MB]:"
-
-#: dialogs.c:630
-#, fuzzy
-msgid "EGTB Path:"
-msgstr "Cartella EGTB:"
-
-#: dialogs.c:631
-msgid "EGTB Cache Size (MB):"
-msgstr "Dimensione EGTB [MB]:"
-
-#: dialogs.c:632
-msgid "Use GUI Book"
-msgstr ""
-
-#: dialogs.c:633
-msgid "Opening-Book Filename:"
-msgstr ""
-
-#: dialogs.c:634
-msgid "Book Depth (moves):"
-msgstr "Profondità Libro:"
-
-#: dialogs.c:635
-msgid "Book Variety (0) vs. Strength (100):"
-msgstr "Varianti Libro:"
-
-#: dialogs.c:636
-msgid "Engine #1 Has Own Book"
-msgstr "Libro proprio per motore 1"
-
-#: dialogs.c:637
-msgid "Engine #2 Has Own Book          "
-msgstr ""
-
-#: dialogs.c:648
-msgid "Common Engine Settings"
-msgstr "Impostazioni motori di gioco"
-
-#: dialogs.c:654
-msgid "Detect all Mates"
-msgstr "Individua scacco matto"
-
-#: dialogs.c:655
-msgid "Verify Engine Result Claims"
-msgstr "Verifica gli annunci del motore"
-
-#: dialogs.c:656
-msgid "Draw if Insufficient Mating Material"
-msgstr "Patta per materiale insufficiente"
-
-#: dialogs.c:657
-msgid "Adjudicate Trivial Draws (3-Move Delay)"
-msgstr "Aggiudica patte triviali"
-
-#: dialogs.c:658
-msgid "N-Move Rule:"
-msgstr ""
-
-#: dialogs.c:659
-msgid "N-fold Repeats:"
-msgstr ""
-
-#: dialogs.c:660
-msgid "Draw after N Moves Total:"
-msgstr "Aggiudica patta dopo:"
-
-#: dialogs.c:661
-msgid "Win / Loss Threshold:"
-msgstr "Limite per aggiudicare vinta/persa:"
-
-#: dialogs.c:662
-msgid "Negate Score of Engine #1"
-msgstr "Output motore 1 sempre riferito al Bianco"
-
-#: dialogs.c:663
-msgid "Negate Score of Engine #2"
-msgstr "Output motore 2 sempre riferito al Bianco"
-
-#: dialogs.c:670
-#, fuzzy
-msgid "Adjudicate non-ICS Games"
-msgstr "Aggiudica al Bianco"
-
-#: dialogs.c:683
-msgid "Auto-Kibitz"
-msgstr "Auto Kibitz"
-
-#: dialogs.c:684
-msgid "Auto-Comment"
-msgstr "Commenti automatici"
-
-#: dialogs.c:685
-msgid "Auto-Observe"
-msgstr "Osserva automaticamente"
-
-#: dialogs.c:686
-msgid "Auto-Raise Board"
-msgstr "Porta in primo piano"
-
-#: dialogs.c:687
-msgid "Auto-Create Logon Script"
-msgstr ""
-
-#: dialogs.c:688
-msgid "Background Observe while Playing"
-msgstr "Osserva in bckgnd"
-
-#: dialogs.c:689
-msgid "Dual Board for Background-Observed Game"
-msgstr "Doppia scacchiera"
-
-#: dialogs.c:690
-msgid "Get Move List"
-msgstr "Scarica lista mosse"
-
-#: dialogs.c:691
-msgid "Quiet Play"
-msgstr "Non disturbare durante il gioco"
-
-#: dialogs.c:692
-msgid "Seek Graph"
-msgstr "Grafico delle richieste"
-
-#: dialogs.c:693
-msgid "Auto-Refresh Seek Graph"
-msgstr "Auto aggiorna"
-
-#: dialogs.c:694
-msgid "Auto-InputBox PopUp"
-msgstr ""
-
-#: dialogs.c:695
-#, fuzzy
-msgid "Quit after game"
-msgstr "In attesa del primo motore di gioco"
-
-#: dialogs.c:696
-msgid "Premove"
-msgstr "Premossa"
-
-#: dialogs.c:697
-msgid "Premove for White"
-msgstr ""
-
-#: dialogs.c:698
-msgid "First White Move:"
-msgstr "1° mossa Bianco"
-
-#: dialogs.c:699
-msgid "Premove for Black"
-msgstr ""
-
-#: dialogs.c:700
-msgid "First Black Move:"
-msgstr "1° mossa Nero"
-
-#: dialogs.c:702
-msgid "Alarm"
-msgstr "Allarme"
-
-#: dialogs.c:703
-msgid "Alarm Time (msec):"
-msgstr ""
-
-#: dialogs.c:705
-msgid "Colorize Messages"
-msgstr ""
-
-#: dialogs.c:706
-msgid "Shout Text Colors:"
-msgstr ""
-
-#: dialogs.c:707
-msgid "S-Shout Text Colors:"
-msgstr ""
-
-#: dialogs.c:708
-msgid "Channel #1 Text Colors:"
-msgstr ""
-
-#: dialogs.c:709
-msgid "Other Channel Text Colors:"
-msgstr ""
-
-#: dialogs.c:710
-msgid "Kibitz Text Colors:"
-msgstr ""
-
-#: dialogs.c:711
-msgid "Tell Text Colors:"
-msgstr ""
-
-#: dialogs.c:712
-msgid "Challenge Text Colors:"
-msgstr ""
-
-#: dialogs.c:713
-msgid "Request Text Colors:"
-msgstr ""
-
-#: dialogs.c:714
-msgid "Seek Text Colors:"
-msgstr ""
-
-#: dialogs.c:715
-msgid "Other Text Colors:"
-msgstr ""
-
-#: dialogs.c:722
-msgid "ICS Options"
-msgstr "Impostazioni ICS"
-
-#: dialogs.c:727
-msgid "Exact position match"
-msgstr ""
-
-#: dialogs.c:727
-msgid "Shown position is subset"
-msgstr ""
-
-#: dialogs.c:727
-msgid "Same material with exactly same Pawn chain"
-msgstr ""
-
-#: dialogs.c:728
-msgid "Same material"
-msgstr ""
-
-#: dialogs.c:728
-msgid "Material range (top board half optional)"
-msgstr ""
-
-#: dialogs.c:728
-msgid "Material difference (optional stuff balanced)"
-msgstr ""
-
-#: dialogs.c:743
-msgid "Auto-Display Tags"
-msgstr ""
-
-#: dialogs.c:744
-msgid "Auto-Display Comment"
-msgstr ""
-
-#: dialogs.c:745
-msgid ""
-"Auto-Play speed of loaded games\n"
-"(0 = instant, -1 = off):"
-msgstr ""
-
-#: dialogs.c:746
-msgid "Seconds per Move:"
-msgstr ""
-
-#: dialogs.c:747
-msgid ""
-"\n"
-"options to use in game-viewer mode:"
-msgstr ""
-
-#: dialogs.c:749
-msgid ""
-"\n"
-"Thresholds for position filtering in game list:"
-msgstr ""
-
-#: dialogs.c:750
-msgid "Elo of strongest player at least:"
-msgstr ""
-
-#: dialogs.c:751
-msgid "Elo of weakest player at least:"
-msgstr ""
-
-#: dialogs.c:752
-#, fuzzy
-msgid "No games before year:"
-msgstr "Non è ancora stata caricata nessuna partita"
-
-#: dialogs.c:753
-msgid "Minimum nr consecutive positions:"
-msgstr ""
-
-#: dialogs.c:755
-msgid "Search mode:"
-msgstr ""
-
-#: dialogs.c:756
-msgid "Also match reversed colors"
-msgstr ""
-
-#: dialogs.c:757
-msgid "Also match left-right flipped position"
-msgstr ""
-
-#: dialogs.c:766
-msgid "Load Game Options"
-msgstr "Impostazioni apertura partita"
-
-#: dialogs.c:778
-msgid "Auto-Save Games"
-msgstr ""
-
-#: dialogs.c:779
-msgid "Own Games Only"
-msgstr ""
-
-#: dialogs.c:780
-msgid "Save Games on File:"
-msgstr ""
-
-#: dialogs.c:781
-msgid "Save Final Positions on File:"
-msgstr ""
-
-#: dialogs.c:782
-msgid "PGN Event Header:"
-msgstr ""
-
-#: dialogs.c:783
-msgid "Old Save Style (as opposed to PGN)"
-msgstr ""
-
-#: dialogs.c:784
-msgid "Include Number Tag in tourney PGN"
-msgstr ""
-
-#: dialogs.c:785
-msgid "Save Score/Depth Info in PGN"
-msgstr ""
-
-#: dialogs.c:786
-msgid "Save Out-of-Book Info in PGN           "
-msgstr ""
-
-#: dialogs.c:793
-msgid "Save Game Options"
-msgstr "Impostazioni salvataggio partita"
-
-#: dialogs.c:802
-msgid "No Sound"
-msgstr "Silenzioso"
-
-#: dialogs.c:803
-msgid "Default Beep"
-msgstr "Beep"
-
-#: dialogs.c:804
-msgid "Above WAV File"
-msgstr ""
-
-#: dialogs.c:805
-msgid "Car Horn"
-msgstr ""
-
-#: dialogs.c:806
-msgid "Cymbal"
-msgstr ""
-
-#: dialogs.c:807
-msgid "Ding"
-msgstr ""
-
-#: dialogs.c:808
-msgid "Gong"
-msgstr ""
-
-#: dialogs.c:809
-msgid "Laser"
-msgstr ""
-
-#: dialogs.c:810
-msgid "Penalty"
-msgstr ""
-
-#: dialogs.c:811
-msgid "Phone"
-msgstr ""
-
-#: dialogs.c:812
-msgid "Pop"
-msgstr ""
-
-#: dialogs.c:813
-msgid "Roar"
-msgstr ""
-
-#: dialogs.c:814
-msgid "Slap"
-msgstr ""
-
-#: dialogs.c:815
-msgid "Wood Thunk"
-msgstr ""
-
-#: dialogs.c:817
-msgid "User File"
-msgstr ""
-
-#: dialogs.c:840
-msgid "User WAV File:"
-msgstr ""
-
-#: dialogs.c:841
-msgid "Sound Program:"
-msgstr ""
-
-#: dialogs.c:842
-msgid "Try-Out Sound:"
-msgstr ""
-
-#: dialogs.c:843
-msgid "Play"
-msgstr "Ascolta"
-
-#: dialogs.c:844
-msgid "Move:"
-msgstr ""
-
-#: dialogs.c:845
-msgid "Win:"
-msgstr ""
-
-#: dialogs.c:846
-msgid "Lose:"
-msgstr ""
-
-#: dialogs.c:847
-msgid "Draw:"
-msgstr ""
-
-#: dialogs.c:848
-msgid "Unfinished:"
-msgstr ""
-
-#: dialogs.c:849
-msgid "Alarm:"
-msgstr ""
-
-#: dialogs.c:850
-msgid "Challenge:"
-msgstr ""
-
-#: dialogs.c:852
-msgid "Sounds Directory:"
-msgstr ""
-
-#: dialogs.c:853
-msgid "Shout:"
-msgstr ""
-
-#: dialogs.c:854
-msgid "S-Shout:"
-msgstr ""
-
-#: dialogs.c:855
-msgid "Channel:"
-msgstr ""
-
-#: dialogs.c:856
-msgid "Channel 1:"
-msgstr ""
-
-#: dialogs.c:857
-msgid "Tell:"
-msgstr ""
-
-#: dialogs.c:858
-msgid "Kibitz:"
-msgstr ""
-
-#: dialogs.c:859
-msgid "Request:"
-msgstr ""
-
-#: dialogs.c:860
-msgid "Lion roar:"
-msgstr ""
-
-#: dialogs.c:861
-msgid "Seek:"
-msgstr ""
-
-#: dialogs.c:877
-msgid "Sound Options"
-msgstr "Impostazioni suoni"
-
-#: dialogs.c:893
-msgid "Selectable themes:"
-msgstr ""
-
-#: dialogs.c:895
-msgid "New name for current theme:"
-msgstr ""
-
-#: dialogs.c:898
-msgid "White Piece Color:"
-msgstr ""
-
-#. TRANSLATORS: R = single letter for the color red
-#: dialogs.c:901 dialogs.c:910 dialogs.c:916 dialogs.c:922 dialogs.c:928
-#: dialogs.c:934
-msgid "R"
-msgstr ""
-
-#. TRANSLATORS: G = single letter for the color green
-#: dialogs.c:903 dialogs.c:911 dialogs.c:917 dialogs.c:923 dialogs.c:929
-#: dialogs.c:935
-msgid "G"
-msgstr ""
-
-#. TRANSLATORS: B = single letter for the color blue
-#: dialogs.c:905 dialogs.c:912 dialogs.c:918 dialogs.c:924 dialogs.c:930
-#: dialogs.c:936 dialogs.c:1650 dialogs.c:1656 dialogs.c:1662 dialogs.c:1668
-#: dialogs.c:1674 dialogs.c:1680 dialogs.c:1686
-msgid "B"
-msgstr ""
-
-#. TRANSLATORS: D = single letter to make a color darker
-#: dialogs.c:907 dialogs.c:913 dialogs.c:919 dialogs.c:925 dialogs.c:931
-#: dialogs.c:937
-msgid "D"
-msgstr ""
-
-#: dialogs.c:908
-msgid "Black Piece Color:"
-msgstr "Pezzi neri"
-
-#: dialogs.c:914
-msgid "Light Square Color:"
-msgstr "Case bianche"
-
-#: dialogs.c:920
-msgid "Dark Square Color:"
-msgstr "Case nere"
-
-#: dialogs.c:926
-msgid "Highlight Color:"
-msgstr "Case evidenziate"
-
-#: dialogs.c:932
-msgid "Premove Highlight Color:"
-msgstr "Premosse evidenziate"
-
-#: dialogs.c:938
-msgid "Flip Pieces Shogi Style        (Colored buttons restore default)"
-msgstr ""
-
-#: dialogs.c:940
-msgid "Mono Mode"
-msgstr "Monocromatico"
-
-#: dialogs.c:941
-msgid "Logo Size (0=off, requires restart):"
-msgstr ""
-
-#: dialogs.c:942
-msgid "Line Gap (-1 = default for board size):"
-msgstr ""
-
-#: dialogs.c:943
-msgid "Use Board Textures"
-msgstr ""
-
-#: dialogs.c:944
-msgid "Light-Squares Texture File:"
-msgstr ""
-
-#: dialogs.c:945
-msgid "Dark-Squares Texture File:"
-msgstr ""
-
-#: dialogs.c:946
-msgid "Use external piece bitmaps with their own colors"
-msgstr ""
-
-#: dialogs.c:947
-msgid "Directory with Pieces Images:"
-msgstr ""
-
-#: dialogs.c:1018
-msgid "# no themes are defined"
-msgstr ""
-
-#: dialogs.c:1030
-msgid "Board Options"
-msgstr "Impostazioni scacchiera"
-
-#: dialogs.c:1101 menus.c:646
-msgid "ICS text menu"
-msgstr ""
-
-#: dialogs.c:1130
-msgid "clear"
-msgstr ""
-
-#: dialogs.c:1131
-msgid "save changes"
-msgstr ""
-
-#: dialogs.c:1229
-#, fuzzy
-msgid "add next move"
-msgstr "Pensa sul mio tempo"
-
-#: dialogs.c:1230
-msgid "commit changes"
-msgstr ""
-
-#: dialogs.c:1253
-#, fuzzy
-msgid "Edit book"
-msgstr "Modifica"
-
-#: dialogs.c:1270 dialogs.c:1277 menus.c:648
-msgid "Tags"
-msgstr "Informazioni partita"
-
-#: dialogs.c:1285
-#, fuzzy
-msgid "Registered Engines"
-msgstr "Motore"
-
-#: dialogs.c:1401
-msgid "ICS input box"
-msgstr ""
-
-#: dialogs.c:1433
-msgid "Type a move"
-msgstr ""
-
-#: dialogs.c:1459
-#, fuzzy
-msgid "Engine has no options"
-msgstr "Libro proprio per motore 1"
-
-#: dialogs.c:1461
-msgid "Engine Settings"
-msgstr ""
-
-#: dialogs.c:1502
-msgid "Select engine from list:"
-msgstr ""
-
-#: dialogs.c:1505
-msgid "or specify one below:"
-msgstr ""
-
-#: dialogs.c:1506
-msgid "Nickname (optional):"
-msgstr ""
-
-#: dialogs.c:1507
-msgid "Use nickname in PGN player tags of engine-engine games"
-msgstr ""
-
-#: dialogs.c:1508
-msgid "Engine Directory:"
-msgstr ""
-
-#: dialogs.c:1509
-msgid "Engine Command:"
-msgstr ""
-
-#: dialogs.c:1510
-msgid "(Directory will be derived from engine path when empty)"
-msgstr ""
-
-#: dialogs.c:1511
-msgid "UCI"
-msgstr ""
-
-#: dialogs.c:1512
-msgid "USI/UCCI (uses specified -uxiAdapter)"
-msgstr ""
-
-#: dialogs.c:1513
-msgid "WB protocol v1 (do not wait for engine features)"
-msgstr ""
-
-#: dialogs.c:1514
-msgid "Must not use GUI book"
-msgstr ""
-
-#: dialogs.c:1515
-msgid "Add this engine to the list"
-msgstr ""
-
-#: dialogs.c:1516
-msgid "Force current variant with this engine"
-msgstr ""
-
-#: dialogs.c:1570
-msgid "Load first engine"
-msgstr ""
-
-#: dialogs.c:1576
-msgid "Load second engine"
-msgstr ""
-
-#: dialogs.c:1599
-msgid "shuffle"
-msgstr ""
-
-#: dialogs.c:1600
-msgid "Fischer castling"
-msgstr ""
-
-#: dialogs.c:1601
-msgid "Start-position number:"
-msgstr "Disposizione iniziale:"
-
-#: dialogs.c:1602
-#, fuzzy
-msgid "randomize"
-msgstr "Casuale"
-
-#: dialogs.c:1603
-msgid "pick fixed"
-msgstr ""
-
-#: dialogs.c:1620
-msgid "New Shuffle Game"
-msgstr "Nuova partita Shuffle..."
-
-#: dialogs.c:1647
-msgid "Clocks (requires restart):"
-msgstr ""
-
-#: dialogs.c:1648 dialogs.c:1654 dialogs.c:1660 dialogs.c:1666 dialogs.c:1672
-#: dialogs.c:1678 dialogs.c:1684
-msgid "+"
-msgstr ""
-
-#: dialogs.c:1649 dialogs.c:1655 dialogs.c:1661 dialogs.c:1667 dialogs.c:1673
-#: dialogs.c:1679 dialogs.c:1685
-msgid "-"
-msgstr ""
-
-#: dialogs.c:1651 dialogs.c:1657 dialogs.c:1663 dialogs.c:1669 dialogs.c:1675
-#: dialogs.c:1681 dialogs.c:1687
-msgid "I"
-msgstr ""
-
-#: dialogs.c:1652 dialogs.c:1658 dialogs.c:1664 dialogs.c:1670 dialogs.c:1676
-#: dialogs.c:1682 dialogs.c:1688
-msgid "*"
-msgstr ""
-
-#: dialogs.c:1653
-msgid "Message (above board):"
-msgstr ""
-
-#: dialogs.c:1659
-msgid "ICS Chat/Console:"
-msgstr ""
-
-#: dialogs.c:1665
-msgid "Edit tags / book / engine list:"
-msgstr ""
-
-#: dialogs.c:1671
-#, fuzzy
-msgid "Edit comments:"
-msgstr "Modifica commento"
-
-#: dialogs.c:1677
-#, fuzzy
-msgid "Move history / Engine Output:"
-msgstr "Output del motore di gioco"
-
-#: dialogs.c:1683
-#, fuzzy
-msgid "Game list:"
-msgstr "Lista partite..."
-
-#: dialogs.c:1689
-msgid ""
-"\n"
-"The * buttons will set the font to the one selected below:"
-msgstr ""
-
-#: dialogs.c:1743
-msgid "This only works in the GTK build"
-msgstr ""
-
-#: dialogs.c:1744
-msgid "Fonts"
-msgstr ""
-
-#: dialogs.c:1764
-msgid "classical"
-msgstr ""
-
-#: dialogs.c:1765
-msgid "incremental"
-msgstr ""
-
-#: dialogs.c:1766
-msgid "fixed max"
-msgstr ""
-
-#: dialogs.c:1767
-msgid "Divide entered times by 60"
-msgstr ""
-
-#: dialogs.c:1768
-msgid "Moves per session:"
-msgstr ""
-
-#: dialogs.c:1769
-msgid "Initial time (min):"
-msgstr ""
-
-#: dialogs.c:1770
-msgid "Increment or max (sec/move):"
-msgstr ""
-
-#: dialogs.c:1771
-#, fuzzy
-msgid "Time-Odds factors:"
-msgstr "Riduci il tempo di un fattore:"
-
-#: dialogs.c:1772
-#, fuzzy
-msgid "Engine #1"
-msgstr "Motore"
-
-#: dialogs.c:1773
-#, fuzzy
-msgid "Engine #2 / Human"
-msgstr "Libro proprio per motore 1"
-
-#: dialogs.c:1814 dialogs.c:1817 dialogs.c:1822 dialogs.c:1823
-#: gtk/xoptions.c:183
-msgid "Unused"
-msgstr ""
-
-#: dialogs.c:1832
-msgid "Changing time control during a game is not implemented"
-msgstr ""
-
-#: dialogs.c:1869
-msgid "Error writing to chess program"
-msgstr "Errore in scrittura sul motore di gioco"
-
-#: dialogs.c:1937 gtk/xoptions.c:1775 xaw/xoptions.c:1341
-#, fuzzy
-msgid "Cancel"
-msgstr "Cancella"
-
-#: dialogs.c:1942 dialogs.c:2695 dialogs.c:2699
-msgid "King"
-msgstr "Re"
-
-#: dialogs.c:1945
-msgid "Captain"
-msgstr ""
-
-#: dialogs.c:1946
-msgid "Lieutenant"
-msgstr ""
-
-#: dialogs.c:1947
-msgid "General"
-msgstr "Generali..."
-
-#: dialogs.c:1948
-msgid "Warlord"
-msgstr ""
-
-#: dialogs.c:1950 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Knight"
-msgstr "Cavallo"
-
-#: dialogs.c:1951 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Bishop"
-msgstr "Alfiere"
-
-#: dialogs.c:1952 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Rook"
-msgstr "Torre"
-
-#: dialogs.c:1956 dialogs.c:2696 dialogs.c:2700
-msgid "Archbishop"
-msgstr "Arcivescovo"
-
-#: dialogs.c:1957 dialogs.c:2696 dialogs.c:2700
-msgid "Chancellor"
-msgstr "Cancelliere"
-
-#: dialogs.c:1959 dialogs.c:2695 dialogs.c:2699 dialogs.c:2717
-msgid "Queen"
-msgstr "Donna"
-
-#: dialogs.c:1961
-msgid "Lion"
-msgstr ""
-
-#: dialogs.c:1965
-msgid "Defer"
-msgstr ""
-
-#: dialogs.c:1966 dialogs.c:2696 dialogs.c:2700
-msgid "Promote"
-msgstr "Promuovi"
-
-#: dialogs.c:2023
-msgid "Chats:"
-msgstr ""
-
-#: dialogs.c:2024 dialogs.c:2025 dialogs.c:2026 dialogs.c:2027 dialogs.c:2028
-#: dialogs.c:2134 dialogs.c:2199 dialogs.c:2231
-#, fuzzy
-msgid "New Chat"
-msgstr "Varianti di gioco"
-
-#: dialogs.c:2031
-msgid "Chat partner:"
-msgstr ""
-
-#: dialogs.c:2032
-msgid "End Chat"
-msgstr ""
-
-#: dialogs.c:2033
-msgid "Hide"
-msgstr ""
-
-#: dialogs.c:2260
-#, fuzzy
-msgid "ICS Interaction"
-msgstr "Impostazioni ICS"
-
-#: dialogs.c:2345
-msgid "factory"
-msgstr "Fabbrica"
-
-#: dialogs.c:2346
-msgid "up"
-msgstr "Muovi su"
-
-#: dialogs.c:2347
-msgid "down"
-msgstr "Muovi giu"
-
-#: dialogs.c:2366
-msgid "No tag selected"
-msgstr ""
-
-#: dialogs.c:2397
-#, fuzzy
-msgid "Game-list options"
-msgstr "Impostazioni apertura partita"
-
-#: dialogs.c:2475 dialogs.c:2489
-msgid "Error"
-msgstr "Errore"
-
-#: dialogs.c:2518
-msgid "Fatal Error"
-msgstr "Errore fatale"
-
-#: dialogs.c:2518
-msgid "Exiting"
-msgstr "Chiusura in corso"
-
-#: dialogs.c:2529
-msgid "Information"
-msgstr "Informazione"
-
-#: dialogs.c:2536
-msgid "Note"
-msgstr "Nota"
-
-#: dialogs.c:2694 dialogs.c:2987 dialogs.c:2990
-msgid "White"
-msgstr "Bianco"
-
-#: dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Pawn"
-msgstr "Pedone"
-
-#: dialogs.c:2695 dialogs.c:2699
-msgid "Elephant"
-msgstr "Elefante"
-
-#: dialogs.c:2695 dialogs.c:2699
-msgid "Cannon"
-msgstr "Cannone"
-
-#: dialogs.c:2696 dialogs.c:2700
-msgid "Demote"
-msgstr "Degrada"
-
-#: dialogs.c:2697 dialogs.c:2701
-msgid "Empty square"
-msgstr "Casa vuota"
-
-#: dialogs.c:2697 dialogs.c:2701
-msgid "Clear board"
-msgstr "Svuota scacchiera"
-
-#: dialogs.c:2698 dialogs.c:2999 dialogs.c:3002
-msgid "Black"
-msgstr "Nero"
-
-#: dialogs.c:2798
-#, fuzzy
-msgid "_File"
-msgstr "File"
-
-#: dialogs.c:2799
-#, fuzzy
-msgid "_Edit"
-msgstr "Modifica"
-
-#: dialogs.c:2800
-#, fuzzy
-msgid "_View"
-msgstr "Visualizza"
-
-#: dialogs.c:2801
-#, fuzzy
-msgid "_Mode"
-msgstr "Modalità"
-
-#: dialogs.c:2802
-#, fuzzy
-msgid "_Action"
-msgstr "Azioni"
-
-#: dialogs.c:2803
-#, fuzzy
-msgid "E_ngine"
-msgstr "Motore"
-
-#: dialogs.c:2804
-#, fuzzy
-msgid "_Options"
-msgstr "Impostazioni"
-
-#: dialogs.c:2805
-#, fuzzy
-msgid "_Help"
-msgstr "Aiuto"
-
-#: dialogs.c:2815
-msgid "<<"
-msgstr ""
-
-#: dialogs.c:2816
-msgid "<"
-msgstr ""
-
-#: dialogs.c:2818
-msgid ">"
-msgstr ""
-
-#: dialogs.c:2819
-msgid ">>"
-msgstr ""
-
-#: dialogs.c:3107
-msgid "Directories:"
-msgstr ""
-
-#: dialogs.c:3108
-#, fuzzy
-msgid "Files:"
-msgstr "File"
-
-#: dialogs.c:3109
-msgid "by name"
-msgstr ""
-
-#: dialogs.c:3110
-msgid "by type"
-msgstr ""
-
-#: dialogs.c:3113
-#, fuzzy
-msgid "Filename:"
-msgstr "Filtro"
-
-#: dialogs.c:3114
-msgid "New directory"
-msgstr ""
-
-#: dialogs.c:3115
-#, fuzzy
-msgid "File type:"
-msgstr "Filtro"
-
-#: dialogs.c:3190
-#, fuzzy
-msgid "Contents of"
-msgstr "Commenti"
-
-#: dialogs.c:3216
-msgid "  next page"
-msgstr ""
-
-#: dialogs.c:3233
-msgid "FIRST TYPE DIRECTORY NAME HERE"
-msgstr ""
-
-#: dialogs.c:3234
-msgid "TRY ANOTHER NAME"
-msgstr ""
-
-#: draw.c:405
-msgid ""
-"No default pieces installed!\n"
-"Select your own using '-pieceImageDirectory'."
-msgstr ""
-
-#: engineoutput.c:112 menus.c:642
-#, fuzzy, c-format
-msgid "Engine Output"
-msgstr "Output del motore di gioco"
-
-#: engineoutput.c:122
-#, c-format
-msgid "%s (%d reversible ply)"
-msgid_plural "%s (%d reversible plies)"
-msgstr[0] ""
-msgstr[1] ""
-
-#: engineoutput.c:565 engineoutput.c:568 nengineoutput.c:83 nengineoutput.c:91
-msgid "NPS"
-msgstr ""
-
-#: gamelist.c:379
-#, fuzzy, c-format
-msgid "Reading game file (%d)"
-msgstr "File partita non riconosciuto"
-
-#: gtk/xboard.c:979 xaw/xboard.c:1074
-#, c-format
-msgid "%s: can't cd to CHESSDIR: "
-msgstr ""
-
-#: gtk/xboard.c:988 xaw/xboard.c:1083
-#, c-format
-msgid "Failed to open file '%s'\n"
-msgstr ""
-
-#: gtk/xboard.c:1003 xaw/xboard.c:1092
-msgid "Recompile with larger BOARD_RANKS or BOARD_FILES to support this size"
-msgstr ""
-
-#: gtk/xboard.c:1022 xaw/xboard.c:1124
-#, c-format
-msgid "%s: bad boardSize syntax %s\n"
-msgstr ""
-
-#: gtk/xboard.c:1063 xaw/xboard.c:1163
-#, c-format
-msgid "%s: unrecognized boardSize name %s\n"
-msgstr ""
-
-#: gtk/xboard.c:1107 xaw/xboard.c:1200
-#, c-format
-msgid "%s: too few colors available; trying monochrome mode\n"
-msgstr ""
-
-#: gtk/xboard.c:1421 xaw/xboard.c:1492
-#, c-format
-msgid "Unable to create font set for %s.\n"
-msgstr ""
-
-#: gtk/xboard.c:1446 xaw/xboard.c:1515
-#, c-format
-msgid "%s: no fonts match pattern %s\n"
-msgstr ""
-
-#: gtk/xboard.c:1914 xaw/xboard.c:2007
-msgid "Can't open temp file"
-msgstr ""
-
-#: gtk/xboard.c:2422
-#, fuzzy
-msgid "Failed to open file"
-msgstr "Impossibile aprire l'applicazione cmail"
-
-#: gtk/xoptions.c:1498
-msgid "Browse"
-msgstr ""
-
-#: gtk/xoptions.c:1772 xaw/xoptions.c:1337
-msgid "OK"
-msgstr "OK"
-
-#: menus.c:136
-msgid "Load game file name?"
-msgstr ""
-
-#: menus.c:183
-msgid "Load position file name?"
-msgstr ""
-
-#: menus.c:189 menus.c:582
-msgid "Save game file name?"
-msgstr ""
-
-#: menus.c:198
-msgid "Save position file name?"
-msgstr ""
-
-#: menus.c:355
-msgid " (with Zippy code)"
-msgstr ""
-
-#: menus.c:360
-#, c-format
-msgid ""
-"%s%s\n"
-"\n"
-"Copyright 1991 Digital Equipment Corporation\n"
-"Enhancements Copyright 1992-2016 Free Software Foundation\n"
-"Enhancements Copyright 2005 Alessandro Scotti\n"
-"\n"
-"%s is free software and carries NO WARRANTY;see the file COPYING for more "
-"information.\n"
-"\n"
-"Visit XBoard on the web at: http://www.gnu.org/software/xboard/\n"
-"Check out the newest features at: http://www.gnu.org/software/xboard/"
-"whats_new.html\n"
-"\n"
-"Report bugs via email at: <bug-xboard@gnu.org>\n"
-"\n"
-msgstr ""
-
-#: menus.c:371 menus.c:765
-msgid "About XBoard"
-msgstr "Informazioni su Winboard"
-
-#: menus.c:593
-#, fuzzy
-msgid "New Game"
-msgstr "Nuova partita Shuffle..."
-
-#: menus.c:594
-#, fuzzy
-msgid "New Shuffle Game..."
-msgstr "Nuova partita Shuffle..."
-
-#: menus.c:595
-#, fuzzy
-msgid "New Variant..."
-msgstr "Varianti di gioco"
-
-#: menus.c:597
-#, fuzzy
-msgid "Load Game"
-msgstr "Apertura partita...   Alt+Shift+L"
-
-#: menus.c:598
-#, fuzzy
-msgid "Load Position"
-msgstr "File posizione non riconosciuto"
-
-#: menus.c:599
-#, fuzzy
-msgid "Next Position"
-msgstr "File posizione non riconosciuto"
-
-#: menus.c:600
-#, fuzzy
-msgid "Prev Position"
-msgstr "File posizione non riconosciuto"
-
-#: menus.c:602
-#, fuzzy
-msgid "Save Game"
-msgstr "Salvataggio partita...   Alt+Shift+S"
-
-#: menus.c:603
-#, fuzzy
-msgid "Save Position"
-msgstr "File posizione non riconosciuto"
-
-#: menus.c:604
-#, fuzzy
-msgid "Save Selected Games"
-msgstr "Salvataggio partita...   Alt+Shift+S"
-
-#: menus.c:605
-#, fuzzy
-msgid "Save Games as Book"
-msgstr "Salvataggio partita...   Alt+Shift+S"
-
-#: menus.c:607
-msgid "Mail Move"
-msgstr ""
-
-#: menus.c:608
-msgid "Reload CMail Message"
-msgstr ""
-
-#: menus.c:610
-msgid "Quit "
-msgstr ""
-
-#: menus.c:615
-#, fuzzy
-msgid "Copy Game"
-msgstr "Copia lista partite"
-
-#: menus.c:616
-#, fuzzy
-msgid "Copy Position"
-msgstr "Copia posizione   Ctrl+Shift+C"
-
-#: menus.c:617
-msgid "Copy Game List"
-msgstr "Copia lista partite"
-
-#: menus.c:619
-#, fuzzy
-msgid "Paste Game"
-msgstr "Incolla partita   Ctrl+V"
-
-#: menus.c:620
-#, fuzzy
-msgid "Paste Position"
-msgstr "Incolla posizione   Ctrl+Shift+V"
-
-#: menus.c:622 menus.c:665
-#, fuzzy
-msgid "Edit Game"
-msgstr "Modifica commento"
-
-#: menus.c:623 menus.c:666
-#, fuzzy
-msgid "Edit Position"
-msgstr "File posizione non riconosciuto"
-
-#: menus.c:624
-msgid "Edit Tags"
-msgstr "Modifica informazioni partita..."
-
-#: menus.c:625
-msgid "Edit Comment"
-msgstr "Modifica commento..."
-
-#: menus.c:626
-#, fuzzy
-msgid "Edit Book"
-msgstr "Libro delle aperture..."
-
-#: menus.c:628
-msgid "Revert"
-msgstr ""
-
-#: menus.c:629
-msgid "Annotate"
-msgstr "Annota"
-
-#: menus.c:630
-#, fuzzy
-msgid "Truncate Game"
-msgstr "Tronca la partita   End"
-
-#: menus.c:632
-msgid "Backward"
-msgstr ""
-
-#: menus.c:633
-msgid "Forward"
-msgstr ""
-
-#: menus.c:634
-#, fuzzy
-msgid "Back to Start"
-msgstr "Il tratto è al Nero"
-
-#: menus.c:635
-#, fuzzy
-msgid "Forward to End"
-msgstr "Vai alla fine   Alt+End"
-
-#: menus.c:640
-#, fuzzy
-msgid "Flip View"
-msgstr "Ruota vista automaticamente"
-
-#: menus.c:643
-#, fuzzy
-msgid "Move History"
-msgstr "Scarica lista mosse"
-
-#: menus.c:644
-#, fuzzy
-msgid "Evaluation Graph"
-msgstr "Grafico della valutazione"
-
-#: menus.c:645
-#, fuzzy
-msgid "Game List"
-msgstr "Lista partite..."
-
-#: menus.c:649
-msgid "Comments"
-msgstr "Commenti"
-
-#: menus.c:650
-msgid "ICS Input Box"
-msgstr ""
-
-#: menus.c:651
-msgid "ICS/Chat Console"
-msgstr ""
-
-#: menus.c:653
-msgid "Board..."
-msgstr "Scacchiera..."
-
-#: menus.c:654
-#, fuzzy
-msgid "Fonts..."
-msgstr "Suoni..."
-
-#: menus.c:655
-msgid "Game List Tags..."
-msgstr "Impostazioni lista partite..."
-
-#: menus.c:660
-#, fuzzy
-msgid "Machine White"
-msgstr "Bianco al motore di gioco   Ctrl+W"
-
-#: menus.c:661
-#, fuzzy
-msgid "Machine Black"
-msgstr "Match tra i motori di gioco"
-
-#: menus.c:662
-#, fuzzy
-msgid "Two Machines"
-msgstr "Motore di gioco 1 vs 2   Ctrl+T"
-
-#: menus.c:663
-#, fuzzy
-msgid "Analysis Mode"
-msgstr "Avvia analisi   Ctrl+A"
-
-#: menus.c:664
-#, fuzzy
-msgid "Analyze Game"
-msgstr "Analizza file   Ctrl+F"
-
-#: menus.c:667
-msgid "Training"
-msgstr "Allenamento"
-
-#: menus.c:668
-msgid "ICS Client"
-msgstr "Connetti ad un ICS"
-
-#: menus.c:670
-msgid "Machine Match"
-msgstr "Match tra i motori di gioco"
-
-#: menus.c:671
-msgid "Pause"
-msgstr ""
-
-#: menus.c:676
-msgid "Accept"
-msgstr ""
-
-#: menus.c:677
-msgid "Decline"
-msgstr ""
-
-#: menus.c:678
-msgid "Rematch"
-msgstr ""
-
-#: menus.c:680
-#, fuzzy
-msgid "Call Flag"
-msgstr "Chiama il Tempo   F5"
-
-#: menus.c:681
-msgid "Draw"
-msgstr ""
-
-#: menus.c:682
-msgid "Adjourn"
-msgstr ""
-
-#: menus.c:683
-msgid "Abort"
-msgstr ""
-
-#: menus.c:684
-msgid "Resign"
-msgstr ""
-
-#: menus.c:686
-#, fuzzy
-msgid "Stop Observing"
-msgstr "Smetti di osservare   F10"
-
-#: menus.c:687
-#, fuzzy
-msgid "Stop Examining"
-msgstr "Smetti di esaminare   F11"
-
-#: menus.c:688
-msgid "Upload to Examine"
-msgstr "Carica su ICS per esaminare"
-
-#: menus.c:690
-msgid "Adjudicate to White"
-msgstr "Aggiudica al Bianco"
-
-#: menus.c:691
-msgid "Adjudicate to Black"
-msgstr "Aggiudica al Nero"
-
-#: menus.c:692
-msgid "Adjudicate Draw"
-msgstr "Aggiudica come Patta"
-
-#: menus.c:697
-#, fuzzy
-msgid "Edit Engine List..."
-msgstr "Impostazioni motore 1"
-
-#: menus.c:699
-msgid "Load New 1st Engine..."
-msgstr ""
-
-#: menus.c:700
-#, fuzzy
-msgid "Load New 2nd Engine..."
-msgstr "Motori di gioco...   Alt+Shift+U"
-
-#: menus.c:702
-#, fuzzy
-msgid "Engine #1 Settings..."
-msgstr "Impostazioni motore 1"
-
-#: menus.c:703
-#, fuzzy
-msgid "Engine #2 Settings..."
-msgstr "Impostazioni motore 2"
-
-#: menus.c:704
-#, fuzzy
-msgid "Common Settings..."
-msgstr "Impostazioni motori di gioco"
-
-#: menus.c:706
-msgid "Hint"
-msgstr "Suggerimento..."
-
-#: menus.c:707
-msgid "Book"
-msgstr "Libro delle aperture..."
-
-#: menus.c:709
-msgid "Move Now"
-msgstr ""
-
-#: menus.c:710
-#, fuzzy
-msgid "Retract Move"
-msgstr "Annulla mossa   Ctrl+X"
-
-#: menus.c:716
-#, fuzzy
-msgid "General..."
-msgstr "Generali..."
-
-#: menus.c:718
-#, fuzzy
-msgid "Time Control..."
-msgstr "Controllo Tempo...   Alt+Shift+T"
-
-#: menus.c:719
-#, fuzzy
-msgid "Adjudications..."
-msgstr "Aggiudicazioni...   Alt+Shift+J"
-
-#: menus.c:720
-msgid "ICS..."
-msgstr ""
-
-#: menus.c:721
-msgid "Tournament..."
-msgstr ""
-
-#: menus.c:722
-#, fuzzy
-msgid "Load Game..."
-msgstr "Apertura partita...   Alt+Shift+L"
-
-#: menus.c:723
-#, fuzzy
-msgid "Save Game..."
-msgstr "Salvataggio partita...   Alt+Shift+S"
-
-#: menus.c:724
-#, fuzzy
-msgid "Game List..."
-msgstr "Lista partite..."
-
-#: menus.c:725
-#, fuzzy
-msgid "Sounds..."
-msgstr "Suoni..."
-
-#: menus.c:728
-msgid "Always Queen"
-msgstr ""
-
-#: menus.c:734
-msgid "Flash Moves"
-msgstr ""
-
-#: menus.c:736
-msgid "Highlight Dragging"
-msgstr "Evidenzia trascinamento"
-
-#: menus.c:739
-msgid "Highlight With Arrow"
-msgstr "Evidenzia con una freccia"
-
-#: menus.c:740
-msgid "Move Sound"
-msgstr ""
-
-#: menus.c:742
-msgid "Periodic Updates"
-msgstr "Aggiornamenti continui"
-
-#: menus.c:744
-msgid "Popup Exit Message"
-msgstr "Chiedi conferma alla chiusura"
-
-#: menus.c:746
-msgid "Show Coords"
-msgstr "Mostra coordinate"
-
-#: menus.c:747
-#, fuzzy
-msgid "Hide Thinking"
-msgstr "Nascondi l'output del motore se gioca contro un uomo"
-
-#: menus.c:751
-msgid "Save Settings Now"
-msgstr "Salva impostazioni"
-
-#: menus.c:752
-msgid "Save Settings on Exit"
-msgstr "Salva impostazioni all'uscita"
-
-#: menus.c:757
-msgid "Info XBoard"
-msgstr ""
-
-#: menus.c:758
-#, fuzzy
-msgid "Man XBoard"
-msgstr "Informazioni su Winboard"
-
-#: menus.c:760
-msgid "XBoard Home Page"
-msgstr ""
-
-#: menus.c:761
-msgid "On-line User Guide"
-msgstr ""
-
-#: menus.c:762
-msgid "Development News"
-msgstr ""
-
-#: menus.c:763
-msgid "e-Mail Bug Report"
-msgstr ""
-
-#: menus.c:802
-msgid "File"
-msgstr "File"
-
-#: menus.c:803
-msgid "Edit"
-msgstr "Modifica"
-
-#: menus.c:804
-msgid "View"
-msgstr "Visualizza"
-
-#: menus.c:805
-msgid "Mode"
-msgstr "Modalità"
-
-#: menus.c:806
-msgid "Action"
-msgstr "Azioni"
-
-#: menus.c:807
-msgid "Engine"
-msgstr "Motore"
-
-#: menus.c:808
-msgid "Options"
-msgstr "Impostazioni"
-
-#: menus.c:809
-msgid "Help"
-msgstr "Aiuto"
-
-#: nengineoutput.c:79 nengineoutput.c:87
-#, fuzzy
-msgid "engine name"
-msgstr "Motore"
-
-#. TRANSLATORS: noun, as in "the move Nf3"
-#: nengineoutput.c:82 nengineoutput.c:90
-#, fuzzy
-msgid "move"
-msgstr "mosse"
-
-#: nengineoutput.c:156
-msgid "Engine output"
-msgstr "Output del motore di gioco"
-
-#: nengineoutput.c:160
-msgid ""
-"Mismatch of STRIDE in nengineoutput.c\n"
-"Change and recompile!"
-msgstr ""
-
-#: nevalgraph.c:69
-msgid "Evaluation graph"
-msgstr "Grafico della valutazione"
-
-#: nevalgraph.c:69
-#, fuzzy
-msgid "Blunder graph"
-msgstr "Grafico della valutazione"
-
-#: nevalgraph.c:107
-msgid "Blunder"
-msgstr ""
-
-#: nevalgraph.c:107
-msgid "Eval"
-msgstr ""
-
-#: ngamelist.c:87
-#, fuzzy
-msgid "find position"
-msgstr "File posizione non riconosciuto"
-
-#: ngamelist.c:88
-msgid "narrow"
-msgstr ""
-
-#: ngamelist.c:89
-msgid "thresholds"
-msgstr ""
-
-#: ngamelist.c:90
-#, fuzzy
-msgid "tags"
-msgstr "Informazioni partita"
-
-#: ngamelist.c:91
-msgid "next"
-msgstr ""
-
-#: ngamelist.c:92
-msgid "close"
-msgstr ""
-
-#: ngamelist.c:116
-msgid "No game selected"
-msgstr "Nessuna partita selezionata"
-
-#: ngamelist.c:122
-msgid "Can't go forward any further"
-msgstr "Impossibile avanzare oltre"
-
-#: ngamelist.c:192
-#, c-format
-msgid "Scanning through games (%d)"
-msgstr ""
-
-#: ngamelist.c:211
-msgid "previous page"
-msgstr ""
-
-#: ngamelist.c:214
-msgid "next page"
-msgstr ""
-
-#: ngamelist.c:217
-msgid "no games matched your request"
-msgstr ""
-
-#: ngamelist.c:219
-#, fuzzy, c-format
-msgid "%s - %d/%d games (%d-%d-%d)"
-msgstr "Match %s vs %s: punteggio finale %d-%d-%d"
-
-#: ngamelist.c:284
-msgid "There is no game list"
-msgstr "Nessuna lista partite"
-
-#: nhistory.c:109
-msgid "Move list"
-msgstr ""
-
-#: usystem.c:223
-#, c-format
-msgid "%s: unrecognized color %s\n"
-msgstr ""
-
-#: usystem.c:231
-#, c-format
-msgid "%s: can't parse foreground color in '%s'\n"
-msgstr ""
-
-#: usystem.c:260
-#, c-format
-msgid "%s: can't parse color names; disabling colorization\n"
-msgstr ""
-
-#: usystem.c:362
-#, c-format
-msgid "ERROR: Unknown user %s (in path %s)\n"
-msgstr ""
-
-#: usystem.c:564
-msgid "Socket support is not configured in"
-msgstr ""
-
-#: usystem.c:653
-msgid "internal rcmd not implemented for Unix"
-msgstr ""
-
-#: xaw/xboard.c:1206
-#, c-format
-msgid "white pixel = 0x%lx, black pixel = 0x%lx\n"
-msgstr ""
-
-#: xaw/xoptions.c:378 xaw/xoptions.c:1082
-msgid "browse"
-msgstr ""
-
-#: xaw/xoptions.c:444 xaw/xoptions.c:445
-msgid "Ctrl"
-msgstr ""
-
-#: xaw/xoptions.c:450 xaw/xoptions.c:451
-msgid "Alt"
-msgstr ""
-
-#: xaw/xoptions.c:456 xaw/xoptions.c:457
-msgid "Shift"
-msgstr ""
-
-#, fuzzy
-#~ msgid "Common Engine..."
-#~ msgstr "Motori di gioco...   Alt+Shift+U"
-
-#~ msgid "ICS ..."
-#~ msgstr "ICS..."
-
-#~ msgid "cancel"
-#~ msgstr "Cancella"
-
-#~ msgid "New Game        Ctrl+N"
-#~ msgstr "Nuova partita   Ctrl+N"
-
-#~ msgid "New Variant ...   Alt+Shift+V"
-#~ msgstr "Nuova variante...   Alt+Shift+V"
-
-#~ msgid "Load Game       Ctrl+O"
-#~ msgstr "Apri partita da file...   Ctrl+O"
-
-#~ msgid "Load Position    Ctrl+Shift+O"
-#~ msgstr "Apri posizione da file...   Ctrl+Shift+O"
-
-#~ msgid "Save Game       Ctrl+S"
-#~ msgstr "Salva partita...   Ctrl+S"
-
-#~ msgid "Save Position    Ctrl+Shift+S"
-#~ msgstr "Salva posizione...   Ctrl+Shift+S"
-
-#~ msgid "Quit                 Ctr+Q"
-#~ msgstr "Esci"
-
-#~ msgid "Copy Game    Ctrl+C"
-#~ msgstr "Copia partita   Ctrl+C"
-
-#~ msgid "Edit Game      Ctrl+E"
-#~ msgstr "Modifica partita   Ctrl+E"
-
-#~ msgid "Edit Position   Ctrl+Shift+E"
-#~ msgstr "Modifica posizione   Ctrl+Shift+E"
-
-#~ msgid "Revert              Home"
-#~ msgstr "Ripristina   Home"
-
-#~ msgid "Backward         Alt+Left"
-#~ msgstr "Indietro   Alt+Left"
-
-#~ msgid "Forward           Alt+Right"
-#~ msgstr "Avanti   Alt+Right"
-
-#~ msgid "Back to Start     Alt+Home"
-#~ msgstr "Torna all'inizio   Alt+Home"
-
-#~ msgid "Flip View             F2"
-#~ msgstr "Ruota la scacchiera   F2"
-
-#~ msgid "Engine Output      Alt+Shift+O"
-#~ msgstr "Output del motore di gioco   Alt+Shift+O"
-
-#~ msgid "Move History       Alt+Shift+H"
-#~ msgstr "Lista mosse   Alt+Shift+H"
-
-#~ msgid "Evaluation Graph  Alt+Shift+E"
-#~ msgstr "Grafico della valutazione   Alt+Shift+E"
-
-#~ msgid "Game List            Alt+Shift+G"
-#~ msgstr "Lista partite   Alt+Shift+G"
-
-#~ msgid "Machine Black  Ctrl+B"
-#~ msgstr "Nero al motore di gioco   Ctrl+B"
-
-#~ msgid "Edit Game         Ctrl+E"
-#~ msgstr "Modifica partita   Ctrl+E"
-
-#~ msgid "Edit Position      Ctrl+Shift+E"
-#~ msgstr "Modifica posizione   Ctrl+Shift+E"
-
-#~ msgid "Pause               Pause"
-#~ msgstr "Pausa   Pause"
-
-#~ msgid "Accept             F3"
-#~ msgstr "Accetta   F3"
-
-#~ msgid "Decline            F4"
-#~ msgstr "Declina   F4"
-
-#~ msgid "Rematch           F12"
-#~ msgstr "Rigioca   F12"
-
-#~ msgid "Draw                F6"
-#~ msgstr "Offri Patta   F6"
-
-#~ msgid "Adjourn            F7"
-#~ msgstr "Aggiorna   F7"
-
-#~ msgid "Abort                F8"
-#~ msgstr "Interrompi   F8"
-
-#~ msgid "Resign              F9"
-#~ msgstr "Abbandona   F9"
-
-#~ msgid "Move Now     Ctrl+M"
-#~ msgstr "Muovi subito   Ctrl+M"
-
-#~ msgid "Always Queen        Ctrl+Shift+Q"
-#~ msgstr "Promuovi a Donna                    Ctrl+Shift+Q"
-
-#~ msgid "Animate Moving      Ctrl+Shift+A"
-#~ msgstr "Mosse animate                          Ctrl+Shift+A"
-
-#~ msgid "Auto Flag               Ctrl+Shift+F"
-#~ msgstr "Aggiudica sul tempo                  Ctrl+Shift+F"
-
-#~ msgid "Ponder Next Move  Ctrl+Shift+P"
-#~ msgstr "Pensa sul mio tempo             Ctrl+Shift+P"
-
-#~ msgid "Hide Thinking        Ctrl+Shift+H"
-#~ msgstr "Nascondi analisi                    Ctrl+Shift+H"
-
-#~ msgid "Test Legality          Ctrl+Shift+L"
-#~ msgstr "Verifica mosse illegali             Ctrl+Shift+L"
-
-#~ msgid "Drop"
-#~ msgstr "Paracadutaggio"
-
-#, fuzzy
-#~ msgid "could not open: "
-#~ msgstr "Impossibile leggere mossa"
-
-#~ msgid "Promotion"
-#~ msgstr "Promozione"
-
-#~ msgid "ok"
-#~ msgstr "OK"
-
-#~ msgid "Highlight Dragging (Show Move Targets)"
-#~ msgstr "Evidenzia trascinamento"
-
-#~ msgid "You can only start a match from the initial position."
-#~ msgstr "Un match può essere avviato solo dalla posizione iniziale."
-
-#~ msgid "White "
-#~ msgstr "Bianco "
-
-#~ msgid "Black "
-#~ msgstr "Nero "
-
-#~ msgid "Close"
-#~ msgstr "Chiudi"
-
-#~ msgid "sec/move"
-#~ msgstr "secondi per mossa"
diff --git a/po/lng2po.sh b/po/lng2po.sh
deleted file mode 100755 (executable)
index 2e034b9..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-#!/bin/bash
-#  lng2po.sh -- translating .lng files to .po files for XBoard/Winboard,
-#               part of XBoard GNU project
-#
-#  Copyright 2011, 2013, 2014, 2015, 2016 Free Software Foundation, Inc.
-#  ------------------------------------------------------------------------
-#
-#  GNU XBoard is free software: you can redistribute it and/or modify
-#  it under the terms of the GNU General Public License as published by
-#  the Free Software Foundation, either version 3 of the License, or (at
-#  your option) any later version.
-#
-#  GNU XBoard is distributed in the hope that it will be useful, but
-#  WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-#  General Public License for more details.
-#
-#  You should have received a copy of the GNU General Public License
-#  along with this program. If not, see http://www.gnu.org/licenses/.  *
-#
-# ------------------------------------------------------------------------
-
-
-INFO="lng2po.sh (translating .lng files to .po files for XBoard/Winboard)"
-USAGE="Usage: `basename $0` [-hv] [-o outputfile] [-e encoding] <input.lng>
-               default encoding:    latin-1
-               default output file: ./language.po"
-
-VERSION="1"
-
-# default options
-OUTPUT="language.po"
-ENCODING="latin-1"
-INPUT=""
-TMPFILE=`mktemp lng2poXXXXX`
-
-# parse command line arguments
-while getopts hvo:e: OPT; do
-    case "$OPT" in
-        h)  echo $USAGE
-            exit 0
-            ;;
-        v)  echo "`basename $0` version: $VERSION"
-            exit 0
-            ;;
-        o)  OUTPUT=$OPTARG
-            ;;
-        e)  ENCODING=$OPTARG
-            ;;
-        \?) # getopts issues an error message
-            echo $USAGE >&2
-            exit 1
-            ;;
-       :) echo " Error:options -e and -o need an argument"
-           exit 2
-           ;;
-    esac
-done
-
-# move past the parsed commands in $@
-shift `expr $OPTIND - 1`
-
-# check if an input file was given and if it exists in ./ or winboard/languages
-# also check if it's a .lng file
-if [ $# -ne 1 ]; then
-    echo "  Error: Need to specify an input file"
-    exit 3
-else
-    if [ ${1: -4} == ".lng" ]; then
-       INPUT=$1
-    else
-       echo " Error: Input file needs to be a .lng file"
-       exit 4
-    fi
-fi
-
-if [ -e ../winboard/language/$INPUT ]; then
-    INPUT=../winboard/language/$INPUT
-fi
-
-if [ -e $INPUT ]; then
-   # do the conversion
-
-   cp $INPUT $TMPFILE
-   recode $ENCODING $TMPFILE
-   ed $TMPFILE < metascript
-   rm $TMPFILE
-   cp xboard.pot $OUTPUT
-   ed $OUTPUT < lng2po-helper-script
-   rm lng2po-helper-script
-   echo "created $OUTPUT"
-else
-    echo " Error: Couldn't find input file ($INPUT) in current directory or winboard/languages"
-    exit 5
-fi
-
diff --git a/po/metascript b/po/metascript
deleted file mode 100644 (file)
index e44f604..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-1,$g/Translation by /s/.$//
-1,$g/Translation by /s/^/ === /
-1,$v/ === /d
-1,$g/"[^"]*$/s//"/
-1,$g/Translation by /s/^.*Translation by \([^(]*\)/1,$g\/FULL NAME <EMAIL@ADDRESS>\/s\/\/\1\//
-1,$g/&/s///g
-1,$g/\\t/s//  */
-1,$g/\\t/s//   /
-1,$g/\\/s//\\\\/g
-1,$g/\//s//\\\//g
-1,$g/Ctrl-/s//Ctrl+/g
-1,$g/\.\.\./s// *\\.*/
-1,$g/"      "/s/^.*=== "\(.*\)"$/1,$g\/# FIRST AUTHOR\/s\/FIRST AUTHOR.*$\/\1, 2010\//
-1,$g/    *\(Ctrl+[^"]*\)" === "/s/^"\(.*\)" === "\(.*\)"$/"\1" === "\2"\
-"\1" ====== "\2"/
-1,$g/======/s/   [^"]*//g
-1,$g/======/s//===/
-1,$g/    *\(Ctrl+[^"]*\)" === "/s// *\1" === "/
-1,$g/ [^ ]* Clipboard/s///
-1,$g/  \*Alt+Shift+L/s///
-1,$g/  \*Alt+Shift+S/s///
-/"Cancel"/t.
-s//"cancel"/
-/"OK"/t.
-s//"ok"/
-/with Arrow/t.
-s//With Arrow/
-1,$g/One-Click Move/s//One-Click Moving/
-/Show Coordinates/t.
-s//Show Coords/
-/Test Legality/t.
-s/Test[^"]*"/Test Legality"/
-1,$g/WinBoard/s//XBoard/g
-1,$g/Empty Square/s//Empty square/
-1,$g/Clear Board */s//Clear board/
-1,$g/Filter/s//&:/
-1,$g/"Down"/s//"down"/
-1,$g/"Up"/s//"up"/
-1,$g/Factory/s//factory/
-1,$g/No game list/s//There is no game list/
-1,$g/when Playing against/s//from/
-1,$g/Exit Messages/s//Exit Message/
-1,$g/Auto Raise/s//Auto-Raise/
-1,$g/Auto Obs/s//Auto-Obs/
-1,$g/Auto Com/s//Auto-Com/
-1,$g/Auto Disp/s//Auto-Disp/
-1,$g/Auto Raise/s//Auto-Raise/
-1,$g/auto-Refresh/s//Auto-Refresh Seek Graph/
-1,$g/Random/s//random/
-1,$g/Start Position Number/s//Start-position number/
-1,$g/"seconds per move"/s//"sec\\\/move"/
-1,$g/TimeControl Menu/s//Time Control/
-1,$g/Time-Odds Factors:/s//Engine #1 and #2 Time-Odds Factors/
-1,$g/Default Match Games:/s//Default Number of Games in Match:/
-/"Highlight Dragging"/t.
-s//"Highlight Dragging (Show Move Targets)"/
-/Popup Exit Message/t.
-s//&s/
-1,$g/for Analysis Mode/s/for/in/
-1,$g/Max nr of CPUs:/s//Maximum Number of CPUs per Engine:/
-1,$g/Hash Size (MB)/s//Hash-Table Size (MB)/
-1,$g/EGTB Path:/s//Nalimov EGTB Path:/
-1,$g/EGTB Size (MB):/s//EGTB Cache Size (MB):/
-1,$g/Book Depth:/s//Book Depth (moves):/
-1,$g/Book Variation:/s//Book Variety (0) vs. Strength (100):/
-1,$g/First has Own Book/s//Engine #1 Has Own Book/
-1,$g/Second has Own Book/s//Engine #2 Has Own Book/
-1,$g/Detect Mates/s//Detect all Mates/
-1,$g/Verify Engine Claims/s//Verify Engine Result Claims/
-1,$g/Draw if Insufficient Material/s//Draw if Insufficient Mating Material/
-1,$g/Adjudicate Trivial Draws/s//Adjudicate Trivial Draws (3-Move Delay)/
-1,$g/Adjudicate draw after:/s//Draw after N Moves Total:/
-1,$g/Win\\\/loss adjudication threshold:/s//Win \\\/ Loss Threshold:/
-1,$g/Engine #1 Score is Absolute/s//Negate Score of Engine #1/
-1,$g/Engine #2 Score is Absolute/s//Negate Score of Engine #2/
-1,$g/Save out of book info in PGN/s//Save Out-of-Book Info in PGN/
-1,$g/Default beep/s//Default Beep/
-1,$g/No sound/s//No Sound/
-1,$g/Light Pieces/s//White Piece Color:/
-1,$g/Black Pieces/s//Black Piece Color:/
-1,$g/Light Squares/s//Light Square Color:/
-1,$g/Dark Squares/s//Dark Square Color:/
-1,$g/Square Highlights/s//Highlight Color:/
-1,$g/Premove Highlights/s//Premove Highlight Color:/
-1,$g/Monochrome/s//Mono Mode/
-1,$g/"Sounds"/s//"Sound Options"/
-1,$g/"Variants"/s//"New Variant"/
-1,$g/"Quit"/s//"Quit                 Ctr+Q"/
-1,$g/"Evaluation Graph"/s//"Evaluation graph"/
-1,$g/"Auto Kibitz"/s//"Auto-Kibitz"/
-1,$g/"Bckgnd Observe"/s//"Background Observe while Playing"/
-1,$g/"Dual Board"/s//"Dual Board for Background-Observed Game"/
-1,$g/"White first move"/s//"First White Move:"/
-1,$g/"Black first move"/s//"First Black Move:"/
-/^"White"/t.
-s/White/& /
-s/"$/ "/
-/^"Black"/t.
-s/Black/& /
-s/"$/ "/
-1,$g/ === /s/$/\//
-1,$g/ === /s/^/1,$g\//
-1,$g/ === /s//\/s\/=== ""$\/=== /
-1i
-1,$g/^msgstr/-,.j
-1,$g/^msgid/s/msgstr ""$/ === ""/
-.
-$a
-1,$g/msgstr ""/s//\
-&/
-1,$g/ === /s//\
-msgstr /
-1,3c
-# XBoard -- a graphical chessboard for X
-# Copyright (C) 1991 by Digital Equipment Corporation, Maynard, Massachusetts.
-# Enhancements Copyright (C) 1992-98 Free Software Foundation, Inc.
-# This file is distributed under the same license as the XBoard package.
-@@@@@@
-w
-q
-.
-1,$g/@@@@@@/s//./
-w lng2po-helper-script
-q
-
diff --git a/po/nl.po b/po/nl.po
deleted file mode 100644 (file)
index 34e884d..0000000
--- a/po/nl.po
+++ /dev/null
@@ -1,3163 +0,0 @@
-# Dutch translations for GNU XBoard.
-# Copyright (C) 2016 Free Software Foundation, Inc.
-# This file is distributed under the same license as the xboard package.
-#
-# "Hip hip hooray for Jan Böhmermann!"
-#
-# Benno Schulenberg <benno@vertaalt.nl>, 2013, 2014, 2015, 2016.
-msgid ""
-msgstr ""
-"Project-Id-Version: GNU xboard 4.9.0-pre2\n"
-"Report-Msgid-Bugs-To: bug-xboard@gnu.org\n"
-"POT-Creation-Date: 2016-04-03 13:44-0700\n"
-"PO-Revision-Date: 2016-04-13 19:42+0200\n"
-"Last-Translator: Benno Schulenberg <benno@vertaalt.nl>\n"
-"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
-"Language: nl\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Lokalize 1.0\n"
-
-#: args.h:851
-#, c-format
-msgid "%s in settings file\n"
-msgstr "%s in instellingenbestand\n"
-
-#: args.h:885
-#, c-format
-msgid "Bad integer value %s"
-msgstr "Ongeldig geheel getal: %s"
-
-#: args.h:991 args.h:1252
-#, c-format
-msgid "Unrecognized argument %s"
-msgstr "Niet-herkend argument: %s"
-
-#: args.h:1022
-#, c-format
-msgid "No value provided for argument %s"
-msgstr "Geen waarde gegeven voor argument %s"
-
-#: args.h:1082
-#, c-format
-msgid "Incomplete \\ escape in value for %s"
-msgstr "Onvolledige \\-stuurcode in waarde voor %s"
-
-#: args.h:1193
-#, c-format
-msgid "Failed to open indirection file %s"
-msgstr "Kan indirectiebestand %s niet openen"
-
-#: args.h:1210
-#, c-format
-msgid "Unrecognized boolean argument value %s"
-msgstr "Niet-herkende booleaanse waarde: %s"
-
-#. TRANSLATORS: "first" is the first of possible two chess engines. It is inserted into strings
-#. such as "%s engine" / "%s chess program" / "%s machine" - all meaning the same thing
-#: backend.c:811
-msgid "first"
-msgstr "eerste"
-
-#. TRANSLATORS: "second" is the second of possible two chess engines. It is inserted into strings
-#. such as "%s engine" / "%s chess program" / "%s machine" - all meaning the same thing
-#: backend.c:814
-msgid "second"
-msgstr "tweede"
-
-#: backend.c:897
-#, c-format
-msgid "protocol version %d not supported"
-msgstr "protocolversie %d wordt niet ondersteund"
-
-#: backend.c:1004
-msgid "You did not specify the engine executable"
-msgstr "U hebt geen automaatbestand opgegeven."
-
-#: backend.c:1062
-#, c-format
-msgid "bad timeControl option %s"
-msgstr "ongeldige timeControl-optie: %s"
-
-#: backend.c:1077
-#, c-format
-msgid "bad searchTime option %s"
-msgstr "ongeldige searchTime-optie: %s"
-
-#: backend.c:1183
-#, c-format
-msgid "Variant %s supported only in ICS mode"
-msgstr "Variant %s wordt alleen ondersteund in ICS-modus"
-
-#: backend.c:1201
-#, c-format
-msgid "Unknown variant name %s"
-msgstr "Onbekende variantnaam: %s"
-
-#: backend.c:1456
-msgid "Starting chess program"
-msgstr "Starten van schaakprogramma"
-
-#: backend.c:1479
-msgid "Bad game file"
-msgstr "Incorrect partijbestand"
-
-#: backend.c:1486
-msgid "Bad position file"
-msgstr "Incorrect positiebestand"
-
-#: backend.c:1500
-msgid "Pick new game"
-msgstr "Kies een nieuwe partij"
-
-#: backend.c:1569
-msgid ""
-"You restarted an already completed tourney.\n"
-"One more cycle will now be added to it.\n"
-"Games commence in 10 sec."
-msgstr ""
-"U hebt een reeds voltooid toernooi herstart.\n"
-"Er wordt een extra cyclus aan toegevoegd.\n"
-"De partijen beginnen in tien seconden."
-
-#: backend.c:1576
-#, c-format
-msgid "All games in tourney '%s' are already played or playing"
-msgstr "Alle partijen in toernooi '%s' zijn al gespeeld of spelen nog"
-
-#: backend.c:1583
-msgid "Can't have a match with no chess programs"
-msgstr "Er is geen toernooi mogelijk zonder automaten."
-
-#: backend.c:1637
-#, c-format
-msgid "Could not open comm port %s"
-msgstr "Kan communicatiepoort %s niet openen"
-
-#: backend.c:1640
-#, c-format
-msgid "Could not connect to host %s, port %s"
-msgstr "Kan geen verbinding maken met host %s, poort %s"
-
-#: backend.c:1696
-#, c-format
-msgid "Unknown initialMode %s"
-msgstr "Onbekende initialMode %s"
-
-#: backend.c:1722
-msgid "AnalyzeFile mode requires a game file"
-msgstr "AnalyzeFile-modus vereist een partijbestand"
-
-#: backend.c:1755
-msgid "Analysis mode requires a chess engine"
-msgstr "Analysemodus vereist een schaakprogramma"
-
-#: backend.c:1759
-msgid "Analysis mode does not work with ICS mode"
-msgstr "Analysemodus werkt niet met ICS-modus"
-
-#: backend.c:1770
-msgid "MachineWhite mode requires a chess engine"
-msgstr "MachineWhite-modus vereist een schaakprogramma"
-
-#: backend.c:1775
-msgid "MachineWhite mode does not work with ICS mode"
-msgstr "MachineWhite-modus werkt niet met ICS-modus"
-
-#: backend.c:1782
-msgid "MachineBlack mode requires a chess engine"
-msgstr "MachineBlack-modus vereist een schaakprogramma"
-
-#: backend.c:1787
-msgid "MachineBlack mode does not work with ICS mode"
-msgstr "MachineBlack-modus werkt niet met ICS-modus"
-
-#: backend.c:1794
-msgid "TwoMachines mode requires a chess engine"
-msgstr "TwoMachines-modus vereist een schaakprogramma"
-
-#: backend.c:1799
-msgid "TwoMachines mode does not work with ICS mode"
-msgstr "TwoMachines-modus werkt niet met ICS-modus"
-
-#: backend.c:1810
-msgid "Training mode requires a game file"
-msgstr "Trainingsmodus vereist een partijbestand"
-
-#: backend.c:1973 backend.c:2028 backend.c:2051 backend.c:2453
-msgid "Error writing to ICS"
-msgstr "Fout bij schrijven naar ICS"
-
-#: backend.c:1988
-msgid "Error reading from keyboard"
-msgstr "Fout bij lezen van toetsenbord"
-
-#: backend.c:1991
-msgid "Got end of file from keyboard"
-msgstr "Einde-van-bestand ontvangen van toetsenbord"
-
-#: backend.c:2299
-#, c-format
-msgid "Unknown wild type %d"
-msgstr "Onbekend wild type %d"
-
-#: backend.c:2370 usystem.c:317
-msgid "Error writing to display"
-msgstr "Fout bij schrijven naar beeldscherm"
-
-#. TRANSLATORS: to 'kibitz' is to send a message to all players and the game observers
-#: backend.c:3138
-#, c-format
-msgid "your opponent kibitzes: %s"
-msgstr "Uw tegenstander kibitzt: %s"
-
-#: backend.c:3677
-msgid "Error gathering move list: two headers"
-msgstr "Fout bij lezen van zettenlijst: twee koppen"
-
-#: backend.c:3724
-msgid "Error gathering move list: nested"
-msgstr "Fout bij lezen van zettenlijst: genest"
-
-#: backend.c:3828 backend.c:4254 backend.c:4458 backend.c:5017 backend.c:5021
-#: backend.c:7292 backend.c:13054 backend.c:14805 backend.c:14882
-#: backend.c:14928 backend.c:14934 backend.c:14939 backend.c:14944
-msgid "vs."
-msgstr "tegen"
-
-#: backend.c:3956
-msgid "Illegal move (rejected by ICS)"
-msgstr "Ongeldige zet (geweigerd door ICS)"
-
-#: backend.c:4302
-msgid "Connection closed by ICS"
-msgstr "Verbinding is gesloten door ICS"
-
-#: backend.c:4304
-msgid "Error reading from ICS"
-msgstr "Fout bij lezen van ICS"
-
-#: backend.c:4381
-#, c-format
-msgid ""
-"Failed to parse board string:\n"
-"\"%s\""
-msgstr ""
-"Ontleden van bordtekenreeks is mislukt:\n"
-"'%s'"
-
-#: backend.c:4390 backend.c:10628
-msgid "Game too long; increase MAX_MOVES and recompile"
-msgstr "*** Partij is te lang; verhoog MAX_MOVES en hercompileer."
-
-#: backend.c:4509
-msgid "Error gathering move list: extra board"
-msgstr "Fout bij lezen van zettenlijst: extra bord"
-
-#: backend.c:4941 backend.c:4963
-#, c-format
-msgid "Couldn't parse move \"%s\" from ICS"
-msgstr "Kan zet '%s' van ICS niet ontleden"
-
-#: backend.c:5228
-#, c-format
-msgid "say Internal error; bad moveType %d (%d,%d-%d,%d)"
-msgstr "**interne programmafout**; ongeldig moveType %d (%d,%d-%d,%d)"
-
-#: backend.c:5299
-msgid "You cannot do this while you are playing or observing"
-msgstr "U kunt dit niet doen tijdens het spelen of observeren."
-
-#: backend.c:6359
-msgid "Recompile to support this BOARD_RANKS or BOARD_FILES!"
-msgstr "*** Hercompileer om BOARD_RANKS of BOARD_FILES te ondersteunen."
-
-#: backend.c:6851
-msgid "You are playing Black"
-msgstr "U speelt met zwart"
-
-#: backend.c:6860 backend.c:6888
-msgid "You are playing White"
-msgstr "U speelt met wit"
-
-#: backend.c:6870 backend.c:6896 backend.c:7018 backend.c:7043 backend.c:7059
-#: backend.c:15645
-msgid "It is White's turn"
-msgstr "Wit is aan zet"
-
-#: backend.c:6874 backend.c:6900 backend.c:7026 backend.c:7049 backend.c:7081
-#: backend.c:15637
-msgid "It is Black's turn"
-msgstr "Zwart is aan zet"
-
-#: backend.c:6913
-msgid "Displayed position is not current"
-msgstr "Getoonde positie is niet de huidige"
-
-#: backend.c:7116
-msgid "rights granted"
-msgstr "rechten verleend"
-
-#: backend.c:7116
-msgid "rights revoked"
-msgstr "rechten ingetrokken"
-
-#: backend.c:7169
-msgid "Illegal move"
-msgstr "Ongeldige zet"
-
-#: backend.c:7249
-msgid "End of game"
-msgstr "Einde van partij"
-
-#: backend.c:7252
-msgid "Incorrect move"
-msgstr "Onjuiste zet"
-
-#: backend.c:7655 backend.c:7811
-msgid "Pull pawn backwards to under-promote"
-msgstr "Beweeg pion terug voor onderpromotie."
-
-#: backend.c:7772
-msgid "only marked squares are legal"
-msgstr "alleen gemarkeerde velden zijn geldig"
-
-#: backend.c:8093
-msgid "Swiss tourney finished"
-msgstr "Zwitsers toernooi is beëindigd."
-
-#: backend.c:8609
-msgid "could not load EGBB library"
-msgstr "kan EGBB-bibliotheek niet laden"
-
-#: backend.c:8612
-msgid "wrong EGBB version"
-msgstr "onjuiste EGBB-versie"
-
-#: backend.c:8725
-msgid "Invalid pairing from pairing engine"
-msgstr "Ongeldig koppel van koppelautomaat."
-
-#: backend.c:8892
-#, c-format
-msgid "Illegal move \"%s\" from %s machine"
-msgstr "Ongeldige zet '%s' van %s automaat."
-
-#: backend.c:9179
-msgid "Bad FEN received from engine"
-msgstr "Ongeldige FEN ontvangen van automaat"
-
-#: backend.c:9280
-msgid "Engine did not send setup for non-standard variant"
-msgstr "Automaat heeft geen opstelling gestuurd voor variant"
-
-#: backend.c:9358 backend.c:14667 backend.c:14735
-#, c-format
-msgid "%s does not support analysis"
-msgstr "%s ondersteunt analyse niet."
-
-#: backend.c:9424
-#, c-format
-msgid "Illegal move \"%s\" (rejected by %s chess program)"
-msgstr "Ongeldige zet '%s' (geweigerd door %s schaakprogramma)"
-
-#: backend.c:9455
-#, c-format
-msgid "Failed to start %s chess program %s on %s: %s\n"
-msgstr "Starten van %s schaakprogramma (%s) op %s is mislukt: %s\n"
-
-#: backend.c:9476
-#, c-format
-msgid "Hint: %s"
-msgstr "Hint: %s"
-
-#: backend.c:9481
-#, c-format
-msgid ""
-"Illegal hint move \"%s\"\n"
-"from %s chess program"
-msgstr ""
-"Ongeldige hintzet '%s'\n"
-"van %s schaakprogramma."
-
-#: backend.c:9656
-msgid "Machine accepts your draw offer"
-msgstr "Automaat accepteert uw remise-aanbod"
-
-#: backend.c:9659
-msgid ""
-"Machine offers a draw.\n"
-"Select Action / Draw to accept."
-msgstr ""
-"Automaat biedt remise aan.\n"
-"Kies Acties > Remise om te accepteren."
-
-#. TRANSLATORS: PV = principal variation, the variation the chess engine thinks is the best for everyone
-#: backend.c:9777
-msgid "failed writing PV"
-msgstr "schrijven van hoofdvariant is mislukt"
-
-#: backend.c:10083
-#, c-format
-msgid "Ambiguous move in ICS output: \"%s\""
-msgstr "Niet-eenduidige zet in ICS-uitvoer: '%s'"
-
-#: backend.c:10093
-#, c-format
-msgid "Illegal move in ICS output: \"%s\""
-msgstr "Ongeldige zet in ICS-uitvoer: '%s'"
-
-#: backend.c:10104
-msgid "Gap in move list"
-msgstr "Gat in zettenlijst"
-
-#: backend.c:10782
-#, c-format
-msgid "Variant %s not supported by %s"
-msgstr "Variant %s wordt niet ondersteund door %s"
-
-#: backend.c:10789
-#, c-format
-msgid ", but %s is"
-msgstr ", maar %s is"
-
-#: backend.c:10945
-#, c-format
-msgid "Startup failure on '%s'"
-msgstr "Opstartfout bij '%s'"
-
-#: backend.c:10976
-msgid "Waiting for first chess program"
-msgstr "Wachten op eerste schaakprogramma"
-
-#: backend.c:10981 backend.c:14953
-msgid "Waiting for second chess program"
-msgstr "Wachten op tweede schaakprogramma"
-
-#: backend.c:11030
-msgid "Could not write on tourney file"
-msgstr "Kan niet naar toernooibestand schrijven."
-
-#: backend.c:11104
-msgid ""
-"You cannot replace an engine while it is engaged!\n"
-"Terminate its game first."
-msgstr ""
-"U kunt een automaat niet vervangen terwijl deze\n"
-"gebruikt wordt.  Beëindig eerst diens partij."
-
-#: backend.c:11118
-msgid "No engine with the name you gave is installed"
-msgstr "Er is geen automaat met de gegeven naam geïnstalleerd"
-
-# XXX where is Tournament Options dialog?
-#: backend.c:11120
-msgid ""
-"First change an engine by editing the participants list\n"
-"of the Tournament Options dialog"
-msgstr ""
-"Wijzig eerst een automaat door de deelnemerslijst\n"
-"in de dialoog «Toernooi-instellingen» te bewerken."
-
-#: backend.c:11121
-msgid "You can only change one engine at the time"
-msgstr "U kunt slechts één automaat tegelijk wijzigen."
-
-#: backend.c:11136 backend.c:11285
-#, c-format
-msgid "No engine %s is installed"
-msgstr "Automaat '%s' is niet geïnstalleerd"
-
-#: backend.c:11156
-msgid ""
-"You must supply a tournament file,\n"
-"for storing the tourney progress"
-msgstr ""
-"U dient een toernooibestand op te geven,\n"
-"om de toernooivoortgang in op te slaan."
-
-#: backend.c:11166
-msgid "Not enough participants"
-msgstr "Te weinig deelnemers"
-
-#: backend.c:11369
-msgid "Bad tournament file"
-msgstr "Incorrect toernooibestand"
-
-#: backend.c:11381
-msgid "Waiting for other game(s)"
-msgstr "Wachten op andere partij(en)"
-
-#: backend.c:11394
-msgid "No pairing engine specified"
-msgstr "Geen koppelautomaat gegeven"
-
-#: backend.c:11879
-#, c-format
-msgid "Average solving time %4.2f sec (total time %4.2f sec) "
-msgstr "Gemiddelde oplostijd %4.2f sec (totale tijd %4.2f sec) "
-
-#: backend.c:11881
-#, c-format
-msgid "%d avoid-moves played "
-msgstr "%d ontwijkzetten gespeeld "
-
-#: backend.c:11883
-#, c-format
-msgid "Solved %d out of %d (%3.1f%%) "
-msgstr "Er werden %d van de %d opgelost (%3.1f%%) "
-
-#: backend.c:11886
-#, c-format
-msgid "Match %s vs. %s: final score %d-%d-%d"
-msgstr "Toernooi van %s tegen %s: eindscore %d-%d-%d"
-
-#: backend.c:12363 backend.c:12399
-#, c-format
-msgid "Illegal move: %d.%s%s"
-msgstr "Ongeldige zet: %d.%s%s"
-
-#: backend.c:12388
-#, c-format
-msgid "Ambiguous move: %d.%s%s"
-msgstr "Niet-eenduidige zet: %d.%s%s"
-
-#: backend.c:12442 backend.c:13495 backend.c:13695 backend.c:14065
-#, c-format
-msgid "Can't open \"%s\""
-msgstr "Kan '%s' niet openen"
-
-#: backend.c:12454 menus.c:118
-msgid "Cannot build game list"
-msgstr "Kan partijenlijst niet samenstellen"
-
-#: backend.c:12539
-msgid "No more games in this message"
-msgstr "Geen verdere partijen in dit bericht"
-
-#: backend.c:12579
-msgid "No game has been loaded yet"
-msgstr "Er is nog geen partij geladen"
-
-#: backend.c:12583 backend.c:13476 ngamelist.c:129
-msgid "Can't back up any further"
-msgstr "Kan niet nog verder teruggaan"
-
-#: backend.c:13030
-msgid "Game number out of range"
-msgstr "Partijnummer valt buiten bereik"
-
-#: backend.c:13041
-msgid "Can't seek on game file"
-msgstr "Kan niet springen in partijbestand"
-
-#: backend.c:13099
-msgid "Game not found in file"
-msgstr "Partij niet gevonden in bestand"
-
-#: backend.c:13230 backend.c:13573
-msgid "Bad FEN position in file"
-msgstr "Ongeldige FEN-positie in bestand"
-
-#: backend.c:13388
-msgid "No moves in game"
-msgstr "Partij bevat geen zetten"
-
-#: backend.c:13472
-msgid "No position has been loaded yet"
-msgstr "Er is nog geen positie geladen"
-
-#: backend.c:13533 backend.c:13544
-msgid "Can't seek on position file"
-msgstr "Kan niet springen in positiebestand"
-
-#: backend.c:13551 backend.c:13563
-msgid "Position not found in file"
-msgstr "Positie niet gevonden in bestand"
-
-#: backend.c:13610
-msgid "Black to play"
-msgstr "Zwart is aan zet"
-
-#: backend.c:13613
-msgid "White to play"
-msgstr "Wit is aan zet"
-
-#: backend.c:13700 backend.c:14070
-msgid "Waiting for access to save file"
-msgstr "Wachten op toegang om bestand op te slaan"
-
-#: backend.c:13702
-msgid "Saving game"
-msgstr "Opslaan van partij"
-
-#: backend.c:13703
-msgid "Bad Seek"
-msgstr "Ongeldige bestandssprong"
-
-#: backend.c:14072
-msgid "Saving position"
-msgstr "Opslaan van positie"
-
-# FIXME Reload Same Game is not in POT
-#: backend.c:14198
-msgid ""
-"You have edited the game history.\n"
-"Use Reload Same Game and make your move again."
-msgstr ""
-"U hebt de partijgeschiedenis bewerkt.\n"
-"Gebruik «Zelfde partij herladen» en doe uw zet opnieuw."
-
-#: backend.c:14203
-msgid ""
-"You have entered too many moves.\n"
-"Back up to the correct position and try again."
-msgstr ""
-"U hebt te veel zetten ingevoerd.\n"
-"Ga terug naar de correcte positie en probeer het opnieuw."
-
-#: backend.c:14208
-msgid ""
-"Displayed position is not current.\n"
-"Step forward to the correct position and try again."
-msgstr ""
-"Getoonde positie is niet de huidige.\n"
-"Ga vooruit naar de correcte positie en probeer het opnieuw."
-
-#: backend.c:14255
-msgid "You have not made a move yet"
-msgstr "U hebt nog geen zet gedaan"
-
-#: backend.c:14276
-msgid ""
-"The cmail message is not loaded.\n"
-"Use Reload CMail Message and make your move again."
-msgstr ""
-"Het CMail-bericht is niet geladen.\n"
-"Gebruik «CMail-bericht herladen» en doe uw zet opnieuw."
-
-#: backend.c:14281
-msgid "No unfinished games"
-msgstr "Geen onafgemaakte partijen"
-
-#: backend.c:14287
-#, c-format
-msgid ""
-"You have already mailed a move.\n"
-"Wait until a move arrives from your opponent.\n"
-"To resend the same move, type\n"
-"\"cmail -remail -game %s\"\n"
-"on the command line."
-msgstr ""
-"U hebt al een zet gemaild.\n"
-"Wacht tot er een zet arriveert van uw tegenstander.\n"
-"Om dezelfde zet opnieuw te verzenden, typt u:\n"
-"\"cmail -remail -game %s\"\n"
-"op de opdrachtregel."
-
-#: backend.c:14302
-msgid "Failed to invoke cmail"
-msgstr "Aanroepen van 'cmail' is mislukt"
-
-#: backend.c:14364
-#, c-format
-msgid "Waiting for reply from opponent\n"
-msgstr "Wachten op antwoord van tegenstander\n"
-
-#: backend.c:14386
-#, c-format
-msgid "Still need to make move for game\n"
-msgstr "U dient nog een zet te doen voor deze partij.\n"
-
-#: backend.c:14390
-#, c-format
-msgid "Still need to make moves for both games\n"
-msgstr "U dient nog zetten te doen voor beide partijen.\n"
-
-#: backend.c:14394
-#, c-format
-msgid "Still need to make moves for all %d games\n"
-msgstr "U dient nog zetten te doen voor alle %d partijen.\n"
-
-#: backend.c:14401
-#, c-format
-msgid "Still need to make a move for game %s\n"
-msgstr "U dient nog een zet te doen voor partij %s.\n"
-
-#: backend.c:14407
-#, c-format
-msgid "No unfinished games\n"
-msgstr "Geen onafgemaakte partijen.\n"
-
-#: backend.c:14409
-#, c-format
-msgid "Ready to send mail\n"
-msgstr "Klaar om mail te verzenden.\n"
-
-#: backend.c:14414
-#, c-format
-msgid "Still need to make moves for games %s\n"
-msgstr "U dient nog zetten te doen voor partijen %s.\n"
-
-#: backend.c:14617
-msgid "Edit comment"
-msgstr "Opmerking bewerken"
-
-#: backend.c:14619
-#, c-format
-msgid "Edit comment on %d.%s%s"
-msgstr "Opmerking op %d.%s%s bewerken"
-
-#: backend.c:14674
-#, c-format
-msgid "You are not observing a game"
-msgstr "U bent geen partij aan het observeren."
-
-#: backend.c:14785
-msgid "It is not White's turn"
-msgstr "Wit is niet aan zet"
-
-#: backend.c:14866
-msgid "It is not Black's turn"
-msgstr "Zwart is niet aan zet"
-
-#: backend.c:14974
-#, c-format
-msgid "Starting %s chess program"
-msgstr "Starten van %s schaakprogramma"
-
-#: backend.c:15002 backend.c:16189
-msgid ""
-"Wait until your turn,\n"
-"or select 'Move Now'."
-msgstr ""
-"Wacht op uw beurt,\n"
-"of kies «Nu zetten»."
-
-#: backend.c:15145
-msgid "Training mode off"
-msgstr "Trainingsmodus is uitgeschakeld"
-
-#: backend.c:15153
-msgid "Training mode on"
-msgstr "Trainingsmodus is ingeschakeld"
-
-#: backend.c:15156
-msgid "Already at end of game"
-msgstr "Reeds aan einde van partij."
-
-#: backend.c:15246
-msgid "Warning: You are still playing a game"
-msgstr "Waarschuwing: u bent nog een partij aan het spelen."
-
-#: backend.c:15249
-msgid "Warning: You are still observing a game"
-msgstr "Waarschuwing: u bent nog een partij aan het observeren."
-
-#: backend.c:15252
-msgid "Warning: You are still examining a game"
-msgstr "Waarschuwing: u bent nog een partij aan het bestuderen."
-
-#: backend.c:15322
-msgid "Click clock to clear board"
-msgstr "Klik op klok om bord leeg te maken."
-
-# FIXME: analysis?
-#: backend.c:15332
-msgid "Close ICS engine analyze..."
-msgstr "Analyse van ICS-automaat sluiten..."
-
-#: backend.c:15662
-msgid "That square is occupied"
-msgstr "Dat veld is bezet."
-
-#: backend.c:15686 backend.c:15712
-msgid "There is no pending offer on this move"
-msgstr "Er is geen aanbod op deze zet."
-
-#: backend.c:15748 backend.c:15759
-msgid "Your opponent is not out of time"
-msgstr "Uw tegenstander heeft nog tijd."
-
-#: backend.c:15827
-msgid "You must make your move before offering a draw"
-msgstr "U dient uw zet te doen alvorens remise aan te bieden."
-
-#: backend.c:16171
-msgid "You are not examining a game"
-msgstr "U bent geen partij aan het bestuderen."
-
-#: backend.c:16175
-msgid "You can't revert while pausing"
-msgstr "U kunt niet terugdraaien tijdens pauze."
-
-#: backend.c:16229 backend.c:16236
-msgid "It is your turn"
-msgstr "U bent aan zet"
-
-#: backend.c:16287 backend.c:16294 backend.c:16380 backend.c:16387
-msgid "Wait until your turn."
-msgstr "Wacht op uw beurt."
-
-#: backend.c:16299
-msgid "No hint available"
-msgstr "Geen hint beschikbaar"
-
-#: backend.c:16314 backend.c:16345 ngamelist.c:365
-msgid "Game list not loaded or empty"
-msgstr "Partijenlijst is leeg of niet geladen"
-
-#: backend.c:16352
-msgid "Book file exists! Try again for overwrite."
-msgstr "Bestand bestaat al.  Probeer het opnieuw om deze te overschrijven."
-
-#: backend.c:16833
-#, c-format
-msgid "Error writing to %s chess program"
-msgstr "Fout bij schrijven naar %s schaakprogramma"
-
-#: backend.c:16836 backend.c:16867
-#, c-format
-msgid "%s program exits in draw position (%s)"
-msgstr "%s programma is geëindigd in remisepositie (%s)"
-
-#: backend.c:16862
-#, c-format
-msgid "Error: %s chess program (%s) exited unexpectedly"
-msgstr "Fout: %s schaakprogramma (%s) is onverwacht beëindigd"
-
-#: backend.c:16880
-#, c-format
-msgid "Error reading from %s chess program (%s)"
-msgstr "Fout bij lezen van %s schaakprogramma (%s)"
-
-#: backend.c:17312
-#, c-format
-msgid "%s engine has too many options\n"
-msgstr "%s-automaat heeft te veel instellingen\n"
-
-#: backend.c:17468
-msgid "Displayed move is not current"
-msgstr "Getoonde zet is niet de huidige"
-
-#: backend.c:17477
-msgid "Could not parse move"
-msgstr "Kan zet niet ontleden"
-
-#: backend.c:17602 backend.c:17624
-msgid "Both flags fell"
-msgstr "Beide vlaggen zijn gevallen"
-
-#: backend.c:17604
-msgid "White's flag fell"
-msgstr "Wits vlag is gevallen"
-
-#: backend.c:17626
-msgid "Black's flag fell"
-msgstr "Zwarts vlag is gevallen"
-
-#: backend.c:17757
-msgid "Clock adjustment not allowed in auto-flag mode"
-msgstr "Klokbijstelling is niet toegestaan in auto-vlagmodus"
-
-#: backend.c:18719
-msgid "Bad FEN position in clipboard"
-msgstr "Ongeldige FEN-positie op het klembord"
-
-#: book.c:598 book.c:874
-msgid "Polyglot book not valid"
-msgstr "Polyglot-boek is ongeldig"
-
-#: book.c:722
-msgid "Book Fault"
-msgstr "Fout in boek"
-
-#: book.c:877
-msgid "Hash keys are different"
-msgstr "Hash-sleutels zijn verschillend"
-
-#: book.c:1053
-msgid "Could not create book"
-msgstr "Kan geen boek aanmaken"
-
-#: dialogs.c:286
-msgid "Tournament file:          "
-msgstr "Toernooibestand:          "
-
-#: dialogs.c:287
-msgid "For concurrent playing of tourney with multiple XBoards:"
-msgstr "Voor het gelijktijdig spelen van een toernooi met meerdere XBoards:"
-
-#: dialogs.c:288
-msgid "Sync after round"
-msgstr "Synchroniseren na een ronde"
-
-#: dialogs.c:289
-msgid "Sync after cycle"
-msgstr "Synchroniseren na een cyclus"
-
-#: dialogs.c:290
-msgid "Tourney participants:"
-msgstr "Toernooi-deelnemers:"
-
-#: dialogs.c:291
-msgid "Select Engine:"
-msgstr "Kies automaat:"
-
-#: dialogs.c:299
-msgid "Tourney type (0 = round-robin, 1 = gauntlet):"
-msgstr "Toernooitype (0 = op-de-rij-af, 1 = handschoen):"
-
-#: dialogs.c:300
-msgid "Number of tourney cycles (or Swiss rounds):"
-msgstr "Aantal toernooirondes (of Zwitserse rondes):"
-
-#: dialogs.c:301
-msgid "Default Number of Games in Match (or Pairing):"
-msgstr "Standaard aantal partijen in een toernooi (of koppel):"
-
-#: dialogs.c:302
-msgid "Pause between Match Games (msec):"
-msgstr "Pauze tussen toernooipartijen (msec):"
-
-#: dialogs.c:303
-msgid "Save Tourney Games on:"
-msgstr "Toernooipartijen bewaren op:"
-
-#: dialogs.c:304
-msgid "Game File with Opening Lines:"
-msgstr "Partijbestand met openingsregels:"
-
-#: dialogs.c:305
-msgid "Game Number (-1 or -2 = Auto-Increment):"
-msgstr "Partijnummer (-1 of -2 = automatische ophoging):"
-
-#: dialogs.c:306
-msgid "File with Start Positions:"
-msgstr "Bestand met startposities:"
-
-#: dialogs.c:307
-msgid "Position Number (-1 or -2 = Auto-Increment):"
-msgstr "Positienummer (-1 of -2 = automatische ophoging):"
-
-#: dialogs.c:308
-msgid "Rewind Index after this many Games (0 = never):"
-msgstr "Index terugspoelen na dit aantal partijen (0 = nooit):"
-
-#: dialogs.c:309
-msgid "Disable own engine books by default"
-msgstr "Eigen automaatboeken standaard uitschakelen"
-
-#: dialogs.c:310 dialogs.c:1840
-msgid "Time Control"
-msgstr "Tijdsbeperking"
-
-#: dialogs.c:311
-msgid "Common Engine"
-msgstr "Gemeenschappelijke automaat"
-
-#: dialogs.c:312 dialogs.c:446
-msgid "General Options"
-msgstr "Algemene instellingen"
-
-#: dialogs.c:313
-msgid "Continue Later"
-msgstr "Later verdergaan"
-
-#: dialogs.c:314
-msgid "Replace Engine"
-msgstr "Automaat vervangen"
-
-#: dialogs.c:315
-msgid "Upgrade Engine"
-msgstr "Automaat upgraden"
-
-#: dialogs.c:316
-msgid "Clone Tourney"
-msgstr "Toernooi klonen"
-
-#: dialogs.c:356
-msgid "First you must specify an existing tourney file to clone"
-msgstr "U dient eerst een bestaand toernooibestand op te geven."
-
-#: dialogs.c:372 dialogs.c:1549
-msgid "# no engines are installed"
-msgstr "# er zijn geen automaten geïnstalleerd"
-
-#: dialogs.c:380
-msgid "Internal error: PARTICIPANTS set wrong"
-msgstr "**Interne programmafout**: PARTICIPANTS is verkeerd ingesteld"
-
-#: dialogs.c:388
-msgid "Tournament Options"
-msgstr "Toornooi-opties"
-
-#: dialogs.c:407
-msgid "Absolute Analysis Scores"
-msgstr "Absolute analysescores"
-
-#: dialogs.c:408
-msgid "Almost Always Queen (Detour Under-Promote)"
-msgstr "Bijna altijd koningin (onderpromotie-omweg)"
-
-#: dialogs.c:409 menus.c:729
-msgid "Animate Dragging"
-msgstr "Slepen animeren"
-
-#: dialogs.c:410 menus.c:730
-msgid "Animate Moving"
-msgstr "Zetten animeren"
-
-#: dialogs.c:411 menus.c:731
-msgid "Auto Flag"
-msgstr "Vanzelf vlaggen"
-
-#: dialogs.c:412 menus.c:732
-msgid "Auto Flip View"
-msgstr "Bord vanzelf draaien"
-
-#: dialogs.c:413 menus.c:733
-msgid "Blindfold"
-msgstr "Geblinddoekt"
-
-#. TRANSLATORS: the drop menu is used to drop a piece, e.g. during bughouse or editing a position
-#: dialogs.c:415
-msgid "Drop Menu"
-msgstr "Plaatsingsmenu"
-
-#: dialogs.c:416
-msgid "Enable Variation Trees"
-msgstr "Variatiebomen inschakelen"
-
-#: dialogs.c:417
-msgid "Headers in Engine Output Window"
-msgstr "Kopregels in uitvoervenster van automaat"
-
-#: dialogs.c:418
-msgid "Hide Thinking from Human"
-msgstr "Denken verbergen voor mens"
-
-#: dialogs.c:419 menus.c:738
-msgid "Highlight Last Move"
-msgstr "Laatste zet markeren"
-
-#: dialogs.c:420
-msgid "Highlight with Arrow"
-msgstr "Markeren met pijl"
-
-#: dialogs.c:421 menus.c:741
-msgid "One-Click Moving"
-msgstr "Eenkliks zetten"
-
-#: dialogs.c:422
-msgid "Periodic Updates (in Analysis Mode)"
-msgstr "Periodieke updates (in analysemodus)"
-
-#: dialogs.c:424
-msgid "Play Move(s) of Clicked PV (Analysis)"
-msgstr "Zet(ten) spelen van aangeklikte PV (Analyse)"
-
-#: dialogs.c:425 dialogs.c:626 menus.c:743
-msgid "Ponder Next Move"
-msgstr "Volgende zet overdenken"
-
-#: dialogs.c:426
-msgid "Popup Exit Messages"
-msgstr "Popup-afsluitberichten"
-
-#: dialogs.c:427 menus.c:745
-msgid "Popup Move Errors"
-msgstr "Popup-zetfouten"
-
-#: dialogs.c:428
-msgid "Scores in Move List"
-msgstr "Scores in zettenlijst"
-
-#: dialogs.c:429
-msgid "Show Coordinates"
-msgstr "Coördinaten tonen"
-
-#: dialogs.c:430
-msgid "Show Target Squares"
-msgstr "Doelvelden tonen"
-
-#: dialogs.c:431
-msgid "Sticky Windows"
-msgstr "Kleverige vensters"
-
-#: dialogs.c:432 menus.c:748
-msgid "Test Legality"
-msgstr "Geldigheid testen"
-
-#: dialogs.c:433
-msgid "Top-Level Dialogs"
-msgstr "Topniveau-dialogen"
-
-#: dialogs.c:434
-msgid "Flash Moves (0 = no flashing):"
-msgstr "Zetten knipperen (0 = niet knipperen):"
-
-#: dialogs.c:435
-msgid "Flash Rate (high = fast):"
-msgstr "Knippersnelheid (hoog = snel):"
-
-# FIXME: reword
-#: dialogs.c:436
-msgid "Animation Speed (high = slow):"
-msgstr "Animatiesnelheid (hoog = langzaam):"
-
-#: dialogs.c:437
-msgid "Zoom factor in Evaluation Graph:"
-msgstr "Zoomfactor in evaluatiegrafiek:"
-
-#: dialogs.c:457
-msgid "Normal"
-msgstr "normaal"
-
-#: dialogs.c:458
-msgid "Makruk"
-msgstr "Makruk"
-
-#: dialogs.c:459
-msgid "FRC"
-msgstr "FRC"
-
-#: dialogs.c:460
-msgid "Shatranj"
-msgstr "Shatranj"
-
-#: dialogs.c:461
-msgid "Wild castle"
-msgstr "wilde rokade"
-
-#: dialogs.c:462
-msgid "Knightmate"
-msgstr "paardmat"
-
-#: dialogs.c:463
-msgid "No castle"
-msgstr "geen rokade"
-
-#: dialogs.c:464
-msgid "Cylinder *"
-msgstr "cilinder *"
-
-#: dialogs.c:465
-msgid "3-checks"
-msgstr "drie keer schaak"
-
-#: dialogs.c:466
-msgid "berolina *"
-msgstr "berolina *"
-
-#: dialogs.c:467
-msgid "atomic"
-msgstr "atomisch"
-
-#: dialogs.c:468
-msgid "two kings"
-msgstr "twee koningen"
-
-#: dialogs.c:469
-msgid " "
-msgstr " "
-
-#: dialogs.c:470
-msgid "Spartan"
-msgstr "Spartaans"
-
-#: dialogs.c:471
-msgid "Board size ( -1 = default for selected variant):"
-msgstr "Bordafmetingen (-1 = standaard voor de variant):"
-
-#: dialogs.c:472
-msgid "Number of Board Ranks:"
-msgstr "Aantal bordrijen:"
-
-#: dialogs.c:473
-msgid "Number of Board Files:"
-msgstr "Aantal bordlijnen:"
-
-#: dialogs.c:474
-msgid "Holdings Size:"
-msgstr "Stalgrootte:"
-
-#: dialogs.c:476
-msgid ""
-"Variants marked with * can only be played\n"
-"with legality testing off."
-msgstr ""
-"Varianten gemarkeerd met * kunnen alleen\n"
-"gespeeld met geldigheidstest uitgeschakeld."
-
-#: dialogs.c:478
-msgid "ASEAN"
-msgstr "ASEAN"
-
-#: dialogs.c:479
-msgid "Great Shatranj (10x8)"
-msgstr "Grote Shatranj (10x8)"
-
-#: dialogs.c:480
-msgid "Seirawan"
-msgstr "Seirawan"
-
-#: dialogs.c:481
-msgid "Falcon (10x8)"
-msgstr "Falcon (10x8)"
-
-#: dialogs.c:482
-msgid "Superchess"
-msgstr "Superschaak"
-
-#: dialogs.c:483
-msgid "Capablanca (10x8)"
-msgstr "Capablanca (10x8)"
-
-#: dialogs.c:484
-msgid "Crazyhouse"
-msgstr "Crazyhouse"
-
-#: dialogs.c:485
-msgid "Gothic (10x8)"
-msgstr "Gothic (10x8)"
-
-#: dialogs.c:486
-msgid "Bughouse"
-msgstr "Bughouse"
-
-#: dialogs.c:487
-msgid "Janus (10x8)"
-msgstr "Janus (10x8)"
-
-#: dialogs.c:488
-msgid "Suicide"
-msgstr "suïcide"
-
-#: dialogs.c:489
-msgid "CRC (10x8)"
-msgstr "CRC (10x8)"
-
-#: dialogs.c:490
-msgid "give-away"
-msgstr "weggever"
-
-#: dialogs.c:491
-msgid "grand (10x10)"
-msgstr "Grand (10x10)"
-
-#: dialogs.c:492
-msgid "losers"
-msgstr "Losers"
-
-#: dialogs.c:493
-msgid "shogi (9x9)"
-msgstr "Shogi (9x9)"
-
-#: dialogs.c:494
-msgid "fairy"
-msgstr "Fairy"
-
-#: dialogs.c:495
-msgid "xiangqi (9x10)"
-msgstr "Xiangqi (9x10)"
-
-#: dialogs.c:496
-msgid "mighty lion"
-msgstr "Mighty Lion"
-
-#: dialogs.c:497
-msgid "courier (12x8)"
-msgstr "Courier (12x8)"
-
-#: dialogs.c:498
-msgid "elven chess (10x10)"
-msgstr "Elvenschaak (10x10)"
-
-#: dialogs.c:499
-msgid "chu shogi (12x12)"
-msgstr "Chu shogi (12x12)"
-
-#: dialogs.c:543
-#, c-format
-msgid "Warning: second engine (%s) does not support this!"
-msgstr "Waarschuwing: tweede automaat (%s) ondersteunt dit niet."
-
-# FIXME: Bughouse with capital
-# FIXME: what *is* viewer mode?
-#: dialogs.c:572
-#, c-format
-msgid "Only bughouse is not available in viewer mode."
-msgstr "Alleen Bughouse is niet beschikbaar in viewer-modus."
-
-#: dialogs.c:573
-#, c-format
-msgid ""
-"All variants not supported by the first engine\n"
-"(currently %s) are disabled."
-msgstr ""
-"Varianten die de eerste automaat (momenteel\n"
-"%s) niet kent zijn onkiesbaar."
-
-# XXX "NEW" is confusing, plural is better
-#: dialogs.c:595
-msgid "New Variant"
-msgstr "Varianten"
-
-#: dialogs.c:627
-msgid "Maximum Number of CPUs per Engine:"
-msgstr "Maximum aantal processoren per automaat:"
-
-#: dialogs.c:628
-msgid "Polygot Directory:"
-msgstr "Polygot-map:"
-
-#: dialogs.c:629
-msgid "Hash-Table Size (MB):"
-msgstr "Grootte van hash-tabel (MB):"
-
-#: dialogs.c:630
-msgid "EGTB Path:"
-msgstr "EGTB-pad:"
-
-#: dialogs.c:631
-msgid "EGTB Cache Size (MB):"
-msgstr "Grootte van EGTB-cache (MB):"
-
-#: dialogs.c:632
-msgid "Use GUI Book"
-msgstr "GUI-boek gebruiken"
-
-#: dialogs.c:633
-msgid "Opening-Book Filename:"
-msgstr "Bestandsnaam van openingenboek:"
-
-#: dialogs.c:634
-msgid "Book Depth (moves):"
-msgstr "Boekdiepte (zetten):"
-
-#: dialogs.c:635
-msgid "Book Variety (0) vs. Strength (100):"
-msgstr "Gevarieerdheid (0) tot Sterkte (100):"
-
-#: dialogs.c:636
-msgid "Engine #1 Has Own Book"
-msgstr "Automaat #1 heeft eigen boek"
-
-# XXX why the trailing spaces?
-#: dialogs.c:637
-msgid "Engine #2 Has Own Book          "
-msgstr "Automaat #2 heeft eigen boek"
-
-#: dialogs.c:648
-msgid "Common Engine Settings"
-msgstr "Algemene automaatinstellingen"
-
-#: dialogs.c:654
-msgid "Detect all Mates"
-msgstr "Alle matten detecteren"
-
-#: dialogs.c:655
-msgid "Verify Engine Result Claims"
-msgstr "Resultaatclaims van automaat controleren"
-
-#: dialogs.c:656
-msgid "Draw if Insufficient Mating Material"
-msgstr "Remise bij onvoldoende matmateriaal"
-
-#: dialogs.c:657
-msgid "Adjudicate Trivial Draws (3-Move Delay)"
-msgstr "Eenvoudige remises beslissen (3 zetten uitstel)"
-
-#: dialogs.c:658
-msgid "N-Move Rule:"
-msgstr "N-zettenregel:"
-
-#: dialogs.c:659
-msgid "N-fold Repeats:"
-msgstr "N-voudige herhalingen:"
-
-#: dialogs.c:660
-msgid "Draw after N Moves Total:"
-msgstr "Remise na in totaal N zetten:"
-
-#: dialogs.c:661
-msgid "Win / Loss Threshold:"
-msgstr "Winst/verlies-grenswaarde:"
-
-#: dialogs.c:662
-msgid "Negate Score of Engine #1"
-msgstr "Score van automaat 1 negatief maken"
-
-#: dialogs.c:663
-msgid "Negate Score of Engine #2"
-msgstr "Score van automaat 2 negatief maken"
-
-#: dialogs.c:670
-msgid "Adjudicate non-ICS Games"
-msgstr "Non-ICS-partijen beslissen"
-
-#: dialogs.c:683
-msgid "Auto-Kibitz"
-msgstr "Vanzelf kibitzen"
-
-#: dialogs.c:684
-msgid "Auto-Comment"
-msgstr "Vanzelf becommentariëren"
-
-#: dialogs.c:685
-msgid "Auto-Observe"
-msgstr "Vanzelf observeren"
-
-#: dialogs.c:686
-msgid "Auto-Raise Board"
-msgstr "Bord automatisch focussen"
-
-#: dialogs.c:687
-msgid "Auto-Create Logon Script"
-msgstr "Automatisch een logon-script maken"
-
-#: dialogs.c:688
-msgid "Background Observe while Playing"
-msgstr "Op achtergrond observeren tijdens spelen"
-
-#: dialogs.c:689
-msgid "Dual Board for Background-Observed Game"
-msgstr "Dubbel bord voor op achtergrond geobserveerde partij"
-
-#: dialogs.c:690
-msgid "Get Move List"
-msgstr "Zettenlijst ophalen"
-
-#: dialogs.c:691
-msgid "Quiet Play"
-msgstr "Stil spelen"
-
-#: dialogs.c:692
-msgid "Seek Graph"
-msgstr "Zoekgrafiek"
-
-#: dialogs.c:693
-msgid "Auto-Refresh Seek Graph"
-msgstr "Zoekgrafiek vanzelf verversen"
-
-#: dialogs.c:694
-msgid "Auto-InputBox PopUp"
-msgstr "Invoervak vanzelf tonen"
-
-#: dialogs.c:695
-msgid "Quit after game"
-msgstr "Afsluiten na partij"
-
-#: dialogs.c:696
-msgid "Premove"
-msgstr "Voorzet"
-
-#: dialogs.c:697
-msgid "Premove for White"
-msgstr "Voorzet voor wit"
-
-#: dialogs.c:698
-msgid "First White Move:"
-msgstr "Eerste zet van wit:"
-
-#: dialogs.c:699
-msgid "Premove for Black"
-msgstr "Voorzet voor zwart"
-
-#: dialogs.c:700
-msgid "First Black Move:"
-msgstr "Eerste zet van zwart:"
-
-#: dialogs.c:702
-msgid "Alarm"
-msgstr "Wekker"
-
-#: dialogs.c:703
-msgid "Alarm Time (msec):"
-msgstr "Wektijd (msec):"
-
-#: dialogs.c:705
-msgid "Colorize Messages"
-msgstr "Berichten kleuren"
-
-#: dialogs.c:706
-msgid "Shout Text Colors:"
-msgstr "Shout-tekstkleuren:"
-
-#: dialogs.c:707
-msgid "S-Shout Text Colors:"
-msgstr "S-Shout-tekstkleuren:"
-
-#: dialogs.c:708
-msgid "Channel #1 Text Colors:"
-msgstr "Kanaal-1-tekstkleuren:"
-
-#: dialogs.c:709
-msgid "Other Channel Text Colors:"
-msgstr "Anderekanalen-tekstkleuren:"
-
-#: dialogs.c:710
-msgid "Kibitz Text Colors:"
-msgstr "Kibitz-tekstkleuren:"
-
-#: dialogs.c:711
-msgid "Tell Text Colors:"
-msgstr "Tell-tekstkleuren:"
-
-#: dialogs.c:712
-msgid "Challenge Text Colors:"
-msgstr "Uitdagings-tekstkleuren:"
-
-#: dialogs.c:713
-msgid "Request Text Colors:"
-msgstr "Verzoek-tekstkleuren:"
-
-#: dialogs.c:714
-msgid "Seek Text Colors:"
-msgstr "Tekstkleuren voor zoeken:"
-
-#: dialogs.c:715
-msgid "Other Text Colors:"
-msgstr "Kleuren voor andere tekst:"
-
-#: dialogs.c:722
-msgid "ICS Options"
-msgstr "ICS-instellingen"
-
-#: dialogs.c:727
-msgid "Exact position match"
-msgstr "Exacte positie-overeenkomst"
-
-#: dialogs.c:727
-msgid "Shown position is subset"
-msgstr "Getoonde positie is een subset"
-
-#: dialogs.c:727
-msgid "Same material with exactly same Pawn chain"
-msgstr "Zelfde materiaal met exact dezelfde pionketen"
-
-#: dialogs.c:728
-msgid "Same material"
-msgstr "Zelfde materiaal"
-
-#: dialogs.c:728
-msgid "Material range (top board half optional)"
-msgstr "Materiaalbereik (bovenste bordhelft is optioneel)"
-
-#: dialogs.c:728
-msgid "Material difference (optional stuff balanced)"
-msgstr "Materiaalverschil (optioneel spul is in evenwicht)"
-
-#: dialogs.c:743
-msgid "Auto-Display Tags"
-msgstr "Labels vanzelf tonen"
-
-#: dialogs.c:744
-msgid "Auto-Display Comment"
-msgstr "Opmerkingen vanzelf tonen"
-
-#: dialogs.c:745
-msgid ""
-"Auto-Play speed of loaded games\n"
-"(0 = instant, -1 = off):"
-msgstr ""
-"Speelsnelheid van geladen partijen\n"
-"(0 = instantaan, -1 = uit):"
-
-#: dialogs.c:746
-msgid "Seconds per Move:"
-msgstr "Seconden per zet:"
-
-#: dialogs.c:747
-msgid ""
-"\n"
-"options to use in game-viewer mode:"
-msgstr ""
-"\n"
-"Te gebruiken opties in viewer-modus:"
-
-#: dialogs.c:749
-msgid ""
-"\n"
-"Thresholds for position filtering in game list:"
-msgstr ""
-"\n"
-"Drempelwaarden voor positiefiltering in partijenlijst:"
-
-#: dialogs.c:750
-msgid "Elo of strongest player at least:"
-msgstr "Elo van sterkste speler minstens:"
-
-#: dialogs.c:751
-msgid "Elo of weakest player at least:"
-msgstr "Elo van zwakste speler minstens:"
-
-#: dialogs.c:752
-msgid "No games before year:"
-msgstr "Geen partijen vóór het jaar:"
-
-#: dialogs.c:753
-msgid "Minimum nr consecutive positions:"
-msgstr "Minimum aantal opeenvolgende posities:"
-
-#: dialogs.c:755
-msgid "Search mode:"
-msgstr "Zoekmodus:"
-
-#: dialogs.c:756
-msgid "Also match reversed colors"
-msgstr "Ook matchen met verwisselde kleuren"
-
-#: dialogs.c:757
-msgid "Also match left-right flipped position"
-msgstr "Ook matchen met links-rechts gespiegelde positie"
-
-#: dialogs.c:766
-msgid "Load Game Options"
-msgstr "Partij-instellingen laden"
-
-#: dialogs.c:778
-msgid "Auto-Save Games"
-msgstr "Partijen vanzelf opslaan"
-
-#: dialogs.c:779
-msgid "Own Games Only"
-msgstr "Alleen eigen partijen"
-
-#: dialogs.c:780
-msgid "Save Games on File:"
-msgstr "Partijen opslaan in:"
-
-#: dialogs.c:781
-msgid "Save Final Positions on File:"
-msgstr "Eindposities opslaan in:"
-
-#: dialogs.c:782
-msgid "PGN Event Header:"
-msgstr "PGN-gebeurtenis-kopregel:"
-
-#: dialogs.c:783
-msgid "Old Save Style (as opposed to PGN)"
-msgstr "Oude opslagstijl (in plaats van PGN)"
-
-#: dialogs.c:784
-msgid "Include Number Tag in tourney PGN"
-msgstr "Nummerlabel in toernooi-PGN opnemen"
-
-#: dialogs.c:785
-msgid "Save Score/Depth Info in PGN"
-msgstr "Score-/diepte-informatie opslaan in PGN"
-
-#: dialogs.c:786
-msgid "Save Out-of-Book Info in PGN           "
-msgstr "Uit-het-boek-informatie opslaan in PGN "
-
-#: dialogs.c:793
-msgid "Save Game Options"
-msgstr "Partij-instellingen opslaan"
-
-#: dialogs.c:802
-msgid "No Sound"
-msgstr "(geen geluid)"
-
-#: dialogs.c:803
-msgid "Default Beep"
-msgstr "Standaardpiep"
-
-#: dialogs.c:804
-msgid "Above WAV File"
-msgstr "Bovenstaande WAV"
-
-#: dialogs.c:805
-msgid "Car Horn"
-msgstr "Claxon"
-
-#: dialogs.c:806
-msgid "Cymbal"
-msgstr "Cymbaal"
-
-#: dialogs.c:807
-msgid "Ding"
-msgstr "Tink"
-
-#: dialogs.c:808
-msgid "Gong"
-msgstr "Gong"
-
-#: dialogs.c:809
-msgid "Laser"
-msgstr "Laser"
-
-#: dialogs.c:810
-msgid "Penalty"
-msgstr "Zoemer"
-
-#: dialogs.c:811
-msgid "Phone"
-msgstr "Telefoon"
-
-#: dialogs.c:812
-msgid "Pop"
-msgstr "Plop"
-
-#: dialogs.c:813
-msgid "Roar"
-msgstr "Brul"
-
-#: dialogs.c:814
-msgid "Slap"
-msgstr "Klap"
-
-#: dialogs.c:815
-msgid "Wood Thunk"
-msgstr "Houtplok"
-
-#: dialogs.c:817
-msgid "User File"
-msgstr "Gebruikersbestand"
-
-#: dialogs.c:840
-msgid "User WAV File:"
-msgstr "Eigen WAV-bestand:"
-
-#: dialogs.c:841
-msgid "Sound Program:"
-msgstr "Geluidsprogramma:"
-
-#: dialogs.c:842
-msgid "Try-Out Sound:"
-msgstr "Dit geluid proberen:"
-
-#: dialogs.c:843
-msgid "Play"
-msgstr "Afspelen"
-
-#: dialogs.c:844
-msgid "Move:"
-msgstr "Zet:"
-
-#: dialogs.c:845
-msgid "Win:"
-msgstr "Gewonnen:"
-
-#: dialogs.c:846
-msgid "Lose:"
-msgstr "Verloren:"
-
-#: dialogs.c:847
-msgid "Draw:"
-msgstr "Remise:"
-
-#: dialogs.c:848
-msgid "Unfinished:"
-msgstr "Onafgemaakt:"
-
-#: dialogs.c:849
-msgid "Alarm:"
-msgstr "Wekker:"
-
-#: dialogs.c:850
-msgid "Challenge:"
-msgstr "Uitdaging:"
-
-#: dialogs.c:852
-msgid "Sounds Directory:"
-msgstr "Geluidenmap:"
-
-#: dialogs.c:853
-msgid "Shout:"
-msgstr "Shout:"
-
-#: dialogs.c:854
-msgid "S-Shout:"
-msgstr "S-Shout:"
-
-#: dialogs.c:855
-msgid "Channel:"
-msgstr "Kanaal:"
-
-#: dialogs.c:856
-msgid "Channel 1:"
-msgstr "Kanaal 1:"
-
-#: dialogs.c:857
-msgid "Tell:"
-msgstr "Tell:"
-
-#: dialogs.c:858
-msgid "Kibitz:"
-msgstr "Kibitz:"
-
-#: dialogs.c:859
-msgid "Request:"
-msgstr "Verzoek:"
-
-#: dialogs.c:860
-msgid "Lion roar:"
-msgstr "Leeuwenbrul:"
-
-#: dialogs.c:861
-msgid "Seek:"
-msgstr "Zoeken:"
-
-#: dialogs.c:877
-msgid "Sound Options"
-msgstr "Geluidsinstellingen"
-
-#: dialogs.c:893
-msgid "Selectable themes:"
-msgstr "Selecteerbare thema's:"
-
-#: dialogs.c:895
-msgid "New name for current theme:"
-msgstr "Nieuwe naam voor huidig thema:"
-
-#: dialogs.c:898
-msgid "White Piece Color:"
-msgstr "Kleur van wit stuk:"
-
-#. TRANSLATORS: R = single letter for the color red
-#: dialogs.c:901 dialogs.c:910 dialogs.c:916 dialogs.c:922 dialogs.c:928
-#: dialogs.c:934
-msgid "R"
-msgstr "R"
-
-#. TRANSLATORS: G = single letter for the color green
-#: dialogs.c:903 dialogs.c:911 dialogs.c:917 dialogs.c:923 dialogs.c:929
-#: dialogs.c:935
-msgid "G"
-msgstr "G"
-
-#. TRANSLATORS: B = single letter for the color blue
-#: dialogs.c:905 dialogs.c:912 dialogs.c:918 dialogs.c:924 dialogs.c:930
-#: dialogs.c:936 dialogs.c:1650 dialogs.c:1656 dialogs.c:1662 dialogs.c:1668
-#: dialogs.c:1674 dialogs.c:1680 dialogs.c:1686
-msgid "B"
-msgstr "B"
-
-#. TRANSLATORS: D = single letter to make a color darker
-#: dialogs.c:907 dialogs.c:913 dialogs.c:919 dialogs.c:925 dialogs.c:931
-#: dialogs.c:937
-msgid "D"
-msgstr "D"
-
-#: dialogs.c:908
-msgid "Black Piece Color:"
-msgstr "Kleur van zwart stuk:"
-
-#: dialogs.c:914
-msgid "Light Square Color:"
-msgstr "Kleur van licht veld:"
-
-#: dialogs.c:920
-msgid "Dark Square Color:"
-msgstr "Kleur van donker veld:"
-
-#: dialogs.c:926
-msgid "Highlight Color:"
-msgstr "Markeringskleur:"
-
-#: dialogs.c:932
-msgid "Premove Highlight Color:"
-msgstr "Voorzet-markeringskleur:"
-
-#: dialogs.c:938
-msgid "Flip Pieces Shogi Style        (Colored buttons restore default)"
-msgstr "Stukken op Shogi-manier omdraaien  (gekleurde knoppen herstellen standaard)"
-
-#: dialogs.c:940
-msgid "Mono Mode"
-msgstr "Mono-modus"
-
-#: dialogs.c:941
-msgid "Logo Size (0=off, requires restart):"
-msgstr "Logogrootte (0=uit, vereist een herstart):"
-
-#: dialogs.c:942
-msgid "Line Gap (-1 = default for board size):"
-msgstr "Regeltussenruimte (-1 = standaard voor bordgrootte):"
-
-#: dialogs.c:943
-msgid "Use Board Textures"
-msgstr "Bordtexturen gebruiken"
-
-#: dialogs.c:944
-msgid "Light-Squares Texture File:"
-msgstr "Textuurbestand voor lichte velden:"
-
-#: dialogs.c:945
-msgid "Dark-Squares Texture File:"
-msgstr "Textuurbestand voor donkere velden:"
-
-#: dialogs.c:946
-msgid "Use external piece bitmaps with their own colors"
-msgstr "Externe bitmaps met eigen kleuren voor stukken gebruiken"
-
-#: dialogs.c:947
-msgid "Directory with Pieces Images:"
-msgstr "Map met afbeeldingen van stukken:"
-
-#: dialogs.c:1018
-msgid "# no themes are defined"
-msgstr "# er zijn geen thema's gedefinieerd"
-
-#: dialogs.c:1030
-msgid "Board Options"
-msgstr "Bordinstellingen"
-
-#: dialogs.c:1101 menus.c:646
-msgid "ICS text menu"
-msgstr "ICS-tekstmenu"
-
-#: dialogs.c:1130
-msgid "clear"
-msgstr "wissen"
-
-#: dialogs.c:1131
-msgid "save changes"
-msgstr "wijzigingen opslaan"
-
-#: dialogs.c:1229
-msgid "add next move"
-msgstr "volgende zet toevoegen"
-
-#: dialogs.c:1230
-msgid "commit changes"
-msgstr "wijzigingen doorvoeren"
-
-#: dialogs.c:1253
-msgid "Edit book"
-msgstr "Boek bewerken"
-
-#: dialogs.c:1270 dialogs.c:1277 menus.c:648
-msgid "Tags"
-msgstr "Labels"
-
-#: dialogs.c:1285
-msgid "Registered Engines"
-msgstr "Geregistreerde automaten"
-
-#: dialogs.c:1401
-msgid "ICS input box"
-msgstr "ICS-invoervak"
-
-#: dialogs.c:1433
-msgid "Type a move"
-msgstr "Typ een zet"
-
-#: dialogs.c:1459
-msgid "Engine has no options"
-msgstr "Automaat kent geen instellingen."
-
-#: dialogs.c:1461
-msgid "Engine Settings"
-msgstr "Automaatinstellingen"
-
-#: dialogs.c:1502
-msgid "Select engine from list:"
-msgstr "Selecteer een automaat uit de lijst:"
-
-#: dialogs.c:1505
-msgid "or specify one below:"
-msgstr "of geef er hieronder een op:"
-
-#: dialogs.c:1506
-msgid "Nickname (optional):"
-msgstr "Bijnaam (optioneel):"
-
-#: dialogs.c:1507
-msgid "Use nickname in PGN player tags of engine-engine games"
-msgstr "Bijnaam gebruiken in PGN-spelerlabels van automaat-automaat-partijen"
-
-#: dialogs.c:1508
-msgid "Engine Directory:"
-msgstr "Automatenmap:"
-
-#: dialogs.c:1509
-msgid "Engine Command:"
-msgstr "Automaatopdracht:"
-
-#: dialogs.c:1510
-msgid "(Directory will be derived from engine path when empty)"
-msgstr "(map wordt afgeleid uit automaatpad indien leeg)"
-
-#: dialogs.c:1511
-msgid "UCI"
-msgstr "UCI"
-
-#: dialogs.c:1512
-msgid "USI/UCCI (uses specified -uxiAdapter)"
-msgstr "USI/UCCI (gebruikt de opgegeven -uxiAdapter)"
-
-#: dialogs.c:1513
-msgid "WB protocol v1 (do not wait for engine features)"
-msgstr "WB-protocol v1 (niet op automaateigenschappen wachten)"
-
-#: dialogs.c:1514
-msgid "Must not use GUI book"
-msgstr "Hoort geen GUI-boek te gebruiken"
-
-#: dialogs.c:1515
-msgid "Add this engine to the list"
-msgstr "Deze automaat aan de lijst toevoegen"
-
-#: dialogs.c:1516
-msgid "Force current variant with this engine"
-msgstr "Huidige variant opdringen aan deze automaat"
-
-#: dialogs.c:1570
-msgid "Load first engine"
-msgstr "Eerste automaat laden"
-
-#: dialogs.c:1576
-msgid "Load second engine"
-msgstr "Tweede automaat laden"
-
-# XXX gets truncated to 7 chars
-#: dialogs.c:1599
-msgid "shuffle"
-msgstr "Husselen"
-
-#: dialogs.c:1600
-msgid "Fischer castling"
-msgstr "Fischer-rokade"
-
-#: dialogs.c:1601
-msgid "Start-position number:"
-msgstr "Startpositienummer:"
-
-#: dialogs.c:1602
-msgid "randomize"
-msgstr "Willekeurig"
-
-#: dialogs.c:1603
-msgid "pick fixed"
-msgstr "Vaste kiezen"
-
-#: dialogs.c:1620
-msgid "New Shuffle Game"
-msgstr "Husselpartij"
-
-#: dialogs.c:1647
-msgid "Clocks (requires restart):"
-msgstr "Klokken (vereist een herstart):"
-
-#: dialogs.c:1648 dialogs.c:1654 dialogs.c:1660 dialogs.c:1666 dialogs.c:1672
-#: dialogs.c:1678 dialogs.c:1684
-msgid "+"
-msgstr "+"
-
-#: dialogs.c:1649 dialogs.c:1655 dialogs.c:1661 dialogs.c:1667 dialogs.c:1673
-#: dialogs.c:1679 dialogs.c:1685
-msgid "-"
-msgstr "-"
-
-#: dialogs.c:1651 dialogs.c:1657 dialogs.c:1663 dialogs.c:1669 dialogs.c:1675
-#: dialogs.c:1681 dialogs.c:1687
-msgid "I"
-msgstr "I"
-
-#: dialogs.c:1652 dialogs.c:1658 dialogs.c:1664 dialogs.c:1670 dialogs.c:1676
-#: dialogs.c:1682 dialogs.c:1688
-msgid "*"
-msgstr "*"
-
-#: dialogs.c:1653
-msgid "Message (above board):"
-msgstr "Bericht (boven tafel):"
-
-#: dialogs.c:1659
-msgid "ICS Chat/Console:"
-msgstr "ICS-chat/Console:"
-
-#: dialogs.c:1665
-msgid "Edit tags / book / engine list:"
-msgstr "Labels-/Boeken-/Automatenlijst bewerken:"
-
-#: dialogs.c:1671
-msgid "Edit comments:"
-msgstr "Opmerkingen bewerken:"
-
-#: dialogs.c:1677
-msgid "Move history / Engine Output:"
-msgstr "Zettengeschiedenis / Automaatuitvoer:"
-
-#: dialogs.c:1683
-msgid "Game list:"
-msgstr "Partijenlijst:"
-
-#: dialogs.c:1689
-msgid ""
-"\n"
-"The * buttons will set the font to the one selected below:"
-msgstr ""
-"\n"
-"De * knoppen stellen het hieronder geselecteerde lettertype in:"
-
-#: dialogs.c:1743
-msgid "This only works in the GTK build"
-msgstr "Dit werkt alleen in de GTK-versie"
-
-#: dialogs.c:1744
-msgid "Fonts"
-msgstr "Lettertypen"
-
-#: dialogs.c:1764
-msgid "classical"
-msgstr "Klassiek"
-
-#: dialogs.c:1765
-msgid "incremental"
-msgstr "Ophogend"
-
-#: dialogs.c:1766
-msgid "fixed max"
-msgstr "Vast maximum"
-
-#: dialogs.c:1767
-msgid "Divide entered times by 60"
-msgstr "Ingevoerde tijden door 60 delen"
-
-#: dialogs.c:1768
-msgid "Moves per session:"
-msgstr "Zetten per sessie:"
-
-#: dialogs.c:1769
-msgid "Initial time (min):"
-msgstr "Begintijd (minuten)"
-
-#: dialogs.c:1770
-msgid "Increment or max (sec/move):"
-msgstr "Ophoging of maximaal (sec/zet):"
-
-#: dialogs.c:1771
-msgid "Time-Odds factors:"
-msgstr "Tijdsfactoren:"
-
-#: dialogs.c:1772
-msgid "Engine #1"
-msgstr "Automaat 1"
-
-#: dialogs.c:1773
-msgid "Engine #2 / Human"
-msgstr "Automaat 2 / Mens"
-
-# XXX gets truncated at start to 8 chars
-#: dialogs.c:1814 dialogs.c:1817 dialogs.c:1822 dialogs.c:1823
-#: gtk/xoptions.c:183
-msgid "Unused"
-msgstr "(loos)"
-
-#: dialogs.c:1832
-msgid "Changing time control during a game is not implemented"
-msgstr "Het wijzigen van de tijdsinstellingen tijdens een partij is niet geïmplementeerd."
-
-#: dialogs.c:1869
-msgid "Error writing to chess program"
-msgstr "Fout bij schrijven naar schaakprogramma"
-
-#: dialogs.c:1937 gtk/xoptions.c:1775 xaw/xoptions.c:1341
-msgid "Cancel"
-msgstr "Annuleren"
-
-#: dialogs.c:1942 dialogs.c:2695 dialogs.c:2699
-msgid "King"
-msgstr "Koning"
-
-#: dialogs.c:1945
-msgid "Captain"
-msgstr "Kapitein"
-
-#: dialogs.c:1946
-msgid "Lieutenant"
-msgstr "Luitenant"
-
-#: dialogs.c:1947
-msgid "General"
-msgstr "Generaal"
-
-#: dialogs.c:1948
-msgid "Warlord"
-msgstr "Krijgsheer"
-
-#: dialogs.c:1950 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Knight"
-msgstr "Paard"
-
-#: dialogs.c:1951 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Bishop"
-msgstr "Loper"
-
-#: dialogs.c:1952 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Rook"
-msgstr "Toren"
-
-#: dialogs.c:1956 dialogs.c:2696 dialogs.c:2700
-msgid "Archbishop"
-msgstr "Aartsbisschop"
-
-#: dialogs.c:1957 dialogs.c:2696 dialogs.c:2700
-msgid "Chancellor"
-msgstr "Kanselier"
-
-#: dialogs.c:1959 dialogs.c:2695 dialogs.c:2699 dialogs.c:2717
-msgid "Queen"
-msgstr "Koningin"
-
-#: dialogs.c:1961
-msgid "Lion"
-msgstr "Leeuw"
-
-#: dialogs.c:1965
-msgid "Defer"
-msgstr "Uitstellen"
-
-#: dialogs.c:1966 dialogs.c:2696 dialogs.c:2700
-msgid "Promote"
-msgstr "Promoveren"
-
-#: dialogs.c:2023
-msgid "Chats:"
-msgstr "Chats:"
-
-#: dialogs.c:2024 dialogs.c:2025 dialogs.c:2026 dialogs.c:2027 dialogs.c:2028
-#: dialogs.c:2134 dialogs.c:2199 dialogs.c:2231
-msgid "New Chat"
-msgstr "Nieuwe chat"
-
-#: dialogs.c:2031
-msgid "Chat partner:"
-msgstr "Chatpartner:"
-
-#: dialogs.c:2032
-msgid "End Chat"
-msgstr "Chat beëindigen"
-
-#: dialogs.c:2033
-msgid "Hide"
-msgstr "Verbergen"
-
-#: dialogs.c:2260
-msgid "ICS Interaction"
-msgstr "ICS-interactie"
-
-#: dialogs.c:2345
-msgid "factory"
-msgstr "origineel"
-
-#: dialogs.c:2346
-msgid "up"
-msgstr "omhoog"
-
-#: dialogs.c:2347
-msgid "down"
-msgstr "omlaag"
-
-#: dialogs.c:2366
-msgid "No tag selected"
-msgstr "Geen label geselecteerd"
-
-#: dialogs.c:2397
-msgid "Game-list options"
-msgstr "Partijenlijst-instellingen"
-
-#: dialogs.c:2475 dialogs.c:2489
-msgid "Error"
-msgstr "Fout"
-
-#: dialogs.c:2518
-msgid "Fatal Error"
-msgstr "Fatale fout"
-
-#: dialogs.c:2518
-msgid "Exiting"
-msgstr "Afsluiten"
-
-#: dialogs.c:2529
-msgid "Information"
-msgstr "Informatie"
-
-#: dialogs.c:2536
-msgid "Note"
-msgstr "Notitie"
-
-#: dialogs.c:2694 dialogs.c:2987 dialogs.c:2990
-msgid "White"
-msgstr "Wit"
-
-#: dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Pawn"
-msgstr "Pion"
-
-#: dialogs.c:2695 dialogs.c:2699
-msgid "Elephant"
-msgstr "Olifant"
-
-#: dialogs.c:2695 dialogs.c:2699
-msgid "Cannon"
-msgstr "Kanon"
-
-#: dialogs.c:2696 dialogs.c:2700
-msgid "Demote"
-msgstr "Degraderen"
-
-#: dialogs.c:2697 dialogs.c:2701
-msgid "Empty square"
-msgstr "Leeg veld"
-
-#: dialogs.c:2697 dialogs.c:2701
-msgid "Clear board"
-msgstr "Bord leegmaken"
-
-#: dialogs.c:2698 dialogs.c:2999 dialogs.c:3002
-msgid "Black"
-msgstr "Zwart"
-
-#: dialogs.c:2798
-msgid "_File"
-msgstr "_Bestand"
-
-#: dialogs.c:2799
-msgid "_Edit"
-msgstr "B_ewerken"
-
-#: dialogs.c:2800
-msgid "_View"
-msgstr "_Weergave"
-
-#: dialogs.c:2801
-msgid "_Mode"
-msgstr "_Modus"
-
-#: dialogs.c:2802
-msgid "_Action"
-msgstr "_Acties"
-
-#: dialogs.c:2803
-msgid "E_ngine"
-msgstr "A_utomaat"
-
-#: dialogs.c:2804
-msgid "_Options"
-msgstr "_Opties"
-
-#: dialogs.c:2805
-msgid "_Help"
-msgstr "_Hulp"
-
-#: dialogs.c:2815
-msgid "<<"
-msgstr "<<"
-
-#: dialogs.c:2816
-msgid "<"
-msgstr "<"
-
-#: dialogs.c:2818
-msgid ">"
-msgstr ">"
-
-#: dialogs.c:2819
-msgid ">>"
-msgstr ">>"
-
-#: dialogs.c:3107
-msgid "Directories:"
-msgstr "Mappen:"
-
-#: dialogs.c:3108
-msgid "Files:"
-msgstr "Bestanden:"
-
-#: dialogs.c:3109
-msgid "by name"
-msgstr "op naam"
-
-#: dialogs.c:3110
-msgid "by type"
-msgstr "op type"
-
-#: dialogs.c:3113
-msgid "Filename:"
-msgstr "Bestandsnaam:"
-
-#: dialogs.c:3114
-msgid "New directory"
-msgstr "Nieuwe map"
-
-#: dialogs.c:3115
-msgid "File type:"
-msgstr "Bestandstype:"
-
-#: dialogs.c:3190
-msgid "Contents of"
-msgstr "Inhoud van"
-
-#: dialogs.c:3216
-msgid "  next page"
-msgstr "  volgende pagina"
-
-#: dialogs.c:3233
-msgid "FIRST TYPE DIRECTORY NAME HERE"
-msgstr "Typ hier eerst een mapnaam"
-
-#: dialogs.c:3234
-msgid "TRY ANOTHER NAME"
-msgstr "Kies een andere naam"
-
-#: draw.c:405
-msgid ""
-"No default pieces installed!\n"
-"Select your own using '-pieceImageDirectory'."
-msgstr ""
-"Er zijn geen standaardstukken geïnstalleerd!\n"
-"Kies uw eigen met '-pieceImageDirectory'."
-
-#: engineoutput.c:112 menus.c:642
-#, c-format
-msgid "Engine Output"
-msgstr "Automaatuitvoer"
-
-#: engineoutput.c:122
-#, c-format
-msgid "%s (%d reversible ply)"
-msgid_plural "%s (%d reversible plies)"
-msgstr[0] "%s (%d omkeerbare ply)"
-msgstr[1] "%s (%d omkeerbare plies)"
-
-#: engineoutput.c:565 engineoutput.c:568 nengineoutput.c:83 nengineoutput.c:91
-msgid "NPS"
-msgstr "NPS"
-
-#: gamelist.c:379
-#, c-format
-msgid "Reading game file (%d)"
-msgstr "Lezen van partijbestand (%d)"
-
-#: gtk/xboard.c:979 xaw/xboard.c:1074
-#, c-format
-msgid "%s: can't cd to CHESSDIR: "
-msgstr "%s: Kan huidige map niet wijzigen naar CHESSDIR: "
-
-#: gtk/xboard.c:988 xaw/xboard.c:1083
-#, c-format
-msgid "Failed to open file '%s'\n"
-msgstr "Kan bestand '%s' niet openen\n"
-
-#: gtk/xboard.c:1003 xaw/xboard.c:1092
-msgid "Recompile with larger BOARD_RANKS or BOARD_FILES to support this size"
-msgstr "*** Hercompileer met grotere BOARD_RANKS of BOARD_FILES om deze grootte te ondersteunen"
-
-#: gtk/xboard.c:1022 xaw/xboard.c:1124
-#, c-format
-msgid "%s: bad boardSize syntax %s\n"
-msgstr "%s: onjuiste syntax %s voor 'boardSize'\n"
-
-#: gtk/xboard.c:1063 xaw/xboard.c:1163
-#, c-format
-msgid "%s: unrecognized boardSize name %s\n"
-msgstr "%s: onbekende naam %s voor 'boardSize'\n"
-
-#: gtk/xboard.c:1107 xaw/xboard.c:1200
-#, c-format
-msgid "%s: too few colors available; trying monochrome mode\n"
-msgstr "%s: te weinig kleuren beschikbaar; monochroommodus wordt geprobeerd\n"
-
-#: gtk/xboard.c:1421 xaw/xboard.c:1492
-#, c-format
-msgid "Unable to create font set for %s.\n"
-msgstr "Kan geen lettertypenset aanmaken voor %s.\n"
-
-#: gtk/xboard.c:1446 xaw/xboard.c:1515
-#, c-format
-msgid "%s: no fonts match pattern %s\n"
-msgstr "%s: er zijn geen lettertypen die overeenkomen met patroon %s\n"
-
-#: gtk/xboard.c:1914 xaw/xboard.c:2007
-msgid "Can't open temp file"
-msgstr "Kan tijdelijk bestand niet openen"
-
-#: gtk/xboard.c:2422
-msgid "Failed to open file"
-msgstr "Kan bestand niet openen"
-
-#: gtk/xoptions.c:1498
-msgid "Browse"
-msgstr "Bladeren"
-
-#: gtk/xoptions.c:1772 xaw/xoptions.c:1337
-msgid "OK"
-msgstr "OK"
-
-#: menus.c:136
-msgid "Load game file name?"
-msgstr "Partij laden uit bestand:"
-
-#: menus.c:183
-msgid "Load position file name?"
-msgstr "Positie laden uit bestand:"
-
-#: menus.c:189 menus.c:582
-msgid "Save game file name?"
-msgstr "Partij opslaan in bestand:"
-
-#: menus.c:198
-msgid "Save position file name?"
-msgstr "Positie opslaan in bestand:"
-
-#: menus.c:355
-msgid " (with Zippy code)"
-msgstr " (met Zippy-code)"
-
-#: menus.c:360
-#, c-format
-msgid ""
-"%s%s\n"
-"\n"
-"Copyright 1991 Digital Equipment Corporation\n"
-"Enhancements Copyright 1992-2016 Free Software Foundation\n"
-"Enhancements Copyright 2005 Alessandro Scotti\n"
-"\n"
-"%s is free software and carries NO WARRANTY;see the file COPYING for more information.\n"
-"\n"
-"Visit XBoard on the web at: http://www.gnu.org/software/xboard/\n"
-"Check out the newest features at: http://www.gnu.org/software/xboard/whats_new.html\n"
-"\n"
-"Report bugs via email at: <bug-xboard@gnu.org>\n"
-"\n"
-msgstr ""
-"%s%s\n"
-"\n"
-"Copyright 1991 Digital Equipment Corporation\n"
-"Uitbreidingen Copyright 1992-2016 Free Software Foundation\n"
-"Uitbreidingen Copyright 2005 Alessandro Scotti\n"
-"\n"
-"%s is vrije software en kent GEEN GARANTIE;\n"
-"zie het bestand COPYING voor meer informatie.\n"
-"\n"
-"Bezoek XBoard op het web: http://www.gnu.org/software/xboard/\n"
-"Voor nieuwe functies zie: http://www.gnu.org/software/xboard/whats_new/\n"
-"\n"
-"Rapporteer gebreken in het programma aan <bug-xboard@gnu.org>;\n"
-"meld vertaalfouten aan <vertaling@vrijschrift.org>.\n"
-"\n"
-
-#: menus.c:371 menus.c:765
-msgid "About XBoard"
-msgstr "Over XBoard"
-
-#: menus.c:593
-msgid "New Game"
-msgstr "Nieuwe partij"
-
-#: menus.c:594
-msgid "New Shuffle Game..."
-msgstr "Nieuwe husselpartij..."
-
-# XXX "NEW" is wrong
-#: menus.c:595
-msgid "New Variant..."
-msgstr "Nieuwe variantpartij..."
-
-#: menus.c:597
-msgid "Load Game"
-msgstr "Partij laden"
-
-#: menus.c:598
-msgid "Load Position"
-msgstr "Positie laden"
-
-#: menus.c:599
-msgid "Next Position"
-msgstr "Volgende positie"
-
-#: menus.c:600
-msgid "Prev Position"
-msgstr "Vorige positie"
-
-#: menus.c:602
-msgid "Save Game"
-msgstr "Partij opslaan"
-
-#: menus.c:603
-msgid "Save Position"
-msgstr "Positie opslaan"
-
-#: menus.c:604
-msgid "Save Selected Games"
-msgstr "Geselecteerde partijen opslaan"
-
-#: menus.c:605
-msgid "Save Games as Book"
-msgstr "Partijen opslaan als boek"
-
-#: menus.c:607
-msgid "Mail Move"
-msgstr "Zet mailen"
-
-#: menus.c:608
-msgid "Reload CMail Message"
-msgstr "CMail-bericht herladen"
-
-#: menus.c:610
-msgid "Quit "
-msgstr "Afsluiten "
-
-#: menus.c:615
-msgid "Copy Game"
-msgstr "Partij kopiëren"
-
-#: menus.c:616
-msgid "Copy Position"
-msgstr "Positie kopiëren"
-
-#: menus.c:617
-msgid "Copy Game List"
-msgstr "Partijenlijst kopiëren"
-
-#: menus.c:619
-msgid "Paste Game"
-msgstr "Partij plakken"
-
-#: menus.c:620
-msgid "Paste Position"
-msgstr "Positie plakken"
-
-#: menus.c:622 menus.c:665
-msgid "Edit Game"
-msgstr "Partij bewerken"
-
-#: menus.c:623 menus.c:666
-msgid "Edit Position"
-msgstr "Positie bewerken"
-
-#: menus.c:624
-msgid "Edit Tags"
-msgstr "Labels bewerken"
-
-#: menus.c:625
-msgid "Edit Comment"
-msgstr "Opmerking bewerken"
-
-#: menus.c:626
-msgid "Edit Book"
-msgstr "Boek bewerken"
-
-#: menus.c:628
-msgid "Revert"
-msgstr "Terugdraaien"
-
-#: menus.c:629
-msgid "Annotate"
-msgstr "Annoteren"
-
-#: menus.c:630
-msgid "Truncate Game"
-msgstr "Partij afkappen"
-
-#: menus.c:632
-msgid "Backward"
-msgstr "Achterwaarts"
-
-#: menus.c:633
-msgid "Forward"
-msgstr "Voorwaarts"
-
-#: menus.c:634
-msgid "Back to Start"
-msgstr "Terug naar begin"
-
-#: menus.c:635
-msgid "Forward to End"
-msgstr "Vooruit naar einde"
-
-#: menus.c:640
-msgid "Flip View"
-msgstr "Bord draaien"
-
-#: menus.c:643
-msgid "Move History"
-msgstr "Zettengeschiedenis"
-
-#: menus.c:644
-msgid "Evaluation Graph"
-msgstr "Evaluatiegrafiek"
-
-#: menus.c:645
-msgid "Game List"
-msgstr "Partijenlijst"
-
-#: menus.c:649
-msgid "Comments"
-msgstr "Opmerkingen"
-
-#: menus.c:650
-msgid "ICS Input Box"
-msgstr "ICS-invoervak"
-
-#: menus.c:651
-msgid "ICS/Chat Console"
-msgstr "ICS/chat-console"
-
-#: menus.c:653
-msgid "Board..."
-msgstr "Bord..."
-
-#: menus.c:654
-msgid "Fonts..."
-msgstr "Lettertypen..."
-
-#: menus.c:655
-msgid "Game List Tags..."
-msgstr "Partijenlijst-labels..."
-
-#: menus.c:660
-msgid "Machine White"
-msgstr "Automaat heeft wit"
-
-#: menus.c:661
-msgid "Machine Black"
-msgstr "Automaat heeft zwart"
-
-#: menus.c:662
-msgid "Two Machines"
-msgstr "Twee automaten"
-
-#: menus.c:663
-msgid "Analysis Mode"
-msgstr "Analysemodus"
-
-#: menus.c:664
-msgid "Analyze Game"
-msgstr "Partij analyseren"
-
-#: menus.c:667
-msgid "Training"
-msgstr "Training"
-
-#: menus.c:668
-msgid "ICS Client"
-msgstr "ICS-cliënt"
-
-#: menus.c:670
-msgid "Machine Match"
-msgstr "Automatentoernooi"
-
-#: menus.c:671
-msgid "Pause"
-msgstr "Pauzeren"
-
-#: menus.c:676
-msgid "Accept"
-msgstr "Accepteren"
-
-#: menus.c:677
-msgid "Decline"
-msgstr "Weigeren"
-
-#: menus.c:678
-msgid "Rematch"
-msgstr "Revanche"
-
-#: menus.c:680
-msgid "Call Flag"
-msgstr "'Vlag' roepen"
-
-#: menus.c:681
-msgid "Draw"
-msgstr "Remise"
-
-#: menus.c:682
-msgid "Adjourn"
-msgstr "Opschorten"
-
-#: menus.c:683
-msgid "Abort"
-msgstr "Afbreken"
-
-#: menus.c:684
-msgid "Resign"
-msgstr "Opgeven"
-
-#: menus.c:686
-msgid "Stop Observing"
-msgstr "Stoppen met observeren"
-
-#: menus.c:687
-msgid "Stop Examining"
-msgstr "Stoppen met bestuderen"
-
-#: menus.c:688
-msgid "Upload to Examine"
-msgstr "Uploaden om te bestuderen"
-
-#: menus.c:690
-msgid "Adjudicate to White"
-msgstr "Winst aan wit toekennen"
-
-#: menus.c:691
-msgid "Adjudicate to Black"
-msgstr "Winst aan zwart toekennen"
-
-#: menus.c:692
-msgid "Adjudicate Draw"
-msgstr "Tot remise besluiten"
-
-#: menus.c:697
-msgid "Edit Engine List..."
-msgstr "Automatenlijst bewerken..."
-
-#: menus.c:699
-msgid "Load New 1st Engine..."
-msgstr "Nieuwe 1ste automaat laden..."
-
-#: menus.c:700
-msgid "Load New 2nd Engine..."
-msgstr "Nieuwe 2de automaat laden..."
-
-#: menus.c:702
-msgid "Engine #1 Settings..."
-msgstr "Instellingen van automaat 1..."
-
-#: menus.c:703
-msgid "Engine #2 Settings..."
-msgstr "Instellingen van automaat 2..."
-
-#: menus.c:704
-msgid "Common Settings..."
-msgstr "Algemene instellingen..."
-
-#: menus.c:706
-msgid "Hint"
-msgstr "Hint"
-
-#: menus.c:707
-msgid "Book"
-msgstr "Boek"
-
-#: menus.c:709
-msgid "Move Now"
-msgstr "Nu zetten"
-
-#: menus.c:710
-msgid "Retract Move"
-msgstr "Zet terugnemen"
-
-#: menus.c:716
-msgid "General..."
-msgstr "Algemeen..."
-
-#: menus.c:718
-msgid "Time Control..."
-msgstr "Tijdsbeperking..."
-
-#: menus.c:719
-msgid "Adjudications..."
-msgstr "Beslissingen..."
-
-#: menus.c:720
-msgid "ICS..."
-msgstr "ICS..."
-
-#: menus.c:721
-msgid "Tournament..."
-msgstr "Toernooi..."
-
-#: menus.c:722
-msgid "Load Game..."
-msgstr "Partij laden..."
-
-#: menus.c:723
-msgid "Save Game..."
-msgstr "Partij opslaan..."
-
-#: menus.c:724
-msgid "Game List..."
-msgstr "Partijenlijst..."
-
-#: menus.c:725
-msgid "Sounds..."
-msgstr "Geluiden..."
-
-#: menus.c:728
-msgid "Always Queen"
-msgstr "Altijd koningin"
-
-#: menus.c:734
-msgid "Flash Moves"
-msgstr "Zetten laten knipperen"
-
-#: menus.c:736
-msgid "Highlight Dragging"
-msgstr "Slepen markeren"
-
-#: menus.c:739
-msgid "Highlight With Arrow"
-msgstr "Markeren met pijl"
-
-#: menus.c:740
-msgid "Move Sound"
-msgstr "Zetgeluid"
-
-#: menus.c:742
-msgid "Periodic Updates"
-msgstr "Periodieke updates"
-
-#: menus.c:744
-msgid "Popup Exit Message"
-msgstr "Popup-afsluitbericht"
-
-#: menus.c:746
-msgid "Show Coords"
-msgstr "Coördinaten tonen"
-
-#: menus.c:747
-msgid "Hide Thinking"
-msgstr "Denken verbergen"
-
-#: menus.c:751
-msgid "Save Settings Now"
-msgstr "Instellingen nu opslaan"
-
-#: menus.c:752
-msgid "Save Settings on Exit"
-msgstr "Instellingen opslaan bij afsluiten"
-
-#: menus.c:757
-msgid "Info XBoard"
-msgstr "'info xboard'"
-
-#: menus.c:758
-msgid "Man XBoard"
-msgstr "'man xboard'"
-
-#: menus.c:760
-msgid "XBoard Home Page"
-msgstr "Webpagina van XBoard"
-
-#: menus.c:761
-msgid "On-line User Guide"
-msgstr "Online gebruikersgids"
-
-#: menus.c:762
-msgid "Development News"
-msgstr "Ontwikkelingsnieuws"
-
-#: menus.c:763
-msgid "e-Mail Bug Report"
-msgstr "Foutrapportage mailen"
-
-#: menus.c:802
-msgid "File"
-msgstr "Bestand"
-
-#: menus.c:803
-msgid "Edit"
-msgstr "Bewerken"
-
-#: menus.c:804
-msgid "View"
-msgstr "Weergave"
-
-#: menus.c:805
-msgid "Mode"
-msgstr "Modus"
-
-#: menus.c:806
-msgid "Action"
-msgstr "Acties"
-
-#: menus.c:807
-msgid "Engine"
-msgstr "Automaat"
-
-# XXX "Instellingen" is te lang, wordt afgeknabbeld.
-#: menus.c:808
-msgid "Options"
-msgstr "Opties"
-
-#: menus.c:809
-msgid "Help"
-msgstr "Hulp"
-
-#: nengineoutput.c:79 nengineoutput.c:87
-msgid "engine name"
-msgstr "automaatnaam"
-
-#. TRANSLATORS: noun, as in "the move Nf3"
-#: nengineoutput.c:82 nengineoutput.c:90
-msgid "move"
-msgstr "zetten"
-
-#: nengineoutput.c:156
-msgid "Engine output"
-msgstr "Automaatuitvoer"
-
-#: nengineoutput.c:160
-msgid ""
-"Mismatch of STRIDE in nengineoutput.c\n"
-"Change and recompile!"
-msgstr ""
-"*** Niet-passende 'STRIDE' in 'nengineoutput.c'.\n"
-"Pas deze aan en hercompileer."
-
-#: nevalgraph.c:69
-msgid "Evaluation graph"
-msgstr "Evaluatiegrafiek"
-
-#: nevalgraph.c:69
-msgid "Blunder graph"
-msgstr "Blundergrafiek"
-
-#: nevalgraph.c:107
-msgid "Blunder"
-msgstr "Blunder"
-
-#: nevalgraph.c:107
-msgid "Eval"
-msgstr "Eval"
-
-#: ngamelist.c:87
-msgid "find position"
-msgstr "positie vinden"
-
-#: ngamelist.c:88
-msgid "narrow"
-msgstr "nauw"
-
-#: ngamelist.c:89
-msgid "thresholds"
-msgstr "grenswaarden"
-
-#: ngamelist.c:90
-msgid "tags"
-msgstr "labels"
-
-#: ngamelist.c:91
-msgid "next"
-msgstr "volgende"
-
-#: ngamelist.c:92
-msgid "close"
-msgstr "sluiten"
-
-#: ngamelist.c:116
-msgid "No game selected"
-msgstr "Geen partij geselecteerd"
-
-#: ngamelist.c:122
-msgid "Can't go forward any further"
-msgstr "Kan niet nog verder vooruitgaan"
-
-#: ngamelist.c:192
-#, c-format
-msgid "Scanning through games (%d)"
-msgstr "Zoeken door partijen (%d)"
-
-#: ngamelist.c:211
-msgid "previous page"
-msgstr "voorgaande pagina"
-
-#: ngamelist.c:214
-msgid "next page"
-msgstr "volgende pagina"
-
-#: ngamelist.c:217
-msgid "no games matched your request"
-msgstr "er zijn geen partijen die overeenkomen met uw verzoek"
-
-#: ngamelist.c:219
-#, c-format
-msgid "%s - %d/%d games (%d-%d-%d)"
-msgstr "%s - %d/%d partijen (%d-%d-%d)"
-
-#: ngamelist.c:284
-msgid "There is no game list"
-msgstr "Er is geen partijenlijst"
-
-#: nhistory.c:109
-msgid "Move list"
-msgstr "Zettenlijst"
-
-#: usystem.c:223
-#, c-format
-msgid "%s: unrecognized color %s\n"
-msgstr "%s: niet-herkende kleur %s\n"
-
-#: usystem.c:231
-#, c-format
-msgid "%s: can't parse foreground color in '%s'\n"
-msgstr "%s: onbegrepen voorgrondkleur in '%s'\n"
-
-#: usystem.c:260
-#, c-format
-msgid "%s: can't parse color names; disabling colorization\n"
-msgstr "%s: onbegrepen kleurnamen; kleuring wordt uitgeschakeld\n"
-
-#: usystem.c:362
-#, c-format
-msgid "ERROR: Unknown user %s (in path %s)\n"
-msgstr "Fout: onbekende gebruiker %s (in pad %s)\n"
-
-# FIXME: has not been configured
-#: usystem.c:564
-msgid "Socket support is not configured in"
-msgstr "Ondersteuning voor sockets is niet geconfigureerd"
-
-#: usystem.c:653
-msgid "internal rcmd not implemented for Unix"
-msgstr "interne 'rcmd' is niet geïmplementeerd voor Unix"
-
-#: xaw/xboard.c:1206
-#, c-format
-msgid "white pixel = 0x%lx, black pixel = 0x%lx\n"
-msgstr "witte pixel = 0x%lx, zwarte pixel = 0x%lx\n"
-
-#: xaw/xoptions.c:378 xaw/xoptions.c:1082
-msgid "browse"
-msgstr "Bladeren"
-
-#: xaw/xoptions.c:444 xaw/xoptions.c:445
-msgid "Ctrl"
-msgstr "Ctrl"
-
-#: xaw/xoptions.c:450 xaw/xoptions.c:451
-msgid "Alt"
-msgstr "Alt"
-
-#: xaw/xoptions.c:456 xaw/xoptions.c:457
-msgid "Shift"
-msgstr "Shift"
-
-#~ msgid "Common Engine..."
-#~ msgstr "Gemeenschappelijke automaat..."
-
-#~ msgid "Match Options"
-#~ msgstr "Toernooi-instellingen"
-
-#~ msgid "Chat box"
-#~ msgstr "Chatbox"
-
-#~ msgid "Open Chat Window"
-#~ msgstr "Chatvenster openen"
-
-#~ msgid "Match ..."
-#~ msgstr "Toernooi..."
-
-#~ msgid "%s: Can't access XPM directory %s\n"
-#~ msgstr "%s: Kan geen toegang krijgen tot XPM-map %s\n"
-
-#~ msgid "Available `%s' sizes:\n"
-#~ msgstr "Beschikbare '%s'-groottes:\n"
-
-#~ msgid "Error: No `%s' files!\n"
-#~ msgstr "Fout: geen '%s'-bestanden!\n"
-
-#~ msgid "Error %d loading icon image\n"
-#~ msgstr "Fout %d tijdens laden van pictogram\n"
-
-#~ msgid "cancel"
-#~ msgstr "Annuleren"
diff --git a/po/normalize.pl b/po/normalize.pl
deleted file mode 100755 (executable)
index cc02ac0..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#! /usr/bin/perl
-# Normalize unicode text into form C (canonical decomposition)
-
-use Unicode::Normalize;
-binmode STDIN, ':encoding(UTF-8)';
-binmode STDOUT, ':encoding(UTF-8)';
-
-while (<>) {
-    print NFC($_);
-}
diff --git a/po/pl.po b/po/pl.po
deleted file mode 100644 (file)
index e66f335..0000000
--- a/po/pl.po
+++ /dev/null
@@ -1,3241 +0,0 @@
-# Polish translations for GNU xboard package
-# Polskie tłumaczenia dla pakietu GNU xboard.
-# Copyright (C) 2014 Free Software Foundation, Inc.
-# This file is distributed under the same license as the xboard package.
-# Paweł Żołnowski <pawel@zolnowski.name>, 2014.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: GNU xboard 4.7.2\n"
-"Report-Msgid-Bugs-To: bug-xboard@gnu.org\n"
-"POT-Creation-Date: 2016-04-03 13:44-0700\n"
-"PO-Revision-Date: 2014-03-03 14:20+0100\n"
-"Last-Translator: Paweł Żołnowski <pawel@zolnowski.name>\n"
-"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
-"Language: pl\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
-"|| n%100>=20) ? 1 : 2);\n"
-
-#: args.h:851
-#, c-format
-msgid "%s in settings file\n"
-msgstr "%s w pliku konfiguracyjnym\n"
-
-#: args.h:885
-#, c-format
-msgid "Bad integer value %s"
-msgstr "Błędna wartość całkowita %s"
-
-#: args.h:991 args.h:1252
-#, c-format
-msgid "Unrecognized argument %s"
-msgstr "Nieznany parametr %s"
-
-#: args.h:1022
-#, c-format
-msgid "No value provided for argument %s"
-msgstr "Brak wartości parametru %s"
-
-#: args.h:1082
-#, c-format
-msgid "Incomplete \\ escape in value for %s"
-msgstr "Niepełna sekwencja specjalna \\ w wartości dla %s"
-
-#: args.h:1193
-#, c-format
-msgid "Failed to open indirection file %s"
-msgstr "Nie udało się otworzyć pliku pośredniego %s"
-
-#: args.h:1210
-#, c-format
-msgid "Unrecognized boolean argument value %s"
-msgstr "Nieznana wartość parametru logicznego %s"
-
-#. TRANSLATORS: "first" is the first of possible two chess engines. It is inserted into strings
-#. such as "%s engine" / "%s chess program" / "%s machine" - all meaning the same thing
-#: backend.c:811
-msgid "first"
-msgstr "1."
-
-#. TRANSLATORS: "second" is the second of possible two chess engines. It is inserted into strings
-#. such as "%s engine" / "%s chess program" / "%s machine" - all meaning the same thing
-#: backend.c:814
-msgid "second"
-msgstr "2."
-
-#: backend.c:897
-#, c-format
-msgid "protocol version %d not supported"
-msgstr "nieobsługiwana wersja %d protokołu"
-
-#: backend.c:1004
-msgid "You did not specify the engine executable"
-msgstr "Nie podano pliku wykonywalnego silnika"
-
-#: backend.c:1062
-#, c-format
-msgid "bad timeControl option %s"
-msgstr "zła opcja timeControl %s"
-
-#: backend.c:1077
-#, c-format
-msgid "bad searchTime option %s"
-msgstr "zła opcja searchTime %s"
-
-#: backend.c:1183
-#, c-format
-msgid "Variant %s supported only in ICS mode"
-msgstr "Wariant %s jest obsługiwany tylko w trybie ICS"
-
-#: backend.c:1201
-#, c-format
-msgid "Unknown variant name %s"
-msgstr "Nieznana nazwa wariantu %s"
-
-#: backend.c:1456
-msgid "Starting chess program"
-msgstr "Uruchamianie silnika szachowego"
-
-#: backend.c:1479
-msgid "Bad game file"
-msgstr "Nieprawidłowy plik gry"
-
-#: backend.c:1486
-msgid "Bad position file"
-msgstr "Nieprawidłowy plik pozycji"
-
-#: backend.c:1500
-msgid "Pick new game"
-msgstr "Wybierz nową grę"
-
-#: backend.c:1569
-#, fuzzy
-msgid ""
-"You restarted an already completed tourney.\n"
-"One more cycle will now be added to it.\n"
-"Games commence in 10 sec."
-msgstr ""
-"Zrestartowano ukończony już turniej\n"
-"Zostanie dodany do niego jeszcze jeden cykl\n"
-"Gry rozpoczną się za 10 s"
-
-#: backend.c:1576
-#, c-format
-msgid "All games in tourney '%s' are already played or playing"
-msgstr "Wszystkie gry w turnieju \"%s\" zostały już rozegrane lub są w toku"
-
-#: backend.c:1583
-msgid "Can't have a match with no chess programs"
-msgstr "Konieczny jest wybór silnika szachowego"
-
-#: backend.c:1637
-#, c-format
-msgid "Could not open comm port %s"
-msgstr "Nie można otworzyć portu szeregowego %s"
-
-#: backend.c:1640
-#, c-format
-msgid "Could not connect to host %s, port %s"
-msgstr "Nie można się połączyć z hostem %s, port %s"
-
-#: backend.c:1696
-#, c-format
-msgid "Unknown initialMode %s"
-msgstr "Nieznany initialMode %s"
-
-#: backend.c:1722
-msgid "AnalyzeFile mode requires a game file"
-msgstr "Tryb AnalyzeFile wymaga pliku gry"
-
-#: backend.c:1755
-msgid "Analysis mode requires a chess engine"
-msgstr "Tryb analizy wymaga silnika szachowego"
-
-#: backend.c:1759
-msgid "Analysis mode does not work with ICS mode"
-msgstr "Tryb analizy nie działa w trybie ICS"
-
-#: backend.c:1770
-msgid "MachineWhite mode requires a chess engine"
-msgstr "Tryb MachineWhite wymaga silnika szachowego"
-
-#: backend.c:1775
-msgid "MachineWhite mode does not work with ICS mode"
-msgstr "Tryb MachineWhite nie działa w trybie ICS"
-
-#: backend.c:1782
-msgid "MachineBlack mode requires a chess engine"
-msgstr "Tryb MachineBlack wymaga silnika szachowego"
-
-#: backend.c:1787
-msgid "MachineBlack mode does not work with ICS mode"
-msgstr "Tryb MachineBlack nie działa w trybie ICS"
-
-#: backend.c:1794
-msgid "TwoMachines mode requires a chess engine"
-msgstr "Tryb TwoMachines wymaga silnika szachowego"
-
-#: backend.c:1799
-msgid "TwoMachines mode does not work with ICS mode"
-msgstr "Tryb TwoMachines nie działa w trybie ICS"
-
-#: backend.c:1810
-msgid "Training mode requires a game file"
-msgstr "Tryb treningu wymaga pliku gry"
-
-#: backend.c:1973 backend.c:2028 backend.c:2051 backend.c:2453
-msgid "Error writing to ICS"
-msgstr "Błąd zapisu do ICS"
-
-#: backend.c:1988
-msgid "Error reading from keyboard"
-msgstr "Błąd odczytu z klawiatury"
-
-#: backend.c:1991
-msgid "Got end of file from keyboard"
-msgstr "Wprowadzono EOF z klawiatury"
-
-#: backend.c:2299
-#, c-format
-msgid "Unknown wild type %d"
-msgstr "Nieznany typ wild %d"
-
-#: backend.c:2370 usystem.c:317
-msgid "Error writing to display"
-msgstr "Błąd zapisu do ekranu"
-
-#. TRANSLATORS: to 'kibitz' is to send a message to all players and the game observers
-#: backend.c:3138
-#, c-format
-msgid "your opponent kibitzes: %s"
-msgstr "przeciwnik doradza: %s"
-
-#: backend.c:3677
-msgid "Error gathering move list: two headers"
-msgstr "Błąd podczas tworzenia listy ruchów: dwa nagłówki"
-
-#: backend.c:3724
-msgid "Error gathering move list: nested"
-msgstr "Błąd podczas tworzenia listy ruchów: zagnieżdżona lista"
-
-#: backend.c:3828 backend.c:4254 backend.c:4458 backend.c:5017 backend.c:5021
-#: backend.c:7292 backend.c:13054 backend.c:14805 backend.c:14882
-#: backend.c:14928 backend.c:14934 backend.c:14939 backend.c:14944
-msgid "vs."
-msgstr "vs."
-
-#: backend.c:3956
-msgid "Illegal move (rejected by ICS)"
-msgstr "Niedozwolony ruch (odrzucony przez ICS)"
-
-#: backend.c:4302
-msgid "Connection closed by ICS"
-msgstr "Połączenie zamknięte przez ICS"
-
-#: backend.c:4304
-msgid "Error reading from ICS"
-msgstr "Błąd odczytu z ICS"
-
-#: backend.c:4381
-#, c-format
-msgid ""
-"Failed to parse board string:\n"
-"\"%s\""
-msgstr ""
-"Nie udało się przetworzyć ciągu znaków szachownicy:\n"
-"\"%s\""
-
-#: backend.c:4390 backend.c:10628
-msgid "Game too long; increase MAX_MOVES and recompile"
-msgstr ""
-"Gra jest za długa; należy zwiększyć wartość MAX_MOVES i skompilować ponownie"
-
-#: backend.c:4509
-msgid "Error gathering move list: extra board"
-msgstr "Błąd podczas tworzenia listy ruchów: dodatkowa szachownica"
-
-#: backend.c:4941 backend.c:4963
-#, c-format
-msgid "Couldn't parse move \"%s\" from ICS"
-msgstr "Nie można przetworzyć ruchu \"%s\" z ICS"
-
-#: backend.c:5228
-#, c-format
-msgid "say Internal error; bad moveType %d (%d,%d-%d,%d)"
-msgstr "Błąd wewnętrzny; nieprawidłowy moveType %d (%d,%d-%d,%d)"
-
-#: backend.c:5299
-msgid "You cannot do this while you are playing or observing"
-msgstr "Nie można tego zrobić w czasie gry ani podczas obserwacji"
-
-#: backend.c:6359
-msgid "Recompile to support this BOARD_RANKS or BOARD_FILES!"
-msgstr ""
-"Należy skompilować ponownie, aby włączyć obsługę BOARD_RANKS lub BOARD_FILES!"
-
-#: backend.c:6851
-msgid "You are playing Black"
-msgstr "Grasz czarnymi"
-
-#: backend.c:6860 backend.c:6888
-msgid "You are playing White"
-msgstr "Grasz białymi"
-
-#: backend.c:6870 backend.c:6896 backend.c:7018 backend.c:7043 backend.c:7059
-#: backend.c:15645
-msgid "It is White's turn"
-msgstr "Ruch należy do białych"
-
-#: backend.c:6874 backend.c:6900 backend.c:7026 backend.c:7049 backend.c:7081
-#: backend.c:15637
-msgid "It is Black's turn"
-msgstr "Ruch należy do czarnych"
-
-#: backend.c:6913
-msgid "Displayed position is not current"
-msgstr "Wyświetlona pozycja nie jest aktualna"
-
-#: backend.c:7116
-msgid "rights granted"
-msgstr ""
-
-#: backend.c:7116
-msgid "rights revoked"
-msgstr ""
-
-#: backend.c:7169
-msgid "Illegal move"
-msgstr "Niedozwolony ruch"
-
-#: backend.c:7249
-msgid "End of game"
-msgstr "Koniec gry"
-
-#: backend.c:7252
-msgid "Incorrect move"
-msgstr "Nieprawidłowy ruch"
-
-#: backend.c:7655 backend.c:7811
-msgid "Pull pawn backwards to under-promote"
-msgstr "Należy przeciągnąć pionek w tył, aby dokonać słabej promocji"
-
-#: backend.c:7772
-msgid "only marked squares are legal"
-msgstr ""
-
-#: backend.c:8093
-msgid "Swiss tourney finished"
-msgstr "Zakończono turniej w systemie szwajcarskim"
-
-#: backend.c:8609
-msgid "could not load EGBB library"
-msgstr ""
-
-#: backend.c:8612
-msgid "wrong EGBB version"
-msgstr ""
-
-#: backend.c:8725
-msgid "Invalid pairing from pairing engine"
-msgstr "Nieprawidłowe kojarzenie par"
-
-#: backend.c:8892
-#, c-format
-msgid "Illegal move \"%s\" from %s machine"
-msgstr "Niedozwolony ruch \"%s\" dokonany przez %s silnik"
-
-#: backend.c:9179
-msgid "Bad FEN received from engine"
-msgstr "Nieprawidłowa notacja FEN otrzymana z silnika"
-
-#: backend.c:9280
-msgid "Engine did not send setup for non-standard variant"
-msgstr ""
-
-#: backend.c:9358 backend.c:14667 backend.c:14735
-#, c-format
-msgid "%s does not support analysis"
-msgstr "%s nie obsługuje analizy"
-
-#: backend.c:9424
-#, c-format
-msgid "Illegal move \"%s\" (rejected by %s chess program)"
-msgstr "Niedozwolony ruch \"%s\" (odrzucony przez %s silnik szachowy)"
-
-#: backend.c:9455
-#, c-format
-msgid "Failed to start %s chess program %s on %s: %s\n"
-msgstr "Nie udało się uruchomić %s silnika szachowego %s na %s: %s\n"
-
-#: backend.c:9476
-#, c-format
-msgid "Hint: %s"
-msgstr "Wskazówka: %s"
-
-#: backend.c:9481
-#, c-format
-msgid ""
-"Illegal hint move \"%s\"\n"
-"from %s chess program"
-msgstr ""
-"%2$s silnik szachowy zasugerował\n"
-"niedozwolony ruch \"%1$s\""
-
-#: backend.c:9656
-msgid "Machine accepts your draw offer"
-msgstr "Silnik przyjmuje propozycję remisu"
-
-#: backend.c:9659
-#, fuzzy
-msgid ""
-"Machine offers a draw.\n"
-"Select Action / Draw to accept."
-msgstr ""
-"Silnik proponuje remis\n"
-"Należy wybrać Działanie->Remis, żeby się zgodzić"
-
-#. TRANSLATORS: PV = principal variation, the variation the chess engine thinks is the best for everyone
-#: backend.c:9777
-msgid "failed writing PV"
-msgstr "nie udało się zapisać PV"
-
-#: backend.c:10083
-#, c-format
-msgid "Ambiguous move in ICS output: \"%s\""
-msgstr "Niejednoznaczny ruch na wyjściu ICS: \"%s\""
-
-#: backend.c:10093
-#, c-format
-msgid "Illegal move in ICS output: \"%s\""
-msgstr "Niedozwolony ruch na wyjściu ICS: \"%s\""
-
-#: backend.c:10104
-msgid "Gap in move list"
-msgstr "Luka na liście ruchów"
-
-#: backend.c:10782
-#, c-format
-msgid "Variant %s not supported by %s"
-msgstr "Odmiana %s nie jest obsługiwana przez %s"
-
-#: backend.c:10789
-#, c-format
-msgid ", but %s is"
-msgstr ""
-
-#: backend.c:10945
-#, c-format
-msgid "Startup failure on '%s'"
-msgstr "Błąd uruchamiania w \"%s\""
-
-#: backend.c:10976
-msgid "Waiting for first chess program"
-msgstr "Oczekiwanie na pierwszy silnik szachowy"
-
-#: backend.c:10981 backend.c:14953
-msgid "Waiting for second chess program"
-msgstr "Oczekiwanie na drugi silnik szachowy"
-
-#: backend.c:11030
-msgid "Could not write on tourney file"
-msgstr "Nieudany zapis do pliku turnieju"
-
-#: backend.c:11104
-msgid ""
-"You cannot replace an engine while it is engaged!\n"
-"Terminate its game first."
-msgstr ""
-"Nie można zastąpić silnika w trakcie jego pracy!\n"
-"Należy zakończyć najpierw jego grę."
-
-#: backend.c:11118
-msgid "No engine with the name you gave is installed"
-msgstr "Silnik o podanej nazwie nie jest zainstalowany"
-
-#: backend.c:11120
-msgid ""
-"First change an engine by editing the participants list\n"
-"of the Tournament Options dialog"
-msgstr ""
-"Należy najpierw zmienić silnik, edytując listę uczestników\n"
-"w oknie dialogowym Opcji turnieju."
-
-#: backend.c:11121
-msgid "You can only change one engine at the time"
-msgstr "Można jednocześnie modyfikować tylko jeden silnik"
-
-#: backend.c:11136 backend.c:11285
-#, c-format
-msgid "No engine %s is installed"
-msgstr "Silnik %s nie jest zainstalowany"
-
-#: backend.c:11156
-msgid ""
-"You must supply a tournament file,\n"
-"for storing the tourney progress"
-msgstr ""
-"Należy dostarczyć plik turnieju,\n"
-"żeby móc zapisać jego przebieg"
-
-#: backend.c:11166
-msgid "Not enough participants"
-msgstr "Za mało uczestników"
-
-#: backend.c:11369
-msgid "Bad tournament file"
-msgstr "Nieprawidłowy plik turnieju"
-
-#: backend.c:11381
-msgid "Waiting for other game(s)"
-msgstr "Oczekiwanie na pozostałe gry"
-
-#: backend.c:11394
-msgid "No pairing engine specified"
-msgstr "Nie określono silnika do kojarzenia par"
-
-#: backend.c:11879
-#, c-format
-msgid "Average solving time %4.2f sec (total time %4.2f sec) "
-msgstr ""
-
-#: backend.c:11881
-#, c-format
-msgid "%d avoid-moves played "
-msgstr ""
-
-#: backend.c:11883
-#, c-format
-msgid "Solved %d out of %d (%3.1f%%) "
-msgstr ""
-
-#: backend.c:11886
-#, c-format
-msgid "Match %s vs. %s: final score %d-%d-%d"
-msgstr "Mecz %s vs. %s: ostateczny wynik %d-%d-%d"
-
-#: backend.c:12363 backend.c:12399
-#, c-format
-msgid "Illegal move: %d.%s%s"
-msgstr "Niedozwolony ruch: %d.%s%s"
-
-#: backend.c:12388
-#, c-format
-msgid "Ambiguous move: %d.%s%s"
-msgstr "Niejednoznaczny ruch: %d.%s%s"
-
-#: backend.c:12442 backend.c:13495 backend.c:13695 backend.c:14065
-#, c-format
-msgid "Can't open \"%s\""
-msgstr "Nie można otworzyć \"%s\""
-
-#: backend.c:12454 menus.c:118
-msgid "Cannot build game list"
-msgstr "Nie można utworzyć listy gier"
-
-#: backend.c:12539
-msgid "No more games in this message"
-msgstr "Nie ma więcej gier w tej wiadomości"
-
-#: backend.c:12579
-msgid "No game has been loaded yet"
-msgstr "Nie wczytano jeszcze żadnej gry"
-
-#: backend.c:12583 backend.c:13476 ngamelist.c:129
-msgid "Can't back up any further"
-msgstr "Dalsze cofanie jest niemożliwe"
-
-#: backend.c:13030
-msgid "Game number out of range"
-msgstr "Numer gry jest poza zakresem"
-
-#: backend.c:13041
-msgid "Can't seek on game file"
-msgstr "Niemożliwe przemieszczanie w pliku gry"
-
-#: backend.c:13099
-msgid "Game not found in file"
-msgstr "Nie znaleziono gry w pliku"
-
-#: backend.c:13230 backend.c:13573
-msgid "Bad FEN position in file"
-msgstr "Nieprawidłowa pozycja FEN w pliku"
-
-#: backend.c:13388
-msgid "No moves in game"
-msgstr "Brak ruchów w grze"
-
-#: backend.c:13472
-msgid "No position has been loaded yet"
-msgstr "Nie wczytano jeszcze żadnej pozycji"
-
-#: backend.c:13533 backend.c:13544
-msgid "Can't seek on position file"
-msgstr "Niemożliwe przemieszczanie w pliku pozycji"
-
-#: backend.c:13551 backend.c:13563
-msgid "Position not found in file"
-msgstr "Nie znaleziono pozycji w pliku"
-
-#: backend.c:13610
-msgid "Black to play"
-msgstr "Czarne do gry"
-
-#: backend.c:13613
-msgid "White to play"
-msgstr "Białe do gry"
-
-#: backend.c:13700 backend.c:14070
-msgid "Waiting for access to save file"
-msgstr "Oczekiwanie na dostęp, aby zapisać plik"
-
-#: backend.c:13702
-msgid "Saving game"
-msgstr "Zapisywanie gry"
-
-#: backend.c:13703
-msgid "Bad Seek"
-msgstr "Nieprawidłowe szukanie"
-
-#: backend.c:14072
-msgid "Saving position"
-msgstr "Zapisywanie pozycji"
-
-#: backend.c:14198
-msgid ""
-"You have edited the game history.\n"
-"Use Reload Same Game and make your move again."
-msgstr ""
-"Zmodyfikowano historię gry.\n"
-"Należy wybrać Wczytaj grę ponownie i wykonać ruch jeszcze raz."
-
-#: backend.c:14203
-msgid ""
-"You have entered too many moves.\n"
-"Back up to the correct position and try again."
-msgstr ""
-"Wprowadzono za dużo ruchów.\n"
-"Proszę cofnąć do prawidłowej pozycji i spróbować ponownie."
-
-#: backend.c:14208
-msgid ""
-"Displayed position is not current.\n"
-"Step forward to the correct position and try again."
-msgstr ""
-"Wyświetlona pozycja nie jest aktualna.\n"
-"Proszę przejść do przodu do prawidłowej pozycji i spróbować ponownie."
-
-#: backend.c:14255
-msgid "You have not made a move yet"
-msgstr "Jeszcze nie wykonano ruchu"
-
-#: backend.c:14276
-msgid ""
-"The cmail message is not loaded.\n"
-"Use Reload CMail Message and make your move again."
-msgstr ""
-"Nie wczytano wiadomości cmail.\n"
-"Należy wybrać Wczytaj wiadomość cmail ponownie i wykonać ruch jeszcze raz."
-
-#: backend.c:14281
-msgid "No unfinished games"
-msgstr "Brak niedokończonych gier"
-
-#: backend.c:14287
-#, c-format
-msgid ""
-"You have already mailed a move.\n"
-"Wait until a move arrives from your opponent.\n"
-"To resend the same move, type\n"
-"\"cmail -remail -game %s\"\n"
-"on the command line."
-msgstr ""
-"Wysłano już ruch.\n"
-"Należy poczekać na nadejście ruchu od przeciwnika.\n"
-"Aby wysłać ruch ponownie, należy wpisać\n"
-"\"cmail -remail -game %s\"\n"
-"w wierszu poleceń."
-
-#: backend.c:14302
-msgid "Failed to invoke cmail"
-msgstr "Nie udało się wywołać cmail"
-
-#: backend.c:14364
-#, c-format
-msgid "Waiting for reply from opponent\n"
-msgstr "Oczekiwanie na odpowiedź od przeciwnika\n"
-
-#: backend.c:14386
-#, c-format
-msgid "Still need to make move for game\n"
-msgstr "Wciąż trzeba wykonać ruch w grze\n"
-
-#: backend.c:14390
-#, c-format
-msgid "Still need to make moves for both games\n"
-msgstr "Wciąż trzeba wykonać ruch w obu grach\n"
-
-#: backend.c:14394
-#, c-format
-msgid "Still need to make moves for all %d games\n"
-msgstr "Wciąż trzeba wykonać ruch we wszystkich grach %d\n"
-
-#: backend.c:14401
-#, c-format
-msgid "Still need to make a move for game %s\n"
-msgstr "Wciąż trzeba wykonać ruch w grze %s\n"
-
-#: backend.c:14407
-#, c-format
-msgid "No unfinished games\n"
-msgstr "Brak niedokończonych gier\n"
-
-#: backend.c:14409
-#, c-format
-msgid "Ready to send mail\n"
-msgstr "Gotowy do wysłania wiadomości\n"
-
-#: backend.c:14414
-#, c-format
-msgid "Still need to make moves for games %s\n"
-msgstr "Wciąż trzeba wykonać ruch w grach %s\n"
-
-#: backend.c:14617
-msgid "Edit comment"
-msgstr "Edytuj komentarz"
-
-#: backend.c:14619
-#, c-format
-msgid "Edit comment on %d.%s%s"
-msgstr "Edytowanie komentarza do %d.%s%s"
-
-#: backend.c:14674
-#, c-format
-msgid "You are not observing a game"
-msgstr "Gra nie jest obserwowana"
-
-#: backend.c:14785
-msgid "It is not White's turn"
-msgstr "Ruch nie należy do białych"
-
-#: backend.c:14866
-msgid "It is not Black's turn"
-msgstr "Ruch nie należy do czarnych"
-
-#: backend.c:14974
-#, c-format
-msgid "Starting %s chess program"
-msgstr "Uruchamianie %s silnika szachowego"
-
-#: backend.c:15002 backend.c:16189
-#, fuzzy
-msgid ""
-"Wait until your turn,\n"
-"or select 'Move Now'."
-msgstr ""
-"Proszę poczekać na swój ruch\n"
-"lub wybrać Wykonaj ruch"
-
-#: backend.c:15145
-msgid "Training mode off"
-msgstr "Tryb treningu wył."
-
-#: backend.c:15153
-msgid "Training mode on"
-msgstr "Tryb treningu wł."
-
-#: backend.c:15156
-msgid "Already at end of game"
-msgstr "Zakończono już grę"
-
-#: backend.c:15246
-msgid "Warning: You are still playing a game"
-msgstr "Ostrzeżenie: Nie zakończono jeszcze gry"
-
-#: backend.c:15249
-msgid "Warning: You are still observing a game"
-msgstr "Ostrzeżenie: Nie zakończono obserwacji gry"
-
-#: backend.c:15252
-msgid "Warning: You are still examining a game"
-msgstr "Ostrzeżenie: Nie zakończono badania gry"
-
-#: backend.c:15322
-msgid "Click clock to clear board"
-msgstr "Kliknij zegar, aby wyczyścić szachownicę"
-
-#: backend.c:15332
-msgid "Close ICS engine analyze..."
-msgstr "Zamknij analizę silnika ICS..."
-
-#: backend.c:15662
-msgid "That square is occupied"
-msgstr "To pole jest zajęte"
-
-#: backend.c:15686 backend.c:15712
-msgid "There is no pending offer on this move"
-msgstr "Brak oczekującej propozycji tego ruchu"
-
-#: backend.c:15748 backend.c:15759
-msgid "Your opponent is not out of time"
-msgstr "Przeciwnik nie przekroczył limitu czasu"
-
-#: backend.c:15827
-msgid "You must make your move before offering a draw"
-msgstr "Przed zaproponowaniem remisu należy wykonać ruch"
-
-#: backend.c:16171
-msgid "You are not examining a game"
-msgstr "Żadna gra nie jest badana"
-
-#: backend.c:16175
-msgid "You can't revert while pausing"
-msgstr "Nie można cofać podczas pauzy"
-
-#: backend.c:16229 backend.c:16236
-msgid "It is your turn"
-msgstr "Ruch należy do ciebie"
-
-#: backend.c:16287 backend.c:16294 backend.c:16380 backend.c:16387
-#, fuzzy
-msgid "Wait until your turn."
-msgstr "Proszę poczekać na swój ruch"
-
-#: backend.c:16299
-msgid "No hint available"
-msgstr "Brak wskazówek"
-
-#: backend.c:16314 backend.c:16345 ngamelist.c:365
-msgid "Game list not loaded or empty"
-msgstr "Nie wczytano listy gier lub jest ona pusta"
-
-#: backend.c:16352
-msgid "Book file exists! Try again for overwrite."
-msgstr "Plik książki już istnieje! Należy spróbować ponownie, aby nadpisać."
-
-#: backend.c:16833
-#, c-format
-msgid "Error writing to %s chess program"
-msgstr "Błąd zapisu do %s silnika szachowego"
-
-#: backend.c:16836 backend.c:16867
-#, c-format
-msgid "%s program exits in draw position (%s)"
-msgstr "%s silnik znajduje się w martwej pozycji (%s)"
-
-#: backend.c:16862
-#, c-format
-msgid "Error: %s chess program (%s) exited unexpectedly"
-msgstr "Błąd: %s silnik szachowy (%s) zakończył nieoczekiwanie pracę"
-
-#: backend.c:16880
-#, c-format
-msgid "Error reading from %s chess program (%s)"
-msgstr "Błąd odczytu z %s silnika szachowego (%s)"
-
-#: backend.c:17312
-#, c-format
-msgid "%s engine has too many options\n"
-msgstr "%s silnik ma za dużo opcji\n"
-
-#: backend.c:17468
-msgid "Displayed move is not current"
-msgstr "Wyświetlony ruch nie jest aktualny"
-
-#: backend.c:17477
-msgid "Could not parse move"
-msgstr "Nie można przetworzyć ruchu"
-
-#: backend.c:17602 backend.c:17624
-msgid "Both flags fell"
-msgstr "Spadły obie chorągiewki"
-
-#: backend.c:17604
-msgid "White's flag fell"
-msgstr "Spadła chorągiewka białych"
-
-#: backend.c:17626
-msgid "Black's flag fell"
-msgstr "Spadła chorągiewka czarnych"
-
-#: backend.c:17757
-msgid "Clock adjustment not allowed in auto-flag mode"
-msgstr "Nie można nastawiać zegara w trybie automatycznej chorągiewki"
-
-#: backend.c:18719
-msgid "Bad FEN position in clipboard"
-msgstr "Nieprawidłowa pozycja FEN w schowku"
-
-#: book.c:598 book.c:874
-msgid "Polyglot book not valid"
-msgstr "Nieprawidłowa książka polyglot"
-
-#: book.c:722
-msgid "Book Fault"
-msgstr "Błąd książki"
-
-#: book.c:877
-msgid "Hash keys are different"
-msgstr "Klucze hash nie są takie same"
-
-#: book.c:1053
-msgid "Could not create book"
-msgstr "Nie można utworzyć książki"
-
-#: dialogs.c:286
-msgid "Tournament file:          "
-msgstr "Plik turnieju:          "
-
-#: dialogs.c:287
-#, fuzzy
-msgid "For concurrent playing of tourney with multiple XBoards:"
-msgstr "      turnieju za pomocą wielu programów XBoard)"
-
-#: dialogs.c:288
-msgid "Sync after round"
-msgstr "Synchronizacja po rundzie"
-
-#: dialogs.c:289
-msgid "Sync after cycle"
-msgstr "Synchronizacja po cyklu"
-
-#: dialogs.c:290
-msgid "Tourney participants:"
-msgstr "Uczestnicy turnieju:"
-
-#: dialogs.c:291
-msgid "Select Engine:"
-msgstr "Wybór silnika:"
-
-#: dialogs.c:299
-msgid "Tourney type (0 = round-robin, 1 = gauntlet):"
-msgstr "Typ turnieju (0 = system-kołowy, 1 = system-gauntlet):"
-
-#: dialogs.c:300
-msgid "Number of tourney cycles (or Swiss rounds):"
-msgstr "Liczba cykli turnieju (lub rund szwajcarskich)"
-
-#: dialogs.c:301
-msgid "Default Number of Games in Match (or Pairing):"
-msgstr "Domyślna liczba gier podczas meczu (lub na parę)"
-
-#: dialogs.c:302
-msgid "Pause between Match Games (msec):"
-msgstr "Pauza między grami meczowymi (ms):"
-
-#: dialogs.c:303
-msgid "Save Tourney Games on:"
-msgstr "Zapisuj gry turnieju do:"
-
-#: dialogs.c:304
-msgid "Game File with Opening Lines:"
-msgstr "Plik gry z wierszami otwierającymi:"
-
-#: dialogs.c:305
-msgid "Game Number (-1 or -2 = Auto-Increment):"
-msgstr "Numer gry (-1 lub -2 = przyrost automatyczny):"
-
-#: dialogs.c:306
-msgid "File with Start Positions:"
-msgstr "Plik z pozycjami startowymi:"
-
-#: dialogs.c:307
-msgid "Position Number (-1 or -2 = Auto-Increment):"
-msgstr "Numer pozycji (-1 lub -2 = przyrost automatyczny):"
-
-#: dialogs.c:308
-msgid "Rewind Index after this many Games (0 = never):"
-msgstr "Przewiń indeks wstecz po liczbie gier równej (0 = nigdy):"
-
-#: dialogs.c:309
-msgid "Disable own engine books by default"
-msgstr "Wyłącz domyślnie własne książki silnika"
-
-#: dialogs.c:310 dialogs.c:1840
-msgid "Time Control"
-msgstr "Kontrola czasu"
-
-#: dialogs.c:311
-#, fuzzy
-msgid "Common Engine"
-msgstr "Wspólne ustawienia silników..."
-
-#: dialogs.c:312 dialogs.c:446
-msgid "General Options"
-msgstr "Opcje ogólne"
-
-#: dialogs.c:313
-msgid "Continue Later"
-msgstr ""
-
-#: dialogs.c:314
-msgid "Replace Engine"
-msgstr "Zastąp silnik"
-
-#: dialogs.c:315
-msgid "Upgrade Engine"
-msgstr "Aktualizuj silnik"
-
-#: dialogs.c:316
-msgid "Clone Tourney"
-msgstr "Skopiuj turniej"
-
-#: dialogs.c:356
-msgid "First you must specify an existing tourney file to clone"
-msgstr "Należy najpierw określić istniejący plik turnieju do skopiowania"
-
-#: dialogs.c:372 dialogs.c:1549
-msgid "# no engines are installed"
-msgstr "# nie zainstalowano żadnych silników"
-
-#: dialogs.c:380
-msgid "Internal error: PARTICIPANTS set wrong"
-msgstr ""
-
-#: dialogs.c:388
-#, fuzzy
-msgid "Tournament Options"
-msgstr "Opcje dźwięków"
-
-#: dialogs.c:407
-msgid "Absolute Analysis Scores"
-msgstr "Wyniki absolutnej analizy"
-
-#: dialogs.c:408
-msgid "Almost Always Queen (Detour Under-Promote)"
-msgstr "Prawie zawsze hetman (okrężna słaba promocja)"
-
-#: dialogs.c:409 menus.c:729
-msgid "Animate Dragging"
-msgstr "Animowane przesuwanie"
-
-#: dialogs.c:410 menus.c:730
-msgid "Animate Moving"
-msgstr "Animowany ruch"
-
-#: dialogs.c:411 menus.c:731
-msgid "Auto Flag"
-msgstr "Automatyczna chorągiewka"
-
-#: dialogs.c:412 menus.c:732
-msgid "Auto Flip View"
-msgstr "Autoodwracanie szachownicy"
-
-#: dialogs.c:413 menus.c:733
-msgid "Blindfold"
-msgstr "Niewidzialne bierki"
-
-#. TRANSLATORS: the drop menu is used to drop a piece, e.g. during bughouse or editing a position
-#: dialogs.c:415
-msgid "Drop Menu"
-msgstr "Rozwijane menu"
-
-#: dialogs.c:416
-msgid "Enable Variation Trees"
-msgstr "Włącz drzewo alternatywnych ruchów"
-
-#: dialogs.c:417
-msgid "Headers in Engine Output Window"
-msgstr ""
-
-#: dialogs.c:418
-msgid "Hide Thinking from Human"
-msgstr "Ukryj myślenie przed graczem"
-
-#: dialogs.c:419 menus.c:738
-msgid "Highlight Last Move"
-msgstr "Podświetl ostatni ruch"
-
-#: dialogs.c:420
-msgid "Highlight with Arrow"
-msgstr "Podświetl kursorem"
-
-#: dialogs.c:421 menus.c:741
-msgid "One-Click Moving"
-msgstr "Ruch jednym kliknięciem"
-
-#: dialogs.c:422
-msgid "Periodic Updates (in Analysis Mode)"
-msgstr "Częste aktualizacje (w trybie analizy)"
-
-#: dialogs.c:424
-msgid "Play Move(s) of Clicked PV (Analysis)"
-msgstr "Odtwórz ruch(y) PV (analiza)"
-
-#: dialogs.c:425 dialogs.c:626 menus.c:743
-msgid "Ponder Next Move"
-msgstr "Myślenie nad następnym ruchem"
-
-#: dialogs.c:426
-msgid "Popup Exit Messages"
-msgstr "Pytaj przed wyjściem"
-
-#: dialogs.c:427 menus.c:745
-msgid "Popup Move Errors"
-msgstr "Błędy ruchu w oknie podręcznym"
-
-#: dialogs.c:428
-msgid "Scores in Move List"
-msgstr "Wyniki na liście ruchów"
-
-#: dialogs.c:429
-msgid "Show Coordinates"
-msgstr "Wyświetlanie współrzędnych"
-
-#: dialogs.c:430
-msgid "Show Target Squares"
-msgstr "Wyświetlanie możliwych ruchów"
-
-#: dialogs.c:431
-msgid "Sticky Windows"
-msgstr "Przyklejanie okien"
-
-#: dialogs.c:432 menus.c:748
-msgid "Test Legality"
-msgstr "Blokowanie niedozwolonych ruchów"
-
-#: dialogs.c:433
-msgid "Top-Level Dialogs"
-msgstr "Okna dialogowe najwyższego poziomu"
-
-#: dialogs.c:434
-msgid "Flash Moves (0 = no flashing):"
-msgstr "Migający ruch (0 = brak migania):"
-
-#: dialogs.c:435
-msgid "Flash Rate (high = fast):"
-msgstr "Szybkość migania (wysoka = szybka):"
-
-#: dialogs.c:436
-msgid "Animation Speed (high = slow):"
-msgstr "Szybkość animacji (wysoka = wolna):"
-
-#: dialogs.c:437
-msgid "Zoom factor in Evaluation Graph:"
-msgstr "Współczynnik powiększenia na Wykresie wyników"
-
-#: dialogs.c:457
-#, fuzzy
-msgid "Normal"
-msgstr "normalne"
-
-#: dialogs.c:458
-#, fuzzy
-msgid "Makruk"
-msgstr "makruk"
-
-#: dialogs.c:459
-msgid "FRC"
-msgstr "szachy losowe (960)"
-
-#: dialogs.c:460
-#, fuzzy
-msgid "Shatranj"
-msgstr "szatrandż"
-
-#: dialogs.c:461
-#, fuzzy
-msgid "Wild castle"
-msgstr "wild castle"
-
-#: dialogs.c:462
-#, fuzzy
-msgid "Knightmate"
-msgstr "knightmate"
-
-#: dialogs.c:463
-#, fuzzy
-msgid "No castle"
-msgstr "bez roszady"
-
-#: dialogs.c:464
-#, fuzzy
-msgid "Cylinder *"
-msgstr "cylindryczne *"
-
-#: dialogs.c:465
-msgid "3-checks"
-msgstr "do 3 szachów"
-
-#: dialogs.c:466
-msgid "berolina *"
-msgstr "berolina *"
-
-#: dialogs.c:467
-msgid "atomic"
-msgstr "atomowe"
-
-#: dialogs.c:468
-msgid "two kings"
-msgstr "dwa króle"
-
-#: dialogs.c:469
-msgid " "
-msgstr " "
-
-#: dialogs.c:470
-msgid "Spartan"
-msgstr "Spartan"
-
-#: dialogs.c:471
-msgid "Board size ( -1 = default for selected variant):"
-msgstr "Rozmiar szachownicy (-1 = domyślny dla wybranego wariantu):"
-
-#: dialogs.c:472
-msgid "Number of Board Ranks:"
-msgstr "Liczba rzędów szachownicy:"
-
-#: dialogs.c:473
-msgid "Number of Board Files:"
-msgstr "Liczba kolumn szachownicy:"
-
-#: dialogs.c:474
-msgid "Holdings Size:"
-msgstr "Rozmiar rezerwy:"
-
-#: dialogs.c:476
-msgid ""
-"Variants marked with * can only be played\n"
-"with legality testing off."
-msgstr ""
-
-#: dialogs.c:478
-msgid "ASEAN"
-msgstr ""
-
-#: dialogs.c:479
-msgid "Great Shatranj (10x8)"
-msgstr "wielki szatrandż (10x8)"
-
-#: dialogs.c:480
-msgid "Seirawan"
-msgstr "Seirawan"
-
-#: dialogs.c:481
-#, fuzzy
-msgid "Falcon (10x8)"
-msgstr "falcon (10x8)"
-
-#: dialogs.c:482
-msgid "Superchess"
-msgstr "Superchess"
-
-#: dialogs.c:483
-msgid "Capablanca (10x8)"
-msgstr "szachy Capablanki (10x8)"
-
-#: dialogs.c:484
-#, fuzzy
-msgid "Crazyhouse"
-msgstr "crazyhouse"
-
-#: dialogs.c:485
-msgid "Gothic (10x8)"
-msgstr "Gothic (10x8)"
-
-#: dialogs.c:486
-#, fuzzy
-msgid "Bughouse"
-msgstr "kloc"
-
-#: dialogs.c:487
-#, fuzzy
-msgid "Janus (10x8)"
-msgstr "janus (10x8)"
-
-#: dialogs.c:488
-#, fuzzy
-msgid "Suicide"
-msgstr "antyszachy (suicide)"
-
-#: dialogs.c:489
-msgid "CRC (10x8)"
-msgstr "losowe szachy Capablanki (10x8)"
-
-#: dialogs.c:490
-msgid "give-away"
-msgstr "antyszachy (give-away)"
-
-#: dialogs.c:491
-msgid "grand (10x10)"
-msgstr "grand (10x10)"
-
-#: dialogs.c:492
-msgid "losers"
-msgstr "antyszachy (losers)"
-
-#: dialogs.c:493
-msgid "shogi (9x9)"
-msgstr "shōgi (9x9)"
-
-#: dialogs.c:494
-msgid "fairy"
-msgstr "fairy"
-
-#: dialogs.c:495
-msgid "xiangqi (9x10)"
-msgstr "xiangqi (9x10)"
-
-#: dialogs.c:496
-msgid "mighty lion"
-msgstr ""
-
-#: dialogs.c:497
-msgid "courier (12x8)"
-msgstr "courier (12x8)"
-
-#: dialogs.c:498
-msgid "elven chess (10x10)"
-msgstr ""
-
-#: dialogs.c:499
-#, fuzzy
-msgid "chu shogi (12x12)"
-msgstr "shōgi (9x9)"
-
-#: dialogs.c:543
-#, c-format
-msgid "Warning: second engine (%s) does not support this!"
-msgstr "Ostrzeżenie: drugi silnik (%s) nie obsługuje tego!"
-
-#: dialogs.c:572
-#, fuzzy, c-format
-msgid "Only bughouse is not available in viewer mode."
-msgstr "Tylko odmiana kloc nie jest dostępna w trybie obserwatora"
-
-#: dialogs.c:573
-#, fuzzy, c-format
-msgid ""
-"All variants not supported by the first engine\n"
-"(currently %s) are disabled."
-msgstr ""
-"Odmiany nieobsługiwane przez pierwszy silnik\n"
-"(obecnie %s) są niedostępne"
-
-#: dialogs.c:595
-msgid "New Variant"
-msgstr "Nowa odmiana"
-
-#: dialogs.c:627
-msgid "Maximum Number of CPUs per Engine:"
-msgstr "Maksymalna liczba rdzeni na silnik:"
-
-#: dialogs.c:628
-msgid "Polygot Directory:"
-msgstr "Katalog książki polyglot:"
-
-#: dialogs.c:629
-msgid "Hash-Table Size (MB):"
-msgstr "Rozmiary tablicy mieszającej (MB)"
-
-#: dialogs.c:630
-#, fuzzy
-msgid "EGTB Path:"
-msgstr "Ścieżka do Nalimov EGTB:"
-
-#: dialogs.c:631
-msgid "EGTB Cache Size (MB):"
-msgstr "Rozmiar pamięci podręcznej dla EGTB (MB):"
-
-#: dialogs.c:632
-msgid "Use GUI Book"
-msgstr "Używanie książki GUI"
-
-#: dialogs.c:633
-msgid "Opening-Book Filename:"
-msgstr "Nazwa pliku książki otwarć:"
-
-#: dialogs.c:634
-msgid "Book Depth (moves):"
-msgstr "Pojemność książki (w ruchach):"
-
-#: dialogs.c:635
-msgid "Book Variety (0) vs. Strength (100):"
-msgstr "Różnorodność (0) książki a siła (100):"
-
-#: dialogs.c:636
-msgid "Engine #1 Has Own Book"
-msgstr "Silnik #1 ma własną książkę"
-
-#: dialogs.c:637
-msgid "Engine #2 Has Own Book          "
-msgstr "Silnik #2 ma własną książkę          "
-
-#: dialogs.c:648
-msgid "Common Engine Settings"
-msgstr "Wspólne ustawienia silników"
-
-#: dialogs.c:654
-msgid "Detect all Mates"
-msgstr "Wykrywanie wszystkich matów i patów"
-
-#: dialogs.c:655
-msgid "Verify Engine Result Claims"
-msgstr "Weryfikowanie żądań silnika o wynik"
-
-#: dialogs.c:656
-msgid "Draw if Insufficient Mating Material"
-msgstr "Remis w przypadku niewystarczającego materiału matowego"
-
-#: dialogs.c:657
-msgid "Adjudicate Trivial Draws (3-Move Delay)"
-msgstr "Rozstrzyganie zgodnych remisów (3-ruchowe opóźnienie)"
-
-#: dialogs.c:658
-msgid "N-Move Rule:"
-msgstr "Liczba ruchów przed remisem:"
-
-#: dialogs.c:659
-msgid "N-fold Repeats:"
-msgstr "Liczba powtórzeń ruchu:"
-
-#: dialogs.c:660
-msgid "Draw after N Moves Total:"
-msgstr "Remis po całkowitej liczbie ruchów:"
-
-#: dialogs.c:661
-msgid "Win / Loss Threshold:"
-msgstr "Próg zwycięstwa / przegranej"
-
-#: dialogs.c:662
-msgid "Negate Score of Engine #1"
-msgstr "Negacja wyniku silnika #1"
-
-#: dialogs.c:663
-msgid "Negate Score of Engine #2"
-msgstr "Negacja wyniku silnika #2"
-
-#: dialogs.c:670
-msgid "Adjudicate non-ICS Games"
-msgstr "Rozstrzyganie gier spoza ICS"
-
-#: dialogs.c:683
-msgid "Auto-Kibitz"
-msgstr "Autodoradzanie"
-
-#: dialogs.c:684
-msgid "Auto-Comment"
-msgstr "Autokomentowanie"
-
-#: dialogs.c:685
-msgid "Auto-Observe"
-msgstr "Autoobserwacja"
-
-#: dialogs.c:686
-msgid "Auto-Raise Board"
-msgstr "Autowysuwanie szachownicy"
-
-#: dialogs.c:687
-msgid "Auto-Create Logon Script"
-msgstr "Autotworzenie skryptu logowania"
-
-#: dialogs.c:688
-msgid "Background Observe while Playing"
-msgstr "Obserwacja w tle podczas gry"
-
-#: dialogs.c:689
-msgid "Dual Board for Background-Observed Game"
-msgstr "Podwójna szachownica podczas obserwacji w tle"
-
-#: dialogs.c:690
-msgid "Get Move List"
-msgstr "Pobieranie listy ruchów"
-
-#: dialogs.c:691
-msgid "Quiet Play"
-msgstr "Cicha gra"
-
-#: dialogs.c:692
-msgid "Seek Graph"
-msgstr "Wykres gier"
-
-#: dialogs.c:693
-msgid "Auto-Refresh Seek Graph"
-msgstr "Autoodświeżanie wykresu gier"
-
-#: dialogs.c:694
-msgid "Auto-InputBox PopUp"
-msgstr "Podręczne okno poleceń"
-
-#: dialogs.c:695
-#, fuzzy
-msgid "Quit after game"
-msgstr "Oczekiwanie na pozostałe gry"
-
-#: dialogs.c:696
-msgid "Premove"
-msgstr "Premove"
-
-#: dialogs.c:697
-msgid "Premove for White"
-msgstr "Premove dla białych"
-
-#: dialogs.c:698
-msgid "First White Move:"
-msgstr "Pierwszy ruch białych:"
-
-#: dialogs.c:699
-msgid "Premove for Black"
-msgstr "Premove dla czarnych"
-
-#: dialogs.c:700
-msgid "First Black Move:"
-msgstr "Pierwszy ruch czarnych"
-
-#: dialogs.c:702
-msgid "Alarm"
-msgstr "Alarm"
-
-#: dialogs.c:703
-msgid "Alarm Time (msec):"
-msgstr "Czas alarmu (ms):"
-
-#: dialogs.c:705
-msgid "Colorize Messages"
-msgstr "Kolorowanie wiadomości"
-
-#: dialogs.c:706
-msgid "Shout Text Colors:"
-msgstr "Kolory tekstu wiadomości shout"
-
-#: dialogs.c:707
-msgid "S-Shout Text Colors:"
-msgstr "Kolory tekstu wiadomości S-Shout:"
-
-#: dialogs.c:708
-msgid "Channel #1 Text Colors:"
-msgstr "Kolory tekstu kanału #1:"
-
-#: dialogs.c:709
-msgid "Other Channel Text Colors:"
-msgstr "Kolory tekstu pozostałych kanałów"
-
-#: dialogs.c:710
-msgid "Kibitz Text Colors:"
-msgstr "Kolory tekstu porad:"
-
-#: dialogs.c:711
-msgid "Tell Text Colors:"
-msgstr "Kolory tekstu wiadomości tell:"
-
-#: dialogs.c:712
-msgid "Challenge Text Colors:"
-msgstr "Kolory tekstu wyzwania:"
-
-#: dialogs.c:713
-msgid "Request Text Colors:"
-msgstr "Kolory tekstu prośby:"
-
-#: dialogs.c:714
-msgid "Seek Text Colors:"
-msgstr "Kolory tekstu propozycji gier:"
-
-#: dialogs.c:715
-#, fuzzy
-msgid "Other Text Colors:"
-msgstr "Kolory tekstu pozostałych kanałów"
-
-#: dialogs.c:722
-msgid "ICS Options"
-msgstr "Opcje ICS"
-
-#: dialogs.c:727
-msgid "Exact position match"
-msgstr "Ścisłe dopasowanie pozycji"
-
-#: dialogs.c:727
-msgid "Shown position is subset"
-msgstr "Wyświetlona pozycja jest podzbiorem"
-
-#: dialogs.c:727
-msgid "Same material with exactly same Pawn chain"
-msgstr "Ten sam materiał z dokładnie takim samym szeregiem pionków"
-
-#: dialogs.c:728
-msgid "Same material"
-msgstr "Ten sam materiał"
-
-#: dialogs.c:728
-msgid "Material range (top board half optional)"
-msgstr "Zasięg materiału (opcjonalnie górna połowa szachownicy)"
-
-#: dialogs.c:728
-msgid "Material difference (optional stuff balanced)"
-msgstr "Różnica materiału (zbalansowany materiał dodatkowy)"
-
-#: dialogs.c:743
-msgid "Auto-Display Tags"
-msgstr "Autowyświetlanie znaczników"
-
-#: dialogs.c:744
-msgid "Auto-Display Comment"
-msgstr "Autowyświetlanie komentarzy"
-
-#: dialogs.c:745
-msgid ""
-"Auto-Play speed of loaded games\n"
-"(0 = instant, -1 = off):"
-msgstr ""
-"Szybkość rozgrywki wczytywanych gier\n"
-"(0 = natychmiastowa, -1 = wył.):"
-
-#: dialogs.c:746
-msgid "Seconds per Move:"
-msgstr "Liczba sekund na ruch:"
-
-#: dialogs.c:747
-msgid ""
-"\n"
-"options to use in game-viewer mode:"
-msgstr ""
-"\n"
-"opcje do użycia w trybie game-viewer:"
-
-#: dialogs.c:749
-msgid ""
-"\n"
-"Thresholds for position filtering in game list:"
-msgstr ""
-"\n"
-"Próg filtrowania pozycji na liście gier:"
-
-#: dialogs.c:750
-msgid "Elo of strongest player at least:"
-msgstr "Najmniejsza liczba punktów elo najsilniejszego gracza:"
-
-#: dialogs.c:751
-msgid "Elo of weakest player at least:"
-msgstr "Najmniejsza liczba punktów elo najsłabszego gracza:"
-
-#: dialogs.c:752
-msgid "No games before year:"
-msgstr "Pominięcie gier sprzed roku:"
-
-#: dialogs.c:753
-msgid "Minimum nr consecutive positions:"
-msgstr "Minimum kolejnych pozycji:"
-
-#: dialogs.c:755
-msgid "Search mode:"
-msgstr "Tryb wyszukiwania:"
-
-#: dialogs.c:756
-msgid "Also match reversed colors"
-msgstr "Dopasowanie odwrotnych kolorów"
-
-#: dialogs.c:757
-msgid "Also match left-right flipped position"
-msgstr "Dopasowanie pozycji z prawej i lewej strony"
-
-#: dialogs.c:766
-msgid "Load Game Options"
-msgstr "Opcje wczytywania gry"
-
-#: dialogs.c:778
-msgid "Auto-Save Games"
-msgstr "Autozapis gier"
-
-#: dialogs.c:779
-msgid "Own Games Only"
-msgstr "Tylko własne gry"
-
-#: dialogs.c:780
-msgid "Save Games on File:"
-msgstr "Zapisywanie gier do pliku:"
-
-#: dialogs.c:781
-msgid "Save Final Positions on File:"
-msgstr "Zapisywanie końcowych pozycji do pliku:"
-
-#: dialogs.c:782
-msgid "PGN Event Header:"
-msgstr "Nazwa turnieju w zapisie PGN:"
-
-#: dialogs.c:783
-msgid "Old Save Style (as opposed to PGN)"
-msgstr "Stary styl zapisu (zamiast PGN)"
-
-#: dialogs.c:784
-msgid "Include Number Tag in tourney PGN"
-msgstr "Umieść znacznik Number w zapisie PGN turnieju"
-
-#: dialogs.c:785
-msgid "Save Score/Depth Info in PGN"
-msgstr "Zapisywanie informacji o wyniku/głębokości do PGN"
-
-#: dialogs.c:786
-msgid "Save Out-of-Book Info in PGN           "
-msgstr "Zapisywanie informacji spoza książki do PGN           "
-
-#: dialogs.c:793
-msgid "Save Game Options"
-msgstr "Opcje zapisu gry"
-
-#: dialogs.c:802
-msgid "No Sound"
-msgstr "Bez dźwięku"
-
-#: dialogs.c:803
-msgid "Default Beep"
-msgstr "Domyślny sygnał"
-
-#: dialogs.c:804
-msgid "Above WAV File"
-msgstr "Powyższy plik WAV"
-
-#: dialogs.c:805
-msgid "Car Horn"
-msgstr "Klakson"
-
-#: dialogs.c:806
-msgid "Cymbal"
-msgstr "Talerz"
-
-#: dialogs.c:807
-msgid "Ding"
-msgstr "Bim"
-
-#: dialogs.c:808
-msgid "Gong"
-msgstr "Gong"
-
-#: dialogs.c:809
-msgid "Laser"
-msgstr "Laser"
-
-#: dialogs.c:810
-msgid "Penalty"
-msgstr "Karny"
-
-#: dialogs.c:811
-msgid "Phone"
-msgstr "Telefon"
-
-#: dialogs.c:812
-msgid "Pop"
-msgstr "Wystrzał"
-
-#: dialogs.c:813
-msgid "Roar"
-msgstr ""
-
-#: dialogs.c:814
-msgid "Slap"
-msgstr "Plaśnięcie"
-
-#: dialogs.c:815
-msgid "Wood Thunk"
-msgstr "Stuknięcie drewna"
-
-#: dialogs.c:817
-msgid "User File"
-msgstr "Własny plik"
-
-#: dialogs.c:840
-msgid "User WAV File:"
-msgstr "Własny plik WAV:"
-
-#: dialogs.c:841
-msgid "Sound Program:"
-msgstr "Odtwarzacz:"
-
-#: dialogs.c:842
-msgid "Try-Out Sound:"
-msgstr "Sprawdź dźwięk:"
-
-#: dialogs.c:843
-msgid "Play"
-msgstr "Odtwórz"
-
-#: dialogs.c:844
-msgid "Move:"
-msgstr "Ruch:"
-
-#: dialogs.c:845
-msgid "Win:"
-msgstr "Wygrana:"
-
-#: dialogs.c:846
-msgid "Lose:"
-msgstr "Przegrana:"
-
-#: dialogs.c:847
-msgid "Draw:"
-msgstr "Remis:"
-
-#: dialogs.c:848
-msgid "Unfinished:"
-msgstr "Niedokończenie:"
-
-#: dialogs.c:849
-msgid "Alarm:"
-msgstr "Alarm:"
-
-#: dialogs.c:850
-msgid "Challenge:"
-msgstr "Wyzwanie:"
-
-#: dialogs.c:852
-msgid "Sounds Directory:"
-msgstr "Katalog z dźwiękami:"
-
-#: dialogs.c:853
-msgid "Shout:"
-msgstr "Shout:"
-
-#: dialogs.c:854
-msgid "S-Shout:"
-msgstr "S-Shout:"
-
-#: dialogs.c:855
-msgid "Channel:"
-msgstr "Kanał:"
-
-#: dialogs.c:856
-msgid "Channel 1:"
-msgstr "Kanał 1:"
-
-#: dialogs.c:857
-msgid "Tell:"
-msgstr "Tell:"
-
-#: dialogs.c:858
-msgid "Kibitz:"
-msgstr "Porada:"
-
-#: dialogs.c:859
-msgid "Request:"
-msgstr "Prośba:"
-
-#: dialogs.c:860
-msgid "Lion roar:"
-msgstr ""
-
-#: dialogs.c:861
-msgid "Seek:"
-msgstr "Wyszukanie gry:"
-
-#: dialogs.c:877
-msgid "Sound Options"
-msgstr "Opcje dźwięków"
-
-#: dialogs.c:893
-msgid "Selectable themes:"
-msgstr ""
-
-#: dialogs.c:895
-msgid "New name for current theme:"
-msgstr ""
-
-#: dialogs.c:898
-msgid "White Piece Color:"
-msgstr "Kolor białych bierek:"
-
-#. TRANSLATORS: R = single letter for the color red
-#: dialogs.c:901 dialogs.c:910 dialogs.c:916 dialogs.c:922 dialogs.c:928
-#: dialogs.c:934
-msgid "R"
-msgstr "R"
-
-#. TRANSLATORS: G = single letter for the color green
-#: dialogs.c:903 dialogs.c:911 dialogs.c:917 dialogs.c:923 dialogs.c:929
-#: dialogs.c:935
-msgid "G"
-msgstr "R"
-
-#. TRANSLATORS: B = single letter for the color blue
-#: dialogs.c:905 dialogs.c:912 dialogs.c:918 dialogs.c:924 dialogs.c:930
-#: dialogs.c:936 dialogs.c:1650 dialogs.c:1656 dialogs.c:1662 dialogs.c:1668
-#: dialogs.c:1674 dialogs.c:1680 dialogs.c:1686
-msgid "B"
-msgstr "B"
-
-#. TRANSLATORS: D = single letter to make a color darker
-#: dialogs.c:907 dialogs.c:913 dialogs.c:919 dialogs.c:925 dialogs.c:931
-#: dialogs.c:937
-msgid "D"
-msgstr "D"
-
-#: dialogs.c:908
-msgid "Black Piece Color:"
-msgstr "Kolor czarnych bierek:"
-
-#: dialogs.c:914
-msgid "Light Square Color:"
-msgstr "Kolor jasnych pól:"
-
-#: dialogs.c:920
-msgid "Dark Square Color:"
-msgstr "Kolor ciemnych pól:"
-
-#: dialogs.c:926
-msgid "Highlight Color:"
-msgstr "Kolor podświetlenia:"
-
-#: dialogs.c:932
-msgid "Premove Highlight Color:"
-msgstr "Kolor podświetlenia ruchu premove:"
-
-#: dialogs.c:938
-msgid "Flip Pieces Shogi Style        (Colored buttons restore default)"
-msgstr ""
-"Odwrócone bierki w odmianie shogi        (Kolorowe przyciski przywracają "
-"ustawienia domyślne)"
-
-#: dialogs.c:940
-msgid "Mono Mode"
-msgstr "Tryb mono"
-
-#: dialogs.c:941
-msgid "Logo Size (0=off, requires restart):"
-msgstr ""
-
-#: dialogs.c:942
-#, fuzzy
-msgid "Line Gap (-1 = default for board size):"
-msgstr ""
-"Grubość linii między polami (-1 = domyślnie dla danego rozmiaru szachownicy):"
-
-#: dialogs.c:943
-msgid "Use Board Textures"
-msgstr "Użycie tekstur szachownicy"
-
-#: dialogs.c:944
-msgid "Light-Squares Texture File:"
-msgstr "Plik tekstury jasnych pól:"
-
-#: dialogs.c:945
-msgid "Dark-Squares Texture File:"
-msgstr "Plik tekstury ciemnych pól:"
-
-#: dialogs.c:946
-msgid "Use external piece bitmaps with their own colors"
-msgstr "Użycie bitmap bierek z własnymi kolorami"
-
-#: dialogs.c:947
-msgid "Directory with Pieces Images:"
-msgstr "Katalog obrazów bierek:"
-
-#: dialogs.c:1018
-#, fuzzy
-msgid "# no themes are defined"
-msgstr "# nie zainstalowano żadnych silników"
-
-#: dialogs.c:1030
-msgid "Board Options"
-msgstr "Opcje szachownicy"
-
-#: dialogs.c:1101 menus.c:646
-msgid "ICS text menu"
-msgstr "Menu tekstowe ICS"
-
-#: dialogs.c:1130
-msgid "clear"
-msgstr "wyczyść"
-
-#: dialogs.c:1131
-msgid "save changes"
-msgstr "zapisz zmiany"
-
-#: dialogs.c:1229
-#, fuzzy
-msgid "add next move"
-msgstr "Myślenie nad następnym ruchem"
-
-#: dialogs.c:1230
-#, fuzzy
-msgid "commit changes"
-msgstr "zapisz zmiany"
-
-#: dialogs.c:1253
-msgid "Edit book"
-msgstr "Edytuj książkę"
-
-#: dialogs.c:1270 dialogs.c:1277 menus.c:648
-msgid "Tags"
-msgstr "Znaczniki"
-
-#: dialogs.c:1285
-#, fuzzy
-msgid "Registered Engines"
-msgstr "Zastąp silnik"
-
-#: dialogs.c:1401
-msgid "ICS input box"
-msgstr "Okno poleceń ICS"
-
-#: dialogs.c:1433
-msgid "Type a move"
-msgstr "Proszę wpisać ruch"
-
-#: dialogs.c:1459
-msgid "Engine has no options"
-msgstr "Brak opcji silnika"
-
-#: dialogs.c:1461
-msgid "Engine Settings"
-msgstr "Ustawienia silnika"
-
-#: dialogs.c:1502
-msgid "Select engine from list:"
-msgstr "Wybór silnika z listy:"
-
-#: dialogs.c:1505
-msgid "or specify one below:"
-msgstr "lub określenie go poniżej:"
-
-#: dialogs.c:1506
-msgid "Nickname (optional):"
-msgstr "Pseudonim (opcjonalnie):"
-
-#: dialogs.c:1507
-msgid "Use nickname in PGN player tags of engine-engine games"
-msgstr ""
-"Używanie pseudonimu w znacznikach gracza w zapisie PGN gier typu silnik vs. "
-"silnik"
-
-#: dialogs.c:1508
-msgid "Engine Directory:"
-msgstr "Katalog silnika:"
-
-#: dialogs.c:1509
-msgid "Engine Command:"
-msgstr "Polecenie silnika:"
-
-#: dialogs.c:1510
-msgid "(Directory will be derived from engine path when empty)"
-msgstr ""
-"(Jeśli pole pozostanie puste, ścieżka pliku wykonywalnego silnika wyznaczy "
-"katalog)"
-
-#: dialogs.c:1511
-msgid "UCI"
-msgstr "UCI"
-
-#: dialogs.c:1512
-msgid "USI/UCCI (uses specified -uxiAdapter)"
-msgstr ""
-
-#: dialogs.c:1513
-msgid "WB protocol v1 (do not wait for engine features)"
-msgstr "Protokół WB v1 (szybsze wczytywanie funkcji silnika)"
-
-#: dialogs.c:1514
-msgid "Must not use GUI book"
-msgstr "Nieużywanie książki GUI"
-
-#: dialogs.c:1515
-msgid "Add this engine to the list"
-msgstr "Dodanie silnika do listy"
-
-#: dialogs.c:1516
-msgid "Force current variant with this engine"
-msgstr "Wymuszenie bieżącej odmiany na danym silniku"
-
-#: dialogs.c:1570
-msgid "Load first engine"
-msgstr "Wczytaj pierwszy silnik"
-
-#: dialogs.c:1576
-msgid "Load second engine"
-msgstr "Wczytaj drugi silnik"
-
-#: dialogs.c:1599
-msgid "shuffle"
-msgstr "losowe rozstawienie"
-
-#: dialogs.c:1600
-msgid "Fischer castling"
-msgstr ""
-
-#: dialogs.c:1601
-msgid "Start-position number:"
-msgstr "Numer pozycji początkowej:"
-
-#: dialogs.c:1602
-msgid "randomize"
-msgstr "losuj"
-
-#: dialogs.c:1603
-msgid "pick fixed"
-msgstr "wybierz liczbę"
-
-#: dialogs.c:1620
-msgid "New Shuffle Game"
-msgstr "Nowa gra losowa"
-
-#: dialogs.c:1647
-msgid "Clocks (requires restart):"
-msgstr ""
-
-#: dialogs.c:1648 dialogs.c:1654 dialogs.c:1660 dialogs.c:1666 dialogs.c:1672
-#: dialogs.c:1678 dialogs.c:1684
-msgid "+"
-msgstr ""
-
-#: dialogs.c:1649 dialogs.c:1655 dialogs.c:1661 dialogs.c:1667 dialogs.c:1673
-#: dialogs.c:1679 dialogs.c:1685
-msgid "-"
-msgstr ""
-
-#: dialogs.c:1651 dialogs.c:1657 dialogs.c:1663 dialogs.c:1669 dialogs.c:1675
-#: dialogs.c:1681 dialogs.c:1687
-msgid "I"
-msgstr ""
-
-#: dialogs.c:1652 dialogs.c:1658 dialogs.c:1664 dialogs.c:1670 dialogs.c:1676
-#: dialogs.c:1682 dialogs.c:1688
-msgid "*"
-msgstr ""
-
-#: dialogs.c:1653
-msgid "Message (above board):"
-msgstr ""
-
-#: dialogs.c:1659
-msgid "ICS Chat/Console:"
-msgstr ""
-
-#: dialogs.c:1665
-msgid "Edit tags / book / engine list:"
-msgstr ""
-
-#: dialogs.c:1671
-#, fuzzy
-msgid "Edit comments:"
-msgstr "Edytuj komentarz"
-
-#: dialogs.c:1677
-#, fuzzy
-msgid "Move history / Engine Output:"
-msgstr "Komunikaty silnika"
-
-#: dialogs.c:1683
-#, fuzzy
-msgid "Game list:"
-msgstr "Lista gier"
-
-#: dialogs.c:1689
-msgid ""
-"\n"
-"The * buttons will set the font to the one selected below:"
-msgstr ""
-
-#: dialogs.c:1743
-msgid "This only works in the GTK build"
-msgstr ""
-
-#: dialogs.c:1744
-msgid "Fonts"
-msgstr ""
-
-#: dialogs.c:1764
-msgid "classical"
-msgstr "klasyczny"
-
-#: dialogs.c:1765
-msgid "incremental"
-msgstr "przyrostowy"
-
-#: dialogs.c:1766
-msgid "fixed max"
-msgstr "stały maksymalny czas"
-
-#: dialogs.c:1767
-msgid "Divide entered times by 60"
-msgstr ""
-
-#: dialogs.c:1768
-msgid "Moves per session:"
-msgstr "Liczba ruchów na sesję:"
-
-#: dialogs.c:1769
-msgid "Initial time (min):"
-msgstr "Czas początkowy (min):"
-
-#: dialogs.c:1770
-msgid "Increment or max (sec/move):"
-msgstr "Przyrost lub maksymalny czas (sekund/ruch):"
-
-#: dialogs.c:1771
-msgid "Time-Odds factors:"
-msgstr "Dzielniki czasu:"
-
-#: dialogs.c:1772
-msgid "Engine #1"
-msgstr "Silnik #1"
-
-#: dialogs.c:1773
-msgid "Engine #2 / Human"
-msgstr "Silnik #2 / człowiek"
-
-#: dialogs.c:1814 dialogs.c:1817 dialogs.c:1822 dialogs.c:1823
-#: gtk/xoptions.c:183
-msgid "Unused"
-msgstr "Nieużywane"
-
-#: dialogs.c:1832
-msgid "Changing time control during a game is not implemented"
-msgstr ""
-
-#: dialogs.c:1869
-msgid "Error writing to chess program"
-msgstr "Błąd zapisu do silnika szachowego"
-
-#: dialogs.c:1937 gtk/xoptions.c:1775 xaw/xoptions.c:1341
-msgid "Cancel"
-msgstr "Anuluj"
-
-#: dialogs.c:1942 dialogs.c:2695 dialogs.c:2699
-msgid "King"
-msgstr "Król"
-
-#: dialogs.c:1945
-msgid "Captain"
-msgstr "Kapitan"
-
-#: dialogs.c:1946
-msgid "Lieutenant"
-msgstr "Porucznik"
-
-#: dialogs.c:1947
-msgid "General"
-msgstr "Generał"
-
-#: dialogs.c:1948
-msgid "Warlord"
-msgstr "Gubernator"
-
-#: dialogs.c:1950 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Knight"
-msgstr "Skoczek"
-
-#: dialogs.c:1951 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Bishop"
-msgstr "Goniec"
-
-#: dialogs.c:1952 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Rook"
-msgstr "Wieża"
-
-#: dialogs.c:1956 dialogs.c:2696 dialogs.c:2700
-msgid "Archbishop"
-msgstr "Arcybiskup"
-
-#: dialogs.c:1957 dialogs.c:2696 dialogs.c:2700
-msgid "Chancellor"
-msgstr "Kanclerz"
-
-#: dialogs.c:1959 dialogs.c:2695 dialogs.c:2699 dialogs.c:2717
-msgid "Queen"
-msgstr "Hetman"
-
-#: dialogs.c:1961
-msgid "Lion"
-msgstr ""
-
-#: dialogs.c:1965
-msgid "Defer"
-msgstr "Odłóż"
-
-#: dialogs.c:1966 dialogs.c:2696 dialogs.c:2700
-msgid "Promote"
-msgstr "Promuj"
-
-#: dialogs.c:2023
-msgid "Chats:"
-msgstr ""
-
-#: dialogs.c:2024 dialogs.c:2025 dialogs.c:2026 dialogs.c:2027 dialogs.c:2028
-#: dialogs.c:2134 dialogs.c:2199 dialogs.c:2231
-#, fuzzy
-msgid "New Chat"
-msgstr "Nowa odmiana"
-
-#: dialogs.c:2031
-msgid "Chat partner:"
-msgstr "Partner do rozmowy:"
-
-#: dialogs.c:2032
-msgid "End Chat"
-msgstr ""
-
-#: dialogs.c:2033
-msgid "Hide"
-msgstr ""
-
-#: dialogs.c:2260
-#, fuzzy
-msgid "ICS Interaction"
-msgstr "Opcje ICS"
-
-#: dialogs.c:2345
-msgid "factory"
-msgstr "domyślne"
-
-#: dialogs.c:2346
-msgid "up"
-msgstr "do góry"
-
-#: dialogs.c:2347
-msgid "down"
-msgstr "na dół"
-
-#: dialogs.c:2366
-msgid "No tag selected"
-msgstr "Nie zaznaczono żadnego znacznika"
-
-#: dialogs.c:2397
-msgid "Game-list options"
-msgstr "Opcje listy gier"
-
-#: dialogs.c:2475 dialogs.c:2489
-msgid "Error"
-msgstr "Błąd"
-
-#: dialogs.c:2518
-msgid "Fatal Error"
-msgstr "Błąd krytyczny"
-
-#: dialogs.c:2518
-msgid "Exiting"
-msgstr "Wychodzenie"
-
-#: dialogs.c:2529
-msgid "Information"
-msgstr "Informacje"
-
-#: dialogs.c:2536
-msgid "Note"
-msgstr "Uwaga"
-
-#: dialogs.c:2694 dialogs.c:2987 dialogs.c:2990
-msgid "White"
-msgstr "Białe"
-
-#: dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Pawn"
-msgstr "Pionek"
-
-#: dialogs.c:2695 dialogs.c:2699
-msgid "Elephant"
-msgstr "Słoń"
-
-#: dialogs.c:2695 dialogs.c:2699
-msgid "Cannon"
-msgstr "Armata"
-
-#: dialogs.c:2696 dialogs.c:2700
-msgid "Demote"
-msgstr "Zdegraduj"
-
-#: dialogs.c:2697 dialogs.c:2701
-msgid "Empty square"
-msgstr "Puste pole"
-
-#: dialogs.c:2697 dialogs.c:2701
-msgid "Clear board"
-msgstr "Wyczyść szachownicę"
-
-#: dialogs.c:2698 dialogs.c:2999 dialogs.c:3002
-msgid "Black"
-msgstr "Czarne"
-
-#: dialogs.c:2798
-#, fuzzy
-msgid "_File"
-msgstr "Plik"
-
-#: dialogs.c:2799
-#, fuzzy
-msgid "_Edit"
-msgstr "Edytuj"
-
-#: dialogs.c:2800
-#, fuzzy
-msgid "_View"
-msgstr "Widok"
-
-#: dialogs.c:2801
-#, fuzzy
-msgid "_Mode"
-msgstr "Tryb"
-
-#: dialogs.c:2802
-#, fuzzy
-msgid "_Action"
-msgstr "Działanie"
-
-#: dialogs.c:2803
-#, fuzzy
-msgid "E_ngine"
-msgstr "Silnik"
-
-#: dialogs.c:2804
-#, fuzzy
-msgid "_Options"
-msgstr "Opcje"
-
-#: dialogs.c:2805
-#, fuzzy
-msgid "_Help"
-msgstr "Pomoc"
-
-#: dialogs.c:2815
-msgid "<<"
-msgstr "<<"
-
-#: dialogs.c:2816
-msgid "<"
-msgstr "<"
-
-#: dialogs.c:2818
-msgid ">"
-msgstr ">"
-
-#: dialogs.c:2819
-msgid ">>"
-msgstr ">>"
-
-#: dialogs.c:3107
-msgid "Directories:"
-msgstr "Katalogi:"
-
-#: dialogs.c:3108
-msgid "Files:"
-msgstr "Pliki:"
-
-#: dialogs.c:3109
-msgid "by name"
-msgstr "wg nazwy"
-
-#: dialogs.c:3110
-msgid "by type"
-msgstr "wg typu"
-
-#: dialogs.c:3113
-msgid "Filename:"
-msgstr "Nazwa pliku:"
-
-#: dialogs.c:3114
-msgid "New directory"
-msgstr "Nowy katalog"
-
-#: dialogs.c:3115
-msgid "File type:"
-msgstr "Typ pliku:"
-
-#: dialogs.c:3190
-msgid "Contents of"
-msgstr "Zawartość"
-
-#: dialogs.c:3216
-msgid "  next page"
-msgstr "  następna strona"
-
-#: dialogs.c:3233
-msgid "FIRST TYPE DIRECTORY NAME HERE"
-msgstr "NAJPIERW NALEŻY TU WPISAĆ NAZWĘ KATALOGU"
-
-#: dialogs.c:3234
-msgid "TRY ANOTHER NAME"
-msgstr "PROSZĘ SPRÓBOWAĆ INNĄ NAZWĘ"
-
-#: draw.c:405
-#, fuzzy
-msgid ""
-"No default pieces installed!\n"
-"Select your own using '-pieceImageDirectory'."
-msgstr ""
-"Nie zainstalowano domyślnych bierek\n"
-"Należy określić własny katalog bierek (-pieceImageDirectory)"
-
-#: engineoutput.c:112 menus.c:642
-#, c-format
-msgid "Engine Output"
-msgstr "Komunikaty silnika"
-
-#: engineoutput.c:122
-#, c-format
-msgid "%s (%d reversible ply)"
-msgid_plural "%s (%d reversible plies)"
-msgstr[0] "%s (%d odwracalny półruch)"
-msgstr[1] "%s (%d odwracalne półruchy)"
-msgstr[2] "%s (%d odwracalnych półruchów)"
-
-#: engineoutput.c:565 engineoutput.c:568 nengineoutput.c:83 nengineoutput.c:91
-msgid "NPS"
-msgstr "NPS"
-
-#: gamelist.c:379
-#, c-format
-msgid "Reading game file (%d)"
-msgstr "Czytanie pliku gry (%d)"
-
-#: gtk/xboard.c:979 xaw/xboard.c:1074
-#, c-format
-msgid "%s: can't cd to CHESSDIR: "
-msgstr "%s: nie można wejść do CHESSDIR: "
-
-#: gtk/xboard.c:988 xaw/xboard.c:1083
-#, c-format
-msgid "Failed to open file '%s'\n"
-msgstr "Nie udało się otworzyć pliku \"%s\"\n"
-
-#: gtk/xboard.c:1003 xaw/xboard.c:1092
-msgid "Recompile with larger BOARD_RANKS or BOARD_FILES to support this size"
-msgstr ""
-"Należy skompilować ponownie z większą wartością dla BOARD_RANKS lub "
-"BOARD_FILES, aby obsługiwać ten rozmiar"
-
-#: gtk/xboard.c:1022 xaw/xboard.c:1124
-#, c-format
-msgid "%s: bad boardSize syntax %s\n"
-msgstr "%s: błędna składnia boardSize %s\n"
-
-#: gtk/xboard.c:1063 xaw/xboard.c:1163
-#, c-format
-msgid "%s: unrecognized boardSize name %s\n"
-msgstr "%s: nieznana nazwa boardSize %s\n"
-
-#: gtk/xboard.c:1107 xaw/xboard.c:1200
-#, c-format
-msgid "%s: too few colors available; trying monochrome mode\n"
-msgstr ""
-"%s: za mało dostępnych kolorów; próba użycia trybu monochromatycznego\n"
-
-#: gtk/xboard.c:1421 xaw/xboard.c:1492
-#, c-format
-msgid "Unable to create font set for %s.\n"
-msgstr "Nie można utworzyć zestawu czcionek dla %s.\n"
-
-#: gtk/xboard.c:1446 xaw/xboard.c:1515
-#, c-format
-msgid "%s: no fonts match pattern %s\n"
-msgstr "%s: żadna czcionka nie pasuje do wzoru %s\n"
-
-#: gtk/xboard.c:1914 xaw/xboard.c:2007
-msgid "Can't open temp file"
-msgstr "Nie można otworzyć pliku temp"
-
-#: gtk/xboard.c:2422
-msgid "Failed to open file"
-msgstr "Nie udało się otworzyć pliku"
-
-#: gtk/xoptions.c:1498
-#, fuzzy
-msgid "Browse"
-msgstr "przeglądaj"
-
-#: gtk/xoptions.c:1772 xaw/xoptions.c:1337
-msgid "OK"
-msgstr "OK"
-
-#: menus.c:136
-msgid "Load game file name?"
-msgstr "Wczytać nazwę pliku gry?"
-
-#: menus.c:183
-msgid "Load position file name?"
-msgstr "Wczytać nazwę pliku pozycji?"
-
-#: menus.c:189 menus.c:582
-msgid "Save game file name?"
-msgstr "Zapisać nazwę pliku gry?"
-
-#: menus.c:198
-msgid "Save position file name?"
-msgstr "Zapisać nazwę pliku pozycji?"
-
-#: menus.c:355
-msgid " (with Zippy code)"
-msgstr " (z kodem Zippy)"
-
-#: menus.c:360
-#, fuzzy, c-format
-msgid ""
-"%s%s\n"
-"\n"
-"Copyright 1991 Digital Equipment Corporation\n"
-"Enhancements Copyright 1992-2016 Free Software Foundation\n"
-"Enhancements Copyright 2005 Alessandro Scotti\n"
-"\n"
-"%s is free software and carries NO WARRANTY;see the file COPYING for more "
-"information.\n"
-"\n"
-"Visit XBoard on the web at: http://www.gnu.org/software/xboard/\n"
-"Check out the newest features at: http://www.gnu.org/software/xboard/"
-"whats_new.html\n"
-"\n"
-"Report bugs via email at: <bug-xboard@gnu.org>\n"
-"\n"
-msgstr ""
-"%s%s\n"
-"\n"
-"Copyright 1991 Digital Equipment Corporation\n"
-"Enhancements Copyright 1992-2013 Free Software Foundation\n"
-"Enhancements Copyright 2005 Alessandro Scotti\n"
-"\n"
-"%s jest darmowym oprogramowaniem, które NIE posiada gwarancji. Więcej "
-"informacji można znaleźć w pliku COPYING.\n"
-"Interfejs GTK tej wersji programu jest eksperymentalny i niestabilny\n"
-"\n"
-"Zapraszamy na stronę programu XBoard: http://www.gnu.org/software/xboard/\n"
-"Najnowsze funkcje można poznać na: http://www.gnu.org/software/xboard/"
-"whats_new.html\n"
-"\n"
-"Błędy prosimy zgłaszać na adres: <bug-xboard@gnu.org>\n"
-"\n"
-
-#: menus.c:371 menus.c:765
-msgid "About XBoard"
-msgstr "O programie XBoard"
-
-#: menus.c:593
-msgid "New Game"
-msgstr "Nowa gra"
-
-#: menus.c:594
-#, fuzzy
-msgid "New Shuffle Game..."
-msgstr "Nowa gra losowa..."
-
-#: menus.c:595
-#, fuzzy
-msgid "New Variant..."
-msgstr "Nowa odmiana..."
-
-#: menus.c:597
-msgid "Load Game"
-msgstr "Wczytaj grę"
-
-#: menus.c:598
-msgid "Load Position"
-msgstr "Wczytaj pozycję"
-
-#: menus.c:599
-msgid "Next Position"
-msgstr "Następna pozycja"
-
-#: menus.c:600
-msgid "Prev Position"
-msgstr "Poprzednia pozycja"
-
-#: menus.c:602
-msgid "Save Game"
-msgstr "Zapisz grę"
-
-#: menus.c:603
-msgid "Save Position"
-msgstr "Zapisz pozycję"
-
-#: menus.c:604
-#, fuzzy
-msgid "Save Selected Games"
-msgstr "Zapisz grę"
-
-#: menus.c:605
-msgid "Save Games as Book"
-msgstr "Zapisz gry w postaci książki"
-
-#: menus.c:607
-msgid "Mail Move"
-msgstr "Ruch mailowy"
-
-#: menus.c:608
-msgid "Reload CMail Message"
-msgstr "Wczytaj wiadomość CMail ponownie"
-
-#: menus.c:610
-msgid "Quit "
-msgstr "Wyjście "
-
-#: menus.c:615
-msgid "Copy Game"
-msgstr "Skopiuj grę"
-
-#: menus.c:616
-msgid "Copy Position"
-msgstr "Skopiuj pozycję"
-
-#: menus.c:617
-msgid "Copy Game List"
-msgstr "Skopiuj listę gier"
-
-#: menus.c:619
-msgid "Paste Game"
-msgstr "Wklej grę"
-
-#: menus.c:620
-msgid "Paste Position"
-msgstr "Wklej pozycję"
-
-#: menus.c:622 menus.c:665
-msgid "Edit Game"
-msgstr "Edytuj grę"
-
-#: menus.c:623 menus.c:666
-msgid "Edit Position"
-msgstr "Edytuj pozycję"
-
-#: menus.c:624
-msgid "Edit Tags"
-msgstr "Edytuj znaczniki"
-
-#: menus.c:625
-msgid "Edit Comment"
-msgstr "Edytuj komentarz"
-
-#: menus.c:626
-msgid "Edit Book"
-msgstr "Edytuj książkę"
-
-#: menus.c:628
-msgid "Revert"
-msgstr "Cofnij"
-
-#: menus.c:629
-msgid "Annotate"
-msgstr "Dodaj jako komentarz"
-
-#: menus.c:630
-msgid "Truncate Game"
-msgstr "Porzuć grę"
-
-#: menus.c:632
-msgid "Backward"
-msgstr "Do tyłu"
-
-#: menus.c:633
-msgid "Forward"
-msgstr "Do przodu"
-
-#: menus.c:634
-msgid "Back to Start"
-msgstr "Na początek"
-
-#: menus.c:635
-msgid "Forward to End"
-msgstr "Na koniec"
-
-#: menus.c:640
-msgid "Flip View"
-msgstr "Odwróć widok"
-
-#: menus.c:643
-msgid "Move History"
-msgstr "Historia ruchów"
-
-#: menus.c:644
-msgid "Evaluation Graph"
-msgstr "Wykres wyników"
-
-#: menus.c:645
-msgid "Game List"
-msgstr "Lista gier"
-
-#: menus.c:649
-msgid "Comments"
-msgstr "Komentarze"
-
-#: menus.c:650
-msgid "ICS Input Box"
-msgstr "Okno poleceń ICS"
-
-#: menus.c:651
-msgid "ICS/Chat Console"
-msgstr ""
-
-#: menus.c:653
-msgid "Board..."
-msgstr "Szachownica..."
-
-#: menus.c:654
-#, fuzzy
-msgid "Fonts..."
-msgstr "Dźwięki..."
-
-#: menus.c:655
-msgid "Game List Tags..."
-msgstr "Znaczniki listy gier..."
-
-#: menus.c:660
-msgid "Machine White"
-msgstr "Silnik białe"
-
-#: menus.c:661
-msgid "Machine Black"
-msgstr "Silnik czarne"
-
-#: menus.c:662
-msgid "Two Machines"
-msgstr "Silnik vs. silnik"
-
-#: menus.c:663
-msgid "Analysis Mode"
-msgstr "Tryb analizy"
-
-#: menus.c:664
-msgid "Analyze Game"
-msgstr "Analizuj grę"
-
-#: menus.c:667
-msgid "Training"
-msgstr "Trening"
-
-#: menus.c:668
-msgid "ICS Client"
-msgstr "Klient ICS"
-
-#: menus.c:670
-msgid "Machine Match"
-msgstr "Mecz silników"
-
-#: menus.c:671
-msgid "Pause"
-msgstr "Pauza"
-
-#: menus.c:676
-msgid "Accept"
-msgstr "Akceptuj"
-
-#: menus.c:677
-msgid "Decline"
-msgstr "Odrzuć"
-
-#: menus.c:678
-msgid "Rematch"
-msgstr "Ponowny mecz"
-
-#: menus.c:680
-msgid "Call Flag"
-msgstr "Reklamuj przekroczenie czasu"
-
-#: menus.c:681
-msgid "Draw"
-msgstr "Remis"
-
-#: menus.c:682
-msgid "Adjourn"
-msgstr "Przerwa"
-
-#: menus.c:683
-msgid "Abort"
-msgstr "Zaniechanie gry"
-
-#: menus.c:684
-msgid "Resign"
-msgstr "Poddaj partię"
-
-#: menus.c:686
-msgid "Stop Observing"
-msgstr "Przerwij obserwację"
-
-#: menus.c:687
-msgid "Stop Examining"
-msgstr "Przerwij badanie"
-
-#: menus.c:688
-msgid "Upload to Examine"
-msgstr "Wyślij do zbadania"
-
-#: menus.c:690
-msgid "Adjudicate to White"
-msgstr "Rozstrzygnij na korzyść białych"
-
-#: menus.c:691
-msgid "Adjudicate to Black"
-msgstr "Rozstrzygnij na korzyść czarnych"
-
-#: menus.c:692
-msgid "Adjudicate Draw"
-msgstr "Ogłoś remis"
-
-#: menus.c:697
-#, fuzzy
-msgid "Edit Engine List..."
-msgstr "Wczytaj nowy 1. silnik..."
-
-#: menus.c:699
-#, fuzzy
-msgid "Load New 1st Engine..."
-msgstr "Wczytaj nowy 1. silnik..."
-
-#: menus.c:700
-#, fuzzy
-msgid "Load New 2nd Engine..."
-msgstr "Wczytaj nowy 2. silnik..."
-
-#: menus.c:702
-#, fuzzy
-msgid "Engine #1 Settings..."
-msgstr "Ustawienia silnika #1..."
-
-#: menus.c:703
-#, fuzzy
-msgid "Engine #2 Settings..."
-msgstr "Ustawienia silnika #2..."
-
-#: menus.c:704
-#, fuzzy
-msgid "Common Settings..."
-msgstr "Wspólne ustawienia silników"
-
-#: menus.c:706
-msgid "Hint"
-msgstr "Wskazówka"
-
-#: menus.c:707
-msgid "Book"
-msgstr "Książka"
-
-#: menus.c:709
-msgid "Move Now"
-msgstr "Wykonaj ruch"
-
-#: menus.c:710
-msgid "Retract Move"
-msgstr "Cofnij ruch"
-
-#: menus.c:716
-#, fuzzy
-msgid "General..."
-msgstr "Ogólne..."
-
-#: menus.c:718
-#, fuzzy
-msgid "Time Control..."
-msgstr "Kontrola czasu..."
-
-#: menus.c:719
-#, fuzzy
-msgid "Adjudications..."
-msgstr "Rozstrzyganie..."
-
-#: menus.c:720
-msgid "ICS..."
-msgstr ""
-
-#: menus.c:721
-msgid "Tournament..."
-msgstr ""
-
-#: menus.c:722
-#, fuzzy
-msgid "Load Game..."
-msgstr "Wczytywanie gry..."
-
-#: menus.c:723
-#, fuzzy
-msgid "Save Game..."
-msgstr "Zapisywanie gry..."
-
-#: menus.c:724
-#, fuzzy
-msgid "Game List..."
-msgstr "Lista gier..."
-
-#: menus.c:725
-#, fuzzy
-msgid "Sounds..."
-msgstr "Dźwięki..."
-
-#: menus.c:728
-msgid "Always Queen"
-msgstr "Zawsze hetman"
-
-#: menus.c:734
-msgid "Flash Moves"
-msgstr "Miganie po ruchu"
-
-#: menus.c:736
-msgid "Highlight Dragging"
-msgstr "Podświetlenie podczas przeciągania"
-
-#: menus.c:739
-msgid "Highlight With Arrow"
-msgstr "Podświetlenie kursorem"
-
-#: menus.c:740
-msgid "Move Sound"
-msgstr "Dźwięk ruchu"
-
-#: menus.c:742
-msgid "Periodic Updates"
-msgstr "Częste aktualizacje"
-
-#: menus.c:744
-msgid "Popup Exit Message"
-msgstr "Pytaj przed wyjściem"
-
-#: menus.c:746
-msgid "Show Coords"
-msgstr "Wyświetlanie współrzędnych"
-
-#: menus.c:747
-msgid "Hide Thinking"
-msgstr "Ukrywanie myślenia"
-
-#: menus.c:751
-msgid "Save Settings Now"
-msgstr "Zapisz ustawienia"
-
-#: menus.c:752
-msgid "Save Settings on Exit"
-msgstr "Zapisz ustawienia przy wyjściu"
-
-#: menus.c:757
-msgid "Info XBoard"
-msgstr "O programie"
-
-#: menus.c:758
-msgid "Man XBoard"
-msgstr "Dokumentacja XBoard"
-
-#: menus.c:760
-msgid "XBoard Home Page"
-msgstr "Strona domowa"
-
-#: menus.c:761
-msgid "On-line User Guide"
-msgstr "Przewodnik online"
-
-#: menus.c:762
-msgid "Development News"
-msgstr "Aktualności o postępach"
-
-#: menus.c:763
-msgid "e-Mail Bug Report"
-msgstr "Raporty o błędach (e-mail)"
-
-#: menus.c:802
-msgid "File"
-msgstr "Plik"
-
-#: menus.c:803
-msgid "Edit"
-msgstr "Edytuj"
-
-#: menus.c:804
-msgid "View"
-msgstr "Widok"
-
-#: menus.c:805
-msgid "Mode"
-msgstr "Tryb"
-
-#: menus.c:806
-msgid "Action"
-msgstr "Działanie"
-
-#: menus.c:807
-msgid "Engine"
-msgstr "Silnik"
-
-#: menus.c:808
-msgid "Options"
-msgstr "Opcje"
-
-#: menus.c:809
-msgid "Help"
-msgstr "Pomoc"
-
-#: nengineoutput.c:79 nengineoutput.c:87
-msgid "engine name"
-msgstr "nazwa silnika"
-
-#. TRANSLATORS: noun, as in "the move Nf3"
-#: nengineoutput.c:82 nengineoutput.c:90
-msgid "move"
-msgstr "ruch"
-
-#: nengineoutput.c:156
-msgid "Engine output"
-msgstr "Komunikaty silnika"
-
-#: nengineoutput.c:160
-msgid ""
-"Mismatch of STRIDE in nengineoutput.c\n"
-"Change and recompile!"
-msgstr ""
-"Niezgodność STRIDE w nengineoutput.c\n"
-"Należy zmienić i skompilować ponownie!"
-
-#: nevalgraph.c:69
-msgid "Evaluation graph"
-msgstr "Wykres wyników"
-
-#: nevalgraph.c:69
-#, fuzzy
-msgid "Blunder graph"
-msgstr "Wykres wyników"
-
-#: nevalgraph.c:107
-msgid "Blunder"
-msgstr ""
-
-#: nevalgraph.c:107
-msgid "Eval"
-msgstr "Wyniki"
-
-#: ngamelist.c:87
-msgid "find position"
-msgstr "znajdź pozycję"
-
-#: ngamelist.c:88
-msgid "narrow"
-msgstr "zawęź"
-
-#: ngamelist.c:89
-msgid "thresholds"
-msgstr "progi"
-
-#: ngamelist.c:90
-msgid "tags"
-msgstr "znaczniki"
-
-#: ngamelist.c:91
-msgid "next"
-msgstr "następny"
-
-#: ngamelist.c:92
-msgid "close"
-msgstr "zamknij"
-
-#: ngamelist.c:116
-msgid "No game selected"
-msgstr "Nie zaznaczono żadnej gry"
-
-#: ngamelist.c:122
-msgid "Can't go forward any further"
-msgstr "Dalej nie można"
-
-#: ngamelist.c:192
-#, c-format
-msgid "Scanning through games (%d)"
-msgstr "Przeszukiwanie gier (%d)"
-
-#: ngamelist.c:211
-msgid "previous page"
-msgstr "poprzednia strona"
-
-#: ngamelist.c:214
-msgid "next page"
-msgstr "następna strona"
-
-#: ngamelist.c:217
-msgid "no games matched your request"
-msgstr "żadna gra nie spełnia podanych kryteriów"
-
-#: ngamelist.c:219
-#, c-format
-msgid "%s - %d/%d games (%d-%d-%d)"
-msgstr "%s - %d/%d gier (%d-%d-%d)"
-
-#: ngamelist.c:284
-msgid "There is no game list"
-msgstr "Nie ma listy gier"
-
-#: nhistory.c:109
-msgid "Move list"
-msgstr "Lista ruchów"
-
-#: usystem.c:223
-#, c-format
-msgid "%s: unrecognized color %s\n"
-msgstr "%s: nieznany kolor %s\n"
-
-#: usystem.c:231
-#, fuzzy, c-format
-msgid "%s: can't parse foreground color in '%s'\n"
-msgstr "%s: nie można przetworzyć koloru tła w \"%s\"\n"
-
-#: usystem.c:260
-#, c-format
-msgid "%s: can't parse color names; disabling colorization\n"
-msgstr "%s: nie można przetworzyć nazw kolorów: wyłączenie kolorów\n"
-
-#: usystem.c:362
-#, c-format
-msgid "ERROR: Unknown user %s (in path %s)\n"
-msgstr "BŁĄD: Nieznany użytkownik %s (w ścieżce %s)\n"
-
-#: usystem.c:564
-msgid "Socket support is not configured in"
-msgstr "Nie skonfigurowano obsługi portu w"
-
-#: usystem.c:653
-msgid "internal rcmd not implemented for Unix"
-msgstr "polecenie wewnętrzne rcmd nie zostało zaimplementowane w Uniksie"
-
-#: xaw/xboard.c:1206
-#, c-format
-msgid "white pixel = 0x%lx, black pixel = 0x%lx\n"
-msgstr "biały piksel = 0x%lx, czarny piksel = 0x%lx\n"
-
-#: xaw/xoptions.c:378 xaw/xoptions.c:1082
-msgid "browse"
-msgstr "przeglądaj"
-
-#: xaw/xoptions.c:444 xaw/xoptions.c:445
-msgid "Ctrl"
-msgstr "Ctrl"
-
-#: xaw/xoptions.c:450 xaw/xoptions.c:451
-msgid "Alt"
-msgstr "Alt"
-
-#: xaw/xoptions.c:456 xaw/xoptions.c:457
-msgid "Shift"
-msgstr "Shift"
-
-#, fuzzy
-#~ msgid "Common Engine..."
-#~ msgstr "Wspólne ustawienia silników..."
-
-#~ msgid "    (for concurrent playing of a single"
-#~ msgstr "    (dla równoczesnego rozegrania pojedynczego"
-
-#~ msgid "Match Options"
-#~ msgstr "Opcje meczu"
-
-#~ msgid "Chat box"
-#~ msgstr "Okno rozmowy"
-
-#~ msgid "Open Chat Window"
-#~ msgstr "Otwórz okno rozmowy"
-
-#~ msgid "ICS ..."
-#~ msgstr "ICS..."
-
-#~ msgid "Match ..."
-#~ msgstr "Mecz..."
-
-#~ msgid "%s: Can't access XPM directory %s\n"
-#~ msgstr "%s: Brak dostępu do katalogu XPM %s\n"
-
-#~ msgid "Available `%s' sizes:\n"
-#~ msgstr "Dostępne rozmiary dla \"%s\":\n"
-
-#~ msgid "Error: No `%s' files!\n"
-#~ msgstr "Błąd: Brak plików \"%s\"!\n"
-
-#~ msgid ""
-#~ "Warning: No DIR structure found on this system --\n"
-#~ "         Unable to autosize for XPM/XIM pieces.\n"
-#~ "   Please report this error to %s.\n"
-#~ "   Include system type & operating system in message.\n"
-#~ msgstr ""
-#~ "Ostrzeżenie: Nie znaleziono struktury katalogów w tym systemie --\n"
-#~ "         Niemożliwa automatyczna zmiana rozmiaru bierek XPM/XIM.\n"
-#~ "   Proszę zgłosić ten błąd do %s.\n"
-#~ "   Do wiadomości należy dołączyć informacje o rodzaju systemu "
-#~ "operacyjnego.\n"
-
-#~ msgid "Error %d loading icon image\n"
-#~ msgstr "Błąd %d wczytywania obrazka\n"
-
-#~ msgid "cancel"
-#~ msgstr "anuluj"
diff --git a/po/ru.po b/po/ru.po
deleted file mode 100644 (file)
index 0d03b08..0000000
--- a/po/ru.po
+++ /dev/null
@@ -1,3145 +0,0 @@
-# XBoard -- a graphical chessboard for X
-# Copyright (C) 1991 by Digital Equipment Corporation, Maynard, Massachusetts.
-# Enhancements Copyright (C) 1992-98 Free Software Foundation, Inc.
-# This file is distributed under the same license as the XBoard package.
-# Перевод: А.В.Сердюков (2003), Hr.Burunduk (2011), 2010
-msgid ""
-msgstr ""
-"Project-Id-Version: GNU xboard master-20110507\n"
-"Report-Msgid-Bugs-To: bug-xboard@gnu.org\n"
-"POT-Creation-Date: 2016-04-03 13:44-0700\n"
-"PO-Revision-Date: 2016-03-05 12:42-0800\n"
-"Last-Translator: Evgeniy Yakushev <yen81@mail.ru>\n"
-"Language-Team: Russian <gnu@d07.ru>\n"
-"Language: ru\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
-"X-Generator: Gtranslator 2.91.6\n"
-
-#: args.h:851
-#, c-format
-msgid "%s in settings file\n"
-msgstr "%s в файле настроек\n"
-
-#: args.h:885
-#, c-format
-msgid "Bad integer value %s"
-msgstr "Неправильное целое значение %s"
-
-#: args.h:991 args.h:1252
-#, c-format
-msgid "Unrecognized argument %s"
-msgstr "Неопознанный аргумент %s"
-
-#: args.h:1022
-#, c-format
-msgid "No value provided for argument %s"
-msgstr "Для аргумента %s не предоставлено значение"
-
-#: args.h:1082
-#, c-format
-msgid "Incomplete \\ escape in value for %s"
-msgstr ""
-
-#: args.h:1193
-#, c-format
-msgid "Failed to open indirection file %s"
-msgstr "Не удалось открыть связанный файл %s"
-
-#: args.h:1210
-#, c-format
-msgid "Unrecognized boolean argument value %s"
-msgstr "Неопознанное значение %s булева аргумента"
-
-#. TRANSLATORS: "first" is the first of possible two chess engines. It is inserted into strings
-#. such as "%s engine" / "%s chess program" / "%s machine" - all meaning the same thing
-#: backend.c:811
-msgid "first"
-msgstr "Движок 1"
-
-#. TRANSLATORS: "second" is the second of possible two chess engines. It is inserted into strings
-#. such as "%s engine" / "%s chess program" / "%s machine" - all meaning the same thing
-#: backend.c:814
-msgid "second"
-msgstr "Движок 2"
-
-#: backend.c:897
-#, c-format
-msgid "protocol version %d not supported"
-msgstr "версия протокола %d не поддерживается"
-
-#: backend.c:1004
-msgid "You did not specify the engine executable"
-msgstr "Вы не предоставили исполняемый файл движка"
-
-#: backend.c:1062
-#, c-format
-msgid "bad timeControl option %s"
-msgstr "timeControl: неверный параметр %s"
-
-#: backend.c:1077
-#, c-format
-msgid "bad searchTime option %s"
-msgstr "searchTime: неверный параметр %s"
-
-#: backend.c:1183
-#, c-format
-msgid "Variant %s supported only in ICS mode"
-msgstr "Вариант %s поддерживается только в режиме ICS"
-
-#: backend.c:1201
-#, c-format
-msgid "Unknown variant name %s"
-msgstr "Неизвестный вариант %s"
-
-#: backend.c:1456
-msgid "Starting chess program"
-msgstr "Запускается шахматная программа"
-
-#: backend.c:1479
-msgid "Bad game file"
-msgstr "Неправильный формат файла"
-
-#: backend.c:1486
-msgid "Bad position file"
-msgstr "Неправильный формат файла позиции"
-
-#: backend.c:1500
-msgid "Pick new game"
-msgstr "Выбрать новую игру"
-
-#: backend.c:1569
-msgid ""
-"You restarted an already completed tourney.\n"
-"One more cycle will now be added to it.\n"
-"Games commence in 10 sec."
-msgstr ""
-"Вы начали заново завершенный турнир\n"
-"К нему будет добавлен еще один запуск\n"
-"Игра начнется черер 10 сек."
-
-#: backend.c:1576
-#, c-format
-msgid "All games in tourney '%s' are already played or playing"
-msgstr "Все игры в турнире '%s' уже сыграны или начаты"
-
-#: backend.c:1583
-msgid "Can't have a match with no chess programs"
-msgstr "Не подключено ни одной шахматной программы"
-
-#: backend.c:1637
-#, c-format
-msgid "Could not open comm port %s"
-msgstr "Не могу открыть COM-порт %s"
-
-#: backend.c:1640
-#, c-format
-msgid "Could not connect to host %s, port %s"
-msgstr "Не могу установить связь с %s, порт %s"
-
-#: backend.c:1696
-#, c-format
-msgid "Unknown initialMode %s"
-msgstr "initialMode: неизвестный режим %s"
-
-#: backend.c:1722
-msgid "AnalyzeFile mode requires a game file"
-msgstr "Режим анализа: не указан файл для анализа"
-
-#: backend.c:1755
-msgid "Analysis mode requires a chess engine"
-msgstr "Для анализа необходима шахматная программа"
-
-#: backend.c:1759
-msgid "Analysis mode does not work with ICS mode"
-msgstr "Режим анализа не совместим с режимом ICS"
-
-#: backend.c:1770
-msgid "MachineWhite mode requires a chess engine"
-msgstr "В режиме \"Компьютер белыми\" нужна шахматная программа"
-
-#: backend.c:1775
-msgid "MachineWhite mode does not work with ICS mode"
-msgstr "Режим \"Компьютер белыми\" не совместим с режимом ICS"
-
-#: backend.c:1782
-msgid "MachineBlack mode requires a chess engine"
-msgstr "В режиме \"Компьютер черными\" нужна шахматная программа (движок)"
-
-#: backend.c:1787
-msgid "MachineBlack mode does not work with ICS mode"
-msgstr "Режим \"Компьютер черными\" не совместим с режимом ICS"
-
-#: backend.c:1794
-msgid "TwoMachines mode requires a chess engine"
-msgstr "В режиме \"Два движка\" нужна шахматная программа"
-
-#: backend.c:1799
-msgid "TwoMachines mode does not work with ICS mode"
-msgstr "Режим \"Два движка\" не совместим с режимом ICS"
-
-#: backend.c:1810
-msgid "Training mode requires a game file"
-msgstr "Для тренировки необходимо загрузить шахматную партию из файла"
-
-#: backend.c:1973 backend.c:2028 backend.c:2051 backend.c:2453
-msgid "Error writing to ICS"
-msgstr "Ошибка записи на вход сервера ICS"
-
-#: backend.c:1988
-msgid "Error reading from keyboard"
-msgstr "Ошибка клавиатуры"
-
-#: backend.c:1991
-msgid "Got end of file from keyboard"
-msgstr "Получен символ конца файла с клавиатуры"
-
-#: backend.c:2299
-#, c-format
-msgid "Unknown wild type %d"
-msgstr "Неизвестный тип %d"
-
-#: backend.c:2370 usystem.c:317
-msgid "Error writing to display"
-msgstr "Ошибка записи на дисплей"
-
-#. TRANSLATORS: to 'kibitz' is to send a message to all players and the game observers
-#: backend.c:3138
-#, c-format
-msgid "your opponent kibitzes: %s"
-msgstr "Сообщение от оппонента для всех: %s"
-
-#: backend.c:3677
-msgid "Error gathering move list: two headers"
-msgstr "Ошибка чтения списка ходов: два заголовка"
-
-#: backend.c:3724
-msgid "Error gathering move list: nested"
-msgstr "Ошибка чтения списка ходов: вложенные списки"
-
-#: backend.c:3828 backend.c:4254 backend.c:4458 backend.c:5017 backend.c:5021
-#: backend.c:7292 backend.c:13054 backend.c:14805 backend.c:14882
-#: backend.c:14928 backend.c:14934 backend.c:14939 backend.c:14944
-msgid "vs."
-msgstr "против"
-
-#: backend.c:3956
-msgid "Illegal move (rejected by ICS)"
-msgstr "Неправильный ход (отклонено сервером ICS)"
-
-#: backend.c:4302
-msgid "Connection closed by ICS"
-msgstr "Сервер ICS разорвал соединение"
-
-#: backend.c:4304
-msgid "Error reading from ICS"
-msgstr "Ошибка чтения с сервера ICS"
-
-#: backend.c:4381
-#, c-format
-msgid ""
-"Failed to parse board string:\n"
-"\"%s\""
-msgstr ""
-"Не удалось обработать строку:\n"
-"\"%s\""
-
-#: backend.c:4390 backend.c:10628
-msgid "Game too long; increase MAX_MOVES and recompile"
-msgstr ""
-"Слишком длинная партия: увеличьте значение MAX_MOVES и перекомпилируйте "
-"программу"
-
-#: backend.c:4509
-msgid "Error gathering move list: extra board"
-msgstr "Ошибка чтения списка ходов: лишняя доска"
-
-#: backend.c:4941 backend.c:4963
-#, c-format
-msgid "Couldn't parse move \"%s\" from ICS"
-msgstr "Странный ход \"%s\" получен с сервера ICS"
-
-#: backend.c:5228
-#, c-format
-msgid "say Internal error; bad moveType %d (%d,%d-%d,%d)"
-msgstr "Внутренняя ошибка; неправильное значение moveType %d (%d,%d-%d,%d)"
-
-#: backend.c:5299
-msgid "You cannot do this while you are playing or observing"
-msgstr "Вы не можете сделать этого, пока играете или наблюдаете за партией"
-
-#: backend.c:6359
-msgid "Recompile to support this BOARD_RANKS or BOARD_FILES!"
-msgstr ""
-"Скомпилируйте программу заново для поддержки BOARD_RANKS или BOARD_FILES!"
-
-#: backend.c:6851
-msgid "You are playing Black"
-msgstr "Вы играете черными"
-
-#: backend.c:6860 backend.c:6888
-msgid "You are playing White"
-msgstr "Вы играете белыми"
-
-#: backend.c:6870 backend.c:6896 backend.c:7018 backend.c:7043 backend.c:7059
-#: backend.c:15645
-msgid "It is White's turn"
-msgstr "Ход белых"
-
-#: backend.c:6874 backend.c:6900 backend.c:7026 backend.c:7049 backend.c:7081
-#: backend.c:15637
-msgid "It is Black's turn"
-msgstr "Ход черных"
-
-#: backend.c:6913
-msgid "Displayed position is not current"
-msgstr "Показанная позиция не соответствует положению в игре"
-
-#: backend.c:7116
-msgid "rights granted"
-msgstr ""
-
-#: backend.c:7116
-msgid "rights revoked"
-msgstr ""
-
-#: backend.c:7169
-msgid "Illegal move"
-msgstr "Неправильный ход"
-
-#: backend.c:7249
-msgid "End of game"
-msgstr "Сыгран последний записанный ход"
-
-#: backend.c:7252
-msgid "Incorrect move"
-msgstr "Неверный ход"
-
-#: backend.c:7655 backend.c:7811
-msgid "Pull pawn backwards to under-promote"
-msgstr "Для превращения потяните пешку в обратном направлении"
-
-#: backend.c:7772
-msgid "only marked squares are legal"
-msgstr "сделать ход можно только на отмеченные поля"
-
-#: backend.c:8093
-msgid "Swiss tourney finished"
-msgstr "Турнир по Швейцарской системе окончен"
-
-#: backend.c:8609
-msgid "could not load EGBB library"
-msgstr "не могу загрузить библиотеку эндшпилей"
-
-#: backend.c:8612
-msgid "wrong EGBB version"
-msgstr "неправильная версия табицы эндшпилей"
-
-#: backend.c:8725
-msgid "Invalid pairing from pairing engine"
-msgstr "Программа подбора соперников создала недопустимые пары"
-
-#: backend.c:8892
-#, c-format
-msgid "Illegal move \"%s\" from %s machine"
-msgstr "Неправильный ход \"%s\" пытается выполнить движок %s"
-
-#: backend.c:9179
-msgid "Bad FEN received from engine"
-msgstr "От движка получена неправильная нотация FEN"
-
-#: backend.c:9280
-msgid "Engine did not send setup for non-standard variant"
-msgstr "Движок не передал настройки для нестандартных вариантов"
-
-#: backend.c:9358 backend.c:14667 backend.c:14735
-#, c-format
-msgid "%s does not support analysis"
-msgstr "%s не поддерживает режим анализа"
-
-#: backend.c:9424
-#, c-format
-msgid "Illegal move \"%s\" (rejected by %s chess program)"
-msgstr "Неправильный ход \"%s\" (не принят движком %s)"
-
-#: backend.c:9455
-#, c-format
-msgid "Failed to start %s chess program %s on %s: %s\n"
-msgstr "Не удалось запустить %s движок %s на %s: %s\n"
-
-#: backend.c:9476
-#, c-format
-msgid "Hint: %s"
-msgstr "Подсказка: %s"
-
-#: backend.c:9481
-#, c-format
-msgid ""
-"Illegal hint move \"%s\"\n"
-"from %s chess program"
-msgstr ""
-"Неправильная подсказка \"%s\"\n"
-"от движка %s"
-
-#: backend.c:9656
-msgid "Machine accepts your draw offer"
-msgstr "Компьютер согласился на ничью"
-
-#: backend.c:9659
-msgid ""
-"Machine offers a draw.\n"
-"Select Action / Draw to accept."
-msgstr ""
-"Компьютер предлагает ничью.\n"
-"Чтобы согласиться, выберите: действие / ничья "
-
-#. TRANSLATORS: PV = principal variation, the variation the chess engine thinks is the best for everyone
-#: backend.c:9777
-msgid "failed writing PV"
-msgstr "ошибка записи варианта"
-
-#: backend.c:10083
-#, c-format
-msgid "Ambiguous move in ICS output: \"%s\""
-msgstr "Неоднозначный ход с сервера ICS: \"%s\""
-
-#: backend.c:10093
-#, c-format
-msgid "Illegal move in ICS output: \"%s\""
-msgstr "Неправильный ход с сервера ICS: \"%s\""
-
-#: backend.c:10104
-msgid "Gap in move list"
-msgstr "Пропуск в записи ходов"
-
-#: backend.c:10782
-#, c-format
-msgid "Variant %s not supported by %s"
-msgstr "Вариант %s не поддерживается %s"
-
-#: backend.c:10789
-#, c-format
-msgid ", but %s is"
-msgstr ", но значение %s равно"
-
-#: backend.c:10945
-#, c-format
-msgid "Startup failure on '%s'"
-msgstr "Ошибка при запуске программы '%s'"
-
-#: backend.c:10976
-msgid "Waiting for first chess program"
-msgstr "Ждем первую шахматную программу"
-
-#: backend.c:10981 backend.c:14953
-msgid "Waiting for second chess program"
-msgstr "Ждем вторую шахматную программу"
-
-#: backend.c:11030
-msgid "Could not write on tourney file"
-msgstr "Не удалось записать данные в файл турнира"
-
-#: backend.c:11104
-msgid ""
-"You cannot replace an engine while it is engaged!\n"
-"Terminate its game first."
-msgstr ""
-"Вы не можете заменить движок пока он работает!\n"
-"Сначала завершите игру."
-
-#: backend.c:11118
-msgid "No engine with the name you gave is installed"
-msgstr "Не установлен движок с указанным Вами именем"
-
-#: backend.c:11120
-msgid ""
-"First change an engine by editing the participants list\n"
-"of the Tournament Options dialog"
-msgstr ""
-"Сначала смените движок путем редактирования списка \n"
-"участников в пункте меню Опции Турнира"
-
-#: backend.c:11121
-msgid "You can only change one engine at the time"
-msgstr "Вы можете сменить только один движок за раз"
-
-#: backend.c:11136 backend.c:11285
-#, c-format
-msgid "No engine %s is installed"
-msgstr "Движок %s не установлен"
-
-#: backend.c:11156
-msgid ""
-"You must supply a tournament file,\n"
-"for storing the tourney progress"
-msgstr ""
-"Вам необходимо предоставить файл турнира\n"
-"для записи хода турнира"
-
-#: backend.c:11166
-msgid "Not enough participants"
-msgstr "Недостаточное количество участников"
-
-#: backend.c:11369
-msgid "Bad tournament file"
-msgstr "Файл турнира испорчен"
-
-#: backend.c:11381
-msgid "Waiting for other game(s)"
-msgstr "Ожидание других игр"
-
-#: backend.c:11394
-msgid "No pairing engine specified"
-msgstr "Не указана программа подбора соперников"
-
-#: backend.c:11879
-#, c-format
-msgid "Average solving time %4.2f sec (total time %4.2f sec) "
-msgstr ""
-
-#: backend.c:11881
-#, c-format
-msgid "%d avoid-moves played "
-msgstr ""
-
-#: backend.c:11883
-#, c-format
-msgid "Solved %d out of %d (%3.1f%%) "
-msgstr ""
-
-#: backend.c:11886
-#, c-format
-msgid "Match %s vs. %s: final score %d-%d-%d"
-msgstr "Матч %s против %s: финальный результат %d-%d-%d"
-
-#: backend.c:12363 backend.c:12399
-#, c-format
-msgid "Illegal move: %d.%s%s"
-msgstr "Неправильный ход: %d.%s%s"
-
-#: backend.c:12388
-#, c-format
-msgid "Ambiguous move: %d.%s%s"
-msgstr "Неоднозначный ход: %d.%s%s"
-
-#: backend.c:12442 backend.c:13495 backend.c:13695 backend.c:14065
-#, c-format
-msgid "Can't open \"%s\""
-msgstr "Не могу открыть файл \"%s\""
-
-#: backend.c:12454 menus.c:118
-msgid "Cannot build game list"
-msgstr "Не удалось создать список партий"
-
-#: backend.c:12539
-msgid "No more games in this message"
-msgstr "В этом сообщении больше нет шахматных партий"
-
-#: backend.c:12579
-msgid "No game has been loaded yet"
-msgstr "Нет загруженных шахматных партий"
-
-#: backend.c:12583 backend.c:13476 ngamelist.c:129
-msgid "Can't back up any further"
-msgstr "Достигнуто начало списка"
-
-#: backend.c:13030
-msgid "Game number out of range"
-msgstr "Номер партии - вне диапазона"
-
-#: backend.c:13041
-msgid "Can't seek on game file"
-msgstr "Поиск в файлах записей партий не предусмотрен"
-
-#: backend.c:13099
-msgid "Game not found in file"
-msgstr "Партия не найдена в файле"
-
-#: backend.c:13230 backend.c:13573
-msgid "Bad FEN position in file"
-msgstr "Неправильная позиция формата FEN в файле"
-
-#: backend.c:13388
-msgid "No moves in game"
-msgstr "Нет записанных ходов"
-
-#: backend.c:13472
-msgid "No position has been loaded yet"
-msgstr "Нет загруженных позиций"
-
-#: backend.c:13533 backend.c:13544
-msgid "Can't seek on position file"
-msgstr "Поиск в файлах позиций не предусмотрен"
-
-#: backend.c:13551 backend.c:13563
-msgid "Position not found in file"
-msgstr "Позиция не найдена в файле"
-
-#: backend.c:13610
-msgid "Black to play"
-msgstr "Ход черных"
-
-#: backend.c:13613
-msgid "White to play"
-msgstr "Ход белых"
-
-#: backend.c:13700 backend.c:14070
-msgid "Waiting for access to save file"
-msgstr "Ожидание разрешения записи файла"
-
-#: backend.c:13702
-msgid "Saving game"
-msgstr "Сохранение игры"
-
-#: backend.c:13703
-msgid "Bad Seek"
-msgstr "Неудачный поиск"
-
-#: backend.c:14072
-msgid "Saving position"
-msgstr "Сохранение позиции"
-
-#: backend.c:14198
-msgid ""
-"You have edited the game history.\n"
-"Use Reload Same Game and make your move again."
-msgstr ""
-"Вы поменяли последовательность сделанных ходов игры.\n"
-"Нажмите \"Перечитать эту игру\" и сделайте ход снова."
-
-#: backend.c:14203
-msgid ""
-"You have entered too many moves.\n"
-"Back up to the correct position and try again."
-msgstr ""
-"Вы ввели слишком много ходов.\n"
-"Вернитесь к правильной позиции и попробуйте снова."
-
-#: backend.c:14208
-msgid ""
-"Displayed position is not current.\n"
-"Step forward to the correct position and try again."
-msgstr ""
-"Показанная позиция не является текущей\n"
-"Перейдите к правильной позиции и попробуйте снова."
-
-#: backend.c:14255
-msgid "You have not made a move yet"
-msgstr "Вы еще не сделали ход"
-
-#: backend.c:14276
-msgid ""
-"The cmail message is not loaded.\n"
-"Use Reload CMail Message and make your move again."
-msgstr ""
-"Список сообщений cmail не загружен.\n"
-"Воспользуйтесь командой \"Перезагрузить сообшения cmail\" и сделайте ход "
-"снова"
-
-#: backend.c:14281
-msgid "No unfinished games"
-msgstr "Нет неоконченных партий"
-
-#: backend.c:14287
-#, c-format
-msgid ""
-"You have already mailed a move.\n"
-"Wait until a move arrives from your opponent.\n"
-"To resend the same move, type\n"
-"\"cmail -remail -game %s\"\n"
-"on the command line."
-msgstr ""
-"Вы уже отправили ход письмом.\n"
-"Подождите пока придет ход от Вашего соперника\n"
-"Чтобы повторно отправить ход, наберите\n"
-"в командной строке\n"
-"\"cmail -remail -game %s\"."
-
-#: backend.c:14302
-msgid "Failed to invoke cmail"
-msgstr "Ошибка запуска cmail"
-
-#: backend.c:14364
-#, c-format
-msgid "Waiting for reply from opponent\n"
-msgstr "Ожидание ответного хода\n"
-
-#: backend.c:14386
-#, c-format
-msgid "Still need to make move for game\n"
-msgstr "Все еще ваша очередь ходить в этой партии\n"
-
-#: backend.c:14390
-#, c-format
-msgid "Still need to make moves for both games\n"
-msgstr "Все еще ваша очередь ходить в обеих партиях\n"
-
-#: backend.c:14394
-#, c-format
-msgid "Still need to make moves for all %d games\n"
-msgstr "Все еще ваш ход во всех %d партиях\n"
-
-#: backend.c:14401
-#, c-format
-msgid "Still need to make a move for game %s\n"
-msgstr "Все еще ваш ход в партии %s\n"
-
-#: backend.c:14407
-#, c-format
-msgid "No unfinished games\n"
-msgstr "Нет неоконченных партий\n"
-
-#: backend.c:14409
-#, c-format
-msgid "Ready to send mail\n"
-msgstr "Можно отсылать почту\n"
-
-#: backend.c:14414
-#, c-format
-msgid "Still need to make moves for games %s\n"
-msgstr "Все еще ваша очередь ходить в партиях %s\n"
-
-#: backend.c:14617
-msgid "Edit comment"
-msgstr "Правка комментария"
-
-#: backend.c:14619
-#, c-format
-msgid "Edit comment on %d.%s%s"
-msgstr "Правка комментария к %d.%s%s"
-
-#: backend.c:14674
-#, c-format
-msgid "You are not observing a game"
-msgstr "Вы не наблюдаете за игрой"
-
-#: backend.c:14785
-msgid "It is not White's turn"
-msgstr "Сейчас не ход белых"
-
-#: backend.c:14866
-msgid "It is not Black's turn"
-msgstr "Сейчас не ход черных"
-
-#: backend.c:14974
-#, c-format
-msgid "Starting %s chess program"
-msgstr "Запуск движка %s"
-
-#: backend.c:15002 backend.c:16189
-msgid ""
-"Wait until your turn,\n"
-"or select 'Move Now'."
-msgstr ""
-"Подождите своей очереди ходить\n"
-"или выберите \"сделать ход сейчас\"."
-
-#: backend.c:15145
-msgid "Training mode off"
-msgstr "Тренировка окончена"
-
-#: backend.c:15153
-msgid "Training mode on"
-msgstr "Тренировка"
-
-#: backend.c:15156
-msgid "Already at end of game"
-msgstr "Сыграны все ходы данной партии"
-
-#: backend.c:15246
-msgid "Warning: You are still playing a game"
-msgstr "Предупреждение: вы все еще продолжаете играть"
-
-#: backend.c:15249
-msgid "Warning: You are still observing a game"
-msgstr "Предупреждение: вы все еще наблюдаете за игрой"
-
-#: backend.c:15252
-msgid "Warning: You are still examining a game"
-msgstr "Предупреждение: вы все еще изучаете игру"
-
-#: backend.c:15322
-msgid "Click clock to clear board"
-msgstr "Нажмите на часы чтобы очистить достку"
-
-#: backend.c:15332
-msgid "Close ICS engine analyze..."
-msgstr "Закрыть анализ движка сервера ICS..."
-
-#: backend.c:15662
-msgid "That square is occupied"
-msgstr "Это поле занято"
-
-#: backend.c:15686 backend.c:15712
-msgid "There is no pending offer on this move"
-msgstr "К данному ходу никаких предложений не сделано"
-
-#: backend.c:15748 backend.c:15759
-msgid "Your opponent is not out of time"
-msgstr "У вашего соперника еще есть время"
-
-#: backend.c:15827
-msgid "You must make your move before offering a draw"
-msgstr "Вы должны сделать свой ход прежде, чем предлагать ничью"
-
-#: backend.c:16171
-msgid "You are not examining a game"
-msgstr "Не включен режим изучения шахматных партий"
-
-#: backend.c:16175
-msgid "You can't revert while pausing"
-msgstr "Нельзя вернуться к началу пока выбрана \"Пауза\""
-
-#: backend.c:16229 backend.c:16236
-msgid "It is your turn"
-msgstr "Ваш ход"
-
-#: backend.c:16287 backend.c:16294 backend.c:16380 backend.c:16387
-msgid "Wait until your turn."
-msgstr "Подождите своей очереди ходить"
-
-#: backend.c:16299
-msgid "No hint available"
-msgstr "Подсказок нет"
-
-#: backend.c:16314 backend.c:16345 ngamelist.c:365
-msgid "Game list not loaded or empty"
-msgstr "Список игр незагружен или пуст"
-
-#: backend.c:16352
-msgid "Book file exists! Try again for overwrite."
-msgstr "Файл книги существует! Попробуйте снова для его перезаписи."
-
-#: backend.c:16833
-#, c-format
-msgid "Error writing to %s chess program"
-msgstr "Ошибка записи на вход движка %s"
-
-#: backend.c:16836 backend.c:16867
-#, c-format
-msgid "%s program exits in draw position (%s)"
-msgstr "Движок %s заканчивает работу в ничейной позиции (%s)"
-
-#: backend.c:16862
-#, c-format
-msgid "Error: %s chess program (%s) exited unexpectedly"
-msgstr "Ошибка: движок %s (%s) завершил работу"
-
-#: backend.c:16880
-#, c-format
-msgid "Error reading from %s chess program (%s)"
-msgstr "Ошибка чтения с выхода движка %s (%s)"
-
-#: backend.c:17312
-#, c-format
-msgid "%s engine has too many options\n"
-msgstr "У движка %s слишком много параметров\n"
-
-#: backend.c:17468
-msgid "Displayed move is not current"
-msgstr "Позиция не отвечает положению в игре"
-
-#: backend.c:17477
-msgid "Could not parse move"
-msgstr "Невозможно интерпретировать ход"
-
-#: backend.c:17602 backend.c:17624
-msgid "Both flags fell"
-msgstr "У обоих игроков время вышло"
-
-#: backend.c:17604
-msgid "White's flag fell"
-msgstr "У белых упал флажок"
-
-#: backend.c:17626
-msgid "Black's flag fell"
-msgstr "У черных упал флажок"
-
-#: backend.c:17757
-msgid "Clock adjustment not allowed in auto-flag mode"
-msgstr "В игре на время настройка часов не разрешена"
-
-#: backend.c:18719
-msgid "Bad FEN position in clipboard"
-msgstr "Позиция в буфере обмена не соответствует формату FEN"
-
-#: book.c:598 book.c:874
-msgid "Polyglot book not valid"
-msgstr "Книга дебютов Polyglot недействительна"
-
-#: book.c:722
-msgid "Book Fault"
-msgstr "Сбой в дебютной книге"
-
-#: book.c:877
-msgid "Hash keys are different"
-msgstr "Значения хэшей различаются"
-
-#: book.c:1053
-msgid "Could not create book"
-msgstr "Не удалось создать книгу"
-
-#: dialogs.c:286
-msgid "Tournament file:          "
-msgstr "Файл турнира:             "
-
-#: dialogs.c:287
-msgid "For concurrent playing of tourney with multiple XBoards:"
-msgstr "Для начала турнира с несколькими XBoard одновременно:"
-
-#: dialogs.c:288
-msgid "Sync after round"
-msgstr "Синхронизация данных после раунда"
-
-#: dialogs.c:289
-msgid "Sync after cycle"
-msgstr "Синхронизация данных после цикла"
-
-#: dialogs.c:290
-msgid "Tourney participants:"
-msgstr "Участники турнира"
-
-#: dialogs.c:291
-msgid "Select Engine:"
-msgstr "Виберите движок"
-
-#: dialogs.c:299
-msgid "Tourney type (0 = round-robin, 1 = gauntlet):"
-msgstr "Тип турнира (0 = все со всеми, 1 = выбывание):"
-
-#: dialogs.c:300
-msgid "Number of tourney cycles (or Swiss rounds):"
-msgstr "Число циклов турнира (раундов по швейцарской системе):"
-
-#: dialogs.c:301
-msgid "Default Number of Games in Match (or Pairing):"
-msgstr "Число игр в матче по умолчанию:"
-
-#: dialogs.c:302
-msgid "Pause between Match Games (msec):"
-msgstr "Пауза между играми матча (мсек):"
-
-#: dialogs.c:303
-msgid "Save Tourney Games on:"
-msgstr "Сохранить игры турнира в:"
-
-#: dialogs.c:304
-msgid "Game File with Opening Lines:"
-msgstr ""
-
-#: dialogs.c:305
-msgid "Game Number (-1 or -2 = Auto-Increment):"
-msgstr "Номер игры (-1 или -2 для автоувеличения):"
-
-#: dialogs.c:306
-msgid "File with Start Positions:"
-msgstr "Файл с начальной позицией:"
-
-#: dialogs.c:307
-msgid "Position Number (-1 or -2 = Auto-Increment):"
-msgstr "Номер позиции( -1 или -2 для автоувеличения):"
-
-#: dialogs.c:308
-msgid "Rewind Index after this many Games (0 = never):"
-msgstr "Обнулить индекс после количества игр (0 = никогда):"
-
-#: dialogs.c:309
-msgid "Disable own engine books by default"
-msgstr "Сделать собственные книги дебютов движка неактивной по умолчанию"
-
-#: dialogs.c:310 dialogs.c:1840
-msgid "Time Control"
-msgstr "Контроль времени"
-
-#: dialogs.c:311
-msgid "Common Engine"
-msgstr "Общий движок"
-
-#: dialogs.c:312 dialogs.c:446
-msgid "General Options"
-msgstr "Общие настройки"
-
-#: dialogs.c:313
-msgid "Continue Later"
-msgstr "Продолжить позже"
-
-#: dialogs.c:314
-msgid "Replace Engine"
-msgstr "Заменить движок"
-
-#: dialogs.c:315
-msgid "Upgrade Engine"
-msgstr "Обновить движок"
-
-#: dialogs.c:316
-msgid "Clone Tourney"
-msgstr "Клонировать турнир"
-
-#: dialogs.c:356
-msgid "First you must specify an existing tourney file to clone"
-msgstr "Сначала Вы должны указать существующий файл для клонирования"
-
-#: dialogs.c:372 dialogs.c:1549
-msgid "# no engines are installed"
-msgstr "# движки не установлены"
-
-#: dialogs.c:380
-msgid "Internal error: PARTICIPANTS set wrong"
-msgstr "Внутренняя ошибка: неправильный набор участников"
-
-#: dialogs.c:388
-msgid "Tournament Options"
-msgstr "Настройки турнира"
-
-#: dialogs.c:407
-msgid "Absolute Analysis Scores"
-msgstr "Абсолютное значение анализа"
-
-#: dialogs.c:408
-msgid "Almost Always Queen (Detour Under-Promote)"
-msgstr "Предпочтение ферзю (превращение фигуры)"
-
-#: dialogs.c:409 menus.c:729
-msgid "Animate Dragging"
-msgstr "Анимация перетаскивания"
-
-#: dialogs.c:410 menus.c:730
-msgid "Animate Moving"
-msgstr "Анимация ходов"
-
-#: dialogs.c:411 menus.c:731
-msgid "Auto Flag"
-msgstr "Проверять время"
-
-#: dialogs.c:412 menus.c:732
-msgid "Auto Flip View"
-msgstr "Авторазворот доски"
-
-#: dialogs.c:413 menus.c:733
-msgid "Blindfold"
-msgstr "Невидимые фигуры"
-
-#. TRANSLATORS: the drop menu is used to drop a piece, e.g. during bughouse or editing a position
-#: dialogs.c:415
-msgid "Drop Menu"
-msgstr "Меню хода"
-
-#: dialogs.c:416
-msgid "Enable Variation Trees"
-msgstr "Показывать дерево вариантов"
-
-#: dialogs.c:417
-msgid "Headers in Engine Output Window"
-msgstr "Заголовки в окне вывода сообщений движка"
-
-#: dialogs.c:418
-msgid "Hide Thinking from Human"
-msgstr "Скрывать вывод движка в игре против человека"
-
-#: dialogs.c:419 menus.c:738
-msgid "Highlight Last Move"
-msgstr "Выделять последний ход"
-
-#: dialogs.c:420
-msgid "Highlight with Arrow"
-msgstr "Выделять стрелкой"
-
-#: dialogs.c:421 menus.c:741
-msgid "One-Click Moving"
-msgstr "Ход одним щелчком"
-
-#: dialogs.c:422
-msgid "Periodic Updates (in Analysis Mode)"
-msgstr "Периодически обновлять (в режиме анализа)"
-
-#: dialogs.c:424
-msgid "Play Move(s) of Clicked PV (Analysis)"
-msgstr "Сделать ход(ы) выбранного варианта (анализ)"
-
-#: dialogs.c:425 dialogs.c:626 menus.c:743
-msgid "Ponder Next Move"
-msgstr "Думать всегда"
-
-#: dialogs.c:426
-msgid "Popup Exit Messages"
-msgstr "Сообщение при выходе"
-
-#: dialogs.c:427 menus.c:745
-msgid "Popup Move Errors"
-msgstr "Сообщать о неправильном ходе"
-
-#: dialogs.c:428
-msgid "Scores in Move List"
-msgstr "Очки в списке ходов"
-
-#: dialogs.c:429
-msgid "Show Coordinates"
-msgstr "Показывать координаты"
-
-#: dialogs.c:430
-msgid "Show Target Squares"
-msgstr "Показывать поля, куда ставится фигура"
-
-#: dialogs.c:431
-msgid "Sticky Windows"
-msgstr "\"Липкие\" окна"
-
-#: dialogs.c:432 menus.c:748
-msgid "Test Legality"
-msgstr "Проверять правильность хода CS+L"
-
-#: dialogs.c:433
-msgid "Top-Level Dialogs"
-msgstr ""
-
-#: dialogs.c:434
-msgid "Flash Moves (0 = no flashing):"
-msgstr "Мерцающая подсветка на поле для хода (0 = без мерцания):"
-
-#: dialogs.c:435
-msgid "Flash Rate (high = fast):"
-msgstr "Частота мерцания (высокая - низкая):"
-
-#: dialogs.c:436
-msgid "Animation Speed (high = slow):"
-msgstr "Скорость анимации (быстро - медленно):"
-
-#: dialogs.c:437
-msgid "Zoom factor in Evaluation Graph:"
-msgstr "Коэффициент приближения в оценке позиции:"
-
-#: dialogs.c:457
-msgid "Normal"
-msgstr "обычные"
-
-#: dialogs.c:458
-msgid "Makruk"
-msgstr "макрук"
-
-#: dialogs.c:459
-msgid "FRC"
-msgstr "Фишера (960)"
-
-#: dialogs.c:460
-msgid "Shatranj"
-msgstr "Шатрандж"
-
-#: dialogs.c:461
-msgid "Wild castle"
-msgstr ""
-
-#: dialogs.c:462
-msgid "Knightmate"
-msgstr "Конь"
-
-#: dialogs.c:463
-msgid "No castle"
-msgstr ""
-
-#: dialogs.c:464
-msgid "Cylinder *"
-msgstr "цилиндрические *"
-
-#: dialogs.c:465
-msgid "3-checks"
-msgstr ""
-
-#: dialogs.c:466
-msgid "berolina *"
-msgstr ""
-
-#: dialogs.c:467
-msgid "atomic"
-msgstr "атомные"
-
-#: dialogs.c:468
-msgid "two kings"
-msgstr "два короля"
-
-#: dialogs.c:469
-msgid " "
-msgstr " "
-
-#: dialogs.c:470
-msgid "Spartan"
-msgstr ""
-
-#: dialogs.c:471
-msgid "Board size ( -1 = default for selected variant):"
-msgstr "Размер доски ( -1 = значение по умолчанию для выбранного варианта):"
-
-#: dialogs.c:472
-msgid "Number of Board Ranks:"
-msgstr ""
-
-#: dialogs.c:473
-msgid "Number of Board Files:"
-msgstr ""
-
-#: dialogs.c:474
-msgid "Holdings Size:"
-msgstr ""
-
-#: dialogs.c:476
-msgid ""
-"Variants marked with * can only be played\n"
-"with legality testing off."
-msgstr ""
-"Могут быть сыграны только варианты, помеченные\n"
-"знаком (*) и без проверки правильности"
-
-#: dialogs.c:478
-msgid "ASEAN"
-msgstr ""
-
-#: dialogs.c:479
-msgid "Great Shatranj (10x8)"
-msgstr "Большой шатрандж (10x8)"
-
-#: dialogs.c:480
-msgid "Seirawan"
-msgstr "Сейравана"
-
-#: dialogs.c:481
-msgid "Falcon (10x8)"
-msgstr "Сокол (10x8) "
-
-#: dialogs.c:482
-msgid "Superchess"
-msgstr "Супершахматы"
-
-#: dialogs.c:483
-msgid "Capablanca (10x8)"
-msgstr "Версия Капабланки (10x8)"
-
-#: dialogs.c:484
-msgid "Crazyhouse"
-msgstr ""
-
-#: dialogs.c:485
-msgid "Gothic (10x8)"
-msgstr "Готические (10x8)"
-
-#: dialogs.c:486
-msgid "Bughouse"
-msgstr "Шведки"
-
-#: dialogs.c:487
-msgid "Janus (10x8)"
-msgstr ""
-
-#: dialogs.c:488
-msgid "Suicide"
-msgstr ""
-
-#: dialogs.c:489
-msgid "CRC (10x8)"
-msgstr ""
-
-#: dialogs.c:490
-msgid "give-away"
-msgstr "поддавки (без мата)"
-
-#: dialogs.c:491
-msgid "grand (10x10)"
-msgstr "большие шахматы (10x10)"
-
-#: dialogs.c:492
-msgid "losers"
-msgstr "поддавки (мат)"
-
-#: dialogs.c:493
-msgid "shogi (9x9)"
-msgstr ""
-
-#: dialogs.c:494
-msgid "fairy"
-msgstr ""
-
-#: dialogs.c:495
-msgid "xiangqi (9x10)"
-msgstr ""
-
-#: dialogs.c:496
-msgid "mighty lion"
-msgstr ""
-
-#: dialogs.c:497
-msgid "courier (12x8)"
-msgstr ""
-
-#: dialogs.c:498
-msgid "elven chess (10x10)"
-msgstr ""
-
-#: dialogs.c:499
-msgid "chu shogi (12x12)"
-msgstr ""
-
-#: dialogs.c:543
-#, c-format
-msgid "Warning: second engine (%s) does not support this!"
-msgstr "Предупреждение: второй движок (%s) не поддерживает это!"
-
-#: dialogs.c:572
-#, c-format
-msgid "Only bughouse is not available in viewer mode."
-msgstr "В режиме просмотра не поддерживаются только \"шведки\""
-
-#: dialogs.c:573
-#, c-format
-msgid ""
-"All variants not supported by the first engine\n"
-"(currently %s) are disabled."
-msgstr ""
-"Все варианты, не поддерживающиеся первым\n"
-"движком (%s) отключены."
-
-#: dialogs.c:595
-msgid "New Variant"
-msgstr "Варианты"
-
-#: dialogs.c:627
-msgid "Maximum Number of CPUs per Engine:"
-msgstr "Max число CPU на движок:"
-
-#: dialogs.c:628
-msgid "Polygot Directory:"
-msgstr "Каталог программы polyglot"
-
-#: dialogs.c:629
-msgid "Hash-Table Size (MB):"
-msgstr "Размер хеша (МБ):"
-
-#: dialogs.c:630
-msgid "EGTB Path:"
-msgstr "Путь к ЭБД:"
-
-#: dialogs.c:631
-msgid "EGTB Cache Size (MB):"
-msgstr "Кеш ЭБД (МБ):"
-
-#: dialogs.c:632
-msgid "Use GUI Book"
-msgstr "Использовать графический интерфейс книги дебютов"
-
-#: dialogs.c:633
-msgid "Opening-Book Filename:"
-msgstr "Имя файла дебютной книги:"
-
-#: dialogs.c:634
-msgid "Book Depth (moves):"
-msgstr "Глубина книги (ходов):"
-
-#: dialogs.c:635
-msgid "Book Variety (0) vs. Strength (100):"
-msgstr "Варьирование:"
-
-#: dialogs.c:636
-msgid "Engine #1 Has Own Book"
-msgstr "Своя книга у движка 1"
-
-#: dialogs.c:637
-msgid "Engine #2 Has Own Book          "
-msgstr "Своя книга у движка 2"
-
-#: dialogs.c:648
-msgid "Common Engine Settings"
-msgstr "Общие настройки движков"
-
-#: dialogs.c:654
-msgid "Detect all Mates"
-msgstr "Определять мат"
-
-#: dialogs.c:655
-msgid "Verify Engine Result Claims"
-msgstr "Проверять требования движка"
-
-#: dialogs.c:656
-msgid "Draw if Insufficient Mating Material"
-msgstr "Ничья, когда не хватает фигур, чтобы поставить мат"
-
-#: dialogs.c:657
-msgid "Adjudicate Trivial Draws (3-Move Delay)"
-msgstr "Ничья в технич. окончаниях"
-
-#: dialogs.c:658
-msgid "N-Move Rule:"
-msgstr ""
-
-#: dialogs.c:659
-msgid "N-fold Repeats:"
-msgstr ""
-
-#: dialogs.c:660
-msgid "Draw after N Moves Total:"
-msgstr "Присудить ничью после числа ходов:"
-
-#: dialogs.c:661
-msgid "Win / Loss Threshold:"
-msgstr "Победа/поражение при перевесе в"
-
-#: dialogs.c:662
-msgid "Negate Score of Engine #1"
-msgstr "Оценка движка 1 - абсолютная"
-
-#: dialogs.c:663
-msgid "Negate Score of Engine #2"
-msgstr "Оценка движка 2 - абсолютная"
-
-#: dialogs.c:670
-msgid "Adjudicate non-ICS Games"
-msgstr "Присудить победу играм не-ICS"
-
-#: dialogs.c:683
-msgid "Auto-Kibitz"
-msgstr ""
-
-#: dialogs.c:684
-msgid "Auto-Comment"
-msgstr "Комментарии"
-
-#: dialogs.c:685
-msgid "Auto-Observe"
-msgstr "Следить за игрой"
-
-#: dialogs.c:686
-msgid "Auto-Raise Board"
-msgstr "Раскрывать доску"
-
-#: dialogs.c:687
-msgid "Auto-Create Logon Script"
-msgstr "Автоматическое создание сценария входа"
-
-#: dialogs.c:688
-msgid "Background Observe while Playing"
-msgstr "Следить в фоне"
-
-#: dialogs.c:689
-msgid "Dual Board for Background-Observed Game"
-msgstr "Двойная доска"
-
-#: dialogs.c:690
-msgid "Get Move List"
-msgstr "Запрашивать запись ходов"
-
-#: dialogs.c:691
-msgid "Quiet Play"
-msgstr "Спокойная игра"
-
-#: dialogs.c:692
-msgid "Seek Graph"
-msgstr "График поиска"
-
-#: dialogs.c:693
-msgid "Auto-Refresh Seek Graph"
-msgstr "Автообновление"
-
-#: dialogs.c:694
-msgid "Auto-InputBox PopUp"
-msgstr ""
-
-#: dialogs.c:695
-msgid "Quit after game"
-msgstr "Выход после окончания игры"
-
-#: dialogs.c:696
-msgid "Premove"
-msgstr "Предварительный ход"
-
-#: dialogs.c:697
-msgid "Premove for White"
-msgstr "Предварительный ход для белых"
-
-#: dialogs.c:698
-msgid "First White Move:"
-msgstr "1-й ход белых"
-
-#: dialogs.c:699
-msgid "Premove for Black"
-msgstr "Предварительный ход для черных"
-
-#: dialogs.c:700
-msgid "First Black Move:"
-msgstr "1-й ход черных"
-
-#: dialogs.c:702
-msgid "Alarm"
-msgstr "Звонок"
-
-#: dialogs.c:703
-msgid "Alarm Time (msec):"
-msgstr "Время звонка (мс) :"
-
-#: dialogs.c:705
-msgid "Colorize Messages"
-msgstr "Разные цвета сообщений"
-
-#: dialogs.c:706
-msgid "Shout Text Colors:"
-msgstr ""
-
-#: dialogs.c:707
-msgid "S-Shout Text Colors:"
-msgstr ""
-
-#: dialogs.c:708
-msgid "Channel #1 Text Colors:"
-msgstr "Цвета текста канала 1:"
-
-#: dialogs.c:709
-msgid "Other Channel Text Colors:"
-msgstr "Цвета текста других каналов:"
-
-#: dialogs.c:710
-msgid "Kibitz Text Colors:"
-msgstr ""
-
-#: dialogs.c:711
-msgid "Tell Text Colors:"
-msgstr ""
-
-#: dialogs.c:712
-msgid "Challenge Text Colors:"
-msgstr ""
-
-#: dialogs.c:713
-msgid "Request Text Colors:"
-msgstr ""
-
-#: dialogs.c:714
-msgid "Seek Text Colors:"
-msgstr "Цвета текста поиска:"
-
-#: dialogs.c:715
-msgid "Other Text Colors:"
-msgstr ""
-
-#: dialogs.c:722
-msgid "ICS Options"
-msgstr "Настройки соединения с ICS"
-
-#: dialogs.c:727
-msgid "Exact position match"
-msgstr "Точное совпадение позиции"
-
-#: dialogs.c:727
-msgid "Shown position is subset"
-msgstr ""
-
-#: dialogs.c:727
-msgid "Same material with exactly same Pawn chain"
-msgstr ""
-
-#: dialogs.c:728
-msgid "Same material"
-msgstr ""
-
-#: dialogs.c:728
-msgid "Material range (top board half optional)"
-msgstr ""
-
-#: dialogs.c:728
-msgid "Material difference (optional stuff balanced)"
-msgstr ""
-
-#: dialogs.c:743
-msgid "Auto-Display Tags"
-msgstr "Автоматическое отображение тэгов"
-
-#: dialogs.c:744
-msgid "Auto-Display Comment"
-msgstr "Автоматические отображение комментариев"
-
-#: dialogs.c:745
-msgid ""
-"Auto-Play speed of loaded games\n"
-"(0 = instant, -1 = off):"
-msgstr ""
-
-#: dialogs.c:746
-msgid "Seconds per Move:"
-msgstr "Количество секунд на ход:"
-
-#: dialogs.c:747
-msgid ""
-"\n"
-"options to use in game-viewer mode:"
-msgstr ""
-"\n"
-"параметры, которые можно использовать в режиме просмтра игры:"
-
-#: dialogs.c:749
-msgid ""
-"\n"
-"Thresholds for position filtering in game list:"
-msgstr ""
-
-#: dialogs.c:750
-msgid "Elo of strongest player at least:"
-msgstr "Минимальный рейтинг Эло для сильнейшего игрока:"
-
-#: dialogs.c:751
-msgid "Elo of weakest player at least:"
-msgstr "Минимальный рейтинг Эло для самого слабого игрока:"
-
-#: dialogs.c:752
-msgid "No games before year:"
-msgstr "Нет партий до года:"
-
-#: dialogs.c:753
-msgid "Minimum nr consecutive positions:"
-msgstr "Минимальное количество последовательных позиций:"
-
-#: dialogs.c:755
-msgid "Search mode:"
-msgstr "Режим поиска:"
-
-#: dialogs.c:756
-msgid "Also match reversed colors"
-msgstr ""
-
-#: dialogs.c:757
-msgid "Also match left-right flipped position"
-msgstr ""
-
-#: dialogs.c:766
-msgid "Load Game Options"
-msgstr "Параметры загрузки"
-
-#: dialogs.c:778
-msgid "Auto-Save Games"
-msgstr "Автосохранение игр"
-
-#: dialogs.c:779
-msgid "Own Games Only"
-msgstr "Только свои игры"
-
-#: dialogs.c:780
-msgid "Save Games on File:"
-msgstr "Сохранить игры в файле:"
-
-#: dialogs.c:781
-msgid "Save Final Positions on File:"
-msgstr "Сохранить финальную позицию в файле:"
-
-#: dialogs.c:782
-msgid "PGN Event Header:"
-msgstr ""
-
-#: dialogs.c:783
-msgid "Old Save Style (as opposed to PGN)"
-msgstr ""
-
-#: dialogs.c:784
-msgid "Include Number Tag in tourney PGN"
-msgstr ""
-
-#: dialogs.c:785
-msgid "Save Score/Depth Info in PGN"
-msgstr ""
-
-#: dialogs.c:786
-msgid "Save Out-of-Book Info in PGN           "
-msgstr ""
-
-#: dialogs.c:793
-msgid "Save Game Options"
-msgstr "Настройки сохранения"
-
-#: dialogs.c:802
-msgid "No Sound"
-msgstr "Без звука"
-
-#: dialogs.c:803
-msgid "Default Beep"
-msgstr "Простой сигнал"
-
-#: dialogs.c:804
-msgid "Above WAV File"
-msgstr "Указать WAV-файл"
-
-#: dialogs.c:805
-msgid "Car Horn"
-msgstr "Автомобильный гудок"
-
-#: dialogs.c:806
-msgid "Cymbal"
-msgstr "Кимвал"
-
-#: dialogs.c:807
-msgid "Ding"
-msgstr "Звон"
-
-#: dialogs.c:808
-msgid "Gong"
-msgstr "Гонг"
-
-#: dialogs.c:809
-msgid "Laser"
-msgstr "Лазер"
-
-#: dialogs.c:810
-msgid "Penalty"
-msgstr "Штраф"
-
-#: dialogs.c:811
-msgid "Phone"
-msgstr "Телефон"
-
-#: dialogs.c:812
-msgid "Pop"
-msgstr "Хлопок"
-
-#: dialogs.c:813
-msgid "Roar"
-msgstr "Рев"
-
-#: dialogs.c:814
-msgid "Slap"
-msgstr "Пощечина"
-
-#: dialogs.c:815
-msgid "Wood Thunk"
-msgstr "Глухой деревянный стук"
-
-#: dialogs.c:817
-msgid "User File"
-msgstr "Пользовательский файл"
-
-#: dialogs.c:840
-msgid "User WAV File:"
-msgstr "Пользовательский WAV-файл"
-
-#: dialogs.c:841
-msgid "Sound Program:"
-msgstr "Программа воспроизведения звука:"
-
-#: dialogs.c:842
-msgid "Try-Out Sound:"
-msgstr "Пробный звук"
-
-#: dialogs.c:843
-msgid "Play"
-msgstr "Послушать"
-
-#: dialogs.c:844
-msgid "Move:"
-msgstr "Ходов:"
-
-#: dialogs.c:845
-msgid "Win:"
-msgstr "Побед:"
-
-#: dialogs.c:846
-msgid "Lose:"
-msgstr "Поражений:"
-
-#: dialogs.c:847
-msgid "Draw:"
-msgstr "Ничьих:"
-
-#: dialogs.c:848
-msgid "Unfinished:"
-msgstr "Наоконченных:"
-
-#: dialogs.c:849
-msgid "Alarm:"
-msgstr "Важное сообщение:"
-
-#: dialogs.c:850
-msgid "Challenge:"
-msgstr "Вызов:"
-
-#: dialogs.c:852
-msgid "Sounds Directory:"
-msgstr "Каталог с файлами звуковых эффектов"
-
-#: dialogs.c:853
-msgid "Shout:"
-msgstr ""
-
-#: dialogs.c:854
-msgid "S-Shout:"
-msgstr ""
-
-#: dialogs.c:855
-msgid "Channel:"
-msgstr "Канал:"
-
-#: dialogs.c:856
-msgid "Channel 1:"
-msgstr "Канал 1:"
-
-#: dialogs.c:857
-msgid "Tell:"
-msgstr "Сказать:"
-
-#: dialogs.c:858
-msgid "Kibitz:"
-msgstr ""
-
-#: dialogs.c:859
-msgid "Request:"
-msgstr "Запрос:"
-
-#: dialogs.c:860
-msgid "Lion roar:"
-msgstr "Рев льва:"
-
-#: dialogs.c:861
-msgid "Seek:"
-msgstr "Искать:"
-
-#: dialogs.c:877
-msgid "Sound Options"
-msgstr "Настройки звука"
-
-#: dialogs.c:893
-msgid "Selectable themes:"
-msgstr "Темы оформления"
-
-#: dialogs.c:895
-msgid "New name for current theme:"
-msgstr "Новое имя для текущей темы:"
-
-#: dialogs.c:898
-msgid "White Piece Color:"
-msgstr "Цвет белых фигур:"
-
-#. TRANSLATORS: R = single letter for the color red
-#: dialogs.c:901 dialogs.c:910 dialogs.c:916 dialogs.c:922 dialogs.c:928
-#: dialogs.c:934
-msgid "R"
-msgstr "К"
-
-#. TRANSLATORS: G = single letter for the color green
-#: dialogs.c:903 dialogs.c:911 dialogs.c:917 dialogs.c:923 dialogs.c:929
-#: dialogs.c:935
-msgid "G"
-msgstr "З"
-
-#. TRANSLATORS: B = single letter for the color blue
-#: dialogs.c:905 dialogs.c:912 dialogs.c:918 dialogs.c:924 dialogs.c:930
-#: dialogs.c:936 dialogs.c:1650 dialogs.c:1656 dialogs.c:1662 dialogs.c:1668
-#: dialogs.c:1674 dialogs.c:1680 dialogs.c:1686
-msgid "B"
-msgstr "С"
-
-#. TRANSLATORS: D = single letter to make a color darker
-#: dialogs.c:907 dialogs.c:913 dialogs.c:919 dialogs.c:925 dialogs.c:931
-#: dialogs.c:937
-msgid "D"
-msgstr "Т"
-
-#: dialogs.c:908
-msgid "Black Piece Color:"
-msgstr "Черные фигуры:"
-
-#: dialogs.c:914
-msgid "Light Square Color:"
-msgstr "Белые поля:"
-
-#: dialogs.c:920
-msgid "Dark Square Color:"
-msgstr "Черные поля"
-
-#: dialogs.c:926
-msgid "Highlight Color:"
-msgstr "Выделенное поле:"
-
-#: dialogs.c:932
-msgid "Premove Highlight Color:"
-msgstr "Цвет поля при предв. ходе:"
-
-#: dialogs.c:938
-msgid "Flip Pieces Shogi Style        (Colored buttons restore default)"
-msgstr ""
-
-#: dialogs.c:940
-msgid "Mono Mode"
-msgstr "Монохромная"
-
-#: dialogs.c:941
-msgid "Logo Size (0=off, requires restart):"
-msgstr "Размер логотипа (0-отключить, требует перезапуска)"
-
-#: dialogs.c:942
-msgid "Line Gap (-1 = default for board size):"
-msgstr ""
-
-#: dialogs.c:943
-msgid "Use Board Textures"
-msgstr "Использовать текстуры доски"
-
-#: dialogs.c:944
-msgid "Light-Squares Texture File:"
-msgstr "Файл с тексторой для белых клеток:"
-
-#: dialogs.c:945
-msgid "Dark-Squares Texture File:"
-msgstr "Файл с тексторой для черных клеток:"
-
-#: dialogs.c:946
-msgid "Use external piece bitmaps with their own colors"
-msgstr ""
-
-#: dialogs.c:947
-msgid "Directory with Pieces Images:"
-msgstr "Каталог с изображениями фигур:"
-
-#: dialogs.c:1018
-msgid "# no themes are defined"
-msgstr "# не определено ни одной темы"
-
-#: dialogs.c:1030
-msgid "Board Options"
-msgstr "Настройки доски"
-
-#: dialogs.c:1101 menus.c:646
-msgid "ICS text menu"
-msgstr "текстовое меню ICS"
-
-#: dialogs.c:1130
-msgid "clear"
-msgstr "очистка"
-
-#: dialogs.c:1131
-msgid "save changes"
-msgstr "сохранить изменения"
-
-#: dialogs.c:1229
-msgid "add next move"
-msgstr "добавить следующий ход"
-
-#: dialogs.c:1230
-#, fuzzy
-msgid "commit changes"
-msgstr "сохранить изменения"
-
-#: dialogs.c:1253
-msgid "Edit book"
-msgstr "Править книгу"
-
-#: dialogs.c:1270 dialogs.c:1277 menus.c:648
-msgid "Tags"
-msgstr "Описание"
-
-#: dialogs.c:1285
-#, fuzzy
-msgid "Registered Engines"
-msgstr "Заменить движок"
-
-#: dialogs.c:1401
-msgid "ICS input box"
-msgstr "поле ввода команд для ICS"
-
-#: dialogs.c:1433
-msgid "Type a move"
-msgstr "Написать ход"
-
-#: dialogs.c:1459
-msgid "Engine has no options"
-msgstr "У движка нет настроек"
-
-#: dialogs.c:1461
-msgid "Engine Settings"
-msgstr "Настройки движка"
-
-#: dialogs.c:1502
-msgid "Select engine from list:"
-msgstr "Выберите движок из списка:"
-
-#: dialogs.c:1505
-msgid "or specify one below:"
-msgstr "или укажите один из:"
-
-#: dialogs.c:1506
-msgid "Nickname (optional):"
-msgstr "Краткое имя (необязательно)"
-
-#: dialogs.c:1507
-msgid "Use nickname in PGN player tags of engine-engine games"
-msgstr ""
-
-#: dialogs.c:1508
-msgid "Engine Directory:"
-msgstr "Каталог с движком:"
-
-#: dialogs.c:1509
-msgid "Engine Command:"
-msgstr "Команда движка:"
-
-#: dialogs.c:1510
-msgid "(Directory will be derived from engine path when empty)"
-msgstr "(если ничего не указано, каталог будет таким же, как путь к движку)"
-
-#: dialogs.c:1511
-msgid "UCI"
-msgstr ""
-
-#: dialogs.c:1512
-msgid "USI/UCCI (uses specified -uxiAdapter)"
-msgstr ""
-
-#: dialogs.c:1513
-msgid "WB protocol v1 (do not wait for engine features)"
-msgstr ""
-
-#: dialogs.c:1514
-msgid "Must not use GUI book"
-msgstr "Нельзя использовать графический интерфейс книги дебютов"
-
-#: dialogs.c:1515
-msgid "Add this engine to the list"
-msgstr "Внести этот движок в список"
-
-#: dialogs.c:1516
-msgid "Force current variant with this engine"
-msgstr ""
-
-#: dialogs.c:1570
-msgid "Load first engine"
-msgstr "Загрузить первый движок"
-
-#: dialogs.c:1576
-msgid "Load second engine"
-msgstr "Загрузить второй движок"
-
-#: dialogs.c:1599
-msgid "shuffle"
-msgstr ""
-
-#: dialogs.c:1600
-msgid "Fischer castling"
-msgstr ""
-
-#: dialogs.c:1601
-msgid "Start-position number:"
-msgstr "Номер позиции:"
-
-#: dialogs.c:1602
-msgid "randomize"
-msgstr "Случайно"
-
-#: dialogs.c:1603
-msgid "pick fixed"
-msgstr ""
-
-#: dialogs.c:1620
-msgid "New Shuffle Game"
-msgstr "Новая в смешанные шахматы..."
-
-#: dialogs.c:1647
-#, fuzzy
-msgid "Clocks (requires restart):"
-msgstr "Размер логотипа (0-отключить, требует перезапуска)"
-
-#: dialogs.c:1648 dialogs.c:1654 dialogs.c:1660 dialogs.c:1666 dialogs.c:1672
-#: dialogs.c:1678 dialogs.c:1684
-msgid "+"
-msgstr ""
-
-#: dialogs.c:1649 dialogs.c:1655 dialogs.c:1661 dialogs.c:1667 dialogs.c:1673
-#: dialogs.c:1679 dialogs.c:1685
-msgid "-"
-msgstr ""
-
-#: dialogs.c:1651 dialogs.c:1657 dialogs.c:1663 dialogs.c:1669 dialogs.c:1675
-#: dialogs.c:1681 dialogs.c:1687
-msgid "I"
-msgstr ""
-
-#: dialogs.c:1652 dialogs.c:1658 dialogs.c:1664 dialogs.c:1670 dialogs.c:1676
-#: dialogs.c:1682 dialogs.c:1688
-msgid "*"
-msgstr ""
-
-#: dialogs.c:1653
-msgid "Message (above board):"
-msgstr ""
-
-#: dialogs.c:1659
-#, fuzzy
-msgid "ICS Chat/Console:"
-msgstr "Консоль чата ICS"
-
-#: dialogs.c:1665
-msgid "Edit tags / book / engine list:"
-msgstr ""
-
-#: dialogs.c:1671
-#, fuzzy
-msgid "Edit comments:"
-msgstr "Правка комментария"
-
-#: dialogs.c:1677
-#, fuzzy
-msgid "Move history / Engine Output:"
-msgstr "Вывод движка"
-
-#: dialogs.c:1683
-#, fuzzy
-msgid "Game list:"
-msgstr "Список партий"
-
-#: dialogs.c:1689
-msgid ""
-"\n"
-"The * buttons will set the font to the one selected below:"
-msgstr ""
-
-#: dialogs.c:1743
-msgid "This only works in the GTK build"
-msgstr ""
-
-#: dialogs.c:1744
-msgid "Fonts"
-msgstr ""
-
-#: dialogs.c:1764
-msgid "classical"
-msgstr "классический"
-
-#: dialogs.c:1765
-msgid "incremental"
-msgstr "увеличивающийся"
-
-#: dialogs.c:1766
-msgid "fixed max"
-msgstr "зафиксированный максимум"
-
-#: dialogs.c:1767
-msgid "Divide entered times by 60"
-msgstr ""
-
-#: dialogs.c:1768
-msgid "Moves per session:"
-msgstr "Количество ходов в партии:"
-
-#: dialogs.c:1769
-msgid "Initial time (min):"
-msgstr "Начальное время (мин):"
-
-#: dialogs.c:1770
-msgid "Increment or max (sec/move):"
-msgstr ""
-
-#: dialogs.c:1771
-#, fuzzy
-msgid "Time-Odds factors:"
-msgstr "Фактор времени движков:"
-
-#: dialogs.c:1772
-msgid "Engine #1"
-msgstr "Движок №1"
-
-#: dialogs.c:1773
-msgid "Engine #2 / Human"
-msgstr "Движок 2 / Человек"
-
-#: dialogs.c:1814 dialogs.c:1817 dialogs.c:1822 dialogs.c:1823
-#: gtk/xoptions.c:183
-msgid "Unused"
-msgstr "Неиспользовано"
-
-#: dialogs.c:1832
-msgid "Changing time control during a game is not implemented"
-msgstr ""
-
-#: dialogs.c:1869
-msgid "Error writing to chess program"
-msgstr "Ошибка подключения к шахматной программе"
-
-#: dialogs.c:1937 gtk/xoptions.c:1775 xaw/xoptions.c:1341
-msgid "Cancel"
-msgstr "Отмена"
-
-#: dialogs.c:1942 dialogs.c:2695 dialogs.c:2699
-msgid "King"
-msgstr "Король"
-
-#: dialogs.c:1945
-msgid "Captain"
-msgstr "Капитан"
-
-#: dialogs.c:1946
-msgid "Lieutenant"
-msgstr "Лейтенант"
-
-#: dialogs.c:1947
-msgid "General"
-msgstr "Генерал"
-
-#: dialogs.c:1948
-msgid "Warlord"
-msgstr "Главнокомандующий"
-
-#: dialogs.c:1950 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Knight"
-msgstr "Конь"
-
-#: dialogs.c:1951 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Bishop"
-msgstr "Слон"
-
-#: dialogs.c:1952 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Rook"
-msgstr "Ладья"
-
-#: dialogs.c:1956 dialogs.c:2696 dialogs.c:2700
-msgid "Archbishop"
-msgstr "Архиепископ"
-
-#: dialogs.c:1957 dialogs.c:2696 dialogs.c:2700
-msgid "Chancellor"
-msgstr "Канцлер"
-
-#: dialogs.c:1959 dialogs.c:2695 dialogs.c:2699 dialogs.c:2717
-msgid "Queen"
-msgstr "Ферзь"
-
-#: dialogs.c:1961
-msgid "Lion"
-msgstr "Лев"
-
-#: dialogs.c:1965
-msgid "Defer"
-msgstr "Отложить"
-
-#: dialogs.c:1966 dialogs.c:2696 dialogs.c:2700
-msgid "Promote"
-msgstr "Превратить"
-
-#: dialogs.c:2023
-msgid "Chats:"
-msgstr "Беседы:"
-
-#: dialogs.c:2024 dialogs.c:2025 dialogs.c:2026 dialogs.c:2027 dialogs.c:2028
-#: dialogs.c:2134 dialogs.c:2199 dialogs.c:2231
-msgid "New Chat"
-msgstr "Новая беседа"
-
-#: dialogs.c:2031
-msgid "Chat partner:"
-msgstr "Беседа с партнером:"
-
-#: dialogs.c:2032
-msgid "End Chat"
-msgstr "Закончить беседу"
-
-#: dialogs.c:2033
-msgid "Hide"
-msgstr "Спрятать"
-
-#: dialogs.c:2260
-msgid "ICS Interaction"
-msgstr "Взаиможействие с ICS"
-
-#: dialogs.c:2345
-msgid "factory"
-msgstr "Стандарт"
-
-#: dialogs.c:2346
-msgid "up"
-msgstr "Вверх"
-
-#: dialogs.c:2347
-msgid "down"
-msgstr "Вниз"
-
-#: dialogs.c:2366
-msgid "No tag selected"
-msgstr "Признаки не выбраны"
-
-#: dialogs.c:2397
-msgid "Game-list options"
-msgstr "Параметры списка игр"
-
-#: dialogs.c:2475 dialogs.c:2489
-msgid "Error"
-msgstr "Ошибка"
-
-#: dialogs.c:2518
-msgid "Fatal Error"
-msgstr "Неисправимая ошибка"
-
-#: dialogs.c:2518
-msgid "Exiting"
-msgstr "Выход"
-
-#: dialogs.c:2529
-msgid "Information"
-msgstr "Информация"
-
-#: dialogs.c:2536
-msgid "Note"
-msgstr "Примечание"
-
-#: dialogs.c:2694 dialogs.c:2987 dialogs.c:2990
-msgid "White"
-msgstr "Белые"
-
-#: dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Pawn"
-msgstr "Пешка"
-
-#: dialogs.c:2695 dialogs.c:2699
-msgid "Elephant"
-msgstr "Слон (стар.)"
-
-#: dialogs.c:2695 dialogs.c:2699
-msgid "Cannon"
-msgstr "Пушка"
-
-#: dialogs.c:2696 dialogs.c:2700
-msgid "Demote"
-msgstr "Разжаловать"
-
-#: dialogs.c:2697 dialogs.c:2701
-msgid "Empty square"
-msgstr "Пустое поле"
-
-#: dialogs.c:2697 dialogs.c:2701
-msgid "Clear board"
-msgstr "Очистить доску"
-
-#: dialogs.c:2698 dialogs.c:2999 dialogs.c:3002
-msgid "Black"
-msgstr "Черные"
-
-#: dialogs.c:2798
-#, fuzzy
-msgid "_File"
-msgstr "Файл"
-
-#: dialogs.c:2799
-#, fuzzy
-msgid "_Edit"
-msgstr "Правка"
-
-#: dialogs.c:2800
-#, fuzzy
-msgid "_View"
-msgstr "Вид"
-
-#: dialogs.c:2801
-#, fuzzy
-msgid "_Mode"
-msgstr "Режим"
-
-#: dialogs.c:2802
-#, fuzzy
-msgid "_Action"
-msgstr "Игра"
-
-#: dialogs.c:2803
-#, fuzzy
-msgid "E_ngine"
-msgstr "Движок"
-
-#: dialogs.c:2804
-#, fuzzy
-msgid "_Options"
-msgstr "Настройки"
-
-#: dialogs.c:2805
-#, fuzzy
-msgid "_Help"
-msgstr "Справка"
-
-#: dialogs.c:2815
-msgid "<<"
-msgstr "<<"
-
-#: dialogs.c:2816
-msgid "<"
-msgstr "<"
-
-#: dialogs.c:2818
-msgid ">"
-msgstr ">"
-
-#: dialogs.c:2819
-msgid ">>"
-msgstr ">>"
-
-#: dialogs.c:3107
-msgid "Directories:"
-msgstr "Каталоги:"
-
-#: dialogs.c:3108
-msgid "Files:"
-msgstr "Файлы:"
-
-#: dialogs.c:3109
-msgid "by name"
-msgstr "по имени"
-
-#: dialogs.c:3110
-msgid "by type"
-msgstr "по типу"
-
-#: dialogs.c:3113
-msgid "Filename:"
-msgstr "Имя файла:"
-
-#: dialogs.c:3114
-msgid "New directory"
-msgstr "Новый каталог"
-
-#: dialogs.c:3115
-msgid "File type:"
-msgstr "Тип файла:"
-
-#: dialogs.c:3190
-msgid "Contents of"
-msgstr "Комментарии"
-
-#: dialogs.c:3216
-msgid "  next page"
-msgstr "  следующая страница"
-
-#: dialogs.c:3233
-msgid "FIRST TYPE DIRECTORY NAME HERE"
-msgstr "СНАЧАЛА ВПИШИТЕ СЮДА НАЗВАНИЕ КАТАЛОГА"
-
-#: dialogs.c:3234
-msgid "TRY ANOTHER NAME"
-msgstr "Попробуйте другое имя"
-
-#: draw.c:405
-msgid ""
-"No default pieces installed!\n"
-"Select your own using '-pieceImageDirectory'."
-msgstr ""
-"Не установлены фигуры по умолчанию!\n"
-"Выберите собственные фигуры, используя '-pieceImageDirectory'."
-
-#: engineoutput.c:112 menus.c:642
-#, c-format
-msgid "Engine Output"
-msgstr "Вывод движка"
-
-#: engineoutput.c:122
-#, c-format
-msgid "%s (%d reversible ply)"
-msgid_plural "%s (%d reversible plies)"
-msgstr[0] "%s (%d обратимый слой)"
-msgstr[1] "%s (%d обратимых слоя)"
-msgstr[2] "%s (%d обратимых слоев)"
-
-#: engineoutput.c:565 engineoutput.c:568 nengineoutput.c:83 nengineoutput.c:91
-msgid "NPS"
-msgstr "NPS (Узл./сек.)"
-
-#: gamelist.c:379
-#, c-format
-msgid "Reading game file (%d)"
-msgstr "Чтение файла игры (%d)"
-
-#: gtk/xboard.c:979 xaw/xboard.c:1074
-#, c-format
-msgid "%s: can't cd to CHESSDIR: "
-msgstr "%s: не могу перейти в каталог CHESSDIR:"
-
-#: gtk/xboard.c:988 xaw/xboard.c:1083
-#, c-format
-msgid "Failed to open file '%s'\n"
-msgstr "Не удалось открыть файл '%s'\n"
-
-#: gtk/xboard.c:1003 xaw/xboard.c:1092
-msgid "Recompile with larger BOARD_RANKS or BOARD_FILES to support this size"
-msgstr ""
-"Для поддержки этого размера перекомпилируйте программу с бОльшими значениями "
-"BOARD_RANKS или BOARD_FILES"
-
-#: gtk/xboard.c:1022 xaw/xboard.c:1124
-#, c-format
-msgid "%s: bad boardSize syntax %s\n"
-msgstr "%s: неправильный синтакс boardSize (размер доски) %s\n"
-
-#: gtk/xboard.c:1063 xaw/xboard.c:1163
-#, c-format
-msgid "%s: unrecognized boardSize name %s\n"
-msgstr "%s: неопознанное имя boardSize (размер доски) %s\n"
-
-#: gtk/xboard.c:1107 xaw/xboard.c:1200
-#, c-format
-msgid "%s: too few colors available; trying monochrome mode\n"
-msgstr "%s: слишком мало доступных цветов; пробую черно-белый режим\n"
-
-#: gtk/xboard.c:1421 xaw/xboard.c:1492
-#, c-format
-msgid "Unable to create font set for %s.\n"
-msgstr "Не удалось создать список шрифтов для %s\n"
-
-#: gtk/xboard.c:1446 xaw/xboard.c:1515
-#, c-format
-msgid "%s: no fonts match pattern %s\n"
-msgstr "%s: нет шрифтов, соответсвующих шаблону %s\n"
-
-#: gtk/xboard.c:1914 xaw/xboard.c:2007
-msgid "Can't open temp file"
-msgstr "Не могу открыть временный файл"
-
-#: gtk/xboard.c:2422
-msgid "Failed to open file"
-msgstr "Не удалось открыть файл"
-
-#: gtk/xoptions.c:1498
-#, fuzzy
-msgid "Browse"
-msgstr "просмотреть"
-
-#: gtk/xoptions.c:1772 xaw/xoptions.c:1337
-msgid "OK"
-msgstr "OK"
-
-#: menus.c:136
-msgid "Load game file name?"
-msgstr ""
-
-#: menus.c:183
-msgid "Load position file name?"
-msgstr ""
-
-#: menus.c:189 menus.c:582
-msgid "Save game file name?"
-msgstr ""
-
-#: menus.c:198
-msgid "Save position file name?"
-msgstr ""
-
-#: menus.c:355
-msgid " (with Zippy code)"
-msgstr ""
-
-#: menus.c:360
-#, fuzzy, c-format
-msgid ""
-"%s%s\n"
-"\n"
-"Copyright 1991 Digital Equipment Corporation\n"
-"Enhancements Copyright 1992-2016 Free Software Foundation\n"
-"Enhancements Copyright 2005 Alessandro Scotti\n"
-"\n"
-"%s is free software and carries NO WARRANTY;see the file COPYING for more "
-"information.\n"
-"\n"
-"Visit XBoard on the web at: http://www.gnu.org/software/xboard/\n"
-"Check out the newest features at: http://www.gnu.org/software/xboard/"
-"whats_new.html\n"
-"\n"
-"Report bugs via email at: <bug-xboard@gnu.org>\n"
-"\n"
-msgstr ""
-"%s%s\n"
-"\n"
-"Автораские права принадлежат Digital Equipment Corporation ( 1991)\n"
-"Изменения в авторских правах 1992-2014 Free Software Foundation\n"
-"Изменения в авторских правах 2005 Alessandro Scotti\n"
-"\n"
-"%s является свободным ПО и не предоставляет НИКАКИХ ГАРАНТИЙ;прочитайте файл "
-"COPYING чтобы получить больше информации.\n"
-"Сборка этой версии с GTK является экспериментальной и нестабильной\n"
-"\n"
-"Посетите сайт XBoard по адресу: http://www.gnu.org/software/xboard/\n"
-"Проверьте новые возможности по адресу: http://www.gnu.org/software/xboard/"
-"whats_new.html\n"
-"\n"
-"Адрес электронной почты для отправки отчетов об ошибках: <bug-xboard@gnu."
-"org>\n"
-"\n"
-
-#: menus.c:371 menus.c:765
-msgid "About XBoard"
-msgstr "О программе XBoard"
-
-#: menus.c:593
-msgid "New Game"
-msgstr "Новая игра"
-
-#: menus.c:594
-msgid "New Shuffle Game..."
-msgstr "Новая в смешанные шахматы..."
-
-#: menus.c:595
-msgid "New Variant..."
-msgstr "Варианты..."
-
-#: menus.c:597
-msgid "Load Game"
-msgstr "Загрузить игру"
-
-#: menus.c:598
-msgid "Load Position"
-msgstr "Загрузить позицию"
-
-#: menus.c:599
-msgid "Next Position"
-msgstr "Следующая позиция"
-
-#: menus.c:600
-msgid "Prev Position"
-msgstr "Следующая позиция"
-
-#: menus.c:602
-msgid "Save Game"
-msgstr "Сохранить игру"
-
-#: menus.c:603
-msgid "Save Position"
-msgstr "Сохранить позицию"
-
-#: menus.c:604
-msgid "Save Selected Games"
-msgstr "Сохранить выбранные игры"
-
-#: menus.c:605
-msgid "Save Games as Book"
-msgstr "Сохранить игру в книгу дебютов"
-
-#: menus.c:607
-msgid "Mail Move"
-msgstr "Отпраить ход по почте"
-
-#: menus.c:608
-msgid "Reload CMail Message"
-msgstr "Загрузить заново CMail-сообщение"
-
-#: menus.c:610
-msgid "Quit "
-msgstr "Выход "
-
-#: menus.c:615
-msgid "Copy Game"
-msgstr "Копировать игру"
-
-#: menus.c:616
-msgid "Copy Position"
-msgstr "Копировать позицию"
-
-#: menus.c:617
-msgid "Copy Game List"
-msgstr "Копировать список партий"
-
-#: menus.c:619
-msgid "Paste Game"
-msgstr "Вставить игру"
-
-#: menus.c:620
-msgid "Paste Position"
-msgstr "Вставить позицию"
-
-#: menus.c:622 menus.c:665
-msgid "Edit Game"
-msgstr "Редактировать игру"
-
-#: menus.c:623 menus.c:666
-msgid "Edit Position"
-msgstr "Редактировать позицию"
-
-#: menus.c:624
-msgid "Edit Tags"
-msgstr "Править описание..."
-
-#: menus.c:625
-msgid "Edit Comment"
-msgstr "Править комментарий..."
-
-#: menus.c:626
-msgid "Edit Book"
-msgstr "Редактирвать книгу"
-
-#: menus.c:628
-msgid "Revert"
-msgstr "Возврат"
-
-#: menus.c:629
-msgid "Annotate"
-msgstr "Записать и вернуться"
-
-#: menus.c:630
-msgid "Truncate Game"
-msgstr "Отбросить последующие ходы"
-
-#: menus.c:632
-msgid "Backward"
-msgstr "Назад"
-
-#: menus.c:633
-msgid "Forward"
-msgstr "Вперед"
-
-#: menus.c:634
-msgid "Back to Start"
-msgstr "Черные начинают"
-
-#: menus.c:635
-msgid "Forward to End"
-msgstr "В конец"
-
-#: menus.c:640
-msgid "Flip View"
-msgstr "Разворот доски"
-
-#: menus.c:643
-msgid "Move History"
-msgstr "Истоия ходов"
-
-#: menus.c:644
-msgid "Evaluation Graph"
-msgstr "График оценки позиции"
-
-#: menus.c:645
-msgid "Game List"
-msgstr "Список партий"
-
-#: menus.c:649
-msgid "Comments"
-msgstr "Комментарии"
-
-#: menus.c:650
-msgid "ICS Input Box"
-msgstr "Поле ввода команд для ICS"
-
-#: menus.c:651
-msgid "ICS/Chat Console"
-msgstr "Консоль чата ICS"
-
-#: menus.c:653
-msgid "Board..."
-msgstr "Доска..."
-
-#: menus.c:654
-#, fuzzy
-msgid "Fonts..."
-msgstr "Звуки..."
-
-#: menus.c:655
-msgid "Game List Tags..."
-msgstr "Содержание списка партий..."
-
-#: menus.c:660
-msgid "Machine White"
-msgstr "Компьютер белыми"
-
-#: menus.c:661
-msgid "Machine Black"
-msgstr "Компьютер черными"
-
-#: menus.c:662
-msgid "Two Machines"
-msgstr "Компьютер против компьютера"
-
-#: menus.c:663
-msgid "Analysis Mode"
-msgstr "Анализ"
-
-#: menus.c:664
-msgid "Analyze Game"
-msgstr "Анализировать игру"
-
-#: menus.c:667
-msgid "Training"
-msgstr "Тренировка"
-
-#: menus.c:668
-msgid "ICS Client"
-msgstr "Клиент ICS"
-
-#: menus.c:670
-msgid "Machine Match"
-msgstr "Начать матч движков"
-
-#: menus.c:671
-msgid "Pause"
-msgstr "Пауза"
-
-#: menus.c:676
-msgid "Accept"
-msgstr "Принять"
-
-#: menus.c:677
-msgid "Decline"
-msgstr "Отклонить"
-
-#: menus.c:678
-msgid "Rematch"
-msgstr "Переиграть матч"
-
-#: menus.c:680
-msgid "Call Flag"
-msgstr "Проверить время"
-
-#: menus.c:681
-msgid "Draw"
-msgstr "Ничья"
-
-#: menus.c:682
-msgid "Adjourn"
-msgstr "Отложить"
-
-#: menus.c:683
-msgid "Abort"
-msgstr "Отменить"
-
-#: menus.c:684
-msgid "Resign"
-msgstr "Сдаться"
-
-#: menus.c:686
-msgid "Stop Observing"
-msgstr "Прекратить наблюдение за игрой"
-
-#: menus.c:687
-msgid "Stop Examining"
-msgstr "Прекратить изучение партии"
-
-#: menus.c:688
-msgid "Upload to Examine"
-msgstr "Загрузить на сервер для изучения"
-
-#: menus.c:690
-msgid "Adjudicate to White"
-msgstr "Присудить победу белым"
-
-#: menus.c:691
-msgid "Adjudicate to Black"
-msgstr "Присудить победу черным"
-
-#: menus.c:692
-msgid "Adjudicate Draw"
-msgstr "Присудить ничью"
-
-#: menus.c:697
-msgid "Edit Engine List..."
-msgstr "Редактировать список движков..."
-
-#: menus.c:699
-msgid "Load New 1st Engine..."
-msgstr "Загрузить новый первый движок"
-
-#: menus.c:700
-msgid "Load New 2nd Engine..."
-msgstr "Загрузить новый второй движок"
-
-#: menus.c:702
-msgid "Engine #1 Settings..."
-msgstr "Настройки движка 1..."
-
-#: menus.c:703
-msgid "Engine #2 Settings..."
-msgstr "Настройки движка 2..."
-
-#: menus.c:704
-#, fuzzy
-msgid "Common Settings..."
-msgstr "Общие настройки движков"
-
-#: menus.c:706
-msgid "Hint"
-msgstr "Подсказка..."
-
-#: menus.c:707
-msgid "Book"
-msgstr "Книга..."
-
-#: menus.c:709
-msgid "Move Now"
-msgstr "Сделать ход сейчас"
-
-#: menus.c:710
-msgid "Retract Move"
-msgstr "Взять ход назад"
-
-#: menus.c:716
-msgid "General..."
-msgstr "Общие..."
-
-#: menus.c:718
-msgid "Time Control..."
-msgstr "Контроль времени..."
-
-#: menus.c:719
-msgid "Adjudications..."
-msgstr "Присуждение..."
-
-#: menus.c:720
-msgid "ICS..."
-msgstr "ICS..."
-
-#: menus.c:721
-msgid "Tournament..."
-msgstr "Турнир..."
-
-#: menus.c:722
-msgid "Load Game..."
-msgstr "Загрузка игры..."
-
-#: menus.c:723
-msgid "Save Game..."
-msgstr "Сохранение игры..."
-
-#: menus.c:724
-msgid "Game List..."
-msgstr "Список партий..."
-
-#: menus.c:725
-msgid "Sounds..."
-msgstr "Звуки..."
-
-#: menus.c:728
-msgid "Always Queen"
-msgstr "Ферзь всегда"
-
-#: menus.c:734
-msgid "Flash Moves"
-msgstr ""
-
-#: menus.c:736
-msgid "Highlight Dragging"
-msgstr "Выделять при перетаскивании"
-
-#: menus.c:739
-msgid "Highlight With Arrow"
-msgstr "Выделять стрелкой"
-
-#: menus.c:740
-msgid "Move Sound"
-msgstr "Звук перемещения фигуры"
-
-#: menus.c:742
-msgid "Periodic Updates"
-msgstr "Периодические обновления"
-
-#: menus.c:744
-msgid "Popup Exit Message"
-msgstr "Сообщение при выходе"
-
-#: menus.c:746
-msgid "Show Coords"
-msgstr "Показывать координаты"
-
-#: menus.c:747
-msgid "Hide Thinking"
-msgstr "Скрывать вывод движка"
-
-#: menus.c:751
-msgid "Save Settings Now"
-msgstr "Сохранить настройки сейчас"
-
-#: menus.c:752
-msgid "Save Settings on Exit"
-msgstr "Сохранять настройки при выходе"
-
-#: menus.c:757
-msgid "Info XBoard"
-msgstr "Информация по XBoard"
-
-#: menus.c:758
-msgid "Man XBoard"
-msgstr "Справка по использованию XBoard"
-
-#: menus.c:760
-msgid "XBoard Home Page"
-msgstr "Домашняя страница XBoard"
-
-#: menus.c:761
-msgid "On-line User Guide"
-msgstr "Руководство пользователя онлайн"
-
-#: menus.c:762
-msgid "Development News"
-msgstr "Новости разработки"
-
-#: menus.c:763
-msgid "e-Mail Bug Report"
-msgstr "Отправить отчет об ошибке по e-Mail"
-
-#: menus.c:802
-msgid "File"
-msgstr "Файл"
-
-#: menus.c:803
-msgid "Edit"
-msgstr "Правка"
-
-#: menus.c:804
-msgid "View"
-msgstr "Вид"
-
-#: menus.c:805
-msgid "Mode"
-msgstr "Режим"
-
-#: menus.c:806
-msgid "Action"
-msgstr "Игра"
-
-#: menus.c:807
-msgid "Engine"
-msgstr "Движок"
-
-#: menus.c:808
-msgid "Options"
-msgstr "Настройки"
-
-#: menus.c:809
-msgid "Help"
-msgstr "Справка"
-
-#: nengineoutput.c:79 nengineoutput.c:87
-msgid "engine name"
-msgstr "название движка"
-
-#. TRANSLATORS: noun, as in "the move Nf3"
-#: nengineoutput.c:82 nengineoutput.c:90
-msgid "move"
-msgstr "ход"
-
-#: nengineoutput.c:156
-msgid "Engine output"
-msgstr "Вывод движка"
-
-#: nengineoutput.c:160
-msgid ""
-"Mismatch of STRIDE in nengineoutput.c\n"
-"Change and recompile!"
-msgstr ""
-
-#: nevalgraph.c:69
-msgid "Evaluation graph"
-msgstr "Оценка позиции"
-
-#: nevalgraph.c:69
-msgid "Blunder graph"
-msgstr "График просчетов"
-
-#: nevalgraph.c:107
-msgid "Blunder"
-msgstr "Просчет"
-
-#: nevalgraph.c:107
-msgid "Eval"
-msgstr "Оценка"
-
-#: ngamelist.c:87
-msgid "find position"
-msgstr "найти позицию"
-
-#: ngamelist.c:88
-msgid "narrow"
-msgstr "стрелка"
-
-#: ngamelist.c:89
-msgid "thresholds"
-msgstr "предел"
-
-#: ngamelist.c:90
-msgid "tags"
-msgstr "признаки"
-
-#: ngamelist.c:91
-msgid "next"
-msgstr "далее"
-
-#: ngamelist.c:92
-msgid "close"
-msgstr "закрыть"
-
-#: ngamelist.c:116
-msgid "No game selected"
-msgstr "Выберите партию из списка"
-
-#: ngamelist.c:122
-msgid "Can't go forward any further"
-msgstr "Достигнут конец списка"
-
-#: ngamelist.c:192
-#, c-format
-msgid "Scanning through games (%d)"
-msgstr "Поиск в играх (%d)"
-
-#: ngamelist.c:211
-msgid "previous page"
-msgstr "предыдущая страница"
-
-#: ngamelist.c:214
-msgid "next page"
-msgstr "следующая страница"
-
-#: ngamelist.c:217
-msgid "no games matched your request"
-msgstr "по Вашему запросу игр не найдено"
-
-#: ngamelist.c:219
-#, c-format
-msgid "%s - %d/%d games (%d-%d-%d)"
-msgstr ""
-
-#: ngamelist.c:284
-msgid "There is no game list"
-msgstr "Нет списка партий"
-
-#: nhistory.c:109
-msgid "Move list"
-msgstr "Список ходов"
-
-#: usystem.c:223
-#, c-format
-msgid "%s: unrecognized color %s\n"
-msgstr "%s: неопознанный цвет %s\n"
-
-#: usystem.c:231
-#, c-format
-msgid "%s: can't parse foreground color in '%s'\n"
-msgstr "%s: не могу обработать цвет фона в '%s'\n"
-
-#: usystem.c:260
-#, c-format
-msgid "%s: can't parse color names; disabling colorization\n"
-msgstr ""
-"%s: не могу обработать названия цветов; отключение использования цветов\n"
-
-#: usystem.c:362
-#, c-format
-msgid "ERROR: Unknown user %s (in path %s)\n"
-msgstr "ОШИБКА: неизвестный пользователь %s (в пути %s)\n"
-
-#: usystem.c:564
-msgid "Socket support is not configured in"
-msgstr "Поддержка сокетов не задана в"
-
-#: usystem.c:653
-msgid "internal rcmd not implemented for Unix"
-msgstr "внутренняя команда rcmd не применима в Unix"
-
-#: xaw/xboard.c:1206
-#, c-format
-msgid "white pixel = 0x%lx, black pixel = 0x%lx\n"
-msgstr "белый пиксель = 0x%lx, черный пиксель = 0x%lx\n"
-
-#: xaw/xoptions.c:378 xaw/xoptions.c:1082
-msgid "browse"
-msgstr "просмотреть"
-
-#: xaw/xoptions.c:444 xaw/xoptions.c:445
-msgid "Ctrl"
-msgstr "Ctrl"
-
-#: xaw/xoptions.c:450 xaw/xoptions.c:451
-msgid "Alt"
-msgstr "Alt"
-
-#: xaw/xoptions.c:456 xaw/xoptions.c:457
-msgid "Shift"
-msgstr "Shift"
-
-#~ msgid "Common Engine..."
-#~ msgstr "Общие для движков..."
diff --git a/po/sr.po b/po/sr.po
deleted file mode 100644 (file)
index 38bb6c9..0000000
--- a/po/sr.po
+++ /dev/null
@@ -1,3143 +0,0 @@
-# Serbian translation for xboard.
-# Copyright (C) 2014 Free Software Foundation, Inc.
-# This file is distributed under the same license as the xboard package.
-# Мирослав Николић <miroslavnikolic@rocketmail.com>, 2014.
-msgid ""
-msgstr ""
-"Project-Id-Version: xboard-4.8.0-pre1\n"
-"Report-Msgid-Bugs-To: bug-xboard@gnu.org\n"
-"POT-Creation-Date: 2016-04-03 13:44-0700\n"
-"PO-Revision-Date: 2014-11-11 20:37+0200\n"
-"Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
-"Language-Team: Serbian <(nothing)>\n"
-"Language: sr\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-
-#: args.h:851
-#, c-format
-msgid "%s in settings file\n"
-msgstr "%s у датотеци подешавања\n"
-
-#: args.h:885
-#, c-format
-msgid "Bad integer value %s"
-msgstr "Лоша вредност целог броја %s"
-
-#: args.h:991 args.h:1252
-#, c-format
-msgid "Unrecognized argument %s"
-msgstr "Непознат аргумент „%s“"
-
-#: args.h:1022
-#, c-format
-msgid "No value provided for argument %s"
-msgstr "Није наведена вредност за аргумент „%s“"
-
-#: args.h:1082
-#, c-format
-msgid "Incomplete \\ escape in value for %s"
-msgstr "Непотпуна \\ промене реда у вредности за „%s“"
-
-#: args.h:1193
-#, c-format
-msgid "Failed to open indirection file %s"
-msgstr "Нисам успео да отворим датотеку усмерења „%s“"
-
-#: args.h:1210
-#, c-format
-msgid "Unrecognized boolean argument value %s"
-msgstr "Непозната вредност логичког аргумента %s"
-
-#. TRANSLATORS: "first" is the first of possible two chess engines. It is inserted into strings
-#. such as "%s engine" / "%s chess program" / "%s machine" - all meaning the same thing
-#: backend.c:811
-msgid "first"
-msgstr "први"
-
-#. TRANSLATORS: "second" is the second of possible two chess engines. It is inserted into strings
-#. such as "%s engine" / "%s chess program" / "%s machine" - all meaning the same thing
-#: backend.c:814
-msgid "second"
-msgstr "други"
-
-#: backend.c:897
-#, c-format
-msgid "protocol version %d not supported"
-msgstr "издање протокола %d није подржано"
-
-#: backend.c:1004
-msgid "You did not specify the engine executable"
-msgstr "Нисте навели извршног погона"
-
-#: backend.c:1062
-#, c-format
-msgid "bad timeControl option %s"
-msgstr "лоша опција управљања временом „%s“"
-
-#: backend.c:1077
-#, c-format
-msgid "bad searchTime option %s"
-msgstr "лоша опција времена претраге „%s“"
-
-#: backend.c:1183
-#, c-format
-msgid "Variant %s supported only in ICS mode"
-msgstr "Варијанта „%s“ је подржана само у ИЦС режиму"
-
-#: backend.c:1201
-#, c-format
-msgid "Unknown variant name %s"
-msgstr "Непознат назив варијанте „%s“"
-
-#: backend.c:1456
-msgid "Starting chess program"
-msgstr "Покрећем шаховски програм"
-
-#: backend.c:1479
-msgid "Bad game file"
-msgstr "Лоша датотека игре"
-
-#: backend.c:1486
-msgid "Bad position file"
-msgstr "Лоша датотека положаја"
-
-#: backend.c:1500
-msgid "Pick new game"
-msgstr "Изаберите нову игру"
-
-#: backend.c:1569
-msgid ""
-"You restarted an already completed tourney.\n"
-"One more cycle will now be added to it.\n"
-"Games commence in 10 sec."
-msgstr ""
-"Поново сте покренули већ завршени турнир.\n"
-"Још један круг ће бити додат у њега.\n"
-"Игре почињу за 10 сек."
-
-#: backend.c:1576
-#, c-format
-msgid "All games in tourney '%s' are already played or playing"
-msgstr "Све игре на турниру „%s“ су већ одигране или су у току"
-
-#: backend.c:1583
-msgid "Can't have a match with no chess programs"
-msgstr "Не могу играти партију без шаховских програма"
-
-#: backend.c:1637
-#, c-format
-msgid "Could not open comm port %s"
-msgstr "Не могу да отворим прикључник коминикације %s"
-
-#: backend.c:1640
-#, c-format
-msgid "Could not connect to host %s, port %s"
-msgstr "Не могу да се повежем на домаћина „%s“, прикључник %s"
-
-#: backend.c:1696
-#, c-format
-msgid "Unknown initialMode %s"
-msgstr "Непознат режим почетка „%s“"
-
-#: backend.c:1722
-msgid "AnalyzeFile mode requires a game file"
-msgstr "Режим анализе датотеке захтева датотеку игре"
-
-#: backend.c:1755
-msgid "Analysis mode requires a chess engine"
-msgstr "Режим анализе захтева шаховски погон"
-
-#: backend.c:1759
-msgid "Analysis mode does not work with ICS mode"
-msgstr "Режим анализе не ради са ИЦС режимом"
-
-#: backend.c:1770
-msgid "MachineWhite mode requires a chess engine"
-msgstr "Режим машинског белог захтева шаховски погон"
-
-#: backend.c:1775
-msgid "MachineWhite mode does not work with ICS mode"
-msgstr "Режим машинског белог не ради са ИЦС режимом"
-
-#: backend.c:1782
-msgid "MachineBlack mode requires a chess engine"
-msgstr "Режим машинског црног захтева шаховски погон"
-
-#: backend.c:1787
-msgid "MachineBlack mode does not work with ICS mode"
-msgstr "Режим машинског црног не ради са ИЦС режимом"
-
-#: backend.c:1794
-msgid "TwoMachines mode requires a chess engine"
-msgstr "Режим две машине захтева шаховски погон"
-
-#: backend.c:1799
-msgid "TwoMachines mode does not work with ICS mode"
-msgstr "Режим две машине не ради са ИЦС режимом"
-
-#: backend.c:1810
-msgid "Training mode requires a game file"
-msgstr "Режим увежбавања захтева датотеку игре"
-
-#: backend.c:1973 backend.c:2028 backend.c:2051 backend.c:2453
-msgid "Error writing to ICS"
-msgstr "Грешка писања у ИЦС"
-
-#: backend.c:1988
-msgid "Error reading from keyboard"
-msgstr "Грешка читања са тастатуре"
-
-#: backend.c:1991
-msgid "Got end of file from keyboard"
-msgstr "Добих крај датотеке са тастатуре"
-
-#: backend.c:2299
-#, c-format
-msgid "Unknown wild type %d"
-msgstr "Непозната дивља врста „%d“"
-
-#: backend.c:2370 usystem.c:317
-msgid "Error writing to display"
-msgstr "Грешка писања на приказ"
-
-#. TRANSLATORS: to 'kibitz' is to send a message to all players and the game observers
-#: backend.c:3138
-#, c-format
-msgid "your opponent kibitzes: %s"
-msgstr "ваш противник кибицује: %s"
-
-#: backend.c:3677
-msgid "Error gathering move list: two headers"
-msgstr "Грешка прикупљања списка потеза: два заглавља"
-
-#: backend.c:3724
-msgid "Error gathering move list: nested"
-msgstr "Грешка прикупљања списка потеза: угнежден"
-
-#: backend.c:3828 backend.c:4254 backend.c:4458 backend.c:5017 backend.c:5021
-#: backend.c:7292 backend.c:13054 backend.c:14805 backend.c:14882
-#: backend.c:14928 backend.c:14934 backend.c:14939 backend.c:14944
-msgid "vs."
-msgstr "против"
-
-#: backend.c:3956
-msgid "Illegal move (rejected by ICS)"
-msgstr "Недозвољен потез (одбацио га је ИЦС)"
-
-#: backend.c:4302
-msgid "Connection closed by ICS"
-msgstr "Везу је затворио ИЦС"
-
-#: backend.c:4304
-msgid "Error reading from ICS"
-msgstr "Грешка читања са ИЦС-а"
-
-#: backend.c:4381
-#, c-format
-msgid ""
-"Failed to parse board string:\n"
-"\"%s\""
-msgstr ""
-"Нисам успео да обрадим ниску табле:\n"
-"„%s“"
-
-#: backend.c:4390 backend.c:10628
-msgid "Game too long; increase MAX_MOVES and recompile"
-msgstr "Игра је предуга; повећајте НАЈВИШЕ_ПОТЕЗА и поново преведите"
-
-#: backend.c:4509
-msgid "Error gathering move list: extra board"
-msgstr "Грешка прикупљања списка потеза: додатна табла"
-
-#: backend.c:4941 backend.c:4963
-#, c-format
-msgid "Couldn't parse move \"%s\" from ICS"
-msgstr "Не могу да обрадим потез „%s“ из ИЦС-а"
-
-#: backend.c:5228
-#, c-format
-msgid "say Internal error; bad moveType %d (%d,%d-%d,%d)"
-msgstr "реци унутрашња грешка; лоша врста потеза %d (%d,%d-%d,%d)"
-
-#: backend.c:5299
-msgid "You cannot do this while you are playing or observing"
-msgstr "Не можете да урадите ово док играте или посматрате"
-
-#: backend.c:6359
-msgid "Recompile to support this BOARD_RANKS or BOARD_FILES!"
-msgstr "Поново преведите да подржите ове РЕДОВЕ_ТАБЛЕ или ЛИНИЈЕ_ТАБЛЕ!"
-
-#: backend.c:6851
-msgid "You are playing Black"
-msgstr "Играте црним"
-
-#: backend.c:6860 backend.c:6888
-msgid "You are playing White"
-msgstr "Играте белим"
-
-#: backend.c:6870 backend.c:6896 backend.c:7018 backend.c:7043 backend.c:7059
-#: backend.c:15645
-msgid "It is White's turn"
-msgstr "Бели је на потезу"
-
-#: backend.c:6874 backend.c:6900 backend.c:7026 backend.c:7049 backend.c:7081
-#: backend.c:15637
-msgid "It is Black's turn"
-msgstr "Црни је на потезу"
-
-#: backend.c:6913
-msgid "Displayed position is not current"
-msgstr "Приказани положај није тренутни"
-
-#: backend.c:7116
-msgid "rights granted"
-msgstr ""
-
-#: backend.c:7116
-msgid "rights revoked"
-msgstr ""
-
-#: backend.c:7169
-msgid "Illegal move"
-msgstr "Недозвољени потез"
-
-#: backend.c:7249
-msgid "End of game"
-msgstr "Крај игре"
-
-#: backend.c:7252
-msgid "Incorrect move"
-msgstr "Неисправан потез"
-
-#: backend.c:7655 backend.c:7811
-msgid "Pull pawn backwards to under-promote"
-msgstr "Повуците пешака уназад до унапређења"
-
-#: backend.c:7772
-msgid "only marked squares are legal"
-msgstr "само означена поља су дозвољена"
-
-#: backend.c:8093
-msgid "Swiss tourney finished"
-msgstr "Швајцарски турнир је завршен"
-
-#: backend.c:8609
-msgid "could not load EGBB library"
-msgstr "не могу да учитам ЕГББ библиотеку"
-
-#: backend.c:8612
-msgid "wrong EGBB version"
-msgstr "погрешно издање ЕГББ-а"
-
-#: backend.c:8725
-msgid "Invalid pairing from pairing engine"
-msgstr "Неисправно упаривање из погона упаривања"
-
-#: backend.c:8892
-#, c-format
-msgid "Illegal move \"%s\" from %s machine"
-msgstr "Недозвољени потез „%s“ %s машине"
-
-#: backend.c:9179
-msgid "Bad FEN received from engine"
-msgstr "Лош ФЕН је примљен од погона"
-
-#: backend.c:9280
-msgid "Engine did not send setup for non-standard variant"
-msgstr "Погон није послао подешавање за неуобичајену варијанту"
-
-#: backend.c:9358 backend.c:14667 backend.c:14735
-#, c-format
-msgid "%s does not support analysis"
-msgstr "„%s“ не подржава анализу"
-
-#: backend.c:9424
-#, c-format
-msgid "Illegal move \"%s\" (rejected by %s chess program)"
-msgstr "Недозвољени потез „%s“ (одбацио га је „%s“ шаховски програм)"
-
-#: backend.c:9455
-#, c-format
-msgid "Failed to start %s chess program %s on %s: %s\n"
-msgstr "Нисам успео да покренем %s шаховски програм %s на %s: %s\n"
-
-#: backend.c:9476
-#, c-format
-msgid "Hint: %s"
-msgstr "Савет: %s"
-
-#: backend.c:9481
-#, c-format
-msgid ""
-"Illegal hint move \"%s\"\n"
-"from %s chess program"
-msgstr ""
-"Недозвољени потез савета „%s“\n"
-"шаховског програма „%s“"
-
-#: backend.c:9656
-msgid "Machine accepts your draw offer"
-msgstr "Рачунар прхвата вашу понуду ремија"
-
-#: backend.c:9659
-msgid ""
-"Machine offers a draw.\n"
-"Select Action / Draw to accept."
-msgstr ""
-"Рачунар нуди реми.\n"
-"Изаберите „Радња / Реми“ да прихватите."
-
-#. TRANSLATORS: PV = principal variation, the variation the chess engine thinks is the best for everyone
-#: backend.c:9777
-msgid "failed writing PV"
-msgstr "нисам успео да запишем ПВ"
-
-#: backend.c:10083
-#, c-format
-msgid "Ambiguous move in ICS output: \"%s\""
-msgstr "Нејасан потез у излазу ИЦС-а: %s"
-
-#: backend.c:10093
-#, c-format
-msgid "Illegal move in ICS output: \"%s\""
-msgstr "Недозвољени потез у излазу ИЦС-а: %s"
-
-#: backend.c:10104
-msgid "Gap in move list"
-msgstr "Јаз у списку потеза"
-
-#: backend.c:10782
-#, c-format
-msgid "Variant %s not supported by %s"
-msgstr "Варијанту „%s“ не подржава %s"
-
-#: backend.c:10789
-#, c-format
-msgid ", but %s is"
-msgstr ", али „%s“ је"
-
-#: backend.c:10945
-#, c-format
-msgid "Startup failure on '%s'"
-msgstr "Неуспех покретања на „%s“"
-
-#: backend.c:10976
-msgid "Waiting for first chess program"
-msgstr "Чекам први шаховски програм"
-
-#: backend.c:10981 backend.c:14953
-msgid "Waiting for second chess program"
-msgstr "Чекам други шаховски програм"
-
-#: backend.c:11030
-msgid "Could not write on tourney file"
-msgstr "Не могу да пишем у датотеку турнира"
-
-#: backend.c:11104
-msgid ""
-"You cannot replace an engine while it is engaged!\n"
-"Terminate its game first."
-msgstr ""
-"Не можете да замените погон док је заузет!\n"
-"Прво завршите његову игру."
-
-#: backend.c:11118
-msgid "No engine with the name you gave is installed"
-msgstr "Ниједан погон са називом који сте дали није инсталиран"
-
-#: backend.c:11120
-msgid ""
-"First change an engine by editing the participants list\n"
-"of the Tournament Options dialog"
-msgstr ""
-"Прво измените погон уредивши списак учесника\n"
-"у прозорчету опција турнира"
-
-#: backend.c:11121
-msgid "You can only change one engine at the time"
-msgstr "Можете да измените само један погон одједном"
-
-#: backend.c:11136 backend.c:11285
-#, c-format
-msgid "No engine %s is installed"
-msgstr "Ниједан погон „%s“ није инсталиран"
-
-#: backend.c:11156
-msgid ""
-"You must supply a tournament file,\n"
-"for storing the tourney progress"
-msgstr ""
-"Морате да доставите датотеку редоследа,\n"
-"да сачувате напредовање турнира"
-
-#: backend.c:11166
-msgid "Not enough participants"
-msgstr "Нема довољно учесника"
-
-#: backend.c:11369
-msgid "Bad tournament file"
-msgstr "Лоша датотека редоследа"
-
-#: backend.c:11381
-msgid "Waiting for other game(s)"
-msgstr "Чекам на другу игру"
-
-#: backend.c:11394
-msgid "No pairing engine specified"
-msgstr "Није наведен погон упаривања"
-
-#: backend.c:11879
-#, c-format
-msgid "Average solving time %4.2f sec (total time %4.2f sec) "
-msgstr ""
-
-#: backend.c:11881
-#, c-format
-msgid "%d avoid-moves played "
-msgstr ""
-
-#: backend.c:11883
-#, c-format
-msgid "Solved %d out of %d (%3.1f%%) "
-msgstr ""
-
-#: backend.c:11886
-#, c-format
-msgid "Match %s vs. %s: final score %d-%d-%d"
-msgstr "Меч %s против %s: крајњи резултат је %d-%d-%d"
-
-#: backend.c:12363 backend.c:12399
-#, c-format
-msgid "Illegal move: %d.%s%s"
-msgstr "Недозвољени потез: %d.%s%s"
-
-#: backend.c:12388
-#, c-format
-msgid "Ambiguous move: %d.%s%s"
-msgstr "Нејасан потез: %d.%s%s"
-
-#: backend.c:12442 backend.c:13495 backend.c:13695 backend.c:14065
-#, c-format
-msgid "Can't open \"%s\""
-msgstr "Не могу да отворим „%s“"
-
-#: backend.c:12454 menus.c:118
-msgid "Cannot build game list"
-msgstr "Не могу да изградим списак игре"
-
-#: backend.c:12539
-msgid "No more games in this message"
-msgstr "Нема више игара у овој поруци"
-
-#: backend.c:12579
-msgid "No game has been loaded yet"
-msgstr "Ниједна игра још није учитана"
-
-#: backend.c:12583 backend.c:13476 ngamelist.c:129
-msgid "Can't back up any further"
-msgstr "Не могу више да се повучем"
-
-#: backend.c:13030
-msgid "Game number out of range"
-msgstr "Број игре је ван опсега"
-
-#: backend.c:13041
-msgid "Can't seek on game file"
-msgstr "Не могу да премотам датотеку игре"
-
-#: backend.c:13099
-msgid "Game not found in file"
-msgstr "Нисам нашао игру у датотеци"
-
-#: backend.c:13230 backend.c:13573
-msgid "Bad FEN position in file"
-msgstr "Лош ФЕН положај у датотеци"
-
-#: backend.c:13388
-msgid "No moves in game"
-msgstr "Нема потеза у игри"
-
-#: backend.c:13472
-msgid "No position has been loaded yet"
-msgstr "Ниједан положај још није учитан"
-
-#: backend.c:13533 backend.c:13544
-msgid "Can't seek on position file"
-msgstr "Не могу да премотам датотеку положаја"
-
-#: backend.c:13551 backend.c:13563
-msgid "Position not found in file"
-msgstr "Нисам пронашао положај у датотеци"
-
-#: backend.c:13610
-msgid "Black to play"
-msgstr "Црни да игра"
-
-#: backend.c:13613
-msgid "White to play"
-msgstr "Бели да игра"
-
-#: backend.c:13700 backend.c:14070
-msgid "Waiting for access to save file"
-msgstr "Чекам на приступ да сачувам датотеку"
-
-#: backend.c:13702
-msgid "Saving game"
-msgstr "Чувам игру"
-
-#: backend.c:13703
-msgid "Bad Seek"
-msgstr "Лош премотај"
-
-#: backend.c:14072
-msgid "Saving position"
-msgstr "Чувам положај"
-
-#: backend.c:14198
-msgid ""
-"You have edited the game history.\n"
-"Use Reload Same Game and make your move again."
-msgstr ""
-"Уредили сте историјат игре.\n"
-"Користите „Поново учитај исту игру“ и повуците ваш потез опет."
-
-#: backend.c:14203
-msgid ""
-"You have entered too many moves.\n"
-"Back up to the correct position and try again."
-msgstr ""
-"Унели сте превише потеза.\n"
-"Вратите се на прави положај и покушајте опет."
-
-#: backend.c:14208
-msgid ""
-"Displayed position is not current.\n"
-"Step forward to the correct position and try again."
-msgstr ""
-"Приказани положај није тренутни.\n"
-"Идите напред до правог положаја и покушајте опет."
-
-#: backend.c:14255
-msgid "You have not made a move yet"
-msgstr "Још увек нисте повукли потез"
-
-#: backend.c:14276
-msgid ""
-"The cmail message is not loaded.\n"
-"Use Reload CMail Message and make your move again."
-msgstr ""
-"Порука цпоште није учитана.\n"
-"Користите „Поново учитај поруку Цпоште“ и повуците ваш потез опет."
-
-#: backend.c:14281
-msgid "No unfinished games"
-msgstr "Нема недовршених игара"
-
-#: backend.c:14287
-#, c-format
-msgid ""
-"You have already mailed a move.\n"
-"Wait until a move arrives from your opponent.\n"
-"To resend the same move, type\n"
-"\"cmail -remail -game %s\"\n"
-"on the command line."
-msgstr ""
-"Већ сте послали потез.\n"
-"Сачекајте док стигне потез вашег противника.\n"
-"Да поново пошаљете исти потез, укуцајте\n"
-"„cmail -remail -game %s“\n"
-"на линији наредби."
-
-#: backend.c:14302
-msgid "Failed to invoke cmail"
-msgstr "Нисам успео да призовем цпошту"
-
-#: backend.c:14364
-#, c-format
-msgid "Waiting for reply from opponent\n"
-msgstr "Чекам на одговор противника\n"
-
-#: backend.c:14386
-#, c-format
-msgid "Still need to make move for game\n"
-msgstr "Још увек треба повући потез за игру\n"
-
-#: backend.c:14390
-#, c-format
-msgid "Still need to make moves for both games\n"
-msgstr "Још увек треба повући потезе за обе игре\n"
-
-#: backend.c:14394
-#, c-format
-msgid "Still need to make moves for all %d games\n"
-msgstr "Још увек треба повући потезе за %d игре\n"
-
-#: backend.c:14401
-#, c-format
-msgid "Still need to make a move for game %s\n"
-msgstr "Још увек треба повући потез за игру %s\n"
-
-#: backend.c:14407
-#, c-format
-msgid "No unfinished games\n"
-msgstr "Нема недовршених игара\n"
-
-#: backend.c:14409
-#, c-format
-msgid "Ready to send mail\n"
-msgstr "Спреман сам да пошаљем пошту\n"
-
-#: backend.c:14414
-#, c-format
-msgid "Still need to make moves for games %s\n"
-msgstr "Још увек треба повући потезе за игре %s\n"
-
-#: backend.c:14617
-msgid "Edit comment"
-msgstr "Уредите напомену"
-
-#: backend.c:14619
-#, c-format
-msgid "Edit comment on %d.%s%s"
-msgstr "Уредите напомену на %d.%s%s"
-
-#: backend.c:14674
-#, c-format
-msgid "You are not observing a game"
-msgstr "Ви не посматрате игру"
-
-#: backend.c:14785
-msgid "It is not White's turn"
-msgstr "Није бели на потезу"
-
-#: backend.c:14866
-msgid "It is not Black's turn"
-msgstr "Није црни на потезу"
-
-#: backend.c:14974
-#, c-format
-msgid "Starting %s chess program"
-msgstr "Покрећем „%s“ шаховски програм"
-
-#: backend.c:15002 backend.c:16189
-msgid ""
-"Wait until your turn,\n"
-"or select 'Move Now'."
-msgstr ""
-"Сачекајте ваш ред,\n"
-"или изаберите „Помери сада“."
-
-#: backend.c:15145
-msgid "Training mode off"
-msgstr "Режим увежбавања је искључен"
-
-#: backend.c:15153
-msgid "Training mode on"
-msgstr "Режим увежбавања је укључен"
-
-#: backend.c:15156
-msgid "Already at end of game"
-msgstr "Већ на крају игре"
-
-#: backend.c:15246
-msgid "Warning: You are still playing a game"
-msgstr "Упозорење: Још увек играте игру"
-
-#: backend.c:15249
-msgid "Warning: You are still observing a game"
-msgstr "Упозорење: Још увек посматрате игру"
-
-#: backend.c:15252
-msgid "Warning: You are still examining a game"
-msgstr "Упозорење: Још увек проучавате игру"
-
-#: backend.c:15322
-msgid "Click clock to clear board"
-msgstr "Притисните на сат да очистите таблу"
-
-#: backend.c:15332
-msgid "Close ICS engine analyze..."
-msgstr "Затвори анализу ИЦС погона..."
-
-#: backend.c:15662
-msgid "That square is occupied"
-msgstr "То поље је заузето"
-
-#: backend.c:15686 backend.c:15712
-msgid "There is no pending offer on this move"
-msgstr "Немазаказаних понуда на овом потезу"
-
-#: backend.c:15748 backend.c:15759
-msgid "Your opponent is not out of time"
-msgstr "Вашем противнику није истекло време"
-
-#: backend.c:15827
-msgid "You must make your move before offering a draw"
-msgstr "Морате да повучете потез пре него понудите реми"
-
-#: backend.c:16171
-msgid "You are not examining a game"
-msgstr "Ви не проучавате игру"
-
-#: backend.c:16175
-msgid "You can't revert while pausing"
-msgstr "Не можете да повратите док паузирате"
-
-#: backend.c:16229 backend.c:16236
-msgid "It is your turn"
-msgstr "Ви сте на реду"
-
-#: backend.c:16287 backend.c:16294 backend.c:16380 backend.c:16387
-msgid "Wait until your turn."
-msgstr "Сачекајте ваш ред."
-
-#: backend.c:16299
-msgid "No hint available"
-msgstr "Нема доступног савета"
-
-#: backend.c:16314 backend.c:16345 ngamelist.c:365
-msgid "Game list not loaded or empty"
-msgstr "Списак игара није учитан или је празан"
-
-#: backend.c:16352
-msgid "Book file exists! Try again for overwrite."
-msgstr "Датотека књиге постоји! Покушајте поново да препишете."
-
-#: backend.c:16833
-#, c-format
-msgid "Error writing to %s chess program"
-msgstr "Грешка писања у „%s“ шаховски програм"
-
-#: backend.c:16836 backend.c:16867
-#, c-format
-msgid "%s program exits in draw position (%s)"
-msgstr "%s програм постоји  у положају ремија (%s)"
-
-#: backend.c:16862
-#, c-format
-msgid "Error: %s chess program (%s) exited unexpectedly"
-msgstr "Грешка: %s шаховски програм (%s) је изашао неочекивано"
-
-#: backend.c:16880
-#, c-format
-msgid "Error reading from %s chess program (%s)"
-msgstr "Грешка читања из „%s“ шаховског програма (%s)"
-
-#: backend.c:17312
-#, c-format
-msgid "%s engine has too many options\n"
-msgstr "%s погон има превише опција\n"
-
-#: backend.c:17468
-msgid "Displayed move is not current"
-msgstr "Приказани потез није тренутни"
-
-#: backend.c:17477
-msgid "Could not parse move"
-msgstr "Не могу да обрадим потез"
-
-#: backend.c:17602 backend.c:17624
-msgid "Both flags fell"
-msgstr "Обе заставице су пале"
-
-#: backend.c:17604
-msgid "White's flag fell"
-msgstr "Заставица белог је пала"
-
-#: backend.c:17626
-msgid "Black's flag fell"
-msgstr "Заставица црног је пала"
-
-#: backend.c:17757
-msgid "Clock adjustment not allowed in auto-flag mode"
-msgstr "Дотеривање сата није допуштено у режиму ауто-заставице"
-
-#: backend.c:18719
-msgid "Bad FEN position in clipboard"
-msgstr "Лош ФЕН положај у остави"
-
-#: book.c:598 book.c:874
-msgid "Polyglot book not valid"
-msgstr "Полиглотска књига није исправна"
-
-#: book.c:722
-msgid "Book Fault"
-msgstr "Неуспех књиге"
-
-#: book.c:877
-msgid "Hash keys are different"
-msgstr "Хеш кључеви се разликују"
-
-#: book.c:1053
-msgid "Could not create book"
-msgstr "Не могу да направим књигу"
-
-#: dialogs.c:286
-msgid "Tournament file:          "
-msgstr "Датотека редоследа:          "
-
-#: dialogs.c:287
-msgid "For concurrent playing of tourney with multiple XBoards:"
-msgstr "За истовремено играње турнира са више Х-табли:"
-
-#: dialogs.c:288
-msgid "Sync after round"
-msgstr "Усагласи након рунде"
-
-#: dialogs.c:289
-msgid "Sync after cycle"
-msgstr "Усагласи након круга"
-
-#: dialogs.c:290
-msgid "Tourney participants:"
-msgstr "Учесници турнира:"
-
-#: dialogs.c:291
-msgid "Select Engine:"
-msgstr "Изаберите погон:"
-
-#: dialogs.c:299
-msgid "Tourney type (0 = round-robin, 1 = gauntlet):"
-msgstr "Врста турнира (0 = свако са сваким, 1 = на испадање):"
-
-#: dialogs.c:300
-msgid "Number of tourney cycles (or Swiss rounds):"
-msgstr "Број кругова турнира (или швајцарске рунде):"
-
-#: dialogs.c:301
-msgid "Default Number of Games in Match (or Pairing):"
-msgstr "Основни број игара у мечу (или упаривању):"
-
-#: dialogs.c:302
-msgid "Pause between Match Games (msec):"
-msgstr "Пауза између игара меча (мсек):"
-
-#: dialogs.c:303
-msgid "Save Tourney Games on:"
-msgstr "Сачувај игре турнира на:"
-
-#: dialogs.c:304
-msgid "Game File with Opening Lines:"
-msgstr "Датотека игре са линијама отварања:"
-
-#: dialogs.c:305
-msgid "Game Number (-1 or -2 = Auto-Increment):"
-msgstr "Број игре (-1 или -2 = само-повећање):"
-
-#: dialogs.c:306
-msgid "File with Start Positions:"
-msgstr "Датотека са почетним положајима:"
-
-#: dialogs.c:307
-msgid "Position Number (-1 or -2 = Auto-Increment):"
-msgstr "Број положаја (-1 или -2 = само-повећање):"
-
-#: dialogs.c:308
-msgid "Rewind Index after this many Games (0 = never):"
-msgstr "Индекс враћања уназад након оволико игара (0 = никад):"
-
-#: dialogs.c:309
-msgid "Disable own engine books by default"
-msgstr "Искључи књиге сопственог погона по основи"
-
-#: dialogs.c:310 dialogs.c:1840
-msgid "Time Control"
-msgstr "Управљање временом"
-
-#: dialogs.c:311
-msgid "Common Engine"
-msgstr "Општи погон"
-
-#: dialogs.c:312 dialogs.c:446
-msgid "General Options"
-msgstr "Опште опције"
-
-#: dialogs.c:313
-msgid "Continue Later"
-msgstr "Настави касније"
-
-#: dialogs.c:314
-msgid "Replace Engine"
-msgstr "Замени погон"
-
-#: dialogs.c:315
-msgid "Upgrade Engine"
-msgstr "Надогради погон"
-
-#: dialogs.c:316
-msgid "Clone Tourney"
-msgstr "Умножи турнир"
-
-#: dialogs.c:356
-msgid "First you must specify an existing tourney file to clone"
-msgstr "Прво морате да наведете постојећи турнир за умножавање"
-
-#: dialogs.c:372 dialogs.c:1549
-msgid "# no engines are installed"
-msgstr "# ниједан погон није инсталиран"
-
-#: dialogs.c:380
-msgid "Internal error: PARTICIPANTS set wrong"
-msgstr "Унутрашња грешка: скуп УЧЕСНИКА је погрешан"
-
-#: dialogs.c:388
-msgid "Tournament Options"
-msgstr "Опције турнира"
-
-#: dialogs.c:407
-msgid "Absolute Analysis Scores"
-msgstr "Резултати апсолутне анализе"
-
-#: dialogs.c:408
-msgid "Almost Always Queen (Detour Under-Promote)"
-msgstr "Скоро увек краљица (заобиђи унапређење)"
-
-#: dialogs.c:409 menus.c:729
-msgid "Animate Dragging"
-msgstr "Анимирај превлачење"
-
-#: dialogs.c:410 menus.c:730
-msgid "Animate Moving"
-msgstr "Анимирај потез"
-
-#: dialogs.c:411 menus.c:731
-msgid "Auto Flag"
-msgstr "Ауто заставица"
-
-#: dialogs.c:412 menus.c:732
-msgid "Auto Flip View"
-msgstr "Сам изврни преглед"
-
-#: dialogs.c:413 menus.c:733
-msgid "Blindfold"
-msgstr "На слепо"
-
-#. TRANSLATORS: the drop menu is used to drop a piece, e.g. during bughouse or editing a position
-#: dialogs.c:415
-msgid "Drop Menu"
-msgstr "Изборник убацивања"
-
-#: dialogs.c:416
-msgid "Enable Variation Trees"
-msgstr "Укључи стабла варијације"
-
-#: dialogs.c:417
-msgid "Headers in Engine Output Window"
-msgstr "Заглавља у излазном прозору погона "
-
-#: dialogs.c:418
-msgid "Hide Thinking from Human"
-msgstr "Сакриј размишљање од људи"
-
-#: dialogs.c:419 menus.c:738
-msgid "Highlight Last Move"
-msgstr "Истакни последњи потез"
-
-#: dialogs.c:420
-msgid "Highlight with Arrow"
-msgstr "Истакни стрелицом"
-
-#: dialogs.c:421 menus.c:741
-msgid "One-Click Moving"
-msgstr "Потез једним притиском"
-
-#: dialogs.c:422
-msgid "Periodic Updates (in Analysis Mode)"
-msgstr "Повремена освежавања (у режиму анализе)"
-
-#: dialogs.c:424
-msgid "Play Move(s) of Clicked PV (Analysis)"
-msgstr "Играј потез(е) притиснутог ПВ-а (анализа)"
-
-#: dialogs.c:425 dialogs.c:626 menus.c:743
-msgid "Ponder Next Move"
-msgstr "Премисли следећи потез"
-
-#: dialogs.c:426
-msgid "Popup Exit Messages"
-msgstr "Прикажи поруке излаза"
-
-#: dialogs.c:427 menus.c:745
-msgid "Popup Move Errors"
-msgstr "Прикажи грешке потеза"
-
-#: dialogs.c:428
-msgid "Scores in Move List"
-msgstr "Резултати у списку потеза"
-
-#: dialogs.c:429
-msgid "Show Coordinates"
-msgstr "Покажи координате"
-
-#: dialogs.c:430
-msgid "Show Target Squares"
-msgstr "Покажи циљна поља"
-
-#: dialogs.c:431
-msgid "Sticky Windows"
-msgstr "Лепљиви прозори"
-
-#: dialogs.c:432 menus.c:748
-msgid "Test Legality"
-msgstr "Испробај исправност"
-
-#: dialogs.c:433
-msgid "Top-Level Dialogs"
-msgstr "Прозорчићи највишег нивоа"
-
-#: dialogs.c:434
-msgid "Flash Moves (0 = no flashing):"
-msgstr "Бљесни потезима (0 = без бљеска):"
-
-#: dialogs.c:435
-msgid "Flash Rate (high = fast):"
-msgstr "Проток бљеска (високо = брзо):"
-
-#: dialogs.c:436
-msgid "Animation Speed (high = slow):"
-msgstr "Брзина анимације (високо = споро):"
-
-#: dialogs.c:437
-msgid "Zoom factor in Evaluation Graph:"
-msgstr "Чинилац увеличања у графику процене:"
-
-#: dialogs.c:457
-msgid "Normal"
-msgstr "Уобичајено"
-
-#: dialogs.c:458
-msgid "Makruk"
-msgstr "Макрук"
-
-#: dialogs.c:459
-msgid "FRC"
-msgstr "ФРЦ"
-
-#: dialogs.c:460
-msgid "Shatranj"
-msgstr "Шатрањ"
-
-#: dialogs.c:461
-msgid "Wild castle"
-msgstr "Дивљи дворац"
-
-#: dialogs.c:462
-msgid "Knightmate"
-msgstr "Мат скакача"
-
-#: dialogs.c:463
-msgid "No castle"
-msgstr "Без дворца"
-
-#: dialogs.c:464
-msgid "Cylinder *"
-msgstr "Ваљак *"
-
-#: dialogs.c:465
-msgid "3-checks"
-msgstr "3-провере"
-
-#: dialogs.c:466
-msgid "berolina *"
-msgstr "беролина *"
-
-#: dialogs.c:467
-msgid "atomic"
-msgstr "атомски"
-
-#: dialogs.c:468
-msgid "two kings"
-msgstr "два краља"
-
-#: dialogs.c:469
-msgid " "
-msgstr " "
-
-#: dialogs.c:470
-msgid "Spartan"
-msgstr "Спартанац"
-
-#: dialogs.c:471
-msgid "Board size ( -1 = default for selected variant):"
-msgstr "Величина табле ( -1 = основно за изабрану варијанту):"
-
-#: dialogs.c:472
-msgid "Number of Board Ranks:"
-msgstr "Број редова табле:"
-
-#: dialogs.c:473
-msgid "Number of Board Files:"
-msgstr "Број линија табле:"
-
-#: dialogs.c:474
-msgid "Holdings Size:"
-msgstr "Величина закупа:"
-
-#: dialogs.c:476
-msgid ""
-"Variants marked with * can only be played\n"
-"with legality testing off."
-msgstr ""
-"Варијанте означене * могу бити игране само\n"
-"са искљученим испробавањем исправности."
-
-#: dialogs.c:478
-msgid "ASEAN"
-msgstr "АСЕАН"
-
-#: dialogs.c:479
-msgid "Great Shatranj (10x8)"
-msgstr "Велики Шатрањ (10x8)"
-
-#: dialogs.c:480
-msgid "Seirawan"
-msgstr "Сеираван"
-
-#: dialogs.c:481
-msgid "Falcon (10x8)"
-msgstr "Фалкон (10x8)"
-
-#: dialogs.c:482
-msgid "Superchess"
-msgstr "Супер шах"
-
-#: dialogs.c:483
-msgid "Capablanca (10x8)"
-msgstr "Капабланка (10x8)"
-
-#: dialogs.c:484
-msgid "Crazyhouse"
-msgstr "Луда кућа"
-
-#: dialogs.c:485
-msgid "Gothic (10x8)"
-msgstr "Готски (10x8)"
-
-#: dialogs.c:486
-msgid "Bughouse"
-msgstr "Бубска кућа"
-
-#: dialogs.c:487
-msgid "Janus (10x8)"
-msgstr "Јанус (10x8)"
-
-#: dialogs.c:488
-msgid "Suicide"
-msgstr "Самоубиство"
-
-#: dialogs.c:489
-msgid "CRC (10x8)"
-msgstr "ЦРЦ (10x8)"
-
-#: dialogs.c:490
-msgid "give-away"
-msgstr "предај"
-
-#: dialogs.c:491
-msgid "grand (10x10)"
-msgstr "велик (10x10)"
-
-#: dialogs.c:492
-msgid "losers"
-msgstr "губитници"
-
-#: dialogs.c:493
-msgid "shogi (9x9)"
-msgstr "шоги (9x9)"
-
-#: dialogs.c:494
-msgid "fairy"
-msgstr "вила"
-
-#: dialogs.c:495
-msgid "xiangqi (9x10)"
-msgstr "ксјангки (9x10)"
-
-#: dialogs.c:496
-msgid "mighty lion"
-msgstr "моћни лав"
-
-#: dialogs.c:497
-msgid "courier (12x8)"
-msgstr "весник (12x8)"
-
-#: dialogs.c:498
-msgid "elven chess (10x10)"
-msgstr "вилењача (10x10)"
-
-#: dialogs.c:499
-msgid "chu shogi (12x12)"
-msgstr "чу шоги (12x12)"
-
-#: dialogs.c:543
-#, c-format
-msgid "Warning: second engine (%s) does not support this!"
-msgstr "Упозорење: други погон (%s) не подржава ово!"
-
-#: dialogs.c:572
-#, c-format
-msgid "Only bughouse is not available in viewer mode."
-msgstr "Само бубска кућа није доступна у режиму прегледача."
-
-#: dialogs.c:573
-#, c-format
-msgid ""
-"All variants not supported by the first engine\n"
-"(currently %s) are disabled."
-msgstr ""
-"Све варијанте нису подржане првим погоном\n"
-"(тренутно %s) су искључени."
-
-#: dialogs.c:595
-msgid "New Variant"
-msgstr "Нова варијанта"
-
-#: dialogs.c:627
-msgid "Maximum Number of CPUs per Engine:"
-msgstr "Највећи број процесора по погону:"
-
-#: dialogs.c:628
-msgid "Polygot Directory:"
-msgstr "Директоријум полигота:"
-
-#: dialogs.c:629
-msgid "Hash-Table Size (MB):"
-msgstr "Величина хеш-табеле (MB):"
-
-#: dialogs.c:630
-msgid "EGTB Path:"
-msgstr "ЕГТБ путања:"
-
-#: dialogs.c:631
-msgid "EGTB Cache Size (MB):"
-msgstr "Величина ЕГТБ оставе (MB):"
-
-#: dialogs.c:632
-msgid "Use GUI Book"
-msgstr "Користи ГУИ књигу"
-
-#: dialogs.c:633
-msgid "Opening-Book Filename:"
-msgstr "Назив датотеке књиге отварања:"
-
-#: dialogs.c:634
-msgid "Book Depth (moves):"
-msgstr "Дубина књиге (потези):"
-
-#: dialogs.c:635
-msgid "Book Variety (0) vs. Strength (100):"
-msgstr "Варијанта књиге (0) против снаге (100):"
-
-#: dialogs.c:636
-msgid "Engine #1 Has Own Book"
-msgstr "Погон бр. 1 има сопствену књигу"
-
-#: dialogs.c:637
-msgid "Engine #2 Has Own Book          "
-msgstr "Погон бр. 2 има сопствену књигу          "
-
-#: dialogs.c:648
-msgid "Common Engine Settings"
-msgstr "Подешавања општег погона"
-
-#: dialogs.c:654
-msgid "Detect all Mates"
-msgstr "Откриј сва матирања"
-
-#: dialogs.c:655
-msgid "Verify Engine Result Claims"
-msgstr "Провери потраживања резултата погона"
-
-#: dialogs.c:656
-msgid "Draw if Insufficient Mating Material"
-msgstr "Реми ако нема довољно материјала за матирање"
-
-#: dialogs.c:657
-msgid "Adjudicate Trivial Draws (3-Move Delay)"
-msgstr "Досуди површан реми (застој 3-потеза)"
-
-#: dialogs.c:658
-msgid "N-Move Rule:"
-msgstr "Правило н-потеза:"
-
-#: dialogs.c:659
-msgid "N-fold Repeats:"
-msgstr "Понављања N-савијања:"
-
-#: dialogs.c:660
-msgid "Draw after N Moves Total:"
-msgstr "Реми након укупно N потеза:"
-
-#: dialogs.c:661
-msgid "Win / Loss Threshold:"
-msgstr "Праг победе / губитка:"
-
-#: dialogs.c:662
-msgid "Negate Score of Engine #1"
-msgstr "Негирај резултат 1° погона"
-
-#: dialogs.c:663
-msgid "Negate Score of Engine #2"
-msgstr "Негирај резултат 2° погона"
-
-#: dialogs.c:670
-msgid "Adjudicate non-ICS Games"
-msgstr "Досуди не-ИЦС игре"
-
-#: dialogs.c:683
-msgid "Auto-Kibitz"
-msgstr "Сам кибицуј"
-
-#: dialogs.c:684
-msgid "Auto-Comment"
-msgstr "Сам напомени"
-
-#: dialogs.c:685
-msgid "Auto-Observe"
-msgstr "Сам посматрај"
-
-#: dialogs.c:686
-msgid "Auto-Raise Board"
-msgstr "Сам издигни таблу"
-
-#: dialogs.c:687
-msgid "Auto-Create Logon Script"
-msgstr "Сам направи скрипту пријаве"
-
-#: dialogs.c:688
-msgid "Background Observe while Playing"
-msgstr "Позадинско посматрање за време играња"
-
-#: dialogs.c:689
-msgid "Dual Board for Background-Observed Game"
-msgstr "Двојна табла за позадинско-посматрану игру"
-
-#: dialogs.c:690
-msgid "Get Move List"
-msgstr "Добави списак потеза"
-
-#: dialogs.c:691
-msgid "Quiet Play"
-msgstr "Тихо играње"
-
-#: dialogs.c:692
-msgid "Seek Graph"
-msgstr "График премотавања"
-
-#: dialogs.c:693
-msgid "Auto-Refresh Seek Graph"
-msgstr "Сам освежи график премотавања"
-
-#: dialogs.c:694
-msgid "Auto-InputBox PopUp"
-msgstr "Облачић само-улазног поља"
-
-#: dialogs.c:695
-msgid "Quit after game"
-msgstr "Изађи након игре"
-
-#: dialogs.c:696
-msgid "Premove"
-msgstr "Предпотез"
-
-#: dialogs.c:697
-msgid "Premove for White"
-msgstr "Предпотез за белог"
-
-#: dialogs.c:698
-msgid "First White Move:"
-msgstr "Први потез белог:"
-
-#: dialogs.c:699
-msgid "Premove for Black"
-msgstr "Предпотез за црног"
-
-#: dialogs.c:700
-msgid "First Black Move:"
-msgstr "Први потез црног:"
-
-#: dialogs.c:702
-msgid "Alarm"
-msgstr "Аларм"
-
-#: dialogs.c:703
-msgid "Alarm Time (msec):"
-msgstr "Време аларма (msec):"
-
-#: dialogs.c:705
-msgid "Colorize Messages"
-msgstr "Обој поруке"
-
-#: dialogs.c:706
-msgid "Shout Text Colors:"
-msgstr "Боје текста усклика:"
-
-#: dialogs.c:707
-msgid "S-Shout Text Colors:"
-msgstr "Боје текста С-усклика:"
-
-#: dialogs.c:708
-msgid "Channel #1 Text Colors:"
-msgstr "Боје текста 1° канала:"
-
-#: dialogs.c:709
-msgid "Other Channel Text Colors:"
-msgstr "Боје текста других канала:"
-
-#: dialogs.c:710
-msgid "Kibitz Text Colors:"
-msgstr "Боје текста кобицовања:"
-
-#: dialogs.c:711
-msgid "Tell Text Colors:"
-msgstr "Боје текста објаве:"
-
-#: dialogs.c:712
-msgid "Challenge Text Colors:"
-msgstr "Боје текста изазова:"
-
-#: dialogs.c:713
-msgid "Request Text Colors:"
-msgstr "Боје текста захтева:"
-
-#: dialogs.c:714
-msgid "Seek Text Colors:"
-msgstr "Боје текста премотавања:"
-
-#: dialogs.c:715
-msgid "Other Text Colors:"
-msgstr "Боје другог текста:"
-
-#: dialogs.c:722
-msgid "ICS Options"
-msgstr "ИЦС опције"
-
-#: dialogs.c:727
-msgid "Exact position match"
-msgstr "Поређење тачног положаја"
-
-#: dialogs.c:727
-msgid "Shown position is subset"
-msgstr "Приказани положај је подскуп"
-
-#: dialogs.c:727
-msgid "Same material with exactly same Pawn chain"
-msgstr "Исти материјал са тачно истим ланцем пешака"
-
-#: dialogs.c:728
-msgid "Same material"
-msgstr "Исти материјал"
-
-#: dialogs.c:728
-msgid "Material range (top board half optional)"
-msgstr "Опсег материјала (изборна половина горње табле)"
-
-#: dialogs.c:728
-msgid "Material difference (optional stuff balanced)"
-msgstr "Разлика материјала (уравнотежена изборна ствар)"
-
-#: dialogs.c:743
-msgid "Auto-Display Tags"
-msgstr "Ознаке само-приказа"
-
-#: dialogs.c:744
-msgid "Auto-Display Comment"
-msgstr "Напомена само-приказа"
-
-#: dialogs.c:745
-msgid ""
-"Auto-Play speed of loaded games\n"
-"(0 = instant, -1 = off):"
-msgstr ""
-"Брзина самосталног играња учитаних игара\n"
-"(0 = тренутно, -1 = искључено):"
-
-#: dialogs.c:746
-msgid "Seconds per Move:"
-msgstr "Секунде по потезу:"
-
-#: dialogs.c:747
-msgid ""
-"\n"
-"options to use in game-viewer mode:"
-msgstr ""
-"\n"
-"опције за коришћење у режиму прегледача игре:"
-
-#: dialogs.c:749
-msgid ""
-"\n"
-"Thresholds for position filtering in game list:"
-msgstr ""
-"\n"
-"Размаци за издвајање положаја у списку игре:"
-
-#: dialogs.c:750
-msgid "Elo of strongest player at least:"
-msgstr "Рејтинг најачег играча:"
-
-#: dialogs.c:751
-msgid "Elo of weakest player at least:"
-msgstr "Рејтинг најслабијег играча:"
-
-#: dialogs.c:752
-msgid "No games before year:"
-msgstr "Нема игара пре године:"
-
-#: dialogs.c:753
-msgid "Minimum nr consecutive positions:"
-msgstr "Најмањи број узастопних положаја:"
-
-#: dialogs.c:755
-msgid "Search mode:"
-msgstr "Режим претраге:"
-
-#: dialogs.c:756
-msgid "Also match reversed colors"
-msgstr "Упореди такође обрнуте боје"
-
-#: dialogs.c:757
-msgid "Also match left-right flipped position"
-msgstr "Упореди такође лево-десно изврнути положај"
-
-#: dialogs.c:766
-msgid "Load Game Options"
-msgstr "Опције учитавања игре"
-
-#: dialogs.c:778
-msgid "Auto-Save Games"
-msgstr "Сам сачувај игре"
-
-#: dialogs.c:779
-msgid "Own Games Only"
-msgstr "Само сопствене игре"
-
-#: dialogs.c:780
-msgid "Save Games on File:"
-msgstr "Сачувај игре у датотеци:"
-
-#: dialogs.c:781
-msgid "Save Final Positions on File:"
-msgstr "Сачувај крајње положаје у датотеци:"
-
-#: dialogs.c:782
-msgid "PGN Event Header:"
-msgstr "Заглавље ПГН догађаја:"
-
-#: dialogs.c:783
-msgid "Old Save Style (as opposed to PGN)"
-msgstr "Стари изглед чувања (као супротно са ПГН)"
-
-#: dialogs.c:784
-msgid "Include Number Tag in tourney PGN"
-msgstr "Укључи ознаку броја у ПГН-у турнира"
-
-#: dialogs.c:785
-msgid "Save Score/Depth Info in PGN"
-msgstr "Сачувај податке резултата/дубине у ПГН-у"
-
-#: dialogs.c:786
-msgid "Save Out-of-Book Info in PGN           "
-msgstr "Сачувај податке ван-књиге у ПГН-у"
-
-#: dialogs.c:793
-msgid "Save Game Options"
-msgstr "Опције чувања игре"
-
-#: dialogs.c:802
-msgid "No Sound"
-msgstr "Без звука"
-
-#: dialogs.c:803
-msgid "Default Beep"
-msgstr "Основни писак"
-
-#: dialogs.c:804
-msgid "Above WAV File"
-msgstr "ВАВ датотека"
-
-#: dialogs.c:805
-msgid "Car Horn"
-msgstr "Сирена аута"
-
-#: dialogs.c:806
-msgid "Cymbal"
-msgstr "Чинела"
-
-#: dialogs.c:807
-msgid "Ding"
-msgstr "Звонце"
-
-#: dialogs.c:808
-msgid "Gong"
-msgstr "Гонг"
-
-#: dialogs.c:809
-msgid "Laser"
-msgstr "Ласер"
-
-#: dialogs.c:810
-msgid "Penalty"
-msgstr "Пенал"
-
-#: dialogs.c:811
-msgid "Phone"
-msgstr "Телефон"
-
-#: dialogs.c:812
-msgid "Pop"
-msgstr "Поп"
-
-#: dialogs.c:813
-msgid "Roar"
-msgstr "Рика"
-
-#: dialogs.c:814
-msgid "Slap"
-msgstr "Ћушка"
-
-#: dialogs.c:815
-msgid "Wood Thunk"
-msgstr "Звук дрвета"
-
-#: dialogs.c:817
-msgid "User File"
-msgstr "Корисникова датотека"
-
-#: dialogs.c:840
-msgid "User WAV File:"
-msgstr "Корисникова ВАВ датотека:"
-
-#: dialogs.c:841
-msgid "Sound Program:"
-msgstr "Програм звука:"
-
-#: dialogs.c:842
-msgid "Try-Out Sound:"
-msgstr "Звук покушаја:"
-
-#: dialogs.c:843
-msgid "Play"
-msgstr "Пусти"
-
-#: dialogs.c:844
-msgid "Move:"
-msgstr "Потез:"
-
-#: dialogs.c:845
-msgid "Win:"
-msgstr "Победа:"
-
-#: dialogs.c:846
-msgid "Lose:"
-msgstr "Пораз:"
-
-#: dialogs.c:847
-msgid "Draw:"
-msgstr "Реми:"
-
-#: dialogs.c:848
-msgid "Unfinished:"
-msgstr "Недовршена:"
-
-#: dialogs.c:849
-msgid "Alarm:"
-msgstr "Аларм:"
-
-#: dialogs.c:850
-msgid "Challenge:"
-msgstr "Изазов:"
-
-#: dialogs.c:852
-msgid "Sounds Directory:"
-msgstr "Директоријум звука:"
-
-#: dialogs.c:853
-msgid "Shout:"
-msgstr "Усклик:"
-
-#: dialogs.c:854
-msgid "S-Shout:"
-msgstr "С-усклик:"
-
-#: dialogs.c:855
-msgid "Channel:"
-msgstr "Канал:"
-
-#: dialogs.c:856
-msgid "Channel 1:"
-msgstr "1° канал:"
-
-#: dialogs.c:857
-msgid "Tell:"
-msgstr "Телефон:"
-
-#: dialogs.c:858
-msgid "Kibitz:"
-msgstr "Кибицовање:"
-
-#: dialogs.c:859
-msgid "Request:"
-msgstr "Захтев:"
-
-#: dialogs.c:860
-msgid "Lion roar:"
-msgstr "Лавља рика:"
-
-#: dialogs.c:861
-msgid "Seek:"
-msgstr "Премотај:"
-
-#: dialogs.c:877
-msgid "Sound Options"
-msgstr "Опције звука"
-
-#: dialogs.c:893
-msgid "Selectable themes:"
-msgstr "Изабирљиве теме:"
-
-#: dialogs.c:895
-msgid "New name for current theme:"
-msgstr "Нови назив за текућу тему:"
-
-#: dialogs.c:898
-msgid "White Piece Color:"
-msgstr "Боја беле фигуре:"
-
-#. TRANSLATORS: R = single letter for the color red
-#: dialogs.c:901 dialogs.c:910 dialogs.c:916 dialogs.c:922 dialogs.c:928
-#: dialogs.c:934
-msgid "R"
-msgstr "Ц"
-
-#. TRANSLATORS: G = single letter for the color green
-#: dialogs.c:903 dialogs.c:911 dialogs.c:917 dialogs.c:923 dialogs.c:929
-#: dialogs.c:935
-msgid "G"
-msgstr "З"
-
-#. TRANSLATORS: B = single letter for the color blue
-#: dialogs.c:905 dialogs.c:912 dialogs.c:918 dialogs.c:924 dialogs.c:930
-#: dialogs.c:936 dialogs.c:1650 dialogs.c:1656 dialogs.c:1662 dialogs.c:1668
-#: dialogs.c:1674 dialogs.c:1680 dialogs.c:1686
-msgid "B"
-msgstr "П"
-
-#. TRANSLATORS: D = single letter to make a color darker
-#: dialogs.c:907 dialogs.c:913 dialogs.c:919 dialogs.c:925 dialogs.c:931
-#: dialogs.c:937
-msgid "D"
-msgstr "Т"
-
-#: dialogs.c:908
-msgid "Black Piece Color:"
-msgstr "Боја црне фигуре:"
-
-#: dialogs.c:914
-msgid "Light Square Color:"
-msgstr "Боја светлог поља:"
-
-#: dialogs.c:920
-msgid "Dark Square Color:"
-msgstr "Боја тамног поља:"
-
-#: dialogs.c:926
-msgid "Highlight Color:"
-msgstr "Боја истицања:"
-
-#: dialogs.c:932
-msgid "Premove Highlight Color:"
-msgstr "Боја истицања предпотеза:"
-
-#: dialogs.c:938
-msgid "Flip Pieces Shogi Style        (Colored buttons restore default)"
-msgstr "Изврни фигуре Шоги стила       (Обојена дугмад враћа основно)"
-
-#: dialogs.c:940
-msgid "Mono Mode"
-msgstr "Моно режим"
-
-#: dialogs.c:941
-msgid "Logo Size (0=off, requires restart):"
-msgstr "Величина логотипа (0=искљ., захтева поновно покретање):"
-
-#: dialogs.c:942
-msgid "Line Gap (-1 = default for board size):"
-msgstr "Јаз реда (-1 = основно за величину табле):"
-
-#: dialogs.c:943
-msgid "Use Board Textures"
-msgstr "Користи исцртавања табле"
-
-#: dialogs.c:944
-msgid "Light-Squares Texture File:"
-msgstr "Датотека исцртавања светлих поља:"
-
-#: dialogs.c:945
-msgid "Dark-Squares Texture File:"
-msgstr "Датотека исцртавања тамних поља:"
-
-#: dialogs.c:946
-msgid "Use external piece bitmaps with their own colors"
-msgstr "Користи спољне битмапе фигуре са њиховим сопственим бојама"
-
-#: dialogs.c:947
-msgid "Directory with Pieces Images:"
-msgstr "Директоријум са сликама фигура:"
-
-#: dialogs.c:1018
-msgid "# no themes are defined"
-msgstr "# ниједна тема није одређена"
-
-#: dialogs.c:1030
-msgid "Board Options"
-msgstr "Опције табле"
-
-#: dialogs.c:1101 menus.c:646
-msgid "ICS text menu"
-msgstr "Приручни изборник ИЦС-а"
-
-#: dialogs.c:1130
-msgid "clear"
-msgstr "очисти"
-
-#: dialogs.c:1131
-msgid "save changes"
-msgstr "сачувај измене"
-
-#: dialogs.c:1229
-msgid "add next move"
-msgstr "додај нови потез"
-
-#: dialogs.c:1230
-#, fuzzy
-msgid "commit changes"
-msgstr "сачувај измене"
-
-#: dialogs.c:1253
-msgid "Edit book"
-msgstr "Уреди књигу"
-
-#: dialogs.c:1270 dialogs.c:1277 menus.c:648
-msgid "Tags"
-msgstr "Ознаке"
-
-#: dialogs.c:1285
-#, fuzzy
-msgid "Registered Engines"
-msgstr "Замени погон"
-
-#: dialogs.c:1401
-msgid "ICS input box"
-msgstr "Поље уноса ИЦС-а"
-
-#: dialogs.c:1433
-msgid "Type a move"
-msgstr "Укуцајте потез"
-
-#: dialogs.c:1459
-msgid "Engine has no options"
-msgstr "Погон нема опција"
-
-#: dialogs.c:1461
-msgid "Engine Settings"
-msgstr "Подешавања погона"
-
-#: dialogs.c:1502
-msgid "Select engine from list:"
-msgstr "Изаберите погон са списка:"
-
-#: dialogs.c:1505
-msgid "or specify one below:"
-msgstr "или испод наведите један:"
-
-#: dialogs.c:1506
-msgid "Nickname (optional):"
-msgstr "Надимак (изборно):"
-
-#: dialogs.c:1507
-msgid "Use nickname in PGN player tags of engine-engine games"
-msgstr "Користи надимак у ПГН ознакама играча уграма погон-погон"
-
-#: dialogs.c:1508
-msgid "Engine Directory:"
-msgstr "Директоријум погона:"
-
-#: dialogs.c:1509
-msgid "Engine Command:"
-msgstr "Наредба погона:"
-
-#: dialogs.c:1510
-msgid "(Directory will be derived from engine path when empty)"
-msgstr "(Директоријум ће бити узет из путање погона када је празан)"
-
-#: dialogs.c:1511
-msgid "UCI"
-msgstr "УЦИ"
-
-#: dialogs.c:1512
-msgid "USI/UCCI (uses specified -uxiAdapter)"
-msgstr ""
-
-#: dialogs.c:1513
-msgid "WB protocol v1 (do not wait for engine features)"
-msgstr "ВБ протокол в1 (не чекај на функције погона)"
-
-#: dialogs.c:1514
-msgid "Must not use GUI book"
-msgstr "Не сме користити ГКС књигу"
-
-#: dialogs.c:1515
-msgid "Add this engine to the list"
-msgstr "Додај овај погон на списак"
-
-#: dialogs.c:1516
-msgid "Force current variant with this engine"
-msgstr "Приморај текућу варијанту овим погоном"
-
-#: dialogs.c:1570
-msgid "Load first engine"
-msgstr "Учитајте први погон"
-
-#: dialogs.c:1576
-msgid "Load second engine"
-msgstr "Учитајте други погон"
-
-#: dialogs.c:1599
-msgid "shuffle"
-msgstr "измешај"
-
-#: dialogs.c:1600
-msgid "Fischer castling"
-msgstr "Фишерова рокада"
-
-#: dialogs.c:1601
-msgid "Start-position number:"
-msgstr "Број почетног положаја:"
-
-#: dialogs.c:1602
-msgid "randomize"
-msgstr "насумично"
-
-#: dialogs.c:1603
-msgid "pick fixed"
-msgstr "изабери сталне"
-
-#: dialogs.c:1620
-msgid "New Shuffle Game"
-msgstr "Нова насумична игра"
-
-#: dialogs.c:1647
-#, fuzzy
-msgid "Clocks (requires restart):"
-msgstr "Величина логотипа (0=искљ., захтева поновно покретање):"
-
-#: dialogs.c:1648 dialogs.c:1654 dialogs.c:1660 dialogs.c:1666 dialogs.c:1672
-#: dialogs.c:1678 dialogs.c:1684
-msgid "+"
-msgstr ""
-
-#: dialogs.c:1649 dialogs.c:1655 dialogs.c:1661 dialogs.c:1667 dialogs.c:1673
-#: dialogs.c:1679 dialogs.c:1685
-msgid "-"
-msgstr ""
-
-#: dialogs.c:1651 dialogs.c:1657 dialogs.c:1663 dialogs.c:1669 dialogs.c:1675
-#: dialogs.c:1681 dialogs.c:1687
-msgid "I"
-msgstr ""
-
-#: dialogs.c:1652 dialogs.c:1658 dialogs.c:1664 dialogs.c:1670 dialogs.c:1676
-#: dialogs.c:1682 dialogs.c:1688
-msgid "*"
-msgstr ""
-
-#: dialogs.c:1653
-msgid "Message (above board):"
-msgstr ""
-
-#: dialogs.c:1659
-#, fuzzy
-msgid "ICS Chat/Console:"
-msgstr "Конзола ИЦС-а/Ћаскања"
-
-#: dialogs.c:1665
-msgid "Edit tags / book / engine list:"
-msgstr ""
-
-#: dialogs.c:1671
-#, fuzzy
-msgid "Edit comments:"
-msgstr "Уредите напомену"
-
-#: dialogs.c:1677
-#, fuzzy
-msgid "Move history / Engine Output:"
-msgstr "Излаз погона"
-
-#: dialogs.c:1683
-#, fuzzy
-msgid "Game list:"
-msgstr "Списак игара"
-
-#: dialogs.c:1689
-msgid ""
-"\n"
-"The * buttons will set the font to the one selected below:"
-msgstr ""
-
-#: dialogs.c:1743
-msgid "This only works in the GTK build"
-msgstr ""
-
-#: dialogs.c:1744
-msgid "Fonts"
-msgstr ""
-
-#: dialogs.c:1764
-msgid "classical"
-msgstr "уобичајено"
-
-#: dialogs.c:1765
-msgid "incremental"
-msgstr "растуће"
-
-#: dialogs.c:1766
-msgid "fixed max"
-msgstr "стални максимум"
-
-#: dialogs.c:1767
-msgid "Divide entered times by 60"
-msgstr ""
-
-#: dialogs.c:1768
-msgid "Moves per session:"
-msgstr "Потеза по сесији:"
-
-#: dialogs.c:1769
-msgid "Initial time (min):"
-msgstr "Почетно време (min):"
-
-#: dialogs.c:1770
-msgid "Increment or max (sec/move):"
-msgstr "Повећање или највише (сек/потезу):"
-
-#: dialogs.c:1771
-msgid "Time-Odds factors:"
-msgstr "Чиниоци вишка времена:"
-
-#: dialogs.c:1772
-msgid "Engine #1"
-msgstr "1° погон"
-
-#: dialogs.c:1773
-msgid "Engine #2 / Human"
-msgstr "2° погон / човек"
-
-#: dialogs.c:1814 dialogs.c:1817 dialogs.c:1822 dialogs.c:1823
-#: gtk/xoptions.c:183
-msgid "Unused"
-msgstr "Некоришћено"
-
-#: dialogs.c:1832
-msgid "Changing time control during a game is not implemented"
-msgstr ""
-
-#: dialogs.c:1869
-msgid "Error writing to chess program"
-msgstr "Грешка писања у шаховски програм"
-
-#: dialogs.c:1937 gtk/xoptions.c:1775 xaw/xoptions.c:1341
-msgid "Cancel"
-msgstr "Поништи"
-
-#: dialogs.c:1942 dialogs.c:2695 dialogs.c:2699
-msgid "King"
-msgstr "Краљ"
-
-#: dialogs.c:1945
-msgid "Captain"
-msgstr "Капетан"
-
-#: dialogs.c:1946
-msgid "Lieutenant"
-msgstr "Поручник"
-
-#: dialogs.c:1947
-msgid "General"
-msgstr "Генерал"
-
-#: dialogs.c:1948
-msgid "Warlord"
-msgstr "Господар рата"
-
-#: dialogs.c:1950 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Knight"
-msgstr "Скакач"
-
-#: dialogs.c:1951 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Bishop"
-msgstr "Ловац"
-
-#: dialogs.c:1952 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Rook"
-msgstr "Кула"
-
-#: dialogs.c:1956 dialogs.c:2696 dialogs.c:2700
-msgid "Archbishop"
-msgstr "Архиепископ"
-
-#: dialogs.c:1957 dialogs.c:2696 dialogs.c:2700
-msgid "Chancellor"
-msgstr "Канцелар"
-
-#: dialogs.c:1959 dialogs.c:2695 dialogs.c:2699 dialogs.c:2717
-msgid "Queen"
-msgstr "Краљица"
-
-#: dialogs.c:1961
-msgid "Lion"
-msgstr "Лав"
-
-#: dialogs.c:1965
-msgid "Defer"
-msgstr "Одгоди"
-
-#: dialogs.c:1966 dialogs.c:2696 dialogs.c:2700
-msgid "Promote"
-msgstr "Унапреди"
-
-#: dialogs.c:2023
-msgid "Chats:"
-msgstr "Ћаскања:"
-
-#: dialogs.c:2024 dialogs.c:2025 dialogs.c:2026 dialogs.c:2027 dialogs.c:2028
-#: dialogs.c:2134 dialogs.c:2199 dialogs.c:2231
-msgid "New Chat"
-msgstr "Нови чат"
-
-#: dialogs.c:2031
-msgid "Chat partner:"
-msgstr "Партнер ћаскања:"
-
-#: dialogs.c:2032
-msgid "End Chat"
-msgstr "Заврши чат"
-
-#: dialogs.c:2033
-msgid "Hide"
-msgstr "Сакриј"
-
-#: dialogs.c:2260
-msgid "ICS Interaction"
-msgstr "ИЦС међудејство"
-
-#: dialogs.c:2345
-msgid "factory"
-msgstr "фабричка"
-
-#: dialogs.c:2346
-msgid "up"
-msgstr "горе"
-
-#: dialogs.c:2347
-msgid "down"
-msgstr "доле"
-
-# bug: plural-forms
-#: dialogs.c:2366
-msgid "No tag selected"
-msgstr "Није изабрана ознака"
-
-#: dialogs.c:2397
-msgid "Game-list options"
-msgstr "Опције списка игара"
-
-#: dialogs.c:2475 dialogs.c:2489
-msgid "Error"
-msgstr "Грешка"
-
-#: dialogs.c:2518
-msgid "Fatal Error"
-msgstr "Кобна грешка"
-
-#: dialogs.c:2518
-msgid "Exiting"
-msgstr "Излазим"
-
-#: dialogs.c:2529
-msgid "Information"
-msgstr "Обавештење"
-
-#: dialogs.c:2536
-msgid "Note"
-msgstr "Напомена"
-
-#: dialogs.c:2694 dialogs.c:2987 dialogs.c:2990
-msgid "White"
-msgstr "Бели"
-
-#: dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Pawn"
-msgstr "Пешак"
-
-#: dialogs.c:2695 dialogs.c:2699
-msgid "Elephant"
-msgstr "Слон"
-
-#: dialogs.c:2695 dialogs.c:2699
-msgid "Cannon"
-msgstr "Топ"
-
-#: dialogs.c:2696 dialogs.c:2700
-msgid "Demote"
-msgstr "Деградирај"
-
-#: dialogs.c:2697 dialogs.c:2701
-msgid "Empty square"
-msgstr "Празно поље"
-
-#: dialogs.c:2697 dialogs.c:2701
-msgid "Clear board"
-msgstr "Очисти таблу"
-
-#: dialogs.c:2698 dialogs.c:2999 dialogs.c:3002
-msgid "Black"
-msgstr "Црни"
-
-#: dialogs.c:2798
-#, fuzzy
-msgid "_File"
-msgstr "Датотека"
-
-#: dialogs.c:2799
-#, fuzzy
-msgid "_Edit"
-msgstr "Уреди"
-
-#: dialogs.c:2800
-#, fuzzy
-msgid "_View"
-msgstr "Преглед"
-
-#: dialogs.c:2801
-#, fuzzy
-msgid "_Mode"
-msgstr "Режим"
-
-#: dialogs.c:2802
-#, fuzzy
-msgid "_Action"
-msgstr "Радња"
-
-#: dialogs.c:2803
-#, fuzzy
-msgid "E_ngine"
-msgstr "Погон"
-
-#: dialogs.c:2804
-#, fuzzy
-msgid "_Options"
-msgstr "Опције"
-
-#: dialogs.c:2805
-#, fuzzy
-msgid "_Help"
-msgstr "Помоћ"
-
-#: dialogs.c:2815
-msgid "<<"
-msgstr "<<"
-
-#: dialogs.c:2816
-msgid "<"
-msgstr "<"
-
-#: dialogs.c:2818
-msgid ">"
-msgstr ">"
-
-#: dialogs.c:2819
-msgid ">>"
-msgstr ">>"
-
-#: dialogs.c:3107
-msgid "Directories:"
-msgstr "Директоријуми:"
-
-#: dialogs.c:3108
-msgid "Files:"
-msgstr "Датотеке:"
-
-#: dialogs.c:3109
-msgid "by name"
-msgstr "по називу"
-
-#: dialogs.c:3110
-msgid "by type"
-msgstr "по врсти"
-
-#: dialogs.c:3113
-msgid "Filename:"
-msgstr "Назив датотеке:"
-
-#: dialogs.c:3114
-msgid "New directory"
-msgstr "Нови директоријум"
-
-#: dialogs.c:3115
-msgid "File type:"
-msgstr "Врста датотеке:"
-
-#: dialogs.c:3190
-msgid "Contents of"
-msgstr "Садржај"
-
-#: dialogs.c:3216
-msgid "  next page"
-msgstr "  следеће странице"
-
-#: dialogs.c:3233
-msgid "FIRST TYPE DIRECTORY NAME HERE"
-msgstr "ПРВО УКУЦАЈТЕ НАЗИВ ДИРЕКТОРИЈУМА ОВДЕ"
-
-#: dialogs.c:3234
-msgid "TRY ANOTHER NAME"
-msgstr "ПРОБАЈТЕ ДРУГИ НАЗИВ"
-
-#: draw.c:405
-msgid ""
-"No default pieces installed!\n"
-"Select your own using '-pieceImageDirectory'."
-msgstr ""
-"Нису инсталиране основне фигуре!\n"
-"Изаберите ваше сопствене користећи „-pieceImageDirectory“."
-
-#: engineoutput.c:112 menus.c:642
-#, c-format
-msgid "Engine Output"
-msgstr "Излаз погона"
-
-#: engineoutput.c:122
-#, c-format
-msgid "%s (%d reversible ply)"
-msgid_plural "%s (%d reversible plies)"
-msgstr[0] "%s (%d повратан потез)"
-msgstr[1] "%s (%d повратна потеза)"
-msgstr[2] "%s (%d повратних потеза)"
-
-#: engineoutput.c:565 engineoutput.c:568 nengineoutput.c:83 nengineoutput.c:91
-msgid "NPS"
-msgstr "НПС"
-
-#: gamelist.c:379
-#, c-format
-msgid "Reading game file (%d)"
-msgstr "Читам датотеку игре (%d)"
-
-#: gtk/xboard.c:979 xaw/xboard.c:1074
-#, c-format
-msgid "%s: can't cd to CHESSDIR: "
-msgstr "%s: не могу да променим директоријум у ДИРШАХА: "
-
-#: gtk/xboard.c:988 xaw/xboard.c:1083
-#, c-format
-msgid "Failed to open file '%s'\n"
-msgstr "Нисам успео да отворим датотеку „%s“\n"
-
-#: gtk/xboard.c:1003 xaw/xboard.c:1092
-msgid "Recompile with larger BOARD_RANKS or BOARD_FILES to support this size"
-msgstr ""
-"Поново преведите са већим РЕДОВИМА_ТАБЛЕ или ЛИНИЈАМА_ТАБЛЕ да подржавају "
-"ову величину"
-
-#: gtk/xboard.c:1022 xaw/xboard.c:1124
-#, c-format
-msgid "%s: bad boardSize syntax %s\n"
-msgstr "%s: лоша синтакса величине табле „%s“\n"
-
-#: gtk/xboard.c:1063 xaw/xboard.c:1163
-#, c-format
-msgid "%s: unrecognized boardSize name %s\n"
-msgstr "%s: непознат назив величине табле „%s“\n"
-
-#: gtk/xboard.c:1107 xaw/xboard.c:1200
-#, c-format
-msgid "%s: too few colors available; trying monochrome mode\n"
-msgstr "%s: доступно је премало боја; покушавам једнобојни режим\n"
-
-#: gtk/xboard.c:1421 xaw/xboard.c:1492
-#, c-format
-msgid "Unable to create font set for %s.\n"
-msgstr "Не могу да направим скуп писама за „%s“.\n"
-
-#: gtk/xboard.c:1446 xaw/xboard.c:1515
-#, c-format
-msgid "%s: no fonts match pattern %s\n"
-msgstr "%s: нема писама која одговарају обрасцу „%s“\n"
-
-#: gtk/xboard.c:1914 xaw/xboard.c:2007
-msgid "Can't open temp file"
-msgstr "Не могу да отворим привремену датотеку"
-
-#: gtk/xboard.c:2422
-msgid "Failed to open file"
-msgstr "Нисам успео да отворим датотеку"
-
-#: gtk/xoptions.c:1498
-#, fuzzy
-msgid "Browse"
-msgstr "разгледај"
-
-#: gtk/xoptions.c:1772 xaw/xoptions.c:1337
-msgid "OK"
-msgstr "У реду"
-
-#: menus.c:136
-msgid "Load game file name?"
-msgstr "Да ли да учитам назив датотеке игре?"
-
-#: menus.c:183
-msgid "Load position file name?"
-msgstr "Да ли да учитам назив датотеке положаја?"
-
-#: menus.c:189 menus.c:582
-msgid "Save game file name?"
-msgstr "Да ли да сачувам назив датотеке игре?"
-
-#: menus.c:198
-msgid "Save position file name?"
-msgstr "Да ли да сачувам назив датотеке положаја?"
-
-#: menus.c:355
-msgid " (with Zippy code)"
-msgstr " (са Зипи кодом)"
-
-#: menus.c:360
-#, fuzzy, c-format
-msgid ""
-"%s%s\n"
-"\n"
-"Copyright 1991 Digital Equipment Corporation\n"
-"Enhancements Copyright 1992-2016 Free Software Foundation\n"
-"Enhancements Copyright 2005 Alessandro Scotti\n"
-"\n"
-"%s is free software and carries NO WARRANTY;see the file COPYING for more "
-"information.\n"
-"\n"
-"Visit XBoard on the web at: http://www.gnu.org/software/xboard/\n"
-"Check out the newest features at: http://www.gnu.org/software/xboard/"
-"whats_new.html\n"
-"\n"
-"Report bugs via email at: <bug-xboard@gnu.org>\n"
-"\n"
-msgstr ""
-"%s%s\n"
-"\n"
-"Ауторска права 1991 Корпорација дигиталне опреме\n"
-"Ауторска права побољшања 1992-2014 Задужбина слободног софтвера\n"
-"Ауторска права побољшања 2005 Алесандро Скоти\n"
-"\n"
-"„%s“ је слободан софтвер и нема НИКАКВЕ ГАРАНЦИЈЕ; видите датотеку „COPYING“ "
-"за више података.\n"
-"Гтк изградња овог издања је пробна и нестабилна\n"
-"\n"
-"Посетите Х-таблу на вебу: http://www.gnu.org/software/xboard/\n"
-"Проверите најновије функције на: http://www.gnu.org/software/xboard/"
-"whats_new.html\n"
-"\n"
-"Грешке пријавите ел. поштом на: <bug-xboard@gnu.org>\n"
-"\n"
-
-#: menus.c:371 menus.c:765
-msgid "About XBoard"
-msgstr "О Х-табли"
-
-#: menus.c:593
-msgid "New Game"
-msgstr "Нова игра"
-
-#: menus.c:594
-msgid "New Shuffle Game..."
-msgstr "Нова насумична игра..."
-
-#: menus.c:595
-msgid "New Variant..."
-msgstr "Нова варијанта..."
-
-#: menus.c:597
-msgid "Load Game"
-msgstr "Учитај игру"
-
-#: menus.c:598
-msgid "Load Position"
-msgstr "Учитај положај"
-
-#: menus.c:599
-msgid "Next Position"
-msgstr "Следећи положај"
-
-#: menus.c:600
-msgid "Prev Position"
-msgstr "Претходни положај"
-
-#: menus.c:602
-msgid "Save Game"
-msgstr "Сачувај игру"
-
-#: menus.c:603
-msgid "Save Position"
-msgstr "Сачувај положај"
-
-#: menus.c:604
-msgid "Save Selected Games"
-msgstr "Сачувај изабране игре"
-
-#: menus.c:605
-msgid "Save Games as Book"
-msgstr "Сачувај игре као књигу"
-
-#: menus.c:607
-msgid "Mail Move"
-msgstr "Пошаљи поштом потез"
-
-#: menus.c:608
-msgid "Reload CMail Message"
-msgstr "Поново учитај поруку Цпоште"
-
-#: menus.c:610
-msgid "Quit "
-msgstr "Изађи"
-
-#: menus.c:615
-msgid "Copy Game"
-msgstr "Умножи игру"
-
-#: menus.c:616
-msgid "Copy Position"
-msgstr "Умножи положај"
-
-#: menus.c:617
-msgid "Copy Game List"
-msgstr "Умножи списак игара"
-
-#: menus.c:619
-msgid "Paste Game"
-msgstr "Убаци игру"
-
-#: menus.c:620
-msgid "Paste Position"
-msgstr "Убаци положај"
-
-#: menus.c:622 menus.c:665
-msgid "Edit Game"
-msgstr "Уреди игру"
-
-#: menus.c:623 menus.c:666
-msgid "Edit Position"
-msgstr "Уреди положај"
-
-#: menus.c:624
-msgid "Edit Tags"
-msgstr "Уреди ознаку"
-
-#: menus.c:625
-msgid "Edit Comment"
-msgstr "Уреди напомену"
-
-#: menus.c:626
-msgid "Edit Book"
-msgstr "Уреди књигу"
-
-#: menus.c:628
-msgid "Revert"
-msgstr "Врати"
-
-#: menus.c:629
-msgid "Annotate"
-msgstr "Прибележи"
-
-#: menus.c:630
-msgid "Truncate Game"
-msgstr "Скрати игру"
-
-#: menus.c:632
-msgid "Backward"
-msgstr "Назад"
-
-#: menus.c:633
-msgid "Forward"
-msgstr "Напред"
-
-#: menus.c:634
-msgid "Back to Start"
-msgstr "Назад на почетак"
-
-#: menus.c:635
-msgid "Forward to End"
-msgstr "Напред на крај"
-
-#: menus.c:640
-msgid "Flip View"
-msgstr "Изврни преглед"
-
-#: menus.c:643
-msgid "Move History"
-msgstr "Историјат потеза"
-
-#: menus.c:644
-msgid "Evaluation Graph"
-msgstr "График процене"
-
-#: menus.c:645
-msgid "Game List"
-msgstr "Списак игара"
-
-#: menus.c:649
-msgid "Comments"
-msgstr "Напомене"
-
-#: menus.c:650
-msgid "ICS Input Box"
-msgstr "Поље уноса ИЦС-а"
-
-#: menus.c:651
-msgid "ICS/Chat Console"
-msgstr "Конзола ИЦС-а/Ћаскања"
-
-#: menus.c:653
-msgid "Board..."
-msgstr "Табла..."
-
-#: menus.c:654
-#, fuzzy
-msgid "Fonts..."
-msgstr "Звуци..."
-
-#: menus.c:655
-msgid "Game List Tags..."
-msgstr "Ознаке списка игара..."
-
-#: menus.c:660
-msgid "Machine White"
-msgstr "Машински бели"
-
-#: menus.c:661
-msgid "Machine Black"
-msgstr "Машински црни"
-
-#: menus.c:662
-msgid "Two Machines"
-msgstr "Две машине"
-
-#: menus.c:663
-msgid "Analysis Mode"
-msgstr "Режим анализе"
-
-#: menus.c:664
-msgid "Analyze Game"
-msgstr "Анализирај игру"
-
-#: menus.c:667
-msgid "Training"
-msgstr "Увежбавање"
-
-#: menus.c:668
-msgid "ICS Client"
-msgstr "ИЦС клијент"
-
-#: menus.c:670
-msgid "Machine Match"
-msgstr "Машински меч"
-
-#: menus.c:671
-msgid "Pause"
-msgstr "Заустави"
-
-#: menus.c:676
-msgid "Accept"
-msgstr "Прихвати"
-
-#: menus.c:677
-msgid "Decline"
-msgstr "Одбиј"
-
-#: menus.c:678
-msgid "Rematch"
-msgstr "Поново играј"
-
-#: menus.c:680
-msgid "Call Flag"
-msgstr "Заставица позива"
-
-#: menus.c:681
-msgid "Draw"
-msgstr "Реми"
-
-#: menus.c:682
-msgid "Adjourn"
-msgstr "Одложи"
-
-#: menus.c:683
-msgid "Abort"
-msgstr "Прекини"
-
-#: menus.c:684
-msgid "Resign"
-msgstr "Предај се"
-
-#: menus.c:686
-msgid "Stop Observing"
-msgstr "Прекини посматрање"
-
-#: menus.c:687
-msgid "Stop Examining"
-msgstr "Прекини испитивање"
-
-#: menus.c:688
-msgid "Upload to Examine"
-msgstr "Отпреми на испитивање"
-
-#: menus.c:690
-msgid "Adjudicate to White"
-msgstr "Досуди белом"
-
-#: menus.c:691
-msgid "Adjudicate to Black"
-msgstr "Досуди црном"
-
-#: menus.c:692
-msgid "Adjudicate Draw"
-msgstr "Досуди реми"
-
-#: menus.c:697
-msgid "Edit Engine List..."
-msgstr "Измени списак погона..."
-
-#: menus.c:699
-msgid "Load New 1st Engine..."
-msgstr "Учитај нови 1° погон..."
-
-#: menus.c:700
-msgid "Load New 2nd Engine..."
-msgstr "Учитај нови 2° погон..."
-
-#: menus.c:702
-msgid "Engine #1 Settings..."
-msgstr "Подешавања 1° погона..."
-
-#: menus.c:703
-msgid "Engine #2 Settings..."
-msgstr "Подешавања 2° погона..."
-
-#: menus.c:704
-#, fuzzy
-msgid "Common Settings..."
-msgstr "Подешавања општег погона"
-
-#: menus.c:706
-msgid "Hint"
-msgstr "Савет"
-
-#: menus.c:707
-msgid "Book"
-msgstr "Књига"
-
-#: menus.c:709
-msgid "Move Now"
-msgstr "Одиграј сада"
-
-#: menus.c:710
-msgid "Retract Move"
-msgstr "Повуци потез"
-
-#: menus.c:716
-msgid "General..."
-msgstr "Опште..."
-
-#: menus.c:718
-msgid "Time Control..."
-msgstr "Управљање временом..."
-
-#: menus.c:719
-msgid "Adjudications..."
-msgstr "Додељивања..."
-
-#: menus.c:720
-msgid "ICS..."
-msgstr "ИЦС..."
-
-#: menus.c:721
-msgid "Tournament..."
-msgstr "Турнир..."
-
-#: menus.c:722
-msgid "Load Game..."
-msgstr "Учитај игру..."
-
-#: menus.c:723
-msgid "Save Game..."
-msgstr "Сачувај игру..."
-
-#: menus.c:724
-msgid "Game List..."
-msgstr "Списак игара..."
-
-#: menus.c:725
-msgid "Sounds..."
-msgstr "Звуци..."
-
-#: menus.c:728
-msgid "Always Queen"
-msgstr "Увек краљица"
-
-#: menus.c:734
-msgid "Flash Moves"
-msgstr "Бљесни потезима"
-
-#: menus.c:736
-msgid "Highlight Dragging"
-msgstr "Истакни превлачење"
-
-#: menus.c:739
-msgid "Highlight With Arrow"
-msgstr "Истакни стрелицом"
-
-#: menus.c:740
-msgid "Move Sound"
-msgstr "Звук потеза"
-
-#: menus.c:742
-msgid "Periodic Updates"
-msgstr "Повремена освежења"
-
-#: menus.c:744
-msgid "Popup Exit Message"
-msgstr "Прикажи поруку излаза"
-
-#: menus.c:746
-msgid "Show Coords"
-msgstr "Прикажи кординате"
-
-#: menus.c:747
-msgid "Hide Thinking"
-msgstr "Сакриј размишљање"
-
-#: menus.c:751
-msgid "Save Settings Now"
-msgstr "Сачувај подешавања сада"
-
-#: menus.c:752
-msgid "Save Settings on Exit"
-msgstr "Сачувај подешавања на изласку"
-
-#: menus.c:757
-msgid "Info XBoard"
-msgstr "Подаци Х-табле"
-
-#: menus.c:758
-msgid "Man XBoard"
-msgstr "Приручник Х-табле"
-
-#: menus.c:760
-msgid "XBoard Home Page"
-msgstr "Матична страница Х-табле"
-
-#: menus.c:761
-msgid "On-line User Guide"
-msgstr "Корисничко упутство на мрежи"
-
-#: menus.c:762
-msgid "Development News"
-msgstr "Новости о развоју"
-
-#: menus.c:763
-msgid "e-Mail Bug Report"
-msgstr "Пошаљи извештај о грешци"
-
-#: menus.c:802
-msgid "File"
-msgstr "Датотека"
-
-#: menus.c:803
-msgid "Edit"
-msgstr "Уреди"
-
-#: menus.c:804
-msgid "View"
-msgstr "Преглед"
-
-#: menus.c:805
-msgid "Mode"
-msgstr "Режим"
-
-#: menus.c:806
-msgid "Action"
-msgstr "Радња"
-
-#: menus.c:807
-msgid "Engine"
-msgstr "Погон"
-
-#: menus.c:808
-msgid "Options"
-msgstr "Опције"
-
-#: menus.c:809
-msgid "Help"
-msgstr "Помоћ"
-
-#: nengineoutput.c:79 nengineoutput.c:87
-msgid "engine name"
-msgstr "назив погона"
-
-#. TRANSLATORS: noun, as in "the move Nf3"
-#: nengineoutput.c:82 nengineoutput.c:90
-msgid "move"
-msgstr "потез"
-
-#: nengineoutput.c:156
-msgid "Engine output"
-msgstr "Излаз погона"
-
-#: nengineoutput.c:160
-msgid ""
-"Mismatch of STRIDE in nengineoutput.c\n"
-"Change and recompile!"
-msgstr ""
-"Неподудара се „STRIDE“ у „nengineoutput.c“\n"
-"Промрните и поново преведите!"
-
-#: nevalgraph.c:69
-msgid "Evaluation graph"
-msgstr "График процене"
-
-#: nevalgraph.c:69
-msgid "Blunder graph"
-msgstr "График погрешака"
-
-#: nevalgraph.c:107
-msgid "Blunder"
-msgstr "Погрешке"
-
-#: nevalgraph.c:107
-msgid "Eval"
-msgstr "Процена"
-
-#: ngamelist.c:87
-msgid "find position"
-msgstr "нађи положај"
-
-#: ngamelist.c:88
-msgid "narrow"
-msgstr "уско"
-
-#: ngamelist.c:89
-msgid "thresholds"
-msgstr "осетљивост"
-
-#: ngamelist.c:90
-msgid "tags"
-msgstr "ознаке"
-
-#: ngamelist.c:91
-msgid "next"
-msgstr "следеће"
-
-#: ngamelist.c:92
-msgid "close"
-msgstr "затвори"
-
-#: ngamelist.c:116
-msgid "No game selected"
-msgstr "Није изабрана игра"
-
-#: ngamelist.c:122
-msgid "Can't go forward any further"
-msgstr "Не могу да идем више напред"
-
-#: ngamelist.c:192
-#, c-format
-msgid "Scanning through games (%d)"
-msgstr "Претражујем игре (%d)"
-
-#: ngamelist.c:211
-msgid "previous page"
-msgstr "претходна страница"
-
-#: ngamelist.c:214
-msgid "next page"
-msgstr "следећа страница"
-
-#: ngamelist.c:217
-msgid "no games matched your request"
-msgstr "ниједна игра не одговара вашем захтеву"
-
-#: ngamelist.c:219
-#, c-format
-msgid "%s - %d/%d games (%d-%d-%d)"
-msgstr "%s — %d/%d игре (%d-%d-%d)"
-
-#: ngamelist.c:284
-msgid "There is no game list"
-msgstr "Нема списка игара"
-
-#: nhistory.c:109
-msgid "Move list"
-msgstr "Списак потеза"
-
-#: usystem.c:223
-#, c-format
-msgid "%s: unrecognized color %s\n"
-msgstr "%s: непозната боја „%s“\n"
-
-#: usystem.c:231
-#, c-format
-msgid "%s: can't parse foreground color in '%s'\n"
-msgstr "%s: не могу да обрадим боју прочеља у „%s“\n"
-
-#: usystem.c:260
-#, c-format
-msgid "%s: can't parse color names; disabling colorization\n"
-msgstr "%s: не могу да обрадим називе боја; искључујем обојавање\n"
-
-#: usystem.c:362
-#, c-format
-msgid "ERROR: Unknown user %s (in path %s)\n"
-msgstr "Грешка: Непознат корисник „%s“ (у путањи „%s“)\n"
-
-#: usystem.c:564
-msgid "Socket support is not configured in"
-msgstr "Подршка прикључнице није подешена"
-
-#: usystem.c:653
-msgid "internal rcmd not implemented for Unix"
-msgstr "унутрашња „rcmd“ није примењена за Јуникс"
-
-#: xaw/xboard.c:1206
-#, c-format
-msgid "white pixel = 0x%lx, black pixel = 0x%lx\n"
-msgstr "беле тачкице = 0x%lx, црне тачкице = 0x%lx\n"
-
-#: xaw/xoptions.c:378 xaw/xoptions.c:1082
-msgid "browse"
-msgstr "разгледај"
-
-#: xaw/xoptions.c:444 xaw/xoptions.c:445
-msgid "Ctrl"
-msgstr "Ктрл"
-
-#: xaw/xoptions.c:450 xaw/xoptions.c:451
-msgid "Alt"
-msgstr "Алт"
-
-#: xaw/xoptions.c:456 xaw/xoptions.c:457
-msgid "Shift"
-msgstr "Помак"
-
-#~ msgid "Common Engine..."
-#~ msgstr "Општи погон..."
diff --git a/po/strip-bad-utf8.pl b/po/strip-bad-utf8.pl
deleted file mode 100755 (executable)
index e282ad7..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#! /usr/bin/perl
-#
-# Strip off utf8 encoding that was spuriously applied to a string of
-# 8-bit bytes.  Note: This may be totally bogus.  If you get any "Wide
-# character in print" messages, then the input was not a string of
-# 8-bit bytes that had utf8 encoding applied to it -- the message
-# means that utf8 decoding produced some characters > 0xff.
-
-binmode STDIN, ':encoding(UTF-8)';
-binmode STDOUT, ':raw';
-
-while (<>) {
-    print $_;
-}
diff --git a/po/tr.po b/po/tr.po
deleted file mode 100644 (file)
index c81fcb9..0000000
--- a/po/tr.po
+++ /dev/null
@@ -1,3234 +0,0 @@
-# XBoard -- a graphical chessboard for X
-# Copyright (C) 1991 by Digital Equipment Corporation, Maynard, Massachusetts.
-# Enhancements Copyright (C) 1992-98 Free Software Foundation, Inc.
-# This file is distributed under the same license as the XBoard package.
-# A. Alper Atýcý <alper_atici@yahoo.com>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: XBoard 4.2.7\n"
-"Report-Msgid-Bugs-To: bug-xboard@gnu.org\n"
-"POT-Creation-Date: 2016-04-03 13:44-0700\n"
-"PO-Revision-Date: 2003-12-26 16:38+0200\n"
-"Last-Translator: A. Alper Atýcý <alper_atici@yahoo.com>\n"
-"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
-"Language: tr\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ISO-8859-9\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-#: args.h:851
-#, c-format
-msgid "%s in settings file\n"
-msgstr ""
-
-#: args.h:885
-#, c-format
-msgid "Bad integer value %s"
-msgstr ""
-
-#: args.h:991 args.h:1252
-#, c-format
-msgid "Unrecognized argument %s"
-msgstr ""
-
-#: args.h:1022
-#, c-format
-msgid "No value provided for argument %s"
-msgstr ""
-
-#: args.h:1082
-#, c-format
-msgid "Incomplete \\ escape in value for %s"
-msgstr ""
-
-#: args.h:1193
-#, fuzzy, c-format
-msgid "Failed to open indirection file %s"
-msgstr "Dosya açýlamadý"
-
-#: args.h:1210
-#, c-format
-msgid "Unrecognized boolean argument value %s"
-msgstr ""
-
-#. TRANSLATORS: "first" is the first of possible two chess engines. It is inserted into strings
-#. such as "%s engine" / "%s chess program" / "%s machine" - all meaning the same thing
-#: backend.c:811
-msgid "first"
-msgstr ""
-
-#. TRANSLATORS: "second" is the second of possible two chess engines. It is inserted into strings
-#. such as "%s engine" / "%s chess program" / "%s machine" - all meaning the same thing
-#: backend.c:814
-msgid "second"
-msgstr ""
-
-#: backend.c:897
-#, c-format
-msgid "protocol version %d not supported"
-msgstr ""
-
-#: backend.c:1004
-msgid "You did not specify the engine executable"
-msgstr ""
-
-#: backend.c:1062
-#, c-format
-msgid "bad timeControl option %s"
-msgstr ""
-
-#: backend.c:1077
-#, c-format
-msgid "bad searchTime option %s"
-msgstr ""
-
-#: backend.c:1183
-#, c-format
-msgid "Variant %s supported only in ICS mode"
-msgstr ""
-
-#: backend.c:1201
-#, c-format
-msgid "Unknown variant name %s"
-msgstr ""
-
-#: backend.c:1456
-msgid "Starting chess program"
-msgstr ""
-
-#: backend.c:1479
-msgid "Bad game file"
-msgstr ""
-
-#: backend.c:1486
-msgid "Bad position file"
-msgstr ""
-
-#: backend.c:1500
-msgid "Pick new game"
-msgstr ""
-
-#: backend.c:1569
-msgid ""
-"You restarted an already completed tourney.\n"
-"One more cycle will now be added to it.\n"
-"Games commence in 10 sec."
-msgstr ""
-
-#: backend.c:1576
-#, c-format
-msgid "All games in tourney '%s' are already played or playing"
-msgstr ""
-
-#: backend.c:1583
-msgid "Can't have a match with no chess programs"
-msgstr ""
-
-#: backend.c:1637
-#, c-format
-msgid "Could not open comm port %s"
-msgstr ""
-
-#: backend.c:1640
-#, c-format
-msgid "Could not connect to host %s, port %s"
-msgstr ""
-
-#: backend.c:1696
-#, c-format
-msgid "Unknown initialMode %s"
-msgstr ""
-
-#: backend.c:1722
-msgid "AnalyzeFile mode requires a game file"
-msgstr ""
-
-#: backend.c:1755
-msgid "Analysis mode requires a chess engine"
-msgstr ""
-
-#: backend.c:1759
-msgid "Analysis mode does not work with ICS mode"
-msgstr ""
-
-#: backend.c:1770
-msgid "MachineWhite mode requires a chess engine"
-msgstr ""
-
-#: backend.c:1775
-msgid "MachineWhite mode does not work with ICS mode"
-msgstr ""
-
-#: backend.c:1782
-msgid "MachineBlack mode requires a chess engine"
-msgstr ""
-
-#: backend.c:1787
-msgid "MachineBlack mode does not work with ICS mode"
-msgstr ""
-
-#: backend.c:1794
-msgid "TwoMachines mode requires a chess engine"
-msgstr ""
-
-#: backend.c:1799
-msgid "TwoMachines mode does not work with ICS mode"
-msgstr ""
-
-#: backend.c:1810
-msgid "Training mode requires a game file"
-msgstr ""
-
-#: backend.c:1973 backend.c:2028 backend.c:2051 backend.c:2453
-msgid "Error writing to ICS"
-msgstr ""
-
-#: backend.c:1988
-msgid "Error reading from keyboard"
-msgstr ""
-
-#: backend.c:1991
-msgid "Got end of file from keyboard"
-msgstr ""
-
-#: backend.c:2299
-#, c-format
-msgid "Unknown wild type %d"
-msgstr ""
-
-#: backend.c:2370 usystem.c:317
-msgid "Error writing to display"
-msgstr ""
-
-#. TRANSLATORS: to 'kibitz' is to send a message to all players and the game observers
-#: backend.c:3138
-#, c-format
-msgid "your opponent kibitzes: %s"
-msgstr ""
-
-#: backend.c:3677
-msgid "Error gathering move list: two headers"
-msgstr ""
-
-#: backend.c:3724
-msgid "Error gathering move list: nested"
-msgstr ""
-
-#: backend.c:3828 backend.c:4254 backend.c:4458 backend.c:5017 backend.c:5021
-#: backend.c:7292 backend.c:13054 backend.c:14805 backend.c:14882
-#: backend.c:14928 backend.c:14934 backend.c:14939 backend.c:14944
-msgid "vs."
-msgstr ""
-
-#: backend.c:3956
-msgid "Illegal move (rejected by ICS)"
-msgstr ""
-
-#: backend.c:4302
-msgid "Connection closed by ICS"
-msgstr ""
-
-#: backend.c:4304
-msgid "Error reading from ICS"
-msgstr ""
-
-#: backend.c:4381
-#, c-format
-msgid ""
-"Failed to parse board string:\n"
-"\"%s\""
-msgstr ""
-
-#: backend.c:4390 backend.c:10628
-msgid "Game too long; increase MAX_MOVES and recompile"
-msgstr ""
-
-#: backend.c:4509
-msgid "Error gathering move list: extra board"
-msgstr ""
-
-#: backend.c:4941 backend.c:4963
-#, c-format
-msgid "Couldn't parse move \"%s\" from ICS"
-msgstr ""
-
-#: backend.c:5228
-#, c-format
-msgid "say Internal error; bad moveType %d (%d,%d-%d,%d)"
-msgstr ""
-
-#: backend.c:5299
-msgid "You cannot do this while you are playing or observing"
-msgstr ""
-
-#: backend.c:6359
-msgid "Recompile to support this BOARD_RANKS or BOARD_FILES!"
-msgstr ""
-
-#: backend.c:6851
-msgid "You are playing Black"
-msgstr "Siz Siyah'sýnýz"
-
-#: backend.c:6860 backend.c:6888
-msgid "You are playing White"
-msgstr "Siz Beyaz'sýnýz"
-
-#: backend.c:6870 backend.c:6896 backend.c:7018 backend.c:7043 backend.c:7059
-#: backend.c:15645
-msgid "It is White's turn"
-msgstr "Sýra Beyaz'da"
-
-#: backend.c:6874 backend.c:6900 backend.c:7026 backend.c:7049 backend.c:7081
-#: backend.c:15637
-msgid "It is Black's turn"
-msgstr "Sýra Siyah'ta"
-
-#: backend.c:6913
-msgid "Displayed position is not current"
-msgstr ""
-
-#: backend.c:7116
-msgid "rights granted"
-msgstr ""
-
-#: backend.c:7116
-msgid "rights revoked"
-msgstr ""
-
-#: backend.c:7169
-msgid "Illegal move"
-msgstr "Geçersiz hamle"
-
-#: backend.c:7249
-msgid "End of game"
-msgstr "Oyun sonu"
-
-#: backend.c:7252
-msgid "Incorrect move"
-msgstr "Yanlýþ hamle"
-
-#: backend.c:7655 backend.c:7811
-msgid "Pull pawn backwards to under-promote"
-msgstr ""
-
-#: backend.c:7772
-msgid "only marked squares are legal"
-msgstr ""
-
-#: backend.c:8093
-msgid "Swiss tourney finished"
-msgstr ""
-
-#: backend.c:8609
-msgid "could not load EGBB library"
-msgstr ""
-
-#: backend.c:8612
-msgid "wrong EGBB version"
-msgstr ""
-
-#: backend.c:8725
-msgid "Invalid pairing from pairing engine"
-msgstr ""
-
-#: backend.c:8892
-#, c-format
-msgid "Illegal move \"%s\" from %s machine"
-msgstr ""
-
-#: backend.c:9179
-msgid "Bad FEN received from engine"
-msgstr ""
-
-#: backend.c:9280
-msgid "Engine did not send setup for non-standard variant"
-msgstr ""
-
-#: backend.c:9358 backend.c:14667 backend.c:14735
-#, c-format
-msgid "%s does not support analysis"
-msgstr ""
-
-#: backend.c:9424
-#, c-format
-msgid "Illegal move \"%s\" (rejected by %s chess program)"
-msgstr ""
-
-#: backend.c:9455
-#, c-format
-msgid "Failed to start %s chess program %s on %s: %s\n"
-msgstr ""
-
-#: backend.c:9476
-#, fuzzy, c-format
-msgid "Hint: %s"
-msgstr "Ýpucu"
-
-#: backend.c:9481
-#, c-format
-msgid ""
-"Illegal hint move \"%s\"\n"
-"from %s chess program"
-msgstr ""
-
-#: backend.c:9656
-msgid "Machine accepts your draw offer"
-msgstr ""
-
-#: backend.c:9659
-msgid ""
-"Machine offers a draw.\n"
-"Select Action / Draw to accept."
-msgstr ""
-
-#. TRANSLATORS: PV = principal variation, the variation the chess engine thinks is the best for everyone
-#: backend.c:9777
-msgid "failed writing PV"
-msgstr ""
-
-#: backend.c:10083
-#, c-format
-msgid "Ambiguous move in ICS output: \"%s\""
-msgstr ""
-
-#: backend.c:10093
-#, c-format
-msgid "Illegal move in ICS output: \"%s\""
-msgstr ""
-
-#: backend.c:10104
-msgid "Gap in move list"
-msgstr ""
-
-#: backend.c:10782
-#, c-format
-msgid "Variant %s not supported by %s"
-msgstr ""
-
-#: backend.c:10789
-#, c-format
-msgid ", but %s is"
-msgstr ""
-
-#: backend.c:10945
-#, c-format
-msgid "Startup failure on '%s'"
-msgstr ""
-
-#: backend.c:10976
-msgid "Waiting for first chess program"
-msgstr ""
-
-#: backend.c:10981 backend.c:14953
-msgid "Waiting for second chess program"
-msgstr ""
-
-#: backend.c:11030
-msgid "Could not write on tourney file"
-msgstr ""
-
-#: backend.c:11104
-msgid ""
-"You cannot replace an engine while it is engaged!\n"
-"Terminate its game first."
-msgstr ""
-
-#: backend.c:11118
-msgid "No engine with the name you gave is installed"
-msgstr ""
-
-#: backend.c:11120
-msgid ""
-"First change an engine by editing the participants list\n"
-"of the Tournament Options dialog"
-msgstr ""
-
-#: backend.c:11121
-msgid "You can only change one engine at the time"
-msgstr ""
-
-#: backend.c:11136 backend.c:11285
-#, c-format
-msgid "No engine %s is installed"
-msgstr ""
-
-#: backend.c:11156
-msgid ""
-"You must supply a tournament file,\n"
-"for storing the tourney progress"
-msgstr ""
-
-#: backend.c:11166
-msgid "Not enough participants"
-msgstr ""
-
-#: backend.c:11369
-#, fuzzy
-msgid "Bad tournament file"
-msgstr "Dosya açýlamadý"
-
-#: backend.c:11381
-msgid "Waiting for other game(s)"
-msgstr ""
-
-#: backend.c:11394
-msgid "No pairing engine specified"
-msgstr ""
-
-#: backend.c:11879
-#, c-format
-msgid "Average solving time %4.2f sec (total time %4.2f sec) "
-msgstr ""
-
-#: backend.c:11881
-#, c-format
-msgid "%d avoid-moves played "
-msgstr ""
-
-#: backend.c:11883
-#, c-format
-msgid "Solved %d out of %d (%3.1f%%) "
-msgstr ""
-
-#: backend.c:11886
-#, c-format
-msgid "Match %s vs. %s: final score %d-%d-%d"
-msgstr ""
-
-#: backend.c:12363 backend.c:12399
-#, c-format
-msgid "Illegal move: %d.%s%s"
-msgstr ""
-
-#: backend.c:12388
-#, c-format
-msgid "Ambiguous move: %d.%s%s"
-msgstr ""
-
-#: backend.c:12442 backend.c:13495 backend.c:13695 backend.c:14065
-#, c-format
-msgid "Can't open \"%s\""
-msgstr ""
-
-#: backend.c:12454 menus.c:118
-msgid "Cannot build game list"
-msgstr ""
-
-#: backend.c:12539
-msgid "No more games in this message"
-msgstr ""
-
-#: backend.c:12579
-msgid "No game has been loaded yet"
-msgstr ""
-
-#: backend.c:12583 backend.c:13476 ngamelist.c:129
-msgid "Can't back up any further"
-msgstr ""
-
-#: backend.c:13030
-msgid "Game number out of range"
-msgstr ""
-
-#: backend.c:13041
-msgid "Can't seek on game file"
-msgstr ""
-
-#: backend.c:13099
-msgid "Game not found in file"
-msgstr ""
-
-#: backend.c:13230 backend.c:13573
-msgid "Bad FEN position in file"
-msgstr ""
-
-#: backend.c:13388
-msgid "No moves in game"
-msgstr ""
-
-#: backend.c:13472
-msgid "No position has been loaded yet"
-msgstr ""
-
-#: backend.c:13533 backend.c:13544
-msgid "Can't seek on position file"
-msgstr ""
-
-#: backend.c:13551 backend.c:13563
-msgid "Position not found in file"
-msgstr ""
-
-#: backend.c:13610
-msgid "Black to play"
-msgstr ""
-
-#: backend.c:13613
-msgid "White to play"
-msgstr ""
-
-#: backend.c:13700 backend.c:14070
-msgid "Waiting for access to save file"
-msgstr ""
-
-#: backend.c:13702
-msgid "Saving game"
-msgstr ""
-
-#: backend.c:13703
-msgid "Bad Seek"
-msgstr ""
-
-#: backend.c:14072
-msgid "Saving position"
-msgstr ""
-
-#: backend.c:14198
-msgid ""
-"You have edited the game history.\n"
-"Use Reload Same Game and make your move again."
-msgstr ""
-
-#: backend.c:14203
-msgid ""
-"You have entered too many moves.\n"
-"Back up to the correct position and try again."
-msgstr ""
-
-#: backend.c:14208
-msgid ""
-"Displayed position is not current.\n"
-"Step forward to the correct position and try again."
-msgstr ""
-
-#: backend.c:14255
-msgid "You have not made a move yet"
-msgstr ""
-
-#: backend.c:14276
-msgid ""
-"The cmail message is not loaded.\n"
-"Use Reload CMail Message and make your move again."
-msgstr ""
-
-#: backend.c:14281
-msgid "No unfinished games"
-msgstr ""
-
-#: backend.c:14287
-#, c-format
-msgid ""
-"You have already mailed a move.\n"
-"Wait until a move arrives from your opponent.\n"
-"To resend the same move, type\n"
-"\"cmail -remail -game %s\"\n"
-"on the command line."
-msgstr ""
-
-#: backend.c:14302
-msgid "Failed to invoke cmail"
-msgstr ""
-
-#: backend.c:14364
-#, c-format
-msgid "Waiting for reply from opponent\n"
-msgstr ""
-
-#: backend.c:14386
-#, c-format
-msgid "Still need to make move for game\n"
-msgstr ""
-
-#: backend.c:14390
-#, c-format
-msgid "Still need to make moves for both games\n"
-msgstr ""
-
-#: backend.c:14394
-#, c-format
-msgid "Still need to make moves for all %d games\n"
-msgstr ""
-
-#: backend.c:14401
-#, c-format
-msgid "Still need to make a move for game %s\n"
-msgstr ""
-
-#: backend.c:14407
-#, c-format
-msgid "No unfinished games\n"
-msgstr ""
-
-#: backend.c:14409
-#, c-format
-msgid "Ready to send mail\n"
-msgstr ""
-
-#: backend.c:14414
-#, c-format
-msgid "Still need to make moves for games %s\n"
-msgstr ""
-
-#: backend.c:14617
-msgid "Edit comment"
-msgstr ""
-
-#: backend.c:14619
-#, c-format
-msgid "Edit comment on %d.%s%s"
-msgstr ""
-
-#: backend.c:14674
-#, c-format
-msgid "You are not observing a game"
-msgstr ""
-
-#: backend.c:14785
-msgid "It is not White's turn"
-msgstr ""
-
-#: backend.c:14866
-msgid "It is not Black's turn"
-msgstr ""
-
-#: backend.c:14974
-#, c-format
-msgid "Starting %s chess program"
-msgstr ""
-
-#: backend.c:15002 backend.c:16189
-msgid ""
-"Wait until your turn,\n"
-"or select 'Move Now'."
-msgstr ""
-
-#: backend.c:15145
-msgid "Training mode off"
-msgstr ""
-
-#: backend.c:15153
-msgid "Training mode on"
-msgstr ""
-
-#: backend.c:15156
-msgid "Already at end of game"
-msgstr ""
-
-#: backend.c:15246
-msgid "Warning: You are still playing a game"
-msgstr ""
-
-#: backend.c:15249
-msgid "Warning: You are still observing a game"
-msgstr ""
-
-#: backend.c:15252
-msgid "Warning: You are still examining a game"
-msgstr ""
-
-#: backend.c:15322
-msgid "Click clock to clear board"
-msgstr ""
-
-#: backend.c:15332
-msgid "Close ICS engine analyze..."
-msgstr ""
-
-#: backend.c:15662
-msgid "That square is occupied"
-msgstr ""
-
-#: backend.c:15686 backend.c:15712
-msgid "There is no pending offer on this move"
-msgstr ""
-
-#: backend.c:15748 backend.c:15759
-msgid "Your opponent is not out of time"
-msgstr ""
-
-#: backend.c:15827
-msgid "You must make your move before offering a draw"
-msgstr ""
-
-#: backend.c:16171
-msgid "You are not examining a game"
-msgstr ""
-
-#: backend.c:16175
-msgid "You can't revert while pausing"
-msgstr ""
-
-#: backend.c:16229 backend.c:16236
-msgid "It is your turn"
-msgstr ""
-
-#: backend.c:16287 backend.c:16294 backend.c:16380 backend.c:16387
-msgid "Wait until your turn."
-msgstr ""
-
-#: backend.c:16299
-msgid "No hint available"
-msgstr ""
-
-#: backend.c:16314 backend.c:16345 ngamelist.c:365
-msgid "Game list not loaded or empty"
-msgstr ""
-
-#: backend.c:16352
-msgid "Book file exists! Try again for overwrite."
-msgstr ""
-
-#: backend.c:16833
-#, c-format
-msgid "Error writing to %s chess program"
-msgstr ""
-
-#: backend.c:16836 backend.c:16867
-#, c-format
-msgid "%s program exits in draw position (%s)"
-msgstr ""
-
-#: backend.c:16862
-#, c-format
-msgid "Error: %s chess program (%s) exited unexpectedly"
-msgstr ""
-
-#: backend.c:16880
-#, c-format
-msgid "Error reading from %s chess program (%s)"
-msgstr ""
-
-#: backend.c:17312
-#, c-format
-msgid "%s engine has too many options\n"
-msgstr ""
-
-#: backend.c:17468
-msgid "Displayed move is not current"
-msgstr ""
-
-#: backend.c:17477
-msgid "Could not parse move"
-msgstr ""
-
-#: backend.c:17602 backend.c:17624
-msgid "Both flags fell"
-msgstr "Berabere"
-
-#: backend.c:17604
-msgid "White's flag fell"
-msgstr "Beyaz Þah mat"
-
-#: backend.c:17626
-msgid "Black's flag fell"
-msgstr "Siyah Þah mat"
-
-#: backend.c:17757
-msgid "Clock adjustment not allowed in auto-flag mode"
-msgstr ""
-
-#: backend.c:18719
-msgid "Bad FEN position in clipboard"
-msgstr ""
-
-#: book.c:598 book.c:874
-msgid "Polyglot book not valid"
-msgstr ""
-
-#: book.c:722
-msgid "Book Fault"
-msgstr ""
-
-#: book.c:877
-msgid "Hash keys are different"
-msgstr ""
-
-#: book.c:1053
-msgid "Could not create book"
-msgstr ""
-
-#: dialogs.c:286
-#, fuzzy
-msgid "Tournament file:          "
-msgstr "Dosya açýlamadý"
-
-#: dialogs.c:287
-msgid "For concurrent playing of tourney with multiple XBoards:"
-msgstr ""
-
-#: dialogs.c:288
-msgid "Sync after round"
-msgstr ""
-
-#: dialogs.c:289
-msgid "Sync after cycle"
-msgstr ""
-
-#: dialogs.c:290
-msgid "Tourney participants:"
-msgstr ""
-
-#: dialogs.c:291
-msgid "Select Engine:"
-msgstr ""
-
-#: dialogs.c:299
-msgid "Tourney type (0 = round-robin, 1 = gauntlet):"
-msgstr ""
-
-#: dialogs.c:300
-msgid "Number of tourney cycles (or Swiss rounds):"
-msgstr ""
-
-#: dialogs.c:301
-msgid "Default Number of Games in Match (or Pairing):"
-msgstr ""
-
-#: dialogs.c:302
-msgid "Pause between Match Games (msec):"
-msgstr ""
-
-#: dialogs.c:303
-#, fuzzy
-msgid "Save Tourney Games on:"
-msgstr "Oyunu Kaydet"
-
-#: dialogs.c:304
-msgid "Game File with Opening Lines:"
-msgstr ""
-
-#: dialogs.c:305
-msgid "Game Number (-1 or -2 = Auto-Increment):"
-msgstr ""
-
-#: dialogs.c:306
-msgid "File with Start Positions:"
-msgstr ""
-
-#: dialogs.c:307
-msgid "Position Number (-1 or -2 = Auto-Increment):"
-msgstr ""
-
-#: dialogs.c:308
-msgid "Rewind Index after this many Games (0 = never):"
-msgstr ""
-
-#: dialogs.c:309
-msgid "Disable own engine books by default"
-msgstr ""
-
-#: dialogs.c:310 dialogs.c:1840
-msgid "Time Control"
-msgstr ""
-
-#: dialogs.c:311
-msgid "Common Engine"
-msgstr ""
-
-#: dialogs.c:312 dialogs.c:446
-#, fuzzy
-msgid "General Options"
-msgstr "Seçenekler"
-
-#: dialogs.c:313
-msgid "Continue Later"
-msgstr ""
-
-#: dialogs.c:314
-msgid "Replace Engine"
-msgstr ""
-
-#: dialogs.c:315
-msgid "Upgrade Engine"
-msgstr ""
-
-#: dialogs.c:316
-msgid "Clone Tourney"
-msgstr ""
-
-#: dialogs.c:356
-msgid "First you must specify an existing tourney file to clone"
-msgstr ""
-
-#: dialogs.c:372 dialogs.c:1549
-msgid "# no engines are installed"
-msgstr ""
-
-#: dialogs.c:380
-msgid "Internal error: PARTICIPANTS set wrong"
-msgstr ""
-
-#: dialogs.c:388
-#, fuzzy
-msgid "Tournament Options"
-msgstr "Seçenekler"
-
-#: dialogs.c:407
-msgid "Absolute Analysis Scores"
-msgstr ""
-
-#: dialogs.c:408
-msgid "Almost Always Queen (Detour Under-Promote)"
-msgstr ""
-
-#: dialogs.c:409 menus.c:729
-msgid "Animate Dragging"
-msgstr ""
-
-#: dialogs.c:410 menus.c:730
-msgid "Animate Moving"
-msgstr ""
-
-#: dialogs.c:411 menus.c:731
-msgid "Auto Flag"
-msgstr ""
-
-#: dialogs.c:412 menus.c:732
-msgid "Auto Flip View"
-msgstr ""
-
-#: dialogs.c:413 menus.c:733
-msgid "Blindfold"
-msgstr "Tahtayý Görmeden"
-
-#. TRANSLATORS: the drop menu is used to drop a piece, e.g. during bughouse or editing a position
-#: dialogs.c:415
-msgid "Drop Menu"
-msgstr ""
-
-#: dialogs.c:416
-msgid "Enable Variation Trees"
-msgstr ""
-
-#: dialogs.c:417
-msgid "Headers in Engine Output Window"
-msgstr ""
-
-#: dialogs.c:418
-msgid "Hide Thinking from Human"
-msgstr ""
-
-#: dialogs.c:419 menus.c:738
-msgid "Highlight Last Move"
-msgstr ""
-
-#: dialogs.c:420
-msgid "Highlight with Arrow"
-msgstr ""
-
-#: dialogs.c:421 menus.c:741
-msgid "One-Click Moving"
-msgstr ""
-
-#: dialogs.c:422
-msgid "Periodic Updates (in Analysis Mode)"
-msgstr ""
-
-#: dialogs.c:424
-msgid "Play Move(s) of Clicked PV (Analysis)"
-msgstr ""
-
-#: dialogs.c:425 dialogs.c:626 menus.c:743
-#, fuzzy
-msgid "Ponder Next Move"
-msgstr "Sonraki Oyunu Yükle"
-
-#: dialogs.c:426
-msgid "Popup Exit Messages"
-msgstr ""
-
-#: dialogs.c:427 menus.c:745
-msgid "Popup Move Errors"
-msgstr ""
-
-#: dialogs.c:428
-#, fuzzy
-msgid "Scores in Move List"
-msgstr "Hamle Listesini Göster"
-
-#: dialogs.c:429
-msgid "Show Coordinates"
-msgstr ""
-
-#: dialogs.c:430
-msgid "Show Target Squares"
-msgstr ""
-
-#: dialogs.c:431
-msgid "Sticky Windows"
-msgstr ""
-
-#: dialogs.c:432 menus.c:748
-msgid "Test Legality"
-msgstr ""
-
-#: dialogs.c:433
-msgid "Top-Level Dialogs"
-msgstr ""
-
-#: dialogs.c:434
-msgid "Flash Moves (0 = no flashing):"
-msgstr ""
-
-#: dialogs.c:435
-msgid "Flash Rate (high = fast):"
-msgstr ""
-
-#: dialogs.c:436
-msgid "Animation Speed (high = slow):"
-msgstr ""
-
-#: dialogs.c:437
-msgid "Zoom factor in Evaluation Graph:"
-msgstr ""
-
-#: dialogs.c:457
-msgid "Normal"
-msgstr ""
-
-#: dialogs.c:458
-msgid "Makruk"
-msgstr ""
-
-#: dialogs.c:459
-msgid "FRC"
-msgstr ""
-
-#: dialogs.c:460
-msgid "Shatranj"
-msgstr ""
-
-#: dialogs.c:461
-msgid "Wild castle"
-msgstr ""
-
-#: dialogs.c:462
-#, fuzzy
-msgid "Knightmate"
-msgstr "At"
-
-#: dialogs.c:463
-msgid "No castle"
-msgstr ""
-
-#: dialogs.c:464
-msgid "Cylinder *"
-msgstr ""
-
-#: dialogs.c:465
-msgid "3-checks"
-msgstr ""
-
-#: dialogs.c:466
-msgid "berolina *"
-msgstr ""
-
-#: dialogs.c:467
-msgid "atomic"
-msgstr ""
-
-#: dialogs.c:468
-msgid "two kings"
-msgstr ""
-
-#: dialogs.c:469
-msgid " "
-msgstr ""
-
-#: dialogs.c:470
-msgid "Spartan"
-msgstr ""
-
-#: dialogs.c:471
-msgid "Board size ( -1 = default for selected variant):"
-msgstr ""
-
-#: dialogs.c:472
-msgid "Number of Board Ranks:"
-msgstr ""
-
-#: dialogs.c:473
-msgid "Number of Board Files:"
-msgstr ""
-
-#: dialogs.c:474
-msgid "Holdings Size:"
-msgstr ""
-
-#: dialogs.c:476
-msgid ""
-"Variants marked with * can only be played\n"
-"with legality testing off."
-msgstr ""
-
-#: dialogs.c:478
-msgid "ASEAN"
-msgstr ""
-
-#: dialogs.c:479
-msgid "Great Shatranj (10x8)"
-msgstr ""
-
-#: dialogs.c:480
-msgid "Seirawan"
-msgstr ""
-
-#: dialogs.c:481
-msgid "Falcon (10x8)"
-msgstr ""
-
-#: dialogs.c:482
-msgid "Superchess"
-msgstr ""
-
-#: dialogs.c:483
-msgid "Capablanca (10x8)"
-msgstr ""
-
-#: dialogs.c:484
-msgid "Crazyhouse"
-msgstr ""
-
-#: dialogs.c:485
-msgid "Gothic (10x8)"
-msgstr ""
-
-#: dialogs.c:486
-msgid "Bughouse"
-msgstr ""
-
-#: dialogs.c:487
-msgid "Janus (10x8)"
-msgstr ""
-
-#: dialogs.c:488
-msgid "Suicide"
-msgstr ""
-
-#: dialogs.c:489
-msgid "CRC (10x8)"
-msgstr ""
-
-#: dialogs.c:490
-msgid "give-away"
-msgstr ""
-
-#: dialogs.c:491
-msgid "grand (10x10)"
-msgstr ""
-
-#: dialogs.c:492
-#, fuzzy
-msgid "losers"
-msgstr "kapat"
-
-#: dialogs.c:493
-msgid "shogi (9x9)"
-msgstr ""
-
-#: dialogs.c:494
-msgid "fairy"
-msgstr ""
-
-#: dialogs.c:495
-msgid "xiangqi (9x10)"
-msgstr ""
-
-#: dialogs.c:496
-msgid "mighty lion"
-msgstr ""
-
-#: dialogs.c:497
-msgid "courier (12x8)"
-msgstr ""
-
-#: dialogs.c:498
-msgid "elven chess (10x10)"
-msgstr ""
-
-#: dialogs.c:499
-msgid "chu shogi (12x12)"
-msgstr ""
-
-#: dialogs.c:543
-#, c-format
-msgid "Warning: second engine (%s) does not support this!"
-msgstr ""
-
-#: dialogs.c:572
-#, c-format
-msgid "Only bughouse is not available in viewer mode."
-msgstr ""
-
-#: dialogs.c:573
-#, c-format
-msgid ""
-"All variants not supported by the first engine\n"
-"(currently %s) are disabled."
-msgstr ""
-
-#: dialogs.c:595
-msgid "New Variant"
-msgstr ""
-
-#: dialogs.c:627
-msgid "Maximum Number of CPUs per Engine:"
-msgstr ""
-
-#: dialogs.c:628
-msgid "Polygot Directory:"
-msgstr ""
-
-#: dialogs.c:629
-msgid "Hash-Table Size (MB):"
-msgstr ""
-
-#: dialogs.c:630
-msgid "EGTB Path:"
-msgstr ""
-
-#: dialogs.c:631
-msgid "EGTB Cache Size (MB):"
-msgstr ""
-
-#: dialogs.c:632
-msgid "Use GUI Book"
-msgstr ""
-
-#: dialogs.c:633
-msgid "Opening-Book Filename:"
-msgstr ""
-
-#: dialogs.c:634
-msgid "Book Depth (moves):"
-msgstr ""
-
-#: dialogs.c:635
-msgid "Book Variety (0) vs. Strength (100):"
-msgstr ""
-
-#: dialogs.c:636
-msgid "Engine #1 Has Own Book"
-msgstr ""
-
-#: dialogs.c:637
-msgid "Engine #2 Has Own Book          "
-msgstr ""
-
-#: dialogs.c:648
-msgid "Common Engine Settings"
-msgstr ""
-
-#: dialogs.c:654
-msgid "Detect all Mates"
-msgstr ""
-
-#: dialogs.c:655
-msgid "Verify Engine Result Claims"
-msgstr ""
-
-#: dialogs.c:656
-msgid "Draw if Insufficient Mating Material"
-msgstr ""
-
-#: dialogs.c:657
-msgid "Adjudicate Trivial Draws (3-Move Delay)"
-msgstr ""
-
-#: dialogs.c:658
-msgid "N-Move Rule:"
-msgstr ""
-
-#: dialogs.c:659
-msgid "N-fold Repeats:"
-msgstr ""
-
-#: dialogs.c:660
-msgid "Draw after N Moves Total:"
-msgstr ""
-
-#: dialogs.c:661
-msgid "Win / Loss Threshold:"
-msgstr ""
-
-#: dialogs.c:662
-msgid "Negate Score of Engine #1"
-msgstr ""
-
-#: dialogs.c:663
-msgid "Negate Score of Engine #2"
-msgstr ""
-
-#: dialogs.c:670
-#, fuzzy
-msgid "Adjudicate non-ICS Games"
-msgstr "Oyunu Kaydet"
-
-#: dialogs.c:683
-msgid "Auto-Kibitz"
-msgstr ""
-
-#: dialogs.c:684
-msgid "Auto-Comment"
-msgstr ""
-
-#: dialogs.c:685
-msgid "Auto-Observe"
-msgstr ""
-
-#: dialogs.c:686
-#, fuzzy
-msgid "Auto-Raise Board"
-msgstr "XBoard Hakkýnda"
-
-#: dialogs.c:687
-msgid "Auto-Create Logon Script"
-msgstr ""
-
-#: dialogs.c:688
-msgid "Background Observe while Playing"
-msgstr ""
-
-#: dialogs.c:689
-msgid "Dual Board for Background-Observed Game"
-msgstr ""
-
-#: dialogs.c:690
-#, fuzzy
-msgid "Get Move List"
-msgstr "Hamle Listesini Göster"
-
-#: dialogs.c:691
-msgid "Quiet Play"
-msgstr ""
-
-#: dialogs.c:692
-msgid "Seek Graph"
-msgstr ""
-
-#: dialogs.c:693
-msgid "Auto-Refresh Seek Graph"
-msgstr ""
-
-#: dialogs.c:694
-msgid "Auto-InputBox PopUp"
-msgstr ""
-
-#: dialogs.c:695
-msgid "Quit after game"
-msgstr ""
-
-#: dialogs.c:696
-msgid "Premove"
-msgstr ""
-
-#: dialogs.c:697
-msgid "Premove for White"
-msgstr ""
-
-#: dialogs.c:698
-msgid "First White Move:"
-msgstr ""
-
-#: dialogs.c:699
-msgid "Premove for Black"
-msgstr ""
-
-#: dialogs.c:700
-msgid "First Black Move:"
-msgstr ""
-
-#: dialogs.c:702
-msgid "Alarm"
-msgstr ""
-
-#: dialogs.c:703
-msgid "Alarm Time (msec):"
-msgstr ""
-
-#: dialogs.c:705
-msgid "Colorize Messages"
-msgstr ""
-
-#: dialogs.c:706
-msgid "Shout Text Colors:"
-msgstr ""
-
-#: dialogs.c:707
-msgid "S-Shout Text Colors:"
-msgstr ""
-
-#: dialogs.c:708
-msgid "Channel #1 Text Colors:"
-msgstr ""
-
-#: dialogs.c:709
-msgid "Other Channel Text Colors:"
-msgstr ""
-
-#: dialogs.c:710
-msgid "Kibitz Text Colors:"
-msgstr ""
-
-#: dialogs.c:711
-msgid "Tell Text Colors:"
-msgstr ""
-
-#: dialogs.c:712
-msgid "Challenge Text Colors:"
-msgstr ""
-
-#: dialogs.c:713
-msgid "Request Text Colors:"
-msgstr ""
-
-#: dialogs.c:714
-msgid "Seek Text Colors:"
-msgstr ""
-
-#: dialogs.c:715
-msgid "Other Text Colors:"
-msgstr ""
-
-#: dialogs.c:722
-#, fuzzy
-msgid "ICS Options"
-msgstr "Seçenekler"
-
-#: dialogs.c:727
-msgid "Exact position match"
-msgstr ""
-
-#: dialogs.c:727
-msgid "Shown position is subset"
-msgstr ""
-
-#: dialogs.c:727
-msgid "Same material with exactly same Pawn chain"
-msgstr ""
-
-#: dialogs.c:728
-msgid "Same material"
-msgstr ""
-
-#: dialogs.c:728
-msgid "Material range (top board half optional)"
-msgstr ""
-
-#: dialogs.c:728
-msgid "Material difference (optional stuff balanced)"
-msgstr ""
-
-#: dialogs.c:743
-msgid "Auto-Display Tags"
-msgstr ""
-
-#: dialogs.c:744
-msgid "Auto-Display Comment"
-msgstr ""
-
-#: dialogs.c:745
-msgid ""
-"Auto-Play speed of loaded games\n"
-"(0 = instant, -1 = off):"
-msgstr ""
-
-#: dialogs.c:746
-msgid "Seconds per Move:"
-msgstr ""
-
-#: dialogs.c:747
-msgid ""
-"\n"
-"options to use in game-viewer mode:"
-msgstr ""
-
-#: dialogs.c:749
-msgid ""
-"\n"
-"Thresholds for position filtering in game list:"
-msgstr ""
-
-#: dialogs.c:750
-msgid "Elo of strongest player at least:"
-msgstr ""
-
-#: dialogs.c:751
-msgid "Elo of weakest player at least:"
-msgstr ""
-
-#: dialogs.c:752
-msgid "No games before year:"
-msgstr ""
-
-#: dialogs.c:753
-msgid "Minimum nr consecutive positions:"
-msgstr ""
-
-#: dialogs.c:755
-msgid "Search mode:"
-msgstr ""
-
-#: dialogs.c:756
-msgid "Also match reversed colors"
-msgstr ""
-
-#: dialogs.c:757
-msgid "Also match left-right flipped position"
-msgstr ""
-
-#: dialogs.c:766
-#, fuzzy
-msgid "Load Game Options"
-msgstr "Oyun Yükle"
-
-#: dialogs.c:778
-#, fuzzy
-msgid "Auto-Save Games"
-msgstr "Oyunu Kaydet"
-
-#: dialogs.c:779
-msgid "Own Games Only"
-msgstr ""
-
-#: dialogs.c:780
-#, fuzzy
-msgid "Save Games on File:"
-msgstr "Oyunu Kaydet"
-
-#: dialogs.c:781
-msgid "Save Final Positions on File:"
-msgstr ""
-
-#: dialogs.c:782
-msgid "PGN Event Header:"
-msgstr ""
-
-#: dialogs.c:783
-msgid "Old Save Style (as opposed to PGN)"
-msgstr ""
-
-#: dialogs.c:784
-msgid "Include Number Tag in tourney PGN"
-msgstr ""
-
-#: dialogs.c:785
-msgid "Save Score/Depth Info in PGN"
-msgstr ""
-
-#: dialogs.c:786
-msgid "Save Out-of-Book Info in PGN           "
-msgstr ""
-
-#: dialogs.c:793
-#, fuzzy
-msgid "Save Game Options"
-msgstr "Oyunu Kaydet"
-
-#: dialogs.c:802
-msgid "No Sound"
-msgstr ""
-
-#: dialogs.c:803
-msgid "Default Beep"
-msgstr ""
-
-#: dialogs.c:804
-msgid "Above WAV File"
-msgstr ""
-
-#: dialogs.c:805
-msgid "Car Horn"
-msgstr ""
-
-#: dialogs.c:806
-msgid "Cymbal"
-msgstr ""
-
-#: dialogs.c:807
-msgid "Ding"
-msgstr ""
-
-#: dialogs.c:808
-msgid "Gong"
-msgstr ""
-
-#: dialogs.c:809
-msgid "Laser"
-msgstr ""
-
-#: dialogs.c:810
-msgid "Penalty"
-msgstr ""
-
-#: dialogs.c:811
-msgid "Phone"
-msgstr ""
-
-#: dialogs.c:812
-msgid "Pop"
-msgstr ""
-
-#: dialogs.c:813
-msgid "Roar"
-msgstr ""
-
-#: dialogs.c:814
-msgid "Slap"
-msgstr ""
-
-#: dialogs.c:815
-msgid "Wood Thunk"
-msgstr ""
-
-#: dialogs.c:817
-#, fuzzy
-msgid "User File"
-msgstr "Dosya"
-
-#: dialogs.c:840
-msgid "User WAV File:"
-msgstr ""
-
-#: dialogs.c:841
-msgid "Sound Program:"
-msgstr ""
-
-#: dialogs.c:842
-msgid "Try-Out Sound:"
-msgstr ""
-
-#: dialogs.c:843
-msgid "Play"
-msgstr ""
-
-#: dialogs.c:844
-msgid "Move:"
-msgstr ""
-
-#: dialogs.c:845
-msgid "Win:"
-msgstr ""
-
-#: dialogs.c:846
-msgid "Lose:"
-msgstr ""
-
-#: dialogs.c:847
-#, fuzzy
-msgid "Draw:"
-msgstr "Berabere"
-
-#: dialogs.c:848
-msgid "Unfinished:"
-msgstr ""
-
-#: dialogs.c:849
-msgid "Alarm:"
-msgstr ""
-
-#: dialogs.c:850
-msgid "Challenge:"
-msgstr ""
-
-#: dialogs.c:852
-msgid "Sounds Directory:"
-msgstr ""
-
-#: dialogs.c:853
-msgid "Shout:"
-msgstr ""
-
-#: dialogs.c:854
-msgid "S-Shout:"
-msgstr ""
-
-#: dialogs.c:855
-#, fuzzy
-msgid "Channel:"
-msgstr "iptal"
-
-#: dialogs.c:856
-#, fuzzy
-msgid "Channel 1:"
-msgstr "iptal"
-
-#: dialogs.c:857
-msgid "Tell:"
-msgstr ""
-
-#: dialogs.c:858
-msgid "Kibitz:"
-msgstr ""
-
-#: dialogs.c:859
-msgid "Request:"
-msgstr ""
-
-#: dialogs.c:860
-msgid "Lion roar:"
-msgstr ""
-
-#: dialogs.c:861
-msgid "Seek:"
-msgstr ""
-
-#: dialogs.c:877
-#, fuzzy
-msgid "Sound Options"
-msgstr "Seçenekler"
-
-#: dialogs.c:893
-msgid "Selectable themes:"
-msgstr ""
-
-#: dialogs.c:895
-msgid "New name for current theme:"
-msgstr ""
-
-#: dialogs.c:898
-msgid "White Piece Color:"
-msgstr ""
-
-#. TRANSLATORS: R = single letter for the color red
-#: dialogs.c:901 dialogs.c:910 dialogs.c:916 dialogs.c:922 dialogs.c:928
-#: dialogs.c:934
-msgid "R"
-msgstr ""
-
-#. TRANSLATORS: G = single letter for the color green
-#: dialogs.c:903 dialogs.c:911 dialogs.c:917 dialogs.c:923 dialogs.c:929
-#: dialogs.c:935
-msgid "G"
-msgstr ""
-
-#. TRANSLATORS: B = single letter for the color blue
-#: dialogs.c:905 dialogs.c:912 dialogs.c:918 dialogs.c:924 dialogs.c:930
-#: dialogs.c:936 dialogs.c:1650 dialogs.c:1656 dialogs.c:1662 dialogs.c:1668
-#: dialogs.c:1674 dialogs.c:1680 dialogs.c:1686
-msgid "B"
-msgstr ""
-
-#. TRANSLATORS: D = single letter to make a color darker
-#: dialogs.c:907 dialogs.c:913 dialogs.c:919 dialogs.c:925 dialogs.c:931
-#: dialogs.c:937
-msgid "D"
-msgstr ""
-
-#: dialogs.c:908
-msgid "Black Piece Color:"
-msgstr ""
-
-#: dialogs.c:914
-msgid "Light Square Color:"
-msgstr ""
-
-#: dialogs.c:920
-msgid "Dark Square Color:"
-msgstr ""
-
-#: dialogs.c:926
-msgid "Highlight Color:"
-msgstr ""
-
-#: dialogs.c:932
-msgid "Premove Highlight Color:"
-msgstr ""
-
-#: dialogs.c:938
-msgid "Flip Pieces Shogi Style        (Colored buttons restore default)"
-msgstr ""
-
-#: dialogs.c:940
-#, fuzzy
-msgid "Mono Mode"
-msgstr "Kip"
-
-#: dialogs.c:941
-msgid "Logo Size (0=off, requires restart):"
-msgstr ""
-
-#: dialogs.c:942
-msgid "Line Gap (-1 = default for board size):"
-msgstr ""
-
-#: dialogs.c:943
-msgid "Use Board Textures"
-msgstr ""
-
-#: dialogs.c:944
-msgid "Light-Squares Texture File:"
-msgstr ""
-
-#: dialogs.c:945
-msgid "Dark-Squares Texture File:"
-msgstr ""
-
-#: dialogs.c:946
-msgid "Use external piece bitmaps with their own colors"
-msgstr ""
-
-#: dialogs.c:947
-msgid "Directory with Pieces Images:"
-msgstr ""
-
-#: dialogs.c:1018
-msgid "# no themes are defined"
-msgstr ""
-
-#: dialogs.c:1030
-#, fuzzy
-msgid "Board Options"
-msgstr "Seçenekler"
-
-#: dialogs.c:1101 menus.c:646
-msgid "ICS text menu"
-msgstr ""
-
-#: dialogs.c:1130
-msgid "clear"
-msgstr "temizle"
-
-#: dialogs.c:1131
-msgid "save changes"
-msgstr ""
-
-#: dialogs.c:1229
-#, fuzzy
-msgid "add next move"
-msgstr "Sonraki Oyunu Yükle"
-
-#: dialogs.c:1230
-msgid "commit changes"
-msgstr ""
-
-#: dialogs.c:1253
-#, fuzzy
-msgid "Edit book"
-msgstr "Oyunu Düzenle"
-
-#: dialogs.c:1270 dialogs.c:1277 menus.c:648
-msgid "Tags"
-msgstr ""
-
-#: dialogs.c:1285
-msgid "Registered Engines"
-msgstr ""
-
-#: dialogs.c:1401
-#, fuzzy
-msgid "ICS input box"
-msgstr "ICS Ýstemcisi"
-
-#: dialogs.c:1433
-#, fuzzy
-msgid "Type a move"
-msgstr "Geçersiz hamle"
-
-#: dialogs.c:1459
-msgid "Engine has no options"
-msgstr ""
-
-#: dialogs.c:1461
-msgid "Engine Settings"
-msgstr ""
-
-#: dialogs.c:1502
-msgid "Select engine from list:"
-msgstr ""
-
-#: dialogs.c:1505
-msgid "or specify one below:"
-msgstr ""
-
-#: dialogs.c:1506
-msgid "Nickname (optional):"
-msgstr ""
-
-#: dialogs.c:1507
-msgid "Use nickname in PGN player tags of engine-engine games"
-msgstr ""
-
-#: dialogs.c:1508
-msgid "Engine Directory:"
-msgstr ""
-
-#: dialogs.c:1509
-msgid "Engine Command:"
-msgstr ""
-
-#: dialogs.c:1510
-msgid "(Directory will be derived from engine path when empty)"
-msgstr ""
-
-#: dialogs.c:1511
-msgid "UCI"
-msgstr ""
-
-#: dialogs.c:1512
-msgid "USI/UCCI (uses specified -uxiAdapter)"
-msgstr ""
-
-#: dialogs.c:1513
-msgid "WB protocol v1 (do not wait for engine features)"
-msgstr ""
-
-#: dialogs.c:1514
-msgid "Must not use GUI book"
-msgstr ""
-
-#: dialogs.c:1515
-msgid "Add this engine to the list"
-msgstr ""
-
-#: dialogs.c:1516
-msgid "Force current variant with this engine"
-msgstr ""
-
-#: dialogs.c:1570
-msgid "Load first engine"
-msgstr ""
-
-#: dialogs.c:1576
-msgid "Load second engine"
-msgstr ""
-
-#: dialogs.c:1599
-msgid "shuffle"
-msgstr ""
-
-#: dialogs.c:1600
-msgid "Fischer castling"
-msgstr ""
-
-#: dialogs.c:1601
-msgid "Start-position number:"
-msgstr ""
-
-#: dialogs.c:1602
-msgid "randomize"
-msgstr ""
-
-#: dialogs.c:1603
-msgid "pick fixed"
-msgstr ""
-
-#: dialogs.c:1620
-msgid "New Shuffle Game"
-msgstr ""
-
-#: dialogs.c:1647
-msgid "Clocks (requires restart):"
-msgstr ""
-
-#: dialogs.c:1648 dialogs.c:1654 dialogs.c:1660 dialogs.c:1666 dialogs.c:1672
-#: dialogs.c:1678 dialogs.c:1684
-msgid "+"
-msgstr ""
-
-#: dialogs.c:1649 dialogs.c:1655 dialogs.c:1661 dialogs.c:1667 dialogs.c:1673
-#: dialogs.c:1679 dialogs.c:1685
-msgid "-"
-msgstr ""
-
-#: dialogs.c:1651 dialogs.c:1657 dialogs.c:1663 dialogs.c:1669 dialogs.c:1675
-#: dialogs.c:1681 dialogs.c:1687
-msgid "I"
-msgstr ""
-
-#: dialogs.c:1652 dialogs.c:1658 dialogs.c:1664 dialogs.c:1670 dialogs.c:1676
-#: dialogs.c:1682 dialogs.c:1688
-msgid "*"
-msgstr ""
-
-#: dialogs.c:1653
-msgid "Message (above board):"
-msgstr ""
-
-#: dialogs.c:1659
-msgid "ICS Chat/Console:"
-msgstr ""
-
-#: dialogs.c:1665
-msgid "Edit tags / book / engine list:"
-msgstr ""
-
-#: dialogs.c:1671
-#, fuzzy
-msgid "Edit comments:"
-msgstr "Oyunu Sýfýrla"
-
-#: dialogs.c:1677
-msgid "Move history / Engine Output:"
-msgstr ""
-
-#: dialogs.c:1683
-#, fuzzy
-msgid "Game list:"
-msgstr "Oyun Listesini Göster"
-
-#: dialogs.c:1689
-msgid ""
-"\n"
-"The * buttons will set the font to the one selected below:"
-msgstr ""
-
-#: dialogs.c:1743
-msgid "This only works in the GTK build"
-msgstr ""
-
-#: dialogs.c:1744
-msgid "Fonts"
-msgstr ""
-
-#: dialogs.c:1764
-msgid "classical"
-msgstr ""
-
-#: dialogs.c:1765
-msgid "incremental"
-msgstr ""
-
-#: dialogs.c:1766
-msgid "fixed max"
-msgstr ""
-
-#: dialogs.c:1767
-msgid "Divide entered times by 60"
-msgstr ""
-
-#: dialogs.c:1768
-msgid "Moves per session:"
-msgstr ""
-
-#: dialogs.c:1769
-msgid "Initial time (min):"
-msgstr ""
-
-#: dialogs.c:1770
-msgid "Increment or max (sec/move):"
-msgstr ""
-
-#: dialogs.c:1771
-msgid "Time-Odds factors:"
-msgstr ""
-
-#: dialogs.c:1772
-msgid "Engine #1"
-msgstr ""
-
-#: dialogs.c:1773
-msgid "Engine #2 / Human"
-msgstr ""
-
-#: dialogs.c:1814 dialogs.c:1817 dialogs.c:1822 dialogs.c:1823
-#: gtk/xoptions.c:183
-msgid "Unused"
-msgstr ""
-
-#: dialogs.c:1832
-msgid "Changing time control during a game is not implemented"
-msgstr ""
-
-#: dialogs.c:1869
-msgid "Error writing to chess program"
-msgstr ""
-
-#: dialogs.c:1937 gtk/xoptions.c:1775 xaw/xoptions.c:1341
-#, fuzzy
-msgid "Cancel"
-msgstr "iptal"
-
-#: dialogs.c:1942 dialogs.c:2695 dialogs.c:2699
-msgid "King"
-msgstr "Þah"
-
-#: dialogs.c:1945
-msgid "Captain"
-msgstr ""
-
-#: dialogs.c:1946
-msgid "Lieutenant"
-msgstr ""
-
-#: dialogs.c:1947
-msgid "General"
-msgstr ""
-
-#: dialogs.c:1948
-msgid "Warlord"
-msgstr ""
-
-#: dialogs.c:1950 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Knight"
-msgstr "At"
-
-#: dialogs.c:1951 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Bishop"
-msgstr "Fil"
-
-#: dialogs.c:1952 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Rook"
-msgstr "Kale"
-
-#: dialogs.c:1956 dialogs.c:2696 dialogs.c:2700
-#, fuzzy
-msgid "Archbishop"
-msgstr "Fil"
-
-#: dialogs.c:1957 dialogs.c:2696 dialogs.c:2700
-#, fuzzy
-msgid "Chancellor"
-msgstr "iptal"
-
-#: dialogs.c:1959 dialogs.c:2695 dialogs.c:2699 dialogs.c:2717
-msgid "Queen"
-msgstr "Vezir"
-
-#: dialogs.c:1961
-msgid "Lion"
-msgstr ""
-
-#: dialogs.c:1965
-msgid "Defer"
-msgstr ""
-
-#: dialogs.c:1966 dialogs.c:2696 dialogs.c:2700
-#, fuzzy
-msgid "Promote"
-msgstr "Terfi"
-
-#: dialogs.c:2023
-msgid "Chats:"
-msgstr ""
-
-#: dialogs.c:2024 dialogs.c:2025 dialogs.c:2026 dialogs.c:2027 dialogs.c:2028
-#: dialogs.c:2134 dialogs.c:2199 dialogs.c:2231
-#, fuzzy
-msgid "New Chat"
-msgstr "Oyunu Sýfýrla"
-
-#: dialogs.c:2031
-msgid "Chat partner:"
-msgstr ""
-
-#: dialogs.c:2032
-msgid "End Chat"
-msgstr ""
-
-#: dialogs.c:2033
-msgid "Hide"
-msgstr ""
-
-#: dialogs.c:2260
-#, fuzzy
-msgid "ICS Interaction"
-msgstr "Seçenekler"
-
-#: dialogs.c:2345
-msgid "factory"
-msgstr ""
-
-#: dialogs.c:2346
-msgid "up"
-msgstr ""
-
-#: dialogs.c:2347
-msgid "down"
-msgstr ""
-
-#: dialogs.c:2366
-msgid "No tag selected"
-msgstr ""
-
-#: dialogs.c:2397
-#, fuzzy
-msgid "Game-list options"
-msgstr "Oyun Yükle"
-
-#: dialogs.c:2475 dialogs.c:2489
-msgid "Error"
-msgstr "Hata"
-
-#: dialogs.c:2518
-msgid "Fatal Error"
-msgstr ""
-
-#: dialogs.c:2518
-msgid "Exiting"
-msgstr ""
-
-#: dialogs.c:2529
-msgid "Information"
-msgstr "Bilgi"
-
-#: dialogs.c:2536
-msgid "Note"
-msgstr "Not"
-
-#: dialogs.c:2694 dialogs.c:2987 dialogs.c:2990
-msgid "White"
-msgstr "Beyaz"
-
-#: dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Pawn"
-msgstr "Piyon"
-
-#: dialogs.c:2695 dialogs.c:2699
-msgid "Elephant"
-msgstr ""
-
-#: dialogs.c:2695 dialogs.c:2699
-msgid "Cannon"
-msgstr ""
-
-#: dialogs.c:2696 dialogs.c:2700
-msgid "Demote"
-msgstr ""
-
-#: dialogs.c:2697 dialogs.c:2701
-msgid "Empty square"
-msgstr "Kareyi Boþalt"
-
-#: dialogs.c:2697 dialogs.c:2701
-msgid "Clear board"
-msgstr "Tahtayý Temizle"
-
-#: dialogs.c:2698 dialogs.c:2999 dialogs.c:3002
-msgid "Black"
-msgstr "Siyah"
-
-#: dialogs.c:2798
-#, fuzzy
-msgid "_File"
-msgstr "Dosya"
-
-#: dialogs.c:2799
-#, fuzzy
-msgid "_Edit"
-msgstr "Oyunu Düzenle"
-
-#: dialogs.c:2800
-msgid "_View"
-msgstr ""
-
-#: dialogs.c:2801
-#, fuzzy
-msgid "_Mode"
-msgstr "Kip"
-
-#: dialogs.c:2802
-#, fuzzy
-msgid "_Action"
-msgstr "Eylem"
-
-#: dialogs.c:2803
-msgid "E_ngine"
-msgstr ""
-
-#: dialogs.c:2804
-#, fuzzy
-msgid "_Options"
-msgstr "Seçenekler"
-
-#: dialogs.c:2805
-#, fuzzy
-msgid "_Help"
-msgstr "Yardým"
-
-#: dialogs.c:2815
-msgid "<<"
-msgstr ""
-
-#: dialogs.c:2816
-msgid "<"
-msgstr ""
-
-#: dialogs.c:2818
-msgid ">"
-msgstr ""
-
-#: dialogs.c:2819
-msgid ">>"
-msgstr ""
-
-#: dialogs.c:3107
-msgid "Directories:"
-msgstr ""
-
-#: dialogs.c:3108
-#, fuzzy
-msgid "Files:"
-msgstr "Dosya"
-
-#: dialogs.c:3109
-msgid "by name"
-msgstr ""
-
-#: dialogs.c:3110
-msgid "by type"
-msgstr ""
-
-#: dialogs.c:3113
-#, fuzzy
-msgid "Filename:"
-msgstr "Dosya adý giriþi"
-
-#: dialogs.c:3114
-msgid "New directory"
-msgstr ""
-
-#: dialogs.c:3115
-#, fuzzy
-msgid "File type:"
-msgstr "Analiz edilecek dosya"
-
-#: dialogs.c:3190
-msgid "Contents of"
-msgstr ""
-
-#: dialogs.c:3216
-#, fuzzy
-msgid "  next page"
-msgstr "sonraki"
-
-#: dialogs.c:3233
-msgid "FIRST TYPE DIRECTORY NAME HERE"
-msgstr ""
-
-#: dialogs.c:3234
-msgid "TRY ANOTHER NAME"
-msgstr ""
-
-#: draw.c:405
-msgid ""
-"No default pieces installed!\n"
-"Select your own using '-pieceImageDirectory'."
-msgstr ""
-
-#: engineoutput.c:112 menus.c:642
-#, c-format
-msgid "Engine Output"
-msgstr ""
-
-#: engineoutput.c:122
-#, c-format
-msgid "%s (%d reversible ply)"
-msgid_plural "%s (%d reversible plies)"
-msgstr[0] ""
-
-#: engineoutput.c:565 engineoutput.c:568 nengineoutput.c:83 nengineoutput.c:91
-msgid "NPS"
-msgstr ""
-
-#: gamelist.c:379
-#, c-format
-msgid "Reading game file (%d)"
-msgstr ""
-
-#: gtk/xboard.c:979 xaw/xboard.c:1074
-#, c-format
-msgid "%s: can't cd to CHESSDIR: "
-msgstr ""
-
-#: gtk/xboard.c:988 xaw/xboard.c:1083
-#, fuzzy, c-format
-msgid "Failed to open file '%s'\n"
-msgstr "Dosya açýlamadý"
-
-#: gtk/xboard.c:1003 xaw/xboard.c:1092
-msgid "Recompile with larger BOARD_RANKS or BOARD_FILES to support this size"
-msgstr ""
-
-#: gtk/xboard.c:1022 xaw/xboard.c:1124
-#, c-format
-msgid "%s: bad boardSize syntax %s\n"
-msgstr ""
-
-#: gtk/xboard.c:1063 xaw/xboard.c:1163
-#, c-format
-msgid "%s: unrecognized boardSize name %s\n"
-msgstr ""
-
-#: gtk/xboard.c:1107 xaw/xboard.c:1200
-#, c-format
-msgid "%s: too few colors available; trying monochrome mode\n"
-msgstr ""
-
-#: gtk/xboard.c:1421 xaw/xboard.c:1492
-#, c-format
-msgid "Unable to create font set for %s.\n"
-msgstr ""
-
-#: gtk/xboard.c:1446 xaw/xboard.c:1515
-#, c-format
-msgid "%s: no fonts match pattern %s\n"
-msgstr ""
-
-#: gtk/xboard.c:1914 xaw/xboard.c:2007
-msgid "Can't open temp file"
-msgstr ""
-
-#: gtk/xboard.c:2422
-msgid "Failed to open file"
-msgstr "Dosya açýlamadý"
-
-#: gtk/xoptions.c:1498
-msgid "Browse"
-msgstr ""
-
-#: gtk/xoptions.c:1772 xaw/xoptions.c:1337
-msgid "OK"
-msgstr ""
-
-#: menus.c:136
-msgid "Load game file name?"
-msgstr ""
-
-#: menus.c:183
-msgid "Load position file name?"
-msgstr ""
-
-#: menus.c:189 menus.c:582
-msgid "Save game file name?"
-msgstr ""
-
-#: menus.c:198
-msgid "Save position file name?"
-msgstr ""
-
-#: menus.c:355
-msgid " (with Zippy code)"
-msgstr ""
-
-#: menus.c:360
-#, c-format
-msgid ""
-"%s%s\n"
-"\n"
-"Copyright 1991 Digital Equipment Corporation\n"
-"Enhancements Copyright 1992-2016 Free Software Foundation\n"
-"Enhancements Copyright 2005 Alessandro Scotti\n"
-"\n"
-"%s is free software and carries NO WARRANTY;see the file COPYING for more "
-"information.\n"
-"\n"
-"Visit XBoard on the web at: http://www.gnu.org/software/xboard/\n"
-"Check out the newest features at: http://www.gnu.org/software/xboard/"
-"whats_new.html\n"
-"\n"
-"Report bugs via email at: <bug-xboard@gnu.org>\n"
-"\n"
-msgstr ""
-
-#: menus.c:371 menus.c:765
-msgid "About XBoard"
-msgstr "XBoard Hakkýnda"
-
-#: menus.c:593
-#, fuzzy
-msgid "New Game"
-msgstr "Oyunu Sýfýrla"
-
-#: menus.c:594
-#, fuzzy
-msgid "New Shuffle Game..."
-msgstr "Oyunu Kaydet"
-
-#: menus.c:595
-msgid "New Variant..."
-msgstr ""
-
-#: menus.c:597
-#, fuzzy
-msgid "Load Game"
-msgstr "Oyun Yükle"
-
-#: menus.c:598
-#, fuzzy
-msgid "Load Position"
-msgstr "Sonraki Pozisyonu Yükle"
-
-#: menus.c:599
-#, fuzzy
-msgid "Next Position"
-msgstr "Sonraki Pozisyonu Yükle"
-
-#: menus.c:600
-#, fuzzy
-msgid "Prev Position"
-msgstr "Önceki Pozisyonu Yükle"
-
-#: menus.c:602
-#, fuzzy
-msgid "Save Game"
-msgstr "Oyunu Kaydet"
-
-#: menus.c:603
-#, fuzzy
-msgid "Save Position"
-msgstr "Ayný Pozisyonu Tekrar Yükle"
-
-#: menus.c:604
-#, fuzzy
-msgid "Save Selected Games"
-msgstr "Oyunu Kaydet"
-
-#: menus.c:605
-#, fuzzy
-msgid "Save Games as Book"
-msgstr "Oyunu Kaydet"
-
-#: menus.c:607
-msgid "Mail Move"
-msgstr "Hamleyi Postala"
-
-#: menus.c:608
-msgid "Reload CMail Message"
-msgstr "CMail Ýletisini Tekrar Yükle"
-
-#: menus.c:610
-msgid "Quit "
-msgstr ""
-
-#: menus.c:615
-#, fuzzy
-msgid "Copy Game"
-msgstr "Oyun Listesini Göster"
-
-#: menus.c:616
-#, fuzzy
-msgid "Copy Position"
-msgstr "Pozisyonu Kopyala"
-
-#: menus.c:617
-#, fuzzy
-msgid "Copy Game List"
-msgstr "Oyun Listesini Göster"
-
-#: menus.c:619
-#, fuzzy
-msgid "Paste Game"
-msgstr "Oyunu Sýfýrla"
-
-#: menus.c:620
-#, fuzzy
-msgid "Paste Position"
-msgstr "Sonraki Pozisyonu Yükle"
-
-#: menus.c:622 menus.c:665
-#, fuzzy
-msgid "Edit Game"
-msgstr "Oyunu Sýfýrla"
-
-#: menus.c:623 menus.c:666
-#, fuzzy
-msgid "Edit Position"
-msgstr "Sonraki Pozisyonu Yükle"
-
-#: menus.c:624
-msgid "Edit Tags"
-msgstr ""
-
-#: menus.c:625
-msgid "Edit Comment"
-msgstr ""
-
-#: menus.c:626
-#, fuzzy
-msgid "Edit Book"
-msgstr "Kitap"
-
-#: menus.c:628
-msgid "Revert"
-msgstr ""
-
-#: menus.c:629
-msgid "Annotate"
-msgstr ""
-
-#: menus.c:630
-msgid "Truncate Game"
-msgstr ""
-
-#: menus.c:632
-msgid "Backward"
-msgstr "Geri"
-
-#: menus.c:633
-msgid "Forward"
-msgstr "Ýleri"
-
-#: menus.c:634
-#, fuzzy
-msgid "Back to Start"
-msgstr "En Baþa"
-
-#: menus.c:635
-#, fuzzy
-msgid "Forward to End"
-msgstr "En Sona"
-
-#: menus.c:640
-msgid "Flip View"
-msgstr ""
-
-#: menus.c:643
-#, fuzzy
-msgid "Move History"
-msgstr "Hamle listesi"
-
-#: menus.c:644
-msgid "Evaluation Graph"
-msgstr ""
-
-#: menus.c:645
-#, fuzzy
-msgid "Game List"
-msgstr "Oyun Listesini Göster"
-
-#: menus.c:649
-msgid "Comments"
-msgstr ""
-
-#: menus.c:650
-msgid "ICS Input Box"
-msgstr ""
-
-#: menus.c:651
-msgid "ICS/Chat Console"
-msgstr ""
-
-#: menus.c:653
-msgid "Board..."
-msgstr ""
-
-#: menus.c:654
-msgid "Fonts..."
-msgstr ""
-
-#: menus.c:655
-msgid "Game List Tags..."
-msgstr ""
-
-#: menus.c:660
-#, fuzzy
-msgid "Machine White"
-msgstr "Bilgisayar Beyaz"
-
-#: menus.c:661
-#, fuzzy
-msgid "Machine Black"
-msgstr "Bilgisayar Siyah"
-
-#: menus.c:662
-#, fuzzy
-msgid "Two Machines"
-msgstr "Ýkisi de Bilgisayar"
-
-#: menus.c:663
-#, fuzzy
-msgid "Analysis Mode"
-msgstr "Analiz Kipi"
-
-#: menus.c:664
-#, fuzzy
-msgid "Analyze Game"
-msgstr "Analiz Dosyasý"
-
-#: menus.c:667
-msgid "Training"
-msgstr "Eðitim"
-
-#: menus.c:668
-msgid "ICS Client"
-msgstr "ICS Ýstemcisi"
-
-#: menus.c:670
-#, fuzzy
-msgid "Machine Match"
-msgstr "Bilgisayar Siyah"
-
-#: menus.c:671
-msgid "Pause"
-msgstr "Duraklat"
-
-#: menus.c:676
-msgid "Accept"
-msgstr "Kabul et"
-
-#: menus.c:677
-msgid "Decline"
-msgstr "Red et"
-
-#: menus.c:678
-msgid "Rematch"
-msgstr ""
-
-#: menus.c:680
-#, fuzzy
-msgid "Call Flag"
-msgstr "Terk et"
-
-#: menus.c:681
-#, fuzzy
-msgid "Draw"
-msgstr "Berabere"
-
-#: menus.c:682
-msgid "Adjourn"
-msgstr "Ertele"
-
-#: menus.c:683
-msgid "Abort"
-msgstr ""
-
-#: menus.c:684
-msgid "Resign"
-msgstr ""
-
-#: menus.c:686
-msgid "Stop Observing"
-msgstr ""
-
-#: menus.c:687
-msgid "Stop Examining"
-msgstr ""
-
-#: menus.c:688
-msgid "Upload to Examine"
-msgstr ""
-
-#: menus.c:690
-msgid "Adjudicate to White"
-msgstr ""
-
-#: menus.c:691
-msgid "Adjudicate to Black"
-msgstr ""
-
-#: menus.c:692
-msgid "Adjudicate Draw"
-msgstr ""
-
-#: menus.c:697
-msgid "Edit Engine List..."
-msgstr ""
-
-#: menus.c:699
-msgid "Load New 1st Engine..."
-msgstr ""
-
-#: menus.c:700
-msgid "Load New 2nd Engine..."
-msgstr ""
-
-#: menus.c:702
-msgid "Engine #1 Settings..."
-msgstr ""
-
-#: menus.c:703
-msgid "Engine #2 Settings..."
-msgstr ""
-
-#: menus.c:704
-msgid "Common Settings..."
-msgstr ""
-
-#: menus.c:706
-msgid "Hint"
-msgstr "Ýpucu"
-
-#: menus.c:707
-msgid "Book"
-msgstr "Kitap"
-
-#: menus.c:709
-msgid "Move Now"
-msgstr ""
-
-#: menus.c:710
-#, fuzzy
-msgid "Retract Move"
-msgstr "Hamleyi Geri Al"
-
-#: menus.c:716
-msgid "General..."
-msgstr ""
-
-#: menus.c:718
-msgid "Time Control..."
-msgstr ""
-
-#: menus.c:719
-#, fuzzy
-msgid "Adjudications..."
-msgstr "Oyunu Kaydet"
-
-#: menus.c:720
-msgid "ICS..."
-msgstr ""
-
-#: menus.c:721
-msgid "Tournament..."
-msgstr ""
-
-#: menus.c:722
-#, fuzzy
-msgid "Load Game..."
-msgstr "Oyun Yükle"
-
-#: menus.c:723
-#, fuzzy
-msgid "Save Game..."
-msgstr "Oyunu Kaydet"
-
-#: menus.c:724
-#, fuzzy
-msgid "Game List..."
-msgstr "Oyun Listesini Göster"
-
-#: menus.c:725
-msgid "Sounds..."
-msgstr ""
-
-#: menus.c:728
-msgid "Always Queen"
-msgstr "Hep Vezir Olsun"
-
-#: menus.c:734
-msgid "Flash Moves"
-msgstr ""
-
-#: menus.c:736
-msgid "Highlight Dragging"
-msgstr ""
-
-#: menus.c:739
-msgid "Highlight With Arrow"
-msgstr ""
-
-#: menus.c:740
-msgid "Move Sound"
-msgstr ""
-
-#: menus.c:742
-msgid "Periodic Updates"
-msgstr ""
-
-#: menus.c:744
-msgid "Popup Exit Message"
-msgstr ""
-
-#: menus.c:746
-msgid "Show Coords"
-msgstr ""
-
-#: menus.c:747
-msgid "Hide Thinking"
-msgstr ""
-
-#: menus.c:751
-msgid "Save Settings Now"
-msgstr ""
-
-#: menus.c:752
-msgid "Save Settings on Exit"
-msgstr ""
-
-#: menus.c:757
-msgid "Info XBoard"
-msgstr "XBoard Info Sayfasý"
-
-#: menus.c:758
-#, fuzzy
-msgid "Man XBoard"
-msgstr "XBoard Man Sayfasý"
-
-#: menus.c:760
-msgid "XBoard Home Page"
-msgstr ""
-
-#: menus.c:761
-msgid "On-line User Guide"
-msgstr ""
-
-#: menus.c:762
-msgid "Development News"
-msgstr ""
-
-#: menus.c:763
-msgid "e-Mail Bug Report"
-msgstr ""
-
-#: menus.c:802
-msgid "File"
-msgstr "Dosya"
-
-#: menus.c:803
-#, fuzzy
-msgid "Edit"
-msgstr "Oyunu Düzenle"
-
-#: menus.c:804
-msgid "View"
-msgstr ""
-
-#: menus.c:805
-msgid "Mode"
-msgstr "Kip"
-
-#: menus.c:806
-msgid "Action"
-msgstr "Eylem"
-
-#: menus.c:807
-msgid "Engine"
-msgstr ""
-
-#: menus.c:808
-msgid "Options"
-msgstr "Seçenekler"
-
-#: menus.c:809
-msgid "Help"
-msgstr "Yardým"
-
-#: nengineoutput.c:79 nengineoutput.c:87
-msgid "engine name"
-msgstr ""
-
-#. TRANSLATORS: noun, as in "the move Nf3"
-#: nengineoutput.c:82 nengineoutput.c:90
-msgid "move"
-msgstr ""
-
-#: nengineoutput.c:156
-msgid "Engine output"
-msgstr ""
-
-#: nengineoutput.c:160
-msgid ""
-"Mismatch of STRIDE in nengineoutput.c\n"
-"Change and recompile!"
-msgstr ""
-
-#: nevalgraph.c:69
-msgid "Evaluation graph"
-msgstr ""
-
-#: nevalgraph.c:69
-msgid "Blunder graph"
-msgstr ""
-
-#: nevalgraph.c:107
-msgid "Blunder"
-msgstr ""
-
-#: nevalgraph.c:107
-msgid "Eval"
-msgstr ""
-
-#: ngamelist.c:87
-#, fuzzy
-msgid "find position"
-msgstr "Seçenekler"
-
-#: ngamelist.c:88
-msgid "narrow"
-msgstr ""
-
-#: ngamelist.c:89
-msgid "thresholds"
-msgstr ""
-
-#: ngamelist.c:90
-msgid "tags"
-msgstr ""
-
-#: ngamelist.c:91
-msgid "next"
-msgstr "sonraki"
-
-#: ngamelist.c:92
-msgid "close"
-msgstr "kapat"
-
-#: ngamelist.c:116
-msgid "No game selected"
-msgstr ""
-
-#: ngamelist.c:122
-msgid "Can't go forward any further"
-msgstr ""
-
-#: ngamelist.c:192
-#, c-format
-msgid "Scanning through games (%d)"
-msgstr ""
-
-#: ngamelist.c:211
-#, fuzzy
-msgid "previous page"
-msgstr "Önceki Oyunu Yükle"
-
-#: ngamelist.c:214
-#, fuzzy
-msgid "next page"
-msgstr "sonraki"
-
-#: ngamelist.c:217
-msgid "no games matched your request"
-msgstr ""
-
-#: ngamelist.c:219
-#, c-format
-msgid "%s - %d/%d games (%d-%d-%d)"
-msgstr ""
-
-#: ngamelist.c:284
-msgid "There is no game list"
-msgstr ""
-
-#: nhistory.c:109
-msgid "Move list"
-msgstr "Hamle listesi"
-
-#: usystem.c:223
-#, c-format
-msgid "%s: unrecognized color %s\n"
-msgstr ""
-
-#: usystem.c:231
-#, c-format
-msgid "%s: can't parse foreground color in '%s'\n"
-msgstr ""
-
-#: usystem.c:260
-#, c-format
-msgid "%s: can't parse color names; disabling colorization\n"
-msgstr ""
-
-#: usystem.c:362
-#, c-format
-msgid "ERROR: Unknown user %s (in path %s)\n"
-msgstr ""
-
-#: usystem.c:564
-msgid "Socket support is not configured in"
-msgstr ""
-
-#: usystem.c:653
-msgid "internal rcmd not implemented for Unix"
-msgstr ""
-
-#: xaw/xboard.c:1206
-#, c-format
-msgid "white pixel = 0x%lx, black pixel = 0x%lx\n"
-msgstr ""
-
-#: xaw/xoptions.c:378 xaw/xoptions.c:1082
-msgid "browse"
-msgstr ""
-
-#: xaw/xoptions.c:444 xaw/xoptions.c:445
-msgid "Ctrl"
-msgstr ""
-
-#: xaw/xoptions.c:450 xaw/xoptions.c:451
-msgid "Alt"
-msgstr ""
-
-#: xaw/xoptions.c:456 xaw/xoptions.c:457
-msgid "Shift"
-msgstr ""
-
-#, fuzzy
-#~ msgid "Match Options"
-#~ msgstr "Seçenekler"
-
-#~ msgid "cancel"
-#~ msgstr "iptal"
-
-#, fuzzy
-#~ msgid "Load Position    Ctrl+Shift+O"
-#~ msgstr "Pozisyon Yükle"
-
-#, fuzzy
-#~ msgid "Save Position    Ctrl+Shift+S"
-#~ msgstr "Pozisyonu Kaydet"
-
-#, fuzzy
-#~ msgid "Copy Game    Ctrl+C"
-#~ msgstr "Oyunu Kopyala"
-
-#, fuzzy
-#~ msgid "Paste Game    Ctrl+V"
-#~ msgstr "Oyunu Yapýþtýr"
-
-#, fuzzy
-#~ msgid "Paste Position Ctrl+Shift+V"
-#~ msgstr "Pozisyonu Yapýþtýr"
-
-#, fuzzy
-#~ msgid "Edit Game      Ctrl+E"
-#~ msgstr "Oyunu Düzenle"
-
-#, fuzzy
-#~ msgid "Edit Position   Ctrl+Shift+E"
-#~ msgstr "Pozisyonu Düzenle"
-
-#, fuzzy
-#~ msgid "Machine Black  Ctrl+B"
-#~ msgstr "Bilgisayar Siyah"
-
-#~ msgid "Can't open file"
-#~ msgstr "Dosya açýlamýyor"
-
-#~ msgid "Promotion"
-#~ msgstr "Terfi"
-
-#, fuzzy
-#~ msgid "Promote to what?"
-#~ msgstr "Piyon hangi taþa terfi edilsin?"
-
-#~ msgid "ok"
-#~ msgstr "tamam"
-
-#~ msgid "enter"
-#~ msgstr "gir"
-
-#~ msgid "load"
-#~ msgstr "yükle"
-
-#~ msgid "prev"
-#~ msgstr "önceki"
-
-#~ msgid "White "
-#~ msgstr "Beyaz "
-
-#~ msgid "Black "
-#~ msgstr "Siyah "
-
-#~ msgid "Close"
-#~ msgstr "Kapat"
-
-#, fuzzy
-#~ msgid "             "
-#~ msgstr "Terk et"
-
-#~ msgid "Reload Same Game"
-#~ msgstr "Ayný Oyunu Tekrar Yükle"
-
-#~ msgid "Exit"
-#~ msgstr "Çýk"
-
-#~ msgid "Step"
-#~ msgstr "Adým"
-
-#~ msgid "P"
-#~ msgstr "D"
-
-#~ msgid "edit"
-#~ msgstr "düzenle"
diff --git a/po/uk.po b/po/uk.po
deleted file mode 100644 (file)
index 0f5ada8..0000000
--- a/po/uk.po
+++ /dev/null
@@ -1,3505 +0,0 @@
-# Ukrainian translation for xboard.
-# Copyright (C) 2011 Free Software Foundation, Inc.
-# This file is distributed under the same license as the xboard package.
-#
-# Yuri Chornoivan <yurchor@ukr.net>, 2011, 2012, 2013, 2014, 2016.
-msgid ""
-msgstr ""
-"Project-Id-Version: GNU xboard-4.9.0-pre2\n"
-"Report-Msgid-Bugs-To: bug-xboard@gnu.org\n"
-"POT-Creation-Date: 2016-04-03 13:44-0700\n"
-"PO-Revision-Date: 2016-04-04 19:49+0300\n"
-"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
-"Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
-"Language: uk\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Lokalize 1.5\n"
-"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-
-#: args.h:851
-#, c-format
-msgid "%s in settings file\n"
-msgstr "%s у файлі параметрів\n"
-
-#: args.h:885
-#, c-format
-msgid "Bad integer value %s"
-msgstr "Помилкове ціле значення %s"
-
-#: args.h:991 args.h:1252
-#, c-format
-msgid "Unrecognized argument %s"
-msgstr "Невідомий аргумент %s"
-
-#: args.h:1022
-#, c-format
-msgid "No value provided for argument %s"
-msgstr "Не вказано значення для аргументу %s"
-
-#: args.h:1082
-#, c-format
-msgid "Incomplete \\ escape in value for %s"
-msgstr "Неповне екранування \\ у значенні для %s"
-
-#: args.h:1193
-#, c-format
-msgid "Failed to open indirection file %s"
-msgstr "Не вдалося відкрити файл переспрямування %s"
-
-#: args.h:1210
-#, c-format
-msgid "Unrecognized boolean argument value %s"
-msgstr "Невідоме значення булевого аргументу %s"
-
-#. TRANSLATORS: "first" is the first of possible two chess engines. It is inserted into strings
-#. such as "%s engine" / "%s chess program" / "%s machine" - all meaning the same thing
-#: backend.c:811
-msgid "first"
-msgstr "перший"
-
-#. TRANSLATORS: "second" is the second of possible two chess engines. It is inserted into strings
-#. such as "%s engine" / "%s chess program" / "%s machine" - all meaning the same thing
-#: backend.c:814
-msgid "second"
-msgstr "другий"
-
-#: backend.c:897
-#, c-format
-msgid "protocol version %d not supported"
-msgstr "підтримки версії протоколу %d не передбачено"
-
-#: backend.c:1004
-msgid "You did not specify the engine executable"
-msgstr "Вами не вказано виконуваного файла рушія"
-
-#: backend.c:1062
-#, c-format
-msgid "bad timeControl option %s"
-msgstr "помилковий параметр timeControl %s"
-
-#: backend.c:1077
-#, c-format
-msgid "bad searchTime option %s"
-msgstr "помилковий параметр searchTime %s"
-
-#: backend.c:1183
-#, c-format
-msgid "Variant %s supported only in ICS mode"
-msgstr "Підтримку варіанта %s передбачено лише у режимі ICS"
-
-#: backend.c:1201
-#, c-format
-msgid "Unknown variant name %s"
-msgstr "Невідома назва варіанта %s"
-
-#: backend.c:1456
-msgid "Starting chess program"
-msgstr "Запуск шахової програми"
-
-#: backend.c:1479
-msgid "Bad game file"
-msgstr "Помилковий файл гри"
-
-#: backend.c:1486
-msgid "Bad position file"
-msgstr "Помилковий файл позиції"
-
-#: backend.c:1500
-msgid "Pick new game"
-msgstr "Виберіть нову гру"
-
-#: backend.c:1569
-msgid ""
-"You restarted an already completed tourney.\n"
-"One more cycle will now be added to it.\n"
-"Games commence in 10 sec."
-msgstr ""
-"Вами перезапущено вже завершений турнір.\n"
-"Тепер до турніру буде додано ще одне коло.\n"
-"Ігри розпочнуться за 10 секунд."
-
-#: backend.c:1576
-#, c-format
-msgid "All games in tourney '%s' are already played or playing"
-msgstr "Всі ігри турніру «%s» вже зіграно або вже розпочато"
-
-#: backend.c:1583
-msgid "Can't have a match with no chess programs"
-msgstr "Не можна розпочати матч, якщо не встановлено шахових програм"
-
-#: backend.c:1637
-#, c-format
-msgid "Could not open comm port %s"
-msgstr "Не вдалося відкрити порт comm %s"
-
-#: backend.c:1640
-#, c-format
-msgid "Could not connect to host %s, port %s"
-msgstr "Не вдалося з’єднатися з вузлом %s, порт %s"
-
-#: backend.c:1696
-#, c-format
-msgid "Unknown initialMode %s"
-msgstr "Невідоме значення initialMode %s"
-
-#: backend.c:1722
-msgid "AnalyzeFile mode requires a game file"
-msgstr "У режимі аналізу файла потрібен файл гри"
-
-#: backend.c:1755
-msgid "Analysis mode requires a chess engine"
-msgstr "У режимі аналізу потрібен шаховий рушій"
-
-#: backend.c:1759
-msgid "Analysis mode does not work with ICS mode"
-msgstr "Робота режиму разом з режимом ICS неможлива"
-
-#: backend.c:1770
-msgid "MachineWhite mode requires a chess engine"
-msgstr "У режимі гри комп’ютера білими потрібен шаховий рушій"
-
-#: backend.c:1775
-msgid "MachineWhite mode does not work with ICS mode"
-msgstr "Робота режиму гри комп’ютером білими разом з режимом ICS неможлива"
-
-#: backend.c:1782
-msgid "MachineBlack mode requires a chess engine"
-msgstr "У режимі гри комп’ютера чорними потрібен шаховий рушій"
-
-#: backend.c:1787
-msgid "MachineBlack mode does not work with ICS mode"
-msgstr "Робота режиму гри комп’ютером білими разом з режимом ICS неможлива"
-
-#: backend.c:1794
-msgid "TwoMachines mode requires a chess engine"
-msgstr "Режимом гри між двома комп’ютерами можна скористатися, лише якщо встановлено шаховий рушій"
-
-#: backend.c:1799
-msgid "TwoMachines mode does not work with ICS mode"
-msgstr "Робота режиму гри між двома комп’ютерами разом з режимом ICS неможлива"
-
-#: backend.c:1810
-msgid "Training mode requires a game file"
-msgstr "У режимі тренування потрібен файл гри"
-
-#: backend.c:1973 backend.c:2028 backend.c:2051 backend.c:2453
-msgid "Error writing to ICS"
-msgstr "Помилка під час спроби запису до ICS"
-
-#: backend.c:1988
-msgid "Error reading from keyboard"
-msgstr "Помилка під час читання даних з клавіатури"
-
-#: backend.c:1991
-msgid "Got end of file from keyboard"
-msgstr "Отримано символ кінця файла з клавіатури"
-
-#: backend.c:2299
-#, c-format
-msgid "Unknown wild type %d"
-msgstr "Невідомий «дикий» тип %d"
-
-#: backend.c:2370 usystem.c:317
-msgid "Error writing to display"
-msgstr "Помилка запису на дисплей"
-
-#. TRANSLATORS: to 'kibitz' is to send a message to all players and the game observers
-#: backend.c:3138
-#, c-format
-msgid "your opponent kibitzes: %s"
-msgstr "втручання вашого суперника: %s"
-
-#: backend.c:3677
-msgid "Error gathering move list: two headers"
-msgstr "Помилка під час збирання списку ходів: два заголовки"
-
-#: backend.c:3724
-msgid "Error gathering move list: nested"
-msgstr "Помилка під час збирання списку ходів: вкладеність"
-
-#: backend.c:3828 backend.c:4254 backend.c:4458 backend.c:5017 backend.c:5021
-#: backend.c:7292 backend.c:13054 backend.c:14805 backend.c:14882
-#: backend.c:14928 backend.c:14934 backend.c:14939 backend.c:14944
-msgid "vs."
-msgstr "проти"
-
-#: backend.c:3956
-msgid "Illegal move (rejected by ICS)"
-msgstr "Некоректний хід (заборонено ICS)"
-
-#: backend.c:4302
-msgid "Connection closed by ICS"
-msgstr "З’єднання розірвано з боку ICS"
-
-#: backend.c:4304
-msgid "Error reading from ICS"
-msgstr "Помилка під час спроби читання з ICS"
-
-#: backend.c:4381
-#, c-format
-msgid ""
-"Failed to parse board string:\n"
-"\"%s\""
-msgstr ""
-"Не вдалося обробити рядок дошки:\n"
-"\"%s\""
-
-#: backend.c:4390 backend.c:10628
-msgid "Game too long; increase MAX_MOVES and recompile"
-msgstr "Гра є занадто довгою. Збільшіть значення MAX_MOVES і перезберіть програму."
-
-#: backend.c:4509
-msgid "Error gathering move list: extra board"
-msgstr "Помилка під час збирання списку ходів: вихід за межі дошки"
-
-#: backend.c:4941 backend.c:4963
-#, c-format
-msgid "Couldn't parse move \"%s\" from ICS"
-msgstr "Не вдалося обробити хід «%s» з ICS"
-
-#: backend.c:5228
-#, c-format
-msgid "say Internal error; bad moveType %d (%d,%d-%d,%d)"
-msgstr "say Internal error; bad moveType %d (%d,%d-%d,%d)"
-
-#: backend.c:5299
-msgid "You cannot do this while you are playing or observing"
-msgstr "Ця дія неможлива у режимі гри або спостереження"
-
-#: backend.c:6359
-msgid "Recompile to support this BOARD_RANKS or BOARD_FILES!"
-msgstr "Повторно зберіть програму з підтримкою цих значень BOARD_RANKS і BOARD_FILES!"
-
-#: backend.c:6851
-msgid "You are playing Black"
-msgstr "Ви граєте чорними"
-
-#: backend.c:6860 backend.c:6888
-msgid "You are playing White"
-msgstr "Ви граєте білими"
-
-#: backend.c:6870 backend.c:6896 backend.c:7018 backend.c:7043 backend.c:7059
-#: backend.c:15645
-msgid "It is White's turn"
-msgstr "Хід білих"
-
-#: backend.c:6874 backend.c:6900 backend.c:7026 backend.c:7049 backend.c:7081
-#: backend.c:15637
-msgid "It is Black's turn"
-msgstr "Хід чорних"
-
-#: backend.c:6913
-msgid "Displayed position is not current"
-msgstr "Показана позиція не є поточною"
-
-#: backend.c:7116
-msgid "rights granted"
-msgstr "права надано"
-
-#: backend.c:7116
-msgid "rights revoked"
-msgstr "права відкликано"
-
-#: backend.c:7169
-msgid "Illegal move"
-msgstr "Недозволений хід"
-
-#: backend.c:7249
-msgid "End of game"
-msgstr "Кінець гри"
-
-#: backend.c:7252
-msgid "Incorrect move"
-msgstr "Некоректний хід"
-
-#: backend.c:7655 backend.c:7811
-msgid "Pull pawn backwards to under-promote"
-msgstr "Потягніть пішака назад, щоб знизити ранг фігури"
-
-#: backend.c:7772
-msgid "only marked squares are legal"
-msgstr "правилами дозволено лише позначені клітинки"
-
-#: backend.c:8093
-msgid "Swiss tourney finished"
-msgstr "Турнір за швейцарською системою завершено"
-
-#: backend.c:8609
-msgid "could not load EGBB library"
-msgstr "не вдалося завантажити бібліотеку EGBB"
-
-#: backend.c:8612
-msgid "wrong EGBB version"
-msgstr "помилкова версія EGBB"
-
-#: backend.c:8725
-msgid "Invalid pairing from pairing engine"
-msgstr "Рушієм визначення пар повернуто некоректне значення пари"
-
-#: backend.c:8892
-#, c-format
-msgid "Illegal move \"%s\" from %s machine"
-msgstr "Некоректний хід «%s» від комп’ютера %s"
-
-#: backend.c:9179
-msgid "Bad FEN received from engine"
-msgstr "Отримано помилкові дані FEN від рушія"
-
-#: backend.c:9280
-msgid "Engine did not send setup for non-standard variant"
-msgstr "Рушієм не надіслано налаштувань для нестандартного варіанта"
-
-#: backend.c:9358 backend.c:14667 backend.c:14735
-#, c-format
-msgid "%s does not support analysis"
-msgstr "У %s не передбачено аналізу"
-
-#: backend.c:9424
-#, c-format
-msgid "Illegal move \"%s\" (rejected by %s chess program)"
-msgstr "Недозволений хід «%s» (у реєстрації ходу відмовлено шаховою програмою %s)"
-
-#: backend.c:9455
-#, c-format
-msgid "Failed to start %s chess program %s on %s: %s\n"
-msgstr "Не вдалося запустити шахову програму %s %s на %s: %s\n"
-
-#: backend.c:9476
-#, c-format
-msgid "Hint: %s"
-msgstr "Підказка: %s"
-
-#: backend.c:9481
-#, c-format
-msgid ""
-"Illegal hint move \"%s\"\n"
-"from %s chess program"
-msgstr ""
-"Некоректна підказка щодо ходу «%s»\n"
-"від шахової програми %s"
-
-#: backend.c:9656
-msgid "Machine accepts your draw offer"
-msgstr "Ком’ютер погодився з вашою пропозицією нічиєї"
-
-#: backend.c:9659
-msgid ""
-"Machine offers a draw.\n"
-"Select Action / Draw to accept."
-msgstr ""
-"Комп’ютером запропоновано нічию\n"
-"Скористайтеся пунктом меню «Дія->Нічия», щоб погодитися."
-
-#. TRANSLATORS: PV = principal variation, the variation the chess engine thinks is the best for everyone
-#: backend.c:9777
-msgid "failed writing PV"
-msgstr "не вдалося записати PV"
-
-#: backend.c:10083
-#, c-format
-msgid "Ambiguous move in ICS output: \"%s\""
-msgstr "Неоднозначний хід у виведених ICS даних: «%s»"
-
-#: backend.c:10093
-#, c-format
-msgid "Illegal move in ICS output: \"%s\""
-msgstr "Некоректний хід у виведених даних ICS: «%s»"
-
-#: backend.c:10104
-msgid "Gap in move list"
-msgstr "Пропущено хід у списку ходів"
-
-#: backend.c:10782
-#, c-format
-msgid "Variant %s not supported by %s"
-msgstr "Варіант %s не підтримується %s"
-
-#: backend.c:10789
-#, c-format
-msgid ", but %s is"
-msgstr ", але %s"
-
-#: backend.c:10945
-#, c-format
-msgid "Startup failure on '%s'"
-msgstr "Помилка запуску на «%s»"
-
-#: backend.c:10976
-msgid "Waiting for first chess program"
-msgstr "Очікування на запуск першої шахової програми"
-
-#: backend.c:10981 backend.c:14953
-msgid "Waiting for second chess program"
-msgstr "Очікування на запуск другої шахової програми"
-
-#: backend.c:11030
-msgid "Could not write on tourney file"
-msgstr "Не вдалося виконати запис до файла турніру"
-
-#: backend.c:11104
-msgid ""
-"You cannot replace an engine while it is engaged!\n"
-"Terminate its game first."
-msgstr ""
-"Не можна міняти рушій, який зараз використовується!\n"
-"Спочатку перервіть гру."
-
-#: backend.c:11118
-msgid "No engine with the name you gave is installed"
-msgstr "Рушія з вказаною вами назвою не встановлено"
-
-#: backend.c:11120
-msgid ""
-"First change an engine by editing the participants list\n"
-"of the Tournament Options dialog"
-msgstr ""
-"Спочатку змініть рушій редагуванням списку учасників турніру\n"
-"у діалоговому вікні «Параметри турніру»"
-
-#: backend.c:11121
-msgid "You can only change one engine at the time"
-msgstr "Одночасно змінювати можна лише один рушій"
-
-#: backend.c:11136 backend.c:11285
-#, c-format
-msgid "No engine %s is installed"
-msgstr "Не встановлено жодного рушія %s"
-
-#: backend.c:11156
-msgid ""
-"You must supply a tournament file,\n"
-"for storing the tourney progress"
-msgstr ""
-"Для запису результатів турніру\n"
-"вам слід вказати файл турніру."
-
-#: backend.c:11166
-msgid "Not enough participants"
-msgstr "Недостатньо учасників"
-
-#: backend.c:11369
-msgid "Bad tournament file"
-msgstr "Помилковий файл турніру"
-
-#: backend.c:11381
-msgid "Waiting for other game(s)"
-msgstr "Очікування на результати інших ігор"
-
-#: backend.c:11394
-msgid "No pairing engine specified"
-msgstr "Не вказано рушія визначення пар"
-
-#: backend.c:11879
-#, c-format
-msgid "Average solving time %4.2f sec (total time %4.2f sec) "
-msgstr "Середній час розв’язування — %4.2f сек. (загальний час — %4.2f сек.) "
-
-#: backend.c:11881
-#, c-format
-msgid "%d avoid-moves played "
-msgstr "зіграно %d небажаних ходів "
-
-#: backend.c:11883
-#, c-format
-msgid "Solved %d out of %d (%3.1f%%) "
-msgstr "Розв’язано %d з %d (%3.1f%%) "
-
-#: backend.c:11886
-#, c-format
-msgid "Match %s vs. %s: final score %d-%d-%d"
-msgstr "Матч між %s і %s: остаточний рахунок — %d-%d-%d"
-
-#: backend.c:12363 backend.c:12399
-#, c-format
-msgid "Illegal move: %d.%s%s"
-msgstr "Недозволений хід: %d.%s%s"
-
-#: backend.c:12388
-#, c-format
-msgid "Ambiguous move: %d.%s%s"
-msgstr "Неоднозначний хід: %d.%s%s"
-
-#: backend.c:12442 backend.c:13495 backend.c:13695 backend.c:14065
-#, c-format
-msgid "Can't open \"%s\""
-msgstr "Не вдалося відкрити «%s»"
-
-#: backend.c:12454 menus.c:118
-msgid "Cannot build game list"
-msgstr "Не вдалося побудувати список ігор"
-
-#: backend.c:12539
-msgid "No more games in this message"
-msgstr "У цьому повідомленні більше немає результатів ігор"
-
-#: backend.c:12579
-msgid "No game has been loaded yet"
-msgstr "Ще не завантажено жодної гри"
-
-#: backend.c:12583 backend.c:13476 ngamelist.c:129
-msgid "Can't back up any further"
-msgstr "Подальше створення резервних копій неможливе"
-
-#: backend.c:13030
-msgid "Game number out of range"
-msgstr "Номер гри поза доступним діапазоном"
-
-#: backend.c:13041
-msgid "Can't seek on game file"
-msgstr "Пошук у файлі гри неможливий"
-
-#: backend.c:13099
-msgid "Game not found in file"
-msgstr "У файлі немає даних щодо гри"
-
-#: backend.c:13230 backend.c:13573
-msgid "Bad FEN position in file"
-msgstr "Помилкова позиція FEN у файлі"
-
-#: backend.c:13388
-msgid "No moves in game"
-msgstr "У записі гри немає жодного ходу"
-
-#: backend.c:13472
-msgid "No position has been loaded yet"
-msgstr "Жодної з позицій ще не завантажено"
-
-#: backend.c:13533 backend.c:13544
-msgid "Can't seek on position file"
-msgstr "Пошук у файлі позицій неможливий"
-
-#: backend.c:13551 backend.c:13563
-msgid "Position not found in file"
-msgstr "У файлі не знайдено позиції"
-
-#: backend.c:13610
-msgid "Black to play"
-msgstr "Хід чорних"
-
-#: backend.c:13613
-msgid "White to play"
-msgstr "Хід білих"
-
-#: backend.c:13700 backend.c:14070
-msgid "Waiting for access to save file"
-msgstr "Очікування на доступ до можливості збереження файла"
-
-#: backend.c:13702
-msgid "Saving game"
-msgstr "Збереження гри"
-
-#: backend.c:13703
-msgid "Bad Seek"
-msgstr "Помилкове позиціювання"
-
-#: backend.c:14072
-msgid "Saving position"
-msgstr "Збереження позиції"
-
-#: backend.c:14198
-msgid ""
-"You have edited the game history.\n"
-"Use Reload Same Game and make your move again."
-msgstr ""
-"Вами внесено зміни до журналу гри.\n"
-"Скористайтеся пунктом «Перезавантажити гру» і повторіть ваш хід."
-
-#: backend.c:14203
-msgid ""
-"You have entered too many moves.\n"
-"Back up to the correct position and try again."
-msgstr ""
-"Вами введено занадто багато ходів.\n"
-"Поверніться до правильної позиції і повторіть спробу."
-
-#: backend.c:14208
-msgid ""
-"Displayed position is not current.\n"
-"Step forward to the correct position and try again."
-msgstr ""
-"Показана позиція не є поточною.\n"
-"Продовжіть гру, щоб виправити позицію і повторіть спробу."
-
-#: backend.c:14255
-msgid "You have not made a move yet"
-msgstr "Вами ще не зроблено жодного ходу"
-
-#: backend.c:14276
-msgid ""
-"The cmail message is not loaded.\n"
-"Use Reload CMail Message and make your move again."
-msgstr ""
-"Повідомлення cmail не завантажено.\n"
-"Скористайтеся пунктом «Перезавантажити повідомлення CMail» і повторіть ваш хід."
-
-#: backend.c:14281
-msgid "No unfinished games"
-msgstr "Немає незавершених ігор"
-
-#: backend.c:14287
-#, c-format
-msgid ""
-"You have already mailed a move.\n"
-"Wait until a move arrives from your opponent.\n"
-"To resend the same move, type\n"
-"\"cmail -remail -game %s\"\n"
-"on the command line."
-msgstr ""
-"Ви вже надіслали хід поштою.\n"
-"Зачекайте, доки буде отримано хід від вашого суперника.\n"
-"Щоб повторно надіслати той самий хід, віддайте команду\n"
-"\"cmail -remail -game %s\"\n"
-"у командному рядку."
-
-#: backend.c:14302
-msgid "Failed to invoke cmail"
-msgstr "Не вдалося викликати cmail"
-
-#: backend.c:14364
-#, c-format
-msgid "Waiting for reply from opponent\n"
-msgstr "Очікування на відповідь від суперника\n"
-
-#: backend.c:14386
-#, c-format
-msgid "Still need to make move for game\n"
-msgstr "Слід зробити хід у грі\n"
-
-#: backend.c:14390
-#, c-format
-msgid "Still need to make moves for both games\n"
-msgstr "Слід зробити ходити у обох іграх\n"
-
-#: backend.c:14394
-#, c-format
-msgid "Still need to make moves for all %d games\n"
-msgstr "Слід зробити ходити у всіх %d іграх\n"
-
-#: backend.c:14401
-#, c-format
-msgid "Still need to make a move for game %s\n"
-msgstr "Слід зробити хід у грі %s\n"
-
-#: backend.c:14407
-#, c-format
-msgid "No unfinished games\n"
-msgstr "Немає незавершених ігор\n"
-
-#: backend.c:14409
-#, c-format
-msgid "Ready to send mail\n"
-msgstr "Програма готова до надсилання пошти\n"
-
-#: backend.c:14414
-#, c-format
-msgid "Still need to make moves for games %s\n"
-msgstr "Слід зробити ходи у іграх %s\n"
-
-#: backend.c:14617
-msgid "Edit comment"
-msgstr "Редагувати коментар"
-
-#: backend.c:14619
-#, c-format
-msgid "Edit comment on %d.%s%s"
-msgstr "Змінити коментар щодо %d.%s%s"
-
-#: backend.c:14674
-#, c-format
-msgid "You are not observing a game"
-msgstr "Ви не спостерігаєте за грою"
-
-#: backend.c:14785
-msgid "It is not White's turn"
-msgstr "Зараз хід чорних"
-
-#: backend.c:14866
-msgid "It is not Black's turn"
-msgstr "Зараз хід білих"
-
-#: backend.c:14974
-#, c-format
-msgid "Starting %s chess program"
-msgstr "Запуск шахової програми %s"
-
-#: backend.c:15002 backend.c:16189
-msgid ""
-"Wait until your turn,\n"
-"or select 'Move Now'."
-msgstr ""
-"Зачекайте на ваш хід або\n"
-"виберіть пункт «Ходити»."
-
-#: backend.c:15145
-msgid "Training mode off"
-msgstr "Режим тренування вимкнено"
-
-#: backend.c:15153
-msgid "Training mode on"
-msgstr "Режим тренування увімкнено"
-
-#: backend.c:15156
-msgid "Already at end of game"
-msgstr "Гру вже завершено"
-
-#: backend.c:15246
-msgid "Warning: You are still playing a game"
-msgstr "Попередження: гра ще триває"
-
-#: backend.c:15249
-msgid "Warning: You are still observing a game"
-msgstr "Попередження: ви ще продовжуєте спостерігати за грою"
-
-#: backend.c:15252
-msgid "Warning: You are still examining a game"
-msgstr "Попередження: ви ще вивчаєте гру"
-
-#: backend.c:15322
-msgid "Click clock to clear board"
-msgstr "Клацніть на годиннику, щоб спорожнити дошку"
-
-#: backend.c:15332
-msgid "Close ICS engine analyze..."
-msgstr "Завершити процес аналізу рушія ICS…"
-
-#: backend.c:15662
-msgid "That square is occupied"
-msgstr "Цю клітинку зайнято"
-
-#: backend.c:15686 backend.c:15712
-msgid "There is no pending offer on this move"
-msgstr "У черзі немає пропозицій щодо цього ходу"
-
-#: backend.c:15748 backend.c:15759
-msgid "Your opponent is not out of time"
-msgstr "У вашого суперника ще залишився час"
-
-#: backend.c:15827
-msgid "You must make your move before offering a draw"
-msgstr "Перш ніж запропонувати нічию, вам слід зробити хід"
-
-#: backend.c:16171
-msgid "You are not examining a game"
-msgstr "Ви не вивчаєте гру"
-
-#: backend.c:16175
-msgid "You can't revert while pausing"
-msgstr "Скасовувати ходи у призупиненій грі не можна"
-
-#: backend.c:16229 backend.c:16236
-msgid "It is your turn"
-msgstr "Ваш хід"
-
-#: backend.c:16287 backend.c:16294 backend.c:16380 backend.c:16387
-msgid "Wait until your turn."
-msgstr "Очікувати на ваш хід."
-
-#: backend.c:16299
-msgid "No hint available"
-msgstr "Немає підказки"
-
-#: backend.c:16314 backend.c:16345 ngamelist.c:365
-msgid "Game list not loaded or empty"
-msgstr "Список гри не завантажено або цей список є порожнім"
-
-#: backend.c:16352
-msgid "Book file exists! Try again for overwrite."
-msgstr "Файл книги вже існує! Повторіть спробу, щоб перезаписати його."
-
-#: backend.c:16833
-#, c-format
-msgid "Error writing to %s chess program"
-msgstr "Помилка під час спроби запису даних до шахової програми %s"
-
-#: backend.c:16836 backend.c:16867
-#, c-format
-msgid "%s program exits in draw position (%s)"
-msgstr "Програма %s завершила роботу у нічийній позиції (%s)"
-
-#: backend.c:16862
-#, c-format
-msgid "Error: %s chess program (%s) exited unexpectedly"
-msgstr "Помилка: шахова програма %s (%s) несподівано завершила роботу"
-
-#: backend.c:16880
-#, c-format
-msgid "Error reading from %s chess program (%s)"
-msgstr "Помилка під час спроби читання даних з шахової програми %s (%s)"
-
-#: backend.c:17312
-#, c-format
-msgid "%s engine has too many options\n"
-msgstr "Для рушія %s передбачено занадто багато параметрів\n"
-
-#: backend.c:17468
-msgid "Displayed move is not current"
-msgstr "Показаний хід не є поточним"
-
-#: backend.c:17477
-msgid "Could not parse move"
-msgstr "Не вдалося обробити хід"
-
-#: backend.c:17602 backend.c:17624
-msgid "Both flags fell"
-msgstr "Обидва прапорці впали"
-
-#: backend.c:17604
-msgid "White's flag fell"
-msgstr "Прапорець білих впав"
-
-#: backend.c:17626
-msgid "Black's flag fell"
-msgstr "Прапорець чорних впав"
-
-#: backend.c:17757
-msgid "Clock adjustment not allowed in auto-flag mode"
-msgstr "Коригування годинника у режимі автоматичних прапорців заборонене"
-
-#: backend.c:18719
-msgid "Bad FEN position in clipboard"
-msgstr "Помилкова позиція FEN у буфері обміну"
-
-#: book.c:598 book.c:874
-msgid "Polyglot book not valid"
-msgstr "Некоректна бібліотека позицій"
-
-#: book.c:722
-msgid "Book Fault"
-msgstr "Помилка бібліотеки позицій"
-
-#: book.c:877
-msgid "Hash keys are different"
-msgstr "Ключі хешів не збігаються"
-
-#: book.c:1053
-msgid "Could not create book"
-msgstr "Не вдалося створити книгу"
-
-#: dialogs.c:286
-msgid "Tournament file:          "
-msgstr "Файл турніру:             "
-
-#: dialogs.c:287
-msgid "For concurrent playing of tourney with multiple XBoards:"
-msgstr "Для сумісної турнірної гри з декількома XBoard:"
-
-#: dialogs.c:288
-msgid "Sync after round"
-msgstr "Синхронізувати після рауду"
-
-#: dialogs.c:289
-msgid "Sync after cycle"
-msgstr "Синхронізувати після кола"
-
-#: dialogs.c:290
-msgid "Tourney participants:"
-msgstr "Учасники турніру:"
-
-#: dialogs.c:291
-msgid "Select Engine:"
-msgstr "Виберіть рушій:"
-
-#: dialogs.c:299
-msgid "Tourney type (0 = round-robin, 1 = gauntlet):"
-msgstr "Система турніру (0 = кругова, 1 = почергова):"
-
-#: dialogs.c:300
-msgid "Number of tourney cycles (or Swiss rounds):"
-msgstr "Кількість кіл турніру (швейцарських раундів):"
-
-#: dialogs.c:301
-msgid "Default Number of Games in Match (or Pairing):"
-msgstr "Типова кількість ігор у матчі:"
-
-#: dialogs.c:302
-msgid "Pause between Match Games (msec):"
-msgstr "Проміжок між іграми у матчі (у мілісекундах):"
-
-#: dialogs.c:303
-msgid "Save Tourney Games on:"
-msgstr "Зберігати ігри турніру до:"
-
-#: dialogs.c:304
-msgid "Game File with Opening Lines:"
-msgstr "Файл гри з початковими рядками:"
-
-#: dialogs.c:305
-msgid "Game Number (-1 or -2 = Auto-Increment):"
-msgstr "Номер гри (-1 або -2 = автоматичне збільшення):"
-
-#: dialogs.c:306
-msgid "File with Start Positions:"
-msgstr "Файл з початковими позиціями:"
-
-#: dialogs.c:307
-msgid "Position Number (-1 or -2 = Auto-Increment):"
-msgstr "Номер позиції (-1 або -2 = автоматичне збільшення):"
-
-#: dialogs.c:308
-msgid "Rewind Index after this many Games (0 = never):"
-msgstr "Відновлювати початковий номер після вказаної кількості ігор (0=ніколи):"
-
-#: dialogs.c:309
-msgid "Disable own engine books by default"
-msgstr "Типово вимкнути власні бібліотеки позицій рушія"
-
-#: dialogs.c:310 dialogs.c:1840
-msgid "Time Control"
-msgstr "Керування часом"
-
-#: dialogs.c:311
-msgid "Common Engine"
-msgstr "Загальний рушій"
-
-#: dialogs.c:312 dialogs.c:446
-msgid "General Options"
-msgstr "Загальні параметри"
-
-#: dialogs.c:313
-msgid "Continue Later"
-msgstr "Продовжити пізніше"
-
-#: dialogs.c:314
-msgid "Replace Engine"
-msgstr "Замінити рушій"
-
-#: dialogs.c:315
-msgid "Upgrade Engine"
-msgstr "Оновити рушій"
-
-#: dialogs.c:316
-msgid "Clone Tourney"
-msgstr "Клонувати турнір"
-
-#: dialogs.c:356
-msgid "First you must specify an existing tourney file to clone"
-msgstr "Спочатку вам слід вказати вже створений файл турніру для клонування"
-
-#: dialogs.c:372 dialogs.c:1549
-msgid "# no engines are installed"
-msgstr "# не встановлено жодного рушія"
-
-#: dialogs.c:380
-msgid "Internal error: PARTICIPANTS set wrong"
-msgstr "Внутрішня помилка: встановлено помилкове значення PARTICIPANTS"
-
-#: dialogs.c:388
-msgid "Tournament Options"
-msgstr "Параметри турніру"
-
-#: dialogs.c:407
-msgid "Absolute Analysis Scores"
-msgstr "Абсолютні оцінки аналізу"
-
-#: dialogs.c:408
-msgid "Almost Always Queen (Detour Under-Promote)"
-msgstr "Майже завжди королева (відхиляти неповні перетворення)"
-
-#: dialogs.c:409 menus.c:729
-msgid "Animate Dragging"
-msgstr "Анімація перетягування"
-
-#: dialogs.c:410 menus.c:730
-msgid "Animate Moving"
-msgstr "Анімація ходів"
-
-#: dialogs.c:411 menus.c:731
-msgid "Auto Flag"
-msgstr "Автопрапорець"
-
-#: dialogs.c:412 menus.c:732
-msgid "Auto Flip View"
-msgstr "Автоматичне обертання дошки"
-
-#: dialogs.c:413 menus.c:733
-msgid "Blindfold"
-msgstr "Наосліп"
-
-#. TRANSLATORS: the drop menu is used to drop a piece, e.g. during bughouse or editing a position
-#: dialogs.c:415
-msgid "Drop Menu"
-msgstr "Спадне меню"
-
-#: dialogs.c:416
-msgid "Enable Variation Trees"
-msgstr "Увімкнути дерево варіантів"
-
-#: dialogs.c:417
-msgid "Headers in Engine Output Window"
-msgstr "Заголовки у вікні виведення рушія"
-
-#: dialogs.c:418
-msgid "Hide Thinking from Human"
-msgstr "Приховувати обмірковування від людини"
-
-#: dialogs.c:419 menus.c:738
-msgid "Highlight Last Move"
-msgstr "Позначати останній хід"
-
-#: dialogs.c:420
-msgid "Highlight with Arrow"
-msgstr "Позначити за допомогою стрілки"
-
-#: dialogs.c:421 menus.c:741
-msgid "One-Click Moving"
-msgstr "Хід у одне клацання"
-
-#: dialogs.c:422
-msgid "Periodic Updates (in Analysis Mode)"
-msgstr "Періодичні оновлення (у режимі аналізу)"
-
-#: dialogs.c:424
-msgid "Play Move(s) of Clicked PV (Analysis)"
-msgstr "Грати ходи натиснутих PV (аналіз)"
-
-#: dialogs.c:425 dialogs.c:626 menus.c:743
-msgid "Ponder Next Move"
-msgstr "Обдумати наступний хід"
-
-#: dialogs.c:426
-msgid "Popup Exit Messages"
-msgstr "Контекстні підказки щодо виходу"
-
-#: dialogs.c:427 menus.c:745
-msgid "Popup Move Errors"
-msgstr "Контекстні підказки з помилками щодо ходів"
-
-#: dialogs.c:428
-msgid "Scores in Move List"
-msgstr "Оцінки у списку ходів"
-
-#: dialogs.c:429
-msgid "Show Coordinates"
-msgstr "Показувати координати"
-
-#: dialogs.c:430
-msgid "Show Target Squares"
-msgstr "Показувати клітинки призначення"
-
-#: dialogs.c:431
-msgid "Sticky Windows"
-msgstr "Липкі вікна"
-
-#: dialogs.c:432 menus.c:748
-msgid "Test Legality"
-msgstr "Перевіряти коректність"
-
-#: dialogs.c:433
-msgid "Top-Level Dialogs"
-msgstr "Вікна верхнього рівня"
-
-#: dialogs.c:434
-msgid "Flash Moves (0 = no flashing):"
-msgstr "Блимання під час ходів (0 = без блимання):"
-
-#: dialogs.c:435
-msgid "Flash Rate (high = fast):"
-msgstr "Частота блимання (висока = швидко):"
-
-#: dialogs.c:436
-msgid "Animation Speed (high = slow):"
-msgstr "Швидкість анімації (висока = повільно):"
-
-#: dialogs.c:437
-msgid "Zoom factor in Evaluation Graph:"
-msgstr "Масштаб графу оцінки позиції:"
-
-#: dialogs.c:457
-msgid "Normal"
-msgstr "Звичайні"
-
-#: dialogs.c:458
-msgid "Makruk"
-msgstr "Макрук"
-
-#: dialogs.c:459
-msgid "FRC"
-msgstr "Фішера"
-
-#: dialogs.c:460
-msgid "Shatranj"
-msgstr "Шатрандж"
-
-#: dialogs.c:461
-msgid "Wild castle"
-msgstr "Дика тура"
-
-#: dialogs.c:462
-msgid "Knightmate"
-msgstr "Мат коню"
-
-#: dialogs.c:463
-msgid "No castle"
-msgstr "Без тури"
-
-#: dialogs.c:464
-msgid "Cylinder *"
-msgstr "Циліндричні *"
-
-#: dialogs.c:465
-msgid "3-checks"
-msgstr "Три шахи"
-
-#: dialogs.c:466
-msgid "berolina *"
-msgstr "бероліна *"
-
-#: dialogs.c:467
-msgid "atomic"
-msgstr "атомні"
-
-#: dialogs.c:468
-msgid "two kings"
-msgstr "два королі"
-
-#: dialogs.c:469
-msgid " "
-msgstr " "
-
-#: dialogs.c:470
-msgid "Spartan"
-msgstr "спартанські"
-
-#: dialogs.c:471
-msgid "Board size ( -1 = default for selected variant):"
-msgstr "Розмір дошки ( -1 = типовий для вибраного варіанта):"
-
-#: dialogs.c:472
-msgid "Number of Board Ranks:"
-msgstr "Кількість рангів дошки:"
-
-#: dialogs.c:473
-msgid "Number of Board Files:"
-msgstr "Кількість файлів дошки:"
-
-#: dialogs.c:474
-msgid "Holdings Size:"
-msgstr "Розмір резерву:"
-
-#: dialogs.c:476
-msgid ""
-"Variants marked with * can only be played\n"
-"with legality testing off."
-msgstr ""
-"У варіанти позначені * можна грати\n"
-"лише з вимкненою перевіркою коректності."
-
-#: dialogs.c:478
-msgid "ASEAN"
-msgstr "ASEAN"
-
-#: dialogs.c:479
-msgid "Great Shatranj (10x8)"
-msgstr "Великий шатрандж (10x8)"
-
-#: dialogs.c:480
-msgid "Seirawan"
-msgstr "Сейравана"
-
-#: dialogs.c:481
-msgid "Falcon (10x8)"
-msgstr "Сокіл (10x8)"
-
-#: dialogs.c:482
-msgid "Superchess"
-msgstr "Супершахи"
-
-#: dialogs.c:483
-msgid "Capablanca (10x8)"
-msgstr "Капабланка (10x8)"
-
-#: dialogs.c:484
-msgid "Crazyhouse"
-msgstr "Крейзіхаус"
-
-#: dialogs.c:485
-msgid "Gothic (10x8)"
-msgstr "Готичні (10x8)"
-
-#: dialogs.c:486
-msgid "Bughouse"
-msgstr "Шведські"
-
-#: dialogs.c:487
-msgid "Janus (10x8)"
-msgstr "Янус (10x8)"
-
-#: dialogs.c:488
-msgid "Suicide"
-msgstr "Самовбивчі"
-
-#: dialogs.c:489
-msgid "CRC (10x8)"
-msgstr "Рівноправність (10x8)"
-
-#: dialogs.c:490
-msgid "give-away"
-msgstr "піддавки"
-
-#: dialogs.c:491
-msgid "grand (10x10)"
-msgstr "гранд-шахи (10x10)"
-
-#: dialogs.c:492
-msgid "losers"
-msgstr "Антишахи"
-
-#: dialogs.c:493
-msgid "shogi (9x9)"
-msgstr "сьогі (9x9)"
-
-#: dialogs.c:494
-msgid "fairy"
-msgstr "казкові"
-
-#: dialogs.c:495
-msgid "xiangqi (9x10)"
-msgstr "сянці (9x10)"
-
-#: dialogs.c:496
-msgid "mighty lion"
-msgstr "могутній лев"
-
-#: dialogs.c:497
-msgid "courier (12x8)"
-msgstr "кур’єр (12x8)"
-
-#: dialogs.c:498
-msgid "elven chess (10x10)"
-msgstr "ельфійські шахи (10x10)"
-
-#: dialogs.c:499
-msgid "chu shogi (12x12)"
-msgstr "чу сьогі (12x12)"
-
-#: dialogs.c:543
-#, c-format
-msgid "Warning: second engine (%s) does not support this!"
-msgstr "Попередження: ця можливість не підтримується другим рушієм (%s)!"
-
-#: dialogs.c:572
-#, c-format
-msgid "Only bughouse is not available in viewer mode."
-msgstr "У режимі перегляду недоступні лише шведські шахи."
-
-#: dialogs.c:573
-#, c-format
-msgid ""
-"All variants not supported by the first engine\n"
-"(currently %s) are disabled."
-msgstr ""
-"Всі варіанти, які не підтримуються першим рушієм\n"
-"(зараз це %s), вимкнено."
-
-#: dialogs.c:595
-msgid "New Variant"
-msgstr "Новий варіант"
-
-#: dialogs.c:627
-msgid "Maximum Number of CPUs per Engine:"
-msgstr "Максимальна кількість процесорів на рушій:"
-
-#: dialogs.c:628
-msgid "Polygot Directory:"
-msgstr "Каталог бібліотек Polygot:"
-
-#: dialogs.c:629
-msgid "Hash-Table Size (MB):"
-msgstr "Розмір таблиці хешів (у МБ):"
-
-#: dialogs.c:630
-msgid "EGTB Path:"
-msgstr "Шлях до EGTB:"
-
-#: dialogs.c:631
-msgid "EGTB Cache Size (MB):"
-msgstr "Розмір кешу EGTB (у МБ):"
-
-#: dialogs.c:632
-msgid "Use GUI Book"
-msgstr "Використовувати книгу з графічним інтерфейсом"
-
-#: dialogs.c:633
-msgid "Opening-Book Filename:"
-msgstr "Назва файла даних дебютів:"
-
-#: dialogs.c:634
-msgid "Book Depth (moves):"
-msgstr "Глибина книги (у ходах):"
-
-#: dialogs.c:635
-msgid "Book Variety (0) vs. Strength (100):"
-msgstr "Компроміс між різноманітністю (0) і силою (100) книги:"
-
-#: dialogs.c:636
-msgid "Engine #1 Has Own Book"
-msgstr "Рушій 1 має власну книгу"
-
-#: dialogs.c:637
-msgid "Engine #2 Has Own Book          "
-msgstr "Рушій 2 має власну книгу          "
-
-#: dialogs.c:648
-msgid "Common Engine Settings"
-msgstr "Загальні параметри рушіїв"
-
-#: dialogs.c:654
-msgid "Detect all Mates"
-msgstr "Виявляти всі мати"
-
-#: dialogs.c:655
-msgid "Verify Engine Result Claims"
-msgstr "Перевіряти вимоги до результатів рушія"
-
-#: dialogs.c:656
-msgid "Draw if Insufficient Mating Material"
-msgstr "Нічия, якщо недостатньо фігур для мату"
-
-#: dialogs.c:657
-msgid "Adjudicate Trivial Draws (3-Move Delay)"
-msgstr "Визначати тривіальні нічиї (трикратне повторення)"
-
-#: dialogs.c:658
-msgid "N-Move Rule:"
-msgstr "Правило N-го ходу:"
-
-#: dialogs.c:659
-msgid "N-fold Repeats:"
-msgstr "N-кратне повторення:"
-
-#: dialogs.c:660
-msgid "Draw after N Moves Total:"
-msgstr "Нічия після N ходів загалом:"
-
-#: dialogs.c:661
-msgid "Win / Loss Threshold:"
-msgstr "Поріг виграшу/програшу:"
-
-#: dialogs.c:662
-msgid "Negate Score of Engine #1"
-msgstr "Негативна оцінка рушія 1"
-
-#: dialogs.c:663
-msgid "Negate Score of Engine #2"
-msgstr "Негативна оцінка рушія 2"
-
-#: dialogs.c:670
-msgid "Adjudicate non-ICS Games"
-msgstr "Судити ігри, що не належать до класу ICS"
-
-#: dialogs.c:683
-msgid "Auto-Kibitz"
-msgstr "Автопоради"
-
-#: dialogs.c:684
-msgid "Auto-Comment"
-msgstr "Автокоментарі"
-
-#: dialogs.c:685
-msgid "Auto-Observe"
-msgstr "Автоспостереження"
-
-#: dialogs.c:686
-msgid "Auto-Raise Board"
-msgstr "Автопідняття дошки"
-
-#: dialogs.c:687
-msgid "Auto-Create Logon Script"
-msgstr "Автостворення скрипту входу"
-
-#: dialogs.c:688
-msgid "Background Observe while Playing"
-msgstr "Спостереження у тлі під час гри"
-
-#: dialogs.c:689
-msgid "Dual Board for Background-Observed Game"
-msgstr "Подвійна дошка для ігор з фоновим спостереженням"
-
-#: dialogs.c:690
-msgid "Get Move List"
-msgstr "Отримати список ходів"
-
-#: dialogs.c:691
-msgid "Quiet Play"
-msgstr "Мовчазна гра"
-
-#: dialogs.c:692
-msgid "Seek Graph"
-msgstr "Граф викликів"
-
-#: dialogs.c:693
-msgid "Auto-Refresh Seek Graph"
-msgstr "Автоматичне оновлення графу пошуків"
-
-#: dialogs.c:694
-msgid "Auto-InputBox PopUp"
-msgstr "Автоматичне вікно введення"
-
-#: dialogs.c:695
-msgid "Quit after game"
-msgstr "Вийти після гри"
-
-#: dialogs.c:696
-msgid "Premove"
-msgstr "Попередній хід"
-
-#: dialogs.c:697
-msgid "Premove for White"
-msgstr "Попередній хід для білих"
-
-#: dialogs.c:698
-msgid "First White Move:"
-msgstr "Перший хід білих:"
-
-#: dialogs.c:699
-msgid "Premove for Black"
-msgstr "Попередній хід для чорних"
-
-#: dialogs.c:700
-msgid "First Black Move:"
-msgstr "Перший хід чорних:"
-
-#: dialogs.c:702
-msgid "Alarm"
-msgstr "Нагадування"
-
-#: dialogs.c:703
-msgid "Alarm Time (msec):"
-msgstr "Час нагадування (у мс):"
-
-#: dialogs.c:705
-msgid "Colorize Messages"
-msgstr "Розфарбовувати повідомлення"
-
-#: dialogs.c:706
-msgid "Shout Text Colors:"
-msgstr "Кольори тексту вигуків:"
-
-#: dialogs.c:707
-msgid "S-Shout Text Colors:"
-msgstr "Колір тексту S-вигуків:"
-
-#: dialogs.c:708
-msgid "Channel #1 Text Colors:"
-msgstr "Кольори тексту каналу 1:"
-
-#: dialogs.c:709
-msgid "Other Channel Text Colors:"
-msgstr "Кольори тексту інших каналів:"
-
-#: dialogs.c:710
-msgid "Kibitz Text Colors:"
-msgstr "Кольори тексту порад:"
-
-#: dialogs.c:711
-msgid "Tell Text Colors:"
-msgstr "Кольори тексту висловлювань:"
-
-#: dialogs.c:712
-msgid "Challenge Text Colors:"
-msgstr "Кольори тексту викликів:"
-
-#: dialogs.c:713
-msgid "Request Text Colors:"
-msgstr "Кольори тексту запитів:"
-
-#: dialogs.c:714
-msgid "Seek Text Colors:"
-msgstr "Кольори тексту під час пошуку:"
-
-#: dialogs.c:715
-msgid "Other Text Colors:"
-msgstr "Кольори іншого тексту:"
-
-#: dialogs.c:722
-msgid "ICS Options"
-msgstr "Параметри ICS"
-
-#: dialogs.c:727
-msgid "Exact position match"
-msgstr "Точний збіг позицій"
-
-#: dialogs.c:727
-msgid "Shown position is subset"
-msgstr "Показана позиція є підмножиною"
-
-#: dialogs.c:727
-msgid "Same material with exactly same Pawn chain"
-msgstr "Однаковий матеріал з однаковим ланцюжком пішаків"
-
-#: dialogs.c:728
-msgid "Same material"
-msgstr "Однаковий матеріал"
-
-#: dialogs.c:728
-msgid "Material range (top board half optional)"
-msgstr "Діапазон матеріалу (верхня половина дошки, необов’язковий)"
-
-#: dialogs.c:728
-msgid "Material difference (optional stuff balanced)"
-msgstr "Відмінність матеріалів (з додатковим врівноваженням можливостей)"
-
-#: dialogs.c:743
-msgid "Auto-Display Tags"
-msgstr "Автопоказ міток"
-
-#: dialogs.c:744
-msgid "Auto-Display Comment"
-msgstr "Автопоказ коментарів"
-
-#: dialogs.c:745
-msgid ""
-"Auto-Play speed of loaded games\n"
-"(0 = instant, -1 = off):"
-msgstr ""
-"Швидкість автогри у завантажених іграх\n"
-"(0 = негайний показ, -1 = вимкнути автогру):"
-
-#: dialogs.c:746
-msgid "Seconds per Move:"
-msgstr "Секунд на хід:"
-
-#: dialogs.c:747
-msgid ""
-"\n"
-"options to use in game-viewer mode:"
-msgstr ""
-"\n"
-"Параметри режиму перегляду ігор:"
-
-#: dialogs.c:749
-msgid ""
-"\n"
-"Thresholds for position filtering in game list:"
-msgstr ""
-"\n"
-"Порогові значення фільтрування позицій у списку ігор:"
-
-#: dialogs.c:750
-msgid "Elo of strongest player at least:"
-msgstr "Рейтинг Ело для сильнішого гравця не нижче за:"
-
-#: dialogs.c:751
-msgid "Elo of weakest player at least:"
-msgstr "Рейтинг Ело для слабшого гравця не нижче за:"
-
-#: dialogs.c:752
-msgid "No games before year:"
-msgstr "Не показувати ігри до року:"
-
-#: dialogs.c:753
-msgid "Minimum nr consecutive positions:"
-msgstr "Мінімальна к-ть послідовних позицій:"
-
-#: dialogs.c:755
-msgid "Search mode:"
-msgstr "Режим пошуку:"
-
-#: dialogs.c:756
-msgid "Also match reversed colors"
-msgstr "Шукати у позиціях зворотних кольорів"
-
-#: dialogs.c:757
-msgid "Also match left-right flipped position"
-msgstr "Шукати у симетричних позиціях"
-
-#: dialogs.c:766
-msgid "Load Game Options"
-msgstr "Параметри завантаження ігор"
-
-#: dialogs.c:778
-msgid "Auto-Save Games"
-msgstr "Автозбереження ігор"
-
-#: dialogs.c:779
-msgid "Own Games Only"
-msgstr "Лише власні ігри"
-
-#: dialogs.c:780
-msgid "Save Games on File:"
-msgstr "Зберігати ігри до файла:"
-
-#: dialogs.c:781
-msgid "Save Final Positions on File:"
-msgstr "Зберігати остаточні позиції до файла:"
-
-#: dialogs.c:782
-msgid "PGN Event Header:"
-msgstr "Обробник подій PGN:"
-
-#: dialogs.c:783
-msgid "Old Save Style (as opposed to PGN)"
-msgstr "Застарілий стиль збереження (на відміну від PGN)"
-
-#: dialogs.c:784
-msgid "Include Number Tag in tourney PGN"
-msgstr "Включити мітку номера до PGN турніру"
-
-#: dialogs.c:785
-msgid "Save Score/Depth Info in PGN"
-msgstr "Зберігати дані щодо рейтингу/глибини у PGN"
-
-#: dialogs.c:786
-msgid "Save Out-of-Book Info in PGN           "
-msgstr "Зберігати сторонні дані до PGN           "
-
-#: dialogs.c:793
-msgid "Save Game Options"
-msgstr "Параметри збереження ігор"
-
-#: dialogs.c:802
-msgid "No Sound"
-msgstr "Без звуку"
-
-#: dialogs.c:803
-msgid "Default Beep"
-msgstr "Типовий гудок"
-
-#: dialogs.c:804
-msgid "Above WAV File"
-msgstr "Файл WAV вище"
-
-#: dialogs.c:805
-msgid "Car Horn"
-msgstr "Автомобільний гудок"
-
-#: dialogs.c:806
-msgid "Cymbal"
-msgstr "Цимбали"
-
-#: dialogs.c:807
-msgid "Ding"
-msgstr "Дзвінок"
-
-#: dialogs.c:808
-msgid "Gong"
-msgstr "Гонг"
-
-#: dialogs.c:809
-msgid "Laser"
-msgstr "Лазер"
-
-#: dialogs.c:810
-msgid "Penalty"
-msgstr "Штраф"
-
-#: dialogs.c:811
-msgid "Phone"
-msgstr "Телефон"
-
-#: dialogs.c:812
-msgid "Pop"
-msgstr "Плескання"
-
-#: dialogs.c:813
-msgid "Roar"
-msgstr "Рев"
-
-#: dialogs.c:814
-msgid "Slap"
-msgstr "Клацання"
-
-#: dialogs.c:815
-msgid "Wood Thunk"
-msgstr "Удар об дерево"
-
-#: dialogs.c:817
-msgid "User File"
-msgstr "Файл користувача"
-
-#: dialogs.c:840
-msgid "User WAV File:"
-msgstr "Файл WAV користувача:"
-
-#: dialogs.c:841
-msgid "Sound Program:"
-msgstr "Програма відтворення:"
-
-#: dialogs.c:842
-msgid "Try-Out Sound:"
-msgstr "Тестовий звук:"
-
-#: dialogs.c:843
-msgid "Play"
-msgstr "Пуск"
-
-#: dialogs.c:844
-msgid "Move:"
-msgstr "Хід:"
-
-#: dialogs.c:845
-msgid "Win:"
-msgstr "Виграшів:"
-
-#: dialogs.c:846
-msgid "Lose:"
-msgstr "Програшів:"
-
-#: dialogs.c:847
-msgid "Draw:"
-msgstr "Нічиїх:"
-
-#: dialogs.c:848
-msgid "Unfinished:"
-msgstr "Незавершених:"
-
-#: dialogs.c:849
-msgid "Alarm:"
-msgstr "Нагадування:"
-
-#: dialogs.c:850
-msgid "Challenge:"
-msgstr "Виклик:"
-
-#: dialogs.c:852
-msgid "Sounds Directory:"
-msgstr "Каталог звуків:"
-
-#: dialogs.c:853
-msgid "Shout:"
-msgstr "Вигук:"
-
-#: dialogs.c:854
-msgid "S-Shout:"
-msgstr "S-вигук:"
-
-#: dialogs.c:855
-msgid "Channel:"
-msgstr "Канал:"
-
-#: dialogs.c:856
-msgid "Channel 1:"
-msgstr "Канал 1:"
-
-#: dialogs.c:857
-msgid "Tell:"
-msgstr "Висловлення:"
-
-#: dialogs.c:858
-msgid "Kibitz:"
-msgstr "Порада:"
-
-#: dialogs.c:859
-msgid "Request:"
-msgstr "Запит:"
-
-#: dialogs.c:860
-msgid "Lion roar:"
-msgstr "Рев лева:"
-
-#: dialogs.c:861
-msgid "Seek:"
-msgstr "Пошук:"
-
-#: dialogs.c:877
-msgid "Sound Options"
-msgstr "Параметри звуку"
-
-#: dialogs.c:893
-msgid "Selectable themes:"
-msgstr "Можливі теми:"
-
-#: dialogs.c:895
-msgid "New name for current theme:"
-msgstr "Нова назва для поточної теми:"
-
-#: dialogs.c:898
-msgid "White Piece Color:"
-msgstr "Колір фігур білих:"
-
-#. TRANSLATORS: R = single letter for the color red
-#: dialogs.c:901 dialogs.c:910 dialogs.c:916 dialogs.c:922 dialogs.c:928
-#: dialogs.c:934
-msgid "R"
-msgstr "Ч"
-
-#. TRANSLATORS: G = single letter for the color green
-#: dialogs.c:903 dialogs.c:911 dialogs.c:917 dialogs.c:923 dialogs.c:929
-#: dialogs.c:935
-msgid "G"
-msgstr "З"
-
-#. TRANSLATORS: B = single letter for the color blue
-#: dialogs.c:905 dialogs.c:912 dialogs.c:918 dialogs.c:924 dialogs.c:930
-#: dialogs.c:936 dialogs.c:1650 dialogs.c:1656 dialogs.c:1662 dialogs.c:1668
-#: dialogs.c:1674 dialogs.c:1680 dialogs.c:1686
-msgid "B"
-msgstr "С"
-
-#. TRANSLATORS: D = single letter to make a color darker
-#: dialogs.c:907 dialogs.c:913 dialogs.c:919 dialogs.c:925 dialogs.c:931
-#: dialogs.c:937
-msgid "D"
-msgstr "Т"
-
-#: dialogs.c:908
-msgid "Black Piece Color:"
-msgstr "Колір фігур чорних:"
-
-#: dialogs.c:914
-msgid "Light Square Color:"
-msgstr "Колір світлих клітинок:"
-
-#: dialogs.c:920
-msgid "Dark Square Color:"
-msgstr "Колір темних клітинок:"
-
-#: dialogs.c:926
-msgid "Highlight Color:"
-msgstr "Колір позначення:"
-
-#: dialogs.c:932
-msgid "Premove Highlight Color:"
-msgstr "Колір підсвічування плану ходу:"
-
-#: dialogs.c:938
-msgid "Flip Pieces Shogi Style        (Colored buttons restore default)"
-msgstr "Стиль обміну фігурами сьогі     (Кольорові кнопки відновлюють типовий)"
-
-#: dialogs.c:940
-msgid "Mono Mode"
-msgstr "Монорежим"
-
-#: dialogs.c:941
-msgid "Logo Size (0=off, requires restart):"
-msgstr "Розмір логотипу (0=вимкнути, потребує перезапуску):"
-
-#: dialogs.c:942
-msgid "Line Gap (-1 = default for board size):"
-msgstr "Проміжок між рядами ( -1 = типовий для розмірів дошки):"
-
-#: dialogs.c:943
-msgid "Use Board Textures"
-msgstr "Використовувати текстури дошки"
-
-#: dialogs.c:944
-msgid "Light-Squares Texture File:"
-msgstr "Файл текстур світлих клітинок:"
-
-#: dialogs.c:945
-msgid "Dark-Squares Texture File:"
-msgstr "Файл текстур темних клітинок:"
-
-#: dialogs.c:946
-msgid "Use external piece bitmaps with their own colors"
-msgstr "Зовнішні растрові зображення фігур з власними кольорами"
-
-#: dialogs.c:947
-msgid "Directory with Pieces Images:"
-msgstr "Каталог з зображеннями фігур:"
-
-#: dialogs.c:1018
-msgid "# no themes are defined"
-msgstr "# не визначено жодної теми"
-
-#: dialogs.c:1030
-msgid "Board Options"
-msgstr "Параметри дошки"
-
-#: dialogs.c:1101 menus.c:646
-msgid "ICS text menu"
-msgstr "Текстове меню ICS"
-
-#: dialogs.c:1130
-msgid "clear"
-msgstr "спорожнити"
-
-#: dialogs.c:1131
-msgid "save changes"
-msgstr "зберегти зміни"
-
-#: dialogs.c:1229
-msgid "add next move"
-msgstr "додати наступний хід"
-
-#: dialogs.c:1230
-msgid "commit changes"
-msgstr "надіслати зміни"
-
-#: dialogs.c:1253
-msgid "Edit book"
-msgstr "Змінити книгу"
-
-#: dialogs.c:1270 dialogs.c:1277 menus.c:648
-msgid "Tags"
-msgstr "Мітки"
-
-#: dialogs.c:1285
-msgid "Registered Engines"
-msgstr "Зареєстровані рушії"
-
-#: dialogs.c:1401
-msgid "ICS input box"
-msgstr "Поле введення ICS"
-
-#: dialogs.c:1433
-msgid "Type a move"
-msgstr "Введіть хід"
-
-#: dialogs.c:1459
-msgid "Engine has no options"
-msgstr "Рушієві не передаються жодні параметри"
-
-#: dialogs.c:1461
-msgid "Engine Settings"
-msgstr "Параметри рушія"
-
-#: dialogs.c:1502
-msgid "Select engine from list:"
-msgstr "Виберіть рушій зі списку:"
-
-#: dialogs.c:1505
-msgid "or specify one below:"
-msgstr "або вкажіть його нижче:"
-
-#: dialogs.c:1506
-msgid "Nickname (optional):"
-msgstr "Псевдонім (необов’язковий):"
-
-#: dialogs.c:1507
-msgid "Use nickname in PGN player tags of engine-engine games"
-msgstr "Використовувати псевдонім у мітках гравця PGN під час ігор між рушіями"
-
-#: dialogs.c:1508
-msgid "Engine Directory:"
-msgstr "Каталог рушія:"
-
-#: dialogs.c:1509
-msgid "Engine Command:"
-msgstr "Команда рушія:"
-
-#: dialogs.c:1510
-msgid "(Directory will be derived from engine path when empty)"
-msgstr "(Каталог буде визначено на основі шляху до рушія, якщо каталог не вказано)"
-
-#: dialogs.c:1511
-msgid "UCI"
-msgstr "UCI"
-
-#: dialogs.c:1512
-msgid "USI/UCCI (uses specified -uxiAdapter)"
-msgstr "USI/UCCI (використовує вказаний -uxiAdapter)"
-
-#: dialogs.c:1513
-msgid "WB protocol v1 (do not wait for engine features)"
-msgstr "Протокол WB версії 1 (не чекати на дані щодо можливостей)"
-
-#: dialogs.c:1514
-msgid "Must not use GUI book"
-msgstr "Не повинен використовувати книгу з графічним інтерфейсом"
-
-#: dialogs.c:1515
-msgid "Add this engine to the list"
-msgstr "Додати цей рушій до списку"
-
-#: dialogs.c:1516
-msgid "Force current variant with this engine"
-msgstr "Примусово визначити поточний варіант для рушія"
-
-#: dialogs.c:1570
-msgid "Load first engine"
-msgstr "Завантажити перший рушій"
-
-#: dialogs.c:1576
-msgid "Load second engine"
-msgstr "Завантажити другий рушій"
-
-#: dialogs.c:1599
-msgid "shuffle"
-msgstr "перемішати"
-
-#: dialogs.c:1600
-msgid "Fischer castling"
-msgstr "Рокіровка Фішера"
-
-#: dialogs.c:1601
-msgid "Start-position number:"
-msgstr "Номер початкової позиції:"
-
-#: dialogs.c:1602
-msgid "randomize"
-msgstr "випадково"
-
-#: dialogs.c:1603
-msgid "pick fixed"
-msgstr "вибрати фіксовану"
-
-#: dialogs.c:1620
-msgid "New Shuffle Game"
-msgstr "Нова випадкова гра"
-
-#: dialogs.c:1647
-msgid "Clocks (requires restart):"
-msgstr "Годинник (потребує перезапуску):"
-
-#: dialogs.c:1648 dialogs.c:1654 dialogs.c:1660 dialogs.c:1666 dialogs.c:1672
-#: dialogs.c:1678 dialogs.c:1684
-msgid "+"
-msgstr "+"
-
-#: dialogs.c:1649 dialogs.c:1655 dialogs.c:1661 dialogs.c:1667 dialogs.c:1673
-#: dialogs.c:1679 dialogs.c:1685
-msgid "-"
-msgstr "-"
-
-#: dialogs.c:1651 dialogs.c:1657 dialogs.c:1663 dialogs.c:1669 dialogs.c:1675
-#: dialogs.c:1681 dialogs.c:1687
-msgid "I"
-msgstr "I"
-
-#: dialogs.c:1652 dialogs.c:1658 dialogs.c:1664 dialogs.c:1670 dialogs.c:1676
-#: dialogs.c:1682 dialogs.c:1688
-msgid "*"
-msgstr "*"
-
-#: dialogs.c:1653
-msgid "Message (above board):"
-msgstr "Повідомлення (над дошкою):"
-
-#: dialogs.c:1659
-msgid "ICS Chat/Console:"
-msgstr "Розмова ICS/Консоль:"
-
-#: dialogs.c:1665
-msgid "Edit tags / book / engine list:"
-msgstr "Редагування міток / книги / списку рушіїв:"
-
-#: dialogs.c:1671
-msgid "Edit comments:"
-msgstr "Редагування коментарів:"
-
-#: dialogs.c:1677
-msgid "Move history / Engine Output:"
-msgstr "Журнал ходів / Виведення рушія:"
-
-#: dialogs.c:1683
-msgid "Game list:"
-msgstr "Список ігор:"
-
-#: dialogs.c:1689
-msgid ""
-"\n"
-"The * buttons will set the font to the one selected below:"
-msgstr ""
-"\n"
-"Кнопки * встановлюватимуть шрифт, вказаний нижче:"
-
-#: dialogs.c:1743
-msgid "This only works in the GTK build"
-msgstr "Працює лише у збірці з GTK"
-
-#: dialogs.c:1744
-msgid "Fonts"
-msgstr "Шрифти"
-
-#: dialogs.c:1764
-msgid "classical"
-msgstr "класичні"
-
-#: dialogs.c:1765
-msgid "incremental"
-msgstr "нарощувальний"
-
-#: dialogs.c:1766
-msgid "fixed max"
-msgstr "фіксований максимум"
-
-#: dialogs.c:1767
-msgid "Divide entered times by 60"
-msgstr "Ділити введені значення часу на 60"
-
-#: dialogs.c:1768
-msgid "Moves per session:"
-msgstr "Ходів за сеанс:"
-
-#: dialogs.c:1769
-msgid "Initial time (min):"
-msgstr "Початковий час (у хвилинах):"
-
-#: dialogs.c:1770
-msgid "Increment or max (sec/move):"
-msgstr "Збільшення або максимум (сек/хід):"
-
-#: dialogs.c:1771
-msgid "Time-Odds factors:"
-msgstr "Коефіцієнти виправлення часу:"
-
-#: dialogs.c:1772
-msgid "Engine #1"
-msgstr "Рушій 1"
-
-#: dialogs.c:1773
-msgid "Engine #2 / Human"
-msgstr "Рушій 2 / Людина"
-
-#: dialogs.c:1814 dialogs.c:1817 dialogs.c:1822 dialogs.c:1823
-#: gtk/xoptions.c:183
-msgid "Unused"
-msgstr "Не використовується"
-
-#: dialogs.c:1832
-msgid "Changing time control during a game is not implemented"
-msgstr "Зміну режиму контролю часу під час гри не реалізовано"
-
-#: dialogs.c:1869
-msgid "Error writing to chess program"
-msgstr "Помилка під час спроби запису даних до шахової програми"
-
-#: dialogs.c:1937 gtk/xoptions.c:1775 xaw/xoptions.c:1341
-msgid "Cancel"
-msgstr "Скасувати"
-
-#: dialogs.c:1942 dialogs.c:2695 dialogs.c:2699
-msgid "King"
-msgstr "Король"
-
-#: dialogs.c:1945
-msgid "Captain"
-msgstr "Капітан"
-
-#: dialogs.c:1946
-msgid "Lieutenant"
-msgstr "Лейтенант"
-
-#: dialogs.c:1947
-msgid "General"
-msgstr "Загальне"
-
-#: dialogs.c:1948
-msgid "Warlord"
-msgstr "Полководець"
-
-#: dialogs.c:1950 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Knight"
-msgstr "Кінь"
-
-#: dialogs.c:1951 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Bishop"
-msgstr "Слон"
-
-#: dialogs.c:1952 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Rook"
-msgstr "Тура"
-
-#: dialogs.c:1956 dialogs.c:2696 dialogs.c:2700
-msgid "Archbishop"
-msgstr "Архієпископ"
-
-#: dialogs.c:1957 dialogs.c:2696 dialogs.c:2700
-msgid "Chancellor"
-msgstr "Канцлер"
-
-#: dialogs.c:1959 dialogs.c:2695 dialogs.c:2699 dialogs.c:2717
-msgid "Queen"
-msgstr "Королева"
-
-#: dialogs.c:1961
-msgid "Lion"
-msgstr "Лев"
-
-#: dialogs.c:1965
-msgid "Defer"
-msgstr "Зменшити пріоритет"
-
-#: dialogs.c:1966 dialogs.c:2696 dialogs.c:2700
-msgid "Promote"
-msgstr "Підвищити"
-
-#: dialogs.c:2023
-msgid "Chats:"
-msgstr "Розмови:"
-
-#: dialogs.c:2024 dialogs.c:2025 dialogs.c:2026 dialogs.c:2027 dialogs.c:2028
-#: dialogs.c:2134 dialogs.c:2199 dialogs.c:2231
-msgid "New Chat"
-msgstr "Нова розмова"
-
-#: dialogs.c:2031
-msgid "Chat partner:"
-msgstr "Співрозмовник:"
-
-#: dialogs.c:2032
-msgid "End Chat"
-msgstr "Завершити розмову"
-
-#: dialogs.c:2033
-msgid "Hide"
-msgstr "Приховати"
-
-#: dialogs.c:2260
-msgid "ICS Interaction"
-msgstr "Взаємодія у ICS"
-
-#: dialogs.c:2345
-msgid "factory"
-msgstr "типові"
-
-#: dialogs.c:2346
-msgid "up"
-msgstr "вгору"
-
-#: dialogs.c:2347
-msgid "down"
-msgstr "вниз"
-
-#: dialogs.c:2366
-msgid "No tag selected"
-msgstr "Не вибрано жодної мітки"
-
-#: dialogs.c:2397
-msgid "Game-list options"
-msgstr "Параметри списку гри"
-
-#: dialogs.c:2475 dialogs.c:2489
-msgid "Error"
-msgstr "Помилка"
-
-#: dialogs.c:2518
-msgid "Fatal Error"
-msgstr "Критична помилка"
-
-#: dialogs.c:2518
-msgid "Exiting"
-msgstr "Вихід"
-
-#: dialogs.c:2529
-msgid "Information"
-msgstr "Інформація"
-
-#: dialogs.c:2536
-msgid "Note"
-msgstr "Нотатка"
-
-#: dialogs.c:2694 dialogs.c:2987 dialogs.c:2990
-msgid "White"
-msgstr "Білі"
-
-#: dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Pawn"
-msgstr "Пішак"
-
-#: dialogs.c:2695 dialogs.c:2699
-msgid "Elephant"
-msgstr "Слон"
-
-#: dialogs.c:2695 dialogs.c:2699
-msgid "Cannon"
-msgstr "Гармата"
-
-#: dialogs.c:2696 dialogs.c:2700
-msgid "Demote"
-msgstr "Розжалувати"
-
-#: dialogs.c:2697 dialogs.c:2701
-msgid "Empty square"
-msgstr "Порожня клітинка"
-
-#: dialogs.c:2697 dialogs.c:2701
-msgid "Clear board"
-msgstr "Спорожнити дошку"
-
-#: dialogs.c:2698 dialogs.c:2999 dialogs.c:3002
-msgid "Black"
-msgstr "Чорні"
-
-#: dialogs.c:2798
-msgid "_File"
-msgstr "_Файл"
-
-#: dialogs.c:2799
-msgid "_Edit"
-msgstr "З_міни"
-
-#: dialogs.c:2800
-msgid "_View"
-msgstr "П_ерегляд"
-
-#: dialogs.c:2801
-msgid "_Mode"
-msgstr "_Режим"
-
-#: dialogs.c:2802
-msgid "_Action"
-msgstr "_Дія"
-
-#: dialogs.c:2803
-msgid "E_ngine"
-msgstr "Р_ушій"
-
-#: dialogs.c:2804
-msgid "_Options"
-msgstr "П_араметри"
-
-#: dialogs.c:2805
-msgid "_Help"
-msgstr "_Довідка"
-
-#: dialogs.c:2815
-msgid "<<"
-msgstr "<<"
-
-#: dialogs.c:2816
-msgid "<"
-msgstr "<"
-
-#: dialogs.c:2818
-msgid ">"
-msgstr ">"
-
-#: dialogs.c:2819
-msgid ">>"
-msgstr ">>"
-
-#: dialogs.c:3107
-msgid "Directories:"
-msgstr "Каталоги:"
-
-#: dialogs.c:3108
-msgid "Files:"
-msgstr "Файли:"
-
-#: dialogs.c:3109
-msgid "by name"
-msgstr "за назвою"
-
-#: dialogs.c:3110
-msgid "by type"
-msgstr "за типом"
-
-#: dialogs.c:3113
-msgid "Filename:"
-msgstr "Назва файла:"
-
-#: dialogs.c:3114
-msgid "New directory"
-msgstr "Новий каталог"
-
-#: dialogs.c:3115
-msgid "File type:"
-msgstr "Тип файлів:"
-
-#: dialogs.c:3190
-msgid "Contents of"
-msgstr "Вміст"
-
-#: dialogs.c:3216
-msgid "  next page"
-msgstr "  наступна сторінка"
-
-#: dialogs.c:3233
-msgid "FIRST TYPE DIRECTORY NAME HERE"
-msgstr "СПОЧАТКУ ВКАЖІТЬ ТУТ НАЗВУ КАТАЛОГУ"
-
-#: dialogs.c:3234
-msgid "TRY ANOTHER NAME"
-msgstr "СПРОБУЙТЕ ІНШУ НАЗВУ"
-
-#: draw.c:405
-msgid ""
-"No default pieces installed!\n"
-"Select your own using '-pieceImageDirectory'."
-msgstr ""
-"Типових зображень фігур не встановлено.\n"
-"Вкажіть власні за допомогою параметра -pieceImageDirectory"
-
-#: engineoutput.c:112 menus.c:642
-#, c-format
-msgid "Engine Output"
-msgstr "Вивід рушія"
-
-#: engineoutput.c:122
-#, c-format
-msgid "%s (%d reversible ply)"
-msgid_plural "%s (%d reversible plies)"
-msgstr[0] "%s (з можливістю скасування %d ходу)"
-msgstr[1] "%s (з можливістю скасування %d ходів)"
-msgstr[2] "%s (з можливістю скасування %d ходів)"
-msgstr[3] "%s (з можливістю скасування %d ходу)"
-
-#: engineoutput.c:565 engineoutput.c:568 nengineoutput.c:83 nengineoutput.c:91
-msgid "NPS"
-msgstr "NPS"
-
-#: gamelist.c:379
-#, c-format
-msgid "Reading game file (%d)"
-msgstr "Читання файла гри (%d)"
-
-#: gtk/xboard.c:979 xaw/xboard.c:1074
-#, c-format
-msgid "%s: can't cd to CHESSDIR: "
-msgstr "%s: не вдалося перейти до каталогу CHESSDIR: "
-
-#: gtk/xboard.c:988 xaw/xboard.c:1083
-#, c-format
-msgid "Failed to open file '%s'\n"
-msgstr "Не вдалося відкрити файл «%s»\n"
-
-#: gtk/xboard.c:1003 xaw/xboard.c:1092
-msgid "Recompile with larger BOARD_RANKS or BOARD_FILES to support this size"
-msgstr "Для того, щоб скористатися підтримкою цього розміру, слід зібрати програму з більшими значеннями BOARD_RANKS або BOARD_FILES"
-
-#: gtk/xboard.c:1022 xaw/xboard.c:1124
-#, c-format
-msgid "%s: bad boardSize syntax %s\n"
-msgstr "%s: помилковий синтаксис boardSize %s\n"
-
-#: gtk/xboard.c:1063 xaw/xboard.c:1163
-#, c-format
-msgid "%s: unrecognized boardSize name %s\n"
-msgstr "%s: невідома назва boardSize %s\n"
-
-#: gtk/xboard.c:1107 xaw/xboard.c:1200
-#, c-format
-msgid "%s: too few colors available; trying monochrome mode\n"
-msgstr "%s: занадто мало кольорів; спробуємо монохромний режим\n"
-
-#: gtk/xboard.c:1421 xaw/xboard.c:1492
-#, c-format
-msgid "Unable to create font set for %s.\n"
-msgstr "Не вдалося створити набір шрифтів для %s.\n"
-
-#: gtk/xboard.c:1446 xaw/xboard.c:1515
-#, c-format
-msgid "%s: no fonts match pattern %s\n"
-msgstr "%s: взірцеві %s не відповідає жоден шрифт\n"
-
-#: gtk/xboard.c:1914 xaw/xboard.c:2007
-msgid "Can't open temp file"
-msgstr "Не вдалося відкрити тимчасовий файл даних"
-
-#: gtk/xboard.c:2422
-msgid "Failed to open file"
-msgstr "Не вдалося відкрити файл"
-
-#: gtk/xoptions.c:1498
-msgid "Browse"
-msgstr "Вибрати"
-
-#: gtk/xoptions.c:1772 xaw/xoptions.c:1337
-msgid "OK"
-msgstr "Гаразд"
-
-#: menus.c:136
-msgid "Load game file name?"
-msgstr "Назва файла гри для завантаження?"
-
-#: menus.c:183
-msgid "Load position file name?"
-msgstr "Назва файла позиції для завантаження?"
-
-#: menus.c:189 menus.c:582
-msgid "Save game file name?"
-msgstr "Назва файли гри для збереження?"
-
-#: menus.c:198
-msgid "Save position file name?"
-msgstr "Назва файла позиції для збереження?"
-
-#: menus.c:355
-msgid " (with Zippy code)"
-msgstr " (з кодом Zippy)"
-
-#: menus.c:360
-#, c-format
-msgid ""
-"%s%s\n"
-"\n"
-"Copyright 1991 Digital Equipment Corporation\n"
-"Enhancements Copyright 1992-2016 Free Software Foundation\n"
-"Enhancements Copyright 2005 Alessandro Scotti\n"
-"\n"
-"%s is free software and carries NO WARRANTY;see the file COPYING for more information.\n"
-"\n"
-"Visit XBoard on the web at: http://www.gnu.org/software/xboard/\n"
-"Check out the newest features at: http://www.gnu.org/software/xboard/whats_new.html\n"
-"\n"
-"Report bugs via email at: <bug-xboard@gnu.org>\n"
-"\n"
-msgstr ""
-"%s%s\n"
-"\n"
-"© Digital Equipment Corporation, 1991\n"
-"© Free Software Foundation, 1992–2016\n"
-"© Alessandro Scotti, 2005\n"
-"\n"
-"%s є вільним програмним забезпеченням, його працездатність не гарантується. Докладніше про це у файлі COPYING.\n"
-"\n"
-"Відвідайте сторінку XBoard у мережі за адресою: http://www.gnu.org/software/xboard/\n"
-"Ознайомтеся з найсвіжішими можливостями програми: http://www.gnu.org/software/xboard/whats_new.html\n"
-"\n"
-"Надішліть повідомлення про ваду на адресу: <bug-xboard@gnu.org>\n"
-"\n"
-
-#: menus.c:371 menus.c:765
-msgid "About XBoard"
-msgstr "Про XBoard"
-
-#: menus.c:593
-msgid "New Game"
-msgstr "Нова гра"
-
-#: menus.c:594
-msgid "New Shuffle Game..."
-msgstr "Нова випадкова гра…"
-
-#: menus.c:595
-msgid "New Variant..."
-msgstr "Новий варіант…"
-
-#: menus.c:597
-msgid "Load Game"
-msgstr "Завантажити гру"
-
-#: menus.c:598
-msgid "Load Position"
-msgstr "Завантажити позицію"
-
-#: menus.c:599
-msgid "Next Position"
-msgstr "Наступна позиція"
-
-#: menus.c:600
-msgid "Prev Position"
-msgstr "Попередня позиція"
-
-#: menus.c:602
-msgid "Save Game"
-msgstr "Зберегти гру"
-
-#: menus.c:603
-msgid "Save Position"
-msgstr "Зберегти позицію"
-
-#: menus.c:604
-msgid "Save Selected Games"
-msgstr "Зберегти позначені ігри"
-
-#: menus.c:605
-msgid "Save Games as Book"
-msgstr "Зберегти ігри як книгу"
-
-#: menus.c:607
-msgid "Mail Move"
-msgstr "Надіслати хід поштою"
-
-#: menus.c:608
-msgid "Reload CMail Message"
-msgstr "Перезавантажити повідомлення CMail"
-
-#: menus.c:610
-msgid "Quit "
-msgstr "Вийти "
-
-#: menus.c:615
-msgid "Copy Game"
-msgstr "Копіювати гру"
-
-#: menus.c:616
-msgid "Copy Position"
-msgstr "Копіювати позицію"
-
-#: menus.c:617
-msgid "Copy Game List"
-msgstr "Копіювати список ігор"
-
-#: menus.c:619
-msgid "Paste Game"
-msgstr "Вставити гру"
-
-#: menus.c:620
-msgid "Paste Position"
-msgstr "Вставити позицію"
-
-#: menus.c:622 menus.c:665
-msgid "Edit Game"
-msgstr "Редагувати гру"
-
-#: menus.c:623 menus.c:666
-msgid "Edit Position"
-msgstr "Редагувати позицію"
-
-#: menus.c:624
-msgid "Edit Tags"
-msgstr "Змінити мітки"
-
-#: menus.c:625
-msgid "Edit Comment"
-msgstr "Змінити коментар"
-
-#: menus.c:626
-msgid "Edit Book"
-msgstr "Змінити книгу"
-
-#: menus.c:628
-msgid "Revert"
-msgstr "Повернути"
-
-#: menus.c:629
-msgid "Annotate"
-msgstr "Анотувати"
-
-#: menus.c:630
-msgid "Truncate Game"
-msgstr "Обрізати гру"
-
-#: menus.c:632
-msgid "Backward"
-msgstr "Назад"
-
-#: menus.c:633
-msgid "Forward"
-msgstr "Вперед"
-
-#: menus.c:634
-msgid "Back to Start"
-msgstr "Повернутися до початку"
-
-#: menus.c:635
-msgid "Forward to End"
-msgstr "Вперед до кінця"
-
-#: menus.c:640
-msgid "Flip View"
-msgstr "Повернути дошку"
-
-#: menus.c:643
-msgid "Move History"
-msgstr "Журнал ходів"
-
-#: menus.c:644
-msgid "Evaluation Graph"
-msgstr "Граф оцінки позиції"
-
-#: menus.c:645
-msgid "Game List"
-msgstr "Список ігор"
-
-#: menus.c:649
-msgid "Comments"
-msgstr "Коментарі"
-
-#: menus.c:650
-msgid "ICS Input Box"
-msgstr "Поле введення ICS"
-
-#: menus.c:651
-msgid "ICS/Chat Console"
-msgstr "Консоль ICS/розмов"
-
-#: menus.c:653
-msgid "Board..."
-msgstr "Дошка…"
-
-#: menus.c:654
-msgid "Fonts..."
-msgstr "Шрифти…"
-
-#: menus.c:655
-msgid "Game List Tags..."
-msgstr "Мітки списку ігор…"
-
-#: menus.c:660
-msgid "Machine White"
-msgstr "Комп’ютер-білими"
-
-#: menus.c:661
-msgid "Machine Black"
-msgstr "Матч ком’ютерів"
-
-#: menus.c:662
-msgid "Two Machines"
-msgstr "Два комп’ютера"
-
-#: menus.c:663
-msgid "Analysis Mode"
-msgstr "Режим аналізу"
-
-#: menus.c:664
-msgid "Analyze Game"
-msgstr "Аналізувати гру"
-
-#: menus.c:667
-msgid "Training"
-msgstr "Тренування"
-
-#: menus.c:668
-msgid "ICS Client"
-msgstr "Клієнт ICS"
-
-#: menus.c:670
-msgid "Machine Match"
-msgstr "Матч ком’ютерів"
-
-#: menus.c:671
-msgid "Pause"
-msgstr "Пауза"
-
-#: menus.c:676
-msgid "Accept"
-msgstr "Прийняти"
-
-#: menus.c:677
-msgid "Decline"
-msgstr "Відхилити"
-
-#: menus.c:678
-msgid "Rematch"
-msgstr "Перегравання"
-
-#: menus.c:680
-msgid "Call Flag"
-msgstr "Погодитися з програшем"
-
-#: menus.c:681
-msgid "Draw"
-msgstr "Нічия"
-
-#: menus.c:682
-msgid "Adjourn"
-msgstr "Відкласти"
-
-#: menus.c:683
-msgid "Abort"
-msgstr "Перервати"
-
-#: menus.c:684
-msgid "Resign"
-msgstr "Здатись"
-
-#: menus.c:686
-msgid "Stop Observing"
-msgstr "Припинити спостереження"
-
-#: menus.c:687
-msgid "Stop Examining"
-msgstr "Припинити аналіз"
-
-#: menus.c:688
-msgid "Upload to Examine"
-msgstr "Вивантажити для аналізу"
-
-#: menus.c:690
-msgid "Adjudicate to White"
-msgstr "Визначити виграш білих"
-
-#: menus.c:691
-msgid "Adjudicate to Black"
-msgstr "Визначити виграш чорних"
-
-#: menus.c:692
-msgid "Adjudicate Draw"
-msgstr "Визначити нічию"
-
-#: menus.c:697
-msgid "Edit Engine List..."
-msgstr "Змінити список рушіїв…"
-
-#: menus.c:699
-msgid "Load New 1st Engine..."
-msgstr "Завантажити новий перший рушій…"
-
-#: menus.c:700
-msgid "Load New 2nd Engine..."
-msgstr "Завантажити новий другий рушій…"
-
-#: menus.c:702
-msgid "Engine #1 Settings..."
-msgstr "Параметри рушія 1…"
-
-#: menus.c:703
-msgid "Engine #2 Settings..."
-msgstr "Параметри рушія 2…"
-
-#: menus.c:704
-msgid "Common Settings..."
-msgstr "Загальні параметри…"
-
-#: menus.c:706
-msgid "Hint"
-msgstr "Підказка"
-
-#: menus.c:707
-msgid "Book"
-msgstr "Книга"
-
-#: menus.c:709
-msgid "Move Now"
-msgstr "Ходити зараз"
-
-#: menus.c:710
-msgid "Retract Move"
-msgstr "Відкликати хід"
-
-#: menus.c:716
-msgid "General..."
-msgstr "Загальне…"
-
-#: menus.c:718
-msgid "Time Control..."
-msgstr "Керування часом…"
-
-#: menus.c:719
-msgid "Adjudications..."
-msgstr "Визначення…"
-
-#: menus.c:720
-msgid "ICS..."
-msgstr "ICS…"
-
-#: menus.c:721
-msgid "Tournament..."
-msgstr "Турнір…"
-
-#: menus.c:722
-msgid "Load Game..."
-msgstr "Завантажити гру…"
-
-#: menus.c:723
-msgid "Save Game..."
-msgstr "Зберегти гру…"
-
-#: menus.c:724
-msgid "Game List..."
-msgstr "Список ігор…"
-
-#: menus.c:725
-msgid "Sounds..."
-msgstr "Звуки…"
-
-#: menus.c:728
-msgid "Always Queen"
-msgstr "Завжди королева"
-
-#: menus.c:734
-msgid "Flash Moves"
-msgstr "Підсвічування ходів"
-
-#: menus.c:736
-msgid "Highlight Dragging"
-msgstr "Підсвічувати перетягування"
-
-#: menus.c:739
-msgid "Highlight With Arrow"
-msgstr "Позначити за допомогою стрілки"
-
-#: menus.c:740
-msgid "Move Sound"
-msgstr "Звук ходу"
-
-#: menus.c:742
-msgid "Periodic Updates"
-msgstr "Періодичні оновлення"
-
-#: menus.c:744
-msgid "Popup Exit Message"
-msgstr "Показувати повідомлення щодо виходу"
-
-#: menus.c:746
-msgid "Show Coords"
-msgstr "Показати координати"
-
-#: menus.c:747
-msgid "Hide Thinking"
-msgstr "Приховувати обмірковування"
-
-#: menus.c:751
-msgid "Save Settings Now"
-msgstr "Зберегти параметри зараз"
-
-#: menus.c:752
-msgid "Save Settings on Exit"
-msgstr "Зберегти параметри при виході"
-
-#: menus.c:757
-msgid "Info XBoard"
-msgstr "Інформація з XBoard"
-
-#: menus.c:758
-msgid "Man XBoard"
-msgstr "Підручник з XBoard"
-
-#: menus.c:760
-msgid "XBoard Home Page"
-msgstr "Домашня сторінка XBoard"
-
-#: menus.c:761
-msgid "On-line User Guide"
-msgstr "Підручник користувача у інтернеті"
-
-#: menus.c:762
-msgid "Development News"
-msgstr "Новини щодо розробки"
-
-#: menus.c:763
-msgid "e-Mail Bug Report"
-msgstr "Надіслати звіт про ваду електронною поштою"
-
-#: menus.c:802
-msgid "File"
-msgstr "Файл"
-
-#: menus.c:803
-msgid "Edit"
-msgstr "Зміни"
-
-#: menus.c:804
-msgid "View"
-msgstr "Перегляд"
-
-#: menus.c:805
-msgid "Mode"
-msgstr "Режим"
-
-#: menus.c:806
-msgid "Action"
-msgstr "Дія"
-
-#: menus.c:807
-msgid "Engine"
-msgstr "Рушій"
-
-#: menus.c:808
-msgid "Options"
-msgstr "Параметри"
-
-#: menus.c:809
-msgid "Help"
-msgstr "Довідка"
-
-#: nengineoutput.c:79 nengineoutput.c:87
-msgid "engine name"
-msgstr "назва рушія"
-
-#. TRANSLATORS: noun, as in "the move Nf3"
-#: nengineoutput.c:82 nengineoutput.c:90
-msgid "move"
-msgstr "хід"
-
-#: nengineoutput.c:156
-msgid "Engine output"
-msgstr "Вивід рушія"
-
-#: nengineoutput.c:160
-msgid ""
-"Mismatch of STRIDE in nengineoutput.c\n"
-"Change and recompile!"
-msgstr ""
-"Невідповідність STRIDE у nengineoutput.c\n"
-"Змініть і зберіть програму знову!"
-
-#: nevalgraph.c:69
-msgid "Evaluation graph"
-msgstr "Граф оцінки позиції"
-
-#: nevalgraph.c:69
-msgid "Blunder graph"
-msgstr "Граф грубих помилок"
-
-#: nevalgraph.c:107
-msgid "Blunder"
-msgstr "Груба помилка"
-
-#: nevalgraph.c:107
-msgid "Eval"
-msgstr "Оцінка"
-
-#: ngamelist.c:87
-msgid "find position"
-msgstr "знайти позицію"
-
-#: ngamelist.c:88
-msgid "narrow"
-msgstr "звуження"
-
-#: ngamelist.c:89
-msgid "thresholds"
-msgstr "порогові значення"
-
-#: ngamelist.c:90
-msgid "tags"
-msgstr "мітки"
-
-#: ngamelist.c:91
-msgid "next"
-msgstr "далі"
-
-#: ngamelist.c:92
-msgid "close"
-msgstr "закрити"
-
-#: ngamelist.c:116
-msgid "No game selected"
-msgstr "Не вибрано гри"
-
-#: ngamelist.c:122
-msgid "Can't go forward any further"
-msgstr "Подальший рух вперед списком неможливий"
-
-#: ngamelist.c:192
-#, c-format
-msgid "Scanning through games (%d)"
-msgstr "Сканування списку ігор (%d)"
-
-#: ngamelist.c:211
-msgid "previous page"
-msgstr "попередня сторінка"
-
-#: ngamelist.c:214
-msgid "next page"
-msgstr "наступна сторінка"
-
-#: ngamelist.c:217
-msgid "no games matched your request"
-msgstr "вашому запиту не відповідає жодна гра"
-
-#: ngamelist.c:219
-#, c-format
-msgid "%s - %d/%d games (%d-%d-%d)"
-msgstr "%s — %d з %d ігор (%d-%d-%d)"
-
-#: ngamelist.c:284
-msgid "There is no game list"
-msgstr "Немає списку ходів гри"
-
-#: nhistory.c:109
-msgid "Move list"
-msgstr "Список ходів"
-
-#: usystem.c:223
-#, c-format
-msgid "%s: unrecognized color %s\n"
-msgstr "%s: нерозпізнаний колір %s\n"
-
-#: usystem.c:231
-#, c-format
-msgid "%s: can't parse foreground color in '%s'\n"
-msgstr "%s: не вдалося обробити колір тексту у «%s»\n"
-
-#: usystem.c:260
-#, c-format
-msgid "%s: can't parse color names; disabling colorization\n"
-msgstr "%s: не вдалося обробити назви кольорів; розфарбовування вимкнено\n"
-
-#: usystem.c:362
-#, c-format
-msgid "ERROR: Unknown user %s (in path %s)\n"
-msgstr "Помилка: невідомий користувач %s (шлях — %s)\n"
-
-#: usystem.c:564
-msgid "Socket support is not configured in"
-msgstr "Підтримку сокетів ще не налаштовано"
-
-#: usystem.c:653
-msgid "internal rcmd not implemented for Unix"
-msgstr "вбудований rcmd ще не реалізовано для Unix"
-
-#: xaw/xboard.c:1206
-#, c-format
-msgid "white pixel = 0x%lx, black pixel = 0x%lx\n"
-msgstr "білий піксель = 0x%lx, чорний піксель = 0x%lx\n"
-
-#: xaw/xoptions.c:378 xaw/xoptions.c:1082
-msgid "browse"
-msgstr "вибрати"
-
-#: xaw/xoptions.c:444 xaw/xoptions.c:445
-msgid "Ctrl"
-msgstr "Ctrl"
-
-#: xaw/xoptions.c:450 xaw/xoptions.c:451
-msgid "Alt"
-msgstr "Alt"
-
-#: xaw/xoptions.c:456 xaw/xoptions.c:457
-msgid "Shift"
-msgstr "Shift"
-
-#~ msgid "Common Engine..."
-#~ msgstr "Загальний рушій…"
-
-#~ msgid "    (for concurrent playing of a single"
-#~ msgstr "    (для одночасної гри окремого"
-
-#~ msgid "Match Options"
-#~ msgstr "Параметри партії"
-
-#~ msgid "Chat box"
-#~ msgstr "Панель спілкування"
-
-#~ msgid "Open Chat Window"
-#~ msgstr "Відкрити вікно спілкування"
-
-#~ msgid "ICS ..."
-#~ msgstr "ICS…"
-
-#~ msgid "Match ..."
-#~ msgstr "Партія…"
-
-#~ msgid "%s: Can't access XPM directory %s\n"
-#~ msgstr "%s: не вдалося отримати доступ до каталогу XPM %s\n"
-
-#~ msgid "Available `%s' sizes:\n"
-#~ msgstr "Доступні розміри «%s»:\n"
-
-#~ msgid "Error: No `%s' files!\n"
-#~ msgstr "Помилка: немає файлів «%s»!\n"
-
-#~ msgid ""
-#~ "Warning: No DIR structure found on this system --\n"
-#~ "         Unable to autosize for XPM/XIM pieces.\n"
-#~ "   Please report this error to %s.\n"
-#~ "   Include system type & operating system in message.\n"
-#~ msgstr ""
-#~ "Попередження: у системі не виявлено структури DIR —\n"
-#~ "         автоматична зміна розмірів фігур XPM/XIM неможлива.\n"
-#~ "   Будь ласка, повідомте про цю помилку на адресу %s.\n"
-#~ "   Включіть до повідомлення дані щодо типу та назви операційної системи.\n"
-
-#~ msgid "Error %d loading icon image\n"
-#~ msgstr "Помилка %d під час завантаження зображення піктограми\n"
-
-#~ msgid "cancel"
-#~ msgstr "скасувати"
-
-#~ msgid "recognized '%s' (%d) as variant %s\n"
-#~ msgstr "розпізнано «%s» (%d) як варіант %s\n"
-
-#~ msgid "Ratings from header: W %d, B %d\n"
-#~ msgstr "Рейтинги з заголовка: Б %d, Ч %d\n"
-
-#~ msgid "Parsing board: %s\n"
-#~ msgstr "Обробка дошки: %s\n"
-
-#~ msgid "Found unexpected active ICS engine analyze \n"
-#~ msgstr "Виявлено неочікуваний активний процес аналізу рушія ICS \n"
-
-#~ msgid "ICS engine analyze starting... \n"
-#~ msgstr "Розпочинаємо аналіз за допомогою рушія ICS… \n"
-
-#~ msgid ""
-#~ "resolved %s at pixel size %d\n"
-#~ "  to %s\n"
-#~ msgstr ""
-#~ "визначено %s з розміром у пікселях %d\n"
-#~ "  як %s\n"
-
-#~ msgid "New Game        Ctrl+N"
-#~ msgstr "Нова гра        Ctrl+N"
-
-#~ msgid "New Variant ...   Alt+Shift+V"
-#~ msgstr "Новий варіант…    Alt+Shift+V"
-
-#~ msgid "Load Game       Ctrl+O"
-#~ msgstr "Завантажити гру Ctrl+O"
-
-#~ msgid "Load Position    Ctrl+Shift+O"
-#~ msgstr "Завантажити позицію Ctrl+Shift+O"
-
-#~ msgid "Prev Position     Shift+PgUp"
-#~ msgstr "Попередня позиція Shift+PgUp"
-
-#~ msgid "Save Game       Ctrl+S"
-#~ msgstr "Зберегти гру    Ctrl+S"
-
-#~ msgid "Save Position    Ctrl+Shift+S"
-#~ msgstr "Зберегти позицію Ctrl+Shift+S"
-
-#~ msgid "Quit                 Ctr+Q"
-#~ msgstr "Вийти                Ctr+Q"
-
-#~ msgid "Copy Game    Ctrl+C"
-#~ msgstr "Копіювати гру Ctrl+C"
-
-#~ msgid "Edit Game      Ctrl+E"
-#~ msgstr "Редагувати гру Ctrl+E"
-
-#~ msgid "Edit Position   Ctrl+Shift+E"
-#~ msgstr "Редагувати позицію Ctrl+Shift+E"
-
-#~ msgid "Revert              Home"
-#~ msgstr "Скасувати           Домівка"
-
-#~ msgid "Backward         Alt+Left"
-#~ msgstr "Назад            Alt+Ліворуч"
-
-#~ msgid "Forward           Alt+Right"
-#~ msgstr "Вперед            Alt+Праворуч"
-
-#~ msgid "Back to Start     Alt+Home"
-#~ msgstr "Повернутися на початок Alt+Home"
-
-#~ msgid "Flip View             F2"
-#~ msgstr "Розвернути       F2"
-
-#~ msgid "Engine Output      Alt+Shift+O"
-#~ msgstr "Вивід рушія        Alt+Shift+O"
-
-#~ msgid "Move History       Alt+Shift+H"
-#~ msgstr "Журнал ходів       Alt+Shift+H"
-
-#~ msgid "Evaluation Graph  Alt+Shift+E"
-#~ msgstr "Граф оцінки позиції Alt+Shift+E"
-
-#~ msgid "Game List            Alt+Shift+G"
-#~ msgstr "Список ігор          Alt+Shift+G"
-
-#~ msgid "Machine Black  Ctrl+B"
-#~ msgstr "Комп’ютер-чорними Ctrl+B"
-
-#~ msgid "Edit Game         Ctrl+E"
-#~ msgstr "Редагувати гру    Ctrl+E"
-
-#~ msgid "Edit Position      Ctrl+Shift+E"
-#~ msgstr "Редагувати позицію Ctrl+Shift+E"
-
-#~ msgid "Pause               Pause"
-#~ msgstr "Призупинити         Pause"
-
-#~ msgid "Accept             F3"
-#~ msgstr "Прийняти           F3"
-
-#~ msgid "Decline            F4"
-#~ msgstr "Відхилити          F4"
-
-#~ msgid "Rematch           F12"
-#~ msgstr "Перегравання      F12"
-
-#~ msgid "Draw                F6"
-#~ msgstr "Нічия                F6"
-
-#~ msgid "Adjourn            F7"
-#~ msgstr "Відкласти          F7"
-
-#~ msgid "Abort                F8"
-#~ msgstr "Перервати            F8"
-
-#~ msgid "Resign              F9"
-#~ msgstr "Здатися             F9"
-
-#~ msgid "Move Now     Ctrl+M"
-#~ msgstr "Ходити       Ctrl+M"
-
-#~ msgid "Time Control ...       Alt+Shift+T"
-#~ msgstr "Керування часом…       Alt+Shift+T"
-
-#~ msgid "Always Queen        Ctrl+Shift+Q"
-#~ msgstr "Завжди королева     Ctrl+Shift+Q"
-
-#~ msgid "Animate Moving      Ctrl+Shift+A"
-#~ msgstr "Анімація ходів      Ctrl+Shift+A"
-
-#~ msgid "Auto Flag               Ctrl+Shift+F"
-#~ msgstr "Автопрапорець           Ctrl+Shift+F"
-
-#~ msgid "Ponder Next Move  Ctrl+Shift+P"
-#~ msgstr "Обдумати наступний хід Ctrl+Shift+P"
-
-#~ msgid "Hide Thinking        Ctrl+Shift+H"
-#~ msgstr "Сховати обмірковування Ctrl+Shift+H"
-
-#~ msgid "Test Legality          Ctrl+Shift+L"
-#~ msgstr "Перевірити коректність Ctrl+Shift+L"
-
-#~ msgid "Filter on extensions:"
-#~ msgstr "Фільтр суфіксів:"
-
-#~ msgid "Pathname:"
-#~ msgstr "Назва шляху:"
-
-#~ msgid "XsraSelFile: can't get current directory"
-#~ msgstr "XsraSelFile: не вдалося отримати назву поточного каталогу"
-
-#~ msgid "%s: titleWidget geometry error %d %d %d %d %d\n"
-#~ msgstr "%s: помилка у геометричних параметрах titleWidget — %d %d %d %d %d\n"
-
-#~ msgid "Error expanding path name \"%s\"\n"
-#~ msgstr "Помилка під час спроби розгортання адреси каталогу «%s»\n"
-
-#~ msgid ""
-#~ "XBoard square size (hint): %d\n"
-#~ "%s fulldir:%s:\n"
-#~ msgstr ""
-#~ "Розмір клітинки XBoard (hint): %d\n"
-#~ "%s fulldir:%s:\n"
-
-#~ msgid "Closest %s size: %d\n"
-#~ msgstr "Найближчий розмір %s: %d\n"
-
-#~ msgid "%s: messageWidget geometry error %d %d %d %d %d\n"
-#~ msgstr "%s: помилка у геометричних параметрах messageWidget — %d %d %d %d %d\n"
-
-#~ msgid "%s: error loading XIM!\n"
-#~ msgstr "%s: помилка завантаження XIM!\n"
-
-#~ msgid "XIM pieces cannot be used in monochrome mode"
-#~ msgstr "У монохромному режимі не можна користуватися фігурами XIM"
-
-#~ msgid ""
-#~ "\n"
-#~ "Loading XIMs...\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Завантаження XIM…\n"
-
-#~ msgid "(File:%s:) "
-#~ msgstr "(Файл:%s:) "
-
-#~ msgid "light square "
-#~ msgstr "світла клітинка "
-
-#~ msgid "dark square "
-#~ msgstr "темна клітинка "
-
-#~ msgid "Done.\n"
-#~ msgstr "Виконано.\n"
-
-#~ msgid "XPM pieces cannot be used in monochrome mode"
-#~ msgstr "У монохромному режимі не можна користуватися фігурами XPM"
-
-#~ msgid "No builtin XPM pieces of size %d\n"
-#~ msgstr "Немає вбудованих фігур XPM розміру %d\n"
-
-#~ msgid "Error %d loading XPM image \"%s\"\n"
-#~ msgstr "Помилка %d під час спроби завантаження зображення XPM «%s»\n"
-
-#~ msgid ""
-#~ "\n"
-#~ "Loading XPMs...\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Завантаження XPM…\n"
-
-#~ msgid "(Replace by File:%s:) "
-#~ msgstr "(Замінено на File:%s:) "
-
-#~ msgid "Error %d loading XPM file \"%s\"\n"
-#~ msgstr "Помилка %d під час спроби завантаження файла XPM «%s»\n"
-
-#~ msgid "Can't open bitmap file %s"
-#~ msgstr "Не вдалося відкрити файл растрового зображення %s"
-
-#~ msgid "Invalid bitmap in file %s"
-#~ msgstr "Некоректне растрове зображення у файлі %s"
-
-#~ msgid "Ran out of memory reading bitmap file %s"
-#~ msgstr "Під час читання растрового зображення %s було вичерпано обсяг пам’яті"
-
-#~ msgid "Unknown XReadBitmapFile error %d on file %s"
-#~ msgstr "Невідома помилка XReadBitmapFile %d під час обробки файла %s"
-
-#~ msgid "%s: %s...using built-in\n"
-#~ msgstr "%s: %s… використовуємо вбудоване\n"
-
-#~ msgid "%s: Bitmap %s is %dx%d, not %dx%d...using built-in\n"
-#~ msgstr "%s: розміри растрового зображення %s дорівнюють %dx%d, а не %dx%d… використовуємо вбудоване\n"
-
-#~ msgid "----"
-#~ msgstr "----"
-
-#~ msgid "Drop"
-#~ msgstr "Викинути"
-
-#~ msgid "could not open: "
-#~ msgstr "Не вдалося відкрити:"
-
-#~ msgid "Can't open file"
-#~ msgstr "Не вдалося відкрити файл"
-
-#~ msgid "Promotion"
-#~ msgstr "Заміна"
-
-#~ msgid "Promote to what?"
-#~ msgstr "На що замінити?"
-
-#~ msgid "ok"
-#~ msgstr "гаразд"
-
-#~ msgid "AskQuestionProc needed 4 parameters, got %d\n"
-#~ msgstr "AskQuestionProc потребує 4 параметрів, отримано %d\n"
-
-#~ msgid "enter"
-#~ msgstr "увійти"
-
-#~ msgid "This feature is experimental"
-#~ msgstr "Цю можливість ще не перевірено"
-
-#~ msgid "Filter:"
-#~ msgstr "Фільтр:"
-
-#~ msgid "filtertext"
-#~ msgstr "текст фільтрування"
-
-#~ msgid "apply"
-#~ msgstr "застосувати"
-
-#~ msgid "load"
-#~ msgstr "завантажити"
-
-#~ msgid "prev"
-#~ msgstr "попер"
-
-#~ msgid "Second Engine"
-#~ msgstr "Другий рушій"
-
-#~ msgid ""
-#~ "WARNING: variants with un-orthodox\n"
-#~ "pieces only have built-in bitmaps\n"
-#~ "for -boardSize middling, bulky and\n"
-#~ "petite, and substitute king or amazon\n"
-#~ "for missing bitmaps. (See manual.)"
-#~ msgstr ""
-#~ "УВАГА: для варіантів з неортодоксальними\n"
-#~ "фігурами використовуватимуться зображення\n"
-#~ "для -boardSize середнього, великого і\n"
-#~ "малого розмірів. Для фігур без зображень\n"
-#~ "буде використано зображення короля або\n"
-#~ "амазонки. (Див. підручник.)"
-
-#~ msgid "Directory with Bitmap Pieces:"
-#~ msgstr "Каталог bitmap фігур:"
-
-#~ msgid "AnimateMove: piece %d hops from %d,%d to %d,%d \n"
-#~ msgstr "Анімація ходів: фігура %d перестрибує з %d,%d до %d,%d \n"
-
-#~ msgid "AnimateMove: piece %d slides from %d,%d to %d,%d \n"
-#~ msgstr "Анімація ходів: фігура %d пересувається з %d,%d до %d,%d \n"
-
-#~ msgid "%s vs. %s"
-#~ msgstr "%s проти %s"
-
-#~ msgid "%s [%s] vs. %s [%s]"
-#~ msgstr "%s [%s] проти %s [%s]"
-
-#~ msgid "%s (%d) vs. %s (%d) {%d %d}"
-#~ msgstr "%s (%d) проти %s (%d) {%d %d}"
-
-#~ msgid "%s (%d) vs. %s (%d) {%d %d %s}"
-#~ msgstr "%s (%d) проти %s (%d) {%d %d %s}"
-
-#~ msgid "%s vs. %s (%d/%d%s)"
-#~ msgstr "%s проти %s (%d/%d%s)"
-
-#~ msgid "White "
-#~ msgstr "Білий "
-
-#~ msgid "Black "
-#~ msgstr "Чорний "
-
-#~ msgid "Close"
-#~ msgstr "Закрити"
-
-#~ msgid "off"
-#~ msgstr "вимкнено"
-
-#~ msgid "minutes for each"
-#~ msgstr "хвилин для кожного"
-
-#~ msgid " OK "
-#~ msgstr " Гаразд "
-
-#~ msgid "moves     "
-#~ msgstr "ходів     "
-
diff --git a/po/vi.po b/po/vi.po
deleted file mode 100644 (file)
index 53f0c08..0000000
--- a/po/vi.po
+++ /dev/null
@@ -1,3251 +0,0 @@
-# XBoard -- a graphical chessboard for X
-# Copyright (C) 1991 by Digital Equipment Corporation, Maynard, Massachusetts.
-# Enhancements Copyright (C) 1992-98 Free Software Foundation, Inc.
-# This file is distributed under the same license as the XBoard package.
-# , 2010
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: GNU xboard master-20110507\n"
-"Report-Msgid-Bugs-To: bug-xboard@gnu.org\n"
-"POT-Creation-Date: 2016-04-03 13:44-0700\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: vi\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: args.h:851
-#, c-format
-msgid "%s in settings file\n"
-msgstr ""
-
-#: args.h:885
-#, c-format
-msgid "Bad integer value %s"
-msgstr ""
-
-#: args.h:991 args.h:1252
-#, c-format
-msgid "Unrecognized argument %s"
-msgstr ""
-
-#: args.h:1022
-#, c-format
-msgid "No value provided for argument %s"
-msgstr ""
-
-#: args.h:1082
-#, c-format
-msgid "Incomplete \\ escape in value for %s"
-msgstr ""
-
-#: args.h:1193
-#, c-format
-msgid "Failed to open indirection file %s"
-msgstr ""
-
-#: args.h:1210
-#, c-format
-msgid "Unrecognized boolean argument value %s"
-msgstr ""
-
-#. TRANSLATORS: "first" is the first of possible two chess engines. It is inserted into strings
-#. such as "%s engine" / "%s chess program" / "%s machine" - all meaning the same thing
-#: backend.c:811
-msgid "first"
-msgstr ""
-
-#. TRANSLATORS: "second" is the second of possible two chess engines. It is inserted into strings
-#. such as "%s engine" / "%s chess program" / "%s machine" - all meaning the same thing
-#: backend.c:814
-msgid "second"
-msgstr ""
-
-#: backend.c:897
-#, c-format
-msgid "protocol version %d not supported"
-msgstr ""
-
-#: backend.c:1004
-msgid "You did not specify the engine executable"
-msgstr ""
-
-#: backend.c:1062
-#, c-format
-msgid "bad timeControl option %s"
-msgstr ""
-
-#: backend.c:1077
-#, c-format
-msgid "bad searchTime option %s"
-msgstr ""
-
-#: backend.c:1183
-#, c-format
-msgid "Variant %s supported only in ICS mode"
-msgstr ""
-
-#: backend.c:1201
-#, c-format
-msgid "Unknown variant name %s"
-msgstr ""
-
-#: backend.c:1456
-msgid "Starting chess program"
-msgstr ""
-
-#: backend.c:1479
-msgid "Bad game file"
-msgstr ""
-
-#: backend.c:1486
-msgid "Bad position file"
-msgstr ""
-
-#: backend.c:1500
-msgid "Pick new game"
-msgstr ""
-
-#: backend.c:1569
-msgid ""
-"You restarted an already completed tourney.\n"
-"One more cycle will now be added to it.\n"
-"Games commence in 10 sec."
-msgstr ""
-
-#: backend.c:1576
-#, c-format
-msgid "All games in tourney '%s' are already played or playing"
-msgstr ""
-
-#: backend.c:1583
-msgid "Can't have a match with no chess programs"
-msgstr ""
-
-#: backend.c:1637
-#, c-format
-msgid "Could not open comm port %s"
-msgstr ""
-
-#: backend.c:1640
-#, c-format
-msgid "Could not connect to host %s, port %s"
-msgstr ""
-
-#: backend.c:1696
-#, c-format
-msgid "Unknown initialMode %s"
-msgstr ""
-
-#: backend.c:1722
-msgid "AnalyzeFile mode requires a game file"
-msgstr ""
-
-#: backend.c:1755
-msgid "Analysis mode requires a chess engine"
-msgstr ""
-
-#: backend.c:1759
-msgid "Analysis mode does not work with ICS mode"
-msgstr ""
-
-#: backend.c:1770
-msgid "MachineWhite mode requires a chess engine"
-msgstr ""
-
-#: backend.c:1775
-msgid "MachineWhite mode does not work with ICS mode"
-msgstr ""
-
-#: backend.c:1782
-msgid "MachineBlack mode requires a chess engine"
-msgstr ""
-
-#: backend.c:1787
-msgid "MachineBlack mode does not work with ICS mode"
-msgstr ""
-
-#: backend.c:1794
-msgid "TwoMachines mode requires a chess engine"
-msgstr ""
-
-#: backend.c:1799
-msgid "TwoMachines mode does not work with ICS mode"
-msgstr ""
-
-#: backend.c:1810
-msgid "Training mode requires a game file"
-msgstr ""
-
-#: backend.c:1973 backend.c:2028 backend.c:2051 backend.c:2453
-msgid "Error writing to ICS"
-msgstr ""
-
-#: backend.c:1988
-msgid "Error reading from keyboard"
-msgstr ""
-
-#: backend.c:1991
-msgid "Got end of file from keyboard"
-msgstr ""
-
-#: backend.c:2299
-#, c-format
-msgid "Unknown wild type %d"
-msgstr ""
-
-#: backend.c:2370 usystem.c:317
-msgid "Error writing to display"
-msgstr ""
-
-#. TRANSLATORS: to 'kibitz' is to send a message to all players and the game observers
-#: backend.c:3138
-#, c-format
-msgid "your opponent kibitzes: %s"
-msgstr ""
-
-#: backend.c:3677
-msgid "Error gathering move list: two headers"
-msgstr ""
-
-#: backend.c:3724
-msgid "Error gathering move list: nested"
-msgstr ""
-
-#: backend.c:3828 backend.c:4254 backend.c:4458 backend.c:5017 backend.c:5021
-#: backend.c:7292 backend.c:13054 backend.c:14805 backend.c:14882
-#: backend.c:14928 backend.c:14934 backend.c:14939 backend.c:14944
-msgid "vs."
-msgstr ""
-
-#: backend.c:3956
-msgid "Illegal move (rejected by ICS)"
-msgstr ""
-
-#: backend.c:4302
-msgid "Connection closed by ICS"
-msgstr ""
-
-#: backend.c:4304
-msgid "Error reading from ICS"
-msgstr ""
-
-#: backend.c:4381
-#, c-format
-msgid ""
-"Failed to parse board string:\n"
-"\"%s\""
-msgstr ""
-
-#: backend.c:4390 backend.c:10628
-msgid "Game too long; increase MAX_MOVES and recompile"
-msgstr ""
-
-#: backend.c:4509
-msgid "Error gathering move list: extra board"
-msgstr ""
-
-#: backend.c:4941 backend.c:4963
-#, c-format
-msgid "Couldn't parse move \"%s\" from ICS"
-msgstr ""
-
-#: backend.c:5228
-#, c-format
-msgid "say Internal error; bad moveType %d (%d,%d-%d,%d)"
-msgstr ""
-
-#: backend.c:5299
-msgid "You cannot do this while you are playing or observing"
-msgstr ""
-
-#: backend.c:6359
-msgid "Recompile to support this BOARD_RANKS or BOARD_FILES!"
-msgstr ""
-
-#: backend.c:6851
-msgid "You are playing Black"
-msgstr ""
-
-#: backend.c:6860 backend.c:6888
-msgid "You are playing White"
-msgstr ""
-
-#: backend.c:6870 backend.c:6896 backend.c:7018 backend.c:7043 backend.c:7059
-#: backend.c:15645
-msgid "It is White's turn"
-msgstr ""
-
-#: backend.c:6874 backend.c:6900 backend.c:7026 backend.c:7049 backend.c:7081
-#: backend.c:15637
-msgid "It is Black's turn"
-msgstr ""
-
-#: backend.c:6913
-msgid "Displayed position is not current"
-msgstr ""
-
-#: backend.c:7116
-msgid "rights granted"
-msgstr ""
-
-#: backend.c:7116
-msgid "rights revoked"
-msgstr ""
-
-#: backend.c:7169
-msgid "Illegal move"
-msgstr ""
-
-#: backend.c:7249
-msgid "End of game"
-msgstr ""
-
-#: backend.c:7252
-msgid "Incorrect move"
-msgstr ""
-
-#: backend.c:7655 backend.c:7811
-msgid "Pull pawn backwards to under-promote"
-msgstr ""
-
-#: backend.c:7772
-msgid "only marked squares are legal"
-msgstr ""
-
-#: backend.c:8093
-msgid "Swiss tourney finished"
-msgstr ""
-
-#: backend.c:8609
-msgid "could not load EGBB library"
-msgstr ""
-
-#: backend.c:8612
-msgid "wrong EGBB version"
-msgstr ""
-
-#: backend.c:8725
-msgid "Invalid pairing from pairing engine"
-msgstr ""
-
-#: backend.c:8892
-#, c-format
-msgid "Illegal move \"%s\" from %s machine"
-msgstr ""
-
-#: backend.c:9179
-msgid "Bad FEN received from engine"
-msgstr ""
-
-#: backend.c:9280
-msgid "Engine did not send setup for non-standard variant"
-msgstr ""
-
-#: backend.c:9358 backend.c:14667 backend.c:14735
-#, c-format
-msgid "%s does not support analysis"
-msgstr ""
-
-#: backend.c:9424
-#, c-format
-msgid "Illegal move \"%s\" (rejected by %s chess program)"
-msgstr ""
-
-#: backend.c:9455
-#, c-format
-msgid "Failed to start %s chess program %s on %s: %s\n"
-msgstr ""
-
-#: backend.c:9476
-#, c-format
-msgid "Hint: %s"
-msgstr ""
-
-#: backend.c:9481
-#, c-format
-msgid ""
-"Illegal hint move \"%s\"\n"
-"from %s chess program"
-msgstr ""
-
-#: backend.c:9656
-msgid "Machine accepts your draw offer"
-msgstr ""
-
-#: backend.c:9659
-msgid ""
-"Machine offers a draw.\n"
-"Select Action / Draw to accept."
-msgstr ""
-
-#. TRANSLATORS: PV = principal variation, the variation the chess engine thinks is the best for everyone
-#: backend.c:9777
-msgid "failed writing PV"
-msgstr ""
-
-#: backend.c:10083
-#, c-format
-msgid "Ambiguous move in ICS output: \"%s\""
-msgstr ""
-
-#: backend.c:10093
-#, c-format
-msgid "Illegal move in ICS output: \"%s\""
-msgstr ""
-
-#: backend.c:10104
-msgid "Gap in move list"
-msgstr ""
-
-#: backend.c:10782
-#, c-format
-msgid "Variant %s not supported by %s"
-msgstr ""
-
-#: backend.c:10789
-#, c-format
-msgid ", but %s is"
-msgstr ""
-
-#: backend.c:10945
-#, c-format
-msgid "Startup failure on '%s'"
-msgstr ""
-
-#: backend.c:10976
-msgid "Waiting for first chess program"
-msgstr ""
-
-#: backend.c:10981 backend.c:14953
-msgid "Waiting for second chess program"
-msgstr ""
-
-#: backend.c:11030
-msgid "Could not write on tourney file"
-msgstr ""
-
-#: backend.c:11104
-msgid ""
-"You cannot replace an engine while it is engaged!\n"
-"Terminate its game first."
-msgstr ""
-
-#: backend.c:11118
-msgid "No engine with the name you gave is installed"
-msgstr ""
-
-#: backend.c:11120
-msgid ""
-"First change an engine by editing the participants list\n"
-"of the Tournament Options dialog"
-msgstr ""
-
-#: backend.c:11121
-msgid "You can only change one engine at the time"
-msgstr ""
-
-#: backend.c:11136 backend.c:11285
-#, c-format
-msgid "No engine %s is installed"
-msgstr ""
-
-#: backend.c:11156
-msgid ""
-"You must supply a tournament file,\n"
-"for storing the tourney progress"
-msgstr ""
-
-#: backend.c:11166
-msgid "Not enough participants"
-msgstr ""
-
-#: backend.c:11369
-msgid "Bad tournament file"
-msgstr ""
-
-#: backend.c:11381
-msgid "Waiting for other game(s)"
-msgstr ""
-
-#: backend.c:11394
-msgid "No pairing engine specified"
-msgstr ""
-
-#: backend.c:11879
-#, c-format
-msgid "Average solving time %4.2f sec (total time %4.2f sec) "
-msgstr ""
-
-#: backend.c:11881
-#, c-format
-msgid "%d avoid-moves played "
-msgstr ""
-
-#: backend.c:11883
-#, c-format
-msgid "Solved %d out of %d (%3.1f%%) "
-msgstr ""
-
-#: backend.c:11886
-#, c-format
-msgid "Match %s vs. %s: final score %d-%d-%d"
-msgstr ""
-
-#: backend.c:12363 backend.c:12399
-#, c-format
-msgid "Illegal move: %d.%s%s"
-msgstr ""
-
-#: backend.c:12388
-#, c-format
-msgid "Ambiguous move: %d.%s%s"
-msgstr ""
-
-#: backend.c:12442 backend.c:13495 backend.c:13695 backend.c:14065
-#, c-format
-msgid "Can't open \"%s\""
-msgstr ""
-
-#: backend.c:12454 menus.c:118
-msgid "Cannot build game list"
-msgstr ""
-
-#: backend.c:12539
-msgid "No more games in this message"
-msgstr ""
-
-#: backend.c:12579
-msgid "No game has been loaded yet"
-msgstr ""
-
-#: backend.c:12583 backend.c:13476 ngamelist.c:129
-msgid "Can't back up any further"
-msgstr ""
-
-#: backend.c:13030
-msgid "Game number out of range"
-msgstr ""
-
-#: backend.c:13041
-msgid "Can't seek on game file"
-msgstr ""
-
-#: backend.c:13099
-msgid "Game not found in file"
-msgstr ""
-
-#: backend.c:13230 backend.c:13573
-msgid "Bad FEN position in file"
-msgstr ""
-
-#: backend.c:13388
-msgid "No moves in game"
-msgstr ""
-
-#: backend.c:13472
-msgid "No position has been loaded yet"
-msgstr ""
-
-#: backend.c:13533 backend.c:13544
-msgid "Can't seek on position file"
-msgstr ""
-
-#: backend.c:13551 backend.c:13563
-msgid "Position not found in file"
-msgstr ""
-
-#: backend.c:13610
-msgid "Black to play"
-msgstr ""
-
-#: backend.c:13613
-msgid "White to play"
-msgstr ""
-
-#: backend.c:13700 backend.c:14070
-msgid "Waiting for access to save file"
-msgstr ""
-
-#: backend.c:13702
-msgid "Saving game"
-msgstr ""
-
-#: backend.c:13703
-msgid "Bad Seek"
-msgstr ""
-
-#: backend.c:14072
-msgid "Saving position"
-msgstr ""
-
-#: backend.c:14198
-msgid ""
-"You have edited the game history.\n"
-"Use Reload Same Game and make your move again."
-msgstr ""
-
-#: backend.c:14203
-msgid ""
-"You have entered too many moves.\n"
-"Back up to the correct position and try again."
-msgstr ""
-
-#: backend.c:14208
-msgid ""
-"Displayed position is not current.\n"
-"Step forward to the correct position and try again."
-msgstr ""
-
-#: backend.c:14255
-msgid "You have not made a move yet"
-msgstr ""
-
-#: backend.c:14276
-msgid ""
-"The cmail message is not loaded.\n"
-"Use Reload CMail Message and make your move again."
-msgstr ""
-
-#: backend.c:14281
-msgid "No unfinished games"
-msgstr ""
-
-#: backend.c:14287
-#, c-format
-msgid ""
-"You have already mailed a move.\n"
-"Wait until a move arrives from your opponent.\n"
-"To resend the same move, type\n"
-"\"cmail -remail -game %s\"\n"
-"on the command line."
-msgstr ""
-
-#: backend.c:14302
-msgid "Failed to invoke cmail"
-msgstr ""
-
-#: backend.c:14364
-#, c-format
-msgid "Waiting for reply from opponent\n"
-msgstr ""
-
-#: backend.c:14386
-#, c-format
-msgid "Still need to make move for game\n"
-msgstr ""
-
-#: backend.c:14390
-#, c-format
-msgid "Still need to make moves for both games\n"
-msgstr ""
-
-#: backend.c:14394
-#, c-format
-msgid "Still need to make moves for all %d games\n"
-msgstr ""
-
-#: backend.c:14401
-#, c-format
-msgid "Still need to make a move for game %s\n"
-msgstr ""
-
-#: backend.c:14407
-#, c-format
-msgid "No unfinished games\n"
-msgstr ""
-
-#: backend.c:14409
-#, c-format
-msgid "Ready to send mail\n"
-msgstr ""
-
-#: backend.c:14414
-#, c-format
-msgid "Still need to make moves for games %s\n"
-msgstr ""
-
-#: backend.c:14617
-msgid "Edit comment"
-msgstr ""
-
-#: backend.c:14619
-#, c-format
-msgid "Edit comment on %d.%s%s"
-msgstr ""
-
-#: backend.c:14674
-#, c-format
-msgid "You are not observing a game"
-msgstr ""
-
-#: backend.c:14785
-msgid "It is not White's turn"
-msgstr ""
-
-#: backend.c:14866
-msgid "It is not Black's turn"
-msgstr ""
-
-#: backend.c:14974
-#, c-format
-msgid "Starting %s chess program"
-msgstr ""
-
-#: backend.c:15002 backend.c:16189
-msgid ""
-"Wait until your turn,\n"
-"or select 'Move Now'."
-msgstr ""
-
-#: backend.c:15145
-msgid "Training mode off"
-msgstr ""
-
-#: backend.c:15153
-msgid "Training mode on"
-msgstr ""
-
-#: backend.c:15156
-msgid "Already at end of game"
-msgstr ""
-
-#: backend.c:15246
-msgid "Warning: You are still playing a game"
-msgstr ""
-
-#: backend.c:15249
-msgid "Warning: You are still observing a game"
-msgstr ""
-
-#: backend.c:15252
-msgid "Warning: You are still examining a game"
-msgstr ""
-
-#: backend.c:15322
-msgid "Click clock to clear board"
-msgstr ""
-
-#: backend.c:15332
-msgid "Close ICS engine analyze..."
-msgstr ""
-
-#: backend.c:15662
-msgid "That square is occupied"
-msgstr ""
-
-#: backend.c:15686 backend.c:15712
-msgid "There is no pending offer on this move"
-msgstr ""
-
-#: backend.c:15748 backend.c:15759
-msgid "Your opponent is not out of time"
-msgstr ""
-
-#: backend.c:15827
-msgid "You must make your move before offering a draw"
-msgstr ""
-
-#: backend.c:16171
-msgid "You are not examining a game"
-msgstr ""
-
-#: backend.c:16175
-msgid "You can't revert while pausing"
-msgstr ""
-
-#: backend.c:16229 backend.c:16236
-msgid "It is your turn"
-msgstr ""
-
-#: backend.c:16287 backend.c:16294 backend.c:16380 backend.c:16387
-msgid "Wait until your turn."
-msgstr ""
-
-#: backend.c:16299
-msgid "No hint available"
-msgstr ""
-
-#: backend.c:16314 backend.c:16345 ngamelist.c:365
-msgid "Game list not loaded or empty"
-msgstr ""
-
-#: backend.c:16352
-msgid "Book file exists! Try again for overwrite."
-msgstr ""
-
-#: backend.c:16833
-#, c-format
-msgid "Error writing to %s chess program"
-msgstr ""
-
-#: backend.c:16836 backend.c:16867
-#, c-format
-msgid "%s program exits in draw position (%s)"
-msgstr ""
-
-#: backend.c:16862
-#, c-format
-msgid "Error: %s chess program (%s) exited unexpectedly"
-msgstr ""
-
-#: backend.c:16880
-#, c-format
-msgid "Error reading from %s chess program (%s)"
-msgstr ""
-
-#: backend.c:17312
-#, c-format
-msgid "%s engine has too many options\n"
-msgstr ""
-
-#: backend.c:17468
-msgid "Displayed move is not current"
-msgstr ""
-
-#: backend.c:17477
-msgid "Could not parse move"
-msgstr ""
-
-#: backend.c:17602 backend.c:17624
-msgid "Both flags fell"
-msgstr ""
-
-#: backend.c:17604
-msgid "White's flag fell"
-msgstr ""
-
-#: backend.c:17626
-msgid "Black's flag fell"
-msgstr ""
-
-#: backend.c:17757
-msgid "Clock adjustment not allowed in auto-flag mode"
-msgstr ""
-
-#: backend.c:18719
-msgid "Bad FEN position in clipboard"
-msgstr ""
-
-#: book.c:598 book.c:874
-msgid "Polyglot book not valid"
-msgstr ""
-
-#: book.c:722
-msgid "Book Fault"
-msgstr ""
-
-#: book.c:877
-msgid "Hash keys are different"
-msgstr ""
-
-#: book.c:1053
-msgid "Could not create book"
-msgstr ""
-
-#: dialogs.c:286
-#, fuzzy
-msgid "Tournament file:          "
-msgstr "   F7"
-
-#: dialogs.c:287
-msgid "For concurrent playing of tourney with multiple XBoards:"
-msgstr ""
-
-#: dialogs.c:288
-msgid "Sync after round"
-msgstr ""
-
-#: dialogs.c:289
-msgid "Sync after cycle"
-msgstr ""
-
-#: dialogs.c:290
-msgid "Tourney participants:"
-msgstr ""
-
-#: dialogs.c:291
-msgid "Select Engine:"
-msgstr ""
-
-#: dialogs.c:299
-msgid "Tourney type (0 = round-robin, 1 = gauntlet):"
-msgstr ""
-
-#: dialogs.c:300
-msgid "Number of tourney cycles (or Swiss rounds):"
-msgstr ""
-
-#: dialogs.c:301
-msgid "Default Number of Games in Match (or Pairing):"
-msgstr ""
-
-#: dialogs.c:302
-msgid "Pause between Match Games (msec):"
-msgstr ""
-
-#: dialogs.c:303
-msgid "Save Tourney Games on:"
-msgstr ""
-
-#: dialogs.c:304
-msgid "Game File with Opening Lines:"
-msgstr ""
-
-#: dialogs.c:305
-msgid "Game Number (-1 or -2 = Auto-Increment):"
-msgstr ""
-
-#: dialogs.c:306
-msgid "File with Start Positions:"
-msgstr ""
-
-#: dialogs.c:307
-msgid "Position Number (-1 or -2 = Auto-Increment):"
-msgstr ""
-
-#: dialogs.c:308
-msgid "Rewind Index after this many Games (0 = never):"
-msgstr ""
-
-#: dialogs.c:309
-msgid "Disable own engine books by default"
-msgstr ""
-
-#: dialogs.c:310 dialogs.c:1840
-msgid "Time Control"
-msgstr ""
-
-#: dialogs.c:311
-#, fuzzy
-msgid "Common Engine"
-msgstr "Chương Trình Cờ Chung...   Alt+Shift+U"
-
-#: dialogs.c:312 dialogs.c:446
-msgid "General Options"
-msgstr "Các Lựa Chọn Chung"
-
-#: dialogs.c:313
-msgid "Continue Later"
-msgstr ""
-
-#: dialogs.c:314
-msgid "Replace Engine"
-msgstr ""
-
-#: dialogs.c:315
-msgid "Upgrade Engine"
-msgstr ""
-
-#: dialogs.c:316
-msgid "Clone Tourney"
-msgstr ""
-
-#: dialogs.c:356
-msgid "First you must specify an existing tourney file to clone"
-msgstr ""
-
-#: dialogs.c:372 dialogs.c:1549
-msgid "# no engines are installed"
-msgstr ""
-
-#: dialogs.c:380
-msgid "Internal error: PARTICIPANTS set wrong"
-msgstr ""
-
-#: dialogs.c:388
-#, fuzzy
-msgid "Tournament Options"
-msgstr "Âm thanh"
-
-#: dialogs.c:407
-msgid "Absolute Analysis Scores"
-msgstr ""
-
-#: dialogs.c:408
-msgid "Almost Always Queen (Detour Under-Promote)"
-msgstr ""
-
-#: dialogs.c:409 menus.c:729
-msgid "Animate Dragging"
-msgstr ""
-
-#: dialogs.c:410 menus.c:730
-msgid "Animate Moving"
-msgstr ""
-
-#: dialogs.c:411 menus.c:731
-msgid "Auto Flag"
-msgstr "Tự Động Đặt Cờ"
-
-#: dialogs.c:412 menus.c:732
-msgid "Auto Flip View"
-msgstr "Tự Động Xoay Bàn Cờ"
-
-#: dialogs.c:413 menus.c:733
-msgid "Blindfold"
-msgstr "Mù Quáng"
-
-#. TRANSLATORS: the drop menu is used to drop a piece, e.g. during bughouse or editing a position
-#: dialogs.c:415
-msgid "Drop Menu"
-msgstr ""
-
-#: dialogs.c:416
-msgid "Enable Variation Trees"
-msgstr ""
-
-#: dialogs.c:417
-msgid "Headers in Engine Output Window"
-msgstr ""
-
-#: dialogs.c:418
-msgid "Hide Thinking from Human"
-msgstr ""
-
-#: dialogs.c:419 menus.c:738
-msgid "Highlight Last Move"
-msgstr "Đánh Dấu Nước Cuối"
-
-#: dialogs.c:420
-msgid "Highlight with Arrow"
-msgstr "Đánh Dấu Với Mũi Tên"
-
-#: dialogs.c:421 menus.c:741
-msgid "One-Click Moving"
-msgstr "Đi Quân Với Chỉ Một Bấm"
-
-#: dialogs.c:422
-msgid "Periodic Updates (in Analysis Mode)"
-msgstr ""
-
-#: dialogs.c:424
-msgid "Play Move(s) of Clicked PV (Analysis)"
-msgstr ""
-
-#: dialogs.c:425 dialogs.c:626 menus.c:743
-msgid "Ponder Next Move"
-msgstr ""
-
-#: dialogs.c:426
-msgid "Popup Exit Messages"
-msgstr "Bật Cửa Sổ Thoát Chương trình"
-
-#: dialogs.c:427 menus.c:745
-msgid "Popup Move Errors"
-msgstr "Bật Cửa Sổ Lỗi Nước Đi"
-
-#: dialogs.c:428
-msgid "Scores in Move List"
-msgstr ""
-
-#: dialogs.c:429
-msgid "Show Coordinates"
-msgstr "Hiện Tọa Độ"
-
-#: dialogs.c:430
-msgid "Show Target Squares"
-msgstr ""
-
-#: dialogs.c:431
-msgid "Sticky Windows"
-msgstr ""
-
-#: dialogs.c:432 menus.c:748
-msgid "Test Legality"
-msgstr "Kiểm Tra Hợp Lệ"
-
-#: dialogs.c:433
-msgid "Top-Level Dialogs"
-msgstr ""
-
-#: dialogs.c:434
-msgid "Flash Moves (0 = no flashing):"
-msgstr ""
-
-#: dialogs.c:435
-msgid "Flash Rate (high = fast):"
-msgstr ""
-
-#: dialogs.c:436
-msgid "Animation Speed (high = slow):"
-msgstr ""
-
-#: dialogs.c:437
-msgid "Zoom factor in Evaluation Graph:"
-msgstr ""
-
-#: dialogs.c:457
-msgid "Normal"
-msgstr ""
-
-#: dialogs.c:458
-msgid "Makruk"
-msgstr ""
-
-#: dialogs.c:459
-msgid "FRC"
-msgstr ""
-
-#: dialogs.c:460
-msgid "Shatranj"
-msgstr ""
-
-#: dialogs.c:461
-msgid "Wild castle"
-msgstr ""
-
-#: dialogs.c:462
-#, fuzzy
-msgid "Knightmate"
-msgstr "Mã"
-
-#: dialogs.c:463
-msgid "No castle"
-msgstr ""
-
-#: dialogs.c:464
-msgid "Cylinder *"
-msgstr ""
-
-#: dialogs.c:465
-msgid "3-checks"
-msgstr ""
-
-#: dialogs.c:466
-msgid "berolina *"
-msgstr ""
-
-#: dialogs.c:467
-msgid "atomic"
-msgstr ""
-
-#: dialogs.c:468
-msgid "two kings"
-msgstr ""
-
-#: dialogs.c:469
-msgid " "
-msgstr ""
-
-#: dialogs.c:470
-msgid "Spartan"
-msgstr ""
-
-#: dialogs.c:471
-msgid "Board size ( -1 = default for selected variant):"
-msgstr ""
-
-#: dialogs.c:472
-msgid "Number of Board Ranks:"
-msgstr ""
-
-#: dialogs.c:473
-msgid "Number of Board Files:"
-msgstr ""
-
-#: dialogs.c:474
-msgid "Holdings Size:"
-msgstr ""
-
-#: dialogs.c:476
-msgid ""
-"Variants marked with * can only be played\n"
-"with legality testing off."
-msgstr ""
-
-#: dialogs.c:478
-msgid "ASEAN"
-msgstr ""
-
-#: dialogs.c:479
-msgid "Great Shatranj (10x8)"
-msgstr ""
-
-#: dialogs.c:480
-msgid "Seirawan"
-msgstr ""
-
-#: dialogs.c:481
-msgid "Falcon (10x8)"
-msgstr ""
-
-#: dialogs.c:482
-msgid "Superchess"
-msgstr ""
-
-#: dialogs.c:483
-msgid "Capablanca (10x8)"
-msgstr ""
-
-#: dialogs.c:484
-msgid "Crazyhouse"
-msgstr ""
-
-#: dialogs.c:485
-msgid "Gothic (10x8)"
-msgstr ""
-
-#: dialogs.c:486
-msgid "Bughouse"
-msgstr ""
-
-#: dialogs.c:487
-msgid "Janus (10x8)"
-msgstr ""
-
-#: dialogs.c:488
-msgid "Suicide"
-msgstr ""
-
-#: dialogs.c:489
-msgid "CRC (10x8)"
-msgstr ""
-
-#: dialogs.c:490
-msgid "give-away"
-msgstr ""
-
-#: dialogs.c:491
-msgid "grand (10x10)"
-msgstr ""
-
-#: dialogs.c:492
-msgid "losers"
-msgstr ""
-
-#: dialogs.c:493
-msgid "shogi (9x9)"
-msgstr ""
-
-#: dialogs.c:494
-msgid "fairy"
-msgstr ""
-
-#: dialogs.c:495
-msgid "xiangqi (9x10)"
-msgstr ""
-
-#: dialogs.c:496
-msgid "mighty lion"
-msgstr ""
-
-#: dialogs.c:497
-msgid "courier (12x8)"
-msgstr ""
-
-#: dialogs.c:498
-msgid "elven chess (10x10)"
-msgstr ""
-
-#: dialogs.c:499
-msgid "chu shogi (12x12)"
-msgstr ""
-
-#: dialogs.c:543
-#, c-format
-msgid "Warning: second engine (%s) does not support this!"
-msgstr ""
-
-#: dialogs.c:572
-#, c-format
-msgid "Only bughouse is not available in viewer mode."
-msgstr ""
-
-#: dialogs.c:573
-#, c-format
-msgid ""
-"All variants not supported by the first engine\n"
-"(currently %s) are disabled."
-msgstr ""
-
-#: dialogs.c:595
-msgid "New Variant"
-msgstr ""
-
-#: dialogs.c:627
-msgid "Maximum Number of CPUs per Engine:"
-msgstr ""
-
-#: dialogs.c:628
-msgid "Polygot Directory:"
-msgstr ""
-
-#: dialogs.c:629
-msgid "Hash-Table Size (MB):"
-msgstr ""
-
-#: dialogs.c:630
-msgid "EGTB Path:"
-msgstr ""
-
-#: dialogs.c:631
-msgid "EGTB Cache Size (MB):"
-msgstr ""
-
-#: dialogs.c:632
-msgid "Use GUI Book"
-msgstr ""
-
-#: dialogs.c:633
-msgid "Opening-Book Filename:"
-msgstr ""
-
-#: dialogs.c:634
-msgid "Book Depth (moves):"
-msgstr ""
-
-#: dialogs.c:635
-msgid "Book Variety (0) vs. Strength (100):"
-msgstr ""
-
-#: dialogs.c:636
-msgid "Engine #1 Has Own Book"
-msgstr ""
-
-#: dialogs.c:637
-msgid "Engine #2 Has Own Book          "
-msgstr ""
-
-#: dialogs.c:648
-msgid "Common Engine Settings"
-msgstr ""
-
-#: dialogs.c:654
-msgid "Detect all Mates"
-msgstr ""
-
-#: dialogs.c:655
-msgid "Verify Engine Result Claims"
-msgstr ""
-
-#: dialogs.c:656
-msgid "Draw if Insufficient Mating Material"
-msgstr ""
-
-#: dialogs.c:657
-msgid "Adjudicate Trivial Draws (3-Move Delay)"
-msgstr ""
-
-#: dialogs.c:658
-msgid "N-Move Rule:"
-msgstr ""
-
-#: dialogs.c:659
-msgid "N-fold Repeats:"
-msgstr ""
-
-#: dialogs.c:660
-msgid "Draw after N Moves Total:"
-msgstr ""
-
-#: dialogs.c:661
-msgid "Win / Loss Threshold:"
-msgstr ""
-
-#: dialogs.c:662
-msgid "Negate Score of Engine #1"
-msgstr ""
-
-#: dialogs.c:663
-msgid "Negate Score of Engine #2"
-msgstr ""
-
-#: dialogs.c:670
-#, fuzzy
-msgid "Adjudicate non-ICS Games"
-msgstr "Phân Xử Trắng Thắng"
-
-#: dialogs.c:683
-msgid "Auto-Kibitz"
-msgstr ""
-
-#: dialogs.c:684
-msgid "Auto-Comment"
-msgstr ""
-
-#: dialogs.c:685
-msgid "Auto-Observe"
-msgstr ""
-
-#: dialogs.c:686
-msgid "Auto-Raise Board"
-msgstr "Tự Động Hiện Bàn Cờ"
-
-#: dialogs.c:687
-msgid "Auto-Create Logon Script"
-msgstr ""
-
-#: dialogs.c:688
-msgid "Background Observe while Playing"
-msgstr ""
-
-#: dialogs.c:689
-msgid "Dual Board for Background-Observed Game"
-msgstr ""
-
-#: dialogs.c:690
-msgid "Get Move List"
-msgstr ""
-
-#: dialogs.c:691
-msgid "Quiet Play"
-msgstr ""
-
-#: dialogs.c:692
-msgid "Seek Graph"
-msgstr ""
-
-#: dialogs.c:693
-msgid "Auto-Refresh Seek Graph"
-msgstr ""
-
-#: dialogs.c:694
-msgid "Auto-InputBox PopUp"
-msgstr ""
-
-#: dialogs.c:695
-msgid "Quit after game"
-msgstr ""
-
-#: dialogs.c:696
-msgid "Premove"
-msgstr ""
-
-#: dialogs.c:697
-msgid "Premove for White"
-msgstr ""
-
-#: dialogs.c:698
-msgid "First White Move:"
-msgstr ""
-
-#: dialogs.c:699
-msgid "Premove for Black"
-msgstr ""
-
-#: dialogs.c:700
-msgid "First Black Move:"
-msgstr ""
-
-#: dialogs.c:702
-msgid "Alarm"
-msgstr ""
-
-#: dialogs.c:703
-msgid "Alarm Time (msec):"
-msgstr ""
-
-#: dialogs.c:705
-msgid "Colorize Messages"
-msgstr ""
-
-#: dialogs.c:706
-msgid "Shout Text Colors:"
-msgstr ""
-
-#: dialogs.c:707
-msgid "S-Shout Text Colors:"
-msgstr ""
-
-#: dialogs.c:708
-msgid "Channel #1 Text Colors:"
-msgstr ""
-
-#: dialogs.c:709
-msgid "Other Channel Text Colors:"
-msgstr ""
-
-#: dialogs.c:710
-msgid "Kibitz Text Colors:"
-msgstr ""
-
-#: dialogs.c:711
-msgid "Tell Text Colors:"
-msgstr ""
-
-#: dialogs.c:712
-msgid "Challenge Text Colors:"
-msgstr ""
-
-#: dialogs.c:713
-msgid "Request Text Colors:"
-msgstr ""
-
-#: dialogs.c:714
-msgid "Seek Text Colors:"
-msgstr ""
-
-#: dialogs.c:715
-msgid "Other Text Colors:"
-msgstr ""
-
-#: dialogs.c:722
-msgid "ICS Options"
-msgstr ""
-
-#: dialogs.c:727
-msgid "Exact position match"
-msgstr ""
-
-#: dialogs.c:727
-msgid "Shown position is subset"
-msgstr ""
-
-#: dialogs.c:727
-msgid "Same material with exactly same Pawn chain"
-msgstr ""
-
-#: dialogs.c:728
-msgid "Same material"
-msgstr ""
-
-#: dialogs.c:728
-msgid "Material range (top board half optional)"
-msgstr ""
-
-#: dialogs.c:728
-msgid "Material difference (optional stuff balanced)"
-msgstr ""
-
-#: dialogs.c:743
-msgid "Auto-Display Tags"
-msgstr ""
-
-#: dialogs.c:744
-msgid "Auto-Display Comment"
-msgstr ""
-
-#: dialogs.c:745
-msgid ""
-"Auto-Play speed of loaded games\n"
-"(0 = instant, -1 = off):"
-msgstr ""
-
-#: dialogs.c:746
-msgid "Seconds per Move:"
-msgstr ""
-
-#: dialogs.c:747
-msgid ""
-"\n"
-"options to use in game-viewer mode:"
-msgstr ""
-
-#: dialogs.c:749
-msgid ""
-"\n"
-"Thresholds for position filtering in game list:"
-msgstr ""
-
-#: dialogs.c:750
-msgid "Elo of strongest player at least:"
-msgstr ""
-
-#: dialogs.c:751
-msgid "Elo of weakest player at least:"
-msgstr ""
-
-#: dialogs.c:752
-msgid "No games before year:"
-msgstr ""
-
-#: dialogs.c:753
-msgid "Minimum nr consecutive positions:"
-msgstr ""
-
-#: dialogs.c:755
-msgid "Search mode:"
-msgstr ""
-
-#: dialogs.c:756
-msgid "Also match reversed colors"
-msgstr ""
-
-#: dialogs.c:757
-msgid "Also match left-right flipped position"
-msgstr ""
-
-#: dialogs.c:766
-msgid "Load Game Options"
-msgstr "Các Lựa Chọn Tải Ván Cờ"
-
-#: dialogs.c:778
-msgid "Auto-Save Games"
-msgstr ""
-
-#: dialogs.c:779
-msgid "Own Games Only"
-msgstr ""
-
-#: dialogs.c:780
-msgid "Save Games on File:"
-msgstr ""
-
-#: dialogs.c:781
-msgid "Save Final Positions on File:"
-msgstr ""
-
-#: dialogs.c:782
-msgid "PGN Event Header:"
-msgstr ""
-
-#: dialogs.c:783
-msgid "Old Save Style (as opposed to PGN)"
-msgstr ""
-
-#: dialogs.c:784
-msgid "Include Number Tag in tourney PGN"
-msgstr ""
-
-#: dialogs.c:785
-msgid "Save Score/Depth Info in PGN"
-msgstr ""
-
-#: dialogs.c:786
-msgid "Save Out-of-Book Info in PGN           "
-msgstr ""
-
-#: dialogs.c:793
-msgid "Save Game Options"
-msgstr "Các Lựa Chọn Lưu Ván Cờ"
-
-#: dialogs.c:802
-msgid "No Sound"
-msgstr "Không âm thanh"
-
-#: dialogs.c:803
-msgid "Default Beep"
-msgstr "Tiếng tút ngầm định"
-
-#: dialogs.c:804
-msgid "Above WAV File"
-msgstr ""
-
-#: dialogs.c:805
-msgid "Car Horn"
-msgstr ""
-
-#: dialogs.c:806
-msgid "Cymbal"
-msgstr ""
-
-#: dialogs.c:807
-msgid "Ding"
-msgstr ""
-
-#: dialogs.c:808
-msgid "Gong"
-msgstr ""
-
-#: dialogs.c:809
-msgid "Laser"
-msgstr ""
-
-#: dialogs.c:810
-msgid "Penalty"
-msgstr ""
-
-#: dialogs.c:811
-msgid "Phone"
-msgstr ""
-
-#: dialogs.c:812
-msgid "Pop"
-msgstr ""
-
-#: dialogs.c:813
-msgid "Roar"
-msgstr ""
-
-#: dialogs.c:814
-msgid "Slap"
-msgstr ""
-
-#: dialogs.c:815
-msgid "Wood Thunk"
-msgstr ""
-
-#: dialogs.c:817
-msgid "User File"
-msgstr ""
-
-#: dialogs.c:840
-msgid "User WAV File:"
-msgstr ""
-
-#: dialogs.c:841
-msgid "Sound Program:"
-msgstr ""
-
-#: dialogs.c:842
-msgid "Try-Out Sound:"
-msgstr ""
-
-#: dialogs.c:843
-msgid "Play"
-msgstr "Chơi"
-
-#: dialogs.c:844
-msgid "Move:"
-msgstr ""
-
-#: dialogs.c:845
-msgid "Win:"
-msgstr ""
-
-#: dialogs.c:846
-msgid "Lose:"
-msgstr ""
-
-#: dialogs.c:847
-msgid "Draw:"
-msgstr ""
-
-#: dialogs.c:848
-msgid "Unfinished:"
-msgstr ""
-
-#: dialogs.c:849
-msgid "Alarm:"
-msgstr ""
-
-#: dialogs.c:850
-msgid "Challenge:"
-msgstr ""
-
-#: dialogs.c:852
-msgid "Sounds Directory:"
-msgstr ""
-
-#: dialogs.c:853
-msgid "Shout:"
-msgstr ""
-
-#: dialogs.c:854
-msgid "S-Shout:"
-msgstr ""
-
-#: dialogs.c:855
-msgid "Channel:"
-msgstr ""
-
-#: dialogs.c:856
-msgid "Channel 1:"
-msgstr ""
-
-#: dialogs.c:857
-msgid "Tell:"
-msgstr ""
-
-#: dialogs.c:858
-msgid "Kibitz:"
-msgstr ""
-
-#: dialogs.c:859
-msgid "Request:"
-msgstr ""
-
-#: dialogs.c:860
-msgid "Lion roar:"
-msgstr ""
-
-#: dialogs.c:861
-msgid "Seek:"
-msgstr ""
-
-#: dialogs.c:877
-msgid "Sound Options"
-msgstr "Âm thanh"
-
-#: dialogs.c:893
-msgid "Selectable themes:"
-msgstr ""
-
-#: dialogs.c:895
-msgid "New name for current theme:"
-msgstr ""
-
-#: dialogs.c:898
-msgid "White Piece Color:"
-msgstr ""
-
-#. TRANSLATORS: R = single letter for the color red
-#: dialogs.c:901 dialogs.c:910 dialogs.c:916 dialogs.c:922 dialogs.c:928
-#: dialogs.c:934
-msgid "R"
-msgstr ""
-
-#. TRANSLATORS: G = single letter for the color green
-#: dialogs.c:903 dialogs.c:911 dialogs.c:917 dialogs.c:923 dialogs.c:929
-#: dialogs.c:935
-msgid "G"
-msgstr ""
-
-#. TRANSLATORS: B = single letter for the color blue
-#: dialogs.c:905 dialogs.c:912 dialogs.c:918 dialogs.c:924 dialogs.c:930
-#: dialogs.c:936 dialogs.c:1650 dialogs.c:1656 dialogs.c:1662 dialogs.c:1668
-#: dialogs.c:1674 dialogs.c:1680 dialogs.c:1686
-msgid "B"
-msgstr ""
-
-#. TRANSLATORS: D = single letter to make a color darker
-#: dialogs.c:907 dialogs.c:913 dialogs.c:919 dialogs.c:925 dialogs.c:931
-#: dialogs.c:937
-msgid "D"
-msgstr ""
-
-#: dialogs.c:908
-msgid "Black Piece Color:"
-msgstr ""
-
-#: dialogs.c:914
-msgid "Light Square Color:"
-msgstr ""
-
-#: dialogs.c:920
-msgid "Dark Square Color:"
-msgstr ""
-
-#: dialogs.c:926
-msgid "Highlight Color:"
-msgstr ""
-
-#: dialogs.c:932
-msgid "Premove Highlight Color:"
-msgstr ""
-
-#: dialogs.c:938
-msgid "Flip Pieces Shogi Style        (Colored buttons restore default)"
-msgstr ""
-
-#: dialogs.c:940
-msgid "Mono Mode"
-msgstr ""
-
-#: dialogs.c:941
-msgid "Logo Size (0=off, requires restart):"
-msgstr ""
-
-#: dialogs.c:942
-msgid "Line Gap (-1 = default for board size):"
-msgstr ""
-
-#: dialogs.c:943
-msgid "Use Board Textures"
-msgstr ""
-
-#: dialogs.c:944
-msgid "Light-Squares Texture File:"
-msgstr ""
-
-#: dialogs.c:945
-msgid "Dark-Squares Texture File:"
-msgstr ""
-
-#: dialogs.c:946
-msgid "Use external piece bitmaps with their own colors"
-msgstr ""
-
-#: dialogs.c:947
-msgid "Directory with Pieces Images:"
-msgstr ""
-
-#: dialogs.c:1018
-msgid "# no themes are defined"
-msgstr ""
-
-#: dialogs.c:1030
-msgid "Board Options"
-msgstr ""
-
-#: dialogs.c:1101 menus.c:646
-msgid "ICS text menu"
-msgstr ""
-
-#: dialogs.c:1130
-msgid "clear"
-msgstr ""
-
-#: dialogs.c:1131
-msgid "save changes"
-msgstr ""
-
-#: dialogs.c:1229
-msgid "add next move"
-msgstr ""
-
-#: dialogs.c:1230
-msgid "commit changes"
-msgstr ""
-
-#: dialogs.c:1253
-#, fuzzy
-msgid "Edit book"
-msgstr "Soạn"
-
-#: dialogs.c:1270 dialogs.c:1277 menus.c:648
-msgid "Tags"
-msgstr "Các Thẻ"
-
-#: dialogs.c:1285
-msgid "Registered Engines"
-msgstr ""
-
-#: dialogs.c:1401
-msgid "ICS input box"
-msgstr ""
-
-#: dialogs.c:1433
-msgid "Type a move"
-msgstr ""
-
-#: dialogs.c:1459
-msgid "Engine has no options"
-msgstr ""
-
-#: dialogs.c:1461
-msgid "Engine Settings"
-msgstr ""
-
-#: dialogs.c:1502
-msgid "Select engine from list:"
-msgstr ""
-
-#: dialogs.c:1505
-msgid "or specify one below:"
-msgstr ""
-
-#: dialogs.c:1506
-msgid "Nickname (optional):"
-msgstr ""
-
-#: dialogs.c:1507
-msgid "Use nickname in PGN player tags of engine-engine games"
-msgstr ""
-
-#: dialogs.c:1508
-msgid "Engine Directory:"
-msgstr ""
-
-#: dialogs.c:1509
-msgid "Engine Command:"
-msgstr ""
-
-#: dialogs.c:1510
-msgid "(Directory will be derived from engine path when empty)"
-msgstr ""
-
-#: dialogs.c:1511
-msgid "UCI"
-msgstr ""
-
-#: dialogs.c:1512
-msgid "USI/UCCI (uses specified -uxiAdapter)"
-msgstr ""
-
-#: dialogs.c:1513
-msgid "WB protocol v1 (do not wait for engine features)"
-msgstr ""
-
-#: dialogs.c:1514
-msgid "Must not use GUI book"
-msgstr ""
-
-#: dialogs.c:1515
-msgid "Add this engine to the list"
-msgstr ""
-
-#: dialogs.c:1516
-msgid "Force current variant with this engine"
-msgstr ""
-
-#: dialogs.c:1570
-msgid "Load first engine"
-msgstr ""
-
-#: dialogs.c:1576
-msgid "Load second engine"
-msgstr ""
-
-#: dialogs.c:1599
-msgid "shuffle"
-msgstr ""
-
-#: dialogs.c:1600
-msgid "Fischer castling"
-msgstr ""
-
-#: dialogs.c:1601
-msgid "Start-position number:"
-msgstr ""
-
-#: dialogs.c:1602
-msgid "randomize"
-msgstr ""
-
-#: dialogs.c:1603
-msgid "pick fixed"
-msgstr ""
-
-#: dialogs.c:1620
-msgid "New Shuffle Game"
-msgstr "Tráo Bên..."
-
-#: dialogs.c:1647
-msgid "Clocks (requires restart):"
-msgstr ""
-
-#: dialogs.c:1648 dialogs.c:1654 dialogs.c:1660 dialogs.c:1666 dialogs.c:1672
-#: dialogs.c:1678 dialogs.c:1684
-msgid "+"
-msgstr ""
-
-#: dialogs.c:1649 dialogs.c:1655 dialogs.c:1661 dialogs.c:1667 dialogs.c:1673
-#: dialogs.c:1679 dialogs.c:1685
-msgid "-"
-msgstr ""
-
-#: dialogs.c:1651 dialogs.c:1657 dialogs.c:1663 dialogs.c:1669 dialogs.c:1675
-#: dialogs.c:1681 dialogs.c:1687
-msgid "I"
-msgstr ""
-
-#: dialogs.c:1652 dialogs.c:1658 dialogs.c:1664 dialogs.c:1670 dialogs.c:1676
-#: dialogs.c:1682 dialogs.c:1688
-msgid "*"
-msgstr ""
-
-#: dialogs.c:1653
-msgid "Message (above board):"
-msgstr ""
-
-#: dialogs.c:1659
-msgid "ICS Chat/Console:"
-msgstr ""
-
-#: dialogs.c:1665
-msgid "Edit tags / book / engine list:"
-msgstr ""
-
-#: dialogs.c:1671
-#, fuzzy
-msgid "Edit comments:"
-msgstr "Soạn Bình Chú..."
-
-#: dialogs.c:1677
-#, fuzzy
-msgid "Move history / Engine Output:"
-msgstr "In Ra Của Các Chương Trình Cờ   Alt+Shift+O"
-
-#: dialogs.c:1683
-#, fuzzy
-msgid "Game list:"
-msgstr "Danh Sách Ván Cờ"
-
-#: dialogs.c:1689
-msgid ""
-"\n"
-"The * buttons will set the font to the one selected below:"
-msgstr ""
-
-#: dialogs.c:1743
-msgid "This only works in the GTK build"
-msgstr ""
-
-#: dialogs.c:1744
-msgid "Fonts"
-msgstr ""
-
-#: dialogs.c:1764
-msgid "classical"
-msgstr ""
-
-#: dialogs.c:1765
-msgid "incremental"
-msgstr ""
-
-#: dialogs.c:1766
-msgid "fixed max"
-msgstr ""
-
-#: dialogs.c:1767
-msgid "Divide entered times by 60"
-msgstr ""
-
-#: dialogs.c:1768
-msgid "Moves per session:"
-msgstr ""
-
-#: dialogs.c:1769
-msgid "Initial time (min):"
-msgstr ""
-
-#: dialogs.c:1770
-msgid "Increment or max (sec/move):"
-msgstr ""
-
-#: dialogs.c:1771
-#, fuzzy
-msgid "Time-Odds factors:"
-msgstr "Hệ số thời gian lẻ"
-
-#: dialogs.c:1772
-msgid "Engine #1"
-msgstr ""
-
-#: dialogs.c:1773
-msgid "Engine #2 / Human"
-msgstr ""
-
-#: dialogs.c:1814 dialogs.c:1817 dialogs.c:1822 dialogs.c:1823
-#: gtk/xoptions.c:183
-msgid "Unused"
-msgstr ""
-
-#: dialogs.c:1832
-msgid "Changing time control during a game is not implemented"
-msgstr ""
-
-#: dialogs.c:1869
-msgid "Error writing to chess program"
-msgstr ""
-
-#: dialogs.c:1937 gtk/xoptions.c:1775 xaw/xoptions.c:1341
-#, fuzzy
-msgid "Cancel"
-msgstr "Bỏ"
-
-#: dialogs.c:1942 dialogs.c:2695 dialogs.c:2699
-msgid "King"
-msgstr "Vua"
-
-#: dialogs.c:1945
-msgid "Captain"
-msgstr ""
-
-#: dialogs.c:1946
-msgid "Lieutenant"
-msgstr ""
-
-#: dialogs.c:1947
-msgid "General"
-msgstr "Chung..."
-
-#: dialogs.c:1948
-msgid "Warlord"
-msgstr ""
-
-#: dialogs.c:1950 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Knight"
-msgstr "Mã"
-
-#: dialogs.c:1951 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Bishop"
-msgstr "Tượng"
-
-#: dialogs.c:1952 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Rook"
-msgstr "Xe"
-
-#: dialogs.c:1956 dialogs.c:2696 dialogs.c:2700
-msgid "Archbishop"
-msgstr "Sĩ"
-
-#: dialogs.c:1957 dialogs.c:2696 dialogs.c:2700
-msgid "Chancellor"
-msgstr "Xe"
-
-#: dialogs.c:1959 dialogs.c:2695 dialogs.c:2699 dialogs.c:2717
-msgid "Queen"
-msgstr "Hoàng Hậu"
-
-#: dialogs.c:1961
-msgid "Lion"
-msgstr ""
-
-#: dialogs.c:1965
-msgid "Defer"
-msgstr ""
-
-#: dialogs.c:1966 dialogs.c:2696 dialogs.c:2700
-msgid "Promote"
-msgstr "Phong Cấp"
-
-#: dialogs.c:2023
-msgid "Chats:"
-msgstr ""
-
-#: dialogs.c:2024 dialogs.c:2025 dialogs.c:2026 dialogs.c:2027 dialogs.c:2028
-#: dialogs.c:2134 dialogs.c:2199 dialogs.c:2231
-#, fuzzy
-msgid "New Chat"
-msgstr "Tráo Bên..."
-
-#: dialogs.c:2031
-msgid "Chat partner:"
-msgstr ""
-
-#: dialogs.c:2032
-msgid "End Chat"
-msgstr ""
-
-#: dialogs.c:2033
-msgid "Hide"
-msgstr ""
-
-#: dialogs.c:2260
-msgid "ICS Interaction"
-msgstr ""
-
-#: dialogs.c:2345
-msgid "factory"
-msgstr ""
-
-#: dialogs.c:2346
-msgid "up"
-msgstr ""
-
-#: dialogs.c:2347
-msgid "down"
-msgstr ""
-
-#: dialogs.c:2366
-msgid "No tag selected"
-msgstr ""
-
-#: dialogs.c:2397
-#, fuzzy
-msgid "Game-list options"
-msgstr "Các Lựa Chọn Tải Ván Cờ"
-
-#: dialogs.c:2475 dialogs.c:2489
-msgid "Error"
-msgstr ""
-
-#: dialogs.c:2518
-msgid "Fatal Error"
-msgstr ""
-
-#: dialogs.c:2518
-msgid "Exiting"
-msgstr ""
-
-#: dialogs.c:2529
-msgid "Information"
-msgstr ""
-
-#: dialogs.c:2536
-msgid "Note"
-msgstr ""
-
-#: dialogs.c:2694 dialogs.c:2987 dialogs.c:2990
-msgid "White"
-msgstr "Trắng"
-
-#: dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Pawn"
-msgstr "Tốt"
-
-#: dialogs.c:2695 dialogs.c:2699
-msgid "Elephant"
-msgstr "Tượng"
-
-#: dialogs.c:2695 dialogs.c:2699
-msgid "Cannon"
-msgstr "Pháo"
-
-#: dialogs.c:2696 dialogs.c:2700
-msgid "Demote"
-msgstr ""
-
-#: dialogs.c:2697 dialogs.c:2701
-msgid "Empty square"
-msgstr "Ô Trống"
-
-#: dialogs.c:2697 dialogs.c:2701
-msgid "Clear board"
-msgstr "Xóa Bàn Cờ"
-
-#: dialogs.c:2698 dialogs.c:2999 dialogs.c:3002
-msgid "Black"
-msgstr "Đen"
-
-#: dialogs.c:2798
-#, fuzzy
-msgid "_File"
-msgstr "Lọc"
-
-#: dialogs.c:2799
-#, fuzzy
-msgid "_Edit"
-msgstr "Soạn"
-
-#: dialogs.c:2800
-msgid "_View"
-msgstr ""
-
-#: dialogs.c:2801
-msgid "_Mode"
-msgstr ""
-
-#: dialogs.c:2802
-msgid "_Action"
-msgstr ""
-
-#: dialogs.c:2803
-#, fuzzy
-msgid "E_ngine"
-msgstr "Chương Trình Cờ Chung...   Alt+Shift+U"
-
-#: dialogs.c:2804
-#, fuzzy
-msgid "_Options"
-msgstr "Âm thanh"
-
-#: dialogs.c:2805
-#, fuzzy
-msgid "_Help"
-msgstr "Hướng Dẫn"
-
-#: dialogs.c:2815
-msgid "<<"
-msgstr ""
-
-#: dialogs.c:2816
-msgid "<"
-msgstr ""
-
-#: dialogs.c:2818
-msgid ">"
-msgstr ""
-
-#: dialogs.c:2819
-msgid ">>"
-msgstr ""
-
-#: dialogs.c:3107
-msgid "Directories:"
-msgstr ""
-
-#: dialogs.c:3108
-#, fuzzy
-msgid "Files:"
-msgstr "Lọc"
-
-#: dialogs.c:3109
-msgid "by name"
-msgstr ""
-
-#: dialogs.c:3110
-msgid "by type"
-msgstr ""
-
-#: dialogs.c:3113
-#, fuzzy
-msgid "Filename:"
-msgstr "Lọc"
-
-#: dialogs.c:3114
-msgid "New directory"
-msgstr ""
-
-#: dialogs.c:3115
-#, fuzzy
-msgid "File type:"
-msgstr "Lọc"
-
-#: dialogs.c:3190
-#, fuzzy
-msgid "Contents of"
-msgstr "Bình Chú"
-
-#: dialogs.c:3216
-msgid "  next page"
-msgstr ""
-
-#: dialogs.c:3233
-msgid "FIRST TYPE DIRECTORY NAME HERE"
-msgstr ""
-
-#: dialogs.c:3234
-msgid "TRY ANOTHER NAME"
-msgstr ""
-
-#: draw.c:405
-msgid ""
-"No default pieces installed!\n"
-"Select your own using '-pieceImageDirectory'."
-msgstr ""
-
-#: engineoutput.c:112 menus.c:642
-#, fuzzy, c-format
-msgid "Engine Output"
-msgstr "In Ra Của Các Chương Trình Cờ   Alt+Shift+O"
-
-#: engineoutput.c:122
-#, c-format
-msgid "%s (%d reversible ply)"
-msgid_plural "%s (%d reversible plies)"
-msgstr[0] ""
-msgstr[1] ""
-
-#: engineoutput.c:565 engineoutput.c:568 nengineoutput.c:83 nengineoutput.c:91
-msgid "NPS"
-msgstr ""
-
-#: gamelist.c:379
-#, c-format
-msgid "Reading game file (%d)"
-msgstr ""
-
-#: gtk/xboard.c:979 xaw/xboard.c:1074
-#, c-format
-msgid "%s: can't cd to CHESSDIR: "
-msgstr ""
-
-#: gtk/xboard.c:988 xaw/xboard.c:1083
-#, c-format
-msgid "Failed to open file '%s'\n"
-msgstr ""
-
-#: gtk/xboard.c:1003 xaw/xboard.c:1092
-msgid "Recompile with larger BOARD_RANKS or BOARD_FILES to support this size"
-msgstr ""
-
-#: gtk/xboard.c:1022 xaw/xboard.c:1124
-#, c-format
-msgid "%s: bad boardSize syntax %s\n"
-msgstr ""
-
-#: gtk/xboard.c:1063 xaw/xboard.c:1163
-#, c-format
-msgid "%s: unrecognized boardSize name %s\n"
-msgstr ""
-
-#: gtk/xboard.c:1107 xaw/xboard.c:1200
-#, c-format
-msgid "%s: too few colors available; trying monochrome mode\n"
-msgstr ""
-
-#: gtk/xboard.c:1421 xaw/xboard.c:1492
-#, c-format
-msgid "Unable to create font set for %s.\n"
-msgstr ""
-
-#: gtk/xboard.c:1446 xaw/xboard.c:1515
-#, c-format
-msgid "%s: no fonts match pattern %s\n"
-msgstr ""
-
-#: gtk/xboard.c:1914 xaw/xboard.c:2007
-msgid "Can't open temp file"
-msgstr ""
-
-#: gtk/xboard.c:2422
-msgid "Failed to open file"
-msgstr ""
-
-#: gtk/xoptions.c:1498
-msgid "Browse"
-msgstr ""
-
-#: gtk/xoptions.c:1772 xaw/xoptions.c:1337
-msgid "OK"
-msgstr "Được"
-
-#: menus.c:136
-msgid "Load game file name?"
-msgstr ""
-
-#: menus.c:183
-msgid "Load position file name?"
-msgstr ""
-
-#: menus.c:189 menus.c:582
-msgid "Save game file name?"
-msgstr ""
-
-#: menus.c:198
-msgid "Save position file name?"
-msgstr ""
-
-#: menus.c:355
-msgid " (with Zippy code)"
-msgstr ""
-
-#: menus.c:360
-#, c-format
-msgid ""
-"%s%s\n"
-"\n"
-"Copyright 1991 Digital Equipment Corporation\n"
-"Enhancements Copyright 1992-2016 Free Software Foundation\n"
-"Enhancements Copyright 2005 Alessandro Scotti\n"
-"\n"
-"%s is free software and carries NO WARRANTY;see the file COPYING for more "
-"information.\n"
-"\n"
-"Visit XBoard on the web at: http://www.gnu.org/software/xboard/\n"
-"Check out the newest features at: http://www.gnu.org/software/xboard/"
-"whats_new.html\n"
-"\n"
-"Report bugs via email at: <bug-xboard@gnu.org>\n"
-"\n"
-msgstr ""
-
-#: menus.c:371 menus.c:765
-msgid "About XBoard"
-msgstr "Thông Tin Về XBoard"
-
-#: menus.c:593
-#, fuzzy
-msgid "New Game"
-msgstr "Tráo Bên..."
-
-#: menus.c:594
-#, fuzzy
-msgid "New Shuffle Game..."
-msgstr "Tráo Bên..."
-
-#: menus.c:595
-#, fuzzy
-msgid "New Variant..."
-msgstr "Biến Mới...   Alt+Shift+V"
-
-#: menus.c:597
-#, fuzzy
-msgid "Load Game"
-msgstr "Tải Ván Cờ...   Alt+Shift+L"
-
-#: menus.c:598
-#, fuzzy
-msgid "Load Position"
-msgstr "Âm thanh"
-
-#: menus.c:599
-#, fuzzy
-msgid "Next Position"
-msgstr "Âm thanh"
-
-#: menus.c:600
-#, fuzzy
-msgid "Prev Position"
-msgstr "Phong cấp"
-
-#: menus.c:602
-#, fuzzy
-msgid "Save Game"
-msgstr "Lưu Ván Cờ...   Alt+Shift+S"
-
-#: menus.c:603
-#, fuzzy
-msgid "Save Position"
-msgstr "Lưu Thế Cờ...   Ctrl+Shift+S"
-
-#: menus.c:604
-#, fuzzy
-msgid "Save Selected Games"
-msgstr "Lưu Ván Cờ...   Alt+Shift+S"
-
-#: menus.c:605
-#, fuzzy
-msgid "Save Games as Book"
-msgstr "Lưu Ván Cờ...   Alt+Shift+S"
-
-#: menus.c:607
-msgid "Mail Move"
-msgstr ""
-
-#: menus.c:608
-msgid "Reload CMail Message"
-msgstr ""
-
-#: menus.c:610
-msgid "Quit "
-msgstr ""
-
-#: menus.c:615
-#, fuzzy
-msgid "Copy Game"
-msgstr "Copy Danh Sách Các Ván Cờ Vào Clipboard"
-
-#: menus.c:616
-#, fuzzy
-msgid "Copy Position"
-msgstr "Chép Thế Cờ Vào Clipboard   Ctrl+Shift+C"
-
-#: menus.c:617
-msgid "Copy Game List"
-msgstr "Copy Danh Sách Các Ván Cờ Vào Clipboard"
-
-#: menus.c:619
-#, fuzzy
-msgid "Paste Game"
-msgstr "Dán Ván Cờ Từ Clipboard   Ctrl+V"
-
-#: menus.c:620
-#, fuzzy
-msgid "Paste Position"
-msgstr "Dán Thế Cờ Từ Clipboard   Ctrl+Shift+V"
-
-#: menus.c:622 menus.c:665
-#, fuzzy
-msgid "Edit Game"
-msgstr "Soạn Các Thẻ..."
-
-#: menus.c:623 menus.c:666
-#, fuzzy
-msgid "Edit Position"
-msgstr "Âm thanh"
-
-#: menus.c:624
-msgid "Edit Tags"
-msgstr "Soạn Các Thẻ..."
-
-#: menus.c:625
-msgid "Edit Comment"
-msgstr "Soạn Bình Chú..."
-
-#: menus.c:626
-#, fuzzy
-msgid "Edit Book"
-msgstr "Cẩm Nang Khai Cuộc..."
-
-#: menus.c:628
-msgid "Revert"
-msgstr ""
-
-#: menus.c:629
-msgid "Annotate"
-msgstr "Chú Giải"
-
-#: menus.c:630
-#, fuzzy
-msgid "Truncate Game"
-msgstr "Cắt Ngắn Ván Cờ   End"
-
-#: menus.c:632
-msgid "Backward"
-msgstr ""
-
-#: menus.c:633
-msgid "Forward"
-msgstr ""
-
-#: menus.c:634
-#, fuzzy
-msgid "Back to Start"
-msgstr "Quay Lại Đến Đầu   Alt+Home"
-
-#: menus.c:635
-#, fuzzy
-msgid "Forward to End"
-msgstr "Đi Tiếp Tới Cuối   Alt+End"
-
-#: menus.c:640
-#, fuzzy
-msgid "Flip View"
-msgstr "Tự Động Xoay Bàn Cờ"
-
-#: menus.c:643
-msgid "Move History"
-msgstr ""
-
-#: menus.c:644
-#, fuzzy
-msgid "Evaluation Graph"
-msgstr "Đồ Thị Lượng Giá   Alt+Shift+E"
-
-#: menus.c:645
-#, fuzzy
-msgid "Game List"
-msgstr "Danh Sách Ván Cờ"
-
-#: menus.c:649
-msgid "Comments"
-msgstr "Bình Chú"
-
-#: menus.c:650
-msgid "ICS Input Box"
-msgstr ""
-
-#: menus.c:651
-msgid "ICS/Chat Console"
-msgstr ""
-
-#: menus.c:653
-msgid "Board..."
-msgstr "Bàn Cờ..."
-
-#: menus.c:654
-#, fuzzy
-msgid "Fonts..."
-msgstr "Âm Thanh"
-
-#: menus.c:655
-msgid "Game List Tags..."
-msgstr "Các Thẻ của Danh Sách Ván Cờ"
-
-#: menus.c:660
-#, fuzzy
-msgid "Machine White"
-msgstr "Máy Chơi Bên Trắng   Ctrl+W"
-
-#: menus.c:661
-#, fuzzy
-msgid "Machine Black"
-msgstr "Trận Đấu Với Máy"
-
-#: menus.c:662
-#, fuzzy
-msgid "Two Machines"
-msgstr "Máy Chơi Cả Hai Bên   Ctrl+T"
-
-#: menus.c:663
-#, fuzzy
-msgid "Analysis Mode"
-msgstr "Chế Độ Phân Tích   Ctrl+A"
-
-#: menus.c:664
-#, fuzzy
-msgid "Analyze Game"
-msgstr "Phân Tích File   Ctrl+F"
-
-#: menus.c:667
-msgid "Training"
-msgstr "Đang Dậy Máy"
-
-#: menus.c:668
-msgid "ICS Client"
-msgstr "Kết Nối Chơi Với Máy Chủ ICS"
-
-#: menus.c:670
-msgid "Machine Match"
-msgstr "Trận Đấu Với Máy"
-
-#: menus.c:671
-msgid "Pause"
-msgstr ""
-
-#: menus.c:676
-msgid "Accept"
-msgstr ""
-
-#: menus.c:677
-msgid "Decline"
-msgstr ""
-
-#: menus.c:678
-msgid "Rematch"
-msgstr ""
-
-#: menus.c:680
-#, fuzzy
-msgid "Call Flag"
-msgstr "Đặt Cờ   F5"
-
-#: menus.c:681
-msgid "Draw"
-msgstr ""
-
-#: menus.c:682
-msgid "Adjourn"
-msgstr ""
-
-#: menus.c:683
-msgid "Abort"
-msgstr ""
-
-#: menus.c:684
-msgid "Resign"
-msgstr ""
-
-#: menus.c:686
-#, fuzzy
-msgid "Stop Observing"
-msgstr "Ngừng Xem"
-
-#: menus.c:687
-#, fuzzy
-msgid "Stop Examining"
-msgstr "Ngừng Thử"
-
-#: menus.c:688
-msgid "Upload to Examine"
-msgstr "Tải Để "
-
-#: menus.c:690
-msgid "Adjudicate to White"
-msgstr "Phân Xử Trắng Thắng"
-
-#: menus.c:691
-msgid "Adjudicate to Black"
-msgstr "Phân Xử Đen Thắng"
-
-#: menus.c:692
-msgid "Adjudicate Draw"
-msgstr "Phân Xử Hòa"
-
-#: menus.c:697
-#, fuzzy
-msgid "Edit Engine List..."
-msgstr "Đặt Tham Số Cho Chương Trình Chơi 1..."
-
-#: menus.c:699
-msgid "Load New 1st Engine..."
-msgstr ""
-
-#: menus.c:700
-#, fuzzy
-msgid "Load New 2nd Engine..."
-msgstr "Chương Trình Cờ Chung...   Alt+Shift+U"
-
-#: menus.c:702
-#, fuzzy
-msgid "Engine #1 Settings..."
-msgstr "Đặt Tham Số Cho Chương Trình Chơi 1..."
-
-#: menus.c:703
-#, fuzzy
-msgid "Engine #2 Settings..."
-msgstr "Đặt Tham Số Cho Chương Trình Chơi 2..."
-
-#: menus.c:704
-#, fuzzy
-msgid "Common Settings..."
-msgstr "Chương Trình Cờ Chung...   Alt+Shift+U"
-
-#: menus.c:706
-msgid "Hint"
-msgstr "Gợi Ý..."
-
-#: menus.c:707
-msgid "Book"
-msgstr "Cẩm Nang Khai Cuộc..."
-
-#: menus.c:709
-msgid "Move Now"
-msgstr ""
-
-#: menus.c:710
-#, fuzzy
-msgid "Retract Move"
-msgstr "Hoãn Nước Đi Vừa Rồi   Ctrl+X"
-
-#: menus.c:716
-#, fuzzy
-msgid "General..."
-msgstr "Chung..."
-
-#: menus.c:718
-#, fuzzy
-msgid "Time Control..."
-msgstr "Đặt Thời Gian...   Alt+Shift+T"
-
-#: menus.c:719
-#, fuzzy
-msgid "Adjudications..."
-msgstr "Phân Xử Kết Quả...   Alt+Shift+J"
-
-#: menus.c:720
-msgid "ICS..."
-msgstr ""
-
-#: menus.c:721
-msgid "Tournament..."
-msgstr ""
-
-#: menus.c:722
-#, fuzzy
-msgid "Load Game..."
-msgstr "Tải Ván Cờ...   Alt+Shift+L"
-
-#: menus.c:723
-#, fuzzy
-msgid "Save Game..."
-msgstr "Lưu Ván Cờ...   Alt+Shift+S"
-
-#: menus.c:724
-#, fuzzy
-msgid "Game List..."
-msgstr "Danh Sách Ván Cờ"
-
-#: menus.c:725
-#, fuzzy
-msgid "Sounds..."
-msgstr "Âm Thanh"
-
-#: menus.c:728
-msgid "Always Queen"
-msgstr ""
-
-#: menus.c:734
-msgid "Flash Moves"
-msgstr ""
-
-#: menus.c:736
-msgid "Highlight Dragging"
-msgstr "Đánh Dấu Khi Đang Kéo Quân Cờ"
-
-#: menus.c:739
-msgid "Highlight With Arrow"
-msgstr "Đánh Dấu Với Mũi Tên"
-
-#: menus.c:740
-msgid "Move Sound"
-msgstr ""
-
-#: menus.c:742
-msgid "Periodic Updates"
-msgstr "Cập Nhật Theo Chu Kỳ"
-
-#: menus.c:744
-msgid "Popup Exit Message"
-msgstr "Bật Cửa Sổ Thoát Chương trình"
-
-#: menus.c:746
-msgid "Show Coords"
-msgstr "Hiện Tọa Độ"
-
-#: menus.c:747
-msgid "Hide Thinking"
-msgstr ""
-
-#: menus.c:751
-msgid "Save Settings Now"
-msgstr "Lưu Các Tham Số Ngay"
-
-#: menus.c:752
-msgid "Save Settings on Exit"
-msgstr "Lưu Các Tham Số Khi Kết Thúc"
-
-#: menus.c:757
-msgid "Info XBoard"
-msgstr ""
-
-#: menus.c:758
-#, fuzzy
-msgid "Man XBoard"
-msgstr "Thông Tin Về XBoard"
-
-#: menus.c:760
-msgid "XBoard Home Page"
-msgstr ""
-
-#: menus.c:761
-msgid "On-line User Guide"
-msgstr ""
-
-#: menus.c:762
-msgid "Development News"
-msgstr ""
-
-#: menus.c:763
-msgid "e-Mail Bug Report"
-msgstr ""
-
-#: menus.c:802
-msgid "File"
-msgstr ""
-
-#: menus.c:803
-msgid "Edit"
-msgstr "Soạn"
-
-#: menus.c:804
-msgid "View"
-msgstr ""
-
-#: menus.c:805
-msgid "Mode"
-msgstr ""
-
-#: menus.c:806
-msgid "Action"
-msgstr ""
-
-#: menus.c:807
-msgid "Engine"
-msgstr ""
-
-#: menus.c:808
-msgid "Options"
-msgstr ""
-
-#: menus.c:809
-msgid "Help"
-msgstr "Hướng Dẫn"
-
-#: nengineoutput.c:79 nengineoutput.c:87
-msgid "engine name"
-msgstr ""
-
-#. TRANSLATORS: noun, as in "the move Nf3"
-#: nengineoutput.c:82 nengineoutput.c:90
-#, fuzzy
-msgid "move"
-msgstr "số giây mỗi nước"
-
-#: nengineoutput.c:156
-msgid "Engine output"
-msgstr ""
-
-#: nengineoutput.c:160
-msgid ""
-"Mismatch of STRIDE in nengineoutput.c\n"
-"Change and recompile!"
-msgstr ""
-
-#: nevalgraph.c:69
-msgid "Evaluation graph"
-msgstr ""
-
-#: nevalgraph.c:69
-msgid "Blunder graph"
-msgstr ""
-
-#: nevalgraph.c:107
-msgid "Blunder"
-msgstr ""
-
-#: nevalgraph.c:107
-msgid "Eval"
-msgstr ""
-
-#: ngamelist.c:87
-#, fuzzy
-msgid "find position"
-msgstr "Âm thanh"
-
-#: ngamelist.c:88
-msgid "narrow"
-msgstr ""
-
-#: ngamelist.c:89
-msgid "thresholds"
-msgstr ""
-
-#: ngamelist.c:90
-#, fuzzy
-msgid "tags"
-msgstr "Các Thẻ"
-
-#: ngamelist.c:91
-msgid "next"
-msgstr ""
-
-#: ngamelist.c:92
-msgid "close"
-msgstr ""
-
-#: ngamelist.c:116
-msgid "No game selected"
-msgstr ""
-
-#: ngamelist.c:122
-msgid "Can't go forward any further"
-msgstr ""
-
-#: ngamelist.c:192
-#, c-format
-msgid "Scanning through games (%d)"
-msgstr ""
-
-#: ngamelist.c:211
-msgid "previous page"
-msgstr ""
-
-#: ngamelist.c:214
-msgid "next page"
-msgstr ""
-
-#: ngamelist.c:217
-msgid "no games matched your request"
-msgstr ""
-
-#: ngamelist.c:219
-#, c-format
-msgid "%s - %d/%d games (%d-%d-%d)"
-msgstr ""
-
-#: ngamelist.c:284
-msgid "There is no game list"
-msgstr ""
-
-#: nhistory.c:109
-msgid "Move list"
-msgstr ""
-
-#: usystem.c:223
-#, c-format
-msgid "%s: unrecognized color %s\n"
-msgstr ""
-
-#: usystem.c:231
-#, c-format
-msgid "%s: can't parse foreground color in '%s'\n"
-msgstr ""
-
-#: usystem.c:260
-#, c-format
-msgid "%s: can't parse color names; disabling colorization\n"
-msgstr ""
-
-#: usystem.c:362
-#, c-format
-msgid "ERROR: Unknown user %s (in path %s)\n"
-msgstr ""
-
-#: usystem.c:564
-msgid "Socket support is not configured in"
-msgstr ""
-
-#: usystem.c:653
-msgid "internal rcmd not implemented for Unix"
-msgstr ""
-
-#: xaw/xboard.c:1206
-#, c-format
-msgid "white pixel = 0x%lx, black pixel = 0x%lx\n"
-msgstr ""
-
-#: xaw/xoptions.c:378 xaw/xoptions.c:1082
-msgid "browse"
-msgstr ""
-
-#: xaw/xoptions.c:444 xaw/xoptions.c:445
-msgid "Ctrl"
-msgstr ""
-
-#: xaw/xoptions.c:450 xaw/xoptions.c:451
-msgid "Alt"
-msgstr ""
-
-#: xaw/xoptions.c:456 xaw/xoptions.c:457
-msgid "Shift"
-msgstr ""
-
-#~ msgid "ICS ..."
-#~ msgstr "ICS..."
-
-#~ msgid "cancel"
-#~ msgstr "Bỏ"
-
-#~ msgid "New Game        Ctrl+N"
-#~ msgstr "Ván Mới   Ctrl+N"
-
-#~ msgid "Load Game       Ctrl+O"
-#~ msgstr "Tải Ván Cờ...   Ctrl+O"
-
-#~ msgid "Load Position    Ctrl+Shift+O"
-#~ msgstr "Tải Thế Cờ...   Ctrl+Shift+O"
-
-#~ msgid "Save Game       Ctrl+S"
-#~ msgstr "Lưu Ván Cờ...   Ctrl+S"
-
-#~ msgid "Quit                 Ctr+Q"
-#~ msgstr "Thoát"
-
-#~ msgid "Copy Game    Ctrl+C"
-#~ msgstr "Chép Ván Cờ Vào Clipboard   Ctrl+C"
-
-#~ msgid "Edit Game      Ctrl+E"
-#~ msgstr "Soạn Ván Cờ   Ctrl+E"
-
-#~ msgid "Edit Position   Ctrl+Shift+E"
-#~ msgstr "Soạn Thế Cờ   Ctrl+Shift+E"
-
-#~ msgid "Revert              Home"
-#~ msgstr "Ngược Lại   Home"
-
-#~ msgid "Backward         Alt+Left"
-#~ msgstr "Quay Trở Lại   Alt+Left"
-
-#~ msgid "Forward           Alt+Right"
-#~ msgstr "Đi Tiếp   Alt+Right"
-
-#~ msgid "Flip View             F2"
-#~ msgstr "Lật Ngược Bàn Cờ   F2"
-
-#~ msgid "Engine Output      Alt+Shift+O"
-#~ msgstr "In Ra Của Các Chương Trình Cờ   Alt+Shift+O"
-
-#~ msgid "Move History       Alt+Shift+H"
-#~ msgstr "Các Nước Đi   Alt+Shift+H"
-
-#~ msgid "Game List            Alt+Shift+G"
-#~ msgstr "Danh Sách Các Ván Cờ   Alt+Shift+G"
-
-#~ msgid "Machine Black  Ctrl+B"
-#~ msgstr "Máy Chơi Bên Đen   Ctrl+B"
-
-#~ msgid "Edit Game         Ctrl+E"
-#~ msgstr "Soạn Ván Cờ   Ctrl+E"
-
-#~ msgid "Edit Position      Ctrl+Shift+E"
-#~ msgstr "Soạn Thế Cờ   Ctrl+Shift+E"
-
-#~ msgid "Pause               Pause"
-#~ msgstr "Tạm Dừng   Pause"
-
-#~ msgid "Accept             F3"
-#~ msgstr "Chấp Nhận   F3"
-
-#~ msgid "Decline            F4"
-#~ msgstr "Từ Chối   F4"
-
-#~ msgid "Rematch           F12"
-#~ msgstr "Chơi Ván Nữa   F12"
-
-#~ msgid "Draw                F6"
-#~ msgstr "Hòa   F6"
-
-#~ msgid "Adjourn            F7"
-#~ msgstr "   F7"
-
-#~ msgid "Abort                F8"
-#~ msgstr "Bỏ   F8"
-
-#~ msgid "Resign              F9"
-#~ msgstr "Nhận Thua   F9"
-
-#~ msgid "Move Now     Ctrl+M"
-#~ msgstr "Phải Đi Ngay   Ctrl+M"
-
-#~ msgid "Always Queen        Ctrl+Shift+Q"
-#~ msgstr "Luôn Là Hoàng Hậu     Ctrl+Shift+Q"
-
-#~ msgid "Auto Flag               Ctrl+Shift+F"
-#~ msgstr "Tự Động Đặt Cờ"
-
-#~ msgid "Ponder Next Move  Ctrl+Shift+P"
-#~ msgstr "Tiếp Tục Tính Trước"
-
-#~ msgid "Hide Thinking        Ctrl+Shift+H"
-#~ msgstr "Ẩn Suy Nghĩ"
-
-#~ msgid "Test Legality          Ctrl+Shift+L"
-#~ msgstr "Kiểm Tra Hợp Lệ"
-
-#~ msgid "Drop"
-#~ msgstr "Đứt"
-
-#~ msgid "ok"
-#~ msgstr "Được"
-
-#~ msgid "Highlight Dragging (Show Move Targets)"
-#~ msgstr "Đánh Dấu Khi Đang Kéo Quân Cờ"
-
-#~ msgid "White "
-#~ msgstr " "
-
-#~ msgid "Black "
-#~ msgstr " "
-
-#~ msgid "Close"
-#~ msgstr "Đóng"
diff --git a/po/xboard.pot b/po/xboard.pot
deleted file mode 100644 (file)
index f2478fc..0000000
+++ /dev/null
@@ -1,3059 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR Free Software Foundation, Inc.
-# This file is distributed under the same license as the GNU xboard package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: GNU xboard 4.9.0-20160402\n"
-"Report-Msgid-Bugs-To: bug-xboard@gnu.org\n"
-"POT-Creation-Date: 2016-04-03 13:44-0700\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
-
-#: args.h:851
-#, c-format
-msgid "%s in settings file\n"
-msgstr ""
-
-#: args.h:885
-#, c-format
-msgid "Bad integer value %s"
-msgstr ""
-
-#: args.h:991 args.h:1252
-#, c-format
-msgid "Unrecognized argument %s"
-msgstr ""
-
-#: args.h:1022
-#, c-format
-msgid "No value provided for argument %s"
-msgstr ""
-
-#: args.h:1082
-#, c-format
-msgid "Incomplete \\ escape in value for %s"
-msgstr ""
-
-#: args.h:1193
-#, c-format
-msgid "Failed to open indirection file %s"
-msgstr ""
-
-#: args.h:1210
-#, c-format
-msgid "Unrecognized boolean argument value %s"
-msgstr ""
-
-#. TRANSLATORS: "first" is the first of possible two chess engines. It is inserted into strings
-#. such as "%s engine" / "%s chess program" / "%s machine" - all meaning the same thing
-#: backend.c:811
-msgid "first"
-msgstr ""
-
-#. TRANSLATORS: "second" is the second of possible two chess engines. It is inserted into strings
-#. such as "%s engine" / "%s chess program" / "%s machine" - all meaning the same thing
-#: backend.c:814
-msgid "second"
-msgstr ""
-
-#: backend.c:897
-#, c-format
-msgid "protocol version %d not supported"
-msgstr ""
-
-#: backend.c:1004
-msgid "You did not specify the engine executable"
-msgstr ""
-
-#: backend.c:1062
-#, c-format
-msgid "bad timeControl option %s"
-msgstr ""
-
-#: backend.c:1077
-#, c-format
-msgid "bad searchTime option %s"
-msgstr ""
-
-#: backend.c:1183
-#, c-format
-msgid "Variant %s supported only in ICS mode"
-msgstr ""
-
-#: backend.c:1201
-#, c-format
-msgid "Unknown variant name %s"
-msgstr ""
-
-#: backend.c:1456
-msgid "Starting chess program"
-msgstr ""
-
-#: backend.c:1479
-msgid "Bad game file"
-msgstr ""
-
-#: backend.c:1486
-msgid "Bad position file"
-msgstr ""
-
-#: backend.c:1500
-msgid "Pick new game"
-msgstr ""
-
-#: backend.c:1569
-msgid ""
-"You restarted an already completed tourney.\n"
-"One more cycle will now be added to it.\n"
-"Games commence in 10 sec."
-msgstr ""
-
-#: backend.c:1576
-#, c-format
-msgid "All games in tourney '%s' are already played or playing"
-msgstr ""
-
-#: backend.c:1583
-msgid "Can't have a match with no chess programs"
-msgstr ""
-
-#: backend.c:1637
-#, c-format
-msgid "Could not open comm port %s"
-msgstr ""
-
-#: backend.c:1640
-#, c-format
-msgid "Could not connect to host %s, port %s"
-msgstr ""
-
-#: backend.c:1696
-#, c-format
-msgid "Unknown initialMode %s"
-msgstr ""
-
-#: backend.c:1722
-msgid "AnalyzeFile mode requires a game file"
-msgstr ""
-
-#: backend.c:1755
-msgid "Analysis mode requires a chess engine"
-msgstr ""
-
-#: backend.c:1759
-msgid "Analysis mode does not work with ICS mode"
-msgstr ""
-
-#: backend.c:1770
-msgid "MachineWhite mode requires a chess engine"
-msgstr ""
-
-#: backend.c:1775
-msgid "MachineWhite mode does not work with ICS mode"
-msgstr ""
-
-#: backend.c:1782
-msgid "MachineBlack mode requires a chess engine"
-msgstr ""
-
-#: backend.c:1787
-msgid "MachineBlack mode does not work with ICS mode"
-msgstr ""
-
-#: backend.c:1794
-msgid "TwoMachines mode requires a chess engine"
-msgstr ""
-
-#: backend.c:1799
-msgid "TwoMachines mode does not work with ICS mode"
-msgstr ""
-
-#: backend.c:1810
-msgid "Training mode requires a game file"
-msgstr ""
-
-#: backend.c:1973 backend.c:2028 backend.c:2051 backend.c:2453
-msgid "Error writing to ICS"
-msgstr ""
-
-#: backend.c:1988
-msgid "Error reading from keyboard"
-msgstr ""
-
-#: backend.c:1991
-msgid "Got end of file from keyboard"
-msgstr ""
-
-#: backend.c:2299
-#, c-format
-msgid "Unknown wild type %d"
-msgstr ""
-
-#: backend.c:2370 usystem.c:317
-msgid "Error writing to display"
-msgstr ""
-
-#. TRANSLATORS: to 'kibitz' is to send a message to all players and the game observers
-#: backend.c:3138
-#, c-format
-msgid "your opponent kibitzes: %s"
-msgstr ""
-
-#: backend.c:3677
-msgid "Error gathering move list: two headers"
-msgstr ""
-
-#: backend.c:3724
-msgid "Error gathering move list: nested"
-msgstr ""
-
-#: backend.c:3828 backend.c:4254 backend.c:4458 backend.c:5017 backend.c:5021
-#: backend.c:7292 backend.c:13054 backend.c:14805 backend.c:14882
-#: backend.c:14928 backend.c:14934 backend.c:14939 backend.c:14944
-msgid "vs."
-msgstr ""
-
-#: backend.c:3956
-msgid "Illegal move (rejected by ICS)"
-msgstr ""
-
-#: backend.c:4302
-msgid "Connection closed by ICS"
-msgstr ""
-
-#: backend.c:4304
-msgid "Error reading from ICS"
-msgstr ""
-
-#: backend.c:4381
-#, c-format
-msgid ""
-"Failed to parse board string:\n"
-"\"%s\""
-msgstr ""
-
-#: backend.c:4390 backend.c:10628
-msgid "Game too long; increase MAX_MOVES and recompile"
-msgstr ""
-
-#: backend.c:4509
-msgid "Error gathering move list: extra board"
-msgstr ""
-
-#: backend.c:4941 backend.c:4963
-#, c-format
-msgid "Couldn't parse move \"%s\" from ICS"
-msgstr ""
-
-#: backend.c:5228
-#, c-format
-msgid "say Internal error; bad moveType %d (%d,%d-%d,%d)"
-msgstr ""
-
-#: backend.c:5299
-msgid "You cannot do this while you are playing or observing"
-msgstr ""
-
-#: backend.c:6359
-msgid "Recompile to support this BOARD_RANKS or BOARD_FILES!"
-msgstr ""
-
-#: backend.c:6851
-msgid "You are playing Black"
-msgstr ""
-
-#: backend.c:6860 backend.c:6888
-msgid "You are playing White"
-msgstr ""
-
-#: backend.c:6870 backend.c:6896 backend.c:7018 backend.c:7043 backend.c:7059
-#: backend.c:15645
-msgid "It is White's turn"
-msgstr ""
-
-#: backend.c:6874 backend.c:6900 backend.c:7026 backend.c:7049 backend.c:7081
-#: backend.c:15637
-msgid "It is Black's turn"
-msgstr ""
-
-#: backend.c:6913
-msgid "Displayed position is not current"
-msgstr ""
-
-#: backend.c:7116
-msgid "rights granted"
-msgstr ""
-
-#: backend.c:7116
-msgid "rights revoked"
-msgstr ""
-
-#: backend.c:7169
-msgid "Illegal move"
-msgstr ""
-
-#: backend.c:7249
-msgid "End of game"
-msgstr ""
-
-#: backend.c:7252
-msgid "Incorrect move"
-msgstr ""
-
-#: backend.c:7655 backend.c:7811
-msgid "Pull pawn backwards to under-promote"
-msgstr ""
-
-#: backend.c:7772
-msgid "only marked squares are legal"
-msgstr ""
-
-#: backend.c:8093
-msgid "Swiss tourney finished"
-msgstr ""
-
-#: backend.c:8609
-msgid "could not load EGBB library"
-msgstr ""
-
-#: backend.c:8612
-msgid "wrong EGBB version"
-msgstr ""
-
-#: backend.c:8725
-msgid "Invalid pairing from pairing engine"
-msgstr ""
-
-#: backend.c:8892
-#, c-format
-msgid "Illegal move \"%s\" from %s machine"
-msgstr ""
-
-#: backend.c:9179
-msgid "Bad FEN received from engine"
-msgstr ""
-
-#: backend.c:9280
-msgid "Engine did not send setup for non-standard variant"
-msgstr ""
-
-#: backend.c:9358 backend.c:14667 backend.c:14735
-#, c-format
-msgid "%s does not support analysis"
-msgstr ""
-
-#: backend.c:9424
-#, c-format
-msgid "Illegal move \"%s\" (rejected by %s chess program)"
-msgstr ""
-
-#: backend.c:9455
-#, c-format
-msgid "Failed to start %s chess program %s on %s: %s\n"
-msgstr ""
-
-#: backend.c:9476
-#, c-format
-msgid "Hint: %s"
-msgstr ""
-
-#: backend.c:9481
-#, c-format
-msgid ""
-"Illegal hint move \"%s\"\n"
-"from %s chess program"
-msgstr ""
-
-#: backend.c:9656
-msgid "Machine accepts your draw offer"
-msgstr ""
-
-#: backend.c:9659
-msgid ""
-"Machine offers a draw.\n"
-"Select Action / Draw to accept."
-msgstr ""
-
-#. TRANSLATORS: PV = principal variation, the variation the chess engine thinks is the best for everyone
-#: backend.c:9777
-msgid "failed writing PV"
-msgstr ""
-
-#: backend.c:10083
-#, c-format
-msgid "Ambiguous move in ICS output: \"%s\""
-msgstr ""
-
-#: backend.c:10093
-#, c-format
-msgid "Illegal move in ICS output: \"%s\""
-msgstr ""
-
-#: backend.c:10104
-msgid "Gap in move list"
-msgstr ""
-
-#: backend.c:10782
-#, c-format
-msgid "Variant %s not supported by %s"
-msgstr ""
-
-#: backend.c:10789
-#, c-format
-msgid ", but %s is"
-msgstr ""
-
-#: backend.c:10945
-#, c-format
-msgid "Startup failure on '%s'"
-msgstr ""
-
-#: backend.c:10976
-msgid "Waiting for first chess program"
-msgstr ""
-
-#: backend.c:10981 backend.c:14953
-msgid "Waiting for second chess program"
-msgstr ""
-
-#: backend.c:11030
-msgid "Could not write on tourney file"
-msgstr ""
-
-#: backend.c:11104
-msgid ""
-"You cannot replace an engine while it is engaged!\n"
-"Terminate its game first."
-msgstr ""
-
-#: backend.c:11118
-msgid "No engine with the name you gave is installed"
-msgstr ""
-
-#: backend.c:11120
-msgid ""
-"First change an engine by editing the participants list\n"
-"of the Tournament Options dialog"
-msgstr ""
-
-#: backend.c:11121
-msgid "You can only change one engine at the time"
-msgstr ""
-
-#: backend.c:11136 backend.c:11285
-#, c-format
-msgid "No engine %s is installed"
-msgstr ""
-
-#: backend.c:11156
-msgid ""
-"You must supply a tournament file,\n"
-"for storing the tourney progress"
-msgstr ""
-
-#: backend.c:11166
-msgid "Not enough participants"
-msgstr ""
-
-#: backend.c:11369
-msgid "Bad tournament file"
-msgstr ""
-
-#: backend.c:11381
-msgid "Waiting for other game(s)"
-msgstr ""
-
-#: backend.c:11394
-msgid "No pairing engine specified"
-msgstr ""
-
-#: backend.c:11879
-#, c-format
-msgid "Average solving time %4.2f sec (total time %4.2f sec) "
-msgstr ""
-
-#: backend.c:11881
-#, c-format
-msgid "%d avoid-moves played "
-msgstr ""
-
-#: backend.c:11883
-#, c-format
-msgid "Solved %d out of %d (%3.1f%%) "
-msgstr ""
-
-#: backend.c:11886
-#, c-format
-msgid "Match %s vs. %s: final score %d-%d-%d"
-msgstr ""
-
-#: backend.c:12363 backend.c:12399
-#, c-format
-msgid "Illegal move: %d.%s%s"
-msgstr ""
-
-#: backend.c:12388
-#, c-format
-msgid "Ambiguous move: %d.%s%s"
-msgstr ""
-
-#: backend.c:12442 backend.c:13495 backend.c:13695 backend.c:14065
-#, c-format
-msgid "Can't open \"%s\""
-msgstr ""
-
-#: backend.c:12454 menus.c:118
-msgid "Cannot build game list"
-msgstr ""
-
-#: backend.c:12539
-msgid "No more games in this message"
-msgstr ""
-
-#: backend.c:12579
-msgid "No game has been loaded yet"
-msgstr ""
-
-#: backend.c:12583 backend.c:13476 ngamelist.c:129
-msgid "Can't back up any further"
-msgstr ""
-
-#: backend.c:13030
-msgid "Game number out of range"
-msgstr ""
-
-#: backend.c:13041
-msgid "Can't seek on game file"
-msgstr ""
-
-#: backend.c:13099
-msgid "Game not found in file"
-msgstr ""
-
-#: backend.c:13230 backend.c:13573
-msgid "Bad FEN position in file"
-msgstr ""
-
-#: backend.c:13388
-msgid "No moves in game"
-msgstr ""
-
-#: backend.c:13472
-msgid "No position has been loaded yet"
-msgstr ""
-
-#: backend.c:13533 backend.c:13544
-msgid "Can't seek on position file"
-msgstr ""
-
-#: backend.c:13551 backend.c:13563
-msgid "Position not found in file"
-msgstr ""
-
-#: backend.c:13610
-msgid "Black to play"
-msgstr ""
-
-#: backend.c:13613
-msgid "White to play"
-msgstr ""
-
-#: backend.c:13700 backend.c:14070
-msgid "Waiting for access to save file"
-msgstr ""
-
-#: backend.c:13702
-msgid "Saving game"
-msgstr ""
-
-#: backend.c:13703
-msgid "Bad Seek"
-msgstr ""
-
-#: backend.c:14072
-msgid "Saving position"
-msgstr ""
-
-#: backend.c:14198
-msgid ""
-"You have edited the game history.\n"
-"Use Reload Same Game and make your move again."
-msgstr ""
-
-#: backend.c:14203
-msgid ""
-"You have entered too many moves.\n"
-"Back up to the correct position and try again."
-msgstr ""
-
-#: backend.c:14208
-msgid ""
-"Displayed position is not current.\n"
-"Step forward to the correct position and try again."
-msgstr ""
-
-#: backend.c:14255
-msgid "You have not made a move yet"
-msgstr ""
-
-#: backend.c:14276
-msgid ""
-"The cmail message is not loaded.\n"
-"Use Reload CMail Message and make your move again."
-msgstr ""
-
-#: backend.c:14281
-msgid "No unfinished games"
-msgstr ""
-
-#: backend.c:14287
-#, c-format
-msgid ""
-"You have already mailed a move.\n"
-"Wait until a move arrives from your opponent.\n"
-"To resend the same move, type\n"
-"\"cmail -remail -game %s\"\n"
-"on the command line."
-msgstr ""
-
-#: backend.c:14302
-msgid "Failed to invoke cmail"
-msgstr ""
-
-#: backend.c:14364
-#, c-format
-msgid "Waiting for reply from opponent\n"
-msgstr ""
-
-#: backend.c:14386
-#, c-format
-msgid "Still need to make move for game\n"
-msgstr ""
-
-#: backend.c:14390
-#, c-format
-msgid "Still need to make moves for both games\n"
-msgstr ""
-
-#: backend.c:14394
-#, c-format
-msgid "Still need to make moves for all %d games\n"
-msgstr ""
-
-#: backend.c:14401
-#, c-format
-msgid "Still need to make a move for game %s\n"
-msgstr ""
-
-#: backend.c:14407
-#, c-format
-msgid "No unfinished games\n"
-msgstr ""
-
-#: backend.c:14409
-#, c-format
-msgid "Ready to send mail\n"
-msgstr ""
-
-#: backend.c:14414
-#, c-format
-msgid "Still need to make moves for games %s\n"
-msgstr ""
-
-#: backend.c:14617
-msgid "Edit comment"
-msgstr ""
-
-#: backend.c:14619
-#, c-format
-msgid "Edit comment on %d.%s%s"
-msgstr ""
-
-#: backend.c:14674
-#, c-format
-msgid "You are not observing a game"
-msgstr ""
-
-#: backend.c:14785
-msgid "It is not White's turn"
-msgstr ""
-
-#: backend.c:14866
-msgid "It is not Black's turn"
-msgstr ""
-
-#: backend.c:14974
-#, c-format
-msgid "Starting %s chess program"
-msgstr ""
-
-#: backend.c:15002 backend.c:16189
-msgid ""
-"Wait until your turn,\n"
-"or select 'Move Now'."
-msgstr ""
-
-#: backend.c:15145
-msgid "Training mode off"
-msgstr ""
-
-#: backend.c:15153
-msgid "Training mode on"
-msgstr ""
-
-#: backend.c:15156
-msgid "Already at end of game"
-msgstr ""
-
-#: backend.c:15246
-msgid "Warning: You are still playing a game"
-msgstr ""
-
-#: backend.c:15249
-msgid "Warning: You are still observing a game"
-msgstr ""
-
-#: backend.c:15252
-msgid "Warning: You are still examining a game"
-msgstr ""
-
-#: backend.c:15322
-msgid "Click clock to clear board"
-msgstr ""
-
-#: backend.c:15332
-msgid "Close ICS engine analyze..."
-msgstr ""
-
-#: backend.c:15662
-msgid "That square is occupied"
-msgstr ""
-
-#: backend.c:15686 backend.c:15712
-msgid "There is no pending offer on this move"
-msgstr ""
-
-#: backend.c:15748 backend.c:15759
-msgid "Your opponent is not out of time"
-msgstr ""
-
-#: backend.c:15827
-msgid "You must make your move before offering a draw"
-msgstr ""
-
-#: backend.c:16171
-msgid "You are not examining a game"
-msgstr ""
-
-#: backend.c:16175
-msgid "You can't revert while pausing"
-msgstr ""
-
-#: backend.c:16229 backend.c:16236
-msgid "It is your turn"
-msgstr ""
-
-#: backend.c:16287 backend.c:16294 backend.c:16380 backend.c:16387
-msgid "Wait until your turn."
-msgstr ""
-
-#: backend.c:16299
-msgid "No hint available"
-msgstr ""
-
-#: backend.c:16314 backend.c:16345 ngamelist.c:365
-msgid "Game list not loaded or empty"
-msgstr ""
-
-#: backend.c:16352
-msgid "Book file exists! Try again for overwrite."
-msgstr ""
-
-#: backend.c:16833
-#, c-format
-msgid "Error writing to %s chess program"
-msgstr ""
-
-#: backend.c:16836 backend.c:16867
-#, c-format
-msgid "%s program exits in draw position (%s)"
-msgstr ""
-
-#: backend.c:16862
-#, c-format
-msgid "Error: %s chess program (%s) exited unexpectedly"
-msgstr ""
-
-#: backend.c:16880
-#, c-format
-msgid "Error reading from %s chess program (%s)"
-msgstr ""
-
-#: backend.c:17312
-#, c-format
-msgid "%s engine has too many options\n"
-msgstr ""
-
-#: backend.c:17468
-msgid "Displayed move is not current"
-msgstr ""
-
-#: backend.c:17477
-msgid "Could not parse move"
-msgstr ""
-
-#: backend.c:17602 backend.c:17624
-msgid "Both flags fell"
-msgstr ""
-
-#: backend.c:17604
-msgid "White's flag fell"
-msgstr ""
-
-#: backend.c:17626
-msgid "Black's flag fell"
-msgstr ""
-
-#: backend.c:17757
-msgid "Clock adjustment not allowed in auto-flag mode"
-msgstr ""
-
-#: backend.c:18719
-msgid "Bad FEN position in clipboard"
-msgstr ""
-
-#: book.c:598 book.c:874
-msgid "Polyglot book not valid"
-msgstr ""
-
-#: book.c:722
-msgid "Book Fault"
-msgstr ""
-
-#: book.c:877
-msgid "Hash keys are different"
-msgstr ""
-
-#: book.c:1053
-msgid "Could not create book"
-msgstr ""
-
-#: dialogs.c:286
-msgid "Tournament file:          "
-msgstr ""
-
-#: dialogs.c:287
-msgid "For concurrent playing of tourney with multiple XBoards:"
-msgstr ""
-
-#: dialogs.c:288
-msgid "Sync after round"
-msgstr ""
-
-#: dialogs.c:289
-msgid "Sync after cycle"
-msgstr ""
-
-#: dialogs.c:290
-msgid "Tourney participants:"
-msgstr ""
-
-#: dialogs.c:291
-msgid "Select Engine:"
-msgstr ""
-
-#: dialogs.c:299
-msgid "Tourney type (0 = round-robin, 1 = gauntlet):"
-msgstr ""
-
-#: dialogs.c:300
-msgid "Number of tourney cycles (or Swiss rounds):"
-msgstr ""
-
-#: dialogs.c:301
-msgid "Default Number of Games in Match (or Pairing):"
-msgstr ""
-
-#: dialogs.c:302
-msgid "Pause between Match Games (msec):"
-msgstr ""
-
-#: dialogs.c:303
-msgid "Save Tourney Games on:"
-msgstr ""
-
-#: dialogs.c:304
-msgid "Game File with Opening Lines:"
-msgstr ""
-
-#: dialogs.c:305
-msgid "Game Number (-1 or -2 = Auto-Increment):"
-msgstr ""
-
-#: dialogs.c:306
-msgid "File with Start Positions:"
-msgstr ""
-
-#: dialogs.c:307
-msgid "Position Number (-1 or -2 = Auto-Increment):"
-msgstr ""
-
-#: dialogs.c:308
-msgid "Rewind Index after this many Games (0 = never):"
-msgstr ""
-
-#: dialogs.c:309
-msgid "Disable own engine books by default"
-msgstr ""
-
-#: dialogs.c:310 dialogs.c:1840
-msgid "Time Control"
-msgstr ""
-
-#: dialogs.c:311
-msgid "Common Engine"
-msgstr ""
-
-#: dialogs.c:312 dialogs.c:446
-msgid "General Options"
-msgstr ""
-
-#: dialogs.c:313
-msgid "Continue Later"
-msgstr ""
-
-#: dialogs.c:314
-msgid "Replace Engine"
-msgstr ""
-
-#: dialogs.c:315
-msgid "Upgrade Engine"
-msgstr ""
-
-#: dialogs.c:316
-msgid "Clone Tourney"
-msgstr ""
-
-#: dialogs.c:356
-msgid "First you must specify an existing tourney file to clone"
-msgstr ""
-
-#: dialogs.c:372 dialogs.c:1549
-msgid "# no engines are installed"
-msgstr ""
-
-#: dialogs.c:380
-msgid "Internal error: PARTICIPANTS set wrong"
-msgstr ""
-
-#: dialogs.c:388
-msgid "Tournament Options"
-msgstr ""
-
-#: dialogs.c:407
-msgid "Absolute Analysis Scores"
-msgstr ""
-
-#: dialogs.c:408
-msgid "Almost Always Queen (Detour Under-Promote)"
-msgstr ""
-
-#: dialogs.c:409 menus.c:729
-msgid "Animate Dragging"
-msgstr ""
-
-#: dialogs.c:410 menus.c:730
-msgid "Animate Moving"
-msgstr ""
-
-#: dialogs.c:411 menus.c:731
-msgid "Auto Flag"
-msgstr ""
-
-#: dialogs.c:412 menus.c:732
-msgid "Auto Flip View"
-msgstr ""
-
-#: dialogs.c:413 menus.c:733
-msgid "Blindfold"
-msgstr ""
-
-#. TRANSLATORS: the drop menu is used to drop a piece, e.g. during bughouse or editing a position
-#: dialogs.c:415
-msgid "Drop Menu"
-msgstr ""
-
-#: dialogs.c:416
-msgid "Enable Variation Trees"
-msgstr ""
-
-#: dialogs.c:417
-msgid "Headers in Engine Output Window"
-msgstr ""
-
-#: dialogs.c:418
-msgid "Hide Thinking from Human"
-msgstr ""
-
-#: dialogs.c:419 menus.c:738
-msgid "Highlight Last Move"
-msgstr ""
-
-#: dialogs.c:420
-msgid "Highlight with Arrow"
-msgstr ""
-
-#: dialogs.c:421 menus.c:741
-msgid "One-Click Moving"
-msgstr ""
-
-#: dialogs.c:422
-msgid "Periodic Updates (in Analysis Mode)"
-msgstr ""
-
-#: dialogs.c:424
-msgid "Play Move(s) of Clicked PV (Analysis)"
-msgstr ""
-
-#: dialogs.c:425 dialogs.c:626 menus.c:743
-msgid "Ponder Next Move"
-msgstr ""
-
-#: dialogs.c:426
-msgid "Popup Exit Messages"
-msgstr ""
-
-#: dialogs.c:427 menus.c:745
-msgid "Popup Move Errors"
-msgstr ""
-
-#: dialogs.c:428
-msgid "Scores in Move List"
-msgstr ""
-
-#: dialogs.c:429
-msgid "Show Coordinates"
-msgstr ""
-
-#: dialogs.c:430
-msgid "Show Target Squares"
-msgstr ""
-
-#: dialogs.c:431
-msgid "Sticky Windows"
-msgstr ""
-
-#: dialogs.c:432 menus.c:748
-msgid "Test Legality"
-msgstr ""
-
-#: dialogs.c:433
-msgid "Top-Level Dialogs"
-msgstr ""
-
-#: dialogs.c:434
-msgid "Flash Moves (0 = no flashing):"
-msgstr ""
-
-#: dialogs.c:435
-msgid "Flash Rate (high = fast):"
-msgstr ""
-
-#: dialogs.c:436
-msgid "Animation Speed (high = slow):"
-msgstr ""
-
-#: dialogs.c:437
-msgid "Zoom factor in Evaluation Graph:"
-msgstr ""
-
-#: dialogs.c:457
-msgid "Normal"
-msgstr ""
-
-#: dialogs.c:458
-msgid "Makruk"
-msgstr ""
-
-#: dialogs.c:459
-msgid "FRC"
-msgstr ""
-
-#: dialogs.c:460
-msgid "Shatranj"
-msgstr ""
-
-#: dialogs.c:461
-msgid "Wild castle"
-msgstr ""
-
-#: dialogs.c:462
-msgid "Knightmate"
-msgstr ""
-
-#: dialogs.c:463
-msgid "No castle"
-msgstr ""
-
-#: dialogs.c:464
-msgid "Cylinder *"
-msgstr ""
-
-#: dialogs.c:465
-msgid "3-checks"
-msgstr ""
-
-#: dialogs.c:466
-msgid "berolina *"
-msgstr ""
-
-#: dialogs.c:467
-msgid "atomic"
-msgstr ""
-
-#: dialogs.c:468
-msgid "two kings"
-msgstr ""
-
-#: dialogs.c:469
-msgid " "
-msgstr ""
-
-#: dialogs.c:470
-msgid "Spartan"
-msgstr ""
-
-#: dialogs.c:471
-msgid "Board size ( -1 = default for selected variant):"
-msgstr ""
-
-#: dialogs.c:472
-msgid "Number of Board Ranks:"
-msgstr ""
-
-#: dialogs.c:473
-msgid "Number of Board Files:"
-msgstr ""
-
-#: dialogs.c:474
-msgid "Holdings Size:"
-msgstr ""
-
-#: dialogs.c:476
-msgid ""
-"Variants marked with * can only be played\n"
-"with legality testing off."
-msgstr ""
-
-#: dialogs.c:478
-msgid "ASEAN"
-msgstr ""
-
-#: dialogs.c:479
-msgid "Great Shatranj (10x8)"
-msgstr ""
-
-#: dialogs.c:480
-msgid "Seirawan"
-msgstr ""
-
-#: dialogs.c:481
-msgid "Falcon (10x8)"
-msgstr ""
-
-#: dialogs.c:482
-msgid "Superchess"
-msgstr ""
-
-#: dialogs.c:483
-msgid "Capablanca (10x8)"
-msgstr ""
-
-#: dialogs.c:484
-msgid "Crazyhouse"
-msgstr ""
-
-#: dialogs.c:485
-msgid "Gothic (10x8)"
-msgstr ""
-
-#: dialogs.c:486
-msgid "Bughouse"
-msgstr ""
-
-#: dialogs.c:487
-msgid "Janus (10x8)"
-msgstr ""
-
-#: dialogs.c:488
-msgid "Suicide"
-msgstr ""
-
-#: dialogs.c:489
-msgid "CRC (10x8)"
-msgstr ""
-
-#: dialogs.c:490
-msgid "give-away"
-msgstr ""
-
-#: dialogs.c:491
-msgid "grand (10x10)"
-msgstr ""
-
-#: dialogs.c:492
-msgid "losers"
-msgstr ""
-
-#: dialogs.c:493
-msgid "shogi (9x9)"
-msgstr ""
-
-#: dialogs.c:494
-msgid "fairy"
-msgstr ""
-
-#: dialogs.c:495
-msgid "xiangqi (9x10)"
-msgstr ""
-
-#: dialogs.c:496
-msgid "mighty lion"
-msgstr ""
-
-#: dialogs.c:497
-msgid "courier (12x8)"
-msgstr ""
-
-#: dialogs.c:498
-msgid "elven chess (10x10)"
-msgstr ""
-
-#: dialogs.c:499
-msgid "chu shogi (12x12)"
-msgstr ""
-
-#: dialogs.c:543
-#, c-format
-msgid "Warning: second engine (%s) does not support this!"
-msgstr ""
-
-#: dialogs.c:572
-#, c-format
-msgid "Only bughouse is not available in viewer mode."
-msgstr ""
-
-#: dialogs.c:573
-#, c-format
-msgid ""
-"All variants not supported by the first engine\n"
-"(currently %s) are disabled."
-msgstr ""
-
-#: dialogs.c:595
-msgid "New Variant"
-msgstr ""
-
-#: dialogs.c:627
-msgid "Maximum Number of CPUs per Engine:"
-msgstr ""
-
-#: dialogs.c:628
-msgid "Polygot Directory:"
-msgstr ""
-
-#: dialogs.c:629
-msgid "Hash-Table Size (MB):"
-msgstr ""
-
-#: dialogs.c:630
-msgid "EGTB Path:"
-msgstr ""
-
-#: dialogs.c:631
-msgid "EGTB Cache Size (MB):"
-msgstr ""
-
-#: dialogs.c:632
-msgid "Use GUI Book"
-msgstr ""
-
-#: dialogs.c:633
-msgid "Opening-Book Filename:"
-msgstr ""
-
-#: dialogs.c:634
-msgid "Book Depth (moves):"
-msgstr ""
-
-#: dialogs.c:635
-msgid "Book Variety (0) vs. Strength (100):"
-msgstr ""
-
-#: dialogs.c:636
-msgid "Engine #1 Has Own Book"
-msgstr ""
-
-#: dialogs.c:637
-msgid "Engine #2 Has Own Book          "
-msgstr ""
-
-#: dialogs.c:648
-msgid "Common Engine Settings"
-msgstr ""
-
-#: dialogs.c:654
-msgid "Detect all Mates"
-msgstr ""
-
-#: dialogs.c:655
-msgid "Verify Engine Result Claims"
-msgstr ""
-
-#: dialogs.c:656
-msgid "Draw if Insufficient Mating Material"
-msgstr ""
-
-#: dialogs.c:657
-msgid "Adjudicate Trivial Draws (3-Move Delay)"
-msgstr ""
-
-#: dialogs.c:658
-msgid "N-Move Rule:"
-msgstr ""
-
-#: dialogs.c:659
-msgid "N-fold Repeats:"
-msgstr ""
-
-#: dialogs.c:660
-msgid "Draw after N Moves Total:"
-msgstr ""
-
-#: dialogs.c:661
-msgid "Win / Loss Threshold:"
-msgstr ""
-
-#: dialogs.c:662
-msgid "Negate Score of Engine #1"
-msgstr ""
-
-#: dialogs.c:663
-msgid "Negate Score of Engine #2"
-msgstr ""
-
-#: dialogs.c:670
-msgid "Adjudicate non-ICS Games"
-msgstr ""
-
-#: dialogs.c:683
-msgid "Auto-Kibitz"
-msgstr ""
-
-#: dialogs.c:684
-msgid "Auto-Comment"
-msgstr ""
-
-#: dialogs.c:685
-msgid "Auto-Observe"
-msgstr ""
-
-#: dialogs.c:686
-msgid "Auto-Raise Board"
-msgstr ""
-
-#: dialogs.c:687
-msgid "Auto-Create Logon Script"
-msgstr ""
-
-#: dialogs.c:688
-msgid "Background Observe while Playing"
-msgstr ""
-
-#: dialogs.c:689
-msgid "Dual Board for Background-Observed Game"
-msgstr ""
-
-#: dialogs.c:690
-msgid "Get Move List"
-msgstr ""
-
-#: dialogs.c:691
-msgid "Quiet Play"
-msgstr ""
-
-#: dialogs.c:692
-msgid "Seek Graph"
-msgstr ""
-
-#: dialogs.c:693
-msgid "Auto-Refresh Seek Graph"
-msgstr ""
-
-#: dialogs.c:694
-msgid "Auto-InputBox PopUp"
-msgstr ""
-
-#: dialogs.c:695
-msgid "Quit after game"
-msgstr ""
-
-#: dialogs.c:696
-msgid "Premove"
-msgstr ""
-
-#: dialogs.c:697
-msgid "Premove for White"
-msgstr ""
-
-#: dialogs.c:698
-msgid "First White Move:"
-msgstr ""
-
-#: dialogs.c:699
-msgid "Premove for Black"
-msgstr ""
-
-#: dialogs.c:700
-msgid "First Black Move:"
-msgstr ""
-
-#: dialogs.c:702
-msgid "Alarm"
-msgstr ""
-
-#: dialogs.c:703
-msgid "Alarm Time (msec):"
-msgstr ""
-
-#: dialogs.c:705
-msgid "Colorize Messages"
-msgstr ""
-
-#: dialogs.c:706
-msgid "Shout Text Colors:"
-msgstr ""
-
-#: dialogs.c:707
-msgid "S-Shout Text Colors:"
-msgstr ""
-
-#: dialogs.c:708
-msgid "Channel #1 Text Colors:"
-msgstr ""
-
-#: dialogs.c:709
-msgid "Other Channel Text Colors:"
-msgstr ""
-
-#: dialogs.c:710
-msgid "Kibitz Text Colors:"
-msgstr ""
-
-#: dialogs.c:711
-msgid "Tell Text Colors:"
-msgstr ""
-
-#: dialogs.c:712
-msgid "Challenge Text Colors:"
-msgstr ""
-
-#: dialogs.c:713
-msgid "Request Text Colors:"
-msgstr ""
-
-#: dialogs.c:714
-msgid "Seek Text Colors:"
-msgstr ""
-
-#: dialogs.c:715
-msgid "Other Text Colors:"
-msgstr ""
-
-#: dialogs.c:722
-msgid "ICS Options"
-msgstr ""
-
-#: dialogs.c:727
-msgid "Exact position match"
-msgstr ""
-
-#: dialogs.c:727
-msgid "Shown position is subset"
-msgstr ""
-
-#: dialogs.c:727
-msgid "Same material with exactly same Pawn chain"
-msgstr ""
-
-#: dialogs.c:728
-msgid "Same material"
-msgstr ""
-
-#: dialogs.c:728
-msgid "Material range (top board half optional)"
-msgstr ""
-
-#: dialogs.c:728
-msgid "Material difference (optional stuff balanced)"
-msgstr ""
-
-#: dialogs.c:743
-msgid "Auto-Display Tags"
-msgstr ""
-
-#: dialogs.c:744
-msgid "Auto-Display Comment"
-msgstr ""
-
-#: dialogs.c:745
-msgid ""
-"Auto-Play speed of loaded games\n"
-"(0 = instant, -1 = off):"
-msgstr ""
-
-#: dialogs.c:746
-msgid "Seconds per Move:"
-msgstr ""
-
-#: dialogs.c:747
-msgid ""
-"\n"
-"options to use in game-viewer mode:"
-msgstr ""
-
-#: dialogs.c:749
-msgid ""
-"\n"
-"Thresholds for position filtering in game list:"
-msgstr ""
-
-#: dialogs.c:750
-msgid "Elo of strongest player at least:"
-msgstr ""
-
-#: dialogs.c:751
-msgid "Elo of weakest player at least:"
-msgstr ""
-
-#: dialogs.c:752
-msgid "No games before year:"
-msgstr ""
-
-#: dialogs.c:753
-msgid "Minimum nr consecutive positions:"
-msgstr ""
-
-#: dialogs.c:755
-msgid "Search mode:"
-msgstr ""
-
-#: dialogs.c:756
-msgid "Also match reversed colors"
-msgstr ""
-
-#: dialogs.c:757
-msgid "Also match left-right flipped position"
-msgstr ""
-
-#: dialogs.c:766
-msgid "Load Game Options"
-msgstr ""
-
-#: dialogs.c:778
-msgid "Auto-Save Games"
-msgstr ""
-
-#: dialogs.c:779
-msgid "Own Games Only"
-msgstr ""
-
-#: dialogs.c:780
-msgid "Save Games on File:"
-msgstr ""
-
-#: dialogs.c:781
-msgid "Save Final Positions on File:"
-msgstr ""
-
-#: dialogs.c:782
-msgid "PGN Event Header:"
-msgstr ""
-
-#: dialogs.c:783
-msgid "Old Save Style (as opposed to PGN)"
-msgstr ""
-
-#: dialogs.c:784
-msgid "Include Number Tag in tourney PGN"
-msgstr ""
-
-#: dialogs.c:785
-msgid "Save Score/Depth Info in PGN"
-msgstr ""
-
-#: dialogs.c:786
-msgid "Save Out-of-Book Info in PGN           "
-msgstr ""
-
-#: dialogs.c:793
-msgid "Save Game Options"
-msgstr ""
-
-#: dialogs.c:802
-msgid "No Sound"
-msgstr ""
-
-#: dialogs.c:803
-msgid "Default Beep"
-msgstr ""
-
-#: dialogs.c:804
-msgid "Above WAV File"
-msgstr ""
-
-#: dialogs.c:805
-msgid "Car Horn"
-msgstr ""
-
-#: dialogs.c:806
-msgid "Cymbal"
-msgstr ""
-
-#: dialogs.c:807
-msgid "Ding"
-msgstr ""
-
-#: dialogs.c:808
-msgid "Gong"
-msgstr ""
-
-#: dialogs.c:809
-msgid "Laser"
-msgstr ""
-
-#: dialogs.c:810
-msgid "Penalty"
-msgstr ""
-
-#: dialogs.c:811
-msgid "Phone"
-msgstr ""
-
-#: dialogs.c:812
-msgid "Pop"
-msgstr ""
-
-#: dialogs.c:813
-msgid "Roar"
-msgstr ""
-
-#: dialogs.c:814
-msgid "Slap"
-msgstr ""
-
-#: dialogs.c:815
-msgid "Wood Thunk"
-msgstr ""
-
-#: dialogs.c:817
-msgid "User File"
-msgstr ""
-
-#: dialogs.c:840
-msgid "User WAV File:"
-msgstr ""
-
-#: dialogs.c:841
-msgid "Sound Program:"
-msgstr ""
-
-#: dialogs.c:842
-msgid "Try-Out Sound:"
-msgstr ""
-
-#: dialogs.c:843
-msgid "Play"
-msgstr ""
-
-#: dialogs.c:844
-msgid "Move:"
-msgstr ""
-
-#: dialogs.c:845
-msgid "Win:"
-msgstr ""
-
-#: dialogs.c:846
-msgid "Lose:"
-msgstr ""
-
-#: dialogs.c:847
-msgid "Draw:"
-msgstr ""
-
-#: dialogs.c:848
-msgid "Unfinished:"
-msgstr ""
-
-#: dialogs.c:849
-msgid "Alarm:"
-msgstr ""
-
-#: dialogs.c:850
-msgid "Challenge:"
-msgstr ""
-
-#: dialogs.c:852
-msgid "Sounds Directory:"
-msgstr ""
-
-#: dialogs.c:853
-msgid "Shout:"
-msgstr ""
-
-#: dialogs.c:854
-msgid "S-Shout:"
-msgstr ""
-
-#: dialogs.c:855
-msgid "Channel:"
-msgstr ""
-
-#: dialogs.c:856
-msgid "Channel 1:"
-msgstr ""
-
-#: dialogs.c:857
-msgid "Tell:"
-msgstr ""
-
-#: dialogs.c:858
-msgid "Kibitz:"
-msgstr ""
-
-#: dialogs.c:859
-msgid "Request:"
-msgstr ""
-
-#: dialogs.c:860
-msgid "Lion roar:"
-msgstr ""
-
-#: dialogs.c:861
-msgid "Seek:"
-msgstr ""
-
-#: dialogs.c:877
-msgid "Sound Options"
-msgstr ""
-
-#: dialogs.c:893
-msgid "Selectable themes:"
-msgstr ""
-
-#: dialogs.c:895
-msgid "New name for current theme:"
-msgstr ""
-
-#: dialogs.c:898
-msgid "White Piece Color:"
-msgstr ""
-
-#. TRANSLATORS: R = single letter for the color red
-#: dialogs.c:901 dialogs.c:910 dialogs.c:916 dialogs.c:922 dialogs.c:928
-#: dialogs.c:934
-msgid "R"
-msgstr ""
-
-#. TRANSLATORS: G = single letter for the color green
-#: dialogs.c:903 dialogs.c:911 dialogs.c:917 dialogs.c:923 dialogs.c:929
-#: dialogs.c:935
-msgid "G"
-msgstr ""
-
-#. TRANSLATORS: B = single letter for the color blue
-#: dialogs.c:905 dialogs.c:912 dialogs.c:918 dialogs.c:924 dialogs.c:930
-#: dialogs.c:936 dialogs.c:1650 dialogs.c:1656 dialogs.c:1662 dialogs.c:1668
-#: dialogs.c:1674 dialogs.c:1680 dialogs.c:1686
-msgid "B"
-msgstr ""
-
-#. TRANSLATORS: D = single letter to make a color darker
-#: dialogs.c:907 dialogs.c:913 dialogs.c:919 dialogs.c:925 dialogs.c:931
-#: dialogs.c:937
-msgid "D"
-msgstr ""
-
-#: dialogs.c:908
-msgid "Black Piece Color:"
-msgstr ""
-
-#: dialogs.c:914
-msgid "Light Square Color:"
-msgstr ""
-
-#: dialogs.c:920
-msgid "Dark Square Color:"
-msgstr ""
-
-#: dialogs.c:926
-msgid "Highlight Color:"
-msgstr ""
-
-#: dialogs.c:932
-msgid "Premove Highlight Color:"
-msgstr ""
-
-#: dialogs.c:938
-msgid "Flip Pieces Shogi Style        (Colored buttons restore default)"
-msgstr ""
-
-#: dialogs.c:940
-msgid "Mono Mode"
-msgstr ""
-
-#: dialogs.c:941
-msgid "Logo Size (0=off, requires restart):"
-msgstr ""
-
-#: dialogs.c:942
-msgid "Line Gap (-1 = default for board size):"
-msgstr ""
-
-#: dialogs.c:943
-msgid "Use Board Textures"
-msgstr ""
-
-#: dialogs.c:944
-msgid "Light-Squares Texture File:"
-msgstr ""
-
-#: dialogs.c:945
-msgid "Dark-Squares Texture File:"
-msgstr ""
-
-#: dialogs.c:946
-msgid "Use external piece bitmaps with their own colors"
-msgstr ""
-
-#: dialogs.c:947
-msgid "Directory with Pieces Images:"
-msgstr ""
-
-#: dialogs.c:1018
-msgid "# no themes are defined"
-msgstr ""
-
-#: dialogs.c:1030
-msgid "Board Options"
-msgstr ""
-
-#: dialogs.c:1101 menus.c:646
-msgid "ICS text menu"
-msgstr ""
-
-#: dialogs.c:1130
-msgid "clear"
-msgstr ""
-
-#: dialogs.c:1131
-msgid "save changes"
-msgstr ""
-
-#: dialogs.c:1229
-msgid "add next move"
-msgstr ""
-
-#: dialogs.c:1230
-msgid "commit changes"
-msgstr ""
-
-#: dialogs.c:1253
-msgid "Edit book"
-msgstr ""
-
-#: dialogs.c:1270 dialogs.c:1277 menus.c:648
-msgid "Tags"
-msgstr ""
-
-#: dialogs.c:1285
-msgid "Registered Engines"
-msgstr ""
-
-#: dialogs.c:1401
-msgid "ICS input box"
-msgstr ""
-
-#: dialogs.c:1433
-msgid "Type a move"
-msgstr ""
-
-#: dialogs.c:1459
-msgid "Engine has no options"
-msgstr ""
-
-#: dialogs.c:1461
-msgid "Engine Settings"
-msgstr ""
-
-#: dialogs.c:1502
-msgid "Select engine from list:"
-msgstr ""
-
-#: dialogs.c:1505
-msgid "or specify one below:"
-msgstr ""
-
-#: dialogs.c:1506
-msgid "Nickname (optional):"
-msgstr ""
-
-#: dialogs.c:1507
-msgid "Use nickname in PGN player tags of engine-engine games"
-msgstr ""
-
-#: dialogs.c:1508
-msgid "Engine Directory:"
-msgstr ""
-
-#: dialogs.c:1509
-msgid "Engine Command:"
-msgstr ""
-
-#: dialogs.c:1510
-msgid "(Directory will be derived from engine path when empty)"
-msgstr ""
-
-#: dialogs.c:1511
-msgid "UCI"
-msgstr ""
-
-#: dialogs.c:1512
-msgid "USI/UCCI (uses specified -uxiAdapter)"
-msgstr ""
-
-#: dialogs.c:1513
-msgid "WB protocol v1 (do not wait for engine features)"
-msgstr ""
-
-#: dialogs.c:1514
-msgid "Must not use GUI book"
-msgstr ""
-
-#: dialogs.c:1515
-msgid "Add this engine to the list"
-msgstr ""
-
-#: dialogs.c:1516
-msgid "Force current variant with this engine"
-msgstr ""
-
-#: dialogs.c:1570
-msgid "Load first engine"
-msgstr ""
-
-#: dialogs.c:1576
-msgid "Load second engine"
-msgstr ""
-
-#: dialogs.c:1599
-msgid "shuffle"
-msgstr ""
-
-#: dialogs.c:1600
-msgid "Fischer castling"
-msgstr ""
-
-#: dialogs.c:1601
-msgid "Start-position number:"
-msgstr ""
-
-#: dialogs.c:1602
-msgid "randomize"
-msgstr ""
-
-#: dialogs.c:1603
-msgid "pick fixed"
-msgstr ""
-
-#: dialogs.c:1620
-msgid "New Shuffle Game"
-msgstr ""
-
-#: dialogs.c:1647
-msgid "Clocks (requires restart):"
-msgstr ""
-
-#: dialogs.c:1648 dialogs.c:1654 dialogs.c:1660 dialogs.c:1666 dialogs.c:1672
-#: dialogs.c:1678 dialogs.c:1684
-msgid "+"
-msgstr ""
-
-#: dialogs.c:1649 dialogs.c:1655 dialogs.c:1661 dialogs.c:1667 dialogs.c:1673
-#: dialogs.c:1679 dialogs.c:1685
-msgid "-"
-msgstr ""
-
-#: dialogs.c:1651 dialogs.c:1657 dialogs.c:1663 dialogs.c:1669 dialogs.c:1675
-#: dialogs.c:1681 dialogs.c:1687
-msgid "I"
-msgstr ""
-
-#: dialogs.c:1652 dialogs.c:1658 dialogs.c:1664 dialogs.c:1670 dialogs.c:1676
-#: dialogs.c:1682 dialogs.c:1688
-msgid "*"
-msgstr ""
-
-#: dialogs.c:1653
-msgid "Message (above board):"
-msgstr ""
-
-#: dialogs.c:1659
-msgid "ICS Chat/Console:"
-msgstr ""
-
-#: dialogs.c:1665
-msgid "Edit tags / book / engine list:"
-msgstr ""
-
-#: dialogs.c:1671
-msgid "Edit comments:"
-msgstr ""
-
-#: dialogs.c:1677
-msgid "Move history / Engine Output:"
-msgstr ""
-
-#: dialogs.c:1683
-msgid "Game list:"
-msgstr ""
-
-#: dialogs.c:1689
-msgid ""
-"\n"
-"The * buttons will set the font to the one selected below:"
-msgstr ""
-
-#: dialogs.c:1743
-msgid "This only works in the GTK build"
-msgstr ""
-
-#: dialogs.c:1744
-msgid "Fonts"
-msgstr ""
-
-#: dialogs.c:1764
-msgid "classical"
-msgstr ""
-
-#: dialogs.c:1765
-msgid "incremental"
-msgstr ""
-
-#: dialogs.c:1766
-msgid "fixed max"
-msgstr ""
-
-#: dialogs.c:1767
-msgid "Divide entered times by 60"
-msgstr ""
-
-#: dialogs.c:1768
-msgid "Moves per session:"
-msgstr ""
-
-#: dialogs.c:1769
-msgid "Initial time (min):"
-msgstr ""
-
-#: dialogs.c:1770
-msgid "Increment or max (sec/move):"
-msgstr ""
-
-#: dialogs.c:1771
-msgid "Time-Odds factors:"
-msgstr ""
-
-#: dialogs.c:1772
-msgid "Engine #1"
-msgstr ""
-
-#: dialogs.c:1773
-msgid "Engine #2 / Human"
-msgstr ""
-
-#: dialogs.c:1814 dialogs.c:1817 dialogs.c:1822 dialogs.c:1823
-#: gtk/xoptions.c:183
-msgid "Unused"
-msgstr ""
-
-#: dialogs.c:1832
-msgid "Changing time control during a game is not implemented"
-msgstr ""
-
-#: dialogs.c:1869
-msgid "Error writing to chess program"
-msgstr ""
-
-#: dialogs.c:1937 gtk/xoptions.c:1775 xaw/xoptions.c:1341
-msgid "Cancel"
-msgstr ""
-
-#: dialogs.c:1942 dialogs.c:2695 dialogs.c:2699
-msgid "King"
-msgstr ""
-
-#: dialogs.c:1945
-msgid "Captain"
-msgstr ""
-
-#: dialogs.c:1946
-msgid "Lieutenant"
-msgstr ""
-
-#: dialogs.c:1947
-msgid "General"
-msgstr ""
-
-#: dialogs.c:1948
-msgid "Warlord"
-msgstr ""
-
-#: dialogs.c:1950 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Knight"
-msgstr ""
-
-#: dialogs.c:1951 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Bishop"
-msgstr ""
-
-#: dialogs.c:1952 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Rook"
-msgstr ""
-
-#: dialogs.c:1956 dialogs.c:2696 dialogs.c:2700
-msgid "Archbishop"
-msgstr ""
-
-#: dialogs.c:1957 dialogs.c:2696 dialogs.c:2700
-msgid "Chancellor"
-msgstr ""
-
-#: dialogs.c:1959 dialogs.c:2695 dialogs.c:2699 dialogs.c:2717
-msgid "Queen"
-msgstr ""
-
-#: dialogs.c:1961
-msgid "Lion"
-msgstr ""
-
-#: dialogs.c:1965
-msgid "Defer"
-msgstr ""
-
-#: dialogs.c:1966 dialogs.c:2696 dialogs.c:2700
-msgid "Promote"
-msgstr ""
-
-#: dialogs.c:2023
-msgid "Chats:"
-msgstr ""
-
-#: dialogs.c:2024 dialogs.c:2025 dialogs.c:2026 dialogs.c:2027 dialogs.c:2028
-#: dialogs.c:2134 dialogs.c:2199 dialogs.c:2231
-msgid "New Chat"
-msgstr ""
-
-#: dialogs.c:2031
-msgid "Chat partner:"
-msgstr ""
-
-#: dialogs.c:2032
-msgid "End Chat"
-msgstr ""
-
-#: dialogs.c:2033
-msgid "Hide"
-msgstr ""
-
-#: dialogs.c:2260
-msgid "ICS Interaction"
-msgstr ""
-
-#: dialogs.c:2345
-msgid "factory"
-msgstr ""
-
-#: dialogs.c:2346
-msgid "up"
-msgstr ""
-
-#: dialogs.c:2347
-msgid "down"
-msgstr ""
-
-#: dialogs.c:2366
-msgid "No tag selected"
-msgstr ""
-
-#: dialogs.c:2397
-msgid "Game-list options"
-msgstr ""
-
-#: dialogs.c:2475 dialogs.c:2489
-msgid "Error"
-msgstr ""
-
-#: dialogs.c:2518
-msgid "Fatal Error"
-msgstr ""
-
-#: dialogs.c:2518
-msgid "Exiting"
-msgstr ""
-
-#: dialogs.c:2529
-msgid "Information"
-msgstr ""
-
-#: dialogs.c:2536
-msgid "Note"
-msgstr ""
-
-#: dialogs.c:2694 dialogs.c:2987 dialogs.c:2990
-msgid "White"
-msgstr ""
-
-#: dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Pawn"
-msgstr ""
-
-#: dialogs.c:2695 dialogs.c:2699
-msgid "Elephant"
-msgstr ""
-
-#: dialogs.c:2695 dialogs.c:2699
-msgid "Cannon"
-msgstr ""
-
-#: dialogs.c:2696 dialogs.c:2700
-msgid "Demote"
-msgstr ""
-
-#: dialogs.c:2697 dialogs.c:2701
-msgid "Empty square"
-msgstr ""
-
-#: dialogs.c:2697 dialogs.c:2701
-msgid "Clear board"
-msgstr ""
-
-#: dialogs.c:2698 dialogs.c:2999 dialogs.c:3002
-msgid "Black"
-msgstr ""
-
-#: dialogs.c:2798
-msgid "_File"
-msgstr ""
-
-#: dialogs.c:2799
-msgid "_Edit"
-msgstr ""
-
-#: dialogs.c:2800
-msgid "_View"
-msgstr ""
-
-#: dialogs.c:2801
-msgid "_Mode"
-msgstr ""
-
-#: dialogs.c:2802
-msgid "_Action"
-msgstr ""
-
-#: dialogs.c:2803
-msgid "E_ngine"
-msgstr ""
-
-#: dialogs.c:2804
-msgid "_Options"
-msgstr ""
-
-#: dialogs.c:2805
-msgid "_Help"
-msgstr ""
-
-#: dialogs.c:2815
-msgid "<<"
-msgstr ""
-
-#: dialogs.c:2816
-msgid "<"
-msgstr ""
-
-#: dialogs.c:2818
-msgid ">"
-msgstr ""
-
-#: dialogs.c:2819
-msgid ">>"
-msgstr ""
-
-#: dialogs.c:3107
-msgid "Directories:"
-msgstr ""
-
-#: dialogs.c:3108
-msgid "Files:"
-msgstr ""
-
-#: dialogs.c:3109
-msgid "by name"
-msgstr ""
-
-#: dialogs.c:3110
-msgid "by type"
-msgstr ""
-
-#: dialogs.c:3113
-msgid "Filename:"
-msgstr ""
-
-#: dialogs.c:3114
-msgid "New directory"
-msgstr ""
-
-#: dialogs.c:3115
-msgid "File type:"
-msgstr ""
-
-#: dialogs.c:3190
-msgid "Contents of"
-msgstr ""
-
-#: dialogs.c:3216
-msgid "  next page"
-msgstr ""
-
-#: dialogs.c:3233
-msgid "FIRST TYPE DIRECTORY NAME HERE"
-msgstr ""
-
-#: dialogs.c:3234
-msgid "TRY ANOTHER NAME"
-msgstr ""
-
-#: draw.c:405
-msgid ""
-"No default pieces installed!\n"
-"Select your own using '-pieceImageDirectory'."
-msgstr ""
-
-#: engineoutput.c:112 menus.c:642
-#, c-format
-msgid "Engine Output"
-msgstr ""
-
-#: engineoutput.c:122
-#, c-format
-msgid "%s (%d reversible ply)"
-msgid_plural "%s (%d reversible plies)"
-msgstr[0] ""
-msgstr[1] ""
-
-#: engineoutput.c:565 engineoutput.c:568 nengineoutput.c:83 nengineoutput.c:91
-msgid "NPS"
-msgstr ""
-
-#: gamelist.c:379
-#, c-format
-msgid "Reading game file (%d)"
-msgstr ""
-
-#: gtk/xboard.c:979 xaw/xboard.c:1074
-#, c-format
-msgid "%s: can't cd to CHESSDIR: "
-msgstr ""
-
-#: gtk/xboard.c:988 xaw/xboard.c:1083
-#, c-format
-msgid "Failed to open file '%s'\n"
-msgstr ""
-
-#: gtk/xboard.c:1003 xaw/xboard.c:1092
-msgid "Recompile with larger BOARD_RANKS or BOARD_FILES to support this size"
-msgstr ""
-
-#: gtk/xboard.c:1022 xaw/xboard.c:1124
-#, c-format
-msgid "%s: bad boardSize syntax %s\n"
-msgstr ""
-
-#: gtk/xboard.c:1063 xaw/xboard.c:1163
-#, c-format
-msgid "%s: unrecognized boardSize name %s\n"
-msgstr ""
-
-#: gtk/xboard.c:1107 xaw/xboard.c:1200
-#, c-format
-msgid "%s: too few colors available; trying monochrome mode\n"
-msgstr ""
-
-#: gtk/xboard.c:1421 xaw/xboard.c:1492
-#, c-format
-msgid "Unable to create font set for %s.\n"
-msgstr ""
-
-#: gtk/xboard.c:1446 xaw/xboard.c:1515
-#, c-format
-msgid "%s: no fonts match pattern %s\n"
-msgstr ""
-
-#: gtk/xboard.c:1914 xaw/xboard.c:2007
-msgid "Can't open temp file"
-msgstr ""
-
-#: gtk/xboard.c:2422
-msgid "Failed to open file"
-msgstr ""
-
-#: gtk/xoptions.c:1498
-msgid "Browse"
-msgstr ""
-
-#: gtk/xoptions.c:1772 xaw/xoptions.c:1337
-msgid "OK"
-msgstr ""
-
-#: menus.c:136
-msgid "Load game file name?"
-msgstr ""
-
-#: menus.c:183
-msgid "Load position file name?"
-msgstr ""
-
-#: menus.c:189 menus.c:582
-msgid "Save game file name?"
-msgstr ""
-
-#: menus.c:198
-msgid "Save position file name?"
-msgstr ""
-
-#: menus.c:355
-msgid " (with Zippy code)"
-msgstr ""
-
-#: menus.c:360
-#, c-format
-msgid ""
-"%s%s\n"
-"\n"
-"Copyright 1991 Digital Equipment Corporation\n"
-"Enhancements Copyright 1992-2016 Free Software Foundation\n"
-"Enhancements Copyright 2005 Alessandro Scotti\n"
-"\n"
-"%s is free software and carries NO WARRANTY;see the file COPYING for more "
-"information.\n"
-"\n"
-"Visit XBoard on the web at: http://www.gnu.org/software/xboard/\n"
-"Check out the newest features at: http://www.gnu.org/software/xboard/"
-"whats_new.html\n"
-"\n"
-"Report bugs via email at: <bug-xboard@gnu.org>\n"
-"\n"
-msgstr ""
-
-#: menus.c:371 menus.c:765
-msgid "About XBoard"
-msgstr ""
-
-#: menus.c:593
-msgid "New Game"
-msgstr ""
-
-#: menus.c:594
-msgid "New Shuffle Game..."
-msgstr ""
-
-#: menus.c:595
-msgid "New Variant..."
-msgstr ""
-
-#: menus.c:597
-msgid "Load Game"
-msgstr ""
-
-#: menus.c:598
-msgid "Load Position"
-msgstr ""
-
-#: menus.c:599
-msgid "Next Position"
-msgstr ""
-
-#: menus.c:600
-msgid "Prev Position"
-msgstr ""
-
-#: menus.c:602
-msgid "Save Game"
-msgstr ""
-
-#: menus.c:603
-msgid "Save Position"
-msgstr ""
-
-#: menus.c:604
-msgid "Save Selected Games"
-msgstr ""
-
-#: menus.c:605
-msgid "Save Games as Book"
-msgstr ""
-
-#: menus.c:607
-msgid "Mail Move"
-msgstr ""
-
-#: menus.c:608
-msgid "Reload CMail Message"
-msgstr ""
-
-#: menus.c:610
-msgid "Quit "
-msgstr ""
-
-#: menus.c:615
-msgid "Copy Game"
-msgstr ""
-
-#: menus.c:616
-msgid "Copy Position"
-msgstr ""
-
-#: menus.c:617
-msgid "Copy Game List"
-msgstr ""
-
-#: menus.c:619
-msgid "Paste Game"
-msgstr ""
-
-#: menus.c:620
-msgid "Paste Position"
-msgstr ""
-
-#: menus.c:622 menus.c:665
-msgid "Edit Game"
-msgstr ""
-
-#: menus.c:623 menus.c:666
-msgid "Edit Position"
-msgstr ""
-
-#: menus.c:624
-msgid "Edit Tags"
-msgstr ""
-
-#: menus.c:625
-msgid "Edit Comment"
-msgstr ""
-
-#: menus.c:626
-msgid "Edit Book"
-msgstr ""
-
-#: menus.c:628
-msgid "Revert"
-msgstr ""
-
-#: menus.c:629
-msgid "Annotate"
-msgstr ""
-
-#: menus.c:630
-msgid "Truncate Game"
-msgstr ""
-
-#: menus.c:632
-msgid "Backward"
-msgstr ""
-
-#: menus.c:633
-msgid "Forward"
-msgstr ""
-
-#: menus.c:634
-msgid "Back to Start"
-msgstr ""
-
-#: menus.c:635
-msgid "Forward to End"
-msgstr ""
-
-#: menus.c:640
-msgid "Flip View"
-msgstr ""
-
-#: menus.c:643
-msgid "Move History"
-msgstr ""
-
-#: menus.c:644
-msgid "Evaluation Graph"
-msgstr ""
-
-#: menus.c:645
-msgid "Game List"
-msgstr ""
-
-#: menus.c:649
-msgid "Comments"
-msgstr ""
-
-#: menus.c:650
-msgid "ICS Input Box"
-msgstr ""
-
-#: menus.c:651
-msgid "ICS/Chat Console"
-msgstr ""
-
-#: menus.c:653
-msgid "Board..."
-msgstr ""
-
-#: menus.c:654
-msgid "Fonts..."
-msgstr ""
-
-#: menus.c:655
-msgid "Game List Tags..."
-msgstr ""
-
-#: menus.c:660
-msgid "Machine White"
-msgstr ""
-
-#: menus.c:661
-msgid "Machine Black"
-msgstr ""
-
-#: menus.c:662
-msgid "Two Machines"
-msgstr ""
-
-#: menus.c:663
-msgid "Analysis Mode"
-msgstr ""
-
-#: menus.c:664
-msgid "Analyze Game"
-msgstr ""
-
-#: menus.c:667
-msgid "Training"
-msgstr ""
-
-#: menus.c:668
-msgid "ICS Client"
-msgstr ""
-
-#: menus.c:670
-msgid "Machine Match"
-msgstr ""
-
-#: menus.c:671
-msgid "Pause"
-msgstr ""
-
-#: menus.c:676
-msgid "Accept"
-msgstr ""
-
-#: menus.c:677
-msgid "Decline"
-msgstr ""
-
-#: menus.c:678
-msgid "Rematch"
-msgstr ""
-
-#: menus.c:680
-msgid "Call Flag"
-msgstr ""
-
-#: menus.c:681
-msgid "Draw"
-msgstr ""
-
-#: menus.c:682
-msgid "Adjourn"
-msgstr ""
-
-#: menus.c:683
-msgid "Abort"
-msgstr ""
-
-#: menus.c:684
-msgid "Resign"
-msgstr ""
-
-#: menus.c:686
-msgid "Stop Observing"
-msgstr ""
-
-#: menus.c:687
-msgid "Stop Examining"
-msgstr ""
-
-#: menus.c:688
-msgid "Upload to Examine"
-msgstr ""
-
-#: menus.c:690
-msgid "Adjudicate to White"
-msgstr ""
-
-#: menus.c:691
-msgid "Adjudicate to Black"
-msgstr ""
-
-#: menus.c:692
-msgid "Adjudicate Draw"
-msgstr ""
-
-#: menus.c:697
-msgid "Edit Engine List..."
-msgstr ""
-
-#: menus.c:699
-msgid "Load New 1st Engine..."
-msgstr ""
-
-#: menus.c:700
-msgid "Load New 2nd Engine..."
-msgstr ""
-
-#: menus.c:702
-msgid "Engine #1 Settings..."
-msgstr ""
-
-#: menus.c:703
-msgid "Engine #2 Settings..."
-msgstr ""
-
-#: menus.c:704
-msgid "Common Settings..."
-msgstr ""
-
-#: menus.c:706
-msgid "Hint"
-msgstr ""
-
-#: menus.c:707
-msgid "Book"
-msgstr ""
-
-#: menus.c:709
-msgid "Move Now"
-msgstr ""
-
-#: menus.c:710
-msgid "Retract Move"
-msgstr ""
-
-#: menus.c:716
-msgid "General..."
-msgstr ""
-
-#: menus.c:718
-msgid "Time Control..."
-msgstr ""
-
-#: menus.c:719
-msgid "Adjudications..."
-msgstr ""
-
-#: menus.c:720
-msgid "ICS..."
-msgstr ""
-
-#: menus.c:721
-msgid "Tournament..."
-msgstr ""
-
-#: menus.c:722
-msgid "Load Game..."
-msgstr ""
-
-#: menus.c:723
-msgid "Save Game..."
-msgstr ""
-
-#: menus.c:724
-msgid "Game List..."
-msgstr ""
-
-#: menus.c:725
-msgid "Sounds..."
-msgstr ""
-
-#: menus.c:728
-msgid "Always Queen"
-msgstr ""
-
-#: menus.c:734
-msgid "Flash Moves"
-msgstr ""
-
-#: menus.c:736
-msgid "Highlight Dragging"
-msgstr ""
-
-#: menus.c:739
-msgid "Highlight With Arrow"
-msgstr ""
-
-#: menus.c:740
-msgid "Move Sound"
-msgstr ""
-
-#: menus.c:742
-msgid "Periodic Updates"
-msgstr ""
-
-#: menus.c:744
-msgid "Popup Exit Message"
-msgstr ""
-
-#: menus.c:746
-msgid "Show Coords"
-msgstr ""
-
-#: menus.c:747
-msgid "Hide Thinking"
-msgstr ""
-
-#: menus.c:751
-msgid "Save Settings Now"
-msgstr ""
-
-#: menus.c:752
-msgid "Save Settings on Exit"
-msgstr ""
-
-#: menus.c:757
-msgid "Info XBoard"
-msgstr ""
-
-#: menus.c:758
-msgid "Man XBoard"
-msgstr ""
-
-#: menus.c:760
-msgid "XBoard Home Page"
-msgstr ""
-
-#: menus.c:761
-msgid "On-line User Guide"
-msgstr ""
-
-#: menus.c:762
-msgid "Development News"
-msgstr ""
-
-#: menus.c:763
-msgid "e-Mail Bug Report"
-msgstr ""
-
-#: menus.c:802
-msgid "File"
-msgstr ""
-
-#: menus.c:803
-msgid "Edit"
-msgstr ""
-
-#: menus.c:804
-msgid "View"
-msgstr ""
-
-#: menus.c:805
-msgid "Mode"
-msgstr ""
-
-#: menus.c:806
-msgid "Action"
-msgstr ""
-
-#: menus.c:807
-msgid "Engine"
-msgstr ""
-
-#: menus.c:808
-msgid "Options"
-msgstr ""
-
-#: menus.c:809
-msgid "Help"
-msgstr ""
-
-#: nengineoutput.c:79 nengineoutput.c:87
-msgid "engine name"
-msgstr ""
-
-#. TRANSLATORS: noun, as in "the move Nf3"
-#: nengineoutput.c:82 nengineoutput.c:90
-msgid "move"
-msgstr ""
-
-#: nengineoutput.c:156
-msgid "Engine output"
-msgstr ""
-
-#: nengineoutput.c:160
-msgid ""
-"Mismatch of STRIDE in nengineoutput.c\n"
-"Change and recompile!"
-msgstr ""
-
-#: nevalgraph.c:69
-msgid "Evaluation graph"
-msgstr ""
-
-#: nevalgraph.c:69
-msgid "Blunder graph"
-msgstr ""
-
-#: nevalgraph.c:107
-msgid "Blunder"
-msgstr ""
-
-#: nevalgraph.c:107
-msgid "Eval"
-msgstr ""
-
-#: ngamelist.c:87
-msgid "find position"
-msgstr ""
-
-#: ngamelist.c:88
-msgid "narrow"
-msgstr ""
-
-#: ngamelist.c:89
-msgid "thresholds"
-msgstr ""
-
-#: ngamelist.c:90
-msgid "tags"
-msgstr ""
-
-#: ngamelist.c:91
-msgid "next"
-msgstr ""
-
-#: ngamelist.c:92
-msgid "close"
-msgstr ""
-
-#: ngamelist.c:116
-msgid "No game selected"
-msgstr ""
-
-#: ngamelist.c:122
-msgid "Can't go forward any further"
-msgstr ""
-
-#: ngamelist.c:192
-#, c-format
-msgid "Scanning through games (%d)"
-msgstr ""
-
-#: ngamelist.c:211
-msgid "previous page"
-msgstr ""
-
-#: ngamelist.c:214
-msgid "next page"
-msgstr ""
-
-#: ngamelist.c:217
-msgid "no games matched your request"
-msgstr ""
-
-#: ngamelist.c:219
-#, c-format
-msgid "%s - %d/%d games (%d-%d-%d)"
-msgstr ""
-
-#: ngamelist.c:284
-msgid "There is no game list"
-msgstr ""
-
-#: nhistory.c:109
-msgid "Move list"
-msgstr ""
-
-#: usystem.c:223
-#, c-format
-msgid "%s: unrecognized color %s\n"
-msgstr ""
-
-#: usystem.c:231
-#, c-format
-msgid "%s: can't parse foreground color in '%s'\n"
-msgstr ""
-
-#: usystem.c:260
-#, c-format
-msgid "%s: can't parse color names; disabling colorization\n"
-msgstr ""
-
-#: usystem.c:362
-#, c-format
-msgid "ERROR: Unknown user %s (in path %s)\n"
-msgstr ""
-
-#: usystem.c:564
-msgid "Socket support is not configured in"
-msgstr ""
-
-#: usystem.c:653
-msgid "internal rcmd not implemented for Unix"
-msgstr ""
-
-#: xaw/xboard.c:1206
-#, c-format
-msgid "white pixel = 0x%lx, black pixel = 0x%lx\n"
-msgstr ""
-
-#: xaw/xoptions.c:378 xaw/xoptions.c:1082
-msgid "browse"
-msgstr ""
-
-#: xaw/xoptions.c:444 xaw/xoptions.c:445
-msgid "Ctrl"
-msgstr ""
-
-#: xaw/xoptions.c:450 xaw/xoptions.c:451
-msgid "Alt"
-msgstr ""
-
-#: xaw/xoptions.c:456 xaw/xoptions.c:457
-msgid "Shift"
-msgstr ""
diff --git a/po/zh_CN.po b/po/zh_CN.po
deleted file mode 100644 (file)
index eda080f..0000000
+++ /dev/null
@@ -1,3264 +0,0 @@
-# XBoard -- a graphical chessboard for X
-# Copyright (C) 2014 Free Software Foundation, Inc.
-# This file is distributed under the same license as the XBoard package.
-# Tianze Wang <zwpwjwtz@126.com>, 2016.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: GNU xboard 4.9.0-pre2\n"
-"Report-Msgid-Bugs-To: bug-xboard@gnu.org\n"
-"POT-Creation-Date: 2016-04-03 13:44-0700\n"
-"PO-Revision-Date: 2016-04-05 20:23+0800\n"
-"Last-Translator: Tianze Wang <zwpwjwtz@126.com>\n"
-"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
-"Language: zh_CN\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Poedit 1.8.7\n"
-
-#: args.h:851
-#, c-format
-msgid "%s in settings file\n"
-msgstr "%s 位于配置文件中\n"
-
-#: args.h:885
-#, c-format
-msgid "Bad integer value %s"
-msgstr "整数 %s 有误"
-
-#: args.h:991 args.h:1252
-#, c-format
-msgid "Unrecognized argument %s"
-msgstr "无法识别参数 %s"
-
-#: args.h:1022
-#, c-format
-msgid "No value provided for argument %s"
-msgstr "未提供参数 %s 的值"
-
-#: args.h:1082
-#, c-format
-msgid "Incomplete \\ escape in value for %s"
-msgstr "%s 的值中有不完整的“\\”转义字符"
-
-#: args.h:1193
-#, c-format
-msgid "Failed to open indirection file %s"
-msgstr "打开间接文件 %s 失败"
-
-#: args.h:1210
-#, c-format
-msgid "Unrecognized boolean argument value %s"
-msgstr "无法识别逻辑变量值 %s"
-
-#. TRANSLATORS: "first" is the first of possible two chess engines. It is inserted into strings
-#. such as "%s engine" / "%s chess program" / "%s machine" - all meaning the same thing
-#: backend.c:811
-msgid "first"
-msgstr "第一个"
-
-#. TRANSLATORS: "second" is the second of possible two chess engines. It is inserted into strings
-#. such as "%s engine" / "%s chess program" / "%s machine" - all meaning the same thing
-#: backend.c:814
-msgid "second"
-msgstr "第二个"
-
-#: backend.c:897
-#, c-format
-msgid "protocol version %d not supported"
-msgstr "不支持协议版本 %d"
-
-#: backend.c:1004
-msgid "You did not specify the engine executable"
-msgstr "未指定引擎的可执行文件"
-
-#: backend.c:1062
-#, c-format
-msgid "bad timeControl option %s"
-msgstr "timeControl 选项 %s 错误"
-
-#: backend.c:1077
-#, c-format
-msgid "bad searchTime option %s"
-msgstr "searchTime 选项 %s 错误"
-
-#: backend.c:1183
-#, c-format
-msgid "Variant %s supported only in ICS mode"
-msgstr "仅 ICS 模式支持变量 %s"
-
-#: backend.c:1201
-#, c-format
-msgid "Unknown variant name %s"
-msgstr "未知变量名 %s"
-
-#: backend.c:1456
-msgid "Starting chess program"
-msgstr "开始象棋程序"
-
-#: backend.c:1479
-msgid "Bad game file"
-msgstr "棋局文件错误"
-
-#: backend.c:1486
-msgid "Bad position file"
-msgstr "位置文件错误"
-
-#: backend.c:1500
-msgid "Pick new game"
-msgstr "选择新棋局"
-
-#: backend.c:1569
-msgid ""
-"You restarted an already completed tourney.\n"
-"One more cycle will now be added to it.\n"
-"Games commence in 10 sec."
-msgstr ""
-"你重新开始了一个已经完成的赛程。\n"
-"将会添加更多的回合。\n"
-"棋局将在10秒内开始。"
-
-#: backend.c:1576
-#, c-format
-msgid "All games in tourney '%s' are already played or playing"
-msgstr "“%s”赛程中的所有棋局都已完成或正在进行"
-
-#: backend.c:1583
-msgid "Can't have a match with no chess programs"
-msgstr "没有象棋程序,无法开始比赛"
-
-#: backend.c:1637
-#, c-format
-msgid "Could not open comm port %s"
-msgstr "无法打开通讯端口 %s"
-
-#: backend.c:1640
-#, c-format
-msgid "Could not connect to host %s, port %s"
-msgstr "无法链接到主机 %s,端口号 %s"
-
-#: backend.c:1696
-#, c-format
-msgid "Unknown initialMode %s"
-msgstr "未知 initialMode %s"
-
-#: backend.c:1722
-msgid "AnalyzeFile mode requires a game file"
-msgstr "AnalyzeFile 模式需要棋局文件"
-
-#: backend.c:1755
-msgid "Analysis mode requires a chess engine"
-msgstr "Analysis 模式需要有象棋引擎"
-
-#: backend.c:1759
-msgid "Analysis mode does not work with ICS mode"
-msgstr "Analysis 模式无法与 ICS 模式共用"
-
-#: backend.c:1770
-msgid "MachineWhite mode requires a chess engine"
-msgstr "MachineWhite 模式需要有象棋引擎"
-
-#: backend.c:1775
-msgid "MachineWhite mode does not work with ICS mode"
-msgstr "MachineWhite 模式无法与 ICS 模式共用"
-
-#: backend.c:1782
-msgid "MachineBlack mode requires a chess engine"
-msgstr "MachineBlack 模式需要有象棋引擎"
-
-#: backend.c:1787
-msgid "MachineBlack mode does not work with ICS mode"
-msgstr "MachineBlack 模式无法与 ICS 模式共用"
-
-#: backend.c:1794
-msgid "TwoMachines mode requires a chess engine"
-msgstr "TwoMachines 模式需要有象棋引擎"
-
-#: backend.c:1799
-msgid "TwoMachines mode does not work with ICS mode"
-msgstr "TwoMachines 模式无法与 ICS 模式共用"
-
-#: backend.c:1810
-msgid "Training mode requires a game file"
-msgstr "训练模式需要有象棋引擎"
-
-#: backend.c:1973 backend.c:2028 backend.c:2051 backend.c:2453
-msgid "Error writing to ICS"
-msgstr "写入 ICS 出错"
-
-#: backend.c:1988
-msgid "Error reading from keyboard"
-msgstr "读取键盘出错"
-
-#: backend.c:1991
-msgid "Got end of file from keyboard"
-msgstr "从键盘上读到了EOF"
-
-#: backend.c:2299
-#, c-format
-msgid "Unknown wild type %d"
-msgstr "未知的原始类型 %d"
-
-#: backend.c:2370 usystem.c:317
-msgid "Error writing to display"
-msgstr "写入显示器时出错"
-
-#. TRANSLATORS: to 'kibitz' is to send a message to all players and the game observers
-#: backend.c:3138
-#, c-format
-msgid "your opponent kibitzes: %s"
-msgstr "你的对手 kibitzes:%s"
-
-#: backend.c:3677
-msgid "Error gathering move list: two headers"
-msgstr "获取棋步列表出错:有两个头部"
-
-#: backend.c:3724
-msgid "Error gathering move list: nested"
-msgstr "获取棋步列表出错:出现嵌套"
-
-#: backend.c:3828 backend.c:4254 backend.c:4458 backend.c:5017 backend.c:5021
-#: backend.c:7292 backend.c:13054 backend.c:14805 backend.c:14882
-#: backend.c:14928 backend.c:14934 backend.c:14939 backend.c:14944
-msgid "vs."
-msgstr "vs."
-
-#: backend.c:3956
-msgid "Illegal move (rejected by ICS)"
-msgstr "非法棋步(被 ICS 拒绝)"
-
-#: backend.c:4302
-msgid "Connection closed by ICS"
-msgstr "链接被 ICS 关闭"
-
-#: backend.c:4304
-msgid "Error reading from ICS"
-msgstr "从 ICS 读取时出错"
-
-#: backend.c:4381
-#, c-format
-msgid ""
-"Failed to parse board string:\n"
-"\"%s\""
-msgstr ""
-"解析棋盘字符出错:\n"
-"“%s”"
-
-#: backend.c:4390 backend.c:10628
-msgid "Game too long; increase MAX_MOVES and recompile"
-msgstr "比赛太长;请增大 MAX_MOVES 的值并重新编译"
-
-#: backend.c:4509
-msgid "Error gathering move list: extra board"
-msgstr "获取棋步列表出错:额外的棋盘"
-
-#: backend.c:4941 backend.c:4963
-#, c-format
-msgid "Couldn't parse move \"%s\" from ICS"
-msgstr "无法从 ICS 解析棋布“%s”"
-
-#: backend.c:5228
-#, c-format
-msgid "say Internal error; bad moveType %d (%d,%d-%d,%d)"
-msgstr "出现内部错误;错误的 moveType %d (%d,%d-%d,%d)"
-
-#: backend.c:5299
-msgid "You cannot do this while you are playing or observing"
-msgstr "在比赛或观战时无法进行此操作"
-
-#: backend.c:6359
-msgid "Recompile to support this BOARD_RANKS or BOARD_FILES!"
-msgstr "请重新编译以提供该 BOARD_RANKS 或 BOARD_FILES 特性!"
-
-#: backend.c:6851
-msgid "You are playing Black"
-msgstr "我方执黑"
-
-#: backend.c:6860 backend.c:6888
-msgid "You are playing White"
-msgstr "我方执白"
-
-#: backend.c:6870 backend.c:6896 backend.c:7018 backend.c:7043 backend.c:7059
-#: backend.c:15645
-msgid "It is White's turn"
-msgstr "白方行"
-
-#: backend.c:6874 backend.c:6900 backend.c:7026 backend.c:7049 backend.c:7081
-#: backend.c:15637
-msgid "It is Black's turn"
-msgstr "黑方行"
-
-#: backend.c:6913
-msgid "Displayed position is not current"
-msgstr "显示的位置非当前位置"
-
-#: backend.c:7116
-msgid "rights granted"
-msgstr "已授予权限"
-
-#: backend.c:7116
-msgid "rights revoked"
-msgstr "已撤销权限"
-
-#: backend.c:7169
-msgid "Illegal move"
-msgstr "非法棋步"
-
-#: backend.c:7249
-msgid "End of game"
-msgstr "棋局结束"
-
-#: backend.c:7252
-msgid "Incorrect move"
-msgstr "棋步不正确"
-
-#: backend.c:7655 backend.c:7811
-msgid "Pull pawn backwards to under-promote"
-msgstr "将棋子向后拖来使其升变"
-
-#: backend.c:7772
-msgid "only marked squares are legal"
-msgstr "仅标记的位置为合理位置"
-
-#: backend.c:8093
-msgid "Swiss tourney finished"
-msgstr "瑞士锦标赛已结束"
-
-#: backend.c:8609
-msgid "could not load EGBB library"
-msgstr "无法加载 EGBB 库"
-
-#: backend.c:8612
-msgid "wrong EGBB version"
-msgstr "EGBB 版本错误"
-
-#: backend.c:8725
-msgid "Invalid pairing from pairing engine"
-msgstr "配对引擎给出了错误的匹配"
-
-#: backend.c:8892
-#, c-format
-msgid "Illegal move \"%s\" from %s machine"
-msgstr "%s 机器给出了非法的棋步“%s”"
-
-#: backend.c:9179
-msgid "Bad FEN received from engine"
-msgstr "引擎给出了错误的 FEN"
-
-#: backend.c:9280
-msgid "Engine did not send setup for non-standard variant"
-msgstr "引擎未发送非标准棋种的布局"
-
-#: backend.c:9358 backend.c:14667 backend.c:14735
-#, c-format
-msgid "%s does not support analysis"
-msgstr "%s 不支持分析"
-
-#: backend.c:9424
-#, c-format
-msgid "Illegal move \"%s\" (rejected by %s chess program)"
-msgstr "非法棋步“%s”(被 %s 象棋程序拒绝)"
-
-#: backend.c:9455
-#, c-format
-msgid "Failed to start %s chess program %s on %s: %s\n"
-msgstr "在 %s 上启动 %s 象棋程序 %s 失败:%s\n"
-
-#: backend.c:9476
-#, c-format
-msgid "Hint: %s"
-msgstr "提示:%s"
-
-#: backend.c:9481
-#, c-format
-msgid ""
-"Illegal hint move \"%s\"\n"
-"from %s chess program"
-msgstr ""
-"%2$s 象棋程序给出了\n"
-"非法的棋步提示“%1$s”"
-
-#: backend.c:9656
-msgid "Machine accepts your draw offer"
-msgstr "机器接受了你的和局请求"
-
-#: backend.c:9659
-msgid ""
-"Machine offers a draw.\n"
-"Select Action / Draw to accept."
-msgstr ""
-"机器提出了和局请求。\n"
-"请选择 操作 / 和局 来确认。"
-
-#. TRANSLATORS: PV = principal variation, the variation the chess engine thinks is the best for everyone
-#: backend.c:9777
-msgid "failed writing PV"
-msgstr "写入 PV 失败"
-
-#: backend.c:10083
-#, c-format
-msgid "Ambiguous move in ICS output: \"%s\""
-msgstr "ICS 输出的棋步有歧义:“%s”"
-
-#: backend.c:10093
-#, c-format
-msgid "Illegal move in ICS output: \"%s\""
-msgstr "ICS 输出的棋步非法:“%s”"
-
-#: backend.c:10104
-msgid "Gap in move list"
-msgstr "棋步列表中有空缺"
-
-#: backend.c:10782
-#, c-format
-msgid "Variant %s not supported by %s"
-msgstr "%2$s 不支持变量 %1$s"
-
-#: backend.c:10789
-#, c-format
-msgid ", but %s is"
-msgstr ",但 %s 为"
-
-#: backend.c:10945
-#, c-format
-msgid "Startup failure on '%s'"
-msgstr "“%s”启动失败"
-
-#: backend.c:10976
-msgid "Waiting for first chess program"
-msgstr "等待第一个象棋程序"
-
-#: backend.c:10981 backend.c:14953
-msgid "Waiting for second chess program"
-msgstr "等待第二个象棋程序"
-
-#: backend.c:11030
-msgid "Could not write on tourney file"
-msgstr "无法写入到赛程文件"
-
-#: backend.c:11104
-msgid ""
-"You cannot replace an engine while it is engaged!\n"
-"Terminate its game first."
-msgstr ""
-"在引擎比赛时不能将其替换!\n"
-"请先终止比赛。"
-
-#: backend.c:11118
-msgid "No engine with the name you gave is installed"
-msgstr "未安装所给定的引擎"
-
-#: backend.c:11120
-msgid ""
-"First change an engine by editing the participants list\n"
-"of the Tournament Options dialog"
-msgstr "请先在赛事选项对话框中的参赛列表里改变引擎"
-
-#: backend.c:11121
-msgid "You can only change one engine at the time"
-msgstr "你一次只能改变一个引擎"
-
-#: backend.c:11136 backend.c:11285
-#, c-format
-msgid "No engine %s is installed"
-msgstr "未安装引擎 %s"
-
-#: backend.c:11156
-msgid ""
-"You must supply a tournament file,\n"
-"for storing the tourney progress"
-msgstr ""
-"你必须提供一个赛事文件,\n"
-"以便恢复赛程"
-
-#: backend.c:11166
-msgid "Not enough participants"
-msgstr "参赛者不足"
-
-#: backend.c:11369
-msgid "Bad tournament file"
-msgstr "赛事文件错误"
-
-#: backend.c:11381
-msgid "Waiting for other game(s)"
-msgstr "正在等待其他棋局"
-
-#: backend.c:11394
-msgid "No pairing engine specified"
-msgstr "未指定配对引擎"
-
-#: backend.c:11879
-#, c-format
-msgid "Average solving time %4.2f sec (total time %4.2f sec) "
-msgstr "平均运算时间 %4.2f 秒(总计 %4.2f 秒)"
-
-#: backend.c:11881
-#, c-format
-msgid "%d avoid-moves played "
-msgstr "避免了 %d 个可能导致输棋的棋步"
-
-#: backend.c:11883
-#, c-format
-msgid "Solved %d out of %d (%3.1f%%) "
-msgstr "解出了 %2$d 中的 %1$d 个(%3$3.1f%%)"
-
-#: backend.c:11886
-#, c-format
-msgid "Match %s vs. %s: final score %d-%d-%d"
-msgstr "比赛 %s vs. %s:最终比分 %d-%d-%d"
-
-#: backend.c:12363 backend.c:12399
-#, c-format
-msgid "Illegal move: %d.%s%s"
-msgstr "非法棋步:%d.%s%s"
-
-#: backend.c:12388
-#, c-format
-msgid "Ambiguous move: %d.%s%s"
-msgstr "棋步有歧义:%d.%s%s"
-
-#: backend.c:12442 backend.c:13495 backend.c:13695 backend.c:14065
-#, c-format
-msgid "Can't open \"%s\""
-msgstr "无法打开“%s”"
-
-#: backend.c:12454 menus.c:118
-msgid "Cannot build game list"
-msgstr "无法构建棋局列表"
-
-#: backend.c:12539
-msgid "No more games in this message"
-msgstr "消息中没有更多的棋局"
-
-#: backend.c:12579
-msgid "No game has been loaded yet"
-msgstr "尚未加载任何棋局"
-
-#: backend.c:12583 backend.c:13476 ngamelist.c:129
-msgid "Can't back up any further"
-msgstr "无法进一步后退"
-
-#: backend.c:13030
-msgid "Game number out of range"
-msgstr "棋局编号超出范围"
-
-#: backend.c:13041
-msgid "Can't seek on game file"
-msgstr "无法在棋局文件中定位"
-
-#: backend.c:13099
-msgid "Game not found in file"
-msgstr "文件中找不到棋局"
-
-#: backend.c:13230 backend.c:13573
-msgid "Bad FEN position in file"
-msgstr "文件中的 FEN 位置有误"
-
-#: backend.c:13388
-msgid "No moves in game"
-msgstr "棋局中没有棋步"
-
-#: backend.c:13472
-msgid "No position has been loaded yet"
-msgstr "尚未加载任何位置"
-
-#: backend.c:13533 backend.c:13544
-msgid "Can't seek on position file"
-msgstr "无法在位置文件中定位"
-
-#: backend.c:13551 backend.c:13563
-msgid "Position not found in file"
-msgstr "文件中找不到位置"
-
-#: backend.c:13610
-msgid "Black to play"
-msgstr "黑方行"
-
-#: backend.c:13613
-msgid "White to play"
-msgstr "白方行"
-
-#: backend.c:13700 backend.c:14070
-msgid "Waiting for access to save file"
-msgstr "正在等待以写入到文件"
-
-#: backend.c:13702
-msgid "Saving game"
-msgstr "保存棋局"
-
-#: backend.c:13703
-msgid "Bad Seek"
-msgstr "定位错误"
-
-#: backend.c:14072
-msgid "Saving position"
-msgstr "保存位置"
-
-#: backend.c:14198
-msgid ""
-"You have edited the game history.\n"
-"Use Reload Same Game and make your move again."
-msgstr ""
-"你编辑了棋局历史。\n"
-"请重新加载同一个棋局,然后再次行棋。"
-
-#: backend.c:14203
-msgid ""
-"You have entered too many moves.\n"
-"Back up to the correct position and try again."
-msgstr ""
-"你输入了过多的棋步。\n"
-"请后退至正确的位置,然后重试。"
-
-#: backend.c:14208
-msgid ""
-"Displayed position is not current.\n"
-"Step forward to the correct position and try again."
-msgstr ""
-"显示的位置不正确。\n"
-"请前进至正确的位置,然后重试。"
-
-#: backend.c:14255
-msgid "You have not made a move yet"
-msgstr "你还没有行棋"
-
-#: backend.c:14276
-msgid ""
-"The cmail message is not loaded.\n"
-"Use Reload CMail Message and make your move again."
-msgstr ""
-"尚未加载 cmail 消息。\n"
-"请重新加载 CMail 消息,然后再次行棋。"
-
-#: backend.c:14281
-msgid "No unfinished games"
-msgstr "没有未完成的比赛"
-
-#: backend.c:14287
-#, c-format
-msgid ""
-"You have already mailed a move.\n"
-"Wait until a move arrives from your opponent.\n"
-"To resend the same move, type\n"
-"\"cmail -remail -game %s\"\n"
-"on the command line."
-msgstr ""
-"你已经下了一步棋,请等待你的对手行棋。\n"
-"若要重新发送相同的棋步,在命令行中输入\n"
-"\"cmail -remail -game %s\"。"
-
-#: backend.c:14302
-msgid "Failed to invoke cmail"
-msgstr "调用 cmail 失败"
-
-#: backend.c:14364
-#, c-format
-msgid "Waiting for reply from opponent\n"
-msgstr "等待对手回复\n"
-
-#: backend.c:14386
-#, c-format
-msgid "Still need to make move for game\n"
-msgstr "仍然需要下一步棋来继续比赛\n"
-
-#: backend.c:14390
-#, c-format
-msgid "Still need to make moves for both games\n"
-msgstr "仍然需要下一步棋来继续这两个比赛\n"
-
-#: backend.c:14394
-#, c-format
-msgid "Still need to make moves for all %d games\n"
-msgstr "仍然需要下一步棋来继续这 %d 个比赛\n"
-
-#: backend.c:14401
-#, c-format
-msgid "Still need to make a move for game %s\n"
-msgstr "仍然需要下一步棋来继续比赛 %s\n"
-
-#: backend.c:14407
-#, c-format
-msgid "No unfinished games\n"
-msgstr "没有未完成的比赛\n"
-
-#: backend.c:14409
-#, c-format
-msgid "Ready to send mail\n"
-msgstr "已做好发送邮件的准备\n"
-
-#: backend.c:14414
-#, c-format
-msgid "Still need to make moves for games %s\n"
-msgstr "仍然需要下几步棋来继续比赛 %s\n"
-
-#: backend.c:14617
-msgid "Edit comment"
-msgstr "编辑评论"
-
-#: backend.c:14619
-#, c-format
-msgid "Edit comment on %d.%s%s"
-msgstr "编辑 %d.%s%s 的评论"
-
-#: backend.c:14674
-#, c-format
-msgid "You are not observing a game"
-msgstr "你未处于观战模式"
-
-#: backend.c:14785
-msgid "It is not White's turn"
-msgstr "并非白方的回合"
-
-#: backend.c:14866
-msgid "It is not Black's turn"
-msgstr "并非黑方的回合"
-
-#: backend.c:14974
-#, c-format
-msgid "Starting %s chess program"
-msgstr "启动 %s 象棋程序"
-
-#: backend.c:15002 backend.c:16189
-msgid ""
-"Wait until your turn,\n"
-"or select 'Move Now'."
-msgstr ""
-"请等待你的回合,\n"
-"或选择“立即行棋”。"
-
-#: backend.c:15145
-msgid "Training mode off"
-msgstr "开启训练模式"
-
-#: backend.c:15153
-msgid "Training mode on"
-msgstr "关闭训练模式"
-
-#: backend.c:15156
-msgid "Already at end of game"
-msgstr "已经处于残局"
-
-#: backend.c:15246
-msgid "Warning: You are still playing a game"
-msgstr "警告:你仍然在比赛中"
-
-#: backend.c:15249
-msgid "Warning: You are still observing a game"
-msgstr "警告:你仍然在观战中"
-
-#: backend.c:15252
-msgid "Warning: You are still examining a game"
-msgstr "警告:你仍然在研究比赛中"
-
-#: backend.c:15322
-msgid "Click clock to clear board"
-msgstr "点击时钟来清理棋盘"
-
-#: backend.c:15332
-msgid "Close ICS engine analyze..."
-msgstr "关闭 ICS 引擎分析..."
-
-#: backend.c:15662
-msgid "That square is occupied"
-msgstr "此方格已被占据"
-
-#: backend.c:15686 backend.c:15712
-msgid "There is no pending offer on this move"
-msgstr ""
-
-#: backend.c:15748 backend.c:15759
-msgid "Your opponent is not out of time"
-msgstr "你的对手未退出比赛"
-
-#: backend.c:15827
-msgid "You must make your move before offering a draw"
-msgstr "你必须在请求平局之前动一步"
-
-#: backend.c:16171
-msgid "You are not examining a game"
-msgstr "你尚未处于研究模式"
-
-#: backend.c:16175
-msgid "You can't revert while pausing"
-msgstr "你无法在暂停时进行撤销操作"
-
-#: backend.c:16229 backend.c:16236
-msgid "It is your turn"
-msgstr "轮到你了"
-
-#: backend.c:16287 backend.c:16294 backend.c:16380 backend.c:16387
-msgid "Wait until your turn."
-msgstr "请等待你的回合。"
-
-#: backend.c:16299
-msgid "No hint available"
-msgstr "没有提示"
-
-#: backend.c:16314 backend.c:16345 ngamelist.c:365
-msgid "Game list not loaded or empty"
-msgstr "尚未加载棋局列表,或列表为空"
-
-#: backend.c:16352
-msgid "Book file exists! Try again for overwrite."
-msgstr "Book 文件已存在!若要覆盖请重复此操作。"
-
-#: backend.c:16833
-#, c-format
-msgid "Error writing to %s chess program"
-msgstr "写入%s 象棋程序时出错"
-
-#: backend.c:16836 backend.c:16867
-#, c-format
-msgid "%s program exits in draw position (%s)"
-msgstr "%s 程序在绘制位置(%s)时退出"
-
-#: backend.c:16862
-#, c-format
-msgid "Error: %s chess program (%s) exited unexpectedly"
-msgstr "错误:%s 象棋程序(%s)意外地退出了"
-
-#: backend.c:16880
-#, c-format
-msgid "Error reading from %s chess program (%s)"
-msgstr "从 %s 象棋程序读取时出错(%s)"
-
-#: backend.c:17312
-#, c-format
-msgid "%s engine has too many options\n"
-msgstr "%s 引擎的选项过多\n"
-
-#: backend.c:17468
-msgid "Displayed move is not current"
-msgstr "显示的棋步非当前棋步"
-
-#: backend.c:17477
-msgid "Could not parse move"
-msgstr "无法解析棋步"
-
-#: backend.c:17602 backend.c:17624
-msgid "Both flags fell"
-msgstr "双方均超时了"
-
-#: backend.c:17604
-msgid "White's flag fell"
-msgstr "白方超时"
-
-#: backend.c:17626
-msgid "Black's flag fell"
-msgstr "黑方超时"
-
-#: backend.c:17757
-msgid "Clock adjustment not allowed in auto-flag mode"
-msgstr "自动限时模式中不允许调整时间"
-
-#: backend.c:18719
-msgid "Bad FEN position in clipboard"
-msgstr "剪贴板中的 FEN 位置有误"
-
-#: book.c:598 book.c:874
-msgid "Polyglot book not valid"
-msgstr "Polyglot book 无效"
-
-#: book.c:722
-msgid "Book Fault"
-msgstr "Book 错误"
-
-#: book.c:877
-msgid "Hash keys are different"
-msgstr "散列的键不相同"
-
-#: book.c:1053
-msgid "Could not create book"
-msgstr "无法创建 book"
-
-#: dialogs.c:286
-msgid "Tournament file:          "
-msgstr "赛事文件:          "
-
-#: dialogs.c:287
-msgid "For concurrent playing of tourney with multiple XBoards:"
-msgstr "用于同时在多个XBoards中进行一个赛事:"
-
-#: dialogs.c:288
-msgid "Sync after round"
-msgstr "每回合后同步"
-
-#: dialogs.c:289
-msgid "Sync after cycle"
-msgstr "每轮后同步"
-
-#: dialogs.c:290
-msgid "Tourney participants:"
-msgstr "参赛者:"
-
-#: dialogs.c:291
-msgid "Select Engine:"
-msgstr "选择引擎:"
-
-#: dialogs.c:299
-msgid "Tourney type (0 = round-robin, 1 = gauntlet):"
-msgstr "赛事类型(0=循环赛,1=挑战赛):"
-
-#: dialogs.c:300
-msgid "Number of tourney cycles (or Swiss rounds):"
-msgstr "赛事轮数(或瑞士轮数):"
-
-#: dialogs.c:301
-msgid "Default Number of Games in Match (or Pairing):"
-msgstr "默认的比赛数(或配对数):"
-
-#: dialogs.c:302
-msgid "Pause between Match Games (msec):"
-msgstr "棋局间隔(毫秒):"
-
-#: dialogs.c:303
-msgid "Save Tourney Games on:"
-msgstr "保持赛事文件到:"
-
-#: dialogs.c:304
-msgid "Game File with Opening Lines:"
-msgstr "棋局开场白文件:"
-
-#: dialogs.c:305
-msgid "Game Number (-1 or -2 = Auto-Increment):"
-msgstr "棋局编号(-1 或 -2=自动增长)"
-
-#: dialogs.c:306
-msgid "File with Start Positions:"
-msgstr "起始位置文件:"
-
-#: dialogs.c:307
-msgid "Position Number (-1 or -2 = Auto-Increment):"
-msgstr "位置编号(-1 或 -2=自动增长)"
-
-#: dialogs.c:308
-msgid "Rewind Index after this many Games (0 = never):"
-msgstr "在多少个棋局后将索引复位(0=从不):"
-
-#: dialogs.c:309
-msgid "Disable own engine books by default"
-msgstr "默认禁用引擎自带的棋谱"
-
-#: dialogs.c:310 dialogs.c:1840
-msgid "Time Control"
-msgstr "时间控制"
-
-#: dialogs.c:311
-msgid "Common Engine"
-msgstr "通用引擎"
-
-#: dialogs.c:312 dialogs.c:446
-msgid "General Options"
-msgstr "通用选项"
-
-#: dialogs.c:313
-msgid "Continue Later"
-msgstr "稍后继续"
-
-#: dialogs.c:314
-msgid "Replace Engine"
-msgstr "更换引擎"
-
-#: dialogs.c:315
-msgid "Upgrade Engine"
-msgstr "升级引擎"
-
-#: dialogs.c:316
-msgid "Clone Tourney"
-msgstr "克隆赛事"
-
-#: dialogs.c:356
-msgid "First you must specify an existing tourney file to clone"
-msgstr "你必须指定现存的赛事文件来进行克隆"
-
-#: dialogs.c:372 dialogs.c:1549
-msgid "# no engines are installed"
-msgstr "# 没有安装引擎"
-
-#: dialogs.c:380
-msgid "Internal error: PARTICIPANTS set wrong"
-msgstr "内部错误:PARTICIPANTS 设置错误"
-
-#: dialogs.c:388
-msgid "Tournament Options"
-msgstr "赛事选项"
-
-#: dialogs.c:407
-msgid "Absolute Analysis Scores"
-msgstr "绝对分析分值"
-
-#: dialogs.c:408
-msgid "Almost Always Queen (Detour Under-Promote)"
-msgstr ""
-
-#: dialogs.c:409 menus.c:729
-msgid "Animate Dragging"
-msgstr "拖动动画"
-
-#: dialogs.c:410 menus.c:730
-msgid "Animate Moving"
-msgstr "移动动画"
-
-#: dialogs.c:411 menus.c:731
-msgid "Auto Flag"
-msgstr "自动限时"
-
-#: dialogs.c:412 menus.c:732
-msgid "Auto Flip View"
-msgstr "自动翻转视角"
-
-#: dialogs.c:413 menus.c:733
-msgid "Blindfold"
-msgstr "盲棋"
-
-#. TRANSLATORS: the drop menu is used to drop a piece, e.g. during bughouse or editing a position
-#: dialogs.c:415
-msgid "Drop Menu"
-msgstr "下拉菜单"
-
-#: dialogs.c:416
-msgid "Enable Variation Trees"
-msgstr "启用步法树"
-
-#: dialogs.c:417
-msgid "Headers in Engine Output Window"
-msgstr "引擎输出窗口中的头部"
-
-#: dialogs.c:418
-msgid "Hide Thinking from Human"
-msgstr "隐藏人的思考"
-
-#: dialogs.c:419 menus.c:738
-msgid "Highlight Last Move"
-msgstr "高亮显示最后一步"
-
-#: dialogs.c:420
-msgid "Highlight with Arrow"
-msgstr "用箭头突出显示"
-
-#: dialogs.c:421 menus.c:741
-msgid "One-Click Moving"
-msgstr "一键移动"
-
-#: dialogs.c:422
-msgid "Periodic Updates (in Analysis Mode)"
-msgstr "周期更新(分析模式)"
-
-#: dialogs.c:424
-msgid "Play Move(s) of Clicked PV (Analysis)"
-msgstr ""
-
-#: dialogs.c:425 dialogs.c:626 menus.c:743
-msgid "Ponder Next Move"
-msgstr "思考下一步"
-
-#: dialogs.c:426
-msgid "Popup Exit Messages"
-msgstr "弹出退出消息"
-
-#: dialogs.c:427 menus.c:745
-msgid "Popup Move Errors"
-msgstr "弹出棋步错误"
-
-#: dialogs.c:428
-msgid "Scores in Move List"
-msgstr "棋步列表中显示分值"
-
-#: dialogs.c:429
-msgid "Show Coordinates"
-msgstr "显示坐标"
-
-#: dialogs.c:430
-msgid "Show Target Squares"
-msgstr "显示目标方格"
-
-#: dialogs.c:431
-msgid "Sticky Windows"
-msgstr "窗口吸附"
-
-#: dialogs.c:432 menus.c:748
-msgid "Test Legality"
-msgstr "探测棋步合法性"
-
-#: dialogs.c:433
-msgid "Top-Level Dialogs"
-msgstr "置顶对话框"
-
-#: dialogs.c:434
-msgid "Flash Moves (0 = no flashing):"
-msgstr "棋步闪烁(0=不闪烁)"
-
-#: dialogs.c:435
-msgid "Flash Rate (high = fast):"
-msgstr "闪烁频率(high=快)"
-
-#: dialogs.c:436
-msgid "Animation Speed (high = slow):"
-msgstr "动画速度(high=慢)"
-
-#: dialogs.c:437
-msgid "Zoom factor in Evaluation Graph:"
-msgstr "评估图的焦距:"
-
-#: dialogs.c:457
-msgid "Normal"
-msgstr "普通"
-
-#: dialogs.c:458
-msgid "Makruk"
-msgstr "泰国象棋"
-
-#: dialogs.c:459
-msgid "FRC"
-msgstr "菲舍尔任意制象棋"
-
-#: dialogs.c:460
-msgid "Shatranj"
-msgstr "波斯象棋"
-
-#: dialogs.c:461
-msgid "Wild castle"
-msgstr "自由易位棋"
-
-#: dialogs.c:462
-msgid "Knightmate"
-msgstr ""
-
-#: dialogs.c:463
-msgid "No castle"
-msgstr "无易位棋"
-
-#: dialogs.c:464
-msgid "Cylinder *"
-msgstr "滚筒棋 *"
-
-#: dialogs.c:465
-msgid "3-checks"
-msgstr "“三次将”"
-
-#: dialogs.c:466
-msgid "berolina *"
-msgstr "柏林棋 *"
-
-#: dialogs.c:467
-msgid "atomic"
-msgstr "核象棋"
-
-#: dialogs.c:468
-msgid "two kings"
-msgstr "双王棋"
-
-#: dialogs.c:469
-msgid " "
-msgstr " "
-
-#: dialogs.c:470
-msgid "Spartan"
-msgstr "斯巴达象棋"
-
-#: dialogs.c:471
-msgid "Board size ( -1 = default for selected variant):"
-msgstr "棋盘大小(-1=所选项的默认值)"
-
-#: dialogs.c:472
-msgid "Number of Board Ranks:"
-msgstr "棋盘行数:"
-
-#: dialogs.c:473
-msgid "Number of Board Files:"
-msgstr "棋盘列数:"
-
-#: dialogs.c:474
-msgid "Holdings Size:"
-msgstr ""
-
-#: dialogs.c:476
-msgid ""
-"Variants marked with * can only be played\n"
-"with legality testing off."
-msgstr ""
-"* 标记的棋种只能在关闭有效性检测的情况\n"
-"下对弈。"
-
-#: dialogs.c:478
-msgid "ASEAN"
-msgstr "东南亚象棋"
-
-#: dialogs.c:479
-msgid "Great Shatranj (10x8)"
-msgstr "大波斯象棋(10x8)"
-
-#: dialogs.c:480
-msgid "Seirawan"
-msgstr "谢尔望棋"
-
-#: dialogs.c:481
-msgid "Falcon (10x8)"
-msgstr "猎鹰棋(10x8)"
-
-#: dialogs.c:482
-msgid "Superchess"
-msgstr "超级象棋"
-
-#: dialogs.c:483
-msgid "Capablanca (10x8)"
-msgstr "卡帕布兰卡象棋(10x8)"
-
-#: dialogs.c:484
-msgid "Crazyhouse"
-msgstr "双狂象棋"
-
-#: dialogs.c:485
-msgid "Gothic (10x8)"
-msgstr "哥特式象棋"
-
-#: dialogs.c:486
-msgid "Bughouse"
-msgstr "四狂象棋"
-
-#: dialogs.c:487
-msgid "Janus (10x8)"
-msgstr "双象棋(10x8)"
-
-#: dialogs.c:488
-msgid "Suicide"
-msgstr "自杀棋"
-
-#: dialogs.c:489
-msgid "CRC (10x8)"
-msgstr "卡帕布兰卡任意制象棋(10x8)"
-
-#: dialogs.c:490
-msgid "give-away"
-msgstr "拱手棋"
-
-#: dialogs.c:491
-msgid "grand (10x10)"
-msgstr "大象棋(10x10)"
-
-#: dialogs.c:492
-msgid "losers"
-msgstr "败者棋"
-
-#: dialogs.c:493
-msgid "shogi (9x9)"
-msgstr "日本将棋(9x9)"
-
-#: dialogs.c:494
-msgid "fairy"
-msgstr "仙灵棋"
-
-#: dialogs.c:495
-msgid "xiangqi (9x10)"
-msgstr "中国象棋(9x10)"
-
-#: dialogs.c:496
-msgid "mighty lion"
-msgstr "雄狮棋"
-
-#: dialogs.c:497
-msgid "courier (12x8)"
-msgstr "信使象棋"
-
-#: dialogs.c:498
-msgid "elven chess (10x10)"
-msgstr "精灵棋(10x10)"
-
-#: dialogs.c:499
-msgid "chu shogi (12x12)"
-msgstr "中将棋(12x12)"
-
-#: dialogs.c:543
-#, c-format
-msgid "Warning: second engine (%s) does not support this!"
-msgstr ": (%s) !"
-
-#: dialogs.c:572
-#, c-format
-msgid "Only bughouse is not available in viewer mode."
-msgstr "仅 bughouse 不支持观战者模式。"
-
-#: dialogs.c:573
-#, c-format
-msgid ""
-"All variants not supported by the first engine\n"
-"(currently %s) are disabled."
-msgstr ""
-"第一个引擎(当前为 %s )不支持\n"
-"的棋种都已被禁用。"
-
-#: dialogs.c:595
-msgid "New Variant"
-msgstr "新棋种"
-
-#: dialogs.c:627
-msgid "Maximum Number of CPUs per Engine:"
-msgstr "每个引擎最多使用的CPU数:"
-
-#: dialogs.c:628
-msgid "Polygot Directory:"
-msgstr "Polygot 目录:"
-
-#: dialogs.c:629
-msgid "Hash-Table Size (MB):"
-msgstr "散列表大小(MB):"
-
-#: dialogs.c:630
-msgid "EGTB Path:"
-msgstr "EGTB 路径:"
-
-#: dialogs.c:631
-msgid "EGTB Cache Size (MB):"
-msgstr "EGTB 缓存大小(MB):"
-
-#: dialogs.c:632
-msgid "Use GUI Book"
-msgstr "使用 GUI 棋谱"
-
-#: dialogs.c:633
-msgid "Opening-Book Filename:"
-msgstr "打开棋谱文件:"
-
-#: dialogs.c:634
-msgid "Book Depth (moves):"
-msgstr "棋谱深度(步数):"
-
-#: dialogs.c:635
-msgid "Book Variety (0) vs. Strength (100):"
-msgstr ""
-
-#: dialogs.c:636
-msgid "Engine #1 Has Own Book"
-msgstr "#1 引擎有自带棋谱"
-
-#: dialogs.c:637
-msgid "Engine #2 Has Own Book          "
-msgstr "#2 引擎有自带棋谱"
-
-#: dialogs.c:648
-msgid "Common Engine Settings"
-msgstr "通用引擎设置"
-
-#: dialogs.c:654
-msgid "Detect all Mates"
-msgstr "检测所有将军情形"
-
-#: dialogs.c:655
-msgid "Verify Engine Result Claims"
-msgstr "检查引擎输出结果"
-
-#: dialogs.c:656
-msgid "Draw if Insufficient Mating Material"
-msgstr "若无法将死,则判为平局"
-
-#: dialogs.c:657
-msgid "Adjudicate Trivial Draws (3-Move Delay)"
-msgstr "裁决重复和局(三次行棋重复)"
-
-#: dialogs.c:658
-msgid "N-Move Rule:"
-msgstr "N-步规则:"
-
-#: dialogs.c:659
-msgid "N-fold Repeats:"
-msgstr "N的倍数次重复:"
-
-#: dialogs.c:660
-msgid "Draw after N Moves Total:"
-msgstr "N步后和局:"
-
-#: dialogs.c:661
-msgid "Win / Loss Threshold:"
-msgstr "胜/负阈值:"
-
-#: dialogs.c:662
-msgid "Negate Score of Engine #1"
-msgstr "#1 引擎的负分"
-
-#: dialogs.c:663
-msgid "Negate Score of Engine #2"
-msgstr "#2 引擎的负分"
-
-#: dialogs.c:670
-msgid "Adjudicate non-ICS Games"
-msgstr "裁决非ICS比赛"
-
-#: dialogs.c:683
-msgid "Auto-Kibitz"
-msgstr "自动支招"
-
-#: dialogs.c:684
-msgid "Auto-Comment"
-msgstr "自动注释"
-
-#: dialogs.c:685
-msgid "Auto-Observe"
-msgstr "自动观察"
-
-#: dialogs.c:686
-msgid "Auto-Raise Board"
-msgstr ""
-
-#: dialogs.c:687
-msgid "Auto-Create Logon Script"
-msgstr "自动创建登录脚本"
-
-#: dialogs.c:688
-msgid "Background Observe while Playing"
-msgstr "对弈时后台观战"
-
-#: dialogs.c:689
-msgid "Dual Board for Background-Observed Game"
-msgstr "后台观战时显示双棋盘"
-
-#: dialogs.c:690
-msgid "Get Move List"
-msgstr "获取棋步列表"
-
-#: dialogs.c:691
-msgid "Quiet Play"
-msgstr "静默比赛"
-
-#: dialogs.c:692
-msgid "Seek Graph"
-msgstr "试探图"
-
-#: dialogs.c:693
-msgid "Auto-Refresh Seek Graph"
-msgstr "自动刷新试探图"
-
-#: dialogs.c:694
-msgid "Auto-InputBox PopUp"
-msgstr "自动弹出输入框"
-
-#: dialogs.c:695
-msgid "Quit after game"
-msgstr "棋局结束后退出"
-
-#: dialogs.c:696
-msgid "Premove"
-msgstr "先行棋"
-
-#: dialogs.c:697
-msgid "Premove for White"
-msgstr "白先行"
-
-#: dialogs.c:698
-msgid "First White Move:"
-msgstr "白方先行棋:"
-
-#: dialogs.c:699
-msgid "Premove for Black"
-msgstr "黑先行"
-
-#: dialogs.c:700
-msgid "First Black Move:"
-msgstr "黑方先行棋:"
-
-#: dialogs.c:702
-msgid "Alarm"
-msgstr "警告"
-
-#: dialogs.c:703
-msgid "Alarm Time (msec):"
-msgstr "警告时间(毫秒):"
-
-#: dialogs.c:705
-msgid "Colorize Messages"
-msgstr "消息着色"
-
-#: dialogs.c:706
-msgid "Shout Text Colors:"
-msgstr "呼喊文本颜色:"
-
-#: dialogs.c:707
-msgid "S-Shout Text Colors:"
-msgstr "S-呼喊文本颜色:"
-
-#: dialogs.c:708
-msgid "Channel #1 Text Colors:"
-msgstr "1# 频道文字颜色:"
-
-#: dialogs.c:709
-msgid "Other Channel Text Colors:"
-msgstr "其他频道文字颜色:"
-
-#: dialogs.c:710
-msgid "Kibitz Text Colors:"
-msgstr "支招文本颜色:"
-
-#: dialogs.c:711
-msgid "Tell Text Colors:"
-msgstr "告知文本颜色:"
-
-#: dialogs.c:712
-msgid "Challenge Text Colors:"
-msgstr "挑战文本颜色:"
-
-#: dialogs.c:713
-msgid "Request Text Colors:"
-msgstr "请求文本颜色:"
-
-#: dialogs.c:714
-msgid "Seek Text Colors:"
-msgstr "试探文本颜色"
-
-#: dialogs.c:715
-msgid "Other Text Colors:"
-msgstr "其他文字颜色:"
-
-#: dialogs.c:722
-msgid "ICS Options"
-msgstr "ICS 选项"
-
-#: dialogs.c:727
-msgid "Exact position match"
-msgstr "匹配准确位置"
-
-#: dialogs.c:727
-msgid "Shown position is subset"
-msgstr ""
-
-#: dialogs.c:727
-msgid "Same material with exactly same Pawn chain"
-msgstr ""
-
-#: dialogs.c:728
-msgid "Same material"
-msgstr ""
-
-#: dialogs.c:728
-msgid "Material range (top board half optional)"
-msgstr ""
-
-#: dialogs.c:728
-msgid "Material difference (optional stuff balanced)"
-msgstr ""
-
-#: dialogs.c:743
-msgid "Auto-Display Tags"
-msgstr "自动显示标记"
-
-#: dialogs.c:744
-msgid "Auto-Display Comment"
-msgstr "自动显示注释"
-
-#: dialogs.c:745
-msgid ""
-"Auto-Play speed of loaded games\n"
-"(0 = instant, -1 = off):"
-msgstr ""
-"载入棋局的自动对弈速度\n"
-"(0=立即,-1=关闭)"
-
-#: dialogs.c:746
-msgid "Seconds per Move:"
-msgstr "每步秒数:"
-
-#: dialogs.c:747
-msgid ""
-"\n"
-"options to use in game-viewer mode:"
-msgstr ""
-"\n"
-"用于观战者模式的选项:"
-
-#: dialogs.c:749
-msgid ""
-"\n"
-"Thresholds for position filtering in game list:"
-msgstr ""
-"\n"
-"游戏列表中位置筛选的阈值:"
-
-#: dialogs.c:750
-msgid "Elo of strongest player at least:"
-msgstr "最强对手的最低 ELO 积分"
-
-#: dialogs.c:751
-msgid "Elo of weakest player at least:"
-msgstr "最弱对手的最低 ELO 积分"
-
-#: dialogs.c:752
-msgid "No games before year:"
-msgstr ""
-
-#: dialogs.c:753
-msgid "Minimum nr consecutive positions:"
-msgstr ""
-
-#: dialogs.c:755
-msgid "Search mode:"
-msgstr "搜索模式:"
-
-#: dialogs.c:756
-msgid "Also match reversed colors"
-msgstr "也匹配相反的颜色"
-
-#: dialogs.c:757
-msgid "Also match left-right flipped position"
-msgstr "也匹配左右翻转的位置"
-
-#: dialogs.c:766
-msgid "Load Game Options"
-msgstr "棋局加载选项"
-
-#: dialogs.c:778
-msgid "Auto-Save Games"
-msgstr "自动保存棋局"
-
-#: dialogs.c:779
-msgid "Own Games Only"
-msgstr "仅自己的棋局"
-
-#: dialogs.c:780
-msgid "Save Games on File:"
-msgstr "将棋局保存到文件:"
-
-#: dialogs.c:781
-msgid "Save Final Positions on File:"
-msgstr "将最终位置保存到文件:"
-
-#: dialogs.c:782
-msgid "PGN Event Header:"
-msgstr "PGN 事件头部:"
-
-#: dialogs.c:783
-msgid "Old Save Style (as opposed to PGN)"
-msgstr "旧模式(相对于 PGN)保存"
-
-#: dialogs.c:784
-msgid "Include Number Tag in tourney PGN"
-msgstr "包括赛事 PGN 的编号标签"
-
-#: dialogs.c:785
-msgid "Save Score/Depth Info in PGN"
-msgstr "将分数/深度信息保存到PGN"
-
-#: dialogs.c:786
-msgid "Save Out-of-Book Info in PGN           "
-msgstr "将棋谱未涵盖的信息保存到PGN           "
-
-#: dialogs.c:793
-msgid "Save Game Options"
-msgstr "保存棋局选项"
-
-#: dialogs.c:802
-msgid "No Sound"
-msgstr "静音"
-
-#: dialogs.c:803
-msgid "Default Beep"
-msgstr "默认音效"
-
-#: dialogs.c:804
-msgid "Above WAV File"
-msgstr ""
-
-#: dialogs.c:805
-msgid "Car Horn"
-msgstr "汽车喇叭"
-
-#: dialogs.c:806
-msgid "Cymbal"
-msgstr "钹"
-
-#: dialogs.c:807
-msgid "Ding"
-msgstr "铃"
-
-#: dialogs.c:808
-msgid "Gong"
-msgstr "锣"
-
-#: dialogs.c:809
-msgid "Laser"
-msgstr "激光"
-
-#: dialogs.c:810
-msgid "Penalty"
-msgstr "惩罚"
-
-#: dialogs.c:811
-msgid "Phone"
-msgstr "电话"
-
-#: dialogs.c:812
-msgid "Pop"
-msgstr "弹出"
-
-#: dialogs.c:813
-msgid "Roar"
-msgstr "怒吼"
-
-#: dialogs.c:814
-msgid "Slap"
-msgstr "拍打"
-
-#: dialogs.c:815
-msgid "Wood Thunk"
-msgstr "木梆"
-
-#: dialogs.c:817
-msgid "User File"
-msgstr "用户文件"
-
-#: dialogs.c:840
-msgid "User WAV File:"
-msgstr "用户 WAV 文件:"
-
-#: dialogs.c:841
-msgid "Sound Program:"
-msgstr "声音程序:"
-
-#: dialogs.c:842
-msgid "Try-Out Sound:"
-msgstr "试探音效:"
-
-#: dialogs.c:843
-msgid "Play"
-msgstr "播放"
-
-#: dialogs.c:844
-msgid "Move:"
-msgstr "行棋:"
-
-#: dialogs.c:845
-msgid "Win:"
-msgstr "赢棋:"
-
-#: dialogs.c:846
-msgid "Lose:"
-msgstr "输棋:"
-
-#: dialogs.c:847
-msgid "Draw:"
-msgstr "平局:"
-
-#: dialogs.c:848
-msgid "Unfinished:"
-msgstr "未完成:"
-
-#: dialogs.c:849
-msgid "Alarm:"
-msgstr "警告:"
-
-#: dialogs.c:850
-msgid "Challenge:"
-msgstr "挑战:"
-
-#: dialogs.c:852
-msgid "Sounds Directory:"
-msgstr "音效目录:"
-
-#: dialogs.c:853
-msgid "Shout:"
-msgstr "呼喊:"
-
-#: dialogs.c:854
-msgid "S-Shout:"
-msgstr "S-呼喊:"
-
-#: dialogs.c:855
-msgid "Channel:"
-msgstr "频道:"
-
-#: dialogs.c:856
-msgid "Channel 1:"
-msgstr "频道 1:"
-
-#: dialogs.c:857
-msgid "Tell:"
-msgstr "告知:"
-
-#: dialogs.c:858
-msgid "Kibitz:"
-msgstr "支招:"
-
-#: dialogs.c:859
-msgid "Request:"
-msgstr "请求:"
-
-#: dialogs.c:860
-msgid "Lion roar:"
-msgstr "狮吼:"
-
-#: dialogs.c:861
-msgid "Seek:"
-msgstr "试探:"
-
-#: dialogs.c:877
-msgid "Sound Options"
-msgstr "声音选项"
-
-#: dialogs.c:893
-msgid "Selectable themes:"
-msgstr "可选主题:"
-
-#: dialogs.c:895
-msgid "New name for current theme:"
-msgstr "当前主题的新名称:"
-
-#: dialogs.c:898
-msgid "White Piece Color:"
-msgstr "白子颜色:"
-
-#. TRANSLATORS: R = single letter for the color red
-#: dialogs.c:901 dialogs.c:910 dialogs.c:916 dialogs.c:922 dialogs.c:928
-#: dialogs.c:934
-msgid "R"
-msgstr "红"
-
-#. TRANSLATORS: G = single letter for the color green
-#: dialogs.c:903 dialogs.c:911 dialogs.c:917 dialogs.c:923 dialogs.c:929
-#: dialogs.c:935
-msgid "G"
-msgstr "绿"
-
-#. TRANSLATORS: B = single letter for the color blue
-#: dialogs.c:905 dialogs.c:912 dialogs.c:918 dialogs.c:924 dialogs.c:930
-#: dialogs.c:936 dialogs.c:1650 dialogs.c:1656 dialogs.c:1662 dialogs.c:1668
-#: dialogs.c:1674 dialogs.c:1680 dialogs.c:1686
-msgid "B"
-msgstr "蓝"
-
-#. TRANSLATORS: D = single letter to make a color darker
-#: dialogs.c:907 dialogs.c:913 dialogs.c:919 dialogs.c:925 dialogs.c:931
-#: dialogs.c:937
-msgid "D"
-msgstr "黑"
-
-#: dialogs.c:908
-msgid "Black Piece Color:"
-msgstr "黑子颜色:"
-
-#: dialogs.c:914
-msgid "Light Square Color:"
-msgstr "白格颜色:"
-
-#: dialogs.c:920
-msgid "Dark Square Color:"
-msgstr "黑格颜色:"
-
-#: dialogs.c:926
-msgid "Highlight Color:"
-msgstr "高亮颜色:"
-
-#: dialogs.c:932
-msgid "Premove Highlight Color:"
-msgstr "先行棋高亮颜色:"
-
-#: dialogs.c:938
-msgid "Flip Pieces Shogi Style        (Colored buttons restore default)"
-msgstr "翻转将棋棋子(点击着色按钮来恢复默认)"
-
-#: dialogs.c:940
-msgid "Mono Mode"
-msgstr "单色模式"
-
-#: dialogs.c:941
-msgid "Logo Size (0=off, requires restart):"
-msgstr "徽标大小(0=off,需要重启):"
-
-#: dialogs.c:942
-msgid "Line Gap (-1 = default for board size):"
-msgstr "线条间隙(-1=根据棋盘大小确定):"
-
-#: dialogs.c:943
-msgid "Use Board Textures"
-msgstr "使用棋盘纹理"
-
-#: dialogs.c:944
-msgid "Light-Squares Texture File:"
-msgstr "白格纹理文件:"
-
-#: dialogs.c:945
-msgid "Dark-Squares Texture File:"
-msgstr "黑格纹理文件:"
-
-#: dialogs.c:946
-msgid "Use external piece bitmaps with their own colors"
-msgstr "将外部位图用于棋子颜色"
-
-#: dialogs.c:947
-msgid "Directory with Pieces Images:"
-msgstr "棋子图像的目录:"
-
-#: dialogs.c:1018
-msgid "# no themes are defined"
-msgstr "# 没有定义主题"
-
-#: dialogs.c:1030
-msgid "Board Options"
-msgstr "棋盘选项"
-
-#: dialogs.c:1101 menus.c:646
-msgid "ICS text menu"
-msgstr "ICS 文本菜单"
-
-#: dialogs.c:1130
-msgid "clear"
-msgstr "清除"
-
-#: dialogs.c:1131
-msgid "save changes"
-msgstr "保存更改"
-
-#: dialogs.c:1229
-msgid "add next move"
-msgstr "添加下一步"
-
-#: dialogs.c:1230
-msgid "commit changes"
-msgstr "保存更改"
-
-#: dialogs.c:1253
-msgid "Edit book"
-msgstr "编辑棋谱"
-
-#: dialogs.c:1270 dialogs.c:1277 menus.c:648
-msgid "Tags"
-msgstr "标签"
-
-#: dialogs.c:1285
-msgid "Registered Engines"
-msgstr "已知的引擎"
-
-#: dialogs.c:1401
-msgid "ICS input box"
-msgstr "ICS 输入框"
-
-#: dialogs.c:1433
-msgid "Type a move"
-msgstr "输入一个棋步"
-
-#: dialogs.c:1459
-msgid "Engine has no options"
-msgstr "引擎没有选项"
-
-#: dialogs.c:1461
-msgid "Engine Settings"
-msgstr "引擎设置"
-
-#: dialogs.c:1502
-msgid "Select engine from list:"
-msgstr "从列表中选择引擎:"
-
-#: dialogs.c:1505
-msgid "or specify one below:"
-msgstr "或在下面指定一个:"
-
-#: dialogs.c:1506
-msgid "Nickname (optional):"
-msgstr "昵称(可选):"
-
-#: dialogs.c:1507
-msgid "Use nickname in PGN player tags of engine-engine games"
-msgstr "在机器-机器对战中的 PGN 玩家标签中使用昵称"
-
-#: dialogs.c:1508
-msgid "Engine Directory:"
-msgstr "引擎目录:"
-
-#: dialogs.c:1509
-msgid "Engine Command:"
-msgstr "引擎命令:"
-
-#: dialogs.c:1510
-msgid "(Directory will be derived from engine path when empty)"
-msgstr "(若留空,则根据引擎路径推测其目录)"
-
-#: dialogs.c:1511
-msgid "UCI"
-msgstr "UCI"
-
-#: dialogs.c:1512
-msgid "USI/UCCI (uses specified -uxiAdapter)"
-msgstr "USI/UCCI(使用指定的 -uxiAdapter)"
-
-#: dialogs.c:1513
-msgid "WB protocol v1 (do not wait for engine features)"
-msgstr "WB 协议第一版(不等待引擎的特性)"
-
-#: dialogs.c:1514
-msgid "Must not use GUI book"
-msgstr "禁止使用 GUI 棋谱"
-
-#: dialogs.c:1515
-msgid "Add this engine to the list"
-msgstr "将该引擎添加到列表"
-
-#: dialogs.c:1516
-msgid "Force current variant with this engine"
-msgstr "强制当前棋种使用该引擎"
-
-#: dialogs.c:1570
-msgid "Load first engine"
-msgstr "加载第一个引擎"
-
-#: dialogs.c:1576
-msgid "Load second engine"
-msgstr "加载第二个引擎"
-
-#: dialogs.c:1599
-msgid "shuffle"
-msgstr "任意制"
-
-#: dialogs.c:1600
-msgid "Fischer castling"
-msgstr "菲舍尔式易位"
-
-#: dialogs.c:1601
-msgid "Start-position number:"
-msgstr "起始位置编号:"
-
-#: dialogs.c:1602
-msgid "randomize"
-msgstr "随机化"
-
-#: dialogs.c:1603
-msgid "pick fixed"
-msgstr "指定固定值"
-
-#: dialogs.c:1620
-msgid "New Shuffle Game"
-msgstr "新任意制游戏"
-
-#: dialogs.c:1647
-msgid "Clocks (requires restart):"
-msgstr "计时(需要重启):"
-
-#: dialogs.c:1648 dialogs.c:1654 dialogs.c:1660 dialogs.c:1666 dialogs.c:1672
-#: dialogs.c:1678 dialogs.c:1684
-msgid "+"
-msgstr "+"
-
-#: dialogs.c:1649 dialogs.c:1655 dialogs.c:1661 dialogs.c:1667 dialogs.c:1673
-#: dialogs.c:1679 dialogs.c:1685
-msgid "-"
-msgstr "-"
-
-#: dialogs.c:1651 dialogs.c:1657 dialogs.c:1663 dialogs.c:1669 dialogs.c:1675
-#: dialogs.c:1681 dialogs.c:1687
-msgid "I"
-msgstr "I"
-
-#: dialogs.c:1652 dialogs.c:1658 dialogs.c:1664 dialogs.c:1670 dialogs.c:1676
-#: dialogs.c:1682 dialogs.c:1688
-msgid "*"
-msgstr "*"
-
-#: dialogs.c:1653
-msgid "Message (above board):"
-msgstr "消息(位于棋盘上)"
-
-#: dialogs.c:1659
-msgid "ICS Chat/Console:"
-msgstr "ICS 聊天/聊天终端"
-
-#: dialogs.c:1665
-msgid "Edit tags / book / engine list:"
-msgstr "编辑标记/棋谱/引擎列表:"
-
-#: dialogs.c:1671
-msgid "Edit comments:"
-msgstr "编辑评论:"
-
-#: dialogs.c:1677
-msgid "Move history / Engine Output:"
-msgstr "棋步历史/引擎输出:"
-
-#: dialogs.c:1683
-msgid "Game list:"
-msgstr "棋局列表:"
-
-#: dialogs.c:1689
-msgid ""
-"\n"
-"The * buttons will set the font to the one selected below:"
-msgstr ""
-"\n"
-"按钮 * 用于设定字体:"
-
-#: dialogs.c:1743
-msgid "This only works in the GTK build"
-msgstr "此功能仅用于 GTK 前端"
-
-#: dialogs.c:1744
-msgid "Fonts"
-msgstr "字体"
-
-#: dialogs.c:1764
-msgid "classical"
-msgstr "经典"
-
-#: dialogs.c:1765
-msgid "incremental"
-msgstr "自增"
-
-#: dialogs.c:1766
-msgid "fixed max"
-msgstr "固定最大值"
-
-#: dialogs.c:1767
-msgid "Divide entered times by 60"
-msgstr "输入的时间除以 60"
-
-#: dialogs.c:1768
-msgid "Moves per session:"
-msgstr "每个会话的步数:"
-
-#: dialogs.c:1769
-msgid "Initial time (min):"
-msgstr "初始时间(分钟):"
-
-#: dialogs.c:1770
-msgid "Increment or max (sec/move):"
-msgstr "自增或最大值(秒/每步):"
-
-#: dialogs.c:1771
-msgid "Time-Odds factors:"
-msgstr "时间比例因子:"
-
-#: dialogs.c:1772
-msgid "Engine #1"
-msgstr "#1 引擎"
-
-#: dialogs.c:1773
-msgid "Engine #2 / Human"
-msgstr "#2 引擎/人"
-
-#: dialogs.c:1814 dialogs.c:1817 dialogs.c:1822 dialogs.c:1823
-#: gtk/xoptions.c:183
-msgid "Unused"
-msgstr "不使用"
-
-#: dialogs.c:1832
-msgid "Changing time control during a game is not implemented"
-msgstr "尚未实现在棋局中改变时间控制的功能"
-
-#: dialogs.c:1869
-msgid "Error writing to chess program"
-msgstr "写入到象棋程序时出错"
-
-#: dialogs.c:1937 gtk/xoptions.c:1775 xaw/xoptions.c:1341
-msgid "Cancel"
-msgstr "取消"
-
-#: dialogs.c:1942 dialogs.c:2695 dialogs.c:2699
-msgid "King"
-msgstr "王"
-
-#: dialogs.c:1945
-msgid "Captain"
-msgstr "帅"
-
-#: dialogs.c:1946
-msgid "Lieutenant"
-msgstr "尉"
-
-#: dialogs.c:1947
-msgid "General"
-msgstr "将"
-
-#: dialogs.c:1948
-msgid "Warlord"
-msgstr "军阀"
-
-#: dialogs.c:1950 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Knight"
-msgstr "马"
-
-#: dialogs.c:1951 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Bishop"
-msgstr "象"
-
-#: dialogs.c:1952 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Rook"
-msgstr "车"
-
-#: dialogs.c:1956 dialogs.c:2696 dialogs.c:2700
-msgid "Archbishop"
-msgstr "大主教"
-
-#: dialogs.c:1957 dialogs.c:2696 dialogs.c:2700
-msgid "Chancellor"
-msgstr "校"
-
-#: dialogs.c:1959 dialogs.c:2695 dialogs.c:2699 dialogs.c:2717
-msgid "Queen"
-msgstr "后"
-
-#: dialogs.c:1961
-msgid "Lion"
-msgstr "狮"
-
-#: dialogs.c:1965
-msgid "Defer"
-msgstr "延"
-
-#: dialogs.c:1966 dialogs.c:2696 dialogs.c:2700
-msgid "Promote"
-msgstr "升"
-
-#: dialogs.c:2023
-msgid "Chats:"
-msgstr "聊天:"
-
-#: dialogs.c:2024 dialogs.c:2025 dialogs.c:2026 dialogs.c:2027 dialogs.c:2028
-#: dialogs.c:2134 dialogs.c:2199 dialogs.c:2231
-msgid "New Chat"
-msgstr "新聊天"
-
-#: dialogs.c:2031
-msgid "Chat partner:"
-msgstr "聊天伙伴:"
-
-#: dialogs.c:2032
-msgid "End Chat"
-msgstr "结束聊天"
-
-#: dialogs.c:2033
-msgid "Hide"
-msgstr "隐藏"
-
-#: dialogs.c:2260
-msgid "ICS Interaction"
-msgstr "ICS 交互"
-
-#: dialogs.c:2345
-msgid "factory"
-msgstr ""
-
-#: dialogs.c:2346
-msgid "up"
-msgstr "上"
-
-#: dialogs.c:2347
-msgid "down"
-msgstr "下"
-
-#: dialogs.c:2366
-msgid "No tag selected"
-msgstr "未选择标签"
-
-#: dialogs.c:2397
-msgid "Game-list options"
-msgstr "棋局列表选项"
-
-#: dialogs.c:2475 dialogs.c:2489
-msgid "Error"
-msgstr "错误"
-
-#: dialogs.c:2518
-msgid "Fatal Error"
-msgstr "严重错误"
-
-#: dialogs.c:2518
-msgid "Exiting"
-msgstr "退出"
-
-#: dialogs.c:2529
-msgid "Information"
-msgstr "信息"
-
-#: dialogs.c:2536
-msgid "Note"
-msgstr "注释"
-
-#: dialogs.c:2694 dialogs.c:2987 dialogs.c:2990
-msgid "White"
-msgstr "白"
-
-#: dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Pawn"
-msgstr "卒"
-
-#: dialogs.c:2695 dialogs.c:2699
-msgid "Elephant"
-msgstr "象"
-
-#: dialogs.c:2695 dialogs.c:2699
-msgid "Cannon"
-msgstr "炮"
-
-#: dialogs.c:2696 dialogs.c:2700
-msgid "Demote"
-msgstr "降"
-
-#: dialogs.c:2697 dialogs.c:2701
-msgid "Empty square"
-msgstr "空位"
-
-#: dialogs.c:2697 dialogs.c:2701
-msgid "Clear board"
-msgstr "清除棋盘"
-
-#: dialogs.c:2698 dialogs.c:2999 dialogs.c:3002
-msgid "Black"
-msgstr "黑"
-
-#: dialogs.c:2798
-msgid "_File"
-msgstr "文件(_F)"
-
-#: dialogs.c:2799
-msgid "_Edit"
-msgstr "编辑(_E)"
-
-#: dialogs.c:2800
-msgid "_View"
-msgstr "查看(_V)"
-
-#: dialogs.c:2801
-msgid "_Mode"
-msgstr "模式(_M)"
-
-#: dialogs.c:2802
-msgid "_Action"
-msgstr "动作(_A)"
-
-#: dialogs.c:2803
-msgid "E_ngine"
-msgstr "引擎(_N)"
-
-#: dialogs.c:2804
-msgid "_Options"
-msgstr "选项(_O)"
-
-#: dialogs.c:2805
-msgid "_Help"
-msgstr "帮助(_H)"
-
-#: dialogs.c:2815
-msgid "<<"
-msgstr "<<"
-
-#: dialogs.c:2816
-msgid "<"
-msgstr "<"
-
-#: dialogs.c:2818
-msgid ">"
-msgstr ">"
-
-#: dialogs.c:2819
-msgid ">>"
-msgstr ">>"
-
-#: dialogs.c:3107
-msgid "Directories:"
-msgstr "目录:"
-
-#: dialogs.c:3108
-msgid "Files:"
-msgstr "文件:"
-
-#: dialogs.c:3109
-msgid "by name"
-msgstr "按名称"
-
-#: dialogs.c:3110
-msgid "by type"
-msgstr "按类型"
-
-#: dialogs.c:3113
-msgid "Filename:"
-msgstr "文件名:"
-
-#: dialogs.c:3114
-msgid "New directory"
-msgstr "新目录"
-
-#: dialogs.c:3115
-msgid "File type:"
-msgstr "文件类型:"
-
-#: dialogs.c:3190
-msgid "Contents of"
-msgstr ""
-
-#: dialogs.c:3216
-msgid "  next page"
-msgstr "下一页"
-
-#: dialogs.c:3233
-msgid "FIRST TYPE DIRECTORY NAME HERE"
-msgstr "请先在这里输入目录名"
-
-#: dialogs.c:3234
-msgid "TRY ANOTHER NAME"
-msgstr "尝试别的名称"
-
-#: draw.c:405
-msgid ""
-"No default pieces installed!\n"
-"Select your own using '-pieceImageDirectory'."
-msgstr ""
-"未安装默认棋子\n"
-"请使用“-pieceImageDirectory”来选择你的棋子。"
-
-#: engineoutput.c:112 menus.c:642
-#, c-format
-msgid "Engine Output"
-msgstr "引擎输出"
-
-#: engineoutput.c:122
-#, c-format
-msgid "%s (%d reversible ply)"
-msgid_plural "%s (%d reversible plies)"
-msgstr[0] "%s(可撤销 %d 步)"
-
-#: engineoutput.c:565 engineoutput.c:568 nengineoutput.c:83 nengineoutput.c:91
-msgid "NPS"
-msgstr "NPS"
-
-#: gamelist.c:379
-#, c-format
-msgid "Reading game file (%d)"
-msgstr "读取棋局文件(%d)"
-
-#: gtk/xboard.c:979 xaw/xboard.c:1074
-#, c-format
-msgid "%s: can't cd to CHESSDIR: "
-msgstr "%s:无法改变目录到 CHESSDIR:"
-
-#: gtk/xboard.c:988 xaw/xboard.c:1083
-#, c-format
-msgid "Failed to open file '%s'\n"
-msgstr "打开文件“%s”失败\n"
-
-#: gtk/xboard.c:1003 xaw/xboard.c:1092
-msgid "Recompile with larger BOARD_RANKS or BOARD_FILES to support this size"
-msgstr "请使用更大的 BOARD_RANKS  或 BOARD_FILES 值重新编译来支持该尺寸"
-
-#: gtk/xboard.c:1022 xaw/xboard.c:1124
-#, c-format
-msgid "%s: bad boardSize syntax %s\n"
-msgstr "%s:boardSize 语法错误 %s\n"
-
-#: gtk/xboard.c:1063 xaw/xboard.c:1163
-#, c-format
-msgid "%s: unrecognized boardSize name %s\n"
-msgstr "%s:无法识别 boardSize 名称 %s\n"
-
-#: gtk/xboard.c:1107 xaw/xboard.c:1200
-#, c-format
-msgid "%s: too few colors available; trying monochrome mode\n"
-msgstr "%s:可用颜色太少;请尝试单色模式\n"
-
-#: gtk/xboard.c:1421 xaw/xboard.c:1492
-#, c-format
-msgid "Unable to create font set for %s.\n"
-msgstr "无法为 %s 创建字体集。\n"
-
-#: gtk/xboard.c:1446 xaw/xboard.c:1515
-#, c-format
-msgid "%s: no fonts match pattern %s\n"
-msgstr "%s:没有匹配 %s 的字体\n"
-
-#: gtk/xboard.c:1914 xaw/xboard.c:2007
-msgid "Can't open temp file"
-msgstr "无法打开临时文"
-
-#: gtk/xboard.c:2422
-msgid "Failed to open file"
-msgstr "打开文件失败"
-
-#: gtk/xoptions.c:1498
-msgid "Browse"
-msgstr "浏览"
-
-#: gtk/xoptions.c:1772 xaw/xoptions.c:1337
-msgid "OK"
-msgstr "确定"
-
-#: menus.c:136
-msgid "Load game file name?"
-msgstr "要载入的棋局文件名?"
-
-#: menus.c:183
-msgid "Load position file name?"
-msgstr "要载入的位置文件名?"
-
-#: menus.c:189 menus.c:582
-msgid "Save game file name?"
-msgstr "要保存的棋局文件名?"
-
-#: menus.c:198
-msgid "Save position file name?"
-msgstr "要保存的位置文件名?"
-
-#: menus.c:355
-msgid " (with Zippy code)"
-msgstr ""
-
-#: menus.c:360
-#, c-format
-msgid ""
-"%s%s\n"
-"\n"
-"Copyright 1991 Digital Equipment Corporation\n"
-"Enhancements Copyright 1992-2016 Free Software Foundation\n"
-"Enhancements Copyright 2005 Alessandro Scotti\n"
-"\n"
-"%s is free software and carries NO WARRANTY;see the file COPYING for more information.\n"
-"\n"
-"Visit XBoard on the web at: http://www.gnu.org/software/xboard/\n"
-"Check out the newest features at: http://www.gnu.org/software/xboard/whats_new.html\n"
-"\n"
-"Report bugs via email at: <bug-xboard@gnu.org>\n"
-"\n"
-msgstr ""
-"%s%s\n"
-"\n"
-"版权所有 1991 Digital Equipment Corporation\n"
-"改进版版权所有 1992-2016 Free Software Foundation\n"
-"改进版版权所有 2005 Alessandro Scotti\n"
-"%s 是自由软件,并且没有任何担保;请参见 COPYING 文件来获取更多信息。\n"
-"当前版本使用的 GTK 构建是实验性的,可能不稳定\n"
-"\n"
-"XBoard 网站:http://www.gnu.org/software/xboard/\n"
-"了解新特性:http://www.gnu.org/software/xboard/whats_new.html\n"
-"\n"
-"通过邮件反馈软件缺陷:<bug-xboard@gnu.org>\n"
-"\n"
-
-#: menus.c:371 menus.c:765
-msgid "About XBoard"
-msgstr "关于 XBoard"
-
-#: menus.c:593
-msgid "New Game"
-msgstr "新棋局"
-
-#: menus.c:594
-msgid "New Shuffle Game..."
-msgstr "新任意制游戏..."
-
-#: menus.c:595
-msgid "New Variant..."
-msgstr "新棋种..."
-
-#: menus.c:597
-msgid "Load Game"
-msgstr "加载棋局"
-
-#: menus.c:598
-msgid "Load Position"
-msgstr "加载位置"
-
-#: menus.c:599
-msgid "Next Position"
-msgstr "后一个位置"
-
-#: menus.c:600
-msgid "Prev Position"
-msgstr "前一个位置"
-
-#: menus.c:602
-msgid "Save Game"
-msgstr "保存棋局"
-
-#: menus.c:603
-msgid "Save Position"
-msgstr "保存位置"
-
-#: menus.c:604
-msgid "Save Selected Games"
-msgstr "保存选定棋局"
-
-#: menus.c:605
-msgid "Save Games as Book"
-msgstr "保存棋局为棋谱"
-
-#: menus.c:607
-msgid "Mail Move"
-msgstr "发送棋步"
-
-#: menus.c:608
-msgid "Reload CMail Message"
-msgstr "重新载入 CMail 消息"
-
-#: menus.c:610
-msgid "Quit "
-msgstr "退出"
-
-#: menus.c:615
-msgid "Copy Game"
-msgstr "复制棋局"
-
-#: menus.c:616
-msgid "Copy Position"
-msgstr "复制位置"
-
-#: menus.c:617
-msgid "Copy Game List"
-msgstr "复制棋局列表"
-
-#: menus.c:619
-msgid "Paste Game"
-msgstr "粘贴棋局"
-
-#: menus.c:620
-msgid "Paste Position"
-msgstr "粘贴位置"
-
-#: menus.c:622 menus.c:665
-msgid "Edit Game"
-msgstr "编辑棋局"
-
-#: menus.c:623 menus.c:666
-msgid "Edit Position"
-msgstr "编辑位置"
-
-#: menus.c:624
-msgid "Edit Tags"
-msgstr "编辑标签"
-
-#: menus.c:625
-msgid "Edit Comment"
-msgstr "编辑注释"
-
-#: menus.c:626
-msgid "Edit Book"
-msgstr "编辑棋谱"
-
-#: menus.c:628
-msgid "Revert"
-msgstr "撤销"
-
-#: menus.c:629
-msgid "Annotate"
-msgstr "注释"
-
-#: menus.c:630
-msgid "Truncate Game"
-msgstr "截取棋局"
-
-#: menus.c:632
-msgid "Backward"
-msgstr "后退"
-
-#: menus.c:633
-msgid "Forward"
-msgstr "前进"
-
-#: menus.c:634
-msgid "Back to Start"
-msgstr "回到起始处"
-
-#: menus.c:635
-msgid "Forward to End"
-msgstr "转到末尾"
-
-#: menus.c:640
-msgid "Flip View"
-msgstr "翻转视角"
-
-#: menus.c:643
-msgid "Move History"
-msgstr "棋步历史"
-
-#: menus.c:644
-msgid "Evaluation Graph"
-msgstr "评估图"
-
-#: menus.c:645
-msgid "Game List"
-msgstr "棋局列表"
-
-#: menus.c:649
-msgid "Comments"
-msgstr "注释"
-
-#: menus.c:650
-msgid "ICS Input Box"
-msgstr "ICS 输入框"
-
-#: menus.c:651
-msgid "ICS/Chat Console"
-msgstr "ICS/聊天终端"
-
-#: menus.c:653
-msgid "Board..."
-msgstr "棋盘"
-
-#: menus.c:654
-msgid "Fonts..."
-msgstr "字体..."
-
-#: menus.c:655
-msgid "Game List Tags..."
-msgstr "棋局列表标签..."
-
-#: menus.c:660
-msgid "Machine White"
-msgstr "机器执白"
-
-#: menus.c:661
-msgid "Machine Black"
-msgstr "机器执黑"
-
-#: menus.c:662
-msgid "Two Machines"
-msgstr "机器对战"
-
-#: menus.c:663
-msgid "Analysis Mode"
-msgstr "分析模式"
-
-#: menus.c:664
-msgid "Analyze Game"
-msgstr "分析棋局"
-
-#: menus.c:667
-msgid "Training"
-msgstr "训练"
-
-#: menus.c:668
-msgid "ICS Client"
-msgstr "ICS 客户端"
-
-#: menus.c:670
-msgid "Machine Match"
-msgstr "机器匹配"
-
-#: menus.c:671
-msgid "Pause"
-msgstr "暂停"
-
-#: menus.c:676
-msgid "Accept"
-msgstr "接受"
-
-#: menus.c:677
-msgid "Decline"
-msgstr "拒绝"
-
-#: menus.c:678
-msgid "Rematch"
-msgstr "重新匹配"
-
-#: menus.c:680
-msgid "Call Flag"
-msgstr "申请超时裁定"
-
-#: menus.c:681
-msgid "Draw"
-msgstr "平局"
-
-#: menus.c:682
-msgid "Adjourn"
-msgstr "休战"
-
-#: menus.c:683
-msgid "Abort"
-msgstr "退出"
-
-#: menus.c:684
-msgid "Resign"
-msgstr "告辞"
-
-#: menus.c:686
-msgid "Stop Observing"
-msgstr "停止观战"
-
-#: menus.c:687
-msgid "Stop Examining"
-msgstr "停止研究"
-
-#: menus.c:688
-msgid "Upload to Examine"
-msgstr "上传以便研究"
-
-#: menus.c:690
-msgid "Adjudicate to White"
-msgstr "裁决白方胜"
-
-#: menus.c:691
-msgid "Adjudicate to Black"
-msgstr "裁决黑方胜"
-
-#: menus.c:692
-msgid "Adjudicate Draw"
-msgstr "裁决平局"
-
-#: menus.c:697
-msgid "Edit Engine List..."
-msgstr "编辑引擎列表..."
-
-#: menus.c:699
-msgid "Load New 1st Engine..."
-msgstr "加载新的1号引擎..."
-
-#: menus.c:700
-msgid "Load New 2nd Engine..."
-msgstr "加载新的2号引擎..."
-
-#: menus.c:702
-msgid "Engine #1 Settings..."
-msgstr "#1 引擎设置..."
-
-#: menus.c:703
-msgid "Engine #2 Settings..."
-msgstr "#2 引擎设置..."
-
-#: menus.c:704
-msgid "Common Settings..."
-msgstr "通用设置..."
-
-#: menus.c:706
-msgid "Hint"
-msgstr "提示"
-
-#: menus.c:707
-msgid "Book"
-msgstr "棋谱"
-
-#: menus.c:709
-msgid "Move Now"
-msgstr "立即行棋"
-
-#: menus.c:710
-msgid "Retract Move"
-msgstr "撤回"
-
-#: menus.c:716
-msgid "General..."
-msgstr "通用..."
-
-#: menus.c:718
-msgid "Time Control..."
-msgstr "时间控制..."
-
-#: menus.c:719
-msgid "Adjudications..."
-msgstr "裁决..."
-
-#: menus.c:720
-msgid "ICS..."
-msgstr "ICS..."
-
-#: menus.c:721
-msgid "Tournament..."
-msgstr "赛事..."
-
-#: menus.c:722
-msgid "Load Game..."
-msgstr "加载棋局..."
-
-#: menus.c:723
-msgid "Save Game..."
-msgstr "保存棋局..."
-
-#: menus.c:724
-msgid "Game List..."
-msgstr "棋局列表..."
-
-#: menus.c:725
-msgid "Sounds..."
-msgstr "声音..."
-
-#: menus.c:728
-msgid "Always Queen"
-msgstr "总是升变为后"
-
-#: menus.c:734
-msgid "Flash Moves"
-msgstr "棋步闪烁"
-
-#: menus.c:736
-msgid "Highlight Dragging"
-msgstr "高亮拖动"
-
-#: menus.c:739
-msgid "Highlight With Arrow"
-msgstr "用箭头突出显示"
-
-#: menus.c:740
-msgid "Move Sound"
-msgstr "行棋音效"
-
-#: menus.c:742
-msgid "Periodic Updates"
-msgstr "周期更新"
-
-#: menus.c:744
-msgid "Popup Exit Message"
-msgstr "弹出退出消息"
-
-#: menus.c:746
-msgid "Show Coords"
-msgstr "显示坐标"
-
-#: menus.c:747
-msgid "Hide Thinking"
-msgstr "隐藏思考"
-
-#: menus.c:751
-msgid "Save Settings Now"
-msgstr "立即保存设置"
-
-#: menus.c:752
-msgid "Save Settings on Exit"
-msgstr "退出前保存设置"
-
-#: menus.c:757
-msgid "Info XBoard"
-msgstr "XBoard 的 Info 手册"
-
-#: menus.c:758
-msgid "Man XBoard"
-msgstr "XBoard 的 Man 手册"
-
-#: menus.c:760
-msgid "XBoard Home Page"
-msgstr "XBoard 主页"
-
-#: menus.c:761
-msgid "On-line User Guide"
-msgstr "在线用户指南"
-
-#: menus.c:762
-msgid "Development News"
-msgstr "开发新闻"
-
-#: menus.c:763
-msgid "e-Mail Bug Report"
-msgstr "用邮件反馈软件缺陷"
-
-#: menus.c:802
-msgid "File"
-msgstr "文件"
-
-#: menus.c:803
-msgid "Edit"
-msgstr "编辑"
-
-#: menus.c:804
-msgid "View"
-msgstr "查看"
-
-#: menus.c:805
-msgid "Mode"
-msgstr "模式"
-
-#: menus.c:806
-msgid "Action"
-msgstr "动作"
-
-#: menus.c:807
-msgid "Engine"
-msgstr "引擎"
-
-#: menus.c:808
-msgid "Options"
-msgstr "选项"
-
-#: menus.c:809
-msgid "Help"
-msgstr "帮助"
-
-#: nengineoutput.c:79 nengineoutput.c:87
-msgid "engine name"
-msgstr "引擎名称"
-
-#. TRANSLATORS: noun, as in "the move Nf3"
-#: nengineoutput.c:82 nengineoutput.c:90
-msgid "move"
-msgstr "棋步"
-
-#: nengineoutput.c:156
-msgid "Engine output"
-msgstr "引擎输出"
-
-#: nengineoutput.c:160
-msgid ""
-"Mismatch of STRIDE in nengineoutput.c\n"
-"Change and recompile!"
-msgstr ""
-"nengineoutput.c 中的 STRIDE 匹配错误\n"
-"请变更并重新编译!"
-
-#: nevalgraph.c:69
-msgid "Evaluation graph"
-msgstr "评估图"
-
-#: nevalgraph.c:69
-msgid "Blunder graph"
-msgstr "失误图"
-
-#: nevalgraph.c:107
-msgid "Blunder"
-msgstr "失误"
-
-#: nevalgraph.c:107
-msgid "Eval"
-msgstr "Eval"
-
-#: ngamelist.c:87
-msgid "find position"
-msgstr "查找位置"
-
-#: ngamelist.c:88
-msgid "narrow"
-msgstr "缩小"
-
-#: ngamelist.c:89
-msgid "thresholds"
-msgstr "阈值"
-
-#: ngamelist.c:90
-msgid "tags"
-msgstr "标签"
-
-#: ngamelist.c:91
-msgid "next"
-msgstr "下一个"
-
-#: ngamelist.c:92
-msgid "close"
-msgstr "关闭"
-
-#: ngamelist.c:116
-msgid "No game selected"
-msgstr "未选择棋局"
-
-#: ngamelist.c:122
-msgid "Can't go forward any further"
-msgstr "无法继续前进"
-
-#: ngamelist.c:192
-#, c-format
-msgid "Scanning through games (%d)"
-msgstr "步过整个棋局(%d)"
-
-#: ngamelist.c:211
-msgid "previous page"
-msgstr "上一页"
-
-#: ngamelist.c:214
-msgid "next page"
-msgstr "下一页"
-
-#: ngamelist.c:217
-msgid "no games matched your request"
-msgstr "没有匹配你所请求的棋局"
-
-#: ngamelist.c:219
-#, c-format
-msgid "%s - %d/%d games (%d-%d-%d)"
-msgstr "%s - %d/%d 局(%d-%d-%d)"
-
-#: ngamelist.c:284
-msgid "There is no game list"
-msgstr "没有棋局列表"
-
-#: nhistory.c:109
-msgid "Move list"
-msgstr "棋步列表"
-
-#: usystem.c:223
-#, c-format
-msgid "%s: unrecognized color %s\n"
-msgstr "%s:无法识别颜色 %s\n"
-
-#: usystem.c:231
-#, c-format
-msgid "%s: can't parse foreground color in '%s'\n"
-msgstr "%s:无法解析“%s”中的前景色\n"
-
-#: usystem.c:260
-#, c-format
-msgid "%s: can't parse color names; disabling colorization\n"
-msgstr "%s:无法解析颜色名;禁用着色\n"
-
-#: usystem.c:362
-#, c-format
-msgid "ERROR: Unknown user %s (in path %s)\n"
-msgstr "错误:未知用户 %s(于路径 %s)\n"
-
-#: usystem.c:564
-msgid "Socket support is not configured in"
-msgstr "未配置套接字的支持于"
-
-#: usystem.c:653
-msgid "internal rcmd not implemented for Unix"
-msgstr "Unix 未实现内部 rcmd"
-
-#: xaw/xboard.c:1206
-#, c-format
-msgid "white pixel = 0x%lx, black pixel = 0x%lx\n"
-msgstr "白色像素 = 0x%lx,黑色像素 = 0x%lx\n"
-
-#: xaw/xoptions.c:378 xaw/xoptions.c:1082
-msgid "browse"
-msgstr "浏览"
-
-#: xaw/xoptions.c:444 xaw/xoptions.c:445
-msgid "Ctrl"
-msgstr "Ctrl"
-
-#: xaw/xoptions.c:450 xaw/xoptions.c:451
-msgid "Alt"
-msgstr "Alt"
-
-#: xaw/xoptions.c:456 xaw/xoptions.c:457
-msgid "Shift"
-msgstr "Shift"
-
-#~ msgid "Common Engine..."
-#~ msgstr "通用引..."
-
-#~ msgid "New Game        Ctrl+N"
-#~ msgstr "(N)   Ctrl+N"
-
-#~ msgid "Load Game       Ctrl+O"
-#~ msgstr "(L)...   Ctrl+O"
-
-#~ msgid "Save Game       Ctrl+S"
-#~ msgstr "(S)...   Ctrl+S"
-
-#~ msgid "Quit                 Ctr+Q"
-#~ msgstr "(Q)"
-
-#~ msgid "Edit Game      Ctrl+E"
-#~ msgstr "(E)   Ctrl+E"
-
-#~ msgid "Edit Position   Ctrl+Shift+E"
-#~ msgstr "(d)   Ctrl+Shift+E"
-
-#~ msgid "Revert              Home"
-#~ msgstr "(V)"
-
-#~ msgid "Backward         Alt+Left"
-#~ msgstr "(B)   Alt+Left"
-
-#~ msgid "Forward           Alt+Right"
-#~ msgstr "(F)   Alt+Right"
-
-#~ msgid "Flip View             F2"
-#~ msgstr "(V)   F2"
-
-#~ msgid "Engine Output      Alt+Shift+O"
-#~ msgstr "   Alt+Shift+O"
-
-#~ msgid "Move History       Alt+Shift+H"
-#~ msgstr "   Alt+Shift+H"
-
-#~ msgid "Game List            Alt+Shift+G"
-#~ msgstr "(L)   Alt+Shift+G"
-
-#~ msgid "Machine Black  Ctrl+B"
-#~ msgstr "(B)   Ctrl+B"
-
-#~ msgid "Analyze File      Ctrl+F"
-#~ msgstr "(F)   Ctrl+F"
-
-#~ msgid "Edit Game         Ctrl+E"
-#~ msgstr "(E)   Ctrl+E"
-
-#~ msgid "Edit Position      Ctrl+Shift+E"
-#~ msgstr "(d)   Ctrl+Shift+E"
-
-#~ msgid "Pause               Pause"
-#~ msgstr "(P)   Pause"
-
-#~ msgid "Accept             F3"
-#~ msgstr "(A)   F3"
-
-#~ msgid "Decline            F4"
-#~ msgstr "(C)   F4"
-
-#~ msgid "Rematch           F12"
-#~ msgstr "(M)   F12"
-
-#~ msgid "Draw                F6"
-#~ msgstr "(D)   F6"
-
-#~ msgid "Abort                F8"
-#~ msgstr "(B)   F8"
-
-#~ msgid "Resign              F9"
-#~ msgstr "(R)   F9"
-
-#~ msgid "Move Now     Ctrl+M"
-#~ msgstr "(M)   Ctrl+M"
-
-#~ msgid "ICS ..."
-#~ msgstr "ICS..."
-
-#~ msgid "Always Queen        Ctrl+Shift+Q"
-#~ msgstr "(Q) Ctrl+Shift+Q"
-
-#~ msgid "Animate Moving      Ctrl+Shift+A"
-#~ msgstr "(A)     Ctrl+Shift+A"
-
-#~ msgid "Auto Flag               Ctrl+Shift+F"
-#~ msgstr "(F) Ctrl+Shift+F"
-
-#~ msgid "Ponder Next Move  Ctrl+Shift+P"
-#~ msgstr "(N)  Ctrl+Shift+P"
-
-#~ msgid "Hide Thinking        Ctrl+Shift+H"
-#~ msgstr " Ctrl+Shift+H"
-
-#~ msgid "Test Legality          Ctrl+Shift+L"
-#~ msgstr "(L) Cl+Sh+L"
-
-#~ msgid "Highlight Dragging (Show Move Targets)"
-#~ msgstr "(H)"
-
-#~ msgid "White "
-#~ msgstr " "
-
-#~ msgid "Black "
-#~ msgstr " "
-
-#~ msgid "Close"
-#~ msgstr "(C)"
-
-#~ msgid "    (for concurrent playing of a single"
-#~ msgstr "    (用于同时在多个XBoards中"
-
-#~ msgid "Match Options"
-#~ msgstr "匹配选项"
-
-#~ msgid "Chat box"
-#~ msgstr "对话框:"
-
-#~ msgid "Open Chat Window"
-#~ msgstr "打开聊天窗口"
-
-#~ msgid "Match ..."
-#~ msgstr "匹配 ..."
-
-#~ msgid "%s: Can't access XPM directory %s\n"
-#~ msgstr "%s:无法访问 XPM 目录 %s\n"
-
-#~ msgid "Available `%s' sizes:\n"
-#~ msgstr "可用的“%s”大小:\n"
-
-#~ msgid "Error: No `%s' files!\n"
-#~ msgstr "错误:没有文件“%s”!\n"
-
-#~ msgid ""
-#~ "Warning: No DIR structure found on this system --\n"
-#~ "         Unable to autosize for XPM/XIM pieces.\n"
-#~ "   Please report this error to %s.\n"
-#~ "   Include system type & operating system in message.\n"
-#~ msgstr ""
-#~ "警告:该系统上找不到目录结构 --\n"
-#~ "         无法自动调节 XPM/XIM 的大小。\n"
-#~ "   请将此错误报告给 %s,\n"
-#~ "   并附上系统类型和操作系统名称。\n"
-
-#~ msgid "Error %d loading icon image\n"
-#~ msgstr "加载图标图像时出错 %d\n"
-
-#~ msgid "cancel"
-#~ msgstr "取消"
-
diff --git a/po/zh_HK.po b/po/zh_HK.po
deleted file mode 100644 (file)
index f0132b5..0000000
+++ /dev/null
@@ -1,3309 +0,0 @@
-# XBoard -- a graphical chessboard for X
-# Copyright (C) 1991 by Digital Equipment Corporation, Maynard, Massachusetts.
-# Enhancements Copyright (C) 1992-98 Free Software Foundation, Inc.
-# This file is distributed under the same license as the XBoard package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: GNU xboard master-20110411\n"
-"Report-Msgid-Bugs-To: bug-xboard@gnu.org\n"
-"POT-Creation-Date: 2016-04-03 13:44-0700\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: zh_HK\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: args.h:851
-#, c-format
-msgid "%s in settings file\n"
-msgstr ""
-
-#: args.h:885
-#, c-format
-msgid "Bad integer value %s"
-msgstr ""
-
-#: args.h:991 args.h:1252
-#, c-format
-msgid "Unrecognized argument %s"
-msgstr ""
-
-#: args.h:1022
-#, c-format
-msgid "No value provided for argument %s"
-msgstr ""
-
-#: args.h:1082
-#, c-format
-msgid "Incomplete \\ escape in value for %s"
-msgstr ""
-
-#: args.h:1193
-#, c-format
-msgid "Failed to open indirection file %s"
-msgstr ""
-
-#: args.h:1210
-#, c-format
-msgid "Unrecognized boolean argument value %s"
-msgstr ""
-
-#. TRANSLATORS: "first" is the first of possible two chess engines. It is inserted into strings
-#. such as "%s engine" / "%s chess program" / "%s machine" - all meaning the same thing
-#: backend.c:811
-msgid "first"
-msgstr ""
-
-#. TRANSLATORS: "second" is the second of possible two chess engines. It is inserted into strings
-#. such as "%s engine" / "%s chess program" / "%s machine" - all meaning the same thing
-#: backend.c:814
-msgid "second"
-msgstr ""
-
-#: backend.c:897
-#, c-format
-msgid "protocol version %d not supported"
-msgstr "通訊協定版本 %d 不被支持"
-
-#: backend.c:1004
-msgid "You did not specify the engine executable"
-msgstr ""
-
-#: backend.c:1062
-#, c-format
-msgid "bad timeControl option %s"
-msgstr "非法的\"timeControl\"(時間控制)選項 %s"
-
-#: backend.c:1077
-#, c-format
-msgid "bad searchTime option %s"
-msgstr "非法的\"searchTime\"(搜尋時間)選項 %s"
-
-#: backend.c:1183
-#, c-format
-msgid "Variant %s supported only in ICS mode"
-msgstr "變體 %s 只在ICS模式下支持"
-
-#: backend.c:1201
-#, c-format
-msgid "Unknown variant name %s"
-msgstr "未知的變體名 %s"
-
-#: backend.c:1456
-msgid "Starting chess program"
-msgstr "啟動國際象棋程式"
-
-#: backend.c:1479
-msgid "Bad game file"
-msgstr "棋局檔案錯誤"
-
-#: backend.c:1486
-msgid "Bad position file"
-msgstr "盤面檔案錯誤"
-
-#: backend.c:1500
-msgid "Pick new game"
-msgstr ""
-
-#: backend.c:1569
-msgid ""
-"You restarted an already completed tourney.\n"
-"One more cycle will now be added to it.\n"
-"Games commence in 10 sec."
-msgstr ""
-
-#: backend.c:1576
-#, c-format
-msgid "All games in tourney '%s' are already played or playing"
-msgstr ""
-
-#: backend.c:1583
-msgid "Can't have a match with no chess programs"
-msgstr "沒有象棋程式時無法進行比賽"
-
-#: backend.c:1637
-#, c-format
-msgid "Could not open comm port %s"
-msgstr "無法打開通訊連接埠 %s"
-
-#: backend.c:1640
-#, c-format
-msgid "Could not connect to host %s, port %s"
-msgstr "無法連接主機 %s 連接埠 %s"
-
-#: backend.c:1696
-#, c-format
-msgid "Unknown initialMode %s"
-msgstr "未知的\"initialMode\"(初始模式)選項 %s"
-
-#: backend.c:1722
-msgid "AnalyzeFile mode requires a game file"
-msgstr "\"AnalyzeFile\"(分析檔案)模式必須指定一個棋局檔案"
-
-#: backend.c:1755
-msgid "Analysis mode requires a chess engine"
-msgstr "\"Analysis\"(分析)模式必須啟動國際象棋引擎"
-
-#: backend.c:1759
-msgid "Analysis mode does not work with ICS mode"
-msgstr "\"Analysis\"(分析)模式無法在ICS模式下工作"
-
-#: backend.c:1770
-msgid "MachineWhite mode requires a chess engine"
-msgstr "\"MachineWhite\"(電腦執紅)模式必須啟動國際象棋引擎"
-
-#: backend.c:1775
-msgid "MachineWhite mode does not work with ICS mode"
-msgstr "\"MachineWhite\"(電腦執紅)模式無法在ICS模式下運行"
-
-#: backend.c:1782
-msgid "MachineBlack mode requires a chess engine"
-msgstr "\"MachineBlack\"(電腦執黑)模式必須啟動國際象棋引擎"
-
-#: backend.c:1787
-msgid "MachineBlack mode does not work with ICS mode"
-msgstr "\"MachineBlack\"(電腦執黑)模式無法在ICS模式下運行"
-
-#: backend.c:1794
-msgid "TwoMachines mode requires a chess engine"
-msgstr "\"TwoMachines\"(分析)模式必須啟動國際象棋引擎"
-
-#: backend.c:1799
-msgid "TwoMachines mode does not work with ICS mode"
-msgstr "\"TwoMachines\"(電腦對弈)模式無法在ICS模式下運行"
-
-#: backend.c:1810
-msgid "Training mode requires a game file"
-msgstr "\"Training\"(訓練)模式必須指定一個棋局檔案"
-
-#: backend.c:1973 backend.c:2028 backend.c:2051 backend.c:2453
-msgid "Error writing to ICS"
-msgstr "發送訊息給ICS時出錯"
-
-#: backend.c:1988
-msgid "Error reading from keyboard"
-msgstr "讀取鍵盤時出錯"
-
-#: backend.c:1991
-msgid "Got end of file from keyboard"
-msgstr "讀取鍵盤時遇到檔案尾"
-
-#: backend.c:2299
-#, c-format
-msgid "Unknown wild type %d"
-msgstr ""
-
-#: backend.c:2370 usystem.c:317
-msgid "Error writing to display"
-msgstr "發送訊息給顯示器時出錯"
-
-#. TRANSLATORS: to 'kibitz' is to send a message to all players and the game observers
-#: backend.c:3138
-#, c-format
-msgid "your opponent kibitzes: %s"
-msgstr ""
-
-#: backend.c:3677
-msgid "Error gathering move list: two headers"
-msgstr "讀取著法時出錯,出現兩個開頭"
-
-#: backend.c:3724
-msgid "Error gathering move list: nested"
-msgstr "讀取著法時出錯,巢狀錯誤"
-
-#: backend.c:3828 backend.c:4254 backend.c:4458 backend.c:5017 backend.c:5021
-#: backend.c:7292 backend.c:13054 backend.c:14805 backend.c:14882
-#: backend.c:14928 backend.c:14934 backend.c:14939 backend.c:14944
-msgid "vs."
-msgstr ""
-
-#: backend.c:3956
-msgid "Illegal move (rejected by ICS)"
-msgstr ""
-
-#: backend.c:4302
-msgid "Connection closed by ICS"
-msgstr "連接被ICS關閉"
-
-#: backend.c:4304
-msgid "Error reading from ICS"
-msgstr "讀取ICS訊息時出錯"
-
-#: backend.c:4381
-#, c-format
-msgid ""
-"Failed to parse board string:\n"
-"\"%s\""
-msgstr ""
-
-#: backend.c:4390 backend.c:10628
-msgid "Game too long; increase MAX_MOVES and recompile"
-msgstr "棋局太長,需要增加\"MAX_MOVES\"並重新編譯"
-
-#: backend.c:4509
-msgid "Error gathering move list: extra board"
-msgstr "讀取著法時出錯,超出棋盤"
-
-#: backend.c:4941 backend.c:4963
-#, c-format
-msgid "Couldn't parse move \"%s\" from ICS"
-msgstr "無法解析從ICS讀到的著法\"%s\""
-
-#: backend.c:5228
-#, c-format
-msgid "say Internal error; bad moveType %d (%d,%d-%d,%d)"
-msgstr "say 內部錯誤,非法的\"moveType\"(著法類型) %d (%d,%d-%d,%d)"
-
-#: backend.c:5299
-msgid "You cannot do this while you are playing or observing"
-msgstr ""
-
-#: backend.c:6359
-msgid "Recompile to support this BOARD_RANKS or BOARD_FILES!"
-msgstr ""
-
-#: backend.c:6851
-msgid "You are playing Black"
-msgstr "你在執黑"
-
-#: backend.c:6860 backend.c:6888
-msgid "You are playing White"
-msgstr "你在執紅"
-
-#: backend.c:6870 backend.c:6896 backend.c:7018 backend.c:7043 backend.c:7059
-#: backend.c:15645
-msgid "It is White's turn"
-msgstr "輪到紅方走棋"
-
-#: backend.c:6874 backend.c:6900 backend.c:7026 backend.c:7049 backend.c:7081
-#: backend.c:15637
-msgid "It is Black's turn"
-msgstr "輪到黑方走棋"
-
-#: backend.c:6913
-msgid "Displayed position is not current"
-msgstr "顯示的盤面不是當前盤面"
-
-#: backend.c:7116
-msgid "rights granted"
-msgstr ""
-
-#: backend.c:7116
-msgid "rights revoked"
-msgstr ""
-
-#: backend.c:7169
-msgid "Illegal move"
-msgstr "著法錯誤"
-
-#: backend.c:7249
-msgid "End of game"
-msgstr "棋局結束"
-
-#: backend.c:7252
-msgid "Incorrect move"
-msgstr "著法錯誤"
-
-#: backend.c:7655 backend.c:7811
-msgid "Pull pawn backwards to under-promote"
-msgstr ""
-
-#: backend.c:7772
-msgid "only marked squares are legal"
-msgstr ""
-
-#: backend.c:8093
-msgid "Swiss tourney finished"
-msgstr ""
-
-#: backend.c:8609
-msgid "could not load EGBB library"
-msgstr ""
-
-#: backend.c:8612
-msgid "wrong EGBB version"
-msgstr ""
-
-#: backend.c:8725
-msgid "Invalid pairing from pairing engine"
-msgstr ""
-
-#: backend.c:8892
-#, c-format
-msgid "Illegal move \"%s\" from %s machine"
-msgstr "從%s機器讀到不合法著法\"%s\""
-
-#: backend.c:9179
-msgid "Bad FEN received from engine"
-msgstr ""
-
-#: backend.c:9280
-msgid "Engine did not send setup for non-standard variant"
-msgstr ""
-
-#: backend.c:9358 backend.c:14667 backend.c:14735
-#, c-format
-msgid "%s does not support analysis"
-msgstr "%s 不支持分析功能"
-
-#: backend.c:9424
-#, c-format
-msgid "Illegal move \"%s\" (rejected by %s chess program)"
-msgstr "不合法著法\"%s\" (%s國際象棋程式拒絕接受該著法)"
-
-#: backend.c:9455
-#, c-format
-msgid "Failed to start %s chess program %s on %s: %s\n"
-msgstr "無法啟動%s國際象棋程式 %s(在主機 %s 上),%s\n"
-
-#: backend.c:9476
-#, c-format
-msgid "Hint: %s"
-msgstr "提示 %s"
-
-#: backend.c:9481
-#, c-format
-msgid ""
-"Illegal hint move \"%s\"\n"
-"from %s chess program"
-msgstr ""
-
-#: backend.c:9656
-msgid "Machine accepts your draw offer"
-msgstr "電腦同意和棋"
-
-#: backend.c:9659
-msgid ""
-"Machine offers a draw.\n"
-"Select Action / Draw to accept."
-msgstr ""
-
-#. TRANSLATORS: PV = principal variation, the variation the chess engine thinks is the best for everyone
-#: backend.c:9777
-msgid "failed writing PV"
-msgstr ""
-
-#: backend.c:10083
-#, c-format
-msgid "Ambiguous move in ICS output: \"%s\""
-msgstr "ICS輸出不明確的著法\"%s\""
-
-#: backend.c:10093
-#, c-format
-msgid "Illegal move in ICS output: \"%s\""
-msgstr "ICS輸出不明確的著法\"%s\""
-
-#: backend.c:10104
-msgid "Gap in move list"
-msgstr "著法斷開"
-
-#: backend.c:10782
-#, c-format
-msgid "Variant %s not supported by %s"
-msgstr "變體 %s 不被 %s 所支持"
-
-#: backend.c:10789
-#, c-format
-msgid ", but %s is"
-msgstr ""
-
-#: backend.c:10945
-#, c-format
-msgid "Startup failure on '%s'"
-msgstr "無法啟動'%s'"
-
-#: backend.c:10976
-msgid "Waiting for first chess program"
-msgstr "等待第一個國際象棋程式"
-
-#: backend.c:10981 backend.c:14953
-msgid "Waiting for second chess program"
-msgstr "等待第二個國際象棋程式"
-
-#: backend.c:11030
-msgid "Could not write on tourney file"
-msgstr ""
-
-#: backend.c:11104
-msgid ""
-"You cannot replace an engine while it is engaged!\n"
-"Terminate its game first."
-msgstr ""
-
-#: backend.c:11118
-msgid "No engine with the name you gave is installed"
-msgstr ""
-
-#: backend.c:11120
-msgid ""
-"First change an engine by editing the participants list\n"
-"of the Tournament Options dialog"
-msgstr ""
-
-#: backend.c:11121
-msgid "You can only change one engine at the time"
-msgstr ""
-
-#: backend.c:11136 backend.c:11285
-#, c-format
-msgid "No engine %s is installed"
-msgstr ""
-
-#: backend.c:11156
-msgid ""
-"You must supply a tournament file,\n"
-"for storing the tourney progress"
-msgstr ""
-
-#: backend.c:11166
-msgid "Not enough participants"
-msgstr ""
-
-#: backend.c:11369
-#, fuzzy
-msgid "Bad tournament file"
-msgstr "棋局檔案錯誤"
-
-#: backend.c:11381
-#, fuzzy
-msgid "Waiting for other game(s)"
-msgstr "等待第一個國際象棋程式"
-
-#: backend.c:11394
-msgid "No pairing engine specified"
-msgstr ""
-
-#: backend.c:11879
-#, c-format
-msgid "Average solving time %4.2f sec (total time %4.2f sec) "
-msgstr ""
-
-#: backend.c:11881
-#, c-format
-msgid "%d avoid-moves played "
-msgstr ""
-
-#: backend.c:11883
-#, c-format
-msgid "Solved %d out of %d (%3.1f%%) "
-msgstr ""
-
-#: backend.c:11886
-#, c-format
-msgid "Match %s vs. %s: final score %d-%d-%d"
-msgstr "比賽 %s vs. %s: 最終比分 %d-%d-%d"
-
-#: backend.c:12363 backend.c:12399
-#, c-format
-msgid "Illegal move: %d.%s%s"
-msgstr "不合法著法 %d.%s%s"
-
-#: backend.c:12388
-#, c-format
-msgid "Ambiguous move: %d.%s%s"
-msgstr "不明確的著法 %d.%s%s"
-
-#: backend.c:12442 backend.c:13495 backend.c:13695 backend.c:14065
-#, c-format
-msgid "Can't open \"%s\""
-msgstr "無法打開\"%s\""
-
-#: backend.c:12454 menus.c:118
-msgid "Cannot build game list"
-msgstr "無法建立棋局列表"
-
-#: backend.c:12539
-msgid "No more games in this message"
-msgstr "這條訊息不包含更多的棋局"
-
-#: backend.c:12579
-msgid "No game has been loaded yet"
-msgstr "尚未有棋局載入"
-
-#: backend.c:12583 backend.c:13476 ngamelist.c:129
-msgid "Can't back up any further"
-msgstr "無法再後退了"
-
-#: backend.c:13030
-msgid "Game number out of range"
-msgstr "棋局數量超出範圍"
-
-#: backend.c:13041
-msgid "Can't seek on game file"
-msgstr "無法搜尋棋局檔案"
-
-#: backend.c:13099
-msgid "Game not found in file"
-msgstr "檔案中沒有找到棋局"
-
-#: backend.c:13230 backend.c:13573
-msgid "Bad FEN position in file"
-msgstr "檔案中的FEN盤面錯誤"
-
-#: backend.c:13388
-msgid "No moves in game"
-msgstr "棋局中沒有著法"
-
-#: backend.c:13472
-msgid "No position has been loaded yet"
-msgstr "尚未有盤面載入"
-
-#: backend.c:13533 backend.c:13544
-msgid "Can't seek on position file"
-msgstr "無法搜尋盤面檔案"
-
-#: backend.c:13551 backend.c:13563
-msgid "Position not found in file"
-msgstr "檔案中沒有找到盤面"
-
-#: backend.c:13610
-msgid "Black to play"
-msgstr "輪到黑方走棋"
-
-#: backend.c:13613
-msgid "White to play"
-msgstr "輪到紅方走棋"
-
-#: backend.c:13700 backend.c:14070
-#, fuzzy
-msgid "Waiting for access to save file"
-msgstr "等待第二個國際象棋程式"
-
-#: backend.c:13702
-msgid "Saving game"
-msgstr ""
-
-#: backend.c:13703
-msgid "Bad Seek"
-msgstr ""
-
-#: backend.c:14072
-#, fuzzy
-msgid "Saving position"
-msgstr "盤面檔案錯誤"
-
-#: backend.c:14198
-msgid ""
-"You have edited the game history.\n"
-"Use Reload Same Game and make your move again."
-msgstr ""
-
-#: backend.c:14203
-msgid ""
-"You have entered too many moves.\n"
-"Back up to the correct position and try again."
-msgstr ""
-
-#: backend.c:14208
-msgid ""
-"Displayed position is not current.\n"
-"Step forward to the correct position and try again."
-msgstr ""
-
-#: backend.c:14255
-msgid "You have not made a move yet"
-msgstr "你尚未走棋"
-
-#: backend.c:14276
-msgid ""
-"The cmail message is not loaded.\n"
-"Use Reload CMail Message and make your move again."
-msgstr ""
-
-#: backend.c:14281
-msgid "No unfinished games"
-msgstr "不存在未完成棋局"
-
-#: backend.c:14287
-#, c-format
-msgid ""
-"You have already mailed a move.\n"
-"Wait until a move arrives from your opponent.\n"
-"To resend the same move, type\n"
-"\"cmail -remail -game %s\"\n"
-"on the command line."
-msgstr ""
-
-#: backend.c:14302
-msgid "Failed to invoke cmail"
-msgstr "呼叫cmail失敗"
-
-#: backend.c:14364
-#, c-format
-msgid "Waiting for reply from opponent\n"
-msgstr "等待對手回應\n"
-
-#: backend.c:14386
-#, c-format
-msgid "Still need to make move for game\n"
-msgstr "本棋局仍需走棋\n"
-
-#: backend.c:14390
-#, c-format
-msgid "Still need to make moves for both games\n"
-msgstr "兩棋局皆仍需走棋\n"
-
-#: backend.c:14394
-#, c-format
-msgid "Still need to make moves for all %d games\n"
-msgstr "所有 %d 棋局皆仍需走棋\n"
-
-#: backend.c:14401
-#, c-format
-msgid "Still need to make a move for game %s\n"
-msgstr "棋局 %s 仍需走棋\n"
-
-#: backend.c:14407
-#, c-format
-msgid "No unfinished games\n"
-msgstr "不存在未完成棋局\n"
-
-#: backend.c:14409
-#, c-format
-msgid "Ready to send mail\n"
-msgstr "準備送信就緒\n"
-
-#: backend.c:14414
-#, c-format
-msgid "Still need to make moves for games %s\n"
-msgstr "棋局 %s 仍需走棋\n"
-
-#: backend.c:14617
-msgid "Edit comment"
-msgstr "編輯註解"
-
-#: backend.c:14619
-#, c-format
-msgid "Edit comment on %d.%s%s"
-msgstr "編輯註解 %d.%s%s"
-
-#: backend.c:14674
-#, c-format
-msgid "You are not observing a game"
-msgstr ""
-
-#: backend.c:14785
-msgid "It is not White's turn"
-msgstr "沒有輪到紅方走棋"
-
-#: backend.c:14866
-msgid "It is not Black's turn"
-msgstr "沒有輪到黑方走棋"
-
-#: backend.c:14974
-#, c-format
-msgid "Starting %s chess program"
-msgstr ""
-
-#: backend.c:15002 backend.c:16189
-#, fuzzy
-msgid ""
-"Wait until your turn,\n"
-"or select 'Move Now'."
-msgstr "等待對手走棋"
-
-#: backend.c:15145
-msgid "Training mode off"
-msgstr "訓練模式已關閉"
-
-#: backend.c:15153
-msgid "Training mode on"
-msgstr "訓練模式已打開"
-
-#: backend.c:15156
-msgid "Already at end of game"
-msgstr "棋局已經結束"
-
-#: backend.c:15246
-msgid "Warning: You are still playing a game"
-msgstr "注意:你正在進行棋局"
-
-#: backend.c:15249
-msgid "Warning: You are still observing a game"
-msgstr "注意:你正在觀棋棋局"
-
-#: backend.c:15252
-msgid "Warning: You are still examining a game"
-msgstr "注意:你正在研究棋局"
-
-#: backend.c:15322
-msgid "Click clock to clear board"
-msgstr ""
-
-#: backend.c:15332
-msgid "Close ICS engine analyze..."
-msgstr ""
-
-#: backend.c:15662
-msgid "That square is occupied"
-msgstr "格子已有棋子"
-
-#: backend.c:15686 backend.c:15712
-msgid "There is no pending offer on this move"
-msgstr "該著法沒有待定的提議"
-
-#: backend.c:15748 backend.c:15759
-msgid "Your opponent is not out of time"
-msgstr "對手沒有超時"
-
-#: backend.c:15827
-msgid "You must make your move before offering a draw"
-msgstr "必須走完棋才能提和"
-
-#: backend.c:16171
-msgid "You are not examining a game"
-msgstr "沒有分析棋局"
-
-#: backend.c:16175
-msgid "You can't revert while pausing"
-msgstr "暫停時不能復原棋局"
-
-#: backend.c:16229 backend.c:16236
-msgid "It is your turn"
-msgstr "輪到你走棋"
-
-#: backend.c:16287 backend.c:16294 backend.c:16380 backend.c:16387
-#, fuzzy
-msgid "Wait until your turn."
-msgstr "等待對手走棋"
-
-#: backend.c:16299
-msgid "No hint available"
-msgstr "沒有可用的提示"
-
-#: backend.c:16314 backend.c:16345 ngamelist.c:365
-#, fuzzy
-msgid "Game list not loaded or empty"
-msgstr "尚未有棋局載入"
-
-#: backend.c:16352
-msgid "Book file exists! Try again for overwrite."
-msgstr ""
-
-#: backend.c:16833
-#, c-format
-msgid "Error writing to %s chess program"
-msgstr "發送訊息到%s國際象棋程式時出錯"
-
-#: backend.c:16836 backend.c:16867
-#, c-format
-msgid "%s program exits in draw position (%s)"
-msgstr ""
-
-#: backend.c:16862
-#, c-format
-msgid "Error: %s chess program (%s) exited unexpectedly"
-msgstr "錯誤:%s國際象棋程式(%s)異常終止"
-
-#: backend.c:16880
-#, c-format
-msgid "Error reading from %s chess program (%s)"
-msgstr "從%s國際象棋程式(%s)接收訊息時出錯"
-
-#: backend.c:17312
-#, c-format
-msgid "%s engine has too many options\n"
-msgstr ""
-
-#: backend.c:17468
-msgid "Displayed move is not current"
-msgstr "顯示的著法不是當前著法"
-
-#: backend.c:17477
-msgid "Could not parse move"
-msgstr "無法解析著法"
-
-#: backend.c:17602 backend.c:17624
-msgid "Both flags fell"
-msgstr "雙方都超時了"
-
-#: backend.c:17604
-msgid "White's flag fell"
-msgstr "紅方超時"
-
-#: backend.c:17626
-msgid "Black's flag fell"
-msgstr "黑方超時"
-
-#: backend.c:17757
-msgid "Clock adjustment not allowed in auto-flag mode"
-msgstr ""
-
-#: backend.c:18719
-msgid "Bad FEN position in clipboard"
-msgstr "剪貼簿的FEN盤面錯誤"
-
-#: book.c:598 book.c:874
-msgid "Polyglot book not valid"
-msgstr ""
-
-#: book.c:722
-msgid "Book Fault"
-msgstr ""
-
-#: book.c:877
-msgid "Hash keys are different"
-msgstr ""
-
-#: book.c:1053
-#, fuzzy
-msgid "Could not create book"
-msgstr "無法解析著法"
-
-#: dialogs.c:286
-#, fuzzy
-msgid "Tournament file:          "
-msgstr "封盤(J)   F7"
-
-#: dialogs.c:287
-msgid "For concurrent playing of tourney with multiple XBoards:"
-msgstr ""
-
-#: dialogs.c:288
-msgid "Sync after round"
-msgstr ""
-
-#: dialogs.c:289
-msgid "Sync after cycle"
-msgstr ""
-
-#: dialogs.c:290
-msgid "Tourney participants:"
-msgstr ""
-
-#: dialogs.c:291
-msgid "Select Engine:"
-msgstr ""
-
-#: dialogs.c:299
-msgid "Tourney type (0 = round-robin, 1 = gauntlet):"
-msgstr ""
-
-#: dialogs.c:300
-msgid "Number of tourney cycles (or Swiss rounds):"
-msgstr ""
-
-#: dialogs.c:301
-#, fuzzy
-msgid "Default Number of Games in Match (or Pairing):"
-msgstr "預設比賽對局數"
-
-#: dialogs.c:302
-msgid "Pause between Match Games (msec):"
-msgstr ""
-
-#: dialogs.c:303
-#, fuzzy
-msgid "Save Tourney Games on:"
-msgstr "儲存棋局選項"
-
-#: dialogs.c:304
-msgid "Game File with Opening Lines:"
-msgstr ""
-
-#: dialogs.c:305
-msgid "Game Number (-1 or -2 = Auto-Increment):"
-msgstr ""
-
-#: dialogs.c:306
-msgid "File with Start Positions:"
-msgstr ""
-
-#: dialogs.c:307
-msgid "Position Number (-1 or -2 = Auto-Increment):"
-msgstr ""
-
-#: dialogs.c:308
-msgid "Rewind Index after this many Games (0 = never):"
-msgstr ""
-
-#: dialogs.c:309
-msgid "Disable own engine books by default"
-msgstr ""
-
-#: dialogs.c:310 dialogs.c:1840
-msgid "Time Control"
-msgstr ""
-
-#: dialogs.c:311
-#, fuzzy
-msgid "Common Engine"
-msgstr "通用引擎設定(E)...   Alt+Shift+U"
-
-#: dialogs.c:312 dialogs.c:446
-msgid "General Options"
-msgstr "一般選項"
-
-#: dialogs.c:313
-msgid "Continue Later"
-msgstr ""
-
-#: dialogs.c:314
-msgid "Replace Engine"
-msgstr ""
-
-#: dialogs.c:315
-msgid "Upgrade Engine"
-msgstr ""
-
-#: dialogs.c:316
-msgid "Clone Tourney"
-msgstr ""
-
-#: dialogs.c:356
-msgid "First you must specify an existing tourney file to clone"
-msgstr ""
-
-#: dialogs.c:372 dialogs.c:1549
-msgid "# no engines are installed"
-msgstr ""
-
-#: dialogs.c:380
-msgid "Internal error: PARTICIPANTS set wrong"
-msgstr ""
-
-#: dialogs.c:388
-#, fuzzy
-msgid "Tournament Options"
-msgstr "聲音"
-
-#: dialogs.c:407
-msgid "Absolute Analysis Scores"
-msgstr ""
-
-#: dialogs.c:408
-msgid "Almost Always Queen (Detour Under-Promote)"
-msgstr ""
-
-#: dialogs.c:409 menus.c:729
-msgid "Animate Dragging"
-msgstr "動畫拖曳(D)"
-
-#: dialogs.c:410 menus.c:730
-msgid "Animate Moving"
-msgstr "動畫走棋(A)"
-
-#: dialogs.c:411 menus.c:731
-msgid "Auto Flag"
-msgstr "自動超時判負(F) Ctrl+Shift+F"
-
-#: dialogs.c:412 menus.c:732
-msgid "Auto Flip View"
-msgstr "自動翻轉棋盤(V)"
-
-#: dialogs.c:413 menus.c:733
-msgid "Blindfold"
-msgstr "盲棋(B)"
-
-#. TRANSLATORS: the drop menu is used to drop a piece, e.g. during bughouse or editing a position
-#: dialogs.c:415
-msgid "Drop Menu"
-msgstr ""
-
-#: dialogs.c:416
-msgid "Enable Variation Trees"
-msgstr ""
-
-#: dialogs.c:417
-msgid "Headers in Engine Output Window"
-msgstr ""
-
-#: dialogs.c:418
-msgid "Hide Thinking from Human"
-msgstr "與人對弈時隱藏思考細節"
-
-#: dialogs.c:419 menus.c:738
-msgid "Highlight Last Move"
-msgstr "標記上一著法(M)"
-
-#: dialogs.c:420
-msgid "Highlight with Arrow"
-msgstr "用箭頭突出移動"
-
-#: dialogs.c:421 menus.c:741
-msgid "One-Click Moving"
-msgstr "單擊移動(M)"
-
-#: dialogs.c:422
-msgid "Periodic Updates (in Analysis Mode)"
-msgstr "定期更新(分析模式)"
-
-#: dialogs.c:424
-msgid "Play Move(s) of Clicked PV (Analysis)"
-msgstr ""
-
-#: dialogs.c:425 dialogs.c:626 menus.c:743
-msgid "Ponder Next Move"
-msgstr "同步思考(N)"
-
-#: dialogs.c:426
-msgid "Popup Exit Messages"
-msgstr "離開時提示(P)"
-
-#: dialogs.c:427 menus.c:745
-msgid "Popup Move Errors"
-msgstr "提示錯誤著法(E)"
-
-#: dialogs.c:428
-#, fuzzy
-msgid "Scores in Move List"
-msgstr "取得著法列表(G)"
-
-#: dialogs.c:429
-msgid "Show Coordinates"
-msgstr "顯示坐標(C)"
-
-#: dialogs.c:430
-msgid "Show Target Squares"
-msgstr ""
-
-#: dialogs.c:431
-msgid "Sticky Windows"
-msgstr ""
-
-#: dialogs.c:432 menus.c:748
-msgid "Test Legality"
-msgstr "檢查著法合理性(L) Cl+Sh+L"
-
-#: dialogs.c:433
-msgid "Top-Level Dialogs"
-msgstr ""
-
-#: dialogs.c:434
-msgid "Flash Moves (0 = no flashing):"
-msgstr ""
-
-#: dialogs.c:435
-msgid "Flash Rate (high = fast):"
-msgstr ""
-
-#: dialogs.c:436
-msgid "Animation Speed (high = slow):"
-msgstr ""
-
-#: dialogs.c:437
-#, fuzzy
-msgid "Zoom factor in Evaluation Graph:"
-msgstr "審局圖"
-
-#: dialogs.c:457
-msgid "Normal"
-msgstr ""
-
-#: dialogs.c:458
-msgid "Makruk"
-msgstr ""
-
-#: dialogs.c:459
-msgid "FRC"
-msgstr ""
-
-#: dialogs.c:460
-msgid "Shatranj"
-msgstr ""
-
-#: dialogs.c:461
-msgid "Wild castle"
-msgstr ""
-
-#: dialogs.c:462
-#, fuzzy
-msgid "Knightmate"
-msgstr "馬"
-
-#: dialogs.c:463
-msgid "No castle"
-msgstr ""
-
-#: dialogs.c:464
-msgid "Cylinder *"
-msgstr ""
-
-#: dialogs.c:465
-msgid "3-checks"
-msgstr ""
-
-#: dialogs.c:466
-msgid "berolina *"
-msgstr ""
-
-#: dialogs.c:467
-msgid "atomic"
-msgstr ""
-
-#: dialogs.c:468
-msgid "two kings"
-msgstr ""
-
-#: dialogs.c:469
-msgid " "
-msgstr ""
-
-#: dialogs.c:470
-msgid "Spartan"
-msgstr ""
-
-#: dialogs.c:471
-msgid "Board size ( -1 = default for selected variant):"
-msgstr ""
-
-#: dialogs.c:472
-msgid "Number of Board Ranks:"
-msgstr ""
-
-#: dialogs.c:473
-msgid "Number of Board Files:"
-msgstr ""
-
-#: dialogs.c:474
-msgid "Holdings Size:"
-msgstr ""
-
-#: dialogs.c:476
-msgid ""
-"Variants marked with * can only be played\n"
-"with legality testing off."
-msgstr ""
-
-#: dialogs.c:478
-msgid "ASEAN"
-msgstr ""
-
-#: dialogs.c:479
-msgid "Great Shatranj (10x8)"
-msgstr ""
-
-#: dialogs.c:480
-msgid "Seirawan"
-msgstr ""
-
-#: dialogs.c:481
-msgid "Falcon (10x8)"
-msgstr ""
-
-#: dialogs.c:482
-msgid "Superchess"
-msgstr ""
-
-#: dialogs.c:483
-msgid "Capablanca (10x8)"
-msgstr ""
-
-#: dialogs.c:484
-msgid "Crazyhouse"
-msgstr ""
-
-#: dialogs.c:485
-msgid "Gothic (10x8)"
-msgstr ""
-
-#: dialogs.c:486
-msgid "Bughouse"
-msgstr ""
-
-#: dialogs.c:487
-msgid "Janus (10x8)"
-msgstr ""
-
-#: dialogs.c:488
-msgid "Suicide"
-msgstr ""
-
-#: dialogs.c:489
-msgid "CRC (10x8)"
-msgstr ""
-
-#: dialogs.c:490
-msgid "give-away"
-msgstr ""
-
-#: dialogs.c:491
-msgid "grand (10x10)"
-msgstr ""
-
-#: dialogs.c:492
-msgid "losers"
-msgstr ""
-
-#: dialogs.c:493
-msgid "shogi (9x9)"
-msgstr ""
-
-#: dialogs.c:494
-msgid "fairy"
-msgstr ""
-
-#: dialogs.c:495
-msgid "xiangqi (9x10)"
-msgstr ""
-
-#: dialogs.c:496
-msgid "mighty lion"
-msgstr ""
-
-#: dialogs.c:497
-msgid "courier (12x8)"
-msgstr ""
-
-#: dialogs.c:498
-msgid "elven chess (10x10)"
-msgstr ""
-
-#: dialogs.c:499
-msgid "chu shogi (12x12)"
-msgstr ""
-
-#: dialogs.c:543
-#, c-format
-msgid "Warning: second engine (%s) does not support this!"
-msgstr "警告: 第二個引擎(%s) 不支持此!"
-
-#: dialogs.c:572
-#, c-format
-msgid "Only bughouse is not available in viewer mode."
-msgstr ""
-
-#: dialogs.c:573
-#, c-format
-msgid ""
-"All variants not supported by the first engine\n"
-"(currently %s) are disabled."
-msgstr ""
-
-#: dialogs.c:595
-msgid "New Variant"
-msgstr "變種"
-
-#: dialogs.c:627
-msgid "Maximum Number of CPUs per Engine:"
-msgstr "最大CPU數"
-
-#: dialogs.c:628
-msgid "Polygot Directory:"
-msgstr ""
-
-#: dialogs.c:629
-msgid "Hash-Table Size (MB):"
-msgstr "雜湊表大小(MB)"
-
-#: dialogs.c:630
-#, fuzzy
-msgid "EGTB Path:"
-msgstr "EGTB 路徑"
-
-#: dialogs.c:631
-msgid "EGTB Cache Size (MB):"
-msgstr "EGTB 大小(MB)"
-
-#: dialogs.c:632
-msgid "Use GUI Book"
-msgstr ""
-
-#: dialogs.c:633
-msgid "Opening-Book Filename:"
-msgstr ""
-
-#: dialogs.c:634
-msgid "Book Depth (moves):"
-msgstr "庫著法深度"
-
-#: dialogs.c:635
-msgid "Book Variety (0) vs. Strength (100):"
-msgstr "庫變例"
-
-#: dialogs.c:636
-msgid "Engine #1 Has Own Book"
-msgstr "引擎1有自用庫"
-
-#: dialogs.c:637
-msgid "Engine #2 Has Own Book          "
-msgstr ""
-
-#: dialogs.c:648
-msgid "Common Engine Settings"
-msgstr "通用引擎設定"
-
-#: dialogs.c:654
-msgid "Detect all Mates"
-msgstr "檢測將殺(M)"
-
-#: dialogs.c:655
-msgid "Verify Engine Result Claims"
-msgstr "驗證引擎聲明(V)"
-
-#: dialogs.c:656
-msgid "Draw if Insufficient Mating Material"
-msgstr "子力不足時判和(I)"
-
-#: dialogs.c:657
-msgid "Adjudicate Trivial Draws (3-Move Delay)"
-msgstr "簡易和棋判決(T)"
-
-#: dialogs.c:658
-msgid "N-Move Rule:"
-msgstr ""
-
-#: dialogs.c:659
-msgid "N-fold Repeats:"
-msgstr ""
-
-#: dialogs.c:660
-msgid "Draw after N Moves Total:"
-msgstr "幾著後判和"
-
-#: dialogs.c:661
-msgid "Win / Loss Threshold:"
-msgstr "輸/贏判決門檻"
-
-#: dialogs.c:662
-msgid "Negate Score of Engine #1"
-msgstr "引擎 #1 是絕對分數"
-
-#: dialogs.c:663
-msgid "Negate Score of Engine #2"
-msgstr "引擎 #2 是絕對分數"
-
-#: dialogs.c:670
-#, fuzzy
-msgid "Adjudicate non-ICS Games"
-msgstr "裁決紅贏 (W)"
-
-#: dialogs.c:683
-msgid "Auto-Kibitz"
-msgstr "自動\"kibitz\"(A)"
-
-#: dialogs.c:684
-msgid "Auto-Comment"
-msgstr "自動註解(A)"
-
-#: dialogs.c:685
-msgid "Auto-Observe"
-msgstr "自動觀棋(O)"
-
-#: dialogs.c:686
-msgid "Auto-Raise Board"
-msgstr "自動改變棋盤大小(R)"
-
-#: dialogs.c:687
-msgid "Auto-Create Logon Script"
-msgstr ""
-
-#: dialogs.c:688
-msgid "Background Observe while Playing"
-msgstr "背景觀察(v)"
-
-#: dialogs.c:689
-msgid "Dual Board for Background-Observed Game"
-msgstr "雙棋盤(D)"
-
-#: dialogs.c:690
-msgid "Get Move List"
-msgstr "取得著法列表(G)"
-
-#: dialogs.c:691
-msgid "Quiet Play"
-msgstr "落子無聲(Q)"
-
-#: dialogs.c:692
-msgid "Seek Graph"
-msgstr "可選對手圖表(k)"
-
-#: dialogs.c:693
-msgid "Auto-Refresh Seek Graph"
-msgstr "自動刷新圖表(R)"
-
-#: dialogs.c:694
-msgid "Auto-InputBox PopUp"
-msgstr ""
-
-#: dialogs.c:695
-#, fuzzy
-msgid "Quit after game"
-msgstr "等待第一個國際象棋程式"
-
-#: dialogs.c:696
-msgid "Premove"
-msgstr "預先走棋(P)"
-
-#: dialogs.c:697
-msgid "Premove for White"
-msgstr ""
-
-#: dialogs.c:698
-msgid "First White Move:"
-msgstr "紅方先走(W)"
-
-#: dialogs.c:699
-msgid "Premove for Black"
-msgstr ""
-
-#: dialogs.c:700
-msgid "First Black Move:"
-msgstr "黑方先走(B)"
-
-#: dialogs.c:702
-msgid "Alarm"
-msgstr "提示"
-
-#: dialogs.c:703
-msgid "Alarm Time (msec):"
-msgstr ""
-
-#: dialogs.c:705
-msgid "Colorize Messages"
-msgstr ""
-
-#: dialogs.c:706
-msgid "Shout Text Colors:"
-msgstr ""
-
-#: dialogs.c:707
-msgid "S-Shout Text Colors:"
-msgstr ""
-
-#: dialogs.c:708
-msgid "Channel #1 Text Colors:"
-msgstr ""
-
-#: dialogs.c:709
-msgid "Other Channel Text Colors:"
-msgstr ""
-
-#: dialogs.c:710
-msgid "Kibitz Text Colors:"
-msgstr ""
-
-#: dialogs.c:711
-msgid "Tell Text Colors:"
-msgstr ""
-
-#: dialogs.c:712
-msgid "Challenge Text Colors:"
-msgstr ""
-
-#: dialogs.c:713
-msgid "Request Text Colors:"
-msgstr ""
-
-#: dialogs.c:714
-msgid "Seek Text Colors:"
-msgstr ""
-
-#: dialogs.c:715
-msgid "Other Text Colors:"
-msgstr ""
-
-#: dialogs.c:722
-msgid "ICS Options"
-msgstr "ICS設定"
-
-#: dialogs.c:727
-msgid "Exact position match"
-msgstr ""
-
-#: dialogs.c:727
-msgid "Shown position is subset"
-msgstr ""
-
-#: dialogs.c:727
-msgid "Same material with exactly same Pawn chain"
-msgstr ""
-
-#: dialogs.c:728
-msgid "Same material"
-msgstr ""
-
-#: dialogs.c:728
-msgid "Material range (top board half optional)"
-msgstr ""
-
-#: dialogs.c:728
-msgid "Material difference (optional stuff balanced)"
-msgstr ""
-
-#: dialogs.c:743
-msgid "Auto-Display Tags"
-msgstr ""
-
-#: dialogs.c:744
-msgid "Auto-Display Comment"
-msgstr ""
-
-#: dialogs.c:745
-msgid ""
-"Auto-Play speed of loaded games\n"
-"(0 = instant, -1 = off):"
-msgstr ""
-
-#: dialogs.c:746
-msgid "Seconds per Move:"
-msgstr ""
-
-#: dialogs.c:747
-msgid ""
-"\n"
-"options to use in game-viewer mode:"
-msgstr ""
-
-#: dialogs.c:749
-msgid ""
-"\n"
-"Thresholds for position filtering in game list:"
-msgstr ""
-
-#: dialogs.c:750
-msgid "Elo of strongest player at least:"
-msgstr ""
-
-#: dialogs.c:751
-msgid "Elo of weakest player at least:"
-msgstr ""
-
-#: dialogs.c:752
-#, fuzzy
-msgid "No games before year:"
-msgstr "尚未有棋局載入"
-
-#: dialogs.c:753
-msgid "Minimum nr consecutive positions:"
-msgstr ""
-
-#: dialogs.c:755
-msgid "Search mode:"
-msgstr ""
-
-#: dialogs.c:756
-msgid "Also match reversed colors"
-msgstr ""
-
-#: dialogs.c:757
-msgid "Also match left-right flipped position"
-msgstr ""
-
-#: dialogs.c:766
-msgid "Load Game Options"
-msgstr "載入棋局選項"
-
-#: dialogs.c:778
-msgid "Auto-Save Games"
-msgstr ""
-
-#: dialogs.c:779
-msgid "Own Games Only"
-msgstr ""
-
-#: dialogs.c:780
-msgid "Save Games on File:"
-msgstr ""
-
-#: dialogs.c:781
-msgid "Save Final Positions on File:"
-msgstr ""
-
-#: dialogs.c:782
-msgid "PGN Event Header:"
-msgstr ""
-
-#: dialogs.c:783
-msgid "Old Save Style (as opposed to PGN)"
-msgstr ""
-
-#: dialogs.c:784
-msgid "Include Number Tag in tourney PGN"
-msgstr ""
-
-#: dialogs.c:785
-msgid "Save Score/Depth Info in PGN"
-msgstr ""
-
-#: dialogs.c:786
-msgid "Save Out-of-Book Info in PGN           "
-msgstr ""
-
-#: dialogs.c:793
-msgid "Save Game Options"
-msgstr "儲存棋局選項"
-
-#: dialogs.c:802
-msgid "No Sound"
-msgstr "無聲"
-
-#: dialogs.c:803
-msgid "Default Beep"
-msgstr "預設聲音"
-
-#: dialogs.c:804
-msgid "Above WAV File"
-msgstr ""
-
-#: dialogs.c:805
-msgid "Car Horn"
-msgstr ""
-
-#: dialogs.c:806
-msgid "Cymbal"
-msgstr ""
-
-#: dialogs.c:807
-msgid "Ding"
-msgstr ""
-
-#: dialogs.c:808
-msgid "Gong"
-msgstr ""
-
-#: dialogs.c:809
-msgid "Laser"
-msgstr ""
-
-#: dialogs.c:810
-msgid "Penalty"
-msgstr ""
-
-#: dialogs.c:811
-msgid "Phone"
-msgstr ""
-
-#: dialogs.c:812
-msgid "Pop"
-msgstr ""
-
-#: dialogs.c:813
-msgid "Roar"
-msgstr ""
-
-#: dialogs.c:814
-msgid "Slap"
-msgstr ""
-
-#: dialogs.c:815
-msgid "Wood Thunk"
-msgstr ""
-
-#: dialogs.c:817
-msgid "User File"
-msgstr ""
-
-#: dialogs.c:840
-msgid "User WAV File:"
-msgstr ""
-
-#: dialogs.c:841
-msgid "Sound Program:"
-msgstr ""
-
-#: dialogs.c:842
-msgid "Try-Out Sound:"
-msgstr ""
-
-#: dialogs.c:843
-msgid "Play"
-msgstr "播放"
-
-#: dialogs.c:844
-msgid "Move:"
-msgstr ""
-
-#: dialogs.c:845
-msgid "Win:"
-msgstr ""
-
-#: dialogs.c:846
-msgid "Lose:"
-msgstr ""
-
-#: dialogs.c:847
-msgid "Draw:"
-msgstr ""
-
-#: dialogs.c:848
-msgid "Unfinished:"
-msgstr ""
-
-#: dialogs.c:849
-msgid "Alarm:"
-msgstr ""
-
-#: dialogs.c:850
-msgid "Challenge:"
-msgstr ""
-
-#: dialogs.c:852
-msgid "Sounds Directory:"
-msgstr ""
-
-#: dialogs.c:853
-msgid "Shout:"
-msgstr ""
-
-#: dialogs.c:854
-msgid "S-Shout:"
-msgstr ""
-
-#: dialogs.c:855
-msgid "Channel:"
-msgstr ""
-
-#: dialogs.c:856
-msgid "Channel 1:"
-msgstr ""
-
-#: dialogs.c:857
-msgid "Tell:"
-msgstr ""
-
-#: dialogs.c:858
-msgid "Kibitz:"
-msgstr ""
-
-#: dialogs.c:859
-msgid "Request:"
-msgstr ""
-
-#: dialogs.c:860
-msgid "Lion roar:"
-msgstr ""
-
-#: dialogs.c:861
-msgid "Seek:"
-msgstr ""
-
-#: dialogs.c:877
-msgid "Sound Options"
-msgstr "聲音"
-
-#: dialogs.c:893
-msgid "Selectable themes:"
-msgstr ""
-
-#: dialogs.c:895
-msgid "New name for current theme:"
-msgstr ""
-
-#: dialogs.c:898
-msgid "White Piece Color:"
-msgstr ""
-
-#. TRANSLATORS: R = single letter for the color red
-#: dialogs.c:901 dialogs.c:910 dialogs.c:916 dialogs.c:922 dialogs.c:928
-#: dialogs.c:934
-msgid "R"
-msgstr ""
-
-#. TRANSLATORS: G = single letter for the color green
-#: dialogs.c:903 dialogs.c:911 dialogs.c:917 dialogs.c:923 dialogs.c:929
-#: dialogs.c:935
-msgid "G"
-msgstr ""
-
-#. TRANSLATORS: B = single letter for the color blue
-#: dialogs.c:905 dialogs.c:912 dialogs.c:918 dialogs.c:924 dialogs.c:930
-#: dialogs.c:936 dialogs.c:1650 dialogs.c:1656 dialogs.c:1662 dialogs.c:1668
-#: dialogs.c:1674 dialogs.c:1680 dialogs.c:1686
-msgid "B"
-msgstr ""
-
-#. TRANSLATORS: D = single letter to make a color darker
-#: dialogs.c:907 dialogs.c:913 dialogs.c:919 dialogs.c:925 dialogs.c:931
-#: dialogs.c:937
-msgid "D"
-msgstr ""
-
-#: dialogs.c:908
-msgid "Black Piece Color:"
-msgstr "黑子"
-
-#: dialogs.c:914
-msgid "Light Square Color:"
-msgstr "白格"
-
-#: dialogs.c:920
-msgid "Dark Square Color:"
-msgstr "黑格"
-
-#: dialogs.c:926
-msgid "Highlight Color:"
-msgstr "格子標記"
-
-#: dialogs.c:932
-msgid "Premove Highlight Color:"
-msgstr "預先走棋標記"
-
-#: dialogs.c:938
-msgid "Flip Pieces Shogi Style        (Colored buttons restore default)"
-msgstr ""
-
-#: dialogs.c:940
-msgid "Mono Mode"
-msgstr "黑白"
-
-#: dialogs.c:941
-msgid "Logo Size (0=off, requires restart):"
-msgstr ""
-
-#: dialogs.c:942
-msgid "Line Gap (-1 = default for board size):"
-msgstr ""
-
-#: dialogs.c:943
-msgid "Use Board Textures"
-msgstr ""
-
-#: dialogs.c:944
-msgid "Light-Squares Texture File:"
-msgstr ""
-
-#: dialogs.c:945
-msgid "Dark-Squares Texture File:"
-msgstr ""
-
-#: dialogs.c:946
-msgid "Use external piece bitmaps with their own colors"
-msgstr ""
-
-#: dialogs.c:947
-msgid "Directory with Pieces Images:"
-msgstr ""
-
-#: dialogs.c:1018
-msgid "# no themes are defined"
-msgstr ""
-
-#: dialogs.c:1030
-msgid "Board Options"
-msgstr "棋盤選項"
-
-#: dialogs.c:1101 menus.c:646
-msgid "ICS text menu"
-msgstr ""
-
-#: dialogs.c:1130
-msgid "clear"
-msgstr ""
-
-#: dialogs.c:1131
-msgid "save changes"
-msgstr ""
-
-#: dialogs.c:1229
-#, fuzzy
-msgid "add next move"
-msgstr "同步思考(N)"
-
-#: dialogs.c:1230
-msgid "commit changes"
-msgstr ""
-
-#: dialogs.c:1253
-#, fuzzy
-msgid "Edit book"
-msgstr "編輯(E)"
-
-#: dialogs.c:1270 dialogs.c:1277 menus.c:648
-msgid "Tags"
-msgstr "編輯標籤(T)"
-
-#: dialogs.c:1285
-#, fuzzy
-msgid "Registered Engines"
-msgstr "引擎 #1 是絕對分數"
-
-#: dialogs.c:1401
-msgid "ICS input box"
-msgstr ""
-
-#: dialogs.c:1433
-msgid "Type a move"
-msgstr ""
-
-#: dialogs.c:1459
-#, fuzzy
-msgid "Engine has no options"
-msgstr "引擎1有自用庫"
-
-#: dialogs.c:1461
-msgid "Engine Settings"
-msgstr ""
-
-#: dialogs.c:1502
-msgid "Select engine from list:"
-msgstr ""
-
-#: dialogs.c:1505
-msgid "or specify one below:"
-msgstr ""
-
-#: dialogs.c:1506
-msgid "Nickname (optional):"
-msgstr ""
-
-#: dialogs.c:1507
-msgid "Use nickname in PGN player tags of engine-engine games"
-msgstr ""
-
-#: dialogs.c:1508
-msgid "Engine Directory:"
-msgstr ""
-
-#: dialogs.c:1509
-msgid "Engine Command:"
-msgstr ""
-
-#: dialogs.c:1510
-msgid "(Directory will be derived from engine path when empty)"
-msgstr ""
-
-#: dialogs.c:1511
-msgid "UCI"
-msgstr ""
-
-#: dialogs.c:1512
-msgid "USI/UCCI (uses specified -uxiAdapter)"
-msgstr ""
-
-#: dialogs.c:1513
-msgid "WB protocol v1 (do not wait for engine features)"
-msgstr ""
-
-#: dialogs.c:1514
-msgid "Must not use GUI book"
-msgstr ""
-
-#: dialogs.c:1515
-msgid "Add this engine to the list"
-msgstr ""
-
-#: dialogs.c:1516
-msgid "Force current variant with this engine"
-msgstr ""
-
-#: dialogs.c:1570
-msgid "Load first engine"
-msgstr ""
-
-#: dialogs.c:1576
-msgid "Load second engine"
-msgstr ""
-
-#: dialogs.c:1599
-msgid "shuffle"
-msgstr ""
-
-#: dialogs.c:1600
-msgid "Fischer castling"
-msgstr ""
-
-#: dialogs.c:1601
-msgid "Start-position number:"
-msgstr "啟動位置號碼(S)"
-
-#: dialogs.c:1602
-#, fuzzy
-msgid "randomize"
-msgstr "隨機"
-
-#: dialogs.c:1603
-msgid "pick fixed"
-msgstr ""
-
-#: dialogs.c:1620
-msgid "New Shuffle Game"
-msgstr "洗牌遊戲(u)..."
-
-#: dialogs.c:1647
-msgid "Clocks (requires restart):"
-msgstr ""
-
-#: dialogs.c:1648 dialogs.c:1654 dialogs.c:1660 dialogs.c:1666 dialogs.c:1672
-#: dialogs.c:1678 dialogs.c:1684
-msgid "+"
-msgstr ""
-
-#: dialogs.c:1649 dialogs.c:1655 dialogs.c:1661 dialogs.c:1667 dialogs.c:1673
-#: dialogs.c:1679 dialogs.c:1685
-msgid "-"
-msgstr ""
-
-#: dialogs.c:1651 dialogs.c:1657 dialogs.c:1663 dialogs.c:1669 dialogs.c:1675
-#: dialogs.c:1681 dialogs.c:1687
-msgid "I"
-msgstr ""
-
-#: dialogs.c:1652 dialogs.c:1658 dialogs.c:1664 dialogs.c:1670 dialogs.c:1676
-#: dialogs.c:1682 dialogs.c:1688
-msgid "*"
-msgstr ""
-
-#: dialogs.c:1653
-msgid "Message (above board):"
-msgstr ""
-
-#: dialogs.c:1659
-msgid "ICS Chat/Console:"
-msgstr ""
-
-#: dialogs.c:1665
-msgid "Edit tags / book / engine list:"
-msgstr ""
-
-#: dialogs.c:1671
-#, fuzzy
-msgid "Edit comments:"
-msgstr "編輯註解"
-
-#: dialogs.c:1677
-#, fuzzy
-msgid "Move history / Engine Output:"
-msgstr "引擎輸出"
-
-#: dialogs.c:1683
-#, fuzzy
-msgid "Game list:"
-msgstr "遊戲列表..."
-
-#: dialogs.c:1689
-msgid ""
-"\n"
-"The * buttons will set the font to the one selected below:"
-msgstr ""
-
-#: dialogs.c:1743
-msgid "This only works in the GTK build"
-msgstr ""
-
-#: dialogs.c:1744
-msgid "Fonts"
-msgstr ""
-
-#: dialogs.c:1764
-msgid "classical"
-msgstr ""
-
-#: dialogs.c:1765
-msgid "incremental"
-msgstr ""
-
-#: dialogs.c:1766
-msgid "fixed max"
-msgstr ""
-
-#: dialogs.c:1767
-msgid "Divide entered times by 60"
-msgstr ""
-
-#: dialogs.c:1768
-msgid "Moves per session:"
-msgstr ""
-
-#: dialogs.c:1769
-msgid "Initial time (min):"
-msgstr ""
-
-#: dialogs.c:1770
-msgid "Increment or max (sec/move):"
-msgstr ""
-
-#: dialogs.c:1771
-#, fuzzy
-msgid "Time-Odds factors:"
-msgstr "時間倍數"
-
-#: dialogs.c:1772
-#, fuzzy
-msgid "Engine #1"
-msgstr "引擎輸出"
-
-#: dialogs.c:1773
-#, fuzzy
-msgid "Engine #2 / Human"
-msgstr "引擎1有自用庫"
-
-#: dialogs.c:1814 dialogs.c:1817 dialogs.c:1822 dialogs.c:1823
-#: gtk/xoptions.c:183
-msgid "Unused"
-msgstr ""
-
-#: dialogs.c:1832
-msgid "Changing time control during a game is not implemented"
-msgstr ""
-
-#: dialogs.c:1869
-msgid "Error writing to chess program"
-msgstr "發送訊息給國際象棋程式時出錯"
-
-#: dialogs.c:1937 gtk/xoptions.c:1775 xaw/xoptions.c:1341
-#, fuzzy
-msgid "Cancel"
-msgstr "取消(C)"
-
-#: dialogs.c:1942 dialogs.c:2695 dialogs.c:2699
-msgid "King"
-msgstr "王"
-
-#: dialogs.c:1945
-msgid "Captain"
-msgstr ""
-
-#: dialogs.c:1946
-msgid "Lieutenant"
-msgstr ""
-
-#: dialogs.c:1947
-msgid "General"
-msgstr "一般選項(G)..."
-
-#: dialogs.c:1948
-msgid "Warlord"
-msgstr ""
-
-#: dialogs.c:1950 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Knight"
-msgstr "馬"
-
-#: dialogs.c:1951 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Bishop"
-msgstr "象"
-
-#: dialogs.c:1952 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Rook"
-msgstr "車"
-
-#: dialogs.c:1956 dialogs.c:2696 dialogs.c:2700
-msgid "Archbishop"
-msgstr "國師"
-
-#: dialogs.c:1957 dialogs.c:2696 dialogs.c:2700
-msgid "Chancellor"
-msgstr "宰相"
-
-#: dialogs.c:1959 dialogs.c:2695 dialogs.c:2699 dialogs.c:2717
-msgid "Queen"
-msgstr "后"
-
-#: dialogs.c:1961
-msgid "Lion"
-msgstr ""
-
-#: dialogs.c:1965
-msgid "Defer"
-msgstr ""
-
-#: dialogs.c:1966 dialogs.c:2696 dialogs.c:2700
-msgid "Promote"
-msgstr "升變"
-
-#: dialogs.c:2023
-msgid "Chats:"
-msgstr ""
-
-#: dialogs.c:2024 dialogs.c:2025 dialogs.c:2026 dialogs.c:2027 dialogs.c:2028
-#: dialogs.c:2134 dialogs.c:2199 dialogs.c:2231
-#, fuzzy
-msgid "New Chat"
-msgstr "變種"
-
-#: dialogs.c:2031
-msgid "Chat partner:"
-msgstr ""
-
-#: dialogs.c:2032
-msgid "End Chat"
-msgstr ""
-
-#: dialogs.c:2033
-msgid "Hide"
-msgstr ""
-
-#: dialogs.c:2260
-#, fuzzy
-msgid "ICS Interaction"
-msgstr "ICS設定"
-
-#: dialogs.c:2345
-msgid "factory"
-msgstr ""
-
-#: dialogs.c:2346
-msgid "up"
-msgstr "向上"
-
-#: dialogs.c:2347
-msgid "down"
-msgstr "向下"
-
-#: dialogs.c:2366
-msgid "No tag selected"
-msgstr ""
-
-#: dialogs.c:2397
-#, fuzzy
-msgid "Game-list options"
-msgstr "載入棋局選項"
-
-#: dialogs.c:2475 dialogs.c:2489
-msgid "Error"
-msgstr "錯誤"
-
-#: dialogs.c:2518
-msgid "Fatal Error"
-msgstr "嚴重錯誤"
-
-#: dialogs.c:2518
-msgid "Exiting"
-msgstr "離開"
-
-#: dialogs.c:2529
-msgid "Information"
-msgstr "資訊"
-
-#: dialogs.c:2536
-msgid "Note"
-msgstr "註解"
-
-#: dialogs.c:2694 dialogs.c:2987 dialogs.c:2990
-msgid "White"
-msgstr "紅方"
-
-#: dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Pawn"
-msgstr "兵"
-
-#: dialogs.c:2695 dialogs.c:2699
-msgid "Elephant"
-msgstr "象"
-
-#: dialogs.c:2695 dialogs.c:2699
-msgid "Cannon"
-msgstr "炮"
-
-#: dialogs.c:2696 dialogs.c:2700
-msgid "Demote"
-msgstr "降級"
-
-#: dialogs.c:2697 dialogs.c:2701
-msgid "Empty square"
-msgstr "清空格子"
-
-#: dialogs.c:2697 dialogs.c:2701
-msgid "Clear board"
-msgstr "清空棋盤"
-
-#: dialogs.c:2698 dialogs.c:2999 dialogs.c:3002
-msgid "Black"
-msgstr "黑方"
-
-#: dialogs.c:2798
-#, fuzzy
-msgid "_File"
-msgstr "檔案(F)"
-
-#: dialogs.c:2799
-#, fuzzy
-msgid "_Edit"
-msgstr "編輯(E)"
-
-#: dialogs.c:2800
-msgid "_View"
-msgstr ""
-
-#: dialogs.c:2801
-#, fuzzy
-msgid "_Mode"
-msgstr "模式(M)"
-
-#: dialogs.c:2802
-#, fuzzy
-msgid "_Action"
-msgstr "行為(A)"
-
-#: dialogs.c:2803
-#, fuzzy
-msgid "E_ngine"
-msgstr "引擎輸出"
-
-#: dialogs.c:2804
-#, fuzzy
-msgid "_Options"
-msgstr "選項(O)"
-
-#: dialogs.c:2805
-#, fuzzy
-msgid "_Help"
-msgstr "說明(H)"
-
-#: dialogs.c:2815
-msgid "<<"
-msgstr ""
-
-#: dialogs.c:2816
-msgid "<"
-msgstr ""
-
-#: dialogs.c:2818
-msgid ">"
-msgstr ""
-
-#: dialogs.c:2819
-msgid ">>"
-msgstr ""
-
-#: dialogs.c:3107
-msgid "Directories:"
-msgstr ""
-
-#: dialogs.c:3108
-#, fuzzy
-msgid "Files:"
-msgstr "檔案(F)"
-
-#: dialogs.c:3109
-msgid "by name"
-msgstr ""
-
-#: dialogs.c:3110
-msgid "by type"
-msgstr ""
-
-#: dialogs.c:3113
-#, fuzzy
-msgid "Filename:"
-msgstr "過濾器"
-
-#: dialogs.c:3114
-msgid "New directory"
-msgstr ""
-
-#: dialogs.c:3115
-#, fuzzy
-msgid "File type:"
-msgstr "過濾器"
-
-#: dialogs.c:3190
-#, fuzzy
-msgid "Contents of"
-msgstr "編輯註解(C) *.*"
-
-#: dialogs.c:3216
-msgid "  next page"
-msgstr ""
-
-#: dialogs.c:3233
-msgid "FIRST TYPE DIRECTORY NAME HERE"
-msgstr ""
-
-#: dialogs.c:3234
-msgid "TRY ANOTHER NAME"
-msgstr ""
-
-#: draw.c:405
-msgid ""
-"No default pieces installed!\n"
-"Select your own using '-pieceImageDirectory'."
-msgstr ""
-
-#: engineoutput.c:112 menus.c:642
-#, fuzzy, c-format
-msgid "Engine Output"
-msgstr "引擎輸出"
-
-#: engineoutput.c:122
-#, c-format
-msgid "%s (%d reversible ply)"
-msgid_plural "%s (%d reversible plies)"
-msgstr[0] ""
-msgstr[1] ""
-
-#: engineoutput.c:565 engineoutput.c:568 nengineoutput.c:83 nengineoutput.c:91
-msgid "NPS"
-msgstr "NPS"
-
-#: gamelist.c:379
-#, fuzzy, c-format
-msgid "Reading game file (%d)"
-msgstr "棋局檔案錯誤"
-
-#: gtk/xboard.c:979 xaw/xboard.c:1074
-#, c-format
-msgid "%s: can't cd to CHESSDIR: "
-msgstr ""
-
-#: gtk/xboard.c:988 xaw/xboard.c:1083
-#, c-format
-msgid "Failed to open file '%s'\n"
-msgstr ""
-
-#: gtk/xboard.c:1003 xaw/xboard.c:1092
-msgid "Recompile with larger BOARD_RANKS or BOARD_FILES to support this size"
-msgstr ""
-
-#: gtk/xboard.c:1022 xaw/xboard.c:1124
-#, c-format
-msgid "%s: bad boardSize syntax %s\n"
-msgstr ""
-
-#: gtk/xboard.c:1063 xaw/xboard.c:1163
-#, c-format
-msgid "%s: unrecognized boardSize name %s\n"
-msgstr ""
-
-#: gtk/xboard.c:1107 xaw/xboard.c:1200
-#, c-format
-msgid "%s: too few colors available; trying monochrome mode\n"
-msgstr ""
-
-#: gtk/xboard.c:1421 xaw/xboard.c:1492
-#, c-format
-msgid "Unable to create font set for %s.\n"
-msgstr ""
-
-#: gtk/xboard.c:1446 xaw/xboard.c:1515
-#, c-format
-msgid "%s: no fonts match pattern %s\n"
-msgstr ""
-
-#: gtk/xboard.c:1914 xaw/xboard.c:2007
-msgid "Can't open temp file"
-msgstr ""
-
-#: gtk/xboard.c:2422
-#, fuzzy
-msgid "Failed to open file"
-msgstr "呼叫cmail失敗"
-
-#: gtk/xoptions.c:1498
-msgid "Browse"
-msgstr ""
-
-#: gtk/xoptions.c:1772 xaw/xoptions.c:1337
-msgid "OK"
-msgstr "確定"
-
-#: menus.c:136
-msgid "Load game file name?"
-msgstr ""
-
-#: menus.c:183
-msgid "Load position file name?"
-msgstr ""
-
-#: menus.c:189 menus.c:582
-msgid "Save game file name?"
-msgstr ""
-
-#: menus.c:198
-msgid "Save position file name?"
-msgstr ""
-
-#: menus.c:355
-msgid " (with Zippy code)"
-msgstr ""
-
-#: menus.c:360
-#, c-format
-msgid ""
-"%s%s\n"
-"\n"
-"Copyright 1991 Digital Equipment Corporation\n"
-"Enhancements Copyright 1992-2016 Free Software Foundation\n"
-"Enhancements Copyright 2005 Alessandro Scotti\n"
-"\n"
-"%s is free software and carries NO WARRANTY;see the file COPYING for more "
-"information.\n"
-"\n"
-"Visit XBoard on the web at: http://www.gnu.org/software/xboard/\n"
-"Check out the newest features at: http://www.gnu.org/software/xboard/"
-"whats_new.html\n"
-"\n"
-"Report bugs via email at: <bug-xboard@gnu.org>\n"
-"\n"
-msgstr ""
-
-#: menus.c:371 menus.c:765
-msgid "About XBoard"
-msgstr "關於XBoard(A)"
-
-#: menus.c:593
-#, fuzzy
-msgid "New Game"
-msgstr "洗牌遊戲(u)..."
-
-#: menus.c:594
-#, fuzzy
-msgid "New Shuffle Game..."
-msgstr "洗牌遊戲(u)..."
-
-#: menus.c:595
-#, fuzzy
-msgid "New Variant..."
-msgstr "變種"
-
-#: menus.c:597
-#, fuzzy
-msgid "Load Game"
-msgstr "載入棋局選項(L)...   Alt+Shift+L"
-
-#: menus.c:598
-#, fuzzy
-msgid "Load Position"
-msgstr "盤面檔案錯誤"
-
-#: menus.c:599
-#, fuzzy
-msgid "Next Position"
-msgstr "盤面檔案錯誤"
-
-#: menus.c:600
-#, fuzzy
-msgid "Prev Position"
-msgstr "盤面檔案錯誤"
-
-#: menus.c:602
-#, fuzzy
-msgid "Save Game"
-msgstr "儲存棋局選項(S)...   Alt+Shift+S"
-
-#: menus.c:603
-#, fuzzy
-msgid "Save Position"
-msgstr "盤面檔案錯誤"
-
-#: menus.c:604
-#, fuzzy
-msgid "Save Selected Games"
-msgstr "儲存棋局選項(S)...   Alt+Shift+S"
-
-#: menus.c:605
-#, fuzzy
-msgid "Save Games as Book"
-msgstr "儲存棋局選項(S)...   Alt+Shift+S"
-
-#: menus.c:607
-msgid "Mail Move"
-msgstr ""
-
-#: menus.c:608
-msgid "Reload CMail Message"
-msgstr ""
-
-#: menus.c:610
-msgid "Quit "
-msgstr ""
-
-#: menus.c:615
-#, fuzzy
-msgid "Copy Game"
-msgstr "複製遊戲列表到剪貼簿"
-
-#: menus.c:616
-#, fuzzy
-msgid "Copy Position"
-msgstr "複製局面到剪貼簿(Y)   Ctrl+Shift+C"
-
-#: menus.c:617
-msgid "Copy Game List"
-msgstr "複製遊戲列表到剪貼簿"
-
-#: menus.c:619
-#, fuzzy
-msgid "Paste Game"
-msgstr "貼上棋局自剪貼簿(P)   Ctrl+V"
-
-#: menus.c:620
-#, fuzzy
-msgid "Paste Position"
-msgstr "從剪貼簿貼上局面(T)   Ctrl+Shift+V"
-
-#: menus.c:622 menus.c:665
-#, fuzzy
-msgid "Edit Game"
-msgstr "編輯註解"
-
-#: menus.c:623 menus.c:666
-#, fuzzy
-msgid "Edit Position"
-msgstr "盤面檔案錯誤"
-
-#: menus.c:624
-msgid "Edit Tags"
-msgstr "編輯標籤(T)"
-
-#: menus.c:625
-msgid "Edit Comment"
-msgstr "編輯註解(C)..."
-
-#: menus.c:626
-#, fuzzy
-msgid "Edit Book"
-msgstr "開局庫(B)..."
-
-#: menus.c:628
-msgid "Revert"
-msgstr ""
-
-#: menus.c:629
-msgid "Annotate"
-msgstr "註解(A)"
-
-#: menus.c:630
-#, fuzzy
-msgid "Truncate Game"
-msgstr "截斷後面的著法(T)"
-
-#: menus.c:632
-msgid "Backward"
-msgstr ""
-
-#: menus.c:633
-msgid "Forward"
-msgstr ""
-
-#: menus.c:634
-#, fuzzy
-msgid "Back to Start"
-msgstr "輪到黑方走棋"
-
-#: menus.c:635
-#, fuzzy
-msgid "Forward to End"
-msgstr "最後局面(E)   Alt+End"
-
-#: menus.c:640
-#, fuzzy
-msgid "Flip View"
-msgstr "自動翻轉棋盤(V)"
-
-#: menus.c:643
-#, fuzzy
-msgid "Move History"
-msgstr "取得著法列表(G)"
-
-#: menus.c:644
-#, fuzzy
-msgid "Evaluation Graph"
-msgstr "審局圖"
-
-#: menus.c:645
-#, fuzzy
-msgid "Game List"
-msgstr "遊戲列表..."
-
-#: menus.c:649
-msgid "Comments"
-msgstr "編輯註解(C) *.*"
-
-#: menus.c:650
-msgid "ICS Input Box"
-msgstr ""
-
-#: menus.c:651
-msgid "ICS/Chat Console"
-msgstr ""
-
-#: menus.c:653
-msgid "Board..."
-msgstr "棋盤選項(B)..."
-
-#: menus.c:654
-#, fuzzy
-msgid "Fonts..."
-msgstr "聲音選項(D)..."
-
-#: menus.c:655
-msgid "Game List Tags..."
-msgstr "遊戲列表..."
-
-#: menus.c:660
-#, fuzzy
-msgid "Machine White"
-msgstr "電腦執紅(W)   Ctrl+W"
-
-#: menus.c:661
-#, fuzzy
-msgid "Machine Black"
-msgstr "電腦比賽(M)"
-
-#: menus.c:662
-#, fuzzy
-msgid "Two Machines"
-msgstr "電腦對弈(M)   Ctrl+T"
-
-#: menus.c:663
-#, fuzzy
-msgid "Analysis Mode"
-msgstr "分析模式(A)   Ctrl+A"
-
-#: menus.c:664
-#, fuzzy
-msgid "Analyze Game"
-msgstr "分析檔案(F)   Ctrl+F"
-
-#: menus.c:667
-msgid "Training"
-msgstr "訓練(N)"
-
-#: menus.c:668
-msgid "ICS Client"
-msgstr "ICS客戶端"
-
-#: menus.c:670
-msgid "Machine Match"
-msgstr "電腦比賽(M)"
-
-#: menus.c:671
-msgid "Pause"
-msgstr ""
-
-#: menus.c:676
-msgid "Accept"
-msgstr ""
-
-#: menus.c:677
-msgid "Decline"
-msgstr ""
-
-#: menus.c:678
-msgid "Rematch"
-msgstr ""
-
-#: menus.c:680
-#, fuzzy
-msgid "Call Flag"
-msgstr "超時判負(F)   F5"
-
-#: menus.c:681
-msgid "Draw"
-msgstr ""
-
-#: menus.c:682
-msgid "Adjourn"
-msgstr ""
-
-#: menus.c:683
-msgid "Abort"
-msgstr ""
-
-#: menus.c:684
-msgid "Resign"
-msgstr ""
-
-#: menus.c:686
-#, fuzzy
-msgid "Stop Observing"
-msgstr "停止觀棋(O)   F10"
-
-#: menus.c:687
-#, fuzzy
-msgid "Stop Examining"
-msgstr "停止研究(X)   F11"
-
-#: menus.c:688
-msgid "Upload to Examine"
-msgstr "上傳檢查(U)"
-
-#: menus.c:690
-msgid "Adjudicate to White"
-msgstr "裁決紅贏 (W)"
-
-#: menus.c:691
-msgid "Adjudicate to Black"
-msgstr "裁決黑贏 (B)"
-
-#: menus.c:692
-msgid "Adjudicate Draw"
-msgstr "提請仲裁(D)"
-
-#: menus.c:697
-#, fuzzy
-msgid "Edit Engine List..."
-msgstr "引擎 #1 設定"
-
-#: menus.c:699
-msgid "Load New 1st Engine..."
-msgstr ""
-
-#: menus.c:700
-#, fuzzy
-msgid "Load New 2nd Engine..."
-msgstr "通用引擎設定(E)...   Alt+Shift+U"
-
-#: menus.c:702
-#, fuzzy
-msgid "Engine #1 Settings..."
-msgstr "引擎 #1 設定"
-
-#: menus.c:703
-#, fuzzy
-msgid "Engine #2 Settings..."
-msgstr "引擎 #2 設定"
-
-#: menus.c:704
-#, fuzzy
-msgid "Common Settings..."
-msgstr "通用引擎設定"
-
-#: menus.c:706
-msgid "Hint"
-msgstr "提示(H)..."
-
-#: menus.c:707
-msgid "Book"
-msgstr "開局庫(B)..."
-
-#: menus.c:709
-msgid "Move Now"
-msgstr ""
-
-#: menus.c:710
-#, fuzzy
-msgid "Retract Move"
-msgstr "悔棋(R)   Ctrl+X"
-
-#: menus.c:716
-#, fuzzy
-msgid "General..."
-msgstr "一般選項(G)..."
-
-#: menus.c:718
-#, fuzzy
-msgid "Time Control..."
-msgstr "時間設定(T)...   Alt+Shift+T"
-
-#: menus.c:719
-#, fuzzy
-msgid "Adjudications..."
-msgstr "判決(j)...   Alt+Shift+J"
-
-#: menus.c:720
-msgid "ICS..."
-msgstr ""
-
-#: menus.c:721
-msgid "Tournament..."
-msgstr ""
-
-#: menus.c:722
-#, fuzzy
-msgid "Load Game..."
-msgstr "載入棋局選項(L)...   Alt+Shift+L"
-
-#: menus.c:723
-#, fuzzy
-msgid "Save Game..."
-msgstr "儲存棋局選項(S)...   Alt+Shift+S"
-
-#: menus.c:724
-#, fuzzy
-msgid "Game List..."
-msgstr "遊戲列表..."
-
-#: menus.c:725
-#, fuzzy
-msgid "Sounds..."
-msgstr "聲音選項(D)..."
-
-#: menus.c:728
-msgid "Always Queen"
-msgstr ""
-
-#: menus.c:734
-msgid "Flash Moves"
-msgstr ""
-
-#: menus.c:736
-msgid "Highlight Dragging"
-msgstr "拖曳醒目提示(H)"
-
-#: menus.c:739
-msgid "Highlight With Arrow"
-msgstr "用箭頭突出移動"
-
-#: menus.c:740
-msgid "Move Sound"
-msgstr ""
-
-#: menus.c:742
-msgid "Periodic Updates"
-msgstr "定期更新(U)"
-
-#: menus.c:744
-msgid "Popup Exit Message"
-msgstr "離開時提示(P)"
-
-#: menus.c:746
-msgid "Show Coords"
-msgstr "顯示坐標(C)"
-
-#: menus.c:747
-#, fuzzy
-msgid "Hide Thinking"
-msgstr "與人對弈時隱藏思考細節"
-
-#: menus.c:751
-msgid "Save Settings Now"
-msgstr "立即儲存設定(N)"
-
-#: menus.c:752
-msgid "Save Settings on Exit"
-msgstr "離開時儲存設定(X)"
-
-#: menus.c:757
-msgid "Info XBoard"
-msgstr ""
-
-#: menus.c:758
-#, fuzzy
-msgid "Man XBoard"
-msgstr "關於XBoard(A)"
-
-#: menus.c:760
-msgid "XBoard Home Page"
-msgstr ""
-
-#: menus.c:761
-msgid "On-line User Guide"
-msgstr ""
-
-#: menus.c:762
-msgid "Development News"
-msgstr ""
-
-#: menus.c:763
-msgid "e-Mail Bug Report"
-msgstr ""
-
-#: menus.c:802
-msgid "File"
-msgstr "檔案(F)"
-
-#: menus.c:803
-msgid "Edit"
-msgstr "編輯(E)"
-
-#: menus.c:804
-msgid "View"
-msgstr ""
-
-#: menus.c:805
-msgid "Mode"
-msgstr "模式(M)"
-
-#: menus.c:806
-msgid "Action"
-msgstr "行為(A)"
-
-#: menus.c:807
-msgid "Engine"
-msgstr ""
-
-#: menus.c:808
-msgid "Options"
-msgstr "選項(O)"
-
-#: menus.c:809
-msgid "Help"
-msgstr "說明(H)"
-
-#: nengineoutput.c:79 nengineoutput.c:87
-#, fuzzy
-msgid "engine name"
-msgstr "引擎輸出"
-
-#. TRANSLATORS: noun, as in "the move Nf3"
-#: nengineoutput.c:82 nengineoutput.c:90
-#, fuzzy
-msgid "move"
-msgstr "著法"
-
-#: nengineoutput.c:156
-msgid "Engine output"
-msgstr "引擎輸出"
-
-#: nengineoutput.c:160
-msgid ""
-"Mismatch of STRIDE in nengineoutput.c\n"
-"Change and recompile!"
-msgstr ""
-
-#: nevalgraph.c:69
-msgid "Evaluation graph"
-msgstr "審局圖"
-
-#: nevalgraph.c:69
-#, fuzzy
-msgid "Blunder graph"
-msgstr "審局圖"
-
-#: nevalgraph.c:107
-msgid "Blunder"
-msgstr ""
-
-#: nevalgraph.c:107
-msgid "Eval"
-msgstr ""
-
-#: ngamelist.c:87
-#, fuzzy
-msgid "find position"
-msgstr "盤面檔案錯誤"
-
-#: ngamelist.c:88
-msgid "narrow"
-msgstr ""
-
-#: ngamelist.c:89
-msgid "thresholds"
-msgstr ""
-
-#: ngamelist.c:90
-#, fuzzy
-msgid "tags"
-msgstr "編輯標籤(T)"
-
-#: ngamelist.c:91
-msgid "next"
-msgstr ""
-
-#: ngamelist.c:92
-msgid "close"
-msgstr ""
-
-#: ngamelist.c:116
-msgid "No game selected"
-msgstr "沒有選中棋局"
-
-#: ngamelist.c:122
-msgid "Can't go forward any further"
-msgstr "無法再前進了"
-
-#: ngamelist.c:192
-#, c-format
-msgid "Scanning through games (%d)"
-msgstr ""
-
-#: ngamelist.c:211
-msgid "previous page"
-msgstr ""
-
-#: ngamelist.c:214
-msgid "next page"
-msgstr ""
-
-#: ngamelist.c:217
-msgid "no games matched your request"
-msgstr ""
-
-#: ngamelist.c:219
-#, fuzzy, c-format
-msgid "%s - %d/%d games (%d-%d-%d)"
-msgstr "比賽 %s vs. %s: 最終比分 %d-%d-%d"
-
-#: ngamelist.c:284
-msgid "There is no game list"
-msgstr "沒有棋局列表"
-
-#: nhistory.c:109
-msgid "Move list"
-msgstr ""
-
-#: usystem.c:223
-#, c-format
-msgid "%s: unrecognized color %s\n"
-msgstr ""
-
-#: usystem.c:231
-#, c-format
-msgid "%s: can't parse foreground color in '%s'\n"
-msgstr ""
-
-#: usystem.c:260
-#, c-format
-msgid "%s: can't parse color names; disabling colorization\n"
-msgstr ""
-
-#: usystem.c:362
-#, c-format
-msgid "ERROR: Unknown user %s (in path %s)\n"
-msgstr ""
-
-#: usystem.c:564
-msgid "Socket support is not configured in"
-msgstr ""
-
-#: usystem.c:653
-msgid "internal rcmd not implemented for Unix"
-msgstr ""
-
-#: xaw/xboard.c:1206
-#, c-format
-msgid "white pixel = 0x%lx, black pixel = 0x%lx\n"
-msgstr ""
-
-#: xaw/xoptions.c:378 xaw/xoptions.c:1082
-msgid "browse"
-msgstr ""
-
-#: xaw/xoptions.c:444 xaw/xoptions.c:445
-msgid "Ctrl"
-msgstr ""
-
-#: xaw/xoptions.c:450 xaw/xoptions.c:451
-msgid "Alt"
-msgstr ""
-
-#: xaw/xoptions.c:456 xaw/xoptions.c:457
-msgid "Shift"
-msgstr ""
-
-#, fuzzy
-#~ msgid "Common Engine..."
-#~ msgstr "通用引擎設定(E)...   Alt+Shift+U"
-
-#~ msgid "ICS ..."
-#~ msgstr "ICS選項..."
-
-#~ msgid "cancel"
-#~ msgstr "取消(C)"
-
-#~ msgid "New Game        Ctrl+N"
-#~ msgstr "開新棋局(N)   Ctrl+N"
-
-#~ msgid "New Variant ...   Alt+Shift+V"
-#~ msgstr "新變種(V)...   Alt+Shift+V"
-
-#~ msgid "Load Game       Ctrl+O"
-#~ msgstr "載入棋局(L)...   Ctrl+O"
-
-#~ msgid "Load Position    Ctrl+Shift+O"
-#~ msgstr "載入局面(O)...   Ctrl+Shift+O"
-
-#~ msgid "Save Game       Ctrl+S"
-#~ msgstr "儲存棋局(S)...   Ctrl+S"
-
-#~ msgid "Save Position    Ctrl+Shift+S"
-#~ msgstr "儲存局面(A)...   Ctrl+Shift+S"
-
-#~ msgid "Quit                 Ctr+Q"
-#~ msgstr "離開(Q)"
-
-#~ msgid "Copy Game    Ctrl+C"
-#~ msgstr "複製棋局到剪貼簿(C)   Ctrl+C"
-
-#~ msgid "Edit Game      Ctrl+E"
-#~ msgstr "編輯棋局(E)   Ctrl+E"
-
-#~ msgid "Edit Position   Ctrl+Shift+E"
-#~ msgstr "編輯局面(d)   Ctrl+Shift+E"
-
-#~ msgid "Revert              Home"
-#~ msgstr "恢復(V)"
-
-#~ msgid "Backward         Alt+Left"
-#~ msgstr "下一著(B)   Alt+Left"
-
-#~ msgid "Forward           Alt+Right"
-#~ msgstr "上一著(F)   Alt+Right"
-
-#~ msgid "Back to Start     Alt+Home"
-#~ msgstr "起始局面(S)   Alt+Home"
-
-#~ msgid "Flip View             F2"
-#~ msgstr "翻轉棋盤(V)   F2"
-
-#~ msgid "Engine Output      Alt+Shift+O"
-#~ msgstr "顯示引擎輸出   Alt+Shift+O"
-
-#~ msgid "Move History       Alt+Shift+H"
-#~ msgstr "顯示歷史著法   Alt+Shift+H"
-
-#~ msgid "Evaluation Graph  Alt+Shift+E"
-#~ msgstr "顯示評價圖   Alt+Shift+E"
-
-#~ msgid "Game List            Alt+Shift+G"
-#~ msgstr "顯示棋局列表(L)   Alt+Shift+G"
-
-#~ msgid "Machine Black  Ctrl+B"
-#~ msgstr "電腦執黑(B)   Ctrl+B"
-
-#~ msgid "Edit Game         Ctrl+E"
-#~ msgstr "編輯棋局(E)   Ctrl+E"
-
-#~ msgid "Edit Position      Ctrl+Shift+E"
-#~ msgstr "編輯局面(d)   Ctrl+Shift+E"
-
-#~ msgid "Pause               Pause"
-#~ msgstr "暫停(P)   Pause"
-
-#~ msgid "Accept             F3"
-#~ msgstr "接受(A)   F3"
-
-#~ msgid "Decline            F4"
-#~ msgstr "拒絕(C)   F4"
-
-#~ msgid "Rematch           F12"
-#~ msgstr "重賽(M)   F12"
-
-#~ msgid "Draw                F6"
-#~ msgstr "提和(D)   F6"
-
-#~ msgid "Adjourn            F7"
-#~ msgstr "封盤(J)   F7"
-
-#~ msgid "Abort                F8"
-#~ msgstr "中止(B)   F8"
-
-#~ msgid "Resign              F9"
-#~ msgstr "認輸(R)   F9"
-
-#~ msgid "Move Now     Ctrl+M"
-#~ msgstr "立即走棋(M)   Ctrl+M"
-
-#~ msgid "Always Queen        Ctrl+Shift+Q"
-#~ msgstr "總是升變為皇后(Q) Ctrl+Shift+Q"
-
-#~ msgid "Animate Moving      Ctrl+Shift+A"
-#~ msgstr "動畫走棋(A)     Ctrl+Shift+A"
-
-#~ msgid "Auto Flag               Ctrl+Shift+F"
-#~ msgstr "自動超時判負(F) Ctrl+Shift+F"
-
-#~ msgid "Ponder Next Move  Ctrl+Shift+P"
-#~ msgstr "同步思考(N)  Ctrl+Shift+P"
-
-#~ msgid "Hide Thinking        Ctrl+Shift+H"
-#~ msgstr "隱藏引擎思考 Ctrl+Shift+H"
-
-#~ msgid "Test Legality          Ctrl+Shift+L"
-#~ msgstr "檢查著法合理性(L) Cl+Sh+L"
-
-#~ msgid "Drop"
-#~ msgstr "取消"
-
-#, fuzzy
-#~ msgid "could not open: "
-#~ msgstr "無法解析著法"
-
-#~ msgid "Promotion"
-#~ msgstr "升變"
-
-#~ msgid "ok"
-#~ msgstr "確定"
-
-#~ msgid "Highlight Dragging (Show Move Targets)"
-#~ msgstr "拖曳醒目提示(H)"
-
-#~ msgid "White "
-#~ msgstr "紅方 "
-
-#~ msgid "Black "
-#~ msgstr "黑方 "
-
-#~ msgid "Close"
-#~ msgstr "關閉(C)"
-
-#~ msgid "sec/move"
-#~ msgstr "每走一步加"
diff --git a/po/zh_TW.po b/po/zh_TW.po
deleted file mode 100644 (file)
index 4a757de..0000000
+++ /dev/null
@@ -1,3295 +0,0 @@
-# XBoard -- a graphical chessboard for X
-# Copyright (C) 1991 by Digital Equipment Corporation, Maynard, Massachusetts.
-# Enhancements Copyright (C) 1992-98 Free Software Foundation, Inc.
-# This file is distributed under the same license as the XBoard package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: GNU xboard master-20110507\n"
-"Report-Msgid-Bugs-To: bug-xboard@gnu.org\n"
-"POT-Creation-Date: 2016-04-03 13:44-0700\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: zh_TW\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: args.h:851
-#, c-format
-msgid "%s in settings file\n"
-msgstr ""
-
-#: args.h:885
-#, c-format
-msgid "Bad integer value %s"
-msgstr ""
-
-#: args.h:991 args.h:1252
-#, c-format
-msgid "Unrecognized argument %s"
-msgstr ""
-
-#: args.h:1022
-#, c-format
-msgid "No value provided for argument %s"
-msgstr ""
-
-#: args.h:1082
-#, c-format
-msgid "Incomplete \\ escape in value for %s"
-msgstr ""
-
-#: args.h:1193
-#, c-format
-msgid "Failed to open indirection file %s"
-msgstr ""
-
-#: args.h:1210
-#, c-format
-msgid "Unrecognized boolean argument value %s"
-msgstr ""
-
-#. TRANSLATORS: "first" is the first of possible two chess engines. It is inserted into strings
-#. such as "%s engine" / "%s chess program" / "%s machine" - all meaning the same thing
-#: backend.c:811
-msgid "first"
-msgstr ""
-
-#. TRANSLATORS: "second" is the second of possible two chess engines. It is inserted into strings
-#. such as "%s engine" / "%s chess program" / "%s machine" - all meaning the same thing
-#: backend.c:814
-msgid "second"
-msgstr ""
-
-#: backend.c:897
-#, c-format
-msgid "protocol version %d not supported"
-msgstr "通訊協定版本 %d 不被支持"
-
-#: backend.c:1004
-msgid "You did not specify the engine executable"
-msgstr ""
-
-#: backend.c:1062
-#, c-format
-msgid "bad timeControl option %s"
-msgstr "非法的\"timeControl\"(時間控制)選項 %s"
-
-#: backend.c:1077
-#, c-format
-msgid "bad searchTime option %s"
-msgstr "非法的\"searchTime\"(搜尋時間)選項 %s"
-
-#: backend.c:1183
-#, c-format
-msgid "Variant %s supported only in ICS mode"
-msgstr "變體 %s 只在ICS模式下支持"
-
-#: backend.c:1201
-#, c-format
-msgid "Unknown variant name %s"
-msgstr "未知的變體名 %s"
-
-#: backend.c:1456
-msgid "Starting chess program"
-msgstr "啟動國際象棋程式"
-
-#: backend.c:1479
-msgid "Bad game file"
-msgstr "棋局檔案錯誤"
-
-#: backend.c:1486
-msgid "Bad position file"
-msgstr "盤面檔案錯誤"
-
-#: backend.c:1500
-msgid "Pick new game"
-msgstr ""
-
-#: backend.c:1569
-msgid ""
-"You restarted an already completed tourney.\n"
-"One more cycle will now be added to it.\n"
-"Games commence in 10 sec."
-msgstr ""
-
-#: backend.c:1576
-#, c-format
-msgid "All games in tourney '%s' are already played or playing"
-msgstr ""
-
-#: backend.c:1583
-msgid "Can't have a match with no chess programs"
-msgstr "沒有象棋程式時無法進行比賽"
-
-#: backend.c:1637
-#, c-format
-msgid "Could not open comm port %s"
-msgstr "無法打開通訊連接埠 %s"
-
-#: backend.c:1640
-#, c-format
-msgid "Could not connect to host %s, port %s"
-msgstr "無法連接主機 %s 連接埠 %s"
-
-#: backend.c:1696
-#, c-format
-msgid "Unknown initialMode %s"
-msgstr "未知的\"initialMode\"(初始模式)選項 %s"
-
-#: backend.c:1722
-msgid "AnalyzeFile mode requires a game file"
-msgstr "\"AnalyzeFile\"(分析檔案)模式必須指定一個棋局檔案"
-
-#: backend.c:1755
-msgid "Analysis mode requires a chess engine"
-msgstr "\"Analysis\"(分析)模式必須啟動國際象棋引擎"
-
-#: backend.c:1759
-msgid "Analysis mode does not work with ICS mode"
-msgstr "\"Analysis\"(分析)模式無法在ICS模式下工作"
-
-#: backend.c:1770
-msgid "MachineWhite mode requires a chess engine"
-msgstr "\"MachineWhite\"(電腦執紅)模式必須啟動國際象棋引擎"
-
-#: backend.c:1775
-msgid "MachineWhite mode does not work with ICS mode"
-msgstr "\"MachineWhite\"(電腦執紅)模式無法在ICS模式下運行"
-
-#: backend.c:1782
-msgid "MachineBlack mode requires a chess engine"
-msgstr "\"MachineBlack\"(電腦執黑)模式必須啟動國際象棋引擎"
-
-#: backend.c:1787
-msgid "MachineBlack mode does not work with ICS mode"
-msgstr "\"MachineBlack\"(電腦執黑)模式無法在ICS模式下運行"
-
-#: backend.c:1794
-msgid "TwoMachines mode requires a chess engine"
-msgstr "\"TwoMachines\"(分析)模式必須啟動國際象棋引擎"
-
-#: backend.c:1799
-msgid "TwoMachines mode does not work with ICS mode"
-msgstr "\"TwoMachines\"(電腦對弈)模式無法在ICS模式下運行"
-
-#: backend.c:1810
-msgid "Training mode requires a game file"
-msgstr "\"Training\"(訓練)模式必須指定一個棋局檔案"
-
-#: backend.c:1973 backend.c:2028 backend.c:2051 backend.c:2453
-msgid "Error writing to ICS"
-msgstr "發送訊息給ICS時出錯"
-
-#: backend.c:1988
-msgid "Error reading from keyboard"
-msgstr "讀取鍵盤時出錯"
-
-#: backend.c:1991
-msgid "Got end of file from keyboard"
-msgstr "讀取鍵盤時遇到檔案尾"
-
-#: backend.c:2299
-#, c-format
-msgid "Unknown wild type %d"
-msgstr ""
-
-#: backend.c:2370 usystem.c:317
-msgid "Error writing to display"
-msgstr "發送訊息給顯示器時出錯"
-
-#. TRANSLATORS: to 'kibitz' is to send a message to all players and the game observers
-#: backend.c:3138
-#, c-format
-msgid "your opponent kibitzes: %s"
-msgstr ""
-
-#: backend.c:3677
-msgid "Error gathering move list: two headers"
-msgstr "讀取著法時出錯,出現兩個開頭"
-
-#: backend.c:3724
-msgid "Error gathering move list: nested"
-msgstr "讀取著法時出錯,巢狀錯誤"
-
-#: backend.c:3828 backend.c:4254 backend.c:4458 backend.c:5017 backend.c:5021
-#: backend.c:7292 backend.c:13054 backend.c:14805 backend.c:14882
-#: backend.c:14928 backend.c:14934 backend.c:14939 backend.c:14944
-msgid "vs."
-msgstr ""
-
-#: backend.c:3956
-msgid "Illegal move (rejected by ICS)"
-msgstr ""
-
-#: backend.c:4302
-msgid "Connection closed by ICS"
-msgstr "連接被ICS關閉"
-
-#: backend.c:4304
-msgid "Error reading from ICS"
-msgstr "讀取ICS訊息時出錯"
-
-#: backend.c:4381
-#, c-format
-msgid ""
-"Failed to parse board string:\n"
-"\"%s\""
-msgstr ""
-
-#: backend.c:4390 backend.c:10628
-msgid "Game too long; increase MAX_MOVES and recompile"
-msgstr "棋局太長,需要增加\"MAX_MOVES\"並重新編譯"
-
-#: backend.c:4509
-msgid "Error gathering move list: extra board"
-msgstr "讀取著法時出錯,超出棋盤"
-
-#: backend.c:4941 backend.c:4963
-#, c-format
-msgid "Couldn't parse move \"%s\" from ICS"
-msgstr "無法解析從ICS讀到的著法\"%s\""
-
-#: backend.c:5228
-#, c-format
-msgid "say Internal error; bad moveType %d (%d,%d-%d,%d)"
-msgstr "say 內部錯誤,非法的\"moveType\"(著法類型) %d (%d,%d-%d,%d)"
-
-#: backend.c:5299
-msgid "You cannot do this while you are playing or observing"
-msgstr ""
-
-#: backend.c:6359
-msgid "Recompile to support this BOARD_RANKS or BOARD_FILES!"
-msgstr ""
-
-#: backend.c:6851
-msgid "You are playing Black"
-msgstr "你在執黑"
-
-#: backend.c:6860 backend.c:6888
-msgid "You are playing White"
-msgstr "你在執紅"
-
-#: backend.c:6870 backend.c:6896 backend.c:7018 backend.c:7043 backend.c:7059
-#: backend.c:15645
-msgid "It is White's turn"
-msgstr "輪到紅方走棋"
-
-#: backend.c:6874 backend.c:6900 backend.c:7026 backend.c:7049 backend.c:7081
-#: backend.c:15637
-msgid "It is Black's turn"
-msgstr "輪到黑方走棋"
-
-#: backend.c:6913
-msgid "Displayed position is not current"
-msgstr "顯示的盤面不是當前盤面"
-
-#: backend.c:7116
-msgid "rights granted"
-msgstr ""
-
-#: backend.c:7116
-msgid "rights revoked"
-msgstr ""
-
-#: backend.c:7169
-msgid "Illegal move"
-msgstr "著法錯誤"
-
-#: backend.c:7249
-msgid "End of game"
-msgstr "棋局結束"
-
-#: backend.c:7252
-msgid "Incorrect move"
-msgstr "著法錯誤"
-
-#: backend.c:7655 backend.c:7811
-msgid "Pull pawn backwards to under-promote"
-msgstr ""
-
-#: backend.c:7772
-msgid "only marked squares are legal"
-msgstr ""
-
-#: backend.c:8093
-msgid "Swiss tourney finished"
-msgstr ""
-
-#: backend.c:8609
-msgid "could not load EGBB library"
-msgstr ""
-
-#: backend.c:8612
-msgid "wrong EGBB version"
-msgstr ""
-
-#: backend.c:8725
-msgid "Invalid pairing from pairing engine"
-msgstr ""
-
-#: backend.c:8892
-#, c-format
-msgid "Illegal move \"%s\" from %s machine"
-msgstr "從%s機器讀到不合法著法\"%s\""
-
-#: backend.c:9179
-msgid "Bad FEN received from engine"
-msgstr ""
-
-#: backend.c:9280
-msgid "Engine did not send setup for non-standard variant"
-msgstr ""
-
-#: backend.c:9358 backend.c:14667 backend.c:14735
-#, c-format
-msgid "%s does not support analysis"
-msgstr "%s 不支持分析功能"
-
-#: backend.c:9424
-#, c-format
-msgid "Illegal move \"%s\" (rejected by %s chess program)"
-msgstr "不合法著法\"%s\" (%s國際象棋程式拒絕接受該著法)"
-
-#: backend.c:9455
-#, c-format
-msgid "Failed to start %s chess program %s on %s: %s\n"
-msgstr "無法啟動%s國際象棋程式 %s(在主機 %s 上),%s\n"
-
-#: backend.c:9476
-#, c-format
-msgid "Hint: %s"
-msgstr "提示 %s"
-
-#: backend.c:9481
-#, c-format
-msgid ""
-"Illegal hint move \"%s\"\n"
-"from %s chess program"
-msgstr ""
-
-#: backend.c:9656
-msgid "Machine accepts your draw offer"
-msgstr "電腦同意和棋"
-
-#: backend.c:9659
-msgid ""
-"Machine offers a draw.\n"
-"Select Action / Draw to accept."
-msgstr ""
-
-#. TRANSLATORS: PV = principal variation, the variation the chess engine thinks is the best for everyone
-#: backend.c:9777
-msgid "failed writing PV"
-msgstr ""
-
-#: backend.c:10083
-#, c-format
-msgid "Ambiguous move in ICS output: \"%s\""
-msgstr "ICS輸出不明確的著法\"%s\""
-
-#: backend.c:10093
-#, c-format
-msgid "Illegal move in ICS output: \"%s\""
-msgstr "ICS輸出不明確的著法\"%s\""
-
-#: backend.c:10104
-msgid "Gap in move list"
-msgstr "著法斷開"
-
-#: backend.c:10782
-#, c-format
-msgid "Variant %s not supported by %s"
-msgstr "變體 %s 不被 %s 所支持"
-
-#: backend.c:10789
-#, c-format
-msgid ", but %s is"
-msgstr ""
-
-#: backend.c:10945
-#, c-format
-msgid "Startup failure on '%s'"
-msgstr "無法啟動'%s'"
-
-#: backend.c:10976
-msgid "Waiting for first chess program"
-msgstr "等待第一個國際象棋程式"
-
-#: backend.c:10981 backend.c:14953
-msgid "Waiting for second chess program"
-msgstr "等待第二個國際象棋程式"
-
-#: backend.c:11030
-msgid "Could not write on tourney file"
-msgstr ""
-
-#: backend.c:11104
-msgid ""
-"You cannot replace an engine while it is engaged!\n"
-"Terminate its game first."
-msgstr ""
-
-#: backend.c:11118
-msgid "No engine with the name you gave is installed"
-msgstr ""
-
-#: backend.c:11120
-msgid ""
-"First change an engine by editing the participants list\n"
-"of the Tournament Options dialog"
-msgstr ""
-
-#: backend.c:11121
-msgid "You can only change one engine at the time"
-msgstr ""
-
-#: backend.c:11136 backend.c:11285
-#, c-format
-msgid "No engine %s is installed"
-msgstr ""
-
-#: backend.c:11156
-msgid ""
-"You must supply a tournament file,\n"
-"for storing the tourney progress"
-msgstr ""
-
-#: backend.c:11166
-msgid "Not enough participants"
-msgstr ""
-
-#: backend.c:11369
-msgid "Bad tournament file"
-msgstr ""
-
-#: backend.c:11381
-msgid "Waiting for other game(s)"
-msgstr ""
-
-#: backend.c:11394
-msgid "No pairing engine specified"
-msgstr ""
-
-#: backend.c:11879
-#, c-format
-msgid "Average solving time %4.2f sec (total time %4.2f sec) "
-msgstr ""
-
-#: backend.c:11881
-#, c-format
-msgid "%d avoid-moves played "
-msgstr ""
-
-#: backend.c:11883
-#, c-format
-msgid "Solved %d out of %d (%3.1f%%) "
-msgstr ""
-
-#: backend.c:11886
-#, c-format
-msgid "Match %s vs. %s: final score %d-%d-%d"
-msgstr "比賽 %s vs. %s: 最終比分 %d-%d-%d"
-
-#: backend.c:12363 backend.c:12399
-#, c-format
-msgid "Illegal move: %d.%s%s"
-msgstr "不合法著法 %d.%s%s"
-
-#: backend.c:12388
-#, c-format
-msgid "Ambiguous move: %d.%s%s"
-msgstr "不明確的著法 %d.%s%s"
-
-#: backend.c:12442 backend.c:13495 backend.c:13695 backend.c:14065
-#, c-format
-msgid "Can't open \"%s\""
-msgstr "無法打開\"%s\""
-
-#: backend.c:12454 menus.c:118
-msgid "Cannot build game list"
-msgstr "無法建立棋局列表"
-
-#: backend.c:12539
-msgid "No more games in this message"
-msgstr "這條訊息不包含更多的棋局"
-
-#: backend.c:12579
-msgid "No game has been loaded yet"
-msgstr "尚未有棋局載入"
-
-#: backend.c:12583 backend.c:13476 ngamelist.c:129
-msgid "Can't back up any further"
-msgstr "無法再後退了"
-
-#: backend.c:13030
-msgid "Game number out of range"
-msgstr "棋局數量超出範圍"
-
-#: backend.c:13041
-msgid "Can't seek on game file"
-msgstr "無法搜尋棋局檔案"
-
-#: backend.c:13099
-msgid "Game not found in file"
-msgstr "檔案中沒有找到棋局"
-
-#: backend.c:13230 backend.c:13573
-msgid "Bad FEN position in file"
-msgstr "檔案中的FEN盤面錯誤"
-
-#: backend.c:13388
-msgid "No moves in game"
-msgstr "棋局中沒有著法"
-
-#: backend.c:13472
-msgid "No position has been loaded yet"
-msgstr "尚未有盤面載入"
-
-#: backend.c:13533 backend.c:13544
-msgid "Can't seek on position file"
-msgstr "無法搜尋盤面檔案"
-
-#: backend.c:13551 backend.c:13563
-msgid "Position not found in file"
-msgstr "檔案中沒有找到盤面"
-
-#: backend.c:13610
-msgid "Black to play"
-msgstr "輪到黑方走棋"
-
-#: backend.c:13613
-msgid "White to play"
-msgstr "輪到紅方走棋"
-
-#: backend.c:13700 backend.c:14070
-msgid "Waiting for access to save file"
-msgstr ""
-
-#: backend.c:13702
-msgid "Saving game"
-msgstr ""
-
-#: backend.c:13703
-msgid "Bad Seek"
-msgstr ""
-
-#: backend.c:14072
-msgid "Saving position"
-msgstr ""
-
-#: backend.c:14198
-msgid ""
-"You have edited the game history.\n"
-"Use Reload Same Game and make your move again."
-msgstr ""
-
-#: backend.c:14203
-msgid ""
-"You have entered too many moves.\n"
-"Back up to the correct position and try again."
-msgstr ""
-
-#: backend.c:14208
-msgid ""
-"Displayed position is not current.\n"
-"Step forward to the correct position and try again."
-msgstr ""
-
-#: backend.c:14255
-msgid "You have not made a move yet"
-msgstr "你尚未走棋"
-
-#: backend.c:14276
-msgid ""
-"The cmail message is not loaded.\n"
-"Use Reload CMail Message and make your move again."
-msgstr ""
-
-#: backend.c:14281
-msgid "No unfinished games"
-msgstr "不存在未完成棋局"
-
-#: backend.c:14287
-#, c-format
-msgid ""
-"You have already mailed a move.\n"
-"Wait until a move arrives from your opponent.\n"
-"To resend the same move, type\n"
-"\"cmail -remail -game %s\"\n"
-"on the command line."
-msgstr ""
-
-#: backend.c:14302
-msgid "Failed to invoke cmail"
-msgstr "呼叫cmail失敗"
-
-#: backend.c:14364
-#, c-format
-msgid "Waiting for reply from opponent\n"
-msgstr "等待對手回應\n"
-
-#: backend.c:14386
-#, c-format
-msgid "Still need to make move for game\n"
-msgstr "本棋局仍需走棋\n"
-
-#: backend.c:14390
-#, c-format
-msgid "Still need to make moves for both games\n"
-msgstr "兩棋局皆仍需走棋\n"
-
-#: backend.c:14394
-#, c-format
-msgid "Still need to make moves for all %d games\n"
-msgstr "所有 %d 棋局皆仍需走棋\n"
-
-#: backend.c:14401
-#, c-format
-msgid "Still need to make a move for game %s\n"
-msgstr "棋局 %s 仍需走棋\n"
-
-#: backend.c:14407
-#, c-format
-msgid "No unfinished games\n"
-msgstr "不存在未完成棋局\n"
-
-#: backend.c:14409
-#, c-format
-msgid "Ready to send mail\n"
-msgstr "準備送信就緒\n"
-
-#: backend.c:14414
-#, c-format
-msgid "Still need to make moves for games %s\n"
-msgstr "棋局 %s 仍需走棋\n"
-
-#: backend.c:14617
-msgid "Edit comment"
-msgstr "編輯註解"
-
-#: backend.c:14619
-#, c-format
-msgid "Edit comment on %d.%s%s"
-msgstr "編輯註解 %d.%s%s"
-
-#: backend.c:14674
-#, c-format
-msgid "You are not observing a game"
-msgstr ""
-
-#: backend.c:14785
-msgid "It is not White's turn"
-msgstr "沒有輪到紅方走棋"
-
-#: backend.c:14866
-msgid "It is not Black's turn"
-msgstr "沒有輪到黑方走棋"
-
-#: backend.c:14974
-#, c-format
-msgid "Starting %s chess program"
-msgstr ""
-
-#: backend.c:15002 backend.c:16189
-#, fuzzy
-msgid ""
-"Wait until your turn,\n"
-"or select 'Move Now'."
-msgstr "等待對手走棋"
-
-#: backend.c:15145
-msgid "Training mode off"
-msgstr "訓練模式已關閉"
-
-#: backend.c:15153
-msgid "Training mode on"
-msgstr "訓練模式已打開"
-
-#: backend.c:15156
-msgid "Already at end of game"
-msgstr "棋局已經結束"
-
-#: backend.c:15246
-msgid "Warning: You are still playing a game"
-msgstr "注意:你正在進行棋局"
-
-#: backend.c:15249
-msgid "Warning: You are still observing a game"
-msgstr "注意:你正在觀棋棋局"
-
-#: backend.c:15252
-msgid "Warning: You are still examining a game"
-msgstr "注意:你正在研究棋局"
-
-#: backend.c:15322
-msgid "Click clock to clear board"
-msgstr ""
-
-#: backend.c:15332
-msgid "Close ICS engine analyze..."
-msgstr ""
-
-#: backend.c:15662
-msgid "That square is occupied"
-msgstr "格子已有棋子"
-
-#: backend.c:15686 backend.c:15712
-msgid "There is no pending offer on this move"
-msgstr "該著法沒有待定的提議"
-
-#: backend.c:15748 backend.c:15759
-msgid "Your opponent is not out of time"
-msgstr "對手沒有超時"
-
-#: backend.c:15827
-msgid "You must make your move before offering a draw"
-msgstr "必須走完棋才能提和"
-
-#: backend.c:16171
-msgid "You are not examining a game"
-msgstr "沒有分析棋局"
-
-#: backend.c:16175
-msgid "You can't revert while pausing"
-msgstr "暫停時不能復原棋局"
-
-#: backend.c:16229 backend.c:16236
-msgid "It is your turn"
-msgstr "輪到你走棋"
-
-#: backend.c:16287 backend.c:16294 backend.c:16380 backend.c:16387
-#, fuzzy
-msgid "Wait until your turn."
-msgstr "等待對手走棋"
-
-#: backend.c:16299
-msgid "No hint available"
-msgstr "沒有可用的提示"
-
-#: backend.c:16314 backend.c:16345 ngamelist.c:365
-#, fuzzy
-msgid "Game list not loaded or empty"
-msgstr "尚未有棋局載入"
-
-#: backend.c:16352
-msgid "Book file exists! Try again for overwrite."
-msgstr ""
-
-#: backend.c:16833
-#, c-format
-msgid "Error writing to %s chess program"
-msgstr "發送訊息到%s國際象棋程式時出錯"
-
-#: backend.c:16836 backend.c:16867
-#, c-format
-msgid "%s program exits in draw position (%s)"
-msgstr ""
-
-#: backend.c:16862
-#, c-format
-msgid "Error: %s chess program (%s) exited unexpectedly"
-msgstr "錯誤:%s國際象棋程式(%s)異常終止"
-
-#: backend.c:16880
-#, c-format
-msgid "Error reading from %s chess program (%s)"
-msgstr "從%s國際象棋程式(%s)接收訊息時出錯"
-
-#: backend.c:17312
-#, c-format
-msgid "%s engine has too many options\n"
-msgstr ""
-
-#: backend.c:17468
-msgid "Displayed move is not current"
-msgstr "顯示的著法不是當前著法"
-
-#: backend.c:17477
-msgid "Could not parse move"
-msgstr "無法解析著法"
-
-#: backend.c:17602 backend.c:17624
-msgid "Both flags fell"
-msgstr "雙方都超時了"
-
-#: backend.c:17604
-msgid "White's flag fell"
-msgstr "紅方超時"
-
-#: backend.c:17626
-msgid "Black's flag fell"
-msgstr "黑方超時"
-
-#: backend.c:17757
-msgid "Clock adjustment not allowed in auto-flag mode"
-msgstr ""
-
-#: backend.c:18719
-msgid "Bad FEN position in clipboard"
-msgstr "剪貼簿的FEN盤面錯誤"
-
-#: book.c:598 book.c:874
-msgid "Polyglot book not valid"
-msgstr ""
-
-#: book.c:722
-msgid "Book Fault"
-msgstr ""
-
-#: book.c:877
-msgid "Hash keys are different"
-msgstr ""
-
-#: book.c:1053
-#, fuzzy
-msgid "Could not create book"
-msgstr "無法解析著法"
-
-#: dialogs.c:286
-#, fuzzy
-msgid "Tournament file:          "
-msgstr "封盤(J)   F7"
-
-#: dialogs.c:287
-msgid "For concurrent playing of tourney with multiple XBoards:"
-msgstr ""
-
-#: dialogs.c:288
-msgid "Sync after round"
-msgstr ""
-
-#: dialogs.c:289
-msgid "Sync after cycle"
-msgstr ""
-
-#: dialogs.c:290
-msgid "Tourney participants:"
-msgstr ""
-
-#: dialogs.c:291
-msgid "Select Engine:"
-msgstr ""
-
-#: dialogs.c:299
-msgid "Tourney type (0 = round-robin, 1 = gauntlet):"
-msgstr ""
-
-#: dialogs.c:300
-msgid "Number of tourney cycles (or Swiss rounds):"
-msgstr ""
-
-#: dialogs.c:301
-msgid "Default Number of Games in Match (or Pairing):"
-msgstr ""
-
-#: dialogs.c:302
-msgid "Pause between Match Games (msec):"
-msgstr ""
-
-#: dialogs.c:303
-msgid "Save Tourney Games on:"
-msgstr ""
-
-#: dialogs.c:304
-msgid "Game File with Opening Lines:"
-msgstr ""
-
-#: dialogs.c:305
-msgid "Game Number (-1 or -2 = Auto-Increment):"
-msgstr ""
-
-#: dialogs.c:306
-msgid "File with Start Positions:"
-msgstr ""
-
-#: dialogs.c:307
-msgid "Position Number (-1 or -2 = Auto-Increment):"
-msgstr ""
-
-#: dialogs.c:308
-msgid "Rewind Index after this many Games (0 = never):"
-msgstr ""
-
-#: dialogs.c:309
-msgid "Disable own engine books by default"
-msgstr ""
-
-#: dialogs.c:310 dialogs.c:1840
-msgid "Time Control"
-msgstr ""
-
-#: dialogs.c:311
-#, fuzzy
-msgid "Common Engine"
-msgstr "通用引擎設定(E)...   Alt+Shift+U"
-
-#: dialogs.c:312 dialogs.c:446
-msgid "General Options"
-msgstr "一般選項"
-
-#: dialogs.c:313
-msgid "Continue Later"
-msgstr ""
-
-#: dialogs.c:314
-msgid "Replace Engine"
-msgstr ""
-
-#: dialogs.c:315
-msgid "Upgrade Engine"
-msgstr ""
-
-#: dialogs.c:316
-msgid "Clone Tourney"
-msgstr ""
-
-#: dialogs.c:356
-msgid "First you must specify an existing tourney file to clone"
-msgstr ""
-
-#: dialogs.c:372 dialogs.c:1549
-msgid "# no engines are installed"
-msgstr ""
-
-#: dialogs.c:380
-msgid "Internal error: PARTICIPANTS set wrong"
-msgstr ""
-
-#: dialogs.c:388
-#, fuzzy
-msgid "Tournament Options"
-msgstr "聲音"
-
-#: dialogs.c:407
-msgid "Absolute Analysis Scores"
-msgstr ""
-
-#: dialogs.c:408
-msgid "Almost Always Queen (Detour Under-Promote)"
-msgstr ""
-
-#: dialogs.c:409 menus.c:729
-msgid "Animate Dragging"
-msgstr "動畫拖曳(D)"
-
-#: dialogs.c:410 menus.c:730
-msgid "Animate Moving"
-msgstr "動畫走棋(A)"
-
-#: dialogs.c:411 menus.c:731
-msgid "Auto Flag"
-msgstr "自動超時判負(F) Ctrl+Shift+F"
-
-#: dialogs.c:412 menus.c:732
-msgid "Auto Flip View"
-msgstr "自動翻轉棋盤(V)"
-
-#: dialogs.c:413 menus.c:733
-msgid "Blindfold"
-msgstr "盲棋(B)"
-
-#. TRANSLATORS: the drop menu is used to drop a piece, e.g. during bughouse or editing a position
-#: dialogs.c:415
-msgid "Drop Menu"
-msgstr ""
-
-#: dialogs.c:416
-msgid "Enable Variation Trees"
-msgstr ""
-
-#: dialogs.c:417
-msgid "Headers in Engine Output Window"
-msgstr ""
-
-#: dialogs.c:418
-msgid "Hide Thinking from Human"
-msgstr "與人對弈時隱藏思考細節"
-
-#: dialogs.c:419 menus.c:738
-msgid "Highlight Last Move"
-msgstr "標記上一著法(M)"
-
-#: dialogs.c:420
-msgid "Highlight with Arrow"
-msgstr "用箭頭突出移動"
-
-#: dialogs.c:421 menus.c:741
-msgid "One-Click Moving"
-msgstr "單擊移動(M)"
-
-#: dialogs.c:422
-msgid "Periodic Updates (in Analysis Mode)"
-msgstr "定期更新(分析模式)"
-
-#: dialogs.c:424
-msgid "Play Move(s) of Clicked PV (Analysis)"
-msgstr ""
-
-#: dialogs.c:425 dialogs.c:626 menus.c:743
-msgid "Ponder Next Move"
-msgstr "同步思考(N)"
-
-#: dialogs.c:426
-msgid "Popup Exit Messages"
-msgstr "離開時提示(P)"
-
-#: dialogs.c:427 menus.c:745
-msgid "Popup Move Errors"
-msgstr "提示錯誤著法(E)"
-
-#: dialogs.c:428
-#, fuzzy
-msgid "Scores in Move List"
-msgstr "取得著法列表(G)"
-
-#: dialogs.c:429
-msgid "Show Coordinates"
-msgstr "顯示坐標(C)"
-
-#: dialogs.c:430
-msgid "Show Target Squares"
-msgstr ""
-
-#: dialogs.c:431
-msgid "Sticky Windows"
-msgstr ""
-
-#: dialogs.c:432 menus.c:748
-msgid "Test Legality"
-msgstr "檢查著法合理性(L) Cl+Sh+L"
-
-#: dialogs.c:433
-msgid "Top-Level Dialogs"
-msgstr ""
-
-#: dialogs.c:434
-msgid "Flash Moves (0 = no flashing):"
-msgstr ""
-
-#: dialogs.c:435
-msgid "Flash Rate (high = fast):"
-msgstr ""
-
-#: dialogs.c:436
-msgid "Animation Speed (high = slow):"
-msgstr ""
-
-#: dialogs.c:437
-#, fuzzy
-msgid "Zoom factor in Evaluation Graph:"
-msgstr "審局圖"
-
-#: dialogs.c:457
-msgid "Normal"
-msgstr ""
-
-#: dialogs.c:458
-msgid "Makruk"
-msgstr ""
-
-#: dialogs.c:459
-msgid "FRC"
-msgstr ""
-
-#: dialogs.c:460
-msgid "Shatranj"
-msgstr ""
-
-#: dialogs.c:461
-msgid "Wild castle"
-msgstr ""
-
-#: dialogs.c:462
-#, fuzzy
-msgid "Knightmate"
-msgstr "馬"
-
-#: dialogs.c:463
-msgid "No castle"
-msgstr ""
-
-#: dialogs.c:464
-msgid "Cylinder *"
-msgstr ""
-
-#: dialogs.c:465
-msgid "3-checks"
-msgstr ""
-
-#: dialogs.c:466
-msgid "berolina *"
-msgstr ""
-
-#: dialogs.c:467
-msgid "atomic"
-msgstr ""
-
-#: dialogs.c:468
-msgid "two kings"
-msgstr ""
-
-#: dialogs.c:469
-msgid " "
-msgstr ""
-
-#: dialogs.c:470
-msgid "Spartan"
-msgstr ""
-
-#: dialogs.c:471
-msgid "Board size ( -1 = default for selected variant):"
-msgstr ""
-
-#: dialogs.c:472
-msgid "Number of Board Ranks:"
-msgstr ""
-
-#: dialogs.c:473
-msgid "Number of Board Files:"
-msgstr ""
-
-#: dialogs.c:474
-msgid "Holdings Size:"
-msgstr ""
-
-#: dialogs.c:476
-msgid ""
-"Variants marked with * can only be played\n"
-"with legality testing off."
-msgstr ""
-
-#: dialogs.c:478
-msgid "ASEAN"
-msgstr ""
-
-#: dialogs.c:479
-msgid "Great Shatranj (10x8)"
-msgstr ""
-
-#: dialogs.c:480
-msgid "Seirawan"
-msgstr ""
-
-#: dialogs.c:481
-msgid "Falcon (10x8)"
-msgstr ""
-
-#: dialogs.c:482
-msgid "Superchess"
-msgstr ""
-
-#: dialogs.c:483
-msgid "Capablanca (10x8)"
-msgstr ""
-
-#: dialogs.c:484
-msgid "Crazyhouse"
-msgstr ""
-
-#: dialogs.c:485
-msgid "Gothic (10x8)"
-msgstr ""
-
-#: dialogs.c:486
-msgid "Bughouse"
-msgstr ""
-
-#: dialogs.c:487
-msgid "Janus (10x8)"
-msgstr ""
-
-#: dialogs.c:488
-msgid "Suicide"
-msgstr ""
-
-#: dialogs.c:489
-msgid "CRC (10x8)"
-msgstr ""
-
-#: dialogs.c:490
-msgid "give-away"
-msgstr ""
-
-#: dialogs.c:491
-msgid "grand (10x10)"
-msgstr ""
-
-#: dialogs.c:492
-msgid "losers"
-msgstr ""
-
-#: dialogs.c:493
-msgid "shogi (9x9)"
-msgstr ""
-
-#: dialogs.c:494
-msgid "fairy"
-msgstr ""
-
-#: dialogs.c:495
-msgid "xiangqi (9x10)"
-msgstr ""
-
-#: dialogs.c:496
-msgid "mighty lion"
-msgstr ""
-
-#: dialogs.c:497
-msgid "courier (12x8)"
-msgstr ""
-
-#: dialogs.c:498
-msgid "elven chess (10x10)"
-msgstr ""
-
-#: dialogs.c:499
-msgid "chu shogi (12x12)"
-msgstr ""
-
-#: dialogs.c:543
-#, c-format
-msgid "Warning: second engine (%s) does not support this!"
-msgstr "警告: 第二個引擎(%s) 不支持此!"
-
-#: dialogs.c:572
-#, c-format
-msgid "Only bughouse is not available in viewer mode."
-msgstr ""
-
-#: dialogs.c:573
-#, c-format
-msgid ""
-"All variants not supported by the first engine\n"
-"(currently %s) are disabled."
-msgstr ""
-
-#: dialogs.c:595
-msgid "New Variant"
-msgstr "變種"
-
-#: dialogs.c:627
-msgid "Maximum Number of CPUs per Engine:"
-msgstr "最大CPU數"
-
-#: dialogs.c:628
-msgid "Polygot Directory:"
-msgstr ""
-
-#: dialogs.c:629
-msgid "Hash-Table Size (MB):"
-msgstr "雜湊表大小(MB)"
-
-#: dialogs.c:630
-#, fuzzy
-msgid "EGTB Path:"
-msgstr "EGTB 路徑"
-
-#: dialogs.c:631
-msgid "EGTB Cache Size (MB):"
-msgstr "EGTB 大小(MB)"
-
-#: dialogs.c:632
-msgid "Use GUI Book"
-msgstr ""
-
-#: dialogs.c:633
-msgid "Opening-Book Filename:"
-msgstr ""
-
-#: dialogs.c:634
-msgid "Book Depth (moves):"
-msgstr "庫著法深度"
-
-#: dialogs.c:635
-msgid "Book Variety (0) vs. Strength (100):"
-msgstr "庫變例"
-
-#: dialogs.c:636
-msgid "Engine #1 Has Own Book"
-msgstr "引擎1有自用庫"
-
-#: dialogs.c:637
-msgid "Engine #2 Has Own Book          "
-msgstr ""
-
-#: dialogs.c:648
-msgid "Common Engine Settings"
-msgstr "通用引擎設定"
-
-#: dialogs.c:654
-msgid "Detect all Mates"
-msgstr "檢測將殺(M)"
-
-#: dialogs.c:655
-msgid "Verify Engine Result Claims"
-msgstr "驗證引擎聲明(V)"
-
-#: dialogs.c:656
-msgid "Draw if Insufficient Mating Material"
-msgstr "子力不足時判和(I)"
-
-#: dialogs.c:657
-msgid "Adjudicate Trivial Draws (3-Move Delay)"
-msgstr "簡易和棋判決(T)"
-
-#: dialogs.c:658
-msgid "N-Move Rule:"
-msgstr ""
-
-#: dialogs.c:659
-msgid "N-fold Repeats:"
-msgstr ""
-
-#: dialogs.c:660
-msgid "Draw after N Moves Total:"
-msgstr "幾著後判和"
-
-#: dialogs.c:661
-msgid "Win / Loss Threshold:"
-msgstr "輸/贏判決門檻"
-
-#: dialogs.c:662
-msgid "Negate Score of Engine #1"
-msgstr "引擎 #1 是絕對分數"
-
-#: dialogs.c:663
-msgid "Negate Score of Engine #2"
-msgstr "引擎 #2 是絕對分數"
-
-#: dialogs.c:670
-#, fuzzy
-msgid "Adjudicate non-ICS Games"
-msgstr "裁決紅贏 (W)"
-
-#: dialogs.c:683
-msgid "Auto-Kibitz"
-msgstr "自動\"kibitz\"(A)"
-
-#: dialogs.c:684
-msgid "Auto-Comment"
-msgstr "自動註解(A)"
-
-#: dialogs.c:685
-msgid "Auto-Observe"
-msgstr "自動觀棋(O)"
-
-#: dialogs.c:686
-msgid "Auto-Raise Board"
-msgstr "自動改變棋盤大小(R)"
-
-#: dialogs.c:687
-msgid "Auto-Create Logon Script"
-msgstr ""
-
-#: dialogs.c:688
-msgid "Background Observe while Playing"
-msgstr "背景觀察(v)"
-
-#: dialogs.c:689
-msgid "Dual Board for Background-Observed Game"
-msgstr "雙棋盤(D)"
-
-#: dialogs.c:690
-msgid "Get Move List"
-msgstr "取得著法列表(G)"
-
-#: dialogs.c:691
-msgid "Quiet Play"
-msgstr "落子無聲(Q)"
-
-#: dialogs.c:692
-msgid "Seek Graph"
-msgstr "可選對手圖表(k)"
-
-#: dialogs.c:693
-msgid "Auto-Refresh Seek Graph"
-msgstr "自動刷新圖表(R)"
-
-#: dialogs.c:694
-msgid "Auto-InputBox PopUp"
-msgstr ""
-
-#: dialogs.c:695
-msgid "Quit after game"
-msgstr ""
-
-#: dialogs.c:696
-msgid "Premove"
-msgstr "預先走棋(P)"
-
-#: dialogs.c:697
-msgid "Premove for White"
-msgstr ""
-
-#: dialogs.c:698
-msgid "First White Move:"
-msgstr "紅方先走(W)"
-
-#: dialogs.c:699
-msgid "Premove for Black"
-msgstr ""
-
-#: dialogs.c:700
-msgid "First Black Move:"
-msgstr "黑方先走(B)"
-
-#: dialogs.c:702
-msgid "Alarm"
-msgstr "提示"
-
-#: dialogs.c:703
-msgid "Alarm Time (msec):"
-msgstr ""
-
-#: dialogs.c:705
-msgid "Colorize Messages"
-msgstr ""
-
-#: dialogs.c:706
-msgid "Shout Text Colors:"
-msgstr ""
-
-#: dialogs.c:707
-msgid "S-Shout Text Colors:"
-msgstr ""
-
-#: dialogs.c:708
-msgid "Channel #1 Text Colors:"
-msgstr ""
-
-#: dialogs.c:709
-msgid "Other Channel Text Colors:"
-msgstr ""
-
-#: dialogs.c:710
-msgid "Kibitz Text Colors:"
-msgstr ""
-
-#: dialogs.c:711
-msgid "Tell Text Colors:"
-msgstr ""
-
-#: dialogs.c:712
-msgid "Challenge Text Colors:"
-msgstr ""
-
-#: dialogs.c:713
-msgid "Request Text Colors:"
-msgstr ""
-
-#: dialogs.c:714
-msgid "Seek Text Colors:"
-msgstr ""
-
-#: dialogs.c:715
-msgid "Other Text Colors:"
-msgstr ""
-
-#: dialogs.c:722
-msgid "ICS Options"
-msgstr "ICS設定"
-
-#: dialogs.c:727
-msgid "Exact position match"
-msgstr ""
-
-#: dialogs.c:727
-msgid "Shown position is subset"
-msgstr ""
-
-#: dialogs.c:727
-msgid "Same material with exactly same Pawn chain"
-msgstr ""
-
-#: dialogs.c:728
-msgid "Same material"
-msgstr ""
-
-#: dialogs.c:728
-msgid "Material range (top board half optional)"
-msgstr ""
-
-#: dialogs.c:728
-msgid "Material difference (optional stuff balanced)"
-msgstr ""
-
-#: dialogs.c:743
-msgid "Auto-Display Tags"
-msgstr ""
-
-#: dialogs.c:744
-msgid "Auto-Display Comment"
-msgstr ""
-
-#: dialogs.c:745
-msgid ""
-"Auto-Play speed of loaded games\n"
-"(0 = instant, -1 = off):"
-msgstr ""
-
-#: dialogs.c:746
-msgid "Seconds per Move:"
-msgstr ""
-
-#: dialogs.c:747
-msgid ""
-"\n"
-"options to use in game-viewer mode:"
-msgstr ""
-
-#: dialogs.c:749
-msgid ""
-"\n"
-"Thresholds for position filtering in game list:"
-msgstr ""
-
-#: dialogs.c:750
-msgid "Elo of strongest player at least:"
-msgstr ""
-
-#: dialogs.c:751
-msgid "Elo of weakest player at least:"
-msgstr ""
-
-#: dialogs.c:752
-#, fuzzy
-msgid "No games before year:"
-msgstr "尚未有棋局載入"
-
-#: dialogs.c:753
-msgid "Minimum nr consecutive positions:"
-msgstr ""
-
-#: dialogs.c:755
-msgid "Search mode:"
-msgstr ""
-
-#: dialogs.c:756
-msgid "Also match reversed colors"
-msgstr ""
-
-#: dialogs.c:757
-msgid "Also match left-right flipped position"
-msgstr ""
-
-#: dialogs.c:766
-msgid "Load Game Options"
-msgstr "載入棋局選項"
-
-#: dialogs.c:778
-msgid "Auto-Save Games"
-msgstr ""
-
-#: dialogs.c:779
-msgid "Own Games Only"
-msgstr ""
-
-#: dialogs.c:780
-msgid "Save Games on File:"
-msgstr ""
-
-#: dialogs.c:781
-msgid "Save Final Positions on File:"
-msgstr ""
-
-#: dialogs.c:782
-msgid "PGN Event Header:"
-msgstr ""
-
-#: dialogs.c:783
-msgid "Old Save Style (as opposed to PGN)"
-msgstr ""
-
-#: dialogs.c:784
-msgid "Include Number Tag in tourney PGN"
-msgstr ""
-
-#: dialogs.c:785
-msgid "Save Score/Depth Info in PGN"
-msgstr ""
-
-#: dialogs.c:786
-msgid "Save Out-of-Book Info in PGN           "
-msgstr ""
-
-#: dialogs.c:793
-msgid "Save Game Options"
-msgstr "儲存棋局選項"
-
-#: dialogs.c:802
-msgid "No Sound"
-msgstr "無聲"
-
-#: dialogs.c:803
-msgid "Default Beep"
-msgstr "預設聲音"
-
-#: dialogs.c:804
-msgid "Above WAV File"
-msgstr ""
-
-#: dialogs.c:805
-msgid "Car Horn"
-msgstr ""
-
-#: dialogs.c:806
-msgid "Cymbal"
-msgstr ""
-
-#: dialogs.c:807
-msgid "Ding"
-msgstr ""
-
-#: dialogs.c:808
-msgid "Gong"
-msgstr ""
-
-#: dialogs.c:809
-msgid "Laser"
-msgstr ""
-
-#: dialogs.c:810
-msgid "Penalty"
-msgstr ""
-
-#: dialogs.c:811
-msgid "Phone"
-msgstr ""
-
-#: dialogs.c:812
-msgid "Pop"
-msgstr ""
-
-#: dialogs.c:813
-msgid "Roar"
-msgstr ""
-
-#: dialogs.c:814
-msgid "Slap"
-msgstr ""
-
-#: dialogs.c:815
-msgid "Wood Thunk"
-msgstr ""
-
-#: dialogs.c:817
-msgid "User File"
-msgstr ""
-
-#: dialogs.c:840
-msgid "User WAV File:"
-msgstr ""
-
-#: dialogs.c:841
-msgid "Sound Program:"
-msgstr ""
-
-#: dialogs.c:842
-msgid "Try-Out Sound:"
-msgstr ""
-
-#: dialogs.c:843
-msgid "Play"
-msgstr "播放"
-
-#: dialogs.c:844
-msgid "Move:"
-msgstr ""
-
-#: dialogs.c:845
-msgid "Win:"
-msgstr ""
-
-#: dialogs.c:846
-msgid "Lose:"
-msgstr ""
-
-#: dialogs.c:847
-msgid "Draw:"
-msgstr ""
-
-#: dialogs.c:848
-msgid "Unfinished:"
-msgstr ""
-
-#: dialogs.c:849
-msgid "Alarm:"
-msgstr ""
-
-#: dialogs.c:850
-msgid "Challenge:"
-msgstr ""
-
-#: dialogs.c:852
-msgid "Sounds Directory:"
-msgstr ""
-
-#: dialogs.c:853
-msgid "Shout:"
-msgstr ""
-
-#: dialogs.c:854
-msgid "S-Shout:"
-msgstr ""
-
-#: dialogs.c:855
-msgid "Channel:"
-msgstr ""
-
-#: dialogs.c:856
-msgid "Channel 1:"
-msgstr ""
-
-#: dialogs.c:857
-msgid "Tell:"
-msgstr ""
-
-#: dialogs.c:858
-msgid "Kibitz:"
-msgstr ""
-
-#: dialogs.c:859
-msgid "Request:"
-msgstr ""
-
-#: dialogs.c:860
-msgid "Lion roar:"
-msgstr ""
-
-#: dialogs.c:861
-msgid "Seek:"
-msgstr ""
-
-#: dialogs.c:877
-msgid "Sound Options"
-msgstr "聲音"
-
-#: dialogs.c:893
-msgid "Selectable themes:"
-msgstr ""
-
-#: dialogs.c:895
-msgid "New name for current theme:"
-msgstr ""
-
-#: dialogs.c:898
-msgid "White Piece Color:"
-msgstr ""
-
-#. TRANSLATORS: R = single letter for the color red
-#: dialogs.c:901 dialogs.c:910 dialogs.c:916 dialogs.c:922 dialogs.c:928
-#: dialogs.c:934
-msgid "R"
-msgstr ""
-
-#. TRANSLATORS: G = single letter for the color green
-#: dialogs.c:903 dialogs.c:911 dialogs.c:917 dialogs.c:923 dialogs.c:929
-#: dialogs.c:935
-msgid "G"
-msgstr ""
-
-#. TRANSLATORS: B = single letter for the color blue
-#: dialogs.c:905 dialogs.c:912 dialogs.c:918 dialogs.c:924 dialogs.c:930
-#: dialogs.c:936 dialogs.c:1650 dialogs.c:1656 dialogs.c:1662 dialogs.c:1668
-#: dialogs.c:1674 dialogs.c:1680 dialogs.c:1686
-msgid "B"
-msgstr ""
-
-#. TRANSLATORS: D = single letter to make a color darker
-#: dialogs.c:907 dialogs.c:913 dialogs.c:919 dialogs.c:925 dialogs.c:931
-#: dialogs.c:937
-msgid "D"
-msgstr ""
-
-#: dialogs.c:908
-msgid "Black Piece Color:"
-msgstr "黑子"
-
-#: dialogs.c:914
-msgid "Light Square Color:"
-msgstr "白格"
-
-#: dialogs.c:920
-msgid "Dark Square Color:"
-msgstr "黑格"
-
-#: dialogs.c:926
-msgid "Highlight Color:"
-msgstr "格子標記"
-
-#: dialogs.c:932
-msgid "Premove Highlight Color:"
-msgstr "預先走棋標記"
-
-#: dialogs.c:938
-msgid "Flip Pieces Shogi Style        (Colored buttons restore default)"
-msgstr ""
-
-#: dialogs.c:940
-msgid "Mono Mode"
-msgstr "黑白"
-
-#: dialogs.c:941
-msgid "Logo Size (0=off, requires restart):"
-msgstr ""
-
-#: dialogs.c:942
-msgid "Line Gap (-1 = default for board size):"
-msgstr ""
-
-#: dialogs.c:943
-msgid "Use Board Textures"
-msgstr ""
-
-#: dialogs.c:944
-msgid "Light-Squares Texture File:"
-msgstr ""
-
-#: dialogs.c:945
-msgid "Dark-Squares Texture File:"
-msgstr ""
-
-#: dialogs.c:946
-msgid "Use external piece bitmaps with their own colors"
-msgstr ""
-
-#: dialogs.c:947
-msgid "Directory with Pieces Images:"
-msgstr ""
-
-#: dialogs.c:1018
-msgid "# no themes are defined"
-msgstr ""
-
-#: dialogs.c:1030
-msgid "Board Options"
-msgstr "棋盤選項"
-
-#: dialogs.c:1101 menus.c:646
-msgid "ICS text menu"
-msgstr ""
-
-#: dialogs.c:1130
-msgid "clear"
-msgstr ""
-
-#: dialogs.c:1131
-msgid "save changes"
-msgstr ""
-
-#: dialogs.c:1229
-#, fuzzy
-msgid "add next move"
-msgstr "同步思考(N)"
-
-#: dialogs.c:1230
-msgid "commit changes"
-msgstr ""
-
-#: dialogs.c:1253
-#, fuzzy
-msgid "Edit book"
-msgstr "編輯(E)"
-
-#: dialogs.c:1270 dialogs.c:1277 menus.c:648
-msgid "Tags"
-msgstr "編輯標籤(T)"
-
-#: dialogs.c:1285
-#, fuzzy
-msgid "Registered Engines"
-msgstr "引擎 #1 是絕對分數"
-
-#: dialogs.c:1401
-msgid "ICS input box"
-msgstr ""
-
-#: dialogs.c:1433
-msgid "Type a move"
-msgstr ""
-
-#: dialogs.c:1459
-msgid "Engine has no options"
-msgstr ""
-
-#: dialogs.c:1461
-msgid "Engine Settings"
-msgstr ""
-
-#: dialogs.c:1502
-msgid "Select engine from list:"
-msgstr ""
-
-#: dialogs.c:1505
-msgid "or specify one below:"
-msgstr ""
-
-#: dialogs.c:1506
-msgid "Nickname (optional):"
-msgstr ""
-
-#: dialogs.c:1507
-msgid "Use nickname in PGN player tags of engine-engine games"
-msgstr ""
-
-#: dialogs.c:1508
-msgid "Engine Directory:"
-msgstr ""
-
-#: dialogs.c:1509
-msgid "Engine Command:"
-msgstr ""
-
-#: dialogs.c:1510
-msgid "(Directory will be derived from engine path when empty)"
-msgstr ""
-
-#: dialogs.c:1511
-msgid "UCI"
-msgstr ""
-
-#: dialogs.c:1512
-msgid "USI/UCCI (uses specified -uxiAdapter)"
-msgstr ""
-
-#: dialogs.c:1513
-msgid "WB protocol v1 (do not wait for engine features)"
-msgstr ""
-
-#: dialogs.c:1514
-msgid "Must not use GUI book"
-msgstr ""
-
-#: dialogs.c:1515
-msgid "Add this engine to the list"
-msgstr ""
-
-#: dialogs.c:1516
-msgid "Force current variant with this engine"
-msgstr ""
-
-#: dialogs.c:1570
-msgid "Load first engine"
-msgstr ""
-
-#: dialogs.c:1576
-msgid "Load second engine"
-msgstr ""
-
-#: dialogs.c:1599
-msgid "shuffle"
-msgstr ""
-
-#: dialogs.c:1600
-msgid "Fischer castling"
-msgstr ""
-
-#: dialogs.c:1601
-msgid "Start-position number:"
-msgstr "啟動位置號碼(S)"
-
-#: dialogs.c:1602
-#, fuzzy
-msgid "randomize"
-msgstr "隨機"
-
-#: dialogs.c:1603
-msgid "pick fixed"
-msgstr ""
-
-#: dialogs.c:1620
-msgid "New Shuffle Game"
-msgstr "洗牌遊戲(u)..."
-
-#: dialogs.c:1647
-msgid "Clocks (requires restart):"
-msgstr ""
-
-#: dialogs.c:1648 dialogs.c:1654 dialogs.c:1660 dialogs.c:1666 dialogs.c:1672
-#: dialogs.c:1678 dialogs.c:1684
-msgid "+"
-msgstr ""
-
-#: dialogs.c:1649 dialogs.c:1655 dialogs.c:1661 dialogs.c:1667 dialogs.c:1673
-#: dialogs.c:1679 dialogs.c:1685
-msgid "-"
-msgstr ""
-
-#: dialogs.c:1651 dialogs.c:1657 dialogs.c:1663 dialogs.c:1669 dialogs.c:1675
-#: dialogs.c:1681 dialogs.c:1687
-msgid "I"
-msgstr ""
-
-#: dialogs.c:1652 dialogs.c:1658 dialogs.c:1664 dialogs.c:1670 dialogs.c:1676
-#: dialogs.c:1682 dialogs.c:1688
-msgid "*"
-msgstr ""
-
-#: dialogs.c:1653
-msgid "Message (above board):"
-msgstr ""
-
-#: dialogs.c:1659
-msgid "ICS Chat/Console:"
-msgstr ""
-
-#: dialogs.c:1665
-msgid "Edit tags / book / engine list:"
-msgstr ""
-
-#: dialogs.c:1671
-#, fuzzy
-msgid "Edit comments:"
-msgstr "編輯註解"
-
-#: dialogs.c:1677
-#, fuzzy
-msgid "Move history / Engine Output:"
-msgstr "引擎輸出"
-
-#: dialogs.c:1683
-#, fuzzy
-msgid "Game list:"
-msgstr "遊戲列表..."
-
-#: dialogs.c:1689
-msgid ""
-"\n"
-"The * buttons will set the font to the one selected below:"
-msgstr ""
-
-#: dialogs.c:1743
-msgid "This only works in the GTK build"
-msgstr ""
-
-#: dialogs.c:1744
-msgid "Fonts"
-msgstr ""
-
-#: dialogs.c:1764
-msgid "classical"
-msgstr ""
-
-#: dialogs.c:1765
-msgid "incremental"
-msgstr ""
-
-#: dialogs.c:1766
-msgid "fixed max"
-msgstr ""
-
-#: dialogs.c:1767
-msgid "Divide entered times by 60"
-msgstr ""
-
-#: dialogs.c:1768
-msgid "Moves per session:"
-msgstr ""
-
-#: dialogs.c:1769
-msgid "Initial time (min):"
-msgstr ""
-
-#: dialogs.c:1770
-msgid "Increment or max (sec/move):"
-msgstr ""
-
-#: dialogs.c:1771
-#, fuzzy
-msgid "Time-Odds factors:"
-msgstr "時間倍數"
-
-#: dialogs.c:1772
-#, fuzzy
-msgid "Engine #1"
-msgstr "引擎輸出"
-
-#: dialogs.c:1773
-#, fuzzy
-msgid "Engine #2 / Human"
-msgstr "引擎1有自用庫"
-
-#: dialogs.c:1814 dialogs.c:1817 dialogs.c:1822 dialogs.c:1823
-#: gtk/xoptions.c:183
-msgid "Unused"
-msgstr ""
-
-#: dialogs.c:1832
-msgid "Changing time control during a game is not implemented"
-msgstr ""
-
-#: dialogs.c:1869
-msgid "Error writing to chess program"
-msgstr "發送訊息給國際象棋程式時出錯"
-
-#: dialogs.c:1937 gtk/xoptions.c:1775 xaw/xoptions.c:1341
-#, fuzzy
-msgid "Cancel"
-msgstr "取消(C)"
-
-#: dialogs.c:1942 dialogs.c:2695 dialogs.c:2699
-msgid "King"
-msgstr "王"
-
-#: dialogs.c:1945
-msgid "Captain"
-msgstr ""
-
-#: dialogs.c:1946
-msgid "Lieutenant"
-msgstr ""
-
-#: dialogs.c:1947
-msgid "General"
-msgstr "一般選項(G)..."
-
-#: dialogs.c:1948
-msgid "Warlord"
-msgstr ""
-
-#: dialogs.c:1950 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Knight"
-msgstr "馬"
-
-#: dialogs.c:1951 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Bishop"
-msgstr "象"
-
-#: dialogs.c:1952 dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Rook"
-msgstr "車"
-
-#: dialogs.c:1956 dialogs.c:2696 dialogs.c:2700
-msgid "Archbishop"
-msgstr "國師"
-
-#: dialogs.c:1957 dialogs.c:2696 dialogs.c:2700
-msgid "Chancellor"
-msgstr "宰相"
-
-#: dialogs.c:1959 dialogs.c:2695 dialogs.c:2699 dialogs.c:2717
-msgid "Queen"
-msgstr "后"
-
-#: dialogs.c:1961
-msgid "Lion"
-msgstr ""
-
-#: dialogs.c:1965
-msgid "Defer"
-msgstr ""
-
-#: dialogs.c:1966 dialogs.c:2696 dialogs.c:2700
-msgid "Promote"
-msgstr "升變"
-
-#: dialogs.c:2023
-msgid "Chats:"
-msgstr ""
-
-#: dialogs.c:2024 dialogs.c:2025 dialogs.c:2026 dialogs.c:2027 dialogs.c:2028
-#: dialogs.c:2134 dialogs.c:2199 dialogs.c:2231
-#, fuzzy
-msgid "New Chat"
-msgstr "變種"
-
-#: dialogs.c:2031
-msgid "Chat partner:"
-msgstr ""
-
-#: dialogs.c:2032
-msgid "End Chat"
-msgstr ""
-
-#: dialogs.c:2033
-msgid "Hide"
-msgstr ""
-
-#: dialogs.c:2260
-#, fuzzy
-msgid "ICS Interaction"
-msgstr "ICS設定"
-
-#: dialogs.c:2345
-msgid "factory"
-msgstr ""
-
-#: dialogs.c:2346
-msgid "up"
-msgstr "向上"
-
-#: dialogs.c:2347
-msgid "down"
-msgstr "向下"
-
-#: dialogs.c:2366
-msgid "No tag selected"
-msgstr ""
-
-#: dialogs.c:2397
-#, fuzzy
-msgid "Game-list options"
-msgstr "載入棋局選項"
-
-#: dialogs.c:2475 dialogs.c:2489
-msgid "Error"
-msgstr "錯誤"
-
-#: dialogs.c:2518
-msgid "Fatal Error"
-msgstr "嚴重錯誤"
-
-#: dialogs.c:2518
-msgid "Exiting"
-msgstr "離開"
-
-#: dialogs.c:2529
-msgid "Information"
-msgstr "資訊"
-
-#: dialogs.c:2536
-msgid "Note"
-msgstr "註解"
-
-#: dialogs.c:2694 dialogs.c:2987 dialogs.c:2990
-msgid "White"
-msgstr "紅方"
-
-#: dialogs.c:2694 dialogs.c:2698 dialogs.c:2717
-msgid "Pawn"
-msgstr "兵"
-
-#: dialogs.c:2695 dialogs.c:2699
-msgid "Elephant"
-msgstr "象"
-
-#: dialogs.c:2695 dialogs.c:2699
-msgid "Cannon"
-msgstr "炮"
-
-#: dialogs.c:2696 dialogs.c:2700
-msgid "Demote"
-msgstr "降級"
-
-#: dialogs.c:2697 dialogs.c:2701
-msgid "Empty square"
-msgstr "清空格子"
-
-#: dialogs.c:2697 dialogs.c:2701
-msgid "Clear board"
-msgstr "清空棋盤"
-
-#: dialogs.c:2698 dialogs.c:2999 dialogs.c:3002
-msgid "Black"
-msgstr "黑方"
-
-#: dialogs.c:2798
-#, fuzzy
-msgid "_File"
-msgstr "檔案(F)"
-
-#: dialogs.c:2799
-#, fuzzy
-msgid "_Edit"
-msgstr "編輯(E)"
-
-#: dialogs.c:2800
-msgid "_View"
-msgstr ""
-
-#: dialogs.c:2801
-#, fuzzy
-msgid "_Mode"
-msgstr "模式(M)"
-
-#: dialogs.c:2802
-#, fuzzy
-msgid "_Action"
-msgstr "行為(A)"
-
-#: dialogs.c:2803
-#, fuzzy
-msgid "E_ngine"
-msgstr "引擎輸出"
-
-#: dialogs.c:2804
-#, fuzzy
-msgid "_Options"
-msgstr "選項(O)"
-
-#: dialogs.c:2805
-#, fuzzy
-msgid "_Help"
-msgstr "說明(H)"
-
-#: dialogs.c:2815
-msgid "<<"
-msgstr ""
-
-#: dialogs.c:2816
-msgid "<"
-msgstr ""
-
-#: dialogs.c:2818
-msgid ">"
-msgstr ""
-
-#: dialogs.c:2819
-msgid ">>"
-msgstr ""
-
-#: dialogs.c:3107
-msgid "Directories:"
-msgstr ""
-
-#: dialogs.c:3108
-#, fuzzy
-msgid "Files:"
-msgstr "檔案(F)"
-
-#: dialogs.c:3109
-msgid "by name"
-msgstr ""
-
-#: dialogs.c:3110
-msgid "by type"
-msgstr ""
-
-#: dialogs.c:3113
-#, fuzzy
-msgid "Filename:"
-msgstr "過濾器"
-
-#: dialogs.c:3114
-msgid "New directory"
-msgstr ""
-
-#: dialogs.c:3115
-#, fuzzy
-msgid "File type:"
-msgstr "過濾器"
-
-#: dialogs.c:3190
-#, fuzzy
-msgid "Contents of"
-msgstr "編輯註解(C) *.*"
-
-#: dialogs.c:3216
-msgid "  next page"
-msgstr ""
-
-#: dialogs.c:3233
-msgid "FIRST TYPE DIRECTORY NAME HERE"
-msgstr ""
-
-#: dialogs.c:3234
-msgid "TRY ANOTHER NAME"
-msgstr ""
-
-#: draw.c:405
-msgid ""
-"No default pieces installed!\n"
-"Select your own using '-pieceImageDirectory'."
-msgstr ""
-
-#: engineoutput.c:112 menus.c:642
-#, fuzzy, c-format
-msgid "Engine Output"
-msgstr "引擎輸出"
-
-#: engineoutput.c:122
-#, c-format
-msgid "%s (%d reversible ply)"
-msgid_plural "%s (%d reversible plies)"
-msgstr[0] ""
-msgstr[1] ""
-
-#: engineoutput.c:565 engineoutput.c:568 nengineoutput.c:83 nengineoutput.c:91
-msgid "NPS"
-msgstr "NPS"
-
-#: gamelist.c:379
-#, fuzzy, c-format
-msgid "Reading game file (%d)"
-msgstr "棋局檔案錯誤"
-
-#: gtk/xboard.c:979 xaw/xboard.c:1074
-#, c-format
-msgid "%s: can't cd to CHESSDIR: "
-msgstr ""
-
-#: gtk/xboard.c:988 xaw/xboard.c:1083
-#, c-format
-msgid "Failed to open file '%s'\n"
-msgstr ""
-
-#: gtk/xboard.c:1003 xaw/xboard.c:1092
-msgid "Recompile with larger BOARD_RANKS or BOARD_FILES to support this size"
-msgstr ""
-
-#: gtk/xboard.c:1022 xaw/xboard.c:1124
-#, c-format
-msgid "%s: bad boardSize syntax %s\n"
-msgstr ""
-
-#: gtk/xboard.c:1063 xaw/xboard.c:1163
-#, c-format
-msgid "%s: unrecognized boardSize name %s\n"
-msgstr ""
-
-#: gtk/xboard.c:1107 xaw/xboard.c:1200
-#, c-format
-msgid "%s: too few colors available; trying monochrome mode\n"
-msgstr ""
-
-#: gtk/xboard.c:1421 xaw/xboard.c:1492
-#, c-format
-msgid "Unable to create font set for %s.\n"
-msgstr ""
-
-#: gtk/xboard.c:1446 xaw/xboard.c:1515
-#, c-format
-msgid "%s: no fonts match pattern %s\n"
-msgstr ""
-
-#: gtk/xboard.c:1914 xaw/xboard.c:2007
-msgid "Can't open temp file"
-msgstr ""
-
-#: gtk/xboard.c:2422
-#, fuzzy
-msgid "Failed to open file"
-msgstr "呼叫cmail失敗"
-
-#: gtk/xoptions.c:1498
-msgid "Browse"
-msgstr ""
-
-#: gtk/xoptions.c:1772 xaw/xoptions.c:1337
-msgid "OK"
-msgstr "確定"
-
-#: menus.c:136
-msgid "Load game file name?"
-msgstr ""
-
-#: menus.c:183
-msgid "Load position file name?"
-msgstr ""
-
-#: menus.c:189 menus.c:582
-msgid "Save game file name?"
-msgstr ""
-
-#: menus.c:198
-msgid "Save position file name?"
-msgstr ""
-
-#: menus.c:355
-msgid " (with Zippy code)"
-msgstr ""
-
-#: menus.c:360
-#, c-format
-msgid ""
-"%s%s\n"
-"\n"
-"Copyright 1991 Digital Equipment Corporation\n"
-"Enhancements Copyright 1992-2016 Free Software Foundation\n"
-"Enhancements Copyright 2005 Alessandro Scotti\n"
-"\n"
-"%s is free software and carries NO WARRANTY;see the file COPYING for more "
-"information.\n"
-"\n"
-"Visit XBoard on the web at: http://www.gnu.org/software/xboard/\n"
-"Check out the newest features at: http://www.gnu.org/software/xboard/"
-"whats_new.html\n"
-"\n"
-"Report bugs via email at: <bug-xboard@gnu.org>\n"
-"\n"
-msgstr ""
-
-#: menus.c:371 menus.c:765
-msgid "About XBoard"
-msgstr "關於XBoard(A)"
-
-#: menus.c:593
-#, fuzzy
-msgid "New Game"
-msgstr "洗牌遊戲(u)..."
-
-#: menus.c:594
-#, fuzzy
-msgid "New Shuffle Game..."
-msgstr "洗牌遊戲(u)..."
-
-#: menus.c:595
-#, fuzzy
-msgid "New Variant..."
-msgstr "變種"
-
-#: menus.c:597
-#, fuzzy
-msgid "Load Game"
-msgstr "載入棋局選項(L)...   Alt+Shift+L"
-
-#: menus.c:598
-#, fuzzy
-msgid "Load Position"
-msgstr "盤面檔案錯誤"
-
-#: menus.c:599
-#, fuzzy
-msgid "Next Position"
-msgstr "盤面檔案錯誤"
-
-#: menus.c:600
-#, fuzzy
-msgid "Prev Position"
-msgstr "升變"
-
-#: menus.c:602
-#, fuzzy
-msgid "Save Game"
-msgstr "儲存棋局選項(S)...   Alt+Shift+S"
-
-#: menus.c:603
-#, fuzzy
-msgid "Save Position"
-msgstr "儲存局面(A)...   Ctrl+Shift+S"
-
-#: menus.c:604
-#, fuzzy
-msgid "Save Selected Games"
-msgstr "儲存棋局選項(S)...   Alt+Shift+S"
-
-#: menus.c:605
-#, fuzzy
-msgid "Save Games as Book"
-msgstr "儲存棋局選項(S)...   Alt+Shift+S"
-
-#: menus.c:607
-msgid "Mail Move"
-msgstr ""
-
-#: menus.c:608
-msgid "Reload CMail Message"
-msgstr ""
-
-#: menus.c:610
-msgid "Quit "
-msgstr ""
-
-#: menus.c:615
-#, fuzzy
-msgid "Copy Game"
-msgstr "複製遊戲列表到剪貼簿"
-
-#: menus.c:616
-#, fuzzy
-msgid "Copy Position"
-msgstr "複製局面到剪貼簿(Y)   Ctrl+Shift+C"
-
-#: menus.c:617
-msgid "Copy Game List"
-msgstr "複製遊戲列表到剪貼簿"
-
-#: menus.c:619
-#, fuzzy
-msgid "Paste Game"
-msgstr "貼上棋局自剪貼簿(P)   Ctrl+V"
-
-#: menus.c:620
-#, fuzzy
-msgid "Paste Position"
-msgstr "從剪貼簿貼上局面(T)   Ctrl+Shift+V"
-
-#: menus.c:622 menus.c:665
-#, fuzzy
-msgid "Edit Game"
-msgstr "編輯註解"
-
-#: menus.c:623 menus.c:666
-#, fuzzy
-msgid "Edit Position"
-msgstr "盤面檔案錯誤"
-
-#: menus.c:624
-msgid "Edit Tags"
-msgstr "編輯標籤(T)"
-
-#: menus.c:625
-msgid "Edit Comment"
-msgstr "編輯註解(C)..."
-
-#: menus.c:626
-#, fuzzy
-msgid "Edit Book"
-msgstr "開局庫(B)..."
-
-#: menus.c:628
-msgid "Revert"
-msgstr ""
-
-#: menus.c:629
-msgid "Annotate"
-msgstr "註解(A)"
-
-#: menus.c:630
-#, fuzzy
-msgid "Truncate Game"
-msgstr "截斷後面的著法(T)"
-
-#: menus.c:632
-msgid "Backward"
-msgstr ""
-
-#: menus.c:633
-msgid "Forward"
-msgstr ""
-
-#: menus.c:634
-#, fuzzy
-msgid "Back to Start"
-msgstr "輪到黑方走棋"
-
-#: menus.c:635
-#, fuzzy
-msgid "Forward to End"
-msgstr "最後局面(E)   Alt+End"
-
-#: menus.c:640
-#, fuzzy
-msgid "Flip View"
-msgstr "自動翻轉棋盤(V)"
-
-#: menus.c:643
-#, fuzzy
-msgid "Move History"
-msgstr "取得著法列表(G)"
-
-#: menus.c:644
-#, fuzzy
-msgid "Evaluation Graph"
-msgstr "審局圖"
-
-#: menus.c:645
-#, fuzzy
-msgid "Game List"
-msgstr "遊戲列表..."
-
-#: menus.c:649
-msgid "Comments"
-msgstr "編輯註解(C) *.*"
-
-#: menus.c:650
-msgid "ICS Input Box"
-msgstr ""
-
-#: menus.c:651
-msgid "ICS/Chat Console"
-msgstr ""
-
-#: menus.c:653
-msgid "Board..."
-msgstr "棋盤選項(B)..."
-
-#: menus.c:654
-#, fuzzy
-msgid "Fonts..."
-msgstr "聲音選項(D)..."
-
-#: menus.c:655
-msgid "Game List Tags..."
-msgstr "遊戲列表..."
-
-#: menus.c:660
-#, fuzzy
-msgid "Machine White"
-msgstr "電腦執紅(W)   Ctrl+W"
-
-#: menus.c:661
-#, fuzzy
-msgid "Machine Black"
-msgstr "電腦比賽(M)"
-
-#: menus.c:662
-#, fuzzy
-msgid "Two Machines"
-msgstr "電腦對弈(M)   Ctrl+T"
-
-#: menus.c:663
-#, fuzzy
-msgid "Analysis Mode"
-msgstr "分析模式(A)   Ctrl+A"
-
-#: menus.c:664
-#, fuzzy
-msgid "Analyze Game"
-msgstr "分析檔案(F)   Ctrl+F"
-
-#: menus.c:667
-msgid "Training"
-msgstr "訓練(N)"
-
-#: menus.c:668
-msgid "ICS Client"
-msgstr "ICS客戶端"
-
-#: menus.c:670
-msgid "Machine Match"
-msgstr "電腦比賽(M)"
-
-#: menus.c:671
-msgid "Pause"
-msgstr ""
-
-#: menus.c:676
-msgid "Accept"
-msgstr ""
-
-#: menus.c:677
-msgid "Decline"
-msgstr ""
-
-#: menus.c:678
-msgid "Rematch"
-msgstr ""
-
-#: menus.c:680
-#, fuzzy
-msgid "Call Flag"
-msgstr "超時判負(F)   F5"
-
-#: menus.c:681
-msgid "Draw"
-msgstr ""
-
-#: menus.c:682
-msgid "Adjourn"
-msgstr ""
-
-#: menus.c:683
-msgid "Abort"
-msgstr ""
-
-#: menus.c:684
-msgid "Resign"
-msgstr ""
-
-#: menus.c:686
-#, fuzzy
-msgid "Stop Observing"
-msgstr "停止觀棋(O)   F10"
-
-#: menus.c:687
-#, fuzzy
-msgid "Stop Examining"
-msgstr "停止研究(X)   F11"
-
-#: menus.c:688
-msgid "Upload to Examine"
-msgstr "上傳檢查(U)"
-
-#: menus.c:690
-msgid "Adjudicate to White"
-msgstr "裁決紅贏 (W)"
-
-#: menus.c:691
-msgid "Adjudicate to Black"
-msgstr "裁決黑贏 (B)"
-
-#: menus.c:692
-msgid "Adjudicate Draw"
-msgstr "提請仲裁(D)"
-
-#: menus.c:697
-#, fuzzy
-msgid "Edit Engine List..."
-msgstr "引擎 #1 設定"
-
-#: menus.c:699
-msgid "Load New 1st Engine..."
-msgstr ""
-
-#: menus.c:700
-#, fuzzy
-msgid "Load New 2nd Engine..."
-msgstr "通用引擎設定(E)...   Alt+Shift+U"
-
-#: menus.c:702
-#, fuzzy
-msgid "Engine #1 Settings..."
-msgstr "引擎 #1 設定"
-
-#: menus.c:703
-#, fuzzy
-msgid "Engine #2 Settings..."
-msgstr "引擎 #2 設定"
-
-#: menus.c:704
-#, fuzzy
-msgid "Common Settings..."
-msgstr "通用引擎設定"
-
-#: menus.c:706
-msgid "Hint"
-msgstr "提示(H)..."
-
-#: menus.c:707
-msgid "Book"
-msgstr "開局庫(B)..."
-
-#: menus.c:709
-msgid "Move Now"
-msgstr ""
-
-#: menus.c:710
-#, fuzzy
-msgid "Retract Move"
-msgstr "悔棋(R)   Ctrl+X"
-
-#: menus.c:716
-#, fuzzy
-msgid "General..."
-msgstr "一般選項(G)..."
-
-#: menus.c:718
-#, fuzzy
-msgid "Time Control..."
-msgstr "時間設定(T)...   Alt+Shift+T"
-
-#: menus.c:719
-#, fuzzy
-msgid "Adjudications..."
-msgstr "判決(j)...   Alt+Shift+J"
-
-#: menus.c:720
-msgid "ICS..."
-msgstr ""
-
-#: menus.c:721
-msgid "Tournament..."
-msgstr ""
-
-#: menus.c:722
-#, fuzzy
-msgid "Load Game..."
-msgstr "載入棋局選項(L)...   Alt+Shift+L"
-
-#: menus.c:723
-#, fuzzy
-msgid "Save Game..."
-msgstr "儲存棋局選項(S)...   Alt+Shift+S"
-
-#: menus.c:724
-#, fuzzy
-msgid "Game List..."
-msgstr "遊戲列表..."
-
-#: menus.c:725
-#, fuzzy
-msgid "Sounds..."
-msgstr "聲音選項(D)..."
-
-#: menus.c:728
-msgid "Always Queen"
-msgstr ""
-
-#: menus.c:734
-msgid "Flash Moves"
-msgstr ""
-
-#: menus.c:736
-msgid "Highlight Dragging"
-msgstr "拖曳醒目提示(H)"
-
-#: menus.c:739
-msgid "Highlight With Arrow"
-msgstr "用箭頭突出移動"
-
-#: menus.c:740
-msgid "Move Sound"
-msgstr ""
-
-#: menus.c:742
-msgid "Periodic Updates"
-msgstr "定期更新(U)"
-
-#: menus.c:744
-msgid "Popup Exit Message"
-msgstr "離開時提示(P)"
-
-#: menus.c:746
-msgid "Show Coords"
-msgstr "顯示坐標(C)"
-
-#: menus.c:747
-#, fuzzy
-msgid "Hide Thinking"
-msgstr "與人對弈時隱藏思考細節"
-
-#: menus.c:751
-msgid "Save Settings Now"
-msgstr "立即儲存設定(N)"
-
-#: menus.c:752
-msgid "Save Settings on Exit"
-msgstr "離開時儲存設定(X)"
-
-#: menus.c:757
-msgid "Info XBoard"
-msgstr ""
-
-#: menus.c:758
-#, fuzzy
-msgid "Man XBoard"
-msgstr "關於XBoard(A)"
-
-#: menus.c:760
-msgid "XBoard Home Page"
-msgstr ""
-
-#: menus.c:761
-msgid "On-line User Guide"
-msgstr ""
-
-#: menus.c:762
-msgid "Development News"
-msgstr ""
-
-#: menus.c:763
-msgid "e-Mail Bug Report"
-msgstr ""
-
-#: menus.c:802
-msgid "File"
-msgstr "檔案(F)"
-
-#: menus.c:803
-msgid "Edit"
-msgstr "編輯(E)"
-
-#: menus.c:804
-msgid "View"
-msgstr ""
-
-#: menus.c:805
-msgid "Mode"
-msgstr "模式(M)"
-
-#: menus.c:806
-msgid "Action"
-msgstr "行為(A)"
-
-#: menus.c:807
-msgid "Engine"
-msgstr ""
-
-#: menus.c:808
-msgid "Options"
-msgstr "選項(O)"
-
-#: menus.c:809
-msgid "Help"
-msgstr "說明(H)"
-
-#: nengineoutput.c:79 nengineoutput.c:87
-#, fuzzy
-msgid "engine name"
-msgstr "引擎輸出"
-
-#. TRANSLATORS: noun, as in "the move Nf3"
-#: nengineoutput.c:82 nengineoutput.c:90
-#, fuzzy
-msgid "move"
-msgstr "著法"
-
-#: nengineoutput.c:156
-msgid "Engine output"
-msgstr "引擎輸出"
-
-#: nengineoutput.c:160
-msgid ""
-"Mismatch of STRIDE in nengineoutput.c\n"
-"Change and recompile!"
-msgstr ""
-
-#: nevalgraph.c:69
-msgid "Evaluation graph"
-msgstr "審局圖"
-
-#: nevalgraph.c:69
-#, fuzzy
-msgid "Blunder graph"
-msgstr "審局圖"
-
-#: nevalgraph.c:107
-msgid "Blunder"
-msgstr ""
-
-#: nevalgraph.c:107
-msgid "Eval"
-msgstr ""
-
-#: ngamelist.c:87
-#, fuzzy
-msgid "find position"
-msgstr "盤面檔案錯誤"
-
-#: ngamelist.c:88
-msgid "narrow"
-msgstr ""
-
-#: ngamelist.c:89
-msgid "thresholds"
-msgstr ""
-
-#: ngamelist.c:90
-#, fuzzy
-msgid "tags"
-msgstr "編輯標籤(T)"
-
-#: ngamelist.c:91
-msgid "next"
-msgstr ""
-
-#: ngamelist.c:92
-msgid "close"
-msgstr ""
-
-#: ngamelist.c:116
-msgid "No game selected"
-msgstr "沒有選中棋局"
-
-#: ngamelist.c:122
-msgid "Can't go forward any further"
-msgstr "無法再前進了"
-
-#: ngamelist.c:192
-#, c-format
-msgid "Scanning through games (%d)"
-msgstr ""
-
-#: ngamelist.c:211
-msgid "previous page"
-msgstr ""
-
-#: ngamelist.c:214
-msgid "next page"
-msgstr ""
-
-#: ngamelist.c:217
-msgid "no games matched your request"
-msgstr ""
-
-#: ngamelist.c:219
-#, fuzzy, c-format
-msgid "%s - %d/%d games (%d-%d-%d)"
-msgstr "比賽 %s vs. %s: 最終比分 %d-%d-%d"
-
-#: ngamelist.c:284
-msgid "There is no game list"
-msgstr "沒有棋局列表"
-
-#: nhistory.c:109
-msgid "Move list"
-msgstr ""
-
-#: usystem.c:223
-#, c-format
-msgid "%s: unrecognized color %s\n"
-msgstr ""
-
-#: usystem.c:231
-#, c-format
-msgid "%s: can't parse foreground color in '%s'\n"
-msgstr ""
-
-#: usystem.c:260
-#, c-format
-msgid "%s: can't parse color names; disabling colorization\n"
-msgstr ""
-
-#: usystem.c:362
-#, c-format
-msgid "ERROR: Unknown user %s (in path %s)\n"
-msgstr ""
-
-#: usystem.c:564
-msgid "Socket support is not configured in"
-msgstr ""
-
-#: usystem.c:653
-msgid "internal rcmd not implemented for Unix"
-msgstr ""
-
-#: xaw/xboard.c:1206
-#, c-format
-msgid "white pixel = 0x%lx, black pixel = 0x%lx\n"
-msgstr ""
-
-#: xaw/xoptions.c:378 xaw/xoptions.c:1082
-msgid "browse"
-msgstr ""
-
-#: xaw/xoptions.c:444 xaw/xoptions.c:445
-msgid "Ctrl"
-msgstr ""
-
-#: xaw/xoptions.c:450 xaw/xoptions.c:451
-msgid "Alt"
-msgstr ""
-
-#: xaw/xoptions.c:456 xaw/xoptions.c:457
-msgid "Shift"
-msgstr ""
-
-#, fuzzy
-#~ msgid "Common Engine..."
-#~ msgstr "通用引擎設定(E)...   Alt+Shift+U"
-
-#~ msgid "ICS ..."
-#~ msgstr "ICS選項..."
-
-#~ msgid "cancel"
-#~ msgstr "取消(C)"
-
-#~ msgid "New Game        Ctrl+N"
-#~ msgstr "開新棋局(N)   Ctrl+N"
-
-#~ msgid "New Variant ...   Alt+Shift+V"
-#~ msgstr "新變種(V)...   Alt+Shift+V"
-
-#~ msgid "Load Game       Ctrl+O"
-#~ msgstr "載入棋局(L)...   Ctrl+O"
-
-#~ msgid "Load Position    Ctrl+Shift+O"
-#~ msgstr "載入局面(O)...   Ctrl+Shift+O"
-
-#~ msgid "Save Game       Ctrl+S"
-#~ msgstr "儲存棋局(S)...   Ctrl+S"
-
-#~ msgid "Quit                 Ctr+Q"
-#~ msgstr "離開(Q)"
-
-#~ msgid "Copy Game    Ctrl+C"
-#~ msgstr "複製棋局到剪貼簿(C)   Ctrl+C"
-
-#~ msgid "Edit Game      Ctrl+E"
-#~ msgstr "編輯棋局(E)   Ctrl+E"
-
-#~ msgid "Edit Position   Ctrl+Shift+E"
-#~ msgstr "編輯局面(d)   Ctrl+Shift+E"
-
-#~ msgid "Revert              Home"
-#~ msgstr "恢復(V)"
-
-#~ msgid "Backward         Alt+Left"
-#~ msgstr "下一著(B)   Alt+Left"
-
-#~ msgid "Forward           Alt+Right"
-#~ msgstr "上一著(F)   Alt+Right"
-
-#~ msgid "Back to Start     Alt+Home"
-#~ msgstr "起始局面(S)   Alt+Home"
-
-#~ msgid "Flip View             F2"
-#~ msgstr "翻轉棋盤(V)   F2"
-
-#~ msgid "Engine Output      Alt+Shift+O"
-#~ msgstr "顯示引擎輸出   Alt+Shift+O"
-
-#~ msgid "Move History       Alt+Shift+H"
-#~ msgstr "顯示歷史著法   Alt+Shift+H"
-
-#~ msgid "Evaluation Graph  Alt+Shift+E"
-#~ msgstr "顯示評價圖   Alt+Shift+E"
-
-#~ msgid "Game List            Alt+Shift+G"
-#~ msgstr "顯示棋局列表(L)   Alt+Shift+G"
-
-#~ msgid "Machine Black  Ctrl+B"
-#~ msgstr "電腦執黑(B)   Ctrl+B"
-
-#~ msgid "Edit Game         Ctrl+E"
-#~ msgstr "編輯棋局(E)   Ctrl+E"
-
-#~ msgid "Edit Position      Ctrl+Shift+E"
-#~ msgstr "編輯局面(d)   Ctrl+Shift+E"
-
-#~ msgid "Pause               Pause"
-#~ msgstr "暫停(P)   Pause"
-
-#~ msgid "Accept             F3"
-#~ msgstr "接受(A)   F3"
-
-#~ msgid "Decline            F4"
-#~ msgstr "拒絕(C)   F4"
-
-#~ msgid "Rematch           F12"
-#~ msgstr "重賽(M)   F12"
-
-#~ msgid "Draw                F6"
-#~ msgstr "提和(D)   F6"
-
-#~ msgid "Adjourn            F7"
-#~ msgstr "封盤(J)   F7"
-
-#~ msgid "Abort                F8"
-#~ msgstr "中止(B)   F8"
-
-#~ msgid "Resign              F9"
-#~ msgstr "認輸(R)   F9"
-
-#~ msgid "Move Now     Ctrl+M"
-#~ msgstr "立即走棋(M)   Ctrl+M"
-
-#~ msgid "Always Queen        Ctrl+Shift+Q"
-#~ msgstr "總是升變為皇后(Q) Ctrl+Shift+Q"
-
-#~ msgid "Animate Moving      Ctrl+Shift+A"
-#~ msgstr "動畫走棋(A)     Ctrl+Shift+A"
-
-#~ msgid "Auto Flag               Ctrl+Shift+F"
-#~ msgstr "自動超時判負(F) Ctrl+Shift+F"
-
-#~ msgid "Ponder Next Move  Ctrl+Shift+P"
-#~ msgstr "同步思考(N)  Ctrl+Shift+P"
-
-#~ msgid "Hide Thinking        Ctrl+Shift+H"
-#~ msgstr "隱藏引擎思考 Ctrl+Shift+H"
-
-#~ msgid "Test Legality          Ctrl+Shift+L"
-#~ msgstr "檢查著法合理性(L) Cl+Sh+L"
-
-#~ msgid "Drop"
-#~ msgstr "取消"
-
-#, fuzzy
-#~ msgid "could not open: "
-#~ msgstr "無法解析著法"
-
-#~ msgid "ok"
-#~ msgstr "確定"
-
-#~ msgid "Highlight Dragging (Show Move Targets)"
-#~ msgstr "拖曳醒目提示(H)"
-
-#~ msgid "White "
-#~ msgstr "紅方 "
-
-#~ msgid "Black "
-#~ msgstr "黑方 "
-
-#~ msgid "Close"
-#~ msgstr "關閉(C)"
-
-#~ msgid "sec/move"
-#~ msgstr "每走一步加"
diff --git a/pxboard b/pxboard
deleted file mode 100644 (file)
index 3a2a97a..0000000
--- a/pxboard
+++ /dev/null
@@ -1,21 +0,0 @@
-#! /bin/sh
-#
-# pxboard
-# Usage: cat game |pxboard [xboard-options]
-# or (in rn or xrn) save an article to: |pxboard [xboard-options]
-#
-# This script saves its standard input to a temporary file and invokes
-# "xboard -loadGameFile file &" on the file.  Although it is possible
-# to pipe games directly into xboard using "xboard -lgf -", this
-# script is nicer in two ways:  (1) xboard can seek on the temporary
-# file, so the popup game list, Load Previous Game, and Reload Same
-# Game all work.  (2) The script runs xboard in the background and
-# exits.  So if you save a news article by piping it into this script,
-# you immediately get back control of your news reader.
-#
-# The script turns on -noChessProgram mode by default.  If you want a
-# chess program started, give the -xncp option.
-#
-tmp=`mktemp "${TMPDIR:-/tmp}/pxboard.$$.XXXXXX"` || exit 1
-cat > "$tmp"
-( xboard -ncp -lgf "$tmp" "$@" ; rm "$tmp" ) &
diff --git a/readme.htm b/readme.htm
deleted file mode 100644 (file)
index ca59e5c..0000000
+++ /dev/null
@@ -1,223 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">\r
-<html>\r
-<head>\r
-</head>\r
-<body>\r
-<big><span style="font-weight: bold;">Tinkering with Winboard<br>\r
-by Alessandro Scotti<br>\r
-</span></big><br>\r
-Last update: March 22, 2005.<br>\r
-<br>\r
-This readme is about some modifications I made to Winboard 4.2.7. Some\r
-will work in Xboard too, while others are for Winboard only.\r
-Regardless, everything here is absolutely experimental and has been\r
-tested very little... so no warranties ok?<br>\r
-<br>\r
-All modified sources are included in this archive, the rest can be\r
-downloaded from <a href="http://www.tim-mann.org/xboard.html">Tim\r
-Mann's Xboard page</a>. Please feel free to take my changes and use\r
-them as you like, they are released under the GPL.<br>\r
-<br>\r
-<big><span style="font-weight: bold;">Game adjudication</span></big><br>\r
-<br>\r
-User can adjudicate a game between two machines, using the "Action"\r
-menu. Note that this only works if two machines are playing.<br>\r
-<br>\r
-Also, it is possible to adjudicate a game automatically with this\r
-parameter:<br>\r
-<br>\r
-<div style="margin-left: 40px;">/adjudicateLossThreshold=-700<br>\r
-</div>\r
-<br>\r
-if set to a negative value, Winboard will adjudicate a game if a engine\r
-can't get a score above the specified threshold for 3 full moves (6\r
-plies). Note that both engines must agree on the score value, and also\r
-the game is only adjudicated after the last move from the losing engine.<br>\r
-<br>\r
-Adjudication is still under test!<br>\r
-<br>\r
-<big><span style="font-weight: bold;">Background textures</span></big><br>\r
-<br>\r
-Add the following to winboard.ini:<br>\r
-<br>\r
-<div style="margin-left: 40px;">/liteBackTextureFile="sandstone_w.bmp"<br>\r
-/darkBackTextureFile="sandstone_b.bmp"<br>\r
-/liteBackTextureMode=1<br>\r
-/darkBackTextureMode=1<br>\r
-</div>\r
-<br>\r
-Of course you can choose any file you like for texturing the light and\r
-dark squares, as long as it's a valid BMP (Windows bitmap) file. <br>\r
-<br>\r
-Valid texture modes are 1 (default) and 2. In mode 1 the squares are\r
-taken from portions of the texture bitmap and copied without further\r
-processing. In mode 2, squares can also be rotated, mirrored and so on\r
-in order to provide a little more variety to the texture. The\r
-operations are selected at random so the board will look slightly\r
-different every time the program is run.<br>\r
-<br>\r
-Note: to "comment out" a filename, put an asterisk in front of it, i.e.\r
-"*sandstone.bmp" will be skipped.<br>\r
-<br>\r
-Additionally it is possible to override the size of the "gap" between\r
-the squares, which is otherwise selected automatically. Add this to\r
-winboard.ini:<br>\r
-<br>\r
-<div style="margin-left: 40px;">/overrideLineGap=2<br>\r
-</div>\r
-<br>\r
-I have added this because textures usually look better with a smaller\r
-or no gap. Any negative value will ignore the override and use the\r
-standard value from Winboard.<br>\r
-<br>\r
-The combination of these parameters can produce very interesting\r
-effects, see for example <a\r
- href="http://usuarios.lycos.es/alexwbtm/Test/">Alex Guerrero's page</a>.<br>\r
-<br>\r
-<big><span style="font-weight: bold;">Font-based rendering of chess\r
-pieces</span></big><br>\r
-<br>\r
-It is possible to use chess fonts to draw pieces, in place of the usual\r
-bitmaps. You have to specify the font name by adding the following to\r
-winboard.ini:<br>\r
-<br>\r
-<div style="margin-left: 40px;">/renderPiecesWithFont="Chess Leipzig"<br>\r
-</div>\r
-<br>\r
-Chances are the program will automatically recognize the font and\r
-select the proper mapping, i.e. the correspondence between a chess\r
-piece and the corresponding font character. So if the board looks good\r
-you're set and there's nothing else to do, otherwise you'll have to\r
-find the proper mapping and tell it to the program with&nbsp; this\r
-setting:<br>\r
-<br>\r
-<div style="margin-left: 40px;">/fontPieceToCharTable="phbrqkojntwl"<br>\r
-</div>\r
-<br>\r
-The piece are in order: white pawn, knight, bishop, rook, queen, king\r
-and black pawn, knight, bishop, rook, queen, king. So the example above\r
-tells the program to use the letter "p" for a white pawn, the letter\r
-"h" for a white knight, the letter "t" for a black rook and so on.<br>\r
-<br>\r
-Note: to "comment out" a font name, put an asterisk in front of it,\r
-i.e. "*Chess Merida" will be skipped because of the asterisk.<br>\r
-<br>\r
-It is possible to customize the font foreground and background color,\r
-with these settings:<br>\r
-<br>\r
-<div style="margin-left: 40px;">/fontPieceBackColorWhite=#ffffcc<br>\r
-/fontPieceForeColorWhite=#402010<br>\r
-/fontPieceBackColorBlack=#ffffcc<br>\r
-/fontPieceForeColorBlack=#301008<br>\r
-</div>\r
-<br>\r
-Colors are expressed in RGB notation. If you are not familiar with the\r
-RGB notation&nbsp; I would suggest to leave them alone until I manage\r
-to update the GUI. In this case, the program will take the board\r
-settings as for the usual piece set.<br>\r
-<br>\r
-It is also possible to control the size of the piece with respect to\r
-the square, for example this entry:<br>\r
-<br>\r
-<div style="margin-left: 40px;">/fontPieceSize=80<br>\r
-</div>\r
-<br>\r
-tells the program to make the pieces about 20% smaller than a square\r
-(i.e. the piece size is 80%). Note that different fonts may require\r
-different values for this parameter. Usually values in the 70-80 range\r
-provide the best values, however the program accepts anything from 50\r
-to 150.<br>\r
-<br>\r
-Font-based pieces are automatically given a "roundish" look. For now,\r
-this option is not mapped to a user-definable setting.<br>\r
-<br>\r
-<big><span style="font-weight: bold;">Fast clipboard pasting</span></big><br>\r
-<br>\r
-Press Ctrl-V to paste a PGN game or a FEN position from the clipboard,\r
-the program will try to autodetect the proper type.<br>\r
-<br>\r
-<big><span style="font-weight: bold;">Thread initialization bug</span></big><br>\r
-<br>\r
-I've tried to fix a bug reported (and fixed) by Anastasios Milikas (of\r
-AICE), where a thread could try to access a not yet initialized\r
-variable. I've used a different approach here, where threads are\r
-started in a "suspended" state and then released only when the variable\r
-has been initialized (this has the advantage of putting all the\r
-required fix code in one place, and the disadvantage of not having been\r
-tested by Anastasios).<br>\r
-<br>\r
-<big><span style="font-weight: bold;">Protection from some buffer\r
-overflows</span></big><br>\r
-<br>\r
-In just a few cases, I've tried to put some guard against buffer\r
-overflows. These are just quick attempts... a lot more work would be\r
-needed to provide some measurable benefits. I hope that bug **353 is\r
-finally fixed now. The buffer overflows were propagated across several\r
-functions so as soon as one was fixed another would crash!<br>\r
-<br>\r
-<big><span style="font-weight: bold;">Absolute scores can be converted\r
-to relative</span></big><br>\r
-<br>\r
-Some engines (e.g. Crafty, Delphi) always report scores from the white\r
-side (i.e. absolute), rather than the engine side (i.e. relative). This\r
-leads to confusion and breaks features such as automatic adjudication.\r
-In order to convert the scores to relative add the following to\r
-winboard.ini:<br>\r
-<br>\r
-<div style="margin-left: 40px;">/firstScoreAbs=false<br>\r
-</div>\r
-<br>\r
-If true, the score of the first program is absolute and will be negated\r
-when playing black. And similarly:<br>\r
-<br>\r
-<div style="margin-left: 40px;">/secondScoreAbs=false<br>\r
-</div>\r
-<br>\r
-if true, the score of the second program is absolute and will be\r
-negated when playing black.<br>\r
-<br>\r
-<big><span style="font-weight: bold;">Engine search info can be saved\r
-in a PGN file</span></big><br>\r
-<br>\r
-Add the following to winboard.ini:<br>\r
-<br>\r
-<div style="margin-left: 40px;">/pgnExtendedInfo=true<br>\r
-</div>\r
-<br>\r
-If true, and the PGN save game option is enabled, each move will be\r
-followed by a comment&nbsp; containing the engine score and thinking\r
-depth (when available).<br>\r
-<br>\r
-Note: can also be set from the General options dialog.<br>\r
-<br>\r
-<big><span style="font-weight: bold;">Engine search info can be hidden\r
-in human-computer games</span></big><br>\r
-<br>\r
-When "show thinking" is disabled, engine thinking is not generated at\r
-all, rather than simply hidden. It is now possible to generate the\r
-think lines (e.g. for logging or saving in the PGN) yet hide them when\r
-the engine is playing against a human player. Add the following to\r
-winboard.ini:<br>\r
-<br>\r
-<div style="margin-left: 40px;">/hideThinkingFromHuman=true<br>\r
-</div>\r
-<br>\r
-Note: can also be set from the General options dialog.<br>\r
-<br>\r
-<big><span style="font-weight: bold;">Asymmetric time controls</span></big><br>\r
-<br>\r
-Very experimental! You can enter two time controls in the usual dialog,\r
-separated by "/". If so, white will be assigned the first time and\r
-black the second. So for example "0:30/2:00" will give 30 seconds to\r
-white and 2 minutes to black.<br>\r
-<br>\r
-Note: for now these times stay with black and white, rather than the\r
-corresponding player.<br>\r
-<br>\r
-<big><span style="font-weight: bold;">User interface</span></big><br>\r
-<br>\r
-Options to "hide thinking from human" and "save extended info in PGN"\r
-now appears in the "General" options dialog.<br>\r
-<br>\r
-</body>\r
-</html>\r
diff --git a/sounds/README b/sounds/README
deleted file mode 100644 (file)
index 1b5fc8c..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-The sound files in this directory are in the public domain.
-
-alarm.wav, challenge.wav, channel1.wav, channel.wav, draw.wav,
-kibitz.wav, lose.wav, request.wav, seek.wav, shout.wav, sshout.wav,
-tell.wav, unfinished.wav, and win.wav were recorded and contributed by
-Timothy Mann on 17 September 2000.
-
-move.wav was recorded and contributed by Pete Galati in February 1999.
diff --git a/sounds/alarm.wav b/sounds/alarm.wav
deleted file mode 100644 (file)
index d8b2908..0000000
Binary files a/sounds/alarm.wav and /dev/null differ
diff --git a/sounds/challenge.wav b/sounds/challenge.wav
deleted file mode 100644 (file)
index 62a0e09..0000000
Binary files a/sounds/challenge.wav and /dev/null differ
diff --git a/sounds/channel.wav b/sounds/channel.wav
deleted file mode 100644 (file)
index 2728596..0000000
Binary files a/sounds/channel.wav and /dev/null differ
diff --git a/sounds/channel1.wav b/sounds/channel1.wav
deleted file mode 100644 (file)
index 8d99e71..0000000
Binary files a/sounds/channel1.wav and /dev/null differ
diff --git a/sounds/ching.wav b/sounds/ching.wav
deleted file mode 100644 (file)
index 20c9bc4..0000000
Binary files a/sounds/ching.wav and /dev/null differ
diff --git a/sounds/click.wav b/sounds/click.wav
deleted file mode 100644 (file)
index 82fac66..0000000
Binary files a/sounds/click.wav and /dev/null differ
diff --git a/sounds/cymbal.wav b/sounds/cymbal.wav
deleted file mode 100644 (file)
index b55bac4..0000000
Binary files a/sounds/cymbal.wav and /dev/null differ
diff --git a/sounds/ding1.wav b/sounds/ding1.wav
deleted file mode 100644 (file)
index bea01ef..0000000
Binary files a/sounds/ding1.wav and /dev/null differ
diff --git a/sounds/draw.wav b/sounds/draw.wav
deleted file mode 100644 (file)
index d4d99e3..0000000
Binary files a/sounds/draw.wav and /dev/null differ
diff --git a/sounds/drip.wav b/sounds/drip.wav
deleted file mode 100644 (file)
index 7b3696f..0000000
Binary files a/sounds/drip.wav and /dev/null differ
diff --git a/sounds/gong.wav b/sounds/gong.wav
deleted file mode 100644 (file)
index 93d2a94..0000000
Binary files a/sounds/gong.wav and /dev/null differ
diff --git a/sounds/honkhonk.wav b/sounds/honkhonk.wav
deleted file mode 100644 (file)
index b107329..0000000
Binary files a/sounds/honkhonk.wav and /dev/null differ
diff --git a/sounds/kibitz.wav b/sounds/kibitz.wav
deleted file mode 100644 (file)
index 58fa03a..0000000
Binary files a/sounds/kibitz.wav and /dev/null differ
diff --git a/sounds/laser.wav b/sounds/laser.wav
deleted file mode 100644 (file)
index 2889384..0000000
Binary files a/sounds/laser.wav and /dev/null differ
diff --git a/sounds/lose.wav b/sounds/lose.wav
deleted file mode 100644 (file)
index 7d4ef93..0000000
Binary files a/sounds/lose.wav and /dev/null differ
diff --git a/sounds/move.wav b/sounds/move.wav
deleted file mode 100644 (file)
index f999edb..0000000
Binary files a/sounds/move.wav and /dev/null differ
diff --git a/sounds/penalty.wav b/sounds/penalty.wav
deleted file mode 100644 (file)
index 2ad3af0..0000000
Binary files a/sounds/penalty.wav and /dev/null differ
diff --git a/sounds/phone.wav b/sounds/phone.wav
deleted file mode 100644 (file)
index e5158a4..0000000
Binary files a/sounds/phone.wav and /dev/null differ
diff --git a/sounds/pop.wav b/sounds/pop.wav
deleted file mode 100644 (file)
index c089bed..0000000
Binary files a/sounds/pop.wav and /dev/null differ
diff --git a/sounds/pop2.wav b/sounds/pop2.wav
deleted file mode 100644 (file)
index 524b8e2..0000000
Binary files a/sounds/pop2.wav and /dev/null differ
diff --git a/sounds/request.wav b/sounds/request.wav
deleted file mode 100644 (file)
index 3e9ef92..0000000
Binary files a/sounds/request.wav and /dev/null differ
diff --git a/sounds/roar.wav b/sounds/roar.wav
deleted file mode 100644 (file)
index 16b0af7..0000000
Binary files a/sounds/roar.wav and /dev/null differ
diff --git a/sounds/seek.wav b/sounds/seek.wav
deleted file mode 100644 (file)
index e797921..0000000
Binary files a/sounds/seek.wav and /dev/null differ
diff --git a/sounds/shout.wav b/sounds/shout.wav
deleted file mode 100644 (file)
index b1b3a1a..0000000
Binary files a/sounds/shout.wav and /dev/null differ
diff --git a/sounds/slap.wav b/sounds/slap.wav
deleted file mode 100644 (file)
index 34c3fdf..0000000
Binary files a/sounds/slap.wav and /dev/null differ
diff --git a/sounds/squeak.wav b/sounds/squeak.wav
deleted file mode 100644 (file)
index aa7fa23..0000000
Binary files a/sounds/squeak.wav and /dev/null differ
diff --git a/sounds/sshout.wav b/sounds/sshout.wav
deleted file mode 100644 (file)
index 1eea0e7..0000000
Binary files a/sounds/sshout.wav and /dev/null differ
diff --git a/sounds/swish.wav b/sounds/swish.wav
deleted file mode 100644 (file)
index f89471b..0000000
Binary files a/sounds/swish.wav and /dev/null differ
diff --git a/sounds/tell.wav b/sounds/tell.wav
deleted file mode 100644 (file)
index c28c777..0000000
Binary files a/sounds/tell.wav and /dev/null differ
diff --git a/sounds/thud.wav b/sounds/thud.wav
deleted file mode 100644 (file)
index f5bc554..0000000
Binary files a/sounds/thud.wav and /dev/null differ
diff --git a/sounds/unfinished.wav b/sounds/unfinished.wav
deleted file mode 100644 (file)
index 03918d8..0000000
Binary files a/sounds/unfinished.wav and /dev/null differ
diff --git a/sounds/whipcrak.wav b/sounds/whipcrak.wav
deleted file mode 100644 (file)
index e38bb6f..0000000
Binary files a/sounds/whipcrak.wav and /dev/null differ
diff --git a/sounds/win.wav b/sounds/win.wav
deleted file mode 100644 (file)
index 0c13495..0000000
Binary files a/sounds/win.wav and /dev/null differ
diff --git a/sounds/woodthunk.wav b/sounds/woodthunk.wav
deleted file mode 100644 (file)
index 2001e38..0000000
Binary files a/sounds/woodthunk.wav and /dev/null differ
diff --git a/svg/BlackAdvisor.svg b/svg/BlackAdvisor.svg
deleted file mode 100644 (file)
index fbd73d8..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1">
-    <g
-       transform="matrix(1.4861271,0,0,1.4847529,-821.62432,435.52041)"
-       id="g561"
-       style="display:inline">
-      <path
-         d="m 658.09517,-203.59883 c 0,3.32512 -11.57983,6.02066 -25.86427,6.02066 -14.28445,0 -25.86428,-2.69554 -25.86428,-6.02066 0.12293,-3.809 3.03674,-5.00211 2.82601,-7.74087 -0.1758,-2.28463 -4.23905,-4.48478 -3.31751,-6.02066 0.92153,-1.53588 22.2396,-12.65567 24.57413,-18.06198 l 3.80899,0 c 2.08879,5.52918 22.9768,15.8503 23.8369,17.32475 0.8601,1.47446 -2.76982,4.31687 -2.82601,6.75789 -0.0632,2.74614 2.82604,3.68614 2.82604,7.74087 z"
-         inkscape:connector-curvature="0"
-         id="path542"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.34640253;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 613.5039,-214.05418 c 3.78276,-1.64916 10.3791,-2.56894 18.72697,-2.56894 8.76814,0 15.20178,1.14205 18.93874,2.93056"
-         inkscape:connector-curvature="0"
-         id="path544"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.34640241;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 608.88981,-205.65078 c 3.45914,-2.31484 12.6039,-3.96871 23.34109,-3.96871 10.26143,0 19.06843,1.51056 22.84814,3.66499"
-         inkscape:connector-curvature="0"
-         id="path547"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.34640253;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 614.51531,-221.47874 c 4.24837,-1.31334 10.616,-2.14801 17.73352,-2.14801 7.29099,0 13.79507,0.87585 18.04035,2.24489"
-         inkscape:connector-curvature="0"
-         id="path549"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.34640253;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 766.22133,-240.82864 a 5.77492,5.77492 0 1 1 -11.54984,0 5.77492,5.77492 0 1 1 11.54984,0 z"
-         transform="translate(-128.46127,0)"
-         id="path551"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.34640253;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <rect
-         width="2.0273337"
-         height="0.03071766"
-         x="630.9715"
-         y="-235.63736"
-         id="rect558"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:1.34640253;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackArchbishop.svg b/svg/BlackArchbishop.svg
deleted file mode 100644 (file)
index c590414..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165632)"
-     id="layer1">
-    <g
-       transform="matrix(1.3262826,0,0,1.3301986,-42.079562,573.2387)"
-       id="g1550"
-       style="display:inline">
-      <path
-         d="m 147.4254,-382.68804 -12.39311,-10e-6 -33.25033,33.25033 12.39311,12.39312 33.25033,-33.25033 z"
-         inkscape:connector-curvature="0"
-         id="path1505"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.50575292;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 94.828841,-352.46167 -1.989713,-0.22739 -3.894179,3.89417 -0.05679,2.72876 4.604764,4.60478 3.013003,0.0569 10.403374,10.40338 0.0569,3.01299 3.75205,3.75204 2.81403,0.0284 3.89416,-3.89416 -0.36953,-2.13184 z"
-         inkscape:connector-curvature="0"
-         id="path1507"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.50575292;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 96.630938,-337.72062 -7.810347,7.81035 -0.142136,2.47294 3.268827,3.26883 2.700335,0.0853 7.810353,-7.81034 z"
-         inkscape:connector-curvature="0"
-         id="path1509"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.50575292;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 139.72669,-374.90893 -9.7803,9.72896 m -18.90656,18.80731 -1.94433,1.93412"
-         inkscape:connector-curvature="0"
-         id="path1511"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffcc;stroke-width:1.50575292;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 122.27877,-368.31346 10.54418,10.59982"
-         inkscape:connector-curvature="0"
-         id="path1520"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffcc;stroke-width:1.50575292;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 108.13192,-353.45728 9.74254,9.79396"
-         inkscape:connector-curvature="0"
-         id="path1518"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffcc;stroke-width:1.50575292;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <g
-         transform="translate(0,63.35268)"
-         id="g1534">
-        <path
-           d="m 93.34147,-446.04072 12.39311,-10e-6 33.25034,33.25033 -12.39312,12.39311 -33.25033,-33.25033 z"
-           inkscape:connector-curvature="0"
-           id="path1460"
-           style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.50575292;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-        <path
-           d="m 145.93803,-415.81435 1.98971,-0.22739 3.89418,3.89416 0.0568,2.72877 -4.60477,4.60478 -3.013,0.0569 -10.40338,10.40338 -0.0569,3.01299 -3.75205,3.75203 -2.81403,0.0284 -3.89416,-3.89416 0.36953,-2.13183 z"
-           inkscape:connector-curvature="0"
-           id="path1462"
-           style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.50575292;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-        <path
-           d="m 144.13593,-401.0733 7.81035,7.81035 0.14214,2.47294 -3.26883,3.26883 -2.70034,0.0853 -7.81035,-7.81035 z"
-           inkscape:connector-curvature="0"
-           id="path1464"
-           style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.50575292;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-        <path
-           d="m 101.04019,-438.26161 30.63118,30.47039"
-           inkscape:connector-curvature="0"
-           id="path1466"
-           style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffcc;stroke-width:1.50575292;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      </g>
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackAxe.svg b/svg/BlackAxe.svg
deleted file mode 100644 (file)
index f0bdb80..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="WhiteAxe.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="504"
-     id="namedview11"
-     showgrid="false"
-     inkscape:zoom="2.36"
-     inkscape:cx="75.319014"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 50 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="100 : 50 : 1"
-       inkscape:persp3d-origin="50 : 33.333333 : 1"
-       id="perspective13" />
-    <inkscape:perspective
-       id="perspective3624"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective3656"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective3656-7"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3679">
-    <path
-       sodipodi:nodetypes="cccccc"
-       id="path2840"
-       d="m 48.138015,93.958837 -0.571429,-76.90138 2.857143,-9.3213798 2.857142,8.8553108 0,77.367449 -5.142856,0 z"
-       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.21791804px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-    <path
-       sodipodi:nodetypes="ccccc"
-       id="path3614"
-       d="m 52.171527,28.547284 -0.422564,27.129474 c 13.381193,-0.708012 23.381874,4.740107 32.537428,14.608178 8.519692,-16.91018 9.276668,-37.188251 0,-55.824109 -9.134433,7.92724 -19.603362,13.10841 -32.114864,14.086457 z"
-       style="fill:#000000;stroke:#000000;stroke-width:2.20000004999999987;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
-    <path
-       sodipodi:nodetypes="ccccc"
-       id="path3614-0"
-       d="m 47.998035,28.123555 0.422564,27.129474 c -13.381193,-0.708012 -23.381874,4.740107 -32.537428,14.608178 -8.519692,-16.91018 -9.276668,-37.188251 0,-55.824109 9.134433,7.92724 19.603362,13.10841 32.114864,14.086457 z"
-       style="fill:#000000;stroke:#000000;stroke-width:2.20000004999999987;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
-    <path
-       id="path3646"
-       d="m 46.610169,30.084746 0,23.728814 0,-0.423729"
-       style="fill:none;stroke:#ffffcc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    <path
-       id="path3646-2"
-       d="m 54.661017,29.661016 0,23.728814 0,-0.423729"
-       style="fill:none;stroke:#ffffcc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-  </g>
-</svg>
diff --git a/svg/BlackBishop.svg b/svg/BlackBishop.svg
deleted file mode 100644 (file)
index 54ee031..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1">
-    <g
-       transform="matrix(1.2982346,0,0,1.3132873,-370.58429,566.7991)"
-       id="g793"
-       style="display:inline">
-      <path
-         d="m 508.86265,-382.5542 a 4.6124978,4.6124978 0 1 1 -9.225,0 4.6124978,4.6124978 0 1 1 9.225,0 z"
-         transform="matrix(0.87096774,0,0,0.86290323,-63.161756,-52.446946)"
-         id="path457"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.76681674;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 365.16868,-346.78633 c -1.69277,-1.98158 -6.13866,-3.04764 -6.21838,-12.85947 -0.0712,-8.76374 11.5805,-17.92585 17.22248,-17.99833 5.64638,-0.0725 16.90827,9.24582 16.92489,17.99833 0.0202,10.62405 -4.32204,11.30968 -5.94258,12.85947 z"
-         inkscape:connector-curvature="0"
-         id="path459"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.53169942;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 390.90235,-337.54517 c 0,1.6435 -6.66157,2.97581 -14.87902,2.97581 -8.21746,0 -14.87903,-1.33231 -14.87903,-2.97581 0.0526,-1.10471 2.12554,-7.70048 5.16562,-8.71511 5.33881,-1.78182 14.24203,-1.99005 19.77699,0 2.97119,1.06827 4.86805,7.71561 4.81544,8.71511 z"
-         inkscape:connector-curvature="0"
-         id="path461"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.53169942;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 364.57089,-339.52673 c 2.72937,-0.65315 6.83312,-1.06864 11.42208,-1.06864 4.62372,0 8.75485,0.42181 11.48386,1.08352"
-         inkscape:connector-curvature="0"
-         id="path463"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.53169942;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 376.02386,-367.6202 0,12.95918"
-         inkscape:connector-curvature="0"
-         id="path465"
-         style="color:#000000;fill:#ef2929;fill-opacity:1;fill-rule:nonzero;stroke:#ffffcc;stroke-width:1.53169942;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 369.03753,-360.60764 13.97266,0"
-         inkscape:connector-curvature="0"
-         id="path467"
-         style="color:#000000;fill:#ef2929;fill-opacity:1;fill-rule:nonzero;stroke:#ffffcc;stroke-width:1.53169942;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 345.03406,-327.09305 3.48471,3.75676 c 1.60406,-1.05102 3.20113,-1.25505 5.26581,-1.25505 l 14.3628,0 c 2.53748,0 6.12935,-3.1116 7.96364,-4.32485 1.80949,1.28101 5.35969,4.32485 7.96364,4.32485 l 15.05569,0 c 1.74542,0 2.80159,0.16346 4.4677,1.25505 l 3.41561,-3.68236 c -1.71938,-1.29856 -8.63258,-2.80978 -11.6709,-2.68762 -3.03832,0.12216 -9.00013,0.96124 -11.67837,0.10521 -2.67824,-0.85603 -5.13785,-2.86465 -6.22817,-3.95497 l -2.78114,0.0744 c -1.35847,1.19074 -3.11846,3.15607 -6.56186,3.88057 -3.4434,0.7245 -8.04773,-0.0867 -11.04711,-0.10521 -2.99939,-0.0186 -9.99857,0.73071 -12.01205,2.61322 z"
-         inkscape:connector-curvature="0"
-         id="path469"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.53169942;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 366.63535,-346.55707 c 2.72938,-0.65315 4.63847,-1.06864 9.22742,-1.06864 4.62372,0 6.82058,0.34741 9.5496,1.00912"
-         inkscape:connector-curvature="0"
-         id="path491"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.53169942;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackButterfly.svg b/svg/BlackButterfly.svg
deleted file mode 100644 (file)
index 8045abf..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="100"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="WhiteButterfly.svg">
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2824"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2838"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="2.8"
-     inkscape:cx="34.72545"
-     inkscape:cy="44.67371"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="792"
-     inkscape:window-height="583"
-     inkscape:window-x="62"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(366.71429,-981.93367)">
-    <path
-       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m -316.35715,1009.7908 -6.07143,-6.4286 -5.71428,-3.2142 -4.64286,-0.71433 -6.78572,1.07143 -4.64285,2.8571 -3.57143,4.2858 -1.78572,5 -0.35714,6.7857 1.78572,6.0714 3.21428,4.2857 3.92857,4.6429 3.57143,3.9286 -5,6.0714 -2.85714,4.2857 -2.5,5 -0.71429,5.7143 2.14286,6.0714 3.92857,3.9286 5.35714,1.4286 6.42858,-0.7143 5.35714,-3.2143 5.35714,-3.5714 3.57143,-4.6429 0,-48.9286 z"
-       id="path2820"
-       sodipodi:nodetypes="ccccccccccccccccccccccccc" />
-    <use
-       x="0"
-       y="0"
-       xlink:href="#path2820"
-       id="use3594"
-       transform="matrix(-1,0,0,1,-632.35714,0)"
-       width="100"
-       height="100"
-       style="stroke:#00000f;stroke-width:2;stroke-miterlimit:4;stroke-opacity:0.94117647000000004;stroke-dasharray:none;fill:#000000;fill-opacity:1" />
-    <path
-       sodipodi:type="arc"
-       style="fill:#000000;fill-opacity:1;stroke:#ffffcf;stroke-width:2.09999989999999981;stroke-miterlimit:4;stroke-opacity:0.94117647;stroke-dasharray:none"
-       id="path3596"
-       sodipodi:cx="52.142857"
-       sodipodi:cy="51.607143"
-       sodipodi:rx="2.1428571"
-       sodipodi:ry="35.535713"
-       d="m 54.285714,51.607143 a 2.1428571,35.535713 0 1 1 -4.285714,0 2.1428571,35.535713 0 1 1 4.285714,0 z"
-       transform="matrix(1.7388004,0,0,0.81842011,-407.02318,992.91164)" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:2.13795257;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m -317.70232,1006.4186 c -0.97812,-5.5615 -2.38084,-11.35415 -5.16682,-17.89855"
-       id="path3598"
-       sodipodi:nodetypes="cc" />
-    <path
-       sodipodi:nodetypes="cc"
-       id="path3600"
-       d="m -314.65485,1006.7757 c 0.97812,-5.5615 2.38084,-11.35411 5.16682,-17.89851"
-       style="fill:none;stroke:#000000;stroke-width:2.13795257;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    <path
-       sodipodi:type="arc"
-       style="fill:#000000;fill-opacity:1;stroke:#ffffcc;stroke-width:2;stroke-miterlimit:4;stroke-opacity:0.94117647000000004;stroke-dasharray:none"
-       id="path3630"
-       sodipodi:cx="-55.535713"
-       sodipodi:cy="41.607143"
-       sodipodi:rx="6.25"
-       sodipodi:ry="7.6785712"
-       d="m -49.285713,41.607143 a 6.25,7.6785712 0 1 1 -12.5,0 6.25,7.6785712 0 1 1 12.5,0 z"
-       transform="translate(-244.92858,977.64795)" />
-    <path
-       transform="translate(-278.50001,977.29081)"
-       d="m -49.285713,41.607143 a 6.25,7.6785712 0 1 1 -12.5,0 6.25,7.6785712 0 1 1 12.5,0 z"
-       sodipodi:ry="7.6785712"
-       sodipodi:rx="6.25"
-       sodipodi:cy="41.607143"
-       sodipodi:cx="-55.535713"
-       id="path3632"
-       style="fill:#000000;fill-opacity:1;stroke:#ffffcc;stroke-width:2;stroke-miterlimit:4;stroke-opacity:0.94117647000000004;stroke-dasharray:none"
-       sodipodi:type="arc" />
-    <path
-       sodipodi:type="arc"
-       style="fill:#000000;fill-opacity:1;stroke:#ffffcc;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       id="path3634"
-       sodipodi:cx="34.464287"
-       sodipodi:cy="71.071426"
-       sodipodi:rx="5.5357141"
-       sodipodi:ry="3.5714285"
-       d="m 40.000001,71.071426 a 5.5357141,3.5714285 0 1 1 -11.071428,0 5.5357141,3.5714285 0 1 1 11.071428,0 z"
-       transform="matrix(0.8660254,-0.5,0.5,0.8660254,-395.84695,1009.0448)" />
-    <path
-       transform="matrix(-0.8660254,-0.5,-0.5,0.8660254,-236.51019,1007.9733)"
-       d="m 40.000001,71.071426 a 5.5357141,3.5714285 0 1 1 -11.071428,0 5.5357141,3.5714285 0 1 1 11.071428,0 z"
-       sodipodi:ry="3.5714285"
-       sodipodi:rx="5.5357141"
-       sodipodi:cy="71.071426"
-       sodipodi:cx="34.464287"
-       id="path3636"
-       style="fill:#000000;fill-opacity:1;stroke:#ffffcc;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       sodipodi:type="arc" />
-    <path
-       sodipodi:type="arc"
-       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       id="path3686"
-       sodipodi:cx="-67.5"
-       sodipodi:cy="65.178574"
-       sodipodi:rx="1.0714285"
-       sodipodi:ry="1.25"
-       d="m -66.428571,65.178574 a 1.0714285,1.25 0 1 1 -2.142858,0 1.0714285,1.25 0 1 1 2.142858,0 z"
-       transform="matrix(1.6584523,0,0,0.85010194,-204.23305,1009.2038)" />
-    <path
-       transform="matrix(1.6584523,0,0,0.85010194,-204.59019,950.63237)"
-       d="m -66.428571,65.178574 a 1.0714285,1.25 0 1 1 -2.142858,0 1.0714285,1.25 0 1 1 2.142858,0 z"
-       sodipodi:ry="1.25"
-       sodipodi:rx="1.0714285"
-       sodipodi:cy="65.178574"
-       sodipodi:cx="-67.5"
-       id="path3688"
-       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       sodipodi:type="arc" />
-  </g>
-</svg>
diff --git a/svg/BlackCamel.svg b/svg/BlackCamel.svg
deleted file mode 100644 (file)
index cc2b4b2..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="WhiteCamel.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="504"
-     id="namedview14"
-     showgrid="false"
-     inkscape:zoom="2.36"
-     inkscape:cx="50"
-     inkscape:cy="48.339441"
-     inkscape:window-x="0"
-     inkscape:window-y="25"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 50 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="100 : 50 : 1"
-       inkscape:persp3d-origin="50 : 33.333333 : 1"
-       id="perspective16" />
-    <inkscape:perspective
-       id="perspective2846"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3687">
-    <path
-       sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccc"
-       id="path2852"
-       d="m 31.355932,94.491525 5.084746,-2.966101 4.661017,-2.966102 c 3.248588,-1.964951 6.497175,-5.530423 9.745763,-9.745763 l 3.38983,-8.050847 -0.423729,-4.661017 2.542373,-5.508475 c 3.64729,-1.744968 6.369422,-5.340252 8.898305,-9.322034 3.03946,-1.166622 7.854587,-3.221078 13.135594,-5.508474 l 5.932203,1.271186 4.237288,1.694916 4.237288,-4.661017 2.118644,-2.542373 -0.847457,-2.966102 -2.542373,-2.966102 -0.847458,-4.661017 -1.271186,-2.966101 -5.932204,-3.81356 -6.779661,-2.118644 -8.898305,-1.271186 -8.050847,0.423729 C 57.719679,19.7546 55.86882,19.866442 53.813559,20.762712 l -5.084745,-4.237288 -4.237288,-1.694915 -4.661018,-0.847458 -7.627118,1.694915 -3.81356,2.118644 -2.966101,3.389831 c -1.428287,3.13906 -2.65664,5.878251 -2.966102,6.779661 l -3.813559,4.661017 -3.389831,4.661016 -2.118644,5.508476 c -0.489507,3.37517 -1.075868,6.652922 -0.42373,8.898304 0.0046,2.820271 -0.198015,3.72909 -1.271185,7.627119 l -2.118644,2.542373 -4.237288,2.542373 0.847457,30.084745 25.423729,0 z"
-       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.20000004999999987;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    <path
-       id="path2856"
-       d="m 59.621925,28.718371 -2.418535,-0.628431 -2.418535,1.256862 2.720852,1.885292 2.116218,-2.513723 z"
-       style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:1.60021948999999997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    <path
-       sodipodi:nodetypes="cccc"
-       id="path2860"
-       d="m 93.220339,43.644068 c -5.932203,0.41879 -11.864407,-3.645219 -17.79661,-6.355932 l 0.423729,0.423728 0,0"
-       style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:2.20000004999999987;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    <path
-       sodipodi:nodetypes="ccc"
-       id="path2862"
-       d="m 88.347093,30.719973 c -2.384724,-1.81183 -3.815498,-1.755981 -5.084015,-1.382457 l 0,0"
-       style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:1.77700316999999997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    <path
-       sodipodi:nodetypes="ccc"
-       id="path2866"
-       d="m 41.525424,25.000001 c -4.759069,-1.824488 -8.061031,-8.020296 -14.830508,-3.81356 -0.595434,8.79514 4.922629,9.948409 8.474576,13.559323"
-       style="fill:none;fill-opacity:1;stroke:#ffffcc;stroke-width:2.20000004999999987;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    <path
-       sodipodi:nodetypes="cc"
-       id="path2868"
-       d="M 36.440678,46.186441 C 40.180849,56.796264 45.176224,59.874859 50,63.983051"
-       style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:2.20000004999999987;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    <path
-       sodipodi:nodetypes="ccc"
-       id="path2872"
-       d="m 10.135572,70.728792 3.845694,10.656195 c 0.87345,5.850458 2.260331,9.804002 4.272993,11.445542"
-       style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:2.1321609;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    <path
-       sodipodi:nodetypes="ccc"
-       id="path2874"
-       d="m 30.084746,36.864407 c 0.788913,9.673303 2.321115,14.886867 4.237288,17.79661 l 0,-0.423729"
-       style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:2.20000004999999987;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-  </g>
-</svg>
diff --git a/svg/BlackCanon.svg b/svg/BlackCanon.svg
deleted file mode 100644 (file)
index 18cd666..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165632)"
-     id="layer1">
-    <g
-       transform="matrix(1.2581297,0,0,1.2581297,-355.59499,75.249302)"
-       id="g1838"
-       style="display:inline">
-      <path
-         d="m 349.40452,1.8939841 -4.34143,10.4515849 0.5223,0.270816 1.8896,-1.557164 54.18745,25.566184 4.98461,-15.114599 -56.27777,-17.3657112 -0.35832,-2.0286325 z"
-         inkscape:connector-curvature="0"
-         id="path1821"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.58966112;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 349.00253,24.324694 13.10469,0 0,-3.939445 27.33491,0 0,3.939445 13.02428,0 0,23.234677 -53.46388,0 z"
-         inkscape:connector-curvature="0"
-         id="path1823"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.58966112;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 495.40513,51.740005 a 4.984602,4.984602 0 1 1 -9.9692,0 4.984602,4.984602 0 1 1 9.9692,0 z"
-         transform="translate(-129.11728,-3.5374595)"
-         id="path1825"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.58966112;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 495.40513,51.740005 a 4.984602,4.984602 0 1 1 -9.9692,0 4.984602,4.984602 0 1 1 9.9692,0 z"
-         transform="translate(-101.29998,-3.5374595)"
-         id="path1827"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.58966112;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 535.12117,29.068106 a 2.2511106,2.2511106 0 1 1 -4.50222,0 2.2511106,2.2511106 0 1 1 4.50222,0 z"
-         transform="translate(-127.99172,0)"
-         id="path1829"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.58966112;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 362.10722,20.385249 27.33491,0 0,3.939445 13.02428,0 0,6.351347"
-         inkscape:connector-curvature="0"
-         id="path1836"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.58966112;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackChancellor.svg b/svg/BlackChancellor.svg
deleted file mode 100644 (file)
index 822962b..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1">
-    <g
-       transform="matrix(0.98123314,0,0,0.98123314,2.2125593,1.917333)"
-       id="g1917">
-      <g
-         transform="matrix(-1.070071,0,0,0.95000081,249.69904,71.141139)"
-         id="g4342"
-         style="stroke:#000000;stroke-width:0.75093842;stroke-opacity:1">
-        <path
-           d="m 117.59375,-7.4375 c -1.30079,1.9412559 -3.1617,3.8683596 -3.4375,6.28125 -0.71269,0.61140495 -1.73255,0.033211 -2.56825,0.20879963 -0.84476,-0.022977 -1.81964,-0.33376403 -2.01445,-1.23204893 C 108.7962,-3.3806014 107.73122,-4.4820808 106.375,-5 c -0.47032,-0.573274 -1.25306,-0.7390597 -1.9375,-0.96875 -0.56725,1.2034126 0.28172,2.455042 0.072,3.6997736 0.0902,1.6379763 -0.10305,3.3499997 -0.67872,4.8658443 -1.92524,1.7500119 -3.78467,3.7082271 -4.64329,6.2156321 -1.054746,2.32796 -0.766695,5.022024 -1.844496,7.345987 -1.26018,3.964917 -4.333914,6.987395 -6.035323,10.73697 -1.212364,2.312367 -1.847669,5.158078 -0.745181,7.635793 0.516567,1.113146 1.509792,2.021725 2.658078,2.466909 1.526212,0.512976 3.193014,0.250139 4.685672,-0.216909 0.683142,0.03748 0.906835,0.665657 1.1875,1.125 0.757752,0.923474 2.58957,0.71881 3.0625,-0.28125 1.08568,-1.10138 1.7524,-2.410544 2.79217,-3.521923 1.62508,-1.924274 3.31525,-3.817699 5.27033,-5.415577 1.01179,-0.61385 2.21118,-1.304256 3.36208,-1.821664 2.98365,-1.40635 5.80474,-3.17807 8.54417,-4.990836 0.29772,0.113851 -0.0225,0.795021 0.0625,1.125 0.0241,3.217614 -0.75935,6.506936 -2.4295,9.271344 -0.91428,1.473789 -1.92908,2.722948 -3.13041,4.000434 -1.90645,2.084583 -3.5835,4.373058 -5.31039,6.622324 -1.80989,2.544262 -3.47089,5.316642 -4.0672,8.418398 0.0515,0.551026 -0.44634,1.44308 0.28035,1.662139 0.77911,0.296598 1.64514,-0.05573 2.45715,0.08694 13.49374,-0.05798 26.98775,-0.0344 40.48125,0.06342 -0.19928,-8.043633 -0.82306,-16.129846 -2.71613,-23.968918 -0.951,-4.235615 -2.14069,-8.436776 -3.9344,-12.400099 -1.53489,-3.567605 -3.54947,-6.9266578 -5.99655,-9.9503074 -1.80834,-2.176648 -4.30652,-3.6193381 -6.72792,-5.0556756 -2.95331,-1.62225506 -6.28012,-2.73798817 -9.6875,-2.65625 -0.82226,0.0225076 -1.47434,-0.737092 -1.39716,-1.5350133 -0.38036,-1.8547307 -1.14974,-3.6301209 -2.32159,-5.1212367 l -0.06,0.08 -0.0337,0.045 z"
-           inkscape:connector-curvature="0"
-           id="path4298"
-           style="opacity:0.98999999;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:0.75154394px;stroke-opacity:1" />
-        <path
-           d="m 110.90718,-1.7155471 2.55401,0.0595 c -0.11306,-2.7134211 4.44555,-7.1531665 4.44555,-7.1531665 0,0 2.6311,2.9526263 3.05622,7.1168654 5.9381,-0.2374968 11.03878,2.8990232 13.00056,4.1073952 12.42868,7.655546 17.29364,34.951265 17.26817,53.971635 L 106.32892,56.24568 c -0.20729,-13.073379 15.56269,-20.477031 15.10098,-32.893334 -3.98486,3.099334 -8.42701,3.94292 -11.94512,6.90514 -2.79351,2.352109 -4.23289,5.107136 -7.01819,8.412488 -1.02679,1.218501 -3.76823,0.678355 -4.65375,-1.092696 -4.427625,1.32829 -8.682129,0.01778 -8.582077,-6.302259 0.08857,-5.594944 5.715124,-10.651222 7.649496,-15.901883 0.833895,-2.263527 0.717276,-5.7619951 2.034753,-8.280479 1.022986,-1.9555369 3.325448,-4.2204556 4.380568,-4.9644989 0.81951,-2.78858391 0.63978,-7.5122594 -0.71693,-9.3212068 1.97854,-0.5652961 6.51958,2.1987846 8.32853,5.4775016 z m 10.31016,2.15728625 0,2.75643355 c 3.82599,-0.00343 8.78656,2.0292307 12.33721,5.2785342 7.09848,6.4960211 10.28111,22.5102581 11.70795,37.0869221 0.40176,3.407421 0.78101,6.189899 3.94795,6.426135 C 149.36102,40.316206 145.57141,16.191978 137.82161,8.1193493 132.89174,2.9841219 127.3968,0.70498929 121.21734,0.44173915 z M 97.972952,35.127872 l 1.32829,0.442761 1.328288,-4.427625 -0.44277,0 z M 94.234058,32.85876 c 2.613538,-0.122981 3.817853,-5.736082 1.162266,-5.663706 -2.933316,0.07995 -3.417431,5.769824 -1.162266,5.663706 z m 28.007832,-11.419621 0.88552,0 c 1.35907,-0.439698 1.84793,-4.310779 1.32829,-4.870393 -0.77174,0.20599 -1.25447,3.099342 -2.21381,4.870393 z m -18.79589,-7.330175 0.88552,-2.213813 c 2.65658,0.442761 3.98486,-0.885522 3.5421,-3.5421016 l 2.21381,-0.442761 0,-0.442761 C 106.10257,6.5819984 102.56047,10.1241 103.446,14.108964 z m 3.38221,-10.8600077 c 0.88552,0 3.9097,-0.1130592 4.79522,-0.5558192 8.4125,-2.65657404 -3.9097,-4.3145658 -4.79522,0.5558192 z"
-           inkscape:connector-curvature="0"
-           id="BlackKnight"
-           style="opacity:0.98999999;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.75154394px;stroke-opacity:1" />
-      </g>
-      <path
-         d="m 81.576385,142.93068 0,-12.79044 8.303618,-6.27532 44.056507,0.0399 8.26059,6.23534 0,12.79045 -12.39089,0 0,-6.35526 -12.39089,0 0,6.35526 -11.10017,0 0,-6.35526 -12.347873,0 0,6.35526 z"
-         inkscape:connector-curvature="0"
-         id="path1432"
-         style="color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.03825164;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <rect
-         width="53.715767"
-         height="1.2767533"
-         x="84.933418"
-         y="-130.79556"
-         transform="scale(1,-1)"
-         id="rect1436"
-         style="color:#000000;fill:#ffffcc;fill-opacity:0.99215686;stroke:#ffffcc;stroke-width:1.01912582;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:0.99215896;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <rect
-         width="39.909939"
-         height="1.2767533"
-         x="91.836319"
-         y="-124.38985"
-         transform="scale(1,-1)"
-         id="rect1438"
-         style="color:#000000;fill:#ffffcc;fill-opacity:0.99215686;stroke:#ffffcc;stroke-width:1.0191257;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:0.99215896;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackClaw.svg b/svg/BlackClaw.svg
deleted file mode 100644 (file)
index 1dcffea..0000000
+++ /dev/null
@@ -1,162 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="100"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="WhiteClaw.svg">
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2828"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2850"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2872"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2894"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2918"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2940"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2962"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="4.8704322"
-     inkscape:cx="26.42854"
-     inkscape:cy="46.467809"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="1280"
-     inkscape:window-height="726"
-     inkscape:window-x="0"
-     inkscape:window-y="25"
-     inkscape:window-maximized="1" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(0,-952.36218)">
-    <g
-       id="g3788"
-       style="fill:#000000">
-      <path
-         sodipodi:nodetypes="cccccccccccccccccccc"
-         id="path2816"
-         d="m 49.667863,1012.1206 2.166994,9.0012 -0.333383,6.3344 -2.333687,8.3346 -4.167298,4.5007 -5.167449,2.5004 -5.334142,0.3334 -6.334292,-3.3339 -3.500529,-4.8341 -1.000152,-7.5011 -2.166995,-4.334 -5.334141,-4.1672 -2.500379,-6.001 2.000304,-6.1675 5.000756,-3.1672 5.500834,-0.8335 6.500984,0.3334 7.667828,1.0002 5.834217,3.0004 3.50053,5.0008 z"
-         style="fill:#000000;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="cccccccccccc"
-         id="path2818"
-         d="m 39.626874,999.80011 -1.847886,-3.07981 0.821283,-5.95429 2.874488,-5.33834 5.338336,-3.07981 5.338334,0.61596 3.901092,3.49045 0,5.74898 -2.669167,5.13301 -4.517054,3.28514 -4.517053,1.0266 -4.722373,-1.84789 z"
-         style="fill:#000000;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="cccccccccccc"
-         id="path2818-3"
-         d="m 70.11698,997.5416 1.847886,3.0798 -0.821283,5.9543 -2.874488,5.3383 -5.338336,3.0798 -5.748975,-0.2053 -3.490451,-3.9011 0,-5.749 2.258526,-5.54356 4.927695,-2.87454 4.517053,-1.0266 4.722373,1.8479 z"
-         style="fill:#000000;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="cccccccccccc"
-         id="path2818-3-2"
-         d="m 33.569916,981.32129 1.847886,3.07984 -0.821283,5.9543 -2.874488,5.33826 -5.338336,3.0798 -5.748975,-0.2053 -3.490451,-3.9011 0,-5.74896 2.258526,-5.5436 4.927695,-2.87454 4.517053,-1.0266 4.722373,1.8479 z"
-         style="fill:#000000;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="cccccccccccc"
-         id="path2818-3-6"
-         d="m 72.375506,1019.9215 2.463848,4.5171 -0.410642,4.7223 -4.106412,4.9277 -5.133015,2.0532 -5.748975,-0.2053 -3.490451,-3.9011 0,-5.749 2.669167,-4.7223 4.722375,-2.4639 4.722373,-0.8213 4.311732,1.6426 z"
-         style="fill:#000000;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="ccccccccc"
-         id="path2908"
-         d="m 34.083217,975.98293 -2.053206,-0.61597 0.821282,-4.51705 2.463847,-2.66917 4.106412,-0.41064 2.053206,0.61596 -3.285129,0.82129 -2.258527,2.46384 -1.847885,4.31174 z"
-         style="fill:#000000;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="ccccccccc"
-         id="path2908-4"
-         d="m 56.216861,980.17756 -1.915052,-0.96315 1.593184,-4.30582 2.88991,-2.20078 4.115337,0.30866 1.915052,0.96314 -3.37784,0.2383 -2.652056,2.03423 -2.568537,3.92535 z"
-         style="fill:#000000;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="ccccccccc"
-         id="path2908-4-6"
-         d="m 73.878161,994.50275 0.963152,1.91506 4.30582,-1.59319 2.200779,-2.88991 -0.308659,-4.11533 -0.96314,-1.91506 -0.238295,3.37784 -2.03423,2.65206 -3.92535,2.56854 z"
-         style="fill:#000000;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="ccccccccc"
-         id="path2908-4-6-3"
-         d="m 77.705679,1018.2026 0.792583,1.9916 4.428292,-1.2118 2.444276,-2.6871 0.05119,-4.1266 -0.792563,-1.9917 -0.531791,3.3443 -2.257627,2.4646 -4.134281,2.2167 z"
-         style="fill:#000000;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackCobra.svg b/svg/BlackCobra.svg
deleted file mode 100644 (file)
index 71577cd..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1">
-    <g
-       transform="matrix(1.3080319,0,0,1.3080319,-379.4976,-94.570148)"
-       id="g800"
-       style="display:inline">
-      <path
-         d="m 361.23968,180.98626 13.14716,0 c 0.0776,-4.60412 -1.33992,-10.53906 -0.87428,-14.96586 1.57219,-14.9466 10.60519,-23.90623 15.25014,-31.11064 -3.80899,-5.16056 -33.91229,-1.2287 -33.91229,-1.2287 -6.51214,4.79195 -5.76509,22.94811 0.24574,29.61182 3.81237,4.22647 6.41945,8.34587 6.14353,17.69338 z"
-         inkscape:connector-curvature="0"
-         id="path776"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.52901459;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 380.89898,124.22002 c -9.82965,0.24574 -22.23959,4.91483 -25.18848,8.96956 11.3041,-0.24574 15.06075,3.47663 22.23959,6.2664 5.68522,2.20933 10.24767,7.97824 16.34179,8.23233 4.01659,0.16747 7.37519,-1.39146 7.24937,-4.1776 -0.17133,-3.79392 -4.40092,-7.64497 -8.10946,-9.58391 -1.53131,-0.80062 -2.45742,-0.86009 -5.16057,-0.49148 3.44038,-2.62559 -4.42334,-9.21603 -7.37224,-9.2153 z"
-         inkscape:connector-curvature="0"
-         id="path778"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.52901459;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 519.86567,141.66765 a 1.2287064,0.98296511 0 1 1 -2.45741,0 1.2287064,0.98296511 0 1 1 2.45741,0 z"
-         transform="translate(-128.64556,-0.73722384)"
-         id="path780"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffcc;stroke-width:0.76450729;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 519.86567,141.66765 a 1.2287064,0.98296511 0 1 1 -2.45741,0 1.2287064,0.98296511 0 1 1 2.45741,0 z"
-         transform="translate(-122.50203,-3.071766)"
-         id="path782"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffcc;stroke-width:0.76450729;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 400.80402,146.45961 4.42335,3.80899 4.54621,-0.12287"
-         inkscape:connector-curvature="0"
-         id="path784"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.52901459;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 404.98163,150.39147 1.96593,3.19464"
-         inkscape:connector-curvature="0"
-         id="path786"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.52901459;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 355.7105,133.18958 c 11.3041,-0.24574 19.8393,3.99793 24.84607,8.56879"
-         inkscape:connector-curvature="0"
-         id="path794"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.52901459;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 386.6739,131.77656 2.39599,1e-5 c -0.18431,0.61435 0.61434,1.43409 0.61434,1.43409 z"
-         inkscape:connector-curvature="0"
-         id="path796"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:0.76450729;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackCommoner.svg b/svg/BlackCommoner.svg
deleted file mode 100644 (file)
index bb5b834..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1">
-    <g
-       transform="matrix(1.4660001,0,0,1.4637963,316.77731,65.494793)"
-       id="g992"
-       style="display:inline">
-      <path
-         d="m -104.15737,46.397445 c 0,3.30302 -14.20046,5.980649 -31.71761,5.980649 -17.51715,0 -31.7176,-2.677629 -31.7176,-5.980649 -0.1344,-2.419139 5.29371,-5.878609 7.12302,-9.340566 3.18683,-6.031047 1.41219,-14.822552 6.45104,-19.420312 4.58754,-4.185963 11.93326,-4.218539 18.14354,-4.233494 6.34124,-0.01527 13.89981,-0.08132 18.54674,4.233494 5.135,4.768016 2.89367,13.904599 6.18224,20.092295 1.74189,3.277493 7.02073,6.052203 6.98863,8.668583 z"
-         inkscape:connector-curvature="0"
-         id="path929"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.36528289;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -35.045584,44.487919 c 5.094177,-1.656145 13.593786,-2.861554 23.218682,-2.861554 9.9336811,0 18.6687141,1.283993 23.698384,3.022318"
-         inkscape:connector-curvature="0"
-         transform="matrix(1.1238096,0,0,1.0595238,-122.58379,-3.6873294)"
-         id="path931"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.25118327;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -113.19295,42.73678 c -7.74411,1.700778 -16.06349,2.490813 -22.68203,2.518293 -8.87362,0 -16.89615,-1.028519 -22.65278,-2.472891"
-         inkscape:connector-curvature="0"
-         id="path933"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.36528289;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -154.42322,33.340556 c 5.21601,-0.710202 11.73521,-1.888971 18.66052,-1.888971 7.02503,0 13.40435,1.190907 18.66053,1.91983"
-         inkscape:connector-curvature="0"
-         id="path935"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.36528289;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -137.68934,13.335876 -2.48633,-8.4669877 4.90547,-5.03987326 4.90548,5.03987326 -2.62073,8.4669877 z"
-         inkscape:connector-curvature="0"
-         id="path937"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.36528289;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <rect
-         width="1.0751677"
-         height="0.067198791"
-         x="-135.94218"
-         y="11.387124"
-         id="rect978"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#ffffcc;stroke-width:1.36528289;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackCopper.svg b/svg/BlackCopper.svg
deleted file mode 100644 (file)
index f5bb595..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="100"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="BlackCopper.svg">
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2824"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2838"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="2"
-     inkscape:cx="52.657835"
-     inkscape:cy="23.437927"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="792"
-     inkscape:window-height="583"
-     inkscape:window-x="62"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(366.71429,-981.93367)">
-    <g
-       id="g4595"
-       transform="matrix(1.193104,0,0,1.1895412,60.079489,-197.12824)">
-      <path
-         sodipodi:nodetypes="ccccc"
-         id="path4556"
-         d="m -340.71429,1033.9337 38.5,19.5 c 3.01591,-8.0302 5.53577,-16.1595 2,-25.5 -5.67437,-10.3102 -10.49692,-12.6759 -21.5,-10 -9.23894,1.4277 -15.38171,7.9516 -19,16 z"
-         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="ccccccccccccc"
-         id="path4558"
-         d="m -302.21429,1053.9337 c -3.77949,3.707 -6.5534,8.7933 -5,16.5 -4.914,-2.3656 -5.08463,-8.9701 -6,-18 l -5.89231,-2.5616 -5.58645,10.1118 c -6.2666,6.0928 -14.06738,2.4806 -21.52124,1.4498 l 7.93396,-15.0189 7.86793,0.962 -5.30189,-9.9434 -9,10.5 4,-14.5 38.5,20.5 0,3e-4 z"
-         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="cccccccccc"
-         id="path4560"
-         d="m -331.71429,1021.9337 c -1.82138,-7.0429 -9.12785,-10.1977 -17,-12 7.69257,-8.3204 21.08495,-13.54089 33.5,-13.50003 10.16892,1.33108 19.97487,7.02513 23.5,18.50003 4.66667,10.3333 0.55357,14.3869 3,26.5 0.87539,8.9369 6.48901,15.5165 10,20.5 -15.80415,-2.9875 -14.276,-20.3662 -21.5,-14 2.22195,-6.9556 2.89971,-14.2201 -1.5,-22.5 -1.83061,-5.3689 -6.506,-8.4619 -15,-8.5 -5.62111,-0.1967 -10.71096,1.2004 -15,5 z"
-         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="cc"
-         transform="translate(-366.71429,981.93367)"
-         id="path4591"
-         d="M 26.5,51.5 64,71.5"
-         style="fill:none;stroke:#ffffcc;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="ccccc"
-         transform="translate(-366.71429,981.93367)"
-         id="path4593"
-         d="m 36,38.5 c 6.927536,-3.557971 11.714719,-3.905411 16,-3.5 7.022722,1.310611 10.295992,4.370675 14,11 2.162062,5.833333 2.831994,11.666667 1,17.5 l 0,0"
-         style="fill:none;stroke:#ffffff;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackCrownedBishop.svg b/svg/BlackCrownedBishop.svg
deleted file mode 100644 (file)
index fe66f97..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1">
-    <g
-       transform="matrix(1.2615218,0,0,1.2615218,289.09033,550.06143)"
-       id="g949"
-       style="display:inline">
-      <path
-         d="m -146.80799,-346.78633 -9.45641,-9.02375 c -3.35871,-3.20503 -9.62231,-1.59916 -9.59766,-6.04514 0.034,-6.13348 17.94527,-10.00312 25.58672,-17.68049 l 8.78225,0 c 7.97912,8.05429 25.64737,10.93312 25.6602,17.68049 0.008,4.45651 -6.4618,3.08503 -9.55605,6.04514 l -9.43264,9.02375 z"
-         inkscape:connector-curvature="0"
-         id="path900"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.58538675;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -121.07432,-337.54517 c 0,1.6435 -6.66157,2.97581 -14.87902,2.97581 -8.21746,0 -14.87903,-1.33231 -14.87903,-2.97581 0.0526,-1.10471 2.12554,-7.70048 5.16562,-8.71511 5.33881,-1.78182 14.24203,-1.99005 19.77699,0 2.97119,1.06827 4.86805,7.71561 4.81544,8.71511 z"
-         inkscape:connector-curvature="0"
-         id="path902"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.58538675;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -147.40578,-339.52673 c 2.72937,-0.65315 6.83312,-1.06864 11.42208,-1.06864 4.62372,0 8.75485,0.42181 11.48386,1.08352"
-         inkscape:connector-curvature="0"
-         id="path904"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.58538675;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -135.95281,-367.6202 0,12.95918"
-         inkscape:connector-curvature="0"
-         id="path906"
-         style="color:#000000;fill:#ef2929;fill-opacity:1;fill-rule:nonzero;stroke:#ffffcc;stroke-width:1.58538675;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -142.93914,-360.60764 13.97266,0"
-         inkscape:connector-curvature="0"
-         id="path908"
-         style="color:#000000;fill:#ef2929;fill-opacity:1;fill-rule:nonzero;stroke:#ffffcc;stroke-width:1.58538675;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -166.94261,-327.09305 3.48471,3.75676 c 1.60406,-1.05102 3.20113,-1.25505 5.26581,-1.25505 l 14.3628,0 c 2.53748,0 6.12935,-3.1116 7.96364,-4.32485 1.80949,1.28101 5.35969,4.32485 7.96364,4.32485 l 15.05569,0 c 1.74542,0 2.80159,0.16346 4.4677,1.25505 l 3.41561,-3.68236 c -1.71938,-1.29856 -8.63258,-2.80978 -11.6709,-2.68762 -3.03832,0.12216 -9.00013,0.96124 -11.67837,0.10521 -2.67824,-0.85603 -5.13785,-2.86465 -6.22817,-3.95497 l -2.78114,0.0744 c -1.35847,1.19074 -3.11846,3.15607 -6.56186,3.88057 -3.4434,0.7245 -8.04773,-0.0867 -11.04711,-0.10521 -2.99939,-0.0186 -9.99857,0.73071 -12.01205,2.61322 z"
-         inkscape:connector-curvature="0"
-         id="path910"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.58538675;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -145.34132,-346.55707 c 2.72938,-0.65315 4.63847,-1.06864 9.22742,-1.06864 4.62372,0 6.82058,0.34741 9.5496,1.00912"
-         inkscape:connector-curvature="0"
-         id="path912"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.58538675;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackCrownedRook.svg b/svg/BlackCrownedRook.svg
deleted file mode 100644 (file)
index bfe98d8..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1">
-    <g
-       transform="matrix(0.97664778,0,0,0.97664778,2.7458231,2.385801)"
-       id="g1682">
-      <path
-         d="m 86.8536,76.000249 0,14.538335 8.412418,6.465256 0,24.94422 -6.974025,6.54761 0,8.46257 -6.974024,0 0,6.16383 72.529851,0 0,-6.16383 -6.97402,0 0,-9.64927 -6.97403,-6.50644 0,-23.83987 8.36883,-6.424076 0,-14.538335 -5.03471,0 -25.50254,-12.791026 -26.156447,12.791026 z"
-         inkscape:connector-curvature="0"
-         id="path1402"
-         style="color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.04782128;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <rect
-         width="54.419579"
-         height="1.3153983"
-         x="90.254616"
-         y="88.540649"
-         id="rect1406"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:1.02391064;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <rect
-         width="40.432858"
-         height="1.3153983"
-         x="97.247971"
-         y="95.140259"
-         id="rect1408"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:1.02391052;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <rect
-         width="40.500755"
-         height="1.3153983"
-         x="97.214012"
-         y="120.05748"
-         id="rect1410"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:1.02391064;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <rect
-         width="54.419579"
-         height="1.3153983"
-         x="90.254616"
-         y="135.88361"
-         id="rect1412"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:1.02391064;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <rect
-         width="51.635815"
-         height="1.3153983"
-         x="91.6465"
-         y="126.64236"
-         id="rect1414"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:1.02391064;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 98.008274,74.730285 4.183156,0 0,6.547616 6.94048,0 0,-6.547616 16.71878,0 0,6.547616 6.98406,0 0,-6.547616 4.25384,0"
-         inkscape:connector-curvature="0"
-         id="path1482"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:2.04782128;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackCub.svg b/svg/BlackCub.svg
deleted file mode 100644 (file)
index f0b6324..0000000
+++ /dev/null
@@ -1,172 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="100"
-   id="svg3738"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="BlackLion.svg">
-  <defs
-     id="defs3740">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective3746" />
-    <inkscape:perspective
-       id="perspective3800"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="2.3532769"
-     inkscape:cx="40.467173"
-     inkscape:cy="50.142845"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="716"
-     inkscape:window-height="504"
-     inkscape:window-x="3"
-     inkscape:window-y="71"
-     inkscape:window-maximized="0"
-     showguides="true"
-     inkscape:guide-bbox="true">
-    <sodipodi:guide
-       position="0.17142614,0.85712"
-       orientation="0,744.09448"
-       id="guide4498" />
-    <sodipodi:guide
-       position="744.26591,0.85712"
-       orientation="-1052.3622,0"
-       id="guide4500" />
-    <sodipodi:guide
-       position="744.26591,1053.2193"
-       orientation="0,-744.09448"
-       id="guide4502" />
-    <sodipodi:guide
-       position="0.17142614,1053.2193"
-       orientation="1052.3622,0"
-       id="guide4504" />
-  </sodipodi:namedview>
-  <metadata
-     id="metadata3743">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(0.17142614,-953.2193)">
-    <g
-       id="g4569"
-       transform="matrix(0.82495667,0,0,0.82495667,9.169993,176.05919)">
-      <path
-         id="path3888"
-         d="m 18.200002,987.30504 2.742858,-6.85715 -1.828571,-4.11428 5.942856,-8.22857 9.142858,-6.4 12.342857,-0.45715 2.285714,-7.31428 7.771429,0 7.314286,4.11428 10.971427,1.82858 -1.371427,5.94285 11.885713,3.2 -1.371428,4.57143 6.857142,6.85714 -2.285713,2.28572 7.314286,10.97143 -2.742858,2.74285 4.571429,10.05711 -0.457144,6.4 0,11.4286 -6.4,-8.2286 0.457144,16.9143 -2.285715,3.2 -6.4,-5.9428 0,9.1428 -5.028571,3.6572 0.914286,-10.0572 -7.314286,12.3429 -4.114285,-5.0286 -4.571429,10.5143 -10.514286,1.3714 -10.057143,-1.3714 -8.685715,-6.8571 -4.571427,-2.2858 -10.971429,6.8572 -0.457144,-12.8 -2.285713,-7.7714 -3.2,2.7428 -5.0285719,-4.1143 0.9142856,-9.1428 -2.2857142,-4.1143 0.9142858,-5.4857 -5.0285716,-3.6572 1.3714287,-3.6571 15.5428566,-13.25716 z"
-         style="fill:#000000;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="ccccccc"
-         id="path3890"
-         d="m 36.94286,989.59075 -8.685715,-1.82857 3.657144,1.37143 -5.485715,4.57143 5.485715,-2.74286 3.857141,0.2 1.17143,-1.57143 z"
-         style="fill:#000000;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3892"
-         d="m 59.34286,988.21932 0,-6.4 -0.457144,-7.77143 -1.828571,-5.02857 -3.2,-2.28571 -6.857143,0.91428 -3.657142,4.11429 -1.828571,3.65714"
-         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3894"
-         d="m 54.771431,984.10504 -0.914286,-4.57143 -2.742856,-3.65714 -3.2,0 -1.828573,4.11428 0,0 0.914286,0.45714 -0.914286,-0.45714"
-         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3896"
-         d="m 12.714289,1003.7622 0,0 z"
-         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="cc"
-         id="path3898"
-         d="M 11.471431,1004.3764 0.82857386,1002.8479"
-         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3900"
-         d="m 6.3142883,1010.1622 2.2857142,-2.7429 2.2857135,-0.4571 0.457144,-2.7429 0,0"
-         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="ccccccc"
-         id="path3902"
-         d="m 8.9220373,1018.1269 2.8308047,3.1321 5.565079,0.2674 6.824939,1.4358 5.028571,0.4571 0.457143,0 0,0.4572"
-         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3904"
-         d="m 43.34286,1003.305 -0.457144,8.6858 -3.657142,6.4 -0.914285,7.3142 -5.485715,6.4 -4.114285,6.8572"
-         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3906"
-         d="m 72.600003,997.36218 -3.200001,13.71432 -5.942857,10.9714 -6.857142,8.6857 -5.028572,13.7143"
-         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="cccccc"
-         id="path3908"
-         d="m 66.557145,1040.7193 -0.357143,-7.2428 4.114287,-9.1429 4.571427,-10.0571 2.285715,-10.9715 -0.457142,-7.31425"
-         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3910"
-         d="m 80.371431,996.44789 0,7.31431 0,5.4857 0.914285,7.7714 -4.571427,6.8572 -2.742858,5.4857 -1.371428,6.4"
-         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="ccccc"
-         id="path3912"
-         d="m 72.14286,976.79075 6.857143,7.31429 8.228571,5.94285 -0.1,20.97141 3.185714,4.0572"
-         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3914"
-         d="m 72.14286,971.30504 7.771429,0.91428 5.028571,2.74286 0,0"
-         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="ccc"
-         id="path3916"
-         d="m 19.114289,986.99075 11.885713,-8.37143 4.571429,-2.74285"
-         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path4508"
-         d="m 14.471431,1011.0764 c 8.571429,-1.7857 8.214286,-1.7857 8.214286,-1.7857"
-         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path4510"
-         d="m 15.185717,1013.9336 c 11.785714,-0.3572 11.785714,-0.3572 11.785714,-0.3572"
-         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path4512"
-         d="m 15.542859,1016.4336 c 11.071429,4.2857 11.071429,4.2857 11.071429,4.2857"
-         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackDolphin.svg b/svg/BlackDolphin.svg
deleted file mode 100644 (file)
index b24af4a..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="100"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="WhiteDolphin.svg">
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2826"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2834"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="4.5167464"
-     inkscape:cx="49.318911"
-     inkscape:cy="45.354981"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="1280"
-     inkscape:window-height="726"
-     inkscape:window-x="0"
-     inkscape:window-y="25"
-     inkscape:window-maximized="1" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(0,-952.36218)">
-    <g
-       id="g3632">
-      <path
-         sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
-         id="path2832"
-         d="m 25.422502,1009.2837 3.64721,-5.9885 4.085169,-6.56537 5.708527,-7.19404 4.800386,-5.25188 5.245237,-4.27474 5.082411,-3.5041 1.946123,-0.99064 1.6641,-2.73841 0.962415,-3.52748 -0.632865,-2.14233 -0.672599,-2.98178 -0.538857,-1.55972 1.891848,-0.73376 2.890098,0.70676 3.063572,2.96828 1.833675,3.65165 1.576843,3.8397 0.376031,2.33037 5.103703,2.56023 5.548553,3.53738 3.967814,3.8262 4.264383,4.47761 3.345595,4.71602 2.184518,4.04622 2.111695,4.21583 1.08172,4.303 0.394076,2.7853 -0.774149,3.9553 -1.327296,3.8618 0.358095,6.9663 0.220603,4.9517 -2.02898,1.0799 -1.768755,-2.6475 -3.591278,-8.7269 -2.55102,-1.9435 -2.810742,-3.6758 -2.991865,-3.2423 -0.142145,2.7315 c -1.121073,2.1006 -0.689228,2.1788 -1.581243,2.8704 l -2.69519,1.7911 -2.936977,0.2938 -3.51896,-1.444 2.889234,-3.0578 1.147291,-2.2168 0.26874,-3.0564 -1.420295,-3.2124 -5.299117,-2.2551 -6.091307,-0.9685 -7.726322,-0.423 -6.525511,1.0865 -5.838372,2.972 -5.798638,3.8114 -4.543551,5.0637 -4.138435,5.2015 5.420085,1.0098 4.07875,2.9434 3.376311,4.809 -1.331302,3.3423 -5.333223,-3.9007 -5.221783,-1.6086 -4.260732,0.3486 0.558749,-4.1561 -5.121869,4.8579 -3.891237,0.4048 -4.328943,0.8646 -5.5362864,2.5972 -0.4024811,-1.0225 2.2487192,-3.6566 4.5144665,-3.314 4.7424668,-2.0465 4.062579,-1.1241 3.564969,-4.871 3.145565,-5.7562 z"
-         style="fill:#000000;stroke:#000000;stroke-width:2.13330363999999983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path2834"
-         d="m 73.483788,1000.6302 -4.875955,-0.5555 -3.848618,-1.30775 -4.184918,-2.79866 -3.765255,-3.75745 -3.088762,-4.90406 6.521615,3.04205 3.566594,-0.43998 3.552051,0.65635"
-         style="fill:none;stroke:#ffffff;stroke-width:2.13330363999999983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path2842"
-         d="m 83.218266,1002.246 1.146534,1.7662"
-         style="fill:none;stroke:#ffffff;stroke-width:2.13330363999999983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="cccc"
-         id="path2844"
-         d="m 58.132709,974.47627 2.933349,-0.28601 3.031842,-0.0454 3.111499,0.26395"
-         style="fill:none;stroke:#ffffff;stroke-width:2.13330363999999983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="cc"
-         id="path2860"
-         d="m 73.834376,1008.1422 4.251769,3.5005"
-         style="fill:none;stroke:#ffffff;stroke-width:2.13330363999999983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackDragon.svg b/svg/BlackDragon.svg
deleted file mode 100644 (file)
index aa84c5b..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="100"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="BlackFlyingDragon2.svg">
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2824"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2838"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="2"
-     inkscape:cx="80.674579"
-     inkscape:cy="55.693807"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="792"
-     inkscape:window-height="583"
-     inkscape:window-x="62"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(366.71429,-981.93367)">
-    <g
-       id="g3630">
-      <path
-         sodipodi:nodetypes="cccccccccccccccccccccccccccccccccsccccccc"
-         id="path2834"
-         d="m -324.3447,1018.1361 7.38041,2.8188 5.53531,3.9462 5.53531,5.6375 5.53531,9.02 3.07517,10.1475 3.07517,8.4562 4.92027,6.2012 6.76538,3.9463 0,-2.8188 7.38041,6.765 -10.14806,-1.1275 1.53758,-1.6912 -7.38041,-2.255 -4.92027,-5.6375 -4.92028,-5.0737 -6.15034,-7.3288 -4.92028,-3.9462 -5.5353,-3.3825 -5.53531,-3.9462 -5.53531,-5.6375 -4.92028,-8.4563 -1.23006,-5.0737 -3.69021,-6.765 -4.92028,-6.2012 -3.6902,-1.1275 -9.22552,3.9462 -2.46013,-3.3825 0,-3.3825 2.46013,0.5638 6.15035,-1.1275 1.23007,-4.51 3.6902,-2.25501 c 5.40259,-7.58194 -2.48944,1.18601 4.52818,1.77851 3.1683,0.2676 2.0104,-3.34798 3.77478,-4.0335 l -0.92255,7.3287 1.23007,3.9463 1.84511,3.3825 2.46013,4.51 3.69021,3.3825 4.30524,3.3824 z"
-         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.35533404;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path2840"
-         d="m -305.46429,1045.4337 -5.5,-1.5 -5,2 -3,3 4,4.5 3.5,2 -4.5,3.5 -0.5,2 2,2.5 0.5,-3.5 3,-1.5 -0.5,1 4.5,-2 -3,-7.5 4,0 2,-1.5 -1.5,-3 z"
-         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3621"
-         d="m -345.71429,997.9337 c 0.66667,0 -0.0833,-0.083 0.25,0.25 0.0589,0.059 0.25,-0.083 0.25,0 0,0.083 -0.33333,0 -0.25,0 1.11111,0 0.22222,0 0,0"
-         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="ccccc"
-         id="path3656"
-         d="m -327.33598,1034.0094 4.94975,-6.8943 3.35876,7.0711 -4.06587,5.4801 0.17678,-0.1768"
-         style="fill:none;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="cccccc"
-         id="path3658"
-         d="m -313.81516,1044.0302 3.18197,-1.4142 6.36397,1.7678 1.59099,4.0659 -1.94455,1.9445 -2.82842,0"
-         style="fill:none;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         sodipodi:nodetypes="ccccccccccccccccccccc"
-         id="path2831"
-         d="m -327.46429,1034.1837 -9.75,-1 -8.75,1.5 -8.75,3.25 -7,4 -0.5,9.5 1.5,12 3.25,11.75 3.75,-5.25 3.75,-3 4.75,-2.5 6.5,-0.75 5.25,1.5 -2.5,-6.5 -0.5,-5.25 1.5,-6 2.75,-4.25 3.75,-2 4,-1 1.5,-0.5 -4.5,-5.5 z"
-         style="fill:#000000;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" />
-      <path
-         sodipodi:nodetypes="ccccccccccccccccccccc"
-         transform="translate(-366.71429,981.93367)"
-         id="path2833"
-         d="M 49.75,43.75 49,35.75 49,29 51,21.75 55.25,14 60,9 l 8.25,-1.5 9.25,0 7,2 7,2.5 -8,4.5 -3.25,4.25 -2.5,5 -1,4.25 c -0.333333,-0.08333 2.336328,8.000998 1,6 L 71,35 l -6.5,1.5 -5.25,2.75 -2.5,3.5 -1.5,6 -5.5,-5 z"
-         style="fill:#000000;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" />
-      <path
-         id="path3607"
-         d="m -317.96429,1020.1837 4.25,2.25 2.75,2 1.25,0.75 0,0"
-         style="fill:none;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackDuck.svg b/svg/BlackDuck.svg
deleted file mode 100644 (file)
index 99e729b..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="WhiteDuck.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="736"
-     inkscape:window-height="583"
-     id="namedview11"
-     showgrid="false"
-     inkscape:zoom="2.36"
-     inkscape:cx="50"
-     inkscape:cy="51.123439"
-     inkscape:window-x="0"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 50 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="100 : 50 : 1"
-       inkscape:persp3d-origin="50 : 33.333333 : 1"
-       id="perspective13" />
-    <inkscape:perspective
-       id="perspective3624"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2884"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3728">
-    <path
-       sodipodi:nodetypes="cccccccccccccccccc"
-       id="path2890"
-       d="M 94.067797,83.474577 C 84.604585,65.112995 85.394968,49.081921 76.483052,32.627119 73.446329,28.379692 65.536724,20.421132 59.745764,17.372882 53.389832,14.3407 46.398306,15.397508 40.042374,18.008475 34.045286,20.909692 32.400261,26.891786 29.661018,33.050848 21.446493,45.072299 14.814696,46.014649 7.62712,50.847458 4.823917,52.536959 4.941692,53.496216 4.237289,54.661017 4.66472,57.619714 6.086467,58.589781 7.62712,59.322034 l 1.906779,-1.906779 4.872881,0.211864 c -1.879531,1.836158 -3.793952,3.672317 -6.77966,5.508475 l -10e-7,2.542372 c 0.884399,1.515739 10.080498,0.313524 30.508475,-6.77966 2.917376,-0.842524 5.695066,-1.265989 8.050848,-0.423729 3.672316,5.347741 7.344633,8.070064 11.016949,11.228813 2.079697,4.09851 3.805321,7.577391 8.050847,15.466102 1.152692,3.298838 1.318265,2.495304 1.90678,8.050847 11.262673,0.192033 20.163671,-3.158448 26.906779,-9.745762 z"
-       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.20000004999999987;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    <path
-       transform="matrix(-1,0,0,1,96.398306,-0.63559318)"
-       d="m 40.677967,29.449152 a 0.84745765,1.059322 0 1 1 -1.694915,0 0.84745765,1.059322 0 1 1 1.694915,0 z"
-       sodipodi:ry="1.059322"
-       sodipodi:rx="0.84745765"
-       sodipodi:cy="29.449152"
-       sodipodi:cx="39.830509"
-       id="path2892"
-       style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:3.50000000000000000;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       sodipodi:type="arc" />
-    <path
-       sodipodi:nodetypes="cccccccccccccc"
-       id="path3666"
-       d="m 29.449153,33.050848 c 3.933055,3.476594 6.949231,-1.298733 10.381356,-2.330509 -0.553916,4.006697 -1.549974,7.350181 -1.059322,12.923729 0.109812,1.887184 1.659758,3.054302 4.025424,3.81356 0.842525,2.449855 1.265989,5.039397 0.423729,8.050847 l -5.084746,2.966102 C 18.618726,66.199274 13.334759,66.138727 8.898306,66.101695 6.792408,64.621831 7.640244,63.8804 7.627119,62.923729 c 2.672496,-1.534212 3.542239,-1.714453 6.991526,-5.508474 l -5.29661,0 -1.90678,1.906779 C 5.879161,58.845569 5.63687,57.03007 4.661018,54.872882 4.615418,54.012911 5.494985,52.690361 6.567797,51.271187 14.49455,46.396278 23.088611,44.190603 29.449153,33.050848 z"
-       style="fill:#ffffcc;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
-    <path
-       sodipodi:nodetypes="ccc"
-       id="path3668"
-       d="m 14.618645,57.415255 c 2.471751,0.369524 5.155367,0.949571 8.262711,0.423728 8.510908,-5.215089 17.141878,-5.267041 19.491526,-10.169491"
-       style="fill:none;stroke:#000000;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    <path
-       sodipodi:nodetypes="cc"
-       id="path3675"
-       d="m 31.355933,41.949153 -1.271186,0"
-       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    <path
-       sodipodi:nodetypes="cccccccc"
-       id="path3677"
-       d="m 41.737289,50.000001 c -4.057517,4.352872 -14.509012,8.591608 -25,14.830508 l -8.262712,1.059322 -0.635593,-2.542373 7.20339,-5.29661 7.627118,0.211864 c 11.490336,-5.72558 14.908063,-6.054057 19.70339,-9.745762 l -0.635593,1.483051 z"
-       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-  </g>
-</svg>
diff --git a/svg/BlackElephant.svg b/svg/BlackElephant.svg
deleted file mode 100644 (file)
index ccbb26a..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1">
-    <g
-       transform="matrix(1.3537682,0,0,1.3517334,-390.66066,414.06675)"
-       id="g1094"
-       style="display:inline">
-      <path
-         d="m 362.22266,-222.88953 c 0,0 -6.14354,13.63864 -21.50237,17.5705 17.69337,0.98297 25.31135,-16.58754 25.31135,-16.58754 z"
-         inkscape:connector-curvature="0"
-         id="path1058"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.73923463;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 401.04978,-234.31651 c -3.6839,5.58934 -10.37825,8.79973 -16.3418,11.67271 -3.68484,1.7752 -7.6945,2.94064 -10.19826,6.63502 -3.2509,4.79681 -0.65411,12.75322 -4.66909,17.07902 -2.2472,2.42116 -6.03736,3.44628 -9.33817,3.31751 -3.71907,-0.14509 -7.55135,-1.92966 -10.19826,-4.54622 -3.97511,-3.92954 -7.01221,-9.64644 -7.00362,-15.23596 0.008,-5.15179 1.28517,-15.36897 3.56324,-15.35883 1.8969,0.008 3.99952,0.44997 3.93186,2.45741 -0.0475,1.4085 -2.38058,1.94562 -2.45741,3.44038 -0.30658,5.96468 -0.4879,12.80067 2.9489,17.69338 2.21344,3.1511 6.33701,6.57579 10.07539,5.65204 2.55864,-0.63224 4.31678,-3.99946 4.30047,-6.63501 -0.0413,-6.66505 -4.0782,-11.20831 -4.42334,-17.07902 -0.21972,-3.73738 -0.17501,-6.15096 -0.12287,-10.56687 0.01,-0.82419 0.71234,-1.48743 1.10583,-2.21168 0.38564,-0.7098 1.26547,-1.28184 1.22871,-2.0888 -0.26362,-5.78622 -0.3233,-9.65524 0.24574,-14.25299 0.44572,-3.60131 4.98299,-6.27067 8.72382,-6.51214 5.78913,-0.37368 8.13022,-1.04792 13.76151,-0.8601 4.43887,0.14805 10.14055,2.13396 15.35883,4.91483 1.77441,0.9456 2.95021,3.06088 3.31751,5.03769 1.08745,5.85269 -0.53304,12.47726 -3.80899,17.44763 z"
-         inkscape:connector-curvature="0"
-         id="path1060"
-         style="color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.47846925;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 367.19892,-217.7904 c 0,0 -5.83636,12.83998 -21.19519,16.77184 17.69337,0.98297 25.00417,-15.78888 25.00417,-15.78888 z"
-         inkscape:connector-curvature="0"
-         id="path1062"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.73923463;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 368.48906,-222.52093 -0.49149,3.37895 3.68612,1.29014 1.72019,-2.21167"
-         inkscape:connector-curvature="0"
-         id="path1064"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.47846925;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 362.28409,-224.36398 2.27311,0"
-         inkscape:connector-curvature="0"
-         id="path1066"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#ffffcc;stroke-width:1.47846925;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 362.03835,-228.41872 3.62468,0"
-         inkscape:connector-curvature="0"
-         id="path1068"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#ffffcc;stroke-width:1.47846925;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 362.03835,-232.59632 3.74755,0"
-         inkscape:connector-curvature="0"
-         id="path1070"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#ffffcc;stroke-width:1.47846925;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 367.38322,-243.77755 c 0,0 -1.05136,-6.88573 0,-10.07539 0.76546,-2.32228 4.36191,-5.89779 4.36191,-5.89779"
-         inkscape:connector-curvature="0"
-         id="path1072"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.47846925;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 503.8925,-236.0367 a 1.351577,1.351577 0 1 1 -2.70315,0 1.351577,1.351577 0 1 1 2.70315,0 z"
-         transform="translate(-127.78546,0)"
-         id="path1074"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:0.73923463;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 393.92328,-250.53543 c 4.54621,-0.24574 7.71014,-5.80016 11.42697,-4.1776 4.09506,1.78767 5.04951,7.28122 4.05473,11.18123 -2.74411,10.75828 -2.44958,27.22238 -3.07177,29.12034 -6.2664,-0.24574 -6.88075,-20.02792 -10.32113,-20.15079"
-         inkscape:connector-curvature="0"
-         id="path1076"
-         style="color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.47846925;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 393.92328,-250.53543 c 3.03439,-0.16402 5.45298,-2.69304 7.83119,-3.87446"
-         inkscape:connector-curvature="0"
-         id="path1092"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.47846925;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 398.39814,-230.77603 c -0.69873,-2.21349 -1.43424,-3.75223 -2.38606,-3.78622"
-         inkscape:connector-curvature="0"
-         id="path1088"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.47846925;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackFlag.svg b/svg/BlackFlag.svg
deleted file mode 100644 (file)
index 16953d0..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="BlackFlag.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="504"
-     id="namedview11"
-     showgrid="false"
-     inkscape:zoom="1.668772"
-     inkscape:cx="50"
-     inkscape:cy="58.860988"
-     inkscape:window-x="0"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 50 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="100 : 50 : 1"
-       inkscape:persp3d-origin="50 : 33.333333 : 1"
-       id="perspective13" />
-    <inkscape:perspective
-       id="perspective3624"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective3716"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective3716-2"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective3747"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3779">
-    <path
-       sodipodi:nodetypes="ccccc"
-       id="path3619"
-       d="m 12.711864,21.186441 c 21.074722,13.738473 51.147584,-16.5165456 75,0 l 0,43.644067 C 65.073347,47.717811 33.988516,77.130498 13.559322,63.983051 l -0.847458,-42.79661 z"
-       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.20000004999999987;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    <path
-       sodipodi:nodetypes="cccccc"
-       id="path2840"
-       d="m 10.849879,93.958837 -0.571429,-76.90138 2.857143,-9.3213798 2.857142,8.8553108 0,77.367449 -5.142856,0 z"
-       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.21791804px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-    <path
-       transform="matrix(0.84498804,0,0,0.87421513,1.3857655,2.2865217)"
-       d="m 21.610169,11.440678 a 7.2033896,5.5084743 0 1 1 -14.4067794,0 7.2033896,5.5084743 0 1 1 14.4067794,0 z"
-       sodipodi:ry="5.5084743"
-       sodipodi:rx="7.2033896"
-       sodipodi:cy="11.440678"
-       sodipodi:cx="14.406779"
-       id="path3615"
-       style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.55969501;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       sodipodi:type="arc" />
-    <g
-       id="g3773">
-      <path
-         style="fill:none;stroke:#ffffcc;stroke-width:2.19999981;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         d="m 32.746075,31.419753 c 6.787115,0.726186 11.768429,-0.924235 17.565405,-2.574656 l -1e-6,10.100579 c -5.5142,1.614965 -10.578656,3.012199 -17.370232,2.772707 l -0.195172,-10.29863 z"
-         id="path3706"
-         sodipodi:nodetypes="ccccc" />
-      <path
-         style="fill:none;stroke:#ffffcc;stroke-width:2.19999981;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         d="m 32.941246,46.755238 c 6.787115,0.726185 11.768429,-0.924235 17.565405,-2.574655 l -10e-7,10.100577 c -5.5142,1.614966 -10.578657,3.012199 -17.370232,2.772708 l -0.195172,-10.29863 z"
-         id="path3706-2"
-         sodipodi:nodetypes="ccccc" />
-      <path
-         style="fill:none;stroke:#ffffcc;stroke-width:2.19999981;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         d="m 72.560993,35.097122 c -6.787115,-0.726186 -11.768429,0.924235 -17.565405,2.574656 l 1e-6,-10.100579 c 5.5142,-1.614965 10.578657,-3.012199 17.370232,-2.772707 l 0.195172,10.29863 z"
-         id="path3706-8"
-         sodipodi:nodetypes="ccccc" />
-      <path
-         style="fill:none;stroke:#ffffcc;stroke-width:2.19999981;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         d="m 72.756164,50.545066 c -6.787116,-0.726185 -11.76843,0.924236 -17.565406,2.574657 l 10e-7,-10.100578 c 5.5142,-1.614966 10.578657,-3.012199 17.370233,-2.772707 l 0.195172,10.298628 z"
-         id="path3706-8-5"
-         sodipodi:nodetypes="ccccc" />
-    </g>
-    <path
-       sodipodi:nodetypes="cc"
-       id="path3767"
-       d="m 17.512045,25.423729 0.423729,38.135593"
-       style="fill:none;stroke:#ffffcc;stroke-width:2.20000005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-  </g>
-</svg>
diff --git a/svg/BlackGnu.svg b/svg/BlackGnu.svg
deleted file mode 100644 (file)
index c87489c..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="100"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="WhiteGnu.svg">
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2824"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2838"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2903"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="4"
-     inkscape:cx="27.529211"
-     inkscape:cy="32.918578"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="792"
-     inkscape:window-height="583"
-     inkscape:window-x="62"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(366.71429,-981.93367)">
-    <path
-       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m -302.96429,994.68367 c 1.18904,-0.20023 2.49888,-0.58165 5,-2.75 5.3829,-2.46514 10.19974,-2.94909 14.25,-0.75 5.63429,0.8759 8.13122,4.26169 10.5,7.75 1.81376,2.60943 2.68608,6.47413 2.5,11.75003 0.92296,5.9217 -1.14375,9.4516 -3.5,12.75 -4.79245,4.5849 -7.43638,6.1227 -10.25,6.75 0.69782,2.4377 1.6676,3.0815 3,4.25 -1.57788,1.7554 -5.60684,1.0598 -10.5,-0.5 -2.54218,-1.1647 -5.10631,-2.2415 -7,-6 l -2.5,1 5.5,8 4.5,1 c 1.42915,1.495 2.36512,3.1873 0.5,6 l -4.5,4.5 2.75,2 c 0.28652,2.2465 -1.61353,3.0354 -3.25,4 l -0.5,4.75 c -0.7137,1.8696 -3.61319,1.5535 -6.25,1.5 l 0.75,5.25 c 0.16554,1.2914 0.42751,2.6069 -2,3.25 0.34049,1.9797 -0.80291,3.0349 1.86014,5.9567 1.84757,2.0271 0.98558,2.7166 -2.16413,3.1577 -1.04577,0.1464 -3.23349,-2.6263 -4.47453,-1.5404 -2.13998,1.8726 -5.15094,1.4284 -6.57717,-1.2045 -0.82526,-1.5235 -0.77287,-4.2725 -1.14431,-5.8695 l -4.75,-3.75 0.75,4.25 -14,-3.5 c -5.9902,-5.8732 -7.83367,-14.4685 -8.5,-25 -3.5,1.4715 -6.25,1.8528 -9,1.75 2.1486,-3.3695 5.53611,-4.2612 5.25,-12.5 -5.52081,-0.031 -10.05501,-4.5025 -14.25,-10.5 -1.60532,-4.173 -2.60846,-10.2654 -1.25,-16.75 4.20219,-8.93028 10.4286,-12.54 13.82322,-13.39648 6.76706,-1.09064 9.60682,-0.67493 13.25,-0.25 l 5.17678,2.39645 4.5,1.5 c -0.3773,1.45603 -1.80005,1.86661 -3.5,2 l -10.75,0 c -4.6297,0.65727 -8.61975,2.84384 -11.25,7.50003 -1.82016,4.8267 -1.67981,8.6732 0.5,11.5 2,1.75 4,3.0418 6,1.5 8.16782,-6.2817 8.78546,-10.1411 15.5,-14.75 3.55433,-1.2174 6.86131,-1.4453 9.75,0 l 6.5,3.5 c 3.07889,-3.6765 6.62838,-6.31758 13,-2.75 2.41667,1.6301 4.83333,3.0403 7.25,7.25 l 3.75,4.5 c 4.2709,4.4793 6.36926,2.4411 8,-1 1.97363,-3.8553 2.15959,-8.0681 -2.5,-13.25003 -2.26099,-2.95605 -5.08,-3.68 -8,-4 l -7.75,1 c -2.9764,-0.58566 -3.65476,-1.00741 -4,-2.25 z"
-       id="path2911"
-       sodipodi:nodetypes="cccccccccccccccccccccssssccccccccccccccccccccccccccccc" />
-    <path
-       style="fill:none;stroke:#ffffcc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m -346.96429,1031.1837 c 3.4576,-7.7924 6.93425,-15.5658 16.25,-17.5 5.69119,0.2034 10.64177,-0.704 15,-2.5 2.34977,3.3345 4.98389,5.2472 8,5.25 0.15853,-2.1748 1.26384,-3.4029 2.75,-4.25 l 4.5,1.25 c 4.64607,0.8623 8.17876,2.3927 9.5,5.25 l 6.75,11.75"
-       id="path3592"
-       sodipodi:nodetypes="cccccccc" />
-    <path
-       style="fill:none;stroke:#ffffcc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m -343.46429,1041.6837 c 6.97482,-1.7752 11.93979,-5.5602 14.25,-12"
-       id="path3594"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;stroke:#ffffcc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m -335.46429,1038.1837 c 0.18076,3.4307 0.74164,7.2416 2.25,12 1.89866,2.0293 3.75583,3.9341 5,4 -0.37492,1.3646 -1.61742,2.5123 0.5,4.5 2.51817,1.628 5.12699,3.2711 3.75,4.25 l -1,2 4,4"
-       id="path3596"
-       sodipodi:nodetypes="ccccccc" />
-    <path
-       style="fill:none;stroke:#ffffcc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m -295.46429,1053.9337 -11.25,0.75 c -4.14768,0.731 -5.70663,-1.1267 -7.25,-3 l -4.75,-7.25"
-       id="path3598"
-       sodipodi:nodetypes="cccc" />
-    <path
-       style="fill:none;stroke:#ffffcc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m -302.96429,1060.9337 -6.75,0"
-       id="path3600" />
-    <path
-       style="fill:none;stroke:#ffffcc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m -330.46429,1021.9337 c 4.14618,-6.1257 9.64535,-7.7074 5.75,-2"
-       id="path3602"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;stroke:#ffffcc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m -318.71429,1020.1837 c 1.90011,0.3457 3.48006,0.9316 2.75,3.25 l -5.25,1 c -1.30367,0.4694 -2.32376,1.0452 -1,2.5 l 1.75,1.75"
-       id="path3604"
-       sodipodi:nodetypes="ccccc" />
-    <path
-       style="fill:none;stroke:#ffffcc;stroke-width:1.50000000000000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m -300.58929,1040.0587 -6.75,-4 c -2.01023,-1.0179 -5.30846,-0.9148 -6.75,0.75 l 0.125,4.5 c 0.51551,-2.2791 1.31812,-3.5533 2.5,-3.5"
-       id="path3606"
-       sodipodi:nodetypes="ccccc" />
-    <path
-       style="fill:none;stroke:#ffffcc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m -304.96429,1043.3087 c -1.83333,-2.9408 -3.66667,-3.2391 -5.5,-2.875 0.0951,0.7441 -0.0134,1.0275 1.375,1.125"
-       id="path3608"
-       sodipodi:nodetypes="ccc" />
-    <path
-       style="fill:none;stroke:#ffffcc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m -321.08929,1024.4337 c 0.875,1.0356 2.25,2.1402 3.125,1.75 l 0.83155,-1.4505 1.04345,-1.2995"
-       id="path3610"
-       sodipodi:nodetypes="cccc" />
-    <path
-       style="fill:none;stroke:#ffffcc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m -300.58929,1013.3087 c -0.13434,1.0379 -0.58126,1.9508 0.875,3.625 0.68599,1.3445 1.10507,3.9474 1.125,5.625 1.11722,3.5465 -1.86338,1.8826 -2.75,4.25 -0.16588,-1.9423 -1.09411,-3.7247 -2.25,-2.75 -0.83267,-2.9906 0.33125,-5.4867 1.375,-6.375"
-       id="path3612"
-       sodipodi:nodetypes="cccccc" />
-    <path
-       style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       d="m -304.66567,1069.9129 -1.94454,-0.5304 c -1.9721,1.1196 -4.03366,2.2392 -4.5962,3.3588 l 0.17678,2.8284 -2.82843,-3.182 c -1.0902,-2.3864 -2.5097,-4.4435 -3.18198,-7.2478 -1.94289,-0.737 -1.81308,-1.9922 -1.94454,-3.182 l -2.2981,2.8284 5.83363,4.2427 c 0.59062,11.3644 4.83619,6.9864 7.6014,6.5407 3.76134,1.7846 7.68641,3.7239 3.18198,-2.2981 l 0,-3.3587 z"
-       id="path3614"
-       sodipodi:nodetypes="cccccccccccc" />
-    <path
-       style="fill:none;stroke:#ffffcc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m -312.7974,1005.2126 c 2.71175,1.9509 4.06339,3.7 4.41942,5.6568"
-       id="path3616"
-       sodipodi:nodetypes="cc" />
-  </g>
-</svg>
diff --git a/svg/BlackGold.svg b/svg/BlackGold.svg
deleted file mode 100644 (file)
index 12b0aab..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165632)"
-     id="layer1">
-    <g
-       transform="matrix(1.4397338,0,0,1.4323456,-427.27584,-296.75097)"
-       id="g809"
-       style="display:inline">
-      <path
-         d="m 352.85434,297.73055 c 0.28187,6.17991 15.97439,8.70112 24.70538,8.7015 8.82584,3.8e-4 24.7356,-5.0937 24.97454,-8.79385 4.38524,-4.0222 3.65234,-18.32756 -0.19787,-20.73151 -2.02583,-22.88424 -31.77297,-24.5101 -43.77138,-10.75047 -7.59734,4.81302 -8.43194,15.29598 -5.97982,21.98462 -1.34056,2.63987 -2.00858,5.34718 0.26915,9.58971 z"
-         inkscape:connector-curvature="0"
-         id="path727"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.39272392;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 361.06363,266.31012 c 13.17013,0.92202 28.67691,4.08366 39.7707,9.67069"
-         inkscape:connector-curvature="0"
-         id="path729"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.39272392;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 354.34596,287.97615 c 10.79963,-2.39824 27.95484,1.27767 47.05642,8.51284"
-         inkscape:connector-curvature="0"
-         id="path731"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.39272392;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 354.78824,296.70491 c 9.53971,-6.46677 24.25533,-9.69964 46.56001,-0.11304"
-         inkscape:connector-curvature="0"
-         id="path733"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.39272392;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 379.14976,285.59484 4.07733,-7.27528 -1.7411,-4.01073 -4.67246,0 -1.79446,4.01073 z"
-         inkscape:connector-curvature="0"
-         id="path790"
-         style="color:#000000;fill:#fdfdca;fill-opacity:1;stroke:#ffffcc;stroke-width:1.39272392;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackGoldKnight.svg b/svg/BlackGoldKnight.svg
deleted file mode 100644 (file)
index 526b0ce..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165632)"
-     id="layer1">
-    <g
-       transform="matrix(1.4414113,0,0,1.4323996,-796.24473,-297.33175)"
-       id="g835"
-       style="display:inline">
-      <path
-         d="m 608.39143,298.12446 c 0.28187,6.17991 15.97439,8.70112 24.70538,8.7015 8.82584,3.8e-4 24.7356,-5.0937 24.97454,-8.79385 4.38524,-4.0222 3.65234,-18.32756 -0.19787,-20.73151 -2.02583,-22.88424 -31.77297,-24.5101 -43.77138,-10.75047 -7.59734,4.81302 -8.43194,15.29598 -5.97982,21.98462 -1.34056,2.63987 -2.00858,5.34718 0.26915,9.58971 z"
-         inkscape:connector-curvature="0"
-         id="path667"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.39188683;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 616.60072,266.70403 c 13.17013,0.92202 28.67691,4.08366 39.7707,9.67069"
-         inkscape:connector-curvature="0"
-         id="path669"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.39188683;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 609.88305,288.37006 c 10.79963,-2.39824 27.95484,1.27767 47.05642,8.51284"
-         inkscape:connector-curvature="0"
-         id="path671"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.39188683;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 610.32533,297.09882 c 9.53971,-6.46677 24.25533,-9.69964 46.56001,-0.11304"
-         inkscape:connector-curvature="0"
-         id="path673"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.39188683;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 636.3415,273.125 c -3.93394,0 -7.125,3.19106 -7.125,7.125 0,3.93394 3.19106,7.125 7.125,7.125 1.81618,0 3.4606,-0.69358 4.71875,-1.8125 -0.17971,0.0183 -0.37798,0.0312 -0.5625,0.0312 -2.95238,0 -5.34375,-2.39138 -5.34375,-5.34375 0,-2.95237 2.39137,-5.34375 5.34375,-5.34375 0.18452,0 0.38279,-0.0183 0.5625,0 -1.25693,-1.11367 -2.90735,-1.78125 -4.71875,-1.78125 z"
-         inkscape:connector-curvature="0"
-         id="path825"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#ffffcc;stroke-width:0.06959434;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackGoldLance.svg b/svg/BlackGoldLance.svg
deleted file mode 100644 (file)
index b79940d..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165632)"
-     id="layer1">
-    <g
-       transform="matrix(1.4426991,0,0,1.4388057,-58.771895,-299.50696)"
-       id="g783"
-       style="display:inline">
-      <path
-         d="m 96.64974,298.27017 c 0.28187,6.17991 15.97439,8.70112 24.70538,8.7015 8.82584,3.8e-4 24.7356,-5.0937 24.97454,-8.79385 4.38524,-4.0222 3.65234,-18.32756 -0.19787,-20.73151 -2.02583,-22.88424 -31.77297,-24.5101 -43.77138,-10.75047 -7.59734,4.81302 -8.43194,15.29598 -5.97982,21.98462 -1.34056,2.63987 -2.00858,5.34718 0.26915,9.58971 z"
-         inkscape:connector-curvature="0"
-         id="path707"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.38816488;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 104.85903,266.84974 c 13.17013,0.92202 28.67691,4.08366 39.7707,9.67069"
-         inkscape:connector-curvature="0"
-         id="path709"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.38816488;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 98.14136,288.51577 c 10.79963,-2.39824 27.95484,1.27767 47.05642,8.51284"
-         inkscape:connector-curvature="0"
-         id="path711"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.38816488;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 98.58364,297.24453 c 9.53971,-6.46677 24.25533,-9.69964 46.56001,-0.11304"
-         inkscape:connector-curvature="0"
-         id="path713"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.38816488;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 255.69199,279.93628 a 5.4720078,5.4720078 0 1 1 -10.94401,0 5.4720078,5.4720078 0 1 1 10.94401,0 z"
-         transform="translate(-126.98319,0)"
-         id="path766"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.38816488;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackGoldPawn.svg b/svg/BlackGoldPawn.svg
deleted file mode 100644 (file)
index 980317c..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165632)"
-     id="layer1">
-    <g
-       transform="matrix(1.4431377,0,0,1.4411416,310.72872,-481.19704)"
-       id="g573"
-       style="display:inline">
-      <path
-         d="m -159.42716,423.84633 c 0.28187,6.17991 15.97439,8.70112 24.70538,8.7015 8.82584,3.8e-4 24.7356,-5.0937 24.97454,-8.79385 4.38524,-4.0222 3.65234,-18.32756 -0.19787,-20.73151 -2.02583,-22.88424 -31.77297,-24.5101 -43.77138,-10.75047 -7.59734,4.81302 -8.43194,15.29598 -5.97982,21.98462 -1.34056,2.63987 -2.00858,5.34718 0.26915,9.58971 z"
-         inkscape:connector-curvature="0"
-         id="path362"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.38682854;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -151.21787,392.4259 c 13.17013,0.92202 28.67691,4.08366 39.7707,9.67069"
-         inkscape:connector-curvature="0"
-         id="path364"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.38682854;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -157.93554,414.09193 c 10.79963,-2.39824 27.95484,1.27767 47.05642,8.51284"
-         inkscape:connector-curvature="0"
-         id="path366"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.38682854;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -157.49326,422.82069 c 9.53971,-6.46677 24.25533,-9.69964 46.56001,-0.11304"
-         inkscape:connector-curvature="0"
-         id="path368"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.38682854;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackGoldSilver.svg b/svg/BlackGoldSilver.svg
deleted file mode 100644 (file)
index 28ecb9d..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165632)"
-     id="layer1">
-    <g
-       transform="matrix(1.4422649,0,0,1.4365713,-58.211502,-479.72548)"
-       id="g756"
-       style="display:inline">
-      <path
-         d="m 96.29799,424.19808 c 0.28187,6.17991 15.97439,8.70112 24.70538,8.7015 8.82584,3.8e-4 24.7356,-5.0937 24.97454,-8.79385 4.38524,-4.0222 3.65234,-18.32756 -0.19787,-20.73151 -2.02583,-22.88424 -31.77297,-24.5101 -43.77138,-10.75047 -7.59734,4.81302 -8.43194,15.29598 -5.97982,21.98462 -1.34056,2.63987 -2.00858,5.34718 0.26915,9.58971 z"
-         inkscape:connector-curvature="0"
-         id="path687"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.38945305;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 104.50728,392.77765 c 13.17013,0.92202 28.67691,4.08366 39.7707,9.67069"
-         inkscape:connector-curvature="0"
-         id="path689"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.38945305;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 97.78961,414.44368 c 10.79963,-2.39824 27.95484,1.27767 47.05642,8.51284"
-         inkscape:connector-curvature="0"
-         id="path691"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.38945305;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 98.23189,423.17244 c 9.53971,-6.46677 24.25533,-9.69964 46.56001,-0.11304"
-         inkscape:connector-curvature="0"
-         id="path693"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.38945305;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 252.00261,411.96351 -3.39735,-3.01802 -3.93903,2.26594 1.82046,-4.16369 -3.37226,-3.04603 4.52246,0.44471 1.85485,-4.14849 0.97457,4.43855 4.51863,0.48211 -3.92014,2.29846 z"
-         transform="matrix(0.87388966,-0.0876486,0.08773684,0.87301075,-131.57771,73.053667)"
-         id="path739"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#ffffcc;stroke-width:1.58280694;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackHCrown.svg b/svg/BlackHCrown.svg
deleted file mode 100644 (file)
index 6c28d67..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="BlackPrincess.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="487"
-     id="namedview19"
-     showgrid="false"
-     inkscape:zoom="2.36"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="25"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 50 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="100 : 50 : 1"
-       inkscape:persp3d-origin="50 : 33.333333 : 1"
-       id="perspective21" />
-  </defs>
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="matrix(0,1,-1,0,153.07625,-67.67229)"
-     id="layer1">
-    <g
-       transform="matrix(1.2596048,0,0,1.2596048,289.23085,230.95079)"
-       id="g785"
-       style="display:inline">
-      <path
-         d="m -156.47216,-94.874455 -4.26455,-25.678565 13.9998,24.343464"
-         inkscape:connector-curvature="0"
-         id="path759"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.58779967;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -147.53286,-95.88723 2.24615,-30.00621 9.5955,27.886232 z"
-         inkscape:connector-curvature="0"
-         id="path761"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.58779967;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -115.90261,-94.82073 3.71313,-24.84222 -13.39901,23.408891"
-         inkscape:connector-curvature="0"
-         id="path763"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.58779967;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -124.90445,-95.734359 -2.37837,-29.892061 -8.86156,28.106514 z"
-         inkscape:connector-curvature="0"
-         id="path765"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.58779967;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -119.72211,-75.003615 c 0,2.494743 -7.32288,4.517114 -16.3561,4.517114 -9.03322,0 -16.3561,-2.022371 -16.3561,-4.517114 l 2.32529,-6.475256 -0.0643,-6.631027 -5.81139,-6.453037 4.35812,-3.075207 4.1094,1.001045 5.74678,-2.877825 5.77127,1.347215 5.20349,-1.347215 5.2463,2.877825 4.86129,-1.001045 4.29553,3.075207 -5.81005,6.453037 0.0603,6.631027 z"
-         inkscape:connector-curvature="0"
-         id="path767"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.58779979;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -148.95013,-88.785387 c 2.99191,-1.065977 7.67325,-1.752122 12.93486,-1.752122 4.87905,0 9.25913,0.589996 12.25587,1.525744"
-         inkscape:connector-curvature="0"
-         id="path769"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.58779979;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -35.496787,129.14731 a 3.776254,3.776254 0 1 1 -7.552508,0 3.776254,3.776254 0 1 1 7.552508,0 z"
-         transform="matrix(0.94504751,0,0,0.94166667,-124.72108,-244.63895)"
-         id="path771"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.68314004;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -35.496787,129.14731 a 3.776254,3.776254 0 1 1 -7.552508,0 3.776254,3.776254 0 1 1 7.552508,0 z"
-         transform="matrix(0.94504751,0,0,0.94166667,-73.5917,-244.56074)"
-         id="path773"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.68314004;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -35.496787,129.14731 a 3.776254,3.776254 0 1 1 -7.552508,0 3.776254,3.776254 0 1 1 7.552508,0 z"
-         transform="matrix(0.94504751,0,0,0.94166667,-89.629862,-250.59195)"
-         id="path775"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.68314004;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -35.496787,129.14731 a 3.776254,3.776254 0 1 1 -7.552508,0 3.776254,3.776254 0 1 1 7.552508,0 z"
-         transform="matrix(0.94504751,0,0,0.94166667,-108.61241,-250.61038)"
-         id="path777"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.68314004;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -147.82599,-82.093587 c 2.97713,-0.857995 7.16803,-1.392212 11.81072,-1.392212 4.27282,0 8.16296,0.452487 11.07644,1.19342"
-         inkscape:connector-curvature="0"
-         id="path781"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.58779979;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -149.85434,-77.004684 a 1.007001,0.53496927 0 1 1 -2.014,0 1.007001,0.53496927 0 1 1 2.014,0 z"
-         transform="matrix(1,0,0,0.95588235,-0.03933598,-3.491672)"
-         id="path783"
-         style="color:#000000;fill:#ffffcc;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackHSword.svg b/svg/BlackHSword.svg
deleted file mode 100644 (file)
index abb38d1..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="100"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="BlackHSword.svg">
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2824"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2838"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="5.6"
-     inkscape:cx="54.904244"
-     inkscape:cy="34.708552"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="792"
-     inkscape:window-height="655"
-     inkscape:window-x="62"
-     inkscape:window-y="25"
-     inkscape:window-maximized="0" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(366.71429,-981.93367)">
-    <g
-       id="g3599"
-       transform="matrix(1,0,0,1.1286567,0,-136.71042)">
-      <path
-         sodipodi:nodetypes="cccccc"
-         id="path3687"
-         d="m -270.42482,1041.7792 -10.32341,-9.3014 -54.35055,-0.1786 0,18.9597 53.89325,0 10.78071,-9.4797 z"
-         style="fill:#000000;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <rect
-         transform="matrix(0,1,-1,0,0,0)"
-         y="335.26187"
-         x="1021.9576"
-         height="7.3214288"
-         width="39.642857"
-         id="rect3689"
-         style="fill:#000000;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <rect
-         transform="matrix(0,1,-1,0,0,0)"
-         y="342.71426"
-         x="1036.7313"
-         height="19.202518"
-         width="9.0239458"
-         id="rect3693"
-         style="fill:#000000;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3701"
-         d="m -282.35544,1041.779 -52.24134,0"
-         style="fill:#ffffff;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3777"
-         d="m -343.5,1037.2908 0,7.8572"
-         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3781"
-         d="m -334.21429,1033.1837 0,17.3214"
-         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackHat.svg b/svg/BlackHat.svg
deleted file mode 100644 (file)
index b00a0af..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="100"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="BlackHat.svg">
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2824"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2838"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="1.979899"
-     inkscape:cx="23.076122"
-     inkscape:cy="72.984153"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="792"
-     inkscape:window-height="583"
-     inkscape:window-x="62"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(366.71429,-981.93367)">
-    <g
-       id="g3652"
-       transform="matrix(1.1,0,0,1.1,30.484244,-106.6056)">
-      <path
-         sodipodi:nodetypes="cccc"
-         id="path3592"
-         d="m -337.92495,1051.6291 -0.50507,-44.4467 c -0.98602,-13.25383 46.77924,-13.34001 45.45686,-0.5051 l 0,44.9517"
-         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="ccccc"
-         id="path3596"
-         d="m -338.89231,1061.6879 0.50508,-19.6124 c -1.82895,-11.4208 45.85254,-11.3027 44.86621,0 l 1.01015,19.1073 -46.38144,0.5051 z"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.28557611;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         transform="translate(-365.70414,979.91336)"
-         d="m 89.903576,82.069794 c 0,6.834175 -17.525102,12.374368 -39.14341,12.374368 -21.618308,0 -39.14341,-5.540193 -39.14341,-12.374368 0,-6.834175 17.525102,-12.374369 39.14341,-12.374369 21.618308,0 39.14341,5.540194 39.14341,12.374369 z"
-         sodipodi:ry="12.374369"
-         sodipodi:rx="39.14341"
-         sodipodi:cy="82.069794"
-         sodipodi:cx="50.760166"
-         id="path2818"
-         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.20000005;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         sodipodi:type="arc" />
-      <path
-         transform="matrix(0.90342936,0,0,0.85120259,-360.41906,1055.2591)"
-         d="m 74.246212,9.0862713 c 0,4.1841887 -11.080387,7.5761447 -24.748737,7.5761447 -13.668351,0 -24.748738,-3.391956 -24.748738,-7.5761447 0,-4.1841889 11.080387,-7.5761442 24.748738,-7.5761442 13.66835,0 24.748737,3.3919553 24.748737,7.5761442 z"
-         sodipodi:ry="7.5761442"
-         sodipodi:rx="24.748737"
-         sodipodi:cy="9.0862713"
-         sodipodi:cx="49.497475"
-         id="path3594"
-         style="fill:#000000;fill-opacity:1;stroke:#ffffcc;stroke-width:2.50875998;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         sodipodi:type="arc" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackHawk.svg b/svg/BlackHawk.svg
deleted file mode 100644 (file)
index cb3a971..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1">
-    <g
-       transform="matrix(1.4044081,0,0,1.4981867,308.98529,-315.38993)"
-       id="g550"
-       style="display:inline">
-      <path
-         d="m -137.84375,253.21875 c -15.93684,-0.081 -21.27804,13.65596 -21,36.6875 0.0269,2.2323 0.28956,4.34655 0.65625,6.28125 -0.58192,-0.46749 -1.25785,-0.78175 -2.0625,-0.78125 -1.97039,10e-4 -3.663,2.12352 -3.6875,4.8125 -0.0403,4.43076 3.3125,5.1875 3.3125,5.1875 l 5.3125,0 0.375,0 46.28125,0 c 0,0 0.0458,-1.73595 0,-3.25 -0.13726,-3.02449 -14.53168,-15.67064 -15.8125,-16.375 -1.05945,-0.58263 -4.221,-1.69514 -4.25,-3.9375 -0.0217,-1.68084 1.71675,-4.75 1.71875,-4.75 l -4,-3.4375 5.0625,-1.71875 8.59375,-5.875 c 0,0 -4.56819,-12.76275 -20.5,-12.84375 z"
-         inkscape:connector-curvature="0"
-         id="path510"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.37879717;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -155.75377,304.40058 c -0.61979,-1.49631 -1.75463,-4.55527 -2.46017,-8.3776"
-         inkscape:connector-curvature="0"
-         id="path512"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.37879717;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -130.93911,273.65952 3.27566,-1.27957 c 5.44306,-0.20159 14.47578,1.87662 14.47578,1.87662 -1.98235,0.60478 -8.02993,2.62352 -14.64896,2.15313 z"
-         inkscape:connector-curvature="0"
-         id="path514"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.03409791;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -118.10969,266.29448 c 5.63554,0.75158 9.27958,1.13268 7.93524,12.78191 -0.16631,-8.05402 -19.93313,-5.84452 -19.93313,-5.84452 z"
-         inkscape:connector-curvature="0"
-         id="path516"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.03409791;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -138.49422,285.91875 3.32615,-1.23543"
-         inkscape:connector-curvature="0"
-         id="path518"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffcc;stroke-width:1.37879717;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -132.39731,284.15174 2.08555,-0.75064"
-         inkscape:connector-curvature="0"
-         id="path520"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffcc;stroke-width:1.37879717;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -129.84673,264.39671 c 0,-1.35022 -1.64166,-3.51039 -5.30026,-3.49941 -3.47731,0.0104 -6.37937,3.98825 -9.64871,4.01921 3.2633,-0.005 6.02368,2.88608 9.54841,2.98488 3.36511,0.0943 5.40056,-2.23223 5.40056,-3.50468 z"
-         inkscape:connector-curvature="0"
-         id="path522"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:0.68939859;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -4.8466709,264.72644 a 1.615557,1.615557 0 1 1 -3.2311139,0 1.615557,1.615557 0 1 1 3.2311139,0 z"
-         transform="translate(-128.34877,-0.31919197)"
-         id="path524"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#ffffcc;stroke-width:0.68939859;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 7.6976539,265.29663 a 1.4254915,1.4254915 0 1 1 -2.8509829,0 1.4254915,1.4254915 0 1 1 2.8509829,0 z"
-         transform="translate(-128.23117,-0.35279113)"
-         id="path526"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#ffffcc;stroke-width:0.51704895;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -133.13146,303.81483 c -0.453,-1.38212 -0.76635,-2.98758 -0.75367,-4.49646 0.0224,-2.67119 2.60358,-8.98648 9.40825,-8.98059 2.32863,0.002 6.17005,3.41317 9.54153,6.13028"
-         inkscape:connector-curvature="0"
-         id="path540"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.37879717;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -127.83663,276.4097 -3.10248,-2.75018 1.04035,-0.49893"
-         inkscape:connector-curvature="0"
-         id="path546"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:0.68939859;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -116.60562,274.78618 c -5.8538,-2.17836 -13.36756,-1.58791 -13.36756,-1.58791 0,0 8.63797,-3.61107 11.86349,-6.90379"
-         inkscape:connector-curvature="0"
-         id="path548"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:0.68939859;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackIron.svg b/svg/BlackIron.svg
deleted file mode 100644 (file)
index 6b42471..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="100"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="BlackIronsvg.svg">
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2824"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2838"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="2"
-     inkscape:cx="52.657835"
-     inkscape:cy="23.437927"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="792"
-     inkscape:window-height="583"
-     inkscape:window-x="62"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(366.71429,-981.93367)">
-    <g
-       id="g4403">
-      <path
-         sodipodi:nodetypes="cc"
-         id="path2847"
-         d="m -351.1696,1043.9436 c 10.55752,-49.108 57.80389,-49.87413 69.93337,0"
-         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         transform="matrix(0.99166208,0,0,0.99790237,-365.54493,978.102)"
-         d="m 86,80.25 a 36,7.75 0 1 1 -72,0 36,7.75 0 1 1 72,0 z"
-         sodipodi:ry="7.75"
-         sodipodi:rx="36"
-         sodipodi:cy="80.25"
-         sodipodi:cx="50"
-         id="path2845"
-         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.54580927;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         sodipodi:type="arc" />
-      <rect
-         y="1043.9337"
-         x="-351.71429"
-         height="13"
-         width="71.5"
-         id="rect3879"
-         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="cccc"
-         id="path3637"
-         d="m -352.69154,1058.414 c -0.84832,-10.4606 73.32148,-10.3129 72.93384,0.4972 l 0.52095,0 0,0"
-         style="fill:none;stroke:#ffffff;stroke-width:2.54491472;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         style="fill:none;stroke:#ffffff;stroke-width:2.54491472;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         d="m -352.69154,1041.914 c -0.84832,-10.4606 73.32148,-10.3129 72.93384,0.4972 l 0.52095,0 0,0"
-         id="path4391"
-         sodipodi:nodetypes="cccc" />
-      <path
-         transform="matrix(1.032667,0,0,0.85783357,-367.85581,1009.836)"
-         d="m 52.5,38 a 2.25,3 0 1 1 -4.5,0 2.25,3 0 1 1 4.5,0 z"
-         sodipodi:ry="3"
-         sodipodi:rx="2.25"
-         sodipodi:cy="38"
-         sodipodi:cx="50.25"
-         id="path4393"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         sodipodi:type="arc" />
-      <path
-         sodipodi:type="arc"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         id="path4395"
-         sodipodi:cx="50.25"
-         sodipodi:cy="38"
-         sodipodi:rx="2.25"
-         sodipodi:ry="3"
-         d="m 52.5,38 a 2.25,3 0 1 1 -4.5,0 2.25,3 0 1 1 4.5,0 z"
-         transform="matrix(0.67341665,0,0,0.92172914,-376.80348,1009.9079)" />
-      <path
-         transform="matrix(1.032667,0,0,0.85783357,-382.85581,1010.336)"
-         d="m 52.5,38 a 2.25,3 0 1 1 -4.5,0 2.25,3 0 1 1 4.5,0 z"
-         sodipodi:ry="3"
-         sodipodi:rx="2.25"
-         sodipodi:cy="38"
-         sodipodi:cx="50.25"
-         id="path4397"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         sodipodi:type="arc" />
-      <path
-         sodipodi:type="arc"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         id="path4399"
-         sodipodi:cx="50.25"
-         sodipodi:cy="38"
-         sodipodi:rx="2.25"
-         sodipodi:ry="3"
-         d="m 52.5,38 a 2.25,3 0 1 1 -4.5,0 2.25,3 0 1 1 4.5,0 z"
-         transform="matrix(1.032667,0,0,0.85783357,-353.35581,1010.336)" />
-      <path
-         transform="matrix(0.67341665,0,0,0.92172914,-322.80348,1009.908)"
-         d="m 52.5,38 a 2.25,3 0 1 1 -4.5,0 2.25,3 0 1 1 4.5,0 z"
-         sodipodi:ry="3"
-         sodipodi:rx="2.25"
-         sodipodi:cy="38"
-         sodipodi:cx="50.25"
-         id="path4401"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         sodipodi:type="arc" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackKing.svg b/svg/BlackKing.svg
deleted file mode 100644 (file)
index e89058d..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1">
-    <g
-       transform="matrix(1.4145524,0,0,1.3664471,-414.49495,240.03714)"
-       id="g1249"
-       style="display:inline">
-      <path
-         d="m 396.03869,-75.612106 c 0,2.202134 -8.92592,3.987316 -19.93658,3.987316 -11.01068,0 -19.93659,-1.785182 -19.93659,-3.987316 l -1.5868,-14.572313 c 0,0 -9.59362,-5.738758 -9.56142,-12.728611 0.0271,-5.89722 4.61758,-11.88102 13.18257,-11.7992 11.91497,0.11381 17.98361,12.16539 17.98361,22.011619 0,-9.846229 6.03661,-21.962729 18.14636,-22.011619 8.50951,-0.0344 13.13417,5.96559 12.93843,11.7992 -0.24322,7.248865 -9.6205,12.728611 -9.6205,12.728611 z"
-         inkscape:connector-curvature="0"
-         id="path1112"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.43854702;stroke-linejoin:bevel;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 376.1614,-121.625 c -3.30496,0 -6,3.58279 -6,8 l 0.0312,4.28125 c 4.05336,4.43574 6.09375,10.935666 6.09375,16.65625 0,-5.566419 1.94725,-11.85427 5.8125,-16.28125 l 0.0312,-4.65625 c 0,-4.41721 -2.66378,-8 -5.96875,-8 z"
-         inkscape:connector-curvature="0"
-         id="path1120"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.43854702;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 376.14573,-134.60235 0,13.544"
-         inkscape:connector-curvature="0"
-         id="path1122"
-         style="color:#000000;fill:none;stroke:#000000;stroke-width:1.43854702;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 371.16818,-129.62952 9.95509,0"
-         inkscape:connector-curvature="0"
-         id="path1124"
-         style="color:#000000;fill:none;stroke:#000000;stroke-width:1.43854702;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 376.19678,-119.64383 c -1.35828,-0.0579 -2.41056,1.05958 -3.05812,2.11677 -1.13906,1.8596 -1.21079,4.3293 -0.87291,6.4837 0.47169,3.00759 2.96709,5.44315 3.93103,8.24376 1.17407,-2.80864 3.39687,-5.24495 3.84606,-8.24376 0.32328,-2.15825 0.21913,-4.61505 -0.90812,-6.4837 -0.62347,-1.03353 -1.57966,-2.05887 -2.93794,-2.11677 z"
-         inkscape:connector-curvature="0"
-         id="path1140"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffcc;stroke-width:1.43854702;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 358.3626,-89.696176 c 0,0 -11.31095,-7.362398 -11.31095,-13.216854 0,-5.89728 5.18498,-9.68348 11.14822,-9.68348 11.91551,0 15.86789,13.223249 15.86789,19.895899 l 4.23144,0 c 0,-6.591276 3.92079,-19.814529 16.03064,-19.814529 5.82436,0 11.01844,3.7685 10.82271,9.60211 -0.21595,6.436042 -11.12592,13.298228 -11.12592,13.298228"
-         inkscape:connector-curvature="0"
-         id="path1187"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.43854702;stroke-linejoin:bevel;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 357.97138,-76.521159 c 3.12838,-1.383367 10.08933,-3.078265 18.17434,-3.078265 7.9975,0 14.89514,1.714861 18.07142,3.074182"
-         inkscape:connector-curvature="0"
-         id="path1118"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.43854702;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 358.14798,-82.114118 c 3.20838,-1.439392 10.06152,-2.433742 17.99774,-2.433742 7.71628,0 14.4087,0.940001 17.72267,2.31511"
-         inkscape:connector-curvature="0"
-         id="path1114"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.43854702;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 357.34698,-89.742695 c 3.36918,-1.692734 10.52079,-2.860767 18.79874,-2.860767 8.39113,0 15.62491,1.20019 18.93481,2.930489"
-         inkscape:connector-curvature="0"
-         id="path1116"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.43854725;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackKnight.svg b/svg/BlackKnight.svg
deleted file mode 100644 (file)
index 074c4c0..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1">
-    <g
-       transform="matrix(1.3469552,0,0,1.3439388,-44.362081,70.37686)"
-       id="g4342"
-       style="display:inline">
-      <path
-         d="m 117.59375,-7.4375 c -1.30079,1.9412559 -3.1617,3.8683596 -3.4375,6.28125 -0.71269,0.61140495 -1.73255,0.033211 -2.56825,0.20879963 -0.84476,-0.022977 -1.81964,-0.33376403 -2.01445,-1.23204893 C 108.7962,-3.3806014 107.73122,-4.4820808 106.375,-5 c -0.47032,-0.573274 -1.25306,-0.7390597 -1.9375,-0.96875 -0.56725,1.2034126 0.28172,2.455042 0.072,3.6997736 0.0902,1.6379763 -0.10305,3.3499997 -0.67872,4.8658443 -1.92524,1.7500119 -3.78467,3.7082271 -4.64329,6.2156321 -1.054746,2.32796 -0.766695,5.022024 -1.844496,7.345987 -1.26018,3.964917 -4.333914,6.987395 -6.035323,10.73697 -1.212364,2.312367 -1.847669,5.158078 -0.745181,7.635793 0.516567,1.113146 1.509792,2.021725 2.658078,2.466909 1.526212,0.512976 3.193014,0.250139 4.685672,-0.216909 0.683142,0.03748 0.906835,0.665657 1.1875,1.125 0.757752,0.923474 2.58957,0.71881 3.0625,-0.28125 1.08568,-1.10138 1.7524,-2.410544 2.79217,-3.521923 1.62508,-1.924274 3.31525,-3.817699 5.27033,-5.415577 1.01179,-0.61385 2.21118,-1.304256 3.36208,-1.821664 2.98365,-1.40635 5.80474,-3.17807 8.54417,-4.990836 0.29772,0.113851 -0.0225,0.795021 0.0625,1.125 0.0241,3.217614 -0.75935,6.506936 -2.4295,9.271344 -0.91428,1.473789 -1.92908,2.722948 -3.13041,4.000434 -1.90645,2.084583 -3.5835,4.373058 -5.31039,6.622324 -1.80989,2.544262 -3.47089,5.316642 -4.0672,8.418398 0.0515,0.551026 -0.44634,1.44308 0.28035,1.662139 0.77911,0.296598 1.64514,-0.05573 2.45715,0.08694 13.49374,-0.05798 26.98775,-0.0344 40.48125,0.06342 -0.19928,-8.043633 -0.82306,-16.129846 -2.71613,-23.968918 -0.951,-4.235615 -2.14069,-8.436776 -3.9344,-12.400099 -1.53489,-3.567605 -3.54947,-6.9266578 -5.99655,-9.9503074 -1.80834,-2.176648 -4.30652,-3.6193381 -6.72792,-5.0556756 -2.95331,-1.62225506 -6.28012,-2.73798817 -9.6875,-2.65625 -0.82226,0.0225076 -1.47434,-0.737092 -1.39716,-1.5350133 -0.38036,-1.8547307 -1.14974,-3.6301209 -2.32159,-5.1212367 l -0.06,0.08 -0.0337,0.045 z"
-         inkscape:connector-curvature="0"
-         id="path4298"
-         style="opacity:0.98999999;fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:0.55262244px;stroke-opacity:1" />
-      <path
-         d="m 110.90718,-1.7155471 2.55401,0.0595 c -0.11306,-2.7134211 4.44555,-7.1531665 4.44555,-7.1531665 0,0 2.6311,2.9526263 3.05622,7.1168654 5.9381,-0.2374968 11.03878,2.8990232 13.00056,4.1073952 12.42868,7.655546 17.29364,32.448756 17.26817,51.469126 l -44.90277,-0.141002 c -0.20729,-13.073379 15.56269,-17.974522 15.10098,-30.390825 -3.98486,3.099334 -8.42701,3.94292 -11.94512,6.90514 -2.79351,2.352109 -4.23289,5.107136 -7.01819,8.412488 -1.02679,1.218501 -3.76823,0.678355 -4.65375,-1.092696 -4.427625,1.32829 -8.682129,0.01778 -8.582077,-6.302259 0.08857,-5.594944 5.715124,-10.651222 7.649496,-15.901883 0.833895,-2.263527 0.717276,-5.7619951 2.034753,-8.280479 1.022986,-1.9555369 3.325448,-4.2204556 4.380568,-4.9644989 0.81951,-2.78858391 0.63978,-7.5122594 -0.71693,-9.3212068 1.97854,-0.5652961 6.51958,2.1987846 8.32853,5.4775016 z m 10.31016,2.15728625 0,2.75643355 c 3.82599,-0.00343 8.78656,2.0292307 12.33721,5.2785342 7.09848,6.4960211 10.28111,22.5102581 11.70795,37.0869221 0.40176,3.407421 0.78101,6.189899 3.94795,6.426135 C 149.36102,40.316206 145.57141,16.191978 137.82161,8.1193493 132.89174,2.9841219 127.3968,0.70498929 121.21734,0.44173915 z M 97.972952,35.127872 l 1.32829,0.442761 1.328288,-4.427625 -0.44277,0 z M 94.234058,32.85876 c 2.613538,-0.122981 3.817853,-5.736082 1.162266,-5.663706 -2.933316,0.07995 -3.417431,5.769824 -1.162266,5.663706 z m 28.007832,-11.419621 0.88552,0 c 1.35907,-0.439698 1.84793,-4.310779 1.32829,-4.870393 -0.77174,0.20599 -1.25447,3.099342 -2.21381,4.870393 z m -18.79589,-7.330175 0.88552,-2.213813 c 2.65658,0.442761 3.98486,-0.885522 3.5421,-3.5421016 l 2.21381,-0.442761 0,-0.442761 C 106.10257,6.5819984 102.56047,10.1241 103.446,14.108964 z m 3.38221,-10.8600077 c 0.88552,0 3.9097,-0.1130592 4.79522,-0.5558192 8.4125,-2.65657404 -3.9097,-4.3145658 -4.79522,0.5558192 z"
-         inkscape:connector-curvature="0"
-         id="BlackKnight-0"
-         style="opacity:0.98999999;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.55262244px;stroke-opacity:1" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackLShield.svg b/svg/BlackLShield.svg
deleted file mode 100644 (file)
index 630921f..0000000
+++ /dev/null
@@ -1,176 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="100"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="BlackLShield.svg">
-  <defs
-     id="defs4">
-    <marker
-       inkscape:stockid="Arrow2Lstart"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="Arrow2Lstart"
-       style="overflow:visible">
-      <path
-         id="path3648"
-         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
-         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
-         transform="scale(1.1) translate(1,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="Arrow2Lend"
-       style="overflow:visible;">
-      <path
-         id="path3651"
-         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
-         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
-         transform="scale(1.1) rotate(180) translate(1,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="Arrow1Lend"
-       style="overflow:visible;">
-      <path
-         id="path3633"
-         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
-         transform="scale(0.8) rotate(180) translate(12.5,0)" />
-    </marker>
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2824"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2838"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="2"
-     inkscape:cx="52.657835"
-     inkscape:cy="51.138761"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="792"
-     inkscape:window-height="583"
-     inkscape:window-x="62"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(366.71429,-981.93367)">
-    <g
-       id="g3626">
-      <path
-         transform="matrix(-0.82853394,0,0,0.86611144,-274.22532,989.39587)"
-         d="m 74.5,52 a 26.5,43.5 0 1 1 -53,0 26.5,43.5 0 1 1 53,0 z"
-         sodipodi:ry="43.5"
-         sodipodi:rx="26.5"
-         sodipodi:cy="52"
-         sodipodi:cx="48"
-         id="path2843"
-         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         sodipodi:type="arc" />
-      <path
-         transform="matrix(-0.90196078,0,0,0.92814371,-266.41652,978.03247)"
-         d="m 59,78 -1.6665,6.376488 4.308035,4.987752 -6.579378,0.385507 -3.412378,5.638485 L 49.25,89.25 42.833,87.747023 47.929233,83.56788 47.375686,77.000505 52.92511,80.555885 59,78 z"
-         inkscape:randomized="0"
-         inkscape:rounded="0"
-         inkscape:flatsided="false"
-         sodipodi:arg2="-0.2283871"
-         sodipodi:arg1="-0.85670563"
-         sodipodi:r2="4.962358"
-         sodipodi:r1="9.9247169"
-         sodipodi:cy="85.5"
-         sodipodi:cx="52.5"
-         sodipodi:sides="5"
-         id="path3621"
-         style="fill:#000000;fill-opacity:1;stroke:#ffffcc;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         sodipodi:type="star" />
-      <path
-         sodipodi:type="star"
-         style="fill:#000000;fill-opacity:1;stroke:#ffffcc;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         id="path3623"
-         sodipodi:sides="5"
-         sodipodi:cx="52.5"
-         sodipodi:cy="85.5"
-         sodipodi:r1="9.9247169"
-         sodipodi:r2="4.962358"
-         sodipodi:arg1="-0.85670563"
-         sodipodi:arg2="-0.2283871"
-         inkscape:flatsided="false"
-         inkscape:rounded="0"
-         inkscape:randomized="0"
-         d="m 59,78 -1.6665,6.376488 4.308035,4.987752 -6.579378,0.385507 -3.412378,5.638485 L 49.25,89.25 42.833,87.747023 47.929233,83.56788 47.375686,77.000505 52.92511,80.555885 59,78 z"
-         transform="matrix(0.90196078,0,0,-0.92814371,-360.74649,1090.1238)" />
-      <path
-         id="path3625"
-         d="m -280.30613,1074.8834 -68.34698,-84.36431"
-         style="fill:none;stroke:#000000;stroke-width:1.60083961;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow2Lstart);marker-end:url(#Arrow2Lend)" />
-      <path
-         id="path4460"
-         d="m -286.24495,1067.9337 -55.5,-69.00003 56.5,69.50003"
-         style="fill:none;stroke:#000000;stroke-width:3.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="cc"
-         transform="translate(-366.71429,981.93367)"
-         id="path3624"
-         d="M 35.75,30 70,73"
-         style="fill:none;stroke:#ffffcc;stroke-width:3.50000000000000000;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackLance.svg b/svg/BlackLance.svg
deleted file mode 100644 (file)
index c75616b..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1">
-    <g
-       transform="matrix(1.2373557,0,0,1.2373557,-665.19906,229.27788)"
-       id="g1547"
-       style="display:inline">
-      <path
-         d="m 632.62484,-133.71302 16.64095,42.599199 -16.64095,16.640946 -16.64095,-16.640946 z"
-         inkscape:connector-curvature="0"
-         id="path1535"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.21226251;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 632.63133,-85.557765 0,-21.035625"
-         inkscape:connector-curvature="0"
-         id="path1537"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffcc;stroke-width:2.42452502;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 626.14441,-97.094796 12.97384,0"
-         inkscape:connector-curvature="0"
-         id="path1539"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffcc;stroke-width:2.42452502;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 630.12484,-77.6875 0,8.09375 5,0 0,-8.09375 -2.5,-4.150065 z"
-         inkscape:connector-curvature="0"
-         id="path1541"
-         style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackLeft.svg b/svg/BlackLeft.svg
deleted file mode 100644 (file)
index 8e3a64a..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="BlackRWheel.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="783"
-     inkscape:window-height="583"
-     id="namedview13"
-     showgrid="false"
-     inkscape:zoom="2.36"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 50 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="100 : 50 : 1"
-       inkscape:persp3d-origin="50 : 33.333333 : 1"
-       id="perspective15" />
-  </defs>
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3822"
-     transform="matrix(-1,0,0,1,100,0)">
-    <path
-       d="m 89.830509,52.966103 c 0,21.997782 -17.832726,39.830509 -39.830509,39.830509 -21.997783,0 -39.830509,-17.832727 -39.830509,-39.830509 0,-21.997783 17.832726,-39.83051 39.830509,-39.83051 21.997783,0 39.830509,17.832727 39.830509,39.83051 z"
-       sodipodi:ry="39.830509"
-       sodipodi:rx="39.830509"
-       sodipodi:cy="52.966103"
-       sodipodi:cx="50"
-       id="path2996"
-       style="fill:#000000;fill-opacity:1"
-       sodipodi:type="arc" />
-    <path
-       transform="translate(-0.84745759,-1.6949153)"
-       d="m 79.661016,54.661018 c 0,15.67927 -12.710559,28.38983 -28.389829,28.38983 -15.67927,0 -28.38983,-12.71056 -28.38983,-28.38983 0,-15.67927 12.71056,-28.389829 28.38983,-28.389829 15.67927,0 28.389829,12.710559 28.389829,28.389829 z"
-       sodipodi:ry="28.38983"
-       sodipodi:rx="28.38983"
-       sodipodi:cy="54.661018"
-       sodipodi:cx="51.271187"
-       id="path3000"
-       style="fill:#ffd5d5;fill-opacity:1"
-       sodipodi:type="arc" />
-    <path
-       id="path3002"
-       d="M 46.243953,80.908729 C 32.40633,78.759847 22.288136,66.95775 22.288136,52.966102 c 0,-12.884964 8.725542,-24.167037 21.18644,-27.393938 3.655681,-0.946683 10.349268,-0.933664 13.983051,0.0272 4.997001,1.32133 8.775865,3.49985 12.541576,7.230235 3.741081,3.705987 5.852229,7.071822 7.447577,11.873794 0.820665,2.470178 0.985423,3.85168 0.985423,8.262712 0,5.997318 -0.751987,9.013508 -3.48622,13.983051 -2.216652,4.028834 -7.539123,9.143072 -11.556152,11.104038 -5.405403,2.638716 -11.74413,3.69439 -17.145878,2.855538 l 0,0 z"
-       style="fill:#ffffc0;fill-opacity:1" />
-    <path
-       id="path3776"
-       d="M 45.754776,80.95836 C 21.490926,77.11264 13.355848,46.181383 32.566798,30.814925 37.632197,26.763213 43.219601,24.85892 50.042373,24.85892 c 8.129525,0 13.918542,2.402561 19.753623,8.198159 2.974012,2.953889 3.979004,4.302955 5.413889,7.267422 4.035297,8.336912 4.028187,17.138268 -0.02047,25.353465 -1.417741,2.876754 -2.506686,4.329674 -5.410173,7.218479 -3.950094,3.930119 -7.684875,6.121674 -12.533471,7.354593 -3.216135,0.817809 -8.674162,1.153776 -11.490987,0.707322 l -1.2e-5,0 z"
-       style="fill:#ffffcc;fill-opacity:1" />
-    <path
-       transform="translate(0.84745763,-0.84745763)"
-       d="m 75,53.81356 c 0,14.041138 -11.382591,25.423729 -25.423729,25.423729 -14.041138,0 -25.423729,-11.382591 -25.423729,-25.423729 0,-14.041137 11.382591,-25.423728 25.423729,-25.423728 C 63.617409,28.389832 75,39.772423 75,53.81356 z"
-       sodipodi:ry="25.423729"
-       sodipodi:rx="25.423729"
-       sodipodi:cy="53.81356"
-       sodipodi:cx="49.576271"
-       id="path3782"
-       style="fill:#000000;fill-opacity:1"
-       sodipodi:type="arc" />
-    <path
-       transform="translate(-1.2711864,-1.2711864)"
-       d="m 58.050848,54.237289 c 0,3.744304 -3.035358,6.779662 -6.779661,6.779662 -3.744304,0 -6.779661,-3.035358 -6.779661,-6.779662 0,-3.744303 3.035357,-6.779661 6.779661,-6.779661 3.744303,0 6.779661,3.035358 6.779661,6.779661 z"
-       sodipodi:ry="6.7796612"
-       sodipodi:rx="6.7796612"
-       sodipodi:cy="54.237289"
-       sodipodi:cx="51.271187"
-       id="path3784"
-       style="fill:#ffffcc;fill-opacity:1"
-       sodipodi:type="arc" />
-    <path
-       sodipodi:nodetypes="cc"
-       id="path3804"
-       d="M 50.423729,52.542373 C 42.931172,42.654339 42.803294,33.899333 50,26.271186"
-       style="fill:none;stroke:#ffffcc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    <use
-       height="100"
-       width="100"
-       transform="matrix(-1,0,0,1,98.938737,26.694916)"
-       id="use3808"
-       xlink:href="#path3804"
-       y="0"
-       x="0" />
-    <use
-       height="100"
-       width="100"
-       transform="matrix(0,1,-1,0,102.64734,3.7085987)"
-       id="use3810"
-       xlink:href="#use3808"
-       y="0"
-       x="0" />
-    <use
-       height="100"
-       width="100"
-       transform="matrix(1,0,0,-1,27.118644,105.93221)"
-       id="use3812"
-       xlink:href="#use3810"
-       y="0"
-       x="0" />
-    <use
-       height="100"
-       width="100"
-       transform="matrix(0.70710678,-0.70710678,0.70710678,0.70710678,-21.96877,50.588293)"
-       id="use3814"
-       xlink:href="#use3812"
-       y="0"
-       x="0" />
-    <use
-       height="100"
-       width="100"
-       transform="matrix(1,0,0,-1,-20.338983,86.37377)"
-       id="use3816"
-       xlink:href="#use3814"
-       y="0"
-       x="0" />
-    <use
-       height="100"
-       width="100"
-       transform="matrix(-1,0,0,1,80.651479,18.220339)"
-       id="use3818"
-       xlink:href="#use3816"
-       y="0"
-       x="0" />
-    <use
-       height="100"
-       width="100"
-       transform="matrix(1,0,0,-1,19.067796,124.50936)"
-       id="use3820"
-       xlink:href="#use3818"
-       y="0"
-       x="0" />
-  </g>
-</svg>
diff --git a/svg/BlackLeopard.svg b/svg/BlackLeopard.svg
deleted file mode 100644 (file)
index 91bb34e..0000000
+++ /dev/null
@@ -1,168 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="100"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="BlackKnight.svg">
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2824"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2838"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="5.6"
-     inkscape:cx="41.498447"
-     inkscape:cy="44.13901"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="792"
-     inkscape:window-height="655"
-     inkscape:window-x="62"
-     inkscape:window-y="25"
-     inkscape:window-maximized="0" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(366.71429,-981.93367)">
-    <g
-       id="g3645">
-      <path
-         sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccc"
-         id="path2844"
-         d="m -317.73295,1002.1086 10.04546,1.3788 7.87879,3.7424 1.57575,-3.7424 3.34849,-3.54549 3.15151,-1.18182 4.92424,-0.39393 2.36364,2.75754 0.39394,4.5304 -1.57576,3.7424 -1.57575,2.7575 -3.15152,1.1818 1.37879,2.9546 -0.98485,2.7576 -1.18182,1.3788 1.37879,5.909 0.5909,4.5303 -0.39393,5.3182 -1.57576,4.9242 -2.95454,5.5153 -3.9394,3.5453 -3.34848,0.197 -3.54545,2.1667 -0.98485,4.9243 -1.37879,6.6969 -3.74242,3.9394 -4.13636,1.5758 -4.33334,-0.197 -5.12121,-3.1515 -2.36364,-2.5606 0.39394,-2.9545 -1.77273,-3.5455 -1.77272,-4.1364 -0.78788,-2.3636 -4.13637,-3.9394 -4.33333,-2.7576 -4.13636,-5.909 0,-7.288 0.78788,-5.909 1.37879,-5.1212 -2.56061,-3.1516 -0.19697,-5.3181 -2.36363,-3.1516 -0.98485,-4.1363 1.57575,-4.92427 1.9697,-2.75757 1.77273,0.59091 2.95454,2.75758 3.15152,3.74245 0.98484,2.3636 2.56062,0.5909 4.13635,-2.7576 5.71213,-1.1818 4.92423,-0.3939 z"
-         style="fill:#000000;stroke:#000000;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="ccccccccc"
-         id="path2846"
-         d="m -301.7784,1022.9874 -5.75487,0.2656 -1.33604,0.7452 -4.51354,4.35 3.61418,-1.7986 4.00813,0.4627 2.09794,-0.8734 0.70238,-2.7576 1.18182,-0.3939 z"
-         style="fill:#ffffff;stroke:#ffffff;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="ccccccccccc"
-         id="path2848"
-         d="m -334.8693,1022.5934 5.71212,0.4627 2.40638,1.1818 1.92695,2.8858 -2.6461,0.085 -2.67208,0.042 -1.74673,-0.8994 -0.89937,-1.3529 -0.30845,-1.8154 1.43076,0.1543 -3.20348,-0.7452 z"
-         style="fill:#ffffff;stroke:#ffffff;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="cccccccccc"
-         id="path2850"
-         d="m -318.56357,1039.6016 3.23701,-1.0276 1.42154,0.9421 -1.37879,3.2538 -1.85822,2.3636 -2.08118,0.042 -2.18343,-2.2949 -1.53301,-3.3484 1.02759,-1.0276 3.34849,1.0963 z"
-         style="fill:#ffffff;stroke:#ffffff;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="ccccc"
-         id="path2854"
-         d="m -308.14094,1049.0989 -3.31497,9.2333 -1.79871,-9.7387 5.11368,1.1227 0,-0.6173 z"
-         style="fill:#ffffff;stroke:#000000;stroke-width:1.72730826999999998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
-      <path
-         sodipodi:nodetypes="ccccc"
-         id="path2856"
-         d="m -321.31192,1048.8758 -2.30413,8.7967 -1.91018,-2.9897 -0.7024,-4.4022 4.91671,-1.4048 z"
-         style="fill:#ffffff;stroke:#000000;stroke-width:1.72730826999999998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
-      <path
-         sodipodi:nodetypes="ccccccccc"
-         id="path2858"
-         d="m -311.44668,1062.6898 c 1.06226,-0.731 1.71366,-1.5642 1.79872,-2.3469 l 0.92535,-4.4709 c -1.03934,0.8994 -1.92444,1.953 -2.96377,2.8524 l -1.20782,0.5054 c -0.78907,-0.7043 -2.74549,-0.6155 -2.06441,-1.6873 l -0.47943,3.1348 1.44752,2.2354 2.54384,-0.2229 z"
-         style="fill:#ffffff;stroke:#000000;stroke-width:1.72730826999999998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
-      <path
-         sodipodi:nodetypes="ccccccccc"
-         id="path2860"
-         d="m -318.77729,1057.2768 -2.10717,1.559 -0.78788,0 -2.43236,-1.756 -0.0688,3.0921 1.86745,2.3041 2.36364,0.6336 1.71322,-1.9268 -0.54816,-3.906 z"
-         style="fill:#ffffff;stroke:#000000;stroke-width:1.72730826999999998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
-      <path
-         sodipodi:nodetypes="cccccccccc"
-         id="path2862"
-         d="m -296.85416,1009.0025 1.42154,-3.9989 3.27974,-3.4004 4.40207,-0.069 0.9421,2.9379 -1.05358,3.5881 -1.22455,2.2095 -2.64611,0.8993 -3.34848,-0.197 -1.77273,-1.9697 z"
-         style="fill:#ffffff;stroke:#ffffff;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="cccccccccc"
-         id="path2864"
-         d="m -342.74809,1000.3359 2.99729,2.672 1.77273,2.4232 0.54816,3.5714 -2.75758,1.5758 -2.40638,-1.6445 -2.05519,-3.2797 0,-2.3805 1.07034,-2.6293 0.83063,-0.3084 z"
-         style="fill:#ffffff;stroke:#ffffff;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path2866"
-         d="m -305.91476,1036.1843 12.40909,-9.2576 10.04545,-6.303 5.71212,-4.5303"
-         style="fill:none;stroke:#ffffff;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path2868"
-         d="m -305.71779,1038.9419 12.21212,-3.5455 8.66667,-0.9848 9.06059,0 2.16668,0.5909"
-         style="fill:none;stroke:#ffffff;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path2870"
-         d="m -304.92991,1042.4874 8.86363,-2.3637 8.86364,-0.7879 5.90908,0.5909 8.66667,1.7728"
-         style="fill:none;stroke:#ffffff;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path2872"
-         d="m -305.91476,1044.851 8.66666,0.5909 7.28788,3.3485"
-         style="fill:none;stroke:#ffffff;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path2874"
-         d="m -331.71779,1037.7601 -8.86364,-4.3333 -6.69696,-2.5607 -7.48485,-1.1818 -8.66667,-0.3939"
-         style="fill:none;stroke:#ffffff;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path2876"
-         d="m -332.11173,1040.9116 -12.01515,-1.7727 -7.87879,0.1969 -10.63636,3.3486 -7.87879,3.7424"
-         style="fill:none;stroke:#ffffff;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path2878"
-         d="m -332.3087,1044.0631 -6.30302,0.7879 -8.66667,3.1515 -7.48485,3.9394 c 0,0 -3.74243,3.3485 -4.53031,3.1515"
-         style="fill:none;stroke:#ffffff;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path2880"
-         d="m -328.17234,1046.4268 -5.71211,2.3636 -5.9091,3.5455 -4.13636,3.9394"
-         style="fill:none;stroke:#ffffff;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="ccccccccccccccccccccc"
-         id="path2852"
-         d="m -314.81361,1048.439 3.60519,0.8186 3.12699,-0.01 c 0.63924,-0.4931 1.12426,-0.1508 1.45505,-0.5481 l -1.25973,6.442 -0.0979,2.9254 -0.74514,3.3592 -2.24894,2.0504 -3.73913,0.2153 -4.55952,0.2636 -3.09631,-0.4736 -1.56653,-1.8231 -1.18941,-2.3543 -1.37714,-4.4627 -1.85392,-4.9183 1.96047,0.2397 4.5303,-1.3787 4.33334,-0.4275 -0.46267,0 3.18503,0.076 0,0.01 z"
-         style="fill:none;stroke:#ffffff;stroke-width:1.72730826999999998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackLion.svg b/svg/BlackLion.svg
deleted file mode 100644 (file)
index 1ed2cd8..0000000
+++ /dev/null
@@ -1,172 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="100"
-   id="svg3738"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="BlackQueen.svg">
-  <defs
-     id="defs3740">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective3746" />
-    <inkscape:perspective
-       id="perspective3800"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="2.3532769"
-     inkscape:cx="40.467173"
-     inkscape:cy="50.142845"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="716"
-     inkscape:window-height="487"
-     inkscape:window-x="3"
-     inkscape:window-y="71"
-     inkscape:window-maximized="0"
-     showguides="true"
-     inkscape:guide-bbox="true">
-    <sodipodi:guide
-       position="0.17142614,0.85712"
-       orientation="0,744.09448"
-       id="guide4498" />
-    <sodipodi:guide
-       position="744.26591,0.85712"
-       orientation="-1052.3622,0"
-       id="guide4500" />
-    <sodipodi:guide
-       position="744.26591,1053.2193"
-       orientation="0,-744.09448"
-       id="guide4502" />
-    <sodipodi:guide
-       position="0.17142614,1053.2193"
-       orientation="1052.3622,0"
-       id="guide4504" />
-  </sodipodi:namedview>
-  <metadata
-     id="metadata3743">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(0.17142614,-953.2193)">
-    <g
-       id="g4569"
-       transform="matrix(0.97053726,0,0,0.97053726,1.9949493,30.030726)">
-      <path
-         id="path3888"
-         d="m 18.200002,987.30504 2.742858,-6.85715 -1.828571,-4.11428 5.942856,-8.22857 9.142858,-6.4 12.342857,-0.45715 2.285714,-7.31428 7.771429,0 7.314286,4.11428 10.971427,1.82858 -1.371427,5.94285 11.885713,3.2 -1.371428,4.57143 6.857142,6.85714 -2.285713,2.28572 7.314286,10.97143 -2.742858,2.74285 4.571429,10.05711 -0.457144,6.4 0,11.4286 -6.4,-8.2286 0.457144,16.9143 -2.285715,3.2 -6.4,-5.9428 0,9.1428 -5.028571,3.6572 0.914286,-10.0572 -7.314286,12.3429 -4.114285,-5.0286 -4.571429,10.5143 -10.514286,1.3714 -10.057143,-1.3714 -8.685715,-6.8571 -4.571427,-2.2858 -10.971429,6.8572 -0.457144,-12.8 -2.285713,-7.7714 -3.2,2.7428 -5.0285719,-4.1143 0.9142856,-9.1428 -2.2857142,-4.1143 0.9142858,-5.4857 -5.0285716,-3.6572 1.3714287,-3.6571 15.5428566,-13.25716 z"
-         style="fill:#000000;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="ccccccc"
-         id="path3890"
-         d="m 36.94286,989.59075 -8.685715,-1.82857 3.657144,1.37143 -5.485715,4.57143 5.485715,-2.74286 3.857141,0.2 1.17143,-1.57143 z"
-         style="fill:#000000;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3892"
-         d="m 59.34286,988.21932 0,-6.4 -0.457144,-7.77143 -1.828571,-5.02857 -3.2,-2.28571 -6.857143,0.91428 -3.657142,4.11429 -1.828571,3.65714"
-         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3894"
-         d="m 54.771431,984.10504 -0.914286,-4.57143 -2.742856,-3.65714 -3.2,0 -1.828573,4.11428 0,0 0.914286,0.45714 -0.914286,-0.45714"
-         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3896"
-         d="m 12.714289,1003.7622 0,0 z"
-         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="cc"
-         id="path3898"
-         d="M 11.471431,1004.3764 0.82857386,1002.8479"
-         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3900"
-         d="m 6.3142883,1010.1622 2.2857142,-2.7429 2.2857135,-0.4571 0.457144,-2.7429 0,0"
-         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="ccccccc"
-         id="path3902"
-         d="m 8.9220373,1018.1269 2.8308047,3.1321 5.565079,0.2674 6.824939,1.4358 5.028571,0.4571 0.457143,0 0,0.4572"
-         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3904"
-         d="m 43.34286,1003.305 -0.457144,8.6858 -3.657142,6.4 -0.914285,7.3142 -5.485715,6.4 -4.114285,6.8572"
-         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3906"
-         d="m 72.600003,997.36218 -3.200001,13.71432 -5.942857,10.9714 -6.857142,8.6857 -5.028572,13.7143"
-         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="cccccc"
-         id="path3908"
-         d="m 66.557145,1040.7193 -0.357143,-7.2428 4.114287,-9.1429 4.571427,-10.0571 2.285715,-10.9715 -0.457142,-7.31425"
-         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3910"
-         d="m 80.371431,996.44789 0,7.31431 0,5.4857 0.914285,7.7714 -4.571427,6.8572 -2.742858,5.4857 -1.371428,6.4"
-         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="ccccc"
-         id="path3912"
-         d="m 72.14286,976.79075 6.857143,7.31429 8.228571,5.94285 -0.1,20.97141 3.185714,4.0572"
-         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3914"
-         d="m 72.14286,971.30504 7.771429,0.91428 5.028571,2.74286 0,0"
-         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="ccc"
-         id="path3916"
-         d="m 19.114289,986.99075 11.885713,-8.37143 4.571429,-2.74285"
-         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path4508"
-         d="m 14.471431,1011.0764 c 8.571429,-1.7857 8.214286,-1.7857 8.214286,-1.7857"
-         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path4510"
-         d="m 15.185717,1013.9336 c 11.785714,-0.3572 11.785714,-0.3572 11.785714,-0.3572"
-         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path4512"
-         d="m 15.542859,1016.4336 c 11.071429,4.2857 11.071429,4.2857 11.071429,4.2857"
-         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackMarshall.svg b/svg/BlackMarshall.svg
deleted file mode 100644 (file)
index 07a8d04..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165632)"
-     id="layer1">
-    <g
-       transform="matrix(1.2951513,0,0,1.2967022,-701.26727,560.75586)"
-       id="g504"
-       style="display:inline">
-      <path
-         d="m 784.93957,-340.63966 -16.36886,-0.18155 -8.14608,14.19861 -8.0272,-14.26663 -16.3694,0.0446 8.34166,-14.08508 -8.22332,-14.15401 16.36886,0.18155 8.14608,-14.19861 8.0272,14.26662 16.3694,-0.0446 -8.34166,14.08507 z"
-         transform="translate(-128.27617,0)"
-         id="path348"
-         style="color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.54329729;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 739.73035,-369.961 a 4.2169256,4.2169256 0 1 1 -8.43385,0 4.2169256,4.2169256 0 1 1 8.43385,0 z"
-         transform="matrix(0.82998852,0,0,0.82998851,21.7991,-76.254265)"
-         id="path350"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1.8594203;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 739.73035,-369.961 a 4.2169256,4.2169256 0 1 1 -8.43385,0 4.2169256,4.2169256 0 1 1 8.43385,0 z"
-         transform="matrix(0.82998852,0,0,0.82998851,46.38127,-62.412914)"
-         id="path352"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1.8594203;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 739.73035,-369.961 a 4.2169256,4.2169256 0 1 1 -8.43385,0 4.2169256,4.2169256 0 1 1 8.43385,0 z"
-         transform="matrix(0.82998852,0,0,0.82998851,46.38127,-33.389588)"
-         id="path354"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1.8594203;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 739.73035,-369.961 a 4.2169256,4.2169256 0 1 1 -8.43385,0 4.2169256,4.2169256 0 1 1 8.43385,0 z"
-         transform="matrix(0.82998852,0,0,0.82998851,21.7991,-19.248004)"
-         id="path356"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1.8594203;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 739.73035,-369.961 a 4.2169256,4.2169256 0 1 1 -8.43385,0 4.2169256,4.2169256 0 1 1 8.43385,0 z"
-         transform="matrix(0.82998852,0,0,0.82998851,-2.83095,-33.389588)"
-         id="path358"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1.8594203;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 739.73035,-369.961 a 4.2169256,4.2169256 0 1 1 -8.43385,0 4.2169256,4.2169256 0 1 1 8.43385,0 z"
-         transform="matrix(0.82998852,0,0,0.82998851,-2.83095,-62.412914)"
-         id="path361"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1.8594203;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 772.1055,-353.77347 a 11.154449,11.154449 0 1 1 -22.3089,0 11.154449,11.154449 0 1 1 22.3089,0 z"
-         transform="matrix(0.95121952,0,0,0.98780488,-91.56469,-5.1304896)"
-         id="path363"
-         style="color:#000000;fill:#000000;fill-opacity:1;stroke:#ffffcc;stroke-width:1.59211218;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackNightrider.svg b/svg/BlackNightrider.svg
deleted file mode 100644 (file)
index 64e9e48..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1">
-    <g
-       transform="matrix(1.3468787,0,0,1.3439389,-44.352884,237.98499)"
-       id="g4813"
-       style="display:inline">
-      <path
-         d="m 117.59375,-132.1516 c -1.30079,1.94126 -3.1617,3.86836 -3.4375,6.28125 -0.71269,0.6114 -1.73255,0.0332 -2.56825,0.2088 -0.84476,-0.023 -1.81964,-0.33376 -2.01445,-1.23205 -0.77735,-1.2011 -1.84233,-2.30258 -3.19855,-2.8205 -0.47032,-0.57327 -1.25306,-0.73906 -1.9375,-0.96875 -0.56725,1.20341 0.28172,2.45504 0.072,3.69977 0.0902,1.63798 -0.10305,3.35 -0.67872,4.86585 -1.92524,1.75001 -3.78467,3.70822 -4.64329,6.21563 -1.054746,2.32796 -0.766695,5.02202 -1.844496,7.34599 -1.26018,3.96491 -4.333914,6.98739 -6.035323,10.736967 -1.212364,2.312367 -1.847669,5.158078 -0.745181,7.635793 0.516567,1.113146 1.509792,2.021725 2.658078,2.466909 1.526212,0.512976 3.193014,0.250139 4.685672,-0.216909 0.683142,0.03748 0.906835,0.665657 1.1875,1.125 0.757752,0.923474 2.58957,0.71881 3.0625,-0.28125 1.08568,-1.10138 1.7524,-2.410544 2.79217,-3.521923 1.62508,-1.924274 3.31525,-3.817699 5.27033,-5.415577 1.01179,-0.61385 2.21118,-1.304256 3.36208,-1.821664 2.98365,-1.40635 5.80474,-3.178066 8.54417,-4.990836 0.29772,0.11385 -0.0225,0.79502 0.0625,1.125 0.0241,3.217614 -0.75935,6.506936 -2.4295,9.271344 -0.91428,1.473789 -1.92908,2.722948 -3.13041,4.000434 -1.90645,2.084583 -3.5835,4.373058 -5.31039,6.622324 -1.80989,2.544262 -3.47089,5.316642 -4.0672,8.418398 0.0515,0.551026 -0.44634,1.44308 0.28035,1.662139 0.77911,0.296598 1.64514,-0.05573 2.45715,0.08694 13.49374,-0.05798 26.98775,-0.0344 40.48125,0.06342 -0.19928,-8.043633 -0.82306,-16.129846 -2.71613,-23.968918 -0.951,-4.235615 -2.14069,-8.436771 -3.9344,-12.400101 -1.53489,-3.5676 -3.54947,-6.92666 -5.99655,-9.95031 -1.80834,-2.17664 -4.30652,-3.61933 -6.72792,-5.05567 -2.95331,-1.62226 -6.28012,-2.73799 -9.6875,-2.65625 -0.82226,0.0225 -1.47434,-0.73709 -1.39716,-1.53501 -0.38036,-1.85473 -1.14974,-3.63013 -2.32159,-5.12124 l -0.06,0.08 -0.0337,0.045 z"
-         inkscape:connector-curvature="0"
-         id="path4681"
-         style="opacity:0.98999999;fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:0.55263817px;stroke-opacity:1" />
-      <path
-         d="m 110.90718,-126.42965 2.55401,0.0595 c -0.11306,-2.71342 4.44555,-7.15316 4.44555,-7.15316 0,0 2.6311,2.95262 3.05622,7.11686 5.9381,-0.2375 11.03878,2.89903 13.00056,4.1074 12.42868,7.65554 17.29364,32.448753 17.26817,51.469123 l -44.90277,-0.141002 c -0.20729,-13.073379 15.56269,-17.974522 15.10098,-30.390821 -3.98486,3.09933 -8.42701,3.942916 -11.94512,6.905136 -2.79351,2.352109 -4.23289,5.107136 -7.01819,8.412488 -1.02679,1.218501 -3.76823,0.678355 -4.65375,-1.092696 -4.427625,1.32829 -8.682129,0.01778 -8.582077,-6.302259 0.08857,-5.594944 5.715124,-10.651219 7.649496,-15.901879 0.833895,-2.26353 0.717276,-5.762 2.034753,-8.28048 1.022986,-1.95554 3.325448,-4.22046 4.380568,-4.9645 0.81951,-2.78859 0.63978,-7.51226 -0.71693,-9.32121 1.97854,-0.56529 6.51958,2.19879 8.32853,5.4775 z m 10.31016,2.15729 0,2.75643 c 3.82599,-0.003 8.78656,2.02923 12.33721,5.27854 7.09848,6.49602 10.28111,22.510255 11.70795,37.086919 0.40176,3.407421 0.78101,6.189899 3.94795,6.426135 0.15057,-11.673558 -3.63904,-35.797784 -11.38884,-43.870414 -4.92987,-5.13523 -10.42481,-7.41436 -16.60427,-7.67761 z m -23.244388,34.686132 1.32829,0.442761 1.328288,-4.427625 -0.44277,0 z m -3.738894,-2.269112 c 2.613538,-0.122981 3.817853,-5.736082 1.162266,-5.663706 -2.933316,0.07995 -3.417431,5.769824 -1.162266,5.663706 z m 28.007832,-11.41962 0.88552,0 c 1.35907,-0.4397 1.84793,-4.31078 1.32829,-4.87039 -0.77174,0.20599 -1.25447,3.09934 -2.21381,4.87039 z m -15.41368,-18.19018 c 0.88552,0 3.9097,-0.11306 4.79522,-0.55582 8.4125,-2.65658 -3.9097,-4.31457 -4.79522,0.55582 z"
-         inkscape:connector-curvature="0"
-         id="path4683"
-         style="opacity:0.98999999;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.55263817px;stroke-opacity:1" />
-      <path
-         d="m 104.97295,-122.17733 c -0.0529,0.24454 -0.0909,0.49628 -0.15625,0.71875 -1.05512,0.74404 -3.35201,3.01321 -4.375,4.96875 -0.485117,0.92733 -0.78532,1.97987 -1.000006,3.0625 l 5.357646,4.979 7.46875,-7.6875 z"
-         inkscape:connector-curvature="0"
-         id="path4701"
-         style="color:#000000;fill:#ffffcc;fill-opacity:0.99215686;fill-rule:nonzero;stroke:#ffffcc;stroke-width:0.74326903;stroke-opacity:0.99215686;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 103.47833,-110.60514 0.88552,-2.21381 c 2.65659,0.44276 3.98487,-0.88552 3.54211,-3.5421 l 2.21381,-0.44276 0,-0.44276 c -3.98486,-0.88553 -7.52697,2.65657 -6.64144,6.64143 z"
-         inkscape:connector-curvature="0"
-         id="path4739"
-         style="opacity:0.98999999;fill:#000000;fill-opacity:1" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackPawn.svg b/svg/BlackPawn.svg
deleted file mode 100644 (file)
index 4b1bb24..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1">
-    <path
-       d="m 117.56242,69.165658 c -4.99989,0 -9.02473,3.820493 -9.02473,8.555112 0,2.694657 1.31064,5.109558 3.36376,6.681141 -6.05375,1.999801 -10.33741,7.090392 -10.33741,13.077102 0,5.254737 3.29969,9.828267 8.20429,12.221587 -11.530117,3.98182 -19.936436,15.84515 -19.936436,30.75402 0,0.57967 0.01588,1.13875 0.04096,1.71103 l 55.420046,0 c 0.0252,-0.57228 0.041,-1.13136 0.041,-1.71103 0,-14.90887 -8.40629,-26.7722 -19.93646,-30.75402 4.90462,-2.39332 8.20431,-6.96685 8.20431,-12.221587 0,-5.98671 -4.28366,-11.077301 -10.33742,-13.077102 2.05313,-1.571584 3.36376,-3.986484 3.36376,-6.681141 0,-4.73462 -4.06585,-8.555113 -9.06575,-8.555113 z"
-       inkscape:connector-curvature="0"
-       id="path3789"
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-  </g>
-</svg>
diff --git a/svg/BlackPegasus.svg b/svg/BlackPegasus.svg
deleted file mode 100644 (file)
index 1740e67..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="BlackKnight.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="504"
-     id="namedview3697"
-     showgrid="false"
-     inkscape:zoom="2.36"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 50 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="100 : 50 : 1"
-       inkscape:persp3d-origin="50 : 33.333333 : 1"
-       id="perspective3699" />
-    <inkscape:perspective
-       id="perspective3631"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective4253"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective4253-1"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective4286"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective4286-6"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g4309">
-    <g
-       id="layer1"
-       transform="matrix(-0.8,0,0,0.8,152.11717,-26.252821)">
-      <g
-         style="display:inline"
-         id="g4342"
-         transform="matrix(1.3469552,0,0,1.3439388,-44.362081,70.37686)">
-        <path
-           style="opacity:0.98999999;fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:0.55262244px;stroke-opacity:1"
-           id="path4298"
-           inkscape:connector-curvature="0"
-           d="m 117.59375,-7.4375 c -1.30079,1.9412559 -3.1617,3.8683596 -3.4375,6.28125 -0.71269,0.61140495 -1.73255,0.033211 -2.56825,0.20879963 -0.84476,-0.022977 -1.81964,-0.33376403 -2.01445,-1.23204893 C 108.7962,-3.3806014 107.73122,-4.4820808 106.375,-5 c -0.47032,-0.573274 -1.25306,-0.7390597 -1.9375,-0.96875 -0.56725,1.2034126 0.28172,2.455042 0.072,3.6997736 0.0902,1.6379763 -0.10305,3.3499997 -0.67872,4.8658443 -1.92524,1.7500119 -3.78467,3.7082271 -4.64329,6.2156321 -1.054746,2.32796 -0.766695,5.022024 -1.844496,7.345987 -1.26018,3.964917 -4.333914,6.987395 -6.035323,10.73697 -1.212364,2.312367 -1.847669,5.158078 -0.745181,7.635793 0.516567,1.113146 1.509792,2.021725 2.658078,2.466909 1.526212,0.512976 3.193014,0.250139 4.685672,-0.216909 0.683142,0.03748 0.906835,0.665657 1.1875,1.125 0.757752,0.923474 2.58957,0.71881 3.0625,-0.28125 1.08568,-1.10138 1.7524,-2.410544 2.79217,-3.521923 1.62508,-1.924274 3.31525,-3.817699 5.27033,-5.415577 1.01179,-0.61385 2.21118,-1.304256 3.36208,-1.821664 2.98365,-1.40635 5.80474,-3.17807 8.54417,-4.990836 0.29772,0.113851 -0.0225,0.795021 0.0625,1.125 0.0241,3.217614 -0.75935,6.506936 -2.4295,9.271344 -0.91428,1.473789 -1.92908,2.722948 -3.13041,4.000434 -1.90645,2.084583 -3.5835,4.373058 -5.31039,6.622324 -1.80989,2.544262 -3.47089,5.316642 -4.0672,8.418398 0.0515,0.551026 -0.44634,1.44308 0.28035,1.662139 0.77911,0.296598 1.64514,-0.05573 2.45715,0.08694 13.49374,-0.05798 26.98775,-0.0344 40.48125,0.06342 -0.19928,-8.043633 -0.82306,-16.129846 -2.71613,-23.968918 -0.951,-4.235615 -2.14069,-8.436776 -3.9344,-12.400099 -1.53489,-3.567605 -3.54947,-6.9266578 -5.99655,-9.9503074 -1.80834,-2.176648 -4.30652,-3.6193381 -6.72792,-5.0556756 -2.95331,-1.62225506 -6.28012,-2.73798817 -9.6875,-2.65625 -0.82226,0.0225076 -1.47434,-0.737092 -1.39716,-1.5350133 -0.38036,-1.8547307 -1.14974,-3.6301209 -2.32159,-5.1212367 l -0.06,0.08 -0.0337,0.045 z" />
-        <path
-           style="opacity:0.98999999;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.55262244px;stroke-opacity:1"
-           id="BlackKnight-0"
-           inkscape:connector-curvature="0"
-           d="m 110.90718,-1.7155471 2.55401,0.0595 c -0.11306,-2.7134211 4.44555,-7.1531665 4.44555,-7.1531665 0,0 2.6311,2.9526263 3.05622,7.1168654 5.9381,-0.2374968 11.03878,2.8990232 13.00056,4.1073952 12.42868,7.655546 17.29364,32.448756 17.26817,51.469126 l -44.90277,-0.141002 c -0.20729,-13.073379 15.56269,-17.974522 15.10098,-30.390825 -3.98486,3.099334 -8.42701,3.94292 -11.94512,6.90514 -2.79351,2.352109 -4.23289,5.107136 -7.01819,8.412488 -1.02679,1.218501 -3.76823,0.678355 -4.65375,-1.092696 -4.427625,1.32829 -8.682129,0.01778 -8.582077,-6.302259 0.08857,-5.594944 5.715124,-10.651222 7.649496,-15.901883 0.833895,-2.263527 0.717276,-5.7619951 2.034753,-8.280479 1.022986,-1.9555369 3.325448,-4.2204556 4.380568,-4.9644989 0.81951,-2.78858391 0.63978,-7.5122594 -0.71693,-9.3212068 1.97854,-0.5652961 6.51958,2.1987846 8.32853,5.4775016 z m 10.31016,2.15728625 0,2.75643355 c 3.82599,-0.00343 8.78656,2.0292307 12.33721,5.2785342 7.09848,6.4960211 10.28111,22.5102581 11.70795,37.0869221 0.40176,3.407421 0.78101,6.189899 3.94795,6.426135 C 149.36102,40.316206 145.57141,16.191978 137.82161,8.1193493 132.89174,2.9841219 127.3968,0.70498929 121.21734,0.44173915 z M 97.972952,35.127872 l 1.32829,0.442761 1.328288,-4.427625 -0.44277,0 z M 94.234058,32.85876 c 2.613538,-0.122981 3.817853,-5.736082 1.162266,-5.663706 -2.933316,0.07995 -3.417431,5.769824 -1.162266,5.663706 z m 28.007832,-11.419621 0.88552,0 c 1.35907,-0.439698 1.84793,-4.310779 1.32829,-4.870393 -0.77174,0.20599 -1.25447,3.099342 -2.21381,4.870393 z m -18.79589,-7.330175 0.88552,-2.213813 c 2.65658,0.442761 3.98486,-0.885522 3.5421,-3.5421016 l 2.21381,-0.442761 0,-0.442761 C 106.10257,6.5819984 102.56047,10.1241 103.446,14.108964 z m 3.38221,-10.8600077 c 0.88552,0 3.9097,-0.1130592 4.79522,-0.5558192 8.4125,-2.65657404 -3.9097,-4.3145658 -4.79522,0.5558192 z" />
-      </g>
-    </g>
-    <path
-       sodipodi:nodetypes="ccccccccccccc"
-       id="path2819"
-       d="M 41.591812,76.98675 C 43.988755,70.626654 46.922572,56.999007 43.964694,47.495225 41.869727,40.228969 38.20436,34.687612 32.778253,29.529124 30.166002,26.618033 24.768874,23.174999 21.252829,22.071496 16.316909,20.34075 14.095685,19.963103 7.3545254,20.037598 c -7.63552799,2.315823 -5.875104,5.258043 0,8.474576 -6.187216,2.59887 -7.19832799,6.553673 1.016952,9.152542 -6.3848,3.765177 -4.896864,7.645983 2.0338876,8.474576 -4.0651596,4.570711 -6.2049436,8.252783 1.355936,7.457628 3.62856,1.349562 5.006272,2.129633 8.474578,5.423729 2.895052,3.498831 5.345164,8.3042 5.42373,12.542372 l 0.338983,14.915255 15.59322,-9.491526 z"
-       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.75999999000000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    <path
-       sodipodi:nodetypes="ccc"
-       id="path3731"
-       d="m 41.949153,41.525424 c 5.120025,14.749762 3.751009,23.112537 -1.694916,36.016949 l -12.711864,7.627118"
-       style="fill:none;stroke:#ffffcc;stroke-width:2.20000000000000018;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
-    <path
-       sodipodi:nodetypes="cc"
-       id="path4276"
-       d="M 7.2033898,28.389831 C 15.677983,27.96598 23.149767,28.205863 30.508474,36.864406"
-       style="fill:none;stroke:#ffffcc;stroke-width:2.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
-    <path
-       sodipodi:nodetypes="cc"
-       id="path4276-4"
-       d="m 9.11017,37.076272 c 10.593237,0.423606 15.946377,2.358405 22.457626,12.711863"
-       style="fill:none;stroke:#ffffcc;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    <path
-       sodipodi:nodetypes="cc"
-       id="path4276-49"
-       d="M 11.652542,46.398306 C 21.398322,47.66937 25.904004,53.417728 30.720338,62.5"
-       style="fill:none;stroke:#ffffcc;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-  </g>
-</svg>
diff --git a/svg/BlackPrincess.svg b/svg/BlackPrincess.svg
deleted file mode 100644 (file)
index 036da06..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1">
-    <g
-       transform="matrix(1.2596048,0,0,1.2596048,289.23085,230.95079)"
-       id="g785"
-       style="display:inline">
-      <path
-         d="m -156.47216,-94.874455 -4.26455,-25.678565 13.9998,24.343464"
-         inkscape:connector-curvature="0"
-         id="path759"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.58779967;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -147.53286,-95.88723 2.24615,-30.00621 9.5955,27.886232 z"
-         inkscape:connector-curvature="0"
-         id="path761"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.58779967;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -115.90261,-94.82073 3.71313,-24.84222 -13.39901,23.408891"
-         inkscape:connector-curvature="0"
-         id="path763"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.58779967;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -124.90445,-95.734359 -2.37837,-29.892061 -8.86156,28.106514 z"
-         inkscape:connector-curvature="0"
-         id="path765"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.58779967;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -119.72211,-75.003615 c 0,2.494743 -7.32288,4.517114 -16.3561,4.517114 -9.03322,0 -16.3561,-2.022371 -16.3561,-4.517114 l 2.32529,-6.475256 -0.0643,-6.631027 -5.81139,-6.453037 4.35812,-3.075207 4.1094,1.001045 5.74678,-2.877825 5.77127,1.347215 5.20349,-1.347215 5.2463,2.877825 4.86129,-1.001045 4.29553,3.075207 -5.81005,6.453037 0.0603,6.631027 z"
-         inkscape:connector-curvature="0"
-         id="path767"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.58779979;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -148.95013,-88.785387 c 2.99191,-1.065977 7.67325,-1.752122 12.93486,-1.752122 4.87905,0 9.25913,0.589996 12.25587,1.525744"
-         inkscape:connector-curvature="0"
-         id="path769"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.58779979;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -35.496787,129.14731 a 3.7762539,3.7762539 0 1 1 -7.552508,0 3.7762539,3.7762539 0 1 1 7.552508,0 z"
-         transform="matrix(0.94504751,0,0,0.94166667,-124.72108,-244.63895)"
-         id="path771"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.68314004;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -35.496787,129.14731 a 3.7762539,3.7762539 0 1 1 -7.552508,0 3.7762539,3.7762539 0 1 1 7.552508,0 z"
-         transform="matrix(0.94504751,0,0,0.94166667,-73.5917,-244.56074)"
-         id="path773"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.68314004;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -35.496787,129.14731 a 3.7762539,3.7762539 0 1 1 -7.552508,0 3.7762539,3.7762539 0 1 1 7.552508,0 z"
-         transform="matrix(0.94504751,0,0,0.94166667,-89.629862,-250.59195)"
-         id="path775"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.68314004;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -35.496787,129.14731 a 3.7762539,3.7762539 0 1 1 -7.552508,0 3.7762539,3.7762539 0 1 1 7.552508,0 z"
-         transform="matrix(0.94504751,0,0,0.94166667,-108.61241,-250.61038)"
-         id="path777"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.68314004;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -147.82599,-82.093587 c 2.97713,-0.857995 7.16803,-1.392212 11.81072,-1.392212 4.27282,0 8.16296,0.452487 11.07644,1.19342"
-         inkscape:connector-curvature="0"
-         id="path781"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.58779979;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -149.85434,-77.004684 a 1.007001,0.53496927 0 1 1 -2.014,0 1.007001,0.53496927 0 1 1 2.014,0 z"
-         transform="matrix(1,0,0,0.95588235,-0.03933598,-3.491672)"
-         id="path783"
-         style="color:#000000;fill:#ffffcc;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackPromoBishop.svg b/svg/BlackPromoBishop.svg
deleted file mode 100644 (file)
index df5dc67..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="BlackPromoBishop.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="487"
-     id="namedview15"
-     showgrid="false"
-     inkscape:zoom="2.36"
-     inkscape:cx="50"
-     inkscape:cy="115.63849"
-     inkscape:window-x="0"
-     inkscape:window-y="25"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 50 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="100 : 50 : 1"
-       inkscape:persp3d-origin="50 : 33.333333 : 1"
-       id="perspective17" />
-  </defs>
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g2861">
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path457"
-       d="m 55.21546,11.229857 a 5.2154485,5.2270692 0 0 1 -10.430897,0 5.2154485,5.2270692 0 1 1 10.430897,0 z" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path459"
-       inkscape:connector-curvature="0"
-       d="M 35.907425,58.203367 C 33.709813,55.600983 27.938004,54.20094 27.834509,41.315188 27.742075,29.80588 42.868715,17.773397 50.193329,17.67821 57.523654,17.583 72.14423,29.820628 72.165806,41.315188 c 0.02622,13.95243 -5.611021,14.852859 -7.714863,16.888179 z" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path461"
-       inkscape:connector-curvature="0"
-       d="m 69.315766,70.339665 c 0,2.158388 -8.648281,3.908094 -19.316459,3.908094 -10.66819,0 -19.316471,-1.749706 -19.316471,-3.908094 0.06829,-1.450802 2.759449,-10.112943 6.706186,-11.445443 6.931028,-2.340042 18.489497,-2.613508 25.675173,0 3.857302,1.402945 6.319871,10.132812 6.251571,11.445443 z" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path463"
-       inkscape:connector-curvature="0"
-       d="m 35.131354,67.737307 c 3.543362,-0.857773 8.870992,-1.403431 14.828539,-1.403431 6.002673,0 11.365849,0.553958 14.908744,1.422973" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path469"
-       inkscape:connector-curvature="0"
-       d="m 9.7679649,84.066302 4.5239711,4.933705 c 2.082446,-1.380292 4.155818,-1.648242 6.836257,-1.648242 l 18.646284,0 c 3.294244,0 7.957334,-4.086424 10.338673,-5.67977 2.349142,1.682334 6.958135,5.67977 10.338673,5.67977 l 19.545817,0 c 2.265965,0 3.637121,0.21467 5.800123,1.648242 L 90.232026,84.16401 C 87.999867,82.458628 79.024912,80.473962 75.08046,80.634393 71.136008,80.794824 63.39618,81.896777 59.919196,80.772564 56.442212,79.648351 53.249061,77.010455 51.83357,75.578552 l -3.610572,0.09771 c -1.763613,1.563783 -4.048493,4.144826 -8.518834,5.096303 -4.470341,0.951476 -10.447841,-0.113862 -14.34174,-0.138171 -3.893912,-0.02443 -12.98049,0.959632 -15.5944591,3.431909 z" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path491"
-       inkscape:connector-curvature="0"
-       d="m 37.811507,58.504451 c 3.543376,-0.857773 6.021822,-1.403431 11.979356,-1.403431 6.002673,0 8.854713,0.456249 12.397621,1.325264" />
-  </g>
-</svg>
diff --git a/svg/BlackPromoDragon.svg b/svg/BlackPromoDragon.svg
deleted file mode 100644 (file)
index e483ebd..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="BlackCrownedRook.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="487"
-     id="namedview14"
-     showgrid="false"
-     inkscape:zoom="2.36"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="25"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 50 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="100 : 50 : 1"
-       inkscape:persp3d-origin="50 : 33.333333 : 1"
-       id="perspective16" />
-  </defs>
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g2837">
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1402"
-       inkscape:connector-curvature="0"
-       d="m 19.988303,23.445622 0,14.198833 8.215969,6.314278 0,24.361717 -6.811166,6.394709 0,8.26495 -6.811165,0 0,6.019891 70.836118,0 0,-6.019891 -6.811161,0 0,-9.423938 -6.811171,-6.3545 0,-23.283156 8.173399,-6.27406 0,-14.198833 -4.917138,0 L 50.144989,10.953295 24.599353,23.445622 z" />
-    <rect
-       style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="rect1406"
-       y="35.693176"
-       x="23.309896"
-       height="1.2846808"
-       width="53.148762" />
-    <rect
-       style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:0.99999994;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="rect1408"
-       y="42.138672"
-       x="30.139942"
-       height="1.2846808"
-       width="39.488659" />
-    <rect
-       style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="rect1410"
-       y="66.474022"
-       x="30.106775"
-       height="1.2846808"
-       width="39.554974" />
-    <rect
-       style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="rect1412"
-       y="81.930573"
-       x="23.309896"
-       height="1.2846808"
-       width="53.148762" />
-    <rect
-       style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="rect1414"
-       y="72.905128"
-       x="24.669277"
-       height="1.2846808"
-       width="50.430004" />
-    <path
-       sodipodi:nodetypes="ccccc"
-       style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:2;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1482"
-       inkscape:connector-curvature="0"
-       d="m 30.88249,22.205315 4.08547,0 6.778405,0 16.328359,0 10.97547,0" />
-  </g>
-</svg>
diff --git a/svg/BlackPromoHSword.svg b/svg/BlackPromoHSword.svg
deleted file mode 100644 (file)
index a506ead..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="100"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="BlackHSword.svg">
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2824"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2838"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="5.6"
-     inkscape:cx="54.904244"
-     inkscape:cy="34.708552"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="792"
-     inkscape:window-height="655"
-     inkscape:window-x="62"
-     inkscape:window-y="25"
-     inkscape:window-maximized="0" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(366.71429,-981.93367)">
-    <g
-       id="g2827">
-      <path
-         sodipodi:nodetypes="cccccc"
-         id="path3687"
-         d="m -270.42482,1039.1007 -10.32341,-10.4981 -54.35055,-0.2016 0,21.399 53.89325,0 10.78071,-10.6993 z"
-         style="fill:#000000;stroke:#000000;stroke-width:2.12476516;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <rect
-         transform="matrix(0,1,-1,0,0,0)"
-         y="335.26187"
-         x="1016.7288"
-         height="7.3214288"
-         width="44.743176"
-         id="rect3689"
-         style="fill:#000000;stroke:#000000;stroke-width:2.12476516;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <rect
-         transform="matrix(0,1,-1,0,0,0)"
-         y="342.71426"
-         x="1033.4033"
-         height="19.202518"
-         width="10.184937"
-         id="rect3693"
-         style="fill:#000000;stroke:#000000;stroke-width:2.12476516;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3777"
-         d="m -343.5,1034.0348 0,8.8681"
-         style="fill:none;stroke:#ffffff;stroke-width:2.12476516;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3781"
-         d="m -334.21429,1029.3993 0,19.5499"
-         style="fill:none;stroke:#ffffff;stroke-width:2.12476516;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackPromoHorse.svg b/svg/BlackPromoHorse.svg
deleted file mode 100644 (file)
index 9ddda1d..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="BlackCrownedBishop.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="487"
-     id="namedview14"
-     showgrid="false"
-     inkscape:zoom="2.36"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="25"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 50 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="100 : 50 : 1"
-       inkscape:persp3d-origin="50 : 33.333333 : 1"
-       id="perspective16" />
-  </defs>
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g2837">
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path900"
-       inkscape:connector-curvature="0"
-       d="M 36.30595,59.417265 24.376483,48.033607 C 20.139397,43.990392 12.237729,46.016232 12.268826,40.407532 12.311717,32.670013 34.907175,27.788378 44.547031,18.103208 l 11.078999,0 c 10.065834,10.160662 32.354717,13.792369 32.370902,22.304324 0.01009,5.621984 -8.151701,3.891832 -12.055165,7.626075 L 64.042286,59.417265 z" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path902"
-       inkscape:connector-curvature="0"
-       d="m 68.769536,71.07519 c 0,2.073311 -8.403716,3.754049 -18.770208,3.754049 -10.366505,0 -18.770221,-1.680738 -18.770221,-3.754049 0.06636,-1.393616 2.681415,-9.714324 6.516542,-10.994302 6.735026,-2.247804 17.966632,-2.510491 24.949104,0 3.748221,1.347646 6.141152,9.733411 6.074783,10.994302 z" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path904"
-       inkscape:connector-curvature="0"
-       d="m 35.551825,68.575408 c 3.44316,-0.823963 8.62013,-1.348112 14.409203,-1.348112 5.832924,0 11.044434,0.532122 14.48714,1.366884" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path910"
-       inkscape:connector-curvature="0"
-       d="m 10.905688,84.260767 4.396038,4.739234 c 2.023556,-1.325884 4.038295,-1.583273 6.642934,-1.583273 l 18.118985,0 c 3.201087,0 7.732309,-3.925351 10.046306,-5.455892 2.282711,1.616022 6.761365,5.455892 10.046305,5.455892 l 18.993081,0 c 2.201886,0 3.534267,0.206209 5.636101,1.583273 l 4.308867,-4.645377 C 86.925269,82.716462 78.204117,80.810025 74.37121,80.964133 70.538303,81.11824 63.01735,82.176758 59.638692,81.096858 56.260033,80.016957 53.157182,77.483039 51.781719,76.107577 l -3.508468,0.09386 c -1.71374,1.502144 -3.934006,3.981451 -8.27793,4.895424 -4.343924,0.913972 -10.152387,-0.109374 -13.93617,-0.132725 -3.783796,-0.02347 -12.613414,0.921806 -15.153463,3.296634 z" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path912"
-       inkscape:connector-curvature="0"
-       d="m 38.156186,59.706481 c 3.443173,-0.823963 5.851531,-1.348112 11.640592,-1.348112 5.832923,0 8.60431,0.438265 12.047028,1.273026" />
-  </g>
-</svg>
diff --git a/svg/BlackPromoRook.svg b/svg/BlackPromoRook.svg
deleted file mode 100644 (file)
index 03a5919..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="BlackRook.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="783"
-     inkscape:window-height="647"
-     id="namedview13"
-     showgrid="false"
-     inkscape:zoom="2.36"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="25"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 50 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="100 : 50 : 1"
-       inkscape:persp3d-origin="50 : 33.333333 : 1"
-       id="perspective15" />
-  </defs>
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g2833">
-    <path
-       sodipodi:nodetypes="ccccccccccccccccc"
-       d="m 19.830741,11.000003 1e-6,13.68421 8.259102,6.713817 0,34.381577 -6.846924,6.79933 0,9.57895 -6.846923,0 0,6.84211 71.208007,0 0,-6.84211 -6.84693,0 0,-9.57895 -6.84692,-6.75657 0,-34.467101 8.21631,-6.671053 0,-13.68421 -60.295723,0 z"
-       inkscape:connector-curvature="0"
-       id="path1039"
-       style="color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.99999988;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <rect
-       style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="rect1074"
-       y="22.911417"
-       x="22.061972"
-       height="1.4222356"
-       width="55.633793" />
-    <rect
-       style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:0.99999994;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="rect1076"
-       y="30.047054"
-       x="29.211357"
-       height="1.4222356"
-       width="41.334999" />
-    <rect
-       style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="rect1078"
-       y="65.668564"
-       x="29.176641"
-       height="1.4222356"
-       width="41.404411" />
-    <rect
-       style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="rect1080"
-       y="82.780083"
-       x="22.061972"
-       height="1.4222356"
-       width="55.633793" />
-    <rect
-       style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="rect1082"
-       y="72.788261"
-       x="23.484905"
-       height="1.4222356"
-       width="52.787918" />
-  </g>
-</svg>
diff --git a/svg/BlackPromoSword.svg b/svg/BlackPromoSword.svg
deleted file mode 100644 (file)
index f5a9e94..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="100"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="BlackSword.svg">
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2824"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2838"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="5.6"
-     inkscape:cx="54.904244"
-     inkscape:cy="56.199236"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="792"
-     inkscape:window-height="655"
-     inkscape:window-x="62"
-     inkscape:window-y="25"
-     inkscape:window-maximized="0" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(366.71429,-981.93367)">
-    <g
-       id="g2827">
-      <path
-         sodipodi:nodetypes="cccccc"
-         id="path3687"
-         d="m -316.71407,986.20383 -10.33918,10.32341 -0.19853,54.35056 21.07508,0 0,-53.89326 -10.53737,-10.78071 z"
-         style="fill:#000000;stroke:#000000;stroke-width:2.10862303;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <rect
-         y="1051.0409"
-         x="-338.74722"
-         height="7.3214288"
-         width="44.065918"
-         id="rect3689"
-         style="fill:#000000;stroke:#000000;stroke-width:2.10862303;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <rect
-         y="1058.4933"
-         x="-322.32513"
-         height="19.202518"
-         width="10.030772"
-         id="rect3693"
-         style="fill:#000000;stroke:#000000;stroke-width:2.10862303;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3777"
-         d="m -321.70324,1059.279 8.73379,0"
-         style="fill:none;stroke:#ffffff;stroke-width:2.10862303;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3781"
-         d="m -326.26863,1049.9933 19.25403,0"
-         style="fill:none;stroke:#ffffff;stroke-width:2.10862303;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackQueen.svg b/svg/BlackQueen.svg
deleted file mode 100644 (file)
index cf00576..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1">
-    <g
-       transform="matrix(1.2571083,0,0,1.2687928,288.15678,-88.041004)"
-       id="g450"
-       style="display:inline">
-      <path
-         d="m -135.75,117.34375 c -1.66897,0 -3,1.59859 -3,3.5625 0,1.91279 1.26618,3.48259 2.875,3.5625 l -5.90625,28.28125 -9.59375,-26.375 c 1.57094,-0.36855 2.75,-1.75415 2.75,-3.4375 0,-1.96391 -1.59859,-3.5625 -3.5625,-3.5625 -1.96391,0 -3.5625,1.59859 -3.5625,3.5625 0,1.96391 1.59859,3.53125 3.5625,3.53125 0.27004,0 0.52844,-0.0367 0.78125,-0.0937 l -1.46875,28.5625 -12.9375,-22.6875 4.03125,24.875 6.03125,6.6875 0.34375,6.625 -3.28125,6.46875 c 0,2.49475 10.32409,4.53125 23.03125,4.53125 12.70716,0 23,-2.0365 23,-4.53125 l -3.40625,-6.46875 0.71875,-6.625 5.65625,-6.75 4.125,-24.8125 -12.9375,22.6875 -1.3125,-28.5 c 0.20333,0.0361 0.41129,0.0625 0.625,0.0625 1.96391,0 3.5625,-1.59859 3.5625,-3.5625 0,-1.96391 -1.59859,-3.5625 -3.5625,-3.5625 -1.96391,0 -3.5625,1.59859 -3.5625,3.5625 0,1.72902 1.23967,3.18008 2.875,3.5 l -9.75,26.46875 -0.0312,-0.0625 -6.09375,-28.375 c 1.66897,0 3.03125,-1.59859 3.03125,-3.5625 0,-1.96391 -1.36228,-3.5625 -3.03125,-3.5625 z m 30.1875,14.90625 c 0.42543,0.17994 0.88402,0.28125 1.375,0.28125 1.96391,0 3.5625,-1.59859 3.5625,-3.5625 0,-1.96391 -1.59859,-3.5625 -3.5625,-3.5625 -1.96391,0 -3.53125,1.59859 -3.53125,3.5625 0,1.47293 0.87996,2.74143 2.15625,3.28125 z m -61.625,-6.90625 c -1.96391,0 -3.5625,1.59859 -3.5625,3.5625 0,1.96391 1.59859,3.53125 3.5625,3.53125 1.96391,0 3.5625,-1.56734 3.5625,-3.53125 0,-1.96391 -1.59859,-3.5625 -3.5625,-3.5625 z"
-         inkscape:connector-curvature="0"
-         id="path297"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.58361018;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -154.92957,163.41238 c 4.11734,-1.22263 11.18229,-2.0291 19.20668,-2.0291 7.82477,0 14.73726,0.76685 18.89397,1.93863"
-         inkscape:connector-curvature="0"
-         id="path360"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.58361053;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -153.69575,170.12564 c 4.21695,-1.03081 10.69028,-1.69065 17.9486,-1.69065 7.18563,0 13.60191,0.64669 17.82122,1.65979"
-         inkscape:connector-curvature="0"
-         id="path374"
-         style="color:#000000;fill:none;stroke:#ffffcc;stroke-width:1.58361053;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -155.36199,175.07028 a 1.1125895,0.62305009 0 1 1 -2.22518,0 1.1125895,0.62305009 0 1 1 2.22518,0 z"
-         transform="translate(-0.25175026,-0.12587513)"
-         id="path390"
-         style="color:#000000;fill:#ffffcc;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackRShield.svg b/svg/BlackRShield.svg
deleted file mode 100644 (file)
index eb95edb..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="100"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="BlackLShield.svg">
-  <defs
-     id="defs4">
-    <marker
-       inkscape:stockid="Arrow2Lstart"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="Arrow2Lstart"
-       style="overflow:visible">
-      <path
-         id="path3648"
-         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
-         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
-         transform="scale(1.1) translate(1,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="Arrow2Lend"
-       style="overflow:visible;">
-      <path
-         id="path3651"
-         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
-         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
-         transform="scale(1.1) rotate(180) translate(1,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="Arrow1Lend"
-       style="overflow:visible;">
-      <path
-         id="path3633"
-         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
-         transform="scale(0.8) rotate(180) translate(12.5,0)" />
-    </marker>
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2824"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2838"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="2"
-     inkscape:cx="52.657835"
-     inkscape:cy="51.138761"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="792"
-     inkscape:window-height="583"
-     inkscape:window-x="62"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(366.71429,-981.93367)">
-    <g
-       id="g3626"
-       transform="matrix(-1,0,0,1,-628.95924,0)">
-      <path
-         transform="matrix(-0.82853394,0,0,0.86611144,-274.22532,989.39587)"
-         d="M 74.5,52 C 74.5,76.024387 62.635546,95.5 48,95.5 33.364454,95.5 21.5,76.024387 21.5,52 21.5,27.975613 33.364454,8.5 48,8.5 62.635546,8.5 74.5,27.975613 74.5,52 z"
-         sodipodi:ry="43.5"
-         sodipodi:rx="26.5"
-         sodipodi:cy="52"
-         sodipodi:cx="48"
-         id="path2843"
-         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         sodipodi:type="arc" />
-      <path
-         transform="matrix(-0.90196078,0,0,0.92814371,-266.41652,978.03247)"
-         d="m 59,78 -1.6665,6.376488 4.308035,4.987752 -6.579378,0.385507 -3.412378,5.638485 L 49.25,89.25 42.833,87.747023 47.929233,83.56788 47.375686,77.000505 52.92511,80.555885 59,78 z"
-         inkscape:randomized="0"
-         inkscape:rounded="0"
-         inkscape:flatsided="false"
-         sodipodi:arg2="-0.2283871"
-         sodipodi:arg1="-0.85670563"
-         sodipodi:r2="4.962358"
-         sodipodi:r1="9.9247169"
-         sodipodi:cy="85.5"
-         sodipodi:cx="52.5"
-         sodipodi:sides="5"
-         id="path3621"
-         style="fill:#000000;fill-opacity:1;stroke:#ffffcc;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         sodipodi:type="star" />
-      <path
-         sodipodi:type="star"
-         style="fill:#000000;fill-opacity:1;stroke:#ffffcc;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         id="path3623"
-         sodipodi:sides="5"
-         sodipodi:cx="52.5"
-         sodipodi:cy="85.5"
-         sodipodi:r1="9.9247169"
-         sodipodi:r2="4.962358"
-         sodipodi:arg1="-0.85670563"
-         sodipodi:arg2="-0.2283871"
-         inkscape:flatsided="false"
-         inkscape:rounded="0"
-         inkscape:randomized="0"
-         d="m 59,78 -1.6665,6.376488 4.308035,4.987752 -6.579378,0.385507 -3.412378,5.638485 L 49.25,89.25 42.833,87.747023 47.929233,83.56788 47.375686,77.000505 52.92511,80.555885 59,78 z"
-         transform="matrix(0.90196078,0,0,-0.92814371,-360.74649,1090.1238)" />
-      <path
-         id="path3625"
-         d="m -280.30613,1074.8834 -68.34698,-84.36431"
-         style="fill:none;stroke:#000000;stroke-width:1.60083961;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow2Lstart);marker-end:url(#Arrow2Lend)" />
-      <path
-         id="path4460"
-         d="m -286.24495,1067.9337 -55.5,-69.00003 56.5,69.50003"
-         style="fill:none;stroke:#000000;stroke-width:3.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="cc"
-         transform="translate(-366.71429,981.93367)"
-         id="path3624"
-         d="M 35.75,30 70,73"
-         style="fill:none;stroke:#ffffcc;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackRight.svg b/svg/BlackRight.svg
deleted file mode 100644 (file)
index e33fa9b..0000000
+++ /dev/null
@@ -1,172 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="BlackPromoRook.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="783"
-     inkscape:window-height="583"
-     id="namedview13"
-     showgrid="false"
-     inkscape:zoom="2.36"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 50 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="100 : 50 : 1"
-       inkscape:persp3d-origin="50 : 33.333333 : 1"
-       id="perspective15" />
-  </defs>
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3822">
-    <path
-       d="m 89.830509,52.966103 c 0,21.997782 -17.832726,39.830509 -39.830509,39.830509 -21.997783,0 -39.830509,-17.832727 -39.830509,-39.830509 0,-21.997783 17.832726,-39.83051 39.830509,-39.83051 21.997783,0 39.830509,17.832727 39.830509,39.83051 z"
-       sodipodi:ry="39.830509"
-       sodipodi:rx="39.830509"
-       sodipodi:cy="52.966103"
-       sodipodi:cx="50"
-       id="path2996"
-       style="fill:#000000;fill-opacity:1"
-       sodipodi:type="arc" />
-    <path
-       transform="translate(-0.84745759,-1.6949153)"
-       d="m 79.661016,54.661018 c 0,15.67927 -12.710559,28.38983 -28.389829,28.38983 -15.67927,0 -28.38983,-12.71056 -28.38983,-28.38983 0,-15.67927 12.71056,-28.389829 28.38983,-28.389829 15.67927,0 28.389829,12.710559 28.389829,28.389829 z"
-       sodipodi:ry="28.38983"
-       sodipodi:rx="28.38983"
-       sodipodi:cy="54.661018"
-       sodipodi:cx="51.271187"
-       id="path3000"
-       style="fill:#ffd5d5;fill-opacity:1"
-       sodipodi:type="arc" />
-    <path
-       id="path3002"
-       d="M 46.243953,80.908729 C 32.40633,78.759847 22.288136,66.95775 22.288136,52.966102 c 0,-12.884964 8.725542,-24.167037 21.18644,-27.393938 3.655681,-0.946683 10.349268,-0.933664 13.983051,0.0272 4.997001,1.32133 8.775865,3.49985 12.541576,7.230235 3.741081,3.705987 5.852229,7.071822 7.447577,11.873794 0.820665,2.470178 0.985423,3.85168 0.985423,8.262712 0,5.997318 -0.751987,9.013508 -3.48622,13.983051 -2.216652,4.028834 -7.539123,9.143072 -11.556152,11.104038 -5.405403,2.638716 -11.74413,3.69439 -17.145878,2.855538 l 0,0 z"
-       style="fill:#ffffc0;fill-opacity:1" />
-    <path
-       id="path3776"
-       d="M 45.754776,80.95836 C 21.490926,77.11264 13.355848,46.181383 32.566798,30.814925 37.632197,26.763213 43.219601,24.85892 50.042373,24.85892 c 8.129525,0 13.918542,2.402561 19.753623,8.198159 2.974012,2.953889 3.979004,4.302955 5.413889,7.267422 4.035297,8.336912 4.028187,17.138268 -0.02047,25.353465 -1.417741,2.876754 -2.506686,4.329674 -5.410173,7.218479 -3.950094,3.930119 -7.684875,6.121674 -12.533471,7.354593 -3.216135,0.817809 -8.674162,1.153776 -11.490987,0.707322 l -1.2e-5,0 z"
-       style="fill:#ffffcc;fill-opacity:1" />
-    <path
-       transform="translate(0.84745763,-0.84745763)"
-       d="m 75,53.81356 c 0,14.041138 -11.382591,25.423729 -25.423729,25.423729 -14.041138,0 -25.423729,-11.382591 -25.423729,-25.423729 0,-14.041137 11.382591,-25.423728 25.423729,-25.423728 C 63.617409,28.389832 75,39.772423 75,53.81356 z"
-       sodipodi:ry="25.423729"
-       sodipodi:rx="25.423729"
-       sodipodi:cy="53.81356"
-       sodipodi:cx="49.576271"
-       id="path3782"
-       style="fill:#000000;fill-opacity:1"
-       sodipodi:type="arc" />
-    <path
-       transform="translate(-1.2711864,-1.2711864)"
-       d="m 58.050848,54.237289 c 0,3.744304 -3.035358,6.779662 -6.779661,6.779662 -3.744304,0 -6.779661,-3.035358 -6.779661,-6.779662 0,-3.744303 3.035357,-6.779661 6.779661,-6.779661 3.744303,0 6.779661,3.035358 6.779661,6.779661 z"
-       sodipodi:ry="6.7796612"
-       sodipodi:rx="6.7796612"
-       sodipodi:cy="54.237289"
-       sodipodi:cx="51.271187"
-       id="path3784"
-       style="fill:#ffffcc;fill-opacity:1"
-       sodipodi:type="arc" />
-    <path
-       sodipodi:nodetypes="cc"
-       id="path3804"
-       d="M 50.423729,52.542373 C 42.931172,42.654339 42.803294,33.899333 50,26.271186"
-       style="fill:none;stroke:#ffffcc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    <use
-       height="100"
-       width="100"
-       transform="matrix(-1,0,0,1,98.938737,26.694916)"
-       id="use3808"
-       xlink:href="#path3804"
-       y="0"
-       x="0" />
-    <use
-       height="100"
-       width="100"
-       transform="matrix(0,1,-1,0,102.64734,3.7085987)"
-       id="use3810"
-       xlink:href="#use3808"
-       y="0"
-       x="0" />
-    <use
-       height="100"
-       width="100"
-       transform="matrix(1,0,0,-1,27.118644,105.93221)"
-       id="use3812"
-       xlink:href="#use3810"
-       y="0"
-       x="0" />
-    <use
-       height="100"
-       width="100"
-       transform="matrix(0.70710678,-0.70710678,0.70710678,0.70710678,-21.96877,50.588293)"
-       id="use3814"
-       xlink:href="#use3812"
-       y="0"
-       x="0" />
-    <use
-       height="100"
-       width="100"
-       transform="matrix(1,0,0,-1,-20.338983,86.37377)"
-       id="use3816"
-       xlink:href="#use3814"
-       y="0"
-       x="0" />
-    <use
-       height="100"
-       width="100"
-       transform="matrix(-1,0,0,1,80.651479,18.220339)"
-       id="use3818"
-       xlink:href="#use3816"
-       y="0"
-       x="0" />
-    <use
-       height="100"
-       width="100"
-       transform="matrix(1,0,0,-1,19.067796,124.50936)"
-       id="use3820"
-       xlink:href="#use3818"
-       y="0"
-       x="0" />
-  </g>
-</svg>
diff --git a/svg/BlackRook.svg b/svg/BlackRook.svg
deleted file mode 100644 (file)
index 42cc7f8..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1">
-    <path
-       d="m 87.413638,64.165656 0,13.68421 8.259102,6.713817 0,34.381577 -6.846924,6.79933 0,9.57895 -6.846923,0 0,6.84211 71.208007,0 0,-6.84211 -6.84693,0 0,-9.57895 -6.84692,-6.75657 0,-34.467101 8.21631,-6.671053 0,-13.68421 -12.32447,0 0,6.799342 -12.32446,0 0,-6.799342 -11.04066,0 0,6.799342 -12.281671,0 0,-6.799342 -12.324462,0 z"
-       inkscape:connector-curvature="0"
-       id="path1039"
-       style="color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.99999988;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <g
-       transform="matrix(1.4259259,0,0,1.4247881,-53.795573,-110.41899)"
-       id="g1096"
-       style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-opacity:1">
-      <rect
-         width="39.015907"
-         height="0.99820852"
-         x="100.5946"
-         y="130.89389"
-         id="rect1074"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:0.70157868;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <rect
-         width="28.988182"
-         height="0.99820852"
-         x="105.60845"
-         y="135.9021"
-         id="rect1076"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:0.70157862;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <rect
-         width="29.036861"
-         height="0.99820852"
-         x="105.58411"
-         y="160.90337"
-         id="rect1078"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:0.70157868;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <rect
-         width="39.015907"
-         height="0.99820852"
-         x="100.5946"
-         y="172.91324"
-         id="rect1080"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:0.70157868;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <rect
-         width="37.0201"
-         height="0.99820852"
-         x="101.5925"
-         y="165.90039"
-         id="rect1082"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:0.70157868;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackSword.svg b/svg/BlackSword.svg
deleted file mode 100644 (file)
index 71887a1..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="100"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="BlackSword.svg">
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2824"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2838"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="5.6"
-     inkscape:cx="54.904244"
-     inkscape:cy="56.199236"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="792"
-     inkscape:window-height="655"
-     inkscape:window-x="62"
-     inkscape:window-y="25"
-     inkscape:window-maximized="0" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(366.71429,-981.93367)">
-    <g
-       id="g3839"
-       transform="matrix(1.1115727,0,0,1,35.336676,0)">
-      <path
-         sodipodi:nodetypes="cccccc"
-         id="path3687"
-         d="m -316.7141,986.20383 -9.3014,10.32341 -0.1786,54.35056 18.9597,0 0,-53.89326 -9.4797,-10.78071 z"
-         style="fill:#000000;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <rect
-         y="1051.0409"
-         x="-336.53571"
-         height="7.3214288"
-         width="39.642857"
-         id="rect3689"
-         style="fill:#000000;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <rect
-         y="1058.4933"
-         x="-321.76196"
-         height="19.202518"
-         width="9.0239458"
-         id="rect3693"
-         style="fill:#000000;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3701"
-         d="m -316.7143,998.13445 0,52.24135"
-         style="fill:#ffffff;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3777"
-         d="m -321.20249,1059.279 7.85715,0"
-         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3781"
-         d="m -325.30963,1049.9933 17.32143,0"
-         style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackTower.svg b/svg/BlackTower.svg
deleted file mode 100644 (file)
index e1fd144..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="100"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="BlackTower.svg">
-  <defs
-     id="defs4">
-    <marker
-       inkscape:stockid="Arrow2Lstart"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="Arrow2Lstart"
-       style="overflow:visible">
-      <path
-         id="path3648"
-         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
-         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
-         transform="scale(1.1) translate(1,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="Arrow2Lend"
-       style="overflow:visible;">
-      <path
-         id="path3651"
-         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
-         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
-         transform="scale(1.1) rotate(180) translate(1,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="Arrow1Lend"
-       style="overflow:visible;">
-      <path
-         id="path3633"
-         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
-         transform="scale(0.8) rotate(180) translate(12.5,0)" />
-    </marker>
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2824"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2838"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="2"
-     inkscape:cx="52.657835"
-     inkscape:cy="53.731013"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="792"
-     inkscape:window-height="583"
-     inkscape:window-x="62"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(366.71429,-981.93367)">
-    <g
-       id="g4711">
-      <path
-         sodipodi:nodetypes="ccccccccccccc"
-         id="path4655"
-         d="m -343.68303,1073.4024 0,-81.93747 12.98599,0 0,10.17157 9.48976,0 0,-10.17157 13.98491,0 0,10.73667 9.48975,0 0,-10.73667 11.98707,0 0,81.93747 -57.93748,0 z"
-         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.20000004999999987;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="cccc"
-         id="path4657"
-         d="m -326.72695,1071.4583 0,-24.4033 c -0.15783,-19.9377 25.73524,-19.99 25.0253,0 l 0,24.8914"
-         style="fill:#000000;fill-opacity:1;stroke:#ffffcc;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="cc"
-         id="path4659"
-         d="m -314.21429,1031.4349 0,39.9976"
-         style="fill:#000000;fill-opacity:1;stroke:#ffffcc;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackUnicorn.svg b/svg/BlackUnicorn.svg
deleted file mode 100644 (file)
index bdd8ade..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="BlackUnicorn.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="504"
-     id="namedview12"
-     showgrid="false"
-     inkscape:zoom="2.36"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 50 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="100 : 50 : 1"
-       inkscape:persp3d-origin="50 : 33.333333 : 1"
-       id="perspective14" />
-  </defs>
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="matrix(-1,0,0,1,167.58289,-53.165653)"
-     id="layer1">
-    <g
-       transform="matrix(1.2820296,0,0,1.3229667,-689.7888,-95.709672)"
-       id="g1480"
-       style="display:inline">
-      <path
-         d="m 612.12384,133.59459 -14.84739,-16.90543 18.52248,13.67135 z"
-         inkscape:connector-curvature="0"
-         id="path1469"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.76785016;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 613.26939,163.05791 c 0,0 4.46974,4.15789 6.23684,4.05395 -1.35131,-2.28685 -1.66316,-3.32631 -1.55921,-4.26184 0.93553,0.41579 2.70263,-0.93553 2.70263,-0.93553 -0.93553,-0.31184 -4.26184,-2.39079 -4.78158,-3.74211 z"
-         inkscape:connector-curvature="0"
-         id="path1471"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.76785016;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 628.58839,118.74552 c -1.30536,1.94797 -3.17282,3.88174 -3.44959,6.30298 -0.71519,0.61352 -1.73864,0.0333 -2.57728,0.20952 -0.84773,-0.023 -1.82604,-0.33492 -2.02153,-1.23631 -0.78009,-1.20526 -1.84881,-2.31055 -3.2098,-2.83026 -0.47198,-0.57525 -1.25747,-0.74161 -1.94432,-0.9721 -0.56924,1.20758 0.28272,2.46354 0.0723,3.71257 0.0905,1.64365 -0.10341,3.36159 -0.68111,4.88268 -1.93201,1.75607 -3.79798,3.72106 -4.65962,6.23714 -1.05845,2.33601 -0.76939,5.03939 -1.85098,7.3714 -1.26461,3.97863 -4.34915,7.01157 -6.05655,10.77411 -1.21662,2.32037 -1.85416,5.17592 -0.7478,7.66221 0.51839,1.117 1.5151,2.02872 2.66743,2.47544 1.53158,0.51475 3.20424,0.25101 4.70215,-0.21766 0.68554,0.0376 0.91002,0.66796 1.19167,1.1289 0.76042,0.92667 2.59868,0.72129 3.07327,-0.28223 1.0895,-1.10519 1.75857,-2.41888 2.80199,-3.5341 1.6308,-1.93093 3.32691,-3.83091 5.28887,-5.43432 1.01534,-0.61597 2.21895,-1.30876 3.3739,-1.82796 2.99414,-1.41122 5.82515,-3.18907 8.57421,-5.0081 0.29877,0.11424 -0.0226,0.79777 0.0627,1.12889 0.0242,3.22874 -0.76202,6.52945 -2.43804,9.30342 -0.91749,1.47888 -1.93586,2.73236 -3.14142,4.01427 -1.91315,2.09179 -3.5961,4.38819 -5.32906,6.64523 -1.81626,2.55307 -3.4831,5.33504 -4.0815,8.44753 0.0517,0.55293 -0.44791,1.44807 0.28133,1.66788 0.78185,0.29763 1.65093,-0.0559 2.46579,0.0873 13.54119,-0.0582 27.08266,-0.0345 40.62361,0.0636 -0.19998,-8.07146 -0.82596,-16.18564 -2.72568,-24.05183 -0.95435,-4.25027 -2.14822,-8.46597 -3.94824,-12.443 -1.54029,-3.57995 -3.56195,-6.95062 -6.01764,-9.98473 -1.8147,-2.18418 -4.32166,-3.63186 -6.75158,-5.07317 -2.96369,-1.62786 -6.3022,-2.74746 -9.72156,-2.66544 -0.82515,0.0226 -1.47953,-0.73964 -1.40208,-1.54032 -0.38169,-1.86115 -1.15378,-3.64268 -2.32975,-5.13895 l -0.0602,0.0803 -0.0338,0.0452 z"
-         inkscape:connector-curvature="0"
-         id="path4298-8"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:0.57091492px;stroke-opacity:1" />
-      <path
-         d="m 621.87831,124.48727 2.56299,0.0597 c -0.11346,-2.7228 4.46118,-7.17791 4.46118,-7.17791 0,0 2.64035,2.96284 3.06697,7.14149 5.95898,-0.23832 11.0776,2.90905 13.04628,4.1216 12.47238,7.68203 17.35445,32.56101 17.32889,51.64719 l -45.06067,-0.14149 c -0.20802,-13.11861 15.61741,-18.03671 15.15408,-30.49597 -3.99887,3.11006 -8.45664,3.95656 -11.98713,6.92903 -2.80333,2.36025 -4.24777,5.12481 -7.04287,8.44159 -1.0304,1.22272 -3.78148,0.6807 -4.67011,-1.09647 -4.4432,1.33288 -8.71266,0.0178 -8.61226,-6.32407 0.0889,-5.61429 5.73522,-10.68806 7.6764,-15.95689 0.83683,-2.27136 0.7198,-5.78193 2.04191,-8.30913 1.02658,-1.9623 3.33714,-4.23505 4.39597,-4.98167 0.82239,-2.79823 0.64203,-7.53825 -0.71945,-9.35345 1.9855,-0.56725 6.5425,2.20639 8.35782,5.49645 z m -12.97972,36.97088 1.33296,0.44429 1.33296,-4.44294 -0.44432,0 z m -3.75204,-2.27697 c 2.62273,-0.1234 3.83128,-5.75592 1.16635,-5.68329 -2.94363,0.0802 -3.42944,5.78978 -1.16635,5.68329 z m 28.10633,-11.45912 0.88863,0 c 1.36385,-0.44122 1.85443,-4.32569 1.33296,-4.88724 -0.77445,0.2067 -1.25888,3.11006 -2.22159,4.88724 z m -18.86199,-7.35554 0.88863,-2.22147 c 2.66592,0.4443 3.99888,-0.88858 3.55456,-3.55435 l 2.22159,-0.4443 0,-0.44429 c -3.99887,-0.88859 -7.55343,2.66576 -6.66478,6.66441 z m 3.3941,-10.89757 c 0.88864,0 3.92345,-0.11345 4.81208,-0.55775 8.44209,-2.66576 -3.92344,-4.32949 -4.81208,0.55775 z"
-         inkscape:connector-curvature="0"
-         id="BlackKnight-0-5"
-         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.57091492px;stroke-opacity:1" />
-      <path
-         d="m 632.77788,126.79567 a 0.80852091,1.6170418 0 1 1 -1.61704,0 0.80852091,1.6170418 0 1 1 1.61704,0 z"
-         transform="matrix(0.72001005,-0.10252387,0.10986928,0.77159574,163.23463,94.046626)"
-         id="path1478"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#ffffcc;stroke-width:1.01989067;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackViking.svg b/svg/BlackViking.svg
deleted file mode 100644 (file)
index 9b63ea8..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="100"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="BlackViking.svg">
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2824"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2838"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="2"
-     inkscape:cx="52.657835"
-     inkscape:cy="23.437927"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="792"
-     inkscape:window-height="583"
-     inkscape:window-x="62"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(366.71429,-981.93367)">
-    <g
-       id="g3639"
-       style="stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none">
-      <path
-         sodipodi:nodetypes="cc"
-         id="path2847"
-         d="m -351.1696,1062.4436 c 13.05752,-62.108 57.80389,-62.87413 69.93337,0"
-         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         transform="matrix(0.96433588,0,0,1,-364.17862,982.43367)"
-         d="M 86,80.25 C 86,84.530207 69.882251,88 50,88 30.117749,88 14,84.530207 14,80.25 14,75.969793 30.117749,72.5 50,72.5 c 19.882251,0 36,3.469793 36,7.75 z"
-         sodipodi:ry="7.75"
-         sodipodi:rx="36"
-         sodipodi:cy="80.25"
-         sodipodi:cx="50"
-         id="path2845"
-         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.54580917;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         sodipodi:type="arc" />
-      <path
-         sodipodi:nodetypes="cccc"
-         id="path3623"
-         d="m -288.96042,1036.4337 c 15.42289,-3.7073 12.1925,-20.7388 17.35804,-31.5 -2.67718,15.3298 12.46664,29.6692 -13.01853,45 -3.94443,-3.6366 -4.16435,-8.5606 -4.33951,-13.5 z"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         d="m -342.83029,1036.4337 c -15.42289,-3.7073 -12.19251,-20.7388 -17.35805,-31.5 2.67718,15.3298 -12.46663,29.6692 13.01854,45 3.94443,-3.6366 4.16435,-8.5606 4.33951,-13.5 z"
-         id="path3625"
-         sodipodi:nodetypes="cccc" />
-      <path
-         sodipodi:nodetypes="cccc"
-         transform="translate(-366.71429,981.93367)"
-         id="path3637"
-         d="M 15.5,80.5 C 14.685799,69.982352 85.872048,70.130797 85.5,81 l 0.5,0 0,0"
-         style="fill:none;stroke:#ffffff;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/BlackWizard.svg b/svg/BlackWizard.svg
deleted file mode 100644 (file)
index c872615..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="100"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="BlackWizard.svg">
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2824"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2838"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="2"
-     inkscape:cx="52.657835"
-     inkscape:cy="23.437927"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="792"
-     inkscape:window-height="583"
-     inkscape:window-x="62"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(366.71429,-981.93367)">
-    <path
-       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.85478044;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m -349.95821,1066.1618 33.81708,-71.66247 33.2439,71.09377"
-       id="path3613" />
-    <path
-       sodipodi:type="arc"
-       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       id="path3615"
-       sodipodi:cx="50"
-       sodipodi:cy="18.25"
-       sodipodi:rx="5.5"
-       sodipodi:ry="5.25"
-       d="m 55.5,18.25 a 5.5,5.25 0 1 1 -11,0 5.5,5.25 0 1 1 11,0 z"
-       transform="matrix(1.1463415,0,0,1.1375,-373.45821,972.31805)" />
-    <path
-       sodipodi:type="arc"
-       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       id="path2839"
-       sodipodi:cx="52"
-       sodipodi:cy="82.25"
-       sodipodi:rx="27"
-       sodipodi:ry="7.25"
-       d="m 79,82.25 a 27,7.25 0 1 1 -54,0 27,7.25 0 1 1 54,0 z"
-       transform="matrix(1.2399213,0,0,1.1302987,-380.90363,974.04786)" />
-    <path
-       sodipodi:type="star"
-       style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       id="path3619"
-       sodipodi:sides="5"
-       sodipodi:cx="46.5"
-       sodipodi:cy="46.5"
-       sodipodi:r1="2.8284271"
-       sodipodi:r2="1.4142137"
-       sodipodi:arg1="0.78539816"
-       sodipodi:arg2="1.4137167"
-       inkscape:flatsided="false"
-       inkscape:rounded="0"
-       inkscape:randomized="0"
-       d="m 48.5,48.5 -1.778768,-0.603198 -1.505311,1.123345 0.024,-1.878107 -1.53353,-1.084503 L 45.5,45.5 l 0.557537,-1.793604 1.084503,1.53353 1.878107,-0.024 -1.123345,1.505311 L 48.5,48.5 z"
-       transform="matrix(1.5009809,0,0,1.6803304,-385.18093,937.87565)" />
-    <path
-       sodipodi:type="star"
-       style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       id="path3621"
-       sodipodi:sides="5"
-       sodipodi:cx="58"
-       sodipodi:cy="62"
-       sodipodi:r1="2.8284271"
-       sodipodi:r2="1.4142137"
-       sodipodi:arg1="0.78539816"
-       sodipodi:arg2="1.4137167"
-       inkscape:flatsided="false"
-       inkscape:rounded="0"
-       inkscape:randomized="0"
-       d="m 60,64 -1.778768,-0.603198 -1.505311,1.123345 0.024,-1.878107 -1.53353,-1.084503 L 57,61 l 0.557537,-1.793604 1.084503,1.53353 1.878107,-0.024 -1.123345,1.505311 L 60,64 z"
-       transform="matrix(1.1541742,0,0,1.5217147,-367.07607,951.86802)" />
-    <path
-       sodipodi:type="star"
-       style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       id="path3623"
-       sodipodi:sides="5"
-       sodipodi:cx="34.5"
-       sodipodi:cy="68"
-       sodipodi:r1="2.6925824"
-       sodipodi:r2="1.3462912"
-       sodipodi:arg1="0.38050638"
-       sodipodi:arg2="1.0088249"
-       inkscape:flatsided="false"
-       inkscape:rounded="0"
-       inkscape:randomized="0"
-       d="M 37,69 35.217379,69.13924 34.321486,70.686658 33.638201,69.034312 31.889672,68.660446 33.25,67.5 33.065243,65.72152 34.589257,66.656671 36.223599,65.931376 35.805164,67.669777 37,69 z"
-       transform="matrix(1.0454393,0,0,1.7385621,-368.48265,928.07316)" />
-    <path
-       style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:1.51347899;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m -313.36111,1030.0247 c -5.0189,3.5022 -4.65818,10.586 0,14.4461 -4.57553,-0.097 -8.11904,-3.4078 -8.01997,-7.6408 -0.12183,-3.8231 3.6197,-6.8614 8.01997,-6.8053 z"
-       id="path3627"
-       sodipodi:nodetypes="cccc" />
-    <path
-       style="fill:none;stroke:#ffffcc;stroke-width:2.85478044;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m -350.53138,1066.1618 c 3.29116,-9.8896 64.72407,-9.6231 67.63415,0.5688"
-       id="path3645"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;stroke:#ffffcc;stroke-width:2.85478044;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       d="m -318.43382,1000.1868 4.58537,0.5687 0,0"
-       id="path3649" />
-  </g>
-</svg>
diff --git a/svg/BlackWolf.svg b/svg/BlackWolf.svg
deleted file mode 100644 (file)
index 8161662..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   width="196"
-   height="196"
-   sodipodi:docname="bwolf.png">
-  <metadata
-     id="metadata8">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs6">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       id="perspective10" />
-  </defs>
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="504"
-     id="namedview4"
-     showgrid="false"
-     inkscape:zoom="1.2040816"
-     inkscape:cx="98"
-     inkscape:cy="98"
-     inkscape:window-x="0"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2" />
-  <g
-     id="g3604"
-     transform="translate(3.3220339,6.6440678)">
-    <g
-       transform="translate(-129.55932,-2.4915254)"
-       id="g3596">
-      <rect
-         style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:1.90918028;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         id="rect2820"
-         width="104.83488"
-         height="105.66541"
-         x="176.80289"
-         y="52.22662" />
-      <rect
-         style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:2.0999999;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         id="rect3594"
-         width="73.084747"
-         height="58.135593"
-         x="191.84746"
-         y="115.44068" />
-    </g>
-    <path
-       style="fill:#000000"
-       d="m 80.194908,180.72816 c -10.56053,-1.67238 -24.16245,-5.78987 -28.64128,-8.67011 -9.14803,-5.88291 -10.47395,-7.67436 -20.87347,-28.20211 -9.54567,-18.84233 -10.1642,-20.43516 -10.68569,-27.51793 -0.4201,-5.70567 -0.0633,-9.44207 1.48025,-15.5 1.11857,-4.390148 2.35662,-11.346441 2.75121,-15.45844 0.39459,-4.111999 1.33653,-9.231076 2.09321,-11.375727 0.75668,-2.14465 1.37577,-5.867787 1.37577,-8.273638 0,-2.40585 0.41394,-4.374273 0.91985,-4.374273 0.50592,0 1.64741,-3.2625 2.53664,-7.25 1.50318,-6.740499 2.17811,-9.220574 5.56943,-20.465293 0.69921,-2.318412 2.36701,-5.243412 3.70623,-6.5 1.33921,-1.256589 3.99063,-5.650178 5.89204,-9.763531 3.72758,-8.0638989 6.79222,-12.0211758 9.30958,-12.0211758 2.3617,0 13.84337,11.8328998 16.49538,16.9999998 2.63783,5.139459 8.57103,22.905022 8.57051,25.662403 -3.1e-4,1.70444 1.12282,1.837597 15.49942,1.837597 13.651812,0 15.499832,-0.194083 15.500342,-1.627876 7e-4,-1.956921 2.12933,-7.257407 6.17333,-15.372124 3.09423,-6.208901 11.24135,-15.5 13.59154,-15.5 0.73671,0 3.08704,-1.00577 5.22295,-2.235044 l 3.88347,-2.235044 2.66661,2.485044 c 4.14011,3.858212 10.04661,16.576116 11.37145,24.485044 2.61217,15.593953 11.02491,52.735467 12.11802,53.5 0.77106,0.53929 1.01221,1.83983 3.41581,18.421788 1.7475,12.0557 1.60239,13.13898 -2.60264,19.42925 -1.59976,2.39306 -4.03885,6.58135 -5.42019,9.3073 -6.12733,12.09169 -15.88916,24.99911 -20.84388,27.56047 -1.69174,0.87455 -4.65089,2.82724 -6.57589,4.3393 -1.925,1.51207 -6.425,3.93154 -10,5.37661 -5.97053,2.41338 -7.92549,2.65938 -24,3.02 -9.625002,0.21593 -18.850002,0.17881 -20.500002,-0.0825 z m 36.041052,-13.37222 c 8.44743,-8.29003 14.25917,-21.5 9.45895,-21.5 -0.83391,0 -1.65452,1.09541 -1.84796,2.46681 -0.19138,1.35675 -1.20388,3.55493 -2.25,4.88486 -1.04612,1.32993 -1.90204,3.13071 -1.90204,4.00174 0,0.87104 -2.34713,3.96035 -5.21584,6.86514 l -5.21584,5.28145 -13.940092,0 -13.94009,0 -4.83792,-5.25 c -2.66086,-2.8875 -4.84069,-5.93737 -4.84407,-6.77749 -0.003,-0.84013 -0.72834,-2.55857 -1.61102,-3.81878 -0.88269,-1.26021 -1.92756,-3.49783 -2.32195,-4.97251 -0.84524,-3.16048 -3.44469,-3.57941 -3.86756,-0.62329 -0.77696,5.43153 12.39171,23.26349 18.29438,24.77278 1.1,0.28126 7.94824,0.43442 15.21831,0.34034 l 13.218312,-0.17105 5.60443,-5.5 z m -11.34577,-4.68709 c 2.28149,-2.1858 2.80472,-3.55006 2.80472,-7.31291 0,-3.76285 -0.52323,-5.12711 -2.80472,-7.31291 -2.45659,-2.35357 -3.61252,-2.68709 -9.312912,-2.68709 -5.82524,0 -6.79015,0.29431 -9.19527,2.80472 -2.08224,2.17339 -2.6871,3.79301 -2.6871,7.19528 0,3.40227 0.60486,5.02189 2.6871,7.19528 2.40512,2.51041 3.37003,2.80472 9.19527,2.80472 5.700392,0 6.856322,-0.33352 9.312912,-2.68709 z M 87.386448,139.71741 c 0.68946,-1.79671 -4.45626,-18.36147 -5.70385,-18.36147 -2.01748,0 -1.76135,3.91534 0.75664,11.56635 2.77191,8.42255 3.78745,9.81741 4.94721,6.79512 z m 21.581442,-6.78236 c 2.52849,-7.81371 2.74265,-11.57911 0.65858,-11.57911 -0.46996,0 -1.32978,1.76515 -1.91071,3.92256 -0.58093,2.15741 -1.5273,4.07959 -2.10305,4.27151 -1.24805,0.41601 -2.42034,8.05395 -1.57446,10.25827 1.14546,2.98502 2.22795,1.47574 4.92964,-6.87323 z M 73.221728,106.32331 c 7.63102,-7.696084 7.65105,-8.922034 0.14626,-8.952064 -5.17642,-0.0207 -9.67308,4.314594 -9.67308,9.325984 0,3.78045 0.81429,6.65871 1.88381,6.65871 0.36841,0 3.80776,-3.16468 7.64301,-7.03263 z m 49.866192,5.45084 c 2.64632,-6.89619 -2.09643,-14.430794 -9.06609,-14.402904 -7.50479,0.03 -7.48476,1.25598 0.14626,8.952064 3.83525,3.86795 7.2746,7.03263 7.64301,7.03263 0.36841,0 0.94298,-0.7118 1.27682,-1.58179 z M 58.159178,65.39176 c 7.74364,-7.763869 12.93508,-12.184266 14.78734,-12.591089 3.50905,-0.770718 3.08943,-2.827613 -0.66705,-3.269684 -2.37003,-0.278911 -4.59037,1.484939 -15.67288,12.450594 -12.11638,11.988634 -14.68106,15.374351 -11.64604,15.374351 0.69609,0 6.63548,-5.383877 13.19863,-11.964172 z m 81.535732,10.658854 c 0,-1.599996 -22.23621,-23.694682 -23.84645,-23.694682 -2.69097,0 -0.528,2.941129 10.04113,13.653548 10.57089,10.714196 13.80532,13.066724 13.80532,10.041134 z"
-       id="use3600" />
-  </g>
-</svg>
diff --git a/svg/BlackZebra.svg b/svg/BlackZebra.svg
deleted file mode 100644 (file)
index ec780ba..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="BlackKnight.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="504"
-     id="namedview9"
-     showgrid="false"
-     inkscape:zoom="2.36"
-     inkscape:cx="71.856813"
-     inkscape:cy="50.308226"
-     inkscape:window-x="0"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 50 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="100 : 50 : 1"
-       inkscape:persp3d-origin="50 : 33.333333 : 1"
-       id="perspective11" />
-  </defs>
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3609">
-    <g
-       id="layer1"
-       transform="translate(-67.582896,-53.165653)">
-      <g
-         style="display:inline"
-         id="g4342"
-         transform="matrix(1.3469552,0,0,1.3439388,-44.362081,70.37686)">
-        <path
-           style="opacity:0.98999999;fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:0.55262244px;stroke-opacity:1"
-           id="path4298"
-           inkscape:connector-curvature="0"
-           d="m 117.59375,-7.4375 c -1.30079,1.9412559 -3.1617,3.8683596 -3.4375,6.28125 -0.71269,0.61140495 -1.73255,0.033211 -2.56825,0.20879963 -0.84476,-0.022977 -1.81964,-0.33376403 -2.01445,-1.23204893 C 108.7962,-3.3806014 107.73122,-4.4820808 106.375,-5 c -0.47032,-0.573274 -1.25306,-0.7390597 -1.9375,-0.96875 -0.56725,1.2034126 0.28172,2.455042 0.072,3.6997736 0.0902,1.6379763 -0.10305,3.3499997 -0.67872,4.8658443 -1.92524,1.7500119 -3.78467,3.7082271 -4.64329,6.2156321 -1.054746,2.32796 -0.766695,5.022024 -1.844496,7.345987 -1.26018,3.964917 -4.333914,6.987395 -6.035323,10.73697 -1.212364,2.312367 -1.847669,5.158078 -0.745181,7.635793 0.516567,1.113146 1.509792,2.021725 2.658078,2.466909 1.526212,0.512976 3.193014,0.250139 4.685672,-0.216909 0.683142,0.03748 0.906835,0.665657 1.1875,1.125 0.757752,0.923474 2.58957,0.71881 3.0625,-0.28125 1.08568,-1.10138 1.7524,-2.410544 2.79217,-3.521923 1.62508,-1.924274 3.31525,-3.817699 5.27033,-5.415577 1.01179,-0.61385 2.21118,-1.304256 3.36208,-1.821664 2.98365,-1.40635 5.80474,-3.17807 8.54417,-4.990836 0.29772,0.113851 -0.0225,0.795021 0.0625,1.125 0.0241,3.217614 -0.75935,6.506936 -2.4295,9.271344 -0.91428,1.473789 -1.92908,2.722948 -3.13041,4.000434 -1.90645,2.084583 -3.5835,4.373058 -5.31039,6.622324 -1.80989,2.544262 -3.47089,5.316642 -4.0672,8.418398 0.0515,0.551026 -0.44634,1.44308 0.28035,1.662139 0.77911,0.296598 1.64514,-0.05573 2.45715,0.08694 13.49374,-0.05798 26.98775,-0.0344 40.48125,0.06342 -0.19928,-8.043633 -0.82306,-16.129846 -2.71613,-23.968918 -0.951,-4.235615 -2.14069,-8.436776 -3.9344,-12.400099 -1.53489,-3.567605 -3.54947,-6.9266578 -5.99655,-9.9503074 -1.80834,-2.176648 -4.30652,-3.6193381 -6.72792,-5.0556756 -2.95331,-1.62225506 -6.28012,-2.73798817 -9.6875,-2.65625 -0.82226,0.0225076 -1.47434,-0.737092 -1.39716,-1.5350133 -0.38036,-1.8547307 -1.14974,-3.6301209 -2.32159,-5.1212367 l -0.06,0.08 -0.0337,0.045 z" />
-        <path
-           style="opacity:0.98999999;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.55262244px;stroke-opacity:1"
-           id="BlackKnight-0"
-           inkscape:connector-curvature="0"
-           d="m 110.90718,-1.7155471 2.55401,0.0595 c -0.11306,-2.7134211 4.44555,-7.1531665 4.44555,-7.1531665 0,0 2.6311,2.9526263 3.05622,7.1168654 5.9381,-0.2374968 11.03878,2.8990232 13.00056,4.1073952 12.42868,7.655546 17.29364,32.448756 17.26817,51.469126 l -44.90277,-0.141002 c -0.20729,-13.073379 15.56269,-17.974522 15.10098,-30.390825 -3.98486,3.099334 -8.42701,3.94292 -11.94512,6.90514 -2.79351,2.352109 -4.23289,5.107136 -7.01819,8.412488 -1.02679,1.218501 -3.76823,0.678355 -4.65375,-1.092696 -4.427625,1.32829 -8.682129,0.01778 -8.582077,-6.302259 0.08857,-5.594944 5.715124,-10.651222 7.649496,-15.901883 0.833895,-2.263527 0.717276,-5.7619951 2.034753,-8.280479 1.022986,-1.9555369 3.325448,-4.2204556 4.380568,-4.9644989 0.81951,-2.78858391 0.63978,-7.5122594 -0.71693,-9.3212068 1.97854,-0.5652961 6.51958,2.1987846 8.32853,5.4775016 z m 10.31016,2.15728625 0,2.75643355 c 3.82599,-0.00343 8.78656,2.0292307 12.33721,5.2785342 7.09848,6.4960211 10.28111,22.5102581 11.70795,37.0869221 0.40176,3.407421 0.78101,6.189899 3.94795,6.426135 C 149.36102,40.316206 145.57141,16.191978 137.82161,8.1193493 132.89174,2.9841219 127.3968,0.70498929 121.21734,0.44173915 z M 97.972952,35.127872 l 1.32829,0.442761 1.328288,-4.427625 -0.44277,0 z M 94.234058,32.85876 c 2.613538,-0.122981 3.817853,-5.736082 1.162266,-5.663706 -2.933316,0.07995 -3.417431,5.769824 -1.162266,5.663706 z m 28.007832,-11.419621 0.88552,0 c 1.35907,-0.439698 1.84793,-4.310779 1.32829,-4.870393 -0.77174,0.20599 -1.25447,3.099342 -2.21381,4.870393 z m -18.79589,-7.330175 0.88552,-2.213813 c 2.65658,0.442761 3.98486,-0.885522 3.5421,-3.5421016 l 2.21381,-0.442761 0,-0.442761 C 106.10257,6.5819984 102.56047,10.1241 103.446,14.108964 z m 3.38221,-10.8600077 c 0.88552,0 3.9097,-0.1130592 4.79522,-0.5558192 8.4125,-2.65657404 -3.9097,-4.3145658 -4.79522,0.5558192 z" />
-      </g>
-    </g>
-    <path
-       id="path2817"
-       d="m 22.033899,51.271187 13.559322,4.661017 2.118644,-1.694915 -15.677966,-2.966102 z"
-       style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-    <path
-       id="path3591"
-       d="m 26.694915,45.762712 18.644068,4.661017 2.966102,-1.694915 -21.61017,-2.966102 z"
-       style="fill:#ffffcc;stroke:#ffffcc;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" />
-    <path
-       id="path3593"
-       d="m 25.847458,38.559322 24.576271,5.508475 7.627118,5.508474"
-       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-    <path
-       id="path3597"
-       d="M 33.474576,40.254237 50,42.372881 l 13.983051,-2.118644 11.440678,-4.237288 -2.542373,-2.542373 -9.745763,3.81356 -8.898305,2.118644 -20.762712,0.847457 z"
-       style="fill:#ffffcc;stroke:#ffffcc;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" />
-    <path
-       id="path3599"
-       d="m 54.661017,49.576271 11.440678,-3.38983 11.440678,-5.508475 0.847458,3.813559 -8.050848,4.237289 -5.932203,1.694915 -10.593221,3.38983 0.847458,-4.237288 z"
-       style="fill:#ffffcc;stroke:#ffffcc;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" />
-    <path
-       id="path3601"
-       d="m 50.423729,61.864406 13.559322,-3.38983 11.864407,-4.661017 3.813559,-2.118644 1.271187,5.084746 -9.322034,2.966101 -12.288136,3.389831 -10.59322,2.118644 1.694915,-3.389831 z"
-       style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-    <path
-       id="path3603"
-       d="m 84.322034,64.830508 -13.983051,2.542373 -12.711864,2.966102 -9.322034,2.542373 -5.932204,0.423729 -4.237288,3.813559 6.355932,-0.847458 9.322034,-1.694915 10.593221,-2.542373 12.288135,-2.542373 8.474577,0 -0.847458,-4.661017 z"
-       style="fill:#ffffcc;stroke:#ffffcc;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" />
-    <path
-       id="path3605"
-       d="m 85.59322,75.423729 -19.491525,4.237288 -13.135593,3.81356 -9.322034,3.38983 11.016949,0.423729 10.169491,-3.389831 12.288136,-2.118644 10.169492,0 -1.694916,-6.355932 z"
-       style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-    <path
-       id="path3607"
-       d="M 58.898305,21.610169 55.084746,27.966102 50,33.050847 l 8.050847,-2.966101 3.389831,-3.389831 2.542373,-3.813559 -5.084746,-1.271187 z"
-       style="fill:#ffffcc;stroke:#ffffcc;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" />
-  </g>
-</svg>
diff --git a/svg/WhiteAdvisor.svg b/svg/WhiteAdvisor.svg
deleted file mode 100644 (file)
index 90a6517..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1">
-    <g
-       transform="matrix(1.4861261,0,0,1.4861261,-1011.529,435.79173)"
-       id="g533"
-       style="display:inline">
-      <path
-         d="m 778.01692,-203.72171 c 0,3.25726 -8.91179,5.89779 -19.90504,5.89779 -10.99326,0 -19.90505,-2.64053 -19.90505,-5.89779 0.0946,-3.73126 2.33706,-4.90002 2.17488,-7.58289 -0.13529,-2.23801 -3.26235,-4.39325 -2.55314,-5.89779 0.70921,-1.50454 17.11551,-12.39739 18.91216,-17.69337 l 2.93138,0 c 1.60753,5.41634 17.68286,15.52683 18.34479,16.97119 0.66193,1.44436 -2.13164,4.22877 -2.17489,6.61997 -0.0486,2.6901 2.17491,3.61091 2.17491,7.58289 z"
-         inkscape:connector-curvature="0"
-         transform="matrix(1.2993827,0,0,1.0208333,-225.06109,4.3670728)"
-         id="path517"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.16849911;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 741.28937,-214.05418 c 3.78276,-1.64916 10.3791,-2.56894 18.72697,-2.56894 8.76814,0 15.20178,1.14205 18.93874,2.93056"
-         inkscape:connector-curvature="0"
-         id="path519"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.34578073;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 738.20683,-203.72171 c 0,-3.25726 8.91179,-5.89779 19.90505,-5.89779 10.99325,0 19.90504,2.64053 19.90504,5.89779"
-         inkscape:connector-curvature="0"
-         transform="matrix(1.2993827,0,0,1.0208333,-225.06109,4.3670728)"
-         id="path521"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.16849911;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 739.72049,-221.47874 c 4.86123,-1.31334 12.14742,-2.14801 20.29168,-2.14801 8.34275,0 15.78508,0.87585 20.64276,2.24489"
-         inkscape:connector-curvature="0"
-         id="path523"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.34578085;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 766.22133,-240.82864 a 5.77492,5.77492 0 1 1 -11.54984,0 5.77492,5.77492 0 1 1 11.54984,0 z"
-         transform="translate(-0.67579834,0)"
-         id="path529"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.34578085;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteArchbishop.svg b/svg/WhiteArchbishop.svg
deleted file mode 100644 (file)
index 0e80927..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165632)"
-     id="layer1">
-    <g
-       transform="matrix(1.3304661,0,0,1.3304661,-212.64971,573.26587)"
-       id="g1433"
-       style="display:inline">
-      <g
-         transform="matrix(-0.70710678,-0.70710678,-0.70710678,0.70710678,173.15988,73.622253)"
-         id="g1422">
-        <path
-           d="m 250.34715,-394.88641 8.76326,8.76325 0,49.52443 -17.52651,0 0,-49.52443 z"
-           inkscape:connector-curvature="0"
-           id="path1424"
-           style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.5032326;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-        <path
-           d="m 266.16526,-336.32175 1.56773,1.24615 0,5.50719 -1.88937,1.96968 -6.51213,0 -2.17075,-2.09028 -14.7126,0 -2.17074,2.09028 -5.30619,0 -2.0099,-1.96974 0,-5.50718 1.76874,-1.24614 z"
-           inkscape:connector-curvature="0"
-           id="path1427"
-           style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.5032326;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-        <path
-           d="m 254.46749,-329.67389 0,13.54686 -1.64813,1.84914 -4.62282,0 -1.96972,-1.84914 0,-13.54686 z"
-           inkscape:connector-curvature="0"
-           id="path1429"
-           style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.5032326;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-        <path
-           d="m 250.29031,-383.94193 0.11369,44.00123"
-           inkscape:connector-curvature="0"
-           id="path1431"
-           style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.5032326;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      </g>
-      <g
-         transform="matrix(0.70710678,-0.70710678,0.70710678,0.70710678,323.25654,73.622253)"
-         id="g1406">
-        <path
-           d="m 250.34715,-394.88641 8.76326,8.76325 0,49.52443 -17.52651,0 0,-49.52443 z"
-           inkscape:connector-curvature="0"
-           id="path402"
-           style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.5032326;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-        <path
-           d="m 266.16526,-336.32175 1.56773,1.24615 0,5.50719 -1.88937,1.96968 -6.51213,0 -2.17075,-2.09028 -14.7126,0 -2.17074,2.09028 -5.30619,0 -2.0099,-1.96974 0,-5.50718 1.76874,-1.24614 z"
-           inkscape:connector-curvature="0"
-           id="path404"
-           style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.5032326;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-        <path
-           d="m 254.46749,-329.67389 0,13.54686 -1.64813,1.84914 -4.62282,0 -1.96972,-1.84914 0,-13.54686 z"
-           inkscape:connector-curvature="0"
-           id="path406"
-           style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.5032326;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-        <path
-           d="m 250.29031,-383.94193 0.11369,44.00123"
-           inkscape:connector-curvature="0"
-           id="path420"
-           style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.5032326;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      </g>
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteAxe.svg b/svg/WhiteAxe.svg
deleted file mode 100644 (file)
index d0739a4..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="WhiteAxe.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="504"
-     id="namedview11"
-     showgrid="false"
-     inkscape:zoom="2.36"
-     inkscape:cx="50"
-     inkscape:cy="56.38403"
-     inkscape:window-x="0"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 50 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="100 : 50 : 1"
-       inkscape:persp3d-origin="50 : 33.333333 : 1"
-       id="perspective13" />
-    <inkscape:perspective
-       id="perspective3624"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3766">
-    <path
-       sodipodi:nodetypes="ccccc"
-       id="path3614"
-       d="m 52.171527,28.547284 -0.422564,27.129474 c 13.381193,-0.708012 23.381874,4.740107 32.537428,14.608178 8.519692,-16.91018 9.276668,-37.188251 0,-55.824109 -9.134433,7.92724 -19.603362,13.10841 -32.114864,14.086457 z"
-       style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    <path
-       sodipodi:nodetypes="ccccc"
-       id="path3614-0"
-       d="m 47.998035,28.123555 0.422564,27.129474 c -13.381193,-0.708012 -23.381874,4.740107 -32.537428,14.608178 -8.519692,-16.91018 -9.276668,-37.188251 0,-55.824109 9.134433,7.92724 19.603362,13.10841 32.114864,14.086457 z"
-       style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    <path
-       sodipodi:nodetypes="cccccc"
-       id="path2840"
-       d="m 48.138015,93.958837 -0.571429,-76.90138 2.857143,-9.3213798 2.857142,8.8553108 0,77.367449 -5.142856,0 z"
-       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.21791804000000004px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-  </g>
-</svg>
diff --git a/svg/WhiteBishop.svg b/svg/WhiteBishop.svg
deleted file mode 100644 (file)
index 9a29516..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165632)"
-     id="layer1">
-    <g
-       transform="matrix(0.91849334,0,0,0.91849334,9.5837891,5.9073655)"
-       id="g551">
-      <path
-         d="m 508.86265,-382.5542 a 4.6124978,4.6124978 0 1 1 -9.225,0 4.6124978,4.6124978 0 1 1 9.225,0 z"
-         transform="matrix(1.2255917,0,0,1.2195279,-500.42191,530.14211)"
-         id="path293"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.78108728;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 102.30791,114.15677 c -2.381993,-2.80054 -8.638075,-4.30719 -8.750254,-18.174097 -0.10019,-12.385659 16.295624,-25.334329 24.234794,-25.436764 7.94536,-0.102463 23.79265,13.066976 23.81604,25.436764 0.0284,15.014807 -6.0818,15.983797 -8.36216,18.174097 z"
-         inkscape:connector-curvature="0"
-         id="path308"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2.17747903;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 138.51933,127.21716 c 0,2.32273 -9.3739,4.20566 -20.93717,4.20566 -11.56329,0 -20.937196,-1.88293 -20.937196,-4.20566 0.07402,-1.56127 2.990976,-10.88297 7.268866,-12.31694 7.51256,-2.51821 20.04082,-2.8125 27.8294,0 4.18094,1.50977 6.85013,10.90436 6.7761,12.31694 z"
-         inkscape:connector-curvature="0"
-         id="path300"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2.17747903;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 97.323539,126.17493 c 2.308321,-1.81859 10.516951,-3.16343 20.289291,-3.16343 9.68966,0 17.84196,1.32219 20.22942,3.11737"
-         inkscape:connector-curvature="0"
-         id="path306"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2.17747903;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 117.5829,84.712576 0,18.315014"
-         inkscape:connector-curvature="0"
-         id="path295"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2.17747903;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 107.752,94.62332 19.6618,0"
-         inkscape:connector-curvature="0"
-         id="path298"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2.17747903;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 73.242462,143.14554 4.589483,5.20422 c 2.25717,-1.48539 5.237312,-2.82515 8.142648,-2.82515 l 21.466997,0 c 3.55761,0 6.975,-3.04819 9.84522,-4.53512 3.16629,1.33824 6.18102,4.53512 9.8452,4.53512 l 22.65137,0 c 2.45609,0 4.46573,1.28242 6.81021,2.82515 l 5.32974,-5.20422 c -2.41945,-1.83524 -6.6992,-4.7011 -10.36338,-4.7011 l -23.68771,0 c -2.50379,-0.0406 -3.97411,-2.34721 -6.93358,-5.5587 l -6.85958,0 c -1.91158,1.68286 -5.23736,5.59255 -8.11798,5.5587 l -22.207231,0 c -3.849247,0 -7.678117,2.04058 -10.511407,4.7011 z"
-         inkscape:connector-curvature="0"
-         id="path310"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2.17747903;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteButterfly.svg b/svg/WhiteButterfly.svg
deleted file mode 100644 (file)
index 83b686f..0000000
+++ /dev/null
@@ -1,157 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="100"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="WhitePrButterfly.svg">
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2824"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2838"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="2.8"
-     inkscape:cx="34.72545"
-     inkscape:cy="44.67371"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="792"
-     inkscape:window-height="583"
-     inkscape:window-x="62"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(366.71429,-981.93367)">
-    <g
-       id="g3645"
-       transform="translate(0,1.7857143)">
-      <path
-         sodipodi:nodetypes="ccccccccccccccccccccccccc"
-         id="path2820"
-         d="m -316.35715,1008.0051 -6.07143,-6.4286 -5.71428,-3.21426 -4.64286,-0.71428 -6.78572,1.07143 -4.64285,2.85711 -3.57143,4.2858 -1.78572,5 -0.35714,6.7857 1.78572,6.0714 3.21428,4.2857 3.92857,4.6429 3.57143,3.9286 -5,6.0714 -2.85714,4.2857 -2.5,5 -0.71429,5.7143 2.14286,6.0714 3.92857,3.9286 5.35714,1.4286 6.42858,-0.7143 5.35714,-3.2143 5.35714,-3.5714 3.57143,-4.6429 0,-48.9286 z"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <use
-         style="stroke:#00000f;stroke-width:2;stroke-miterlimit:4;stroke-opacity:0.94117647;stroke-dasharray:none"
-         height="100"
-         width="100"
-         transform="matrix(-1,0,0,1,-632.35714,0)"
-         id="use3594"
-         xlink:href="#path2820"
-         y="0"
-         x="0" />
-      <path
-         transform="matrix(1.7388004,0,0,0.81842011,-407.02318,991.12593)"
-         d="m 54.285714,51.607143 c 0,19.625833 -0.95939,35.535714 -2.142857,35.535714 C 50.959389,87.142857 50,71.232976 50,51.607143 50,31.981311 50.959389,16.07143 52.142857,16.07143 c 1.183467,0 2.142857,15.909881 2.142857,35.535713 z"
-         sodipodi:ry="35.535713"
-         sodipodi:rx="2.1428571"
-         sodipodi:cy="51.607143"
-         sodipodi:cx="52.142857"
-         id="path3596"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#00000f;stroke-width:2.0999999;stroke-miterlimit:4;stroke-opacity:0.94117647;stroke-dasharray:none"
-         sodipodi:type="arc" />
-      <path
-         sodipodi:nodetypes="cc"
-         id="path3598"
-         d="m -317.70232,1004.6329 c -0.97812,-5.56156 -2.38084,-11.35416 -5.16682,-17.89856"
-         style="fill:none;stroke:#000000;stroke-width:2.13795257;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         style="fill:none;stroke:#000000;stroke-width:2.13795257;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         d="m -314.65485,1004.99 c 0.97812,-5.56152 2.38084,-11.35412 5.16682,-17.89852"
-         id="path3600"
-         sodipodi:nodetypes="cc" />
-      <path
-         transform="translate(-244.92858,975.86224)"
-         d="m -49.285713,41.607143 c 0,4.240758 -2.798221,7.678572 -6.25,7.678572 -3.45178,0 -6.25,-3.437814 -6.25,-7.678572 0,-4.240757 2.79822,-7.678571 6.25,-7.678571 3.451779,0 6.25,3.437814 6.25,7.678571 z"
-         sodipodi:ry="7.6785712"
-         sodipodi:rx="6.25"
-         sodipodi:cy="41.607143"
-         sodipodi:cx="-55.535713"
-         id="path3630"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#00000f;stroke-width:2;stroke-miterlimit:4;stroke-opacity:0.94117647;stroke-dasharray:none"
-         sodipodi:type="arc" />
-      <path
-         sodipodi:type="arc"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#00000f;stroke-width:2;stroke-miterlimit:4;stroke-opacity:0.94117647;stroke-dasharray:none"
-         id="path3632"
-         sodipodi:cx="-55.535713"
-         sodipodi:cy="41.607143"
-         sodipodi:rx="6.25"
-         sodipodi:ry="7.6785712"
-         d="m -49.285713,41.607143 c 0,4.240758 -2.798221,7.678572 -6.25,7.678572 -3.45178,0 -6.25,-3.437814 -6.25,-7.678572 0,-4.240757 2.79822,-7.678571 6.25,-7.678571 3.451779,0 6.25,3.437814 6.25,7.678571 z"
-         transform="translate(-278.50001,975.5051)" />
-      <path
-         transform="matrix(0.8660254,-0.5,0.5,0.8660254,-395.84695,1007.2591)"
-         d="m 40.000001,71.071426 c 0,1.972446 -2.478424,3.571429 -5.535714,3.571429 -3.057291,0 -5.535714,-1.598983 -5.535714,-3.571429 0,-1.972445 2.478423,-3.571428 5.535714,-3.571428 3.05729,0 5.535714,1.598983 5.535714,3.571428 z"
-         sodipodi:ry="3.5714285"
-         sodipodi:rx="5.5357141"
-         sodipodi:cy="71.071426"
-         sodipodi:cx="34.464287"
-         id="path3634"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#00000f;stroke-width:2;stroke-miterlimit:4;stroke-opacity:0.94117647;stroke-dasharray:none"
-         sodipodi:type="arc" />
-      <path
-         sodipodi:type="arc"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#00000f;stroke-width:2;stroke-miterlimit:4;stroke-opacity:0.94117647;stroke-dasharray:none"
-         id="path3636"
-         sodipodi:cx="34.464287"
-         sodipodi:cy="71.071426"
-         sodipodi:rx="5.5357141"
-         sodipodi:ry="3.5714285"
-         d="m 40.000001,71.071426 c 0,1.972446 -2.478424,3.571429 -5.535714,3.571429 -3.057291,0 -5.535714,-1.598983 -5.535714,-3.571429 0,-1.972445 2.478423,-3.571428 5.535714,-3.571428 3.05729,0 5.535714,1.598983 5.535714,3.571428 z"
-         transform="matrix(-0.8660254,-0.5,-0.5,0.8660254,-236.51019,1006.1876)" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteCamel.svg b/svg/WhiteCamel.svg
deleted file mode 100644 (file)
index 01281b8..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="WhiteCamel.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="504"
-     id="namedview14"
-     showgrid="false"
-     inkscape:zoom="2.36"
-     inkscape:cx="50"
-     inkscape:cy="49.168872"
-     inkscape:window-x="0"
-     inkscape:window-y="25"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 50 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="100 : 50 : 1"
-       inkscape:persp3d-origin="50 : 33.333333 : 1"
-       id="perspective16" />
-    <inkscape:perspective
-       id="perspective2846"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3648"
-     transform="matrix(-1,0,0,1,100,0)">
-    <path
-       sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccc"
-       id="path2852"
-       d="M 68.644068,94.491525 63.559322,91.525424 58.898305,88.559322 C 55.649717,86.594371 52.40113,83.028899 49.152542,78.813559 l -3.38983,-8.050847 0.423729,-4.661017 -2.542373,-5.508475 c -3.64729,-1.744968 -6.369422,-5.340252 -8.898305,-9.322034 -3.03946,-1.166622 -7.854587,-3.221078 -13.135594,-5.508474 l -5.932203,1.271186 -4.237288,1.694916 -4.2372882,-4.661017 -2.118644,-2.542373 0.8474576,-2.966102 2.5423729,-2.966102 0.8474581,-4.661017 1.2711856,-2.966101 5.932204,-3.81356 6.779661,-2.118644 8.898305,-1.271186 8.050847,0.423729 c 2.026084,-1.431841 3.876943,-1.319999 5.932204,-0.423729 l 5.084745,-4.237288 4.237288,-1.694915 4.661018,-0.847458 7.627118,1.694915 3.81356,2.118644 2.966101,3.389831 c 1.428287,3.13906 2.65664,5.878251 2.966102,6.779661 l 3.813559,4.661017 3.389831,4.661016 2.118644,5.508476 c 0.489507,3.37517 1.075868,6.652922 0.42373,8.898304 -0.0046,2.820271 0.198015,3.72909 1.271185,7.627119 l 2.118644,2.542373 4.237288,2.542373 -0.847457,30.084745 -25.423729,0 z"
-       style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    <path
-       id="path2856"
-       d="m 40.378075,28.718371 2.418535,-0.628431 2.418535,1.256862 -2.720852,1.885292 -2.116218,-2.513723 z"
-       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60021949;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    <path
-       sodipodi:nodetypes="cccc"
-       id="path2860"
-       d="m 6.779661,43.644068 c 5.932203,0.41879 11.864407,-3.645219 17.79661,-6.355932 l -0.423729,0.423728 0,0"
-       style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    <path
-       sodipodi:nodetypes="ccc"
-       id="path2862"
-       d="m 11.652907,30.719973 c 2.384724,-1.81183 3.815498,-1.755981 5.084015,-1.382457 l 0,0"
-       style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1.77700317;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    <path
-       sodipodi:nodetypes="ccc"
-       id="path2866"
-       d="m 58.474576,25.000001 c 4.759069,-1.824488 8.061031,-8.020296 14.830508,-3.81356 0.595434,8.79514 -4.922629,9.948409 -8.474576,13.559323"
-       style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    <path
-       sodipodi:nodetypes="cc"
-       id="path2868"
-       d="M 63.559322,46.186441 C 59.819151,56.796264 54.823776,59.874859 50,63.983051"
-       style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    <path
-       sodipodi:nodetypes="ccc"
-       id="path2872"
-       d="M 89.830508,70.762712 86.016949,82.20339 c -0.866152,6.281154 -2.241444,10.525748 -4.237288,12.288135"
-       style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    <path
-       sodipodi:nodetypes="ccc"
-       id="path2874"
-       d="m 69.915254,36.864407 c -0.788913,9.673303 -2.321115,14.886867 -4.237288,17.79661 l 0,-0.423729"
-       style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-  </g>
-</svg>
diff --git a/svg/WhiteCanon.svg b/svg/WhiteCanon.svg
deleted file mode 100644 (file)
index ea12993..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165632)"
-     id="layer1">
-    <g
-       transform="matrix(1.2579027,0,0,1.2559836,-516.51075,75.363446)"
-       id="g1812"
-       style="display:inline">
-      <path
-         d="m 477.39624,1.8939841 -4.34143,10.4515849 0.5223,0.270816 1.8896,-1.557164 54.18745,25.566184 4.98461,-15.114599 L 478.361,4.1450948 478.00268,2.1164623 z"
-         inkscape:connector-curvature="0"
-         id="path1808"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.59116232;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 476.99425,24.324694 13.10469,0 0,-3.939445 27.33491,0 0,3.939445 13.02428,0 0,23.234677 -53.46388,0 z"
-         inkscape:connector-curvature="0"
-         id="path1800"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.59116232;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 495.40513,51.740005 a 4.984602,4.984602 0 1 1 -9.9692,0 4.984602,4.984602 0 1 1 9.9692,0 z"
-         transform="translate(-1.1255553,-3.5374595)"
-         id="path1804"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.59116232;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 495.40513,51.740005 a 4.984602,4.984602 0 1 1 -9.9692,0 4.984602,4.984602 0 1 1 9.9692,0 z"
-         transform="translate(26.69174,-3.5374595)"
-         id="path1806"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.59116232;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 535.12117,29.068106 a 2.2511106,2.2511106 0 1 1 -4.50222,0 2.2511106,2.2511106 0 1 1 4.50222,0 z"
-         id="path1810"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.59116232;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteChancellor.svg b/svg/WhiteChancellor.svg
deleted file mode 100644 (file)
index 5e8ce55..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1">
-    <g
-       transform="matrix(0.98619845,0,0,0.98619845,1.6271584,1.4100453)"
-       id="g2035">
-      <g
-         transform="matrix(-1.0678159,0,0,0.96471598,385.18259,71.476015)"
-         id="g1754">
-        <path
-           d="m 238.21185,-1.7155471 2.55401,0.0595 c -0.11306,-2.7134211 4.44555,-7.1531665 4.44555,-7.1531665 0,0 2.6311,2.9526263 3.05622,7.1168654 5.9381,-0.2374968 11.03878,2.8990232 13.00056,4.1073952 12.42868,7.655546 17.29364,32.448756 17.26817,51.469126 l -44.90277,-0.141002 c -0.20729,-13.073379 15.56269,-17.974522 15.10098,-30.390825 -3.98486,3.099334 -8.42701,3.94292 -11.94512,6.90514 -2.79351,2.352109 -4.23289,5.107136 -7.01819,8.412488 -1.02679,1.218501 -3.76823,0.678355 -4.65375,-1.092696 -4.42762,1.32829 -8.68213,0.01778 -8.58207,-6.302259 0.0886,-5.594944 5.71512,-10.651222 7.64949,-15.901883 0.8339,-2.263527 0.71728,-5.7619951 2.03476,-8.280479 1.02298,-1.9555369 3.32544,-4.2204556 4.38056,-4.9644989 0.81951,-2.78858391 0.63978,-7.5122594 -0.71693,-9.3212068 1.97854,-0.5652961 6.51958,2.1987846 8.32853,5.4775016 z"
-           inkscape:connector-curvature="0"
-           id="path4350"
-           style="opacity:0.98999999;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.74281836px;stroke-opacity:1" />
-        <path
-           d="m 242.81689,-0.58069936 c -0.072,0.79486254 -0.32711,1.42135025 -0.73002,2.28035536 -2.11721,4.5138671 -1.19455,-0.1716813 -1.14905,-1.19710158 -1.50976,0.47874748 -4.00517,2.26532638 -5.07373,3.22990388 0.2262,-0.822523 1.59457,-2.91401608 1.19879,-4.37258378 -0.53461,-1.97018662 -2.39735,-3.30685752 -4.38274,-4.27768712 0.61573,2.305974 0.97448,5.12831401 -0.52388,8.1053126 -0.963,1.1263746 -1.94758,1.992982 -2.75,3.125 -0.68313,0.9637262 -1.34296,1.9556425 -1.73503,3.090079 -0.83217,1.95126 -0.86757,4.102469 -1.47299,6.117007 -1.0152,3.389738 -2.8013,6.466007 -4.8023,9.361167 -1.33288,2.142142 -2.90703,4.397401 -2.85563,7.031336 0.074,1.299767 0.66114,2.59601 1.56989,3.430555 1.07494,0.869977 2.59231,0.82959 3.80468,0.430633 1.76617,-0.581196 3.02202,-3.3374 4.47311,-5.629934 0.0475,0.474451 -0.10089,1.848603 -0.28033,3.228551 -0.22412,1.723516 -0.4967,3.456074 -0.4967,3.456074 3.78439,-2.467212 6.29028,-7.057025 10.07655,-9.827968 2.63561,-1.928841 6.46629,-2.181126 8.64217,-4.616774 2.70726,-3.030455 3.36645,-3.372936 4.50035,-11.329732 1.23577,7.754431 0.26208,17.297222 -3.06808,22.364697 -0.94356,1.435812 -2.64098,3.136326 -3.94944,4.706809 -2.35937,2.831831 -5.02065,5.234162 -6.63424,8.423218 -0.82438,1.629293 -1.38054,3.845243 -1.45951,5.27993 13.88505,0.05216 27.62654,-0.03393 39.71316,0 0.13389,-5.249005 -0.48174,-10.005913 -1.26011,-14.943931 -0.75657,-4.799697 -1.81449,-9.572366 -3.30276,-14.197788 -1.25479,-3.899783 -2.30537,-8.037609 -4.71838,-11.348224 -3.01163,-4.1319023 -7.09257,-7.6856654 -11.68081,-9.9418973 -1.89015,-0.92946742 -3.84424,-1.22768185 -5.87614,-1.42411251 -0.67664,2.63979221 -1.13781,0.36144826 -1.51273,-0.14218972 -1.03671,-1.94459497 -1.88857,-2.71395277 -2.04236,-4.94441567 -1.31768,1.7707756 -2.11286,3.3322909 -2.22174,4.53371084 z"
-           inkscape:connector-curvature="0"
-           id="path4352"
-           style="opacity:0.98999999;fill:#ffffcc;fill-opacity:1;stroke:#fdfdca;stroke-width:0.74281836px;stroke-opacity:1" />
-        <path
-           d="m 221.53873,32.85876 c 2.61354,-0.122981 3.81785,-5.736082 1.16227,-5.663706 -2.93332,0.07995 -3.41743,5.769824 -1.16227,5.663706 z"
-           inkscape:connector-curvature="0"
-           id="path4348"
-           style="opacity:0.98999999;fill:#000000;fill-opacity:1" />
-        <path
-           d="m 230.75067,14.108964 0.88552,-2.213813 c 2.65658,0.442761 3.98486,-0.885522 3.5421,-3.5421016 l 2.21381,-0.442761 0,-0.442761 c -3.98486,-0.885529 -7.52696,2.6565726 -6.64143,6.6414366 z"
-           inkscape:connector-curvature="0"
-           id="path4340"
-           style="opacity:0.98999999;fill:#000000;fill-opacity:1" />
-        <path
-           d="m 238.21185,-1.7155471 2.55401,0.0595 c -0.11306,-2.7134211 4.44555,-7.1531665 4.44555,-7.1531665 0,0 2.6311,2.9526263 3.05622,7.1168654 5.9381,-0.2374968 11.03878,2.8990232 13.00056,4.1073952 12.42868,7.655546 17.29364,32.448756 17.26817,51.469126 l -44.90277,-0.141002 c -0.20729,-13.073379 15.56269,-17.974522 15.10098,-30.390825 -3.98486,3.099334 -8.42701,3.94292 -11.94512,6.90514 -2.79351,2.352109 -4.23289,5.107136 -7.01819,8.412488 -1.02679,1.218501 -3.76823,0.678355 -4.65375,-1.092696 -4.42762,1.32829 -8.68213,0.01778 -8.58207,-6.302259 0.0886,-5.594944 5.71512,-10.651222 7.64949,-15.901883 0.8339,-2.263527 0.71728,-5.7619951 2.03476,-8.280479 1.02298,-1.9555369 3.32544,-4.2204556 4.38056,-4.9644989 0.81951,-2.78858391 0.63978,-7.5122594 -0.71693,-9.3212068 1.97854,-0.5652961 6.51958,2.1987846 8.32853,5.4775016 z"
-           inkscape:connector-curvature="0"
-           id="path4729"
-           style="opacity:0.98999999;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.74281836px;stroke-opacity:1" />
-        <path
-           d="m 242.81689,-0.58069936 c -0.072,0.79486254 -0.32711,1.42135025 -0.73002,2.28035536 -2.11721,4.5138671 -1.19455,-0.1716813 -1.14905,-1.19710158 -1.50976,0.47874748 -4.00517,2.26532638 -5.07373,3.22990388 0.2262,-0.822523 1.59457,-2.91401608 1.19879,-4.37258378 -0.53461,-1.97018662 -2.39735,-3.30685752 -4.38274,-4.27768712 0.61573,2.305974 0.97448,5.12831401 -0.52388,8.1053126 -0.963,1.1263746 -1.94758,1.992982 -2.75,3.125 -0.68313,0.9637262 -1.34296,1.9556425 -1.73503,3.090079 -0.83217,1.95126 -0.86757,4.102469 -1.47299,6.117007 -1.0152,3.389738 -2.8013,6.466007 -4.8023,9.361167 -1.33288,2.142142 -2.90703,4.397401 -2.85563,7.031336 0.074,1.299767 0.66114,2.59601 1.56989,3.430555 1.07494,0.869977 2.59231,0.82959 3.80468,0.430633 1.76617,-0.581196 3.02202,-3.3374 4.47311,-5.629934 0.0475,0.474451 -0.10089,1.848603 -0.28033,3.228551 -0.22412,1.723516 -0.4967,3.456074 -0.4967,3.456074 3.78439,-2.467212 6.29028,-7.057025 10.07655,-9.827968 2.63561,-1.928841 6.46629,-2.181126 8.64217,-4.616774 2.70726,-3.030455 3.36645,-3.372936 4.50035,-11.329732 1.23577,7.754431 0.26208,17.297222 -3.06808,22.364697 -0.94356,1.435812 -2.64098,3.136326 -3.94944,4.706809 -2.35937,2.831831 -5.02065,5.234162 -6.63424,8.423218 -0.82438,1.629293 -1.38054,3.845243 -1.45951,5.27993 13.88505,0.05216 27.62654,-0.03393 39.71316,0 0.13389,-5.249005 -0.48174,-10.005913 -1.26011,-14.943931 -0.75657,-4.799697 -1.81449,-9.572366 -3.30276,-14.197788 -1.25479,-3.899783 -2.30537,-8.037609 -4.71838,-11.348224 -3.01163,-4.1319023 -7.09257,-7.6856654 -11.68081,-9.9418973 -1.89015,-0.92946742 -3.84424,-1.22768185 -5.87614,-1.42411251 -0.67664,2.63979221 -1.13781,0.36144826 -1.51273,-0.14218972 -1.03671,-1.94459497 -1.88857,-2.71395277 -2.04236,-4.94441567 -1.31768,1.7707756 -2.11286,3.3322909 -2.22174,4.53371084 z"
-           inkscape:connector-curvature="0"
-           id="path4731"
-           style="opacity:0.98999999;fill:#ffffcc;fill-opacity:1;stroke:#fdfdca;stroke-width:0.74281836px;stroke-opacity:1" />
-        <path
-           d="m 221.53873,32.85876 c 2.61354,-0.122981 3.81785,-5.736082 1.16227,-5.663706 -2.93332,0.07995 -3.41743,5.769824 -1.16227,5.663706 z"
-           inkscape:connector-curvature="0"
-           id="path4733"
-           style="opacity:0.98999999;fill:#000000;fill-opacity:1" />
-        <path
-           d="m 230.75067,14.108964 0.88552,-2.213813 c 2.65658,0.442761 3.98486,-0.885522 3.5421,-3.5421016 l 2.21381,-0.442761 0,-0.442761 c -3.98486,-0.885529 -7.52696,2.6565726 -6.64143,6.6414366 z"
-           inkscape:connector-curvature="0"
-           id="path4735"
-           style="opacity:0.98999999;fill:#000000;fill-opacity:1" />
-      </g>
-      <path
-         d="m 81.834472,129.72791 60.275818,0 -8.431,-6.4845 -43.447162,0 z"
-         inkscape:connector-curvature="0"
-         id="path1426"
-         style="color:#000000;fill:#fdfdca;fill-opacity:1;stroke:#000000;stroke-width:2.02798939;stroke-linecap:square;stroke-linejoin:bevel;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 81.829584,142.72544 0,-12.9924 60.285596,0 0,12.9924 -12.3224,0 0,-6.4556 -12.32239,0 0,6.4556 -11.03881,0 0,-6.4556 -12.279603,0 0,6.4556 -12.322393,0 z"
-         inkscape:connector-curvature="0"
-         id="path1428"
-         style="color:#000000;fill:#fdfdca;fill-opacity:1;stroke:#000000;stroke-width:2.02798939;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteClaw.svg b/svg/WhiteClaw.svg
deleted file mode 100644 (file)
index 238623d..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="100"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="WhiteClaw.svg">
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2828"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2850"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2872"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2894"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2918"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2940"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2962"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="4.8704322"
-     inkscape:cx="26.42854"
-     inkscape:cy="36.240771"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="1366"
-     inkscape:window-height="588"
-     inkscape:window-x="0"
-     inkscape:window-y="24"
-     inkscape:window-maximized="1" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(0,-952.36218)">
-    <g
-       id="g3610">
-      <path
-         sodipodi:nodetypes="cccccccccccccccccccc"
-         id="path2816"
-         d="m 49.667863,1012.1206 2.166994,9.0012 -0.333383,6.3344 -2.333687,8.3346 -4.167298,4.5007 -5.167449,2.5004 -5.334142,0.3334 -6.334292,-3.3339 -3.500529,-4.8341 -1.000152,-7.5011 -2.166995,-4.334 -5.334141,-4.1672 -2.500379,-6.001 2.000304,-6.1675 5.000756,-3.1672 5.500834,-0.8335 6.500984,0.3334 7.667828,1.0002 5.834217,3.0004 3.50053,5.0008 z"
-         style="fill:#ffffcc;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
-      <path
-         sodipodi:nodetypes="cccccccccccc"
-         id="path2818"
-         d="m 39.626874,999.80011 -1.847886,-3.07981 0.821283,-5.95429 2.874488,-5.33834 5.338336,-3.07981 5.338334,0.61596 3.901092,3.49045 0,5.74898 -2.669167,5.13301 -4.517054,3.28514 -4.517053,1.0266 -4.722373,-1.84789 z"
-         style="fill:#ffffcc;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
-      <path
-         sodipodi:nodetypes="cccccccccccc"
-         id="path2818-3"
-         d="m 70.11698,997.5416 1.847886,3.0798 -0.821283,5.9543 -2.874488,5.3383 -5.338336,3.0798 -5.748975,-0.2053 -3.490451,-3.9011 0,-5.749 2.258526,-5.54356 4.927695,-2.87454 4.517053,-1.0266 4.722373,1.8479 z"
-         style="fill:#ffffcc;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
-      <path
-         sodipodi:nodetypes="cccccccccccc"
-         id="path2818-3-2"
-         d="m 33.569916,981.32129 1.847886,3.07984 -0.821283,5.9543 -2.874488,5.33826 -5.338336,3.0798 -5.748975,-0.2053 -3.490451,-3.9011 0,-5.74896 2.258526,-5.5436 4.927695,-2.87454 4.517053,-1.0266 4.722373,1.8479 z"
-         style="fill:#ffffcc;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
-      <path
-         sodipodi:nodetypes="cccccccccccc"
-         id="path2818-3-6"
-         d="m 72.375506,1019.9215 2.463848,4.5171 -0.410642,4.7223 -4.106412,4.9277 -5.133015,2.0532 -5.748975,-0.2053 -3.490451,-3.9011 0,-5.749 2.669167,-4.7223 4.722375,-2.4639 4.722373,-0.8213 4.311732,1.6426 z"
-         style="fill:#ffffcc;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
-      <path
-         sodipodi:nodetypes="ccccccccc"
-         id="path2908"
-         d="m 34.083217,975.98293 -2.053206,-0.61597 0.821282,-4.51705 2.463847,-2.66917 4.106412,-0.41064 2.053206,0.61596 -3.285129,0.82129 -2.258527,2.46384 -1.847885,4.31174 z"
-         style="fill:#000000;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="ccccccccc"
-         id="path2908-4"
-         d="m 56.216861,980.17756 -1.915052,-0.96315 1.593184,-4.30582 2.88991,-2.20078 4.115337,0.30866 1.915052,0.96314 -3.37784,0.2383 -2.652056,2.03423 -2.568537,3.92535 z"
-         style="fill:#000000;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="ccccccccc"
-         id="path2908-4-6"
-         d="m 73.878161,994.50275 0.963152,1.91506 4.30582,-1.59319 2.200779,-2.88991 -0.308659,-4.11533 -0.96314,-1.91506 -0.238295,3.37784 -2.03423,2.65206 -3.92535,2.56854 z"
-         style="fill:#000000;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="ccccccccc"
-         id="path2908-4-6-3"
-         d="m 77.705679,1018.2026 0.792583,1.9916 4.428292,-1.2118 2.444276,-2.6871 0.05119,-4.1266 -0.792563,-1.9917 -0.531791,3.3443 -2.257627,2.4646 -4.134281,2.2167 z"
-         style="fill:#000000;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteCobra.svg b/svg/WhiteCobra.svg
deleted file mode 100644 (file)
index ba9b2c2..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1">
-    <g
-       transform="matrix(1.3078331,0,0,1.3074914,-546.54412,-94.472325)"
-       id="g764"
-       style="display:inline">
-      <path
-         d="m 489.02515,180.98626 13.14716,0 c 0.0776,-4.60412 -1.33992,-10.53906 -0.87428,-14.96586 1.57219,-14.9466 10.60519,-23.90623 15.25014,-31.11064 -3.80899,-5.16056 -33.91229,-1.2287 -33.91229,-1.2287 -6.51214,4.79195 -5.76509,22.94811 0.24574,29.61182 3.81237,4.22647 6.41945,8.34587 6.14353,17.69338 z"
-         inkscape:connector-curvature="0"
-         id="path751"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.52944684;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 508.68445,124.22002 c -9.82965,0.24574 -22.23959,4.91483 -25.18848,8.96956 11.3041,-0.24574 15.06075,3.47663 22.23959,6.2664 5.68522,2.20933 10.24767,7.97824 16.34179,8.23233 4.01659,0.16747 7.37519,-1.39146 7.24937,-4.1776 -0.17133,-3.79392 -4.40092,-7.64497 -8.10946,-9.58391 -1.53131,-0.80062 -2.45742,-0.86009 -5.16057,-0.49148 3.44038,-2.62559 -4.42334,-9.21603 -7.37224,-9.2153 z"
-         inkscape:connector-curvature="0"
-         id="path753"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.52944684;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 519.86567,141.66765 a 1.2287064,0.98296511 0 1 1 -2.45741,0 1.2287064,0.98296511 0 1 1 2.45741,0 z"
-         transform="translate(-0.86009448,-0.73722384)"
-         id="path755"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.76472342;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 519.86567,141.66765 a 1.2287064,0.98296511 0 1 1 -2.45741,0 1.2287064,0.98296511 0 1 1 2.45741,0 z"
-         transform="translate(5.2834375,-3.071766)"
-         id="path757"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.76472342;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 528.58949,146.45961 4.42335,3.80899 4.54621,-0.12287"
-         inkscape:connector-curvature="0"
-         id="path760"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.52944684;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 532.7671,150.39147 1.96593,3.19464"
-         inkscape:connector-curvature="0"
-         id="path762"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.52944684;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteCommoner.svg b/svg/WhiteCommoner.svg
deleted file mode 100644 (file)
index 4671f4f..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1">
-    <g
-       transform="matrix(1.4658792,0,0,1.4658792,129.20813,65.385694)"
-       id="g985"
-       style="display:inline">
-      <path
-         d="m 23.788202,46.397445 c 0,3.30302 -14.2004544,5.980649 -31.7176028,5.980649 -17.5171492,0 -31.7176042,-2.677629 -31.7176042,-5.980649 -0.134396,-2.419139 5.293714,-5.878609 7.123023,-9.340566 3.186825,-6.031047 1.412191,-14.822552 6.451037,-19.420312 4.587545,-4.185963 11.93326,-4.218539 18.1435442,-4.233494 6.341238,-0.01527 13.8998102,-0.08132 18.5467338,4.233494 5.135007,4.768016 2.893675,13.904599 6.182245,20.092295 1.741887,3.277493 7.020729,6.052203 6.988624,8.668583 z"
-         inkscape:connector-curvature="0"
-         id="path913"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.36436892;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 16.396387,47.271023 a 28.223289,5.6446581 0 1 1 -56.446579,0 28.223289,5.6446581 0 1 1 56.446579,0 z"
-         transform="matrix(1.1238096,0,0,1.0595238,5.3617852,-3.6873294)"
-         id="path907"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.25034571;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 15.793025,42.501944 c -5.8100937,1.589737 -14.2849064,2.753129 -23.7224258,2.753129 -9.4104242,0 -17.8636602,-1.156721 -23.6723152,-2.739446"
-         inkscape:connector-curvature="0"
-         id="path909"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.36436892;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -26.477647,33.340556 c 5.21601,-0.710202 11.735211,-1.888971 18.660526,-1.888971 7.02502485,0 13.4043445,1.190907 18.660525,1.91983"
-         inkscape:connector-curvature="0"
-         id="path911"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.36436892;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -9.4749617,13.335876 -2.7551303,-8.4669877 4.9054764,-5.03987326 4.9054764,5.03987326 -2.620734,8.4669877 z"
-         inkscape:connector-curvature="0"
-         id="path918"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.36436892;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteCopper.svg b/svg/WhiteCopper.svg
deleted file mode 100644 (file)
index d59e291..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="100"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="WhiteCopper.svg">
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2824"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2838"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="2"
-     inkscape:cx="52.657835"
-     inkscape:cy="23.437927"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="792"
-     inkscape:window-height="583"
-     inkscape:window-x="62"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(366.71429,-981.93367)">
-    <g
-       id="g4562"
-       transform="matrix(1.193104,0,0,1.1895413,59.079489,-196.62832)">
-      <path
-         sodipodi:nodetypes="ccccc"
-         transform="translate(-366.71429,981.93367)"
-         id="path4556"
-         d="M 26,52 64.5,71.5 C 67.515912,63.469849 70.035767,55.340487 66.5,46 60.825627,35.689785 56.003077,33.324102 45,36 35.761059,37.427726 29.618288,43.951622 26,52 z"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="cccccccccccc"
-         transform="translate(-366.71429,981.93367)"
-         id="path4558"
-         d="m 64.5,72 c -3.779495,3.707045 -6.553395,8.793287 -5,16.5 -4.913998,-2.365558 -5.084633,-8.970056 -6,-18 L 47.607692,67.938462 42.02124,78.050221 C 35.754635,84.142996 27.953864,80.53078 20.5,79.5 L 27.933962,63.481132 34.801887,63.443396 29.5,57 22,66 26,51.5 64.5,72 z"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="cccccccccc"
-         transform="translate(-366.71429,981.93367)"
-         id="path4560"
-         d="M 35,40 C 33.178622,32.957102 25.872149,29.802281 18,28 25.69257,19.679618 39.084953,14.459143 51.5,14.5 61.668917,15.831083 71.474869,21.525131 75,33 79.666667,43.333333 75.553573,47.386906 78,59.5 78.875389,68.436916 84.489005,75.016492 88,80 72.19585,77.012538 73.724002,59.633782 66.5,66 68.721953,59.044391 69.399712,51.779942 65,43.5 63.169388,38.131156 58.494001,35.038133 50,35 44.378886,34.803323 39.289044,36.200466 35,40 z"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteCrownedBishop.svg b/svg/WhiteCrownedBishop.svg
deleted file mode 100644 (file)
index 79a6367..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1">
-    <g
-       transform="matrix(1.2404378,0,0,1.2412981,127.08498,542.59891)"
-       id="g1105"
-       style="display:inline">
-      <path
-         d="m -18.51544,-346.78633 c -2.614757,-2.54165 -8.234766,-8.35744 -10.508347,-9.74471 -2.273581,-1.38727 -7.91168,-3.08934 -8.059624,-5.71859 1.267913,-5.86233 15.836842,-7.17605 25.127698,-17.37235 l 8.1144435,-0.024 c 10.2744628,10.07442 24.1971175,12.00046 25.3068295,17.39639 -0.449756,2.92902 -3.681893,3.70899 -6.602616,5.71855 -2.920723,2.00956 -8.2743387,6.6625 -11.391974,9.74475 z"
-         inkscape:connector-curvature="0"
-         id="path884"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.61177504;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 7.21823,-337.54517 c 0,1.6435 -6.66157,2.97581 -14.87902,2.97581 -8.21746,0 -14.87903,-1.33231 -14.87903,-2.97581 0.0526,-1.10471 2.12554,-7.70048 5.16562,-8.71511 5.33881,-1.78182 14.24203,-1.99005 19.77699,0 2.97119,1.06827 4.86805,7.71561 4.81544,8.71511 z"
-         inkscape:connector-curvature="0"
-         id="path886"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.61177504;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -22.05759,-338.28262 c 1.6404,-1.28678 7.47388,-2.23835 14.4186,-2.23835 6.88597,0 12.67941,0.93554 14.37606,2.20576"
-         inkscape:connector-curvature="0"
-         id="path888"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.61177504;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -7.66026,-367.6202 0,12.95918"
-         inkscape:connector-curvature="0"
-         id="path890"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.61177504;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -14.6466,-360.60764 13.97267,0"
-         inkscape:connector-curvature="0"
-         id="path892"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.61177504;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -39.17083,-326.2747 3.26152,3.68236 c 1.60406,-1.05102 3.7219,-1.999 5.78658,-1.999 l 15.25554,0 c 2.52822,0 4.95679,-2.15681 6.99651,-3.20892 2.25013,0.9469 4.39255,3.20892 6.9965,3.20892 l 16.09722,0 c 1.74542,0 3.17357,0.90741 4.83968,1.999 l 3.78758,-3.68236 c -1.71938,-1.29856 -4.76079,-3.32636 -7.36474,-3.32636 l -16.83369,0 c -1.77932,-0.0287 -2.82421,-1.66082 -4.92736,-3.93318 l -4.87476,0 c -1.35847,1.19074 -3.72194,3.95713 -5.76905,3.93318 l -15.78159,0 c -2.73547,0 -5.45646,1.44385 -7.46994,3.32636 z"
-         inkscape:connector-curvature="0"
-         id="path894"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.61177504;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteCrownedRook.svg b/svg/WhiteCrownedRook.svg
deleted file mode 100644 (file)
index 7ec9ff4..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1">
-    <g
-       transform="matrix(1.3660883,0,0,1.2822282,-221.35642,398.21406)"
-       id="g1457"
-       style="fill:#ffffcc;fill-opacity:1;display:inline">
-      <path
-         d="m 222.10227,-204.68568 52.01421,0 0,4.99548 -52.01421,0 z"
-         inkscape:connector-curvature="0"
-         id="path1388"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1.51115131;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 227.11898,-211.69225 41.98078,0 0,7.00167 -41.98078,0 z"
-         inkscape:connector-curvature="0"
-         id="path1390"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1.51115131;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 232.11249,-216.67209 31.98161,0 5.07471,4.96519 -42.11887,0 z"
-         inkscape:connector-curvature="0"
-         id="path1392"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1.51115131;stroke-linejoin:bevel;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 232.11856,-235.85127 31.98163,0 0,19.17919 -31.98164,0 z"
-         inkscape:connector-curvature="0"
-         id="path1394"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1.51115131;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 226.09732,-240.60912 44.02411,0 -6.15781,4.991 -31.73284,0 z"
-         inkscape:connector-curvature="0"
-         id="path1396"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1.51115131;stroke-linecap:square;stroke-linejoin:bevel;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 226.09375,-250.61307 0,10 44.03125,0 0,-10 -9,0 0,4.96875 -9,0 0,-4.96875 -8.0625,0 0,4.96875 -8.96875,0 0,-4.96875 -9,0 z"
-         inkscape:connector-curvature="0"
-         id="path1398"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1.51115131;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 230.92972,-250.49356 17.32946,-10.0764 17.32947,10.0764 -4.46365,-0.11951 0,4.96875 -9,0 0,-4.96875 -8.0625,0 0,4.96875 -8.96875,0 0,-4.96875 z"
-         inkscape:connector-curvature="0"
-         id="path1454"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1.51115131;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteCub.svg b/svg/WhiteCub.svg
deleted file mode 100644 (file)
index 605b9ff..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="100"
-   id="svg3738"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="WhiteLion.svg">
-  <defs
-     id="defs3740">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective3746" />
-    <inkscape:perspective
-       id="perspective3800"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="2.8"
-     inkscape:cx="104.93845"
-     inkscape:cy="49.899824"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="716"
-     inkscape:window-height="504"
-     inkscape:window-x="3"
-     inkscape:window-y="71"
-     inkscape:window-maximized="0"
-     showguides="true"
-     inkscape:guide-bbox="true">
-    <sodipodi:guide
-       position="0.17142614,0.85712"
-       orientation="0,744.09448"
-       id="guide4498" />
-    <sodipodi:guide
-       position="744.26591,0.85712"
-       orientation="-1052.3622,0"
-       id="guide4500" />
-    <sodipodi:guide
-       position="744.26591,1053.2193"
-       orientation="0,-744.09448"
-       id="guide4502" />
-    <sodipodi:guide
-       position="0.17142614,1053.2193"
-       orientation="1052.3622,0"
-       id="guide4504" />
-  </sodipodi:namedview>
-  <metadata
-     id="metadata3743">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(0.17142614,-953.2193)">
-    <g
-       id="g3626"
-       transform="matrix(0.85,0,0,0.85,7.4742861,150.53307)">
-      <path
-         id="path3888"
-         d="m 19.658729,988.24705 2.662046,-6.65512 -1.774696,-3.99306 5.767763,-7.98613 8.873485,-6.21144 11.979202,-0.44368 2.218371,-7.09878 7.542461,0 7.098787,3.99306 10.648179,1.77471 -1.331021,5.76775 11.535527,3.10572 -1.331022,4.43674 6.655112,6.65511 -2.21837,2.21838 7.098788,10.64818 -2.662046,2.66204 4.436742,9.76077 -0.443675,6.2115 0,11.0919 -6.211439,-7.9862 0.443675,16.4159 -2.218371,3.1058 -6.211439,-5.7677 0,8.8734 -4.880415,3.5494 0.887348,-9.7609 -7.098787,11.9793 -3.993067,-4.8805 -4.436742,10.2046 -10.204506,1.331 -9.760832,-1.331 -8.42981,-6.6551 -4.43674,-2.2185 -10.648181,6.6552 -0.443675,-12.4229 -2.21837,-7.5424 -3.105719,2.662 -4.8804165,-3.9931 0.8873482,-8.8734 -2.2183708,-3.9931 0.8873485,-5.3241 -4.8804161,-3.5494 1.3310226,-3.5494 15.0849211,-12.86655 z"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="ccccccc"
-         id="path3890"
-         d="m 37.849371,990.46542 -8.42981,-1.77469 3.549395,1.33102 -5.324091,4.43674 5.324091,-2.66205 3.743499,0.19411 1.136916,-1.52513 z"
-         style="fill:#000000;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3892"
-         d="m 59.589406,989.1344 0,-6.21144 -0.443675,-7.54246 -1.774697,-4.88042 -3.105719,-2.21837 -6.655113,0.88735 -3.549392,3.99307 -1.774696,3.54939"
-         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3894"
-         d="m 55.152664,985.14134 -0.887349,-4.43675 -2.662044,-3.54939 -3.105719,0 -1.774698,3.99306 0,0 0.887348,0.44367 -0.887348,-0.44367"
-         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3896"
-         d="m 14.334641,1004.2193 0,0 z"
-         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="cc"
-         id="path3898"
-         d="M 13.128401,1004.8154 2.7991111,1003.332"
-         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3900"
-         d="m 8.1232014,1010.4308 2.2183706,-2.6621 2.21837,-0.4436 0.443676,-2.6621 0,0"
-         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3902"
-         d="m 8.1232014,1017.5296 3.1057196,-0.8874 3.549393,3.9931 4.436742,0 6.211438,2.2184 4.880416,0.4436 0.443674,0 0,0.4437"
-         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3904"
-         d="m 44.06081,1003.7756 -0.443675,8.4299 -3.549393,6.2114 -0.887348,7.0987 -5.32409,6.2115 -3.993067,6.6552"
-         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3906"
-         d="m 72.455957,998.00788 -3.10572,13.31022 -5.767764,10.6482 -6.655112,8.4298 -4.880416,13.3102"
-         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="cccccc"
-         id="path3908"
-         d="m 66.591138,1040.0876 -0.34662,-7.0294 3.993069,-8.8735 4.43674,-9.7608 2.218371,-10.6483 -0.443673,-7.09874"
-         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3910"
-         d="m 79.998418,997.12053 0,7.09877 0,5.3241 0.887347,7.5425 -4.43674,6.6551 -2.662046,5.3241 -1.331022,6.2114"
-         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="ccccc"
-         id="path3912"
-         d="m 72.012283,978.04254 6.655113,7.0988 7.986135,5.76775 -0.09705,20.35351 3.091854,3.9377"
-         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3914"
-         d="m 72.012283,972.71846 7.542461,0.88734 4.880416,2.66205 0,0"
-         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="ccc"
-         id="path3916"
-         d="m 20.546079,987.94202 11.535527,-8.12478 4.436742,-2.66204"
-         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path4508"
-         d="m 16.040012,1011.3181 c 8.318891,-1.7331 7.972271,-1.7331 7.972271,-1.7331"
-         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path4510"
-         d="m 16.733253,1014.091 c 11.438475,-0.3466 11.438475,-0.3466 11.438475,-0.3466"
-         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path4512"
-         d="m 17.079873,1016.5174 c 10.745234,4.1594 10.745234,4.1594 10.745234,4.1594"
-         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteDolphin.svg b/svg/WhiteDolphin.svg
deleted file mode 100644 (file)
index c990494..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="100"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="WhiteDolphin.svg">
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2826"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2834"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="4.5167464"
-     inkscape:cx="49.318911"
-     inkscape:cy="67.128756"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="1366"
-     inkscape:window-height="588"
-     inkscape:window-x="0"
-     inkscape:window-y="24"
-     inkscape:window-maximized="1" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(0,-952.36218)">
-    <g
-       id="g3597">
-      <path
-         sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
-         id="path2832"
-         d="m 25.422502,1009.2837 3.64721,-5.9885 4.085169,-6.56537 5.708527,-7.19404 4.800386,-5.25188 5.245237,-4.27474 5.082411,-3.5041 1.946123,-0.99064 1.6641,-2.73841 0.962415,-3.52748 -0.632865,-2.14233 -0.672599,-2.98178 -0.538857,-1.55972 1.891848,-0.73376 2.890098,0.70676 3.063572,2.96828 1.833675,3.65165 1.576843,3.8397 0.376031,2.33037 5.103703,2.56023 5.548553,3.53738 3.967814,3.8262 4.264383,4.47761 3.345595,4.71602 2.184518,4.04622 2.111695,4.21583 1.08172,4.303 0.394076,2.7853 -0.774149,3.9553 -1.327296,3.8618 0.358095,6.9663 0.220603,4.9517 -2.02898,1.0799 -1.768755,-2.6475 -3.591278,-8.7269 -2.55102,-1.9435 -2.810742,-3.6758 -2.991865,-3.2423 -0.142145,2.7315 c -1.121073,2.1006 -0.689228,2.1788 -1.581243,2.8704 l -2.69519,1.7911 -2.936977,0.2938 -3.51896,-1.444 2.889234,-3.0578 1.147291,-2.2168 0.26874,-3.0564 -1.420295,-3.2124 -5.299117,-2.2551 -6.091307,-0.9685 -7.726322,-0.423 -6.525511,1.0865 -5.838372,2.972 -5.798638,3.8114 -4.543551,5.0637 -4.138435,5.2015 5.420085,1.0098 4.07875,2.9434 3.376311,4.809 -1.331302,3.3423 -5.333223,-3.9007 -5.221783,-1.6086 -5.146325,0.3486 0.115952,-3.7133 -3.793479,4.6365 -3.891237,0.1834 -4.328943,0.8646 -5.5362864,2.5972 -0.4024811,-1.0225 2.2487192,-3.6566 4.5144665,-3.314 4.7424668,-2.0465 4.062579,-1.1241 3.564969,-4.871 3.145565,-5.7562 z"
-         style="fill:#ffffcc;stroke:#000000;stroke-width:2.13330363999999983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
-      <path
-         id="path2834"
-         d="m 73.483788,1000.6302 -4.875955,-0.5555 -3.848618,-1.30775 -4.184918,-2.79866 -3.765255,-3.75745 -3.088762,-4.90406 6.521615,3.04205 3.566594,-0.43998 3.552051,0.65635"
-         style="fill:none;stroke:#000000;stroke-width:2.13330364;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path2842"
-         d="m 83.218266,1002.246 1.146534,1.7662"
-         style="fill:none;stroke:#000000;stroke-width:2.13330364;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="cccc"
-         id="path2844"
-         d="m 56.140124,975.58326 5.147332,-0.72881 3.917436,-0.0454 2.8901,0.70675"
-         style="fill:none;stroke:#000000;stroke-width:2.13330364;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="cc"
-         id="path2860"
-         d="m 71.620393,1005.0426 7.129947,4.6075"
-         style="fill:none;stroke:#000000;stroke-width:2.13330364;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteDragon.svg b/svg/WhiteDragon.svg
deleted file mode 100644 (file)
index 69c48eb..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="100"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="WhiteFlyingDragon2.svg">
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2824"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2838"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="2"
-     inkscape:cx="52.657835"
-     inkscape:cy="23.437927"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="792"
-     inkscape:window-height="583"
-     inkscape:window-x="62"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(366.71429,-981.93367)">
-    <g
-       id="g3669">
-      <path
-         sodipodi:nodetypes="ccccccccccccccccccccc"
-         id="path2833"
-         d="m -316.96429,1025.6837 -0.75,-8 0,-6.75 2,-7.25 4.25,-7.75003 4.75,-5 8.25,-1.5 9.25,0 7,2 7,2.5 -8,4.5 -3.25,4.25003 -2.5,5 -1,4.25 c -0.33333,-0.083 2.33633,8.001 1,6 l -6.75,-1 -6.5,1.5 -5.25,2.75 -2.5,3.5 -1.5,6 -5.5,-5 z"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="cccccccccccccccccccccccccccccccccsccccccc"
-         id="path2834"
-         d="m -324.3447,1018.1361 7.38041,2.8188 5.53531,3.9462 5.53531,5.6375 5.53531,9.02 3.07517,10.1475 3.07517,8.4562 4.92027,6.2012 6.23505,3.0624 0.53033,-1.9349 7.38041,6.765 -10.32484,-0.5972 1.00725,-1.5144 -6.6733,-2.9621 -4.92027,-5.6375 -4.92028,-5.0737 -6.15034,-7.3288 -4.92028,-3.9462 -5.5353,-3.3825 -5.53531,-3.9462 -5.53531,-5.6375 -4.92028,-8.4563 -1.23006,-5.0737 -3.69021,-6.765 -4.92028,-6.2012 -3.6902,-1.1275 -9.22552,3.9462 -2.46013,-3.3825 0,-3.3825 2.46013,0.5638 6.15035,-1.1275 1.23007,-4.51 3.6902,-2.25501 c 5.40259,-7.58194 -2.48944,1.18601 4.52818,1.77851 3.1683,0.2676 2.0104,-3.34798 3.77478,-4.0335 l -0.92255,7.3287 1.23007,3.9463 1.84511,3.3825 2.46013,4.51 3.69021,3.3825 4.30524,3.3824 z"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.35533403999999980;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="ccccccccccccccccc"
-         id="path2840"
-         d="m -305.46429,1045.4337 -5.5,-1.5 -5,2 -3,3 4,4.5 3.5,2 -4.85355,2.9697 -0.14645,2.5303 2,2.5 1.20711,-2.9697 2.29289,-2.0303 -0.5,1 4.5,-2 -3,-7.5 4,0 2,-1.5 -1.5,-3 z"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3621"
-         d="m -345.71429,997.9337 c 0.66667,0 -0.0833,-0.083 0.25,0.25 0.0589,0.059 0.25,-0.083 0.25,0 0,0.083 -0.33333,0 -0.25,0 1.11111,0 0.22222,0 0,0"
-         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="ccccccccccccccccccccccc"
-         id="path2831"
-         d="m -327.46429,1034.1837 -9.75,-1 -8.75,1.5 -8.75,3.25 -7,4 -0.5,9.5 1.5,12 3.25,11.75 3.75,-5.25 3.75,-3 4.75,-2.5 6.5,-0.75 5.25,1.5 -2.5,-6.5 -0.5,-5.25 1.5,-6 2.75,-4.25 3.75,-2 4,-1 1.5,-0.5 5.46504,-6.8785 c -0.15238,0.059 -5.63008,-5.2082 -5.5283,-5.1607 l -4.43674,6.5392 z"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteDuck.svg b/svg/WhiteDuck.svg
deleted file mode 100644 (file)
index f19e88a..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="WhiteDuck.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="736"
-     inkscape:window-height="583"
-     id="namedview11"
-     showgrid="false"
-     inkscape:zoom="2.36"
-     inkscape:cx="50"
-     inkscape:cy="36.518733"
-     inkscape:window-x="0"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 50 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="100 : 50 : 1"
-       inkscape:persp3d-origin="50 : 33.333333 : 1"
-       id="perspective13" />
-    <inkscape:perspective
-       id="perspective3624"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2884"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3714">
-    <path
-       sodipodi:nodetypes="cccccccccccccccccc"
-       id="path2890"
-       d="M 94.067797,83.474577 C 84.604585,65.112995 85.394968,49.081921 76.483052,32.627119 73.446329,28.379692 65.536724,20.421132 59.745764,17.372882 53.389832,14.3407 46.398306,15.397508 40.042374,18.008475 34.045286,20.909692 32.400261,26.891786 29.661018,33.050848 21.446493,45.072299 14.814696,46.014649 7.62712,50.847458 4.823917,52.536959 4.941692,53.496216 4.237289,54.661017 4.66472,57.619714 6.086467,58.589781 7.62712,59.322034 l 1.906779,-1.906779 4.872881,0.211864 c -1.879531,1.836158 -3.793952,3.672317 -6.77966,5.508475 l -10e-7,2.542372 c 0.884399,1.515739 10.080498,0.313524 30.508475,-6.77966 2.917376,-0.842524 5.695066,-1.265989 8.050848,-0.423729 3.672316,5.347741 7.344633,8.070064 11.016949,11.228813 2.079697,4.09851 3.805321,7.577391 8.050847,15.466102 1.152692,3.298838 1.318265,2.495304 1.90678,8.050847 11.262673,0.192033 20.163671,-3.158448 26.906779,-9.745762 z"
-       style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    <path
-       transform="matrix(-1,0,0,1,96.398306,-0.63559318)"
-       d="m 40.677967,29.449152 a 0.84745765,1.059322 0 1 1 -1.694915,0 0.84745765,1.059322 0 1 1 1.694915,0 z"
-       sodipodi:ry="1.059322"
-       sodipodi:rx="0.84745765"
-       sodipodi:cy="29.449152"
-       sodipodi:cx="39.830509"
-       id="path2892"
-       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:3.5;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       sodipodi:type="arc" />
-    <path
-       sodipodi:nodetypes="cccccccccccccc"
-       id="path3666"
-       d="m 29.449153,33.050848 c 3.933055,3.476594 6.949231,-1.298733 10.381356,-2.330509 -0.553916,4.006697 -1.549974,7.350181 -1.059322,12.923729 0.109812,1.887184 1.659758,3.054302 4.025424,3.81356 0.842525,2.449855 1.265989,5.039397 0.423729,8.050847 l -5.084746,2.966102 C 18.618726,66.199274 13.334759,66.138727 8.898306,66.101695 6.792408,64.621831 7.640244,63.8804 7.627119,62.923729 c 2.672496,-1.534212 3.542239,-1.714453 6.991526,-5.508474 l -5.29661,0 -1.90678,1.906779 C 5.879161,58.845569 5.63687,57.03007 4.661018,54.872882 4.615418,54.012911 5.494985,52.690361 6.567797,51.271187 14.49455,46.396278 23.088611,44.190603 29.449153,33.050848 z"
-       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    <path
-       sodipodi:nodetypes="ccc"
-       id="path3668"
-       d="m 14.618645,57.415255 c 2.471751,0.369524 5.155367,0.949571 8.262711,0.423728 8.510908,-5.215089 17.141878,-5.267041 19.491526,-10.169491"
-       style="fill:none;stroke:#000000;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    <path
-       sodipodi:nodetypes="cc"
-       id="path3675"
-       d="m 31.355933,41.949153 -1.271186,0"
-       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    <path
-       sodipodi:nodetypes="cccccccc"
-       id="path3677"
-       d="M 41.737289,50.000001 C 37.679772,54.352873 30.618108,56.684829 20.12712,62.923729 l -11.652543,2.966102 -0.635593,-2.542373 7.20339,-5.29661 7.627118,0.211864 c 11.490336,-5.72558 14.908063,-6.054057 19.70339,-9.745762 l -0.635593,1.483051 z"
-       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-  </g>
-</svg>
diff --git a/svg/WhiteElephant.svg b/svg/WhiteElephant.svg
deleted file mode 100644 (file)
index 9fc1d6a..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1">
-    <g
-       transform="matrix(1.3541177,0,0,1.3541177,-563.82837,414.53313)"
-       id="g1044"
-       style="display:inline">
-      <path
-         d="m 490.00812,-222.88953 c 0,0 -6.14354,13.63864 -21.50237,17.5705 17.69337,0.98297 25.31135,-16.58754 25.31135,-16.58754 z"
-         inkscape:connector-curvature="0"
-         id="path1031"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.7384882;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 528.83524,-234.31651 c -3.6839,5.58934 -10.37825,8.79973 -16.3418,11.67271 -3.68484,1.7752 -7.6945,2.94064 -10.19826,6.63502 -3.2509,4.79681 -0.65411,12.75322 -4.66909,17.07902 -2.2472,2.42116 -6.03736,3.44628 -9.33817,3.31751 -3.71907,-0.14509 -7.55135,-1.92966 -10.19826,-4.54622 -3.97511,-3.92954 -7.01221,-9.64644 -7.00362,-15.23596 0.008,-5.15179 1.28517,-15.36897 3.56324,-15.35883 1.8969,0.008 3.99952,0.44997 3.93186,2.45741 -0.0475,1.4085 -2.38058,1.94562 -2.45741,3.44038 -0.30658,5.96468 -0.4879,12.80067 2.9489,17.69338 2.21344,3.1511 6.33701,6.57579 10.07539,5.65204 2.55864,-0.63224 4.31678,-3.99946 4.30047,-6.63501 -0.0413,-6.66505 -4.0782,-11.20831 -4.42334,-17.07902 -0.21972,-3.73738 -0.17501,-6.15096 -0.12287,-10.56687 0.01,-0.82419 0.71234,-1.48743 1.10583,-2.21168 0.38564,-0.7098 1.26547,-1.28184 1.22871,-2.0888 -0.26362,-5.78622 -0.3233,-9.65524 0.24574,-14.25299 0.44572,-3.60131 4.98299,-6.27067 8.72382,-6.51214 5.78913,-0.37368 8.13022,-1.04792 13.76151,-0.8601 4.43887,0.14805 10.14055,2.13396 15.35883,4.91483 1.77441,0.9456 2.95021,3.06088 3.31751,5.03769 1.08745,5.85269 -0.53304,12.47726 -3.80899,17.44763 z"
-         inkscape:connector-curvature="0"
-         id="path1027"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1.47697639;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 495.29156,-218.58906 c 0,0 -6.14354,13.63864 -21.50237,17.5705 17.69337,0.98297 25.31135,-16.58754 25.31135,-16.58754 z"
-         inkscape:connector-curvature="0"
-         id="path1029"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.7384882;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 496.27452,-222.52093 -0.98297,4.05474 3.68612,1.10583 2.21167,-2.70315"
-         inkscape:connector-curvature="0"
-         id="path1033"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1.47697639;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 489.51663,-224.36398 2.82603,0"
-         inkscape:connector-curvature="0"
-         id="path1035"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1.47697639;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 489.39376,-228.41872 4.05473,0"
-         inkscape:connector-curvature="0"
-         id="path1037"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1.47697639;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 488.90228,-232.59632 4.66908,0"
-         inkscape:connector-curvature="0"
-         id="path1040"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1.47697639;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 495.16868,-243.77755 c 0,0 -1.04223,-6.88274 0,-10.07539 0.8186,-2.50759 4.66909,-6.38927 4.66909,-6.38927"
-         inkscape:connector-curvature="0"
-         id="path1042"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1.47697639;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 503.8925,-236.0367 a 1.351577,1.351577 0 1 1 -2.70315,0 1.351577,1.351577 0 1 1 2.70315,0 z"
-         id="path1021"
-         style="color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.7384882;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 521.70874,-250.53543 c 4.54621,-0.24574 7.71014,-5.80016 11.42697,-4.1776 4.09506,1.78767 5.04951,7.28122 4.05473,11.18123 -2.74411,10.75828 -2.44958,27.22238 -3.07177,29.12034 -6.2664,-0.24574 -6.88075,-20.02792 -10.32113,-20.15079"
-         inkscape:connector-curvature="0"
-         id="path1025"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1.47697639;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteFlag.svg b/svg/WhiteFlag.svg
deleted file mode 100644 (file)
index bf734b1..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="WhiteFlag.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="504"
-     id="namedview11"
-     showgrid="false"
-     inkscape:zoom="2.36"
-     inkscape:cx="50"
-     inkscape:cy="45.018323"
-     inkscape:window-x="0"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 50 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="100 : 50 : 1"
-       inkscape:persp3d-origin="50 : 33.333333 : 1"
-       id="perspective13" />
-    <inkscape:perspective
-       id="perspective3624"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g2851">
-    <path
-       sodipodi:nodetypes="ccccc"
-       id="path3619"
-       d="m 12.711864,21.186441 c 21.074722,13.738473 51.147584,-16.5165456 75,0 l 0,43.644067 C 65.073347,47.717811 33.988516,77.130498 13.559322,63.983051 l -0.847458,-42.79661 z"
-       style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    <path
-       sodipodi:nodetypes="cccccc"
-       id="path2840"
-       d="m 10.849879,93.958837 -0.571429,-76.90138 2.857143,-9.3213798 2.857142,8.8553108 0,77.367449 -5.142856,0 z"
-       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.21791804px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-    <path
-       transform="matrix(0.84498804,0,0,0.87421513,1.3857655,2.2865217)"
-       d="m 21.610169,11.440678 a 7.2033896,5.5084743 0 1 1 -14.4067794,0 7.2033896,5.5084743 0 1 1 14.4067794,0 z"
-       sodipodi:ry="5.5084743"
-       sodipodi:rx="7.2033896"
-       sodipodi:cy="11.440678"
-       sodipodi:cx="14.406779"
-       id="path3615"
-       style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.55969501;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       sodipodi:type="arc" />
-    <g
-       id="g2847">
-      <path
-         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.20000005;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         d="m 47.924522,29.803428 c 2.352292,2.373978 2.989775,5.60536 3.097095,9.101824 -2.705019,-3.431121 -4.339313,-2.610637 -6.067326,-2.162295 -2.493738,1.049561 -6.3046,4.414643 -5.308911,10.467465 1.321421,5.024014 3.218749,6.109577 6.535483,7.357756 3.794112,1.043053 8.576448,-0.390949 11.287289,-2.193919 2.420062,-1.818195 5.475347,-5.939611 5.688118,-10.683341 -0.43097,-5.309502 -3.127393,-8.272321 -6.825742,-7.482172 -3.382743,0.952451 -3.811636,2.929208 -5.308911,4.673169"
-         id="path3623"
-         sodipodi:nodetypes="ccccccccc" />
-      <path
-         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.9676736;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         d="m 50.60902,32.085634 c 0.72498,-1.936039 0.639786,-3.96007 2.790433,-5.626932 1.987149,-1.672051 5.016574,-2.018442 7.878871,-2.046157 -0.389945,1.97951 -1.155458,3.812714 -3.282863,5.115393 -2.758084,2.005397 -5.051044,2.198889 -7.386441,2.557696 z"
-         id="path3625"
-         sodipodi:nodetypes="ccccc" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteGnu.svg b/svg/WhiteGnu.svg
deleted file mode 100644 (file)
index 878c5d0..0000000
+++ /dev/null
@@ -1,176 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="100"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="WhiteGnu.svg">
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2824"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2838"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2903"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="2"
-     inkscape:cx="27.529211"
-     inkscape:cy="24.54468"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="792"
-     inkscape:window-height="583"
-     inkscape:window-x="62"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(366.71429,-981.93367)">
-    <g
-       id="g3620">
-      <path
-         sodipodi:nodetypes="cccccccccccccccccccccssssccccccccccccccccccccccccccccc"
-         id="path2911"
-         d="m -302.96429,994.68367 c 1.18904,-0.20023 2.49888,-0.58165 5,-2.75 5.3829,-2.46514 10.19974,-2.94909 14.25,-0.75 5.63429,0.8759 8.13122,4.26169 10.5,7.75 1.81376,2.60943 2.68608,6.47413 2.5,11.75003 0.92296,5.9217 -1.14375,9.4516 -3.5,12.75 -4.79245,4.5849 -7.43638,6.1227 -10.25,6.75 0.69782,2.4377 1.6676,3.0815 3,4.25 -1.57788,1.7554 -5.60684,1.0598 -10.5,-0.5 -2.54218,-1.1647 -5.10631,-2.2415 -7,-6 l -2.5,1 5.5,8 4.5,1 c 1.42915,1.495 2.36512,3.1873 0.5,6 l -4.5,4.5 2.75,2 c 0.28652,2.2465 -1.61353,3.0354 -3.25,4 l -0.5,4.75 c -0.7137,1.8696 -3.61319,1.5535 -6.25,1.5 l 0.75,5.25 c 0.16554,1.2914 0.42751,2.6069 -2,3.25 0.34049,1.9797 -0.80291,3.0349 1.86014,5.9567 1.84757,2.0271 0.98558,2.7166 -2.16413,3.1577 -1.04577,0.1464 -3.23349,-2.6263 -4.47453,-1.5404 -2.13998,1.8726 -5.15094,1.4284 -6.57717,-1.2045 -0.82526,-1.5235 -0.77287,-4.2725 -1.14431,-5.8695 l -4.75,-3.75 0.75,4.25 -14,-3.5 c -5.9902,-5.8732 -7.83367,-14.4685 -8.5,-25 -3.5,1.4715 -6.25,1.8528 -9,1.75 2.1486,-3.3695 5.53611,-4.2612 5.25,-12.5 -5.52081,-0.031 -10.05501,-4.5025 -14.25,-10.5 -1.60532,-4.173 -2.60846,-10.2654 -1.25,-16.75 4.20219,-8.93028 10.4286,-12.54 13.82322,-13.39648 6.76706,-1.09064 9.60682,-0.67493 13.25,-0.25 l 5.17678,2.39645 4.5,1.5 c -0.3773,1.45603 -1.80005,1.86661 -3.5,2 l -10.75,0 c -4.6297,0.65727 -8.61975,2.84384 -11.25,7.50003 -1.82016,4.8267 -1.67981,8.6732 0.5,11.5 2,1.75 4,3.0418 6,1.5 8.16782,-6.2817 8.78546,-10.1411 15.5,-14.75 3.55433,-1.2174 6.86131,-1.4453 9.75,0 l 6.5,3.5 c 3.07889,-3.6765 6.62838,-6.31758 13,-2.75 2.41667,1.6301 4.83333,3.0403 7.25,7.25 l 3.75,4.5 c 4.2709,4.4793 6.36926,2.4411 8,-1 1.97363,-3.8553 2.15959,-8.0681 -2.5,-13.25003 -2.26099,-2.95605 -5.08,-3.68 -8,-4 l -7.75,1 c -2.9764,-0.58566 -3.65476,-1.00741 -4,-2.25 z"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="cccccccc"
-         transform="translate(-366.71429,981.93367)"
-         id="path3592"
-         d="m 19.75,49.25 c 3.457604,-7.792396 6.934246,-15.565754 16.25,-17.5 5.691185,0.203445 10.64177,-0.704012 15,-2.5 2.349769,3.334487 4.983894,5.247199 8,5.25 0.158534,-2.174799 1.263839,-3.402827 2.75,-4.25 l 4.5,1.25 c 4.646068,0.862359 8.17876,2.392744 9.5,5.25 L 82.5,48.5"
-         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="cc"
-         transform="translate(-366.71429,981.93367)"
-         id="path3594"
-         d="m 23.25,59.75 c 6.974821,-1.775179 11.939794,-5.560206 14.25,-12"
-         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="ccccccc"
-         transform="translate(-366.71429,981.93367)"
-         id="path3596"
-         d="m 31.25,56.25 c 0.180763,3.430763 0.74164,7.24164 2.25,12 1.898655,2.0293 3.755831,3.934161 5,4 -0.374919,1.364604 -1.617419,2.512312 0.5,4.5 2.518168,1.628028 5.126986,3.271164 3.75,4.25 l -1,2 4,4"
-         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="cccc"
-         transform="translate(-366.71429,981.93367)"
-         id="path3598"
-         d="M 71.25,72 60,72.75 c -4.147681,0.731014 -5.706629,-1.126704 -7.25,-3 L 48,62.5"
-         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
-      <path
-         transform="translate(-366.71429,981.93367)"
-         id="path3600"
-         d="M 63.75,79 57,79"
-         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="cc"
-         transform="translate(-366.71429,981.93367)"
-         id="path3602"
-         d="M 36.25,40 C 40.396177,33.874313 45.895347,32.29264 42,38"
-         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="ccccc"
-         transform="translate(-366.71429,981.93367)"
-         id="path3604"
-         d="m 48,38.25 c 1.900105,0.345755 3.480059,0.931622 2.75,3.25 l -5.25,1 c -1.303666,0.469459 -2.323763,1.045256 -1,2.5 l 1.75,1.75"
-         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="ccccc"
-         transform="translate(-366.71429,981.93367)"
-         id="path3606"
-         d="m 66.125,58.125 -6.75,-4 c -2.010232,-1.017906 -5.308457,-0.9148 -6.75,0.75 l 0.125,4.5 c 0.51551,-2.279048 1.318117,-3.553258 2.5,-3.5"
-         style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="ccc"
-         transform="translate(-366.71429,981.93367)"
-         id="path3608"
-         d="m 61.75,61.375 c -1.833333,-2.940792 -3.666667,-3.239079 -5.5,-2.875 0.09507,0.744132 -0.01335,1.027511 1.375,1.125"
-         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="cccc"
-         transform="translate(-366.71429,981.93367)"
-         id="path3610"
-         d="m 45.625,42.5 c 0.875,1.035668 2.25,2.140221 3.125,1.75 L 49.581547,42.799511 50.625,41.5"
-         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="cccccc"
-         transform="translate(-366.71429,981.93367)"
-         id="path3612"
-         d="M 66.125,31.375 C 65.990664,32.412932 65.543737,33.325828 67,35 c 0.685993,1.344503 1.105066,3.947467 1.125,5.625 1.117219,3.546507 -1.863384,1.882612 -2.75,4.25 -0.16588,-1.942296 -1.09411,-3.724712 -2.25,-2.75 -0.832671,-2.990606 0.331254,-5.486661 1.375,-6.375"
-         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="cccccccccccc"
-         transform="translate(-366.71429,981.93367)"
-         id="path3614"
-         d="m 62.04862,87.979184 -1.944544,-0.530329 c -1.972098,1.119586 -4.033655,2.239171 -4.596194,3.358757 l 0.176777,2.828427 -2.828427,-3.181981 c -1.090206,-2.386403 -2.509702,-4.443514 -3.181981,-7.247844 -1.942896,-0.736982 -1.813084,-1.99214 -1.944543,-3.181981 l -2.298097,2.828428 5.833631,4.24264 c 0.590616,11.364474 4.836187,6.9864 7.601398,6.540738 3.761341,1.784611 7.686414,3.723857 3.18198,-2.298097 l 0,-3.358758 z"
-         style="fill:#000000;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1" />
-      <path
-         sodipodi:nodetypes="cc"
-         transform="translate(-366.71429,981.93367)"
-         id="path3616"
-         d="m 53.916892,23.278914 c 2.711749,1.950966 4.063392,3.70002 4.419418,5.656854"
-         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="cc"
-         transform="translate(-366.71429,981.93367)"
-         id="path3618"
-         d="m 32.880465,84.973981 15.202796,3.889086"
-         style="fill:none;stroke:#ffffcc;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteGold.svg b/svg/WhiteGold.svg
deleted file mode 100644 (file)
index 845445d..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165632)"
-     id="layer1">
-    <g
-       transform="matrix(1.4397444,0,0,1.4340607,-611.62249,-297.27653)"
-       id="g798"
-       style="display:inline">
-      <path
-         d="m 480.89279,297.73055 c 0.28187,6.17991 15.97439,8.70112 24.70538,8.7015 8.82584,3.8e-4 24.73561,-5.0937 24.97454,-8.79385 4.38524,-4.0222 3.65234,-18.32756 -0.19786,-20.73151 -2.02584,-22.88424 -31.77298,-24.5101 -43.77139,-10.75047 -7.59734,4.81302 -8.43194,15.29598 -5.97982,21.98462 -1.34056,2.63987 -2.00858,5.34718 0.26915,9.58971 z"
-         inkscape:connector-curvature="0"
-         id="path717"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.39188552;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 486.51552,266.15622 c 14.42191,0.70351 32.36137,4.22104 44.23306,10.81643"
-         inkscape:connector-curvature="0"
-         id="path719"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.39188552;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 479.92013,288.66847 c 10.77247,-3.73739 29.72321,0.17588 50.91639,8.35416"
-         inkscape:connector-curvature="0"
-         id="path721"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.39188552;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 480.71158,298.25377 c 9.5853,-7.56271 25.15041,-12.13551 49.86113,-1.1432"
-         inkscape:connector-curvature="0"
-         id="path723"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.39188552;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 506.4983,285.59484 4.07733,-7.27528 -1.7411,-4.01073 -4.67246,0 -1.79446,4.01073 z"
-         inkscape:connector-curvature="0"
-         id="path792"
-         style="color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.39188552;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteGoldKnight.svg b/svg/WhiteGoldKnight.svg
deleted file mode 100644 (file)
index 1bdfa8c..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165632)"
-     id="layer1">
-    <g
-       transform="matrix(1.4397338,0,0,1.4323454,-979.52251,-297.31512)"
-       id="g842"
-       style="display:inline">
-      <path
-         d="m 736.42988,298.12446 c 0.28187,6.17991 15.97439,8.70112 24.70538,8.7015 8.82584,3.8e-4 24.7356,-5.0937 24.97454,-8.79385 4.38524,-4.0222 3.65234,-18.32756 -0.19787,-20.73151 -2.02583,-22.88424 -31.77297,-24.5101 -43.77138,-10.75047 -7.59734,4.81302 -8.43194,15.29598 -5.97982,21.98462 -1.34056,2.63987 -2.00858,5.34718 0.26915,9.58971 z"
-         inkscape:connector-curvature="0"
-         id="path657"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.39272392;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 742.05261,266.55013 c 14.42191,0.70351 32.36137,4.22104 44.23306,10.81643"
-         inkscape:connector-curvature="0"
-         id="path659"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.39272392;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 735.45722,289.06238 c 10.77247,-3.73739 29.72321,0.17588 50.91639,8.35416"
-         inkscape:connector-curvature="0"
-         id="path661"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.39272392;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 736.24867,298.64768 c 9.5853,-7.56271 25.15041,-12.13551 49.86113,-1.1432"
-         inkscape:connector-curvature="0"
-         id="path663"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.39272392;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 764.1875,273.125 c -3.93394,0 -7.125,3.19106 -7.125,7.125 0,3.93394 3.19106,7.125 7.125,7.125 1.81618,0 3.4606,-0.69358 4.71875,-1.8125 -0.17971,0.0183 -0.37798,0.0312 -0.5625,0.0312 -2.95238,0 -5.34375,-2.39138 -5.34375,-5.34375 0,-2.95237 2.39137,-5.34375 5.34375,-5.34375 0.18452,0 0.38279,-0.0183 0.5625,0 -1.25693,-1.11367 -2.90735,-1.78125 -4.71875,-1.78125 z"
-         inkscape:connector-curvature="0"
-         id="path816"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.88571429;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteGoldLance.svg b/svg/WhiteGoldLance.svg
deleted file mode 100644 (file)
index 406c95d..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165632)"
-     id="layer1">
-    <g
-       transform="matrix(1.4397543,0,0,1.435869,-242.75583,-298.60547)"
-       id="g772"
-       style="display:inline">
-      <path
-         d="m 224.68819,298.27017 c 0.28187,6.17991 15.97439,8.70112 24.70538,8.7015 8.82584,3.8e-4 24.73561,-5.0937 24.97454,-8.79385 4.38524,-4.0222 3.65234,-18.32756 -0.19786,-20.73151 -2.02584,-22.88424 -31.77298,-24.5101 -43.77139,-10.75047 -7.59734,4.81302 -8.43194,15.29598 -5.97982,21.98462 -1.34056,2.63987 -2.00858,5.34718 0.26915,9.58971 z"
-         inkscape:connector-curvature="0"
-         id="path697"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.39100409;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 230.31092,266.69584 c 14.42191,0.70351 32.36137,4.22104 44.23306,10.81643"
-         inkscape:connector-curvature="0"
-         id="path699"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.39100409;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 223.71553,289.20809 c 10.77247,-3.73739 29.72321,0.17588 50.91639,8.35416"
-         inkscape:connector-curvature="0"
-         id="path701"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.39100409;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 224.50698,298.79339 c 9.5853,-7.56271 25.15041,-12.13551 49.86113,-1.1432"
-         inkscape:connector-curvature="0"
-         id="path703"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.39100409;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 255.69199,279.93628 a 5.4720078,5.4720078 0 1 1 -10.94401,0 5.4720078,5.4720078 0 1 1 10.94401,0 z"
-         transform="translate(0.35175398,0)"
-         id="path764"
-         style="color:#000000;fill:none;stroke:#000000;stroke-width:1.39100409;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteGoldPawn.svg b/svg/WhiteGoldPawn.svg
deleted file mode 100644 (file)
index f2edf61..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165632)"
-     id="layer1">
-    <g
-       transform="matrix(1.4397773,0,0,1.4397773,125.93212,-480.60691)"
-       id="g353"
-       style="fill:#ffffcc;fill-opacity:1;display:inline">
-      <path
-         d="m -31.388709,423.84633 c 0.281868,6.17991 15.974391,8.70112 24.7053834,8.7015 8.8258401,3.8e-4 24.7356006,-5.0937 24.9745326,-8.79385 4.385245,-4.0222 3.652343,-18.32756 -0.197862,-20.73151 -2.025838,-22.88424 -31.772979,-24.5101 -43.771385,-10.75047 -7.597337,4.81302 -8.431938,15.29598 -5.979818,21.98462 -1.340564,2.63987 -2.008585,5.34718 0.269149,9.58971 z"
-         inkscape:connector-curvature="0"
-         id="path340"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.38910365;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -25.765979,392.272 c 14.421913,0.70351 32.3613662,4.22104 44.233063,10.81643"
-         inkscape:connector-curvature="0"
-         id="path342"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.38910365;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -32.361366,414.78425 c 10.772466,-3.73739 29.7232108,0.17588 50.916388,8.35416"
-         inkscape:connector-curvature="0"
-         id="path344"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.38910365;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -31.56992,424.36955 c 9.585296,-7.56271 25.15041,-12.13551 49.861127,-1.1432"
-         inkscape:connector-curvature="0"
-         id="path346"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.38910365;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteGoldSilver.svg b/svg/WhiteGoldSilver.svg
deleted file mode 100644 (file)
index afc6d98..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165632)"
-     id="layer1">
-    <g
-       transform="matrix(1.4397662,0,0,1.4377748,-242.25237,-480.24648)"
-       id="g745"
-       style="display:inline">
-      <path
-         d="m 224.33644,424.19808 c 0.28187,6.17991 15.97439,8.70112 24.70538,8.7015 8.82584,3.8e-4 24.7356,-5.0937 24.97454,-8.79385 4.38524,-4.0222 3.65234,-18.32756 -0.19787,-20.73151 -2.02583,-22.88424 -31.77297,-24.5101 -43.77138,-10.75047 -7.59734,4.81302 -8.43194,15.29598 -5.97982,21.98462 -1.34056,2.63987 -2.00858,5.34718 0.26915,9.58971 z"
-         inkscape:connector-curvature="0"
-         id="path677"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.39007604;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 229.95917,392.62375 c 14.42191,0.70351 32.36137,4.22104 44.23306,10.81643"
-         inkscape:connector-curvature="0"
-         id="path679"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.39007604;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 223.36378,415.136 c 10.77247,-3.73739 29.72321,0.17588 50.91639,8.35416"
-         inkscape:connector-curvature="0"
-         id="path681"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.39007604;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 224.15523,424.7213 c 9.5853,-7.56271 25.15041,-12.13551 49.86113,-1.1432"
-         inkscape:connector-curvature="0"
-         id="path683"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.39007604;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 252.00261,411.96351 -3.39735,-3.01802 -3.93903,2.26594 1.82046,-4.16369 -3.37226,-3.04603 4.52246,0.44471 1.85485,-4.14849 0.97457,4.43855 4.51863,0.48211 -3.92014,2.29846 z"
-         transform="matrix(0.87388966,-0.0876486,0.08773684,0.87301075,-3.5392619,73.053667)"
-         id="path737"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.5835166;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteHCrown.svg b/svg/WhiteHCrown.svg
deleted file mode 100644 (file)
index 07bc6c9..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="WhitePrincess.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="487"
-     id="namedview19"
-     showgrid="false"
-     inkscape:zoom="2.36"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="25"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 50 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="100 : 50 : 1"
-       inkscape:persp3d-origin="50 : 33.333333 : 1"
-       id="perspective21" />
-  </defs>
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="matrix(0,1,-1,0,153.16323,-67.585316)"
-     id="layer1">
-    <g
-       transform="matrix(1.2568021,0,0,1.2568021,127.4848,230.75324)"
-       id="g799"
-       style="display:inline">
-      <path
-         d="m -28.079531,-94.874455 -4.264552,-25.678565 13.999806,24.343464"
-         inkscape:connector-curvature="0"
-         id="path704"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.5913403;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -19.140231,-95.88723 2.246154,-30.00621 9.5954992,27.886232 z"
-         inkscape:connector-curvature="0"
-         id="path706"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.5913403;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 12.490017,-94.82073 3.713129,-24.84222 -13.3990081,23.408891"
-         inkscape:connector-curvature="0"
-         id="path710"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.5913403;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 3.4881771,-95.734359 -2.37837,-29.892061 -8.8615575,28.106514 z"
-         inkscape:connector-curvature="0"
-         id="path712"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.5913403;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 8.6705152,-75.003615 c 0,2.494743 -7.3228728,4.517114 -16.3560942,4.517114 -9.033223,0 -16.356097,-2.022371 -16.356097,-4.517114 l 2.325288,-6.475256 -0.06428,-6.631027 -5.811396,-6.453037 4.358127,-3.075207 4.109397,1.001045 5.74678,-2.877825 5.7712718,1.347215 5.203493,-1.347215 5.2462981,2.877825 4.8612915,-1.001045 4.2955236,3.075207 -5.8100516,6.453037 0.060254,6.631027 z"
-         inkscape:connector-curvature="0"
-         id="path714"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.59134054;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -21.892448,-88.229599 c 2.801739,-1.37734 8.142276,-2.30791 14.2698066,-2.30791 6.1644171,0 11.5323386,0.94181 14.3201283,2.33283"
-         inkscape:connector-curvature="0"
-         id="path716"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.59134054;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -35.496787,129.14731 a 3.776254,3.776254 0 1 1 -7.552508,0 3.776254,3.776254 0 1 1 7.552508,0 z"
-         transform="matrix(0.94504751,0,0,0.94166667,3.6715495,-244.63895)"
-         id="path718"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.68689334;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -35.496787,129.14731 a 3.776254,3.776254 0 1 1 -7.552508,0 3.776254,3.776254 0 1 1 7.552508,0 z"
-         transform="matrix(0.94504751,0,0,0.94166667,54.80093,-244.56074)"
-         id="path720"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.68689334;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -35.496787,129.14731 a 3.776254,3.776254 0 1 1 -7.552508,0 3.776254,3.776254 0 1 1 7.552508,0 z"
-         transform="matrix(0.94504751,0,0,0.94166667,38.762768,-250.59195)"
-         id="path722"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.68689334;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -35.496787,129.14731 a 3.776254,3.776254 0 1 1 -7.552508,0 3.776254,3.776254 0 1 1 7.552508,0 z"
-         transform="matrix(0.94504751,0,0,0.94166667,19.780217,-250.61038)"
-         id="path726"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.68689334;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -23.978738,-75.003615 c 0,-2.494728 7.322874,-4.517115 16.3560966,-4.517115 9.0332214,0 16.3560942,2.022387 16.3560942,4.517115"
-         inkscape:connector-curvature="0"
-         id="path728"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.59134054;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -21.669514,-81.284079 c 2.856168,-1.31876 8.078159,-2.20172 14.0468726,-2.20172 6.0282874,0 11.2948691,0.90067 14.1316836,2.24134"
-         inkscape:connector-curvature="0"
-         id="path730"
-         style="color:#000000;fill:none;stroke:#000000;stroke-width:1.59134054;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteHSword.svg b/svg/WhiteHSword.svg
deleted file mode 100644 (file)
index e835915..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="100"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="WhiteHSword.svg">
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2824"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2838"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="5.6"
-     inkscape:cx="53.102954"
-     inkscape:cy="37.188247"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="792"
-     inkscape:window-height="583"
-     inkscape:window-x="62"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(366.71429,-981.93367)">
-    <g
-       id="g3595"
-       transform="matrix(1,0,0,1.1243568,0,-132.14157)">
-      <path
-         sodipodi:nodetypes="cccccc"
-         id="path3687"
-         d="m -270.42482,1041.7792 -10.32341,-9.3014 -54.35055,-0.1786 0,18.9597 53.89325,0 10.78071,-9.4797 z"
-         style="fill:#ffffff;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <rect
-         transform="matrix(0,1,-1,0,0,0)"
-         y="335.26187"
-         x="1021.9576"
-         height="7.3214288"
-         width="39.642857"
-         id="rect3689"
-         style="fill:#ffffff;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <rect
-         transform="matrix(0,1,-1,0,0,0)"
-         y="342.71426"
-         x="1036.7313"
-         height="19.202518"
-         width="9.0239458"
-         id="rect3693"
-         style="fill:#ffffff;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3701"
-         d="m -282.35544,1041.779 -52.24134,0"
-         style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    </g>
-    <path
-       style="fill:#ffffcc;fill-opacity:1"
-       d="m 5.852954,56.651039 0,-4.017857 8.482143,0 8.482143,0 0,4.017857 0,4.017857 -8.482143,0 -8.482143,0 0,-4.017857 z"
-       id="path2819"
-       transform="translate(-366.71429,981.93367)" />
-    <path
-       style="fill:#ffffcc;fill-opacity:1"
-       d="m 25.31724,57.186753 0,-21.160714 2.5,0 2.5,0 0,21.160714 0,21.160714 -2.5,0 -2.5,0 0,-21.160714 z"
-       id="path2821"
-       transform="translate(-366.71429,981.93367)" />
-    <path
-       style="fill:#ffffcc;fill-opacity:1"
-       d="m 32.81724,62.543896 0,-4.196429 25.803571,0 25.803572,0 0,-1.071428 0,-1.071429 -25.803572,0 -25.803571,0 -3e-5,-4.241071 -2.9e-5,-4.241072 24.419673,0.03979 c 13.43082,0.02189 25.322702,0.09002 26.426404,0.151407 l 2.006732,0.111614 4.466482,4.551724 c 2.456566,2.503448 4.466482,4.612908 4.466482,4.687689 0,0.07478 -2.126332,2.23739 -4.725184,4.805797 l -4.725184,4.669832 -26.167673,0 -26.167673,0 0,-4.196428 z"
-       id="path2823"
-       transform="translate(-366.71429,981.93367)" />
-  </g>
-</svg>
diff --git a/svg/WhiteHat.svg b/svg/WhiteHat.svg
deleted file mode 100644 (file)
index 362c03b..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="100"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="WhiteHat.svg">
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2824"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2838"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="1.979899"
-     inkscape:cx="23.076122"
-     inkscape:cy="73.006915"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="792"
-     inkscape:window-height="583"
-     inkscape:window-x="62"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(366.71429,-981.93367)">
-    <g
-       id="g3600"
-       transform="matrix(1.1,0,0,1.1,29.979168,-106.6056)">
-      <path
-         sodipodi:nodetypes="cccc"
-         id="path3592"
-         d="m -337.92495,1051.6291 -0.50507,-44.4467 c -0.98602,-13.25383 46.77924,-13.34001 45.45686,-0.5051 l 0,44.9517"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="ccccc"
-         id="path3596"
-         d="m -338.89231,1061.6879 0.50508,-19.6124 c -1.82895,-11.4208 45.85254,-11.3027 44.86621,0 l 1.01015,19.1073 -46.38144,0.5051 z"
-         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.28557611;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         transform="translate(-365.70414,979.91336)"
-         d="m 89.903576,82.069794 c 0,6.834175 -17.525102,12.374368 -39.14341,12.374368 -21.618308,0 -39.14341,-5.540193 -39.14341,-12.374368 0,-6.834175 17.525102,-12.374369 39.14341,-12.374369 21.618308,0 39.14341,5.540194 39.14341,12.374369 z"
-         sodipodi:ry="12.374369"
-         sodipodi:rx="39.14341"
-         sodipodi:cy="82.069794"
-         sodipodi:cx="50.760166"
-         id="path2818"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.20000005;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         sodipodi:type="arc" />
-      <path
-         transform="matrix(0.90342936,0,0,0.85120259,-360.41906,1055.2591)"
-         d="m 74.246212,9.0862713 c 0,4.1841887 -11.080387,7.5761447 -24.748737,7.5761447 -13.668351,0 -24.748738,-3.391956 -24.748738,-7.5761447 0,-4.1841889 11.080387,-7.5761442 24.748738,-7.5761442 13.66835,0 24.748737,3.3919553 24.748737,7.5761442 z"
-         sodipodi:ry="7.5761442"
-         sodipodi:rx="24.748737"
-         sodipodi:cy="9.0862713"
-         sodipodi:cx="49.497475"
-         id="path3594"
-         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.50875998;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         sodipodi:type="arc" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteHawk.svg b/svg/WhiteHawk.svg
deleted file mode 100644 (file)
index 5b68898..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1">
-    <g
-       transform="matrix(1.4040066,0,0,1.4950932,129.29827,-314.43651)"
-       id="g577"
-       style="display:inline">
-      <g
-         id="g564">
-        <g
-           id="g496">
-          <path
-             d="m -36.000123,300.21063 c 0.02445,-2.68898 1.718597,-4.79569 3.688984,-4.79676 4.797086,-0.003 5.321835,9.9866 5.321835,9.9866 l -5.701966,0 c 0,0 -3.349148,-0.75908 -3.308853,-5.18984 z"
-             inkscape:connector-curvature="0"
-             id="path478"
-             style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.38042009;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-          <path
-             d="m -27.369435,305.40047 c 0,0 -3.414455,-7.06138 -3.516212,-15.49034 -0.278044,-23.03154 5.065394,-36.76365 21.0022393,-36.68265 15.9318103,0.081 20.4795607,12.82943 20.4795607,12.82943 l -8.600465,5.89203 -5.0367364,1.71059 3.99137601,3.42118 c -0.001724,0 -1.7323014,3.0708 -1.7105897,4.75164 0.0289649,2.24236 3.16810959,3.37614 4.22755909,3.95877 1.2808223,0.70436 15.687091,13.35375 15.824354,16.37824 0.04579,1.51405 0,3.23111 0,3.23111 z"
-             inkscape:connector-curvature="0"
-             id="path476"
-             style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.38042009;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-          <path
-             d="m -2.993532,273.65952 3.27566309,-1.27957 c 5.44306311,-0.20159 14.47578191,1.87662 14.47578191,1.87662 -1.98235,0.60478 -8.0299294,2.62352 -14.64896299,2.15313 z"
-             inkscape:connector-curvature="0"
-             id="path480"
-             style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.03531504;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-          <path
-             d="m 9.8358906,266.29448 c 5.6355444,0.75158 9.2795784,1.13268 7.9352354,12.78191 -0.166308,-8.05402 -19.9331213,-5.84452 -19.9331213,-5.84452 z"
-             inkscape:connector-curvature="0"
-             id="path482"
-             style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.03531504;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-          <path
-             d="m -10.548637,285.91875 3.3261471,-1.23543"
-             inkscape:connector-curvature="0"
-             id="path484"
-             style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.38042009;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-          <path
-             d="m -4.4517326,284.15174 2.0855547,-0.75064"
-             inkscape:connector-curvature="0"
-             id="path486"
-             style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.38042009;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-          <path
-             d="m -1.9011497,264.39671 c -0.033569,-1.35642 -1.6416557,-3.51039 -5.3002595,-3.49941 -3.4773118,0.0104 -6.3793728,3.98825 -9.6487078,4.01921 3.263295,-0.005 6.023674,2.88608 9.5484048,2.98488 3.3651132,0.0943 5.4348563,-2.11896 5.4005625,-3.50468 z"
-             inkscape:connector-curvature="0"
-             id="path488"
-             style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.69021004;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-          <path
-             d="m -4.8466709,264.72644 a 1.615557,1.615557 0 1 1 -3.2311139,0 1.615557,1.615557 0 1 1 3.2311139,0 z"
-             transform="translate(-0.40318986,-0.31919197)"
-             id="path490"
-             style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.69021004;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-          <path
-             d="m 7.6976539,265.29663 a 1.4254915,1.4254915 0 1 1 -2.8509829,0 1.4254915,1.4254915 0 1 1 2.8509829,0 z"
-             transform="translate(-0.21839451,-0.01679958)"
-             id="path492"
-             style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.69021004;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-          <path
-             d="m -4.5615725,305.40047 c -0.7602621,-1.61556 -1.3959228,-3.94564 -1.3779751,-6.0821 0.02244,-2.67119 2.6035772,-8.98583 9.4082434,-8.98059 4.6208731,0.004 15.7279222,10.78621 15.7279222,10.78621 l 0,4.27648 z"
-             inkscape:connector-curvature="0"
-             id="path494"
-             style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.38042009;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-        </g>
-      </g>
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteIron.svg b/svg/WhiteIron.svg
deleted file mode 100644 (file)
index 7da0d27..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="100"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="WhiteIron.svg">
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2824"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2838"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="4"
-     inkscape:cx="52.657835"
-     inkscape:cy="39.751147"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="792"
-     inkscape:window-height="583"
-     inkscape:window-x="62"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(366.71429,-981.93367)">
-    <g
-       id="g2828">
-      <path
-         sodipodi:nodetypes="cc"
-         id="path2847"
-         d="m -350.1696,1038.9436 c 11.05752,-46.108 56.80389,-45.87413 68.93337,1"
-         style="fill:#ffffcc;fill-opacity:0.94117647;stroke:#000000;stroke-width:2.50000000000000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         transform="matrix(1.0121613,0,0,0.99635065,-366.8199,978.22652)"
-         d="m 86,80.25 a 36,7.75 0 1 1 -72,0 36,7.75 0 1 1 72,0 z"
-         sodipodi:ry="7.75"
-         sodipodi:rx="36"
-         sodipodi:cy="80.25"
-         sodipodi:cx="50"
-         id="path2845"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.54580927;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         sodipodi:type="arc" />
-      <rect
-         y="1040.0736"
-         x="-350.57452"
-         height="16.720404"
-         width="68.720406"
-         id="rect3879"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#ffffcc;stroke-width:2.77959538;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="cccc"
-         id="path3637"
-         d="m -352.69154,1058.414 c -0.84832,-10.4606 73.32148,-10.3129 72.93384,0.4972 l 0.52095,0 0,0"
-         style="fill:none;stroke:#000000;stroke-width:2.54491471999999996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         style="fill:none;stroke:#000000;stroke-width:2.54491471999999996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         d="m -352.69154,1041.914 c -0.84832,-10.4606 73.32148,-10.3129 72.93384,0.4972 l 0.52095,0 0,0"
-         id="path4391"
-         sodipodi:nodetypes="cccc" />
-      <path
-         transform="matrix(1.032667,0,0,0.85783357,-367.85581,1009.836)"
-         d="m 52.5,38 c 0,1.656854 -1.007359,3 -2.25,3 C 49.007359,41 48,39.656854 48,38 c 0,-1.656854 1.007359,-3 2.25,-3 1.242641,0 2.25,1.343146 2.25,3 z"
-         sodipodi:ry="3"
-         sodipodi:rx="2.25"
-         sodipodi:cy="38"
-         sodipodi:cx="50.25"
-         id="path4393"
-         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.50000000000000000;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         sodipodi:type="arc" />
-      <path
-         sodipodi:type="arc"
-         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.50000000000000000;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         id="path4395"
-         sodipodi:cx="50.25"
-         sodipodi:cy="38"
-         sodipodi:rx="2.25"
-         sodipodi:ry="3"
-         d="m 52.5,38 c 0,1.656854 -1.007359,3 -2.25,3 C 49.007359,41 48,39.656854 48,38 c 0,-1.656854 1.007359,-3 2.25,-3 1.242641,0 2.25,1.343146 2.25,3 z"
-         transform="matrix(0.67341665,0,0,0.92172914,-376.80348,1009.9079)" />
-      <path
-         transform="matrix(1.032667,0,0,0.85783357,-382.85581,1010.336)"
-         d="m 52.5,38 c 0,1.656854 -1.007359,3 -2.25,3 C 49.007359,41 48,39.656854 48,38 c 0,-1.656854 1.007359,-3 2.25,-3 1.242641,0 2.25,1.343146 2.25,3 z"
-         sodipodi:ry="3"
-         sodipodi:rx="2.25"
-         sodipodi:cy="38"
-         sodipodi:cx="50.25"
-         id="path4397"
-         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.50000000000000000;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         sodipodi:type="arc" />
-      <path
-         sodipodi:type="arc"
-         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.50000000000000000;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         id="path4399"
-         sodipodi:cx="50.25"
-         sodipodi:cy="38"
-         sodipodi:rx="2.25"
-         sodipodi:ry="3"
-         d="m 52.5,38 c 0,1.656854 -1.007359,3 -2.25,3 C 49.007359,41 48,39.656854 48,38 c 0,-1.656854 1.007359,-3 2.25,-3 1.242641,0 2.25,1.343146 2.25,3 z"
-         transform="matrix(1.032667,0,0,0.85783357,-353.35581,1010.336)" />
-      <path
-         transform="matrix(0.67341665,0,0,0.92172914,-322.80348,1009.908)"
-         d="m 52.5,38 c 0,1.656854 -1.007359,3 -2.25,3 C 49.007359,41 48,39.656854 48,38 c 0,-1.656854 1.007359,-3 2.25,-3 1.242641,0 2.25,1.343146 2.25,3 z"
-         sodipodi:ry="3"
-         sodipodi:rx="2.25"
-         sodipodi:cy="38"
-         sodipodi:cx="50.25"
-         id="path4401"
-         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2.50000000000000000;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         sodipodi:type="arc" />
-      <path
-         id="path4425"
-         d="m -352.71429,1041.4184 c 0,17.7805 0,17.7805 0,17.7805 l 0,0"
-         style="fill:none;stroke:#000000;stroke-width:2.48470926;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path4429"
-         d="m -279.71429,1041.838 c 0,17.4414 0,17.4414 0,17.4414"
-         style="fill:none;stroke:#000000;stroke-width:2.65195179;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteKing.svg b/svg/WhiteKing.svg
deleted file mode 100644 (file)
index f7de0af..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1">
-    <g
-       transform="matrix(1.413512,0,0,1.3666144,-594.9892,240.04912)"
-       id="g1101"
-       style="display:inline">
-      <path
-         d="m 524.0076,-75.612106 c 0,2.202134 -8.92592,3.987316 -19.93658,3.987316 -11.01068,0 -19.93659,-1.785182 -19.93659,-3.987316 l -1.5868,-14.572313 c 0,0 -9.59362,-5.738758 -9.56142,-12.728611 0.0271,-5.89722 4.61758,-11.88102 13.18257,-11.7992 11.91497,0.11381 17.98361,12.16539 17.98361,22.011619 0,-9.846229 6.03661,-21.962729 18.14636,-22.011619 8.50951,-0.0344 13.13417,5.96559 12.93843,11.7992 -0.24322,7.248865 -9.6205,12.728611 -9.6205,12.728611 z"
-         inkscape:connector-curvature="0"
-         id="path312"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.43898821;stroke-linejoin:bevel;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 484.17805,-80.272843 c 0,-2.361027 8.92591,-4.275017 19.93658,-4.275017 11.01067,0 19.93659,1.91399 19.93659,4.275017"
-         inkscape:connector-curvature="0"
-         id="path314"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.43898821;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 483.25741,-87.551654 c 0,-2.790037 9.33809,-5.051808 20.85722,-5.051808 11.51913,0 20.85723,2.261771 20.85723,5.051808"
-         inkscape:connector-curvature="0"
-         id="path316"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.43898833;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 484.17805,-75.612106 c 0,-2.202136 8.92591,-3.987318 19.93658,-3.987318 11.01067,0 19.93659,1.785182 19.93659,3.987318"
-         inkscape:connector-curvature="0"
-         id="path321"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.43898821;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 504.13031,-121.625 c -3.30496,0 -6,3.58279 -6,8 l 0.0312,4.28125 c 4.05336,4.43574 6.09375,10.935666 6.09375,16.65625 0,-5.566419 1.94725,-11.85427 5.8125,-16.28125 l 0.0312,-4.65625 c 0,-4.41721 -2.66378,-8 -5.96875,-8 z"
-         inkscape:connector-curvature="0"
-         id="path1091"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.43898809;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 504.11464,-134.60235 0,13.544"
-         inkscape:connector-curvature="0"
-         id="path1097"
-         style="color:#000000;fill:none;stroke:#000000;stroke-width:1.43898821;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 499.13709,-129.62952 9.95509,0"
-         inkscape:connector-curvature="0"
-         id="path1099"
-         style="color:#000000;fill:none;stroke:#000000;stroke-width:1.43898821;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteKnight.svg b/svg/WhiteKnight.svg
deleted file mode 100644 (file)
index 788db7f..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1">
-    <g
-       transform="matrix(1.3645649,0,0,1.3439387,-220.19479,70.376866)"
-       id="g4602"
-       style="display:inline">
-      <path
-         d="m 238.21185,-1.7155471 2.55401,0.0595 c -0.11306,-2.7134211 4.44555,-7.1531665 4.44555,-7.1531665 0,0 2.6311,2.9526263 3.05622,7.1168654 5.9381,-0.2374968 11.03878,2.8990232 13.00056,4.1073952 12.42868,7.655546 17.29364,32.448756 17.26817,51.469126 l -44.90277,-0.141002 c -0.20729,-13.073379 15.56269,-17.974522 15.10098,-30.390825 -3.98486,3.099334 -8.42701,3.94292 -11.94512,6.90514 -2.79351,2.352109 -4.23289,5.107136 -7.01819,8.412488 -1.02679,1.218501 -3.76823,0.678355 -4.65375,-1.092696 -4.42762,1.32829 -8.68213,0.01778 -8.58207,-6.302259 0.0886,-5.594944 5.71512,-10.651222 7.64949,-15.901883 0.8339,-2.263527 0.71728,-5.7619951 2.03476,-8.280479 1.02298,-1.9555369 3.32544,-4.2204556 4.38056,-4.9644989 0.81951,-2.78858391 0.63978,-7.5122594 -0.71693,-9.3212068 1.97854,-0.5652961 6.51958,2.1987846 8.32853,5.4775016 z"
-         inkscape:connector-curvature="0"
-         id="path4350"
-         style="opacity:0.98999999;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.54904515px;stroke-opacity:1" />
-      <path
-         d="m 242.81689,-0.58069936 c -0.072,0.79486254 -0.32711,1.42135025 -0.73002,2.28035536 -2.11721,4.5138671 -1.19455,-0.1716813 -1.14905,-1.19710158 -1.50976,0.47874748 -4.00517,2.26532638 -5.07373,3.22990388 0.2262,-0.822523 1.59457,-2.91401608 1.19879,-4.37258378 -0.53461,-1.97018662 -2.39735,-3.30685752 -4.38274,-4.27768712 0.61573,2.305974 0.97448,5.12831401 -0.52388,8.1053126 -0.963,1.1263746 -1.94758,1.992982 -2.75,3.125 -0.68313,0.9637262 -1.34296,1.9556425 -1.73503,3.090079 -0.83217,1.95126 -0.86757,4.102469 -1.47299,6.117007 -1.0152,3.389738 -2.8013,6.466007 -4.8023,9.361167 -1.33288,2.142142 -2.90703,4.397401 -2.85563,7.031336 0.074,1.299767 0.66114,2.59601 1.56989,3.430555 1.07494,0.869977 2.59231,0.82959 3.80468,0.430633 1.76617,-0.581196 3.02202,-3.3374 4.47311,-5.629934 0.0475,0.474451 -0.10089,1.848603 -0.28033,3.228551 -0.22412,1.723516 -0.4967,3.456074 -0.4967,3.456074 3.78439,-2.467212 6.29028,-7.057025 10.07655,-9.827968 2.63561,-1.928841 6.46629,-2.181126 8.64217,-4.616774 2.70726,-3.030455 3.36645,-3.372936 4.50035,-11.329732 1.23577,7.754431 0.26208,17.297222 -3.06808,22.364697 -0.94356,1.435812 -2.64098,3.136326 -3.94944,4.706809 -2.35937,2.831831 -5.02065,5.234162 -6.63424,8.423218 -0.82438,1.629293 -1.38054,3.845243 -1.45951,5.27993 13.88505,0.05216 27.62654,-0.03393 39.71316,0 0.13389,-5.249005 -0.48174,-10.005913 -1.26011,-14.943931 -0.75657,-4.799697 -1.81449,-9.572366 -3.30276,-14.197788 -1.25479,-3.899783 -2.30537,-8.037609 -4.71838,-11.348224 -3.01163,-4.1319023 -7.09257,-7.6856654 -11.68081,-9.9418973 -1.89015,-0.92946742 -3.84424,-1.22768185 -5.87614,-1.42411251 -0.67664,2.63979221 -1.13781,0.36144826 -1.51273,-0.14218972 -1.03671,-1.94459497 -1.88857,-2.71395277 -2.04236,-4.94441567 -1.31768,1.7707756 -2.11286,3.3322909 -2.22174,4.53371084 z"
-         inkscape:connector-curvature="0"
-         id="path4352"
-         style="opacity:0.98999999;fill:#ffffcc;fill-opacity:1;stroke:#fdfdca;stroke-width:0.54904515px;stroke-opacity:1" />
-      <path
-         d="m 221.53873,32.85876 c 2.61354,-0.122981 3.81785,-5.736082 1.16227,-5.663706 -2.93332,0.07995 -3.41743,5.769824 -1.16227,5.663706 z"
-         inkscape:connector-curvature="0"
-         id="path4348"
-         style="opacity:0.98999999;fill:#000000;fill-opacity:1" />
-      <path
-         d="m 230.75067,14.108964 0.88552,-2.213813 c 2.65658,0.442761 3.98486,-0.885522 3.5421,-3.5421016 l 2.21381,-0.442761 0,-0.442761 c -3.98486,-0.885529 -7.52696,2.6565726 -6.64143,6.6414366 z"
-         inkscape:connector-curvature="0"
-         id="path4340"
-         style="opacity:0.98999999;fill:#000000;fill-opacity:1" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteLShield.svg b/svg/WhiteLShield.svg
deleted file mode 100644 (file)
index b37f88f..0000000
+++ /dev/null
@@ -1,170 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="100"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="WhiteLShield.svg">
-  <defs
-     id="defs4">
-    <marker
-       inkscape:stockid="Arrow2Lstart"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="Arrow2Lstart"
-       style="overflow:visible">
-      <path
-         id="path3648"
-         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
-         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
-         transform="scale(1.1) translate(1,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="Arrow2Lend"
-       style="overflow:visible;">
-      <path
-         id="path3651"
-         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
-         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
-         transform="scale(1.1) rotate(180) translate(1,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="Arrow1Lend"
-       style="overflow:visible;">
-      <path
-         id="path3633"
-         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
-         transform="scale(0.8) rotate(180) translate(12.5,0)" />
-    </marker>
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2824"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2838"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="2"
-     inkscape:cx="52.657835"
-     inkscape:cy="23.437927"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="792"
-     inkscape:window-height="583"
-     inkscape:window-x="62"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(366.71429,-981.93367)">
-    <g
-       id="g3621">
-      <path
-         transform="matrix(-0.82853394,0,0,0.86611144,-274.22532,989.39587)"
-         d="m 74.5,52 a 26.5,43.5 0 1 1 -53,0 26.5,43.5 0 1 1 53,0 z"
-         sodipodi:ry="43.5"
-         sodipodi:rx="26.5"
-         sodipodi:cy="52"
-         sodipodi:cx="48"
-         id="path2843"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         sodipodi:type="arc" />
-      <path
-         transform="matrix(-0.90196078,0,0,0.92814371,-266.41652,977.03247)"
-         d="m 59,78 -1.6665,6.376488 4.308035,4.987752 -6.579378,0.385507 -3.412378,5.638485 L 49.25,89.25 42.833,87.747023 47.929233,83.56788 47.375686,77.000505 52.92511,80.555885 59,78 z"
-         inkscape:randomized="0"
-         inkscape:rounded="0"
-         inkscape:flatsided="false"
-         sodipodi:arg2="-0.2283871"
-         sodipodi:arg1="-0.85670563"
-         sodipodi:r2="4.962358"
-         sodipodi:r1="9.9247169"
-         sodipodi:cy="85.5"
-         sodipodi:cx="52.5"
-         sodipodi:sides="5"
-         id="path3621"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         sodipodi:type="star" />
-      <path
-         sodipodi:type="star"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         id="path3623"
-         sodipodi:sides="5"
-         sodipodi:cx="52.5"
-         sodipodi:cy="85.5"
-         sodipodi:r1="9.9247169"
-         sodipodi:r2="4.962358"
-         sodipodi:arg1="-0.85670563"
-         sodipodi:arg2="-0.2283871"
-         inkscape:flatsided="false"
-         inkscape:rounded="0"
-         inkscape:randomized="0"
-         d="m 59,78 -1.6665,6.376488 4.308035,4.987752 -6.579378,0.385507 -3.412378,5.638485 L 49.25,89.25 42.833,87.747023 47.929233,83.56788 47.375686,77.000505 52.92511,80.555885 59,78 z"
-         transform="matrix(0.90196078,0,0,-0.92814371,-360.74649,1091.1238)" />
-      <path
-         id="path3625"
-         d="m -280.30613,1074.8834 -68.34698,-84.36431"
-         style="fill:none;stroke:#000000;stroke-width:1.60083961;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow2Lstart);marker-end:url(#Arrow2Lend)" />
-      <path
-         id="path4460"
-         d="m -286.24495,1067.9337 -55.5,-69.00003 56.5,69.50003"
-         style="fill:none;stroke:#000000;stroke-width:3.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteLance.svg b/svg/WhiteLance.svg
deleted file mode 100644 (file)
index 09b78a4..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1">
-    <g
-       transform="matrix(1.2247555,0,0,1.2359905,-813.95848,229.18287)"
-       id="g1527"
-       style="display:inline">
-      <path
-         d="m 760.59375,-133.71302 16.64095,42.599199 -16.64095,16.640946 -16.64095,-16.640946 z"
-         inkscape:connector-curvature="0"
-         id="path1525"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.21915519;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 760.60024,-85.557765 0,-21.035625"
-         inkscape:connector-curvature="0"
-         id="path1515"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2.43831038;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 754.11332,-97.094796 12.97384,0"
-         inkscape:connector-curvature="0"
-         id="path1517"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2.43831038;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 758.09375,-77.6875 0,8.09375 5,0 0,-8.09375 -2.5,-4.150065 z"
-         inkscape:connector-curvature="0"
-         id="path1519"
-         style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteLeft.svg b/svg/WhiteLeft.svg
deleted file mode 100644 (file)
index 4c8e7df..0000000
+++ /dev/null
@@ -1,185 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="BlackLWheel.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="783"
-     inkscape:window-height="583"
-     id="namedview13"
-     showgrid="false"
-     inkscape:zoom="2.36"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 50 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="100 : 50 : 1"
-       inkscape:persp3d-origin="50 : 33.333333 : 1"
-       id="perspective15" />
-  </defs>
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3914">
-    <path
-       transform="matrix(-1,0,0,1,100,0)"
-       d="m 89.830509,52.966103 a 39.830509,39.830509 0 1 1 -79.661018,0 39.830509,39.830509 0 1 1 79.661018,0 z"
-       sodipodi:ry="39.830509"
-       sodipodi:rx="39.830509"
-       sodipodi:cy="52.966103"
-       sodipodi:cx="50"
-       id="path2996"
-       style="fill:#ffffcc;fill-opacity:1"
-       sodipodi:type="arc" />
-    <g
-       id="g3900">
-      <path
-         sodipodi:type="arc"
-         style="fill:#000000;fill-opacity:1"
-         id="path3000"
-         sodipodi:cx="51.271187"
-         sodipodi:cy="54.661018"
-         sodipodi:rx="28.38983"
-         sodipodi:ry="28.38983"
-         d="m 79.661016,54.661018 a 28.38983,28.38983 0 1 1 -56.779659,0 28.38983,28.38983 0 1 1 56.779659,0 z"
-         transform="matrix(-1,0,0,1,100.84746,-1.6949153)" />
-      <path
-         sodipodi:type="arc"
-         style="fill:#ffffcc;fill-opacity:0.94117647"
-         id="path3782"
-         sodipodi:cx="49.576271"
-         sodipodi:cy="53.81356"
-         sodipodi:rx="25.423729"
-         sodipodi:ry="25.423729"
-         d="m 75,53.81356 a 25.423729,25.423729 0 1 1 -50.847458,0 25.423729,25.423729 0 1 1 50.847458,0 z"
-         transform="matrix(-1,0,0,1,99.152542,-0.84745763)" />
-      <path
-         sodipodi:type="arc"
-         style="fill:#ffffcc;fill-opacity:1"
-         id="path3784"
-         sodipodi:cx="51.271187"
-         sodipodi:cy="54.237289"
-         sodipodi:rx="6.7796612"
-         sodipodi:ry="6.7796612"
-         d="m 58.050848,54.237289 a 6.7796612,6.7796612 0 1 1 -13.559322,0 6.7796612,6.7796612 0 1 1 13.559322,0 z"
-         transform="matrix(-1,0,0,1,101.27119,-1.2711864)" />
-      <path
-         style="fill:none;stroke:#ffffcc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         d="M 49.576271,52.542373 C 57.068828,42.654339 57.196706,33.899333 50,26.271186"
-         id="path3804"
-         sodipodi:nodetypes="cc" />
-      <use
-         x="0"
-         y="0"
-         xlink:href="#path3804"
-         id="use3808"
-         transform="matrix(-1,0,0,1,101.06126,26.694916)"
-         width="100"
-         height="100" />
-      <use
-         x="0"
-         y="0"
-         xlink:href="#use3808"
-         id="use3810"
-         transform="matrix(0,-1,1,0,-2.64734,103.7086)"
-         width="100"
-         height="100" />
-      <use
-         x="0"
-         y="0"
-         xlink:href="#use3810"
-         id="use3812"
-         transform="matrix(1,0,0,-1,-27.118644,105.93221)"
-         width="100"
-         height="100"
-         style="fill:#000000;stroke:#000000;stroke-opacity:1;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none" />
-      <use
-         x="0"
-         y="0"
-         xlink:href="#use3812"
-         id="use3814"
-         transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,51.258092,-20.122385)"
-         width="100"
-         height="100" />
-      <use
-         x="0"
-         y="0"
-         xlink:href="#use3814"
-         id="use3816"
-         transform="matrix(1,0,0,-1,20.338983,86.37377)"
-         width="100"
-         height="100" />
-      <use
-         x="0"
-         y="0"
-         xlink:href="#use3816"
-         id="use3818"
-         transform="matrix(-1,0,0,1,119.34852,18.220339)"
-         width="100"
-         height="100"
-         style="fill:#000000" />
-      <use
-         x="0"
-         y="0"
-         xlink:href="#use3818"
-         id="use3820"
-         transform="matrix(1,0,0,-1,-19.067796,124.50936)"
-         width="100"
-         height="100"
-         style="fill:#000000" />
-      <path
-         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.84745765;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         d="m 49.408565,77.911284 c -3.818473,-5.243047 -5.436213,-11.906062 -4.095989,-16.870226 0.610481,-2.261211 0.601939,-2.333595 -0.435994,-3.694395 l -1.058675,-1.387995 -2.024779,1.026033 c -3.924025,1.988454 -6.930877,6.434761 -8.340517,12.333329 -0.795232,3.327606 -1.009628,3.693707 -1.951447,3.332301 -0.507941,-0.194916 -0.620638,-0.642928 -0.456495,-1.814742 0.332482,-2.373568 1.792481,-6.664732 3.023356,-8.886113 1.42486,-2.571468 4.940556,-6.018087 7.159242,-7.018575 1.39057,-0.627059 1.783587,-1.052867 1.953441,-2.116422 0.257515,-1.612448 -0.341758,-2.169178 -3.271439,-3.0392 -4.775746,-1.418244 -9.620957,-0.51803 -13.826075,2.56881 -1.96981,1.445974 -2.222994,1.528217 -2.831451,0.919761 -0.608457,-0.608458 -0.542257,-0.774785 0.740332,-1.860097 5.106323,-4.32091 11.643708,-5.4535 17.903771,-3.101794 l 2.446694,0.919144 0.786718,-0.971556 c 0.707741,-0.874022 0.729428,-1.133936 0.216035,-2.589048 C 44.303287,42.70714 41.831326,39.5114 39.2614,37.795269 37.05634,36.322786 34.916511,35.6184 30.974576,35.067422 c -1.150128,-0.160758 -1.443842,-2.016575 -0.319157,-2.016575 2.030763,0 6.005395,1.031942 8.155979,2.117553 3.249265,1.640224 5.630525,4.160916 7.551005,7.993143 l 1.622068,3.236762 2.088273,-0.03332 2.088273,-0.03332 0.940372,-2.297184 c 1.907329,-4.65931 1.057136,-10.44155 -2.211191,-15.038523 -1.302052,-1.831365 -1.399305,-2.143016 -0.842497,-2.699824 0.556808,-0.556809 0.778839,-0.460069 1.923443,0.838049 4.011268,4.549259 5.226395,11.024757 3.200464,17.055504 l -1.10853,3.299847 1.061681,1.144975 c 0.583925,0.629737 1.061682,1.293145 1.061682,1.474241 0,0.647334 4.055991,-1.749568 5.669535,-3.350432 1.998607,-1.982899 4.15416,-6.312987 5.134914,-10.315043 0.476631,-1.944927 0.935546,-2.96869 1.330763,-2.96869 1.021258,0 1.139809,1.199641 0.41058,4.154689 -1.586169,6.427599 -5.062902,11.361854 -9.630231,13.667435 -2.156558,1.088626 -2.412738,1.362363 -2.574895,2.751355 -0.155403,1.331137 -0.03143,1.608781 0.904885,2.026606 0.596726,0.266284 2.896398,0.486174 5.110381,0.488644 4.360623,0.0049 6.503322,-0.703023 11.151284,-3.684079 1.871521,-1.200336 2.097474,-1.252742 2.719479,-0.630738 0.622004,0.622004 0.593241,0.749206 -0.346195,1.530948 -1.760136,1.464675 -6.501966,3.795175 -9.097577,4.471245 -3.29398,0.857973 -6.347293,0.817735 -9.371492,-0.123502 -2.404478,-0.748357 -2.50206,-0.747934 -3.304964,0.01434 -0.81957,0.7781 -0.81755,0.803569 0.215303,2.714376 1.500753,2.776434 3.59055,5.089159 5.733298,6.344893 2.011524,1.178832 5.612796,2.277595 7.491542,2.285705 0.95911,0.0042 1.165254,0.192432 1.165254,1.064351 0,1.283488 -0.552407,1.329318 -4.687209,0.388878 -5.016661,-1.141017 -9.162036,-4.465834 -11.456668,-9.188878 -0.953764,-1.963135 -1.0153,-2.005084 -2.941283,-2.005084 -1.916512,0 -1.97977,0.04216 -2.457938,1.638144 -1.1875,3.963521 -0.119209,9.144987 2.926693,14.195161 1.562167,2.59011 1.683485,2.976127 1.114236,3.545377 -0.569248,0.56925 -0.785654,0.437161 -1.987571,-1.213161 l 0,0 z"
-         id="path3894" />
-    </g>
-    <path
-       transform="matrix(1.0498008,0,0,1.0498008,-6.7053818,-2.8707203)"
-       d="m 91.101696,53.389832 a 37.288136,37.288136 0 1 1 -74.576271,0 37.288136,37.288136 0 1 1 74.576271,0 z"
-       sodipodi:ry="37.288136"
-       sodipodi:rx="37.288136"
-       sodipodi:cy="53.389832"
-       sodipodi:cx="53.81356"
-       id="path3898"
-       style="fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:2.0003795;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       sodipodi:type="arc" />
-  </g>
-</svg>
diff --git a/svg/WhiteLeopard.svg b/svg/WhiteLeopard.svg
deleted file mode 100644 (file)
index 069f384..0000000
+++ /dev/null
@@ -1,168 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="100"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="WhiteLeopard.svg">
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2824"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2838"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="0.98994949"
-     inkscape:cx="246.14185"
-     inkscape:cy="-2.6387301"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="792"
-     inkscape:window-height="583"
-     inkscape:window-x="62"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(366.71429,-981.93367)">
-    <g
-       id="g3625">
-      <path
-         sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccc"
-         id="path2844"
-         d="m -316.1258,1002.1094 10.04545,1.3788 7.87879,3.7425 1.57575,-3.7425 3.34849,-3.54543 3.15151,-1.18182 4.92425,-0.39393 2.36364,2.75758 0.39394,4.5303 -1.57577,3.7424 -1.57575,2.7576 -3.15152,1.1818 1.37879,2.9546 -0.98485,2.7575 -1.18182,1.3789 1.37879,5.909 0.59091,4.5303 -0.39394,5.3182 -1.57576,4.9242 -2.95454,5.5152 -3.93939,3.5454 -3.34849,0.197 -3.54545,2.1666 -0.98485,4.9243 -1.37879,6.697 -3.74242,3.9394 -4.13636,1.5757 -4.33334,-0.1969 -5.12121,-3.1516 -2.36363,-2.5605 0.39394,-2.9546 -1.77273,-3.5455 -1.77273,-4.1363 -0.78788,-2.3637 -4.13636,-3.9394 -4.33334,-2.7575 -4.13636,-5.9091 0,-7.2879 0.78788,-5.909 1.37879,-5.1213 -2.56061,-3.1515 -0.19697,-5.3181 -2.36363,-3.1516 -0.98485,-4.1364 1.57575,-4.92421 1.9697,-2.75757 1.77273,0.59091 2.95455,2.75758 3.15151,3.74239 0.98485,2.3636 2.56061,0.591 4.13636,-2.7576 5.71212,-1.1818 4.92424,-0.394 z"
-         style="fill:#ffffcc;stroke:#000000;stroke-width:1.72730826999999998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
-      <path
-         sodipodi:nodetypes="ccccccccc"
-         id="path2846"
-         d="m -300.17125,1022.9882 -5.75488,0.2657 -1.33603,0.7451 -4.51355,4.3501 3.61419,-1.7987 4.00812,0.4628 2.09794,-0.8734 0.70238,-2.7577 1.18183,-0.3939 z"
-         style="fill:#000000;stroke:#000000;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="ccccccccccc"
-         id="path2848"
-         d="m -333.26216,1022.5943 5.71212,0.4627 2.40638,1.1818 1.92695,2.8858 -2.64609,0.085 -2.67209,0.042 -1.74673,-0.8994 -0.89937,-1.3528 -0.30844,-1.8154 1.43075,0.1542 -3.20348,-0.7451 z"
-         style="fill:#000000;stroke:#000000;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="cccccccccc"
-         id="path2850"
-         d="m -316.95642,1039.6024 3.23701,-1.0276 1.42153,0.9421 -1.37879,3.2538 -1.85822,2.3637 -2.08118,0.042 -2.18342,-2.2949 -1.53302,-3.3485 1.0276,-1.0276 3.34849,1.0964 z"
-         style="fill:#000000;stroke:#000000;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="ccccccccccccccccccccc"
-         id="path2852"
-         d="m -316.23728,1047.5927 3.03081,0.8473 3.60519,0.8187 3.12699,-0.01 c 0.63924,-0.493 1.12426,-0.1508 1.45505,-0.548 l -1.43829,6.7991 -0.63366,2.3896 -0.74513,3.7164 -1.71322,1.3361 -3.382,0.3939 -5.09523,0.086 -2.5606,-0.8307 -1.56652,-1.6445 -1.01085,-2.3544 -1.19857,-3.3913 -2.38963,-5.2753 1.96047,0.2396 4.53031,-1.3787 4.02488,-1.1986 0,-10e-5 0,10e-5 z"
-         style="fill:#000000;stroke:#000000;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="ccccc"
-         id="path2854"
-         d="m -306.84224,1049.5624 -2.8523,8.6164 -1.49026,-9.276 4.65101,0.8143 -0.30845,-0.1547 z"
-         style="fill:#ffffff;stroke:#000000;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="ccccc"
-         id="path2856"
-         d="m -320.16745,1049.0309 -1.84145,8.6424 -1.91019,-2.9897 -0.70239,-4.4021 4.45403,-1.2506 z"
-         style="fill:#ffffff;stroke:#000000;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="ccccccccc"
-         id="path2858"
-         d="m -309.83953,1062.6907 c 1.06225,-0.731 1.71365,-1.5642 1.79871,-2.3469 l 0.92536,-4.4709 c -1.03934,0.8994 -1.92445,1.953 -2.96378,2.8524 l -1.20781,0.5054 c -0.78908,-0.7043 -2.7455,-0.6155 -2.06442,-1.6873 l -0.47942,3.1348 1.44752,2.2354 2.54384,-0.2229 z"
-         style="fill:#ffffff;stroke:#000000;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="ccccccccc"
-         id="path2860"
-         d="m -317.17015,1057.2777 -2.10716,1.559 -0.78789,0 -2.43236,-1.756 -0.0687,3.0921 1.86745,2.3041 2.36364,0.6336 1.71322,-1.9268 -0.54816,-3.906 z"
-         style="fill:#ffffff;stroke:#000000;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="cccccccccc"
-         id="path2862"
-         d="m -295.24702,1009.0034 1.42154,-3.999 3.27975,-3.4004 4.40207,-0.069 0.9421,2.9378 -1.05358,3.5881 -1.22456,2.2095 -2.64611,0.8994 -3.34848,-0.197 -1.77273,-1.9697 z"
-         style="fill:#000000;stroke:#000000;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="cccccccccc"
-         id="path2864"
-         d="m -341.14095,1000.3367 2.99729,2.6721 1.77273,2.4231 0.54816,3.5715 -2.75757,1.5757 -2.40639,-1.6444 -2.05518,-3.2798 0,-2.3804 1.07033,-2.6293 0.83063,-0.3085 z"
-         style="fill:#000000;stroke:#000000;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path2866"
-         d="m -304.30762,1036.1852 12.40909,-9.2576 10.04545,-6.303 5.71212,-4.5303"
-         style="fill:none;stroke:#000000;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path2868"
-         d="m -304.11065,1038.9428 12.21212,-3.5455 8.66667,-0.9848 9.06059,0 2.16668,0.5909"
-         style="fill:none;stroke:#000000;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path2870"
-         d="m -303.32277,1042.4882 8.86363,-2.3636 8.86364,-0.7879 5.90909,0.5909 8.66666,1.7727"
-         style="fill:none;stroke:#000000;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path2872"
-         d="m -304.30762,1044.8519 8.66666,0.5909 7.28788,3.3485"
-         style="fill:none;stroke:#000000;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path2874"
-         d="m -330.11064,1037.7609 -8.86364,-4.3333 -6.69697,-2.5606 -7.48485,-1.1818 -8.66666,-0.394"
-         style="fill:none;stroke:#000000;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path2876"
-         d="m -330.50458,1040.9125 -12.01516,-1.7727 -7.87879,0.1969 -10.63636,3.3485 -7.87878,3.7424"
-         style="fill:none;stroke:#000000;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path2878"
-         d="m -330.70156,1044.064 -6.30302,0.7879 -8.66667,3.1515 -7.48485,3.9393 c 0,0 -3.74243,3.3485 -4.5303,3.1516"
-         style="fill:none;stroke:#000000;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path2880"
-         d="m -326.5652,1046.4276 -5.71211,2.3637 -5.9091,3.5454 -4.13636,3.9394"
-         style="fill:none;stroke:#000000;stroke-width:1.72730827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteLion.svg b/svg/WhiteLion.svg
deleted file mode 100644 (file)
index e959c70..0000000
+++ /dev/null
@@ -1,170 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="100"
-   id="svg3738"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="WhiteLion.svg">
-  <defs
-     id="defs3740">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective3746" />
-    <inkscape:perspective
-       id="perspective3800"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="2.8"
-     inkscape:cx="104.93845"
-     inkscape:cy="49.899824"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="716"
-     inkscape:window-height="504"
-     inkscape:window-x="3"
-     inkscape:window-y="71"
-     inkscape:window-maximized="0"
-     showguides="true"
-     inkscape:guide-bbox="true">
-    <sodipodi:guide
-       position="0.17142614,0.85712"
-       orientation="0,744.09448"
-       id="guide4498" />
-    <sodipodi:guide
-       position="744.26591,0.85712"
-       orientation="-1052.3622,0"
-       id="guide4500" />
-    <sodipodi:guide
-       position="744.26591,1053.2193"
-       orientation="0,-744.09448"
-       id="guide4502" />
-    <sodipodi:guide
-       position="0.17142614,1053.2193"
-       orientation="1052.3622,0"
-       id="guide4504" />
-  </sodipodi:namedview>
-  <metadata
-     id="metadata3743">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(0.17142614,-953.2193)">
-    <g
-       id="g3626">
-      <path
-         id="path3888"
-         d="m 19.658729,988.24705 2.662046,-6.65512 -1.774696,-3.99306 5.767763,-7.98613 8.873485,-6.21144 11.979202,-0.44368 2.218371,-7.09878 7.542461,0 7.098787,3.99306 10.648179,1.77471 -1.331021,5.76775 11.535527,3.10572 -1.331022,4.43674 6.655112,6.65511 -2.21837,2.21838 7.098788,10.64818 -2.662046,2.66204 4.436742,9.76077 -0.443675,6.2115 0,11.0919 -6.211439,-7.9862 0.443675,16.4159 -2.218371,3.1058 -6.211439,-5.7677 0,8.8734 -4.880415,3.5494 0.887348,-9.7609 -7.098787,11.9793 -3.993067,-4.8805 -4.436742,10.2046 -10.204506,1.331 -9.760832,-1.331 -8.42981,-6.6551 -4.43674,-2.2185 -10.648181,6.6552 -0.443675,-12.4229 -2.21837,-7.5424 -3.105719,2.662 -4.8804165,-3.9931 0.8873482,-8.8734 -2.2183708,-3.9931 0.8873485,-5.3241 -4.8804161,-3.5494 1.3310226,-3.5494 15.0849211,-12.86655 z"
-         style="fill:#ffffcc;stroke:#000000;stroke-width:1.94107449000000010;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
-      <path
-         sodipodi:nodetypes="ccccccc"
-         id="path3890"
-         d="m 37.849371,990.46542 -8.42981,-1.77469 3.549395,1.33102 -5.324091,4.43674 5.324091,-2.66205 3.743499,0.19411 1.136916,-1.52513 z"
-         style="fill:#000000;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3892"
-         d="m 59.589406,989.1344 0,-6.21144 -0.443675,-7.54246 -1.774697,-4.88042 -3.105719,-2.21837 -6.655113,0.88735 -3.549392,3.99307 -1.774696,3.54939"
-         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3894"
-         d="m 55.152664,985.14134 -0.887349,-4.43675 -2.662044,-3.54939 -3.105719,0 -1.774698,3.99306 0,0 0.887348,0.44367 -0.887348,-0.44367"
-         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3896"
-         d="m 14.334641,1004.2193 0,0 z"
-         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="cc"
-         id="path3898"
-         d="M 13.128401,1004.8154 2.7991111,1003.332"
-         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3900"
-         d="m 8.1232014,1010.4308 2.2183706,-2.6621 2.21837,-0.4436 0.443676,-2.6621 0,0"
-         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3902"
-         d="m 8.1232014,1017.5296 3.1057196,-0.8874 3.549393,3.9931 4.436742,0 6.211438,2.2184 4.880416,0.4436 0.443674,0 0,0.4437"
-         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3904"
-         d="m 44.06081,1003.7756 -0.443675,8.4299 -3.549393,6.2114 -0.887348,7.0987 -5.32409,6.2115 -3.993067,6.6552"
-         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3906"
-         d="m 72.455957,998.00788 -3.10572,13.31022 -5.767764,10.6482 -6.655112,8.4298 -4.880416,13.3102"
-         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="cccccc"
-         id="path3908"
-         d="m 66.591138,1040.0876 -0.34662,-7.0294 3.993069,-8.8735 4.43674,-9.7608 2.218371,-10.6483 -0.443673,-7.09874"
-         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3910"
-         d="m 79.998418,997.12053 0,7.09877 0,5.3241 0.887347,7.5425 -4.43674,6.6551 -2.662046,5.3241 -1.331022,6.2114"
-         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="ccccc"
-         id="path3912"
-         d="m 72.012283,978.04254 6.655113,7.0988 7.986135,5.76775 -0.09705,20.35351 3.091854,3.9377"
-         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path3914"
-         d="m 72.012283,972.71846 7.542461,0.88734 4.880416,2.66205 0,0"
-         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         sodipodi:nodetypes="ccc"
-         id="path3916"
-         d="m 20.546079,987.94202 11.535527,-8.12478 4.436742,-2.66204"
-         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path4508"
-         d="m 16.040012,1011.3181 c 8.318891,-1.7331 7.972271,-1.7331 7.972271,-1.7331"
-         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path4510"
-         d="m 16.733253,1014.091 c 11.438475,-0.3466 11.438475,-0.3466 11.438475,-0.3466"
-         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         id="path4512"
-         d="m 17.079873,1016.5174 c 10.745234,4.1594 10.745234,4.1594 10.745234,4.1594"
-         style="fill:none;stroke:#000000;stroke-width:1.94107449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteMarshall.svg b/svg/WhiteMarshall.svg
deleted file mode 100644 (file)
index 96c9094..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165632)"
-     id="layer1">
-    <g
-       transform="matrix(1.2967471,0,0,1.2967471,-868.79434,560.77036)"
-       id="g373"
-       style="display:inline">
-      <g
-         id="g336">
-        <path
-           d="m 784.93957,-340.63966 -16.36886,-0.18155 -8.14608,14.19861 -8.0272,-14.26663 -16.3694,0.0446 8.34166,-14.08508 -8.22332,-14.15401 16.36886,0.18155 8.14608,-14.19861 8.0272,14.26662 16.3694,-0.0446 -8.34166,14.08507 z"
-           transform="translate(0.13602359,0)"
-           id="path334"
-           style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1.54232061;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-        <path
-           d="m 739.73035,-369.961 a 4.2169256,4.2169256 0 1 1 -8.43385,0 4.2169256,4.2169256 0 1 1 8.43385,0 z"
-           transform="matrix(0.82998852,0,0,0.82998851,150.21129,-76.254265)"
-           id="path324"
-           style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1.85824394;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-        <path
-           d="m 739.73035,-369.961 a 4.2169256,4.2169256 0 1 1 -8.43385,0 4.2169256,4.2169256 0 1 1 8.43385,0 z"
-           transform="matrix(0.82998852,0,0,0.82998851,174.79346,-62.412914)"
-           id="path326"
-           style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1.85824394;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-        <path
-           d="m 739.73035,-369.961 a 4.2169256,4.2169256 0 1 1 -8.43385,0 4.2169256,4.2169256 0 1 1 8.43385,0 z"
-           transform="matrix(0.82998852,0,0,0.82998851,174.79346,-33.389588)"
-           id="path328"
-           style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1.85824394;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-        <path
-           d="m 739.73035,-369.961 a 4.2169256,4.2169256 0 1 1 -8.43385,0 4.2169256,4.2169256 0 1 1 8.43385,0 z"
-           transform="matrix(0.82998852,0,0,0.82998851,150.21129,-19.248004)"
-           id="path330"
-           style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1.85824394;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-        <path
-           d="m 739.73035,-369.961 a 4.2169256,4.2169256 0 1 1 -8.43385,0 4.2169256,4.2169256 0 1 1 8.43385,0 z"
-           transform="matrix(0.82998852,0,0,0.82998851,125.58124,-33.389588)"
-           id="path332"
-           style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1.85824394;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-        <path
-           d="m 739.73035,-369.961 a 4.2169256,4.2169256 0 1 1 -8.43385,0 4.2169256,4.2169256 0 1 1 8.43385,0 z"
-           transform="matrix(0.82998852,0,0,0.82998851,125.58124,-62.412914)"
-           id="path322"
-           style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1.85824394;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-        <path
-           d="m 772.1055,-353.77347 a 11.154449,11.154449 0 1 1 -22.3089,0 11.154449,11.154449 0 1 1 22.3089,0 z"
-           transform="matrix(0.95121952,0,0,0.98780488,36.8475,-5.1304896)"
-           id="path320"
-           style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1.59110439;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      </g>
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteNightrider.svg b/svg/WhiteNightrider.svg
deleted file mode 100644 (file)
index 592654c..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1">
-    <g
-       transform="matrix(1.3468031,0,0,1.3439388,-215.79812,237.98498)"
-       id="g4919"
-       style="display:inline">
-      <path
-         d="m 238.21185,-126.42965 2.55401,0.0595 c -0.11306,-2.71342 4.44555,-7.15316 4.44555,-7.15316 0,0 2.6311,2.95262 3.05622,7.11686 5.9381,-0.2375 11.03878,2.89903 13.00056,4.1074 12.42868,7.65554 17.29364,32.448753 17.26817,51.469123 l -44.90277,-0.141002 c -0.20729,-13.073379 15.56269,-17.974522 15.10098,-30.390821 -3.98486,3.09933 -8.42701,3.942916 -11.94512,6.905136 -2.79351,2.352109 -4.23289,5.107136 -7.01819,8.412488 -1.02679,1.218501 -3.76823,0.678355 -4.65375,-1.092696 -4.42762,1.32829 -8.68213,0.01778 -8.58207,-6.302259 0.0886,-5.594944 5.71512,-10.651219 7.64949,-15.901879 0.8339,-2.26353 0.71728,-5.762 2.03476,-8.28048 1.02298,-1.95554 3.32544,-4.22046 4.38056,-4.9645 0.81951,-2.78859 0.63978,-7.51226 -0.71693,-9.32121 1.97854,-0.56529 6.51958,2.19879 8.32853,5.4775 z"
-         inkscape:connector-curvature="0"
-         id="path4687"
-         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.55265367px;stroke-opacity:1" />
-      <path
-         d="m 245.03125,-129.84375 c -1.31768,1.77078 -2.10987,3.36108 -2.21875,4.5625 -0.072,0.79486 -0.31584,1.42224 -0.71875,2.28125 -2.11721,4.51386 -1.20175,-0.19333 -1.15625,-1.21875 -1.50976,0.47875 -3.99394,2.28542 -5.0625,3.25 0.2262,-0.82252 1.58328,-2.91643 1.1875,-4.375 -0.53461,-1.97018 -2.38961,-3.31042 -4.375,-4.28125 0.56318,2.10917 0.87246,4.64738 -0.21875,7.34375 l 7.65625,6.71875 -7.4375,7.6875 -5.625,-5.4375 c -0.30305,1.36719 -0.47063,2.77944 -0.875,4.125 -1.0152,3.38973 -2.78025,6.44859 -4.78125,9.34375 -1.33288,2.142142 -2.9264,4.397315 -2.875,7.03125 0.074,1.299767 0.685,2.602955 1.59375,3.4375 1.07494,0.869977 2.56888,0.836457 3.78125,0.4375 1.76617,-0.581196 3.01766,-3.332466 4.46875,-5.625 0.0475,0.474451 -0.10181,1.838802 -0.28125,3.21875 -0.22412,1.723516 -0.46875,3.46875 -0.46875,3.46875 3.78439,-2.467212 6.27623,-7.072807 10.0625,-9.84375 2.63561,-1.928841 6.48037,-2.189356 8.65625,-4.625 2.70726,-3.03046 3.3661,-3.3557 4.5,-11.3125 1.23577,7.75444 0.23641,17.307525 -3.09375,22.375 -0.94356,1.435812 -2.62904,3.117017 -3.9375,4.6875 -2.35937,2.831831 -5.01141,5.248444 -6.625,8.4375 -0.82438,1.629293 -1.38978,3.846563 -1.46875,5.28125 13.88505,0.05216 27.63213,-0.03393 39.71875,0 0.13389,-5.249005 -0.50288,-10.030732 -1.28125,-14.96875 -0.75657,-4.799697 -1.79298,-9.562079 -3.28125,-14.1875 -1.25479,-3.89978 -2.30574,-8.03313 -4.71875,-11.34375 -3.01163,-4.1319 -7.09926,-7.68127 -11.6875,-9.9375 -1.89015,-0.92947 -3.8431,-1.24107 -5.875,-1.4375 -0.67664,2.63979 -1.12508,0.37863 -1.5,-0.125 -1.03671,-1.9446 -1.90871,-2.73829 -2.0625,-4.96875 z"
-         inkscape:connector-curvature="0"
-         id="path4689"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#fdfdca;stroke-width:0.55265367px;stroke-opacity:1" />
-      <path
-         d="m 221.53873,-91.85534 c 2.61354,-0.122981 3.81785,-5.736082 1.16227,-5.663706 -2.93332,0.07995 -3.41743,5.769824 -1.16227,5.663706 z"
-         inkscape:connector-curvature="0"
-         id="path4691"
-         style="fill:#000000;fill-opacity:1" />
-      <path
-         d="m 230.75067,-110.60514 0.88552,-2.21381 c 2.65658,0.44276 3.98486,-0.88552 3.5421,-3.5421 l 2.21381,-0.44276 0,-0.44276 c -3.98486,-0.88553 -7.52696,2.65657 -6.64143,6.64143 z"
-         inkscape:connector-curvature="0"
-         id="path4737"
-         style="opacity:0.98999999;fill:#ffffcc;fill-opacity:1" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhitePawn.svg b/svg/WhitePawn.svg
deleted file mode 100644 (file)
index d8a3680..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1">
-    <path
-       d="m 117.56224,69.165656 c -5.06122,0 -9.13543,3.8205 -9.13543,8.555112 0,2.694673 1.32671,5.109569 3.40502,6.681139 -6.12801,1.999815 -10.46422,7.090386 -10.46422,13.077106 0,5.254747 3.34016,9.828257 8.30493,12.221577 -11.671545,3.98183 -20.180989,15.84516 -20.180989,30.75404 0,0.57966 0.01605,1.13874 0.04143,1.71102 l 56.099859,0 c 0.0255,-0.57228 0.0414,-1.13136 0.0414,-1.71102 0,-14.90888 -8.50942,-26.77221 -20.18102,-30.75404 4.96479,-2.39332 8.30496,-6.96683 8.30496,-12.221577 0,-5.98672 -4.33622,-11.077291 -10.46424,-13.077106 2.0783,-1.57157 3.40502,-3.986466 3.40502,-6.681139 0,-4.734612 -4.11573,-8.555112 -9.17695,-8.555112 z"
-       inkscape:connector-curvature="0"
-       id="path3762"
-       style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-  </g>
-</svg>
diff --git a/svg/WhitePegasus.svg b/svg/WhitePegasus.svg
deleted file mode 100644 (file)
index b0175ef..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="WhitePegasus.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="504"
-     id="namedview11"
-     showgrid="false"
-     inkscape:zoom="2.36"
-     inkscape:cx="51.30464"
-     inkscape:cy="40.036647"
-     inkscape:window-x="0"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 50 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="100 : 50 : 1"
-       inkscape:persp3d-origin="50 : 33.333333 : 1"
-       id="perspective13" />
-  </defs>
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3608">
-    <g
-       id="layer1"
-       transform="matrix(-0.8,0,0,0.8,155.55044,-25.041921)">
-      <g
-         style="display:inline"
-         id="g4602"
-         transform="matrix(1.3645649,0,0,1.3439387,-220.19479,70.376866)">
-        <path
-           style="opacity:0.98999999;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.54904515px;stroke-opacity:1"
-           id="path4350"
-           inkscape:connector-curvature="0"
-           d="m 238.21185,-1.7155471 2.55401,0.0595 c -0.11306,-2.7134211 4.44555,-7.1531665 4.44555,-7.1531665 0,0 2.6311,2.9526263 3.05622,7.1168654 5.9381,-0.2374968 11.03878,2.8990232 13.00056,4.1073952 12.42868,7.655546 17.29364,32.448756 17.26817,51.469126 l -44.90277,-0.141002 c -0.20729,-13.073379 15.56269,-17.974522 15.10098,-30.390825 -3.98486,3.099334 -8.42701,3.94292 -11.94512,6.90514 -2.79351,2.352109 -4.23289,5.107136 -7.01819,8.412488 -1.02679,1.218501 -3.76823,0.678355 -4.65375,-1.092696 -4.42762,1.32829 -8.68213,0.01778 -8.58207,-6.302259 0.0886,-5.594944 5.71512,-10.651222 7.64949,-15.901883 0.8339,-2.263527 0.71728,-5.7619951 2.03476,-8.280479 1.02298,-1.9555369 3.32544,-4.2204556 4.38056,-4.9644989 0.81951,-2.78858391 0.63978,-7.5122594 -0.71693,-9.3212068 1.97854,-0.5652961 6.51958,2.1987846 8.32853,5.4775016 z" />
-        <path
-           style="opacity:0.98999999;fill:#ffffcc;fill-opacity:1;stroke:#fdfdca;stroke-width:0.54904515px;stroke-opacity:1"
-           id="path4352"
-           inkscape:connector-curvature="0"
-           d="m 242.81689,-0.58069936 c -0.072,0.79486254 -0.32711,1.42135025 -0.73002,2.28035536 -2.11721,4.5138671 -1.19455,-0.1716813 -1.14905,-1.19710158 -1.50976,0.47874748 -4.00517,2.26532638 -5.07373,3.22990388 0.2262,-0.822523 1.59457,-2.91401608 1.19879,-4.37258378 -0.53461,-1.97018662 -2.39735,-3.30685752 -4.38274,-4.27768712 0.61573,2.305974 0.97448,5.12831401 -0.52388,8.1053126 -0.963,1.1263746 -1.94758,1.992982 -2.75,3.125 -0.68313,0.9637262 -1.34296,1.9556425 -1.73503,3.090079 -0.83217,1.95126 -0.86757,4.102469 -1.47299,6.117007 -1.0152,3.389738 -2.8013,6.466007 -4.8023,9.361167 -1.33288,2.142142 -2.90703,4.397401 -2.85563,7.031336 0.074,1.299767 0.66114,2.59601 1.56989,3.430555 1.07494,0.869977 2.59231,0.82959 3.80468,0.430633 1.76617,-0.581196 3.02202,-3.3374 4.47311,-5.629934 0.0475,0.474451 -0.10089,1.848603 -0.28033,3.228551 -0.22412,1.723516 -0.4967,3.456074 -0.4967,3.456074 3.78439,-2.467212 6.29028,-7.057025 10.07655,-9.827968 2.63561,-1.928841 6.46629,-2.181126 8.64217,-4.616774 2.70726,-3.030455 3.36645,-3.372936 4.50035,-11.329732 1.23577,7.754431 0.26208,17.297222 -3.06808,22.364697 -0.94356,1.435812 -2.64098,3.136326 -3.94944,4.706809 -2.35937,2.831831 -5.02065,5.234162 -6.63424,8.423218 -0.82438,1.629293 -1.38054,3.845243 -1.45951,5.27993 13.88505,0.05216 27.62654,-0.03393 39.71316,0 0.13389,-5.249005 -0.48174,-10.005913 -1.26011,-14.943931 -0.75657,-4.799697 -1.81449,-9.572366 -3.30276,-14.197788 -1.25479,-3.899783 -2.30537,-8.037609 -4.71838,-11.348224 -3.01163,-4.1319023 -7.09257,-7.6856654 -11.68081,-9.9418973 -1.89015,-0.92946742 -3.84424,-1.22768185 -5.87614,-1.42411251 -0.67664,2.63979221 -1.13781,0.36144826 -1.51273,-0.14218972 -1.03671,-1.94459497 -1.88857,-2.71395277 -2.04236,-4.94441567 -1.31768,1.7707756 -2.11286,3.3322909 -2.22174,4.53371084 z" />
-        <path
-           style="opacity:0.98999999;fill:#000000;fill-opacity:1"
-           id="path4348"
-           inkscape:connector-curvature="0"
-           d="m 221.53873,32.85876 c 2.61354,-0.122981 3.81785,-5.736082 1.16227,-5.663706 -2.93332,0.07995 -3.41743,5.769824 -1.16227,5.663706 z" />
-        <path
-           style="opacity:0.98999999;fill:#000000;fill-opacity:1"
-           id="path4340"
-           inkscape:connector-curvature="0"
-           d="m 230.75067,14.108964 0.88552,-2.213813 c 2.65658,0.442761 3.98486,-0.885522 3.5421,-3.5421016 l 2.21381,-0.442761 0,-0.442761 c -3.98486,-0.885529 -7.52696,2.6565726 -6.64143,6.6414366 z" />
-      </g>
-    </g>
-    <path
-       sodipodi:nodetypes="ccccccccccccc"
-       id="path2819"
-       d="M 44.534967,78.846533 C 46.93191,72.486437 49.865727,58.85879 46.907849,49.355008 44.812882,42.088752 41.147515,36.547395 35.721408,31.388907 33.109157,28.477816 27.712029,25.034782 24.195984,23.931279 19.260064,22.200533 17.03884,21.822886 10.29768,21.897381 c -7.635528,2.315823 -5.875104,5.258043 0,8.474576 -6.187216,2.59887 -7.198328,6.553673 1.016952,9.152542 -6.3848,3.765177 -4.896864,7.645983 2.033888,8.474576 -4.06516,4.570711 -6.204944,8.252783 1.355936,7.457628 3.62856,1.349562 5.006272,2.129633 8.474578,5.423729 2.895052,3.498831 5.345164,8.3042 5.42373,12.542372 l 0.338983,14.915255 15.59322,-9.491526 z"
-       style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1.75999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    <path
-       sodipodi:nodetypes="cc"
-       id="path2830"
-       d="m 13.559322,48.305085 c 8.361599,-0.900435 16.346724,4.154766 20.338983,14.40678"
-       style="fill:none;stroke:#000000;stroke-width:2.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
-    <path
-       sodipodi:nodetypes="cc"
-       id="path2832"
-       d="M 11.440678,39.40678 C 20.821441,39.159238 28.6278,41.815603 34.322034,50"
-       style="fill:none;stroke:#000000;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    <path
-       sodipodi:nodetypes="cc"
-       id="path2834"
-       d="m 10.169491,30.508475 c 7.92937,-0.624989 16.380331,1.911593 22.033899,8.050847"
-       style="fill:none;stroke:#000000;stroke-width:2.20000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-  </g>
-</svg>
diff --git a/svg/WhitePrincess.svg b/svg/WhitePrincess.svg
deleted file mode 100644 (file)
index 5f03fec..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1">
-    <g
-       transform="matrix(1.2568021,0,0,1.2568021,127.4848,230.75324)"
-       id="g799"
-       style="display:inline">
-      <path
-         d="m -28.079531,-94.874455 -4.264552,-25.678565 13.999806,24.343464"
-         inkscape:connector-curvature="0"
-         id="path704"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.5913403;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -19.140231,-95.88723 2.246154,-30.00621 9.5954992,27.886232 z"
-         inkscape:connector-curvature="0"
-         id="path706"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.5913403;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 12.490017,-94.82073 3.713129,-24.84222 -13.3990081,23.408891"
-         inkscape:connector-curvature="0"
-         id="path710"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.5913403;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 3.4881771,-95.734359 -2.37837,-29.892061 -8.8615575,28.106514 z"
-         inkscape:connector-curvature="0"
-         id="path712"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.5913403;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 8.6705152,-75.003615 c 0,2.494743 -7.3228728,4.517114 -16.3560942,4.517114 -9.033223,0 -16.356097,-2.022371 -16.356097,-4.517114 l 2.325288,-6.475256 -0.06428,-6.631027 -5.811396,-6.453037 4.358127,-3.075207 4.109397,1.001045 5.74678,-2.877825 5.7712718,1.347215 5.203493,-1.347215 5.2462981,2.877825 4.8612915,-1.001045 4.2955236,3.075207 -5.8100516,6.453037 0.060254,6.631027 z"
-         inkscape:connector-curvature="0"
-         id="path714"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.59134054;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -21.892448,-88.229599 c 2.801739,-1.37734 8.142276,-2.30791 14.2698066,-2.30791 6.1644171,0 11.5323386,0.94181 14.3201283,2.33283"
-         inkscape:connector-curvature="0"
-         id="path716"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.59134054;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -35.496787,129.14731 a 3.7762539,3.7762539 0 1 1 -7.552508,0 3.7762539,3.7762539 0 1 1 7.552508,0 z"
-         transform="matrix(0.94504751,0,0,0.94166667,3.6715495,-244.63895)"
-         id="path718"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.68689334;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -35.496787,129.14731 a 3.7762539,3.7762539 0 1 1 -7.552508,0 3.7762539,3.7762539 0 1 1 7.552508,0 z"
-         transform="matrix(0.94504751,0,0,0.94166667,54.80093,-244.56074)"
-         id="path720"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.68689334;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -35.496787,129.14731 a 3.7762539,3.7762539 0 1 1 -7.552508,0 3.7762539,3.7762539 0 1 1 7.552508,0 z"
-         transform="matrix(0.94504751,0,0,0.94166667,38.762768,-250.59195)"
-         id="path722"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.68689334;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -35.496787,129.14731 a 3.7762539,3.7762539 0 1 1 -7.552508,0 3.7762539,3.7762539 0 1 1 7.552508,0 z"
-         transform="matrix(0.94504751,0,0,0.94166667,19.780217,-250.61038)"
-         id="path726"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.68689334;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -23.978738,-75.003615 c 0,-2.494728 7.322874,-4.517115 16.3560966,-4.517115 9.0332214,0 16.3560942,2.022387 16.3560942,4.517115"
-         inkscape:connector-curvature="0"
-         id="path728"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.59134054;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -21.669514,-81.284079 c 2.856168,-1.31876 8.078159,-2.20172 14.0468726,-2.20172 6.0282874,0 11.2948691,0.90067 14.1316836,2.24134"
-         inkscape:connector-curvature="0"
-         id="path730"
-         style="color:#000000;fill:none;stroke:#000000;stroke-width:1.59134054;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhitePromoBishop.svg b/svg/WhitePromoBishop.svg
deleted file mode 100644 (file)
index ab93a93..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="WhiteBishop.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="487"
-     id="namedview14"
-     showgrid="false"
-     inkscape:zoom="2.36"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="25"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 50 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="100 : 50 : 1"
-       inkscape:persp3d-origin="50 : 33.333333 : 1"
-       id="perspective16" />
-  </defs>
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <path
-     d="m 55.192266,11.163944 a 5.1922815,5.1665922 0 0 1 -10.384563,0 5.1922815,5.1665922 0 1 1 10.384563,0 z"
-     id="path293"
-     style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-  <path
-     d="m 35.970027,57.593966 c -2.187845,-2.572277 -7.934014,-3.956125 -8.03705,-16.692787 -0.09202,-11.376145 14.967422,-23.269413 22.259497,-23.363498 7.29776,-0.09411 21.85339,12.00193 21.874874,23.363498 0.02609,13.791 -5.586093,14.681011 -7.680588,16.692787 z"
-     inkscape:connector-curvature="0"
-     id="path308"
-     style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-  <path
-     d="m 69.229975,69.589847 c 0,2.133412 -8.609865,3.862871 -19.230651,3.862871 -10.620805,0 -19.230675,-1.729459 -19.230675,-3.862871 0.06799,-1.434016 2.747191,-9.995935 6.676405,-11.313027 6.900236,-2.312959 18.407359,-2.583263 25.561118,0 3.840166,1.386714 6.291799,10.015582 6.223803,11.313027 z"
-     inkscape:connector-curvature="0"
-     id="path300"
-     style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-  <path
-     d="m 31.391915,68.632566 c 2.120178,-1.670363 9.65975,-2.90559 18.635579,-2.90559 8.899888,0 16.387721,1.214423 18.580588,2.863284"
-     inkscape:connector-curvature="0"
-     id="path306"
-     style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-  <path
-     d="M 9.2736066,84.219958 13.489016,89 c 2.073196,-1.364321 4.810436,-2.594882 7.478968,-2.594882 l 19.717294,0 c 3.267641,0 6.406491,-2.799742 9.042769,-4.165477 2.908216,1.229164 5.677226,4.165477 9.04275,4.165477 l 20.805133,0 c 2.255902,0 4.101743,1.177894 6.255133,2.594882 l 4.89533,-4.780042 c -2.222249,-1.685656 -6.15317,-4.317929 -9.518695,-4.317929 l -21.757004,0 C 57.150979,79.864738 55.8005,77.746132 53.082247,74.7964 l -6.300479,0 c -1.755773,1.545696 -4.81048,5.13672 -7.45631,5.105629 l -20.397194,0 c -3.535508,0 -7.052299,1.874259 -9.6546574,4.317929 z"
-     inkscape:connector-curvature="0"
-     id="path310"
-     style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-</svg>
diff --git a/svg/WhitePromoDragon.svg b/svg/WhitePromoDragon.svg
deleted file mode 100644 (file)
index f2e21ad..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="WhiteCrownedRook.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="487"
-     id="namedview14"
-     showgrid="false"
-     inkscape:zoom="2.36"
-     inkscape:cx="50"
-     inkscape:cy="49.614407"
-     inkscape:window-x="0"
-     inkscape:window-y="25"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 50 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="100 : 50 : 1"
-       inkscape:persp3d-origin="50 : 33.333333 : 1"
-       id="perspective16" />
-  </defs>
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g2837">
-    <path
-       style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1388"
-       inkscape:connector-curvature="0"
-       d="m 14.471992,82.594659 71.056004,0 0,6.405345 -71.056004,0 z" />
-    <path
-       style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1390"
-       inkscape:connector-curvature="0"
-       d="m 21.325261,73.610637 57.349453,0 0,8.977739 -57.349453,0 z" />
-    <path
-       style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linejoin:bevel;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1392"
-       inkscape:connector-curvature="0"
-       d="m 28.146837,67.225346 43.689703,0 6.932502,6.366507 -57.538095,0 z" />
-    <path
-       style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1394"
-       inkscape:connector-curvature="0"
-       d="m 28.155129,42.633261 43.689731,0 0,24.592098 -43.689745,0 z" />
-    <path
-       style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:bevel;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1396"
-       inkscape:connector-curvature="0"
-       d="m 19.929584,36.532611 60.140821,0 -8.412112,6.399601 -43.349862,0 z" />
-    <path
-       sodipodi:nodetypes="ccccccccc"
-       style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1398"
-       inkscape:connector-curvature="0"
-       d="m 19.924707,23.705264 0,12.822282 60.150575,0 0,-12.822282 -12.294795,0 -12.294794,0 -11.014087,0 -12.252105,0 -12.294794,0 z" />
-    <path
-       sodipodi:nodetypes="cccccccc"
-       style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1454"
-       inkscape:connector-curvature="0"
-       d="m 26.531069,23.858503 23.673572,-12.920244 23.673586,12.920244 -6.09774,-0.153239 -12.294794,0 -11.014087,0 -12.252105,0 -5.688432,0.153239 z" />
-  </g>
-</svg>
diff --git a/svg/WhitePromoHSword.svg b/svg/WhitePromoHSword.svg
deleted file mode 100644 (file)
index 5ff2149..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="100"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="WhitePromoHSword.svg">
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2824"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2838"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="5.6"
-     inkscape:cx="53.102954"
-     inkscape:cy="41.158463"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="792"
-     inkscape:window-height="583"
-     inkscape:window-x="62"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(366.71429,-981.93367)">
-    <g
-       id="g3593">
-      <path
-         sodipodi:nodetypes="cccccc"
-         id="path3687"
-         d="m -270.42482,1039.19 -10.32341,-10.4581 -54.35055,-0.2008 0,21.3174 53.89325,0 10.78071,-10.6585 z"
-         style="fill:#ffffcc;stroke:#000000;stroke-width:2.12071394999999985;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
-      <rect
-         transform="matrix(0,1,-1,0,0,0)"
-         y="335.26187"
-         x="1016.9034"
-         height="7.3214288"
-         width="44.572716"
-         id="rect3689"
-         style="fill:#ffffcc;stroke:#000000;stroke-width:2.12071394999999985;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
-      <rect
-         transform="matrix(0,1,-1,0,0,0)"
-         y="342.71426"
-         x="1033.5143"
-         height="19.202518"
-         width="10.146134"
-         id="rect3693"
-         style="fill:#ffffcc;stroke:#000000;stroke-width:2.12071394999999985;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhitePromoHorse.svg b/svg/WhitePromoHorse.svg
deleted file mode 100644 (file)
index d678fe9..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="WhiteCrownedBishop.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="487"
-     id="namedview13"
-     showgrid="false"
-     inkscape:zoom="2.36"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="25"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 50 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="100 : 50 : 1"
-       inkscape:persp3d-origin="50 : 33.333333 : 1"
-       id="perspective15" />
-  </defs>
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <path
-     d="m 36.534832,58.968047 c -3.243443,-3.154945 -10.214715,-10.374074 -13.03495,-12.09609 -2.820236,-1.722015 -9.813947,-3.834791 -9.997463,-7.098474 1.572767,-7.2769 19.644618,-8.907618 31.169347,-21.564265 l 10.065462,-0.02979 c 12.744832,12.505359 30.015019,14.896149 31.391548,21.594106 -0.557894,3.635787 -4.567159,4.603962 -8.190134,7.098425 -3.622976,2.494463 -10.263803,8.270149 -14.131036,12.09614 z"
-     inkscape:connector-curvature="0"
-     id="path884"
-     style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-  <path
-     d="m 68.455849,70.439082 c 0,2.040073 -8.263263,3.693867 -18.456498,3.693867 -10.193248,0 -18.456512,-1.653794 -18.456512,-3.693867 0.06525,-1.371275 2.6366,-9.558591 6.407631,-10.81805 6.622461,-2.211769 17.666352,-2.470245 24.532126,0 3.685576,1.326042 6.038513,9.577372 5.973253,10.81805 z"
-     inkscape:connector-curvature="0"
-     id="path886"
-     style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-  <path
-     d="m 32.141016,69.523687 c 2.034814,-1.597278 9.270883,-2.77846 17.885376,-2.77846 8.541618,0 15.728019,1.161284 17.832608,2.738006"
-     inkscape:connector-curvature="0"
-     id="path888"
-     style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-  <path
-     d="m 10.913106,84.429095 4.045713,4.570906 c 1.989736,-1.304629 4.616785,-2.481355 7.177892,-2.481355 l 18.923549,0 c 3.136099,0 6.148589,-2.677244 8.678735,-3.983226 2.791146,1.175385 5.448685,3.983226 8.678723,3.983226 l 19.9676,0 c 2.165085,0 3.936616,1.126367 6.003322,2.481355 l 4.698258,-4.570906 c -2.132784,-1.6119 -5.905464,-4.129005 -9.135502,-4.129005 l -20.881146,0 c -2.207135,-0.03562 -3.503256,-2.061572 -6.112083,-4.882248 l -6.046837,0 c -1.685097,1.478063 -4.616835,4.911978 -7.156147,4.882248 l -19.576081,0 c -3.393181,0 -6.768399,1.792249 -9.265996,4.129005 z"
-     inkscape:connector-curvature="0"
-     id="path894"
-     style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-</svg>
diff --git a/svg/WhitePromoRook.svg b/svg/WhitePromoRook.svg
deleted file mode 100644 (file)
index e75c0b3..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="WhiteRook.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="487"
-     id="namedview13"
-     showgrid="false"
-     inkscape:zoom="2.36"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="25"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 50 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="100 : 50 : 1"
-       inkscape:persp3d-origin="50 : 33.333333 : 1"
-       id="perspective15" />
-  </defs>
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g2834">
-    <path
-       style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="rect204"
-       inkscape:connector-curvature="0"
-       d="m 14.354056,82.157062 71.291888,0 0,6.842936 -71.291888,0 z" />
-    <path
-       style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="rect206"
-       inkscape:connector-curvature="0"
-       d="m 21.230076,72.559283 57.539835,0 0,9.591067 -57.539835,0 z" />
-    <path
-       style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linejoin:bevel;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="rect208"
-       inkscape:connector-curvature="0"
-       d="m 28.074297,65.737771 43.83474,0 6.955516,6.801444 -57.729105,0 z" />
-    <path
-       style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="rect210"
-       inkscape:connector-curvature="0"
-       d="m 28.082617,31.497226 43.834767,0 0,34.240572 -43.834781,0 z" />
-    <path
-       style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:bevel;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="rect212"
-       inkscape:connector-curvature="0"
-       d="m 19.829765,24.626866 60.340471,0 -8.440038,6.8368 -43.49377,0 z" />
-    <path
-       sodipodi:nodetypes="ccccccccc"
-       style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="rect214"
-       inkscape:connector-curvature="0"
-       d="m 19.824872,10.923199 0,13.698256 60.350257,0 0,-13.698256 -12.33561,0 -12.335609,0 -11.050651,0 -12.292778,0 -12.335609,0 z" />
-  </g>
-</svg>
diff --git a/svg/WhitePromoSword.svg b/svg/WhitePromoSword.svg
deleted file mode 100644 (file)
index f91d252..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="100"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="WhitePromoSword.svg">
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2824"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2838"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="5.6"
-     inkscape:cx="35.248447"
-     inkscape:cy="221.30085"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="792"
-     inkscape:window-height="583"
-     inkscape:window-x="62"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(366.71429,-981.93367)">
-    <g
-       id="g3593">
-      <path
-         sodipodi:nodetypes="cccccc"
-         id="path3687"
-         d="m -316.26765,986.20384 -10.45897,10.32341 -0.20079,54.35055 21.31911,0 0,-53.89325 -10.65935,-10.78071 z"
-         style="fill:#ffffcc;stroke:#000000;stroke-width:2.12079834999999983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
-      <rect
-         y="1051.0409"
-         x="-338.556"
-         height="7.3214288"
-         width="44.576263"
-         id="rect3689"
-         style="fill:#ffffcc;stroke:#000000;stroke-width:2.12079834999999983;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
-      <rect
-         y="1058.4933"
-         x="-321.94376"
-         height="19.202518"
-         width="10.146942"
-         id="rect3693"
-         style="fill:#ffffcc;stroke:#000000;stroke-width:2.12079834999999983;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteQueen.svg b/svg/WhiteQueen.svg
deleted file mode 100644 (file)
index da729e1..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1">
-    <g
-       transform="matrix(1.2570048,0,0,1.2676814,127.4672,-87.83522)"
-       id="g279"
-       style="display:inline">
-      <path
-         d="m -33.978482,157.11309 -4.027574,-24.85525 13.351074,23.40889"
-         inkscape:connector-curvature="0"
-         id="path252"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.58436942;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -25.100018,155.39971 1.513121,-29.10534 9.968802,27.4142 z"
-         inkscape:connector-curvature="0"
-         id="path254"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.58436942;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -14.152139,153.61956 6.141494,-29.46137 6.3195081,29.46137 z"
-         inkscape:connector-curvature="0"
-         id="path256"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.58436942;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="M 18.112956,157.06859 22.251789,132.25784 8.900715,155.66673"
-         inkscape:connector-curvature="0"
-         id="path265"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.58436942;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="M 9.345751,155.39971 8.0106442,126.29437 -2.136172,153.70857 z"
-         inkscape:connector-curvature="0"
-         id="path267"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.58436942;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 4.628372,179.16461 c 0,1.57304 -3.3075384,2.84823 -7.3875938,2.84823 -4.0800554,0 -7.3875942,-1.27519 -7.3875942,-2.84823 l 1.0502676,-4.08292 -0.1143148,-4.18114 -1.8004588,-4.06891 1.3146209,-2.21684 1.5718285,1.20663 1.6575645,-2.46939 1.6575646,1.20664 2.0576664,-1.76787 2.11482373,1.76787 1.54324978,-1.20664 1.91477289,2.46939 1.2860414,-1.20663 1.3431989,2.21684 -1.6861432,4.06891 -0.2286296,4.18114 z"
-         inkscape:connector-curvature="0"
-         transform="matrix(3.1144579,0,0,1.5859375,0.73859859,-107.2267)"
-         id="path231"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.71288949;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -27.928421,163.69119 c 3.941246,-1.37734 11.453857,-2.30791 20.0735395,-2.30791 8.67157296,0 16.2227042,0.94181 20.1443275,2.33283"
-         inkscape:connector-curvature="0"
-         id="path236"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.58436966;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -35.496787,129.14731 a 3.7762539,3.7762539 0 1 1 -7.552508,0 3.7762539,3.7762539 0 1 1 7.552508,0 z"
-         transform="matrix(0.94166667,0,0,0.94166667,-2.3853337,7.2818425)"
-         id="path238"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.68251622;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -35.496787,129.14731 a 3.7762539,3.7762539 0 1 1 -7.552508,0 3.7762539,3.7762539 0 1 1 7.552508,0 z"
-         transform="matrix(0.94166667,0,0,0.94166667,60.622804,7.3600513)"
-         id="path242"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.68251622;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -35.496787,129.14731 a 3.7762539,3.7762539 0 1 1 -7.552508,0 3.7762539,3.7762539 0 1 1 7.552508,0 z"
-         transform="matrix(0.94166667,0,0,0.94166667,45.617594,1.3288436)"
-         id="path244"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.68251622;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -35.496787,129.14731 a 3.7762539,3.7762539 0 1 1 -7.552508,0 3.7762539,3.7762539 0 1 1 7.552508,0 z"
-         transform="matrix(0.80024532,0,0,0.94166667,23.506429,-0.70675532)"
-         id="path246"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.82514048;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -35.496787,129.14731 a 3.7762539,3.7762539 0 1 1 -7.552508,0 3.7762539,3.7762539 0 1 1 7.552508,0 z"
-         transform="matrix(0.94166667,0,0,0.94166667,12.601442,1.3104095)"
-         id="path248"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.68251622;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -10.146816,179.16461 c 0,-1.57303 3.3075388,-2.84823 7.3875942,-2.84823 4.0800554,0 7.3875938,1.2752 7.3875938,2.84823"
-         inkscape:connector-curvature="0"
-         transform="matrix(3.1144579,0,0,1.5859375,0.73859859,-107.2267)"
-         id="path250"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.71288949;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -27.614815,170.63671 c 4.017812,-1.31876 11.363659,-2.20172 19.7599335,-2.20172 8.48007745,0 15.8886525,0.90067 19.8792395,2.24134"
-         inkscape:connector-curvature="0"
-         id="path277"
-         style="color:#000000;fill:none;stroke:#000000;stroke-width:1.58436966;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteRShield.svg b/svg/WhiteRShield.svg
deleted file mode 100644 (file)
index 1dbf7d0..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="100"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="WhiteLShield.svg">
-  <defs
-     id="defs4">
-    <marker
-       inkscape:stockid="Arrow2Lstart"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="Arrow2Lstart"
-       style="overflow:visible">
-      <path
-         id="path3648"
-         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
-         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
-         transform="scale(1.1) translate(1,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="Arrow2Lend"
-       style="overflow:visible;">
-      <path
-         id="path3651"
-         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
-         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
-         transform="scale(1.1) rotate(180) translate(1,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="Arrow1Lend"
-       style="overflow:visible;">
-      <path
-         id="path3633"
-         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
-         transform="scale(0.8) rotate(180) translate(12.5,0)" />
-    </marker>
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2824"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2838"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="2"
-     inkscape:cx="52.657835"
-     inkscape:cy="23.437927"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="792"
-     inkscape:window-height="583"
-     inkscape:window-x="62"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(366.71429,-981.93367)">
-    <g
-       id="g3621"
-       transform="matrix(-1,0,0,1,-628.95924,0)">
-      <path
-         transform="matrix(-0.82853394,0,0,0.86611144,-274.22532,989.39587)"
-         d="M 74.5,52 C 74.5,76.024387 62.635546,95.5 48,95.5 33.364454,95.5 21.5,76.024387 21.5,52 21.5,27.975613 33.364454,8.5 48,8.5 62.635546,8.5 74.5,27.975613 74.5,52 z"
-         sodipodi:ry="43.5"
-         sodipodi:rx="26.5"
-         sodipodi:cy="52"
-         sodipodi:cx="48"
-         id="path2843"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         sodipodi:type="arc" />
-      <path
-         transform="matrix(-0.90196078,0,0,0.92814371,-266.41652,977.03247)"
-         d="m 59,78 -1.6665,6.376488 4.308035,4.987752 -6.579378,0.385507 -3.412378,5.638485 L 49.25,89.25 42.833,87.747023 47.929233,83.56788 47.375686,77.000505 52.92511,80.555885 59,78 z"
-         inkscape:randomized="0"
-         inkscape:rounded="0"
-         inkscape:flatsided="false"
-         sodipodi:arg2="-0.2283871"
-         sodipodi:arg1="-0.85670563"
-         sodipodi:r2="4.962358"
-         sodipodi:r1="9.9247169"
-         sodipodi:cy="85.5"
-         sodipodi:cx="52.5"
-         sodipodi:sides="5"
-         id="path3621"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         sodipodi:type="star" />
-      <path
-         sodipodi:type="star"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         id="path3623"
-         sodipodi:sides="5"
-         sodipodi:cx="52.5"
-         sodipodi:cy="85.5"
-         sodipodi:r1="9.9247169"
-         sodipodi:r2="4.962358"
-         sodipodi:arg1="-0.85670563"
-         sodipodi:arg2="-0.2283871"
-         inkscape:flatsided="false"
-         inkscape:rounded="0"
-         inkscape:randomized="0"
-         d="m 59,78 -1.6665,6.376488 4.308035,4.987752 -6.579378,0.385507 -3.412378,5.638485 L 49.25,89.25 42.833,87.747023 47.929233,83.56788 47.375686,77.000505 52.92511,80.555885 59,78 z"
-         transform="matrix(0.90196078,0,0,-0.92814371,-360.74649,1091.1238)" />
-      <path
-         id="path3625"
-         d="m -280.30613,1074.8834 -68.34698,-84.36431"
-         style="fill:none;stroke:#000000;stroke-width:1.60083961;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow2Lstart);marker-end:url(#Arrow2Lend)" />
-      <path
-         id="path4460"
-         d="m -286.24495,1067.9337 -55.5,-69.00003 56.5,69.50003"
-         style="fill:none;stroke:#000000;stroke-width:3.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteRight.svg b/svg/WhiteRight.svg
deleted file mode 100644 (file)
index a0e9e25..0000000
+++ /dev/null
@@ -1,186 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="WhiteLWheel.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="783"
-     inkscape:window-height="583"
-     id="namedview13"
-     showgrid="false"
-     inkscape:zoom="2.36"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 50 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="100 : 50 : 1"
-       inkscape:persp3d-origin="50 : 33.333333 : 1"
-       id="perspective15" />
-  </defs>
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3914"
-     transform="matrix(-1,0,0,1,99.576274,0)">
-    <path
-       transform="matrix(-1,0,0,1,100,0)"
-       d="m 89.830509,52.966103 c 0,21.997782 -17.832726,39.830509 -39.830509,39.830509 -21.997783,0 -39.830509,-17.832727 -39.830509,-39.830509 0,-21.997783 17.832726,-39.83051 39.830509,-39.83051 21.997783,0 39.830509,17.832727 39.830509,39.83051 z"
-       sodipodi:ry="39.830509"
-       sodipodi:rx="39.830509"
-       sodipodi:cy="52.966103"
-       sodipodi:cx="50"
-       id="path2996"
-       style="fill:#ffffcc;fill-opacity:1"
-       sodipodi:type="arc" />
-    <g
-       id="g3900">
-      <path
-         sodipodi:type="arc"
-         style="fill:#000000;fill-opacity:1"
-         id="path3000"
-         sodipodi:cx="51.271187"
-         sodipodi:cy="54.661018"
-         sodipodi:rx="28.38983"
-         sodipodi:ry="28.38983"
-         d="m 79.661016,54.661018 c 0,15.67927 -12.710559,28.38983 -28.389829,28.38983 -15.67927,0 -28.38983,-12.71056 -28.38983,-28.38983 0,-15.67927 12.71056,-28.389829 28.38983,-28.389829 15.67927,0 28.389829,12.710559 28.389829,28.389829 z"
-         transform="matrix(-1,0,0,1,100.84746,-1.6949153)" />
-      <path
-         sodipodi:type="arc"
-         style="fill:#ffffcc;fill-opacity:0.94117647"
-         id="path3782"
-         sodipodi:cx="49.576271"
-         sodipodi:cy="53.81356"
-         sodipodi:rx="25.423729"
-         sodipodi:ry="25.423729"
-         d="m 75,53.81356 c 0,14.041138 -11.382591,25.423729 -25.423729,25.423729 -14.041138,0 -25.423729,-11.382591 -25.423729,-25.423729 0,-14.041137 11.382591,-25.423728 25.423729,-25.423728 C 63.617409,28.389832 75,39.772423 75,53.81356 z"
-         transform="matrix(-1,0,0,1,99.152542,-0.84745763)" />
-      <path
-         sodipodi:type="arc"
-         style="fill:#ffffcc;fill-opacity:1"
-         id="path3784"
-         sodipodi:cx="51.271187"
-         sodipodi:cy="54.237289"
-         sodipodi:rx="6.7796612"
-         sodipodi:ry="6.7796612"
-         d="m 58.050848,54.237289 c 0,3.744304 -3.035358,6.779662 -6.779661,6.779662 -3.744304,0 -6.779661,-3.035358 -6.779661,-6.779662 0,-3.744303 3.035357,-6.779661 6.779661,-6.779661 3.744303,0 6.779661,3.035358 6.779661,6.779661 z"
-         transform="matrix(-1,0,0,1,101.27119,-1.2711864)" />
-      <path
-         style="fill:none;stroke:#ffffcc;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         d="M 49.576271,52.542373 C 57.068828,42.654339 57.196706,33.899333 50,26.271186"
-         id="path3804"
-         sodipodi:nodetypes="cc" />
-      <use
-         x="0"
-         y="0"
-         xlink:href="#path3804"
-         id="use3808"
-         transform="matrix(-1,0,0,1,101.06126,26.694916)"
-         width="100"
-         height="100" />
-      <use
-         x="0"
-         y="0"
-         xlink:href="#use3808"
-         id="use3810"
-         transform="matrix(0,-1,1,0,-2.64734,103.7086)"
-         width="100"
-         height="100" />
-      <use
-         x="0"
-         y="0"
-         xlink:href="#use3810"
-         id="use3812"
-         transform="matrix(1,0,0,-1,-27.118644,105.93221)"
-         width="100"
-         height="100"
-         style="fill:#000000;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <use
-         x="0"
-         y="0"
-         xlink:href="#use3812"
-         id="use3814"
-         transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,51.258092,-20.122385)"
-         width="100"
-         height="100" />
-      <use
-         x="0"
-         y="0"
-         xlink:href="#use3814"
-         id="use3816"
-         transform="matrix(1,0,0,-1,20.338983,86.37377)"
-         width="100"
-         height="100" />
-      <use
-         x="0"
-         y="0"
-         xlink:href="#use3816"
-         id="use3818"
-         transform="matrix(-1,0,0,1,119.34852,18.220339)"
-         width="100"
-         height="100"
-         style="fill:#000000" />
-      <use
-         x="0"
-         y="0"
-         xlink:href="#use3818"
-         id="use3820"
-         transform="matrix(1,0,0,-1,-19.067796,124.50936)"
-         width="100"
-         height="100"
-         style="fill:#000000" />
-      <path
-         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.84745765;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         d="m 49.408565,77.911284 c -3.818473,-5.243047 -5.436213,-11.906062 -4.095989,-16.870226 0.610481,-2.261211 0.601939,-2.333595 -0.435994,-3.694395 l -1.058675,-1.387995 -2.024779,1.026033 c -3.924025,1.988454 -6.930877,6.434761 -8.340517,12.333329 -0.795232,3.327606 -1.009628,3.693707 -1.951447,3.332301 -0.507941,-0.194916 -0.620638,-0.642928 -0.456495,-1.814742 0.332482,-2.373568 1.792481,-6.664732 3.023356,-8.886113 1.42486,-2.571468 4.940556,-6.018087 7.159242,-7.018575 1.39057,-0.627059 1.783587,-1.052867 1.953441,-2.116422 0.257515,-1.612448 -0.341758,-2.169178 -3.271439,-3.0392 -4.775746,-1.418244 -9.620957,-0.51803 -13.826075,2.56881 -1.96981,1.445974 -2.222994,1.528217 -2.831451,0.919761 -0.608457,-0.608458 -0.542257,-0.774785 0.740332,-1.860097 5.106323,-4.32091 11.643708,-5.4535 17.903771,-3.101794 l 2.446694,0.919144 0.786718,-0.971556 c 0.707741,-0.874022 0.729428,-1.133936 0.216035,-2.589048 C 44.303287,42.70714 41.831326,39.5114 39.2614,37.795269 37.05634,36.322786 34.916511,35.6184 30.974576,35.067422 c -1.150128,-0.160758 -1.443842,-2.016575 -0.319157,-2.016575 2.030763,0 6.005395,1.031942 8.155979,2.117553 3.249265,1.640224 5.630525,4.160916 7.551005,7.993143 l 1.622068,3.236762 2.088273,-0.03332 2.088273,-0.03332 0.940372,-2.297184 c 1.907329,-4.65931 1.057136,-10.44155 -2.211191,-15.038523 -1.302052,-1.831365 -1.399305,-2.143016 -0.842497,-2.699824 0.556808,-0.556809 0.778839,-0.460069 1.923443,0.838049 4.011268,4.549259 5.226395,11.024757 3.200464,17.055504 l -1.10853,3.299847 1.061681,1.144975 c 0.583925,0.629737 1.061682,1.293145 1.061682,1.474241 0,0.647334 4.055991,-1.749568 5.669535,-3.350432 1.998607,-1.982899 4.15416,-6.312987 5.134914,-10.315043 0.476631,-1.944927 0.935546,-2.96869 1.330763,-2.96869 1.021258,0 1.139809,1.199641 0.41058,4.154689 -1.586169,6.427599 -5.062902,11.361854 -9.630231,13.667435 -2.156558,1.088626 -2.412738,1.362363 -2.574895,2.751355 -0.155403,1.331137 -0.03143,1.608781 0.904885,2.026606 0.596726,0.266284 2.896398,0.486174 5.110381,0.488644 4.360623,0.0049 6.503322,-0.703023 11.151284,-3.684079 1.871521,-1.200336 2.097474,-1.252742 2.719479,-0.630738 0.622004,0.622004 0.593241,0.749206 -0.346195,1.530948 -1.760136,1.464675 -6.501966,3.795175 -9.097577,4.471245 -3.29398,0.857973 -6.347293,0.817735 -9.371492,-0.123502 -2.404478,-0.748357 -2.50206,-0.747934 -3.304964,0.01434 -0.81957,0.7781 -0.81755,0.803569 0.215303,2.714376 1.500753,2.776434 3.59055,5.089159 5.733298,6.344893 2.011524,1.178832 5.612796,2.277595 7.491542,2.285705 0.95911,0.0042 1.165254,0.192432 1.165254,1.064351 0,1.283488 -0.552407,1.329318 -4.687209,0.388878 -5.016661,-1.141017 -9.162036,-4.465834 -11.456668,-9.188878 -0.953764,-1.963135 -1.0153,-2.005084 -2.941283,-2.005084 -1.916512,0 -1.97977,0.04216 -2.457938,1.638144 -1.1875,3.963521 -0.119209,9.144987 2.926693,14.195161 1.562167,2.59011 1.683485,2.976127 1.114236,3.545377 -0.569248,0.56925 -0.785654,0.437161 -1.987571,-1.213161 l 0,0 z"
-         id="path3894" />
-    </g>
-    <path
-       transform="matrix(1.0498008,0,0,1.0498008,-6.7053818,-2.8707203)"
-       d="m 91.101696,53.389832 c 0,20.593668 -16.694467,37.288135 -37.288136,37.288135 -20.593668,0 -37.288135,-16.694467 -37.288135,-37.288135 0,-20.593669 16.694467,-37.288136 37.288135,-37.288136 20.593669,0 37.288136,16.694467 37.288136,37.288136 z"
-       sodipodi:ry="37.288136"
-       sodipodi:rx="37.288136"
-       sodipodi:cy="53.389832"
-       sodipodi:cx="53.81356"
-       id="path3898"
-       style="fill:#000000;fill-opacity:0;stroke:#000000;stroke-width:2.00037956;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-       sodipodi:type="arc" />
-  </g>
-</svg>
diff --git a/svg/WhiteRook.svg b/svg/WhiteRook.svg
deleted file mode 100644 (file)
index 0696063..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833">
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1">
-    <g
-       transform="matrix(1.3706233,0,0,1.3698256,-222.48159,-102.21654)"
-       id="g1002"
-       style="fill:#ffffcc;fill-opacity:1;display:inline">
-      <path
-         d="m 222.10227,173.40839 52.01421,0 0,4.99548 -52.01421,0 z"
-         inkscape:connector-curvature="0"
-         id="rect204"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1.45961499;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 227.11898,166.40182 41.98078,0 0,7.00167 -41.98078,0 z"
-         inkscape:connector-curvature="0"
-         id="rect206"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1.45961499;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 232.11249,161.42198 31.98161,0 5.07471,4.96519 -42.11887,0 z"
-         inkscape:connector-curvature="0"
-         id="rect208"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1.45961499;stroke-linejoin:bevel;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 232.11856,136.4257 31.98163,0 0,24.9963 -31.98164,0 z"
-         inkscape:connector-curvature="0"
-         id="rect210"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1.45961499;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 226.09732,131.4102 44.02411,0 -6.15781,4.991 -31.73284,0 z"
-         inkscape:connector-curvature="0"
-         id="rect212"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1.45961499;stroke-linecap:square;stroke-linejoin:bevel;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 226.09375,121.40625 0,10 44.03125,0 0,-10 -9,0 0,4.96875 -9,0 0,-4.96875 -8.0625,0 0,4.96875 -8.96875,0 0,-4.96875 -9,0 z"
-         inkscape:connector-curvature="0"
-         id="rect214"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1.45961499;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteSword.svg b/svg/WhiteSword.svg
deleted file mode 100644 (file)
index bbb707f..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="100"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="WhiteSword.svg">
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2824"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2838"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="5.6"
-     inkscape:cx="35.248447"
-     inkscape:cy="148.73641"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="792"
-     inkscape:window-height="583"
-     inkscape:window-x="62"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(366.71429,-981.93367)">
-    <g
-       id="g3595">
-      <path
-         sodipodi:nodetypes="cccccc"
-         id="path3687"
-         d="m -316.26765,986.20384 -10.45897,10.32341 -0.20079,54.35055 21.31911,0 0,-53.89325 -10.65935,-10.78071 z"
-         style="fill:#ffffcc;stroke:#000000;stroke-width:2.12079834999999983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
-      <rect
-         y="1051.0409"
-         x="-338.556"
-         height="7.3214288"
-         width="44.576263"
-         id="rect3689"
-         style="fill:#ffffcc;stroke:#000000;stroke-width:2.12079834999999983;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
-      <rect
-         y="1058.4933"
-         x="-321.94376"
-         height="19.202518"
-         width="10.146942"
-         id="rect3693"
-         style="fill:#ffffcc;stroke:#000000;stroke-width:2.12079834999999983;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
-      <path
-         id="path3701"
-         d="m -316.26786,998.13446 0,52.24134"
-         style="fill:none;stroke:#000000;stroke-width:2.12079835;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteTower.svg b/svg/WhiteTower.svg
deleted file mode 100644 (file)
index 07c8095..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="100"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="WhiteTower.svg">
-  <defs
-     id="defs4">
-    <marker
-       inkscape:stockid="Arrow2Lstart"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="Arrow2Lstart"
-       style="overflow:visible">
-      <path
-         id="path3648"
-         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
-         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
-         transform="scale(1.1) translate(1,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow2Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="Arrow2Lend"
-       style="overflow:visible;">
-      <path
-         id="path3651"
-         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
-         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
-         transform="scale(1.1) rotate(180) translate(1,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Lend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="Arrow1Lend"
-       style="overflow:visible;">
-      <path
-         id="path3633"
-         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
-         transform="scale(0.8) rotate(180) translate(12.5,0)" />
-    </marker>
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2824"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2838"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="2"
-     inkscape:cx="52.657835"
-     inkscape:cy="53.731013"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="792"
-     inkscape:window-height="583"
-     inkscape:window-x="62"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(366.71429,-981.93367)">
-    <g
-       id="g4661"
-       transform="translate(-0.5,5)"
-       style="fill:#ffffcc;fill-opacity:1">
-      <path
-         sodipodi:nodetypes="ccccccccccccc"
-         id="path4655"
-         d="m -343.18303,1068.4024 0,-81.93747 12.98599,0 0,10.17155 9.48976,0 0,-10.17155 13.98491,0 0,10.73664 9.48975,0 0,-10.73664 11.98707,0 0,81.93747 -57.93748,0 z"
-         style="fill:#ffffcc;stroke:#000000;stroke-width:2.20000004999999987;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
-      <path
-         sodipodi:nodetypes="cccc"
-         id="path4657"
-         d="m -326.21429,1067.4337 0,-25 c -0.15767,-20.4251 25.70922,-20.4787 25,0 l 0,25.5"
-         style="fill:#ffffcc;stroke:#000000;stroke-width:2.20000004999999987;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
-      <path
-         sodipodi:nodetypes="cc"
-         transform="translate(-366.71429,981.93367)"
-         id="path4659"
-         d="m 53,46.5 0,40"
-         style="fill:#ffffcc;stroke:#000000;stroke-width:2.20000004999999987;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteUnicorn.svg b/svg/WhiteUnicorn.svg
deleted file mode 100644 (file)
index 0327395..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="WhiteUnicorn.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="504"
-     id="namedview15"
-     showgrid="false"
-     inkscape:zoom="2.36"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 50 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="100 : 50 : 1"
-       inkscape:persp3d-origin="50 : 33.333333 : 1"
-       id="perspective17" />
-  </defs>
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="matrix(-1,0,0,1,167.58289,-53.165653)"
-     id="layer1">
-    <g
-       transform="matrix(1.2825234,0,0,1.3229667,-854.50326,-95.709669)"
-       id="g1487"
-       style="display:inline">
-      <path
-         d="m 740.31116,133.59459 -14.84739,-16.90543 18.52248,13.67135 z"
-         inkscape:connector-curvature="0"
-         id="path696"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.7677024;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 741.45671,163.05791 c 0,0 4.46974,4.15789 6.23684,4.05395 -1.35131,-2.28685 -1.66316,-3.32631 -1.55921,-4.26184 0.93553,0.41579 2.70263,-0.93553 2.70263,-0.93553 -0.93553,-0.31184 -4.26184,-2.39079 -4.78158,-3.74211 z"
-         inkscape:connector-curvature="0"
-         id="path1467"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.7677024;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <g
-         transform="matrix(0.70579883,0,0,0.71651255,676.43177,74.907775)"
-         id="layer1-8">
-        <g
-           transform="matrix(1.4218328,0,0,1.400341,-234.37061,71.605496)"
-           id="g4602"
-           style="display:inline">
-          <path
-             d="m 238.21185,-1.7155471 2.55401,0.0595 c -0.11306,-2.7134211 4.44555,-7.1531665 4.44555,-7.1531665 0,0 2.6311,2.9526263 3.05622,7.1168654 5.9381,-0.2374968 11.03878,2.8990232 13.00056,4.1073952 12.42868,7.655546 17.29364,32.448756 17.26817,51.469126 l -44.90277,-0.141002 c -0.20729,-13.073379 15.56269,-17.974522 15.10098,-30.390825 -3.98486,3.099334 -8.42701,3.94292 -11.94512,6.90514 -2.79351,2.352109 -4.23289,5.107136 -7.01819,8.412488 -1.02679,1.218501 -3.76823,0.678355 -4.65375,-1.092696 -4.42762,1.32829 -8.68213,0.01778 -8.58207,-6.302259 0.0886,-5.594944 5.71512,-10.651222 7.64949,-15.901883 0.8339,-2.263527 0.71728,-5.7619951 2.03476,-8.280479 1.02298,-1.9555369 3.32544,-4.2204556 4.38056,-4.9644989 0.81951,-2.78858391 0.63978,-7.5122594 -0.71693,-9.3212068 1.97854,-0.5652961 6.51958,2.1987846 8.32853,5.4775016 z"
-             inkscape:connector-curvature="0"
-             id="path4350-3"
-             style="opacity:0.98999999;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.56884539px;stroke-opacity:1" />
-          <path
-             d="m 242.81689,-0.58069936 c -0.072,0.79486254 -0.32711,1.42135025 -0.73002,2.28035536 -2.11721,4.5138671 -1.19455,-0.1716813 -1.14905,-1.19710158 -1.50976,0.47874748 -4.00517,2.26532638 -5.07373,3.22990388 0.2262,-0.822523 1.59457,-2.91401608 1.19879,-4.37258378 -0.53461,-1.97018662 -2.39735,-3.30685752 -4.38274,-4.27768712 0.61573,2.305974 0.97448,5.12831401 -0.52388,8.1053126 -0.963,1.1263746 -1.94758,1.992982 -2.75,3.125 -0.68313,0.9637262 -1.34296,1.9556425 -1.73503,3.090079 -0.83217,1.95126 -0.86757,4.102469 -1.47299,6.117007 -1.0152,3.389738 -2.8013,6.466007 -4.8023,9.361167 -1.33288,2.142142 -2.90703,4.397401 -2.85563,7.031336 0.074,1.299767 0.66114,2.59601 1.56989,3.430555 1.07494,0.869977 2.59231,0.82959 3.80468,0.430633 1.76617,-0.581196 3.02202,-3.3374 4.47311,-5.629934 0.0475,0.474451 -0.10089,1.848603 -0.28033,3.228551 -0.22412,1.723516 -0.4967,3.456074 -0.4967,3.456074 3.78439,-2.467212 6.29028,-7.057025 10.07655,-9.827968 2.63561,-1.928841 6.46629,-2.181126 8.64217,-4.616774 2.70726,-3.030455 3.36645,-3.372936 4.50035,-11.329732 1.23577,7.754431 0.26208,17.297222 -3.06808,22.364697 -0.94356,1.435812 -2.64098,3.136326 -3.94944,4.706809 -2.35937,2.831831 -5.02065,5.234162 -6.63424,8.423218 -0.82438,1.629293 -1.38054,3.845243 -1.45951,5.27993 13.88505,0.05216 27.62654,-0.03393 39.71316,0 0.13389,-5.249005 -0.48174,-10.005913 -1.26011,-14.943931 -0.75657,-4.799697 -1.81449,-9.572366 -3.30276,-14.197788 -1.25479,-3.899783 -2.30537,-8.037609 -4.71838,-11.348224 -3.01163,-4.1319023 -7.09257,-7.6856654 -11.68081,-9.9418973 -1.89015,-0.92946742 -3.84424,-1.22768185 -5.87614,-1.42411251 -0.67664,2.63979221 -1.13781,0.36144826 -1.51273,-0.14218972 -1.03671,-1.94459497 -1.88857,-2.71395277 -2.04236,-4.94441567 -1.31768,1.7707756 -2.11286,3.3322909 -2.22174,4.53371084 z"
-             inkscape:connector-curvature="0"
-             id="path4352-8"
-             style="opacity:0.98999999;fill:#ffffcc;fill-opacity:1;stroke:#fdfdca;stroke-width:0.56884539px;stroke-opacity:1" />
-          <path
-             d="m 221.53873,32.85876 c 2.61354,-0.122981 3.81785,-5.736082 1.16227,-5.663706 -2.93332,0.07995 -3.41743,5.769824 -1.16227,5.663706 z"
-             inkscape:connector-curvature="0"
-             id="path4348-3"
-             style="opacity:0.98999999;fill:#000000;fill-opacity:1" />
-          <path
-             d="m 230.75067,14.108964 0.88552,-2.213813 c 2.65658,0.442761 3.98486,-0.885522 3.5421,-3.5421016 l 2.21381,-0.442761 0,-0.442761 c -3.98486,-0.885529 -7.52696,2.6565726 -6.64143,6.6414366 z"
-             inkscape:connector-curvature="0"
-             id="path4340-3"
-             style="opacity:0.98999999;fill:#000000;fill-opacity:1" />
-        </g>
-      </g>
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteViking.svg b/svg/WhiteViking.svg
deleted file mode 100644 (file)
index 3361b03..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="100"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="WhiteViking.svg">
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2824"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2838"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="2"
-     inkscape:cx="52.657835"
-     inkscape:cy="23.437927"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="792"
-     inkscape:window-height="583"
-     inkscape:window-x="62"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(366.71429,-981.93367)">
-    <g
-       id="g3627"
-       transform="matrix(0.96433588,0,0,1,-10.542877,0.5)"
-       style="stroke-width:2.54580917;stroke-miterlimit:4;stroke-dasharray:none">
-      <path
-         sodipodi:nodetypes="cc"
-         id="path2847"
-         d="m -353.22415,1061.9436 c 13.54043,-62.108 59.94165,-62.87413 72.51972,0"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.54580917;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         transform="translate(-366.71429,981.93367)"
-         d="M 86,80.25 C 86,84.530207 69.882251,88 50,88 30.117749,88 14,84.530207 14,80.25 14,75.969793 30.117749,72.5 50,72.5 c 19.882251,0 36,3.469793 36,7.75 z"
-         sodipodi:ry="7.75"
-         sodipodi:rx="36"
-         sodipodi:cy="80.25"
-         sodipodi:cx="50"
-         id="path2845"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.54580917;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         sodipodi:type="arc" />
-      <path
-         sodipodi:nodetypes="cccc"
-         transform="translate(-366.71429,981.93367)"
-         id="path3623"
-         d="M 78,54 C 93.993275,50.292766 90.643418,33.261191 96,22.5 93.223807,37.829803 108.92769,52.169258 82.5,67.5 78.409688,63.863437 78.181641,58.939453 78,54 z"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.54580917;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.54580917;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         d="m -344.57643,1035.9337 c -15.99327,-3.7073 -12.64342,-20.7388 -18,-31.5 2.77619,15.3298 -12.92769,29.6692 13.5,45 4.09031,-3.6366 4.31836,-8.5606 4.5,-13.5 z"
-         id="path3625"
-         sodipodi:nodetypes="cccc" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteWizard.svg b/svg/WhiteWizard.svg
deleted file mode 100644 (file)
index bc1c674..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="100"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="WhiteWizard.svg">
-  <defs
-     id="defs4">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective10" />
-    <inkscape:perspective
-       id="perspective2824"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2838"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="2"
-     inkscape:cx="52.657835"
-     inkscape:cy="23.437927"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="792"
-     inkscape:window-height="583"
-     inkscape:window-x="62"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(366.71429,-981.93367)">
-    <g
-       id="g2829">
-      <path
-         id="path3613"
-         d="m -348.5606,1067.104 33.12705,-72.05627 32.56557,71.48437"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.83325672;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-      <path
-         transform="matrix(1.1229508,0,0,1.14375,-371.58109,972.74461)"
-         d="m 55.5,18.25 a 5.5,5.25 0 1 1 -11,0 5.5,5.25 0 1 1 11,0 z"
-         sodipodi:ry="5.25"
-         sodipodi:rx="5.5"
-         sodipodi:cy="18.25"
-         sodipodi:cx="50"
-         id="path3615"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         sodipodi:type="arc" />
-      <path
-         transform="matrix(1.2146211,0,0,1.1365091,-378.87459,974.48392)"
-         d="m 79,82.25 a 27,7.25 0 1 1 -54,0 27,7.25 0 1 1 54,0 z"
-         sodipodi:ry="7.25"
-         sodipodi:rx="27"
-         sodipodi:cy="82.25"
-         sodipodi:cx="52"
-         id="path2839"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         sodipodi:type="arc" />
-      <path
-         transform="matrix(1.4139303,0,0,1.6229205,-381.63742,945.4912)"
-         d="m 48.5,48.5 -1.778768,-0.603198 -1.505311,1.123345 0.024,-1.878107 -1.53353,-1.084503 L 45.5,45.5 l 0.557537,-1.793604 1.084503,1.53353 1.878107,-0.024 -1.123345,1.505311 L 48.5,48.5 z"
-         inkscape:randomized="0"
-         inkscape:rounded="0"
-         inkscape:flatsided="false"
-         sodipodi:arg2="1.4137167"
-         sodipodi:arg1="0.78539816"
-         sodipodi:r2="1.4142137"
-         sodipodi:r1="2.8284271"
-         sodipodi:cy="46.5"
-         sodipodi:cx="46.5"
-         sodipodi:sides="5"
-         id="path3619"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         sodipodi:type="star" />
-      <path
-         transform="matrix(1.0198606,0,0,1.7934237,-360.62416,934.62554)"
-         d="m 60,64 -1.778768,-0.603198 -1.505311,1.123345 0.024,-1.878107 -1.53353,-1.084503 L 57,61 l 0.557537,-1.793604 1.084503,1.53353 1.878107,-0.024 -1.123345,1.505311 L 60,64 z"
-         inkscape:randomized="0"
-         inkscape:rounded="0"
-         inkscape:flatsided="false"
-         sodipodi:arg2="1.4137167"
-         sodipodi:arg1="0.78539816"
-         sodipodi:r2="1.4142137"
-         sodipodi:r1="2.8284271"
-         sodipodi:cy="62"
-         sodipodi:cx="58"
-         sodipodi:sides="5"
-         id="path3621"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         sodipodi:type="star" />
-      <path
-         transform="matrix(1.0360811,0,0,1.6585528,-365.58888,934.63295)"
-         d="M 37,69 35.217379,69.13924 34.321486,70.686658 33.638201,69.034312 31.889672,68.660446 33.25,67.5 33.065243,65.72152 34.589257,66.656671 36.223599,65.931376 35.805164,67.669777 37,69 z"
-         inkscape:randomized="0"
-         inkscape:rounded="0"
-         inkscape:flatsided="false"
-         sodipodi:arg2="1.0088249"
-         sodipodi:arg1="0.38050638"
-         sodipodi:r2="1.3462912"
-         sodipodi:r1="2.6925824"
-         sodipodi:cy="68"
-         sodipodi:cx="34.5"
-         sodipodi:sides="5"
-         id="path3623"
-         style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:2.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         sodipodi:type="star" />
-      <path
-         sodipodi:nodetypes="cccc"
-         id="path3627"
-         d="m -311.63899,1033.7911 c -5.25461,3.2753 -4.87696,9.9001 0,13.5102 -4.79041,-0.091 -8.50035,-3.1871 -8.39663,-7.1459 -0.12752,-3.5753 3.7897,-6.4169 8.39663,-6.3643 z"
-         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.49760211;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
-    </g>
-  </g>
-</svg>
diff --git a/svg/WhiteWolf.svg b/svg/WhiteWolf.svg
deleted file mode 100644 (file)
index 7334c85..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg2873"
-   version="1.1"
-   inkscape:version="0.47 r22583"
-   width="196"
-   height="196"
-   sodipodi:docname="wolf4Wt.svg">
-  <metadata
-     id="metadata2879">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs2877">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       id="perspective2881" />
-  </defs>
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="504"
-     id="namedview2875"
-     showgrid="false"
-     inkscape:zoom="1.2040816"
-     inkscape:cx="97.999997"
-     inkscape:cy="107.76409"
-     inkscape:window-x="0"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2873" />
-  <g
-     id="g3606">
-    <path
-       id="path3598"
-       d="m 57.30509,13.288135 -9.96611,11.627119 -7.47457,15.779662 -7.47458,30.728813 -5.81356,27.406785 -3.32203,22.423736 4.15254,14.94915 19.9322,38.20339 10.79661,5.81356 20.76272,4.98305 16.61017,0 24.91525,0.83051 11.62712,-4.98305 16.61017,-11.62712 12.45763,-20.76271 10.79661,-14.94915 -1.66102,-13.28814 -9.13559,-41.525434 -4.98305,-20.762712 -0.83051,-14.118644 -7.47458,-11.627119 -6.64407,-9.966103 -9.13559,4.152543 -8.30508,9.966102 -6.64407,14.118644 -2.49153,9.135594 L 79.72882,58.135594 76.40678,39.864407 69.76271,26.576271 63.94915,18.271186 57.30509,13.288135 z"
-       style="fill:#ffffcc;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-    <path
-       style="fill:#000000"
-       d="m 72.830503,186.31495 c -4.125,-1.3456 -8.85,-2.45744 -10.5,-2.47076 -1.65,-0.0133 -4.167948,-0.80934 -5.59544,-1.76894 -1.42749,-0.95961 -5.10172,-3.42158 -8.16495,-5.47106 -3.06322,-2.04948 -6.21718,-4.97448 -7.0088,-6.5 -0.79161,-1.52552 -2.96739,-5.47368 -4.83505,-8.77368 -1.86767,-3.3 -6.07049,-11.56011 -9.3396,-18.35581 -7.2687,-15.10986 -7.78473,-19.11709 -4.6346,-35.99001 3.81785,-20.44945 6.18056,-31.383088 9.10934,-42.154182 1.57029,-5.775 3.58045,-14.1 4.46702,-18.5 1.18296,-5.870934 3.07748,-10.661332 7.11871,-18 5.93974,-10.786277 10.09875,-15.5 13.675966,-15.5 3.746136,0 15.215735,12.395866 17.580247,19 3.292987,9.197389 4.965537,15.255893 5.659362,20.5 l 0.661529,5 15.903488,0 c 15.494255,0 15.903475,-0.05409 15.903135,-2.102035 -2e-4,-1.156119 2.42264,-7.03904 5.38408,-13.073159 5.57137,-11.352008 9.87938,-16.32399 17.1219,-19.76079 4.27028,-2.026379 6.78534,-1.976288 9.33823,0.185984 3.00468,2.544939 10.9439,19.000638 11.70116,24.253108 1.43416,9.947538 12.47904,63.815654 13.92448,67.912454 3.62367,10.27058 2.88876,19.68976 -1.95715,25.08444 -1.23513,1.375 -4.36229,6.325 -6.94924,11 -2.58695,4.675 -5.68461,9.91286 -6.88368,11.63969 -1.19908,1.72682 -2.94368,4.53404 -3.87689,6.23825 -0.93321,1.70421 -3.85821,4.41454 -6.5,6.02297 -2.64179,1.60842 -6.21901,4.09219 -7.94938,5.5195 -1.73037,1.42731 -6.68037,3.80077 -11,5.27436 -7.23256,2.4673 -9.31738,2.70128 -26.353867,2.95773 -17.329649,0.26087 -18.974467,0.12371 -26,-2.16806 z m 51.499997,-3.86311 c 3.4077,-1.01011 7.29615,-3.01881 9,-4.64924 1.65,-1.5789 4.575,-3.53168 6.5,-4.3395 4.14941,-1.7413 8.48912,-6.14252 9.49797,-9.63259 0.39746,-1.375 1.93774,-3.85 3.42284,-5.5 1.4851,-1.65 4.42123,-6.375 6.52473,-10.5 2.1035,-4.125 4.87087,-8.75075 6.14971,-10.27944 4.36022,-5.21207 4.27556,-9.43662 -0.5455,-27.22056 -1.19279,-4.4 -4.81507,-21.280644 -8.0495,-37.51254 -6.56699,-32.95631 -6.01077,-30.832111 -10.66722,-40.737462 -2.14697,-4.567092 -4.00135,-7.25 -5.01108,-7.25 -3.00186,0 -10.36809,4.371717 -12.85078,7.626683 -3.37146,4.420218 -11.47117,21.236775 -11.47117,23.816369 0,1.336674 4.31874,6.395704 12,14.056948 11.28468,11.25528 13.69348,14.5 10.76444,14.5 -0.67956,0 -6.64206,-5.380177 -13.25,-11.955948 L 114.3305,60.918611 92.984434,60.735404 71.638364,60.552197 59.469993,72.691353 c -6.6926,6.676535 -12.72437,12.139155 -13.40393,12.139155 -2.94227,0 -0.49593,-3.264775 11.01444,-14.699372 10.024803,-9.958811 12.931183,-12.292323 16,-12.846285 3.525344,-0.636371 3.749278,-0.894913 3.737944,-4.315634 C 76.804817,48.855903 71.910335,33.489446 69.239495,29.174752 66.35064,24.507858 58.534162,16.830508 56.671549,16.830508 c -1.906426,0 -6.871236,7.038179 -11.639286,16.5 -1.66296,3.3 -4.01062,10.5 -5.21702,16 -1.20641,5.5 -3.68315,16.075 -5.50388,23.5 -1.82072,7.425 -4.25578,19.575 -5.41123,27 -1.15546,7.425002 -2.59813,16.330342 -3.20594,19.789662 -1.36068,7.74419 -0.99212,8.83672 11.28003,33.43666 8.01702,16.07039 9.20028,17.90853 12.66659,19.67691 2.10292,1.07283 4.43561,2.68816 5.18375,3.58962 2.000486,2.41043 6.510731,4.5066 9.70628,4.51105 1.539813,0.002 5.72466,0.87694 9.29966,1.94399 5.601492,1.67189 9.126409,1.90634 25.5,1.69601 14.745237,-0.1894 20.343607,-0.64233 24.999997,-2.02257 z m -39.999997,-2.278 c -3.582053,-0.57629 -14.054587,-10.43253 -14.973027,-14.09188 -0.338488,-1.34865 -1.553397,-3.72075 -2.699797,-5.27134 -1.485903,-2.00979 -1.893294,-3.58054 -1.418889,-5.47072 0.791712,-3.15443 2.867597,-2.82783 3.642642,0.57311 1.213656,5.32558 4.372604,10.67592 9.250412,15.6675 l 5.130339,5.25 13.56832,0 13.568317,0 5.1449,-5.25 c 3.49846,-3.56993 6.02444,-7.4101 7.89332,-12 2.93027,-7.1966 4.00309,-8.15355 4.9429,-4.40903 0.82979,3.30612 -5.25191,13.96627 -11.44444,20.0601 l -4.98045,4.90107 -12.312274,0.26192 c -6.77175,0.14406 -13.662273,0.0447 -15.312273,-0.22073 z m 3.957386,-9.62633 c -1.936808,-1.66597 -2.796382,-3.54495 -3.180434,-6.95225 -0.474863,-4.21297 -0.228462,-4.96709 2.521454,-7.717 2.736652,-2.73665 3.675896,-3.04775 9.201594,-3.04775 5.468287,0 6.479487,0.32564 9.076917,2.92308 2.2925,2.29249 2.92308,3.81916 2.92308,7.07692 0,3.25776 -0.63058,4.78443 -2.92308,7.07692 -2.58348,2.58348 -3.6226,2.92308 -8.94423,2.92308 -4.828238,0 -6.547002,-0.45231 -8.675301,-2.283 z m -2.905366,-22.967 c -4.376569,-14.20188 -4.995989,-18.75 -2.553611,-18.75 1.723452,0 6.611879,15.96723 5.653246,18.46539 -0.709789,1.84968 -2.564839,2.02001 -3.099635,0.28461 z m 19.907877,0.18511 c -1.31092,-2.12111 3.57737,-18.93511 5.50496,-18.93511 2.02356,0 1.85218,3.81062 -0.52136,11.59224 -2.4581,8.05884 -3.54833,9.66519 -4.9836,7.34287 z M 65.931494,119.01921 c -3.266004,-6.10258 1.367814,-14.1887 8.130956,-14.1887 1.862187,0 4.157307,0.56414 5.100268,1.25365 1.541083,1.12687 1.014393,1.94837 -5.207879,8.12297 -6.513118,6.46321 -6.987441,6.74769 -8.023345,4.81208 z m 49.465476,-5.12172 -6.92622,-6.9797 2.74497,-1.04364 c 1.50974,-0.574 3.41303,-1.04364 4.22954,-1.04364 2.40177,0 7.24237,2.86454 8.3556,4.94461 1.40651,2.62809 1.29478,7.31054 -0.22401,9.3876 -1.12672,1.54088 -1.95498,1.00774 -8.17988,-5.26523 z"
-       id="use3602" />
-  </g>
-</svg>
diff --git a/svg/WhiteZebra.svg b/svg/WhiteZebra.svg
deleted file mode 100644 (file)
index 6d3e626..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.47 r22583"
-   sodipodi:docname="WhiteKnight.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="504"
-     id="namedview11"
-     showgrid="false"
-     inkscape:zoom="2.36"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="24"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 50 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="100 : 50 : 1"
-       inkscape:persp3d-origin="50 : 33.333333 : 1"
-       id="perspective13" />
-  </defs>
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1">
-    <g
-       transform="matrix(1.3645649,0,0,1.3439387,-220.19479,70.376866)"
-       id="g4602"
-       style="display:inline">
-      <path
-         d="m 238.21185,-1.7155471 2.55401,0.0595 c -0.11306,-2.7134211 4.44555,-7.1531665 4.44555,-7.1531665 0,0 2.6311,2.9526263 3.05622,7.1168654 5.9381,-0.2374968 11.03878,2.8990232 13.00056,4.1073952 12.42868,7.655546 17.29364,32.448756 17.26817,51.469126 l -44.90277,-0.141002 c -0.20729,-13.073379 15.56269,-17.974522 15.10098,-30.390825 -3.98486,3.099334 -8.42701,3.94292 -11.94512,6.90514 -2.79351,2.352109 -4.23289,5.107136 -7.01819,8.412488 -1.02679,1.218501 -3.76823,0.678355 -4.65375,-1.092696 -4.42762,1.32829 -8.68213,0.01778 -8.58207,-6.302259 0.0886,-5.594944 5.71512,-10.651222 7.64949,-15.901883 0.8339,-2.263527 0.71728,-5.7619951 2.03476,-8.280479 1.02298,-1.9555369 3.32544,-4.2204556 4.38056,-4.9644989 0.81951,-2.78858391 0.63978,-7.5122594 -0.71693,-9.3212068 1.97854,-0.5652961 6.51958,2.1987846 8.32853,5.4775016 z"
-         inkscape:connector-curvature="0"
-         id="path4350"
-         style="opacity:0.98999999;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.54904515px;stroke-opacity:1" />
-      <path
-         d="m 242.81689,-0.58069936 c -0.072,0.79486254 -0.32711,1.42135025 -0.73002,2.28035536 -2.11721,4.5138671 -1.19455,-0.1716813 -1.14905,-1.19710158 -1.50976,0.47874748 -4.00517,2.26532638 -5.07373,3.22990388 0.2262,-0.822523 1.59457,-2.91401608 1.19879,-4.37258378 -0.53461,-1.97018662 -2.39735,-3.30685752 -4.38274,-4.27768712 0.61573,2.305974 0.97448,5.12831401 -0.52388,8.1053126 -0.963,1.1263746 -1.94758,1.992982 -2.75,3.125 -0.68313,0.9637262 -1.34296,1.9556425 -1.73503,3.090079 -0.83217,1.95126 -0.86757,4.102469 -1.47299,6.117007 -1.0152,3.389738 -2.8013,6.466007 -4.8023,9.361167 -1.33288,2.142142 -2.90703,4.397401 -2.85563,7.031336 0.074,1.299767 0.66114,2.59601 1.56989,3.430555 1.07494,0.869977 2.59231,0.82959 3.80468,0.430633 1.76617,-0.581196 3.02202,-3.3374 4.47311,-5.629934 0.0475,0.474451 -0.10089,1.848603 -0.28033,3.228551 -0.22412,1.723516 -0.4967,3.456074 -0.4967,3.456074 3.78439,-2.467212 6.29028,-7.057025 10.07655,-9.827968 2.63561,-1.928841 6.46629,-2.181126 8.64217,-4.616774 2.70726,-3.030455 3.36645,-3.372936 4.50035,-11.329732 1.23577,7.754431 0.26208,17.297222 -3.06808,22.364697 -0.94356,1.435812 -2.64098,3.136326 -3.94944,4.706809 -2.35937,2.831831 -5.02065,5.234162 -6.63424,8.423218 -0.82438,1.629293 -1.38054,3.845243 -1.45951,5.27993 13.88505,0.05216 27.62654,-0.03393 39.71316,0 0.13389,-5.249005 -0.48174,-10.005913 -1.26011,-14.943931 -0.75657,-4.799697 -1.81449,-9.572366 -3.30276,-14.197788 -1.25479,-3.899783 -2.30537,-8.037609 -4.71838,-11.348224 -3.01163,-4.1319023 -7.09257,-7.6856654 -11.68081,-9.9418973 -1.89015,-0.92946742 -3.84424,-1.22768185 -5.87614,-1.42411251 -0.67664,2.63979221 -1.13781,0.36144826 -1.51273,-0.14218972 -1.03671,-1.94459497 -1.88857,-2.71395277 -2.04236,-4.94441567 -1.31768,1.7707756 -2.11286,3.3322909 -2.22174,4.53371084 z"
-         inkscape:connector-curvature="0"
-         id="path4352"
-         style="opacity:0.98999999;fill:#ffffcc;fill-opacity:1;stroke:#fdfdca;stroke-width:0.54904515px;stroke-opacity:1" />
-      <path
-         d="m 221.53873,32.85876 c 2.61354,-0.122981 3.81785,-5.736082 1.16227,-5.663706 -2.93332,0.07995 -3.41743,5.769824 -1.16227,5.663706 z"
-         inkscape:connector-curvature="0"
-         id="path4348"
-         style="opacity:0.98999999;fill:#000000;fill-opacity:1" />
-      <path
-         d="m 230.75067,14.108964 0.88552,-2.213813 c 2.65658,0.442761 3.98486,-0.885522 3.5421,-3.5421016 l 2.21381,-0.442761 0,-0.442761 c -3.98486,-0.885529 -7.52696,2.6565726 -6.64143,6.6414366 z"
-         inkscape:connector-curvature="0"
-         id="path4340"
-         style="opacity:0.98999999;fill:#000000;fill-opacity:1" />
-    </g>
-  </g>
-  <path
-     style="fill:#000000;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
-     d="M 32.627119,58.474576 21.186441,53.813559 35.59322,56.355932 32.627119,58.474576 z"
-     id="path2819" />
-  <path
-     style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-     d="M 41.949152,52.966102 25.423728,48.305085 47.457627,50 41.949152,52.966102 z"
-     id="path3593" />
-  <path
-     style="fill:#000000;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
-     d="m 32.627119,42.79661 20.762712,2.542373 13.559322,-1.271186 8.474576,-2.542373 5.084746,-3.81356 -2.118644,-3.813559 -6.355933,4.661017 -9.322034,2.542373 -9.745762,0.847458 -20.338983,0.847457 z"
-     id="path3595" />
-  <path
-     style="fill:#000000;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
-     d="m 83.050847,46.186441 -11.440678,4.237288 -8.898305,2.118644 -10.169491,1.694915 -1.271187,3.389831 11.440678,-0.847458 9.322034,-1.694915 13.983051,-4.237288 -2.966102,-4.661017 z"
-     id="path3597" />
-  <path
-     style="fill:#000000;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
-     d="m 86.864407,57.627119 -15.254238,2.542373 -11.440677,2.966101 -9.322034,2.542373 -5.932204,1.694915 -2.966101,2.966102 -1.271187,1.271186 15.254237,-3.813559 12.288136,-2.118644 16.101695,-1.694915 4.661017,0 -2.118644,-6.355932 z"
-     id="path3599" />
-  <path
-     style="fill:#000000;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
-     d="m 89.830508,70.338983 -14.406779,1.271186 -14.40678,2.118645 -12.288135,4.237288 -8.050848,4.237288 -4.661017,5.084746 5.508475,0.847457 8.898305,-5.932203 8.898305,-3.813559 11.016949,-2.542373 13.135593,-1.694916 6.355932,0.423729 0,-4.237288 z"
-     id="path3601" />
-  <path
-     style="fill:#000000;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
-     d="m 89.40678,80.084746 c -4.237288,1.694915 -12.711865,1.271186 -12.711865,1.271186 l -10.59322,2.118644 -8.898305,4.237288 12.288135,0.423729 10.177963,-3.77205 10.584749,-0.465238 c 0,0 -0.423729,-5.932203 -0.847457,-3.813559 z"
-     id="path3603"
-     sodipodi:nodetypes="cccccccc" />
-  <path
-     style="fill:#000000;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
-     d="m 70.762712,26.694915 -7.20339,5.932204 -6.355932,2.966101 5.932203,-6.355932 2.966102,-8.474576 4.661017,5.932203 z"
-     id="path3605" />
-  <path
-     style="fill:#000000;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
-     d="m 57.627119,17.79661 -2.118644,5.932204 -2.966102,8.898305 -0.847458,-10.169492 1.694916,-6.779661 4.237288,2.118644 z"
-     id="path3607" />
-</svg>
diff --git a/svg/eo_Analyzing.svg b/svg/eo_Analyzing.svg
deleted file mode 100644 (file)
index 63a9cc1..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="14"
-   height="14"
-   id="svg3059"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="eo_Analyzing.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview12"
-     showgrid="false"
-     inkscape:zoom="8.6919643"
-     inkscape:cx="6.1416515"
-     inkscape:cy="2.9087235"
-     inkscape:window-x="185"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg3059" />
-  <metadata
-     id="metadata3065">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3063">
-    <filter
-       x="0"
-       y="0"
-       width="1"
-       height="1"
-       color-interpolation-filters="sRGB"
-       id="filter2982">
-      <feColorMatrix
-         result="fbSourceGraphic"
-         values="0"
-         type="hueRotate"
-         id="feColorMatrix2984" />
-      <feColorMatrix
-         result="result91"
-         values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0 "
-         in="fbSourceGraphic"
-         id="feColorMatrix2986" />
-      <feBlend
-         in2="result91"
-         mode="darken"
-         in="fbSourceGraphic"
-         result="result92"
-         id="feBlend2988" />
-      <feBlend
-         in2="result92"
-         mode="screen"
-         result="result93"
-         id="feBlend2990" />
-      <feComposite
-         in2="SourceGraphic"
-         operator="in"
-         id="feComposite2992" />
-    </filter>
-  </defs>
-  <g
-     id="g3140"
-     transform="matrix(0.57536848,0.57536848,-0.57536848,0.57536848,7.5466501,-1.6018088)">
-    <path
-       transform="translate(1.7121344,0)"
-       d="m 9.8435655,4.6445451 c 0,2.5160435 -2.0396563,4.5556998 -4.5556999,4.5556998 -2.5160435,0 -4.55569979,-2.0396563 -4.55569979,-4.5556998 0,-2.5160436 2.03965629,-4.55569985 4.55569979,-4.55569985 2.5160436,0 4.5556999,2.03965625 4.5556999,4.55569985 z"
-       sodipodi:ry="4.5556998"
-       sodipodi:rx="4.5556998"
-       sodipodi:cy="4.6445451"
-       sodipodi:cx="5.2878656"
-       id="path3126"
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.22896338;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       sodipodi:type="arc" />
-    <path
-       sodipodi:nodetypes="cc"
-       inkscape:connector-curvature="0"
-       id="path3128"
-       d="M 7,9.3629485 7,14.732166"
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.22896338;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <rect
-       rx="1.1997403"
-       ry="1.1997404"
-       y="11.884853"
-       x="6.1334"
-       height="5.5319209"
-       width="1.7331998"
-       id="rect3130"
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.22896338;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-  </g>
-</svg>
diff --git a/svg/eo_Black.svg b/svg/eo_Black.svg
deleted file mode 100644 (file)
index 1fc3229..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="14"
-   height="14"
-   id="svg3039"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="eo_Black.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1188"
-     inkscape:window-height="613"
-     id="namedview2998"
-     showgrid="false"
-     inkscape:zoom="26.141741"
-     inkscape:cx="1.9833994"
-     inkscape:cy="7"
-     inkscape:window-x="90"
-     inkscape:window-y="104"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg3039" />
-  <metadata
-     id="metadata3045">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3043">
-    <linearGradient
-       id="linearGradient3750">
-      <stop
-         id="stop3752"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3754"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="7"
-       cy="7.0496454"
-       r="7"
-       fx="7"
-       fy="7.0496454"
-       id="radialGradient3756"
-       xlink:href="#linearGradient3750"
-       gradientUnits="userSpaceOnUse" />
-  </defs>
-  <path
-     sodipodi:type="arc"
-     style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.01773929999999990;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-     id="path3064"
-     sodipodi:cx="6.6728301"
-     sodipodi:cy="7.3271699"
-     sodipodi:rx="6.6153054"
-     sodipodi:ry="6.6153054"
-     d="m 13.288136,7.3271699 a 6.6153054,6.6153054 0 1 1 -13.23061132,0 6.6153054,6.6153054 0 1 1 13.23061132,0 z"
-     transform="matrix(0.9825699,0,0,0.9825699,0.44347799,-0.19945659)" />
-</svg>
diff --git a/svg/eo_Clear.svg b/svg/eo_Clear.svg
deleted file mode 100644 (file)
index 9ada0ae..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   version="1.1"
-   width="14"
-   height="14"
-   id="svg3122">
-  <metadata
-     id="metadata3128">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3126" />
-  <image
-     xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAABHNCSVQICAgIfAhkiAAAABBJREFU KJFjYBgFo2AUYAcAAx4AAVtLX1gAAAAASUVORK5CYII= "
-     x="0"
-     y="0"
-     width="14"
-     height="14"
-     id="image3130" />
-</svg>
diff --git a/svg/eo_Ponder.svg b/svg/eo_Ponder.svg
deleted file mode 100644 (file)
index 38b1c72..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="14"
-   height="14"
-   id="svg3205"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="eo_Ponder.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="897"
-     inkscape:window-height="662"
-     id="namedview3016"
-     showgrid="false"
-     inkscape:zoom="14.684152"
-     inkscape:cx="8.0646044"
-     inkscape:cy="9.3285005"
-     inkscape:window-x="106"
-     inkscape:window-y="108"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg3205" />
-  <metadata
-     id="metadata3211">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3209">
-    <filter
-       x="0"
-       y="0"
-       width="1"
-       height="1"
-       color-interpolation-filters="sRGB"
-       id="filter2982">
-      <feColorMatrix
-         result="fbSourceGraphic"
-         values="0"
-         type="hueRotate"
-         id="feColorMatrix2984" />
-      <feColorMatrix
-         result="result91"
-         values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0 "
-         in="fbSourceGraphic"
-         id="feColorMatrix2986" />
-      <feBlend
-         in2="result91"
-         mode="darken"
-         in="fbSourceGraphic"
-         result="result92"
-         id="feBlend2988" />
-      <feBlend
-         in2="result92"
-         mode="screen"
-         result="result93"
-         id="feBlend2990" />
-      <feComposite
-         in2="SourceGraphic"
-         operator="in"
-         id="feComposite2992" />
-    </filter>
-  </defs>
-  <path
-     d="m 2.1111195,12.229383 a 1.0896101,0.95340884 0 1 1 -2.17922019,0 1.0896101,0.95340884 0 1 1 2.17922019,0 z"
-     sodipodi:ry="0.95340884"
-     sodipodi:rx="1.0896101"
-     sodipodi:cy="12.229383"
-     sodipodi:cx="1.0215094"
-     id="path3174"
-     style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-     sodipodi:type="arc"
-     transform="translate(0.81720755,0.20430185)" />
-  <path
-     sodipodi:type="arc"
-     style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.35227972;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-     id="path3180"
-     sodipodi:cx="1.0215094"
-     sodipodi:cy="12.229383"
-     sodipodi:rx="1.0896101"
-     sodipodi:ry="0.95340884"
-     d="m 2.1111195,12.229383 a 1.0896101,0.95340884 0 1 1 -2.17922019,0 1.0896101,0.95340884 0 1 1 2.17922019,0 z"
-     transform="matrix(1.4101418,0,0,1.4285714,2.5774641,-7.488485)" />
-  <path
-     style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-     d="M 3.2210902,2.6347447 C 2.361587,3.1749884 2.1908988,4.0898629 2.8198855,4.6699457 3.1103298,4.9378079 3.5434097,5.0783584 3.9891448,5.1101774 3.884859,5.1565324 3.7749472,5.2042884 3.6781468,5.2651331 2.8186436,5.8053768 2.6163035,6.7401461 3.2452901,7.3202289 3.7956544,7.8278023 4.793487,7.8843906 5.6088484,7.5365819 5.6120484,7.8245233 5.7293483,8.0894863 5.9772427,8.3181071 6.6062306,8.898191 7.8184265,8.9438469 8.6779297,8.4036031 8.9902749,8.2072774 9.195674,7.9337552 9.3234886,7.6736489 9.3840676,7.7887246 9.4660473,7.9032955 9.5737504,8.0026248 10.202738,8.5827086 11.414935,8.6283645 12.274437,8.0881208 13.133941,7.5478772 13.30463,6.6330039 12.675642,6.05292 12.465273,5.8589059 12.215871,5.7126485 11.91086,5.6421155 12.241996,5.5887209 12.597094,5.4944433 12.885073,5.3134337 13.744575,4.77319 13.915265,3.8583166 13.286277,3.2782327 13.058874,3.0685105 12.766774,2.9484688 12.43206,2.8831193 12.620034,2.444591 12.538164,1.9501684 12.156055,1.5977675 11.527067,1.0176846 10.341,0.99612656 9.4814972,1.5363703 9.242254,1.6867474 9.0532528,1.8581758 8.9213281,2.0505595 8.9802627,1.6972597 8.8513582,1.3479124 8.548889,1.0689602 7.9199025,0.4888774 6.7077052,0.44322048 5.8482023,0.98346405 5.3110129,1.3211165 5.0236798,1.8018553 5.0469513,2.2570347 4.4585463,2.1454719 3.7661263,2.2921604 3.2210902,2.6347447 z"
-     id="path3178"
-     inkscape:connector-curvature="0" />
-</svg>
diff --git a/svg/eo_Thinking.svg b/svg/eo_Thinking.svg
deleted file mode 100644 (file)
index cb872a8..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="14"
-   height="14"
-   id="svg3288"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="eo_Thinking.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="654"
-     inkscape:window-height="718"
-     id="namedview3050"
-     showgrid="false"
-     inkscape:zoom="8.2639509"
-     inkscape:cx="5.3573191"
-     inkscape:cy="5.1252271"
-     inkscape:window-x="550"
-     inkscape:window-y="59"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg3288" />
-  <metadata
-     id="metadata3294">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3292">
-    <filter
-       x="0"
-       y="0"
-       width="1"
-       height="1"
-       color-interpolation-filters="sRGB"
-       id="filter3002">
-      <feColorMatrix
-         result="result2"
-         type="saturate"
-         in="SourceGraphic"
-         values="1"
-         id="feColorMatrix3004" />
-      <feFlood
-         result="result1"
-         flood-opacity="1"
-         flood-color="rgb(254,102,0)"
-         id="feFlood3006" />
-      <feBlend
-         in2="result2"
-         mode="multiply"
-         in="result1"
-         result="result3"
-         id="feBlend3008" />
-      <feComposite
-         in2="SourceGraphic"
-         operator="in"
-         result="fbSourceGraphic"
-         id="feComposite3010" />
-      <feColorMatrix
-         id="feColorMatrix3012"
-         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
-         in="fbSourceGraphic"
-         result="fbSourceGraphicAlpha" />
-      <feColorMatrix
-         in="fbSourceGraphic"
-         result="fbSourceGraphic"
-         values="0"
-         type="hueRotate"
-         id="feColorMatrix3014" />
-      <feColorMatrix
-         result="result91"
-         values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0 "
-         in="fbSourceGraphic"
-         id="feColorMatrix3016" />
-      <feBlend
-         in2="result91"
-         mode="darken"
-         in="fbSourceGraphic"
-         result="result92"
-         id="feBlend3018" />
-      <feBlend
-         in2="result92"
-         mode="screen"
-         result="result93"
-         id="feBlend3020" />
-      <feComposite
-         in2="fbSourceGraphic"
-         operator="in"
-         id="feComposite3022" />
-    </filter>
-  </defs>
-  <g
-     id="g3122"
-     transform="translate(0.44221878,0.47817135)">
-    <path
-       d="m 12.712892,6.5218287 c 0,3.3993735 -2.7557372,6.1551103 -6.1551108,6.1551103 -3.3993736,0 -6.15511034,-2.7557368 -6.15511034,-6.1551103 0,-3.3993736 2.75573674,-6.15511041 6.15511034,-6.15511041 3.3993736,0 6.1551108,2.75573681 6.1551108,6.15511041 z"
-       sodipodi:ry="6.1551104"
-       sodipodi:rx="6.1551104"
-       sodipodi:cy="6.5218287"
-       sodipodi:cx="6.5577812"
-       id="path3118"
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       sodipodi:type="arc" />
-    <path
-       inkscape:connector-curvature="0"
-       id="path3120"
-       d="m 6.5344048,1.4152205 c 0,0 0.030252,0.060504 0.060504,5.4453373 L 3.5092174,3.0790735"
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-  </g>
-</svg>
diff --git a/svg/eo_Unknown.svg b/svg/eo_Unknown.svg
deleted file mode 100644 (file)
index 3dc7fd7..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="14"
-   height="14"
-   id="svg3039"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="eo_Unknown.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1188"
-     inkscape:window-height="613"
-     id="namedview2998"
-     showgrid="false"
-     inkscape:zoom="28.666195"
-     inkscape:cx="0.60821505"
-     inkscape:cy="6.8547177"
-     inkscape:window-x="90"
-     inkscape:window-y="50"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg3039" />
-  <metadata
-     id="metadata3045">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3043">
-    <linearGradient
-       id="linearGradient3750">
-      <stop
-         id="stop3752"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3754"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="7"
-       cy="7.0496454"
-       r="7"
-       fx="7"
-       fy="7.0496454"
-       id="radialGradient3756"
-       xlink:href="#linearGradient3750"
-       gradientUnits="userSpaceOnUse" />
-  </defs>
-  <path
-     sodipodi:type="arc"
-     style="color:#000000;fill:#a9a9a9;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.01773929999999990;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-     id="path3064"
-     sodipodi:cx="6.6728301"
-     sodipodi:cy="7.3271699"
-     sodipodi:rx="6.6153054"
-     sodipodi:ry="6.6153054"
-     d="m 13.288136,7.3271699 a 6.6153054,6.6153054 0 1 1 -13.23061132,0 6.6153054,6.6153054 0 1 1 13.23061132,0 z"
-     transform="matrix(0.9825699,0,0,0.9825699,0.44347799,-0.19945659)" />
-</svg>
diff --git a/svg/eo_White.svg b/svg/eo_White.svg
deleted file mode 100644 (file)
index 8b5f3ee..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="14"
-   height="14"
-   id="svg3039"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="eo_Unknown.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1188"
-     inkscape:window-height="613"
-     id="namedview2998"
-     showgrid="false"
-     inkscape:zoom="26.141741"
-     inkscape:cx="1.9833994"
-     inkscape:cy="7"
-     inkscape:window-x="143"
-     inkscape:window-y="50"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg3039" />
-  <metadata
-     id="metadata3045">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3043">
-    <linearGradient
-       id="linearGradient3750">
-      <stop
-         id="stop3752"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3754"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="7"
-       cy="7.0496454"
-       r="7"
-       fx="7"
-       fy="7.0496454"
-       id="radialGradient3756"
-       xlink:href="#linearGradient3750"
-       gradientUnits="userSpaceOnUse" />
-  </defs>
-  <path
-     sodipodi:type="arc"
-     style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.01773929999999990;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-     id="path3064"
-     sodipodi:cx="6.6728301"
-     sodipodi:cy="7.3271699"
-     sodipodi:rx="6.6153054"
-     sodipodi:ry="6.6153054"
-     d="m 13.288136,7.3271699 a 6.6153054,6.6153054 0 1 1 -13.23061132,0 6.6153054,6.6153054 0 1 1 13.23061132,0 z"
-     transform="matrix(0.9825699,0,0,0.9825699,0.44347799,-0.19945659)" />
-</svg>
diff --git a/svg/icon_black.svg b/svg/icon_black.svg
deleted file mode 100644 (file)
index 0656cd8..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2">
-  <metadata
-     id="metadata8">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs6" />
-  <rect
-     width="100"
-     height="100"
-     x="0"
-     y="0"
-     id="rect2827"
-     style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-  <path
-     d="m 37.649136,14.554159 c 2.521821,-1.891358 5.043643,-8.8263698 8.195917,-9.4568225 3.782737,-0.6304527 5.043643,7.5654645 8.195917,8.8263695 5.043643,1.891369 10.087285,1.891369 15.130949,5.043643 15.761371,10.087286 20.805014,29.631394 23.326835,46.65368 1.260916,6.935012 1.891369,13.870013 1.891369,20.805024 0,1.891369 0.630453,5.674096 -0.630453,6.935001 -1.891368,2.521832 -11.348201,1.260916 -14.500475,1.260916 l -37.827322,0 c -4.41319,0 -11.978654,1.891369 -11.348191,-5.043643 3.152274,-15.761381 21.435466,-22.696382 22.06593,-39.088216 -5.674096,4.41318 -12.609107,6.304549 -17.65275,10.717739 -3.782727,3.152274 -6.935001,9.456822 -10.717739,11.978644 -2.521821,1.260905 -5.043642,0 -6.304548,-2.521822 C 11.170027,72.556041 4.8654681,68.142851 5.4959314,61.20785 6.1263841,53.011922 11.80048,46.707374 15.583206,39.772362 18.105028,35.359183 17.474575,30.945993 19.365944,26.532813 20.626849,23.380529 23.779123,21.48917 25.040039,18.336896 26.931398,15.815075 22.518218,8.2496107 25.670492,5.7277892 28.822766,3.2059678 36.38823,12.032337 37.649136,14.554159 z m 13.23956,3.152274 c 1.891368,3.782737 5.674095,3.152285 8.826369,5.043643 4.41319,1.260916 7.565486,5.043643 10.71776,8.195917 9.456833,11.978654 13.870012,30.892309 13.870012,46.023227 0,5.674096 -1.260905,14.500476 6.304549,14.500476 0,-20.805024 -1.891359,-44.762322 -15.761371,-61.784609 C 69.802372,23.380529 59.715065,15.815075 50.888696,17.706433 z m -32.783668,50.436418 1.891369,0.630452 1.891368,-6.304548 -0.630463,0 z m -4.41318,-6.304549 c 3.152274,-0.630452 4.41318,-5.674095 0.630453,-5.674095 -3.152274,0 -3.782737,6.304548 -0.630453,5.674095 z m 38.457764,-13.870012 1.260905,0 1.891369,-6.935012 c -2.521822,1.260906 -3.152274,4.413191 -3.152274,6.935012 z m -26.47912,-11.348202 1.260906,-3.152274 c 3.782737,0.630453 5.674095,-1.260905 5.043642,-5.043643 l 3.152274,-0.630452 0,-0.630453 c -5.674095,-1.260916 -10.717738,3.782727 -9.456822,9.456822 z m 5.043643,-13.870012 c 1.260905,0 3.152274,0 4.413179,-0.630453 11.978655,-3.782727 -3.152274,-6.304548 -4.413179,0.630453 z"
-     inkscape:connector-curvature="0"
-     id="BlackKnight"
-     style="stroke-width:1px" />
-</svg>
diff --git a/svg/icon_white.svg b/svg/icon_white.svg
deleted file mode 100644 (file)
index b969e5e..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2">
-  <metadata
-     id="metadata8">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs6" />
-  <rect
-     width="100"
-     height="100"
-     x="0"
-     y="0"
-     id="rect2827"
-     style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-  <path
-     d="M 0,0 0,100 100,100 100,0 0,0 z m 45.84375,5.09375 c 3.782737,-0.6304527 5.035226,7.582845 8.1875,8.84375 5.043643,1.891369 10.112586,1.878976 15.15625,5.03125 C 84.948871,29.056036 89.97818,48.602714 92.5,65.625 c 1.26091,6.935012 1.875,13.877489 1.875,20.8125 0,1.891369 0.63591,5.676595 -0.625,6.9375 -1.89137,2.521832 -11.347726,1.25 -14.5,1.25 l -37.8125,0 c -4.41319,0 -11.974213,1.903762 -11.34375,-5.03125 C 33.246024,73.832369 51.525786,66.891834 52.15625,50.5 46.482154,54.91318 39.543643,56.80556 34.5,61.21875 30.717273,64.371024 27.563988,70.665678 23.78125,73.1875 21.259429,74.448405 18.729656,73.178072 17.46875,70.65625 11.164201,72.547619 4.869536,68.153751 5.5,61.21875 c 0.630452,-8.195928 6.311023,-14.502488 10.09375,-21.4375 2.521822,-4.413179 1.889881,-8.83682 3.78125,-13.25 1.260905,-3.152284 4.395334,-5.035226 5.65625,-8.1875 1.891359,-2.521821 -2.527274,-10.1031785 0.625,-12.625 3.152274,-2.5218214 10.739094,6.321928 12,8.84375 2.521821,-1.891358 5.035226,-8.8382973 8.1875,-9.46875 z m 7.5625,12.3125 c -0.844442,0.01991 -1.703778,0.135185 -2.53125,0.3125 1.891368,3.782737 5.691476,3.139892 8.84375,5.03125 4.41319,1.260916 7.566476,5.035226 10.71875,8.1875 9.456833,11.978654 13.875,30.900332 13.875,46.03125 0,5.674096 -1.284205,14.5 6.28125,14.5 0,-20.805024 -1.879988,-44.758963 -15.75,-61.78125 C 70.272949,23.973994 61.569191,17.213759 53.40625,17.40625 z m -16.5,1 c -2.429623,0.100201 -5.635854,1.309687 -6.1875,4.34375 1.260905,0 3.145345,0.0055 4.40625,-0.625 6.737993,-2.127784 4.90505,-3.84758 1.78125,-3.71875 z m -3.875,8.5625 c -4.749346,0.198245 -8.478301,4.691417 -7.375,9.65625 l 1.28125,-3.15625 c 3.782737,0.630453 5.661703,-1.248512 5.03125,-5.03125 l 3.15625,-0.65625 0,-0.625 c -0.709262,-0.157615 -1.415272,-0.215821 -2.09375,-0.1875 z m 22.28125,14.0625 c -2.521822,1.260906 -3.15625,4.415679 -3.15625,6.9375 l 1.25,0 1.90625,-6.9375 z m -41,15.125 c -3.152274,0 -3.777284,6.317953 -0.625,5.6875 3.152275,-0.630452 4.407728,-5.6875 0.625,-5.6875 z m 6.9375,6.3125 -3.15625,5.6875 1.90625,0.625 1.875,-6.3125 -0.625,0 z"
-     inkscape:connector-curvature="0"
-     id="rect2946"
-     style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-</svg>
diff --git a/texi2man b/texi2man
deleted file mode 100755 (executable)
index 9c345f6..0000000
--- a/texi2man
+++ /dev/null
@@ -1,189 +0,0 @@
-#!/usr/bin/perl
-# Written by Adrian Mariano, additional features by Eric Backus,
-# yet more features by Tim Mann.
-
-# Script to translate a texinfo file into an nroff manual page.
-
-$version="1.01.tpm1";
-
-$html=0;
-$ignore=0;
-$tex=0;
-$doman=0;
-$title=0;
-$diditem=0;
-$justdidlp=1;
-$noman=0;
-$info=0;
-$manprefix="";
-$args=($#ARGV < 0) ? "stdin" : "@ARGV";
-$itemxcomma=0;
-
-printf(".\\\"Do not edit this file.  It was created from %s\n", $args);
-printf(".\\\"using texi2man version %s on %s", $version, `date`);
-printf(".\\\"If you want a typeset version, you will get better\n");
-printf(".\\\"results with the original file.\n.\\\"\n");
-
-sub parse
-{
-    if (s/\@c man //) { print; next; }
-    if (/\@c noman/) { $noman=1; next; }
-    if (/\@c end noman/) { $noman=0; next; }
-    if ($noman) { next; }
-
-    if (/\@c ifman\s*(.*)/) { $doman=1; $manprefix = $1; next; }
-    if (/\@c end ifman/) { $doman=0; $manprefix = ""; next; }
-
-    if (/^\\input/) { next; }
-    if (/^\*/) { next; }
-    if (/^INFO-DIR-SECTION/) { next; }
-    if (/^START-INFO-DIR-ENTRY/) { next; }
-    if (/^END-INFO-DIR-ENTRY/) { next; }
-
-    if (/\@titlepage/) { $title=1; next; }
-    if (/\@end titlepage/) { $title=0; next; }
-    if (/\@tex/) { $tex=1; next; }
-    if (/\@end tex/) { $tex=0; next; }
-    if (/\@ignore/) { $ignore=1; next; }
-    if (/\@end ignore/) { $ignore=0; next; }
-    if (/\@ifinfo/) { $info=1; next; }
-    if (/\@end ifinfo/) { $info=0; next; }
-    if (/\@ifhtml/) { $html=1; next; }
-    if (/\@end ifhtml/) { $html=0; next; }
-    if (/\@ifnothtml/) { next; }
-    if (/\@end ifhtml/) { next; }
-    if (/\@iftex/) { $tex=1; next; }
-    if (/\@end iftex/) { $tex=0; next; }
-    if (/\@ifnottex/) { next; }
-    if (/\@end iftex/) { next; }
-    if (!$doman && ($ignore || $html || $title || $tex || $info)) { next; }
-
-    s/\\/\\\\/g;
-    s/\@-/\\-/g;
-    s/\@cite\{([^}]*)}/\`$1\'/g;
-    s/\@code\{([^}]*)}/\`$1\'/g;
-    s/\@email\{([^}]*)}/\`$1\'/g;
-    s/\@file\{([^}]*)}/\`$1\'/g;
-    s/\@kbd\{([^}]*)}/\`$1\'/g;
-    s/\@samp\{([^}]*)}/\`$1\'/g;
-    s/\@url\{([^}]*)}/\`$1\'/g;
-    s/\@dfn\{([^}]*)}/\"$1\"/g;
-    s/\@key\{([^}]*)}/<$1>/g;
-    s/\@emph\{([^}]*)}/\\fI$1\\fR/g;
-    s/\@strong\{([^}]*)}/\\fB$1\\fR/g;
-    s/\@var\{([^}]*)}/\U$1\E/g;
-    s/\@sc\{([^}]*)}/\U$1\E/g;
-    s/\@w\{([^}]*)}/$1/g;
-    s/\@pxref\{([^}]*)}/See \\fI$1\\fR/g;
-    s/\@xref\{([^}]*)}/See \\fI$1\\fR/g;
-    s/\@ref\{([^}]*)}/\\fI$1\\fR/g;
-    s/\@footnote\{([^}]*)}/[$1]/g;
-    s/\@minus\{}/-/g;
-    s/\@copyright\{}/(C)/g;
-    s/\@noindent//;
-    s/\@\{/{/g;
-    s/\@}/}/g;
-    s/\@\@/@/g;
-    s/\\'\\'/\"/g;
-    s/\\`\\`/\"/g;
-    s/---/ -- /g;
-
-    s/\@value\{([^\s]+)}/$value{$1}/eg;
-    if (/\@set\s+([^\s]+)\s+(.*)$/) { $value{$1} = $2; next; }
-    if (/\@clear\s+([^\s]+)\s+(.*)$/) { delete $value{$1}; next; }
-
-    if ($itemxcomma) {
-        # If multiple items have the same description, put the items
-        # on one line, separated by commas
-        if (/\@itemx (.*)/) { printf(", $1"); $diditem=1; next; }
-        elsif ($diditem) { printf("\n"); $diditem=0; }
-       if (/\@item (.*)/) {
-           printf("%s.TP\n%s.B $1", $manprefix, $manprefix);
-           $diditem=1;
-           next;
-       }
-    } else {
-        # If multiple items have the same description, put the items
-        # on separate lines
-       if (/\@item (.*)/) {
-           printf("%s.TP\n%s.B $1\n", $manprefix, $manprefix);
-           next;
-       }
-       if (/\@itemx (.*)/) {
-           printf("%s.PD 0\n%s.TP\n%s.B $1\n%s.PD\n",
-                  $manprefix, $manprefix, $manprefix, $manprefix);
-           next;
-       }
-    }
-
-    if (s/\@chapter (.*)/.SH \U$1\E/)
-    {
-       printf("%s%s", $manprefix, $_);
-       $justdidlp=1;
-       next;
-    }
-    if (s/\@unnumbered (.*)/.SH \U$1\E/)
-    {
-       printf("%s%s", $manprefix, $_);
-       $justdidlp=1;
-       next;
-    }
-    if (s/\@section (.*)/$1/)
-    {
-       printf("%s.SS %s", $manprefix, $_);
-       $justdidlp=1;
-       next;
-    }
-
-    if (/\@example/) {
-       printf("%s.nf\n", $manprefix);
-       $manprefix = $manprefix . "    ";
-       $example=1;
-       next;
-    }
-    if (/\@end example/) {
-       $manprefix = substr($manprefix, 0, -4);
-       printf("%s.fi\n", $manprefix);
-       $example=0;
-       next;
-    }
-
-    if (/\@display/) { printf("%s.nf\n", $manprefix); $example=1; next; }
-    if (/\@end display/) { printf("%s.fi\n", $manprefix); $example=0; next; }
-    if (/\@format/) { printf("%s.nf\n", $manprefix); $example=1; next; }
-    if (/\@end format/) { printf("%s.fi\n", $manprefix); $example=0; next; }
-    if (/\@smallexample/) { printf("%s.nf\n", $manprefix); $example=1; next; }
-    if (/\@end smallexample/) { printf("%s.fi\n", $manprefix); $example=0; next; }
-    if (!$example && /^\s*$/ && !$doman)
-    {
-       if ($justdidlp) { next; }
-#      printf(".PP\n");
-       printf("\n");
-       $justdidlp=1;
-       next;
-    }
-    if (/\@end table/) {
-       printf("%s.PP\n", $manprefix);
-       $justdidlp=1;
-    }
-
-    if (/\@include (.*)/) {
-       my $INCL;
-        open($INCL, $1) or open($INCL, "../$1") or die "$1: $!";
-        while (<$INCL>) {
-            parse();
-        }
-        next;
-    }
-
-    if (/^\@/) { next; }
-
-    printf("%s%s", $manprefix, $_);
-
-    if (!$doman) { $justdidlp=0; }
-}
-
-while(<>)
-{
-    parse();
-}
diff --git a/themes/Mono/BlackAdvisor.svg b/themes/Mono/BlackAdvisor.svg
deleted file mode 100644 (file)
index 810c98d..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="BlackAdvisor.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="911"
-     inkscape:window-height="806"
-     id="namedview13"
-     showgrid="false"
-     inkscape:zoom="5.4390625"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3479">
-    <path
-       inkscape:connector-curvature="0"
-       id="path3472"
-       d="M 49.25,14.21875 C 39.910686,14.358985 35.791714,27.805464 43.5,33.125 c 2.566083,1.597584 -3.210938,3.991114 -4.25,5.5625 -9.274806,7.567372 -20.614857,12.386551 -29.8125,19.9375 -2.680081,5.356719 8.136618,8.225957 3.5,13.40625 -3.2826681,3.78164 -4.8097482,11.107248 1.09375,13.25 15.506569,6.678354 33.102254,5.956117 49.75,5.1875 C 72.586693,89.117261 83.210769,89.209489 90,82.59375 92.948267,77.62292 87.728952,73.035844 86.59375,68.75 87.103289,64.667134 93.971393,60.251517 89.40625,56.34375 78.449739,48.769825 65.216833,43.416387 56.0625,33.46875 63.872476,28.605464 60.801562,15.30051 51.6875,14.3125 50.881959,14.216672 50.060788,14.136267 49.25,14.21875 z"
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path542"
-       inkscape:connector-curvature="0"
-       d="m 88.805847,80.060807 c 0,4.936981 -17.2091,8.939192 -38.437593,8.939192 -21.228508,0 -38.437607,-4.002211 -38.437607,-8.939192 0.182689,-5.655424 4.512981,-7.426898 4.19981,-11.493279 -0.261262,-3.392111 -6.2997675,-6.658791 -4.930242,-8.939193 1.369511,-2.280402 33.050872,-18.790543 36.520281,-26.817577 l 5.660643,0 c 3.104207,8.209466 34.146445,23.533779 35.424663,25.722973 1.278218,2.189209 -4.116305,6.409485 -4.19981,10.033797 -0.09392,4.077339 4.199855,5.473007 4.199855,11.493279 z" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:1.99999975999999990;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path544"
-       inkscape:connector-curvature="0"
-       d="m 22.537552,64.537195 c 5.621662,-2.448595 15.424662,-3.814241 27.830657,-3.814241 13.030571,0 22.591778,1.695662 28.145375,4.351158" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path547"
-       inkscape:connector-curvature="0"
-       d="m 15.680428,77.014168 c 5.140721,-3.436965 18.730997,-5.892554 34.687826,-5.892554 15.249789,0 28.338111,2.242809 33.95524,5.441605" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path549"
-       inkscape:connector-curvature="0"
-       d="m 24.040636,53.513558 c 6.313617,-1.949985 15.776725,-3.189264 26.354264,-3.189264 10.835338,0 20.501228,1.300421 26.810253,3.333107" />
-    <path
-       inkscape:connector-curvature="0"
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path551"
-       d="m 58.585283,24.783738 a 8.5822651,8.5743292 0 0 1 -17.16453,0 8.5822651,8.5743292 0 1 1 17.16453,0 z" />
-    <rect
-       style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#ffffff;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="rect558"
-       y="32.491508"
-       x="48.49662"
-       height="0.045608133"
-       width="3.0128756" />
-  </g>
-</svg>
diff --git a/themes/Mono/BlackArchbishop.svg b/themes/Mono/BlackArchbishop.svg
deleted file mode 100644 (file)
index aec40b2..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="BlackArchbishop.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1100"
-     inkscape:window-height="898"
-     id="namedview3006"
-     showgrid="false"
-     inkscape:zoom="6.2871875"
-     inkscape:cx="50.349355"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3446">
-    <path
-       sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
-       inkscape:connector-curvature="0"
-       id="path3433"
-       d="m 12.819956,9.1806647 0,17.6541443 19.561576,19.949257 -8.809233,8.843822 17.618467,17.687643 8.809233,-8.843821 8.809233,8.843821 17.618467,-17.687643 -8.809233,-8.843822 19.879683,-19.949257 0,-17.6541443 -17.618467,0 L 49.999999,29.129922 30.438423,9.1806647 z m 0.09187,39.4385123 -7.594402,7.913193 -0.1004855,3.919421 6.5650565,6.565867 4.287383,0.067 14.771377,14.840201 0.100485,4.287914 5.325734,5.359892 3.985927,0.0335 7.627898,-7.946692 -0.535923,-3.048439 -31.619454,-31.690361 z m 73.858241,-0.159054 -2.813596,0.301494 -31.619454,31.690361 -0.535923,3.048439 7.946005,8.105746 3.985927,-0.0335 5.325734,-5.359892 0.100485,-4.287914 14.771377,-14.840201 4.287383,-0.067 6.565057,-6.565867 -0.100486,-3.919419 z M 18.30455,70.594461 7.1841491,81.716237 6.983178,85.267165 l 4.655831,4.656407 3.851946,0.100497 11.086906,-11.121775 z m 63.549951,0 -8.273311,8.307833 11.086906,11.121775 3.851947,-0.100497 4.65583,-4.656407 -0.200971,-3.550928 z"
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1505"
-       inkscape:connector-curvature="0"
-       d="M 85.865283,11.021975 69.428517,11.021962 25.329183,55.251504 41.765949,71.736815 85.865283,27.507273 z" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1507"
-       inkscape:connector-curvature="0"
-       d="m 16.107382,51.22905 -2.638922,-0.302474 -5.1647818,5.18002 -0.07532,3.629792 6.1072188,6.125272 3.996093,0.07569 13.797814,13.838561 0.07547,4.007875 4.976278,4.990959 3.7322,0.03778 5.164756,-5.180006 -0.490101,-2.835771 z" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1509"
-       inkscape:connector-curvature="0"
-       d="M 18.497472,70.837574 8.1387444,81.226891 7.9502319,84.516392 12.28562,88.864585 15.867028,88.978051 26.225763,78.588748 z" />
-    <path
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1511"
-       inkscape:connector-curvature="0"
-       d="M 75.654618,21.369736 62.683176,34.311185 m -25.075442,25.017458 -2.578731,2.572763" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1520"
-       inkscape:connector-curvature="0"
-       d="M 52.513745,30.143021 66.498307,44.242887" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1518"
-       inkscape:connector-curvature="0"
-       d="M 33.751024,49.904691 46.672385,62.932603" />
-    <path
-       d="M 14.134708,11.021979 30.571474,11.021965 74.670821,55.251508 58.234042,71.736805 14.134708,27.507263 z"
-       inkscape:connector-curvature="0"
-       id="path1460"
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <path
-       d="m 83.89261,51.229054 2.638918,-0.302474 5.164783,5.180006 0.07533,3.629806 -6.107227,6.125272 -3.996089,0.07569 -13.797822,13.838562 -0.07547,4.007875 -4.976278,4.990945 -3.732199,0.03778 -5.164757,-5.180007 0.490101,-2.835757 z"
-       inkscape:connector-curvature="0"
-       id="path1462"
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <path
-       d="m 81.502516,70.837578 10.358731,10.389316 0.188518,3.289502 -4.335392,4.348193 -3.581414,0.113466 -10.358732,-10.389317 z"
-       inkscape:connector-curvature="0"
-       id="path1464"
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <path
-       d="M 24.345386,21.36974 64.970987,61.90141"
-       inkscape:connector-curvature="0"
-       id="path1466"
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-  </g>
-</svg>
diff --git a/themes/Mono/BlackBishop.svg b/themes/Mono/BlackBishop.svg
deleted file mode 100644 (file)
index 240d471..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="BlackBishop.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1108"
-     inkscape:window-height="918"
-     id="namedview3021"
-     showgrid="false"
-     inkscape:zoom="4.5760857"
-     inkscape:cx="53.840011"
-     inkscape:cy="38.010713"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3395">
-    <path
-       inkscape:connector-curvature="0"
-       id="path3384"
-       d="M 48.875,4.0625 C 42.979107,4.7160167 40.56671,13.172145 45.375,16.75 33.705185,21.811304 22.81229,34.352877 26.5,47.875 c 0.755433,4.545189 3.611056,8.479786 7.34375,11.125 -2.697277,3.531117 -6.002981,8.565368 -4.59375,13.0625 3.892868,3.917454 11.023151,3.230995 15.34375,4.1875 -8.015711,6.107162 -18.754663,0.401995 -27.875,3.1875 -3.562942,0.634239 -7.2781567,1.637622 -9.78125,4.46875 3.232034,2.229759 5.577421,9.739688 9.625,6.125 8.67458,-2.542111 19.004522,1.588506 27.53125,-1.90625 3.032615,-0.926108 5.598214,-5.801025 8.3125,-2.25 7.716873,6.488418 18.49603,2.301877 27.59375,3.46875 3.591714,-0.791393 6.539997,4.473829 8.627071,-0.479448 3.604175,-2.7884 5.776084,-6.139951 0.497929,-7.520552 -8.497249,-3.772598 -17.783532,-2.309053 -26.75,-2.15625 -2.370914,-0.05949 -6.051315,-2.040364 -6.5,-3.125 5.061844,-0.886603 12.637747,0.04255 15.375,-5.1875 -0.124759,-4.239386 -2.015198,-8.51999 -4.6875,-11.8125 8.233873,-4.950921 9.117584,-16.835566 6,-25.03125 -3.346393,-7.797885 -10.337734,-14.121599 -17.6875,-17.5 5.282924,-4.584357 0.911225,-13.6942159 -6,-12.46875 z"
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <path
-       inkscape:connector-curvature="0"
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path457"
-       d="m 55.21546,11.229857 a 5.2154485,5.2270692 0 0 1 -10.430897,0 5.2154485,5.2270692 0 1 1 10.430897,0 z" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path459"
-       inkscape:connector-curvature="0"
-       d="M 35.907425,58.203367 C 33.709813,55.600983 27.938004,54.20094 27.834509,41.315188 27.742075,29.80588 42.868715,17.773397 50.193329,17.67821 57.523654,17.583 72.14423,29.820628 72.165806,41.315188 c 0.02622,13.95243 -5.611021,14.852859 -7.714863,16.888179 z" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path461"
-       inkscape:connector-curvature="0"
-       d="m 69.315766,70.339665 c 0,2.158388 -8.648281,3.908094 -19.316459,3.908094 -10.66819,0 -19.316471,-1.749706 -19.316471,-3.908094 0.06829,-1.450802 2.759449,-10.112943 6.706186,-11.445443 6.931028,-2.340042 18.489497,-2.613508 25.675173,0 3.857302,1.402945 6.319871,10.132812 6.251571,11.445443 z" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path463"
-       inkscape:connector-curvature="0"
-       d="m 35.131354,67.737307 c 3.543362,-0.857773 8.870992,-1.403431 14.828539,-1.403431 6.002673,0 11.365849,0.553958 14.908744,1.422973" />
-    <path
-       style="color:#000000;fill:#ef2929;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path465"
-       inkscape:connector-curvature="0"
-       d="m 49.999995,30.84251 0,17.019127" />
-    <path
-       style="color:#000000;fill:#ef2929;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path467"
-       inkscape:connector-curvature="0"
-       d="m 40.9301,40.052016 18.139791,0" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path469"
-       inkscape:connector-curvature="0"
-       d="m 9.7679649,84.066302 4.5239711,4.933705 c 2.082446,-1.380292 4.155818,-1.648242 6.836257,-1.648242 l 18.646284,0 c 3.294244,0 7.957334,-4.086424 10.338673,-5.67977 2.349142,1.682334 6.958135,5.67977 10.338673,5.67977 l 19.545817,0 c 2.265965,0 3.637121,0.21467 5.800123,1.648242 L 90.232026,84.16401 C 87.999867,82.458628 79.024912,80.473962 75.08046,80.634393 71.136008,80.794824 63.39618,81.896777 59.919196,80.772564 56.442212,79.648351 53.249061,77.010455 51.83357,75.578552 l -3.610572,0.09771 c -1.763613,1.563783 -4.048493,4.144826 -8.518834,5.096303 -4.470341,0.951476 -10.447841,-0.113862 -14.34174,-0.138171 -3.893912,-0.02443 -12.98049,0.959632 -15.5944591,3.431909 z" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path491"
-       inkscape:connector-curvature="0"
-       d="m 37.811507,58.504451 c 3.543376,-0.857773 6.021822,-1.403431 11.979356,-1.403431 6.002673,0 8.854713,0.456249 12.397621,1.325264" />
-  </g>
-</svg>
diff --git a/themes/Mono/BlackCanon.svg b/themes/Mono/BlackCanon.svg
deleted file mode 100644 (file)
index 1b14613..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="BlackCanon.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1059"
-     inkscape:window-height="884"
-     id="namedview3034"
-     showgrid="false"
-     inkscape:zoom="4.3544519"
-     inkscape:cx="59.521279"
-     inkscape:cy="34.612685"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3358">
-    <path
-       sodipodi:nodetypes="ccccccccccscccccc"
-       inkscape:connector-curvature="0"
-       id="path3345"
-       d="m 14.5625,23.71875 c -0.855919,4.992515 -7.4650395,12.051407 -4.53125,15.6875 4.677638,-0.95495 10.26485,0.402562 15.512362,3.481749 7.460632,4.01405 7.452164,11.663548 -3.137362,7.799501 -2.299145,0.05143 -3.440446,0.123985 -8.5,0.175581 0,7.739583 0,25.303586 0,33.043169 3.488559,0.911573 9.811659,-2.423417 10.09375,2.8125 3.162155,7.238164 15.191312,5.114717 15.59375,-2.8125 6.531951,0.179037 13.196918,0.06658 18.625,0.06278 0.941022,8.065286 13.416547,9.699856 15.90625,1.968468 0.09806,-0.99702 0.361996,-2.608085 1.0428,-2.602569 2.967909,0.02404 6.268184,-0.05846 9.532539,-0.103907 0.03254,-6.480089 -0.732115,-14.141363 1.424661,-19.762274 4.744888,0.366514 6.721215,-6.635094 2.65625,-8.90625 4.507691,-6.571819 -0.329555,-7.699632 -6.439479,-9.374264 C 61.352847,38.719241 40.363924,32.250245 19.375,25.78125 c 0.890723,-2.779788 -4.57609,-5.368106 -4.8125,-2.0625 z"
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.99999988000000006;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1821"
-       inkscape:connector-curvature="0"
-       d="m 16.418314,24.466548 -5.462082,13.149449 0.657121,0.340722 2.377362,-1.959115 68.17484,32.165576 6.271286,-19.016126 -70.804734,-21.848317 -0.450813,-2.552283 z" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1823"
-       inkscape:connector-curvature="0"
-       d="m 15.912558,52.68729 16.4874,0 0,-4.956333 34.390862,0 0,4.956333 16.386234,0 0,29.232237 -67.264496,0 z" />
-    <path
-       sodipodi:nodetypes="cscsc"
-       inkscape:connector-curvature="0"
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.99999988000000006;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1825"
-       d="m 37.659738,82.728724 c 0.0028,3.285421 -2.985851,6.276644 -6.271273,6.276644 -3.285423,0 -6.274088,-2.991223 -6.271274,-6.276644 -0.0028,-3.285421 2.985851,-6.276644 6.271273,-6.276644 3.285423,0 6.274088,2.991223 6.271274,6.276644 z" />
-    <path
-       inkscape:connector-curvature="0"
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.99999988000000006;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1827"
-       d="m 72.657508,82.728724 a 6.2712758,6.2712758 0 1 1 -12.542547,0 6.2712758,6.2712758 0 1 1 12.542547,0 z" />
-    <path
-       inkscape:connector-curvature="0"
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1829"
-       d="m 89.043767,58.655117 a 2.8321891,2.8321891 0 1 1 -5.664377,0 2.8321891,2.8321891 0 1 1 5.664377,0 z" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:1.99999988000000006;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1836"
-       inkscape:connector-curvature="0"
-       d="m 32.399958,47.730957 34.390862,0 0,4.956333 16.386234,0 0,7.990818" />
-  </g>
-</svg>
diff --git a/themes/Mono/BlackChancellor.svg b/themes/Mono/BlackChancellor.svg
deleted file mode 100644 (file)
index 556385b..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="BlackChancellor.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1045"
-     inkscape:window-height="865"
-     id="namedview3047"
-     showgrid="false"
-     inkscape:zoom="5.9829687"
-     inkscape:cx="50.362481"
-     inkscape:cy="50.035942"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3324">
-    <path
-       id="path3321"
-       d="M 55.90625 8.3125 C 55.384423 8.2653053 54.895418 8.4546769 54.4375 8.9375 C 51.620179 11.08331 52.130032 16.185253 47.75 15.34375 C 36.059771 17.167289 27.681118 26.921305 24.3125 37.8125 C 20.434043 48.582017 18.950849 60.090894 18.84375 71.53125 L 12.65625 76.21875 L 12.65625 89.6875 L 28 89.6875 L 28 84 L 37.90625 84 L 37.90625 89.6875 L 51.03125 89.6875 L 51.03125 84 L 60.6875 84 L 60.6875 89.6875 L 76.15625 89.6875 L 76.15625 76.21875 L 70.09375 71.625 C 70.475987 60.199701 58.574008 53.782384 54.65625 44.03125 C 61.587177 46.05736 66.719267 50.748798 71.03125 56.375 C 74.331166 58.847779 77.466365 54.946292 80.875 56 C 88.445896 55.801512 89.776319 45.871177 85.59375 40.96875 C 82.184737 36.411523 78.723644 31.817566 78.3125 25.9375 C 77.287151 21.578534 70.990991 20.059601 72.8125 14.96875 C 72.986041 12.287379 77.954054 9.4775619 72.53125 9.90625 C 68.424466 9.1111929 64.541304 12.586368 62.03125 14.8125 C 60.829137 12.934526 58.167501 8.5170104 55.90625 8.3125 z "
-       style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:2;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <path
-       d="m 56.170484,11.624692 c 1.365816,1.809585 3.319751,3.605977 3.609338,5.855207 0.748317,0.569935 1.819158,0.03096 2.696634,0.194637 0.886989,-0.02142 1.910602,-0.311126 2.115151,-1.148482 0.816209,-1.119634 1.934426,-2.146402 3.358442,-2.629192 0.493831,-0.534391 1.3157,-0.688931 2.034354,-0.903042 0.595607,1.121788 -0.295803,2.288522 -0.0756,3.448826 -0.09471,1.526876 0.108202,3.122777 0.712649,4.535805 2.021481,1.631313 3.973862,3.456707 4.875404,5.79404 1.107471,2.17006 0.805021,4.681392 1.9367,6.847726 1.323176,3.695985 4.550563,6.513456 6.337024,10.008705 1.272969,2.155525 1.940032,4.808218 0.782432,7.117875 -0.54239,1.037644 -1.585266,1.884596 -2.790953,2.299584 -1.602506,0.478182 -3.35263,0.233173 -4.919905,-0.202196 -0.717291,0.03494 -0.952167,0.620507 -1.246862,1.048693 -0.795631,0.860837 -2.71902,0.670055 -3.215591,-0.262173 -1.139953,-1.026676 -1.840001,-2.247042 -2.931749,-3.283039 -1.706316,-1.793755 -3.480976,-3.558753 -5.533789,-5.048251 -1.062368,-0.572214 -2.321715,-1.215791 -3.530147,-1.698104 -3.1328,-1.310961 -6.094914,-2.962509 -8.971285,-4.652319 -0.312603,0.106128 0.02362,0.741096 -0.06562,1.048693 -0.0253,2.999371 0.79731,6.065586 2.550949,8.64249 0.959984,1.373826 2.025513,2.538257 3.286896,3.729094 2.001752,1.94319 3.762636,4.076443 5.575852,6.173147 1.900365,2.37169 3.644397,4.956026 4.270516,7.847397 -0.05407,0.513651 0.468652,1.345199 -0.294365,1.5494 -0.818057,0.27648 -1.727379,-0.05195 -2.579981,0.08104 -14.16828,-0.05405 -28.336843,-0.03207 -42.504871,0.05912 0.209242,-7.498051 0.864204,-15.035795 2.851907,-22.34316 0.99854,-3.948323 2.247701,-7.864529 4.131077,-11.559029 1.611618,-3.325623 3.726905,-6.456838 6.296312,-9.275401 1.898738,-2.029011 4.521799,-3.373846 7.064243,-4.71276 3.100943,-1.512222 6.594057,-2.552277 10.171769,-2.476083 0.863364,0.02098 1.548041,-0.687097 1.467003,-1.430897 0.399374,-1.728928 1.207215,-3.383898 2.437644,-4.773875 l 0.063,0.07457 0.03538,0.04195 z"
-       inkscape:connector-curvature="0"
-       id="path4298"
-       style="opacity:0.98999999000000005;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.74352377999999997px;stroke-opacity:1" />
-    <path
-       d="m 63.19131,16.958538 -2.681683,0.05546 c 0.118712,-2.529376 -4.667779,-6.667984 -4.667779,-6.667984 0,0 -2.762626,2.752357 -3.208998,6.634145 -6.23494,-0.221388 -11.590598,2.702389 -13.650446,3.8288 -13.049978,7.136288 -18.158133,32.5806 -18.13139,50.310862 L 67.998433,70.988387 C 68.216085,58.801745 51.657778,51.900266 52.142569,40.326133 c 4.184059,2.889113 8.848268,3.67548 12.542245,6.43678 2.933155,2.192571 4.444489,4.76073 7.369023,7.841888 1.078119,1.135853 3.956601,0.632344 4.886387,-1.018581 4.648958,1.238195 9.116141,0.01657 9.011087,-5.874791 -0.093,-5.215452 -6.000817,-9.928774 -8.031887,-14.823295 -0.875581,-2.109997 -0.753132,-5.371172 -2.136468,-7.718833 -1.074125,-1.822897 -3.491685,-3.934191 -4.599549,-4.627768 -0.860477,-2.599441 -0.671762,-7.00272 0.752769,-8.688971 -2.077446,-0.526953 -6.845488,2.049646 -8.744866,5.105976 z m -10.825556,2.010962 0,2.569471 c -4.017248,-0.0032 -9.225792,1.891593 -12.953936,4.920503 -7.453326,6.055411 -10.795053,20.983439 -12.29322,34.571401 -0.421843,3.176303 -0.820052,5.770052 -4.145304,5.990265 -0.158097,-10.881767 3.820952,-33.369704 11.958158,-40.894785 5.17631,-4.786916 10.945937,-6.911461 17.434302,-7.156855 z m 24.406354,32.333452 -1.39469,0.412729 -1.394688,-4.127309 0.464904,0 z m 3.925798,-2.115204 c -2.744186,-0.114639 -4.008704,-5.347016 -1.220366,-5.27955 3.079949,0.07453 3.588265,5.37847 1.220366,5.27955 z m -29.407918,-10.645054 -0.929786,0 c -1.427009,-0.409874 -1.940307,-4.018389 -1.39469,-4.540045 0.810318,0.192018 1.317179,2.88912 2.324476,4.540045 z m 19.73548,-6.832986 -0.929787,-2.063655 c -2.78938,0.41273 -4.184059,-0.825459 -3.719166,-3.301849 l -2.324477,-0.412729 0,-0.41273 c 4.18406,-0.825466 7.903226,2.476383 6.97343,6.190963 z M 67.474184,21.58631 c -0.929786,0 -4.105142,-0.105391 -5.034929,-0.518119 -8.833033,-2.476385 4.105143,-4.021919 5.034929,0.518119 z"
-       inkscape:connector-curvature="0"
-       id="BlackKnight"
-       style="opacity:0.98999999;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.74352378px;stroke-opacity:1" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1432"
-       inkscape:connector-curvature="0"
-       d="m 14.675115,89 0,-12.550404 8.147786,-6.157552 43.229704,0.03915 8.105565,6.118322 0,12.550413 -12.158352,0 0,-6.235991 -12.158352,0 0,6.235991 -10.891855,0 0,-6.235991 -12.116142,0 0,6.235991 z" />
-    <rect
-       style="color:#000000;fill:#ffffcc;fill-opacity:0.99215686000000003;stroke:#ffffff;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:0.99215896000000003;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="rect1436"
-       transform="scale(1,-1)"
-       y="-77.092621"
-       x="17.969149"
-       height="1.2527926"
-       width="52.707691" />
-    <rect
-       style="color:#000000;fill:#ffffcc;fill-opacity:0.99215686000000003;stroke:#ffffff;stroke-width:0.99999994000000003;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:0.99215896000000003;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="rect1438"
-       transform="scale(1,-1)"
-       y="-70.807121"
-       x="24.742502"
-       height="1.2527926"
-       width="39.160954" />
-  </g>
-</svg>
diff --git a/themes/Mono/BlackCobra.svg b/themes/Mono/BlackCobra.svg
deleted file mode 100644 (file)
index f0efee1..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="BlackCobra.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1118"
-     inkscape:window-height="1001"
-     id="namedview3062"
-     showgrid="false"
-     inkscape:zoom="3.6183594"
-     inkscape:cx="73.979343"
-     inkscape:cy="38.430673"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3299">
-    <path
-       id="path3278"
-       d="M 49.875 12.78125 C 36.208947 14.040304 21.158011 18.002392 12.5625 29.25 C 6.8974305 40.549136 8.2069615 55.093518 14.71875 65.71875 C 21.644733 72.215634 24.451299 81.634671 23.375 91 L 44.625 91 C 44.60774 80.140818 41.493897 69.034962 45.875 58.59375 C 47.964807 52.504483 51.13671 46.50081 54.9375 41.53125 C 60.83233 46.375445 70.466106 50.009761 77.28125 45.25 L 81.625 48.96875 C 81.626 49.155774 81.68087 49.342196 81.78125 49.5 L 84.375 53.6875 C 84.630758 54.173992 85.31614 54.355347 85.78125 54.0625 C 86.24636 53.769653 86.39066 53.065906 86.0625 52.625 L 84.3125 49.78125 L 88.9375 49.65625 C 89.461195 49.64003 89.922615 49.148691 89.90625 48.625 C 89.889885 48.10131 89.398686 47.639741 88.875 47.65625 L 83.53125 47.09375 L 78.875 43.8125 C 82.834217 37.696604 76.282515 30.735922 71.40625 27.46875 C 69.344451 25.588242 66.045867 24.783743 63.875 24.1875 C 62.664721 18.36938 55.90774 12.612175 49.875 12.78125 z "
-       style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.99999988000000006;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans" />
-  </g>
-  <path
-     d="m 25.432525,89.000002 17.196905,0 C 42.730933,82.977666 40.876772,75.214575 41.485844,69.424179 43.542318,49.87355 55.35777,38.154068 61.433513,28.73047 56.451233,21.980293 17.075156,27.123291 17.075156,27.123291 c -8.5180868,6.268023 -7.5409216,30.01686 0.321436,38.733205 4.986701,5.528358 8.396845,10.916664 8.035933,23.143506 z"
-     inkscape:connector-curvature="0"
-     id="path776"
-     style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.99999988;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-  <path
-     d="m 51.147517,14.747949 c -12.857496,0.321436 -29.090094,6.428754 -32.947336,11.73247 14.786124,-0.321435 19.699942,4.547543 29.090093,8.196651 7.436449,2.889875 13.40428,10.435793 21.375583,10.768151 5.253828,0.219056 9.646984,-1.820074 9.482407,-5.464434 C 77.924159,35.018218 72.39172,29.980922 67.540832,27.444727 65.537829,26.39749 64.326448,26.319702 60.790642,26.801855 65.290768,23.3675 55.004772,14.746994 51.147517,14.747949 z"
-     inkscape:connector-curvature="0"
-     id="path778"
-     style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.99999988;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-  <path
-     d="m 64.64788,36.605695 a 1.6071872,1.2857497 0 1 1 -3.214371,0 1.6071872,1.2857497 0 1 1 3.214371,0 z"
-     id="path780"
-     style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.99999994000000003;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-     inkscape:connector-curvature="0" />
-  <path
-     d="m 72.68382,33.552035 a 1.6071872,1.2857497 0 1 1 -3.214371,0 1.6071872,1.2857497 0 1 1 3.214371,0 z"
-     id="path782"
-     style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.99999994000000003;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-     inkscape:connector-curvature="0" />
-  <path
-     d="m 77.183944,43.838042 5.785883,4.98228 5.946587,-0.160718"
-     inkscape:connector-curvature="0"
-     id="path784"
-     style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.99999988;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-  <path
-     d="m 82.648391,48.98104 2.571499,4.178691"
-     inkscape:connector-curvature="0"
-     id="path786"
-     style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.99999988;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-  <path
-     d="m 18.200181,26.480419 c 14.786124,-0.321435 25.950437,5.22942 32.499452,11.208251"
-     inkscape:connector-curvature="0"
-     id="path794"
-     style="color:#000000;fill:none;stroke:#ffffff;stroke-width:1.99999988000000006;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-  <path
-     d="m 58.701296,24.632144 3.134031,1.3e-5 c -0.241083,0.80359 0.803577,1.875836 0.803577,1.875836 z"
-     inkscape:connector-curvature="0"
-     id="path796"
-     style="color:#000000;fill:none;stroke:#ffffff;stroke-width:0.99999994000000003;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-</svg>
diff --git a/themes/Mono/BlackCommoner.svg b/themes/Mono/BlackCommoner.svg
deleted file mode 100644 (file)
index e74738f..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="BlackCommoner.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1071"
-     inkscape:window-height="944"
-     id="namedview3075"
-     showgrid="false"
-     inkscape:zoom="6.71125"
-     inkscape:cx="50.35219"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3252">
-    <path
-       inkscape:connector-curvature="0"
-       id="path3245"
-       d="m 49.4375,10.6875 c -3.09321,4.166816 -10.667954,7.22444 -6.525631,13.180637 2.745621,5.046147 1.694493,7.160457 -3.786869,6.444363 -10.055659,0.341558 -21.195638,6.081573 -22.65625,17 -1.594214,9.065128 -2.179145,19.462503 -10.3125,25.28125 -3.1330659,2.520382 -7.13259343,8.443449 -2.40625,11.4375 12.116242,6.39631 26.645762,5.974327 40.093395,6.901657 C 60.81729,90.813464 78.738089,91.292867 94.65625,85 99.07521,83.650431 99.566744,77.940411 96.09375,75.1875 91.175155,70.800681 85.873835,65.942961 85.65625,58.8125 84.605979,49.504682 83.73673,37.653718 73.8125,33.4375 68.613326,30.835632 62.692537,30.169916 56.90625,30 57.744256,24.868086 63.243419,18.585566 56.733266,15.203954 54.467869,14.342448 51.604656,6.8210259 49.4375,10.6875 z"
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.99999988000000006;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.99999988;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path929"
-       inkscape:connector-curvature="0"
-       d="M 96.499695,80.245548 C 96.499695,85.080497 75.681819,89 50.001676,89 24.321532,89 3.503671,85.080497 3.503671,80.245548 3.3066405,76.704422 11.26425,71.640462 13.946019,66.572862 c 4.671893,-8.828224 2.070271,-21.697196 9.457225,-28.42738 6.725334,-6.127398 17.494161,-6.175082 26.598432,-6.196973 9.296258,-0.02235 20.377123,-0.119036 27.189522,6.196973 7.527911,6.979404 4.242121,20.3535 9.063165,29.411027 2.553611,4.797582 10.292391,8.859192 10.245332,12.689039 z" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:1.99999988000000006;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path931"
-       inkscape:connector-curvature="0"
-       d="m 11.748787,75.929156 c 8.392682,-2.56856 22.395831,-4.438062 38.252895,-4.438062 16.365789,0 30.7568,1.99138 39.043206,4.687395" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:1.99999988000000006;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path933"
-       inkscape:connector-curvature="0"
-       d="m 83.253534,74.88708 c -11.352866,2.489593 -23.549078,3.646043 -33.251858,3.686268 -13.008728,0 -24.769758,-1.505542 -33.208978,-3.619808" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:1.99999988000000006;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path935"
-       inkscape:connector-curvature="0"
-       d="m 22.809954,61.132923 c 7.646671,-1.039592 17.203819,-2.765069 27.356324,-2.765069 10.298695,0 19.650779,1.743245 27.356339,2.81024" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.99999988;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path937"
-       inkscape:connector-curvature="0"
-       d="m 47.341824,31.850146 -3.64496,-12.393945 7.191419,-7.377348 7.191434,7.377348 -3.84199,12.393945 z" />
-    <rect
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.99999988000000006;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="rect978"
-       y="28.99757"
-       x="49.903152"
-       height="0.098365344"
-       width="1.5761958" />
-  </g>
-</svg>
diff --git a/themes/Mono/BlackCrownedBishop.svg b/themes/Mono/BlackCrownedBishop.svg
deleted file mode 100644 (file)
index 767dd01..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="BlackCrownedBishop.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1016"
-     inkscape:window-height="956"
-     id="namedview3089"
-     showgrid="false"
-     inkscape:zoom="6.821875"
-     inkscape:cx="50.360381"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3222">
-    <path
-       inkscape:connector-curvature="0"
-       id="path3213"
-       d="M 43.1875,16.625 C 34.252416,25.737454 19.681992,27.182212 11.375,36.90625 8.1589391,41.301795 12.273796,46.82075 17.187027,46.999878 24.605531,48.270184 29.194101,56.048389 34,60.375 c -2.289219,3.503265 -6.34719,8.667894 -3.84375,12.84375 3.881982,3.19454 10.501094,2.680052 14.21875,3.6875 -7.848125,5.517337 -17.968705,0.195077 -26.6875,2.84375 -3.555287,0.579384 -7.143917,1.566725 -9.65625,4.34375 3.233586,2.424478 5.622555,9.467977 9.78125,5.84375 8.590553,-2.150661 18.183067,1.615357 26.5,-1.71875 3.11849,-1.324514 5.787994,-5.54017 8.65625,-1.71875 7.472669,5.731011 17.585366,1.731991 26.1875,2.90625 3.461377,-0.769478 6.32612,4.323677 8.452762,-0.52984 2.799744,-2.480349 6.0131,-5.487474 1.234738,-6.97016 -8.687049,-4.165143 -18.335232,-2.351099 -27.5625,-2.5 -1.940605,-0.249267 -4.560229,-1.711644 -5.5,-2.71875 4.851019,-0.979881 12.321337,0.05066 14.9375,-5.09375 -0.101992,-4.130953 -2.002882,-8.205085 -4.5625,-11.4375 C 72.161011,55.214459 76.577737,47.312263 85,46.53125 91.2011,45.306042 91.305938,36.867433 86.4375,33.875 77.261782,26.737689 64.681464,24.637275 56.46875,16.09375 52.16582,16.512515 47.12658,15.291378 43.1875,16.625 z"
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path900"
-       inkscape:connector-curvature="0"
-       d="M 36.30595,59.417265 24.376483,48.033607 C 20.139397,43.990392 12.237729,46.016232 12.268826,40.407532 12.311717,32.670013 34.907175,27.788378 44.547031,18.103208 l 11.078999,0 c 10.065834,10.160662 32.354717,13.792369 32.370902,22.304324 0.01009,5.621984 -8.151701,3.891832 -12.055165,7.626075 L 64.042286,59.417265 z" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path902"
-       inkscape:connector-curvature="0"
-       d="m 68.769536,71.07519 c 0,2.073311 -8.403716,3.754049 -18.770208,3.754049 -10.366505,0 -18.770221,-1.680738 -18.770221,-3.754049 0.06636,-1.393616 2.681415,-9.714324 6.516542,-10.994302 6.735026,-2.247804 17.966632,-2.510491 24.949104,0 3.748221,1.347646 6.141152,9.733411 6.074783,10.994302 z" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path904"
-       inkscape:connector-curvature="0"
-       d="m 35.551825,68.575408 c 3.44316,-0.823963 8.62013,-1.348112 14.409203,-1.348112 5.832924,0 11.044434,0.532122 14.48714,1.366884" />
-    <path
-       style="color:#000000;fill:#ef2929;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path906"
-       inkscape:connector-curvature="0"
-       d="m 49.999996,33.134884 0,16.348288" />
-    <path
-       style="color:#000000;fill:#ef2929;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path908"
-       inkscape:connector-curvature="0"
-       d="m 41.186589,41.981381 17.626815,0" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path910"
-       inkscape:connector-curvature="0"
-       d="m 10.905688,84.260767 4.396038,4.739234 c 2.023556,-1.325884 4.038295,-1.583273 6.642934,-1.583273 l 18.118985,0 c 3.201087,0 7.732309,-3.925351 10.046306,-5.455892 2.282711,1.616022 6.761365,5.455892 10.046305,5.455892 l 18.993081,0 c 2.201886,0 3.534267,0.206209 5.636101,1.583273 l 4.308867,-4.645377 C 86.925269,82.716462 78.204117,80.810025 74.37121,80.964133 70.538303,81.11824 63.01735,82.176758 59.638692,81.096858 56.260033,80.016957 53.157182,77.483039 51.781719,76.107577 l -3.508468,0.09386 c -1.71374,1.502144 -3.934006,3.981451 -8.27793,4.895424 -4.343924,0.913972 -10.152387,-0.109374 -13.93617,-0.132725 -3.783796,-0.02347 -12.613414,0.921806 -15.153463,3.296634 z" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path912"
-       inkscape:connector-curvature="0"
-       d="m 38.156186,59.706481 c 3.443173,-0.823963 5.851531,-1.348112 11.640592,-1.348112 5.832923,0 8.60431,0.438265 12.047028,1.273026" />
-  </g>
-</svg>
diff --git a/themes/Mono/BlackCrownedRook.svg b/themes/Mono/BlackCrownedRook.svg
deleted file mode 100644 (file)
index f90f7be..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="BlackCrownedRook.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="959"
-     inkscape:window-height="874"
-     id="namedview3103"
-     showgrid="false"
-     inkscape:zoom="6.0659375"
-     inkscape:cx="50.353914"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3188">
-    <path
-       sodipodi:nodetypes="cccccccccccccccccccc"
-       d="m 18.59012,22.212732 0,16.177488 8.598734,6.937411 0,22.361553 -7.128484,6.856725 0,7.165324 -7.128483,0 0,9.102169 74.136224,0 0,-9.102169 -7.128479,0 0,-8.37817 -7.128489,-6.814647 0,-21.232872 8.554181,-6.895324 0,-16.177488 -5.146217,0 L 50.151743,9.1398898 23.415989,22.212732 z"
-       inkscape:connector-curvature="0"
-       id="path3186"
-       style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:2;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1402"
-       inkscape:connector-curvature="0"
-       d="m 19.988303,23.445622 0,14.198833 8.215969,6.314278 0,24.361717 -6.811166,6.394709 0,8.26495 -6.811165,0 0,6.019891 70.836118,0 0,-6.019891 -6.811161,0 0,-9.423938 -6.811171,-6.3545 0,-23.283156 8.173399,-6.27406 0,-14.198833 -4.917138,0 L 50.144989,10.953295 24.599353,23.445622 z" />
-    <rect
-       style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#ffffff;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="rect1406"
-       y="35.693176"
-       x="23.309896"
-       height="1.2846808"
-       width="53.148762" />
-    <rect
-       style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#ffffff;stroke-width:0.99999994000000003;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="rect1408"
-       y="42.138672"
-       x="30.139942"
-       height="1.2846808"
-       width="39.488659" />
-    <rect
-       style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#ffffff;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="rect1410"
-       y="66.474022"
-       x="30.106775"
-       height="1.2846808"
-       width="39.554974" />
-    <rect
-       style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#ffffff;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="rect1412"
-       y="81.930573"
-       x="23.309896"
-       height="1.2846808"
-       width="53.148762" />
-    <rect
-       style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#ffffff;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="rect1414"
-       y="72.905128"
-       x="24.669277"
-       height="1.2846808"
-       width="50.430004" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:2;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1482"
-       inkscape:connector-curvature="0"
-       d="m 30.88249,22.205315 4.08547,0 0,6.394715 6.778405,0 0,-6.394715 16.328359,0 0,6.394715 6.820967,0 0,-6.394715 4.154503,0" />
-  </g>
-</svg>
diff --git a/themes/Mono/BlackElephant.svg b/themes/Mono/BlackElephant.svg
deleted file mode 100644 (file)
index 9e0b7c9..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="BlackElephant.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1047"
-     inkscape:window-height="840"
-     id="namedview3122"
-     showgrid="false"
-     inkscape:zoom="5.7525"
-     inkscape:cx="50.34058"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3156">
-    <path
-       inkscape:connector-curvature="0"
-       id="path3149"
-       d="m 59.75,5.125 c -9.144386,0.9911385 -21.555377,-0.5622698 -26.78125,8.90625 -2.448592,7.187066 -0.896813,15.345851 -1.4375,22.625 -5.278043,5.245512 -2.26958,13.37849 -2.75,19.96875 0.201651,9.452136 9.59416,18.616263 4.34375,27.90625 -3.966954,5.24291 -10.998133,-0.357276 -13.6875,-4.125 C 14.547616,73.764789 14.614401,64.435783 15.625,56.71875 20.240671,54.632782 19.174078,47.557653 14,47.21875 8.7281122,45.183519 6.3674813,51.606745 5.9325855,55.762564 3.2955611,66.869763 3.7823729,79.473621 11.59375,88.40625 c 6.987267,10.410867 24.097898,14.28575 32.9375,4.21875 6.185325,-7.749679 0.229103,-20.904841 9.90625,-26.5 8.497204,-4.449228 18.17171,-8.196747 25.53125,-13.8125 2.510429,6.916689 2.76629,17.209876 10.5,20.5625 5.079716,1.686687 3.247647,-5.703389 3.953927,-8.903213 C 94.625146,51.829359 96.34107,39.882701 98.5,28.03125 98.929683,21.703264 94.972002,15.053595 88.625,13.8125 80.525721,7.9728081 69.839363,4.5616616 59.75,5.125 z"
-       style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.99999988000000006;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <path
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.99999994000000003;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1058"
-       inkscape:connector-curvature="0"
-       d="m 32.121958,59.613878 c 0,0 -8.316929,18.435805 -29.1092243,23.750631 C 26.965455,84.693223 37.278434,60.942578 37.278434,60.942578 z" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.99999988;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1060"
-       inkscape:connector-curvature="0"
-       d="M 84.684879,44.167647 C 79.697732,51.722945 70.635134,56.062536 62.56187,59.946039 57.57345,62.345636 52.1453,63.921001 48.75579,68.914817 44.354824,75.398826 47.870276,86.153771 42.434924,92.001099 39.392736,95.273862 34.261738,96.659551 29.793206,96.485488 24.758448,96.289365 19.570429,93.877102 15.987126,90.340211 10.605749,85.02852 6.4942194,77.300796 6.5058482,69.745255 c 0.01083,-6.963847 1.7398223,-20.77475 4.8238008,-20.761044 2.567963,0.01081 5.414423,0.60824 5.322827,3.321763 -0.0643,1.903917 -3.222753,2.62996 -3.326763,4.650477 -0.415038,8.062657 -0.660504,17.303093 3.992127,23.916733 2.996484,4.259447 8.578842,8.888715 13.639742,7.640051 3.463806,-0.85462 5.84392,-5.406204 5.82184,-8.968765 -0.05591,-9.00937 -5.520938,-15.150647 -5.988177,-23.086281 -0.29745,-5.051942 -0.236923,-8.314458 -0.166338,-14.283592 0.01354,-1.114085 0.964344,-2.010608 1.497038,-2.989601 0.522067,-0.959461 1.713153,-1.732706 1.663388,-2.823501 -0.35688,-7.821427 -0.437673,-13.05131 0.332675,-19.266243 0.603402,-4.868011 6.745814,-8.4762737 11.810031,-8.8026768 7.83714,-0.5051157 11.006433,-1.4165084 18.629894,-1.1626259 6.009201,0.2001242 13.727954,2.8845447 20.792296,6.6435397 2.40214,1.278199 3.9939,4.137494 4.491139,6.809614 1.472156,7.911277 -0.721612,16.865929 -5.156489,23.584544 z" />
-    <path
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.99999994000000003;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1062"
-       inkscape:connector-curvature="0"
-       d="m 38.858661,66.506542 c 0,0 -7.901079,17.35623 -28.693374,22.671056 23.952721,1.328714 33.84985,-21.342356 33.84985,-21.342356 z" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:1.99999988000000006;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1064"
-       inkscape:connector-curvature="0"
-       d="M 40.605211,60.112127 39.939848,64.679566 44.93,66.423492 47.258739,63.433903" />
-    <path
-       style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.99999988000000006;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1066"
-       inkscape:connector-curvature="0"
-       d="m 32.20512,57.620814 3.077264,0" />
-    <path
-       style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.99999988000000006;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1068"
-       inkscape:connector-curvature="0"
-       d="m 31.872445,52.139887 4.906977,0" />
-    <path
-       style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.99999988000000006;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1070"
-       inkscape:connector-curvature="0"
-       d="m 31.872445,46.492886 5.073314,0" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:1.99999988000000006;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1072"
-       inkscape:connector-curvature="0"
-       d="m 39.10816,31.378843 c 0,0 -1.423297,-9.307671 0,-13.619241 1.036256,-3.139103 5.905015,-7.9722394 5.905015,-7.9722394" />
-    <path
-       inkscape:connector-curvature="0"
-       style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.99999994000000003;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1074"
-       d="m 50.918193,41.842409 a 1.829722,1.8269718 0 1 1 -3.659439,0 1.829722,1.8269718 0 1 1 3.659439,0 z" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.99999988;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1076"
-       inkscape:connector-curvature="0"
-       d="m 75.03725,22.243991 c 6.154514,-0.332175 10.437742,-7.84027 15.469468,-5.647001 5.543762,2.416453 6.835866,9.842268 5.489165,15.114042 -3.714889,14.542326 -3.316164,36.7974 -4.158465,39.362936 C 83.354165,70.741793 82.522478,44.00156 77.865001,43.835472" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:1.99999988000000006;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1092"
-       inkscape:connector-curvature="0"
-       d="m 75.03725,22.243991 c 4.10786,-0.221711 7.382071,-3.640272 10.601616,-5.237237" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:1.99999988000000006;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1088"
-       inkscape:connector-curvature="0"
-       d="m 81.095173,48.953432 c -0.945919,-2.992048 -1.941629,-5.072014 -3.230172,-5.11796" />
-  </g>
-</svg>
diff --git a/themes/Mono/BlackGold.svg b/themes/Mono/BlackGold.svg
deleted file mode 100644 (file)
index a434ece..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="BlackGold.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1108"
-     inkscape:window-height="1012"
-     id="namedview3034"
-     showgrid="false"
-     inkscape:zoom="7.338125"
-     inkscape:cx="50.357412"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3335">
-    <path
-       inkscape:connector-curvature="0"
-       id="path3331"
-       d="m 50.625,16.78125 c -12.129221,-0.04923 -23.686034,5.375144 -31.96875,14 C 9.1304952,38.018843 7.1237021,51.814273 10.5625,62.6875 7.2409165,68.940177 9.9795248,76.203427 13.375,81.65625 22.574086,89.680181 35.844416,90.147542 47.5,91 60.324786,90.567948 73.779805,87.724216 84.40625,80.40625 92.401217,71.856107 92.873817,57.687146 87.8125,47.4375 84.74018,43.606346 85.783485,37.849685 82.71875,33.6875 76.767937,22.076992 63.251242,16.392771 50.625,16.78125 z"
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:2.00000023999999987;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path727"
-       inkscape:connector-curvature="0"
-       d="m 13.15758,76.536443 c 0.405818,8.851767 22.998869,12.463011 35.56917,12.463556 12.706861,5.44e-4 35.61268,-7.295939 35.95669,-12.595833 6.313578,-5.76118 5.258397,-26.2514 -0.28488,-29.694687 C 81.481904,13.931339 38.653941,11.602545 21.379424,31.311091 10.441277,38.204999 9.2396754,53.22022 12.770075,62.800664 c -1.930049,3.781207 -2.8918201,7.65901 0.387505,13.735779 z" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:2.00000023999999987;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path729"
-       inkscape:connector-curvature="0"
-       d="m 24.976772,31.531529 c 18.961481,1.320651 41.287117,5.849212 57.259221,13.85177" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:2.00000023999999987;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path731"
-       inkscape:connector-curvature="0"
-       d="M 15.305116,62.564771 C 30.853708,59.129663 55.552644,64.394836 83.053834,74.7581" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:2.00000023999999987;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path733"
-       inkscape:connector-curvature="0"
-       d="M 15.941881,75.067372 C 29.676524,65.804723 50.863099,61.174136 82.975901,74.90546" />
-    <path
-       style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:2.00000023999999987;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path790"
-       inkscape:connector-curvature="0"
-       d="m 51.015985,59.153912 5.87027,-10.420715 -2.506721,-5.744751 -6.727099,0 -2.583544,5.744751 z" />
-  </g>
-</svg>
diff --git a/themes/Mono/BlackGoldKnight.svg b/themes/Mono/BlackGoldKnight.svg
deleted file mode 100644 (file)
index c77d875..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="BlackGoldKnight.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="923"
-     inkscape:window-height="736"
-     id="namedview12"
-     showgrid="false"
-     inkscape:zoom="4.79375"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3246">
-    <path
-       inkscape:connector-curvature="0"
-       id="path3242"
-       d="M 49.3125,16.8125 C 37.645484,17.091538 26.610244,22.49516 18.625,30.78125 9.1317049,37.966361 7.0302282,51.806734 10.53125,62.6875 c -3.3487025,6.121329 -0.6098396,13.160897 2.5,18.625 8.351115,7.941627 20.915293,8.480985 31.8125,9.59375 13.603946,0.353165 27.7384,-2.879696 39.21875,-10.125 C 92.403926,72.372187 92.935131,58.052488 88,47.6875 84.873001,43.789075 85.779029,37.958828 82.78125,33.6875 76.524424,21.6372 62.398952,16.049927 49.3125,16.8125 z"
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.99999988000000006;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path667"
-       inkscape:connector-curvature="0"
-       d="M 13.114652,76.535977 C 13.520943,85.388078 36.140318,88.999458 48.725266,89.000002 61.446931,89.000547 84.379439,81.703789 84.72385,76.403695 91.044785,70.642297 89.988374,50.151306 84.438638,46.707889 81.518584,13.928512 38.64072,11.599631 21.346076,31.30892 10.395185,38.203088 9.1921827,53.218875 12.726696,62.79968 c -1.932298,3.781349 -2.8951897,7.659299 0.387956,13.736297 z" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:1.99999988000000006;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path669"
-       inkscape:connector-curvature="0"
-       d="m 24.947615,31.529366 c 18.983575,1.320701 41.335223,5.849433 57.325937,13.852292" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:1.99999988000000006;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path671"
-       inkscape:connector-curvature="0"
-       d="m 15.26469,62.563779 c 15.566709,-3.435238 40.294422,1.830134 67.827655,12.193788" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:1.99999988000000006;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path673"
-       inkscape:connector-curvature="0"
-       d="M 15.902197,75.066851 C 29.652843,65.803852 50.864104,61.17309 83.014322,74.904932" />
-    <path
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.09999999000000000;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path825"
-       inkscape:connector-curvature="0"
-       d="m 53.402199,40.726761 c -5.670426,0 -10.270056,4.570873 -10.270056,10.205847 0,5.634974 4.59963,10.205847 10.270056,10.205847 2.617862,0 4.988148,-0.993484 6.801659,-2.596224 -0.259036,0.02621 -0.544824,0.04469 -0.810794,0.04469 -4.255593,0 -7.702541,-3.425412 -7.702541,-7.654386 0,-4.228973 3.446948,-7.654385 7.702541,-7.654385 0.26597,0 0.551758,-0.02621 0.810794,0 -1.811753,-1.595221 -4.190687,-2.551462 -6.801659,-2.551462 z" />
-  </g>
-</svg>
diff --git a/themes/Mono/BlackGoldLance.svg b/themes/Mono/BlackGoldLance.svg
deleted file mode 100644 (file)
index 7f57f28..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="BlackGoldLance.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="988"
-     inkscape:window-height="854"
-     id="namedview2999"
-     showgrid="false"
-     inkscape:zoom="5.8815625"
-     inkscape:cx="50.359783"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3269">
-    <path
-       inkscape:connector-curvature="0"
-       id="path3265"
-       d="M 49.3125,16.5 C 37.636626,16.756468 26.607322,22.249362 18.59375,30.5 9.079502,37.828765 7.0047477,51.625273 10.5,62.59375 7.1443875,68.728543 9.902082,75.785859 13,81.28125 c 8.758712,8.222258 21.849242,8.638013 33.1875,9.6875 13.291944,-0.07595 27.116051,-3.127446 38.21875,-10.5 C 92.419269,71.874007 92.941025,57.788919 88.03125,47.5 84.838662,43.825729 85.997274,38.187252 83.125,34.0625 77.023923,21.581551 62.698878,15.712053 49.3125,16.5 z"
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path707"
-       inkscape:connector-curvature="0"
-       d="M 13.081703,76.480231 C 13.488357,85.37192 36.127941,88.999452 48.724132,88.999999 61.457164,89.000545 84.41016,81.671154 84.754879,76.347357 91.081461,70.560193 90.024106,49.977559 84.469412,46.518742 81.546749,13.592767 38.630577,11.253471 21.320481,31.050905 10.359806,37.975905 9.1557291,53.058848 12.6934,62.682501 c -1.934024,3.79826 -2.8977761,7.693553 0.388303,13.79773 z" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path709"
-       inkscape:connector-curvature="0"
-       d="M 24.925238,31.272337 C 43.925773,32.598945 66.29739,37.14793 82.302391,45.186581" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path711"
-       inkscape:connector-curvature="0"
-       d="m 15.233662,62.445544 c 15.580616,-3.450601 40.330422,1.838319 67.888255,12.248323" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path713"
-       inkscape:connector-curvature="0"
-       d="M 15.871739,75.004534 C 29.63467,65.700109 50.864881,61.048637 83.043823,74.841891" />
-    <path
-       inkscape:connector-curvature="0"
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path766"
-       d="m 59.333284,50.101325 a 7.8944607,7.873156 0 1 1 -15.788914,0 7.8944607,7.873156 0 1 1 15.788914,0 z" />
-  </g>
-</svg>
diff --git a/themes/Mono/BlackGoldPawn.svg b/themes/Mono/BlackGoldPawn.svg
deleted file mode 100644 (file)
index 33464a3..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="BlackGoldPawn.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="948"
-     inkscape:window-height="892"
-     id="namedview3010"
-     showgrid="false"
-     inkscape:zoom="6.231875"
-     inkscape:cx="50.358594"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3290">
-    <path
-       inkscape:connector-curvature="0"
-       id="path3286"
-       d="M 49.34375,16.375 C 37.650192,16.680413 26.565744,22.093275 18.59375,30.4375 9.0831274,37.685608 6.9713051,51.565627 10.5,62.5 c -3.3605506,6.274322 -0.6548233,13.645578 2.8125,19.09375 8.807507,7.877986 21.624631,8.36321 32.875,9.375 13.187299,-0.0395 26.784748,-3.131981 37.90625,-10.25 C 92.347883,72.385246 92.920246,58.19687 88.25,47.78125 84.825924,43.473604 85.780901,37.099555 82.336983,32.526543 75.908426,20.936219 62.119725,15.703002 49.34375,16.375 z"
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path362"
-       inkscape:connector-curvature="0"
-       d="m 13.070475,76.459908 c 0.406777,8.906126 23.053244,12.539546 35.653265,12.540094 12.736903,5.47e-4 35.696877,-7.340743 36.0417,-12.673183 C 91.093946,70.530259 90.03627,49.91421 84.479887,46.449777 81.556335,13.470347 38.627116,11.127253 21.311758,30.956828 10.34775,37.893071 9.1433077,53.000501 12.682054,62.639778 c -1.934612,3.804427 -2.898657,7.706044 0.388421,13.82013 z" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path364"
-       inkscape:connector-curvature="0"
-       d="m 24.917611,31.178619 c 19.006311,1.328762 41.38473,5.885133 57.394596,13.936834" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path366"
-       inkscape:connector-curvature="0"
-       d="M 15.223088,62.402437 C 30.808441,58.946233 55.565772,64.24374 83.131982,74.670644" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path368"
-       inkscape:connector-curvature="0"
-       d="M 15.861359,74.981816 C 29.628474,65.662284 50.86514,61.003261 83.053865,74.818909" />
-  </g>
-</svg>
diff --git a/themes/Mono/BlackGoldSilver.svg b/themes/Mono/BlackGoldSilver.svg
deleted file mode 100644 (file)
index 20d558c..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="BlackGoldSilver.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1034"
-     inkscape:window-height="960"
-     id="namedview3022"
-     showgrid="false"
-     inkscape:zoom="6.85875"
-     inkscape:cx="50.353914"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3312">
-    <path
-       inkscape:connector-curvature="0"
-       id="path3308"
-       d="m 49.34375,16.59375 c -11.705137,0.311065 -22.757249,5.725501 -30.75,14 C 9.0658163,37.895143 7.0595712,51.738345 10.5,62.625 7.1767713,68.864367 9.901567,76.055143 13.21875,81.5625 22.457775,89.66437 35.794041,90.137595 47.5,91 60.301182,90.57843 73.726021,87.727178 84.40625,80.46875 92.474447,71.813121 92.994883,57.481928 87.8125,47.21875 84.892774,43.37539 85.709613,37.637081 82.78125,33.53125 76.573724,21.444939 62.41637,15.88318 49.34375,16.59375 z"
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path687"
-       inkscape:connector-curvature="0"
-       d="m 13.092811,76.499677 c 0.406531,8.877882 23.039302,12.49978 35.631702,12.500325 12.7292,5.46e-4 35.675288,-7.317463 36.019903,-12.632992 C 91.069093,70.588833 90.012058,50.038163 84.459035,46.584718 81.537251,13.709875 38.633995,11.374211 21.32911,31.140901 10.371733,38.055147 9.1680187,53.114667 12.704625,62.723375 10.771183,66.515737 9.8077209,70.40498 13.092811,76.499677 z" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path689"
-       inkscape:connector-curvature="0"
-       d="m 24.932782,31.361989 c 18.994816,1.324548 41.3597,5.866469 57.359884,13.892636" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path691"
-       inkscape:connector-curvature="0"
-       d="M 15.244122,62.486786 C 30.820049,59.041543 55.562407,64.32225 83.111945,74.716088" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path693"
-       inkscape:connector-curvature="0"
-       d="M 15.882007,75.026272 C 29.640796,65.736296 50.864618,61.092048 83.033875,74.863882" />
-    <path
-       inkscape:connector-curvature="0"
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path739"
-       d="m 54.184604,56.985992 -4.663853,-3.357254 -4.677945,3.337788 1.7676,-5.45108 -4.635774,-3.395542 5.756293,-0.01171 1.812868,-5.436347 1.789982,5.443862 5.756199,0.03568 -4.650021,3.376194 z" />
-  </g>
-</svg>
diff --git a/themes/Mono/BlackHawk.svg b/themes/Mono/BlackHawk.svg
deleted file mode 100644 (file)
index 7f2385a..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="BlackHawk.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="910"
-     inkscape:window-height="775"
-     id="namedview3053"
-     showgrid="false"
-     inkscape:zoom="5.1532812"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3376">
-    <path
-       inkscape:connector-curvature="0"
-       id="path3368"
-       d="M 45.625,8.875 C 32.718011,8.8691403 22.835019,19.682832 20,31.5625 16.296898,44.543145 15.743011,58.597725 16.75,72.03125 6.9868412,72.290887 6.5816302,89.255895 15.8125,91 40.802083,91 65.791667,91 90.78125,91 91.790369,85.487614 90.382844,80.096773 86.25,76.28125 79.275953,68.559698 72.084576,60.475213 63.25,55.0625 60.50604,51.224964 68.714879,46.258708 62.904288,43.769638 59.976782,40.851061 70.935414,38.973267 72.994929,35.171843 75.755989,33.050307 80.678925,31.214643 77.65625,27.375 72.021593,15.172922 59.050744,7.7920199 45.625,8.875 z"
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path510"
-       inkscape:connector-curvature="0"
-       d="M 47.813511,10.813383 C 25.431684,10.69203 17.930459,31.272561 18.320941,65.778108 c 0.03778,3.344402 0.40666,6.511943 0.921643,9.410485 -0.817253,-0.700387 -1.766535,-1.171207 -2.896592,-1.170458 -2.767232,0.0015 -5.144347,3.181429 -5.178755,7.210023 -0.0566,6.638106 4.652102,7.771844 4.652102,7.771844 l 7.460918,0 0.526653,0 64.997762,0 c 0,0 0.06432,-2.600777 0,-4.869107 -0.192769,-4.531251 -20.408409,-23.477544 -22.207203,-24.532807 -1.4879,-0.872889 -5.928006,-2.539636 -5.968734,-5.89911 -0.03048,-2.518212 2.411017,-7.116387 2.413826,-7.116387 l -5.617632,-5.150017 7.109816,-2.575008 12.069132,-8.801847 c 0,0 -6.415603,-19.120982 -28.790366,-19.242336 z" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path512"
-       inkscape:connector-curvature="0"
-       d="M 22.660534,87.49332 C 21.790096,85.251569 20.196317,80.668675 19.205451,74.942112" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.50000011999999994;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path514"
-       inkscape:connector-curvature="0"
-       d="m 57.510443,41.437473 4.600364,-1.917035 c 7.644277,-0.302019 20.329902,2.811528 20.329902,2.811528 -2.784028,0.906073 -11.277298,3.930522 -20.573118,3.22579 z" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.50000011999999994;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path516"
-       inkscape:connector-curvature="0"
-       d="M 75.528185,30.403268 C 83.442783,31.529275 88.560502,32.100234 86.6725,49.552956 86.438933,37.48653 58.678251,40.796774 58.678251,40.796774 z" />
-    <path
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path518"
-       inkscape:connector-curvature="0"
-       d="m 46.899986,59.804089 4.671272,-1.850905" />
-    <path
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path520"
-       inkscape:connector-curvature="0"
-       d="m 55.462535,57.156778 2.928964,-1.124599" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path522"
-       inkscape:connector-curvature="0"
-       d="m 59.044591,27.560054 c 0,-2.022881 -2.305561,-5.259219 -7.443728,-5.242769 -4.883563,0.01558 -8.959239,5.975143 -13.550727,6.021527 4.583005,-0.0075 8.459705,4.323887 13.409864,4.471907 4.725988,0.141279 7.584591,-3.344297 7.584591,-5.250665 z" />
-    <path
-       inkscape:connector-curvature="0"
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path524"
-       d="m 54.341634,27.575842 a 2.2689013,2.420406 0 1 1 -4.537802,0 2.2689013,2.420406 0 1 1 4.537802,0 z" />
-    <path
-       inkscape:connector-curvature="0"
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.75000005999999986;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path526"
-       d="m 72.124143,28.379753 a 2.0019718,2.1356524 0 1 1 -4.003943,0 2.0019718,2.1356524 0 1 1 4.003943,0 z" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path540"
-       inkscape:connector-curvature="0"
-       d="m 54.431489,86.615758 c -0.636197,-2.070674 -1.076268,-4.475953 -1.05846,-6.736537 0.03146,-4.001941 3.656489,-13.463425 13.213022,-13.4546 3.270347,0.003 8.665269,5.113565 13.400202,9.184303" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path546"
-       inkscape:connector-curvature="0"
-       d="m 61.867591,45.557756 -4.357148,-4.120283 1.461076,-0.74749" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path548"
-       inkscape:connector-curvature="0"
-       d="m 77.640513,43.12542 c -8.221124,-3.26359 -18.77351,-2.378985 -18.77351,-2.378985 0,0 12.131235,-5.410057 16.661182,-10.343167" />
-    <path
-       d="M 75.528185,30.403268 C 83.442783,31.529275 88.560502,32.100234 86.6725,49.552956 86.438933,37.48653 58.678251,40.796774 58.678251,40.796774 z"
-       inkscape:connector-curvature="0"
-       id="path3372"
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.50000011999999994;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-  </g>
-</svg>
diff --git a/themes/Mono/BlackKing.svg b/themes/Mono/BlackKing.svg
deleted file mode 100644 (file)
index 01a6ef2..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="BlackKing.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1016"
-     inkscape:window-height="874"
-     id="namedview3069"
-     showgrid="false"
-     inkscape:zoom="6.0659375"
-     inkscape:cx="50.360381"
-     inkscape:cy="57.435682"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3445">
-    <path
-       id="path3411"
-       d="M 49 2.9375 L 49 8.75 L 42.96875 8.75 L 42.96875 10.75 L 49 10.75 L 49 18.78125 C 42.436962 19.621073 38.886409 27.017924 39.5625 33.125 C 28.938226 24.480516 9.1100778 26.895709 4.71875 41.25 C 1.3123926 51.202502 9.849325 59.999767 17.625 64.8125 C 19.060259 71.658809 18.065097 79.367189 20.65625 85.8125 C 28.794526 91.305041 39.604858 90.320381 49.03125 91 C 58.992291 90.477328 70.160135 91.389008 78.96875 86.0625 C 82.01862 80.777187 80.411948 73.651696 81.9375 67.78125 C 81.92291 62.694715 88.72388 61.619798 91.0625 57.40625 C 99.420812 49.672786 96.514895 34.911767 86.25 30.46875 C 78.05655 26.454235 67.636411 27.655295 60.4375 33.21875 C 61.158017 27.10317 57.524988 19.436642 51 18.75 L 51 10.75 L 57.03125 10.75 L 57.03125 8.75 L 51 8.75 L 51 2.9375 L 49 2.9375 z "
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:2;stroke-linejoin:bevel;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linejoin:bevel;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1112"
-       inkscape:connector-curvature="0"
-       d="m 78.139629,83.551547 c 0,3.0091 -12.626181,5.448456 -28.201337,5.448456 -15.575183,0 -28.201351,-2.439356 -28.201351,-5.448456 L 19.492329,63.639252 c 0,0 -13.5706778,-7.841709 -13.5251292,-17.392973 0.038334,-8.05824 6.5318092,-16.234786 18.6474362,-16.122983 16.854349,0.155515 25.438758,16.623362 25.438758,30.077713 0,-13.454351 8.539102,-30.010907 25.668978,-30.077713 12.037147,-0.04701 18.578971,8.151663 18.302087,16.122983 -0.344048,9.90519 -13.608702,17.392973 -13.608702,17.392973 z" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1120"
-       inkscape:connector-curvature="0"
-       d="m 50.022161,20.677361 c -4.675039,0 -8.487314,4.895693 -8.487314,10.931577 l 0.04413,5.850102 c 5.73369,6.061204 8.619928,14.943009 8.619928,22.759884 0,-7.606217 2.754488,-16.198232 8.222086,-22.247466 l 0.04413,-6.36252 c 0,-6.035884 -3.768056,-10.931577 -8.443109,-10.931577 z" />
-    <path
-       style="color:#000000;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1122"
-       inkscape:connector-curvature="0"
-       d="m 49.999995,2.9444992 0,18.5071598" />
-    <path
-       style="color:#000000;fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1124"
-       inkscape:connector-curvature="0"
-       d="m 42.95899,9.7396083 14.081996,0" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1140"
-       inkscape:connector-curvature="0"
-       d="m 50.072208,23.384525 c -1.921358,-0.07912 -3.409863,1.44786 -4.325871,2.892455 -1.61126,2.541045 -1.712726,5.915759 -1.234777,8.859633 0.66723,4.109712 4.197104,7.437776 5.560648,11.264662 1.660784,-3.837858 4.805051,-7.166947 5.440453,-11.264662 0.457297,-2.949135 0.309971,-6.306222 -1.284583,-8.859633 -0.881931,-1.412264 -2.234512,-2.813337 -4.15587,-2.892455 z" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:2;stroke-linejoin:bevel;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1187"
-       inkscape:connector-curvature="0"
-       d="m 24.844826,64.30641 c 0,0 -15.9999316,-10.060327 -15.9999316,-18.060131 0,-8.058322 7.3344256,-13.231964 15.7697416,-13.231964 16.855113,0 22.445962,18.068871 22.445962,27.186694 l 5.985593,0 c 0,-9.00663 5.546163,-27.075506 22.676181,-27.075506 8.238862,0 15.58616,5.149456 15.30929,13.120776 -0.305473,8.794511 -15.738197,18.171325 -15.738197,18.171325" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:2;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1118"
-       inkscape:connector-curvature="0"
-       d="m 24.291425,82.309374 c 4.425257,-1.890298 14.271886,-4.206286 25.708556,-4.206286 11.312883,0 21.069956,2.343267 25.562971,4.200707" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:2;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1114"
-       inkscape:connector-curvature="0"
-       d="m 24.541235,74.666892 c 4.538421,-1.966853 14.232547,-3.32558 25.458746,-3.32558 10.915082,0 20.381861,1.284462 25.069645,3.163475" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:2.00000023999999987;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1116"
-       inkscape:connector-curvature="0"
-       d="m 23.408178,64.242845 c 4.765882,-2.313032 14.882209,-3.909087 26.591803,-3.909087 11.869693,0 22.102254,1.639996 26.784281,4.004358" />
-  </g>
-</svg>
diff --git a/themes/Mono/BlackKnight.svg b/themes/Mono/BlackKnight.svg
deleted file mode 100644 (file)
index 81690ad..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="BlackKnight.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="965"
-     inkscape:window-height="867"
-     id="namedview3078"
-     showgrid="false"
-     inkscape:zoom="4.2436351"
-     inkscape:cx="25.031665"
-     inkscape:cy="64.394231"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3468">
-    <path
-       sodipodi:nodetypes="csccczsscszcccccc"
-       inkscape:connector-curvature="0"
-       id="path4298"
-       d="m 46.375,3.75 c -2.152279,2.9027646 -4.676923,6.805836 -6.402909,10.180676 -0.41721,0.815777 -0.541308,0.304004 -1.930346,0.319441 -2.169935,-3.250245 -7.620552,-8.5901906 -12.718457,-7.3227017 0.865046,2.023649 1.401564,7.8155117 1.234511,11.9842407 -1.848359,1.798209 -6.357743,7.14792 -7.077851,9.597491 -0.720109,2.449571 0.926688,7.475352 -9.302708,22.261315 -3.7384934,5.403762 -4.4949797,16.942858 3.010201,17.989974 2.286142,0.318961 4.420015,0.02928 6.435029,-0.250395 1.036635,1.085419 3.21723,2.147278 4.762761,2.187924 3.124621,0.08218 8.228264,-10.297522 13.39596,-13.354098 5.167697,-3.056576 8.100084,-4.63567 12.989857,-6.864739 C 50.030537,63.312869 30.51428,71.467295 29.916862,90.488919 l 62.833138,0 C 92.037457,66.668543 89.699762,40.318496 72.34375,22.28125 66.498556,17.399745 59.277156,14.42216 51.71875,13.59375 50.954783,9.8438353 49.010899,6.3913917 46.375,3.75 z"
-       style="opacity:0.98999999000000005;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.74352372000000000px;stroke-opacity:1" />
-    <path
-       style="opacity:0.98999999;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.74352372px;stroke-opacity:1"
-       id="BlackKnight-0"
-       inkscape:connector-curvature="0"
-       d="m 37.442023,14.905617 3.440137,0.07996 c -0.152287,-3.646672 5.987957,-9.613418 5.987957,-9.613418 0,0 3.543973,3.9681491 4.116591,9.564632 7.998355,-0.319182 14.868742,3.896109 17.511172,5.520087 16.740875,10.288586 23.293758,43.609143 23.259451,69.171356 L 31.275312,89.43874 C 30.996101,71.868918 52.237558,65.282082 51.615655,48.595331 c -5.367428,4.165315 -11.350805,5.299043 -16.089541,9.280085 -3.762733,3.161091 -5.701513,6.863679 -9.453188,11.305869 -1.38304,1.637591 -5.075637,0.911668 -6.268393,-1.468516 -5.963812,1.78514 -11.6944383,0.0239 -11.5596728,-8.46985 C 8.36416,51.723656 15.942876,44.928328 18.548389,37.871761 c 1.123219,-3.042042 0.966138,-7.743769 2.740721,-11.128457 1.377916,-2.628122 4.479229,-5.672034 5.900429,-6.671983 1.103843,-3.747686 0.861755,-10.0960166 -0.965673,-12.5271312 2.665005,-0.7597234 8.781582,2.9550322 11.218157,7.3614272 z m 13.887323,2.89926 0,3.704478 c 5.153438,-0.0046 11.835103,2.727162 16.61767,7.094027 9.561334,8.730255 13.848194,30.25241 15.770084,49.842554 0.541152,4.579365 1.051985,8.318845 5.317712,8.636332 C 89.237623,71.393721 84.133188,38.972234 73.694554,28.123116 67.05424,21.221684 59.652802,18.158669 51.329346,17.804877 z m -31.309149,46.61604 1.789147,0.595044 1.789145,-5.950457 -0.596392,0 z m -5.036123,-3.049548 c 3.520319,-0.165278 5.142477,-7.708943 1.565521,-7.611674 -3.951046,0.107448 -4.603127,7.754291 -1.565521,7.611674 z m 37.725295,-15.347271 1.192756,0 c 1.830607,-0.590927 2.489079,-5.793423 1.789147,-6.54551 -1.039499,0.276838 -1.689715,4.165326 -2.981903,6.54551 z m -25.317221,-9.851307 1.192755,-2.975229 c 3.578295,0.595044 5.367428,-1.190087 4.77105,-4.760368 l 2.981903,-0.595044 0,-0.595043 c -5.367428,-1.190097 -10.138478,3.570271 -8.945708,8.925684 z m 4.555685,-14.595186 c 1.192756,0 5.266191,-0.151944 6.458946,-0.746987 11.331261,-3.570272 -5.26619,-5.798512 -6.458946,0.746987 z" />
-  </g>
-</svg>
diff --git a/themes/Mono/BlackLance.svg b/themes/Mono/BlackLance.svg
deleted file mode 100644 (file)
index 998fb8d..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="BlackLance.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="979"
-     inkscape:window-height="841"
-     id="namedview3089"
-     showgrid="false"
-     showguides="true"
-     inkscape:guide-bbox="true"
-     inkscape:zoom="5.7617187"
-     inkscape:cx="50.356238"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3489">
-    <path
-       id="path3481"
-       d="M 50 5.15625 L 48.125 9.9375 C 41.106322 27.917502 34.070548 45.890878 27.0625 63.875 C 33.694079 70.461646 40.313469 77.061627 46.90625 83.6875 L 46.90625 90 L 53.09375 90 L 53.09375 83.6875 C 59.686542 77.061639 66.305664 70.461383 72.9375 63.875 C 65.302617 44.297846 57.655946 24.725201 50 5.15625 z "
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.49999988000000006;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.49999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1535"
-       inkscape:connector-curvature="0"
-       d="M 49.999992,10.661663 70.590766,63.372024 49.999992,83.962794 29.409217,63.372024 z" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:2.99999976000000013;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1537"
-       inkscape:connector-curvature="0"
-       d="m 50.008022,70.246842 0,-26.028551" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:2.99999976000000013;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1539"
-       inkscape:connector-curvature="0"
-       d="m 41.981395,55.971431 16.053255,0" />
-    <path
-       style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
-       id="path1541"
-       inkscape:connector-curvature="0"
-       d="m 46.906602,79.985159 0,10.014848 6.186779,0 0,-10.014848 -3.093389,-5.135107 z" />
-  </g>
-</svg>
diff --git a/themes/Mono/BlackMarshall.svg b/themes/Mono/BlackMarshall.svg
deleted file mode 100644 (file)
index fbb620a..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="BlackMarshall.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="964"
-     inkscape:window-height="800"
-     id="namedview3104"
-     showgrid="false"
-     inkscape:zoom="5.38375"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3542">
-    <path
-       id="path3513"
-       d="M 50.125 4 C 49.909745 4.0002462 49.684425 4.0056943 49.46875 4.03125 C 43.736823 4.2076969 41.913604 11.684463 45.34375 15.21875 L 38.46875 27.21875 C 33.833294 27.170467 29.197933 27.113134 24.5625 27.0625 C 24.323738 25.735588 23.629135 24.46803 22.34375 23.5 C 21.065631 22.392896 19.371311 21.844022 17.6875 21.96875 C 10.782155 22.01438 9.3709222 32.912611 16.09375 34.71875 C 17.330125 35.198277 18.507866 35.218568 19.59375 34.9375 C 21.991568 39.061349 24.379501 43.190948 26.78125 47.3125 C 24.340724 51.446127 21.911706 55.586555 19.46875 59.71875 C 18.843861 59.590365 18.201689 59.553341 17.5625 59.625 C 10.655529 59.809337 9.4813435 70.561673 16.09375 72.375 C 19.957091 73.8396 23.447733 71.00365 24.40625 67.59375 C 29.041659 67.579478 33.677087 67.573563 38.3125 67.5625 C 40.628109 71.696169 42.930002 75.837533 45.25 79.96875 C 42.493369 83.209416 43.11278 89.379331 48 90.6875 C 54.310698 93.13526 59.531691 84.072317 54.625 79.78125 C 56.940344 75.739471 59.272495 71.694617 61.59375 67.65625 C 66.281284 67.705075 70.968739 67.761379 75.65625 67.8125 C 76.103592 69.89184 77.441028 71.722936 79.84375 72.375 C 86.184418 74.776695 91.594316 65.526898 86.21875 61.28125 C 84.929674 59.989213 83.029526 59.438263 81.25 59.625 C 80.946234 59.635973 80.65621 59.668325 80.375 59.71875 C 78.017007 55.662824 75.643356 51.616022 73.28125 47.5625 C 75.759909 43.364285 78.237773 39.165599 80.71875 34.96875 C 86.726092 36.313982 91.355159 27.601641 86.15625 23.53125 C 84.849542 22.407493 83.123606 21.839827 81.40625 21.96875 C 78.090714 22.004175 76.088087 24.496215 75.59375 27.28125 C 70.979175 27.295504 66.36458 27.301487 61.75 27.3125 C 59.427461 23.166459 57.108145 19.018608 54.78125 14.875 C 57.006208 12.234712 57.46941 7.9771228 54.25 5.5625 C 53.097973 4.5927329 51.631788 3.9982766 50.125 4 z "
-       style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.99999988000000006;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <path
-       inkscape:connector-curvature="0"
-       style="color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path348"
-       d="M 81.628285,65.882033 60.428134,65.646617 49.877728,84.057986 39.48129,65.558416 18.28044,65.616248 29.084152,47.352094 18.433708,28.998558 39.633858,29.233975 50.184265,10.822606 60.580703,29.322163 81.781553,29.26433 70.977841,47.528472 z" />
-    <path
-       inkscape:connector-curvature="0"
-       style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path350"
-       d="m 54.564015,10.541411 a 4.5330293,4.5384573 0 1 1 -9.066057,0 4.5330293,4.5384573 0 1 1 9.066057,0 z" />
-    <path
-       inkscape:connector-curvature="0"
-       style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path352"
-       d="m 86.401645,28.489521 a 4.5330293,4.5384573 0 1 1 -9.066057,0 4.5330293,4.5384573 0 1 1 9.066057,0 z" />
-    <path
-       inkscape:connector-curvature="0"
-       style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path354"
-       d="m 86.401645,66.124131 a 4.5330293,4.5384573 0 1 1 -9.066057,0 4.5330293,4.5384573 0 1 1 9.066057,0 z" />
-    <path
-       inkscape:connector-curvature="0"
-       style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path356"
-       d="m 54.564015,84.461551 a 4.5330293,4.5384573 0 1 1 -9.066057,0 4.5330293,4.5384573 0 1 1 9.066057,0 z" />
-    <path
-       inkscape:connector-curvature="0"
-       style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path358"
-       d="m 22.664375,66.124131 a 4.5330293,4.5384573 0 1 1 -9.066057,0 4.5330293,4.5384573 0 1 1 9.066057,0 z" />
-    <path
-       inkscape:connector-curvature="0"
-       style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path361"
-       d="m 22.664375,28.489521 a 4.5330293,4.5384573 0 1 1 -9.066057,0 4.5330293,4.5384573 0 1 1 9.066057,0 z" />
-    <path
-       inkscape:connector-curvature="0"
-       style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path363"
-       d="m 63.772984,47.793035 a 13.741984,14.287611 0 1 1 -27.483967,0 13.741984,14.287611 0 1 1 27.483967,0 z" />
-  </g>
-</svg>
diff --git a/themes/Mono/BlackNightrider.svg b/themes/Mono/BlackNightrider.svg
deleted file mode 100644 (file)
index 1eec4b8..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="BlackNightrider.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1063"
-     inkscape:window-height="829"
-     id="namedview3115"
-     showgrid="false"
-     inkscape:zoom="3.9959267"
-     inkscape:cx="-6.3454786"
-     inkscape:cy="71.313217"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3564">
-    <path
-       sodipodi:nodetypes="ccccccccccccccccc"
-       inkscape:connector-curvature="0"
-       id="path4681"
-       d="M 40.125,14.03125 37.89538,13.911181 C 33.844072,8.6188691 28.109494,6.3051173 25.306538,7.1378249 26.442352,9.2369922 27.088235,15.397196 26.385639,19.339969 24.910041,21.001725 24.466256,21.304415 23.09375,22.75 17.059895,29.293703 19.468968,39.470524 13.10155,45.9883 8.8473056,51.722038 4.0751921,61.10133 10.25,67.1875 c 2.496435,2.94145 6.351938,1.296933 8.979672,1.833586 3.629037,3.982308 9.090154,0.343329 10.832828,-3.260922 4.737674,-8.233528 13.619686,-11.618027 20.276933,-14.786313 -0.1207,4.465284 -2.556844,6.563765 -3.639493,9.626649 C 41.552564,67.87968 29.709535,77.784347 29.378793,90.53125 48.725011,90.46316 73.420084,90.5089 92.78125,90.59375 92.172597,67.681908 89.602297,42.759573 74.6875,24.4375 68.599413,18.341703 59.951615,14.240255 51.6875,13.75 51.052394,9.9199827 49.508445,6.7831156 46.844228,4.0002867 44.40057,7.1847989 40.983456,10.700386 40.125,14.03125 z"
-       style="opacity:0.98999999000000005;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.74352384000000005px;stroke-opacity:1" />
-    <path
-       style="opacity:0.98999999;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.74352384px;stroke-opacity:1"
-       id="path4683"
-       inkscape:connector-curvature="0"
-       d="m 37.442738,14.905615 3.439942,0.07997 c -0.152278,-3.646671 5.987617,-9.6134104 5.987617,-9.6134104 0,0 3.543772,3.9681409 4.116357,9.5646254 7.997901,-0.319186 14.867898,3.896119 17.510178,5.520094 16.739924,10.288578 23.292435,43.609142 23.25813,69.171357 L 31.276378,89.438748 c -0.279195,-17.569823 20.961055,-24.15666 20.339188,-40.843407 -5.367123,4.16531 -11.35016,5.299038 -16.088628,9.280081 -3.762519,3.161091 -5.701189,6.863679 -9.45265,11.30587 -1.382962,1.637591 -5.075349,0.911668 -6.268037,-1.468517 -5.963474,1.785141 -11.6937748,0.0239 -11.5590169,-8.469851 0.119293,-7.519263 7.6975789,-14.314587 10.3029429,-21.371154 1.123156,-3.042046 0.966084,-7.743775 2.740566,-11.128459 1.377838,-2.628126 4.478975,-5.67204 5.900094,-6.671984 1.10378,-3.747695 0.861706,-10.0960188 -0.965618,-12.5271371 2.664853,-0.7597152 8.781083,2.9550391 11.217519,7.3614251 z m 13.886535,2.899266 0,3.704474 c 5.153145,-0.004 11.834431,2.727161 16.616726,7.094035 9.560791,8.730254 13.847408,30.252407 15.769188,49.842553 0.541122,4.579366 1.051926,8.318846 5.31741,8.636333 C 89.235396,71.393727 84.131251,38.972241 73.693211,28.12312 67.053274,21.221685 59.652256,18.158673 51.329273,17.804881 z m -31.307371,46.616042 1.789046,0.595044 1.789043,-5.950457 -0.596358,0 z m -5.035836,-3.049548 c 3.520118,-0.165279 5.142184,-7.708943 1.565431,-7.611674 -3.950821,0.107448 -4.602865,7.754291 -1.565431,7.611674 z m 37.723152,-15.347271 1.192688,0 c 1.830502,-0.59093 2.488937,-5.793425 1.789045,-6.545507 -1.03944,0.276838 -1.689618,4.165324 -2.981733,6.545507 z M 31.948861,21.577613 c 1.192688,0 5.265891,-0.151945 6.458579,-0.746988 11.330617,-3.570281 -5.265891,-5.798518 -6.458579,0.746988 z" />
-    <path
-       style="color:#000000;fill:#ffffff;fill-opacity:0.99215686000000003;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.00000011999999994;stroke-opacity:0.99215686000000003;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path4701"
-       inkscape:connector-curvature="0"
-       d="m 29.45005,20.620474 c -0.07125,0.328646 -0.122431,0.66697 -0.210449,0.965956 -1.421119,0.999944 -4.514751,4.04957 -5.892595,6.677696 -0.653393,1.246275 -1.05773,2.660824 -1.346886,4.115813 l 7.216099,6.691472 10.0595,-10.331531 z" />
-    <path
-       style="opacity:0.98999999;fill:#000000;fill-opacity:1"
-       id="path4739"
-       inkscape:connector-curvature="0"
-       d="m 27.436979,36.17279 1.192688,-2.975226 c 3.578104,0.595043 5.367136,-1.190084 4.770792,-4.760366 l 2.981734,-0.595042 0,-0.595042 C 31.01507,26.057015 26.244277,30.817381 27.436979,36.17279 z" />
-  </g>
-</svg>
diff --git a/themes/Mono/BlackPawn.svg b/themes/Mono/BlackPawn.svg
deleted file mode 100644 (file)
index 2485940..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="BlackPawn.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1111"
-     inkscape:window-height="942"
-     id="namedview3122"
-     showgrid="false"
-     inkscape:zoom="6.6928125"
-     inkscape:cx="42.5547"
-     inkscape:cy="50.448242"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3575">
-    <path
-       inkscape:connector-curvature="0"
-       id="path3571"
-       d="m 48.90625,14.03125 c -7.799869,0.283873 -12.986179,10.175473 -8.03125,16.5 -9.423631,4.055402 -12.030823,17.83994 -4.125,24.625 2.453551,1.889109 -3.69746,2.976634 -4.78125,5 C 23.246381,67.636049 19.372008,79.669253 20.34375,91 c 19.770833,0 39.541667,0 59.3125,0 1.299337,-13.684176 -4.985281,-28.488386 -17.5625,-34.84375 8.284173,-5.834561 7.555482,-19.443149 -1.125,-24.53125 -3.737623,-1.049489 1.090275,-4.335257 0.0625,-7.0625 0.15987,-6.267189 -6.007662,-11.234145 -12.125,-10.53125 z"
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.99999988000000006;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <path
-       d="m 49.979524,16.000005 c -4.99989,0 -9.02473,3.820493 -9.02473,8.555112 0,2.694657 1.31064,5.109558 3.36376,6.681141 -6.05375,1.999801 -10.33741,7.090392 -10.33741,13.077102 0,5.254737 3.29969,9.828267 8.20429,12.221587 -11.530117,3.98182 -19.936436,15.84515 -19.936436,30.75402 0,0.57967 0.01588,1.13875 0.04096,1.71103 l 55.420046,0 c 0.0252,-0.57228 0.041,-1.13136 0.041,-1.71103 0,-14.90887 -8.40629,-26.7722 -19.93646,-30.75402 4.90462,-2.39332 8.20431,-6.96685 8.20431,-12.221587 0,-5.98671 -4.28366,-11.077301 -10.33742,-13.077102 2.05313,-1.571584 3.36376,-3.986484 3.36376,-6.681141 0,-4.73462 -4.06585,-8.555113 -9.06575,-8.555113 z"
-       inkscape:connector-curvature="0"
-       id="path3789"
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-  </g>
-</svg>
diff --git a/themes/Mono/BlackPrincess.svg b/themes/Mono/BlackPrincess.svg
deleted file mode 100644 (file)
index a3294d9..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="BlackPrincess.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1039"
-     inkscape:window-height="959"
-     id="namedview3141"
-     showgrid="false"
-     inkscape:zoom="6.8495313"
-     inkscape:cx="50.343274"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3627">
-    <path
-       inkscape:connector-curvature="0"
-       id="path3604"
-       d="m 37.53125,8.84375 c -6.665056,0.1630786 -8.127979,10.552012 -1.75,12.5 1.419884,4.371333 -0.67186,11.013301 -0.518363,16.204494 -0.192174,7.550083 -0.552644,14.358756 -4.81335,3.985367 -2.3092,-4.770972 -6.491342,-9.836794 -7.730787,-14.439861 4.824583,-5.035754 -2.312382,-13.375712 -8.125,-9.625 -5.7392467,2.783667 -3.125785,12.149747 3.125,11.84375 1.75648,10.297075 3.514863,21.508671 5.1875,31.1875 4.953841,2.035414 9.130881,8.133427 7.653834,14.062242 -1.081805,4.090244 -5.59082,10.461474 0.189916,12.969008 11.118182,4.802046 24.552765,4.268712 36.09375,1.28125 3.923636,-0.870705 8.177736,-4.845016 4.832692,-9.000611 -2.518149,-5.438764 -3.720809,-12.905758 2.05502,-16.678872 5.384503,-2.729772 4.039829,-8.045905 5.294374,-13.876703 1.091713,-6.687333 1.891803,-13.713421 3.161664,-20.193814 6.530232,0.467484 8.960766,-9.472148 2.875,-11.96875 -5.987088,-3.436149 -12.730776,5.471862 -7.4375,10.09375 -3.264895,7.041259 -8.100617,14.35435 -11.96875,21.5 C 65.073413,39.714417 63.930388,30.297431 63.6875,21.59375 70.316992,20.179627 69.780081,9.5813051 63.03125,8.9375 c -6.846058,-1.5876601 -10.525406,8.93735 -4.25,12 C 56,29.739583 53.21875,38.541667 50.4375,47.34375 47.670918,38.513204 43.733948,29.2541 41.6875,20.6875 47.271208,17.227768 44.118361,8.1009638 37.53125,8.84375 z m 45.9375,10.84375 c -0.06692,4.224016 -2.392111,-2.070184 0,0 z"
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:2.00000023999999987;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path759"
-       inkscape:connector-curvature="0"
-       d="M 24.554866,58.280821 19.183219,25.935977 36.817434,56.599121" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path761"
-       inkscape:connector-curvature="0"
-       d="M 35.814851,57.005125 38.644113,19.209159 50.730651,54.33479 z" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path763"
-       inkscape:connector-curvature="0"
-       d="M 75.656466,58.348493 80.333542,27.057114 63.456085,56.543065" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path765"
-       inkscape:connector-curvature="0"
-       d="M 64.317705,57.197682 61.321899,19.545498 50.159835,54.948598 z" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path767"
-       inkscape:connector-curvature="0"
-       d="m 70.845406,83.310227 c 0,3.14239 -9.223935,5.689778 -20.602222,5.689778 -11.378288,0 -20.602223,-2.547388 -20.602223,-5.689778 l 2.928947,-8.156264 -0.08099,-8.352473 -7.320054,-8.128277 5.489508,-3.873545 5.17622,1.260921 7.238672,-3.624922 7.269519,1.696958 6.554341,-1.696958 6.608265,3.624922 6.123304,-1.260921 5.410671,3.873545 -7.318367,8.128277 0.07595,8.352473 z" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:2.00000023999999987;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path769"
-       inkscape:connector-curvature="0"
-       d="m 34.029651,65.95064 c 3.768624,-1.342709 9.665263,-2.206981 16.292812,-2.206981 6.145675,0 11.662845,0.743162 15.437553,1.921835" />
-    <path
-       inkscape:connector-curvature="0"
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path771"
-       d="m 22.293787,22.821968 a 4.4952015,4.4791203 0 0 1 -8.990403,0 4.4952015,4.4791203 0 1 1 8.990403,0 z" />
-    <path
-       inkscape:connector-curvature="0"
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path773"
-       d="m 86.696598,22.920488 a 4.4952015,4.4791203 0 0 1 -8.990403,0 4.4952015,4.4791203 0 1 1 8.990403,0 z" />
-    <path
-       inkscape:connector-curvature="0"
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path775"
-       d="m 66.494858,15.323548 a 4.4952015,4.4791203 0 0 1 -8.990403,0 4.4952015,4.4791203 0 1 1 8.990403,0 z" />
-    <path
-       inkscape:connector-curvature="0"
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path777"
-       d="m 42.584345,15.300328 a 4.4952015,4.4791203 0 0 1 -8.990403,0 4.4952015,4.4791203 0 1 1 8.990403,0 z" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:2.00000023999999987;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path781"
-       inkscape:connector-curvature="0"
-       d="m 35.445623,74.379664 c 3.750008,-1.080735 9.028885,-1.753637 14.87684,-1.753637 5.382065,0 10.282104,0.569955 13.951937,1.503237" />
-    <path
-       inkscape:connector-curvature="0"
-       style="color:#000000;fill:#ffffff;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path783"
-       d="m 32.841154,80.670752 a 1.2684233,0.64412119 0 1 1 -2.536844,0 1.2684233,0.64412119 0 1 1 2.536844,0 z" />
-  </g>
-</svg>
diff --git a/themes/Mono/BlackQueen.svg b/themes/Mono/BlackQueen.svg
deleted file mode 100644 (file)
index bf44ca2..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="BlackQueen.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1093"
-     inkscape:window-height="950"
-     id="namedview3152"
-     showgrid="false"
-     inkscape:zoom="6.7665625"
-     inkscape:cx="50.901976"
-     inkscape:cy="43.757857"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3655">
-    <path
-       inkscape:connector-curvature="0"
-       id="path3651"
-       d="m 49.03125,5.75 c -5.68726,1.0119867 -6.570704,9.746751 -1.625,12.34375 -1.864583,9.041667 -3.729167,18.083333 -5.59375,27.125 C 39.160241,36.86531 34.868249,27.970621 33.1875,19.9375 38.803802,16.132348 34.218421,6.4851456 27.75,8.4375 21.068732,9.6221761 21.364303,20.441311 28.15625,21.125 27.6875,30.208333 27.21875,39.291667 26.75,48.375 23.052025,41.242089 17.882318,33.858046 15.0625,26.875 20.103385,22.21318 13.925976,13.166793 7.75,16.40625 1.4213,18.834955 3.6854855,29.279128 10.46875,28.84375 12.32109,39.01011 13.357813,49.555486 15.6875,59.5 c 4.174625,4.351434 8.821461,8.508236 7.5,15.125 -1.280982,3.621198 -7.03629,9.27495 -1.75,12.09375 12.411782,5.260244 26.712041,4.394049 40,3.8125 6.392654,-1.113162 14.794528,-0.486712 19.21875,-5.9375 0.832143,-5.18607 -6.234044,-9.27352 -3.399516,-14.939723 0.814342,-6.207901 9.240229,-9.096417 8.211317,-16.212685 1.708598,-7.959308 2.093521,-17.477891 4.594449,-24.503842 6.97184,-0.122746 8.12846,-11.087693 1.4375,-12.75 -6.31655,-2.329087 -11.31038,6.847474 -6.28125,11 -3.979167,7.041667 -7.958333,14.083333 -11.9375,21.125 C 73.0085,39.299341 72.193464,29.908843 72.25,21.125 78.924409,19.915508 78.627801,9.1974306 71.90625,8.375 65.188269,6.7181916 61.215445,17.027293 67.34375,20.3125 64.270833,28.739583 61.197917,37.166667 58.125,45.59375 56.530821,36.475226 53.403828,26.616649 52.71875,17.9375 58.10184,14.76433 55.817673,4.7616242 49.03125,5.75 z M 10.0625,20.71875 c -2.7332401,-1.949498 1.065066,-3.110489 0,0 z"
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path297"
-       inkscape:connector-curvature="0"
-       d="m 49.921428,7.6782451 c -2.098076,0 -3.771325,2.0282795 -3.771325,4.5200739 0,2.426935 1.591726,4.418686 3.614187,4.520075 L 42.339494,52.60144 30.279111,19.13703 c 1.974842,-0.467613 3.457048,-2.225653 3.457048,-4.361475 0,-2.491795 -2.009601,-4.520074 -4.478448,-4.520074 -2.468848,0 -4.478449,2.028279 -4.478449,4.520074 0,2.491795 2.009601,4.480424 4.478449,4.480424 0.339469,0 0.664306,-0.04656 0.982115,-0.118885 L 28.393449,55.376988 12.12961,26.591251 l 5.067718,31.561221 7.581934,8.485052 0.432131,8.405752 -4.124886,8.207504 c 0,3.165321 12.978499,5.749217 28.952775,5.749217 15.974276,0 28.913491,-2.583896 28.913491,-5.749217 l -4.282025,-8.207504 0.903547,-8.405752 7.110518,-8.564351 5.185572,-31.481922 -16.263839,28.785737 -1.649954,-36.160595 c 0.255608,0.0458 0.517036,0.0793 0.785692,0.0793 2.468848,0 4.478449,-2.02828 4.478449,-4.520075 0,-2.491795 -2.009601,-4.520074 -4.478449,-4.520074 -2.468847,0 -4.478448,2.028279 -4.478448,4.520074 0,2.193768 1.5584,4.034863 3.614187,4.440775 l -12.256806,33.58336 -0.03922,-0.0793 -7.660504,-36.001996 c 2.098076,0 3.81061,-2.028279 3.81061,-4.520074 0,-2.491795 -1.712534,-4.5200744 -3.81061,-4.5200744 z M 87.870385,26.591188 c 0.534812,0.228306 1.111309,0.356848 1.728524,0.356848 2.468848,0 4.478448,-2.02828 4.478448,-4.520075 0,-2.491794 -2.0096,-4.520074 -4.478448,-4.520074 -2.468848,0 -4.439164,2.02828 -4.439164,4.520074 0,1.868843 1.106205,3.478307 2.71064,4.163227 z m -77.469299,-8.7626 c -2.4688475,0 -4.4784482,2.028279 -4.4784482,4.520074 0,2.491795 2.0096007,4.480424 4.4784482,4.480424 2.468848,0 4.478448,-1.988629 4.478448,-4.480424 0,-2.491795 -2.0096,-4.520074 -4.478448,-4.520074 z" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:2.00000048000000019;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path360"
-       inkscape:connector-curvature="0"
-       d="m 25.810632,66.129791 c 5.175942,-1.551264 14.057349,-2.574507 24.144876,-2.574507 9.836584,0 18.526332,0.972973 23.751767,2.459719" />
-    <path
-       style="color:#000000;fill:none;stroke:#ffffff;stroke-width:2.00000048000000019;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path374"
-       inkscape:connector-curvature="0"
-       d="m 27.361677,74.647527 c 5.301163,-1.307884 13.43884,-2.145084 22.563334,-2.145084 9.033115,0 17.099074,0.820515 22.403204,2.105929" />
-    <path
-       inkscape:connector-curvature="0"
-       style="color:#000000;fill:#ffffff;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path390"
-       d="m 24.950553,80.761541 a 1.3986461,0.79052182 0 1 1 -2.797292,0 1.3986461,0.79052182 0 1 1 2.797292,0 z" />
-  </g>
-</svg>
diff --git a/themes/Mono/BlackRook.svg b/themes/Mono/BlackRook.svg
deleted file mode 100644 (file)
index 32f5df4..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="BlackRook.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1166"
-     inkscape:window-height="856"
-     id="namedview3165"
-     showgrid="false"
-     inkscape:zoom="5.9"
-     inkscape:cx="50.34546"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3673">
-    <path
-       sodipodi:nodetypes="ccccccccccccccccccccccccc"
-       style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.99999988000000006;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path3669"
-       inkscape:connector-curvature="0"
-       d="m 18.250926,8.9626228 0,15.9245042 8.691591,7.234041 0,33.296332 -7.205464,6.985039 0,8.214952 -7.205463,0 0,10.419884 74.936822,0 0,-10.419884 -7.20547,0 0,-8.214952 -7.20546,-6.940046 0,-33.386323 8.646558,-7.189043 0,-15.9245042 -15.00374,0 0,7.1545432 -9.918985,0 0,-7.1545432 -13.483212,0 0,7.1545432 -9.534971,0 0,-7.1545432 z" />
-    <path
-       d="m 19.830742,11.000003 0,13.68421 8.259102,6.713817 0,34.381577 -6.846924,6.79933 0,9.57895 -6.846923,0 0,6.84211 71.208007,0 0,-6.84211 -6.84693,0 0,-9.57895 -6.84692,-6.75657 0,-34.467101 8.21631,-6.671053 0,-13.68421 -12.32447,0 0,6.799342 -12.32446,0 0,-6.799342 -11.04066,0 0,6.799342 -12.281671,0 0,-6.799342 -12.324462,0 z"
-       inkscape:connector-curvature="0"
-       id="path1039"
-       style="color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.99999988;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <g
-       transform="matrix(1.4259259,0,0,1.4247881,-121.37847,-163.58464)"
-       id="g1096"
-       style="fill:#ffffcc;fill-opacity:1;stroke:#ffffff;stroke-opacity:1">
-      <rect
-         width="39.015907"
-         height="0.99820852"
-         x="100.5946"
-         y="130.89389"
-         id="rect1074"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#ffffff;stroke-width:0.70157868000000001;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <rect
-         width="28.988182"
-         height="0.99820852"
-         x="105.60845"
-         y="135.9021"
-         id="rect1076"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#ffffff;stroke-width:0.70157862000000004;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <rect
-         width="29.036861"
-         height="0.99820852"
-         x="105.58411"
-         y="160.90337"
-         id="rect1078"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#ffffff;stroke-width:0.70157868000000001;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <rect
-         width="39.015907"
-         height="0.99820852"
-         x="100.5946"
-         y="172.91324"
-         id="rect1080"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#ffffff;stroke-width:0.70157868000000001;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <rect
-         width="37.0201"
-         height="0.99820852"
-         x="101.5925"
-         y="165.90039"
-         id="rect1082"
-         style="color:#000000;fill:#ffffcc;fill-opacity:1;stroke:#ffffff;stroke-width:0.70157868000000001;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/Mono/BlackUnicorn.svg b/themes/Mono/BlackUnicorn.svg
deleted file mode 100644 (file)
index f76533d..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="BlackUnicorn.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1270"
-     inkscape:window-height="918"
-     id="namedview3177"
-     showgrid="false"
-     inkscape:zoom="4.5760857"
-     inkscape:cx="52.908208"
-     inkscape:cy="56.381367"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3224">
-    <path
-       sodipodi:nodetypes="cccccccccccccccccc"
-       inkscape:connector-curvature="0"
-       id="path4298-8"
-       d="m 47.21875,6.65625 c -2.271724,2.2470091 -3.676288,6.331376 -5.4375,8.15625 -3.110977,0.450973 -3.418053,-4.541031 -6.59375,-5.09375 -1.288903,-1.0227694 -4.89394,-2.510931 -7.646409,-2.233007 0.258679,1.6895582 1.586624,1.6371121 1.771409,3.795507 0.697762,4.367378 0.944146,9.447859 -3.1875,12.25 -5.810231,6.616514 -3.460182,16.517821 -9.613562,23.053215 -4.225117,5.82562 -8.8015571,15.55512 -2.105188,21.353035 2.380373,2.605482 6.644578,0.874145 8.875,1.875 3.633697,3.741753 8.046173,-0.738973 9.65625,-4.15625 4.337621,-6.922994 11.629391,-10.31079 18.4375,-14.1875 2.032288,-0.860927 -0.19068,4.794929 -0.8125,6.46875 -4.724769,8.349657 -18.079135,18.024077 -17.4375,32.772821 l 59.71875,0 C 92.199607,67.950084 89.938085,42.910932 75.0625,24.71875 69.401761,19.045161 61.187187,15.168547 53.59375,14.625 53.026967,11.013672 48.875,4.8142278 48.875,4.8142278 c 0,0 -1.104167,1.2795222 -1.65625,1.8420222 z"
-       style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.74352384px;stroke-opacity:1" />
-    <path
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1471"
-       inkscape:connector-curvature="0"
-       d="m 28.857811,66.844865 c 0,0 5.730339,5.50075 7.995813,5.363241 -1.732419,-3.025426 -2.13222,-4.400597 -1.998953,-5.638272 1.199377,0.550076 3.464852,-1.237675 3.464852,-1.237675 -1.199378,-0.412554 -5.463806,-3.162936 -6.130128,-4.950687 z" />
-    <path
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1469"
-       inkscape:connector-curvature="0"
-       d="M 27.389182,27.865874 8.3543883,5.5005529 32.100756,23.587294 z" />
-    <path
-       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.74352384px;stroke-opacity:1"
-       id="BlackKnight-0-5"
-       inkscape:connector-curvature="0"
-       d="m 39.894701,15.817193 3.285829,0.07898 C 43.035071,12.294 48.899895,6.400038 48.899895,6.400038 c 0,0 3.385007,3.919739 3.931946,9.447953 7.639589,-0.315289 14.201811,3.848577 16.725717,5.45274 15.989961,10.16307 22.248919,43.077132 22.21615,68.327513 L 34.004596,89.441057 C 33.737908,72.085573 54.026577,65.57909 53.432575,49.095904 c -5.12667,4.114506 -10.841663,5.234397 -15.367856,9.166876 -3.593952,3.122532 -5.445767,6.779953 -9.029168,11.167943 -1.321003,1.617617 -4.847969,0.900543 -5.987219,-1.450594 -5.696314,1.763356 -11.169888,0.02355 -11.041172,-8.366534 0.113972,-7.427518 7.352722,-14.139947 9.841372,-21.110434 1.072841,-3.004933 0.922805,-7.649301 2.617789,-10.992702 1.316106,-2.596058 4.278312,-5.60283 5.635764,-6.590584 1.054328,-3.701965 0.823101,-9.972853 -0.922357,-12.3743025 2.54547,-0.7504529 8.387679,2.9189805 10.714973,7.2716205 z m -16.640385,48.911243 1.708894,0.587781 1.708894,-5.877862 -0.569631,0 z M 18.444089,61.71608 c 3.362418,-0.163254 4.911815,-7.61489 1.495296,-7.518803 -3.773821,0.106102 -4.396644,7.659686 -1.495296,7.518803 z m 36.033147,-15.160034 1.13925,0 c 1.748496,-0.583719 2.377435,-5.722744 1.708895,-6.465656 -0.992868,0.273458 -1.613922,4.114506 -2.848145,6.465656 z m -24.181629,-9.731134 1.13925,-2.938931 c 3.417788,0.587794 5.126682,-1.175562 4.557051,-4.702287 l 2.848144,-0.587794 0,-0.587781 c -5.12667,-1.175575 -9.683721,3.526712 -8.544445,8.816793 z M 34.646944,22.40779 c 1.139262,0 5.029979,-0.150091 6.169229,-0.737885 10.823009,-3.526712 -5.029967,-5.727771 -6.169229,0.737885 z" />
-    <path
-       inkscape:connector-curvature="0"
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.00000012;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1478"
-       d="m 53.860754,19.150432 a 1.666326,0.75430222 82.273165 1 1 -1.492647,0.219328 1.666326,0.75430222 82.273165 1 1 1.492647,-0.219328 z" />
-  </g>
-</svg>
diff --git a/themes/Mono/WhiteAdvisor.svg b/themes/Mono/WhiteAdvisor.svg
deleted file mode 100644 (file)
index cdeb730..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="WhiteAdvisor.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview12"
-     showgrid="false"
-     inkscape:zoom="2.43375"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1"
-     style="fill:#ffffff">
-    <g
-       transform="matrix(1.4861261,0,0,1.4861261,-1011.529,435.79173)"
-       id="g533"
-       style="display:inline;fill:#ffffff">
-      <path
-         d="m 778.01692,-203.72171 c 0,3.25726 -8.91179,5.89779 -19.90504,5.89779 -10.99326,0 -19.90505,-2.64053 -19.90505,-5.89779 0.0946,-3.73126 2.33706,-4.90002 2.17488,-7.58289 -0.13529,-2.23801 -3.26235,-4.39325 -2.55314,-5.89779 0.70921,-1.50454 17.11551,-12.39739 18.91216,-17.69337 l 2.93138,0 c 1.60753,5.41634 17.68286,15.52683 18.34479,16.97119 0.66193,1.44436 -2.13164,4.22877 -2.17489,6.61997 -0.0486,2.6901 2.17491,3.61091 2.17491,7.58289 z"
-         inkscape:connector-curvature="0"
-         transform="matrix(1.2993827,0,0,1.0208333,-225.06109,4.3670728)"
-         id="path517"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.16849910999999995;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 741.28937,-214.05418 c 3.78276,-1.64916 10.3791,-2.56894 18.72697,-2.56894 8.76814,0 15.20178,1.14205 18.93874,2.93056"
-         inkscape:connector-curvature="0"
-         id="path519"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.34578072999999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 738.20683,-203.72171 c 0,-3.25726 8.91179,-5.89779 19.90505,-5.89779 10.99325,0 19.90504,2.64053 19.90504,5.89779"
-         inkscape:connector-curvature="0"
-         transform="matrix(1.2993827,0,0,1.0208333,-225.06109,4.3670728)"
-         id="path521"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.16849910999999995;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 739.72049,-221.47874 c 4.86123,-1.31334 12.14742,-2.14801 20.29168,-2.14801 8.34275,0 15.78508,0.87585 20.64276,2.24489"
-         inkscape:connector-curvature="0"
-         id="path523"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.34578084999999992;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 766.22133,-240.82864 a 5.77492,5.77492 0 1 1 -11.54984,0 5.77492,5.77492 0 1 1 11.54984,0 z"
-         transform="translate(-0.67579834,0)"
-         id="path529"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.34578084999999992;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/Mono/WhiteArchbishop.svg b/themes/Mono/WhiteArchbishop.svg
deleted file mode 100644 (file)
index fbcb784..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="WhiteArchbishop.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview3004"
-     showgrid="false"
-     inkscape:zoom="2.43375"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165632)"
-     id="layer1"
-     style="fill:#ffffff">
-    <g
-       transform="matrix(1.3304661,0,0,1.3304661,-212.64971,573.26587)"
-       id="g1433"
-       style="display:inline;fill:#ffffff">
-      <g
-         transform="matrix(-0.70710678,-0.70710678,-0.70710678,0.70710678,173.15988,73.622253)"
-         id="g1422"
-         style="fill:#ffffff">
-        <path
-           d="m 250.34715,-394.88641 8.76326,8.76325 0,49.52443 -17.52651,0 0,-49.52443 z"
-           inkscape:connector-curvature="0"
-           id="path1424"
-           style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.50323260000000003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-        <path
-           d="m 266.16526,-336.32175 1.56773,1.24615 0,5.50719 -1.88937,1.96968 -6.51213,0 -2.17075,-2.09028 -14.7126,0 -2.17074,2.09028 -5.30619,0 -2.0099,-1.96974 0,-5.50718 1.76874,-1.24614 z"
-           inkscape:connector-curvature="0"
-           id="path1427"
-           style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.50323260000000003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-        <path
-           d="m 254.46749,-329.67389 0,13.54686 -1.64813,1.84914 -4.62282,0 -1.96972,-1.84914 0,-13.54686 z"
-           inkscape:connector-curvature="0"
-           id="path1429"
-           style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.50323260000000003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-        <path
-           d="m 250.29031,-383.94193 0.11369,44.00123"
-           inkscape:connector-curvature="0"
-           id="path1431"
-           style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.50323260000000003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      </g>
-      <g
-         transform="matrix(0.70710678,-0.70710678,0.70710678,0.70710678,323.25654,73.622253)"
-         id="g1406"
-         style="fill:#ffffff">
-        <path
-           d="m 250.34715,-394.88641 8.76326,8.76325 0,49.52443 -17.52651,0 0,-49.52443 z"
-           inkscape:connector-curvature="0"
-           id="path402"
-           style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.50323260000000003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-        <path
-           d="m 266.16526,-336.32175 1.56773,1.24615 0,5.50719 -1.88937,1.96968 -6.51213,0 -2.17075,-2.09028 -14.7126,0 -2.17074,2.09028 -5.30619,0 -2.0099,-1.96974 0,-5.50718 1.76874,-1.24614 z"
-           inkscape:connector-curvature="0"
-           id="path404"
-           style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.50323260000000003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-        <path
-           d="m 254.46749,-329.67389 0,13.54686 -1.64813,1.84914 -4.62282,0 -1.96972,-1.84914 0,-13.54686 z"
-           inkscape:connector-curvature="0"
-           id="path406"
-           style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.50323260000000003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-        <path
-           d="m 250.29031,-383.94193 0.11369,44.00123"
-           inkscape:connector-curvature="0"
-           id="path420"
-           style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.50323260000000003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      </g>
-    </g>
-  </g>
-</svg>
diff --git a/themes/Mono/WhiteBishop.svg b/themes/Mono/WhiteBishop.svg
deleted file mode 100644 (file)
index 6657489..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="WhiteBishop.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview3018"
-     showgrid="false"
-     inkscape:zoom="2.43375"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165632)"
-     id="layer1"
-     style="fill:#ffffff">
-    <g
-       transform="matrix(0.91849334,0,0,0.91849334,9.5837891,5.9073655)"
-       id="g551"
-       style="fill:#ffffff">
-      <path
-         d="m 508.86265,-382.5542 a 4.6124978,4.6124978 0 1 1 -9.225,0 4.6124978,4.6124978 0 1 1 9.225,0 z"
-         transform="matrix(1.2255917,0,0,1.2195279,-500.42191,530.14211)"
-         id="path293"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.78108727999999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 102.30791,114.15677 c -2.381993,-2.80054 -8.638075,-4.30719 -8.750254,-18.174097 -0.10019,-12.385659 16.295624,-25.334329 24.234794,-25.436764 7.94536,-0.102463 23.79265,13.066976 23.81604,25.436764 0.0284,15.014807 -6.0818,15.983797 -8.36216,18.174097 z"
-         inkscape:connector-curvature="0"
-         id="path308"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2.17747903000000020;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 138.51933,127.21716 c 0,2.32273 -9.3739,4.20566 -20.93717,4.20566 -11.56329,0 -20.937196,-1.88293 -20.937196,-4.20566 0.07402,-1.56127 2.990976,-10.88297 7.268866,-12.31694 7.51256,-2.51821 20.04082,-2.8125 27.8294,0 4.18094,1.50977 6.85013,10.90436 6.7761,12.31694 z"
-         inkscape:connector-curvature="0"
-         id="path300"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2.17747903000000020;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 97.323539,126.17493 c 2.308321,-1.81859 10.516951,-3.16343 20.289291,-3.16343 9.68966,0 17.84196,1.32219 20.22942,3.11737"
-         inkscape:connector-curvature="0"
-         id="path306"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2.17747903000000020;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 117.5829,84.712576 0,18.315014"
-         inkscape:connector-curvature="0"
-         id="path295"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2.17747903000000020;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 107.752,94.62332 19.6618,0"
-         inkscape:connector-curvature="0"
-         id="path298"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2.17747903000000020;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 73.242462,143.14554 4.589483,5.20422 c 2.25717,-1.48539 5.237312,-2.82515 8.142648,-2.82515 l 21.466997,0 c 3.55761,0 6.975,-3.04819 9.84522,-4.53512 3.16629,1.33824 6.18102,4.53512 9.8452,4.53512 l 22.65137,0 c 2.45609,0 4.46573,1.28242 6.81021,2.82515 l 5.32974,-5.20422 c -2.41945,-1.83524 -6.6992,-4.7011 -10.36338,-4.7011 l -23.68771,0 c -2.50379,-0.0406 -3.97411,-2.34721 -6.93358,-5.5587 l -6.85958,0 c -1.91158,1.68286 -5.23736,5.59255 -8.11798,5.5587 l -22.207231,0 c -3.849247,0 -7.678117,2.04058 -10.511407,4.7011 z"
-         inkscape:connector-curvature="0"
-         id="path310"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2.17747903000000020;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/Mono/WhiteCanon.svg b/themes/Mono/WhiteCanon.svg
deleted file mode 100644 (file)
index 580d752..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="WhiteCanon.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview3030"
-     showgrid="false"
-     inkscape:zoom="2.43375"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165632)"
-     id="layer1"
-     style="fill:#ffffff">
-    <g
-       transform="matrix(1.2579027,0,0,1.2559836,-516.51075,75.363446)"
-       id="g1812"
-       style="display:inline;fill:#ffffff">
-      <path
-         d="m 477.39624,1.8939841 -4.34143,10.4515849 0.5223,0.270816 1.8896,-1.557164 54.18745,25.566184 4.98461,-15.114599 L 478.361,4.1450948 478.00268,2.1164623 z"
-         inkscape:connector-curvature="0"
-         id="path1808"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.59116232000000002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 476.99425,24.324694 13.10469,0 0,-3.939445 27.33491,0 0,3.939445 13.02428,0 0,23.234677 -53.46388,0 z"
-         inkscape:connector-curvature="0"
-         id="path1800"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.59116232000000002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 495.40513,51.740005 a 4.984602,4.984602 0 1 1 -9.9692,0 4.984602,4.984602 0 1 1 9.9692,0 z"
-         transform="translate(-1.1255553,-3.5374595)"
-         id="path1804"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.59116232000000002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 495.40513,51.740005 a 4.984602,4.984602 0 1 1 -9.9692,0 4.984602,4.984602 0 1 1 9.9692,0 z"
-         transform="translate(26.69174,-3.5374595)"
-         id="path1806"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.59116232000000002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 535.12117,29.068106 a 2.2511106,2.2511106 0 1 1 -4.50222,0 2.2511106,2.2511106 0 1 1 4.50222,0 z"
-         id="path1810"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.59116232000000002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/Mono/WhiteChancellor.svg b/themes/Mono/WhiteChancellor.svg
deleted file mode 100644 (file)
index 52eb7c6..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="WhiteChancellor.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview3048"
-     showgrid="false"
-     inkscape:zoom="1.216875"
-     inkscape:cx="87.478896"
-     inkscape:cy="47.636663"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3203">
-    <path
-       d="m 63.054986,17.101753 -2.689573,0.05661 c 0.119061,-2.581552 -4.681512,-6.805532 -4.681512,-6.805532 0,0 -2.770755,2.809133 -3.21844,6.770996 -6.253284,-0.225955 -11.6247,2.758134 -13.690608,3.907781 C 25.686478,28.315105 20.563294,51.9034 20.590116,69.999407 l 47.286137,-0.13415 C 68.094545,57.427224 51.48752,52.76427 51.973737,40.951382 c 4.19637,2.94871 8.874302,3.751299 12.579148,6.56956 2.941785,2.237799 4.457565,4.858936 7.390704,8.003652 1.081291,1.159284 3.968242,0.645388 4.900764,-1.039592 4.662631,1.263737 9.142963,0.01692 9.037592,-5.995978 -0.0933,-5.323038 -6.018469,-10.133588 -8.055512,-15.129074 -0.878162,-2.153523 -0.755352,-5.48197 -2.142762,-7.878059 -1.077278,-1.860501 -3.501949,-4.015348 -4.613073,-4.723231 -0.863009,-2.653063 -0.673739,-7.147175 0.754983,-8.86821 -2.083558,-0.537823 -6.865629,2.091927 -8.770595,5.211303 z"
-       inkscape:connector-curvature="0"
-       id="path4350"
-       style="opacity:0.98999999;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.74352378px;stroke-opacity:1" />
-    <path
-       d="m 58.205518,18.181449 c 0.07582,0.756233 0.344472,1.352274 0.768768,2.169533 2.229588,4.2945 1.257955,-0.163338 1.21004,-1.138924 1.589896,0.455481 4.217758,2.155235 5.343035,3.072935 -0.238206,-0.782549 -1.679207,-2.772399 -1.262419,-4.160082 0.562986,-1.874439 2.524597,-3.146149 4.615368,-4.069798 -0.648412,2.193907 -1.026203,4.879085 0.551687,7.711406 1.014115,1.071634 2.050955,1.896126 2.895966,2.973129 0.719389,0.916891 1.414242,1.860601 1.827122,2.939906 0.876341,1.856431 0.91362,3.903095 1.551174,5.819729 1.069086,3.225001 2.949989,6.151768 5.057199,8.906227 1.403627,2.038037 3.06133,4.183694 3.007202,6.689623 -0.07793,1.2366 -0.696232,2.469848 -1.653217,3.263835 -1.131996,0.827697 -2.729906,0.789273 -4.006627,0.409705 -1.859915,-0.552951 -3.182424,-3.175207 -4.710535,-5.356327 -0.05002,0.451393 0.106245,1.758763 0.295209,3.071648 0.236016,1.639755 0.523064,3.288113 0.523064,3.288113 -3.985259,-2.347309 -6.624158,-6.714063 -10.611397,-9.350342 -2.775504,-1.835102 -6.80951,-2.075127 -9.100882,-4.392405 -2.850957,-2.88318 -3.545136,-3.209016 -4.739222,-10.779123 -1.301362,7.377576 -0.27599,16.456601 3.230929,21.277804 0.993643,1.366033 2.781159,2.983905 4.15907,4.478064 2.484602,2.694208 5.287138,4.979789 6.986375,8.013862 0.868137,1.550111 1.453817,3.658369 1.536978,5.023333 -14.622046,0.04962 -29.092912,-0.03228 -41.821071,0 -0.140996,-4.993911 0.50731,-9.51964 1.326995,-14.217677 0.796728,-4.566439 1.9108,-9.107163 3.478065,-13.507796 1.321392,-3.710259 2.427736,-7.646992 4.968824,-10.796716 3.171483,-3.931098 7.469033,-7.312153 12.300809,-9.458735 1.990476,-0.884297 4.048286,-1.168018 6.188036,-1.354903 0.712555,2.511502 1.198203,0.343883 1.593023,-0.135279 1.091737,-1.85009 1.988813,-2.582058 2.150766,-4.704124 1.38762,1.684718 2.225007,3.170346 2.339666,4.313379 z"
-       inkscape:connector-curvature="0"
-       id="path4352"
-       style="opacity:0.98999999;fill:#ffffcc;fill-opacity:1;stroke:#fdfdca;stroke-width:0.74352378px;stroke-opacity:1" />
-    <path
-       d="m 80.613089,49.995797 c -2.752263,-0.117004 -4.020496,-5.457316 -1.223962,-5.388458 3.089016,0.07606 3.598822,5.489419 1.223962,5.388458 z"
-       inkscape:connector-curvature="0"
-       id="path4348"
-       style="opacity:0.98999999;fill:#000000;fill-opacity:1" />
-    <path
-       d="M 70.912194,32.157215 69.979672,30.05099 c -2.797587,0.421244 -4.19637,-0.842487 -3.730109,-3.36996 l -2.331316,-0.421244 0,-0.421243 c 4.19637,-0.842494 7.926479,2.527467 6.993947,6.318672 z"
-       inkscape:connector-curvature="0"
-       id="path4340"
-       style="opacity:0.98999999;fill:#000000;fill-opacity:1" />
-    <path
-       d="m 63.054986,17.101753 -2.689573,0.05661 c 0.119061,-2.581552 -4.681512,-6.805532 -4.681512,-6.805532 0,0 -2.770755,2.809133 -3.21844,6.770996 -6.253284,-0.225955 -11.6247,2.758134 -13.690608,3.907781 C 25.686478,28.315105 20.563294,51.9034 20.590116,69.999407 l 47.286137,-0.13415 C 68.094545,57.427224 51.48752,52.76427 51.973737,40.951382 c 4.19637,2.94871 8.874302,3.751299 12.579148,6.56956 2.941785,2.237799 4.457565,4.858936 7.390704,8.003652 1.081291,1.159284 3.968242,0.645388 4.900764,-1.039592 4.662631,1.263737 9.142963,0.01692 9.037592,-5.995978 -0.0933,-5.323038 -6.018469,-10.133588 -8.055512,-15.129074 -0.878162,-2.153523 -0.755352,-5.48197 -2.142762,-7.878059 -1.077278,-1.860501 -3.501949,-4.015348 -4.613073,-4.723231 -0.863009,-2.653063 -0.673739,-7.147175 0.754983,-8.86821 -2.083558,-0.537823 -6.865629,2.091927 -8.770595,5.211303 z"
-       inkscape:connector-curvature="0"
-       id="path4729"
-       style="opacity:0.98999999;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.74352378px;stroke-opacity:1" />
-    <path
-       d="m 58.205518,18.181449 c 0.07582,0.756233 0.344472,1.352274 0.768768,2.169533 2.229588,4.2945 1.257955,-0.163338 1.21004,-1.138924 1.589896,0.455481 4.217758,2.155235 5.343035,3.072935 -0.238206,-0.782549 -1.679207,-2.772399 -1.262419,-4.160082 0.562986,-1.874439 2.524597,-3.146149 4.615368,-4.069798 -0.648412,2.193907 -1.026203,4.879085 0.551687,7.711406 1.014115,1.071634 2.050955,1.896126 2.895966,2.973129 0.719389,0.916891 1.414242,1.860601 1.827122,2.939906 0.876341,1.856431 0.91362,3.903095 1.551174,5.819729 1.069086,3.225001 2.949989,6.151768 5.057199,8.906227 1.403627,2.038037 3.06133,4.183694 3.007202,6.689623 -0.07793,1.2366 -0.696232,2.469848 -1.653217,3.263835 -1.131996,0.827697 -2.729906,0.789273 -4.006627,0.409705 -1.859915,-0.552951 -3.182424,-3.175207 -4.710535,-5.356327 -0.05002,0.451393 0.106245,1.758763 0.295209,3.071648 0.236016,1.639755 0.523064,3.288113 0.523064,3.288113 -3.985259,-2.347309 -6.624158,-6.714063 -10.611397,-9.350342 -2.775504,-1.835102 -6.80951,-2.075127 -9.100882,-4.392405 -2.850957,-2.88318 -3.545136,-3.209016 -4.739222,-10.779123 -1.301362,7.377576 -0.27599,16.456601 3.230929,21.277804 0.993643,1.366033 2.781159,2.983905 4.15907,4.478064 2.484602,2.694208 5.287138,4.979789 6.986375,8.013862 0.868137,1.550111 1.453817,3.658369 1.536978,5.023333 -14.622046,0.04962 -29.092912,-0.03228 -41.821071,0 -0.140996,-4.993911 0.50731,-9.51964 1.326995,-14.217677 0.796728,-4.566439 1.9108,-9.107163 3.478065,-13.507796 1.321392,-3.710259 2.427736,-7.646992 4.968824,-10.796716 3.171483,-3.931098 7.469033,-7.312153 12.300809,-9.458735 1.990476,-0.884297 4.048286,-1.168018 6.188036,-1.354903 0.712555,2.511502 1.198203,0.343883 1.593023,-0.135279 1.091737,-1.85009 1.988813,-2.582058 2.150766,-4.704124 1.38762,1.684718 2.225007,3.170346 2.339666,4.313379 z"
-       inkscape:connector-curvature="0"
-       id="path4731"
-       style="opacity:0.98999999000000005;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.74352377999999986px;stroke-opacity:1" />
-    <path
-       d="m 80.613089,49.995797 c -2.752263,-0.117004 -4.020496,-5.457316 -1.223962,-5.388458 3.089016,0.07606 3.598822,5.489419 1.223962,5.388458 z"
-       inkscape:connector-curvature="0"
-       id="path4733"
-       style="opacity:0.98999999;fill:#000000;fill-opacity:1" />
-    <path
-       d="M 70.912194,32.157215 69.979672,30.05099 c -2.797587,0.421244 -4.19637,-0.842487 -3.730109,-3.36996 l -2.331316,-0.421244 0,-0.421243 c 4.19637,-0.842494 7.926479,2.527467 6.993947,6.318672 z"
-       inkscape:connector-curvature="0"
-       id="path4735"
-       style="opacity:0.98999999;fill:#000000;fill-opacity:1" />
-    <path
-       style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:bevel;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1426"
-       inkscape:connector-curvature="0"
-       d="m 14.749291,76.181856 59.443919,0 -8.314639,-6.395004 -42.847524,0 z" />
-    <path
-       style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1428"
-       inkscape:connector-curvature="0"
-       d="m 14.744471,89 0,-12.813085 59.453561,0 0,12.813085 -12.152332,0 0,-6.366503 -12.152321,0 0,6.366503 -10.886458,0 0,-6.366503 -12.110125,0 0,6.366503 -12.152325,0 z" />
-  </g>
-</svg>
diff --git a/themes/Mono/WhiteCobra.svg b/themes/Mono/WhiteCobra.svg
deleted file mode 100644 (file)
index 8d798ac..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="WhiteCobra.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview3061"
-     showgrid="false"
-     inkscape:zoom="2.43375"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g764" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1"
-     style="fill:#ffffff">
-    <g
-       transform="matrix(1.3078331,0,0,1.3074914,-546.54412,-94.472325)"
-       id="g764"
-       style="display:inline;fill:#ffffff">
-      <path
-         d="m 489.02515,180.98626 13.14716,0 c 0.0776,-4.60412 -1.33992,-10.53906 -0.87428,-14.96586 1.57219,-14.9466 10.60519,-23.90623 15.25014,-31.11064 -3.80899,-5.16056 -33.91229,-1.2287 -33.91229,-1.2287 -6.51214,4.79195 -5.76509,22.94811 0.24574,29.61182 3.81237,4.22647 6.41945,8.34587 6.14353,17.69338 z"
-         inkscape:connector-curvature="0"
-         id="path751"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.52944684000000009;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 508.68445,124.22002 c -9.82965,0.24574 -22.23959,4.91483 -25.18848,8.96956 11.3041,-0.24574 15.06075,3.47663 22.23959,6.2664 5.68522,2.20933 10.24767,7.97824 16.34179,8.23233 4.01659,0.16747 7.37519,-1.39146 7.24937,-4.1776 -0.17133,-3.79392 -4.40092,-7.64497 -8.10946,-9.58391 -1.53131,-0.80062 -2.45742,-0.86009 -5.16057,-0.49148 3.44038,-2.62559 -4.42334,-9.21603 -7.37224,-9.2153 z"
-         inkscape:connector-curvature="0"
-         id="path753"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.52944684000000009;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 519.86567,141.66765 a 1.2287064,0.98296511 0 1 1 -2.45741,0 1.2287064,0.98296511 0 1 1 2.45741,0 z"
-         transform="translate(-0.86009448,-0.73722384)"
-         id="path755"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.76472342000000004;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 519.86567,141.66765 a 1.2287064,0.98296511 0 1 1 -2.45741,0 1.2287064,0.98296511 0 1 1 2.45741,0 z"
-         transform="translate(5.2834375,-3.071766)"
-         id="path757"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.76472342000000004;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 528.58949,146.45961 4.42335,3.80899 4.54621,-0.12287"
-         inkscape:connector-curvature="0"
-         id="path760"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.52944684000000009;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 532.7671,150.39147 1.96593,3.19464"
-         inkscape:connector-curvature="0"
-         id="path762"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.52944684000000009;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/Mono/WhiteCommoner.svg b/themes/Mono/WhiteCommoner.svg
deleted file mode 100644 (file)
index 88f4871..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="WhiteCommoner.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview3073"
-     showgrid="false"
-     inkscape:zoom="2.43375"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1"
-     style="fill:#ffffff">
-    <g
-       transform="matrix(1.4658792,0,0,1.4658792,129.20813,65.385694)"
-       id="g985"
-       style="display:inline;fill:#ffffff">
-      <path
-         d="m 23.788202,46.397445 c 0,3.30302 -14.2004544,5.980649 -31.7176028,5.980649 -17.5171492,0 -31.7176042,-2.677629 -31.7176042,-5.980649 -0.134396,-2.419139 5.293714,-5.878609 7.123023,-9.340566 3.186825,-6.031047 1.412191,-14.822552 6.451037,-19.420312 4.587545,-4.185963 11.93326,-4.218539 18.1435442,-4.233494 6.341238,-0.01527 13.8998102,-0.08132 18.5467338,4.233494 5.135007,4.768016 2.893675,13.904599 6.182245,20.092295 1.741887,3.277493 7.020729,6.052203 6.988624,8.668583 z"
-         inkscape:connector-curvature="0"
-         id="path913"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.36436891999999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 16.396387,47.271023 a 28.223289,5.6446581 0 1 1 -56.446579,0 28.223289,5.6446581 0 1 1 56.446579,0 z"
-         transform="matrix(1.1238096,0,0,1.0595238,5.3617852,-3.6873294)"
-         id="path907"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.25034570999999994;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 15.793025,42.501944 c -5.8100937,1.589737 -14.2849064,2.753129 -23.7224258,2.753129 -9.4104242,0 -17.8636602,-1.156721 -23.6723152,-2.739446"
-         inkscape:connector-curvature="0"
-         id="path909"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.36436891999999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -26.477647,33.340556 c 5.21601,-0.710202 11.735211,-1.888971 18.660526,-1.888971 7.02502485,0 13.4043445,1.190907 18.660525,1.91983"
-         inkscape:connector-curvature="0"
-         id="path911"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.36436891999999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -9.4749617,13.335876 -2.7551303,-8.4669877 4.9054764,-5.03987326 4.9054764,5.03987326 -2.620734,8.4669877 z"
-         inkscape:connector-curvature="0"
-         id="path918"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.36436891999999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/Mono/WhiteCrownedBishop.svg b/themes/Mono/WhiteCrownedBishop.svg
deleted file mode 100644 (file)
index 8d857e6..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="WhiteCrownedBishop.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview3086"
-     showgrid="false"
-     inkscape:zoom="2.43375"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1"
-     style="fill:#ffffff">
-    <g
-       transform="matrix(1.2404378,0,0,1.2412981,127.08498,542.59891)"
-       id="g1105"
-       style="display:inline;fill:#ffffff">
-      <path
-         d="m -18.51544,-346.78633 c -2.614757,-2.54165 -8.234766,-8.35744 -10.508347,-9.74471 -2.273581,-1.38727 -7.91168,-3.08934 -8.059624,-5.71859 1.267913,-5.86233 15.836842,-7.17605 25.127698,-17.37235 l 8.1144435,-0.024 c 10.2744628,10.07442 24.1971175,12.00046 25.3068295,17.39639 -0.449756,2.92902 -3.681893,3.70899 -6.602616,5.71855 -2.920723,2.00956 -8.2743387,6.6625 -11.391974,9.74475 z"
-         inkscape:connector-curvature="0"
-         id="path884"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.61177503999999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 7.21823,-337.54517 c 0,1.6435 -6.66157,2.97581 -14.87902,2.97581 -8.21746,0 -14.87903,-1.33231 -14.87903,-2.97581 0.0526,-1.10471 2.12554,-7.70048 5.16562,-8.71511 5.33881,-1.78182 14.24203,-1.99005 19.77699,0 2.97119,1.06827 4.86805,7.71561 4.81544,8.71511 z"
-         inkscape:connector-curvature="0"
-         id="path886"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.61177503999999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -22.05759,-338.28262 c 1.6404,-1.28678 7.47388,-2.23835 14.4186,-2.23835 6.88597,0 12.67941,0.93554 14.37606,2.20576"
-         inkscape:connector-curvature="0"
-         id="path888"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.61177503999999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -7.66026,-367.6202 0,12.95918"
-         inkscape:connector-curvature="0"
-         id="path890"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.61177503999999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -14.6466,-360.60764 13.97267,0"
-         inkscape:connector-curvature="0"
-         id="path892"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.61177503999999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -39.17083,-326.2747 3.26152,3.68236 c 1.60406,-1.05102 3.7219,-1.999 5.78658,-1.999 l 15.25554,0 c 2.52822,0 4.95679,-2.15681 6.99651,-3.20892 2.25013,0.9469 4.39255,3.20892 6.9965,3.20892 l 16.09722,0 c 1.74542,0 3.17357,0.90741 4.83968,1.999 l 3.78758,-3.68236 c -1.71938,-1.29856 -4.76079,-3.32636 -7.36474,-3.32636 l -16.83369,0 c -1.77932,-0.0287 -2.82421,-1.66082 -4.92736,-3.93318 l -4.87476,0 c -1.35847,1.19074 -3.72194,3.95713 -5.76905,3.93318 l -15.78159,0 c -2.73547,0 -5.45646,1.44385 -7.46994,3.32636 z"
-         inkscape:connector-curvature="0"
-         id="path894"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.61177503999999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/Mono/WhiteCrownedRook.svg b/themes/Mono/WhiteCrownedRook.svg
deleted file mode 100644 (file)
index 6de24ad..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="WhiteCrownedRook.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview3100"
-     showgrid="false"
-     inkscape:zoom="2.43375"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1"
-     style="fill:#ffffff">
-    <g
-       transform="matrix(1.3660883,0,0,1.2822282,-221.35642,398.21406)"
-       id="g1457"
-       style="fill:#ffffff;fill-opacity:1;display:inline">
-      <path
-         d="m 222.10227,-204.68568 52.01421,0 0,4.99548 -52.01421,0 z"
-         inkscape:connector-curvature="0"
-         id="path1388"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.51115131000000003;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 227.11898,-211.69225 41.98078,0 0,7.00167 -41.98078,0 z"
-         inkscape:connector-curvature="0"
-         id="path1390"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.51115131000000003;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 232.11249,-216.67209 31.98161,0 5.07471,4.96519 -42.11887,0 z"
-         inkscape:connector-curvature="0"
-         id="path1392"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.51115131000000003;stroke-linejoin:bevel;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 232.11856,-235.85127 31.98163,0 0,19.17919 -31.98164,0 z"
-         inkscape:connector-curvature="0"
-         id="path1394"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.51115131000000003;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 226.09732,-240.60912 44.02411,0 -6.15781,4.991 -31.73284,0 z"
-         inkscape:connector-curvature="0"
-         id="path1396"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.51115131000000003;stroke-linecap:square;stroke-linejoin:bevel;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 226.09375,-250.61307 0,10 44.03125,0 0,-10 -9,0 0,4.96875 -9,0 0,-4.96875 -8.0625,0 0,4.96875 -8.96875,0 0,-4.96875 -9,0 z"
-         inkscape:connector-curvature="0"
-         id="path1398"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.51115131000000003;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 230.92972,-250.49356 17.32946,-10.0764 17.32947,10.0764 -4.46365,-0.11951 0,4.96875 -9,0 0,-4.96875 -8.0625,0 0,4.96875 -8.96875,0 0,-4.96875 z"
-         inkscape:connector-curvature="0"
-         id="path1454"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.51115131000000003;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/Mono/WhiteElephant.svg b/themes/Mono/WhiteElephant.svg
deleted file mode 100644 (file)
index f05be5d..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="WhiteElephant.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview3117"
-     showgrid="false"
-     inkscape:zoom="1.216875"
-     inkscape:cx="-21.170677"
-     inkscape:cy="61.942174"
-     inkscape:window-x="46"
-     inkscape:window-y="83"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     style="fill:#ffffff;display:inline"
-     id="g1044"
-     transform="matrix(1.3541177,0,0,1.3541177,-631.41127,361.36748)">
-    <path
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.7384882;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1031"
-       inkscape:connector-curvature="0"
-       d="m 490.00812,-222.88953 c 0,0 -6.14354,13.63864 -21.50237,17.5705 17.69337,0.98297 25.31135,-16.58754 25.31135,-16.58754 z" />
-    <path
-       style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.47697639;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1027"
-       inkscape:connector-curvature="0"
-       d="m 528.83524,-234.31651 c -3.6839,5.58934 -10.37825,8.79973 -16.3418,11.67271 -3.68484,1.7752 -7.6945,2.94064 -10.19826,6.63502 -3.2509,4.79681 -0.65411,12.75322 -4.66909,17.07902 -2.2472,2.42116 -6.03736,3.44628 -9.33817,3.31751 -3.71907,-0.14509 -7.55135,-1.92966 -10.19826,-4.54622 -3.97511,-3.92954 -7.01221,-9.64644 -7.00362,-15.23596 0.008,-5.15179 1.28517,-15.36897 3.56324,-15.35883 1.8969,0.008 3.99952,0.44997 3.93186,2.45741 -0.0475,1.4085 -2.38058,1.94562 -2.45741,3.44038 -0.30658,5.96468 -0.4879,12.80067 2.9489,17.69338 2.21344,3.1511 6.33701,6.57579 10.07539,5.65204 2.55864,-0.63224 4.31678,-3.99946 4.30047,-6.63501 -0.0413,-6.66505 -4.0782,-11.20831 -4.42334,-17.07902 -0.21972,-3.73738 -0.17501,-6.15096 -0.12287,-10.56687 0.01,-0.82419 0.71234,-1.48743 1.10583,-2.21168 0.38564,-0.7098 1.26547,-1.28184 1.22871,-2.0888 -0.26362,-5.78622 -0.3233,-9.65524 0.24574,-14.25299 0.44572,-3.60131 4.98299,-6.27067 8.72382,-6.51214 5.78913,-0.37368 8.13022,-1.04792 13.76151,-0.8601 4.43887,0.14805 10.14055,2.13396 15.35883,4.91483 1.77441,0.9456 2.95021,3.06088 3.31751,5.03769 1.08745,5.85269 -0.53304,12.47726 -3.80899,17.44763 z" />
-    <path
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.7384882;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1029"
-       inkscape:connector-curvature="0"
-       d="m 495.29156,-218.58906 c 0,0 -6.14354,13.63864 -21.50237,17.5705 17.69337,0.98297 25.31135,-16.58754 25.31135,-16.58754 z" />
-    <path
-       style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.47697639;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1033"
-       inkscape:connector-curvature="0"
-       d="m 496.27452,-222.52093 -0.98297,4.05474 3.68612,1.10583 2.21167,-2.70315" />
-    <path
-       style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.47697639;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1035"
-       inkscape:connector-curvature="0"
-       d="m 489.51663,-224.36398 2.82603,0" />
-    <path
-       style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.47697639;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1037"
-       inkscape:connector-curvature="0"
-       d="m 489.39376,-228.41872 4.05473,0" />
-    <path
-       style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.47697639;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1040"
-       inkscape:connector-curvature="0"
-       d="m 488.90228,-232.59632 4.66908,0" />
-    <path
-       style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.47697639;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1042"
-       inkscape:connector-curvature="0"
-       d="m 495.16868,-243.77755 c 0,0 -1.04223,-6.88274 0,-10.07539 0.8186,-2.50759 4.66909,-6.38927 4.66909,-6.38927" />
-    <path
-       inkscape:connector-curvature="0"
-       style="color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.7384882;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1021"
-       d="m 503.8925,-236.0367 a 1.351577,1.351577 0 1 1 -2.70315,0 1.351577,1.351577 0 1 1 2.70315,0 z" />
-    <path
-       style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.47697639;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1025"
-       inkscape:connector-curvature="0"
-       d="m 521.70874,-250.53543 c 4.54621,-0.24574 7.71014,-5.80016 11.42697,-4.1776 4.09506,1.78767 5.04951,7.28122 4.05473,11.18123 -2.74411,10.75828 -2.44958,27.22238 -3.07177,29.12034 -6.2664,-0.24574 -6.88075,-20.02792 -10.32113,-20.15079" />
-  </g>
-</svg>
diff --git a/themes/Mono/WhiteGold.svg b/themes/Mono/WhiteGold.svg
deleted file mode 100644 (file)
index 0aa0bff..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="WhiteGold.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview12"
-     showgrid="false"
-     inkscape:zoom="2.43375"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g798" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165632)"
-     id="layer1"
-     style="fill:#ffffff">
-    <g
-       transform="matrix(1.4397444,0,0,1.4340607,-611.62249,-297.27653)"
-       id="g798"
-       style="display:inline;fill:#ffffff">
-      <path
-         d="m 480.89279,297.73055 c 0.28187,6.17991 15.97439,8.70112 24.70538,8.7015 8.82584,3.8e-4 24.73561,-5.0937 24.97454,-8.79385 4.38524,-4.0222 3.65234,-18.32756 -0.19786,-20.73151 -2.02584,-22.88424 -31.77298,-24.5101 -43.77139,-10.75047 -7.59734,4.81302 -8.43194,15.29598 -5.97982,21.98462 -1.34056,2.63987 -2.00858,5.34718 0.26915,9.58971 z"
-         inkscape:connector-curvature="0"
-         id="path717"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.39188551999999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 486.51552,266.15622 c 14.42191,0.70351 32.36137,4.22104 44.23306,10.81643"
-         inkscape:connector-curvature="0"
-         id="path719"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.39188551999999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 479.92013,288.66847 c 10.77247,-3.73739 29.72321,0.17588 50.91639,8.35416"
-         inkscape:connector-curvature="0"
-         id="path721"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.39188551999999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 480.71158,298.25377 c 9.5853,-7.56271 25.15041,-12.13551 49.86113,-1.1432"
-         inkscape:connector-curvature="0"
-         id="path723"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.39188551999999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 506.4983,285.59484 4.07733,-7.27528 -1.7411,-4.01073 -4.67246,0 -1.79446,4.01073 z"
-         inkscape:connector-curvature="0"
-         id="path792"
-         style="color:#000000;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.39188552000000021;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/Mono/WhiteGoldKnight.svg b/themes/Mono/WhiteGoldKnight.svg
deleted file mode 100644 (file)
index d4f83d7..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="WhiteGoldKnight.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview12"
-     showgrid="false"
-     inkscape:zoom="2.43375"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3277">
-    <path
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path657"
-       inkscape:connector-curvature="0"
-       d="m 13.15759,76.536449 c 0.405817,8.851766 22.998869,12.463009 35.56917,12.463553 12.70686,5.45e-4 35.61268,-7.295937 35.95669,-12.59583 6.313578,-5.76118 5.258397,-26.251396 -0.284881,-29.694683 C 81.481914,13.931353 38.653951,11.60256 21.379434,31.311103 10.441287,38.20501 9.2396852,53.220229 12.770085,62.800672 10.840036,66.581878 9.8782647,70.459681 13.15759,76.536449 z" />
-    <path
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path659"
-       inkscape:connector-curvature="0"
-       d="m 21.252824,31.311103 c 20.763711,1.007669 46.591758,6.045987 63.683832,15.492863" />
-    <path
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path661"
-       inkscape:connector-curvature="0"
-       d="m 11.757218,63.55642 c 15.509489,-5.353233 42.79351,0.251921 73.306048,11.966043" />
-    <path
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path663"
-       inkscape:connector-curvature="0"
-       d="M 12.896695,77.285881 C 26.696976,66.453468 49.106591,59.903639 84.68345,75.648423" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.88571429;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path816"
-       inkscape:connector-curvature="0"
-       d="m 53.121173,40.728587 c -5.663826,0 -10.258103,4.5707 -10.258103,10.205461 0,5.634761 4.594277,10.205461 10.258103,10.205461 2.614816,0 4.982343,-0.993446 6.793744,-2.596126 -0.258734,0.02621 -0.54419,0.04469 -0.80985,0.04469 -4.250641,0 -7.693578,-3.425282 -7.693578,-7.654095 0,-4.228814 3.442937,-7.654096 7.693578,-7.654096 0.26566,0 0.551116,-0.02621 0.80985,0 -1.809644,-1.59516 -4.18581,-2.551365 -6.793744,-2.551365 z" />
-  </g>
-</svg>
diff --git a/themes/Mono/WhiteGoldLance.svg b/themes/Mono/WhiteGoldLance.svg
deleted file mode 100644 (file)
index af4e217..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="WhiteGoldLance.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview2999"
-     showgrid="false"
-     inkscape:zoom="2.43375"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165632)"
-     id="layer1"
-     style="fill:#ffffff">
-    <g
-       transform="matrix(1.4397543,0,0,1.435869,-242.75583,-298.60547)"
-       id="g772"
-       style="display:inline;fill:#ffffff">
-      <path
-         d="m 224.68819,298.27017 c 0.28187,6.17991 15.97439,8.70112 24.70538,8.7015 8.82584,3.8e-4 24.73561,-5.0937 24.97454,-8.79385 4.38524,-4.0222 3.65234,-18.32756 -0.19786,-20.73151 -2.02584,-22.88424 -31.77298,-24.5101 -43.77139,-10.75047 -7.59734,4.81302 -8.43194,15.29598 -5.97982,21.98462 -1.34056,2.63987 -2.00858,5.34718 0.26915,9.58971 z"
-         inkscape:connector-curvature="0"
-         id="path697"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.39100409000000003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 230.31092,266.69584 c 14.42191,0.70351 32.36137,4.22104 44.23306,10.81643"
-         inkscape:connector-curvature="0"
-         id="path699"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.39100409000000003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 223.71553,289.20809 c 10.77247,-3.73739 29.72321,0.17588 50.91639,8.35416"
-         inkscape:connector-curvature="0"
-         id="path701"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.39100409000000003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 224.50698,298.79339 c 9.5853,-7.56271 25.15041,-12.13551 49.86113,-1.1432"
-         inkscape:connector-curvature="0"
-         id="path703"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.39100409000000003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 255.69199,279.93628 a 5.4720078,5.4720078 0 1 1 -10.94401,0 5.4720078,5.4720078 0 1 1 10.94401,0 z"
-         transform="translate(0.35175398,0)"
-         id="path764"
-         style="color:#000000;fill:#ffffff;stroke:#000000;stroke-width:1.39100409000000003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/Mono/WhiteGoldPawn.svg b/themes/Mono/WhiteGoldPawn.svg
deleted file mode 100644 (file)
index 2204bfd..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="WhiteGoldPawn.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview3010"
-     showgrid="false"
-     inkscape:zoom="2.43375"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165632)"
-     id="layer1"
-     style="fill:#ffffff">
-    <g
-       transform="matrix(1.4397773,0,0,1.4397773,125.93212,-480.60691)"
-       id="g353"
-       style="fill:#ffffff;fill-opacity:1;display:inline">
-      <path
-         d="m -31.388709,423.84633 c 0.281868,6.17991 15.974391,8.70112 24.7053834,8.7015 8.8258401,3.8e-4 24.7356006,-5.0937 24.9745326,-8.79385 4.385245,-4.0222 3.652343,-18.32756 -0.197862,-20.73151 -2.025838,-22.88424 -31.772979,-24.5101 -43.771385,-10.75047 -7.597337,4.81302 -8.431938,15.29598 -5.979818,21.98462 -1.340564,2.63987 -2.008585,5.34718 0.269149,9.58971 z"
-         inkscape:connector-curvature="0"
-         id="path340"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.38910365000000002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -25.765979,392.272 c 14.421913,0.70351 32.3613662,4.22104 44.233063,10.81643"
-         inkscape:connector-curvature="0"
-         id="path342"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.38910365000000002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -32.361366,414.78425 c 10.772466,-3.73739 29.7232108,0.17588 50.916388,8.35416"
-         inkscape:connector-curvature="0"
-         id="path344"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.38910365000000002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -31.56992,424.36955 c 9.585296,-7.56271 25.15041,-12.13551 49.861127,-1.1432"
-         inkscape:connector-curvature="0"
-         id="path346"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.38910365000000002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/Mono/WhiteGoldSilver.svg b/themes/Mono/WhiteGoldSilver.svg
deleted file mode 100644 (file)
index d3c04ff..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="WhiteGoldSilver.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview3022"
-     showgrid="false"
-     inkscape:zoom="2.43375"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g745" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165632)"
-     id="layer1"
-     style="fill:#ffffff">
-    <g
-       transform="matrix(1.4397662,0,0,1.4377748,-242.25237,-480.24648)"
-       id="g745"
-       style="display:inline;fill:#ffffff">
-      <path
-         d="m 224.33644,424.19808 c 0.28187,6.17991 15.97439,8.70112 24.70538,8.7015 8.82584,3.8e-4 24.7356,-5.0937 24.97454,-8.79385 4.38524,-4.0222 3.65234,-18.32756 -0.19787,-20.73151 -2.02583,-22.88424 -31.77297,-24.5101 -43.77138,-10.75047 -7.59734,4.81302 -8.43194,15.29598 -5.97982,21.98462 -1.34056,2.63987 -2.00858,5.34718 0.26915,9.58971 z"
-         inkscape:connector-curvature="0"
-         id="path677"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.39007604000000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 229.95917,392.62375 c 14.42191,0.70351 32.36137,4.22104 44.23306,10.81643"
-         inkscape:connector-curvature="0"
-         id="path679"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.39007604000000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 223.36378,415.136 c 10.77247,-3.73739 29.72321,0.17588 50.91639,8.35416"
-         inkscape:connector-curvature="0"
-         id="path681"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.39007604000000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 224.15523,424.7213 c 9.5853,-7.56271 25.15041,-12.13551 49.86113,-1.1432"
-         inkscape:connector-curvature="0"
-         id="path683"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.39007604000000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 252.00261,411.96351 -3.39735,-3.01802 -3.93903,2.26594 1.82046,-4.16369 -3.37226,-3.04603 4.52246,0.44471 1.85485,-4.14849 0.97457,4.43855 4.51863,0.48211 -3.92014,2.29846 z"
-         transform="matrix(0.87388966,-0.0876486,0.08773684,0.87301075,-3.5392619,73.053667)"
-         id="path737"
-         style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.58351660000000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/Mono/WhiteHawk.svg b/themes/Mono/WhiteHawk.svg
deleted file mode 100644 (file)
index 4176c14..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="WhiteHawk.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview3053"
-     showgrid="false"
-     inkscape:zoom="2.43375"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g496" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1"
-     style="fill:#ffffff">
-    <g
-       transform="matrix(1.4040066,0,0,1.4950932,129.29827,-314.43651)"
-       id="g577"
-       style="display:inline;fill:#ffffff">
-      <g
-         id="g564"
-         style="fill:#ffffff">
-        <g
-           id="g496"
-           style="fill:#ffffff">
-          <path
-             d="m -36.000123,300.21063 c 0.02445,-2.68898 1.718597,-4.79569 3.688984,-4.79676 4.797086,-0.003 5.321835,9.9866 5.321835,9.9866 l -5.701966,0 c 0,0 -3.349148,-0.75908 -3.308853,-5.18984 z"
-             inkscape:connector-curvature="0"
-             id="path478"
-             style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.38042009000000010;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-          <path
-             d="m -27.369435,305.40047 c 0,0 -3.414455,-7.06138 -3.516212,-15.49034 -0.278044,-23.03154 5.065394,-36.76365 21.0022393,-36.68265 15.9318103,0.081 20.4795607,12.82943 20.4795607,12.82943 l -8.600465,5.89203 -5.0367364,1.71059 3.99137601,3.42118 c -0.001724,0 -1.7323014,3.0708 -1.7105897,4.75164 0.0289649,2.24236 3.16810959,3.37614 4.22755909,3.95877 1.2808223,0.70436 15.687091,13.35375 15.824354,16.37824 0.04579,1.51405 0,3.23111 0,3.23111 z"
-             inkscape:connector-curvature="0"
-             id="path476"
-             style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.38042009000000010;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-          <path
-             d="m -2.993532,273.65952 3.27566309,-1.27957 c 5.44306311,-0.20159 14.47578191,1.87662 14.47578191,1.87662 -1.98235,0.60478 -8.0299294,2.62352 -14.64896299,2.15313 z"
-             inkscape:connector-curvature="0"
-             id="path480"
-             style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.03531503999999996;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-          <path
-             d="m 9.8358906,266.29448 c 5.6355444,0.75158 9.2795784,1.13268 7.9352354,12.78191 -0.166308,-8.05402 -19.9331213,-5.84452 -19.9331213,-5.84452 z"
-             inkscape:connector-curvature="0"
-             id="path482"
-             style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.03531503999999996;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-          <path
-             d="m -10.548637,285.91875 3.3261471,-1.23543"
-             inkscape:connector-curvature="0"
-             id="path484"
-             style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.38042009000000010;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-          <path
-             d="m -4.4517326,284.15174 2.0855547,-0.75064"
-             inkscape:connector-curvature="0"
-             id="path486"
-             style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.38042009000000010;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-          <path
-             d="m -1.9011497,264.39671 c -0.033569,-1.35642 -1.6416557,-3.51039 -5.3002595,-3.49941 -3.4773118,0.0104 -6.3793728,3.98825 -9.6487078,4.01921 3.263295,-0.005 6.023674,2.88608 9.5484048,2.98488 3.3651132,0.0943 5.4348563,-2.11896 5.4005625,-3.50468 z"
-             inkscape:connector-curvature="0"
-             id="path488"
-             style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.69021003999999997;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-          <path
-             d="m -4.8466709,264.72644 a 1.615557,1.615557 0 1 1 -3.2311139,0 1.615557,1.615557 0 1 1 3.2311139,0 z"
-             transform="translate(-0.40318986,-0.31919197)"
-             id="path490"
-             style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.69021003999999997;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-          <path
-             d="m 7.6976539,265.29663 a 1.4254915,1.4254915 0 1 1 -2.8509829,0 1.4254915,1.4254915 0 1 1 2.8509829,0 z"
-             transform="translate(-0.21839451,-0.01679958)"
-             id="path492"
-             style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.69021003999999997;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-          <path
-             d="m -4.5615725,305.40047 c -0.7602621,-1.61556 -1.3959228,-3.94564 -1.3779751,-6.0821 0.02244,-2.67119 2.6035772,-8.98583 9.4082434,-8.98059 4.6208731,0.004 15.7279222,10.78621 15.7279222,10.78621 l 0,4.27648 z"
-             inkscape:connector-curvature="0"
-             id="path494"
-             style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.38042009000000010;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-        </g>
-      </g>
-    </g>
-  </g>
-</svg>
diff --git a/themes/Mono/WhiteKing.svg b/themes/Mono/WhiteKing.svg
deleted file mode 100644 (file)
index 8a816dc..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="WhiteKing.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview3067"
-     showgrid="false"
-     inkscape:zoom="2.43375"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1"
-     style="fill:#ffffff">
-    <g
-       transform="matrix(1.413512,0,0,1.3666144,-594.9892,240.04912)"
-       id="g1101"
-       style="display:inline;fill:#ffffff">
-      <path
-         d="m 524.0076,-75.612106 c 0,2.202134 -8.92592,3.987316 -19.93658,3.987316 -11.01068,0 -19.93659,-1.785182 -19.93659,-3.987316 l -1.5868,-14.572313 c 0,0 -9.59362,-5.738758 -9.56142,-12.728611 0.0271,-5.89722 4.61758,-11.88102 13.18257,-11.7992 11.91497,0.11381 17.98361,12.16539 17.98361,22.011619 0,-9.846229 6.03661,-21.962729 18.14636,-22.011619 8.50951,-0.0344 13.13417,5.96559 12.93843,11.7992 -0.24322,7.248865 -9.6205,12.728611 -9.6205,12.728611 z"
-         inkscape:connector-curvature="0"
-         id="path312"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.43898820999999999;stroke-linejoin:bevel;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 484.17805,-80.272843 c 0,-2.361027 8.92591,-4.275017 19.93658,-4.275017 11.01067,0 19.93659,1.91399 19.93659,4.275017"
-         inkscape:connector-curvature="0"
-         id="path314"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.43898820999999999;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 483.25741,-87.551654 c 0,-2.790037 9.33809,-5.051808 20.85722,-5.051808 11.51913,0 20.85723,2.261771 20.85723,5.051808"
-         inkscape:connector-curvature="0"
-         id="path316"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.43898832999999993;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 484.17805,-75.612106 c 0,-2.202136 8.92591,-3.987318 19.93658,-3.987318 11.01067,0 19.93659,1.785182 19.93659,3.987318"
-         inkscape:connector-curvature="0"
-         id="path321"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.43898820999999999;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 504.13031,-121.625 c -3.30496,0 -6,3.58279 -6,8 l 0.0312,4.28125 c 4.05336,4.43574 6.09375,10.935666 6.09375,16.65625 0,-5.566419 1.94725,-11.85427 5.8125,-16.28125 l 0.0312,-4.65625 c 0,-4.41721 -2.66378,-8 -5.96875,-8 z"
-         inkscape:connector-curvature="0"
-         id="path1091"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.43898809000000005;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 504.11464,-134.60235 0,13.544"
-         inkscape:connector-curvature="0"
-         id="path1097"
-         style="color:#000000;fill:#ffffff;stroke:#000000;stroke-width:1.43898820999999999;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 499.13709,-129.62952 9.95509,0"
-         inkscape:connector-curvature="0"
-         id="path1099"
-         style="color:#000000;fill:#ffffff;stroke:#000000;stroke-width:1.43898820999999999;stroke-linecap:butt;stroke-linejoin:bevel;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/Mono/WhiteKnight.svg b/themes/Mono/WhiteKnight.svg
deleted file mode 100644 (file)
index 3684807..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="WhiteKnight.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview3078"
-     showgrid="false"
-     inkscape:zoom="2.43375"
-     inkscape:cx="50"
-     inkscape:cy="47.431865"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3260">
-    <path
-       style="opacity:0.98999999;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.74352384px;stroke-opacity:1"
-       id="path4350"
-       inkscape:connector-curvature="0"
-       d="m 37.277839,14.905623 3.485113,0.07996 c -0.154278,-3.646671 6.066241,-9.6134171 6.066241,-9.6134171 0,0 3.590307,3.9681488 4.170411,9.5646311 8.102923,-0.319181 15.063131,3.896109 17.740108,5.520087 16.95974,10.288585 23.598294,43.609139 23.563538,69.17135 L 31.030506,89.43874 c -0.28286,-17.56982 21.236301,-24.156655 20.606268,-40.843405 -5.4376,4.165314 -11.499202,5.299042 -16.299892,9.280084 -3.811926,3.161091 -5.776053,6.863678 -9.576776,11.305869 -1.401121,1.63759 -5.141994,0.911667 -6.350343,-1.468517 -6.041775,1.78514 -11.8473303,0.02389 -11.710792,-8.46985 0.1209005,-7.519261 7.798652,-14.314589 10.438226,-21.371156 1.13791,-3.042041 0.978775,-7.743768 2.776562,-11.128456 1.395922,-2.628121 4.537778,-5.672033 5.977558,-6.671982 1.118275,-3.747686 0.873021,-10.0960161 -0.978297,-12.5271305 2.699846,-0.7597233 8.89639,2.9550315 11.364819,7.3614265 z" />
-    <path
-       style="opacity:0.98999999000000005;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.74352384000000005px;stroke-opacity:1"
-       id="path4352"
-       inkscape:connector-curvature="0"
-       d="m 43.561715,16.430789 c -0.09825,1.068246 -0.446363,1.910207 -0.996159,3.064657 -2.889071,6.066361 -1.630041,-0.230729 -1.567954,-1.608831 -2.060165,0.643408 -5.465314,3.04446 -6.923434,4.340793 0.308665,-1.10542 2.175895,-3.916259 1.635827,-5.876484 -0.72951,-2.64781 -3.27134,-4.444214 -5.980533,-5.74895 0.840204,3.099088 1.329741,6.89214 -0.714868,10.893044 -1.314076,1.513778 -2.6576,2.678445 -3.752554,4.199808 -0.932175,1.295189 -1.832556,2.628264 -2.367561,4.152877 -1.13555,2.622374 -1.183855,5.513467 -2.00999,8.220882 -1.385307,4.5556 -3.822556,8.689917 -6.55305,12.580835 -1.818802,2.878907 -3.966831,5.909837 -3.896693,9.449684 0.100978,1.746808 0.902169,3.488879 2.142217,4.610456 1.466825,1.169196 3.537375,1.114918 5.191733,0.578744 2.410053,-0.781091 4.123742,-4.485261 6.103849,-7.566286 0.06482,0.637633 -0.137671,2.484409 -0.382529,4.338975 -0.305826,2.3163 -0.677779,4.644751 -0.677779,4.644751 5.164046,-3.315781 8.583495,-9.484209 13.750106,-13.208186 3.596461,-2.592244 8.823673,-2.9313 11.792802,-6.204661 3.694232,-4.072746 4.59374,-4.53302 6.14102,-15.226466 1.686288,10.42148 0.357625,23.246406 -4.186594,30.056782 -1.287549,1.929643 -3.603789,4.21503 -5.389268,6.325663 -3.219513,3.805807 -6.851002,7.034393 -9.052851,11.320289 -1.12492,2.18967 -1.883836,5.16777 -1.991596,7.095902 18.947052,0.0701 37.698207,-0.0456 54.191184,0 C 88.249742,79.810726 87.409675,73.417733 86.347538,66.78134 85.31515,60.330841 83.871549,53.916667 81.840708,47.700383 80.128466,42.459314 78.694881,36.898329 75.402172,32.449065 71.292608,26.896042 65.7239,22.120002 59.462949,19.087765 c -2.579232,-1.249147 -5.245715,-1.649929 -8.018374,-1.91392 -0.92332,3.547719 -1.552616,0.485764 -2.064219,-0.191094 -1.414658,-2.613417 -2.577076,-3.647386 -2.786932,-6.644992 -1.79806,2.379814 -2.883135,4.478395 -3.031709,6.09303 z" />
-    <path
-       style="opacity:0.98999999;fill:#000000;fill-opacity:1"
-       id="path4348"
-       inkscape:connector-curvature="0"
-       d="m 14.526285,61.371372 c 3.566345,-0.165279 5.209704,-7.708942 1.585993,-7.611673 -4.002706,0.107447 -4.663305,7.754289 -1.585993,7.611673 z" />
-    <path
-       style="opacity:0.98999999;fill:#000000;fill-opacity:1"
-       id="path4340"
-       inkscape:connector-curvature="0"
-       d="m 27.096575,36.172796 1.208349,-2.975229 C 31.93,33.79261 33.742525,32.007479 33.13835,28.437199 l 3.020887,-0.595043 0,-0.595044 c -5.4376,-1.190097 -10.271025,3.570271 -9.062662,8.925684 z" />
-  </g>
-</svg>
diff --git a/themes/Mono/WhiteLance.svg b/themes/Mono/WhiteLance.svg
deleted file mode 100644 (file)
index 377f3bb..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="WhiteLance.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview3089"
-     showgrid="false"
-     inkscape:zoom="2.43375"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3245">
-    <path
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.50000000000000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1525"
-       inkscape:connector-curvature="0"
-       d="M 49.999999,10.749198 70.381094,63.401403 49.999999,83.969454 29.618904,63.401403 z" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1515"
-       inkscape:connector-curvature="0"
-       d="m 50.007947,70.268635 0,-25.999832" />
-    <path
-       style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1517"
-       inkscape:connector-curvature="0"
-       d="m 42.063056,56.008975 15.889782,0" />
-    <path
-       style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
-       id="path1519"
-       inkscape:connector-curvature="0"
-       d="m 46.93811,79.996208 0,10.003798 6.123777,0 0,-10.003798 -3.061888,-5.129441 z" />
-  </g>
-</svg>
diff --git a/themes/Mono/WhiteMarshall.svg b/themes/Mono/WhiteMarshall.svg
deleted file mode 100644 (file)
index 34691a9..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="WhiteMarshall.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview3105"
-     showgrid="false"
-     inkscape:zoom="2.43375"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165632)"
-     id="layer1"
-     style="fill:#ffffff">
-    <g
-       transform="matrix(1.2967471,0,0,1.2967471,-868.79434,560.77036)"
-       id="g373"
-       style="display:inline;fill:#ffffff">
-      <g
-         id="g336"
-         style="fill:#ffffff">
-        <path
-           d="m 784.93957,-340.63966 -16.36886,-0.18155 -8.14608,14.19861 -8.0272,-14.26663 -16.3694,0.0446 8.34166,-14.08508 -8.22332,-14.15401 16.36886,0.18155 8.14608,-14.19861 8.0272,14.26662 16.3694,-0.0446 -8.34166,14.08507 z"
-           transform="translate(0.13602359,0)"
-           id="path334"
-           style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.54232060999999998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-        <path
-           d="m 739.73035,-369.961 a 4.2169256,4.2169256 0 1 1 -8.43385,0 4.2169256,4.2169256 0 1 1 8.43385,0 z"
-           transform="matrix(0.82998852,0,0,0.82998851,150.21129,-76.254265)"
-           id="path324"
-           style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.85824393999999993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-        <path
-           d="m 739.73035,-369.961 a 4.2169256,4.2169256 0 1 1 -8.43385,0 4.2169256,4.2169256 0 1 1 8.43385,0 z"
-           transform="matrix(0.82998852,0,0,0.82998851,174.79346,-62.412914)"
-           id="path326"
-           style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.85824393999999993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-        <path
-           d="m 739.73035,-369.961 a 4.2169256,4.2169256 0 1 1 -8.43385,0 4.2169256,4.2169256 0 1 1 8.43385,0 z"
-           transform="matrix(0.82998852,0,0,0.82998851,174.79346,-33.389588)"
-           id="path328"
-           style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.85824393999999993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-        <path
-           d="m 739.73035,-369.961 a 4.2169256,4.2169256 0 1 1 -8.43385,0 4.2169256,4.2169256 0 1 1 8.43385,0 z"
-           transform="matrix(0.82998852,0,0,0.82998851,150.21129,-19.248004)"
-           id="path330"
-           style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.85824393999999993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-        <path
-           d="m 739.73035,-369.961 a 4.2169256,4.2169256 0 1 1 -8.43385,0 4.2169256,4.2169256 0 1 1 8.43385,0 z"
-           transform="matrix(0.82998852,0,0,0.82998851,125.58124,-33.389588)"
-           id="path332"
-           style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.85824393999999993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-        <path
-           d="m 739.73035,-369.961 a 4.2169256,4.2169256 0 1 1 -8.43385,0 4.2169256,4.2169256 0 1 1 8.43385,0 z"
-           transform="matrix(0.82998852,0,0,0.82998851,125.58124,-62.412914)"
-           id="path322"
-           style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.85824393999999993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-        <path
-           d="m 772.1055,-353.77347 a 11.154449,11.154449 0 1 1 -22.3089,0 11.154449,11.154449 0 1 1 22.3089,0 z"
-           transform="matrix(0.95121952,0,0,0.98780488,36.8475,-5.1304896)"
-           id="path320"
-           style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.59110438999999992;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      </g>
-    </g>
-  </g>
-</svg>
diff --git a/themes/Mono/WhiteNightrider.svg b/themes/Mono/WhiteNightrider.svg
deleted file mode 100644 (file)
index 43fae32..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="WhiteNightrider.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview3116"
-     showgrid="false"
-     inkscape:zoom="2.43375"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <path
-     d="m 37.443438,14.905618 3.439749,0.07996 c -0.15227,-3.64667 5.98728,-9.613409 5.98728,-9.613409 0,0 3.543574,3.9681406 4.116127,9.564624 7.997451,-0.319185 14.867063,3.896119 17.509194,5.520095 16.738985,10.288577 23.291128,43.609138 23.256825,69.171351 L 31.277423,89.438745 C 30.998244,71.868924 52.237302,65.282087 51.61547,48.595341 c -5.366822,4.16531 -11.349523,5.299038 -16.087725,9.280081 -3.762308,3.16109 -5.700869,6.863678 -9.45212,11.305869 -1.382884,1.63759 -5.075064,0.911667 -6.267685,-1.468517 -5.963132,1.78514 -11.6931193,0.0239 -11.5583581,-8.46985 0.1193267,-7.519263 7.6971411,-14.314587 10.3023571,-21.371153 1.123099,-3.042045 0.966035,-7.743775 2.740421,-11.128458 1.377752,-2.628126 4.478713,-5.67204 5.899752,-6.671984 1.103718,-3.747694 0.861657,-10.0960178 -0.965564,-12.5271359 2.664704,-0.7597151 8.780591,2.9550389 11.21689,7.3614249 z"
-     inkscape:connector-curvature="0"
-     id="path4687"
-     style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.74352378px;stroke-opacity:1" />
-  <path
-     d="m 46.627827,10.317276 c -1.774655,2.37982 -2.841579,4.517086 -2.988219,6.131721 -0.09697,1.068243 -0.425375,1.911404 -0.968015,3.065861 -2.851465,6.066351 -1.618521,-0.259824 -1.557241,-1.637926 -2.03335,0.643411 -5.379051,3.071465 -6.818191,4.367801 0.304647,-1.105416 2.132367,-3.919503 1.599329,-5.879732 -0.720015,-2.647801 -3.218334,-4.449002 -5.892264,-5.753738 0.758493,2.834595 1.175032,6.245794 -0.294613,9.869551 l 10.311461,9.029588 -10.016848,10.33153 -7.575767,-7.307667 c -0.408149,1.837419 -0.633846,3.735397 -1.178453,5.543747 -1.367274,4.55559 -3.744449,8.666511 -6.439402,12.557428 -1.795127,2.878908 -3.941285,5.909723 -3.872059,9.44957 0.09966,1.746807 0.92256,3.498212 2.146467,4.61979 1.447733,1.169196 3.459776,1.124147 5.0926,0.587973 2.378683,-0.781092 4.064193,-4.47863 6.018526,-7.559656 0.06397,0.637633 -0.137118,2.471238 -0.378788,4.325803 -0.301846,2.3163 -0.631314,4.661788 -0.631314,4.661788 5.096828,-3.315782 8.452846,-9.50542 13.552206,-13.229398 3.549648,-2.592244 8.727782,-2.94236 11.658264,-6.215717 3.646146,-4.072752 4.533474,-4.509855 6.060614,-15.203307 1.664339,10.421493 0.318398,23.260254 -4.166672,30.07063 -1.27079,1.929644 -3.540799,4.18908 -5.303037,6.299714 -3.177607,3.805807 -6.749383,7.053587 -8.922571,11.339483 -1.110277,2.18967 -1.87176,5.169545 -1.978117,7.097677 18.700429,0.0701 37.215039,-0.0456 53.493336,0 C 87.759382,79.825448 86.901779,73.3991 85.853467,66.762706 84.834517,60.312207 83.438676,53.911857 81.43427,47.695574 79.744315,42.454509 78.328892,36.899539 75.079043,32.450269 71.02297,26.897248 65.517737,22.127112 59.338281,19.094877 c -2.54566,-1.249151 -5.175899,-1.667922 -7.912468,-1.931912 -0.911301,3.547716 -1.515261,0.508855 -2.020205,-0.167993 -1.396244,-2.613423 -2.570656,-3.680094 -2.777781,-6.677696 z"
-     inkscape:connector-curvature="0"
-     id="path4689"
-     style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.74352377999999986px;stroke-opacity:1" />
-  <path
-     d="m 14.988028,61.371375 c 3.519924,-0.165279 5.141893,-7.708944 1.565349,-7.611675 -3.950604,0.107448 -4.602605,7.754291 -1.565349,7.611675 z"
-     inkscape:connector-curvature="0"
-     id="path4691"
-     style="fill:#000000;fill-opacity:1" />
-  <path
-     d="m 27.394698,36.172791 1.192621,-2.975225 c 3.57789,0.595042 5.366822,-1.190085 4.770511,-4.760366 l 2.981566,-0.595042 0,-0.595043 c -5.366822,-1.190098 -10.137333,3.570268 -8.944698,8.925676 z"
-     inkscape:connector-curvature="0"
-     id="path4737"
-     style="opacity:0.98999999000000005;fill:#ffffff;fill-opacity:1" />
-</svg>
diff --git a/themes/Mono/WhitePawn.svg b/themes/Mono/WhitePawn.svg
deleted file mode 100644 (file)
index 273b12c..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="WhitePawn.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview3123"
-     showgrid="false"
-     inkscape:zoom="2.43375"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1"
-     style="fill:#ffffff">
-    <path
-       d="m 117.56224,69.165656 c -5.06122,0 -9.13543,3.8205 -9.13543,8.555112 0,2.694673 1.32671,5.109569 3.40502,6.681139 -6.12801,1.999815 -10.46422,7.090386 -10.46422,13.077106 0,5.254747 3.34016,9.828257 8.30493,12.221577 -11.671545,3.98183 -20.180989,15.84516 -20.180989,30.75404 0,0.57966 0.01605,1.13874 0.04143,1.71102 l 56.099859,0 c 0.0255,-0.57228 0.0414,-1.13136 0.0414,-1.71102 0,-14.90888 -8.50942,-26.77221 -20.18102,-30.75404 4.96479,-2.39332 8.30496,-6.96683 8.30496,-12.221577 0,-5.98672 -4.33622,-11.077291 -10.46424,-13.077106 2.0783,-1.57157 3.40502,-3.986466 3.40502,-6.681139 0,-4.734612 -4.11573,-8.555112 -9.17695,-8.555112 z"
-       inkscape:connector-curvature="0"
-       id="path3762"
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-  </g>
-</svg>
diff --git a/themes/Mono/WhitePrincess.svg b/themes/Mono/WhitePrincess.svg
deleted file mode 100644 (file)
index 7926c92..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="WhitePrincess.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview3142"
-     showgrid="false"
-     inkscape:zoom="2.43375"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1"
-     style="fill:#ffffff">
-    <g
-       transform="matrix(1.2568021,0,0,1.2568021,127.4848,230.75324)"
-       id="g799"
-       style="display:inline;fill:#ffffff">
-      <path
-         d="m -28.079531,-94.874455 -4.264552,-25.678565 13.999806,24.343464"
-         inkscape:connector-curvature="0"
-         id="path704"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.59134029999999993;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -19.140231,-95.88723 2.246154,-30.00621 9.5954992,27.886232 z"
-         inkscape:connector-curvature="0"
-         id="path706"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.59134029999999993;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 12.490017,-94.82073 3.713129,-24.84222 -13.3990081,23.408891"
-         inkscape:connector-curvature="0"
-         id="path710"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.59134029999999993;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 3.4881771,-95.734359 -2.37837,-29.892061 -8.8615575,28.106514 z"
-         inkscape:connector-curvature="0"
-         id="path712"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.59134029999999993;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 8.6705152,-75.003615 c 0,2.494743 -7.3228728,4.517114 -16.3560942,4.517114 -9.033223,0 -16.356097,-2.022371 -16.356097,-4.517114 l 2.325288,-6.475256 -0.06428,-6.631027 -5.811396,-6.453037 4.358127,-3.075207 4.109397,1.001045 5.74678,-2.877825 5.7712718,1.347215 5.203493,-1.347215 5.2462981,2.877825 4.8612915,-1.001045 4.2955236,3.075207 -5.8100516,6.453037 0.060254,6.631027 z"
-         inkscape:connector-curvature="0"
-         id="path714"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.59134054000000003;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -21.892448,-88.229599 c 2.801739,-1.37734 8.142276,-2.30791 14.2698066,-2.30791 6.1644171,0 11.5323386,0.94181 14.3201283,2.33283"
-         inkscape:connector-curvature="0"
-         id="path716"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.59134054000000003;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -35.496787,129.14731 a 3.7762539,3.7762539 0 1 1 -7.552508,0 3.7762539,3.7762539 0 1 1 7.552508,0 z"
-         transform="matrix(0.94504751,0,0,0.94166667,3.6715495,-244.63895)"
-         id="path718"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.68689333999999991;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -35.496787,129.14731 a 3.7762539,3.7762539 0 1 1 -7.552508,0 3.7762539,3.7762539 0 1 1 7.552508,0 z"
-         transform="matrix(0.94504751,0,0,0.94166667,54.80093,-244.56074)"
-         id="path720"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.68689333999999991;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -35.496787,129.14731 a 3.7762539,3.7762539 0 1 1 -7.552508,0 3.7762539,3.7762539 0 1 1 7.552508,0 z"
-         transform="matrix(0.94504751,0,0,0.94166667,38.762768,-250.59195)"
-         id="path722"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.68689333999999991;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -35.496787,129.14731 a 3.7762539,3.7762539 0 1 1 -7.552508,0 3.7762539,3.7762539 0 1 1 7.552508,0 z"
-         transform="matrix(0.94504751,0,0,0.94166667,19.780217,-250.61038)"
-         id="path726"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.68689333999999991;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -23.978738,-75.003615 c 0,-2.494728 7.322874,-4.517115 16.3560966,-4.517115 9.0332214,0 16.3560942,2.022387 16.3560942,4.517115"
-         inkscape:connector-curvature="0"
-         id="path728"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.59134054000000003;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -21.669514,-81.284079 c 2.856168,-1.31876 8.078159,-2.20172 14.0468726,-2.20172 6.0282874,0 11.2948691,0.90067 14.1316836,2.24134"
-         inkscape:connector-curvature="0"
-         id="path730"
-         style="color:#000000;fill:#ffffff;stroke:#000000;stroke-width:1.59134054000000003;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/Mono/WhiteQueen.svg b/themes/Mono/WhiteQueen.svg
deleted file mode 100644 (file)
index 6d7a450..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="WhiteQueen.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview3163"
-     showgrid="false"
-     inkscape:zoom="2.43375"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1"
-     style="fill:#ffffff">
-    <g
-       transform="matrix(1.2570048,0,0,1.2676814,127.4672,-87.83522)"
-       id="g279"
-       style="display:inline;fill:#ffffff">
-      <path
-         d="m -33.978482,157.11309 -4.027574,-24.85525 13.351074,23.40889"
-         inkscape:connector-curvature="0"
-         id="path252"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.58436942000000003;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -25.100018,155.39971 1.513121,-29.10534 9.968802,27.4142 z"
-         inkscape:connector-curvature="0"
-         id="path254"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.58436942000000003;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -14.152139,153.61956 6.141494,-29.46137 6.3195081,29.46137 z"
-         inkscape:connector-curvature="0"
-         id="path256"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.58436942000000003;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="M 18.112956,157.06859 22.251789,132.25784 8.900715,155.66673"
-         inkscape:connector-curvature="0"
-         id="path265"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.58436942000000003;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="M 9.345751,155.39971 8.0106442,126.29437 -2.136172,153.70857 z"
-         inkscape:connector-curvature="0"
-         id="path267"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.58436942000000003;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 4.628372,179.16461 c 0,1.57304 -3.3075384,2.84823 -7.3875938,2.84823 -4.0800554,0 -7.3875942,-1.27519 -7.3875942,-2.84823 l 1.0502676,-4.08292 -0.1143148,-4.18114 -1.8004588,-4.06891 1.3146209,-2.21684 1.5718285,1.20663 1.6575645,-2.46939 1.6575646,1.20664 2.0576664,-1.76787 2.11482373,1.76787 1.54324978,-1.20664 1.91477289,2.46939 1.2860414,-1.20663 1.3431989,2.21684 -1.6861432,4.06891 -0.2286296,4.18114 z"
-         inkscape:connector-curvature="0"
-         transform="matrix(3.1144579,0,0,1.5859375,0.73859859,-107.2267)"
-         id="path231"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.71288949000000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -27.928421,163.69119 c 3.941246,-1.37734 11.453857,-2.30791 20.0735395,-2.30791 8.67157296,0 16.2227042,0.94181 20.1443275,2.33283"
-         inkscape:connector-curvature="0"
-         id="path236"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.58436965999999990;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -35.496787,129.14731 a 3.7762539,3.7762539 0 1 1 -7.552508,0 3.7762539,3.7762539 0 1 1 7.552508,0 z"
-         transform="matrix(0.94166667,0,0,0.94166667,-2.3853337,7.2818425)"
-         id="path238"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.68251621999999990;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -35.496787,129.14731 a 3.7762539,3.7762539 0 1 1 -7.552508,0 3.7762539,3.7762539 0 1 1 7.552508,0 z"
-         transform="matrix(0.94166667,0,0,0.94166667,60.622804,7.3600513)"
-         id="path242"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.68251621999999990;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -35.496787,129.14731 a 3.7762539,3.7762539 0 1 1 -7.552508,0 3.7762539,3.7762539 0 1 1 7.552508,0 z"
-         transform="matrix(0.94166667,0,0,0.94166667,45.617594,1.3288436)"
-         id="path244"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.68251621999999990;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -35.496787,129.14731 a 3.7762539,3.7762539 0 1 1 -7.552508,0 3.7762539,3.7762539 0 1 1 7.552508,0 z"
-         transform="matrix(0.80024532,0,0,0.94166667,23.506429,-0.70675532)"
-         id="path246"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.82514047999999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -35.496787,129.14731 a 3.7762539,3.7762539 0 1 1 -7.552508,0 3.7762539,3.7762539 0 1 1 7.552508,0 z"
-         transform="matrix(0.94166667,0,0,0.94166667,12.601442,1.3104095)"
-         id="path248"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.68251621999999990;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -10.146816,179.16461 c 0,-1.57303 3.3075388,-2.84823 7.3875942,-2.84823 4.0800554,0 7.3875938,1.2752 7.3875938,2.84823"
-         inkscape:connector-curvature="0"
-         transform="matrix(3.1144579,0,0,1.5859375,0.73859859,-107.2267)"
-         id="path250"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.71288949000000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m -27.614815,170.63671 c 4.017812,-1.31876 11.363659,-2.20172 19.7599335,-2.20172 8.48007745,0 15.8886525,0.90067 19.8792395,2.24134"
-         inkscape:connector-curvature="0"
-         id="path277"
-         style="color:#000000;fill:#ffffff;stroke:#000000;stroke-width:1.58436965999999990;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/Mono/WhiteRook.svg b/themes/Mono/WhiteRook.svg
deleted file mode 100644 (file)
index ee0651b..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="WhiteRook.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview3176"
-     showgrid="false"
-     inkscape:zoom="2.43375"
-     inkscape:cx="50"
-     inkscape:cy="50"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="translate(-67.582896,-53.165653)"
-     id="layer1"
-     style="fill:#ffffff">
-    <g
-       transform="matrix(1.3706233,0,0,1.3698256,-222.48159,-102.21654)"
-       id="g1002"
-       style="fill:#ffffff;fill-opacity:1;display:inline">
-      <path
-         d="m 222.10227,173.40839 52.01421,0 0,4.99548 -52.01421,0 z"
-         inkscape:connector-curvature="0"
-         id="rect204"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.45961498999999995;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 227.11898,166.40182 41.98078,0 0,7.00167 -41.98078,0 z"
-         inkscape:connector-curvature="0"
-         id="rect206"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.45961498999999995;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 232.11249,161.42198 31.98161,0 5.07471,4.96519 -42.11887,0 z"
-         inkscape:connector-curvature="0"
-         id="rect208"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.45961498999999995;stroke-linejoin:bevel;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 232.11856,136.4257 31.98163,0 0,24.9963 -31.98164,0 z"
-         inkscape:connector-curvature="0"
-         id="rect210"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.45961498999999995;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 226.09732,131.4102 44.02411,0 -6.15781,4.991 -31.73284,0 z"
-         inkscape:connector-curvature="0"
-         id="rect212"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.45961498999999995;stroke-linecap:square;stroke-linejoin:bevel;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      <path
-         d="m 226.09375,121.40625 0,10 44.03125,0 0,-10 -9,0 0,4.96875 -9,0 0,-4.96875 -8.0625,0 0,4.96875 -8.96875,0 0,-4.96875 -9,0 z"
-         inkscape:connector-curvature="0"
-         id="rect214"
-         style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.45961498999999995;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/Mono/WhiteUnicorn.svg b/themes/Mono/WhiteUnicorn.svg
deleted file mode 100644 (file)
index 2e921ba..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2833"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="WhiteUnicorn.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview3191"
-     showgrid="false"
-     inkscape:zoom="2.43375"
-     inkscape:cx="50"
-     inkscape:cy="88.857878"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2833" />
-  <defs
-     id="defs2835" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="g3219">
-    <path
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path696"
-       inkscape:connector-curvature="0"
-       d="M 27.380226,27.865874 8.3381009,5.5005529 32.093615,23.587294 z" />
-    <path
-       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="path1467"
-       inkscape:connector-curvature="0"
-       d="m 28.849421,66.844865 c 0,0 5.732546,5.50075 7.998893,5.363241 -1.733087,-3.025426 -2.133042,-4.400597 -1.999723,-5.638272 1.199839,0.550076 3.466186,-1.237675 3.466186,-1.237675 -1.199839,-0.412554 -5.46591,-3.162936 -6.132488,-4.950687 z" />
-    <path
-       style="opacity:0.98999999;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.74352384px;stroke-opacity:1"
-       id="path4350-3"
-       inkscape:connector-curvature="0"
-       d="m 39.890419,15.824372 3.287134,0.07898 c -0.145514,-3.601834 5.721636,-9.495216 5.721636,-9.495216 0,0 3.386353,3.919359 3.933502,9.44703 7.642621,-0.315257 14.207441,3.848205 16.732347,5.452215 15.996309,10.162082 22.257746,43.072946 22.224965,68.320859 L 33.997978,89.441073 C 33.731186,72.087282 54.027909,65.581434 53.433666,49.099854 c -5.128707,4.114101 -10.845967,5.233889 -15.373944,9.165983 -3.595382,3.122223 -5.447933,6.779285 -9.032748,11.166857 -1.321529,1.617456 -4.849894,0.900459 -5.9896,-1.45046 -5.69856,1.763191 -11.174319,0.0236 -11.045537,-8.365709 0.114032,-7.42681 7.355634,-14.138586 9.845261,-21.108389 1.07327,-3.004638 0.923174,-7.648555 2.618834,-10.991627 1.316625,-2.595808 4.280001,-5.602294 5.637992,-6.589947 1.054748,-3.701607 0.823427,-9.971882 -0.922724,-12.3731044 2.546476,-0.7503822 8.391013,2.9186984 10.719219,7.2709144 z" />
-    <path
-       style="opacity:0.98999999000000005;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.74352384000000005px;stroke-opacity:1"
-       id="path4352-8"
-       inkscape:connector-curvature="0"
-       d="m 45.817327,17.330785 c -0.09267,1.055112 -0.421006,1.886721 -0.939571,3.026977 -2.724951,5.991772 -1.537443,-0.227892 -1.478883,-1.58905 -1.943133,0.635496 -5.154846,3.007027 -6.530134,4.287421 0.29113,-1.091829 2.052288,-3.868107 1.5429,-5.804231 -0.688069,-2.615254 -3.085504,-4.38957 -5.640797,-5.678263 0.792474,3.060983 1.254203,6.807398 -0.674259,10.759108 -1.239427,1.495166 -2.506629,2.645513 -3.539382,4.14817 -0.879221,1.279264 -1.728454,2.595948 -2.233067,4.101816 -1.071043,2.59013 -1.116604,5.445676 -1.895809,8.119803 -1.306611,4.499587 -3.605408,8.583071 -6.180791,12.426148 -1.715481,2.84351 -3.741488,5.837173 -3.675333,9.333496 0.09524,1.72533 0.850919,3.445982 2.020524,4.553769 1.383499,1.15482 3.336427,1.101209 4.896806,0.571628 2.273146,-0.771488 3.889485,-4.430113 5.757108,-7.473255 0.06113,0.629793 -0.129851,2.453862 -0.360799,4.285625 -0.288453,2.28782 -0.639276,4.587642 -0.639276,4.587642 4.870692,-3.275013 8.095893,-9.367597 12.969004,-13.045786 3.392157,-2.560372 8.322426,-2.895258 11.122889,-6.128372 3.484373,-4.02267 4.332783,-4.477284 5.792167,-15.03925 1.590495,10.293343 0.337309,22.960582 -3.948767,29.687221 -1.214407,1.905917 -3.399068,4.163204 -5.083119,6.247886 -3.036623,3.759013 -6.461818,6.947902 -8.538586,11.181101 -1.061017,2.162747 -1.776822,5.104231 -1.87846,7.008655 17.870727,0.06924 35.556686,-0.04504 51.112747,0 C 87.966762,79.931439 87.174417,73.617051 86.172617,67.062255 85.198875,60.691068 83.837281,54.355758 81.921806,48.215907 80.306831,43.039278 78.954684,37.546669 75.849024,33.152111 71.972911,27.667364 66.720545,22.950048 60.81526,19.955093 58.382546,18.721305 55.867538,18.32545 53.252385,18.064705 c -0.870868,3.504099 -1.464416,0.479792 -1.946956,-0.188744 -1.334296,-2.581284 -2.430681,-3.60254 -2.628616,-6.563289 -1.695917,2.350553 -2.719352,4.423331 -2.859486,6.018113 z" />
-    <path
-       style="opacity:0.98999999;fill:#000000;fill-opacity:1"
-       id="path4348-3"
-       inkscape:connector-curvature="0"
-       d="m 18.431312,61.718805 c 3.363751,-0.163247 4.913756,-7.614158 1.495897,-7.518085 -3.775324,0.106127 -4.398397,7.658948 -1.495897,7.518085 z" />
-    <path
-       style="opacity:0.98999999;fill:#000000;fill-opacity:1"
-       id="path4340-3"
-       inkscape:connector-curvature="0"
-       d="m 30.287521,36.830056 1.139707,-2.938647 c 3.419146,0.587727 5.128707,-1.175455 4.558853,-4.701837 l 2.84928,-0.587727 0,-0.587728 c -5.128706,-1.175464 -9.687559,3.526373 -8.54784,8.815939 z" />
-  </g>
-</svg>
diff --git a/themes/Mono/eo_Analyzing.svg b/themes/Mono/eo_Analyzing.svg
deleted file mode 100644 (file)
index cea8dc5..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   version="1.1"
-   width="14"
-   height="14"
-   id="svg3059">
-  <metadata
-     id="metadata3065">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3063">
-    <filter
-       x="0"
-       y="0"
-       width="1"
-       height="1"
-       color-interpolation-filters="sRGB"
-       id="filter2982">
-      <feColorMatrix
-         result="fbSourceGraphic"
-         values="0"
-         type="hueRotate"
-         id="feColorMatrix2984" />
-      <feColorMatrix
-         result="result91"
-         values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0 "
-         in="fbSourceGraphic"
-         id="feColorMatrix2986" />
-      <feBlend
-         in2="result91"
-         mode="darken"
-         in="fbSourceGraphic"
-         result="result92"
-         id="feBlend2988" />
-      <feBlend
-         in2="result92"
-         mode="screen"
-         result="result93"
-         id="feBlend2990" />
-      <feComposite
-         in2="SourceGraphic"
-         operator="in"
-         id="feComposite2992" />
-    </filter>
-  </defs>
-  <image
-     xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAABHNCSVQICAgIfAhkiAAAAFFJREFU KJGtktsOABAMQ1X8/y/XE1nELg19klnXk4EWiCTXGQCi3m2wJq/mpkT3vYqaIlbQSHJ4Q7JlhKiS vixHTpPe0ZrOZhf/ZsoE+T++agK9rGutWI9RBAAAAABJRU5ErkJggg== "
-     x="0"
-     y="0"
-     width="14"
-     height="14"
-     id="image3067"
-     style="fill:#1a1a1a;stroke:#000000;filter:url(#filter2982)" />
-</svg>
diff --git a/themes/Mono/eo_Black.svg b/themes/Mono/eo_Black.svg
deleted file mode 100644 (file)
index 5b388ea..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="14"
-   height="14"
-   id="svg3039">
-  <metadata
-     id="metadata3045">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3043">
-    <linearGradient
-       id="linearGradient3750">
-      <stop
-         id="stop3752"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3754"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="7"
-       cy="7.0496454"
-       r="7"
-       fx="7"
-       fy="7.0496454"
-       id="radialGradient3756"
-       xlink:href="#linearGradient3750"
-       gradientUnits="userSpaceOnUse" />
-  </defs>
-  <image
-     xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAABHNCSVQICAgIfAhkiAAAAFtJREFU KJHFksEOwCAIQ9v9/z93h20OCybOw+RAgulriYGoSzbTBf4gAJB6jmTSR1AOpJTL4G0zkMPHlLoy +JIWU5cT/wf3/OpTSwfQ4NuhAjp9Ot5oMNgMAHAC0IseE7mxwm0AAAAASUVORK5CYII= "
-     x="5.8125149e-10"
-     y="0.04964539"
-     width="14"
-     height="14"
-     id="image3047"
-     style="stroke:url(#radialGradient3756)" />
-  <path
-     d="m 5.093617,12.629787 0,-0.496454 -0.9929078,0 -0.9929078,0 0,-0.521276 0,-0.521277 -0.4964539,0 -0.4964539,0 0,-0.992908 0,-0.9929074 -0.4964539,0 -0.4964539,0 0,-1.9858156 0,-1.9858156 0.4964539,0 0.4964539,0 0,-1.0177305 0,-1.0177305 0.4964539,0 0.4964539,0 0,-0.4964539 0,-0.4964539 0.9929078,0 0.9929078,0 0,-0.4964539 0,-0.4964539 2.0106383,0 2.0106383,0 0,0.4964539 0,0.4964539 0.9929074,0 0.992908,0 0,0.4964539 0,0.4964539 0.496454,0 0.496454,0 0,1.0177305 0,1.0177305 0.496454,0 0.496454,0 0,1.9858156 0,1.9858156 -0.496454,0 -0.496454,0 0,0.9929074 0,0.992908 -0.496454,0 -0.496454,0 0,0.521277 0,0.521276 -0.992908,0 -0.9929074,0 0,0.496454 0,0.496454 -2.0106383,0 -2.0106383,0 0,-0.496454 z"
-     inkscape:connector-curvature="0"
-     id="path3758"
-     style="fill:#000000" />
-</svg>
diff --git a/themes/Mono/eo_Clear.svg b/themes/Mono/eo_Clear.svg
deleted file mode 100644 (file)
index 9ada0ae..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   version="1.1"
-   width="14"
-   height="14"
-   id="svg3122">
-  <metadata
-     id="metadata3128">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3126" />
-  <image
-     xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAABHNCSVQICAgIfAhkiAAAABBJREFU KJFjYBgFo2AUYAcAAx4AAVtLX1gAAAAASUVORK5CYII= "
-     x="0"
-     y="0"
-     width="14"
-     height="14"
-     id="image3130" />
-</svg>
diff --git a/themes/Mono/eo_Ponder.svg b/themes/Mono/eo_Ponder.svg
deleted file mode 100644 (file)
index e114e2c..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   version="1.1"
-   width="14"
-   height="14"
-   id="svg3205">
-  <metadata
-     id="metadata3211">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3209">
-    <filter
-       x="0"
-       y="0"
-       width="1"
-       height="1"
-       color-interpolation-filters="sRGB"
-       id="filter2982">
-      <feColorMatrix
-         result="fbSourceGraphic"
-         values="0"
-         type="hueRotate"
-         id="feColorMatrix2984" />
-      <feColorMatrix
-         result="result91"
-         values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0 "
-         in="fbSourceGraphic"
-         id="feColorMatrix2986" />
-      <feBlend
-         in2="result91"
-         mode="darken"
-         in="fbSourceGraphic"
-         result="result92"
-         id="feBlend2988" />
-      <feBlend
-         in2="result92"
-         mode="screen"
-         result="result93"
-         id="feBlend2990" />
-      <feComposite
-         in2="SourceGraphic"
-         operator="in"
-         id="feComposite2992" />
-    </filter>
-  </defs>
-  <image
-     xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAABHNCSVQICAgIfAhkiAAAAEpJREFU KJGlkksSACAIQqH737k2rYxUip0zPhg/QNDcutWHVENpkDqKgHfIBSXsJg8AIEknVce7vRWcjpPd rYS6n8Po1l6Ue8dvLWHVh4Rs5RGPAAAAAElFTkSuQmCC "
-     x="0"
-     y="0"
-     width="14"
-     height="14"
-     id="image3213"
-     style="filter:url(#filter2982)" />
-</svg>
diff --git a/themes/Mono/eo_Thinking.svg b/themes/Mono/eo_Thinking.svg
deleted file mode 100644 (file)
index 3ab517c..0000000
+++ /dev/null
@@ -1,185 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="14"
-   height="14"
-   id="svg3288">
-  <metadata
-     id="metadata3294">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3292">
-    <filter
-       x="0"
-       y="0"
-       width="1"
-       height="1"
-       color-interpolation-filters="sRGB"
-       id="filter3002">
-      <feColorMatrix
-         result="result2"
-         type="saturate"
-         in="SourceGraphic"
-         values="1"
-         id="feColorMatrix3004" />
-      <feFlood
-         result="result1"
-         flood-opacity="1"
-         flood-color="rgb(254,102,0)"
-         id="feFlood3006" />
-      <feBlend
-         in2="result2"
-         mode="multiply"
-         in="result1"
-         result="result3"
-         id="feBlend3008" />
-      <feComposite
-         in2="SourceGraphic"
-         operator="in"
-         result="fbSourceGraphic"
-         id="feComposite3010" />
-      <feColorMatrix
-         id="feColorMatrix3012"
-         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
-         in="fbSourceGraphic"
-         result="fbSourceGraphicAlpha" />
-      <feColorMatrix
-         in="fbSourceGraphic"
-         result="fbSourceGraphic"
-         values="0"
-         type="hueRotate"
-         id="feColorMatrix3014" />
-      <feColorMatrix
-         result="result91"
-         values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0 "
-         in="fbSourceGraphic"
-         id="feColorMatrix3016" />
-      <feBlend
-         in2="result91"
-         mode="darken"
-         in="fbSourceGraphic"
-         result="result92"
-         id="feBlend3018" />
-      <feBlend
-         in2="result92"
-         mode="screen"
-         result="result93"
-         id="feBlend3020" />
-      <feComposite
-         in2="fbSourceGraphic"
-         operator="in"
-         id="feComposite3022" />
-    </filter>
-  </defs>
-  <image
-     xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAABHNCSVQICAgIfAhkiAAAAE5JREFU KJGdUkEOACAIitb/v0yntrYETU6KMpwDIwBJnhoAop1HcIsUJ10qvSQzbrrTLdT9Gb/c0H6362iX nKj/nKprGoJqcsIcfmf1Bxt7f2+n4/xVLQAAAABJRU5ErkJggg== "
-     x="0"
-     y="0"
-     width="14"
-     height="14"
-     id="image3296"
-     style="fill:#000000;filter:url(#filter3002)" />
-  <path
-     d="m 0.03971629,6.4985817 0,-1.4893617 0.47163121,0 0.47163121,0 0,1.4893617 0,1.4893617 -0.47163121,0 -0.47163121,0 0,-1.4893617 z"
-     inkscape:connector-curvature="0"
-     id="path3005"
-     style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.04964539;stroke-opacity:1" />
-  <path
-     d="m 1.0326241,4.0163122 0,-0.9929078 0.4716312,0 0.4716312,0 0,0.9929078 0,0.9929078 -0.4716312,0 -0.4716312,0 0,-0.9929078 z"
-     inkscape:connector-curvature="0"
-     id="path3007"
-     style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.04964539;stroke-opacity:1" />
-  <path
-     d="m 2.0255319,2.5269505 0,-0.4964539 0.4964539,0 0.4964539,0 0,0.4964539 0,0.4964539 -0.4964539,0 -0.4964539,0 0,-0.4964539 z"
-     inkscape:connector-curvature="0"
-     id="path3009"
-     style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.04964539;stroke-opacity:1" />
-  <path
-     d="m 3.0184397,1.50922 0,-0.4716312 0.9929078,0 0.9929078,0 0,0.4716312 0,0.4716312 -0.9929078,0 -0.9929078,0 0,-0.4716312 z"
-     inkscape:connector-curvature="0"
-     id="path3013"
-     style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.04964539;stroke-opacity:1" />
-  <path
-     d="m 5.0042553,0.51631216 0,-0.47163121 1.4893617,0 1.4893618,0 0,0.47163121 0,0.47163121 -1.4893618,0 -1.4893617,0 0,-0.47163121 z"
-     inkscape:connector-curvature="0"
-     id="path3015"
-     style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.04964539;stroke-opacity:1" />
-  <path
-     d="m 8.0326241,1.50922 0,-0.4716312 0.9929079,0 0.992908,0 0,0.4716312 0,0.4716312 -0.992908,0 -0.9929079,0 0,-0.4716312 z"
-     inkscape:connector-curvature="0"
-     id="path3017"
-     style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.04964539;stroke-opacity:1" />
-  <path
-     d="m 10.01844,2.5269505 0,-0.4964539 0.496454,0 0.496454,0 0,0.4964539 0,0.4964539 -0.496454,0 -0.496454,0 0,-0.4964539 z"
-     inkscape:connector-curvature="0"
-     id="path3019"
-     style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.04964539;stroke-opacity:1" />
-  <path
-     d="m 11.022709,4.0287235 0.01346,-0.9804964 0.484043,-0.014209 0.484042,-0.014209 0,0.9947055 0,0.9947056 -0.497503,0 -0.497503,0 0.01346,-0.9804965 z"
-     inkscape:connector-curvature="0"
-     id="path3021"
-     style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.04964539;stroke-opacity:1" />
-  <path
-     d="m 12.015928,6.5109931 0.01315,-1.4769504 0.484043,-0.014209 0.484042,-0.014209 0,1.4911594 0,1.4911595 -0.497192,0 -0.497193,0 0.01315,-1.4769503 z"
-     inkscape:connector-curvature="0"
-     id="path3023"
-     style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.04964539;stroke-opacity:1" />
-  <path
-     d="m 11.011348,9.0304966 0,-0.9929078 0.496453,0 0.496454,0 0,0.9929078 0,0.9929074 -0.496454,0 -0.496453,0 0,-0.9929074 z"
-     inkscape:connector-curvature="0"
-     id="path3025"
-     style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.04964539;stroke-opacity:1" />
-  <path
-     d="m 10.01844,10.518061 0,-0.498252 0.484042,0.01421 0.484043,0.01421 0.01421,0.484043 0.01421,0.484042 -0.498252,0 -0.498251,0 0,-0.498251 z"
-     inkscape:connector-curvature="0"
-     id="path3027"
-     style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.04964539;stroke-opacity:1" />
-  <path
-     d="m 8.0326241,11.511717 0,-0.497504 0.9804965,0.01346 0.9804965,0.01346 0.014209,0.484042 0.01421,0.484043 -0.9947051,0 -0.9947056,0 0,-0.497503 z"
-     inkscape:connector-curvature="0"
-     id="path3029"
-     style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.04964539;stroke-opacity:1" />
-  <path
-     d="m 5.0042553,12.505674 0,-0.496454 1.4893617,0 1.4893618,0 0,0.496454 0,0.496454 -1.4893618,0 -1.4893617,0 0,-0.496454 z"
-     inkscape:connector-curvature="0"
-     id="path3031"
-     style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.04964539;stroke-opacity:1" />
-  <path
-     d="m 3.0184397,11.513816 0,-0.497504 0.9947056,0 0.9947055,0 -0.014209,0.484043 -0.014209,0.484042 -0.9804964,0.01346 -0.9804965,0.01346 0,-0.497503 z"
-     inkscape:connector-curvature="0"
-     id="path3033"
-     style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.04964539;stroke-opacity:1" />
-  <path
-     d="m 2.0255319,10.521656 0,-0.498252 0.4982517,0 0.4982516,0 -0.014209,0.484043 -0.014209,0.484043 -0.4840425,0.01421 -0.4840426,0.01421 0,-0.498252 z"
-     inkscape:connector-curvature="0"
-     id="path3035"
-     style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.04964539;stroke-opacity:1" />
-  <path
-     d="m 1.0326241,9.0304966 0,-0.9929078 0.4716312,0 0.4716312,0 0,0.9929078 0,0.9929074 -0.4716312,0 -0.4716312,0 0,-0.9929074 z"
-     inkscape:connector-curvature="0"
-     id="path3037"
-     style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.04964539;stroke-opacity:1" />
-  <path
-     d="m 6.0468085,7.4914895 0,-0.4964539 -0.5212766,0 -0.5212766,0 0,-0.4964539 0,-0.4964539 0.5212766,0 0.5212766,0 0,-1.9858156 0,-1.9858156 0.4716312,0 0.4716312,0 0,1.9858156 0,1.9858156 1.5141845,0 1.5141846,0 0,0.4964539 0,0.4964539 -1.5141846,0 -1.5141845,0 0,0.4964539 0,0.4964539 -0.4716312,0 -0.4716312,0 0,-0.4964539 z"
-     inkscape:connector-curvature="0"
-     id="path3039"
-     style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.04964539;stroke-opacity:1" />
-</svg>
diff --git a/themes/Mono/eo_Unknown.svg b/themes/Mono/eo_Unknown.svg
deleted file mode 100644 (file)
index 5a94a36..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   version="1.1"
-   width="14"
-   height="14"
-   id="svg3371">
-  <metadata
-     id="metadata3377">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3375" />
-  <image
-     xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAABHNCSVQICAgIfAhkiAAAAGxJREFU KJG9kkEOwCAIBFn//+fppRhcadJ6KBfiZgdEUfSBneUGF4iIgJWTtPlHhYAAQrczc+r1JqNCKqWt 4yzgY5AxqzxnTqAF/gRt4K8dX8MOHb2qDJ7/BpA5DbkXDkYZehG7lWs3xefofBekP/E+Wr0VHwAA AABJRU5ErkJggg== "
-     x="0"
-     y="0"
-     width="14"
-     height="14"
-     id="image3379" />
-</svg>
diff --git a/themes/Mono/eo_White.svg b/themes/Mono/eo_White.svg
deleted file mode 100644 (file)
index f5dea63..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   version="1.1"
-   width="14"
-   height="14"
-   id="svg3454">
-  <metadata
-     id="metadata3460">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3458" />
-  <image
-     xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAABHNCSVQICAgIfAhkiAAAAFZJREFU KJG9kkEKADEIAyf7/z+nlxZc7SKUpblVJ0aKYi+ntzKQCwaw3z5JhY9GL4MCGRuzXHp5vaLJGODp 4G5Qm5ZTjxPvG5fu/erxAfxycmXAx2YADC2SN/PQY933AAAAAElFTkSuQmCC "
-     x="0"
-     y="0"
-     width="14"
-     height="14"
-     id="image3462" />
-</svg>
diff --git a/themes/Mono/icon_black.svg b/themes/Mono/icon_black.svg
deleted file mode 100644 (file)
index b969e5e..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2">
-  <metadata
-     id="metadata8">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs6" />
-  <rect
-     width="100"
-     height="100"
-     x="0"
-     y="0"
-     id="rect2827"
-     style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-  <path
-     d="M 0,0 0,100 100,100 100,0 0,0 z m 45.84375,5.09375 c 3.782737,-0.6304527 5.035226,7.582845 8.1875,8.84375 5.043643,1.891369 10.112586,1.878976 15.15625,5.03125 C 84.948871,29.056036 89.97818,48.602714 92.5,65.625 c 1.26091,6.935012 1.875,13.877489 1.875,20.8125 0,1.891369 0.63591,5.676595 -0.625,6.9375 -1.89137,2.521832 -11.347726,1.25 -14.5,1.25 l -37.8125,0 c -4.41319,0 -11.974213,1.903762 -11.34375,-5.03125 C 33.246024,73.832369 51.525786,66.891834 52.15625,50.5 46.482154,54.91318 39.543643,56.80556 34.5,61.21875 30.717273,64.371024 27.563988,70.665678 23.78125,73.1875 21.259429,74.448405 18.729656,73.178072 17.46875,70.65625 11.164201,72.547619 4.869536,68.153751 5.5,61.21875 c 0.630452,-8.195928 6.311023,-14.502488 10.09375,-21.4375 2.521822,-4.413179 1.889881,-8.83682 3.78125,-13.25 1.260905,-3.152284 4.395334,-5.035226 5.65625,-8.1875 1.891359,-2.521821 -2.527274,-10.1031785 0.625,-12.625 3.152274,-2.5218214 10.739094,6.321928 12,8.84375 2.521821,-1.891358 5.035226,-8.8382973 8.1875,-9.46875 z m 7.5625,12.3125 c -0.844442,0.01991 -1.703778,0.135185 -2.53125,0.3125 1.891368,3.782737 5.691476,3.139892 8.84375,5.03125 4.41319,1.260916 7.566476,5.035226 10.71875,8.1875 9.456833,11.978654 13.875,30.900332 13.875,46.03125 0,5.674096 -1.284205,14.5 6.28125,14.5 0,-20.805024 -1.879988,-44.758963 -15.75,-61.78125 C 70.272949,23.973994 61.569191,17.213759 53.40625,17.40625 z m -16.5,1 c -2.429623,0.100201 -5.635854,1.309687 -6.1875,4.34375 1.260905,0 3.145345,0.0055 4.40625,-0.625 6.737993,-2.127784 4.90505,-3.84758 1.78125,-3.71875 z m -3.875,8.5625 c -4.749346,0.198245 -8.478301,4.691417 -7.375,9.65625 l 1.28125,-3.15625 c 3.782737,0.630453 5.661703,-1.248512 5.03125,-5.03125 l 3.15625,-0.65625 0,-0.625 c -0.709262,-0.157615 -1.415272,-0.215821 -2.09375,-0.1875 z m 22.28125,14.0625 c -2.521822,1.260906 -3.15625,4.415679 -3.15625,6.9375 l 1.25,0 1.90625,-6.9375 z m -41,15.125 c -3.152274,0 -3.777284,6.317953 -0.625,5.6875 3.152275,-0.630452 4.407728,-5.6875 0.625,-5.6875 z m 6.9375,6.3125 -3.15625,5.6875 1.90625,0.625 1.875,-6.3125 -0.625,0 z"
-     inkscape:connector-curvature="0"
-     id="rect2946"
-     style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-</svg>
diff --git a/themes/Mono/icon_white.svg b/themes/Mono/icon_white.svg
deleted file mode 100644 (file)
index 0656cd8..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="100"
-   height="100"
-   id="svg2">
-  <metadata
-     id="metadata8">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs6" />
-  <rect
-     width="100"
-     height="100"
-     x="0"
-     y="0"
-     id="rect2827"
-     style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-  <path
-     d="m 37.649136,14.554159 c 2.521821,-1.891358 5.043643,-8.8263698 8.195917,-9.4568225 3.782737,-0.6304527 5.043643,7.5654645 8.195917,8.8263695 5.043643,1.891369 10.087285,1.891369 15.130949,5.043643 15.761371,10.087286 20.805014,29.631394 23.326835,46.65368 1.260916,6.935012 1.891369,13.870013 1.891369,20.805024 0,1.891369 0.630453,5.674096 -0.630453,6.935001 -1.891368,2.521832 -11.348201,1.260916 -14.500475,1.260916 l -37.827322,0 c -4.41319,0 -11.978654,1.891369 -11.348191,-5.043643 3.152274,-15.761381 21.435466,-22.696382 22.06593,-39.088216 -5.674096,4.41318 -12.609107,6.304549 -17.65275,10.717739 -3.782727,3.152274 -6.935001,9.456822 -10.717739,11.978644 -2.521821,1.260905 -5.043642,0 -6.304548,-2.521822 C 11.170027,72.556041 4.8654681,68.142851 5.4959314,61.20785 6.1263841,53.011922 11.80048,46.707374 15.583206,39.772362 18.105028,35.359183 17.474575,30.945993 19.365944,26.532813 20.626849,23.380529 23.779123,21.48917 25.040039,18.336896 26.931398,15.815075 22.518218,8.2496107 25.670492,5.7277892 28.822766,3.2059678 36.38823,12.032337 37.649136,14.554159 z m 13.23956,3.152274 c 1.891368,3.782737 5.674095,3.152285 8.826369,5.043643 4.41319,1.260916 7.565486,5.043643 10.71776,8.195917 9.456833,11.978654 13.870012,30.892309 13.870012,46.023227 0,5.674096 -1.260905,14.500476 6.304549,14.500476 0,-20.805024 -1.891359,-44.762322 -15.761371,-61.784609 C 69.802372,23.380529 59.715065,15.815075 50.888696,17.706433 z m -32.783668,50.436418 1.891369,0.630452 1.891368,-6.304548 -0.630463,0 z m -4.41318,-6.304549 c 3.152274,-0.630452 4.41318,-5.674095 0.630453,-5.674095 -3.152274,0 -3.782737,6.304548 -0.630453,5.674095 z m 38.457764,-13.870012 1.260905,0 1.891369,-6.935012 c -2.521822,1.260906 -3.152274,4.413191 -3.152274,6.935012 z m -26.47912,-11.348202 1.260906,-3.152274 c 3.782737,0.630453 5.674095,-1.260905 5.043642,-5.043643 l 3.152274,-0.630452 0,-0.630453 c -5.674095,-1.260916 -10.717738,3.782727 -9.456822,9.456822 z m 5.043643,-13.870012 c 1.260905,0 3.152274,0 4.413179,-0.630453 11.978655,-3.782727 -3.152274,-6.304548 -4.413179,0.630453 z"
-     inkscape:connector-curvature="0"
-     id="BlackKnight"
-     style="stroke-width:1px" />
-</svg>
diff --git a/themes/Mono/shogi_bishop.svg b/themes/Mono/shogi_bishop.svg
deleted file mode 100644 (file)
index d7c551f..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="128"
-   height="128"
-   id="svg2">
-  <defs
-     id="defs4" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1">
-    <g
-       id="g10964">
-      <path
-         d="m 9.8046247,116.56489 c 0,0 107.1261753,1.21404 106.8937853,0.40468 C 116.46604,116.16021 95.087283,18.227835 95.087283,18.227835 L 60.927745,8.1108558 26.768205,17.823157 9.8046247,116.56489 z"
-         inkscape:connector-curvature="0"
-         id="path2800"
-         style="fill:#c3aa55;fill-opacity:1;fill-rule:evenodd;stroke:none" />
-      <path
-         d="m 76.64339,80.21537 c 2.614725,4.014369 6.12444,18.852836 3.531885,19.559421 -5.980979,1.630079 -27.238083,-12.531612 -27.517295,-11.03916 -0.319977,1.710356 10.649935,9.564735 15.705478,11.582269 6.384454,2.54787 10.451634,6.47706 13.551729,5.66575 3.100096,-0.8113 3.301825,-2.34287 2.6583,-9.239593 C 83.929962,89.847348 84.397924,85.79693 82.668006,82.469239 80.934663,79.13496 79.328952,78.820445 76.64339,80.21537 z"
-         inkscape:connector-curvature="0"
-         id="path1335"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.95338881px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 54.112441,82.736699 c 3.860285,1.476494 4.877609,2.686762 8.6509,1.440002 3.773291,-1.246758 13.892423,-3.541905 13.892423,-3.541905 8.126445,-0.182198 12.336699,-0.569436 12.900603,-1.344115 1.178992,-1.619675 4.012263,-3.456834 -1.898716,-3.886842 -5.91098,-0.430008 -9.85931,-0.250193 -16.294269,1.822772 -6.43496,2.072965 -17.219831,4.594499 -17.000618,4.601948 0.219213,0.0074 -0.461759,0.671794 -0.250323,0.90814 z"
-         inkscape:connector-curvature="0"
-         id="path1337"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.95338881px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 57.685289,71.985838 c 1.592957,3.088831 14.631432,0.654426 20.158429,-0.532744 5.526996,-1.187171 11.455483,-0.02976 11.321823,-2.555084 -0.133659,-2.525318 -9.20923,-1.478197 -13.851596,-0.49013 -4.642366,0.988067 -17.620878,3.34906 -17.628656,3.577958 z"
-         inkscape:connector-curvature="0"
-         id="path1339"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.95338881px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 40.362392,85.89676 c 0.251764,5.508432 -0.272538,7.796146 -1.179215,10.483334 -1.04246,3.089616 -4.594581,5.816006 -2.237679,7.500216 2.356903,1.68422 5.118227,-1.16474 6.408733,-6.849928 1.290506,-5.685196 2.645484,-9.108782 1.392425,-10.984651 -1.253058,-1.875869 -3.718847,-0.355523 -4.384264,-0.148971 z"
-         inkscape:connector-curvature="0"
-         id="path1341"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.95338881px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 49.307111,71.684874 c 0.757643,5.889022 -3.032561,7.174523 -8.003028,11.359704 -4.970466,4.185181 -15.526243,9.381993 -14.915269,10.777722 0.610975,1.395725 8.619637,-2.024506 14.686168,-6.172444 6.066533,-4.147938 13.649751,-10.468184 13.484981,-12.077913 -0.164771,-1.60973 -4.806648,-4.101069 -5.252852,-3.887069 z"
-         inkscape:connector-curvature="0"
-         id="path1343"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.95338881px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 47.158422,65.899111 c 0.938097,2.010923 -1.035155,3.06188 -3.050533,5.028053 -2.496899,2.435937 -6.261556,4.937339 -5.456118,5.425695 1.007276,0.610737 6.543537,-3.701209 8.782335,-5.000107 2.238798,-1.298899 5.89662,-1.822778 5.097543,-4.141545 -0.799077,-2.318768 -4.919246,-1.754994 -5.373227,-1.312096 z"
-         inkscape:connector-curvature="0"
-         id="path1345"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.95338881px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <g
-         transform="matrix(0.958364,0,0,1,1.690641,0)"
-         id="g1352">
-        <path
-           d="m 41.082189,35.912628 c 3.302276,3.84702 9.012976,1.691373 13.781756,-1.761217 4.76878,-3.452588 10.412431,-10.533183 9.540472,-12.977869 -0.871959,-2.44469 -4.300899,-1.897824 -4.300899,-1.897824 -0.941043,0.292109 -0.100358,1.972315 -0.976127,4.586799 -0.875768,2.614483 -6.208047,8.178362 -8.929979,9.822476 -2.721932,1.644115 -6.638776,1.907147 -9.115223,2.227635 z"
-           inkscape:connector-curvature="0"
-           id="path1359"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.95338881px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <g
-           id="g1342">
-          <path
-             d="m 76.199476,35.932785 c -2.646114,0.368412 -2.221802,7.257677 -1.539389,13.009904 0.682413,5.752226 2.538668,9.252723 0.746075,10.337621 -1.792595,1.084898 -6.22073,-1.632017 -6.56862,-0.452354 -0.145302,0.492704 1.629265,3.721946 4.228713,4.726917 2.599448,1.004972 4.95635,2.689187 6.10686,1.124149 1.15051,-1.565038 -0.111768,-9.628584 -0.23765,-12.3828 -0.125882,-2.754217 -0.52669,-8.592967 -0.307647,-10.322725 0.26356,-2.0813 0.264674,-6.356696 0.264674,-6.356696 -0.172547,-1.380833 -2.466025,0.09454 -2.693016,0.315984 z"
-             inkscape:connector-curvature="0"
-             id="path1351"
-             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.95338881px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-          <g
-             id="g1334">
-            <path
-               d="m 63.977909,36.66497 c -2.821228,0.803026 -4.028251,1.175662 -3.824829,9.344314 0.138611,5.566112 -1.974957,9.218095 -1.027673,11.659318 0.947286,2.441223 2.093157,4.17948 2.093157,4.17948 0,0 2.108015,-2.744438 2.462047,-6.371649 0.411981,-4.220921 1.466239,-6.941276 1.290732,-11.605852 -0.175507,-4.664576 -1.041962,-6.979644 -0.993434,-7.205611 z"
-               inkscape:connector-curvature="0"
-               id="path1347"
-               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.09695542px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-            <path
-               d="m 47.325638,39.250159 c -1.240671,0.989071 0.606953,9.67705 -0.621332,13.531062 -1.228285,3.854011 -2.355461,4.732358 -0.22555,6.638021 2.129912,1.905665 2.495983,1.56238 2.495983,1.56238 0,0 1.151902,-0.497819 1.573333,-6.441701 0.421431,-5.943881 1.869722,-14.935036 0.374116,-16.131663 -1.495604,-1.196626 -1.451804,-0.918516 -3.59655,0.841901 z"
-               inkscape:connector-curvature="0"
-               id="path1349"
-               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.95338881px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-            <path
-               d="m 49.903106,41.226635 c 5.730654,-0.721927 10.803669,-1.4662 15.007609,-2.469164 4.203939,-1.002964 15.107823,-0.06771 13.666661,-2.866613 -1.441161,-2.798907 -11.530412,-1.873193 -16.188333,-0.427332 -4.657922,1.445862 -10.138253,1.259649 -11.711634,2.351995 -1.57338,1.092347 -0.993516,3.403666 -0.774303,3.411114 z"
-               inkscape:connector-curvature="0"
-               id="path1353"
-               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.95338881px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-            <path
-               d="m 49.584864,47.613716 c 6.565795,-0.668981 5.123557,0.508019 9.578327,-0.801856 6.02701,-1.772174 16.006448,-0.513822 16.146441,-3.496694 0.139992,-2.982873 -7.69756,-1.094493 -12.93556,-0.0099 -5.238002,1.084569 -11.853739,0.347471 -13.57738,1.548331 -1.723641,1.200861 0.556709,2.30936 0.788172,2.760143 z"
-               inkscape:connector-curvature="0"
-               id="path1355"
-               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.95338881px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-            <path
-               d="m 50.526113,55.969749 c 11.453532,-1.214957 13.19946,-0.926471 16.080343,-1.745229 2.880882,-0.818758 12.291496,-0.04068 11.71941,-2.580892 -0.572086,-2.540216 -2.701033,-2.624661 -8.893447,-1.23094 -6.192414,1.393722 -16.535931,0.406576 -18.586627,2.628513 -2.050695,2.221936 0.118747,2.943445 -0.319679,2.928548 z"
-               inkscape:connector-curvature="0"
-               id="path1357"
-               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.95338881px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-            <path
-               d="m 60.703894,26.92729 c 5.143013,-2.804349 2.607716,-2.703333 8.510919,-2.044428 5.903202,0.658906 7.296842,-0.02938 7.837818,3.426427 0.540976,3.455806 -2.15892,1.523604 -5.901101,1.854773 -3.74218,0.33117 -6.047779,1.303734 -8.61967,3.122512 -1.236784,0.874623 -3.019963,2.085391 -3.306911,1.681611 -0.3898,-0.54851 2.007504,-3.626175 4.246302,-4.925073 2.238798,-1.298899 2.031985,-0.372995 2.297864,-1.73893 0.265879,-1.365935 -5.292212,-1.155444 -5.065221,-1.376892 z"
-               inkscape:connector-curvature="0"
-               id="path1361"
-               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.95338881px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-          </g>
-        </g>
-      </g>
-    </g>
-  </g>
-</svg>
diff --git a/themes/Mono/shogi_bishop_promoted.svg b/themes/Mono/shogi_bishop_promoted.svg
deleted file mode 100644 (file)
index 8fdd603..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="128"
-   height="128"
-   id="svg2">
-  <defs
-     id="defs4" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1">
-    <g
-       id="g10964">
-      <path
-         d="m 9.8046247,116.56489 c 0,0 107.1261753,1.21404 106.8937853,0.40468 C 116.46604,116.16021 95.087283,18.227835 95.087283,18.227835 L 60.927745,8.1108558 26.768205,17.823157 9.8046247,116.56489 z"
-         inkscape:connector-curvature="0"
-         id="path2800"
-         style="fill:#c3aa55;fill-opacity:1;fill-rule:evenodd;stroke:none" />
-      <path
-         d="m 48.359694,73.470922 c 2.3509,3.526351 3.29126,2.070583 5.877251,2.540763 2.58599,0.47018 12.224682,-4.701801 12.929952,-2.821081 0.70527,1.88072 -4.46671,3.761441 -4.23162,5.171981 0.23509,1.41054 4.936891,2.11581 5.171981,3.056171 0.23509,0.94036 -3.761441,2.58599 -3.761441,3.99653 0,1.410541 13.400133,2.115811 13.400133,5.877251 0,3.761441 -10.916414,8.864563 -15.383125,9.099653 -4.466711,0.23509 -23.349061,-4.227779 -21.761103,-6.748752 2.563486,-4.069681 17.567791,1.743009 18.508151,1.272829 0.94036,-0.470181 -9.643585,-5.407072 -14.580476,-5.171982 -4.936891,0.23509 -10.510196,1.313163 -10.275106,3.899153 0.23509,2.585991 18.572114,10.814152 27.035355,10.579062 8.463242,-0.23509 25.154636,-4.701813 22.803735,-12.459782 -2.3509,-7.757972 -10.108872,-7.052702 -11.049232,-7.993062 -0.94036,-0.94036 2.11581,-2.11581 2.11581,-3.291261 0,-1.17545 -6.347431,-1.88072 -6.112341,-3.05617 0.23509,-1.17545 6.197886,0.244228 6.582521,-3.761441 0.303946,-3.165362 -2.470566,-4.296027 -7.757971,-4.186393 -6.349307,0.131652 -8.933423,1.880721 -11.989593,2.821081 -3.056171,0.940361 -6.817611,1.41054 -7.522881,1.17545 z"
-         inkscape:connector-curvature="0"
-         id="path1324"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <g
-         transform="translate(0.166234,-1.994805)"
-         id="g2064">
-        <path
-           d="m 63.944493,24.296767 c -0.137713,0.510515 2.585991,1.17545 3.996531,3.761441 1.41054,2.58599 -3.595207,17.793094 -2.184666,18.968544 1.41054,1.17545 5.297879,1.17545 5.76806,2.3509 0.47018,1.175451 -2.597805,3.870632 -1.422355,5.986443 1.17545,2.11581 10.700057,-2.225002 11.170238,-0.814461 0.47018,1.41054 -5.642162,6.935156 -5.877252,8.698331 2.602759,-0.136756 6.095634,-3.182069 9.621985,-6.70842 3.526351,-3.526351 5.148353,-4.060493 2.562363,-5.235944 -2.585991,-1.17545 -13.554553,3.428973 -13.554553,2.018433 0,-1.41054 3.789962,-5.630347 1.909242,-6.570707 -1.880721,-0.94036 -9.128177,1.244306 -8.187817,-1.341685 0.940361,-2.58599 3.595207,-14.169365 4.065387,-15.814995 0.47018,-1.645631 3.664064,-3.761441 0.596079,-5.06279 -3.919627,-1.662591 -7.936019,-0.997402 -8.463242,-0.23509 z"
-           inkscape:connector-curvature="0"
-           id="path1326"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 36.605192,46.556572 c 0,0 -4.701801,1.88072 2.58599,2.350901 7.287792,0.47018 9.873782,-0.705271 11.049232,0.70527 1.175451,1.41054 -4.28377,3.497829 -7.104851,6.08382 -2.82108,2.58599 -6.765462,7.316312 -5.354921,8.021582 1.41054,0.705271 4.643682,-4.31592 9.156698,-8.301901 4.758843,-4.2031 10.034073,-5.255854 10.590866,-7.214042 0.597714,-2.102103 -4.369333,-2.471906 -9.541314,-1.766636 -5.171981,0.705271 -8.48687,0.384617 -11.3817,0.121006 z"
-           inkscape:connector-curvature="0"
-           id="path1328"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 54.001855,48.907472 c 0,0 3.291261,-0.23509 5.642161,4.231621 2.350901,4.466711 0.38951,7.993062 -1.272828,8.657997 0,0 -7.660593,-1.370205 -8.365864,-2.545655 -0.70527,-1.175451 3.996531,-2.585991 4.231621,-1.645631 0.23509,0.94036 1.17545,3.291261 2.585991,2.115811 1.41054,-1.175451 1.41054,-5.877252 0.23509,-6.582522 -1.175451,-0.70527 -3.291261,-4.231621 -3.056171,-4.231621 z"
-           inkscape:connector-curvature="0"
-           id="path1330"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 41.777173,28.219548 c 2.58599,0.23509 4.23162,-0.47018 5.171981,1.17545 0.94036,1.645631 -5.022455,14.212567 -2.671555,16.093287 2.350901,1.880721 10.059314,-0.628513 10.647909,-3.146627 0.332468,-1.422355 -7.786493,2.246602 -8.256673,0.130792 -0.47018,-2.11581 5.962815,-12.991888 5.492635,-14.402428 -0.47018,-1.410541 -7.603552,-2.918459 -8.543912,-1.743009 -0.94036,1.175451 -2.075475,1.657445 -1.840385,1.892535 z"
-           inkscape:connector-curvature="0"
-           id="path1332"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 38.331492,35.896849 c 2.906644,2.339088 6.227413,1.402743 9.313145,1.203973 4.718509,-0.303948 9.551102,-0.01181 9.080922,-1.657445 -0.47018,-1.64563 -5.506476,-0.23509 -8.785923,0.04033 -2.307246,0.193775 -9.843234,0.178047 -9.608144,0.413137 z"
-           inkscape:connector-curvature="0"
-           id="path1334"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 51.027446,57.336929 c 3.681094,-4.902185 28.491131,-18.887874 32.722751,-19.122964 4.23162,-0.23509 5.183794,-0.223276 5.183794,1.657445 0,1.88072 -4.93689,1.88072 -8.46324,2.58599 -3.52635,0.70527 -23.812948,12.293538 -26.163848,14.174259 -2.35091,1.88072 -5.126761,3.165362 -3.279457,0.70527 z"
-           inkscape:connector-curvature="0"
-           id="path2062"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      </g>
-      <path
-         d="m 83.172578,43.36646 c 0.509029,-1.211609 3.683116,-1.441302 5.167376,-1.528855 1.678018,-0.09898 2.18934,-0.07403 2.03267,1.030036 -0.273366,1.926418 -2.722051,1.593286 -3.441274,1.405158 -0.719223,-0.188127 -3.099315,-0.195944 -3.758772,-0.906339 z"
-         inkscape:connector-curvature="0"
-         id="path2072"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/Mono/shogi_gold.svg b/themes/Mono/shogi_gold.svg
deleted file mode 100644 (file)
index 51267b2..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="128"
-   height="128"
-   id="svg2">
-  <defs
-     id="defs4" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1">
-    <g
-       id="g10964">
-      <path
-         d="m 9.8046247,116.56489 c 0,0 107.1261753,1.21404 106.8937853,0.40468 C 116.46604,116.16021 95.087283,18.227835 95.087283,18.227835 L 60.927745,8.1108558 26.768205,17.823157 9.8046247,116.56489 z"
-         inkscape:connector-curvature="0"
-         id="path2800"
-         style="fill:#c3aa55;fill-opacity:1;fill-rule:evenodd;stroke:none" />
-      <g
-         transform="translate(-0.47018,-0.23509)"
-         id="g2841">
-        <path
-           d="m 55.224386,71.000684 c 0,0 9.119479,-3.456904 12.542041,-4.723987 3.422562,-1.267082 5.462864,-2.167763 5.586626,-3.360086 0.123763,-1.192322 -2.225352,-3.568382 -3.373558,-3.224039 -1.148207,0.344343 -3.375108,3.073332 -5.349236,4.676171 -1.974128,1.60284 -9.215935,6.141777 -9.405873,6.631941 z"
-           inkscape:connector-curvature="0"
-           id="path1340"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <g
-           id="g2829">
-          <path
-             d="m 74.758635,79.10127 c 1.880721,4.231621 1.880721,6.817611 2.115811,12.459772 0.23509,5.642162 0.717084,11.255798 -0.458366,12.431248 -1.17545,1.17545 -13.882127,-9.610167 -14.117217,-8.669807 -0.23509,0.94036 13.039144,13.497517 15.390044,13.262427 2.350901,-0.23509 3.830297,0.19475 3.830297,-5.44742 0,-5.642153 -0.413137,-22.1555 -1.823678,-23.33095 -1.41054,-1.17545 -3.99653,-1.17545 -4.936891,-0.70527 z"
-             inkscape:connector-curvature="0"
-             id="path1330"
-             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-          <path
-             d="m 56.891792,87.799602 c 3.291261,1.17545 4.466711,-0.235091 8.228152,-1.175451 3.76144,-0.94036 6.100527,-2.087289 12.212868,-2.792559 6.112341,-0.705271 13.176857,-0.968882 14.822487,-1.203972 1.645631,-0.23509 4.231621,0 3.761441,-1.88072 -0.47018,-1.88072 -2.046954,-3.165362 -6.513665,-2.225002 -4.466711,0.940361 -17.133052,3.428973 -22.540123,5.074603 -5.407071,1.645631 -11.961072,0.67675 -13.136522,1.61711 -1.17545,0.94036 3.165362,2.585991 3.165362,2.585991 z"
-             inkscape:connector-curvature="0"
-             id="path1332"
-             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-          <path
-             d="m 69.667324,90.397406 c -2.3509,-0.47018 -4.23162,0.70527 -4.23162,2.350901 0,1.64563 1.17545,5.171981 1.17545,5.171981 0,0 2.585991,-0.47018 3.291261,-2.3509 0.70527,-1.880721 -1e-6,-4.936892 -0.235091,-5.171982 z"
-             inkscape:connector-curvature="0"
-             id="path1334"
-             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-          <path
-             d="m 67.200312,80.162635 c 0,0 1.818784,-2.156145 5.815315,-5.682496 3.996531,-3.526351 6.570707,-6.112342 7.511068,-7.109745 0.645082,-0.684212 3.067985,2.407944 2.597804,4.053574 -0.47018,1.64563 -1.17545,1.17545 -5.171981,3.056171 -4.426289,2.08296 -11.222386,5.447406 -10.752206,5.682496 z"
-             inkscape:connector-curvature="0"
-             id="path1336"
-             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-          <path
-             d="m 65.286177,66.446742 c 0,0 1.439062,2.4768 3.554872,4.12243 2.115811,1.64563 2.08729,2.225001 1.146929,4.105722 -0.566172,1.132344 -0.23509,3.056171 -1.88072,2.585991 -1.645631,-0.47018 -3.761441,-6.112342 -3.526351,-7.287792 0.23509,-1.17545 0.70527,-3.29126 0.70527,-3.526351 z"
-             inkscape:connector-curvature="0"
-             id="path1338"
-             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-          <path
-             d="m 46.478974,62.989248 c 0,0 1.949576,2.006619 2.889936,3.417159 0.94036,1.410541 -1.382019,16.886149 -2.087289,23.23358 -0.705271,6.347431 -1.358391,9.885592 -2.298751,10.355772 -0.940361,0.470181 -4.742136,-2.431566 -4.782472,-2.322375 -0.407316,1.102623 3.056171,8.933426 5.642161,9.168516 2.585991,0.23509 3.165362,-1.34168 3.400452,-3.69259 0.23509,-2.3509 1.576775,-19.277383 1.811865,-22.568644 0.23509,-3.29126 3.250925,-12.998809 1.840385,-14.644439 -1.41054,-1.64563 -1.628923,-3.29126 -2.804373,-3.05617 -1.17545,0.23509 -3.376824,-0.125899 -3.611914,0.109191 z"
-             inkscape:connector-curvature="0"
-             id="path1342"
-             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-          <path
-             d="m 31.19812,87.203523 c 2.873229,1.909241 6.663192,2.476799 10.894813,0.831169 4.231621,-1.645631 7.511067,-2.585991 7.511067,-2.585991 0,0 -0.70527,-3.761441 -6.112341,-2.11581 -5.407071,1.64563 -12.293539,3.400452 -12.293539,3.870632 z"
-             inkscape:connector-curvature="0"
-             id="path1344"
-             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-          <path
-             d="m 36.909137,86.624152 c 0,3.76144 -5.321507,9.180326 -4.851327,11.766312 0.47018,2.585986 1.215785,4.150956 3.801776,2.740406 2.585991,-1.410536 2.016616,-4.847021 2.500427,-7.024172 0.47018,-2.115811 -0.510515,-7.012366 -1.450876,-7.482546 z"
-             inkscape:connector-curvature="0"
-             id="path1346"
-             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-          <path
-             d="m 38.554768,65.936227 c 2.82108,1.41054 3.52635,3.996531 2.82108,5.877251 -0.70527,1.88072 -1.64563,3.996531 -1.64563,3.996531 0,0 4.231621,-0.940361 6.112341,-1.175451 1.880721,-0.23509 3.526351,10e-7 3.526351,10e-7 l -0.47018,1.88072 c 0,0 -7.287792,2.3509 -9.403602,1.88072 -2.11581,-0.47018 -3.761441,-3.29126 -3.526351,-4.466711 0.23509,-1.17545 1.17545,-1.17545 1.645631,-3.05617 0.47018,-1.880721 0.70527,-4.466711 0.94036,-4.936891 z"
-             inkscape:connector-curvature="0"
-             id="path1348"
-             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-          <path
-             d="m 58.339486,71.279065 c 3.327681,2.225771 4.912123,5.19551 3.867405,7.353371 -0.944479,1.950817 -3.558706,1.859607 -4.069832,0.587663 -0.511127,-1.271943 -0.08147,-7.566242 0.202427,-7.941034 z"
-             inkscape:connector-curvature="0"
-             id="path1350"
-             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        </g>
-      </g>
-      <g
-         transform="matrix(1.103193,0,0,1.108159,-5.830971,-4.768402)"
-         id="g2817">
-        <path
-           d="m 38.769905,40.981253 c 5.881684,-2.910197 15.210544,-10.042582 16.844729,-12.636712 1.634182,-2.59413 4.165728,-4.373494 4.165728,-4.373494 0,0 15.41611,11.815447 17.398237,12.86745 3.258481,1.72942 6.863509,1.347746 8.29342,0.915391 1.42991,-0.432355 -5.323674,-3.924 -10.168415,-6.334759 -1.331387,-0.662503 -15.727515,-8.745147 -15.727515,-8.745147 0,0 3.230328,0.797626 1.596145,-0.931793 -1.634184,-1.729421 -2.666693,-1.141887 -3.420524,-0.266121 -1.07348,1.247121 -2.807705,3.359689 -4.850433,6.169997 -2.04273,2.810307 -14.9245,12.221495 -14.131372,13.335188 z"
-           inkscape:connector-curvature="0"
-           id="path2088"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.89387423px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <g
-           transform="matrix(0.99937,0.03548559,-0.03548559,0.99937,1.642572,-3.68305)"
-           id="g2807">
-          <path
-             d="m 67.823376,46.212988 c -2.161039,1.828571 -1.163636,4.322077 -1.496104,6.150649 -0.339051,1.864784 2.0302,0.202047 2.992209,-2.327273 0.687676,-1.808043 0.997401,-2.327273 0.831167,-3.989611 -0.854747,-1.961085 -2.161038,0.166235 -2.327272,0.166235 z"
-             inkscape:connector-curvature="0"
-             id="path1343"
-             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-          <g
-             transform="translate(0.117545,-0.117545)"
-             id="g2799">
-            <path
-               d="m 59.628205,34.812728 c -1.429911,0.432354 -1.021364,5.18826 -0.817091,8.863278 0.204273,3.675019 -0.817092,9.511812 0.612819,9.295634 1.42991,-0.216178 2.042728,-4.755905 2.042728,-7.782391 0,-3.026485 -1.634182,-9.944167 -1.838456,-10.376521 z"
-               inkscape:connector-curvature="0"
-               id="path2078"
-               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.89387423px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-            <path
-               d="m 52.440614,36.11053 c 2.348799,1.241201 3.458563,1.662338 5.501292,1.013805 2.042729,-0.648533 10.436188,-1.646672 9.619096,-2.511382 -0.817091,-0.864711 -8.151147,-0.598588 -9.78533,0.04994 -1.634184,0.648532 -5.258979,0.45023 -5.335058,1.447633 z"
-               inkscape:connector-curvature="0"
-               id="path2080"
-               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.89387423px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-            <path
-               d="m 49.590678,42.047209 c 2.85982,0.216178 7.149552,0.647798 9.192281,-7.34e-4 2.042729,-0.648533 11.481116,-0.686358 11.481116,-2.848134 0,-2.161775 -7.082959,-0.06206 -10.659832,0.520123 -2.461073,0.400574 -10.013565,2.112568 -10.013565,2.328745 z"
-               inkscape:connector-curvature="0"
-               id="path2082"
-               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.89387423px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-            <path
-               d="m 48.911667,48.29922 c 0.788935,2.344043 6.442192,0.14888 11.253279,-0.764823 4.992706,-0.948195 10.403075,-0.699213 9.994528,-1.7801 -0.408545,-1.080888 -5.029978,-1.014541 -9.818409,-0.614992 -4.609207,0.384594 -11.263164,1.946334 -11.429398,3.159915 z"
-               inkscape:connector-curvature="0"
-               id="path2084"
-               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.89387423px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-            <path
-               d="m 46.560431,55.998125 c 2.859821,1.72942 13.319575,-1.023094 15.779631,-1.429756 2.856234,-0.472153 14.514025,0.718425 13.901205,-0.794818 C 75.62845,52.260309 62.003403,50.75992 59.143582,52.056986 56.283761,53.354052 47.17325,55.565771 46.560431,55.998125 z"
-               inkscape:connector-curvature="0"
-               id="path2086"
-               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.89387423px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-            <path
-               d="m 47.550596,47.251569 c -0.35143,0.611595 -0.22421,1.830714 0.974322,2.397193 1.12856,0.533408 1.848079,1.481479 2.381676,1.098714 0.744662,-0.534168 -0.541291,-1.698013 -1.082581,-2.59696 -0.54129,-0.898948 -1.623868,-1.198596 -2.273417,-0.898947 z"
-               inkscape:connector-curvature="0"
-               id="path2071"
-               style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.25108445px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-          </g>
-        </g>
-      </g>
-    </g>
-  </g>
-</svg>
diff --git a/themes/Mono/shogi_king.svg b/themes/Mono/shogi_king.svg
deleted file mode 100644 (file)
index 19d5e8b..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="128"
-   height="128"
-   id="svg2">
-  <defs
-     id="defs4" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1">
-    <g
-       id="g10964">
-      <path
-         d="m 9.8046247,116.56489 c 0,0 107.1261753,1.21404 106.8937853,0.40468 C 116.46604,116.16021 95.087283,18.227835 95.087283,18.227835 L 60.927745,8.1108558 26.768205,17.823157 9.8046247,116.56489 z"
-         inkscape:connector-curvature="0"
-         id="path2800"
-         style="fill:#c3aa55;fill-opacity:1;fill-rule:evenodd;stroke:none" />
-      <g
-         transform="translate(9.684393e-8,-1.17545)"
-         id="g2841">
-        <path
-           d="m 57.052957,69.172113 c 0,0 7.290908,-1.628333 10.71347,-2.895416 3.422562,-1.267082 6.044682,-1.502828 6.168444,-2.695151 0.123763,-1.192322 -2.415162,-3.661677 -3.290441,-4.055208 -0.420446,-0.189034 -1.46342,2.32528 -3.437548,3.928119 -1.974128,1.60284 -9.963987,5.227492 -10.153925,5.717656 z"
-           inkscape:connector-curvature="0"
-           id="path1340"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <g
-           id="g2829">
-          <path
-             d="m 74.758635,79.10127 c 1.880721,4.231621 1.880721,6.817611 2.115811,12.459772 0.23509,5.642162 0.717084,11.255798 -0.458366,12.431248 -1.17545,1.17545 -17.525009,-9.500976 -17.525009,-9.500976 0.09738,1.771529 16.446936,14.328686 18.797836,14.093596 2.350901,-0.23509 3.830297,0.19475 3.830297,-5.44742 0,-5.642153 -0.413137,-22.1555 -1.823678,-23.33095 -1.41054,-1.17545 -3.99653,-1.17545 -4.936891,-0.70527 z"
-             inkscape:connector-curvature="0"
-             id="path1330"
-             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-          <path
-             d="m 56.891792,87.799602 c 3.291261,1.17545 4.466711,-0.235091 8.228152,-1.175451 3.76144,-0.94036 6.100527,-2.087289 12.212868,-2.792559 6.112341,-0.705271 13.176857,-0.968882 14.822487,-1.203972 1.645631,-0.23509 4.231621,0 3.761441,-1.88072 -0.47018,-1.88072 -2.046954,-3.165362 -6.513665,-2.225002 -4.466711,0.940361 -17.133052,3.428973 -22.540123,5.074603 -5.407071,1.645631 -11.961072,0.67675 -13.136522,1.61711 -1.17545,0.94036 3.165362,2.585991 3.165362,2.585991 z"
-             inkscape:connector-curvature="0"
-             id="path1332"
-             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-          <path
-             d="m 69.833558,91.311692 c -0.605446,-0.387063 -2.370851,0.221465 -3.067984,1.685966 -1.505807,3.163324 -1.318056,6.169383 -1.318056,6.169383 0,0 3.41716,0.111639 4.12243,-1.769081 0.70527,-1.880721 1.496102,-4.853775 0.26361,-6.086268 z"
-             inkscape:connector-curvature="0"
-             id="path1334"
-             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-          <path
-             d="m 67.78213,78.666531 c 0,0 1.901901,-3.652249 5.898432,-7.1786 3.996531,-3.526351 6.903175,-3.037017 8.25912,-2.953901 0.938598,0.05753 1.654998,1.244308 1.184817,2.889938 -0.47018,1.64563 -0.759866,0.842982 -4.756397,2.723703 -4.426289,2.08296 -7.980827,3.868186 -10.585972,4.51886 z"
-             inkscape:connector-curvature="0"
-             id="path1336"
-             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-          <path
-             d="m 65.286177,66.446742 c 0,0 0.441659,1.645631 2.557469,3.291261 2.115811,1.64563 2.419758,2.058767 1.479397,3.939488 -0.566172,1.132344 -0.733791,2.889938 -2.379421,2.419758 -1.645631,-0.47018 -2.597805,-4.948706 -2.362715,-6.124156 0.23509,-1.17545 0.70527,-3.29126 0.70527,-3.526351 z"
-             inkscape:connector-curvature="0"
-             id="path1338"
-             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-          <path
-             d="m 46.714064,60.873438 c 0,0 1.949576,2.006619 2.889936,3.417159 0.94036,1.410541 -1.382019,17.826509 -2.087289,24.17394 -0.705271,6.347431 -1.593481,11.061042 -2.533841,11.531222 -0.940361,0.470181 -4.977226,-0.785936 -5.017562,-0.676745 -0.407316,1.102626 4.495093,6.361626 6.817611,7.522886 2.350901,1.17545 2.225002,-1.34168 2.460092,-3.69259 0.23509,-2.3509 2.046955,-20.452833 2.282045,-23.744094 0.23509,-3.29126 3.015835,-13.939169 1.605295,-15.584799 -1.41054,-1.64563 -1.628923,-3.29126 -2.804373,-3.05617 -1.17545,0.23509 -3.376824,-0.125899 -3.611914,0.109191 z"
-             inkscape:connector-curvature="0"
-             id="path1342"
-             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-          <path
-             d="m 30.200717,85.208718 c 2.873229,1.909241 7.660595,4.471604 11.892216,2.825974 4.231621,-1.645631 7.511067,-2.585991 7.511067,-2.585991 0,-2.65974 -2.201374,-2.431571 -7.608445,-1.450875 -5.561217,1.008654 -11.794838,0.740712 -11.794838,1.210892 z"
-             inkscape:connector-curvature="0"
-             id="path1344"
-             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-          <path
-             d="m 38.239007,86.291684 c 0,3.76144 -8.135924,9.545753 -7.677301,11.267611 0.509035,1.911123 3.069972,3.870605 4.965412,2.906635 1.829938,-0.930649 2.349084,-4.182081 2.832895,-6.359232 0.47018,-2.115811 0.819355,-7.344834 -0.121006,-7.815014 z"
-             inkscape:connector-curvature="0"
-             id="path1346"
-             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-          <path
-             d="m 40.905668,63.585327 c 3.486015,1.909241 3.52635,3.996531 2.82108,5.877251 -0.70527,1.88072 -2.11581,5.642161 -2.11581,5.642161 0,0 2.350901,-0.235091 4.231621,-0.470181 1.880721,-0.23509 3.526351,10e-7 3.526351,10e-7 l -0.47018,1.88072 c 0,0 -5.407072,1.64563 -7.522882,1.17545 -2.11581,-0.47018 -2.350901,-3.52635 -2.115811,-4.701801 0.23509,-1.17545 1.64563,-2.82108 2.115811,-4.7018 0.47018,-1.880721 -0.23509,-2.982422 -0.47018,-4.701801 z"
-             inkscape:connector-curvature="0"
-             id="path1348"
-             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-          <path
-             d="m 58.173252,72.110234 c 3.327681,2.225771 5.244591,4.198107 4.199873,6.355968 -0.944479,1.950817 -3.060005,2.358309 -3.571131,1.086365 -0.511127,-1.271943 -0.912644,-7.067541 -0.628742,-7.442333 z"
-             inkscape:connector-curvature="0"
-             id="path1350"
-             style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        </g>
-      </g>
-      <g
-         transform="matrix(0.951832,0,0,0.830054,0.704819,4.945752)"
-         id="g1352">
-        <path
-           d="m 61.55035,27.574012 c -1.240764,0.892766 -1.564249,9.937253 -1.482906,14.015225 0.08134,4.077973 -0.433453,12.34203 2.780178,11.96428 2.768377,-0.325412 1.61547,-9.065637 1.733949,-12.417352 C 64.70005,37.784451 68.223613,25.23978 61.55035,27.574012 z"
-           inkscape:connector-curvature="0"
-           id="path2078"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.98833269px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 45.229543,27.67073 c 2.540956,1.466945 10.097901,1.985791 17.779978,0.63381 9.071625,-1.59653 16.917865,-1.415521 16.463055,-4.28372 -0.404568,-2.551355 -8.371989,-0.973653 -17.490328,0.963512 -4.698093,0.998096 -16.629782,1.584804 -16.752705,2.686398 z"
-           inkscape:connector-curvature="0"
-           id="path2080"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.98833269px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 49.560062,41.550829 c 0.778036,3.744442 10.302774,1.03172 15.610375,-0.409009 6.952108,-1.887126 14.533224,-1.51674 13.204443,-5.265646 -1.130403,-3.189219 -8.561994,0.127114 -15.149866,2.499998 -4.947064,1.781882 -13.434171,1.268262 -13.664952,3.174657 z"
-           inkscape:connector-curvature="0"
-           id="path2084"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.17996716px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 39.49619,55.811666 c 2.144885,3.32072 18.104063,-1.2224 23.212689,-1.315521 7.401151,-0.130625 21.606851,7.456699 24.408133,2.722588 2.425824,-4.099595 -12.286814,-5.989971 -24.777761,-6.217269 -4.056045,-0.07381 -21.445233,1.41686 -22.843061,4.810202 z"
-           inkscape:connector-curvature="0"
-           id="path2086"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.98833269px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      </g>
-    </g>
-  </g>
-</svg>
diff --git a/themes/Mono/shogi_knight.svg b/themes/Mono/shogi_knight.svg
deleted file mode 100644 (file)
index 0364da4..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="128"
-   height="128"
-   id="svg2">
-  <defs
-     id="defs4" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1">
-    <path
-       d="m 9.8046247,116.56489 c 0,0 107.1261753,1.21404 106.8937853,0.40468 C 116.46604,116.16021 95.087283,18.227835 95.087283,18.227835 L 60.927745,8.1108558 26.768205,17.823157 9.8046247,116.56489 z"
-       inkscape:connector-curvature="0"
-       id="path2800"
-       style="fill:#c3aa55;fill-opacity:1;fill-rule:evenodd;stroke:none" />
-    <g
-       transform="matrix(1.066578,0,0,1,-4.261859,0)"
-       id="g24112">
-      <path
-         d="m 45.840118,68.249959 c 5.36441,0.705856 4.172319,2.11757 11.026844,0.470571 6.854524,-1.647 14.174695,-0.705857 15.068763,-2.588142 0.894069,-1.882285 -0.162208,-1.616432 -3.188237,-1.686747 -3.421057,-0.07949 -5.125698,0.0763 -10.179679,0.705857 -4.422101,0.550847 -11.833623,2.863175 -12.727691,3.098461 z"
-         inkscape:connector-curvature="0"
-         id="path13858"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.79647696px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 47.875325,90.181818 c 13.817985,-3.34573 20.28052,-4.737663 26.264935,-5.07013 5.984416,-0.332468 10.638961,-1.32987 11.636364,0 0.997403,1.32987 0.664935,6.316883 -1.994805,9.974026 -2.659741,3.657143 -4.654546,7.646756 -7.979221,7.979226 -3.324675,0.33247 -7.979221,-0.66494 -7.979221,-0.66494 0,0 4.322078,5.65195 6.316883,5.98442 1.994805,0.33247 5.984416,-2.65974 8.644156,-5.98442 2.65974,-3.324676 8.976624,-10.971429 8.976624,-13.298702 0,-2.327273 -2.768103,-6.276548 -5.427843,-6.941483 -2.659741,-0.664935 -8.976624,0.664935 -13.298702,0.664935 -3.790713,1e-6 -10.971428,1.662337 -17.953247,3.324675 -5.785629,1.37753 -8.61891,1.871354 -8.61891,1.871354 0,0 -0.332467,1.57922 1.412987,2.161039 z"
-         inkscape:connector-curvature="0"
-         id="path11674"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 43.885714,64.166233 c 0.498701,1.496103 1.496103,5.984415 1.163636,9.974026 -0.332468,3.98961 -1.994805,10.971428 -0.332468,12.966234 1.662338,1.994805 1.998106,3.058371 2.659741,2.992207 1.662338,-0.166234 0.997402,-3.324675 0.997402,-9.974026 0,-6.64935 2.65974,-9.974026 1.32987,-12.301298 -1.32987,-2.327273 -5.818181,-3.657143 -5.818181,-3.657143 z"
-         inkscape:connector-curvature="0"
-         id="path12402"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 54.833506,67.324675 c 2.741698,3.657143 1.361092,4.301434 1.645019,9.641558 0.28283,5.319481 0.464067,9.641559 3.290041,9.309091 2.009341,-0.19778 2.193359,-2.65974 2.193359,-7.979221 0,-5.31948 0.980084,-7.314285 -1.213275,-8.976623 -2.193361,-1.662338 -5.915144,-1.662338 -5.915144,-1.994805 z"
-         inkscape:connector-curvature="0"
-         id="path13130"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.28425217px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 46.664652,75.539136 c 1.565417,1.06549 5.44186,0.494654 11.022629,-0.336968 6.911696,-1.029951 13.594292,-0.715208 14.381576,-2.346159 0.787285,-1.630949 1.752898,-1.432763 -1.245225,-1.628431 -2.998121,-0.195669 -6.453886,-0.252411 -11.858988,0.732416 -4.243031,0.773094 -11.421422,3.323489 -12.299992,3.579142 z"
-         inkscape:connector-curvature="0"
-         id="path14586"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.72842008px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 46.879242,81.334322 c 3.162527,1.82721 3.72761,1.366598 11.083225,0.03593 6.42771,-1.16281 13.566773,-0.693432 14.383482,-2.283655 0.8167,-1.590221 0.820262,-1.196549 -1.953163,-1.53846 -2.773424,-0.341913 -8.289633,0.659577 -12.295406,1.352116 -4.365817,0.754786 -10.388962,2.221709 -11.218138,2.434074 z"
-         inkscape:connector-curvature="0"
-         id="path14588"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.70237607px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 36.405196,95.584415 c -0.332468,4.155845 -0.166234,5.485715 1.496104,7.480525 2.26252,2.71503 3.324675,2.65974 4.654545,1.66234 1.32987,-0.99741 2.65974,-1.99481 0,-5.319488 -2.65974,-3.324676 -5.153246,-3.490909 -6.150649,-3.823377 z"
-         inkscape:connector-curvature="0"
-         id="path14590"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 48.706494,94.420779 c -0.997403,1.412987 -1.662338,2.244155 -0.997403,4.987013 0.700599,2.889968 1.662338,4.654548 3.657143,4.322078 1.994805,-0.33246 2.65974,-3.65714 1.32987,-5.651948 -1.32987,-1.994806 -2.992208,-3.657143 -3.98961,-3.657143 z"
-         inkscape:connector-curvature="0"
-         id="path15318"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 58.297628,91.894334 c -1.35655,1.280552 -0.08979,5.341002 1.545872,6.427308 1.635659,1.086306 5.125638,0.268374 4.702517,-1.17683 -0.715599,-2.444189 -3.000161,-5.446346 -6.248389,-5.250478 z"
-         inkscape:connector-curvature="0"
-         id="path16046"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.15739727px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 66.885538,91.24625 c 2.306614,3.28901 1.618898,2.695039 2.786281,4.044852 0.755339,0.873377 1.832122,2.213544 2.843675,0.736295 1.195411,-1.745751 0.276086,-3.222158 -0.412252,-3.558917 -2.241604,-1.096671 -5.248278,-1.385628 -5.217704,-1.22223 z"
-         inkscape:connector-curvature="0"
-         id="path16776"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-    </g>
-    <g
-       transform="matrix(0.929875,0,0,1.064024,5.43612,-0.969076)"
-       id="g24061">
-      <path
-         d="m 57.683117,51.532467 c 0.332468,1.662338 7.48052,0.831169 12.8,0.166234 5.319481,-0.664935 11.137663,-1.496104 13.464936,-0.498702 2.327272,0.997403 2.327272,2.327273 3.823376,1.828572 1.496104,-0.498701 2.327273,-1.496104 1.994805,-3.324675 -0.332467,-1.828572 -1.994805,-3.823377 -3.823376,-3.49091 -1.828572,0.332468 -8.145455,1.662338 -14.628572,2.825974 -6.483117,1.163637 -11.137662,0.997403 -12.301299,1.329871 -1.163636,0.332467 -1.163636,0.997402 -1.32987,1.163636 z"
-         inkscape:connector-curvature="0"
-         id="path17504"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 65.828572,19.283116 c 0.498701,0.997403 2.493506,0.498701 3.158442,1.662338 0.664935,1.163636 0,7.148052 0,10.805195 0,3.657143 -2.327273,18.451948 0.332467,18.285714 2.65974,-0.166234 2.161039,-5.651948 2.493507,-11.636364 0.332467,-5.984415 -0.166234,-14.628571 0.831168,-15.625974 0.997403,-0.997402 2.825974,-2.161039 1.662338,-3.158441 -1.163636,-0.997403 -1.994805,-1.828572 -4.155844,-1.828572 -2.161039,0 -3.989611,1.163637 -4.322078,1.496104 z"
-         inkscape:connector-curvature="0"
-         id="path18232"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 59.012988,45.215583 c 0,-1.32987 3.158441,-1.828571 7.979221,-2.493506 4.820779,-0.664935 9.475324,-3.158442 10.472727,-2.327273 0.997403,0.831169 1.496104,1.994805 0.498701,2.65974 -0.997402,0.664935 -5.984416,1.329871 -9.641559,1.828572 -3.657142,0.498702 -8.976623,0.831169 -9.30909,0.332467 z"
-         inkscape:connector-curvature="0"
-         id="path18960"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 58.960377,37.718009 c 0.130463,0.881748 5.20599,1.324175 10.263238,0.132417 5.057248,-1.191757 10.709467,-1.059339 11.304437,-1.986261 0.594971,-0.926923 -0.59497,-2.251096 -2.231139,-2.383514 -1.636168,-0.132418 -5.800961,1.191757 -9.519525,1.986261 -3.718565,0.794505 -9.370783,0.926922 -9.817011,2.251097 z"
-         inkscape:connector-curvature="0"
-         id="path19688"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.8442499px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 59.844156,30.375452 c 0.299239,1.432033 3.98961,1.250025 9.475325,0.277783 5.485714,-0.972241 9.309091,-0.833349 8.810389,-2.50005 -0.498701,-1.6667 0.831169,-2.500049 -5.31948,-1.111133 -6.15065,1.388917 -12.864641,2.160707 -12.966234,3.3334 z"
-         inkscape:connector-curvature="0"
-         id="path20416"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.91406792px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-    </g>
-    <g
-       transform="translate(-1.443955,-3.98961)"
-       id="g24056">
-      <path
-         d="m 49.537663,22.275324 c 0.664935,1.496104 1.828571,0.997402 2.493506,1.662338 0.664935,0.664935 0.664935,3.324675 0.332468,7.97922 -0.332468,4.654546 -1.828572,9.142858 -1.994805,14.129871 -0.166234,4.987013 -0.664936,8.145454 -1.662338,8.976623 -0.997403,0.831169 -3.823377,-0.166234 -3.823377,-0.166234 0,0 2.65974,4.654546 3.823377,4.82078 1.163636,0.166233 2.825974,-2.825974 3.657143,-5.485715 0.831169,-2.65974 0.997402,-11.137662 1.662337,-16.290909 0.664935,-5.153247 0.997403,-10.805195 1.662338,-12.135065 0.664935,-1.32987 2.65974,-2.493507 1.32987,-3.324675 -1.32987,-0.831169 -3.657143,-1.994806 -4.654545,-1.662338 -0.997403,0.332468 -2.825974,1.496104 -2.825974,1.496104 z"
-         inkscape:connector-curvature="0"
-         id="path21144"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 53.028572,36.903895 c -1.32987,-2.161039 -5.153247,0.664935 -9.309091,5.485714 -4.155844,4.82078 -7.314286,10.805195 -5.818182,11.636364 1.496104,0.831169 2.327273,0.166234 3.823377,-1.828571 1.496104,-1.994805 2.327272,-6.15065 5.485714,-9.309091 3.158441,-3.158442 5.153247,-3.823377 5.485714,-4.654546 0.332468,-0.831169 0,-1.32987 0.332468,-1.32987 z"
-         inkscape:connector-curvature="0"
-         id="path21872"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 35.906494,38.399999 c 1.496104,0.997403 7.646753,0.166234 10.14026,-0.997402 2.493506,-1.163637 8.311688,-3.490909 10.140259,-3.324676 1.828572,0.166234 4.488312,0.332468 4.155845,-0.831168 -0.332468,-1.163637 -1.994806,-2.992208 -7.979221,-0.997403 -5.984416,1.994805 -8.644156,3.823377 -11.137663,4.488312 -2.493506,0.664935 -5.31948,1.828571 -5.31948,1.662337 z"
-         inkscape:connector-curvature="0"
-         id="path23326"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/Mono/shogi_knight_promoted.svg b/themes/Mono/shogi_knight_promoted.svg
deleted file mode 100644 (file)
index f28e4a0..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="128"
-   height="128"
-   id="svg2">
-  <defs
-     id="defs4" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1">
-    <path
-       d="m 9.8046247,116.56489 c 0,0 107.1261753,1.21404 106.8937853,0.40468 C 116.46604,116.16021 95.087283,18.227835 95.087283,18.227835 L 60.927745,8.1108558 26.768205,17.823157 9.8046247,116.56489 z"
-       inkscape:connector-curvature="0"
-       id="path2800"
-       style="fill:#c3aa55;fill-opacity:1;fill-rule:evenodd;stroke:none" />
-    <path
-       d="M 32.912607,68.052037 C 39.730219,66.641497 48.708782,55.790471 53.365441,50.185193 58.359203,44.174142 65.326706,38.678047 63.709403,34.90434 61.593593,29.967449 58.168855,30.545853 57.597062,33.02362 56.891791,36.07979 55.242906,41.649013 50.30927,47.364113 43.143194,55.665261 31.502066,67.346767 32.912607,68.052037 z"
-       inkscape:connector-curvature="0"
-       id="path1325"
-       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-    <path
-       d="m 60.418142,38.430691 c 0,0 9.898218,7.479096 16.221213,12.929953 6.817612,5.87725 11.754503,10.343961 14.340493,10.579051 2.585991,0.235091 4.231622,0.470181 3.996532,1.880721 -0.23509,1.41054 -1.645631,4.936891 -3.526351,4.936891 -1.880721,0 -11.519413,-9.638691 -19.042295,-15.986123 -3.557429,-3.001581 -13.870312,-13.635223 -12.929952,-14.575583 0.94036,-0.94036 0.70527,0.70527 0.94036,0.23509 z"
-       inkscape:connector-curvature="0"
-       id="path1327"
-       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-    <g
-       transform="translate(-0.47018,-1.41054)"
-       id="g2805">
-      <path
-         d="m 52.660171,64.055507 c 0.70527,1.64563 5.407071,1.41054 8.933422,0.70527 3.52635,-0.70527 6.582521,-1.88072 5.877251,-3.996531 -0.70527,-2.11581 -5.171981,-3.05617 -8.228152,-1.88072 -3.05617,1.17545 -6.347431,4.936891 -6.582521,5.171981 z"
-         inkscape:connector-curvature="0"
-         id="path2055"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 47.72328,72.283658 c 5.171981,-0.23509 7.287791,-1.64563 12.929952,-2.3509 5.642161,-0.70527 14.566423,-2.38754 15.280853,0.47018 1.41054,5.642161 -10.304797,7.93827 -11.989592,14.340493 -1.17545,4.466711 -1.58779,9.377748 -0.23509,10.343962 4.936891,3.52635 12.250413,-2.586871 15.280853,0.94036 3.017717,3.512422 -1.455298,4.278337 -7.522881,4.936887 -5.421037,0.58837 -11.519413,1.41054 -14.105403,-1.175446 -2.973683,-2.973678 -0.23509,-11.989592 1.41054,-15.045763 1.64563,-3.056171 7.993062,-9.168512 7.052701,-11.049232 -0.94036,-1.880721 -13.870313,0.70527 -15.045763,0.23509 -1.17545,-0.47018 -3.05617,-1.175451 -3.05617,-1.645631 z"
-         inkscape:connector-curvature="0"
-         id="path2057"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 60.888322,80.7469 c -8.933422,0 -15.280853,1.17545 -16.221213,3.761441 -0.94036,2.58599 0,4.466711 6.347431,7.287792 6.347432,2.82108 7.287792,4.46671 7.993062,3.05617 0.70527,-1.41054 -10.579052,-5.642161 -10.108872,-7.993062 0.47018,-2.3509 13.400133,-4.701801 13.400133,-4.701801 L 60.888322,80.7469 z"
-         inkscape:connector-curvature="0"
-         id="path2059"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/Mono/shogi_lance.svg b/themes/Mono/shogi_lance.svg
deleted file mode 100644 (file)
index 36c99ed..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="128"
-   height="128"
-   id="svg2">
-  <defs
-     id="defs4" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1">
-    <path
-       d="m 17.30536,116.56489 c 0,0 93.27856,1.21404 93.07622,0.40468 C 110.17924,116.16021 91.564,18.227835 91.564,18.227835 L 61.820077,8.1108558 32.076152,17.823157 17.30536,116.56489 z"
-       inkscape:connector-curvature="0"
-       id="path2800"
-       style="fill:#c3aa55;fill-opacity:1;fill-rule:evenodd;stroke:none" />
-    <g
-       transform="translate(0.664935,-5.153247)"
-       id="g11588">
-      <path
-         d="m 34.244156,105.05974 c 19.449351,-4.65454 15.792209,-6.316883 32.249352,-6.64935 16.457143,-0.332468 17.953246,0.664933 21.277922,1.163632 2.813982,0.422095 3.98961,2.327278 4.488311,-1.163632 0.475439,-3.328081 -2.161039,-3.158442 -10.971428,-3.657143 -8.81039,-0.498701 -24.27013,1.828571 -25.600001,1.994805 -1.32987,0.166234 -6.815585,0.831169 -11.968831,2.161039 -8.285943,2.138309 -10.315699,1.842549 -11.303896,3.158439 -1.002595,1.33507 1.496104,2.99221 1.828571,2.99221 z"
-         inkscape:connector-curvature="0"
-         id="path1372"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 57.018182,67.490909 c 0,0 3.989611,-2.493507 6.815585,0.997402 2.825974,3.490909 0.664935,4.987013 0.332467,17.454546 -0.332467,12.467532 -0.664935,27.428573 -2.825974,27.428573 -2.161039,0 -1.994805,-7.97922 -2.161039,-15.293508 -0.166234,-7.314286 2.327273,-25.766234 0.664935,-27.096104 -1.662337,-1.32987 -2.825974,-3.158442 -2.825974,-3.490909 z"
-         inkscape:connector-curvature="0"
-         id="path2100"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 42.223377,79.958441 c -1.496104,0.997403 0,4.155844 1.828571,7.979221 1.828572,3.823377 3.158442,6.483117 4.488312,5.984416 1.32987,-0.498702 0.664935,-4.488312 -0.997403,-7.314286 -1.662337,-2.825974 -5.153246,-6.649351 -5.31948,-6.649351 z"
-         inkscape:connector-curvature="0"
-         id="path2828"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 79.293507,78.794805 c -3.490909,-0.332468 -3.657143,1.994805 -4.820779,4.322078 -1.163637,2.327273 -1.32987,6.815584 -1.32987,6.815584 0,0 2.161039,-0.831169 4.488311,-3.158441 2.327273,-2.327273 4.654546,-3.989611 3.989611,-5.485715 -0.664935,-1.496104 -2.493507,-2.327272 -2.327273,-2.493506 z"
-         inkscape:connector-curvature="0"
-         id="path3556"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 44.051948,83.116883 c -1.163636,-1.163637 4.987013,-2.992208 13.797403,-4.322078 8.81039,-1.32987 21.776624,-1.662338 21.277922,-0.332468 -0.498701,1.32987 -9.807792,0.997403 -15.293506,1.496104 -5.485715,0.498702 -19.781819,3.158442 -19.781819,3.158442 z"
-         inkscape:connector-curvature="0"
-         id="path4284"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 45.335877,87.337958 c -1.115585,-0.836342 4.781079,-2.150592 13.227653,-3.10641 8.446575,-0.955819 20.877381,-1.194774 20.399273,-0.238955 -0.478108,0.955818 -9.40279,0.716864 -14.661977,1.075296 -5.259188,0.358432 -18.964949,2.270069 -18.964949,2.270069 z"
-         inkscape:connector-curvature="0"
-         id="path5012"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.83009124px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 48.110106,93.239257 c -0.842283,-0.836342 3.609785,-2.150592 9.987073,-3.10641 6.37729,-0.955819 15.762732,-1.194774 15.401753,-0.238955 -0.360978,0.955818 -7.099245,0.716864 -11.070009,1.075296 -3.970765,0.358432 -14.318817,2.270069 -14.318817,2.270069 z"
-         inkscape:connector-curvature="0"
-         id="path5014"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.72127944px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 51.200001,74.034554 c 3.657143,1.286265 3.158441,1.029012 9.974026,0.643132 6.815584,-0.385879 11.802597,0.38588 12.467532,-0.771758 0.664935,-1.157639 0.664935,-2.058025 -1.32987,-2.443904 -1.994805,-0.38588 -6.815584,-0.38588 -10.971429,0.514506 -4.155844,0.900385 -9.974026,1.929398 -10.140259,2.058024 z"
-         inkscape:connector-curvature="0"
-         id="path5016"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.87964135px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-    </g>
-    <g
-       transform="matrix(0.984405,0,0,1.171745,0.28553,-11.10902)"
-       id="g11608">
-      <path
-         d="m 61.672728,29.423376 c 1.662338,2.493507 1.496104,5.319481 1.662337,8.976624 0.166234,3.657143 -0.166233,7.812987 -0.166233,7.812987 l 1.994805,0 c 0,0 1.32987,-2.992208 0.831169,-8.477922 -0.498702,-5.485715 -4.155844,-8.477922 -4.322078,-8.311689 z"
-         inkscape:connector-curvature="0"
-         id="path5744"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 55.79679,47.088413 c 0.569095,-0.960924 6.117769,-1.494769 9.959159,-1.601539 3.841391,-0.106769 8.109602,-0.213539 8.109602,0.320308 0,0.533846 -2.560927,0.213539 -8.109602,0.640615 -5.548674,0.427077 -9.959159,0.854154 -9.959159,0.640616 z"
-         inkscape:connector-curvature="0"
-         id="path6472"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.74142319px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 54.998481,45.510444 c -1.117058,1.512245 0.303533,3.21293 1.127326,6.047868 0.823792,2.834938 1.09839,5.291885 1.922182,4.724897 0.823793,-0.566987 0.686494,-4.535901 -0.411896,-6.803852 -1.09839,-2.26795 -1.225235,-4.614088 -2.637612,-3.968913 z"
-         inkscape:connector-curvature="0"
-         id="path7200"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.96903676px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 73.803899,45.465787 c -2.413376,0 -2.413376,4.44426 -2.413376,7.08304 0,2.638779 -0.134076,3.749844 0.804459,3.888727 0.938535,0.138883 1.340764,-1.111065 1.742993,-4.166494 0.40223,-3.055429 0,-6.66639 -0.134076,-6.805273 z"
-         inkscape:connector-curvature="0"
-         id="path7928"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.82088387px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 57.386107,51.826729 c 0.491385,-0.640193 5.282396,-0.995854 8.599249,-1.066987 3.316853,-0.07113 7.002246,-0.142266 7.002246,0.213397 0,0.355662 -2.211236,0.142265 -7.002246,0.426795 -4.79101,0.284529 -8.599249,0.569059 -8.599249,0.426795 z"
-         inkscape:connector-curvature="0"
-         id="path8658"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.56233603px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 57.911324,56.35738 c 0.501178,-0.918562 5.013631,-1.05584 8.126511,-0.888554 3.11288,0.167288 6.571132,0.365004 6.548531,0.897856 -0.0226,0.532851 -2.081279,0.03057 -6.589212,0.06128 -4.507932,0.03071 -8.094871,0.142561 -8.08583,-0.07058 z"
-         inkscape:connector-curvature="0"
-         id="path8660"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.66756338px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 44.265126,40.409057 c 3.976961,2.024358 7.533866,1.214917 13.153511,-0.351133 5.619644,-1.566051 7.672685,-2.550211 13.037137,-3.081722 5.364451,-0.531514 10.464012,-0.256038 11.032586,-0.959819 0.568573,-0.703779 0.664651,-1.960582 -1.138046,-2.124735 -1.802698,-0.164153 -9.996367,0.695287 -17.543881,2.67134 -7.547515,1.976055 -18.247324,3.721728 -18.541307,3.846069 z"
-         inkscape:connector-curvature="0"
-         id="path8664"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.78492796px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 53.361041,29.89067 c 5.31948,1.188297 5.485714,1.03976 10.140259,-0.297071 4.654546,-1.336833 8.357658,-2.274371 7.48052,-3.861958 -1.662338,-3.008767 -0.997402,0.173888 -6.316883,2.104868 -5.319481,1.930978 -11.636364,2.054161 -11.303896,2.054161 z"
-         inkscape:connector-curvature="0"
-         id="path9392"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.9452734px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 52.400796,41.249964 c 2.318257,2.555444 5.59109,2.439288 2.045521,5.227045 -3.54557,2.787757 -10.50034,5.343201 -11.045812,5.227044 -0.545472,-0.116156 -4.363778,-0.232313 -3.136466,-0.929252 1.227313,-0.696939 3.298755,-0.464626 7.526164,-2.903913 4.22741,-2.439289 5.428801,-3.717011 5.292433,-4.646263 -0.136368,-0.929252 -0.545472,-1.974661 -0.68184,-1.974661 z"
-         inkscape:connector-curvature="0"
-         id="path10120"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.75710988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 67.832135,35.918097 c 3.819888,5.415433 5.888968,9.049895 7.570045,11.189775 1.681076,2.139879 3.270435,4.924861 4.000154,4.170206 0.493168,-0.51002 0.635232,-1.014098 0.165197,-3.048092 -0.546539,-2.36505 -1.891311,-3.280073 -3.711358,-5.363291 -3.053492,-3.495013 -7.710971,-6.655421 -8.024038,-6.948598 z"
-         inkscape:connector-curvature="0"
-         id="path10848"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.89498514px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/Mono/shogi_lance_promoted.svg b/themes/Mono/shogi_lance_promoted.svg
deleted file mode 100644 (file)
index 1edcf8b..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="128"
-   height="128"
-   id="svg2">
-  <defs
-     id="defs4" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1">
-    <path
-       d="m 17.30536,116.56489 c 0,0 93.27856,1.21404 93.07622,0.40468 C 110.17924,116.16021 91.564,18.227835 91.564,18.227835 L 61.820077,8.1108558 32.076152,17.823157 17.30536,116.56489 z"
-       inkscape:connector-curvature="0"
-       id="path2800"
-       style="fill:#c3aa55;fill-opacity:1;fill-rule:evenodd;stroke:none" />
-    <g
-       transform="matrix(1.076601,0,0,1.054549,-5.711809,-3.410499)"
-       id="g5704">
-      <path
-         d="m 63.564282,38.775066 c 0.812661,1.336046 1.02491,2.648179 -0.208587,5.298516 -2.051674,4.408308 -3.758519,7.380958 -3.127264,8.88239 0.631256,1.501431 11.783435,2.252146 12.625108,0.500477 0.841674,-1.75167 0.916955,-4.234464 -0.766393,-4.234464 -1.683347,0 -8.2816,1.982317 -8.2816,1.982317 0,0 5.133531,-9.12804 5.681297,-11.010497 0.50971,-1.751669 -1.098358,-3.775331 -2.781706,-3.024616 -1.683348,0.750716 -3.351274,1.35564 -3.140855,1.605877 z"
-         inkscape:connector-curvature="0"
-         id="path2052"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.69019181px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 67.38266,52.205256 c -2.104185,0.250238 -3.156277,6.75644 -3.156277,10.760257 0,4.003817 2.104184,11.260736 0,11.010496 -2.104186,-0.250237 -8.416739,1.501432 -8.416739,0.25024 0,-1.251194 3.317352,-4.018966 2.054841,-7.272067 -1.262511,-3.253101 -5.470881,-2.252147 -5.470881,-2.252147 0,0 0.631256,-0.250239 1.683349,1.75167 1.052091,2.001908 -2.836656,8.020622 -1.15331,10.272768 1.683349,2.252148 12.592432,2.295655 15.117455,0.543985 2.525021,-1.75167 0.154221,-5.838181 -0.897871,-10.842951 -1.052092,-5.004772 -1.654334,-7.465811 0.239433,-9.968195 1.893765,-2.502386 -0.210419,-3.75358 0,-4.254056 z"
-         inkscape:connector-curvature="0"
-         id="path2780"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.69019181px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 71.821308,74.478648 c 0.05213,5.438041 -13.697061,1.749509 -16.011664,5.503087 -2.314604,3.753578 -1.840447,9.981584 1.382226,13.264804 2.046158,2.0846 8.090266,4.586984 13.258196,2.791809 3.87532,-1.346164 3.938091,-5.00693 0.150559,-6.258122 -3.787531,-1.251193 -9.651392,2.266454 -12.41469,-1.497112 -2.449185,-3.335748 2.072444,-8.704055 1.891936,-10.050889 -0.569567,-4.249736 11.47316,-7.252598 11.743437,-3.753577 z"
-         inkscape:connector-curvature="0"
-         id="path3508"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.69019181px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 52.753473,60.121999 c 3.787532,3.753577 11.318688,1.26155 16.158312,0.761072 4.839624,-0.500476 5.625103,-1.420897 6.677194,0.330773 1.052093,1.751669 0.210419,4.003817 -2.314603,5.255008 -2.525021,1.251194 -5.681298,1.501433 -3.787533,2.252148 1.893768,0.750716 6.462657,1.520002 9.889669,-1.000954 3.732364,-2.745577 6.492128,-8.677816 0.781815,-10.13574 -4.504776,-1.150135 -10.250646,0.876913 -13.82776,1.37739 -3.577114,0.500478 -13.366676,1.41054 -13.577094,1.160303 z"
-         inkscape:connector-curvature="0"
-         id="path4236"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.69019181px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 49.421479,56.424756 c -2.752923,4.836751 -10.185816,10.210917 -7.708184,12.091877 2.477629,1.880959 4.485384,0.44862 6.963016,-2.775881 2.477632,-3.224499 1.571046,-9.584705 0.745168,-9.315996 z"
-         inkscape:connector-curvature="0"
-         id="path4964"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.81806618px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/Mono/shogi_pawn.svg b/themes/Mono/shogi_pawn.svg
deleted file mode 100644 (file)
index 0c4a96e..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="128"
-   height="128"
-   id="svg2">
-  <defs
-     id="defs4" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1">
-    <g
-       id="g1336">
-      <path
-         d="m 17.30536,116.56489 c 0,0 93.27856,1.21404 93.07622,0.40468 C 110.17924,116.16021 91.564,18.227835 91.564,18.227835 L 61.820077,8.1108558 32.076152,17.823157 17.30536,116.56489 z"
-         inkscape:connector-curvature="0"
-         id="path2800"
-         style="fill:#c3aa55;fill-opacity:1;fill-rule:evenodd;stroke:none" />
-      <path
-         d="m 41.004599,110.64878 c 0,0 9.431446,-3.59405 14.339648,-9.80195 1.184443,-1.495419 -0.192478,-4.574249 -0.192478,-4.574249 3.657092,1.198017 4.330766,2.613855 5.19692,4.356429 0,0 -0.428263,2.95652 -7.69914,6.97027 -3.94581,2.17822 -11.64495,3.0495 -11.64495,3.0495 z"
-         inkscape:connector-curvature="0"
-         id="path1332"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.20270023px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 36.074363,96.072028 c 0.735315,1.922581 1.058632,4.029692 2.213504,4.247512 4.755028,0.89685 12.515654,-3.361254 16.168194,-4.792065 2.50222,-0.980194 15.551369,-4.481657 20.306484,-3.485139 2.59846,0.544554 6.859006,3.834823 7.987856,2.940586 0.962392,-0.762373 0.288718,-3.70296 0.288718,-3.70296 0,0 -1.636068,-1.524751 -3.94581,-2.069304 -6.503657,-1.533324 -11.506099,-0.413075 -17.665411,1.220583 -6.19304,1.402663 -15.328735,6.930641 -25.353535,5.640787 z"
-         inkscape:connector-curvature="0"
-         id="path2060"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.20270023px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 53.493669,74.072087 0,14.811841 1.443588,4.900977 1.539828,-0.762373 0.384958,-19.60391 -3.368374,0.653465 z"
-         inkscape:connector-curvature="0"
-         id="path2790"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.20270023px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 64.079987,83.111665 c 0.288718,-0.762374 0.866154,-2.0693 1.539828,-2.0693 0.775907,0 2.828235,1.753502 2.983416,3.158407 0.09624,0.871285 -2.50222,6.316815 -2.887178,6.752458 l -2.309742,0.871285 c -0.769914,-0.762373 0.06121,-7.09561 0.673676,-8.71285 z"
-         inkscape:connector-curvature="0"
-         id="path2792"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.20270023px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 56.380847,80.314528 c 1.05863,0.217821 16.168194,-1.306928 16.841868,-1.960392 0.42607,-0.413287 -0.09624,-3.049496 -0.577434,-3.70296 -0.803307,-1.090891 -15.975716,3.049498 -16.360674,3.59405 l 0.09624,2.069302 z"
-         inkscape:connector-curvature="0"
-         id="path2794"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.20270023px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 52.520259,74.490459 c 1.114286,0.360284 10.971276,-1.089106 11.64495,-1.74257 0.326781,-0.316977 1.25111,-1.198015 1.25111,-1.851479 0,-0.762373 -5.002717,-7.21874 -5.293158,-6.643549 -0.384958,0.762374 1.338326,4.17605 1.058632,5.336621 -0.288718,1.198017 -2.213504,1.524747 -2.983418,1.633658 -0.880429,0.124545 -6.377098,-0.622944 -6.736748,0.326732 -0.288718,0.762373 0.384958,2.722766 1.058632,2.940587 z"
-         inkscape:connector-curvature="0"
-         id="path2796"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.20270023px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 64.209275,95.21134 c -0.183113,0.708405 12.9923,14.48511 14.33965,14.59402 1.167825,0.0944 2.598458,-1.08911 3.079656,-2.50494 0.449121,-1.32147 -3.661591,-6.45613 -10.586318,-10.237601 -2.887178,-0.871285 -6.675439,-2.460991 -6.832988,-1.851479 z"
-         inkscape:connector-curvature="0"
-         id="path2798"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.20270023px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <g
-         transform="matrix(1.093122,0,0,1.080064,-6.632551,-1.360261)"
-         id="g5800">
-        <path
-           d="m 59.540188,19.282989 c 0.557326,0.836671 1.800548,0.603288 2.507963,2.196263 1.300426,2.92835 0.851694,22.834653 1.393319,24.054301 0.278666,0.627504 2.04352,2.405431 2.693737,1.987095 0.798385,-0.513666 -1.001853,-9.516262 -1.02176,-14.223414 0.252481,-4.673488 0.80382,-8.931752 0.435126,-11.549916 -0.320996,-1.802563 -1.133864,-3.471533 -2.38577,-3.82392 -1.857753,-0.522919 -3.025153,-0.786322 -3.529731,-0.104584 -0.464443,0.627504 -0.606715,0.692802 -0.09288,1.464175 z"
-           inkscape:connector-curvature="0"
-           id="path1407"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.83850801px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 45.709987,36.139716 c 1.564724,-0.207534 3.765876,-0.590323 5.050292,-0.855387 3.040698,-0.627503 14.496671,-4.219871 17.375398,-4.497108 2.171928,-0.209168 9.19185,-1.096546 12.075904,-0.104584 0.608143,0.209168 0.951084,1.072808 0.498861,1.888012 -3.689003,-0.124597 -8.322609,-0.283877 -12.770922,0.624752 -1.650666,0.418336 -9.507991,2.016816 -10.81115,2.435152 -1.021216,0.327829 -6.073037,2.053826 -7.711486,2.316811 -1.303159,0.209168 -2.667707,0.766768 -4.152261,0.766768 -0.955652,0 -1.541385,-0.292286 -1.888893,-1.128957 -0.269089,-0.730988 1.015547,-1.002905 2.334257,-1.445459 z"
-           inkscape:connector-curvature="0"
-           id="path2137"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.81092495px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 69.477311,26.07671 c -0.378747,-0.833012 1.978661,-1.218516 3.08671,-1.218516 1.691959,0 3.797057,-0.24219 3.957316,0.580245 0.07915,0.406172 -2.37439,0.928394 -3.245003,1.044443 -1.084595,0.144573 -3.482438,0.290123 -3.799023,-0.406172 z"
-           inkscape:connector-curvature="0"
-           id="path2865"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.57652354px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 52.677293,27.778599 c 0.351419,0.842981 1.643001,0.598223 2.558638,1.141559 0.505843,0.574595 0.29451,2.074661 0.54566,3.930348 0.392415,0.15524 0.615711,0.516702 1.220206,0.261109 0.257521,-2.176467 -0.116378,-3.879297 -0.411567,-5.022537 -0.623652,-0.844399 -1.117661,-0.963572 -2.361074,-1.474773 -1.068882,0.291644 -1.532929,0.380877 -1.551863,1.164294 z"
-           inkscape:connector-curvature="0"
-           id="path3593"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.60614818px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 53.4625,40.627263 c -0.292678,0.948697 -0.469869,2.893781 -0.469869,3.883759 0,0.340563 0.469869,0.380759 0.75179,0.533064 0.410978,0.22202 0.986734,-2.132261 1.268656,-2.665325 0.497789,-0.941225 1.043454,-4.066252 0.798786,-5.254497 -0.281921,-0.228457 -0.986734,0.07615 -1.268655,0.380761 -0.66578,0.719349 -0.798787,2.20841 -1.080708,3.122238 z"
-           inkscape:connector-curvature="0"
-           id="path4321"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.71968359px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 57.179577,41.769006 c 1.390052,-0.604191 3.340601,-1.73609 4.938278,-2.525221 1.764096,-0.871331 6.100226,-1.420438 7.697903,-1.499353 1.126228,-0.05563 2.759623,-0.157825 4.284674,0.473481 1.601653,0.663014 1.888166,1.420437 1.960791,2.209569 -0.61418,1.76979 -2.881439,3.449392 -4.284685,5.050446 -1.452427,1.657177 -4.166434,3.630007 -8.305878,6.470882 -2.308596,1.583066 -5.560601,3.075294 -8.034009,4.419139 -1.307187,0.710219 -1.607987,1.062187 -4.489046,1.274317 -0.757706,0.02102 0.649335,-0.653696 1.371914,-1.023126 0.817922,-0.353155 0.75086,-0.342091 2.481525,-1.157745 1.943004,-0.915724 3.059125,-1.490856 4.874665,-2.59564 2.945249,-2.00509 3.875954,-2.801083 5.328382,-3.748041 3.527327,-2.796425 4.711336,-4.164236 5.6105,-6.717403 0.290489,-0.710219 0.180503,-1.736542 -0.363113,-1.972829 -0.363105,-0.157826 -1.008565,-0.297135 -1.815533,-0.394566 -0.653602,-0.07891 -1.52506,-0.07891 -3.267986,0.394566 -2.323894,0.631305 -5.665178,1.464693 -7.552653,2.604136 -1.307188,0.789133 -2.228283,1.981915 -3.050113,1.657177 -0.798842,-0.315654 -1.089322,-0.631305 -0.871459,-1.183697 0.226645,-0.390533 2.39652,-1.262612 3.485843,-1.736092 z"
-           inkscape:connector-curvature="0"
-           id="path5049"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.91079122px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      </g>
-    </g>
-  </g>
-</svg>
diff --git a/themes/Mono/shogi_pawn_promoted.svg b/themes/Mono/shogi_pawn_promoted.svg
deleted file mode 100644 (file)
index 4e33971..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="128"
-   height="128"
-   id="svg2">
-  <defs
-     id="defs4" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1">
-    <g
-       id="g1336">
-      <path
-         d="m 17.30536,116.56489 c 0,0 93.27856,1.21404 93.07622,0.40468 C 110.17924,116.16021 91.564,18.227835 91.564,18.227835 L 61.820077,8.1108558 32.076152,17.823157 17.30536,116.56489 z"
-         inkscape:connector-curvature="0"
-         id="path2800"
-         style="fill:#c3aa55;fill-opacity:1;fill-rule:evenodd;stroke:none" />
-      <g
-         transform="matrix(1,0,0,0.97428,-1.64563,0.3353)"
-         id="g2784"
-         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1">
-        <path
-           d="M 77.774679,77.390543 C 75.804231,70.491381 70.154015,68.806674 59.340426,71.479021 49.133929,74.001338 41.90484,90.537953 49.695053,96.498909 c 7.790214,5.960961 14.937369,6.922681 21.910144,5.272301 7.831802,-1.853697 13.873898,-8.943316 8.618187,-11.411223 -2.6917,-1.263933 -3.510209,4.429776 -9.554919,5.366507 -6.044711,0.936731 -15.673495,1.578568 -17.49025,-3.890895 -1.816754,-5.469466 3.128947,-13.852082 8.913081,-14.995296 5.784136,-1.143214 14.911543,2.059599 15.683383,0.55024 z"
-           inkscape:connector-curvature="0"
-           id="path1321"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 61.828683,75.574919 c -1.41054,-0.699064 -1.17545,-32.411396 -1.17545,-32.411396 0,0 -3.761441,-1.880721 -3.996531,-3.761441 -0.23509,-1.880721 3.291261,-6.817612 6.817611,-6.347431 3.526351,0.47018 7.522882,4.225414 7.052702,5.635955 -0.470181,1.41054 -2.585991,5.190599 -3.291261,5.425689 l -1.41054,30.753354 -3.996531,0.70527 z"
-           inkscape:connector-curvature="0"
-           id="path2050"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      </g>
-    </g>
-  </g>
-</svg>
diff --git a/themes/Mono/shogi_rook.svg b/themes/Mono/shogi_rook.svg
deleted file mode 100644 (file)
index ae8afc9..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="128"
-   height="128"
-   id="svg2">
-  <defs
-     id="defs4" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1">
-    <g
-       id="g10964">
-      <path
-         d="m 9.8046247,116.56489 c 0,0 107.1261753,1.21404 106.8937853,0.40468 C 116.46604,116.16021 95.087283,18.227835 95.087283,18.227835 L 60.927745,8.1108558 26.768205,17.823157 9.8046247,116.56489 z"
-         inkscape:connector-curvature="0"
-         id="path2800"
-         style="fill:#c3aa55;fill-opacity:1;fill-rule:evenodd;stroke:none" />
-      <path
-         d="m 32.079324,101.8128 c 21.227606,-4.006868 16.811408,-4.746786 34.662887,-4.532908 17.851479,0.213876 18.770326,0.181473 22.359372,0.790279 3.037742,0.51529 4.25395,2.458599 4.901416,-1.014126 0.617263,-3.310744 -1.662298,-3.093211 -11.198444,-3.884083 -9.536147,-0.790871 -26.367373,1.022225 -27.814182,1.144245 -1.446809,0.12202 -7.414258,0.60458 -13.041622,1.762799 -9.04828,1.862309 -10.648657,1.399817 -11.760233,2.682294 -1.127773,1.30117 1.530377,3.04046 1.890806,3.0515 z"
-         inkscape:connector-curvature="0"
-         id="path1372"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.04144847px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 53.284363,63.945574 c 0,0 5.343177,-2.493507 9.127927,0.997402 3.78475,3.490909 0.89053,4.987013 0.445265,17.454546 -0.445265,12.467532 -0.890531,27.428578 -3.78475,27.428578 -2.89422,0 -2.671588,-7.97922 -2.89422,-15.293513 -0.222634,-7.314286 3.116852,-25.766234 0.890528,-27.096104 -2.226322,-1.32987 -3.78475,-3.158442 -3.78475,-3.490909 z"
-         inkscape:connector-curvature="0"
-         id="path2100"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.15726948px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <g
-         transform="matrix(0.901386,0.03688791,-0.04212903,1.15275,9.903787,-13.48342)"
-         id="g1333">
-        <path
-           d="m 42.716733,77.813066 c -1.927904,0.346837 -2.607217,1.95562 -1.669423,4.795257 1.195249,3.619209 1.88161,6.117421 4.360238,6.898047 2.259539,0.711625 3.240424,-2.627063 1.96525,-5.466977 -1.275175,-2.839917 -1.335047,-5.214889 -4.656065,-6.226327 z"
-           inkscape:connector-curvature="0"
-           id="path2828"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.18664074px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 78.2541,74.77929 c -4.256472,-0.802648 -3.966592,1.994805 -5.228689,4.322078 -1.262098,2.327273 -1.912577,7.050674 -1.912577,7.050674 0,0 3.701813,1.130479 5.573359,-1.747901 1.818926,-2.797453 2.579946,-3.989611 3.034197,-6.190985 0.335645,-1.62659 1.527125,-2.797452 -1.46629,-3.433866 z"
-           inkscape:connector-curvature="0"
-           id="path3556"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.04144847px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 41.441117,79.571548 c -1.262097,-1.163637 5.408989,-2.992208 14.96487,-4.322078 9.555881,-1.32987 22.561348,-1.662338 22.020448,-0.332468 -0.540898,1.32987 -9.579773,0.997403 -15.529661,1.496104 -5.949889,0.498702 -21.455657,3.158442 -21.455657,3.158442 z"
-           inkscape:connector-curvature="0"
-           id="path4284"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.04144847px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 42.833685,84.371355 c -1.20998,-1.081177 5.068085,-3.602981 14.229366,-4.838609 9.161282,-1.23563 19.11757,-0.956812 18.599007,0.278817 -0.518564,1.235628 -6.554512,1.161812 -12.258705,1.625173 -5.704194,0.463361 -20.569668,2.934619 -20.569668,2.934619 z"
-           inkscape:connector-curvature="0"
-           id="path5012"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.98292404px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 45.842656,89.693922 c -0.913553,-0.836342 3.680137,-4.266402 10.597039,-5.22222 6.916904,-0.955819 17.801765,-1.194774 16.940062,1.876855 -0.278995,0.994505 -7.699947,0.716864 -12.006698,1.075296 -4.306751,0.358432 -15.530403,2.270069 -15.530403,2.270069 z"
-           inkscape:connector-curvature="0"
-           id="path5014"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.7511754px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      </g>
-      <path
-         d="m 48.319541,71.373185 c 4.028642,1.076278 3.474985,0.847773 10.836823,0.07439 7.361838,-0.773382 12.803881,-0.286615 13.463319,-1.480514 0.659437,-1.1939 0.612174,-2.093045 -1.568694,-2.364821 -2.180868,-0.271777 -7.402349,0.0027 -11.856364,1.138438 -4.454014,1.135751 -10.701786,2.494594 -10.875084,2.632507 z"
-         inkscape:connector-curvature="0"
-         id="path5016"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.91610116px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <g
-         transform="matrix(1.070988,0,0,1.071093,-4.35961,-2.330676)"
-         id="g10952">
-        <path
-           d="m 59.012988,30.420778 c 1.828571,4.987013 1.163636,4.82078 1.32987,9.807793 0.166234,4.987013 0.664935,9.475324 -0.332468,10.14026 -0.997402,0.664935 -4.820779,-1.828572 -4.820779,-1.662339 0,0.166234 2.65974,5.153247 5.153247,4.82078 2.493506,-0.332468 2.161039,-7.646754 1.994805,-10.971428 C 61.672728,33.246752 62.17143,32.748051 61.506495,31.085713 59.95837,30.508981 59.179221,30.254544 59.012988,30.420778 z"
-           inkscape:connector-curvature="0"
-           id="path1481"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 38.732468,48.041558 c 7.314286,0.166234 9.641558,-2.493507 14.961039,-4.987013 5.31948,-2.493507 15.127273,-4.820779 15.625974,-6.150649 0.498701,-1.32987 0.872856,-1.022312 -0.664935,-1.32987 -1.662338,-0.332468 -7.979221,2.659739 -14.961039,5.31948 -5.281676,2.012068 -14.628572,7.148052 -14.961039,7.148052 z"
-           inkscape:connector-curvature="0"
-           id="path2214"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 40.062338,38.067532 c 2.992208,0.997402 5.984415,0.498701 8.810389,-0.664936 2.825975,-1.163636 5.818182,-1.163636 5.319481,-2.825973 -0.498701,-1.662338 -0.664935,-1.496104 -4.654545,0.166233 -3.989611,1.662338 -9.309091,2.493507 -9.475325,3.324676 z"
-           inkscape:connector-curvature="0"
-           id="path3668"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 52.197403,35.740259 c -0.166234,6.981819 -0.357966,9.248083 -2.825974,12.467533 -2.504004,3.266404 -9.641559,6.815584 -9.309091,7.148052 0.332467,0.332467 3.252165,-0.633029 5.818182,-1.828572 1.815988,-0.846094 4.654546,-1.828571 6.981818,-6.150649 2.129366,-3.954539 0.997403,-11.636364 0.997403,-11.636364"
-           inkscape:connector-curvature="0"
-           id="path4396"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 67.335128,37.735064 c -0.675326,6.981818 -0.520281,11.546869 4.384291,13.498038 3.078446,1.224687 6.252118,2.342726 8.793701,2.167216 1.805465,-0.124677 3.935006,-0.466147 3.847743,-1.215566 -0.480098,-4.123093 -2.5529,-6.906196 -2.5529,-6.906196 0,0 -0.320257,4.953247 -0.320257,4.953247 0,0 -0.820231,0.767424 -3.085392,0.658757 -2.886161,-0.138459 -6.544999,-0.904443 -7.697051,-2.869151 -1.346021,-1.861817 -2.86364,-6.546085 -1.681819,-11.117514 l -1.688316,0.831169 z"
-           inkscape:connector-curvature="0"
-           id="path5130"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00778329px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 66.161039,24.103895 c -0.332468,4.571428 -1.496104,6.732467 0.664935,8.893506 2.161039,2.161039 3.720041,2.957209 6.321692,3.602272 1.562202,0.387339 3.292046,0.747094 4.206332,0.747094 0.914285,0 3.653519,-0.632493 4.069103,-1.214311 0.415585,-0.581819 -2.44003,-5.144194 -2.44003,-5.144194 -0.253636,0.966743 -0.256463,2.635393 -1.408878,3.842567 0,0 -2.077627,0.355041 -4.148931,-0.221106 -2.283638,-0.635208 -4.527979,-1.782277 -5.601886,-3.607127 -1.066476,-1.812223 -0.08312,-4.072727 -0.166233,-5.07013 -0.08312,-0.997402 0.581818,-3.740259 -0.415585,-3.657142 -0.997403,0.08312 -1.163636,1.828571 -1.080519,1.828571 z"
-           inkscape:connector-curvature="0"
-           id="path5860"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 50.036364,25.766233 c 0.674306,0.72535 6.625126,-0.329545 9.225974,-1.32987 2.161039,-0.831168 5.735065,-2.244157 8.561039,-2.244156 0.587726,0 1.501378,-1.457182 0.498702,-1.994805 -0.982771,-0.52695 -1.365868,0.626009 -4.654546,1.662337 -7.147427,2.252296 -12.633766,3.657144 -13.631169,3.906494 z"
-           inkscape:connector-curvature="0"
-           id="path6588"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 73.175912,21.710421 c -1.246752,0.415584 -2.077921,1.08052 -1.745454,1.911688 0.332468,0.831169 -0.249351,1.412987 -0.249351,1.412987 -1.911688,2.41039 -3.440847,6.050617 -3.440847,6.050617 1.745455,-1.246753 4.022665,-3.806461 4.770717,-4.138928 0.748052,-0.332468 2.433447,-1.6696 2.493507,-3.158442 0.07067,-1.751928 -0.581818,-2.244156 -1.828572,-2.077922 z"
-           inkscape:connector-curvature="0"
-           id="path8042"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 73.375747,40.412783 c -2.238669,0.793153 -4.69871,2.655271 -4.69871,2.655271 1.779785,0.215019 3.537376,-0.490137 6.406786,-1.829722 2.519788,-1.176364 2.569296,-1.302497 2.041373,-2.483799 -0.678855,-1.519032 -2.511111,0.953712 -3.749449,1.65825 z"
-           inkscape:connector-curvature="0"
-           id="path8770"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.03748047px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 69.262094,43.060297 c 8.078803,2.640887 9.246247,4.340776 8.299381,5.305573 -0.81142,0.826785 -3.014892,-1.020097 -4.093164,-1.72735 -1.025305,-0.67251 -2.785916,-2.09222 -4.206217,-3.578223 z"
-           inkscape:connector-curvature="0"
-           id="path9498"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.15234041px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      </g>
-    </g>
-  </g>
-</svg>
diff --git a/themes/Mono/shogi_rook_promoted.svg b/themes/Mono/shogi_rook_promoted.svg
deleted file mode 100644 (file)
index d800001..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="128"
-   height="128"
-   id="svg2">
-  <defs
-     id="defs4" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1">
-    <g
-       id="g10964">
-      <path
-         d="m 9.8046247,116.56489 c 0,0 107.1261753,1.21404 106.8937853,0.40468 C 116.46604,116.16021 95.087283,18.227835 95.087283,18.227835 L 60.927745,8.1108558 26.768205,17.823157 9.8046247,116.56489 z"
-         inkscape:connector-curvature="0"
-         id="path2800"
-         style="fill:#c3aa55;fill-opacity:1;fill-rule:evenodd;stroke:none" />
-      <g
-         transform="matrix(0.786183,0,0,0.935199,12.88314,7.493534)"
-         id="g2075">
-        <path
-           d="m 39.166741,71.47843 c 3.996531,3.056171 8.724585,4.521408 10.480209,4.170283 3.526351,-0.705271 9.661826,-4.42632 10.301012,-1.484334 2.139032,9.845342 -6.224724,21.750992 -3.291261,24.449366 3.915045,3.601295 12.792127,-25.934871 9.541698,-30.649616 -2.494449,-3.618197 -5.846652,-0.487706 -14.008408,1.301575 -6.358278,1.393909 -12.31798,1.507456 -13.02325,2.212726 z"
-           inkscape:connector-curvature="0"
-           id="path1327"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 31.737156,99.955197 c -2.3509,1.410533 -4.231621,2.890163 -1.41054,4.065613 2.821081,1.17546 4.701801,-0.47018 12.224682,-2.3509 7.522882,-1.880716 26.094996,-3.761436 32.912607,-2.821076 6.817611,0.94036 14.105403,5.407066 17.631753,3.761436 3.526351,-1.64563 3.526351,-0.53927 1.645631,-2.890164 -1.88072,-2.3509 -27.505536,-4.23162 -35.498597,-3.29126 -7.993062,0.94036 -27.035356,3.291261 -27.505536,3.526351 z"
-           inkscape:connector-curvature="0"
-           id="path1329"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 54.070711,94.147034 c -1.645631,1.41054 -9.86169,-3.144999 -10.814142,-5.407072 -1.880721,-4.46671 8.534584,-6.652334 14.810673,-7.923974 7.90009,-1.60069 15.104355,-4.847783 17.866843,-1.244538 5.407071,7.052702 -13.400133,17.396663 -14.575583,16.456303 -1.17545,-0.94036 12.459773,-10.177957 9.873782,-13.497048 -0.986361,-1.265984 -23.601073,2.19556 -24.449365,5.033807 -0.664346,2.222791 7.287792,6.817612 7.287792,6.582522 z"
-           inkscape:connector-curvature="0"
-           id="path1331"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      </g>
-      <g
-         transform="matrix(1.036664,-0.02174942,0.02123065,1.061995,-3.652085,-1.466228)"
-         id="g2872">
-        <path
-           d="m 57.329292,63.223532 c -2.539098,1.382136 -7.226662,-1.796779 -6.836032,-4.561051 0.39063,-2.764272 7.349779,-9.878475 14.258006,-14.927071 8.849053,-6.466968 18.326663,-12.162503 20.088365,-10.408627 2.381148,2.370571 -11.656746,7.038401 -19.111788,12.896473 -7.094372,5.574662 -13.867377,10.612239 -13.281431,11.994375 0.585945,1.382137 3.515673,3.485551 4.687564,2.656269 1.17189,-0.829282 2.734412,0.967495 0.195316,2.349632 z"
-           inkscape:connector-curvature="0"
-           id="path1333"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.98838049px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 64.919748,23.883161 c 3.906304,6.634255 -0.66402,18.561928 1.00341,19.299394 3.125042,1.382136 4.369371,-6.280409 4.877279,-13.879102 0.319501,-4.779971 -3.463529,-4.991115 -5.880689,-5.420292 z"
-           inkscape:connector-curvature="0"
-           id="path1335"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.98838049px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 82.184769,51.834476 c 2.775351,4.800102 3.906303,9.951379 3.125043,11.333516 -1.151062,2.036357 -18.228403,4.265261 -19.191339,-3.676229 -0.944823,-7.792108 1.1085,-17.459774 2.343782,-16.585634 4.296934,3.040699 -1.01709,7.072011 0.195315,14.927071 0.545808,3.536233 4.77307,3.84874 7.110896,4.085076 2.734412,0.276428 6.022113,-0.767949 6.022113,-0.767949 0,0 0.39419,-9.315851 0.39419,-9.315851 z"
-           inkscape:connector-curvature="0"
-           id="path1337"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.98838049px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 41.313447,48.434674 c 3.710989,3.593554 13.897616,-4.964442 13.476746,-3.317126 -0.976575,3.822394 -21.223953,16.48331 -19.18422,21.202222 1.131066,2.616715 19.281878,-17.194027 24.067099,-23.137213 1.46804,-1.823286 1.36293,-5.067102 -1.464863,-1.934991 -2.246124,2.487846 -16.699447,5.804972 -16.894762,7.187108 z"
-           inkscape:connector-curvature="0"
-           id="path1339"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.98838049px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 41.155208,34.323647 c 0,2.362292 4.333176,1.181145 7.503794,0.843675 3.170616,-0.33747 9.809135,0.146634 9.51185,-2.362291 -0.238685,-2.014381 -4.861612,-0.337473 -9.617538,0.168733 -2.119583,0.225602 -7.609481,1.349883 -7.398106,1.349883 z"
-           inkscape:connector-curvature="0"
-           id="path1341"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.13608241px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 46.853667,23.668745 c 2.039596,4.095066 3.625948,8.190131 5.665544,5.985096 2.039595,-2.205035 -4.985678,-5.985096 -5.665544,-5.985096 z"
-           inkscape:connector-curvature="0"
-           id="path1343"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.13651538px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 49.320171,37.394832 c -2.733268,1.713091 -7.223636,4.853759 -5.271302,6.281334 1.952334,1.427578 5.661769,-5.710304 5.271302,-6.281334 z"
-           inkscape:connector-curvature="0"
-           id="path1345"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00428617px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 50.220272,44.185972 c 2.717583,-7.394796 5.205879,-8.592958 5.839496,-5.932734 0.607071,2.54877 -5.561424,5.650222 -5.839496,5.932734 z"
-           inkscape:connector-curvature="0"
-           id="path1347"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.1946274px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 57.225657,46.835561 c 1.493468,2.211418 3.399228,14.600339 0.860131,15.982476 -2.539097,1.382136 -2.05081,-1.10571 -0.878919,-1.934991 1.171891,-0.829282 0.01879,-13.494631 0.01879,-14.047485 z"
-           inkscape:connector-curvature="0"
-           id="path2080"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.98838049px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 73.675557,45.933437 c 4.034884,-1.804039 9.571992,-5.350448 9.905029,-2.391955 0.333038,2.958493 -3.749556,3.468803 -5.745674,3.220746 -1.996118,-0.24806 -4.427628,-0.673929 -4.159355,-0.828791 z"
-           inkscape:connector-curvature="0"
-           id="path2122"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.92177331px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      </g>
-    </g>
-  </g>
-</svg>
diff --git a/themes/Mono/shogi_silver.svg b/themes/Mono/shogi_silver.svg
deleted file mode 100644 (file)
index 6103a6c..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="128"
-   height="128"
-   id="svg2">
-  <defs
-     id="defs4" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1">
-    <g
-       id="g10964">
-      <path
-         d="m 9.8046247,116.56489 c 0,0 107.1261753,1.21404 106.8937853,0.40468 C 116.46604,116.16021 95.087283,18.227835 95.087283,18.227835 L 60.927745,8.1108558 26.768205,17.823157 9.8046247,116.56489 z"
-         inkscape:connector-curvature="0"
-         id="path2800"
-         style="fill:#c3aa55;fill-opacity:1;fill-rule:evenodd;stroke:none" />
-      <path
-         d="m 74.758635,79.10127 c 1.880721,4.231621 1.880721,6.817611 2.115811,12.459772 0.23509,5.642162 1.88072,11.754498 0.70527,12.929948 -1.17545,1.17545 -15.045763,-10.108867 -15.280853,-9.168507 -0.23509,0.94036 13.870313,13.165047 16.221213,12.929957 2.350901,-0.23509 3.996531,-0.47018 3.996531,-6.11235 0,-5.642156 -1.41054,-21.1581 -2.821081,-22.33355 -1.41054,-1.17545 -3.99653,-1.17545 -4.936891,-0.70527 z"
-         inkscape:connector-curvature="0"
-         id="path1330"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 56.891792,87.799602 c 3.291261,1.17545 4.466711,-0.235091 8.228152,-1.175451 3.76144,-0.94036 4.936891,-2.58599 11.049232,-3.29126 6.112341,-0.705271 14.340493,-0.470181 15.986123,-0.705271 1.645631,-0.23509 4.231621,0 3.761441,-1.88072 -0.47018,-1.88072 -1.88072,-3.996531 -6.347431,-3.056171 -4.466711,0.940361 -17.631754,3.761441 -23.038825,5.407071 -5.407071,1.645631 -12.459773,1.175451 -13.635223,2.115811 -1.17545,0.94036 3.996531,2.585991 3.996531,2.585991 z"
-         inkscape:connector-curvature="0"
-         id="path1332"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 70.997194,91.561042 c -2.3509,-0.47018 -4.23162,0.70527 -4.23162,2.350901 0,1.64563 1.17545,5.171981 1.17545,5.171981 0,0 2.585991,-0.47018 3.291261,-2.3509 0.70527,-1.880721 -10e-7,-4.936892 -0.235091,-5.171982 z"
-         inkscape:connector-curvature="0"
-         id="path1334"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 64.208104,81.658739 c 0,0 4.810992,-3.652249 8.807523,-7.1786 3.996531,-3.526351 5.407071,-6.112342 6.347432,-6.112342 0.94036,0 4.231621,1.410541 3.76144,3.056171 -0.47018,1.64563 -1.17545,1.17545 -5.171981,3.056171 -4.426289,2.08296 -14.214594,6.94351 -13.744414,7.1786 z"
-         inkscape:connector-curvature="0"
-         id="path1336"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 65.286177,66.446742 c 0,0 0.940361,1.645631 3.056171,3.291261 2.115811,1.64563 2.585991,3.05617 1.64563,4.936891 -0.566172,1.132344 -0.23509,3.056171 -1.88072,2.585991 -1.645631,-0.47018 -3.761441,-6.112342 -3.526351,-7.287792 0.23509,-1.17545 0.70527,-3.29126 0.70527,-3.526351 z"
-         inkscape:connector-curvature="0"
-         id="path1338"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 55.716341,69.973093 c 0,0 9.403602,-2.58599 12.929953,-3.526351 3.526351,-0.94036 5.642161,-1.64563 5.877251,-2.82108 0.23509,-1.17545 -1.88072,-3.761441 -3.05617,-3.526351 -1.175451,0.23509 -2.821081,2.821081 -4.936891,4.231621 -2.115811,1.41054 -10.579052,5.171981 -10.814143,5.642161 z"
-         inkscape:connector-curvature="0"
-         id="path1340"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 46.31274,63.820417 c 0,0 2.11581,1.17545 3.05617,2.58599 0.94036,1.410541 -1.88072,16.221214 -2.58599,22.568645 -0.705271,6.347431 0.47018,11.049228 -0.47018,11.519408 -0.940361,0.47018 -6.072006,-2.930267 -6.112342,-2.821076 -0.407316,1.102623 3.056171,8.933426 5.642161,9.168516 2.585991,0.23509 3.996531,-1.17545 4.231621,-3.52636 0.23509,-2.3509 1.410541,-19.277379 1.645631,-22.56864 0.23509,-3.29126 2.58599,-13.165043 1.17545,-14.810673 -1.41054,-1.64563 -3.291261,-3.29126 -4.466711,-3.05617 -1.17545,0.23509 -1.88072,0.70527 -2.11581,0.94036 z"
-         inkscape:connector-curvature="0"
-         id="path1342"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 31.031886,88.034692 c 4.701801,1.41054 7.993062,1.64563 12.224683,0 4.231621,-1.645631 6.347431,-2.585991 6.347431,-2.585991 0,0 -0.70527,-3.761441 -6.112341,-2.11581 -5.407071,1.64563 -12.459773,4.231621 -12.459773,4.701801 z"
-         inkscape:connector-curvature="0"
-         id="path1344"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 36.909137,86.624152 c 0,3.76144 -6.817611,10.343962 -6.347431,12.929948 0.47018,2.58599 1.88072,2.82109 4.466711,1.41054 2.585991,-1.41054 3.51272,-5.345726 3.996531,-7.522877 0.47018,-2.115811 -1.17545,-6.347431 -2.115811,-6.817611 z"
-         inkscape:connector-curvature="0"
-         id="path1346"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 38.554768,65.936227 c 2.82108,1.41054 3.52635,3.996531 2.82108,5.877251 -0.70527,1.88072 -1.64563,3.996531 -1.64563,3.996531 0,0 4.231621,-0.940361 6.112341,-1.175451 1.880721,-0.23509 3.526351,10e-7 3.526351,10e-7 l -0.47018,1.88072 c 0,0 -7.287792,2.3509 -9.403602,1.88072 -2.11581,-0.47018 -3.761441,-3.29126 -3.526351,-4.466711 0.23509,-1.17545 1.17545,-1.17545 1.645631,-3.05617 0.47018,-1.880721 0.70527,-4.466711 0.94036,-4.936891 z"
-         inkscape:connector-curvature="0"
-         id="path1348"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <path
-         d="m 51.484721,73.694199 c 3.99653,-0.23509 7.052701,1.17545 7.522881,3.52635 0.425067,2.125334 -1.64563,3.996532 -2.821081,3.291261 -1.17545,-0.70527 -4.7018,-6.347431 -4.7018,-6.817611 z"
-         inkscape:connector-curvature="0"
-         id="path1350"
-         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      <g
-         transform="matrix(0.916991,0,0,0.987734,2.787559,-1.164154)"
-         id="g2830">
-        <path
-           d="m 52.921957,35.413866 c -1.559351,0.437724 -1.113821,5.25269 -0.891057,8.973346 0.222764,3.720656 -0.891058,9.629932 0.668293,9.41107 1.55935,-0.218863 2.227643,-4.814966 2.227643,-7.879036 0,-3.064068 -1.782114,-10.067656 -2.004879,-10.50538 z"
-           inkscape:connector-curvature="0"
-           id="path2078"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.93923414px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 44.90244,38.242468 c 2.56142,1.256615 4.678052,0.673192 6.905696,0.01661 2.227643,-0.656587 7.573988,-2.845208 6.68293,-3.720656 -0.891057,-0.875449 -5.082098,0.572065 -6.864212,1.228651 -1.782116,0.656586 -6.641449,1.46561 -6.724414,2.475399 z"
-           inkscape:connector-curvature="0"
-           id="path2080"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.93923414px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 43.788618,45.26266 c 3.118701,0.218862 7.796753,-1.532034 10.024397,-2.18862 2.227643,-0.656587 5.812997,-0.694881 5.812997,-2.883503 0,-2.18862 -5.548751,0.105465 -7.999158,1.199775 -2.450409,1.094311 -7.838236,3.653486 -7.838236,3.872348 z"
-           inkscape:connector-curvature="0"
-           id="path2082"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.93923414px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 44.679676,50.077626 c 2.673172,0.437724 3.382948,0.690543 8.283764,-1.279215 4.900816,-1.969759 7.175314,-2.222579 6.729784,-3.316889 -0.445528,-1.09431 0.134428,-1.532034 -4.543623,0.218862 -4.678052,1.750897 -10.469925,4.15838 -10.469925,4.377242 z"
-           inkscape:connector-curvature="0"
-           id="path2084"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.93923414px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 43.565854,56.862351 c 3.118701,1.750896 6.460166,0.218862 8.68781,-0.437724 2.227644,-0.656587 7.851483,-2.806913 7.183189,-4.338948 -0.668292,-1.532034 -4.287252,-0.694881 -7.405953,0.618292 -3.118701,1.313173 -7.796753,3.720656 -8.465046,4.15838 z"
-           inkscape:connector-curvature="0"
-           id="path2086"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.93923414px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 38.877022,37.283243 c 6.414113,-2.946336 8.611053,-4.445158 10.393169,-7.071503 1.782114,-2.626345 4.542824,-4.427805 4.542824,-4.427805 0,0 1.098469,0.589416 2.657821,2.340312 1.55935,1.750897 1.683798,3.047464 3.243149,2.60974 1.55935,-0.437724 2.170809,-2.626345 1.056988,-3.720656 -1.113822,-1.09431 -7.180723,-2.542569 -7.180723,-2.542569 0,0 3.522748,0.807532 1.740633,-0.943364 -1.782115,-1.750897 -3.633218,-1.324366 -4.455288,-0.437724 -1.170655,1.262608 -3.968276,3.569709 -6.195919,6.414916 -2.227644,2.845207 -6.667579,6.65113 -5.802654,7.778653 z"
-           inkscape:connector-curvature="0"
-           id="path2088"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.93923414px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 64.179583,23.608341 c 1.880721,2.58599 0.94036,13.17672 0.47018,16.467981 -0.47018,3.291261 -2.093072,12.956757 0.02274,14.602388 2.11581,1.64563 8.525382,-3.115054 9.431791,-6.312718 -4.69493,3.102129 -6.014072,3.898701 -6.61071,2.786367 -0.477153,-0.889574 0.447441,-7.549686 0.682531,-11.076037 0.23509,-3.526351 2.628552,-14.35509 1.218012,-15.29545 -1.41054,-0.94036 -5.214543,-1.642711 -5.214543,-1.172531 z"
-           inkscape:connector-curvature="0"
-           id="path2090"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 66.287819,40.228832 c 9.801632,-2.845207 13.121974,-2.741229 13.790267,-4.492126 0.668294,-1.750897 -2.20652,-2.511461 -2.20652,-2.511461 l -11.583747,7.003587 z"
-           inkscape:connector-curvature="0"
-           id="path2092"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.93923414px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 78.985388,24.689625 c -2.004879,0.656586 -2.227644,3.064068 -2.227644,4.814965 0,1.750897 -1.424923,5.909276 0.357192,6.347 1.782115,0.437725 4.098096,-3.501793 4.32086,-5.471552 0.222764,-1.969759 -1.782115,-5.690413 -2.450408,-5.690413 z"
-           inkscape:connector-curvature="0"
-           id="path2094"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.93923414px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 67.84717,26.440521 c 2.450408,-1.532034 5.346344,-3.720656 8.465046,-2.845208 3.118701,0.875449 3.786994,1.532036 2.227643,2.407484 -1.55935,0.875448 -4.455287,1.09431 -6.460166,1.532034 -2.004879,0.437724 -4.678052,-0.875448 -4.232523,-1.09431 z"
-           inkscape:connector-curvature="0"
-           id="path2096"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.93923414px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 67.178877,33.006383 c 0.445528,-1.750896 2.807599,-1.693454 5.035243,-2.350041 2.227644,-0.656586 2.76151,-1.808339 4.32086,-1.151752 1.55935,0.656586 -1.080215,1.893169 -3.085095,2.549755 -2.004879,0.656586 -5.82548,1.389762 -6.271008,0.952038 z"
-           inkscape:connector-curvature="0"
-           id="path2098"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.93923414px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 67.401641,38.477936 c 8.465046,5.033828 10.558262,5.709561 13.454199,7.898181 2.895937,2.188622 7.485651,7.422165 5.480772,7.859889 -2.004879,0.437724 -7.351224,-4.814966 -10.247161,-7.003588 -2.895937,-2.18862 -8.910574,-8.973344 -8.68781,-8.754482 z"
-           inkscape:connector-curvature="0"
-           id="path2100"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.93923414px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 78.436305,42.961944 c 0.73901,-0.985438 4.507949,-7.14555 6.290064,-6.707826 1.782115,0.437724 2.542783,0.641219 1.428961,1.954391 -1.113822,1.313173 -6.053683,4.627212 -7.719025,4.753435 z"
-           inkscape:connector-curvature="0"
-           id="path2102"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.93923414px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      </g>
-    </g>
-  </g>
-</svg>
diff --git a/themes/Mono/shogi_silver_promoted.svg b/themes/Mono/shogi_silver_promoted.svg
deleted file mode 100644 (file)
index bba28dc..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="128"
-   height="128"
-   id="svg2">
-  <defs
-     id="defs4" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1">
-    <g
-       id="g10964">
-      <path
-         d="m 9.8046247,116.56489 c 0,0 107.1261753,1.21404 106.8937853,0.40468 C 116.46604,116.16021 95.087283,18.227835 95.087283,18.227835 L 60.927745,8.1108558 26.768205,17.823157 9.8046247,116.56489 z"
-         inkscape:connector-curvature="0"
-         id="path2800"
-         style="fill:#c3aa55;fill-opacity:1;fill-rule:evenodd;stroke:none" />
-      <g
-         transform="matrix(1.165243,-0.01491436,0.0149773,1.048058,-9.613354,-3.113687)"
-         id="g1404">
-        <path
-           d="m 59.625487,64.92714 c -2.648127,0.643905 -3.681729,1.97203 -3.269224,6.977427 0.412505,5.005398 -1.428419,13.006089 1.221688,12.657071 2.650104,-0.349017 2.261502,-7.022928 2.233801,-11.151389 -0.0277,-4.128457 0.196564,-7.901063 -0.186265,-8.483109 z"
-           inkscape:connector-curvature="0"
-           id="path2078"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.42190337px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 46.462409,66.676736 c 3.730443,1.576309 6.936268,0.969383 10.313459,0.28051 3.377191,-0.688874 14.259725,-3.415378 12.995277,-4.479788 -1.264446,-1.064411 -10.365074,0.833187 -13.076799,1.538896 -2.711728,0.705707 -10.031329,1.47461 -10.231937,2.660382 z"
-           inkscape:connector-curvature="0"
-           id="path2080"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.24655581px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 46.958895,73.062722 c 4.519957,0.807326 11.86811,-0.133547 15.318809,-0.398215 3.450702,-0.264669 9.029574,-0.502026 9.627695,-2.767143 0.598118,-2.265115 -8.480452,-0.05878 -12.377902,0.617425 -3.897453,0.676206 -12.508792,2.321421 -12.568602,2.547933 z"
-           inkscape:connector-curvature="0"
-           id="path2082"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.17712235px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 48.362759,78.632679 c 3.774865,1.023421 4.73571,1.436372 12.497585,0.446644 7.761872,-0.98973 11.163506,-0.765348 10.844306,-1.991812 -0.319197,-1.226465 0.66143,-1.555132 -6.708383,-0.744094 -7.369816,0.811042 -16.567091,2.062999 -16.633508,2.289262 z"
-           inkscape:connector-curvature="0"
-           id="path2084"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.17912793px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 42.534738,86.096693 c 4.867733,3.430372 13.917396,0.256013 18.240084,0.27189 8.705138,0.03197 20.145914,7.095234 19.134809,0.450093 -0.351893,-2.312699 -13.423236,-4.533021 -19.648135,-3.894372 -6.224897,0.638648 -14.222026,3.074609 -17.726758,3.172389 z"
-           inkscape:connector-curvature="0"
-           id="path2086"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.50275409px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-        <path
-           d="m 35.994976,71.893994 c 3.216843,-0.580841 11.177789,-10.453019 15.470565,-14.941513 3.727434,-3.897377 8.290363,-10.152766 8.290363,-10.152766 0,0 8.957192,8.756584 11.515117,11.870258 2.557922,3.113675 8.400303,13.383598 10.939256,12.513783 2.538952,-0.869815 8.410034,-3.614935 5.133563,-4.013109 -5.44902,-0.662193 -25.091684,-21.026222 -25.091684,-21.026222 0,0 -0.829106,-1.270491 -2.636221,-3.802531 -1.915474,-2.683866 -3.499638,-1.270324 -4.832457,0.381991 -1.897977,2.352953 -2.616644,7.749294 -6.224477,13.032282 -3.607835,5.282989 -11.844749,14.977381 -12.564025,16.137827 z"
-           inkscape:connector-curvature="0"
-           id="path2088"
-           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.61819136px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-      </g>
-    </g>
-  </g>
-</svg>
diff --git a/themes/shogi/BlackAdvisor.svg b/themes/shogi/BlackAdvisor.svg
deleted file mode 100644 (file)
index 04d00a2..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg3703"
-   version="1.1"
-   inkscape:version="0.48.4 r9943 custom"
-   width="512"
-   height="512"
-   sodipodi:docname="BlackAdvisor.svg">
-  <metadata
-     id="metadata3709">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3707" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="680"
-     inkscape:window-height="480"
-     id="namedview3705"
-     showgrid="false"
-     inkscape:zoom="0.65186406"
-     inkscape:cx="463.71899"
-     inkscape:cy="309.37607"
-     inkscape:window-x="549"
-     inkscape:window-y="22"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3713" />
-  <g
-     id="g3713">
-    <g
-       id="g3039">
-      <path
-         inkscape:connector-curvature="0"
-         id="path3717"
-         d="m 193.50633,412.36873 c -32.44652,-11.80084 -59.38801,-21.85041 -59.86998,-22.33238 -0.48196,-0.48196 -13.65317,-75.94981 -29.26934,-167.70632 L 75.973971,55.5 76.236986,38.5 76.5,21.5 254.89422,21.247246 c 138.63089,-0.196416 178.71993,0.01756 179.85548,0.95999 1.21853,1.011283 1.37731,4.209548 0.95582,19.252754 -0.49094,17.521974 -1.25178,22.773539 -26.49522,182.87975 -14.29438,90.66185 -26.37689,165.22208 -26.85004,165.6894 -1.53317,1.51428 -124.74436,43.97369 -127.343,43.88326 -1.38449,-0.0482 -29.06441,-9.74283 -61.51093,-21.54367 z"
-         style="fill:#d3bc5f" />
-      <g
-         transform="matrix(-1.0066378,0,0,-1.0066378,-16.987894,373.40945)"
-         id="g3160">
-        <path
-           style="fill:#000000"
-           d="m -316.40625,-0.25 c -6.69109,1.3883585 -5.75838,9.5947071 -6.84375,14.65625 -7.47928,15.889046 -22.92191,26.19721 -34.47363,39.291488 -2.27207,3.168143 -8.68633,7.419331 -5.40137,11.552262 5.75762,1.557705 11.15349,-3.51974 16.21875,-5.59375 12.94165,-7.284273 24.99624,-16.135525 35.1875,-26.84375 5.58084,-2.165028 9.07669,5.008901 13.125,7.53125 5.72407,3.755303 13.99264,8.017488 20.625,4.3125 4.03769,-4.545542 -1.04848,-11.027466 -4.65625,-14.1875 -4.86783,-5.101891 -15.07252,-6.676838 -15.21875,-15.15625 -2.36434,-7.5207536 -10.22338,-15.58743944 -18.5625,-15.5625 z m 92.46875,18.375 c -13.71227,2.020217 -27.90891,3.562765 -41.125,7.90625 -4.14807,1.348728 -3.41853,6.625915 -0.28125,8.65625 4.31599,4.976063 11.35359,8.669845 17.8179,5.33661 9.73473,-1.563516 19.99214,-4.834907 29.8071,-3.74286 2.2555,2.390992 -0.78646,5.657969 -3.5625,5.40625 -12.04992,-0.193687 -23.65155,3.725055 -34.65625,7.78125 -3.67071,2.240747 -3.75481,-2.636879 -6.5625,-3.78125 -3.16135,-2.94829 -7.92712,-0.5826 -8.15625,3.5625 -2.16592,16.664512 -0.46901,33.6831 -2.74887,50.401951 -1.64984,15.016429 -5.53435,31.237879 1.78688,45.491059 2.48892,4.59817 4.36155,13.16562 10.99324,12.70074 7.15208,-3.33529 7.29721,-12.99094 12.75,-18.15625 4.24444,-4.779 9.46404,-10.82472 16.09375,-11.28125 10.62583,7.20884 16.19959,21.06846 28.46875,26.125 5.94838,1.91472 8.22581,-5.66176 7.40625,-10.1875 0.61506,-10.11583 -6.02045,-18.45587 -14.20625,-23.50625 -6.05729,-4.15554 -12.29046,-8.11896 -18.45,-12.18125 9.57746,-4.0463 22.87262,-5.04003 28.21875,-15.15625 1.99109,-5.843429 -1.50855,-13.247784 -6.6875,-16.21875 -5.58215,-0.254741 -7.67188,6.700625 -11.8064,9.357767 -6.8583,5.821811 -12.46012,13.962623 -21.16235,17.110983 -5.20422,0.63901 -10.04312,-6.61924 -14.9375,-3.21875 -1.76606,4.51257 4.03716,7.79603 6.53125,10.8125 2.10413,3.11952 11.79657,7.45622 8.28907,9.56044 -7.10192,2.37248 -14.45044,5.86433 -18.85157,11.84581 -4.80771,-8.31304 -3.54381,-19.20887 -3.40478,-28.7167 1.14214,-8.114718 0.61572,-17.2084 4.99853,-24.3458 7.11876,-4.387698 16.59768,-1.537652 24.15625,-5.4375 4.42784,-0.847288 8.4779,-8.043935 2.875,-10.1875 -8.05687,-1.827613 -16.5531,3.219854 -24.4375,1.40625 -1.1271,-3.162706 -1.18473,-9.212569 3.6875,-8.5625 9.84275,0.793476 19.48887,-1.267404 28.96875,-3.09375 3.10511,0.155746 0.25009,4.863859 0.0312,6.40625 -1.85446,5.886125 -7.18713,12.783409 -3.875,19.03125 5.06923,4.455016 11.04262,-2.250963 13.86527,-6.194566 7.54776,-11.059605 14.30543,-24.429292 12.79098,-38.242934 -1.8427,-11.42138 -13.85156,-17.541603 -24.625,-16.6875 z m -72.46875,32.15625 c -12.96516,1.339875 -24.45282,9.201418 -37.71565,9.328702 -3.79939,0.878598 -10.88908,-1.717199 -12.3781,3.202548 1.66412,5.070372 7.83585,7.397496 12.25,9.65625 3.54005,2.464092 9.35526,0.43719 12.21875,3.0625 -2.99654,6.556588 -11.84119,6.767271 -18.03125,8.40625 -4.66806,-0.07282 -12.33262,6.440081 -5.90625,9.875 3.23523,1.535647 6.91854,1.508032 10.4375,1.5625 -5.47312,4.98923 -14.77329,9.16339 -15.1875,17.53125 1.39957,6.93673 10.45152,6.79366 16,6.96875 3.69344,0.69642 11.93536,-1.66563 11.96875,4.21875 1.18999,4.59765 -1.07861,9.41657 -5.96875,10.1875 -9.37214,3.71511 -20.57665,3.11254 -28.78125,9.125 -3.39579,4.9799 3.60562,9.67794 7.9375,10.46875 13.34953,3.59624 26.46737,-2.37329 38.96875,-6.375 8.28841,-3.07879 20.56605,-1.87331 25.375,-10.875 1.96017,-5.94992 -5.79435,-8.46102 -10.40625,-7.8125 -3.10309,0.0445 -9.21836,1.41176 -8.84375,-3.46875 -0.70209,-4.09218 1.34165,-10.3788 5.65625,-10.84375 -2.4876,4.35733 2.90337,7.91122 6.90625,6.40625 5.4186,-0.83419 13.56705,-5.67364 10.625,-12.125 -4.34709,-7.4586 -14.16025,-10.5261 -22.1875,-7.96875 -1.88709,-2.777832 -1.46416,-7.883421 0.0625,-10.9375 4.4693,-4.081856 14.0128,-0.709234 16.375,-7.5625 0.0859,-5.947422 -8.09567,-6.326325 -12.5,-6.09375 -1.83366,-0.242864 -5.81635,1.186049 -6.75,-0.0625 1.72583,-6.152198 7.7218,-9.445685 13.71875,-9.625 7.57604,-2.253875 7.0782,-14.139204 -0.5625,-15.96875 -1.03753,-0.337773 -2.17935,-0.355187 -3.28125,-0.28125 z m -26.28125,47.3125 c 1.63382,6.34078 -5.57922,9.26866 -10.625,9.15625 -4.15116,0.85159 1.43679,-2.8356 2.375,-3.8125 2.51379,-1.55359 6.25435,-5.417566 8.25,-5.34375 z M -337.65625,168.5 c -5.29093,0.64656 -12.87301,1.88551 -14.8125,7.625 0.83922,6.52756 9.08936,8.26303 13.34375,12.1875 8.50286,5.55509 16.74622,16.08664 11.5625,26.5625 -4.90045,11.08435 -15.2116,18.3722 -23.34375,26.96875 -4.6732,-7.51702 -11.04145,-18.57091 -21.5625,-16.53125 -11.3759,3.29911 -13.12768,18.00335 -9.9375,27.78125 0.93538,5.50779 6.23615,11.0185 3.9375,16.59375 -8.51025,8.22766 -15.71579,18.36092 -20.21875,29.34375 -1.32689,5.64694 3.99477,11.32462 9.125,12.59375 7.12341,-1.5415 10.21711,-9.72777 14.84252,-14.55556 3.20974,-2.57769 5.69943,-11.16294 9.25123,-10.41319 12.76376,11.79902 21.16221,28.0777 32.90625,40.8125 3.27484,4.07434 10.30787,4.12498 12.34375,-1.25 6.35569,-14.60236 6.18482,-31.17314 8.24214,-46.8088 1.73378,-20.09007 3.35459,-40.19037 5.03911,-60.28495 12.27755,-10.74826 23.44781,-23.18457 36.9375,-32.15625 0.56789,10.95319 -11.66375,17.3686 -13.0625,27.8125 1.82011,5.65341 9.67236,3.47479 13.40625,1.15625 9.22599,-5.27136 16.78699,-14.45985 19.28125,-24.875 -0.66195,-6.9891 -7.41266,-12.26122 -13.6875,-14.375 -14.41992,-3.41972 -27.33253,7.28422 -37.38378,16.22292 -3.78399,3.6146 -8.29187,9.10954 -6.64747,0.33958 -0.63128,-14.65231 -15.49123,-25.51702 -29.5625,-24.75 z m 111.84375,11.1875 c -6.73228,1.01019 -15.24108,0.65905 -20.1875,6.0625 -1.98416,5.28169 5.50403,6.94126 9.25,7.65625 6.43907,1.67788 16.64742,-0.0524 19.40625,7.4375 0.079,9.22881 -10.2087,14.10377 -15.92247,19.78852 -4.8976,3.92687 -11.48146,9.04846 -1.05044,5.5605 12.38916,-2.46091 28.4601,-5.19312 33.50416,-18.69277 3.88477,-10.14678 -0.62377,-23.69145 -11.90625,-26.4375 -4.19562,-1.38751 -8.70195,-1.57781 -13.09375,-1.375 z m -29.03125,29.46875 c -6.48995,1.60896 -5.22729,9.67907 -5.03125,14.71875 -1.3063,10.33622 -12.94678,14.49058 -19.57714,21.04168 -4.50896,3.5804 9.21684,0.85095 12.57714,1.70832 9.80528,-0.84255 20.25865,-5.98997 24.96875,-14.875 1.54723,-6.47446 -1.68063,-13.79624 -5.875,-19.3125 -1.7949,-1.92038 -4.29095,-3.65295 -7.0625,-3.28125 z m 41.5,13.5 c -6.05065,0.32967 -6.48115,8.01605 -3.625,11.96875 0.66071,2.20761 3.63856,5.53197 2.34375,7.5625 -20.30013,6.22748 -41.82257,8.59039 -63.03125,9.9375 -7.98591,0.64036 -17.44126,-3.48494 -24.5,1.6875 -3.68883,4.86372 2.92378,9.63711 6.5625,12 9.88869,7.75974 22.71973,2.93329 33.71875,1.40625 2.13217,0.0612 7.73943,-1.92728 5.75,2.125 -2.98151,13.58442 -15.75725,21.19293 -27.26175,26.98655 -2.68283,2.03131 -9.80153,4.67945 -6.61325,8.8572 6.51552,2.7941 14.07047,-0.26143 20.8125,-0.96875 10.85983,-2.79491 25.22925,-4.28169 30.375,-15.90625 3.49414,-8.82718 -4.32583,-15.94078 -8.90625,-22.375 3.2753,-4.40381 10.46432,-4.86834 15.59375,-6.25 7.39033,-1.0436 15.69463,-3.11287 22.84375,-1.0625 4.41035,12.83375 2.21878,26.93485 2.8125,40.3125 -11.53563,0.8565 -24.07886,-1.97992 -35,2.53125 -4.19145,2.61668 0.1677,7.38614 3.65625,7.8125 9.19872,3.25956 21.50238,3.19441 26.96875,12.6875 2.99087,5.38787 10.99141,8.81861 15.625,3.40625 8.9812,-11.33804 8.76978,-27.05492 8.63203,-40.90471 -0.49623,-9.08067 -1.72461,-18.10231 -2.53828,-27.15779 9.11687,0.63242 19.47538,5.21921 28.21875,0.8125 5.0357,-3.91933 -0.19756,-10.34713 -3.78125,-13.09375 -6.69339,-6.68527 -16.528,-10.10204 -25.75,-7.03125 -2.22565,0.66416 -5.97062,0.78602 -5.03125,-2.59375 -1.61005,-7.47767 -10.46829,-13.03856 -17.875,-12.75 z m -113,21.96875 c -0.77476,19.13033 -1.02257,38.65497 -5.71875,57.21875 -9.41674,-8.63363 -18.19658,-18.2338 -25.1875,-28.90625 9.17901,-12.71391 20.3828,-23.79347 30.8125,-35.5625 0.0312,2.41667 0.0625,4.83333 0.0937,7.25 z m -43.03125,-4.8125 c 5.7668,-0.62219 9.11961,5.47798 7.03125,10.46875 0.0754,2.87425 -3.7972,7.84027 -5.9375,3.53125 -1.87657,-3.97991 -4.03282,-9.83721 -1.96875,-13.78125 0.27134,-0.1206 0.56584,-0.20902 0.875,-0.21875 z"
-           id="path3158"
-           inkscape:connector-curvature="0" />
-      </g>
-      <path
-         sodipodi:nodetypes="sssssssssscssssssscs"
-         inkscape:connector-curvature="0"
-         id="path3715"
-         d="M 195.5266,411.42227 C 163.09124,399.63 135.99659,389.42338 135.31627,388.74089 134.61967,388.04207 121.61209,314.25244 105.53966,219.82368 77.582135,55.567528 77,51.864378 77,38.273683 77,28.816374 77.381993,24.018007 78.2,23.2 79.124228,22.275772 119.78183,22 255.11821,22 c 96.64502,0 176.43002,0.273145 177.3,0.606989 1.35077,0.51834 1.58179,2.933231 1.58179,16.535044 0,15.908587 -0.0318,16.131226 -26.04561,182.143007 -14.70096,93.81689 -26.57021,166.74008 -27.25,167.42056 -1.06444,1.06551 -124.14998,44.39873 -125.62081,44.22578 -0.32097,-0.0377 -27.12161,-9.71684 -59.55698,-21.50911 z m 119.241,-18.51985 c 31.75282,-10.50367 58.25254,-19.61617 58.88827,-20.25 1.3227,-1.31875 49.76793,-337.105625 48.94492,-339.250349 C 422.14223,32.207079 397.47562,32 255.5904,32 164.0306,32 88.910159,32.3375 88.656089,32.75 88.0365,33.755946 140.73079,370.10719 141.79311,371.92722 c 0.82139,1.40725 110.04275,39.93199 113.47449,40.02492 0.97218,0.0263 27.74718,-8.54605 59.5,-19.04972 z"
-         style="fill:#151311" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/shogi/BlackBishop.svg b/themes/shogi/BlackBishop.svg
deleted file mode 100644 (file)
index 1388c5e..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.48.4 r9943 custom"
-   width="512"
-   height="512"
-   sodipodi:docname="BlackBishop.svg">
-  <metadata
-     id="metadata8">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs6" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview4"
-     showgrid="false"
-     inkscape:zoom="0.4609375"
-     inkscape:cx="256"
-     inkscape:cy="256"
-     inkscape:window-x="546"
-     inkscape:window-y="22"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2" />
-  <g
-     id="g3058">
-    <path
-       style="fill:#d3bc5f"
-       d="m 191.5,438.65982 c -33.55,-11.1077 -61.74965,-20.49658 -62.66589,-20.86416 -1.03366,-0.41469 -2.06811,-2.68494 -2.72573,-5.982 -0.58292,-2.92251 -14.13065,-83.22962 -30.10607,-178.46024 L 66.95609,60.206845 67.228045,40.853422 67.5,21.5 254.89438,21.247376 c 145.1305,-0.195648 187.72217,0.01943 188.84782,0.953628 1.21488,1.008264 1.37377,4.578622 0.96808,21.752624 L 444.22492,64.5 416.72433,240.33813 c -15.12532,96.71097 -27.88843,176.21676 -28.36246,176.67953 -1.44985,1.41541 -130.43309,41.98731 -133.23777,41.91017 -1.44326,-0.0397 -30.0741,-9.1603 -63.6241,-20.26801 z"
-       id="path2999"
-       inkscape:connector-curvature="0" />
-    <g
-       transform="matrix(-1.0248367,0,0,-1.0248367,947.91463,499.28528)"
-       id="g3419">
-      <path
-         style="fill:#000000"
-         d="m 735.64554,439.82119 c -1.0431,-2.7183 -7.96792,-6.86882 -15.38849,-9.22341 -7.42056,-2.35458 -17.068,-6.5246 -21.43873,-9.26671 -14.29132,-8.96607 -9.27325,-12.21928 15.01061,-9.73129 l 22.95742,2.35204 0,-22.92132 c 0,-20.7978 -1.01103,-23.97927 -10.91313,-34.34087 l -10.91313,-11.41955 -22.58096,5.0655 c -21.50861,4.82494 -23.12887,4.71453 -34.11873,-2.32502 l -11.53776,-7.39056 12.36168,-0.94617 c 34.99059,-2.67814 72.89587,-8.9175 81.63722,-13.43786 12.74755,-6.59199 24.333,-6.45322 34.12996,0.40882 15.12148,10.59153 9.97003,15.68335 -15.99071,15.80566 -21.77287,0.10242 -23.24352,0.56372 -16.95787,5.31736 11.5983,8.77136 17.14413,81.2943 6.99284,91.44557 -6.85795,6.85795 -10.78272,7.03801 -13.25022,0.60781 z m -129.36818,-3.68057 c -2.99133,-3.60431 -3.50013,-13.40243 -1.74236,-33.55315 1.36553,-15.65417 1.42696,-28.46214 0.13651,-28.46214 -1.29046,0 -5.86642,2.25434 -10.16881,5.00966 -8.40466,5.38245 -15.3771,6.63239 -33.42889,5.99277 -15.55052,-0.55098 -14.46569,-5.45748 2.3185,-10.48614 17.04016,-5.10538 56.841,-33.90231 56.841,-41.12595 0,-6.58695 -6.14524,-6.58949 -17.65955,-0.007 -4.85638,2.77615 -15.18722,5.03206 -22.95742,5.01313 l -14.12764,-0.0353 15.18678,-7.94889 c 21.19869,-11.09486 43.08974,-33.14454 43.08974,-43.40131 0,-9.69542 5.73939,-10.67309 16.87368,-2.87433 9.40301,6.58613 10.2172,17.59909 1.66885,22.57324 -3.39946,1.9781 -9.21965,5.97352 -12.93374,8.87873 -6.55716,5.12907 -6.48038,5.49657 2.64893,12.67769 5.17101,4.06748 9.40183,8.95049 9.40183,10.85108 0,1.9006 -5.75511,8.72803 -12.78913,15.17203 -12.45031,11.40599 -12.67488,12.06261 -8.47659,24.78356 4.584,13.88966 5.88104,51.9633 1.98496,58.2673 -3.28212,5.31058 -10.8867,4.67558 -15.86665,-1.32489 z M 675.8609,310.26803 c -11.12289,-6.47848 -6.55646,-9.3368 17.68771,-11.07146 13.12771,-0.93928 29.06738,-4.3962 35.4215,-7.68205 9.84419,-5.09063 12.96797,-5.29604 21.1201,-1.38883 5.26195,2.52199 10.14128,7.56649 10.84296,11.21002 1.06516,5.53093 -0.2324,6.24606 -7.85971,4.33173 -5.02451,-1.26108 -20.6781,0.11521 -34.78574,3.05838 -29.86832,6.23124 -34.11145,6.38547 -42.42682,1.54221 z m 39.73399,-48.50969 c 0,-1.58276 -5.9601,-5.83473 -13.24466,-9.44881 -10.97748,-5.44625 -12.0355,-6.83245 -6.18085,-8.09804 14.16353,-3.06171 15.8936,-7.59086 15.8936,-41.60784 0,-18.90837 -1.55795,-33.87511 -3.66153,-35.17519 -2.01383,-1.24462 -9.86344,-1.21514 -17.44357,0.0655 -9.92239,1.67638 -13.24216,3.73541 -11.8542,7.35238 1.06032,2.76314 4.74192,5.0239 8.18134,5.0239 6.88305,0 16.45863,9.49663 13.03136,12.92391 -1.18662,1.18661 -5.78384,2.34022 -10.21606,2.56358 -5.6595,0.2852 -8.41381,2.91869 -9.25182,8.84597 -1.02542,7.25288 -0.0578,8.14295 6.88004,6.32866 7.95549,-2.08041 17.27062,2.56963 17.27062,8.62136 0,1.7047 -5.56276,3.09945 -12.36169,3.09945 -11.43951,0 -12.36168,0.80776 -12.36168,10.82792 0,12.00981 -5.46321,24.49118 -10.72,24.49118 -1.87421,0 -3.40765,-6.35744 -3.40765,-14.12764 0,-13.20918 -0.66072,-14.12764 -10.16326,-14.12764 -5.5898,0 -12.10529,-2.33999 -14.47886,-5.19997 -3.64767,-4.39517 -2.07472,-5.55829 10.16327,-7.51523 12.26842,-1.96179 14.47885,-3.60463 14.47885,-10.76092 0,-7.33778 -1.20799,-8.14247 -9.20887,-6.13438 -6.05089,1.51868 -10.22612,0.66533 -12.17524,-2.48842 -3.56148,-5.76259 2.20611,-10.15349 13.43732,-10.22992 8.51708,-0.058 9.64992,-2.49228 4.75568,-10.21933 -1.69562,-2.67706 -4.86423,-3.76649 -7.04134,-2.42096 -5.78897,3.57778 -17.50367,-1.03577 -21.47577,-8.4577 -3.1721,-5.92713 -1.50374,-6.46742 21.02996,-6.81042 13.46146,-0.20492 31.86921,-2.88283 40.90611,-5.95093 15.81649,-5.36984 16.72705,-5.3 24.35738,1.86832 7.13948,6.7072 8.136,11.87753 10.03483,52.06441 1.26426,26.75692 0.72025,47.21108 -1.35897,51.09613 -3.43809,6.42415 -13.81434,9.12868 -13.81434,3.60067 z m -102.48108,-9.55101 c -3.57428,-4.30674 -3.58349,-10.44534 -0.0467,-31.12161 2.4232,-14.16616 3.83488,-34.00395 3.13707,-44.08399 -1.29274,-18.67406 -0.69574,-20.1905 6.14932,-15.61992 8.45288,5.64414 12.00744,19.2569 12.00744,45.98449 0,41.68139 -8.675,59.98954 -21.24714,44.84103 z m 48.56857,-102.70352 c -1.45791,-1.45791 3.16881,-5.95006 10.28161,-9.98255 17.28388,-9.79882 22.80944,-18.855 14.41836,-23.6311 -3.44033,-1.9582 -5.29327,-5.11668 -4.11766,-7.01886 4.53088,-7.33111 29.79829,6.87834 29.79829,16.75744 0,10.11083 -43.52065,30.73502 -50.3806,23.87507 z m -25.7553,-23.6407 c 12.22443,-11.71307 15.35436,-16.92838 13.77773,-22.95742 -1.62182,-6.201856 -0.53287,-7.801289 5.31141,-7.801289 4.04331,0 8.80895,2.781379 10.59031,6.180839 7.3661,14.05718 -14.31786,39.734 -33.55518,39.734 l -11.94208,0 z"
-         id="path3417"
-         inkscape:connector-curvature="0"
-         sodipodi:nodetypes="sssscsscsscssssssscssssssccccsssssssssccssssssssssssssssssssssssssssssssssssssssscssssccssssssssssscs" />
-    </g>
-    <path
-       sodipodi:nodetypes="ssscssssscssssscssssscs"
-       style="fill:#12110e"
-       d="M 193,437.56253 C 159.175,426.38003 130.72279,416.6163 129.77287,415.86536 128.38253,414.76624 122.25699,380.18014 98.359757,238.5 L 68.673778,62.5 68.242669,43.715991 C 67.925278,29.886825 68.132492,24.545283 69.028225,23.465991 70.089128,22.187681 93.90304,22 255.04066,22 356.67833,22 440.54823,22.273145 441.41821,22.606989 442.78107,23.129965 443,25.753478 443,41.561815 l 0,18.347837 -27.55739,177.295178 c -15.48351,99.61581 -28.07991,177.8099 -28.75,178.46998 -1.03232,1.01692 -124.0231,40.53362 -129.98516,41.76399 -1.2559,0.25917 -28.71782,-8.30875 -63.70745,-19.87627 z m 125.56003,-25.11714 c 33.51698,-11.30503 61.24167,-20.86753 61.61041,-21.25 C 381.22616,390.1004 432.30021,35.224715 431.64706,33.522625 431.1269,32.16713 411.8022,32 255.5904,32 159.0806,32 79.887535,32.372955 79.605814,32.828789 78.815185,34.108054 133.85164,387.18383 135.25893,389.86064 c 1.0484,1.99417 10.2451,5.51011 59.24107,22.64814 31.9,11.15812 59.15201,20.33334 60.56003,20.38936 1.40802,0.056 29.98302,-9.14771 63.5,-20.45275 z"
-       id="path2997"
-       inkscape:connector-curvature="0" />
-  </g>
-</svg>
diff --git a/themes/shogi/BlackCrownedBishop.svg b/themes/shogi/BlackCrownedBishop.svg
deleted file mode 100644 (file)
index 7bbfbfe..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.48.4 r9943 custom"
-   width="512"
-   height="512"
-   sodipodi:docname="BlackCrownedBishop.svg">
-  <metadata
-     id="metadata8">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs6" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="742"
-     inkscape:window-height="881"
-     id="namedview4"
-     showgrid="false"
-     inkscape:zoom="1.3037281"
-     inkscape:cx="249.61011"
-     inkscape:cy="274.74063"
-     inkscape:window-x="442"
-     inkscape:window-y="22"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g2987" />
-  <g
-     id="g2987">
-    <g
-       id="g3069">
-      <g
-         style="fill:#d3bc5f"
-         id="g2988">
-        <path
-           style="fill:#d3bc5f"
-           d="m 191.5,438.65982 c -33.55,-11.1077 -61.74965,-20.49658 -62.66589,-20.86416 -1.03366,-0.41469 -2.06811,-2.68494 -2.72573,-5.982 -0.58292,-2.92251 -14.13065,-83.22962 -30.10607,-178.46024 L 66.95609,60.206845 67.228045,40.853422 67.5,21.5 254.89438,21.247376 c 145.1305,-0.195648 187.72217,0.01943 188.84782,0.953628 1.21488,1.008264 1.37377,4.578622 0.96808,21.752624 L 444.22492,64.5 416.72433,240.33813 c -15.12532,96.71097 -27.88843,176.21676 -28.36246,176.67953 -1.44985,1.41541 -130.43309,41.98731 -133.23777,41.91017 -1.44326,-0.0397 -30.0741,-9.1603 -63.6241,-20.26801 z"
-           id="path2993"
-           inkscape:connector-curvature="0" />
-      </g>
-      <path
-         sodipodi:nodetypes="ssscssssscssssssssssss"
-         inkscape:connector-curvature="0"
-         id="path2991"
-         d="m 193,437.57176 c -33.825,-11.17923 -62.27929,-20.9437 -63.23175,-21.69882 -1.3974,-1.10786 -7.5275,-35.88006 -31.750002,-180.09769 L 68,57.050498 68,40.725249 C 68,29.361166 68.364674,24.035326 69.2,23.2 70.124671,22.275329 112.78183,22 255.11821,22 c 101.59502,0 185.43002,0.273145 186.3,0.606989 C 442.78115,23.129996 443,25.755121 443,41.580463 l 0,18.366485 -27.55185,177.276522 c -15.5708,100.18706 -28.07286,177.79074 -28.75,178.45902 -1.02945,1.01599 -124.10743,40.54934 -130.05047,41.77295 C 255.46646,457.69865 226.825,448.75099 193,437.57176 z M 318.516,412.4444 c 33.5412,-11.30558 61.28442,-20.86808 61.65159,-21.25 C 381.22075,390.09896 432.29733,35.217213 431.6461,33.520123 431.12722,32.167951 411.67574,32 255.5904,32 159.0806,32 79.888424,32.371516 79.60779,32.825592 c -0.830631,1.343989 54.90307,357.085268 56.13769,358.319888 1.52182,1.52182 116.0797,41.62567 119.27052,41.75362 1.3838,0.0555 29.9588,-9.14912 63.5,-20.4547 z"
-         style="fill:#f31a15" />
-      <path
-         inkscape:connector-curvature="0"
-         id="path2989"
-         d="m 193,437.57176 c -33.825,-11.17923 -62.27929,-20.9437 -63.23175,-21.69882 -1.3974,-1.10786 -7.5275,-35.88006 -31.750002,-180.09769 L 68,57.050498 68,40.725249 C 68,29.361166 68.364674,24.035326 69.2,23.2 70.124671,22.275329 112.78183,22 255.11821,22 c 101.59502,0 185.43002,0.273145 186.3,0.606989 C 442.78115,23.129996 443,25.755121 443,41.580463 l 0,18.366485 -27.55185,177.276522 c -15.5708,100.18706 -28.07286,177.79074 -28.75,178.45902 -1.02945,1.01599 -124.10743,40.54934 -130.05047,41.77295 C 255.46646,457.69865 226.825,448.75099 193,437.57176 z M 318.516,412.4444 c 33.5412,-11.30558 61.28442,-20.86808 61.65159,-21.25 C 381.22075,390.09896 432.29733,35.217213 431.6461,33.520123 431.12722,32.167951 411.67574,32 255.5904,32 159.0806,32 79.888424,32.371516 79.60779,32.825592 c -0.830631,1.343989 54.90307,357.085268 56.13769,358.319888 1.52182,1.52182 116.0797,41.62567 119.27052,41.75362 1.3838,0.0555 29.9588,-9.14912 63.5,-20.4547 z"
-         style="fill:#131210" />
-      <g
-         transform="matrix(-1.0721232,0,0,-1.0721232,989.4948,519.82746)"
-         id="g3006">
-        <path
-           style="fill:#ff0000"
-           d="m 702.46875,111.75 c -4.62406,0.56218 -10.51525,2.34758 -12.625,6.78125 0.75729,6.22951 11.02734,3.33167 12.125,9.78125 1.60631,11.64219 2.19033,24.45385 -1.90625,35.75 -6.37933,9.54788 -15.48631,17.1073 -22.56917,26.2135 -3.14348,2.6081 -10.29452,13.14337 -1.58708,7.849 7.5061,-5.54759 14.45302,-12.75326 22.28125,-17.40625 0.7166,6.35972 3.20589,13.61807 9.78125,15.90625 4.8812,3.71225 -0.3645,10.26132 -4.03125,12.71875 -5.14606,3.70961 -5.75311,11.99086 0.0625,15.375 7.70154,5.93166 20.20245,5.17731 25.28125,14.4375 1.4326,7.89493 -4.30601,15.40386 -9.15625,21.125 -4.3763,1.86358 -9.45387,-1.82004 -13.68921,-3.20031 -10.05607,-4.33644 -18.90098,-10.93621 -26.24829,-18.86219 -2.79436,-2.84785 -6.55081,0.49797 -5.71875,3.90625 0.5903,8.5572 7.89562,15.01825 13,21.25 9.90278,10.7377 25.51608,20.32185 40.34375,13.96875 12.82889,-6.14142 20.03927,-20.46791 22.1875,-34.09375 1.43449,-9.53821 -6.06215,-17.66647 -14.74136,-20.26396 -3.82694,-2.22841 -10.28266,-3.25617 -11.82114,-7.82979 2.26074,-5.14139 8.24906,-9.20204 6.875,-15.65625 -1.07021,-7.92887 -9.46754,-10.61997 -15.90625,-12.65625 -6.59955,-3.67097 -4.00024,-14.47082 2.6875,-16.8125 8.93074,-5.42148 20.02607,-5.29859 29.125,-10.0625 4.11288,-4.14817 -1.72959,-9.36187 -5.15625,-11.625 -9.26566,-4.61811 -17.9198,4.19559 -26.53125,6.375 1.78564,-8.6908 7.9941,-16.62717 5.84375,-26 -1.11727,-8.87611 -8.30653,-17.58527 -17.90625,-16.96875 z m -54.40625,6.75 c -10.44043,1.71659 -13.30021,13.90845 -18.15625,21.53125 -4.61007,5.9039 -13.37451,1.46229 -19.53125,1.71875 -5.72194,0.0454 -12.54353,-2.03128 -17.65625,1.28125 -1.73639,7.15451 6.47819,12.04585 12.34375,13.75 8.38402,1.57456 17.15139,1.17813 24.90625,5.34375 3.34021,1.86812 10.98818,4.45143 7.9375,9.53125 -7.98687,14.2981 -22.01635,26.45499 -38.76826,28.16068 -5.2208,1.56095 -12.12107,-1.44552 -16.38799,2.52682 -1.02833,4.71314 4.61809,7.72468 7.59375,10.46875 7.97119,3.86521 16.46489,-2.45409 24,-4.65625 8.95675,-3.62801 17.97156,-7.32558 27.15625,-10.21875 -12.2611,18.26318 -30.48819,32.49882 -40.25,52.28125 -1.25691,5.69722 7.18478,9.9066 11.21875,5.53125 9.05922,-8.40361 14.77393,-19.60721 23.31554,-28.59974 1.79484,-1.39744 6.63868,-9.30438 6.90321,-7.15026 -0.41257,10.58331 -0.0428,21.67024 -5.0625,31.25 -2.14165,8.05683 8.33493,15.92598 15.0625,10.25 8.78792,-6.35081 7.5654,-18.16866 8.68837,-27.61258 0.35274,-6.12911 3.69537,-11.44196 5.49913,-17.04367 -1.58113,-4.97563 -5.87201,0.74427 -7.3566,2.98837 -1.76597,0.99382 -3.65469,7.21411 -5.8309,3.66788 -2.63201,-2.50632 -4.11191,-7.40914 -8.15625,-7.84375 7.8206,-9.48099 17.04731,-18.39343 22.125,-29.6875 0.16625,-6.24057 -8.1068,-7.14165 -12.84375,-7.125 -1.45312,-0.51118 -6.74824,0.92516 -6.28125,-0.90625 3.40338,-6.01503 10.65507,-12.92618 7.15625,-20.34375 -2.43683,-4.10633 -9.11462,-3.7204 -12.0625,-4.15625 7.64091,-4.87998 18.35669,-7.67655 22.40625,-16.5 1.52712,-7.26251 -5.53329,-13.04364 -10.875,-16.71875 -2.13377,-1.23323 -4.61417,-1.94651 -7.09375,-1.71875 z m 2.0625,13.90625 c 3.36047,0.23376 1.98052,4.40996 -0.71875,4.78125 -2.13854,1.50547 -3.49233,0.59424 -2.28125,-1.75 0.52062,-1.33199 1.43306,-2.77932 3,-3.03125 z m 112.71875,7.1875 c -3.87866,-0.90798 -7.22208,3.62778 -3.90625,6.40625 4.77009,3.45071 6.41671,10.80908 1.75,15.09375 -5.98202,6.28094 -14.50638,9.31552 -20.875,15.1875 12.95521,-1.55135 26.82888,-2.13785 38.625,-8.03125 6.14302,-2.89595 7.11454,-11.17432 3.3125,-16.46875 -3.69193,-6.66742 -10.77785,-13.03985 -18.90625,-12.1875 z m -32.875,150.46875 c -30.13267,2.29514 -58.73601,14.54252 -88.875,16.125 -8.23041,0.64244 -15.76797,-3.34816 -23.59375,-4.6875 -4.73898,1.80138 0.35047,6.67693 2.53125,8.46875 6.40438,6.80718 14.99933,13.51824 25.05638,11.38957 22.41132,-3.26974 43.87291,-14.2828 66.88112,-13.07707 3.8918,0.28286 -0.98243,3.31055 -2.25,4.21875 -2.53146,2.64178 -9.68304,2.81135 -8.875,7.4375 3.14155,2.80539 8.34738,-0.34677 12.18612,-0.62836 12.94113,-3.77797 26.18463,-8.01505 37.65763,-15.12164 4.53503,-3.90771 -1.70388,-8.54663 -5.03125,-10.375 -4.58443,-3.1479 -10.22817,-3.99962 -15.6875,-3.75 z m -43.875,46.71875 c -11.34662,0.67883 -23.44722,-0.40219 -34.15625,3.625 -3.84086,3.3805 1.35343,7.75334 4.625,8.8125 7.61888,3.67122 16.41577,5.16383 24.65625,3.40625 -1.89025,4.81272 -8.27811,7.33984 -9.59375,12.96875 -2.39008,4.39111 0.52074,10.38499 5.84375,9.78125 11.69044,-0.93022 23.94127,-3.52954 35.28125,1.03125 11.36292,3.20115 21.81789,15.10576 17.34375,27.34375 -3.45815,9.95888 -14.34915,14.50362 -22.90625,19.4375 -13.77225,6.66032 -29.7767,13.01793 -44.84375,6.375 -6.72008,-3.02435 -15.37943,-5.84764 -18.75,-12.8125 1.07225,-4.40185 7.68151,-2.38235 10.9375,-2.5625 6.51143,-0.37831 14.27277,4.10913 20.15625,-0.0312 4.1982,-4.95632 1.97401,-14.64201 -5.15625,-15.34375 -13.26815,-2.74734 -30.75185,-2.71391 -39.5,9.46875 -5.38234,7.99459 1.25973,17.21567 7.1875,22.71875 8.87311,9.15091 21.22537,13.8992 33.84375,14.84375 23.29994,3.38061 48.73023,-3.16438 64.7982,-20.74864 6.23031,-5.66574 11.68931,-13.51254 10.10805,-22.53261 -0.57132,-13.39501 -3.86052,-29.38845 -17.1875,-35.6875 -10.33606,-5.18463 -22.35996,-4.99724 -33.65625,-6.34375 6.63581,-5.81444 15.45864,-10.41281 19.0625,-18.78125 -0.4351,-4.92335 -7.41579,-3.72011 -10.8125,-4.5625 -5.74982,-0.38508 -11.52024,-0.46086 -17.28125,-0.40625 z"
-           id="path3004"
-           inkscape:connector-curvature="0" />
-      </g>
-    </g>
-  </g>
-</svg>
diff --git a/themes/shogi/BlackCrownedRook.svg b/themes/shogi/BlackCrownedRook.svg
deleted file mode 100644 (file)
index dab05c1..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.48.4 r9943 custom"
-   width="512"
-   height="512"
-   sodipodi:docname="BlackCrownedRook.svg">
-  <metadata
-     id="metadata8">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs6" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="933"
-     inkscape:window-height="911"
-     id="namedview4"
-     showgrid="false"
-     inkscape:zoom="1.3037281"
-     inkscape:cx="271.28932"
-     inkscape:cy="213.78296"
-     inkscape:window-x="328"
-     inkscape:window-y="22"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg2" />
-  <g
-     id="g3301">
-    <path
-       style="fill:#d3bc5f"
-       d="m 191.5,438.65982 c -33.55,-11.1077 -61.74965,-20.49658 -62.66589,-20.86416 -1.03366,-0.41469 -2.06811,-2.68494 -2.72573,-5.982 -0.58292,-2.92251 -14.13065,-83.22962 -30.10607,-178.46024 L 66.95609,60.206845 67.228045,40.853422 67.5,21.5 254.89438,21.247376 c 145.1305,-0.195648 187.72217,0.01943 188.84782,0.953628 1.21488,1.008264 1.37377,4.578622 0.96808,21.752624 L 444.22492,64.5 416.72433,240.33813 c -15.12532,96.71097 -27.88843,176.21676 -28.36246,176.67953 -1.44985,1.41541 -130.43309,41.98731 -133.23777,41.91017 -1.44326,-0.0397 -30.0741,-9.1603 -63.6241,-20.26801 z"
-       id="path2993"
-       inkscape:connector-curvature="0" />
-    <g
-       transform="matrix(-1,0,0,-1,-116.69019,482.84403)"
-       id="g3246">
-      <path
-         style="fill:#ff0000"
-         d="m -367.0625,82.15625 c -11.08081,-1.565705 0.93638,4.58443 4.3684,7.851919 5.76522,3.258333 10.34615,8.778043 9.60035,15.773081 -0.13853,23.30123 -2.68776,46.52078 -3.90625,69.78125 -13.19283,18.19651 -24.31428,38.29006 -39.46875,54.8125 -4.76169,6.02274 -12.79254,2.22903 -19.09375,4.78125 -5.77616,1.30947 -11.10914,3.87565 -16.28125,6.71875 10.03605,-13.93348 19.21905,-29.90796 34.6875,-38.46875 6.28267,-0.80868 16.84119,-10.53321 7.5,-14.8125 -11.50399,-1.83846 -22.72896,3.88721 -33.53802,7.11494 -16.18055,5.9466 -33.24204,12.37887 -50.77448,9.57256 -3.75918,-0.51963 -5.12094,4.11314 -2.34375,6.3125 9.13872,12.60175 28.03014,12.60059 40.84375,6.1875 1.27914,-0.39295 6.69026,-4.02723 4.125,-0.59375 -11.26095,20.65607 -28.78405,38.73307 -33.28341,62.39813 -0.4087,4.05603 -0.25661,11.66369 5.22091,11.82062 6.99752,-3.3631 9.15288,-12.19086 12.875,-18.5 5.38976,-12.25692 14.81507,-23.73987 28.40625,-26.71875 6.72322,-3.42976 10.78066,3.62625 7.5625,9.21875 -2.78028,9.91512 -10.85884,19.21598 -8.59375,30.0625 3.59151,7.60446 15.77375,5.29202 19.625,-1.0625 8.17431,-12.07844 6.39016,-27.79695 12.96875,-40.65625 7.53565,-16.57662 15.41543,-33.51775 28.125,-46.78125 2.85271,-3.02984 1.94178,3.67451 2.53125,5.125 1.96942,23.56027 -1.26706,47.07618 -3.21875,70.5 -1.01077,11.37225 10.95695,17.71825 20.46875,19.65625 22.31114,4.15195 46.12216,0.90106 66.78125,-8.3125 5.05281,-2.94183 11.98708,-6.25019 13.21875,-12.53125 -2.74877,-11.73802 -13.9395,-19.11231 -21.59849,-27.73174 -3.71283,-3.27923 -10.9663,-12.99775 -7.09951,-2.57452 1.13486,8.83344 5.69221,17.57645 4.3855,26.52501 -5.49711,6.42737 -14.56952,8.64906 -22.28125,11.34375 -13.45404,3.72491 -30.24874,4.36788 -40.5985,-6.74699 -7.06666,-3.24326 0.28745,-10.75873 0.72965,-16.22652 3.26195,-12.4009 9.71395,-24.51297 9.5876,-37.49524 -0.95954,-7.12326 -7.35035,-12.30558 -7.78125,-19.65625 -2.05014,-8.11353 -1.29173,-18.20594 6.4375,-23.03125 10.88335,-9.36897 25.70764,-15.1163 33.0625,-27.9375 2.08677,-6.37466 -5.964,-9.82416 -10.3125,-12.40625 -7.30236,-3.69032 -15.34015,-5.60635 -23.03125,-8.375 1.36497,-12.58717 6.90493,-28.359497 -2.625,-39.125 -7.0029,-7.438207 -18.11401,-5.775708 -27.28125,-5.8125 z m -35.71875,0.53125 c -6.26449,1.911477 -3.45469,10.309834 -4.73306,15.150394 -0.30348,7.115876 -4.40079,13.031176 -10.32944,16.724606 -2.96076,2.37938 0.26372,5.93866 3.34375,4.90625 11.17619,-1.12316 24.70494,-2.17966 32.125,-11.75 3.99433,-4.33508 1.58691,-10.630565 -2.68548,-13.728605 -5.29139,-4.136153 -10.62339,-10.663102 -17.72077,-11.302645 z m 1.9375,46.3125 c -9.46462,2.00889 -18.85122,5.9814 -28.78125,6.125 -7.9138,0.47142 -15.86777,0.14389 -23.75,1.125 9.71578,6.19001 22.55086,8.13548 30.78125,16.21875 1.61974,1.979 -0.69931,6.61199 3.625,5.96875 9.8604,-3.96302 16.61684,-13.77835 26.59375,-17.59375 5.12138,-2.39466 1.49945,-8.84498 -2.28125,-10.59375 -1.85036,-1.11742 -4.0454,-1.42066 -6.1875,-1.25 z m 62.5625,6.75 c 6.04641,1.76899 10.68797,6.59129 16.0625,9.84375 -5.5456,4.81807 -9.65044,12.47881 -16.59375,15.0625 -2.67701,-6.63053 -1.53365,-14.77711 -1.15625,-21.84375 0.35229,-0.93753 0.23404,-3.14803 1.6875,-3.0625 z m -51.625,25.4375 c -16.60414,2.31339 -33.78523,2.12219 -50,6.375 -4.31147,1.97143 -0.004,6.55753 3.34375,6.28125 4.40824,1.51273 10.75284,1.49659 14.15625,3.6875 -2.25845,4.64297 -8.78185,7.5079 -8.6875,12.96875 4.62986,2.48432 9.06541,-3.48968 13.29887,-4.88299 12.3482,-7.22418 23.53104,-16.1399 34.70113,-25.11701 -2.27083,0.22917 -4.54167,0.45833 -6.8125,0.6875 z m 80.1875,7.8125 c -3.61803,-0.74859 -8.85597,2.39077 -5.90625,6.3125 3.49465,3.37379 4.68962,8.22761 2.0625,12.625 -3.45911,8.36807 -11.55563,18.65837 -5.625,27.75 3.09743,4.19091 8.04201,6.3264 12.28125,9.1875 -5.67135,5.60218 -13.20144,9.65316 -17.78125,16.125 -0.36669,5.16581 6.51183,2.18253 9.25,1.5625 11.85564,-3.83622 25.77091,-6.6708 33.875,-16.875 4.1366,-5.8166 -1.7945,-12.30003 -7.3125,-14.09375 -3.99745,-2.42604 -10.35071,-2.33406 -13.09375,-6.25 2.90628,-9.31375 12.64119,-18.13356 9.03125,-28.84375 -2.47941,-6.73652 -10.49267,-8.02171 -16.78125,-7.5 z m -47.46875,136.09375 c -12.67963,0.15022 -24.30684,5.61518 -36.125,8.78125 -8.76999,2.66176 -17.68572,-1.46643 -26.46875,0 -4.88567,0.85059 -4.80102,7.31044 -1.28125,9.875 7.50074,7.96792 19.34308,14.65239 30.34375,9.6875 11.49956,-3.55132 21.62467,-13.59556 34.21875,-12.40625 5.55912,2.8724 2.6997,10.87751 1.96875,15.59375 -1.04056,4.4638 -2.28706,11.5831 -8.5,10.84375 -12.74744,-0.47356 -26.92471,-1.62256 -37.625,6.65625 -11.66052,8.52825 -16.58043,24.47766 -14.40625,38.4375 1.94146,8.70813 11.69068,12.78744 14.5,20.625 -6.13023,3.6481 -15.64995,-1.23094 -20.84375,4.53125 -2.03813,5.66156 5.55615,8.80771 9.25,11.34375 22.76747,13.77535 53.55024,16.94523 76.75,2.5 5.29114,-2.60089 6.83123,-10.18591 2,-13.96875 -5.38065,-6.37292 -14.42041,-7.75171 -21.99648,-4.86358 -9.55626,2.8793 -20.16805,7.73238 -30.15977,4.45733 -1.2194,-2.49377 2.70889,-2.46715 4.28125,-3 15.67414,-7.56092 29.18174,-19.4122 40.9375,-32.15625 3.999,-5.98373 10.24375,-11.98438 10.0625,-19.65625 -1.33389,-5.72829 -9.04001,-8.60652 -7.40625,-15.375 2.50705,-10.96127 5.30153,-23.22584 -0.1875,-33.75 -3.15668,-7.85195 -11.99356,-8.51228 -19.3125,-8.15625 z m -18.375,53.125 c 3.35478,0.58564 8.74571,-1.14293 11.15625,1.5 -2.51517,12.22575 -9.08494,23.4457 -15.36212,34.14792 -2.97349,4.9565 -9.24009,11.5034 -15.26288,6.82083 -10.89916,-6.93381 -11.8798,-23.05155 -3.09375,-32 5.55526,-6.55276 14.13665,-10.23687 22.5625,-10.46875 z"
-         id="path3244"
-         inkscape:connector-curvature="0" />
-    </g>
-    <path
-       sodipodi:nodetypes="ssscssssscsssssssssscs"
-       style="fill:#f21914"
-       d="m 193,437.57176 c -33.825,-11.17923 -62.27929,-20.9437 -63.23175,-21.69882 -1.3974,-1.10786 -7.5275,-35.88006 -31.750002,-180.09769 L 68,57.050498 68,40.725249 C 68,29.361166 68.364674,24.035326 69.2,23.2 70.124671,22.275329 112.78183,22 255.11821,22 c 101.59502,0 185.43002,0.273145 186.3,0.606989 C 442.78115,23.129996 443,25.755121 443,41.580463 l 0,18.366485 -27.55185,177.276522 c -15.5708,100.18706 -28.07286,177.79074 -28.75,178.45902 -1.02945,1.01599 -124.10743,40.54934 -130.05047,41.77295 C 255.46646,457.69865 226.825,448.75099 193,437.57176 z m 125.17078,-25.14065 c 34.90005,-11.64405 61.89716,-21.16578 62.19229,-21.93487 1.11721,-2.91139 51.74957,-355.760321 51.2405,-357.086937 C 431.14117,32.204308 405.62438,32 255.5904,32 159.0806,32 79.90768,32.34036 79.650581,32.756355 78.928687,33.924404 134.62061,390.02061 135.69288,391.09288 c 1.09806,1.09806 117.06515,41.79065 119.30712,41.8646 0.825,0.0272 29.25185,-9.20966 63.17078,-20.52637 z"
-       id="path2991"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#131210"
-       d="m 193,437.57176 c -33.825,-11.17923 -62.27929,-20.9437 -63.23175,-21.69882 -1.3974,-1.10786 -7.5275,-35.88006 -31.750002,-180.09769 L 68,57.050498 68,40.725249 C 68,29.361166 68.364674,24.035326 69.2,23.2 70.124671,22.275329 112.78183,22 255.11821,22 c 101.59502,0 185.43002,0.273145 186.3,0.606989 C 442.78115,23.129996 443,25.755121 443,41.580463 l 0,18.366485 -27.55185,177.276522 c -15.5708,100.18706 -28.07286,177.79074 -28.75,178.45902 -1.02945,1.01599 -124.10743,40.54934 -130.05047,41.77295 C 255.46646,457.69865 226.825,448.75099 193,437.57176 z m 125.17078,-25.14065 c 34.90005,-11.64405 61.89716,-21.16578 62.19229,-21.93487 1.11721,-2.91139 51.74957,-355.760321 51.2405,-357.086937 C 431.14117,32.204308 405.62438,32 255.5904,32 159.0806,32 79.90768,32.34036 79.650581,32.756355 78.928687,33.924404 134.62061,390.02061 135.69288,391.09288 c 1.09806,1.09806 117.06515,41.79065 119.30712,41.8646 0.825,0.0272 29.25185,-9.20966 63.17078,-20.52637 z"
-       id="path2989"
-       inkscape:connector-curvature="0" />
-    <g
-       id="g4439"
-       transform="matrix(4.4238841,0,0,4.1007377,-30.238211,-33.391315)">
-      <g
-         id="g10964"
-         transform="matrix(-1,0,0,-1,126.50341,125.35865)"
-         style="fill:#ff0000">
-        <g
-           id="g2075"
-           transform="matrix(0.786183,0,0,0.935199,12.88314,7.493534)"
-           style="fill:#ff0000" />
-        <g
-           id="g2872"
-           transform="matrix(1.036664,-0.02174942,0.02123065,1.061995,-3.652085,-1.466228)"
-           style="fill:#ff0000" />
-      </g>
-    </g>
-  </g>
-</svg>
diff --git a/themes/shogi/BlackElephant.svg b/themes/shogi/BlackElephant.svg
deleted file mode 100644 (file)
index c23e65d..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.48.4 r9939"
-   width="512"
-   height="512"
-   sodipodi:docname="BlackElephant.svg">
-  <metadata
-     id="metadata8">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs6" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview4"
-     showgrid="false"
-     inkscape:zoom="0.4609375"
-     inkscape:cx="256"
-     inkscape:cy="256"
-     inkscape:window-x="473"
-     inkscape:window-y="52"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g2987" />
-  <g
-     id="g2987">
-    <path
-       style="fill:#d3bc5f"
-       d="m 187.5,455.85776 c -35.75,-11.55389 -65.56073,-21.55028 -66.24608,-22.21421 -0.73497,-0.712 -13.5527,-77.88594 -31.249996,-188.15242 L 60,58.545837 60,40.972919 C 60,28.638426 60.357716,23.042284 61.2,22.2 62.125053,21.274947 106.67071,21 255.61821,21 c 106.27002,0 193.93002,0.273145 194.8,0.606989 C 451.78652,22.132059 452,24.872588 452,41.913335 l 0,19.699357 -30.00398,185.411928 c -17.63655,108.98636 -30.51759,185.90928 -31.25,186.61854 -1.87074,1.81159 -131.64029,43.36741 -135.18269,43.28926 C 253.8785,476.89525 223.25,467.41165 187.5,455.85776 z"
-       id="path2991"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#11100c"
-       d="m 188.5,454.89208 c -35.75,-11.55144 -65.54439,-21.54024 -66.20976,-22.19735 -0.68354,-0.67506 -14.2764,-82.6365 -31.249996,-188.42944 L 61,57.03058 61,40.71529 C 61,29.358953 61.364734,24.035266 62.2,23.2 63.125009,22.274991 107.44849,22 255.61821,22 c 105.72002,0 192.93002,0.273145 193.8,0.606989 C 450.78146,23.130117 451,25.761559 451,41.653514 l 0,18.439536 -30.03848,185.70347 c -16.94975,104.78652 -30.56638,186.22397 -31.25,186.89799 -1.5292,1.50773 -131.13022,43.32413 -134.05297,43.25284 -1.1872,-0.029 -31.40855,-9.50383 -67.15855,-21.05527 z m 131.31997,-23.99874 c 53.05638,-17.68542 63.45889,-21.45408 64.17632,-23.25 1.33343,-3.33792 56.20618,-372.673338 55.60242,-374.246697 C 439.14265,32.20816 411.79196,32 256.0904,32 155.4556,32 72.90525,32.344292 72.64518,32.765094 c -0.465276,0.752833 54.80074,371.913786 55.88836,375.340596 0.4193,1.32107 16.14663,6.97617 63.26224,22.74729 34.48732,11.54402 63.15419,21.02465 63.70416,21.06807 0.54996,0.0434 29.49398,-9.41905 64.32003,-21.02771 z M 218.43399,398.20808 c -1.68631,-0.93944 -4.65379,-2.94558 -6.59439,-4.45808 -3.36068,-2.6193 -4.05092,-2.75 -14.52275,-2.75 -6.04691,0 -20.55699,-0.29781 -32.24464,-0.6618 -18.25551,-0.56853 -21.5548,-0.91226 -23.41124,-2.43908 l -2.16097,-1.77728 2.27399,-2.31092 c 2.11894,-2.15336 3.27803,-2.34501 17,-2.81092 l 14.72601,-0.5 0.29153,-7.72052 c 0.27836,-7.37148 0.18573,-7.74708 -2.04875,-8.3079 -1.28715,-0.32306 -8.31714,-0.13938 -15.6222,0.40818 -7.30506,0.54755 -13.92063,0.75046 -14.70126,0.45091 C 140.21372,364.86803 140,355.00687 140,299.84198 l 0,-64.94403 3.46788,-1.44898 c 4.71847,-1.9715 9.04419,-1.82056 15.7918,0.55103 5.16583,1.81564 8.25381,2 33.5,2 25.24618,0 28.33417,-0.18436 33.5,-2 6.74102,-2.36928 11.53243,-2.53153 16.27244,-0.55103 l 3.46788,1.44898 0,63.16705 0,63.16705 -3.6069,4.91357 C 237.84751,372.33796 234.62533,374 227.16593,374 c -5.41342,0 -6.52382,-0.40427 -12.67072,-4.61315 -3.92986,-2.69084 -6.9994,-4.18987 -7.36626,-3.59738 -0.34592,0.55868 -0.40395,4.0971 -0.12895,7.86315 l 0.5,6.84738 17.0998,0.5 c 17.89087,0.52313 20.4002,1.15755 20.4002,5.15763 0,2.34044 -2.36631,6.2714 -6.37626,10.59237 -2.86322,3.0853 -3.37355,3.24788 -10.06991,3.20808 -4.72235,-0.0281 -8.06723,-0.60648 -10.11984,-1.75 z m -24.26732,-18.18746 c 0.18333,-0.53867 0.18222,-3.9185 -0.002,-7.51074 -0.27445,-5.33801 -0.70686,-6.72994 -2.36667,-7.61824 -1.53666,-0.8224 -2.33916,-0.75895 -3.29781,0.26074 -1.27976,1.36124 -2.72777,14.28624 -1.71407,15.29993 0.94912,0.94913 7.03214,0.59335 7.38102,-0.43169 z M 172.27928,344.79276 C 171.92952,329.41101 166.46028,307 163.05623,307 c -1.63886,0 -1.44793,46.66785 0.19377,47.36143 0.6875,0.29045 3.05,0.44045 5.25,0.33333 l 4,-0.19476 -0.22072,-9.70724 z M 192.8,353.8 c 0.73903,-0.73903 1.2,-4.36325 1.2,-9.43462 0,-9.74515 2.31768,-21.88314 4.83159,-25.30359 3.45692,-4.70354 6.83123,-6.41421 13.40497,-6.79588 C 224.10202,311.577 223,313.48789 223,293.60227 l 0,-17.35963 -3.25,-1.37132 C 217.26708,273.82367 210.12731,273.5 189.5,273.5 l -27,0 -0.27343,12 -0.27344,12 8.82582,9 c 8.31223,8.47628 8.95125,9.43643 10.98136,16.5 1.18554,4.125 2.91501,12.45 3.84327,18.5 1.87143,12.19732 3.87487,15.62155 7.19642,12.3 z m 29.94484,-7.8 c 0.18061,-6.27043 -0.0292,-8.04097 -0.79969,-6.75 -0.57449,0.9625 -1.40344,1.75 -1.84211,1.75 -0.43867,0 -2.69488,-4.95 -5.0138,-11 -2.31891,-6.05 -4.5895,-11 -5.04574,-11 -1.35384,0 -2.03476,2.76731 -3.04893,12.3911 -1.33015,12.62219 -1.23932,20.96415 0.24442,22.44789 0.81179,0.81179 3.65629,1.13934 8.25,0.95 L 222.5,354.5 222.74484,346 z M 222.5,255.5 l 0,-10 -5,-1.25072 c -3.48929,-0.87283 -12.55353,-1.17497 -30,-1 l -25,0.25072 -0.28837,9.92882 c -0.1586,5.46085 -0.0577,10.53007 0.22434,11.26492 0.4151,1.08173 6.18156,1.28566 30.28837,1.07118 L 222.5,265.5 l 0,-10 z m 63.20173,139.25753 c -1.29184,-0.95498 -1.85838,-3.49522 -2.35476,-10.55823 -0.80889,-11.50961 -1.49803,-12.19285 -12.31948,-12.21404 -8.01668,-0.0157 -12.29925,-1.44235 -12.84559,-4.27925 C 257.67334,365.06526 263.73716,363 271.99927,363 c 5.15414,0 7.20969,-0.38095 7.6043,-1.4093 1.10244,-2.87292 -10.84329,-25.09096 -18.23601,-33.91743 -4.88486,-5.83222 -2.28704,-6.19027 6.13244,-0.84519 9.38068,5.95529 18.10558,14.69886 24.53912,24.59166 3.24783,4.99414 6.39813,9.65637 7.00068,10.3605 0.80501,0.94072 4.32626,1.20591 13.27787,1 L 324.5,362.5 l 0.51987,-15 c 0.28593,-8.25 0.90115,-15.79943 1.36716,-16.77651 2.57077,-5.39012 18.1527,-9.50067 31.81201,-8.39209 7.03262,0.57076 10.21939,1.71067 11.08441,3.96488 0.51212,1.33455 -2.71887,35.09313 -3.77606,39.45372 -0.30002,1.2375 -0.92819,2.25 -1.39593,2.25 -0.46774,0 -4.12496,-7.21557 -8.12716,-16.0346 -4.00975,-8.83566 -7.77229,-15.86296 -8.38051,-15.6523 -1.12879,0.39095 -1.13908,10.07772 -0.0257,24.23179 0.53273,6.77271 0.42409,7.23361 -2.81194,11.92939 -4.65496,6.75481 -7.70283,8.77696 -13.97465,9.2717 -5.50481,0.43423 -4.75451,0.71747 -20.88679,-7.88478 -6.33743,-3.37933 -7.96087,-1.15433 -5.84711,8.01378 0.81039,3.51496 0.70442,4.83933 -0.53908,6.73714 -3.04868,4.65287 -14.495,8.60097 -17.81676,6.14541 z m 10.17071,-60.40895 c -1.00144,-1.20501 -1.5076,-6.40865 -1.87244,-19.25 L 293.5,297.5 278,297 c -15.6323,-0.50427 -20,-1.48965 -20,-4.51213 0,-3.40779 4.11125,-4.39425 18.93633,-4.54362 7.93325,-0.0799 15.018,-0.37323 15.74388,-0.65178 C 293.72527,286.89145 294,281.50501 294,261.41606 l 0,-25.36995 2.70602,-1.77306 c 1.84199,-1.20692 4.6499,-1.77305 8.79398,-1.77305 4.14408,0 6.95199,0.56613 8.79398,1.77305 l 2.70602,1.77306 0,25.36995 c 0,22.2116 0.19692,25.44553 1.58179,25.97695 0.86998,0.33385 11.89498,0.60699 24.5,0.60699 21.64899,0 23.02991,0.1117 24.93514,2.01693 1.85794,1.85794 1.90022,2.24261 0.53631,4.88012 C 364.51994,302.69659 358.70192,307 352.19058,307 c -3.6469,0 -5.40244,-0.74118 -19.3365,-8.16384 -2.69079,-1.43338 -5.17954,-1.8628 -9.5,-1.63917 L 317.5,297.5 317,313.71572 c -0.57779,18.73861 -0.57971,18.74277 -9.64186,20.8748 -7.65933,1.802 -9.82495,1.75638 -11.4857,-0.24194 z M 204,213.80047 c -24.19293,-22.30868 -50,-47.29791 -50,-48.41547 0,-0.76175 0.71252,-1.385 1.58339,-1.385 2.39996,0 16.5634,3.74556 20.7015,5.47457 6.49398,2.71336 6.40113,2.8692 6.92442,-11.62248 0.39776,-11.01536 0.75864,-13.35549 2.22496,-14.42769 3.10918,-2.27348 9.10347,-2.65847 15.57575,-1.00035 7.42691,1.90269 48.40951,2.32418 49.5311,0.50942 0.94646,-1.5314 -1.53639,-3.16741 -15.04112,-9.91095 -13.85213,-6.91702 -26.02885,-11.0649 -39.5,-13.45531 -5.225,-0.92716 -11.3,-2.16534 -13.5,-2.75151 -3.81702,-1.01701 -3.88875,-1.10739 -1.56796,-1.97585 1.47941,-0.5536 8.33416,-0.51096 17.5,0.10888 21.21494,1.43465 36.22566,4.43072 53.47204,10.67279 8.6193,3.11963 12.70817,3.70458 9.06696,1.29713 -21.88674,-14.47084 -51.53534,-25.88977 -73.76976,-28.411858 -7.11323,-0.806866 -7.88063,-2.569371 -1.61915,-3.71873 7.35998,-1.351001 30.66092,-0.980018 40.73006,0.648479 15.86515,2.565891 25.18776,5.385129 42.93781,12.984749 11.00604,4.7122 -5.51985,-7.07797 -20.23669,-14.437586 C 232.70214,85.82679 211.92662,79.094742 193.25,75.914298 188.67399,75.135049 186,74.208122 186,73.40112 c 0,-1.454097 3.9441,-2.064654 18.27802,-2.829483 14.98527,-0.799584 33.08501,-7.606314 49.22198,-18.510798 3.3,-2.229961 7.02094,-4.055906 8.26876,-4.057656 1.90084,-0.0027 12.07791,4.637912 25.73124,11.733032 4.67093,2.427304 6.51436,4.368789 9.27071,9.763785 2.16663,4.240758 2.56035,6.366636 2.59281,14 0.023,5.408835 -0.6867,11.992637 -1.77862,16.5 -2.60196,10.74061 -9.51773,24.94479 -14.99751,30.80312 -2.52307,2.69736 -4.58739,5.33678 -4.58739,5.86537 0,0.5286 1.62274,1.73491 3.60608,2.6807 4.65463,2.21964 5.53304,1.46954 8.98468,-7.67225 9.90032,-26.22136 27.6946,-48.534619 51.16946,-64.164277 l 10.08481,-6.714505 9.06763,4.850921 c 4.9872,2.668006 9.07207,5.357488 9.07749,5.976625 0.005,0.619138 -4.15265,3.509137 -9.24015,6.422222 -11.6652,6.679453 -25.09629,16.030325 -34.69171,24.152744 -11.97823,10.13945 -35.64498,37.53926 -34.7483,40.2293 0.50072,1.50216 49.88355,1.48942 50.38435,-0.013 0.19856,-0.59567 -6.40144,-5.52995 -14.66666,-10.96507 -14.02062,-9.21982 -17.52628,-12.49878 -13.27768,-12.41907 1.74397,0.0327 20.77494,2.71602 35.5,5.00537 5.66711,0.88109 7.75,1.60609 7.75,2.69757 0,0.82096 -2.25,4.08986 -5,7.26423 -2.75,3.17437 -5,5.98547 -5,6.2469 0,0.26143 2.80393,0.72957 6.23096,1.04033 9.59021,0.86961 9.76904,1.27661 9.76904,22.23376 l 0,17.29941 -3.83388,4.8398 c -5.81348,7.33881 -6.56472,7.75156 -14.10827,7.75156 -5.90432,0 -7.37183,-0.40475 -11.8226,-3.2608 -2.79484,-1.79344 -5.62121,-3.91109 -6.28083,-4.70588 C 326.03722,184.33992 323.0788,184 314.37756,184 c -10.34878,0 -13.85024,0.83717 -9.87756,2.36163 2.56489,0.98424 1.72174,2.23393 -5.3766,7.96913 l -6.8766,5.55604 -24.8734,-0.51868 c -13.68037,-0.28527 -28.9234,-0.1473 -33.8734,0.3066 -8.63401,0.79172 -8.98686,0.91921 -8.67699,3.13517 0.19072,1.3639 -0.78445,3.76184 -2.38111,5.85518 -2.64697,3.47035 -10.79923,9.35946 -12.88768,9.30993 C 208.9744,217.9612 206.475,216.08271 204,213.80047 z m 78,-25.67803 c 0,-3.13637 -3.30941,-3.47991 -37.81645,-3.92562 -19.07595,-0.24639 -35.56932,-0.27555 -36.65192,-0.0648 -1.87097,0.36423 -1.84927,0.49414 0.43856,2.62558 C 210.37095,188.99425 210.469,189 246.18856,189 266.06502,189 282,188.60952 282,188.12244 z m -14.60699,-15.70423 c 0.88863,-2.31573 0.71198,-15.70455 -0.22671,-17.18337 -0.62461,-0.98401 -7.45472,-1.20623 -30.73469,-1 L 206.5,154.5 l -0.29313,8.41641 c -0.16122,4.62903 -0.0628,9.01653 0.21861,9.75 0.41073,1.07034 6.41877,1.33359 30.43615,1.33359 26.36464,0 29.9966,-0.18817 30.53138,-1.58179 z M 340.5,164 l 0,-9.5 -25,0 -25,0 -0.29313,8.41641 c -0.16122,4.62903 -0.0598,9.02441 0.22534,9.76752 0.42005,1.09464 5.22135,1.30033 25.29313,1.08359 L 340.5,173.5 l 0,-9.5 z M 277,81.923077 c 0,-4.278003 -0.45998,-5.536908 -2.92308,-8 L 271.15385,71 250.07692,71 C 236.69231,71 229,71.364964 229,72 c 0,0.55 0.81525,1 1.81166,1 4.96244,0 32.87227,8.547822 39.18834,12.00204 5.91218,3.233335 7,2.754855 7,-3.078963 z"
-       id="path2989"
-       inkscape:connector-curvature="0" />
-  </g>
-</svg>
diff --git a/themes/shogi/BlackGold.svg b/themes/shogi/BlackGold.svg
deleted file mode 100644 (file)
index 14f32c1..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg3404"
-   version="1.1"
-   inkscape:version="0.48.4 r9943 custom"
-   width="512"
-   height="512"
-   sodipodi:docname="BlackGold.svg">
-  <metadata
-     id="metadata3410">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3408" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview3406"
-     showgrid="false"
-     inkscape:zoom="0.4609375"
-     inkscape:cx="256"
-     inkscape:cy="256"
-     inkscape:window-x="811"
-     inkscape:window-y="211"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3414" />
-  <g
-     id="g3414">
-    <g
-       id="g3078">
-      <path
-         inkscape:connector-curvature="0"
-         id="path3418"
-         d="m 193.50633,412.36873 c -32.44652,-11.80084 -59.38801,-21.85041 -59.86998,-22.33238 -0.48196,-0.48196 -13.65317,-75.94981 -29.26934,-167.70632 L 75.973971,55.5 76.236986,38.5 76.5,21.5 254.89422,21.247246 c 138.63089,-0.196416 178.71993,0.01756 179.85548,0.95999 1.21853,1.011283 1.37731,4.209548 0.95582,19.252754 -0.49094,17.521974 -1.25178,22.773539 -26.49522,182.87975 -14.29438,90.66185 -26.37689,165.22208 -26.85004,165.6894 -1.53317,1.51428 -124.74436,43.97369 -127.343,43.88326 -1.38449,-0.0482 -29.06441,-9.74283 -61.51093,-21.54367 z"
-         style="fill:#d3bc5f" />
-      <g
-         transform="matrix(-1.0897825,0,0,-1.0897825,-142.85243,511.80415)"
-         id="g3097">
-        <path
-           style="fill:#000000"
-           d="m -381.375,113.84375 c -6.56129,0.69259 -10.3037,8.73005 -7.75,14.3125 -0.9159,12.66234 -10.33706,22.62151 -17.5,32.5 -14.9307,18.86578 -33.91714,33.95594 -49.09375,52.40625 -1.28938,4.89288 5.34403,3.04913 7.96875,1.78125 22.08555,-10.81992 39.85885,-28.7082 56.80663,-46.21539 6.81446,-7.12612 13.62891,-14.25224 20.44337,-21.37836 24.73556,20.69335 48.05117,43.36887 74.65625,61.5625 5.75067,3.43122 9.45087,-5.14353 8.6875,-9.8125 -1.77721,-11.39 -12.70973,-18.21619 -20.82124,-25.23812 -17.4735,-14.30057 -38.60235,-23.91706 -54.86626,-39.69938 -0.78202,-3.59726 -0.75238,-7.99613 -3.3125,-11.21875 -3.31018,-4.96977 -8.9004,-9.45364 -15.21875,-9 z m 22.75,60 c -13.29902,1.21713 -26.68756,3.78682 -39.8125,5.65625 -3.40572,3.64377 1.5475,8.76762 4.8125,10.6875 3.75412,2.52768 8.2234,0.84076 12.15625,0.625 1.46811,3.11799 0.73919,8.47537 -3.8125,8 -5.68031,1.32553 -12.6896,-1.41275 -17.625,2.125 -1.41931,4.51289 4.65234,6.70768 7.5625,8.8125 4.0209,2.85815 9.2053,2.62019 13.5625,4.03125 1.61465,3.42138 -1.93218,6.7401 -5.5,6.0625 -9.72779,0.42092 -22.49401,-2.94578 -29.5625,5.6875 -4.2177,6.35517 -5.01918,15.29738 -3.03125,22.59375 2.69901,6.8645 11.57845,4.80491 16.375,1.71875 6.22964,-2.97655 15.01022,-11.24053 18.75,-12.78125 -4.06176,4.78089 2.51303,9.63629 5.8125,12.53125 1.63306,1.26379 3.36571,2.50435 5.34375,3.125 -12.8766,3.1768 -26.74412,1.10027 -39.4375,4.8125 -4.76774,3.07192 0.98477,8.13331 3.5,10.5625 7.63213,7.43689 18.6652,1.74578 27.6823,1.64812 18.89833,-2.72823 38.48078,-1.3308 57.0052,-6.05437 5.36801,-0.98347 5.48724,-7.79385 1.78125,-10.75 -5.37784,-5.31227 -13.87137,-7.44694 -21.125,-5.28125 6.87992,-6.49788 14.20752,-17.8137 7.875,-26.96875 -6.31229,-7.62662 -17.60746,-7.13162 -26.4375,-5.625 -2.54133,-1.3081 0.90913,-4.70961 2.8125,-5 6.52934,-2.84458 17.05337,-2.08135 19.5,-10.25 1.1678,-4.70973 -3.57363,-8.10685 -7.9375,-7.09375 -4.92918,-0.17535 -10.59315,2.68831 -15.125,0.6875 -0.58658,-4.27047 5.90177,-3.67996 8.65625,-3.875 4.96495,-0.27647 13.51417,-2.36577 12.15625,-9 -2.34105,-6.35902 -10.12587,-7.12735 -15.9375,-6.6875 z m -2.3125,52.75 c 6.36227,1.22315 6.94712,10.22979 5.34375,15.28125 -1.80238,5.66191 -9.12543,8.70315 -13.46875,9.65625 6.00438,-6.22878 4.40895,-15.85719 6.1875,-23.4375 0.41288,-0.71616 1.04827,-1.43474 1.9375,-1.5 z M -402.25,229.625 c 2.00808,-0.24765 6.68712,0.95246 3.25,3.15625 -1.99451,1.86598 -5.39694,4.31884 -7.6875,4.34375 -0.78658,-3.40928 -0.0551,-8.04124 4.4375,-7.5 z m 77.21875,46.53125 c -21.93894,4.19347 -43.84263,8.94565 -65.78125,13.28125 8.70269,4.04619 18.40645,6.34403 26.21875,12.03125 -8.15302,10.30821 -23.03959,16.31044 -26.21875,30.15625 -0.99855,6.99176 7.84919,9.28952 13.03125,6.9375 7.41698,-2.15486 11.69093,-9.48276 19.71875,-10.34375 10.89566,-1.13721 21.90092,-2.37696 32,-6.9375 2.30724,-0.44159 6.26844,-2.37872 8.15625,-0.75 -2.98035,5.93597 -10.68329,8.02895 -16.3125,10.75 -12.15435,5.33159 -26.65249,4.69564 -38.0625,11.6875 -2.89768,4.46659 4.12914,5.96158 7.28125,5.96875 13.05074,1.0459 26.31015,-0.17917 38.78125,-3.875 2.66287,-0.93266 7.39767,1.50556 3.6875,4.125 -15.40491,5.08869 -32.12957,5.2725 -48.27519,6.81552 -12.61565,0.36542 -25.85849,2.31929 -37.91231,-2.19052 -5.36532,-1.19196 -6.60398,5.6195 -4.71875,9.25 4.8231,10.40946 18.78035,11.49839 28.82896,9.70366 21.73713,-4.31888 43.9541,-8.31455 66.20229,-6.73491 4.13156,0.28628 2.42952,6.32691 3.43429,9.05839 0.80555,7.80831 0.41384,15.67021 0.53446,23.50411 -10.87142,0.71994 -22.20233,-0.67151 -32.84375,1.375 -3.74225,3.02133 2.18877,5.55422 4.8125,6 13.66427,3.87475 22.00053,15.96425 33,23.90625 4.65814,3.80649 11.90267,1.95374 14.0625,-3.71875 6.02558,-11.97013 3.71222,-26.10572 3.37821,-39.05839 -0.46061,-8.11601 -2.21685,-16.71987 -4.40946,-24.12911 11.57952,-0.87016 24.1998,4.84379 35.375,0.125 5.06663,-3.61452 -0.32262,-9.86267 -3.75,-12.5 -9.69569,-8.874 -23.46179,-1.10413 -34.6875,-3.03125 -3.11056,-1.68919 -3.22629,-6.4769 -7,-7.75 -1.70695,-1.13866 -5.36227,-0.6543 -2,-3.09375 4.26821,-5.25817 12.56318,-10.44173 10.65625,-18.21875 -6.04582,-10.74553 -20.83917,-12.41414 -31.75277,-9.48179 -8.87434,1.53043 -16.96988,7.60493 -25.90348,7.23179 1.42447,-5.44607 5.33663,-10.6497 4.40625,-16.53125 8.22698,-4.69885 18.64938,-3.06626 27.59375,-5.46875 5.13708,-0.46788 11.33879,-4.54549 9.0625,-10.46875 -0.87956,-5.1423 -5.22107,-8.59421 -10.59375,-7.625 z m -107.09375,6.6875 c -6.13936,0.15377 -7.06311,7.97959 -3.875,12 3.72439,6.81947 12.81399,12.06404 11.5625,20.78125 -1.10834,4.06756 -5.01187,7.25784 -8.8125,8.15625 0.174,-11.46702 -9.00124,-22.5056 -20.03125,-24.96875 -3.33978,-1.11512 -8.90531,1.35366 -5.96875,5.25 6.14976,6.5041 10.43961,16.08503 8.96875,25.375 -5.14066,1.7307 -13.68498,-2.44061 -16.75,3.75 -0.15333,6.50319 6.74429,11.30335 12.65625,12.25 9.64595,1.82794 19.29071,-1.94976 26.875,-7.6875 -0.0253,7.24668 -9.08508,9.75623 -14.65625,11.65625 -11.51167,4.05591 -23.7906,-0.45681 -35.53125,1.53125 -5.28439,1.0912 -2.11583,7.3535 0.40625,9.8125 2.91076,3.99986 7.5144,6.97794 11.3125,9.4375 -0.16965,9.51221 -9.13389,18.31874 -5.59375,27.96875 2.92461,5.68028 11.0011,3.93743 13.71875,-1.03125 1.84715,-3.69293 3.13242,-4.43843 4.93182,0.35256 6.34496,8.31324 9.90179,18.61923 16.78693,26.39744 4.45586,4.61485 11.14105,0.41697 12.78125,-4.71875 9.42337,-22.67976 4.5797,-48.12604 8.5,-71.875 1.89291,-16.32078 5.95143,-32.15222 9.4375,-48.1875 -8.0867,-6.09969 -15.70695,-16.33604 -26.71875,-16.25 z m 0.71875,77.25 c 1.46432,13.58022 -0.82174,27.15049 -3.09375,40.5 -6.53349,-3.39598 -13.06484,-6.77896 -19.59375,-10.1875 3.90838,-8.60336 2.05539,-21.0528 12.03125,-25.84375 3.26362,-1.47399 7.78072,-4.59986 10.65625,-4.46875 z m 81.5,8.5625 c -5.64828,0.37366 -6.73836,6.91029 -6.53125,11.375 -3.2059,7.82164 -14.36921,6.0259 -19.28125,11.875 -1.09987,4.6687 5.70765,4.82223 8.8125,5.34375 11.1037,0.42544 23.61796,-1.80631 31.59375,-10.09375 4.8999,-7.3283 -3.1162,-16.17071 -10.25,-18.03125 -1.40622,-0.38272 -2.8712,-0.62 -4.34375,-0.46875 z"
-           id="path3095"
-           inkscape:connector-curvature="0" />
-      </g>
-      <path
-         sodipodi:nodetypes="sssssssssscssssssscs"
-         inkscape:connector-curvature="0"
-         id="path3416"
-         d="M 195.5266,411.42227 C 163.09124,399.63 135.99659,389.42338 135.31627,388.74089 134.61967,388.04207 121.61209,314.25244 105.53966,219.82368 77.582135,55.567528 77,51.864378 77,38.273683 77,28.816374 77.381993,24.018007 78.2,23.2 79.124228,22.275772 119.78183,22 255.11821,22 c 96.64502,0 176.43002,0.273145 177.3,0.606989 1.35077,0.51834 1.58179,2.933231 1.58179,16.535044 0,15.908587 -0.0318,16.131226 -26.04561,182.143007 -14.70096,93.81689 -26.57021,166.74008 -27.25,167.42056 -1.06444,1.06551 -124.14998,44.39873 -125.62081,44.22578 -0.32097,-0.0377 -27.12161,-9.71684 -59.55698,-21.50911 z m 119.241,-18.51985 c 31.75282,-10.50367 58.25268,-19.61617 58.88858,-20.25 1.32488,-1.32058 49.77083,-337.097274 48.94644,-339.245603 C 422.14164,32.205523 397.74263,32 255.5904,32 164.0306,32 88.910159,32.3375 88.656089,32.75 88.0365,33.755946 140.73079,370.10719 141.79311,371.92722 c 0.82139,1.40725 110.04275,39.93199 113.47449,40.02492 0.97218,0.0263 27.74718,-8.54605 59.5,-19.04972 z"
-         style="fill:#151310" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/shogi/BlackGoldKnight.svg b/themes/shogi/BlackGoldKnight.svg
deleted file mode 100644 (file)
index 5074be6..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg3127"
-   version="1.1"
-   inkscape:version="0.48.4 r9939"
-   width="512"
-   height="512"
-   sodipodi:docname="BlackGoldKnight.svg">
-  <metadata
-     id="metadata3133">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3131" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview3129"
-     showgrid="false"
-     inkscape:zoom="0.4609375"
-     inkscape:cx="256"
-     inkscape:cy="256"
-     inkscape:window-x="95"
-     inkscape:window-y="81"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3137" />
-  <g
-     id="g3137">
-    <path
-       style="fill:#d3bc5f"
-       d="M 197.03171,393.67676 C 143.42698,374.80404 142.55058,374.45244 141.75365,371.5 141.30828,369.85 129.47357,296.95 115.4543,209.5 L 89.964719,50.5 90.232359,36 90.5,21.5 253.89392,21.246998 c 119.93355,-0.185707 163.75462,0.04635 164.75,0.872445 1.00568,0.834643 1.35454,4.259074 1.35011,13.253002 -0.005,10.4975 -3.15042,34.01616 -23.40055,174.978105 -12.86702,89.5678 -23.78444,163.24041 -24.26095,163.71692 -1.38761,1.38761 -115.88342,38.94013 -118.48006,38.85929 -1.29386,-0.0403 -26.8632,-8.70279 -56.82076,-19.25 z"
-       id="path3143"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#f21511"
-       d="m 199.5,392.89708 c -29.7,-10.43789 -54.54384,-19.52227 -55.20852,-20.18753 -0.67782,-0.67839 -12.64432,-72.46473 -27.25,-163.47108 C 94.106844,66.335335 91,45.630183 91,35.68847 91,28.241882 91.408404,23.991596 92.2,23.2 93.123378,22.276622 130.44849,22 254.11821,22 c 88.39502,0 161.43002,0.273145 162.3,0.606989 1.33382,0.511833 1.58179,2.713998 1.58179,14.04745 0,12.221736 -2.09168,28.010402 -23.06766,174.122081 -12.68722,88.37489 -23.5261,161.234 -24.08641,161.90913 -0.79979,0.96369 -115.67129,39.49889 -117.00788,39.25188 C 253.65212,411.90317 229.2,403.33497 199.5,392.89708 z m 109.14641,-18.94804 c 29.06948,-9.92803 53.47939,-18.66991 54.24426,-19.42639 C 364.43,353.0002 407.59331,35.988527 406.61013,33.426393 406.13947,32.199889 384.83599,32 254.5904,32 c -83.3098,0 -151.68139,0.338208 -151.93686,0.751574 -0.91146,1.474772 48.17691,321.525606 49.4337,322.302346 0.67417,0.41666 20.84284,7.85443 44.81926,16.52837 23.97643,8.67395 46.2935,16.79437 49.5935,18.04538 3.3,1.25102 6.74089,2.29657 7.64641,2.32345 0.90553,0.0269 25.43053,-8.07405 54.5,-18.00208 z M 256.5,322.13672 c -8.4007,-2.47469 -12.27737,-4.72363 -14.54048,-8.43527 -2.8016,-4.59476 -2.45138,-6.88846 1.84577,-12.08861 4.45572,-5.39204 12.60575,-20.25079 11.4737,-20.91831 -0.42845,-0.25264 -2.35399,-0.78563 -4.27899,-1.18444 -10.91134,-2.26053 -26.02221,-15.76363 -43.75574,-39.1002 -10.9544,-14.41553 -21.78255,-25.02315 -33.86612,-33.17641 -4.88297,-3.29473 -11.05528,-7.91825 -13.71624,-10.27449 -5.35347,-4.74041 -14.92871,-17.71827 -14.08272,-19.08711 0.8683,-1.40493 22.30687,-0.96724 29.7371,0.60712 3.74896,0.79436 8.69896,2.48199 11,3.75031 5.96536,3.28806 16.37573,16.74146 25.85824,33.41677 8.69837,15.29638 17.78739,28.03302 27.13736,38.02817 6.33354,6.77057 18.25846,15.33427 21.3226,15.31249 1.37391,-0.01 3.68647,-3.50143 8.77556,-13.25 9.38125,-17.97053 23.84515,-43.71637 29.34636,-52.23674 2.48578,-3.85 9.51999,-11.99223 15.63159,-18.09384 11.9439,-11.92436 19.4741,-16.59492 28.61201,-17.74639 5.34034,-0.67293 12.18307,0.38945 12.71109,1.9735 0.20644,0.61932 -1.76954,2.38302 -4.39107,3.91934 -6.30636,3.69577 -17.69662,12.99299 -23.41334,19.11098 -12.58129,13.46437 -38.36987,58.54454 -55.11026,96.33641 -8.91054,20.11578 -8.69844,19.02987 -4.9079,25.12757 4.26095,6.85443 3.90526,9.30706 -1.38852,9.57453 -2.2,0.11116 -6.7,-0.59327 -10,-1.56538 z M 242.18467,237.06713 C 235.29366,235.31856 231,228.98252 231,220.5622 c 0,-5.31459 0.15127,-5.6326 3.764,-7.91322 C 238.92616,210.02152 248.60613,205 249.50891,205 c 0.31647,0 -0.56857,1.95204 -1.96676,4.33786 -1.39818,2.38582 -2.54215,4.61128 -2.54215,4.94547 0,0.33419 3.2625,2.31888 7.25,4.41043 8.49943,4.45816 17.10392,12.22174 16.58129,14.96079 -0.2663,1.39566 -1.56824,1.99176 -5.34171,2.44574 -12.29661,1.47938 -18.22479,1.74841 -21.30491,0.96684 z m -4.48668,-37.51107 C 228.71592,196.35222 223,190.11632 223,183.52098 c 0,-3.18469 6.79296,-24.08125 10.54889,-32.45058 2.54785,-5.67737 2.69084,-6.56849 1.51161,-9.42046 -5.29037,-12.79474 -3.95865,-17.9458 7.72685,-29.88743 4.70824,-4.81143 8.27792,-9.03058 7.93261,-9.37588 -0.3453,-0.3453 -5.71105,0.1046 -11.92389,0.99978 -15.04505,2.16777 -18.45876,2.11238 -19.76089,-0.32067 -2.61011,-4.877037 -1.38511,-6.246201 8.96482,-10.019819 3.025,-1.102926 9.06774,-4.489455 13.42831,-7.52562 C 245.78887,82.484135 250.21941,80 251.27394,80 c 2.8702,0 7.06975,3.374017 13.2138,10.616269 7.27159,8.571342 7.27534,10.480141 0.0329,16.732791 C 259.24091,111.90728 253,119.77561 253,121.87394 c 0,0.55748 1.9125,0.1772 4.25,-0.84507 17.83495,-7.79985 33.66161,0.76537 33.72804,18.25325 0.0366,9.64832 -4.14557,16.67283 -12.47804,20.95827 -6.134,3.15476 -18.21754,2.89137 -25.45097,-0.55476 -4.35446,-2.07453 -5.74345,-2.3544 -6.90491,-1.39128 -3.84371,3.18735 -5.70669,14.89206 -2.56233,16.09866 0.86998,0.33385 8.05332,0.60699 15.96298,0.60699 12.20137,0 15.18257,0.31513 19.66821,2.07902 9.86245,3.87822 11.90252,7.92098 3.99712,7.92098 -9.80376,0 -18.94392,3.38335 -31.34458,11.60261 -7.17284,4.75422 -8.40116,5.01028 -14.16753,2.95345 z m 30.38867,-50.83786 c 2.93786,-2.25562 4.09423,-5.67891 3.39249,-10.04306 -1.96659,-12.23033 -9.9569,-11.47615 -15.97235,1.50758 -1.32013,2.84937 -2.1452,5.59335 -1.83347,6.09773 1.87692,3.03693 11.51071,4.66631 14.41333,2.43775 z"
-       id="path3141"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#151412"
-       d="m 199.5,392.89708 c -29.7,-10.43789 -54.54384,-19.52227 -55.20852,-20.18753 -0.67782,-0.67839 -12.64432,-72.46473 -27.25,-163.47108 C 94.106844,66.335335 91,45.630183 91,35.68847 91,28.241882 91.408404,23.991596 92.2,23.2 93.123378,22.276622 130.44849,22 254.11821,22 c 88.39502,0 161.43002,0.273145 162.3,0.606989 1.33382,0.511833 1.58179,2.713998 1.58179,14.04745 0,12.221736 -2.09168,28.010402 -23.06766,174.122081 -12.68722,88.37489 -23.5261,161.234 -24.08641,161.90913 -0.79979,0.96369 -115.67129,39.49889 -117.00788,39.25188 C 253.65212,411.90317 229.2,403.33497 199.5,392.89708 z m 109.14641,-18.94804 c 29.06948,-9.92803 53.47939,-18.66991 54.24426,-19.42639 C 364.43,353.0002 407.59331,35.988527 406.61013,33.426393 406.13947,32.199889 384.83599,32 254.5904,32 c -83.3098,0 -151.68139,0.338208 -151.93686,0.751574 -0.91146,1.474772 48.17691,321.525606 49.4337,322.302346 0.67417,0.41666 20.84284,7.85443 44.81926,16.52837 23.97643,8.67395 46.2935,16.79437 49.5935,18.04538 3.3,1.25102 6.74089,2.29657 7.64641,2.32345 0.90553,0.0269 25.43053,-8.07405 54.5,-18.00208 z"
-       id="path3139"
-       inkscape:connector-curvature="0" />
-  </g>
-</svg>
diff --git a/themes/shogi/BlackGoldLance.svg b/themes/shogi/BlackGoldLance.svg
deleted file mode 100644 (file)
index 788b4ef..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg3247"
-   version="1.1"
-   inkscape:version="0.48.4 r9943 custom"
-   width="512"
-   height="512"
-   sodipodi:docname="BlackGoldLance.svg">
-  <metadata
-     id="metadata3253">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3251" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview3249"
-     showgrid="false"
-     inkscape:zoom="0.4609375"
-     inkscape:cx="256"
-     inkscape:cy="256"
-     inkscape:window-x="106"
-     inkscape:window-y="22"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3257" />
-  <g
-     id="g3257">
-    <g
-       id="g3935">
-      <path
-         inkscape:connector-curvature="0"
-         id="path3263"
-         d="m 202.64926,375.07216 c -28.51791,-10.36479 -52.44908,-19.45867 -53.18039,-20.20862 -0.82918,-0.85031 -10.58815,-58.42782 -25.92758,-152.97169 L 98.943356,50.283702 99.221678,35.891851 99.5,21.5 254.89374,21.246847 c 114.01825,-0.185748 155.75486,0.04655 156.75,0.872445 1.00598,0.834888 1.35455,4.257792 1.34964,13.253153 -0.006,10.555037 -2.9097,32.011119 -22.39574,165.473295 -12.31402,84.34016 -22.77354,153.72848 -23.24338,154.19627 -0.87775,0.8739 -110.63726,38.99099 -112.06173,38.9166 -0.43589,-0.0228 -24.12536,-8.52167 -52.64327,-18.88645 z"
-         style="fill:#d3bc5f" />
-      <g
-         transform="matrix(-1.1711716,0,0,-1.1711716,99.101722,501.58782)"
-         style="fill:#ff0000"
-         id="g3885">
-        <path
-           style="fill:#ff0000"
-           d="m -151.46875,154.65625 c -4.09713,0.0615 -3.15923,5.1898 -0.125,6.34375 2.98057,2.03653 7.95077,4.93061 4.65625,9.0625 -4.45878,10.30585 -13.38413,19.38487 -14.65625,30.9375 0.76623,6.51106 9.18855,5.21393 13.84375,5.71875 3.57778,-0.16041 5.95674,3.26041 3.59375,6.34375 -4.35088,9.00587 -14.1779,14.127 -17.78125,23.53125 10.10368,-3.56038 17.14047,-12.67863 26.15144,-18.15211 7.49381,-6.76451 18.54715,-10.01016 23.91106,-18.81664 2.37402,-5.13294 -4.18684,-8.08044 -8.3125,-8.03125 -7.63392,-0.74121 -15.28114,0.3857 -22.90625,0.71875 6.09894,-7.64215 15.86156,-13.48549 18.4375,-23.3125 0.30298,-8.96922 -9.94301,-12.58871 -17.25,-13.78125 -3.17494,-0.29148 -6.36948,-0.70016 -9.5625,-0.5625 z m 42.21875,62.375 c -23.67323,1.42366 -43.26089,17.07765 -61.33205,30.83595 -3.71441,2.3207 -7.59787,5.40347 -12.04295,4.22655 -5.20145,2.03287 -9.08722,8.15589 -8.8125,13.625 2.70022,4.40343 8.34217,-0.41805 11.5625,-1.75 13.39779,-7.09199 25.31469,-17.67318 39.71875,-22.625 5.23999,-0.78807 4.54811,6.91955 5.0625,10.1875 0.2977,10.87717 0.38405,22.05658 -0.53125,32.75 -3.34793,-7.79696 -12.77993,-15.52338 -21.34375,-10.65625 -11.39052,7.09269 -12.31311,23.38503 -7.625,34.84375 3.80097,12.22927 13.57935,20.91515 20.1875,31.5 2.24819,2.3586 0.74149,4.75197 0.78125,7.28125 2.96439,4.22667 8.62523,-0.35874 11.9375,-2.0625 9.88529,-5.20811 15.86452,-16.08977 14.40625,-27.25 -0.36046,-8.17823 -6.7875,-14.77094 -5.34375,-23.21875 0.17157,-17.30013 5.70005,-34.1418 5.09375,-51.4375 0.16994,-4.78542 -5.27764,-7.78174 -7.21875,-10.21875 6.98361,-2.65812 15.99101,-4.19815 22.75,-0.40625 0.38163,5.48406 -9.30987,8.43185 -5.71875,13.9375 5.35698,2.43471 11.194535,-1.90837 16.1875,-3.6875 5.616441,-2.00143 11.118874,-8.75764 6.96875,-14.53125 -5.500868,-7.76088 -15.216432,-11.91572 -24.6875,-11.34375 z M -154.96875,290 c 7.5434,1.96935 12.16377,9.80418 16.34375,15.90625 4.83681,9.03851 4.96084,20.24903 2.1875,29.90625 -10.68387,-10.08491 -18.6814,-24.00269 -20.84375,-38.53125 -0.004,-2.27061 -0.60599,-6.63167 2.3125,-7.28125 z m 29.0625,33.03125 c 3.33075,-0.021 -0.13512,5.62207 -1.25,4.40625 -0.27656,-1.46508 -0.10361,-3.5565 1.25,-4.40625 z m -15.78125,28.125 c -7.57866,0.69774 -15.89633,-0.5814 -23.03125,2.25 -2.72482,3.76467 3.19573,6.91462 5.78125,8.8125 12.58812,7.75066 27.95463,14.0996 43.03125,10.875 8.04225,-1.65992 12.21963,-12.75285 7.0625,-19.15625 -7.26489,-4.32732 -16.59371,-2.03691 -24.6875,-2.8125 -2.71881,0.004 -5.43769,-0.017 -8.15625,0.0312 z"
-           id="path3883"
-           inkscape:connector-curvature="0" />
-      </g>
-      <path
-         sodipodi:nodetypes="sssssssssscssssssssss"
-         inkscape:connector-curvature="0"
-         id="path3261"
-         d="M 202.01827,373.18144 C 155.67821,356.33603 150.45761,354.21891 149.74625,351.98347 149.31159,350.61756 137.94087,281.42862 124.47798,198.23028 102.89406,64.845374 100,45.626872 100,35.680277 100,28.240062 100.40851,23.991493 101.2,23.2 102.12286,22.277143 137.67071,22 255.11821,22 c 83.99502,0 153.43002,0.273145 154.3,0.606989 C 410.75195,23.118792 411,25.32013 411,36.644722 c 0,12.263795 -1.9161,26.569029 -22.05298,164.643008 -12.65935,86.80232 -22.56286,151.72912 -23.25,152.42566 -1.44623,1.46602 -107.81533,38.30858 -110.38801,38.23457 -0.99495,-0.0286 -24.97579,-8.47355 -53.29074,-18.76652 z M 307.1768,355.34385 c 28.45098,-9.71089 51.93606,-18.19557 52.18904,-18.85484 1.03982,-2.70972 40.75097,-301.742227 40.24582,-303.058631 C 399.13916,32.199071 379.09523,32 255.5904,32 c -78.9098,0 -143.68382,0.342135 -143.94226,0.760299 -0.44605,0.721723 44.81969,299.987081 45.88051,303.329801 0.3361,1.05907 16.61282,7.4569 48.73799,19.15729 26.52835,9.66195 48.4466,17.6089 48.70722,17.6599 0.26063,0.051 23.75195,-7.85256 52.20294,-17.56344 z"
-         style="fill:#f21612" />
-      <path
-         inkscape:connector-curvature="0"
-         id="path3259"
-         d="M 202.01827,373.18144 C 155.67821,356.33603 150.45761,354.21891 149.74625,351.98347 149.31159,350.61756 137.94087,281.42862 124.47798,198.23028 102.89406,64.845374 100,45.626872 100,35.680277 100,28.240062 100.40851,23.991493 101.2,23.2 102.12286,22.277143 137.67071,22 255.11821,22 c 83.99502,0 153.43002,0.273145 154.3,0.606989 C 410.75195,23.118792 411,25.32013 411,36.644722 c 0,12.263795 -1.9161,26.569029 -22.05298,164.643008 -12.65935,86.80232 -22.56286,151.72912 -23.25,152.42566 -1.44623,1.46602 -107.81533,38.30858 -110.38801,38.23457 -0.99495,-0.0286 -24.97579,-8.47355 -53.29074,-18.76652 z M 307.1768,355.34385 c 28.45098,-9.71089 51.93606,-18.19557 52.18904,-18.85484 1.03982,-2.70972 40.75097,-301.742227 40.24582,-303.058631 C 399.13916,32.199071 379.09523,32 255.5904,32 c -78.9098,0 -143.68382,0.342135 -143.94226,0.760299 -0.44605,0.721723 44.81969,299.987081 45.88051,303.329801 0.3361,1.05907 16.61282,7.4569 48.73799,19.15729 26.52835,9.66195 48.4466,17.6089 48.70722,17.6599 0.26063,0.051 23.75195,-7.85256 52.20294,-17.56344 z"
-         style="fill:#151412" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/shogi/BlackGoldPawn.svg b/themes/shogi/BlackGoldPawn.svg
deleted file mode 100644 (file)
index 0f3ae7b..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg3335"
-   version="1.1"
-   inkscape:version="0.48.4 r9943 custom"
-   width="512"
-   height="512"
-   sodipodi:docname="BlackGoldPawn.svg">
-  <metadata
-     id="metadata3341">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3339" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview3337"
-     showgrid="false"
-     inkscape:zoom="0.4609375"
-     inkscape:cx="256"
-     inkscape:cy="256"
-     inkscape:window-x="347"
-     inkscape:window-y="22"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3355" />
-  <g
-     id="g3355">
-    <g
-       id="g4065">
-      <path
-         inkscape:connector-curvature="0"
-         id="path3361"
-         d="M 207.01633,356.66921 C 167.01924,341.2986 159.33758,338.03357 158.29539,335.96078 157.61488,334.60735 146.90742,269.75492 134.50102,191.84427 L 111.94394,50.188539 112.22197,35.84427 112.5,21.5 254.8934,21.246565 c 104.40586,-0.185823 142.75531,0.04693 143.75,0.872445 1.00657,0.835378 1.35449,4.255058 1.34843,13.253435 -0.007,10.350027 -2.99087,33.280816 -20.35821,156.450055 -14.05048,99.64604 -20.78088,144.73734 -21.74183,145.66262 -1.26334,1.21645 -100.8226,37.57078 -102.62367,37.47331 -0.42247,-0.0229 -22.13577,-8.25301 -48.25179,-18.28922 z"
-         style="fill:#d3bc5f" />
-      <path
-         sodipodi:nodetypes="sssssssssscssssssscs"
-         inkscape:connector-curvature="0"
-         id="path3359"
-         d="M 207.21596,355.12222 C 181.75974,345.33756 160.52966,336.91974 160.038,336.41596 159.54635,335.91218 148.76166,270.59251 136.07204,191.26113 115.83712,64.759019 113,45.63136 113,35.711133 113,28.246918 113.40812,23.99188 114.2,23.2 115.12188,22.278118 147.78183,22 255.11821,22 c 76.84502,0 140.43002,0.273145 141.3,0.606989 C 397.75259,23.119037 398,25.32713 398,36.724143 c 0,12.15881 -2.00694,27.777027 -20.06434,156.143007 -14.35996,102.08173 -20.46318,142.94168 -21.4672,143.71911 -1.97425,1.52869 -99.0876,36.42331 -101.2194,36.37 -0.96198,-0.0241 -22.57688,-8.04938 -48.0331,-17.83404 z m 95.24558,-17.63448 c 25.82884,-9.08095 47.35813,-16.90741 47.84286,-17.39214 1.13128,-1.13128 37.05874,-284.706893 36.31601,-286.642425 C 386.13666,32.19255 368.77483,32 255.5904,32 c -71.7598,0 -130.68273,0.340378 -130.93984,0.756395 -0.75565,1.222669 41.03911,286.333275 42.13458,287.428745 0.74407,0.74407 85.4361,33.10316 88.21486,33.70509 0.275,0.0596 21.63269,-7.32155 47.46154,-16.40249 z"
-         style="fill:#f01713" />
-      <g
-         transform="matrix(-1.5626356,0,0,-1.1267045,1248.9614,529.82455)"
-         id="g4026">
-        <path
-           style="fill:#ff0000"
-           d="m 609.40625,227.90625 c 4.91804,10.34622 12.02207,21.28122 8.52085,33.11102 -2.8456,12.78488 -5.61731,26.56733 -0.0208,39.04523 5.56247,13.70412 -4.36251,26.91486 -6.25,40.21875 -3.66839,15.57304 -0.59537,33.57994 11.53125,44.53125 10.611,9.93132 26.03017,19.09285 40.9375,13.96875 4.75792,-1.62264 3.21104,-7.84555 -0.5,-9.75 -10.27479,-8.03941 -25.62394,-7.73023 -33.28125,-19.46875 -11.85415,-15.34296 -8.70369,-40.00464 7.6875,-51 7.94362,-7.22688 20.10688,-9.8575 25.875,-19.1875 1.45705,-5.75821 -4.59482,-10.31737 -9.9375,-8.5625 -7.82064,1.58274 -14.62227,6.17426 -21.75,9.625 0.55094,-18.20407 5.12982,-37.1172 0.15625,-55 -3.7278,-12.09808 -16.64599,-17.18275 -26.0625,-24.0625 1.03125,2.17708 2.0625,4.35417 3.09375,6.53125 z"
-           id="path4024"
-           inkscape:connector-curvature="0" />
-      </g>
-      <path
-         inkscape:connector-curvature="0"
-         id="path3357"
-         d="M 207.21596,355.12222 C 181.75974,345.33756 160.52966,336.91974 160.038,336.41596 159.54635,335.91218 148.76166,270.59251 136.07204,191.26113 115.83712,64.759019 113,45.63136 113,35.711133 113,28.246918 113.40812,23.99188 114.2,23.2 115.12188,22.278118 147.78183,22 255.11821,22 c 76.84502,0 140.43002,0.273145 141.3,0.606989 C 397.75259,23.119037 398,25.32713 398,36.724143 c 0,12.15881 -2.00694,27.777027 -20.06434,156.143007 -14.35996,102.08173 -20.46318,142.94168 -21.4672,143.71911 -1.97425,1.52869 -99.0876,36.42331 -101.2194,36.37 -0.96198,-0.0241 -22.57688,-8.04938 -48.0331,-17.83404 z m 95.24558,-17.63448 c 25.82884,-9.08095 47.35813,-16.90741 47.84286,-17.39214 1.13128,-1.13128 37.05874,-284.706893 36.31601,-286.642425 C 386.13666,32.19255 368.77483,32 255.5904,32 c -71.7598,0 -130.68273,0.340378 -130.93984,0.756395 -0.75565,1.222669 41.03911,286.333275 42.13458,287.428745 0.74407,0.74407 85.4361,33.10316 88.21486,33.70509 0.275,0.0596 21.63269,-7.32155 47.46154,-16.40249 z"
-         style="fill:#161513" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/shogi/BlackGoldSilver.svg b/themes/shogi/BlackGoldSilver.svg
deleted file mode 100644 (file)
index 22bf26c..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg3497"
-   version="1.1"
-   inkscape:version="0.48.4 r9943 custom"
-   width="512"
-   height="512"
-   sodipodi:docname="BlackGoldSilver.svg">
-  <metadata
-     id="metadata3503">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3501" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview3499"
-     showgrid="false"
-     inkscape:zoom="0.4609375"
-     inkscape:cx="256"
-     inkscape:cy="256"
-     inkscape:window-x="60"
-     inkscape:window-y="59"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3507" />
-  <g
-     id="g3507">
-    <g
-       id="g3780">
-      <g
-         id="g3289">
-        <path
-           style="fill:#d3bc5f"
-           d="m 193.50633,412.36873 c -32.44652,-11.80084 -59.38801,-21.85041 -59.86998,-22.33238 -0.48196,-0.48196 -13.65317,-75.94981 -29.26934,-167.70632 L 75.973971,55.5 76.236986,38.5 76.5,21.5 254.89422,21.247246 c 138.63089,-0.196416 178.71993,0.01756 179.85548,0.95999 1.21853,1.011283 1.37731,4.209548 0.95582,19.252754 -0.49094,17.521974 -1.25178,22.773539 -26.49522,182.87975 -14.29438,90.66185 -26.37689,165.22208 -26.85004,165.6894 -1.53317,1.51428 -124.74436,43.97369 -127.343,43.88326 -1.38449,-0.0482 -29.06441,-9.74283 -61.51093,-21.54367 z"
-           id="path3513"
-           inkscape:connector-curvature="0" />
-        <g
-           id="g3250"
-           transform="matrix(-1.3586678,0,0,-1.3586678,-194.88998,564.51032)" />
-        <path
-           style="fill:#f4130f"
-           d="M 195.5266,411.42227 C 163.09124,399.63 135.99659,389.42338 135.31627,388.74089 134.61967,388.04207 121.61209,314.25244 105.53966,219.82368 77.582135,55.567528 77,51.864378 77,38.273683 77,28.816374 77.381993,24.018007 78.2,23.2 79.124228,22.275772 119.78183,22 255.11821,22 c 96.64502,0 176.43002,0.273145 177.3,0.606989 1.35077,0.51834 1.58179,2.933231 1.58179,16.535044 0,15.908587 -0.0318,16.131226 -26.04561,182.143007 -14.70096,93.81689 -26.57021,166.74008 -27.25,167.42056 -1.06444,1.06551 -124.14998,44.39873 -125.62081,44.22578 -0.32097,-0.0377 -27.12161,-9.71684 -59.55698,-21.50911 z m 119.20039,-18.5167 c 31.77516,-10.50194 58.29161,-19.61444 58.92545,-20.25 1.31913,-1.32271 49.76778,-337.11812 48.94779,-339.254965 C 422.14242,32.20756 397.39275,32 255.5904,32 164.0306,32 88.910146,32.3375 88.656061,32.75 c -0.614338,0.997359 52.086169,337.34307 53.143679,339.1741 0.80279,1.39001 110.00472,39.92397 113.42725,40.02495 0.94985,0.028 27.72485,-8.54155 59.5,-19.04348 z"
-           id="path3511"
-           inkscape:connector-curvature="0"
-           sodipodi:nodetypes="sssssssssscssssssscs" />
-        <path
-           style="fill:#151412"
-           d="M 195.5266,411.42227 C 163.09124,399.63 135.99659,389.42338 135.31627,388.74089 134.61967,388.04207 121.61209,314.25244 105.53966,219.82368 77.582135,55.567528 77,51.864378 77,38.273683 77,28.816374 77.381993,24.018007 78.2,23.2 79.124228,22.275772 119.78183,22 255.11821,22 c 96.64502,0 176.43002,0.273145 177.3,0.606989 1.35077,0.51834 1.58179,2.933231 1.58179,16.535044 0,15.908587 -0.0318,16.131226 -26.04561,182.143007 -14.70096,93.81689 -26.57021,166.74008 -27.25,167.42056 -1.06444,1.06551 -124.14998,44.39873 -125.62081,44.22578 -0.32097,-0.0377 -27.12161,-9.71684 -59.55698,-21.50911 z m 119.20039,-18.5167 c 31.77516,-10.50194 58.29161,-19.61444 58.92545,-20.25 1.31913,-1.32271 49.76778,-337.11812 48.94779,-339.254965 C 422.14242,32.20756 397.39275,32 255.5904,32 164.0306,32 88.910146,32.3375 88.656061,32.75 c -0.614338,0.997359 52.086169,337.34307 53.143679,339.1741 0.80279,1.39001 110.00472,39.92397 113.42725,40.02495 0.94985,0.028 27.72485,-8.54155 59.5,-19.04348 z"
-           id="path3509"
-           inkscape:connector-curvature="0" />
-      </g>
-      <g
-         transform="matrix(-1.3586678,0,0,-1.3586678,-190.3815,564.44252)"
-         id="g3250-7">
-        <path
-           style="fill:#ff0000"
-           d="m -368.08221,357.37962 c -9.09419,-1.71879 -16.35961,-9.71818 -13.30924,-14.6538 1.21928,-1.97282 5.62772,-5.40423 9.79653,-7.6253 6.89145,-3.67168 7.14292,-3.50899 2.76963,1.79202 -6.72534,8.15197 -3.10639,10.18696 13.21286,7.42982 12.67032,-2.14062 14.04971,-3.36124 14.04971,-12.43276 0,-11.76516 -0.68828,-11.97961 -13.07492,-4.07379 -8.89548,5.67756 -9.13388,5.67756 -4.63687,0 4.06336,-5.1301 3.99277,-5.9853 -0.494,-5.9853 -5.29833,0 -11.11173,-9.8305 -7.7823,-13.15993 0.99464,-0.99464 1.80843,0.005 1.80843,2.22151 0,2.31779 5.23856,4.02995 12.33007,4.02995 10.81098,0 12.19409,-0.95754 11.22627,-7.77204 -0.7369,-5.18865 -3.11309,-7.43466 -7.14872,-6.75705 -3.3247,0.55824 -6.04491,-0.60756 -6.04491,-2.59068 0,-1.98311 -2.03452,-3.60566 -4.52115,-3.60566 -2.48663,0 -7.53845,-2.40139 -11.22627,-5.33643 -6.20506,-4.93844 -5.38774,-5.17671 10.95892,-3.19484 15.93294,1.93172 17.84889,1.43471 19.5503,-5.07149 1.92967,-7.37908 -5.57942,-14.03114 -15.83888,-14.03114 -2.74202,0 -6.7393,-2.1132 -8.88284,-4.69601 -3.17795,-3.82921 -0.22742,-5.17132 15.98468,-7.27098 30.90235,-4.00223 39.83715,-3.90532 41.33261,0.44829 0.76049,2.21396 -3.93583,5.94858 -10.43627,8.29917 -15.07921,5.45272 -13.85828,16.12606 2.02557,17.70748 12.18691,1.21335 17.45252,9.69172 6.01918,9.69172 -11.17795,0 -20.78619,6.34256 -20.78619,13.72131 0,5.57918 1.8229,6.27395 12.08983,4.60786 12.71086,-2.06269 17.60572,4.36285 6.04492,7.93524 -12.10159,3.73951 -16.41527,7.44235 -16.78575,14.40885 -0.33907,6.3758 1.57269,7.09255 18.51155,6.94032 12.449,-0.11191 19.88992,1.44871 21.82327,4.57694 4.95021,8.00961 -1.85566,10.61781 -30.17948,11.56551 -14.96245,0.50066 -30.27815,1.67358 -34.0349,2.6065 -3.75675,0.93292 -10.21499,1.05655 -14.35164,0.27461 z m 92.09067,-96.58588 c -10.41644,-8.87242 -27.90407,-24.7834 -38.86141,-35.35773 l -19.92243,-19.22606 -18.07418,19.67173 c -16.83579,18.32388 -54.99671,47.58951 -62.05433,47.58951 -1.71111,0 9.81603,-12.27887 25.61588,-27.28638 15.79984,-15.0075 32.613,-34.60188 37.36258,-43.54304 l 8.63559,-16.25667 -7.77203,-5.2376 c -10.62637,-7.16114 -9.74876,-11.30343 2.3948,-11.30343 13.1241,0 21.72237,11.26024 17.3599,22.73441 -3.496,9.19515 -1.15538,11.26882 39.83089,35.28831 31.62331,18.53244 42.39692,27.97508 45.13551,39.55948 3.47552,14.70169 -7.48134,12.25077 -29.65077,-6.63253 z"
-           id="path3248"
-           inkscape:connector-curvature="0"
-           sodipodi:nodetypes="csssssssssssssssssssssssssssssssssccsscsssscssssss" />
-      </g>
-    </g>
-  </g>
-</svg>
diff --git a/themes/shogi/BlackJewled.svg b/themes/shogi/BlackJewled.svg
deleted file mode 100644 (file)
index 279fb99..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg3728"
-   version="1.1"
-   inkscape:version="0.48.4 r9943 custom"
-   width="512"
-   height="512"
-   sodipodi:docname="BlackJewled.svg">
-  <metadata
-     id="metadata3734">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3732" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview3730"
-     showgrid="false"
-     inkscape:zoom="0.4609375"
-     inkscape:cx="256"
-     inkscape:cy="256"
-     inkscape:window-x="102"
-     inkscape:window-y="22"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3033" />
-  <g
-     id="g3738">
-    <g
-       style="fill:#000000"
-       transform="matrix(1.0978725,0,0,-1.0978725,-196.04681,538.67478)"
-       id="g3033">
-      <g
-         id="g3598">
-        <g
-           transform="matrix(0.91085258,0,0,-0.91085258,178.56974,490.65331)"
-           id="g3150">
-          <path
-             style="fill:#d3bc5f"
-             d="M 187.50717,456.52228 C 151.21111,444.78591 120.91024,434.80237 120.1719,434.33663 119.25149,433.75606 109.41981,374.85986 88.89851,246.99492 L 58.967563,60.5 59.233782,41 59.5,21.5 254.3945,21.247476 c 143.2249,-0.185576 195.25386,0.04572 196.25,0.872444 1.04426,0.866659 1.35509,5.057719 1.35371,18.252525 L 451.99641,57.5 421.60575,245.34245 c -16.71486,103.31335 -30.77655,188.22179 -31.2482,188.68542 -0.96605,0.94963 -134.16893,44.01079 -135.80603,43.9027 -0.57833,-0.0382 -30.74829,-9.67192 -67.04435,-21.40829 z"
-             id="path3742"
-             inkscape:connector-curvature="0" />
-          <path
-             style="fill:#110f0d"
-             d="M 187.5,454.87021 C 151.75,443.3157 121.96135,433.33056 121.303,432.681 120.63756,432.02446 106.90731,349.56799 90.384292,247 L 60.662582,62.5 60.237071,43.715991 C 59.923958,29.893732 60.132939,24.544744 61.028225,23.465991 62.089441,22.187303 86.813702,22 254.54066,22 360.30333,22 447.54823,22.273145 448.41821,22.606989 449.78088,23.129894 450,25.74971 450,41.519063 l 0,18.305085 -30.05432,185.837922 c -16.65068,102.95781 -30.58757,186.36448 -31.25,187.01858 -1.50867,1.48971 -131.23529,43.34091 -134.089,43.25855 C 253.448,475.90577 223.25,466.42472 187.5,454.87021 z m 131.27021,-23.96802 c 53.21584,-17.71948 63.49985,-21.44244 64.22392,-23.25 1.34374,-3.35448 56.21919,-372.653903 55.60986,-374.241797 C 438.14092,32.203646 411.64344,32 255.0904,32 154.4556,32 71.902361,32.348966 71.638761,32.775479 71.205565,33.476405 126.52123,405.92879 127.4627,408.65014 c 0.29888,0.86395 125.15129,43.31013 127.4915,43.3434 0.24982,0.004 28.96702,-9.48756 63.81601,-21.09135 z"
-             id="path3740"
-             inkscape:connector-curvature="0"
-             sodipodi:nodetypes="ssscssssscsssssssssscs" />
-        </g>
-        <g
-           transform="matrix(-1.0302869,0,0,1.0302869,1209.2317,35.115797)"
-           id="g3543">
-          <path
-             style="fill:#000000"
-             d="m 837.54369,384.45473 c -5.7007,-7.19779 -15.5122,-14.94815 -21.8033,-17.22302 -17.1637,-6.20648 -13.8012,-10.1362 7.603,-8.88559 l 19.0414,1.11258 0,-23.18087 0,-23.18087 -21.5251,0.98946 c -11.8388,0.54419 -30.9313,3.15204 -42.4277,5.79522 -33.4638,7.6937 -41.5968,5.50768 -48.1742,-12.9486 -1.7712,-4.97021 -1.0671,-5.66809 3.6361,-3.6035 11.3566,4.98521 31.2893,5.46923 63.3739,1.53891 35.9592,-4.40499 41.3235,-6.38454 38.3437,-14.14975 -1.8166,-4.73387 -3.4413,-4.79316 -15.4305,-0.56313 -14.6043,5.15268 -30.3302,5.7723 -40.7157,1.60425 -5.6257,-2.2578 -4.6283,-3.17917 6.6231,-6.11823 7.2855,-1.90308 17.777,-4.37748 23.3146,-5.49869 13.9017,-2.81469 31.3261,-13.92924 31.3261,-19.98211 0,-6.90597 -7.3025,-6.28166 -23.1515,1.97928 -7.9139,4.12498 -16.8943,6.33128 -21.8862,5.37701 -5.9678,-1.14081 -10.7872,0.70347 -16.3347,6.25093 -9.0345,9.03447 -19.7833,10.2787 -22.7184,2.62978 -1.3356,-3.48056 3.548,-10.82728 14.5477,-21.88495 9.107,-9.15505 16.5244,-17.60125 16.483,-18.76934 -0.041,-1.16809 -4.7894,-4.44634 -10.5512,-7.285 -16.5482,-8.15276 -14.8721,-12.16036 5.1609,-12.34037 9.8869,-0.0888 22.5383,-2.52068 28.1142,-5.40408 12.6939,-6.56431 21.7171,-6.67042 26.9896,-0.31738 7.4194,8.93981 1.4344,13.93036 -19.5541,16.30493 -19.4867,2.20466 -20.1495,2.5946 -20.1495,11.85443 0,5.26613 -1.4902,10.49577 -3.3116,11.62143 -4.9646,3.06828 -3.9866,8.27888 1.5538,8.27888 2.676,0 10.9217,-3.15674 18.3239,-7.01498 29.4527,-15.3516 56.5685,4.72982 34.2794,25.38665 -6.4239,5.95343 -7.3578,8.12075 -3.4994,8.12075 2.8948,0 7.5276,3.23288 10.2952,7.18418 4.6445,6.63099 6.0598,6.87621 18.3816,3.18451 14.4963,-4.3432 24.2336,-1.53432 27.9121,8.0517 3.508,9.1416 -0.5733,10.81933 -21.6663,8.90668 -20.282,-1.8391 -20.3752,-1.80768 -18.1227,6.10939 4.8021,16.87855 6.0441,51.43497 2.3391,65.08224 -4.9342,18.175 -12.777,18.46588 -26.6203,0.98727 z m -148.44474,-7.61037 c -10.53544,-18.55291 -9.42453,-22.73997 3.74407,-14.11156 8.12046,5.32071 8.17011,5.28491 10.03978,-7.24236 1.03342,-6.92423 2.8203,-21.00585 3.97083,-31.29246 l 2.09186,-18.70298 -16.89703,8.36226 c -15.40113,7.62194 -16.89704,9.36557 -16.89704,19.6953 0,13.85911 -8.31663,30.87347 -15.09096,30.87347 -8.35865,0 -8.95791,-8.67305 -1.72851,-25.0163 8.14835,-18.42071 8.09621,-18.03388 2.43073,-18.03388 -6.03795,0 -15.41524,-10.80544 -15.41524,-17.76291 0,-4.65806 1.18465,-5.017 6.74211,-2.04273 18.83095,10.07802 56.74144,-0.59651 58.99864,-16.61235 1.121,-7.95398 0.9231,-8.0504 -5.18232,-2.52504 -3.49133,3.15961 -11.11976,7.40823 -16.95208,9.44139 -8.65098,3.01575 -12.11867,2.70433 -18.82639,-1.69074 -11.42763,-7.48767 -10.26301,-11.85781 3.16004,-11.85781 11.28034,0 11.36535,-0.11117 9.49655,-12.41832 -1.03712,-6.83008 -4.92869,-15.77127 -8.64793,-19.86932 l -6.76225,-7.45099 7.35088,0 c 9.80438,0 23.6076,14.25255 23.6076,24.37609 0,12.21015 11.9476,7.78128 14.5852,-5.40659 1.6261,-8.1307 0.3313,-12.04136 -6.26781,-18.92931 -14.77852,-15.42545 -9.2961,-24.73998 9.51651,-16.16838 13.9867,6.37278 16.965,19.30807 10.3853,45.10553 -3.1354,12.29345 -6.7424,42.46941 -8.0154,67.05769 -3.2547,62.86489 -11.22406,74.29551 -29.43714,42.2223 z m 75.91754,-25.31438 c -3.2388,-2.05197 -0.432,-4.24087 9.9347,-7.74764 12.667,-4.28492 14.3312,-5.96788 13.4956,-13.64707 -0.73,-6.70759 0.5073,-8.75942 5.2819,-8.75942 8.2935,0 18.5139,11.65934 15.9888,18.23973 -4.0184,10.47186 -34.2567,18.53145 -44.701,11.9144 z m -61.71687,-161.1239 c -20.33625,-10.41912 -24.10087,-23.21707 -5.79522,-19.70104 11.32539,2.17532 54.10039,2.81769 55.47819,0.83314 0.32,-0.46089 -0.08,-7.17133 -0.8897,-14.91209 -1.4489,-13.85832 -1.6663,-14.0741 -14.1851,-14.0741 -8.582,0 -15.6633,-2.53708 -21.7898,-7.80686 l -9.07599,-7.80686 21.30969,0.35587 21.3097,0.35587 1.0277,-12.41833 1.0278,-12.41832 -14.9172,0 c -10.9989,0 -17.3578,-2.10064 -24.2086,-7.997157 -11.72482,-10.091551 -9.44697,-12.468233 7.763,-8.099874 9.6122,2.439844 21.5658,2.307654 41.2876,-0.456557 15.267,-2.139849 33.0571,-4.6353 39.5334,-5.545444 7.9261,-1.1139 13.0811,-0.0811 15.7707,3.159636 6.1708,7.435359 -3.3486,13.205579 -24.7081,14.976869 -16.7076,1.385527 -18.1233,2.122127 -16.4022,8.534687 1.036,3.86005 1.904,9.79197 1.9288,13.18204 0.039,5.27128 1.7598,5.8421 11.8867,3.94229 12.445,-2.33469 21.2741,1.8855 21.2741,10.16875 0,3.18994 -4.4228,4.56184 -14.7066,4.56184 -16.6257,0 -16.9141,0.25463 -20.2148,17.84875 l -2.4071,12.83098 19.4921,-2.78089 c 28.8349,-4.1138 40.0904,-3.27173 47.6443,3.56445 12.7183,11.50991 6.6603,13.23937 -46.6482,13.31732 -41.2898,0.0604 -53.3998,1.16805 -63.3585,5.79522 -14.93,6.937 -15.0338,6.93923 -27.42667,0.58981 z m 130.76737,-50.19105 c -2.5447,-5.08941 -7.5622,-12.60642 -11.15,-16.70446 -6.4977,-7.42177 -6.497,-7.451 0.1873,-7.451 11.4326,0 29.2152,14.18998 29.2152,23.31278 0,12.20146 -12.2895,12.76884 -18.2525,0.84268 z"
-             id="path3531"
-             inkscape:connector-curvature="0"
-             sodipodi:nodetypes="ssscccsscssssssssssssscsssssssssssssssssssssscsssssssssssssscsssssssssscsssssccsscccccsssssssscsssscssssssssss" />
-        </g>
-      </g>
-    </g>
-  </g>
-</svg>
diff --git a/themes/shogi/BlackKing.svg b/themes/shogi/BlackKing.svg
deleted file mode 100644 (file)
index 44ffa0e..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg3862"
-   version="1.1"
-   inkscape:version="0.48.4 r9943 custom"
-   width="512"
-   height="512"
-   sodipodi:docname="BlackKing.svg">
-  <metadata
-     id="metadata3868">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3866" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview3864"
-     showgrid="false"
-     inkscape:zoom="0.4609375"
-     inkscape:cx="256"
-     inkscape:cy="256"
-     inkscape:window-x="51"
-     inkscape:window-y="22"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3872" />
-  <g
-     id="g3872">
-    <g
-       id="g3415">
-      <g
-         id="g3079">
-        <path
-           style="fill:#d3bc5f"
-           d="M 188.50717,456.52228 C 152.21111,444.78591 121.91024,434.80237 121.1719,434.33663 120.25149,433.75606 110.41981,374.85986 89.89851,246.99492 L 59.967563,60.5 60.233782,41 60.5,21.5 255.3945,21.247476 c 143.2249,-0.185576 195.25386,0.04572 196.25,0.872444 1.04426,0.866659 1.35509,5.057719 1.35371,18.252525 L 452.99641,57.5 422.60575,245.34245 c -16.71486,103.31335 -30.77655,188.22179 -31.2482,188.68542 -0.96605,0.94963 -134.16893,44.01079 -135.80603,43.9027 -0.57833,-0.0382 -30.74829,-9.67192 -67.04435,-21.40829 z"
-           id="path3876"
-           inkscape:connector-curvature="0" />
-        <path
-           style="fill:#11100e"
-           d="M 188.5,454.87021 C 152.75,443.3157 122.96135,433.33056 122.303,432.681 121.63756,432.02446 107.90731,349.56799 91.384292,247 L 61.662582,62.5 61.237071,43.715991 C 60.923958,29.893732 61.132939,24.544744 62.028225,23.465991 63.089441,22.187303 87.813702,22 255.54066,22 361.30333,22 448.54823,22.273145 449.41821,22.606989 450.78088,23.129894 451,25.74971 451,41.519063 l 0,18.305085 -30.05432,185.837922 c -16.65068,102.95781 -30.58757,186.36448 -31.25,187.01858 -1.50867,1.48971 -131.23529,43.34091 -134.089,43.25855 C 254.448,475.90577 224.25,466.42472 188.5,454.87021 z m 131.27021,-23.96802 c 53.21584,-17.71948 63.49985,-21.44244 64.22392,-23.25 1.34374,-3.35448 56.21919,-372.653903 55.60986,-374.241797 C 439.14092,32.203646 412.64344,32 256.0904,32 155.4556,32 72.902304,32.349058 72.638635,32.775684 72.167065,33.5387 127.42853,404.6241 128.53101,408.09771 c 0.42951,1.35326 15.74642,6.83829 63.76714,22.83522 34.76102,11.57979 63.40624,21.05706 63.65605,21.06061 0.24982,0.004 28.96702,-9.48756 63.81601,-21.09135 z"
-           id="path3874"
-           inkscape:connector-curvature="0"
-           sodipodi:nodetypes="ssscssssscssssssssssscs" />
-      </g>
-      <g
-         transform="matrix(-1.0827996,0,0,-1.0827996,-32.872152,470.92258)"
-         id="g3344">
-        <path
-           style="fill:#000000"
-           d="m -201.83361,379.39189 c -5.99632,-7.57101 -16.31658,-15.72324 -22.9339,-18.11607 -18.05367,-6.52829 -14.51681,-10.66178 7.99727,-9.34632 l 20.02876,1.17027 0,-24.38285 0,-24.38284 -22.64121,1.04076 c -12.45267,0.57241 -32.53516,3.31548 -44.62776,6.09572 -35.19893,8.09263 -43.75358,5.79326 -50.67203,-13.62002 -1.86312,-5.22792 -1.12244,-5.96199 3.82462,-3.79034 11.94539,5.2437 32.91171,5.75281 66.6599,1.6187 37.82378,-4.6334 43.46622,-6.71559 40.33192,-14.88344 -1.91074,-4.97933 -3.61974,-5.0417 -16.2306,-0.59233 -15.3615,5.41986 -31.90291,6.07161 -42.82684,1.68743 -5.91741,-2.37486 -4.86828,-3.34402 6.96652,-6.43547 7.66318,-2.00175 18.69876,-4.60446 24.5235,-5.78381 14.62253,-2.96063 32.95035,-14.6515 32.95035,-21.01822 0,-7.26405 -7.68114,-6.60737 -24.35191,2.08192 -8.32428,4.33886 -17.77031,6.65956 -23.02106,5.65581 -6.27725,-1.19997 -11.34656,0.73995 -17.18166,6.57505 -9.50293,9.50293 -20.80906,10.81167 -23.89642,2.76614 -1.40487,-3.66103 3.73197,-11.38869 15.30201,-23.01973 9.57926,-9.62975 17.38123,-18.5139 17.33772,-19.74256 -0.0435,-1.22866 -5.03774,-4.6769 -11.0983,-7.66274 -17.40625,-8.5755 -15.64331,-12.7909 5.42854,-12.98025 10.39954,-0.0935 23.70689,-2.65138 29.5719,-5.68429 13.35217,-6.90468 22.84317,-7.01629 28.3891,-0.33384 7.80409,9.40336 1.50872,14.65268 -20.56799,17.15037 -20.49719,2.31898 -21.19435,2.72914 -21.19435,12.46911 0,5.53919 -1.56747,11.04 -3.48327,12.22403 -5.22199,3.22737 -4.19335,8.70815 1.63437,8.70815 2.8147,0 11.48801,-3.32042 19.27402,-7.37872 30.97987,-16.14761 59.50164,4.97507 36.05682,26.703 -6.75695,6.26213 -7.7393,8.54183 -3.68078,8.54183 3.04481,0 7.91783,3.40051 10.82893,7.55669 4.88537,6.97482 6.37409,7.23276 19.33478,3.34963 15.24797,-4.5684 25.49019,-1.61387 29.35944,8.4692 3.68982,9.61561 -0.60306,11.38034 -22.78979,9.36851 -21.33363,-1.93446 -21.43169,-1.90141 -19.06242,6.42617 5.0511,17.75374 6.35748,54.10198 2.46038,68.45689 -5.19005,19.1174 -13.43944,19.42337 -28.00056,1.03846 z m -156.14193,-8.00499 c -11.08173,-19.51491 -9.91321,-23.91908 3.93821,-14.84326 8.54152,5.59659 8.59374,5.55894 10.56036,-7.6179 1.08701,-7.28326 2.96654,-22.09504 4.17673,-32.91503 l 2.20034,-19.67277 -17.77319,8.79586 c -16.19971,8.01715 -17.77319,9.85119 -17.77319,20.71654 0,14.57773 -8.74786,32.47432 -15.87346,32.47432 -8.79205,0 -9.42239,-9.12277 -1.81813,-26.31344 8.57086,-19.37586 8.51602,-18.96898 2.55677,-18.96898 -6.35103,0 -16.21455,-11.36572 -16.21455,-18.68395 0,-4.89959 1.24607,-5.27714 7.0917,-2.14865 19.80738,10.60058 59.68363,-0.62744 62.05788,-17.47373 1.17912,-8.36641 0.97096,-8.46783 -5.45108,-2.65597 -3.67236,3.32344 -11.69634,7.79237 -17.83107,9.93094 -9.09956,3.17212 -12.74706,2.84456 -19.80259,-1.7784 -12.02017,-7.87592 -10.79516,-12.47266 3.3239,-12.47266 11.86525,0 11.95467,-0.11694 9.98897,-13.06224 -1.0909,-7.18423 -5.18426,-16.58904 -9.09635,-20.89958 l -7.11288,-7.83735 7.73204,0 c 10.31275,0 24.83169,14.99159 24.83169,25.64005 0,12.84327 12.56715,8.18476 15.34149,-5.68693 1.71046,-8.55229 0.34843,-12.66573 -6.59282,-19.91084 -15.54481,-16.22528 -9.77812,-26.02279 10.00995,-17.00674 14.71198,6.70322 17.84471,20.30924 10.92385,47.44434 -3.29805,12.93089 -7.09201,44.67153 -8.43103,70.53476 -3.42346,66.12457 -11.80607,78.14789 -30.96354,44.41161 z m 79.85405,-26.62697 c -3.40674,-2.15837 -0.45443,-4.46077 10.44979,-8.14937 13.32381,-4.5071 15.07436,-6.27733 14.19535,-14.35471 -0.76779,-7.05538 0.53364,-9.21361 5.55585,-9.21361 8.72346,0 19.47387,12.26391 16.81781,19.1855 -4.22679,11.01485 -36.03299,19.49234 -47.0188,12.53219 z m -64.91705,-169.47849 c -21.39073,-10.95938 -25.35055,-24.42093 -6.09571,-20.72258 11.91264,2.28811 56.90557,2.96379 58.35482,0.87634 0.33658,-0.48479 -0.0845,-7.54319 -0.93578,-15.68531 -1.52402,-14.57691 -1.75277,-14.80387 -14.92069,-14.80387 -9.027,0 -16.47542,-2.66864 -22.91958,-8.21167 l -9.54663,-8.21166 22.41463,0.37432 22.41463,0.37432 1.08108,-13.06224 1.08109,-13.062234 -15.69072,0 c -11.56919,0 -18.25787,-2.209559 -25.46393,-8.41183 -12.33273,-10.614817 -9.93677,-13.114734 8.16558,-8.519867 10.11064,2.566353 22.68407,2.427316 43.4284,-0.480231 16.05871,-2.250804 34.7712,-4.875649 41.5833,-5.832985 8.33713,-1.171659 13.75941,-0.0853 16.58845,3.323468 6.49077,7.820902 -3.52222,13.890314 -25.98921,15.753453 -17.57401,1.457373 -19.06303,2.232169 -17.25273,8.977226 1.08971,4.0602 2.0027,10.2997 2.02886,13.86555 0.0407,5.54461 1.85106,6.14504 12.50303,4.14671 13.09028,-2.45575 22.37717,1.98327 22.37717,10.69602 0,3.35535 -4.65207,4.79838 -15.46911,4.79838 -17.48784,0 -17.79117,0.26783 -21.26299,18.77425 l -2.53192,13.49629 20.50282,-2.92509 c 30.32999,-4.3271 42.16911,-3.44137 50.11468,3.74928 13.37778,12.10672 7.00572,13.92585 -49.06693,14.00785 -43.43075,0.0635 -56.16872,1.22861 -66.64381,6.09571 -15.70414,7.29669 -15.8133,7.29904 -28.8488,0.6204 z"
-           id="path3342"
-           inkscape:connector-curvature="0"
-           sodipodi:nodetypes="ssscccssssssssssssssssssssssssssssssssssssssscsssssssssssssscsssssssssssssssssssscccccssssssssssssscsssss" />
-      </g>
-    </g>
-  </g>
-</svg>
diff --git a/themes/shogi/BlackKnight.svg b/themes/shogi/BlackKnight.svg
deleted file mode 100644 (file)
index 87dc0cd..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg3980"
-   version="1.1"
-   inkscape:version="0.48.4 r9943 custom"
-   width="512"
-   height="512"
-   sodipodi:docname="BlackKnight.svg">
-  <metadata
-     id="metadata3986">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3984" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview3982"
-     showgrid="false"
-     inkscape:zoom="0.4609375"
-     inkscape:cx="256"
-     inkscape:cy="256"
-     inkscape:window-x="349"
-     inkscape:window-y="48"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3990" />
-  <g
-     id="g3990">
-    <g
-       id="g3674">
-      <path
-         inkscape:connector-curvature="0"
-         id="path3994"
-         d="M 198.03171,393.67676 C 144.42698,374.80404 143.55058,374.45244 142.75365,371.5 142.30828,369.85 130.47357,296.95 116.4543,209.5 L 90.964719,50.5 91.232359,36 91.5,21.5 254.89392,21.246998 c 119.93355,-0.185707 163.75462,0.04635 164.75,0.872445 1.00568,0.834643 1.35454,4.259074 1.35011,13.253002 -0.005,10.4975 -3.15042,34.01616 -23.40055,174.978105 -12.86702,89.5678 -23.78444,163.24041 -24.26095,163.71692 -1.38761,1.38761 -115.88342,38.94013 -118.48006,38.85929 -1.29386,-0.0403 -26.8632,-8.70279 -56.82076,-19.25 z"
-         style="fill:#d3bc5f" />
-      <g
-         transform="matrix(-1.0499886,0,0,-1.0499886,-158.7166,449.45619)"
-         id="g3625">
-        <path
-           style="fill:#000000"
-           d="m -442.46875,91.59375 c -5.67669,1.199695 -3.5556,8.90193 -0.6875,11.75 1.7802,4.97533 3.0533,11.46414 0.75,16.34375 -7.64699,3.32377 -18.2627,-1.42608 -24.84375,4.96875 -2.89362,4.83553 3.83856,8.01375 7.6875,8.65625 5.79259,1.56866 11.88368,1.03749 17.59375,2.96875 -12.03604,16.88573 -28.8877,30.51967 -38.34375,49 -2.97752,4.88463 2.21185,10.91932 7.5,9.125 11.46978,-3.38032 19.69526,-13.03282 28.46875,-20.6875 -0.0376,16.38187 -1.33978,32.90204 -0.375,49.21875 2.91342,6.61728 13.90154,4.24732 14.5625,-2.8125 4.52352,-21.58959 -0.3695,-44.7762 7.5,-65.6875 1.42015,-4.15909 6.66405,-7.58041 5.46875,-12.3125 -2.80623,-2.92788 -6.90525,1.9587 -9.46875,0.53125 -0.64812,-3.55835 -1.72965,-11.15626 3.90625,-10.8125 5.12672,-0.15753 14.23712,-0.25133 14.71875,-6.96875 -1.067,-7.98945 -11.82272,-11.1676 -18.46875,-7.84375 4.59051,-10.66686 -3.98045,-23.175809 -14.6875,-25.46875 -0.42627,0.0182 -0.85885,-0.03866 -1.28125,0.03125 z m 55.09375,5.75 c -4.85838,-0.409466 -6.98093,5.44616 -4,8.875 7.66837,8.02691 9.37948,19.47853 9.625,30.25 -10.63313,1.66248 -21.99135,0.62615 -32.125,4.3125 -4.19518,3.54351 1.94139,8.00417 5.34375,9.09375 8.25055,3.47463 17.47669,0.68795 25.875,1.96875 2.39545,2.70176 1.14095,8.23409 -3.125,8.125 -9.0782,2.20078 -19.26513,0.076 -28.0625,3.53125 -3.51866,3.73207 2.61833,7.38432 5.65625,8.875 8.38734,4.21194 18.04902,2.91825 26.96875,4.625 2.6834,2.35505 -1.1374,6.49323 -4.03125,6.875 -7.36678,2.92801 -16.23624,0.98922 -23.28125,4.8125 -2.38732,4.52777 4.50205,6.48899 7.46875,8.1875 5.65085,2.96926 12.23713,2.55363 18.15625,4 3.04742,1.885 3.36048,8.74911 -1.46875,8.3125 -12.70882,1.19286 -25.52869,0.4244 -38.28125,0.75 8.88226,6.11834 16.7095,18.15858 28.9375,16.09375 22.16897,-5.03342 45.39236,-2.07417 67.96875,-3.75 4.42849,0.10278 9.63457,-3.17915 7.59375,-8.21875 -2.24299,-9.37977 -14.04423,-10.15408 -22,-9.78125 -8.30461,-0.26183 -17.01213,3.2309 -25.0625,1.09375 -1.47643,-3.56774 -0.24957,-8.56083 4.375,-8.5 7.60492,-1.95017 17.9341,0.53824 23.5,-6.28125 2.86585,-5.00498 -2.51516,-9.73054 -7.4375,-9.0625 -6.68469,-0.89907 -14.22538,2.32589 -20.4375,-0.53125 -1.91481,-3.91988 1.07907,-8.0529 5.34375,-8.28125 7.61794,-2.54686 18.17937,-1.07314 23.5625,-8.03125 1.86809,-5.25891 -5.36738,-6.94494 -9.125,-7.28125 -6.35128,-1.30137 -13.73518,1.28787 -19.5625,-1.5 -1.28881,-4.70506 2.29336,-9.46434 7.1875,-9.625 7.0858,-1.26835 16.53213,-1.84654 20.53125,-8.75 1.99019,-6.17867 -6.41988,-8.85641 -11.15625,-8.8125 -5.402,-0.92627 -10.91367,2.19869 -16,1.375 -3.8473,-8.81104 0.69745,-21.4257 -7.8125,-28.1875 -4.46226,-2.768154 -9.82179,-4.548193 -15.125,-4.5625 z m -54.03125,54.96875 c -0.11101,3.21704 -5.18564,7.57427 -6.09375,8.0625 1.45549,-2.81575 3.35038,-6.73575 6.09375,-8.0625 z M -371.96875,242 c -14.30713,1.18874 -27.34584,8.03332 -41.60558,9.91487 -7.71138,0.99442 -16.27421,3.3066 -23.51942,3.08513 -5.16062,-6.54549 -13.91673,-12.8768 -22.53125,-10.46875 -3.47447,3.94208 2.75397,8.07356 4.0625,11.75 6.99885,17.4493 1.73878,37.07333 6.43568,55.03869 1.27978,4.39306 3.76851,11.09198 9.18932,10.99256 5.69979,-3.02653 4.6914,-11.21676 6.06547,-16.61678 1.06946,-13.96263 4.08701,-28.51486 1.18453,-42.41447 -2.05061,-4.12646 -1.58077,-4.73292 2.97693,-2.04493 8.92769,4.65614 19.30923,6.18436 28.99182,4.01368 -1.93477,4.32627 -8.48004,4.43108 -12.625,5.21875 -4.81673,0.95712 -12.48848,0.6539 -14.375,6.1875 0.86844,6.43705 9.45066,5.87812 14.28125,6.0625 3.98736,0.74607 10.11258,-2.32812 12.96875,1.25 0.12452,6.09861 -8.18118,6.98377 -12.78125,7.46875 -5.47636,0.36705 -14.11224,-0.2855 -16.34375,6 0.83165,5.41621 8.30876,4.53532 12.40625,4.96875 4.14442,0.63298 10.29946,-0.99425 13.34375,2.5 -0.10624,3.35348 -5.30505,3.14359 -7.6875,3.90625 -6.91349,1.35525 -15.69547,0.0176 -21,5.375 -1.51644,6.81499 7.43448,8.79236 12.46875,8.71875 26.0765,0.18012 51.56986,-6.57661 77.25,-10.28125 3.7694,5.9638 11.99298,10.28548 11.96875,18 -3.0988,9.08296 -6.70664,18.80201 -13.21875,25.9375 -7.49891,5.73993 -17.89353,1.0334 -26.5,1.34375 -2.98734,-0.0401 -10.77791,-1.36328 -8.875,3.78125 8.39328,7.55613 18.11081,14.4453 28.90625,18.0625 9.83971,2.88494 17.3783,-6.22011 21.90625,-13.625 7.54971,-12.8106 15.13987,-26.336 17.59375,-41.1875 -1.89157,-11.68637 -13.15742,-18.71027 -20.6875,-26.8125 -4.90926,-1.26446 -11.11758,2.07102 -16.48459,2.43719 -13.22443,2.39297 -26.60764,6.13416 -39.98416,6.00031 -1.29356,-2.33869 3.57365,-4.13683 5.09375,-5.125 6.84286,-4.27294 16.17492,-0.13031 22.53125,-5.125 3.53762,-4.77887 -3.26348,-8.85436 -7.5,-8.9375 -5.7828,-1.57752 -13.36458,1.31565 -18.0625,-2.71875 5.40965,-6.53611 17.32972,-2.99114 22.1875,-10.6875 2.05535,-5.36287 -5.45365,-7.63598 -9.5,-7.4375 -4.01213,-0.49891 -9.36683,1.1192 -12.5625,-1.4375 7.75645,-7.65589 21.66385,-4.94547 29.15625,-13.28125 3.003,-5.09746 -3.14528,-9.58175 -7.90625,-9.53125 -2.36783,-0.4276 -4.81763,-0.38193 -7.21875,-0.28125 z m -22.5625,86.25 c 11.1683,8.15272 20.65808,20.94169 35.0625,22.96875 7.81515,0.55276 9.65851,-10.27969 4.875,-14.96875 -10.70468,-10.72657 -27.54362,-9.24025 -41.37957,-11.8992 -7.52945,-1.88773 -0.50663,1.63162 1.44207,3.8992 z m -23.78125,1.25 c -5.3576,1.20671 -2.00413,7.84527 0.28125,10.5625 5.6818,7.11412 10.60353,15.9332 19.09375,19.90625 7.30004,1.52929 10.70299,-8.73574 7,-13.9375 -5.24162,-9.1212 -15.68637,-14.42562 -25.625,-16.5625 -0.24987,0.0113 -0.50294,-0.0249 -0.75,0.0312 z m -29.59375,3.78125 c -5.20653,1.50847 -1.37106,8.05164 -0.5,11.375 3.48179,7.51956 5.3854,17.13997 12.78125,21.875 5.07504,2.95311 8.98127,-3.40126 8.5,-7.9375 -0.0802,-9.34903 -7.68614,-16.73997 -14.125,-22.59375 -1.89876,-1.39207 -4.16554,-2.98448 -6.65625,-2.71875 z m -33.3125,4.5 c -5.0492,1.73891 -0.8658,8.39751 -0.3125,11.8125 3.74991,9.66749 5.78515,20.74517 12.9375,28.5625 4.78919,4.45525 12.09724,0.25716 12.96875,-5.59375 2.35316,-9.50843 -4.88963,-18.22814 -10.625,-25.0625 -4.10193,-4.06602 -9.01267,-8.96846 -14.96875,-9.71875 z"
-           id="path3623"
-           inkscape:connector-curvature="0" />
-      </g>
-      <path
-         sodipodi:nodetypes="sssssssssssssssssss"
-         inkscape:connector-curvature="0"
-         id="path3992"
-         d="m 200.5,392.89708 c -29.7,-10.43789 -54.53997,-19.52227 -55.19993,-20.18753 -0.66516,-0.67049 -12.8096,-73.55654 -27.25,-163.54353 C 95.180628,66.652488 92,45.462606 92,35.616022 92,28.225783 92.40932,23.99068 93.2,23.2 94.123378,22.276622 131.44849,22 255.11821,22 c 88.39502,0 161.43002,0.273145 162.3,0.606989 1.33288,0.511472 1.58179,2.703806 1.58179,13.931808 0,12.067996 -2.17602,28.491817 -23.07011,174.125033 -12.68857,88.44011 -23.51423,161.33533 -24.05703,161.98936 -0.77891,0.93853 -115.73419,39.5248 -117.03493,39.28434 C 254.65207,411.90317 230.2,403.33497 200.5,392.89708 z m 109.3379,-19.04096 c 40.91724,-13.95782 53.63004,-18.67932 54.59242,-20.27546 1.51744,-2.51674 44.1002,-318.91324 43.13227,-320.479394 -0.79495,-1.286252 -303.12468,-1.618829 -303.91855,-0.334325 -0.56803,0.919089 47.93636,321.146789 48.76984,321.980279 0.86108,0.86108 100.83673,37.14342 102.58612,37.22971 0.825,0.0407 25.50206,-8.11367 54.8379,-18.12081 z"
-         style="fill:#141210" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/shogi/BlackLance.svg b/themes/shogi/BlackLance.svg
deleted file mode 100644 (file)
index d24217d..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg4082"
-   version="1.1"
-   inkscape:version="0.48.4 r9943 custom"
-   width="512"
-   height="512"
-   sodipodi:docname="BlackLance.svg">
-  <metadata
-     id="metadata4088">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs4086" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview4084"
-     showgrid="false"
-     inkscape:zoom="0.4609375"
-     inkscape:cx="256"
-     inkscape:cy="256"
-     inkscape:window-x="102"
-     inkscape:window-y="85"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g4092" />
-  <g
-     id="g4092">
-    <g
-       id="g3858">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4096"
-         d="m 202.64926,375.07216 c -28.51791,-10.36479 -52.44908,-19.45867 -53.18039,-20.20862 -0.82918,-0.85031 -10.58815,-58.42782 -25.92758,-152.97169 L 98.943356,50.283702 99.221678,35.891851 99.5,21.5 254.89374,21.246847 c 114.01825,-0.185748 155.75486,0.04655 156.75,0.872445 1.00598,0.834888 1.35455,4.257792 1.34964,13.253153 -0.006,10.555037 -2.9097,32.011119 -22.39574,165.473295 -12.31402,84.34016 -22.77354,153.72848 -23.24338,154.19627 -0.87775,0.8739 -110.63726,38.99099 -112.06173,38.9166 -0.43589,-0.0228 -24.12536,-8.52167 -52.64327,-18.88645 z"
-         style="fill:#d3bc5f" />
-      <g
-         transform="matrix(-1,0,0,-1,80.215925,473.17532)"
-         id="g3809">
-        <path
-           style="fill:#000000"
-           d="m -182.96875,123.78125 c -14.05509,1.60358 -23.82993,13.47522 -31.34375,24.40625 8.81814,-1.52214 18.31045,-2.56911 26.75,-4.46875 -2.44047,2.56645 0.71389,8.42376 -4.59375,8.40625 -11.34293,2.21071 -24.01131,-1.24044 -34.625,4.03125 -3.49025,4.68926 2.89839,9.70082 7.03125,11.09375 9.30395,4.14969 19.59965,2.02592 29.1875,0.8125 3.24297,0.67825 1.1333,6.74842 1.78125,9.25 0.25363,3.5379 -0.82919,9.03319 -5.65625,7.6875 -3.79666,-0.529 -5.37379,4.21209 -2.5,6.5 4.01322,4.45658 8.00776,10.17962 14.125,11.6875 -11.88819,1.65401 -24.27766,5.84478 -36.1875,2.65625 -1.37411,-0.80497 -5.31914,-1.9777 -1.71875,-3.03125 6.53051,-3.19585 16.01159,-8.25776 14.03125,-17.09375 -2.18073,-6.41068 -7.54072,-12.07595 -13.78125,-14.71875 -4.84236,-0.47525 -3.79301,5.65847 -2.25,8.375 1.34099,6.78065 -6.95013,10.14186 -11.25,13.6875 -9.51104,6.88173 -20.79941,11.42929 -29.40625,19.3125 -1.60841,4.55023 4.85243,3.87776 7.4375,3 8.56163,-1.00142 19.556,-5.97404 26.6875,1.0625 9.09912,12.15671 9.59356,28.50331 15.625,42.0625 1.94492,3.81781 6.8824,1.28323 7.125,-2.28125 3.29319,-12.78694 -0.21565,-25.98275 -1.59375,-38.78125 18.40492,0.30967 36.84108,-0.54635 54.90625,-4.125 -0.82977,8.05626 1.70395,17.14483 -1.65625,24.65625 -5.7408,5.214 -14.70445,3.25048 -21.84025,4.49321 -7.6275,0.95569 -16.72368,-0.18972 -23.03475,4.78804 -2.51798,4.85371 4.83622,6.53758 8.25,7.0625 11.38201,2.53536 24.145,0.33203 34.75,5.0625 -0.29052,4.69275 5.83581,5.81512 8.375,2.3125 9.34335,-9.32245 12.35965,-23.49275 13.28125,-36.375 0.92155,-11.05614 -6.48009,-21.41052 -16.9375,-24.59375 -9.17528,-2.83378 -20.49046,1.21251 -28.34375,1.875 7.66427,-5.6719 8.89355,-16.3851 9.75,-25.28125 1.09958,-4.14656 -2.25697,-12.43197 2.0625,-13.25 10.19164,-0.85223 21.40757,1.90953 31,-2.4375 5.67192,-3.88262 0.96218,-12.24316 -4.71875,-13.1875 -9.44347,-3.50058 -19.32598,0.22587 -28.25,2.8125 -6.45609,0.94094 -9.38721,-6.63632 -14.90625,-8.21875 6.03491,-1.83817 15.38531,-6.2172 13.46875,-14 -1.63885,-4.3066 -6.84909,-5.59894 -11.03125,-5.25 z m 22.125,47.09375 c -4.24274,2.83814 1.21936,7.58133 3.0625,10.25 11.34214,11.91303 23.14745,24.77242 38.8125,30.78125 5.63869,2.4922 11.37788,-2.28373 11.5625,-8.0625 1.83769,-8.4186 -7.70628,-12.80045 -13.53125,-16.1875 -12.7654,-6.1697 -25.4444,-13.24898 -39.15625,-16.9375 l -0.375,0 -0.375,0.15625 z m -13.40625,49.75 c -9.17077,0.54184 -19.25747,2.34764 -26.625,7.875 -3.06882,4.64337 3.88893,7.7701 7.5,8.71875 10.30974,2.45224 22.6822,1.93844 31.25,-4.8125 3.98917,-3.11492 2.24422,-9.57561 -2.59375,-10.59375 -3.04403,-1.02088 -6.31514,-1.2915 -9.53125,-1.1875 z m -16.5625,50.03125 c -3.79543,-0.4976 -5.52578,4.24877 -2.4375,6.4375 4.3396,4.48675 7.44953,14.72421 0.0937,17.9375 -11.33691,4.92852 -23.72576,0.35604 -35.4375,0.34375 -4.99912,2.00408 0.0917,7.14516 2.4375,9.15625 9.60306,9.39442 24.22169,4.15487 35.90625,6.5625 3.09678,2.18365 1.8455,8.85725 -2.53125,8.65625 -20.20695,2.26638 -40.70855,1.13317 -60.96875,-0.25 10.96566,20.34541 20.48562,41.61424 32.75,61.125 4.27942,2.25108 4.24499,-4.24581 3.75,-6.875 -0.80418,-12.21267 -3.73853,-24.26829 -5.75,-36.25 2.54287,-2.87809 7.80669,-1.2804 11.3125,-2.0625 7.54792,-0.12865 14.91136,-1.88684 22.25,-3.0625 2.33879,2.166 -2.08483,4.47707 -3.90625,4.9375 -7.23048,3.17099 -18.32618,1.42823 -22.75,9.1875 -1.00049,6.00313 7.10434,7.20203 11.5,7.4375 5.02504,0.73252 11.74473,-1.52926 15.78125,2.0625 -0.5025,4.01212 -6.77947,3.04981 -9.84375,3.375 -5.84148,0.7416 -14.48469,0.95365 -16.90625,7.4375 -0.12403,6.30509 8.19067,6.33896 12.75,7 4.51794,0.50346 10.42778,-0.62945 13.90625,2.4375 -14.78348,6.26031 -31.31041,7.12114 -47.15625,9.03125 -12.55778,1.41904 -25.17504,1.12702 -37.59375,-0.65625 -4.13285,-0.97802 -9.22082,2.72207 -6.46875,7.09375 4.31217,8.82398 13.6778,14.29453 23.5,14 19.07377,0.58661 36.10768,-9.72496 54.71875,-12 5.56344,-0.20473 14.93204,-5.6616 13.50785,3.77844 2.13052,9.67978 1.54067,20.83954 7.0234,29.34656 4.10141,3.14813 6.78275,-3.04009 7.28125,-6.3125 2.2287,-9.4122 3.56798,-19.08547 3.5,-28.78125 25.237,-0.4178 50.88544,-0.10604 75.125,7.53125 5.369957,1.19815 14.975858,2.50833 16.34375,-4.75 0.186944,-8.73914 -6.938615,-17.19123 -15.9375,-17.0625 -8.55218,-0.70265 -17.14807,-0.29378 -25.71875,-0.40625 2.12877,-13.47721 7.27522,-25.99967 12.59375,-38.46875 2.47198,-8.53846 -2.4224,-17.31553 -7.78125,-23.59375 -8.4306,-5.98427 -19.69859,-2.13798 -29.13732,-1.50676 -8.20431,0.41753 -16.91673,3.90922 -24.89393,2.16301 -1.02073,-3.0236 -1.36482,-8.9403 3.46875,-8.71875 11.21047,-1.70542 23.52931,1.29712 34.0625,-3.53125 3.36252,-4.79255 -2.44329,-10.75455 -7.09375,-12.09375 -9.13442,-3.90948 -19.07757,0.0587 -28.4375,-0.3125 -2.68115,-5.09284 1.61815,-13.88813 -4.59375,-17.6875 -5.49541,-2.6842 -12.21652,-2.4781 -18.21875,-2.65625 z m 44.09375,57.5 c 5.98629,0.53892 13.74519,-0.80599 18.34375,3.6875 3.03405,10.69853 -1.16564,22.02453 -2.8125,32.625 -0.52524,5.17966 -4.17063,9.84713 -9.75,9.875 -9.30016,1.20312 -19.31263,4.16222 -28.46875,1.46875 -3.37675,-2.49055 1.90741,-4.81135 4.125,-4.8125 8.96744,-2.31373 18.95012,-0.13852 27.53125,-3.65625 3.62413,-3.73353 -2.19232,-7.90825 -4.875,-10.15625 -8.04762,-6.12639 -18.65109,-1.12404 -27.46875,-1.84375 1.4554,-4.38524 7.95594,-3.92205 11.68212,-4.69736 6.50505,-1.09465 15.39383,1.2012 20.09913,-4.52139 2.17718,-7.03883 -5.36437,-13.72682 -12.1875,-13.375 -6.5455,-0.91271 -13.45941,2.31486 -19.625,1.125 1.79377,-3.92785 7.98321,-3.67138 11.64505,-4.77425 3.86194,-0.5895 7.81171,-0.8777 11.7612,-0.9445 z"
-           id="path3807"
-           inkscape:connector-curvature="0" />
-      </g>
-      <path
-         sodipodi:nodetypes="sssssssssscssssssssss"
-         inkscape:connector-curvature="0"
-         id="path4094"
-         d="M 202.01827,373.18144 C 155.67821,356.33603 150.45761,354.21891 149.74625,351.98347 149.31159,350.61756 137.94087,281.42862 124.47798,198.23028 102.89406,64.845374 100,45.626872 100,35.680277 100,28.240062 100.40851,23.991493 101.2,23.2 102.12286,22.277143 137.67071,22 255.11821,22 c 83.99502,0 153.43002,0.273145 154.3,0.606989 C 410.75195,23.118792 411,25.32013 411,36.644722 c 0,12.263795 -1.9161,26.569029 -22.05298,164.643008 -12.65935,86.80232 -22.56286,151.72912 -23.25,152.42566 -1.44623,1.46602 -107.81533,38.30858 -110.38801,38.23457 -0.99495,-0.0286 -24.97579,-8.47355 -53.29074,-18.76652 z M 307.1768,355.34385 c 28.45098,-9.71089 51.93606,-18.19557 52.18904,-18.85484 1.03982,-2.70972 40.75097,-301.742227 40.24582,-303.058631 C 399.13916,32.199071 379.09523,32 255.5904,32 c -78.9098,0 -143.68382,0.342135 -143.94226,0.760299 -0.44605,0.721723 44.81969,299.987081 45.88051,303.329801 0.3361,1.05907 16.61282,7.4569 48.73799,19.15729 26.52835,9.66195 48.4466,17.6089 48.70722,17.6599 0.26063,0.051 23.75195,-7.85256 52.20294,-17.56344 z"
-         style="fill:#161411" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/shogi/BlackPawn.svg b/themes/shogi/BlackPawn.svg
deleted file mode 100644 (file)
index 9f14356..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.48.4 r9943 custom"
-   width="512"
-   height="512"
-   sodipodi:docname="BlackPawn.svg">
-  <metadata
-     id="metadata8">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs6" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview4"
-     showgrid="false"
-     inkscape:zoom="0.4609375"
-     inkscape:cx="256"
-     inkscape:cy="256"
-     inkscape:window-x="68"
-     inkscape:window-y="22"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g2987" />
-  <g
-     id="g2987">
-    <g
-       id="g3129">
-      <path
-         inkscape:connector-curvature="0"
-         id="path2991"
-         d="M 207.01633,356.66921 C 167.01924,341.2986 159.33758,338.03357 158.29539,335.96078 157.61488,334.60735 146.90742,269.75492 134.50102,191.84427 L 111.94394,50.188539 112.22197,35.84427 112.5,21.5 254.8934,21.246565 c 104.40586,-0.185823 142.75531,0.04693 143.75,0.872445 1.00657,0.835378 1.35449,4.255058 1.34843,13.253435 -0.007,10.350027 -2.99087,33.280816 -20.35821,156.450055 -14.05048,99.64604 -20.78088,144.73734 -21.74183,145.66262 -1.26334,1.21645 -100.8226,37.57078 -102.62367,37.47331 -0.42247,-0.0229 -22.13577,-8.25301 -48.25179,-18.28922 z"
-         style="fill:#d3bc5f" />
-      <g
-         transform="matrix(-0.92627741,0,0,-0.92627741,150.81532,455.04764)"
-         id="g3962">
-        <path
-           style="fill:#000000"
-           d="m -126.78125,141.09375 c -5.34946,0.98835 -11.78875,1.20293 -15.96875,4.875 -1.24144,4.84169 6.08278,5.06978 8.90625,6.875 9.69039,3.35353 8.89472,15.34684 11,23.5625 1.27182,3.74078 0.007,8.21933 -4.125,9.09375 -6.07287,2.25749 -12.47831,5.18286 -18.71875,6.09375 4.09378,-9.35276 -4.26635,-19.05311 -12.25,-23 -4.7811,-2.55738 -12.20289,-1.25822 -14.9375,3.5 0.14533,5.06332 7.35296,4.89987 8.8125,9.59375 5.38817,7.57021 3.65371,20.77221 14.15625,24.0625 6.96141,2.14157 12.53349,-4.07408 19,-4.625 4.20627,2.27316 7.37332,7.13639 8.65625,11.71875 -2.08251,5.29177 -8.52399,7.64237 -13.125,10.5 -11.41869,4.47775 -22.46211,-8.77967 -33.9375,-2.8125 -10.06789,4.45571 -20.27394,15.43929 -16.3125,27.1875 2.96246,7.00304 9.5415,14.53852 17.84375,13.875 13.06194,-2.80256 19.90831,-16.71167 32.25,-20.875 6.85241,0.71329 7.69195,10.5491 14.03125,12.625 6.62291,2.38276 10.14126,-5.91606 11.375,-11 2.38871,-6.25868 1.04522,-14.4178 5.75,-19.53125 4.404019,-1.5779 10.224886,-1.86446 14.5625,0.125 4.358318,10.47062 -2.413849,21.81067 -9.449375,29.3378 -14.255585,16.31963 -34.518165,25.31758 -51.706875,38.00595 -2.93748,1.5335 -1.93322,6.08751 1.78125,4.96875 19.17776,-3.60152 37.19224,-12.11969 54.199814,-21.51687 9.235415,-5.85665 19.665589,-14.05515 19.237686,-26.17063 0.267887,-7.44709 -0.178251,-14.89658 -0.25,-22.34375 7.249403,0.42089 15.3356,4.86307 22.375,1.625 5.279204,-4.92272 0.275461,-13.53133 -5.46875,-15.71875 -13.868705,-6.94098 -29.74557,-2.04754 -44.46875,-2.9375 -5.6543,-0.62113 -7.61594,-6.90117 -9.9375,-11.125 14.389033,-2.49116 29.64867,0.88716 43.78125,-3.15625 4.693731,-1.74294 2.628126,-7.9812 -1.5625,-8.78125 -11.408527,-4.82065 -24.762129,-1.95058 -36.25,-5.71875 -1.97971,-3.28259 1.94741,-8.07171 5.46875,-8.40625 8.043142,-2.72101 18.605123,-0.082 25.1875,-6.40625 2.12988,-4.8757 -5.158546,-6.35831 -8.53125,-6.53125 -6.726428,-1.36254 -14.60798,2.22557 -20.65625,-1.59375 -2.59545,-4.39077 -3.19344,-10.41917 -8.40625,-12.96875 -3.6457,-2.27568 -8.10047,-2.70238 -12.3125,-2.40625 z m 1.03125,89.4375 c 0.88308,1.57483 0.61645,7.35134 -1.1875,3.1875 -0.79474,-1.11042 0.0378,-2.68243 1.1875,-3.1875 z m -35.28125,0.4375 c 3.4756,0.2002 7.47337,1.33774 9.8125,3.84375 -5.19453,5.02103 -11.96911,9.10869 -18.9375,10.71875 -5.6829,-6.46581 1.39057,-15.02309 9.125,-14.5625 z m 21.9375,67.90625 c -5.02201,0.98469 -2.15363,6.38605 -2.21875,9.5625 -5.88154,11.43188 -17.61015,18.46669 -27.43873,26.33124 -6.06044,4.41115 -12.39593,8.45859 -18.06127,13.38751 11.34209,-0.87941 22.70691,-3.76417 33.34375,-7.0625 4.58358,5.52011 4.23986,13.95414 6.17521,20.76578 0.63849,4.51933 2.07319,9.62886 1.85604,13.89047 -15.82543,1.75211 -32.47753,1.69259 -48.21875,-0.78125 -3.84548,-1.24464 -12.28115,-3.12772 -12.1875,3.25 2.56098,7.43483 8.85358,13.49701 15.375,17.71875 11.9885,5.19253 24.88979,-1.4089 36.74601,-3.91937 33.33692,-8.83905 68.734516,-8.86221 102.529124,-2.5952 6.488667,0.1616 13.895375,2.64149 19.943616,-0.14168 3.10757,-5.1092 -2.542442,-10.76329 -5.6875,-14.40625 -8.027294,-9.10598 -21.576333,-5.24933 -32.15625,-4.90625 -7.1875,0.66667 -14.375,1.33333 -21.5625,2 2.826398,-9.37859 8.016231,-18.83353 7.34375,-28.78125 6.341706,-3.5199 16.459018,-1.82501 20.25,-9.0625 0.84933,-6.25593 -7.202739,-8.45217 -11.75,-10.21875 -12.945233,-3.83575 -24.81047,5.27695 -37.35013,6.90912 -8.32289,1.91505 -16.97568,2.85818 -25.49362,3.96588 5.17012,-5.98765 13.88827,-10.16856 15.75,-18.34375 -0.76696,-6.86035 -7.1206,-11.61208 -12.03125,-15.8125 -1.5337,-0.9557 -3.27739,-1.93686 -5.15625,-1.75 z m 37.0625,44.5625 c 4.01833,0.13309 1.6429,6.61499 2.40625,9.125 -0.63234,5.29341 0.311925,11.92874 -3.28125,16.09375 -8.67203,4.01035 -18.91765,5.77098 -28.40625,5.0625 2.85413,-8.82958 -1.9425,-17.63999 -2.5625,-26.25 5.93863,-1.42732 13.01761,-0.44961 19.19999,-1.99202 4.25321,-0.44446 8.37785,-1.77109 12.64376,-2.03923 z m -0.75,52.375 c -4.42228,0.0141 -3.6624,5.64408 -0.65625,7.34375 13.158539,9.94956 22.677379,24.47172 36.875,33.25 4.519321,3.1715 12.481575,3.32038 14.3125,-2.96875 3.263857,-9.30639 -2.60333,-19.00633 -10.78125,-23.34375 -11.877861,-6.60756 -24.854297,-11.86794 -38.25,-14.28125 -0.49264,0.008 -1.01295,-0.10543 -1.5,0 z m -44,0.6875 c -6.36456,1.60278 -4.33611,10.29797 -9.25,13.71875 -9.93246,10.65914 -25.19671,14.30307 -35.5,24.1875 -0.12682,5.6006 7.56309,4.28378 11.2124,3.88751 14.03001,-2.56522 28.79448,-5.54837 40.75635,-13.63751 7.39289,-5.67201 10.02749,-18.51315 1.65625,-24.59375 -2.55124,-1.77961 -5.61949,-3.74081 -8.875,-3.5625 z"
-           id="path3960"
-           inkscape:connector-curvature="0" />
-      </g>
-      <path
-         sodipodi:nodetypes="sssssssssscssssssscs"
-         inkscape:connector-curvature="0"
-         id="path2989"
-         d="M 207.21596,355.12222 C 181.75974,345.33756 160.52966,336.91974 160.038,336.41596 159.54635,335.91218 148.76166,270.59251 136.07204,191.26113 115.83712,64.759019 113,45.63136 113,35.711133 113,28.246918 113.40812,23.99188 114.2,23.2 115.12188,22.278118 147.78183,22 255.11821,22 c 76.84502,0 140.43002,0.273145 141.3,0.606989 C 397.75259,23.119037 398,25.32713 398,36.724143 c 0,12.15881 -2.00694,27.777027 -20.06434,156.143007 -14.35996,102.08173 -20.46318,142.94168 -21.4672,143.71911 -1.97425,1.52869 -99.0876,36.42331 -101.2194,36.37 -0.96198,-0.0241 -22.57688,-8.04938 -48.0331,-17.83404 z m 95.24558,-17.63448 c 25.82884,-9.08095 47.35813,-16.90741 47.84286,-17.39214 1.13128,-1.13128 37.05874,-284.706893 36.31601,-286.642425 C 386.13666,32.19255 368.77483,32 255.5904,32 c -71.7598,0 -130.68273,0.340378 -130.93984,0.756395 -0.75565,1.222669 41.03911,286.333275 42.13458,287.428745 0.74407,0.74407 85.4361,33.10316 88.21486,33.70509 0.275,0.0596 21.63269,-7.32155 47.46154,-16.40249 z"
-         style="fill:#171512" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/shogi/BlackPrince.svg b/themes/shogi/BlackPrince.svg
deleted file mode 100644 (file)
index a0aa63a..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg3332"
-   version="1.1"
-   inkscape:version="0.48.4 r9939"
-   width="512"
-   height="512"
-   sodipodi:docname="w_crown_prince.svg">
-  <metadata
-     id="metadata3338">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3336" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview3334"
-     showgrid="false"
-     inkscape:zoom="0.4609375"
-     inkscape:cx="256"
-     inkscape:cy="256"
-     inkscape:window-x="225"
-     inkscape:window-y="75"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3342" />
-  <g
-     id="g3342">
-    <path
-       style="fill:#d3bc5f"
-       d="M 187.5,455.85418 C 151.75,444.30254 121.94155,434.31015 121.259,433.64888 120.53071,432.9433 107.62291,355.20093 90.015643,245.47329 L 60.013279,58.5 60.006639,40.95 C 60.001977,28.625455 60.357296,23.042704 61.2,22.2 62.125053,21.274947 106.67071,21 255.61821,21 c 106.27002,0 193.93002,0.273145 194.8,0.606989 C 451.78633,22.131984 452,24.867998 452,41.861254 l 0,19.647275 -30.01001,185.470031 c -17.54537,108.43516 -30.52504,185.9674 -31.25,186.66749 -1.86408,1.80015 -131.70736,43.36504 -135.20899,43.28254 -1.66705,-0.0393 -32.281,-9.52276 -68.031,-21.07441 z"
-       id="path3348"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#f5180d"
-       d="M 188.5,454.90925 C 152.75,443.35908 122.9506,433.36395 122.27911,432.69786 121.58154,432.0059 108.1865,351.24281 91.029105,244.28123 L 61,57.075671 61,40.66028 C 61,28.066351 61.315563,23.982995 62.355528,23.119901 63.351637,22.293204 114.98973,22.061875 257.10553,22.247456 L 450.5,22.5 l 0.2719,18.704728 0.2719,18.704728 -30.05498,185.792634 c -17.03864,105.32883 -30.582,186.31475 -31.2719,186.99821 -1.52248,1.50829 -131.09111,43.3163 -134.05146,43.25449 -1.191,-0.0249 -31.41546,-9.49536 -67.16546,-21.04554 z m 131.26555,-24.00551 c 53.67328,-17.87179 63.47753,-21.42546 64.14476,-23.25 1.32632,-3.62685 56.24994,-372.793743 55.68302,-374.271132 C 439.14442,32.212768 410.90532,32 256.0904,32 155.4556,32 72.907358,32.340881 72.649865,32.757513 72.191006,33.499962 127.47757,404.77861 128.55026,408.15835 c 0.40414,1.27335 16.97019,7.19174 63.74789,22.77458 34.76102,11.57979 63.40624,21.05706 63.65605,21.06061 0.24982,0.004 28.96492,-9.48686 63.81135,-21.0898 z M 247.3453,371.86362 c -0.62902,-0.78824 -1.33796,-8.53682 -1.68014,-18.36362 -0.32557,-9.35 -1.04987,-19.025 -1.60956,-21.5 -0.55968,-2.475 -1.54939,-6.86818 -2.19935,-9.76262 -0.64995,-2.89444 -1.69525,-5.6888 -2.32289,-6.20969 -0.67855,-0.56315 -23.65756,-1.06476 -56.68447,-1.23738 C 123.40358,314.47961 124,314.53284 124,309.53807 c 0,-4.78532 1.68649,-4.94091 57.85804,-5.33776 l 52.35804,-0.36991 -0.60003,-3.00016 c -0.73511,-3.67555 -10.16812,-19.14932 -16.72174,-27.4301 -6.99481,-8.83825 -22.45786,-23.2908 -31.00484,-28.9787 C 178.84353,239.73247 156.04561,228 153.98018,228 153.44108,228 153,227.4833 153,226.85178 c 0,-1.86564 14.07877,-0.29879 27.22704,3.03014 34.41472,8.71324 61.6686,30.74369 78.33078,63.31803 L 264.08218,304 l 3.83647,0 c 4.58575,0 5.0352,-0.50044 8.53209,-9.5 9.10105,-23.42243 25.95777,-44.74417 45.0091,-56.93116 12.3953,-7.92918 28.02732,-14.61478 33.94671,-14.51855 3.73144,0.0607 19.73967,6.03944 19.94667,7.44971 0.0807,0.55 -3.90322,2.39157 -8.85322,4.09238 -19.84985,6.82035 -39.13939,19.04962 -55.04593,34.89826 -13.53789,13.48861 -26.85932,31.53782 -24.77453,33.56702 0.45125,0.43923 23.13922,0.94344 50.4177,1.12047 40.20931,0.26094 49.91007,0.58165 51.25,1.69431 2.82864,2.34889 2.1472,9.14493 -1.40924,14.05445 -3.65903,5.05115 -8.02163,7.08081 -15.15588,7.05115 -6.46643,-0.0269 -11.74567,-2.32078 -18.20268,-7.90929 l -4.90661,-4.24663 -33.92545,0.33894 -33.92545,0.33894 -1.89701,2.34355 c -3.87305,4.78473 -6.96725,17.63719 -7.60498,31.58905 -0.34741,7.6003 -1.1464,14.15762 -1.90975,15.67323 -2.44013,4.84482 -19.43726,10.05051 -22.06489,6.75779 z m 0.2422,-117.72205 c -0.34551,-0.55904 3.99346,-5.68844 9.64215,-11.39866 5.64869,-5.71023 11.21716,-11.67532 12.37437,-13.25575 1.87052,-2.55463 2.68466,-2.86477 7.33614,-2.79459 10.74867,0.16215 21.68472,8.69233 16.50249,12.87205 -8.71767,7.03121 -43.65468,18.13739 -45.85515,14.57695 z M 312.5,205.68208 c -2.2,-1.26161 -5.98002,-3.73119 -8.40004,-5.48796 L 299.69992,197 240.09996,196.9436 c -61.71993,-0.0584 -65.05021,-0.2647 -67.49018,-4.17966 -0.85678,-1.3747 -0.61087,-2.20738 1.18129,-4 l 2.26332,-2.2639 60.97349,-0.5 c 38.66676,-0.31708 61.02733,-0.85858 61.12064,-1.48016 0.0809,-0.53908 -5.88189,-4.90237 -13.25069,-9.69618 -22.88724,-14.88942 -21.47871,-14.20093 -26.29429,-12.85265 -2.30652,0.64579 -5.97339,1.02899 -8.1486,0.85157 L 246.5,162.5 245.93993,145 c -0.30804,-9.625 -0.64554,-17.55468 -0.75,-17.62151 -0.10446,-0.0668 -23.25243,-0.32444 -51.43993,-0.57246 -45.77944,-0.4028 -51.59691,-0.63274 -54.5,-2.15416 -4.5049,-2.36089 -4.24531,-5.0363 0.74399,-7.66793 1.93144,-1.01874 13.99927,-1.42021 53.5,-1.77981 36.07333,-0.3284 51.2211,-0.7922 51.7407,-1.58423 1.09207,-1.66467 0.89387,-47.867902 -0.21286,-49.6199 -0.74984,-1.18704 -4.13704,-1.606901 -16.23468,-2.012373 -16.70035,-0.559738 -16.50947,-0.269212 -3.5936,-5.469612 3.68145,-1.482288 9.98145,-4.69514 14,-7.139672 6.27536,-3.817381 7.84731,-4.365835 11.13909,-3.88644 7.58421,1.104517 16.70161,7.068194 18.88726,12.354125 0.66113,1.598913 1.2786,13.486932 1.55324,29.903972 l 0.45585,27.25 38.63551,0.064 c 44.75599,0.0741 66.27664,0.97834 68.56923,2.88102 2.62415,2.17785 1.78048,5.57186 -2.94894,11.86339 -5.064,6.73661 -7.93856,8.19161 -16.18367,8.19161 -5.98427,0 -9.23963,-1.37877 -16.88612,-7.15192 L 337.31826,127 l -33.06101,0 -33.06102,0 -0.46785,13.25 c -0.25732,7.2875 -0.80432,14.26389 -1.21556,15.50309 -0.66469,2.00295 -0.15179,2.51599 4.61974,4.621 2.95209,1.30235 11.89244,4.64651 19.86744,7.43147 45.56453,15.91166 44.09964,15.28772 47.53663,20.2473 2.52325,3.64104 2.55537,3.86856 0.97709,6.92061 -0.89756,1.7357 -3.77261,5.37672 -6.38899,8.09117 L 331.36768,208 l -7.43384,-0.012 c -5.90723,-0.01 -8.25528,-0.4831 -11.43384,-2.30587 z"
-       id="path3346"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#11100c"
-       d="M 188.5,454.90925 C 152.75,443.35908 122.9506,433.36395 122.27911,432.69786 121.58154,432.0059 108.1865,351.24281 91.029105,244.28123 L 61,57.075671 61,40.66028 C 61,28.066351 61.315563,23.982995 62.355528,23.119901 63.351637,22.293204 114.98973,22.061875 257.10553,22.247456 L 450.5,22.5 l 0.2719,18.704728 0.2719,18.704728 -30.05498,185.792634 c -17.03864,105.32883 -30.582,186.31475 -31.2719,186.99821 -1.52248,1.50829 -131.09111,43.3163 -134.05146,43.25449 -1.191,-0.0249 -31.41546,-9.49536 -67.16546,-21.04554 z m 131.26555,-24.00551 c 53.67328,-17.87179 63.47753,-21.42546 64.14476,-23.25 1.32632,-3.62685 56.24994,-372.793743 55.68302,-374.271132 C 439.14442,32.212768 410.90532,32 256.0904,32 155.4556,32 72.907358,32.340881 72.649865,32.757513 72.191006,33.499962 127.47757,404.77861 128.55026,408.15835 c 0.40414,1.27335 16.97019,7.19174 63.74789,22.77458 34.76102,11.57979 63.40624,21.05706 63.65605,21.06061 0.24982,0.004 28.96492,-9.48686 63.81135,-21.0898 z"
-       id="path3344"
-       inkscape:connector-curvature="0" />
-  </g>
-</svg>
diff --git a/themes/shogi/BlackRook.svg b/themes/shogi/BlackRook.svg
deleted file mode 100644 (file)
index d0031a1..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg3585"
-   version="1.1"
-   inkscape:version="0.48.4 r9943 custom"
-   width="512"
-   height="512"
-   sodipodi:docname="BlackRook.svg">
-  <metadata
-     id="metadata3591">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3589" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview3587"
-     showgrid="false"
-     inkscape:zoom="0.4609375"
-     inkscape:cx="256"
-     inkscape:cy="228.2202"
-     inkscape:window-x="0"
-     inkscape:window-y="22"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3595" />
-  <g
-     id="g3595">
-    <g
-       id="g3501">
-      <path
-         inkscape:connector-curvature="0"
-         id="path3599"
-         d="m 191.5,438.65982 c -33.55,-11.1077 -61.74965,-20.49658 -62.66589,-20.86416 -1.03366,-0.41469 -2.06811,-2.68494 -2.72573,-5.982 -0.58292,-2.92251 -14.13065,-83.22962 -30.10607,-178.46024 L 66.95609,60.206845 67.228045,40.853422 67.5,21.5 254.89438,21.247376 c 145.1305,-0.195648 187.72217,0.01943 188.84782,0.953628 1.21488,1.008264 1.37377,4.578622 0.96808,21.752624 L 444.22492,64.5 416.72433,240.33813 c -15.12532,96.71097 -27.88843,176.21676 -28.36246,176.67953 -1.44985,1.41541 -130.43309,41.98731 -133.23777,41.91017 -1.44326,-0.0397 -30.0741,-9.1603 -63.6241,-20.26801 z"
-         style="fill:#d3bc5f" />
-      <g
-         transform="matrix(-1.0130742,0,0,-1.0130742,983.16991,499.20075)"
-         id="g3447">
-        <path
-           style="fill:#000000"
-           d="m 711.86791,445.7882 c -1.10857,-1.8076 -3.16172,-12.5013 -4.56256,-23.76376 l -2.54697,-20.47718 -14.52586,2.41223 c -7.98923,1.32671 -24.03047,5.37268 -35.64721,8.99104 -11.61674,3.61837 -25.26399,6.59926 -30.32723,6.62425 -9.3062,0.0459 -27.75647,-11.79356 -27.75647,-17.8112 0,-1.7956 11.78727,-3.26473 26.19393,-3.26473 14.40666,0 26.9587,-1.23743 27.89343,-2.74986 2.8444,-4.60234 -7.85593,-49.58615 -14.0402,-59.02454 -7.29035,-11.12647 -3.98492,-14.69795 9.0496,-9.77798 5.55807,2.09795 13.81414,3.28081 18.34682,2.62858 4.53268,-0.65222 15.76572,-2.14131 24.9623,-3.30908 13.87766,-1.76215 16.72106,-3.36206 16.72106,-9.40855 0,-6.53749 -1.3551,-7.01646 -13.20084,-4.66592 -19.85149,3.93911 -29.25819,3.1143 -35.48381,-3.11132 -5.15635,-5.15634 -4.31196,-5.66223 10.08791,-6.04386 28.30467,-0.75015 36.87788,-3.97965 36.4941,-13.7472 -0.18839,-4.79477 -1.54595,-11.48994 -3.01679,-14.87816 -2.20888,-5.08833 -0.84592,-6.16039 7.832,-6.16039 13.23333,0 19.40006,7.1455 16.41862,19.02451 -2.61381,10.41428 -1.98224,10.61006 16.43099,5.09332 14.5594,-4.36211 24.2816,-0.33224 24.2816,10.06475 0,4.05903 -2.97,4.65694 -13.9324,2.80485 -17.77543,-3.00313 -28.31026,0.35067 -28.31026,9.0127 0,8.04506 8.29481,8.72474 35.43686,2.90382 22.4996,-4.8253 33.3661,-0.71786 40.03,15.13104 4.2078,10.00732 3.9875,12.21827 -2.0284,20.35523 -3.712,5.02065 -7.7045,15.01647 -8.8723,22.21293 l -2.1233,13.08446 14.7015,0 c 11.1055,0 16.9206,2.21915 23.7741,9.07257 14.535,14.53504 6.5506,18.11539 -24.3047,10.89872 -14.0638,-3.28934 -36.8858,-5.96034 -50.71551,-5.93552 -27.44149,0.0493 -29.20089,1.37383 -29.66589,22.33444 -0.29683,13.37928 -4.78192,26.06532 -7.59412,21.47981 z m -17.68008,-54.28174 c 8.14551,-0.0352 11.44072,-1.67883 11.44072,-5.71002 0,-4.23849 -2.15109,-5.12206 -8.55626,-3.51445 -8.4228,2.11397 -29.29743,-3.42644 -25.8602,-6.86366 0.9692,-0.96922 8.5889,-2.92759 16.93266,-4.35198 8.34375,-1.42439 15.90311,-4.78779 16.79859,-7.47421 1.25923,-3.7777 -0.93681,-4.37142 -9.69217,-2.62032 -11.13356,2.22672 -24.82485,-2.13371 -24.82485,-7.90621 0,-1.6186 7.9205,-3.99355 17.60111,-5.27773 12.70475,-1.68534 17.60112,-3.88126 17.60112,-7.89368 0,-4.66035 -2.7025,-5.12618 -16.72106,-2.88232 -9.19658,1.47205 -19.49324,2.54241 -22.88145,2.37858 -7.42535,-0.35903 -7.80429,6.72285 -1.89149,35.34977 3.75919,18.20022 5.12521,20.43789 11.44072,18.74114 3.94451,-1.05976 12.32016,-1.94848 18.61256,-1.97491 z m 80.3545,-28.19752 c 4.6291,-25.66983 3.7797,-30.49341 -5.9113,-33.56921 -12.0206,-3.81518 -45.40136,2.07457 -45.40136,8.01073 0,4.22434 2.85757,4.86769 13.82825,3.11342 10.14304,-1.62194 15.30281,-0.73671 19.36121,3.32176 9.2133,9.21323 6.4366,11.6714 -14.43017,12.77492 -13.12579,0.69412 -20.51364,2.72276 -21.57037,5.92303 -1.28891,3.9034 1.66244,4.37701 14.90259,2.39153 16.99325,-2.54829 26.63095,1.25852 26.63095,10.51896 0,3.46506 -4.761,4.10359 -19.36123,2.59669 -16.60095,-1.71336 -19.36123,-1.15231 -19.36123,3.93544 0,5.07806 3.40212,5.78355 23.59432,4.89275 l 23.59434,-1.04089 z M 696.53142,255.31665 c -9.00947,-9.68288 -9.05841,-9.97746 -1.83941,-11.07242 6.82677,-1.03547 7.41632,-3.35396 7.41632,-29.1657 0,-26.94997 -0.27389,-27.89423 -7.04045,-24.27288 -3.87224,2.07236 -7.04045,6.82666 -7.04045,10.5651 0,19.15078 -31.06626,52.79893 -48.74757,52.79893 -6.13699,0 -7.57601,-2.08781 -7.57601,-10.99171 0,-8.63256 0.98445,-10.17468 4.58676,-7.18503 3.37645,2.8022 7.51132,2.02814 15.6701,-2.93352 10.46743,-6.36562 24.46436,-26.86776 20.82642,-30.5057 -0.92321,-0.9232 -8.18549,1.64104 -16.13841,5.69832 -11.05236,5.63849 -17.09056,6.69519 -25.62331,4.48413 -18.44915,-4.78065 -14.93127,-9.87119 9.99563,-14.46416 32.31117,-5.95356 37.51204,-9.16584 35.62763,-22.00514 -1.18294,-8.05985 -0.27465,-10.15428 4.04669,-9.33156 3.06458,0.58344 6.07777,4.60583 6.69597,8.93865 0.94205,6.60252 2.22427,7.28899 7.92051,4.24046 5.39397,-2.88677 6.79649,-7.46192 6.79649,-22.17071 0,-10.19333 -1.87452,-20.40785 -4.1656,-22.69892 -6.94083,-6.94083 0.40679,-9.73701 10.52558,-4.00557 8.74348,4.95243 9.38391,6.83302 8.23263,24.17464 -1.18819,17.89754 -0.8747,18.70673 6.49993,16.77822 14.38098,-3.76071 17.62992,0.35147 17.62992,22.31412 0,29.6202 10.426,40.35067 37.84244,38.9475 6.8897,-0.35261 7.9344,-2.35244 8.0275,-15.36632 0.092,-12.85479 0.6552,-13.96981 4.001,-7.9205 2.1417,3.87225 6.8906,10.35841 10.5531,14.41371 12.9653,14.35553 1.6811,23.361 -29.2724,23.361 -29.74614,0 -45.23253,-17.81566 -45.23253,-52.03589 0,-11.42789 -1.30528,-15.8154 -4.40028,-14.791 -3.03102,1.00323 -4.94799,13.87752 -6.1604,41.37296 -1.95381,44.30934 -4.70338,48.90119 -19.6578,32.82899 z m 58.38031,-50.01954 c 0,-5.54679 13.579,-6.83877 20.0776,-1.91029 5.7,4.32281 5.0215,4.80708 -6.8768,4.908 -7.2605,0.0616 -13.2008,-1.2874 -13.2008,-2.99771 z m -1.9674,-23.40397 c 7.5926,-5.74279 21.6085,-6.89102 24.6208,-2.01703 2.5801,4.17462 -6.493,7.43597 -20.3012,7.29736 -10.56844,-0.1061 -10.79477,-0.38275 -4.3196,-5.28033 z M 644.71342,170.18909 c 16.2178,-10.39302 24.29225,-23.65524 18.58722,-30.52938 -5.90923,-7.12019 -2.31114,-10.06256 8.87259,-7.25562 11.87966,2.98161 14.49879,10.57053 7.39167,21.41736 -7.54722,11.51851 -19.0792,18.79429 -33.96417,21.42871 l -12.13676,2.14804 z m 99.95695,-11.38257 c -12.58202,-5.03071 -17.68339,-13.7633 -17.80852,-30.48484 -0.12198,-16.30115 -3.19435,-17.98027 -17.71307,-9.68062 -12.79931,7.31675 -29.46616,6.52309 -36.96235,-1.76011 -6.24487,-6.9005 -6.14854,-7.04045 4.84579,-7.04045 6.16952,0 20.88377,-3.25639 32.69834,-7.23643 28.96459,-9.757461 32.20008,-8.072369 29.28582,15.25251 -1.92785,15.43003 -1.15549,20.04536 4.52937,27.06587 6.03627,7.45448 8.26068,8.06021 18.65348,5.07959 8.0245,-2.30141 12.5762,-6.17034 14.2261,-12.09224 1.4393,-5.16592 2.5689,-6.28343 2.777,-2.74728 0.193,3.27843 3.5978,8.23496 7.5661,11.01451 6.6531,4.65996 6.7706,5.49837 1.5087,10.76028 -6.3608,6.3608 -29.8544,7.36786 -43.60676,1.86921 z M 749.42412,132.61 c 7.54601,-5.70755 19.56841,-6.95153 19.56841,-2.02478 0,3.98954 -8.8909,7.45001 -18.76903,7.30512 -7.46868,-0.10955 -7.48585,-0.22294 -0.79938,-5.28034 z m 1.47727,-22.51602 c 9.14494,-8.02634 16.42644,-9.31523 19.99604,-3.53949 3.2946,5.33069 0.7982,6.85721 -14.6695,8.97037 l -13.63703,1.86306 z"
-           id="path3445"
-           inkscape:connector-curvature="0"
-           sodipodi:nodetypes="sscsssssssssssssssssssssssssscsssssscssssssssssssscsssssssssssscsssssssssssssssssssssssssssssssssssssssssssssscsssssssssssccssssssssscs" />
-      </g>
-      <path
-         sodipodi:nodetypes="ssscssssscsssssssssscs"
-         inkscape:connector-curvature="0"
-         id="path3597"
-         d="m 193,437.57176 c -33.825,-11.17923 -62.27929,-20.9437 -63.23175,-21.69882 -1.3974,-1.10786 -7.5275,-35.88006 -31.750002,-180.09769 L 68,57.050498 68,40.725249 C 68,29.361166 68.364674,24.035326 69.2,23.2 70.124671,22.275329 112.78183,22 255.11821,22 c 101.59502,0 185.43002,0.273145 186.3,0.606989 C 442.78115,23.129996 443,25.755121 443,41.580463 l 0,18.366485 -27.55185,177.276522 c -15.5708,100.18706 -28.07286,177.79074 -28.75,178.45902 -1.02945,1.01599 -124.10743,40.54934 -130.05047,41.77295 C 255.46646,457.69865 226.825,448.75099 193,437.57176 z m 125.16391,-25.1264 c 36.41114,-12.13702 61.88476,-21.12982 62.20301,-21.95915 1.13346,-2.95375 51.75647,-355.722265 51.24002,-357.068127 C 431.14006,32.201427 406.13831,32 255.5904,32 159.0806,32 79.905887,32.343261 79.646597,32.762801 c -0.737722,1.19366 54.965823,357.249619 56.061743,358.345539 1.11795,1.11795 117.00987,41.76816 119.2916,41.84267 0.82496,0.0269 29.24875,-9.2006 63.16397,-20.50565 z"
-         style="fill:#12110f" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/shogi/WhiteAdvisor.svg b/themes/shogi/WhiteAdvisor.svg
deleted file mode 100644 (file)
index c0dccbc..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg4825"
-   version="1.1"
-   inkscape:version="0.48.4 r9943 custom"
-   width="512"
-   height="512"
-   sodipodi:docname="WhiteAdvisor.svg">
-  <metadata
-     id="metadata4831">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs4829" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1051"
-     inkscape:window-height="853"
-     id="namedview4827"
-     showgrid="false"
-     inkscape:zoom="0.4609375"
-     inkscape:cx="256"
-     inkscape:cy="256"
-     inkscape:window-x="0"
-     inkscape:window-y="22"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g4835" />
-  <g
-     id="g4835">
-    <g
-       id="g3019">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4839"
-         d="m 81.239624,479.75 c -0.552897,-0.6875 -1.995733,-4.4 -3.206303,-8.25 l -2.201037,-7 25.083856,-177.09934 C 114.71226,189.99602 126,109.79936 126,109.18584 c 0,-0.61351 0.91337,-1.60429 2.02972,-2.20174 C 131.74047,104.99816 253.45469,63 255.49934,63 c 1.10517,0 29.23041,9.814635 62.50053,21.8103 51.98803,18.74448 60.66289,22.15324 61.71306,24.25 0.67205,1.34183 13.42558,81.97027 28.34115,179.17429 l 27.11924,176.73459 -2.21977,6.76541 c -1.22087,3.72098 -2.66497,7.32791 -3.2091,8.01541 C 428.9598,480.74138 392.90978,481 255.5,481 118.09872,481 82.036857,480.74132 81.239624,479.75 z"
-         style="fill:#d3bc5f" />
-      <g
-         transform="matrix(1.0066378,0,0,1.0066378,535.99078,108.46325)"
-         id="g3160">
-        <path
-           style="fill:#000000"
-           d="m -316.40625,-0.25 c -6.69109,1.3883585 -5.75838,9.5947071 -6.84375,14.65625 -7.47928,15.889046 -22.92191,26.19721 -34.47363,39.291488 -2.27207,3.168143 -8.68633,7.419331 -5.40137,11.552262 5.75762,1.557705 11.15349,-3.51974 16.21875,-5.59375 12.94165,-7.284273 24.99624,-16.135525 35.1875,-26.84375 5.58084,-2.165028 9.07669,5.008901 13.125,7.53125 5.72407,3.755303 13.99264,8.017488 20.625,4.3125 4.03769,-4.545542 -1.04848,-11.027466 -4.65625,-14.1875 -4.86783,-5.101891 -15.07252,-6.676838 -15.21875,-15.15625 -2.36434,-7.5207536 -10.22338,-15.58743944 -18.5625,-15.5625 z m 92.46875,18.375 c -13.71227,2.020217 -27.90891,3.562765 -41.125,7.90625 -4.14807,1.348728 -3.41853,6.625915 -0.28125,8.65625 4.31599,4.976063 11.35359,8.669845 17.8179,5.33661 9.73473,-1.563516 19.99214,-4.834907 29.8071,-3.74286 2.2555,2.390992 -0.78646,5.657969 -3.5625,5.40625 -12.04992,-0.193687 -23.65155,3.725055 -34.65625,7.78125 -3.67071,2.240747 -3.75481,-2.636879 -6.5625,-3.78125 -3.16135,-2.94829 -7.92712,-0.5826 -8.15625,3.5625 -2.16592,16.664512 -0.46901,33.6831 -2.74887,50.401951 -1.64984,15.016429 -5.53435,31.237879 1.78688,45.491059 2.48892,4.59817 4.36155,13.16562 10.99324,12.70074 7.15208,-3.33529 7.29721,-12.99094 12.75,-18.15625 4.24444,-4.779 9.46404,-10.82472 16.09375,-11.28125 10.62583,7.20884 16.19959,21.06846 28.46875,26.125 5.94838,1.91472 8.22581,-5.66176 7.40625,-10.1875 0.61506,-10.11583 -6.02045,-18.45587 -14.20625,-23.50625 -6.05729,-4.15554 -12.29046,-8.11896 -18.45,-12.18125 9.57746,-4.0463 22.87262,-5.04003 28.21875,-15.15625 1.99109,-5.843429 -1.50855,-13.247784 -6.6875,-16.21875 -5.58215,-0.254741 -7.67188,6.700625 -11.8064,9.357767 -6.8583,5.821811 -12.46012,13.962623 -21.16235,17.110983 -5.20422,0.63901 -10.04312,-6.61924 -14.9375,-3.21875 -1.76606,4.51257 4.03716,7.79603 6.53125,10.8125 2.10413,3.11952 11.79657,7.45622 8.28907,9.56044 -7.10192,2.37248 -14.45044,5.86433 -18.85157,11.84581 -4.80771,-8.31304 -3.54381,-19.20887 -3.40478,-28.7167 1.14214,-8.114718 0.61572,-17.2084 4.99853,-24.3458 7.11876,-4.387698 16.59768,-1.537652 24.15625,-5.4375 4.42784,-0.847288 8.4779,-8.043935 2.875,-10.1875 -8.05687,-1.827613 -16.5531,3.219854 -24.4375,1.40625 -1.1271,-3.162706 -1.18473,-9.212569 3.6875,-8.5625 9.84275,0.793476 19.48887,-1.267404 28.96875,-3.09375 3.10511,0.155746 0.25009,4.863859 0.0312,6.40625 -1.85446,5.886125 -7.18713,12.783409 -3.875,19.03125 5.06923,4.455016 11.04262,-2.250963 13.86527,-6.194566 7.54776,-11.059605 14.30543,-24.429292 12.79098,-38.242934 -1.8427,-11.42138 -13.85156,-17.541603 -24.625,-16.6875 z m -72.46875,32.15625 c -12.96516,1.339875 -24.45282,9.201418 -37.71565,9.328702 -3.79939,0.878598 -10.88908,-1.717199 -12.3781,3.202548 1.66412,5.070372 7.83585,7.397496 12.25,9.65625 3.54005,2.464092 9.35526,0.43719 12.21875,3.0625 -2.99654,6.556588 -11.84119,6.767271 -18.03125,8.40625 -4.66806,-0.07282 -12.33262,6.440081 -5.90625,9.875 3.23523,1.535647 6.91854,1.508032 10.4375,1.5625 -5.47312,4.98923 -14.77329,9.16339 -15.1875,17.53125 1.39957,6.93673 10.45152,6.79366 16,6.96875 3.69344,0.69642 11.93536,-1.66563 11.96875,4.21875 1.18999,4.59765 -1.07861,9.41657 -5.96875,10.1875 -9.37214,3.71511 -20.57665,3.11254 -28.78125,9.125 -3.39579,4.9799 3.60562,9.67794 7.9375,10.46875 13.34953,3.59624 26.46737,-2.37329 38.96875,-6.375 8.28841,-3.07879 20.56605,-1.87331 25.375,-10.875 1.96017,-5.94992 -5.79435,-8.46102 -10.40625,-7.8125 -3.10309,0.0445 -9.21836,1.41176 -8.84375,-3.46875 -0.70209,-4.09218 1.34165,-10.3788 5.65625,-10.84375 -2.4876,4.35733 2.90337,7.91122 6.90625,6.40625 5.4186,-0.83419 13.56705,-5.67364 10.625,-12.125 -4.34709,-7.4586 -14.16025,-10.5261 -22.1875,-7.96875 -1.88709,-2.777832 -1.46416,-7.883421 0.0625,-10.9375 4.4693,-4.081856 14.0128,-0.709234 16.375,-7.5625 0.0859,-5.947422 -8.09567,-6.326325 -12.5,-6.09375 -1.83366,-0.242864 -5.81635,1.186049 -6.75,-0.0625 1.72583,-6.152198 7.7218,-9.445685 13.71875,-9.625 7.57604,-2.253875 7.0782,-14.139204 -0.5625,-15.96875 -1.03753,-0.337773 -2.17935,-0.355187 -3.28125,-0.28125 z m -26.28125,47.3125 c 1.63382,6.34078 -5.57922,9.26866 -10.625,9.15625 -4.15116,0.85159 1.43679,-2.8356 2.375,-3.8125 2.51379,-1.55359 6.25435,-5.417566 8.25,-5.34375 z M -337.65625,168.5 c -5.29093,0.64656 -12.87301,1.88551 -14.8125,7.625 0.83922,6.52756 9.08936,8.26303 13.34375,12.1875 8.50286,5.55509 16.74622,16.08664 11.5625,26.5625 -4.90045,11.08435 -15.2116,18.3722 -23.34375,26.96875 -4.6732,-7.51702 -11.04145,-18.57091 -21.5625,-16.53125 -11.3759,3.29911 -13.12768,18.00335 -9.9375,27.78125 0.93538,5.50779 6.23615,11.0185 3.9375,16.59375 -8.51025,8.22766 -15.71579,18.36092 -20.21875,29.34375 -1.32689,5.64694 3.99477,11.32462 9.125,12.59375 7.12341,-1.5415 10.21711,-9.72777 14.84252,-14.55556 3.20974,-2.57769 5.69943,-11.16294 9.25123,-10.41319 12.76376,11.79902 21.16221,28.0777 32.90625,40.8125 3.27484,4.07434 10.30787,4.12498 12.34375,-1.25 6.35569,-14.60236 6.18482,-31.17314 8.24214,-46.8088 1.73378,-20.09007 3.35459,-40.19037 5.03911,-60.28495 12.27755,-10.74826 23.44781,-23.18457 36.9375,-32.15625 0.56789,10.95319 -11.66375,17.3686 -13.0625,27.8125 1.82011,5.65341 9.67236,3.47479 13.40625,1.15625 9.22599,-5.27136 16.78699,-14.45985 19.28125,-24.875 -0.66195,-6.9891 -7.41266,-12.26122 -13.6875,-14.375 -14.41992,-3.41972 -27.33253,7.28422 -37.38378,16.22292 -3.78399,3.6146 -8.29187,9.10954 -6.64747,0.33958 -0.63128,-14.65231 -15.49123,-25.51702 -29.5625,-24.75 z m 111.84375,11.1875 c -6.73228,1.01019 -15.24108,0.65905 -20.1875,6.0625 -1.98416,5.28169 5.50403,6.94126 9.25,7.65625 6.43907,1.67788 16.64742,-0.0524 19.40625,7.4375 0.079,9.22881 -10.2087,14.10377 -15.92247,19.78852 -4.8976,3.92687 -11.48146,9.04846 -1.05044,5.5605 12.38916,-2.46091 28.4601,-5.19312 33.50416,-18.69277 3.88477,-10.14678 -0.62377,-23.69145 -11.90625,-26.4375 -4.19562,-1.38751 -8.70195,-1.57781 -13.09375,-1.375 z m -29.03125,29.46875 c -6.48995,1.60896 -5.22729,9.67907 -5.03125,14.71875 -1.3063,10.33622 -12.94678,14.49058 -19.57714,21.04168 -4.50896,3.5804 9.21684,0.85095 12.57714,1.70832 9.80528,-0.84255 20.25865,-5.98997 24.96875,-14.875 1.54723,-6.47446 -1.68063,-13.79624 -5.875,-19.3125 -1.7949,-1.92038 -4.29095,-3.65295 -7.0625,-3.28125 z m 41.5,13.5 c -6.05065,0.32967 -6.48115,8.01605 -3.625,11.96875 0.66071,2.20761 3.63856,5.53197 2.34375,7.5625 -20.30013,6.22748 -41.82257,8.59039 -63.03125,9.9375 -7.98591,0.64036 -17.44126,-3.48494 -24.5,1.6875 -3.68883,4.86372 2.92378,9.63711 6.5625,12 9.88869,7.75974 22.71973,2.93329 33.71875,1.40625 2.13217,0.0612 7.73943,-1.92728 5.75,2.125 -2.98151,13.58442 -15.75725,21.19293 -27.26175,26.98655 -2.68283,2.03131 -9.80153,4.67945 -6.61325,8.8572 6.51552,2.7941 14.07047,-0.26143 20.8125,-0.96875 10.85983,-2.79491 25.22925,-4.28169 30.375,-15.90625 3.49414,-8.82718 -4.32583,-15.94078 -8.90625,-22.375 3.2753,-4.40381 10.46432,-4.86834 15.59375,-6.25 7.39033,-1.0436 15.69463,-3.11287 22.84375,-1.0625 4.41035,12.83375 2.21878,26.93485 2.8125,40.3125 -11.53563,0.8565 -24.07886,-1.97992 -35,2.53125 -4.19145,2.61668 0.1677,7.38614 3.65625,7.8125 9.19872,3.25956 21.50238,3.19441 26.96875,12.6875 2.99087,5.38787 10.99141,8.81861 15.625,3.40625 8.9812,-11.33804 8.76978,-27.05492 8.63203,-40.90471 -0.49623,-9.08067 -1.72461,-18.10231 -2.53828,-27.15779 9.11687,0.63242 19.47538,5.21921 28.21875,0.8125 5.0357,-3.91933 -0.19756,-10.34713 -3.78125,-13.09375 -6.69339,-6.68527 -16.528,-10.10204 -25.75,-7.03125 -2.22565,0.66416 -5.97062,0.78602 -5.03125,-2.59375 -1.61005,-7.47767 -10.46829,-13.03856 -17.875,-12.75 z m -113,21.96875 c -0.77476,19.13033 -1.02257,38.65497 -5.71875,57.21875 -9.41674,-8.63363 -18.19658,-18.2338 -25.1875,-28.90625 9.17901,-12.71391 20.3828,-23.79347 30.8125,-35.5625 0.0312,2.41667 0.0625,4.83333 0.0937,7.25 z m -43.03125,-4.8125 c 5.7668,-0.62219 9.11961,5.47798 7.03125,10.46875 0.0754,2.87425 -3.7972,7.84027 -5.9375,3.53125 -1.87657,-3.97991 -4.03282,-9.83721 -1.96875,-13.78125 0.27134,-0.1206 0.56584,-0.20902 0.875,-0.21875 z"
-           id="path3158"
-           inkscape:connector-curvature="0" />
-      </g>
-      <path
-         sodipodi:nodetypes="sssscssscssssscsssss"
-         inkscape:connector-curvature="0"
-         id="path4837"
-         d="m 83.265046,479.18497 c -1.666238,-1.05834 -5.267537,-11.74369 -5.254833,-15.59152 0.01231,-3.72837 49.595637,-354.53263 50.195017,-355.13201 0.23082,-0.23082 28.95691,-10.341334 63.83576,-22.467812 l 63.4161,-22.04814 60.33425,21.712929 c 33.18384,11.942112 60.9552,22.191873 61.71415,22.777253 0.95667,0.73789 9.68051,55.04465 28.44362,177.06433 14.88504,96.8 27.06083,177.16705 27.0573,178.59345 -0.009,3.47412 -3.72299,14.10798 -5.27146,15.09152 -1.61454,1.02551 -342.855361,1.02551 -344.469904,0 z M 422.34568,454.2497 c 0.44433,-0.71894 -51.7521,-334.80412 -52.84843,-338.25836 -0.37902,-1.19418 -16.86699,-7.40291 -57.23901,-21.554014 l -56.70665,-19.876675 -57.891,19.469675 c -31.84005,10.708324 -58.55867,19.946184 -59.37471,20.528584 -1.11713,0.79729 -7.49206,42.79474 -25.8018,169.97979 -13.374944,92.90648 -24.103874,169.26747 -23.842064,169.69109 0.614407,0.99413 333.089304,1.01397 333.703664,0.0199 z"
-         style="fill:#151310" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/shogi/WhiteBishop.svg b/themes/shogi/WhiteBishop.svg
deleted file mode 100644 (file)
index 3f0f344..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg3036"
-   version="1.1"
-   inkscape:version="0.48.4 r9943 custom"
-   width="512"
-   height="512"
-   sodipodi:docname="WhiteBishop.svg">
-  <metadata
-     id="metadata3042">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3040" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview3038"
-     showgrid="false"
-     inkscape:zoom="0.4609375"
-     inkscape:cx="578.16949"
-     inkscape:cy="256.98712"
-     inkscape:window-x="147"
-     inkscape:window-y="22"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3046" />
-  <g
-     id="g3046">
-    <g
-       id="g3434">
-      <path
-         inkscape:connector-curvature="0"
-         id="path3050"
-         d="M 72.249679,484.75 C 71.702313,484.0625 70.254357,479.225 69.032,474 L 66.809531,464.5 93.29548,276.65929 C 107.86275,173.34689 120.16811,88.435496 120.64071,87.967294 121.92769,86.69231 253.12009,41 255.49386,41 c 2.32043,0 129.53764,45.664114 130.8678,46.974479 0.47391,0.466858 13.678,85.376091 29.34242,188.687181 L 444.18485,464.5 441.96519,474 c -1.22081,5.225 -2.6675,10.0625 -3.21487,10.75 -1.46182,1.83607 -365.038821,1.83607 -366.500641,0 z"
-         style="fill:#d3bc5f" />
-      <g
-         transform="matrix(1.0248367,0,0,1.0248367,-432.37391,-17.548525)"
-         id="g3419">
-        <path
-           style="fill:#000000"
-           d="m 735.64554,439.82119 c -1.0431,-2.7183 -7.96792,-6.86882 -15.38849,-9.22341 -7.42056,-2.35458 -17.068,-6.5246 -21.43873,-9.26671 -14.29132,-8.96607 -9.27325,-12.21928 15.01061,-9.73129 l 22.95742,2.35204 0,-22.92132 c 0,-20.7978 -1.01103,-23.97927 -10.91313,-34.34087 l -10.91313,-11.41955 -22.58096,5.0655 c -21.50861,4.82494 -23.12887,4.71453 -34.11873,-2.32502 l -11.53776,-7.39056 12.36168,-0.94617 c 34.99059,-2.67814 72.89587,-8.9175 81.63722,-13.43786 12.74755,-6.59199 24.333,-6.45322 34.12996,0.40882 15.12148,10.59153 9.97003,15.68335 -15.99071,15.80566 -21.77287,0.10242 -23.24352,0.56372 -16.95787,5.31736 11.5983,8.77136 17.14413,81.2943 6.99284,91.44557 -6.85795,6.85795 -10.78272,7.03801 -13.25022,0.60781 z m -129.36818,-3.68057 c -2.99133,-3.60431 -3.50013,-13.40243 -1.74236,-33.55315 1.36553,-15.65417 1.42696,-28.46214 0.13651,-28.46214 -1.29046,0 -5.86642,2.25434 -10.16881,5.00966 -8.40466,5.38245 -15.3771,6.63239 -33.42889,5.99277 -15.55052,-0.55098 -14.46569,-5.45748 2.3185,-10.48614 17.04016,-5.10538 56.841,-33.90231 56.841,-41.12595 0,-6.58695 -6.14524,-6.58949 -17.65955,-0.007 -4.85638,2.77615 -15.18722,5.03206 -22.95742,5.01313 l -14.12764,-0.0353 15.18678,-7.94889 c 21.19869,-11.09486 43.08974,-33.14454 43.08974,-43.40131 0,-9.69542 5.73939,-10.67309 16.87368,-2.87433 9.40301,6.58613 10.2172,17.59909 1.66885,22.57324 -3.39946,1.9781 -9.21965,5.97352 -12.93374,8.87873 -6.55716,5.12907 -6.48038,5.49657 2.64893,12.67769 5.17101,4.06748 9.40183,8.95049 9.40183,10.85108 0,1.9006 -5.75511,8.72803 -12.78913,15.17203 -12.45031,11.40599 -12.67488,12.06261 -8.47659,24.78356 4.584,13.88966 5.88104,51.9633 1.98496,58.2673 -3.28212,5.31058 -10.8867,4.67558 -15.86665,-1.32489 z M 675.8609,310.26803 c -11.12289,-6.47848 -6.55646,-9.3368 17.68771,-11.07146 13.12771,-0.93928 29.06738,-4.3962 35.4215,-7.68205 9.84419,-5.09063 12.96797,-5.29604 21.1201,-1.38883 5.26195,2.52199 10.14128,7.56649 10.84296,11.21002 1.06516,5.53093 -0.2324,6.24606 -7.85971,4.33173 -5.02451,-1.26108 -20.6781,0.11521 -34.78574,3.05838 -29.86832,6.23124 -34.11145,6.38547 -42.42682,1.54221 z m 39.73399,-48.50969 c 0,-1.58276 -5.9601,-5.83473 -13.24466,-9.44881 -10.97748,-5.44625 -12.0355,-6.83245 -6.18085,-8.09804 14.16353,-3.06171 15.8936,-7.59086 15.8936,-41.60784 0,-18.90837 -1.55795,-33.87511 -3.66153,-35.17519 -2.01383,-1.24462 -9.86344,-1.21514 -17.44357,0.0655 -9.92239,1.67638 -13.24216,3.73541 -11.8542,7.35238 1.06032,2.76314 4.74192,5.0239 8.18134,5.0239 6.88305,0 16.45863,9.49663 13.03136,12.92391 -1.18662,1.18661 -5.78384,2.34022 -10.21606,2.56358 -5.6595,0.2852 -8.41381,2.91869 -9.25182,8.84597 -1.02542,7.25288 -0.0578,8.14295 6.88004,6.32866 7.95549,-2.08041 17.27062,2.56963 17.27062,8.62136 0,1.7047 -5.56276,3.09945 -12.36169,3.09945 -11.43951,0 -12.36168,0.80776 -12.36168,10.82792 0,12.00981 -5.46321,24.49118 -10.72,24.49118 -1.87421,0 -3.40765,-6.35744 -3.40765,-14.12764 0,-13.20918 -0.66072,-14.12764 -10.16326,-14.12764 -5.5898,0 -12.10529,-2.33999 -14.47886,-5.19997 -3.64767,-4.39517 -2.07472,-5.55829 10.16327,-7.51523 12.26842,-1.96179 14.47885,-3.60463 14.47885,-10.76092 0,-7.33778 -1.20799,-8.14247 -9.20887,-6.13438 -6.05089,1.51868 -10.22612,0.66533 -12.17524,-2.48842 -3.56148,-5.76259 2.20611,-10.15349 13.43732,-10.22992 8.51708,-0.058 9.64992,-2.49228 4.75568,-10.21933 -1.69562,-2.67706 -4.86423,-3.76649 -7.04134,-2.42096 -5.78897,3.57778 -17.50367,-1.03577 -21.47577,-8.4577 -3.1721,-5.92713 -1.50374,-6.46742 21.02996,-6.81042 13.46146,-0.20492 31.86921,-2.88283 40.90611,-5.95093 15.81649,-5.36984 16.72705,-5.3 24.35738,1.86832 7.13948,6.7072 8.136,11.87753 10.03483,52.06441 1.26426,26.75692 0.72025,47.21108 -1.35897,51.09613 -3.43809,6.42415 -13.81434,9.12868 -13.81434,3.60067 z m -102.48108,-9.55101 c -3.57428,-4.30674 -3.58349,-10.44534 -0.0467,-31.12161 2.4232,-14.16616 3.83488,-34.00395 3.13707,-44.08399 -1.29274,-18.67406 -0.69574,-20.1905 6.14932,-15.61992 8.45288,5.64414 12.00744,19.2569 12.00744,45.98449 0,41.68139 -8.675,59.98954 -21.24714,44.84103 z m 48.56857,-102.70352 c -1.45791,-1.45791 3.16881,-5.95006 10.28161,-9.98255 17.28388,-9.79882 22.80944,-18.855 14.41836,-23.6311 -3.44033,-1.9582 -5.29327,-5.11668 -4.11766,-7.01886 4.53088,-7.33111 29.79829,6.87834 29.79829,16.75744 0,10.11083 -43.52065,30.73502 -50.3806,23.87507 z m -25.7553,-23.6407 c 12.22443,-11.71307 15.35436,-16.92838 13.77773,-22.95742 -1.62182,-6.201856 -0.53287,-7.801289 5.31141,-7.801289 4.04331,0 8.80895,2.781379 10.59031,6.180839 7.3661,14.05718 -14.31786,39.734 -33.55518,39.734 l -11.94208,0 z"
-           id="path3417"
-           inkscape:connector-curvature="0"
-           sodipodi:nodetypes="sssscsscsscssssssscssssssccccsssssssssccssssssssssssssssssssssssssssssssssssssssscssssccssssssssssscs" />
-      </g>
-      <path
-         sodipodi:nodetypes="sssscssssscsssscc"
-         inkscape:connector-curvature="0"
-         id="path3048"
-         d="M 74.333178,484.22708 C 72.934299,483.33715 69,468.45528 69,464.05381 69,458.46366 121.13145,90.54654 122.08661,89.395639 122.59762,88.779912 152.8305,77.851437 189.27078,65.110137 l 66.25507,-23.165999 63.98708,23.071644 c 35.19289,12.689404 64.52241,23.614473 65.17672,24.277931 C 385.82109,90.440973 442,457.97084 442,464.22559 c 0,4.26797 -3.9627,19.12963 -5.33318,20.00149 -1.52551,0.97048 -360.808133,0.97048 -362.333642,0 z M 431.35399,454.23624 C 432.29606,452.71195 376.2006,96.742012 374.89076,95.932485 373.06417,94.803592 257.19604,54.005373 255.72519,53.973206 254.27707,53.941537 134.00578,94.760359 132.12832,95.920693 130.801,96.741021 78.656683,452.63548 79.632479,454.21436 c 0.626082,1.01302 351.095481,1.03483 351.721511,0.0219 z"
-         style="fill:#11100e" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/shogi/WhiteCrownedBishop.svg b/themes/shogi/WhiteCrownedBishop.svg
deleted file mode 100644 (file)
index 278bb40..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg3122"
-   version="1.1"
-   inkscape:version="0.48.4 r9943 custom"
-   width="512"
-   height="512"
-   sodipodi:docname="WhiteCrownedBishop.svg">
-  <metadata
-     id="metadata3128">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3126" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview3124"
-     showgrid="false"
-     inkscape:zoom="0.4609375"
-     inkscape:cx="578.16949"
-     inkscape:cy="256"
-     inkscape:window-x="0"
-     inkscape:window-y="22"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3132" />
-  <g
-     id="g3132">
-    <g
-       id="g3033">
-      <path
-         inkscape:connector-curvature="0"
-         id="path3138"
-         d="M 72.249679,484.75 C 71.702313,484.0625 70.254357,479.225 69.032,474 L 66.809531,464.5 93.29548,276.65929 C 107.86275,173.34689 120.16811,88.435496 120.64071,87.967294 121.92769,86.69231 253.12009,41 255.49386,41 c 2.32043,0 129.53764,45.664114 130.8678,46.974479 0.47391,0.466858 13.678,85.376091 29.34242,188.687181 L 444.18485,464.5 441.96519,474 c -1.22081,5.225 -2.6675,10.0625 -3.21487,10.75 -1.46182,1.83607 -365.038821,1.83607 -366.500641,0 z"
-         style="fill:#d3bc5f" />
-      <g
-         transform="matrix(1.0721232,0,0,1.0721232,-480.27016,-34.23597)"
-         id="g3006">
-        <path
-           style="fill:#ff0000"
-           d="m 702.46875,111.75 c -4.62406,0.56218 -10.51525,2.34758 -12.625,6.78125 0.75729,6.22951 11.02734,3.33167 12.125,9.78125 1.60631,11.64219 2.19033,24.45385 -1.90625,35.75 -6.37933,9.54788 -15.48631,17.1073 -22.56917,26.2135 -3.14348,2.6081 -10.29452,13.14337 -1.58708,7.849 7.5061,-5.54759 14.45302,-12.75326 22.28125,-17.40625 0.7166,6.35972 3.20589,13.61807 9.78125,15.90625 4.8812,3.71225 -0.3645,10.26132 -4.03125,12.71875 -5.14606,3.70961 -5.75311,11.99086 0.0625,15.375 7.70154,5.93166 20.20245,5.17731 25.28125,14.4375 1.4326,7.89493 -4.30601,15.40386 -9.15625,21.125 -4.3763,1.86358 -9.45387,-1.82004 -13.68921,-3.20031 -10.05607,-4.33644 -18.90098,-10.93621 -26.24829,-18.86219 -2.79436,-2.84785 -6.55081,0.49797 -5.71875,3.90625 0.5903,8.5572 7.89562,15.01825 13,21.25 9.90278,10.7377 25.51608,20.32185 40.34375,13.96875 12.82889,-6.14142 20.03927,-20.46791 22.1875,-34.09375 1.43449,-9.53821 -6.06215,-17.66647 -14.74136,-20.26396 -3.82694,-2.22841 -10.28266,-3.25617 -11.82114,-7.82979 2.26074,-5.14139 8.24906,-9.20204 6.875,-15.65625 -1.07021,-7.92887 -9.46754,-10.61997 -15.90625,-12.65625 -6.59955,-3.67097 -4.00024,-14.47082 2.6875,-16.8125 8.93074,-5.42148 20.02607,-5.29859 29.125,-10.0625 4.11288,-4.14817 -1.72959,-9.36187 -5.15625,-11.625 -9.26566,-4.61811 -17.9198,4.19559 -26.53125,6.375 1.78564,-8.6908 7.9941,-16.62717 5.84375,-26 -1.11727,-8.87611 -8.30653,-17.58527 -17.90625,-16.96875 z m -54.40625,6.75 c -10.44043,1.71659 -13.30021,13.90845 -18.15625,21.53125 -4.61007,5.9039 -13.37451,1.46229 -19.53125,1.71875 -5.72194,0.0454 -12.54353,-2.03128 -17.65625,1.28125 -1.73639,7.15451 6.47819,12.04585 12.34375,13.75 8.38402,1.57456 17.15139,1.17813 24.90625,5.34375 3.34021,1.86812 10.98818,4.45143 7.9375,9.53125 -7.98687,14.2981 -22.01635,26.45499 -38.76826,28.16068 -5.2208,1.56095 -12.12107,-1.44552 -16.38799,2.52682 -1.02833,4.71314 4.61809,7.72468 7.59375,10.46875 7.97119,3.86521 16.46489,-2.45409 24,-4.65625 8.95675,-3.62801 17.97156,-7.32558 27.15625,-10.21875 -12.2611,18.26318 -30.48819,32.49882 -40.25,52.28125 -1.25691,5.69722 7.18478,9.9066 11.21875,5.53125 9.05922,-8.40361 14.77393,-19.60721 23.31554,-28.59974 1.79484,-1.39744 6.63868,-9.30438 6.90321,-7.15026 -0.41257,10.58331 -0.0428,21.67024 -5.0625,31.25 -2.14165,8.05683 8.33493,15.92598 15.0625,10.25 8.78792,-6.35081 7.5654,-18.16866 8.68837,-27.61258 0.35274,-6.12911 3.69537,-11.44196 5.49913,-17.04367 -1.58113,-4.97563 -5.87201,0.74427 -7.3566,2.98837 -1.76597,0.99382 -3.65469,7.21411 -5.8309,3.66788 -2.63201,-2.50632 -4.11191,-7.40914 -8.15625,-7.84375 7.8206,-9.48099 17.04731,-18.39343 22.125,-29.6875 0.16625,-6.24057 -8.1068,-7.14165 -12.84375,-7.125 -1.45312,-0.51118 -6.74824,0.92516 -6.28125,-0.90625 3.40338,-6.01503 10.65507,-12.92618 7.15625,-20.34375 -2.43683,-4.10633 -9.11462,-3.7204 -12.0625,-4.15625 7.64091,-4.87998 18.35669,-7.67655 22.40625,-16.5 1.52712,-7.26251 -5.53329,-13.04364 -10.875,-16.71875 -2.13377,-1.23323 -4.61417,-1.94651 -7.09375,-1.71875 z m 2.0625,13.90625 c 3.36047,0.23376 1.98052,4.40996 -0.71875,4.78125 -2.13854,1.50547 -3.49233,0.59424 -2.28125,-1.75 0.52062,-1.33199 1.43306,-2.77932 3,-3.03125 z m 112.71875,7.1875 c -3.87866,-0.90798 -7.22208,3.62778 -3.90625,6.40625 4.77009,3.45071 6.41671,10.80908 1.75,15.09375 -5.98202,6.28094 -14.50638,9.31552 -20.875,15.1875 12.95521,-1.55135 26.82888,-2.13785 38.625,-8.03125 6.14302,-2.89595 7.11454,-11.17432 3.3125,-16.46875 -3.69193,-6.66742 -10.77785,-13.03985 -18.90625,-12.1875 z m -32.875,150.46875 c -30.13267,2.29514 -58.73601,14.54252 -88.875,16.125 -8.23041,0.64244 -15.76797,-3.34816 -23.59375,-4.6875 -4.73898,1.80138 0.35047,6.67693 2.53125,8.46875 6.40438,6.80718 14.99933,13.51824 25.05638,11.38957 22.41132,-3.26974 43.87291,-14.2828 66.88112,-13.07707 3.8918,0.28286 -0.98243,3.31055 -2.25,4.21875 -2.53146,2.64178 -9.68304,2.81135 -8.875,7.4375 3.14155,2.80539 8.34738,-0.34677 12.18612,-0.62836 12.94113,-3.77797 26.18463,-8.01505 37.65763,-15.12164 4.53503,-3.90771 -1.70388,-8.54663 -5.03125,-10.375 -4.58443,-3.1479 -10.22817,-3.99962 -15.6875,-3.75 z m -43.875,46.71875 c -11.34662,0.67883 -23.44722,-0.40219 -34.15625,3.625 -3.84086,3.3805 1.35343,7.75334 4.625,8.8125 7.61888,3.67122 16.41577,5.16383 24.65625,3.40625 -1.89025,4.81272 -8.27811,7.33984 -9.59375,12.96875 -2.39008,4.39111 0.52074,10.38499 5.84375,9.78125 11.69044,-0.93022 23.94127,-3.52954 35.28125,1.03125 11.36292,3.20115 21.81789,15.10576 17.34375,27.34375 -3.45815,9.95888 -14.34915,14.50362 -22.90625,19.4375 -13.77225,6.66032 -29.7767,13.01793 -44.84375,6.375 -6.72008,-3.02435 -15.37943,-5.84764 -18.75,-12.8125 1.07225,-4.40185 7.68151,-2.38235 10.9375,-2.5625 6.51143,-0.37831 14.27277,4.10913 20.15625,-0.0312 4.1982,-4.95632 1.97401,-14.64201 -5.15625,-15.34375 -13.26815,-2.74734 -30.75185,-2.71391 -39.5,9.46875 -5.38234,7.99459 1.25973,17.21567 7.1875,22.71875 8.87311,9.15091 21.22537,13.8992 33.84375,14.84375 23.29994,3.38061 48.73023,-3.16438 64.7982,-20.74864 6.23031,-5.66574 11.68931,-13.51254 10.10805,-22.53261 -0.57132,-13.39501 -3.86052,-29.38845 -17.1875,-35.6875 -10.33606,-5.18463 -22.35996,-4.99724 -33.65625,-6.34375 6.63581,-5.81444 15.45864,-10.41281 19.0625,-18.78125 -0.4351,-4.92335 -7.41579,-3.72011 -10.8125,-4.5625 -5.74982,-0.38508 -11.52024,-0.46086 -17.28125,-0.40625 z"
-           id="path3004"
-           inkscape:connector-curvature="0" />
-      </g>
-      <path
-         sodipodi:nodetypes="sssscssssscsssscc"
-         inkscape:connector-curvature="0"
-         id="path3136"
-         d="M 74.333178,484.22708 C 72.934299,483.33715 69,468.45528 69,464.05381 69,458.46366 121.13145,90.54654 122.08661,89.395639 122.59762,88.779912 152.8305,77.851437 189.27078,65.110137 l 66.25507,-23.165999 63.98708,23.071644 c 35.19289,12.689404 64.52241,23.614473 65.17672,24.277931 C 385.82109,90.440973 442,457.97084 442,464.22559 c 0,4.26797 -3.9627,19.12963 -5.33318,20.00149 -1.52551,0.97048 -360.808133,0.97048 -362.333642,0 z M 431.35399,454.23624 C 432.29606,452.71195 376.2006,96.742012 374.89076,95.932485 373.06417,94.803592 257.19604,54.005373 255.72519,53.973206 254.27707,53.941537 134.00578,94.760359 132.12832,95.920693 130.801,96.741021 78.656683,452.63548 79.632479,454.21436 c 0.626082,1.01302 351.095481,1.03483 351.721511,0.0219 z"
-         style="fill:#f21914" />
-      <path
-         inkscape:connector-curvature="0"
-         id="path3134"
-         d="M 74.333178,484.22708 C 72.934299,483.33715 69,468.45528 69,464.05381 69,458.46366 121.13145,90.54654 122.08661,89.395639 122.59762,88.779912 152.8305,77.851437 189.27078,65.110137 l 66.25507,-23.165999 63.98708,23.071644 c 35.19289,12.689404 64.52241,23.614473 65.17672,24.277931 C 385.82109,90.440973 442,457.97084 442,464.22559 c 0,4.26797 -3.9627,19.12963 -5.33318,20.00149 -1.52551,0.97048 -360.808133,0.97048 -362.333642,0 z M 431.35399,454.23624 C 432.29606,452.71195 376.2006,96.742012 374.89076,95.932485 373.06417,94.803592 257.19604,54.005373 255.72519,53.973206 254.27707,53.941537 134.00578,94.760359 132.12832,95.920693 130.801,96.741021 78.656683,452.63548 79.632479,454.21436 c 0.626082,1.01302 351.095481,1.03483 351.721511,0.0219 z"
-         style="fill:#11100f" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/shogi/WhiteCrownedRook.svg b/themes/shogi/WhiteCrownedRook.svg
deleted file mode 100644 (file)
index 9544494..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg3210"
-   version="1.1"
-   inkscape:version="0.48.4 r9943 custom"
-   width="512"
-   height="512"
-   sodipodi:docname="WhiteCrownedRook.svg">
-  <metadata
-     id="metadata3216">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3214" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="951"
-     inkscape:window-height="706"
-     id="namedview3212"
-     showgrid="false"
-     inkscape:zoom="1.3037281"
-     inkscape:cx="296.63535"
-     inkscape:cy="236.90613"
-     inkscape:window-x="246"
-     inkscape:window-y="71"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3220" />
-  <g
-     id="g3220">
-    <g
-       id="g3261">
-      <path
-         inkscape:connector-curvature="0"
-         id="path3226"
-         d="M 72.249679,484.75 C 71.702313,484.0625 70.254357,479.225 69.032,474 L 66.809531,464.5 93.29548,276.65929 C 107.86275,173.34689 120.16811,88.435496 120.64071,87.967294 121.92769,86.69231 253.12009,41 255.49386,41 c 2.32043,0 129.53764,45.664114 130.8678,46.974479 0.47391,0.466858 13.678,85.376091 29.34242,188.687181 L 444.18485,464.5 441.96519,474 c -1.22081,5.225 -2.6675,10.0625 -3.21487,10.75 -1.46182,1.83607 -365.038821,1.83607 -366.500641,0 z"
-         style="fill:#d3bc5f" />
-      <g
-         transform="translate(629.15254,2.1694915)"
-         id="g3246">
-        <path
-           style="fill:#ff0000"
-           d="m -367.0625,82.15625 c -11.08081,-1.565705 0.93638,4.58443 4.3684,7.851919 5.76522,3.258333 10.34615,8.778043 9.60035,15.773081 -0.13853,23.30123 -2.68776,46.52078 -3.90625,69.78125 -13.19283,18.19651 -24.31428,38.29006 -39.46875,54.8125 -4.76169,6.02274 -12.79254,2.22903 -19.09375,4.78125 -5.77616,1.30947 -11.10914,3.87565 -16.28125,6.71875 10.03605,-13.93348 19.21905,-29.90796 34.6875,-38.46875 6.28267,-0.80868 16.84119,-10.53321 7.5,-14.8125 -11.50399,-1.83846 -22.72896,3.88721 -33.53802,7.11494 -16.18055,5.9466 -33.24204,12.37887 -50.77448,9.57256 -3.75918,-0.51963 -5.12094,4.11314 -2.34375,6.3125 9.13872,12.60175 28.03014,12.60059 40.84375,6.1875 1.27914,-0.39295 6.69026,-4.02723 4.125,-0.59375 -11.26095,20.65607 -28.78405,38.73307 -33.28341,62.39813 -0.4087,4.05603 -0.25661,11.66369 5.22091,11.82062 6.99752,-3.3631 9.15288,-12.19086 12.875,-18.5 5.38976,-12.25692 14.81507,-23.73987 28.40625,-26.71875 6.72322,-3.42976 10.78066,3.62625 7.5625,9.21875 -2.78028,9.91512 -10.85884,19.21598 -8.59375,30.0625 3.59151,7.60446 15.77375,5.29202 19.625,-1.0625 8.17431,-12.07844 6.39016,-27.79695 12.96875,-40.65625 7.53565,-16.57662 15.41543,-33.51775 28.125,-46.78125 2.85271,-3.02984 1.94178,3.67451 2.53125,5.125 1.96942,23.56027 -1.26706,47.07618 -3.21875,70.5 -1.01077,11.37225 10.95695,17.71825 20.46875,19.65625 22.31114,4.15195 46.12216,0.90106 66.78125,-8.3125 5.05281,-2.94183 11.98708,-6.25019 13.21875,-12.53125 -2.74877,-11.73802 -13.9395,-19.11231 -21.59849,-27.73174 -3.71283,-3.27923 -10.9663,-12.99775 -7.09951,-2.57452 1.13486,8.83344 5.69221,17.57645 4.3855,26.52501 -5.49711,6.42737 -14.56952,8.64906 -22.28125,11.34375 -13.45404,3.72491 -30.24874,4.36788 -40.5985,-6.74699 -7.06666,-3.24326 0.28745,-10.75873 0.72965,-16.22652 3.26195,-12.4009 9.71395,-24.51297 9.5876,-37.49524 -0.95954,-7.12326 -7.35035,-12.30558 -7.78125,-19.65625 -2.05014,-8.11353 -1.29173,-18.20594 6.4375,-23.03125 10.88335,-9.36897 25.70764,-15.1163 33.0625,-27.9375 2.08677,-6.37466 -5.964,-9.82416 -10.3125,-12.40625 -7.30236,-3.69032 -15.34015,-5.60635 -23.03125,-8.375 1.36497,-12.58717 6.90493,-28.359497 -2.625,-39.125 -7.0029,-7.438207 -18.11401,-5.775708 -27.28125,-5.8125 z m -35.71875,0.53125 c -6.26449,1.911477 -3.45469,10.309834 -4.73306,15.150394 -0.30348,7.115876 -4.40079,13.031176 -10.32944,16.724606 -2.96076,2.37938 0.26372,5.93866 3.34375,4.90625 11.17619,-1.12316 24.70494,-2.17966 32.125,-11.75 3.99433,-4.33508 1.58691,-10.630565 -2.68548,-13.728605 -5.29139,-4.136153 -10.62339,-10.663102 -17.72077,-11.302645 z m 1.9375,46.3125 c -9.46462,2.00889 -18.85122,5.9814 -28.78125,6.125 -7.9138,0.47142 -15.86777,0.14389 -23.75,1.125 9.71578,6.19001 22.55086,8.13548 30.78125,16.21875 1.61974,1.979 -0.69931,6.61199 3.625,5.96875 9.8604,-3.96302 16.61684,-13.77835 26.59375,-17.59375 5.12138,-2.39466 1.49945,-8.84498 -2.28125,-10.59375 -1.85036,-1.11742 -4.0454,-1.42066 -6.1875,-1.25 z m 62.5625,6.75 c 6.04641,1.76899 10.68797,6.59129 16.0625,9.84375 -5.5456,4.81807 -9.65044,12.47881 -16.59375,15.0625 -2.67701,-6.63053 -1.53365,-14.77711 -1.15625,-21.84375 0.35229,-0.93753 0.23404,-3.14803 1.6875,-3.0625 z m -51.625,25.4375 c -16.60414,2.31339 -33.78523,2.12219 -50,6.375 -4.31147,1.97143 -0.004,6.55753 3.34375,6.28125 4.40824,1.51273 10.75284,1.49659 14.15625,3.6875 -2.25845,4.64297 -8.78185,7.5079 -8.6875,12.96875 4.62986,2.48432 9.06541,-3.48968 13.29887,-4.88299 12.3482,-7.22418 23.53104,-16.1399 34.70113,-25.11701 -2.27083,0.22917 -4.54167,0.45833 -6.8125,0.6875 z m 80.1875,7.8125 c -3.61803,-0.74859 -8.85597,2.39077 -5.90625,6.3125 3.49465,3.37379 4.68962,8.22761 2.0625,12.625 -3.45911,8.36807 -11.55563,18.65837 -5.625,27.75 3.09743,4.19091 8.04201,6.3264 12.28125,9.1875 -5.67135,5.60218 -13.20144,9.65316 -17.78125,16.125 -0.36669,5.16581 6.51183,2.18253 9.25,1.5625 11.85564,-3.83622 25.77091,-6.6708 33.875,-16.875 4.1366,-5.8166 -1.7945,-12.30003 -7.3125,-14.09375 -3.99745,-2.42604 -10.35071,-2.33406 -13.09375,-6.25 2.90628,-9.31375 12.64119,-18.13356 9.03125,-28.84375 -2.47941,-6.73652 -10.49267,-8.02171 -16.78125,-7.5 z m -47.46875,136.09375 c -12.67963,0.15022 -24.30684,5.61518 -36.125,8.78125 -8.76999,2.66176 -17.68572,-1.46643 -26.46875,0 -4.88567,0.85059 -4.80102,7.31044 -1.28125,9.875 7.50074,7.96792 19.34308,14.65239 30.34375,9.6875 11.49956,-3.55132 21.62467,-13.59556 34.21875,-12.40625 5.55912,2.8724 2.6997,10.87751 1.96875,15.59375 -1.04056,4.4638 -2.28706,11.5831 -8.5,10.84375 -12.74744,-0.47356 -26.92471,-1.62256 -37.625,6.65625 -11.66052,8.52825 -16.58043,24.47766 -14.40625,38.4375 1.94146,8.70813 11.69068,12.78744 14.5,20.625 -6.13023,3.6481 -15.64995,-1.23094 -20.84375,4.53125 -2.03813,5.66156 5.55615,8.80771 9.25,11.34375 22.76747,13.77535 53.55024,16.94523 76.75,2.5 5.29114,-2.60089 6.83123,-10.18591 2,-13.96875 -5.38065,-6.37292 -14.42041,-7.75171 -21.99648,-4.86358 -9.55626,2.8793 -20.16805,7.73238 -30.15977,4.45733 -1.2194,-2.49377 2.70889,-2.46715 4.28125,-3 15.67414,-7.56092 29.18174,-19.4122 40.9375,-32.15625 3.999,-5.98373 10.24375,-11.98438 10.0625,-19.65625 -1.33389,-5.72829 -9.04001,-8.60652 -7.40625,-15.375 2.50705,-10.96127 5.30153,-23.22584 -0.1875,-33.75 -3.15668,-7.85195 -11.99356,-8.51228 -19.3125,-8.15625 z m -18.375,53.125 c 3.35478,0.58564 8.74571,-1.14293 11.15625,1.5 -2.51517,12.22575 -9.08494,23.4457 -15.36212,34.14792 -2.97349,4.9565 -9.24009,11.5034 -15.26288,6.82083 -10.89916,-6.93381 -11.8798,-23.05155 -3.09375,-32 5.55526,-6.55276 14.13665,-10.23687 22.5625,-10.46875 z"
-           id="path3244"
-           inkscape:connector-curvature="0" />
-      </g>
-      <path
-         sodipodi:nodetypes="sssscssssscsssscc"
-         inkscape:connector-curvature="0"
-         id="path3224"
-         d="M 74.333178,484.22708 C 72.934299,483.33715 69,468.45528 69,464.05381 69,458.46366 121.13145,90.54654 122.08661,89.395639 122.59762,88.779912 152.8305,77.851437 189.27078,65.110137 l 66.25507,-23.165999 63.98708,23.071644 c 35.19289,12.689404 64.52241,23.614473 65.17672,24.277931 C 385.82109,90.440973 442,457.97084 442,464.22559 c 0,4.26797 -3.9627,19.12963 -5.33318,20.00149 -1.52551,0.97048 -360.808133,0.97048 -362.333642,0 z M 431.35399,454.23624 C 432.29606,452.71195 376.2006,96.742012 374.89076,95.932485 373.06417,94.803592 257.19604,54.005373 255.72519,53.973206 254.27707,53.941537 134.00578,94.760359 132.12832,95.920693 130.801,96.741021 78.656683,452.63548 79.632479,454.21436 c 0.626082,1.01302 351.095481,1.03483 351.721511,0.0219 z"
-         style="fill:#f21914" />
-      <path
-         inkscape:connector-curvature="0"
-         id="path3222"
-         d="M 74.333178,484.22708 C 72.934299,483.33715 69,468.45528 69,464.05381 69,458.46366 121.13145,90.54654 122.08661,89.395639 122.59762,88.779912 152.8305,77.851437 189.27078,65.110137 l 66.25507,-23.165999 63.98708,23.071644 c 35.19289,12.689404 64.52241,23.614473 65.17672,24.277931 C 385.82109,90.440973 442,457.97084 442,464.22559 c 0,4.26797 -3.9627,19.12963 -5.33318,20.00149 -1.52551,0.97048 -360.808133,0.97048 -362.333642,0 z M 431.35399,454.23624 C 432.29606,452.71195 376.2006,96.742012 374.89076,95.932485 373.06417,94.803592 257.19604,54.005373 255.72519,53.973206 254.27707,53.941537 134.00578,94.760359 132.12832,95.920693 130.801,96.741021 78.656683,452.63548 79.632479,454.21436 c 0.626082,1.01302 351.095481,1.03483 351.721511,0.0219 z"
-         style="fill:#11100f" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/shogi/WhiteElephant.svg b/themes/shogi/WhiteElephant.svg
deleted file mode 100644 (file)
index ed7b72e..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg3089"
-   version="1.1"
-   inkscape:version="0.48.4 r9939"
-   width="512"
-   height="512"
-   sodipodi:docname="WhiteElephant.svg">
-  <metadata
-     id="metadata3095">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3093" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview3091"
-     showgrid="false"
-     inkscape:zoom="0.4609375"
-     inkscape:cx="256"
-     inkscape:cy="256"
-     inkscape:window-x="530"
-     inkscape:window-y="89"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3107" />
-  <g
-     id="g3107">
-    <path
-       style="fill:#d3bc5f"
-       d="m 66.329882,485.22504 c -0.643564,-0.40938 -2.290651,-5.15715 -3.660192,-10.55059 L 60.179615,464.86819 89.098572,268.71104 C 106.58897,150.07374 118.50806,72.072043 119.25876,71.334605 120.95804,69.665367 252.87664,24.004996 256,24.004996 c 3.12019,0 135.04104,45.659482 136.73859,47.326966 0.74719,0.733956 12.71288,79.041408 30.16001,197.377168 l 28.92141,196.16052 -2.48989,9.80553 c -1.36943,5.39304 -3.01644,10.14048 -3.66,10.54986 -1.52984,0.97316 -377.810405,0.97316 -379.340238,0 z"
-       id="path3111"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#11100c"
-       d="M 67.333178,484.22708 C 65.931803,483.33556 62,468.4519 62,464.03857 62,457.42794 119.13941,73.453832 120.29681,72.286781 121.67492,70.897181 253.39025,25 256,25 258.61107,25 390.3259,70.897706 391.70112,72.286781 392.85503,73.45231 450,457.46372 450,464.05241 c 0,4.40256 -3.93407,19.2846 -5.33318,20.17467 -1.52552,0.97049 -375.808119,0.97049 -377.333642,0 z M 439.3472,454.24723 C 440.17677,452.90497 383.87612,79.540939 382.66699,78.366098 382.02515,77.742452 353.2625,67.742009 318.75,56.142891 L 256,35.053585 193.25,56.142891 c -34.5125,11.599118 -63.27584,21.599561 -63.91854,22.223207 -1.21285,1.176899 -57.513387,374.530522 -56.681084,375.877212 0.609925,0.98688 366.086904,0.99079 366.696824,0.004 z M 254.5,435.35348 c -8.92957,-5.87275 -22.95601,-12.51935 -32.25319,-15.28357 -4.67815,-1.3909 -11.85884,-2.42849 -20.22607,-2.92261 -7.13508,-0.42136 -13.25371,-1.04694 -13.59695,-1.39017 -1.4529,-1.45291 1.02876,-2.65167 7.82976,-3.78213 19.51222,-3.24333 37.94239,-9.43666 56.79639,-19.08603 12.36386,-6.32775 21.7064,-12.46596 20.62281,-13.54955 -0.23658,-0.23658 -4.24068,1.14722 -8.898,3.07512 -11.11167,4.5997 -24.00201,8.28705 -35.76286,10.23018 -9.88274,1.63283 -34.1639,1.98188 -41.42976,0.59557 -6.79334,-1.29615 -5.24633,-2.8453 4.13651,-4.14222 14.97833,-2.07035 29.5235,-6.36688 45.78136,-13.52344 7.50286,-3.30268 26.5,-14.65231 26.5,-15.83211 0,-0.96342 -3.10626,-0.1838 -7,1.75688 -3.60363,1.79609 -18.95864,6.15595 -30,8.51811 -15.50358,3.31679 -48.35509,5.00425 -45.69818,2.34734 0.29579,-0.2958 6.98639,-1.83926 14.86799,-3.42992 7.88161,-1.59065 18.48451,-4.32235 23.56202,-6.07042 11.1364,-3.83403 32.76817,-15.04109 32.76817,-16.97665 0,-2.29106 -37.39643,-2.51269 -48.56401,-0.28781 -7.5406,1.50228 -9.09413,1.5385 -13,0.30306 L 186.5,344.5 186.22068,331.20736 c -0.20668,-9.83579 -0.62026,-13.42346 -1.59032,-13.79571 -0.72104,-0.27669 -3.74535,0.40189 -6.72067,1.50795 -5.7948,2.15418 -17.28482,5.04134 -20.15969,5.06562 -0.9625,0.008 -1.75,-0.6021 -1.75,-1.35606 0,-1.28179 51.30928,-50.10348 54.58008,-51.93391 2.02322,-1.13225 9.57622,3.35889 13.15302,7.82101 1.5218,1.89846 2.9919,4.92145 3.2669,6.71775 l 0.5,3.26599 33.66194,0.0938 33.66195,0.0938 6.58805,5.24227 C 307.36229,298.66476 309.67175,302 307,302 c -0.55,0 -1,0.45 -1,1 0,0.60343 4.18097,1 10.54291,1 l 10.5429,0 5.48179,-4.13879 c 5.96222,-4.50152 11.49857,-6.09658 17.9324,-5.16645 4.76254,0.68852 5.67166,1.34014 10.66612,7.64504 l 3.83388,4.8398 0,17.75521 c 0,20.86492 -0.0129,20.89331 -9.92612,21.79221 -3.34063,0.30292 -6.07388,0.75987 -6.07388,1.01545 0,0.25558 2.25,3.15743 5,6.44855 4.56781,5.46664 6.17659,8.80267 4.25,8.813 -0.4125,0.002 -4.85781,0.67027 -9.87846,1.48457 C 335.5839,366.56261 318.00045,369 315.82593,369 c -4.23719,0 -0.95914,-3.05624 13.18153,-12.2896 C 337.25336,351.32612 344,346.54487 344,346.0854 344,344.4773 337.57629,344 315.93402,344 c -14.27196,0 -22.04225,0.36611 -22.47031,1.05872 -0.80028,1.29488 2.77459,6.54916 11.38089,16.72744 16.49584,19.5089 35.03558,35.08038 56.1708,47.17773 6.04153,3.45804 10.9832,6.79332 10.9815,7.41173 C 371.99402,417.41717 355.95935,427 354.21943,427 c -2.59864,0 -20.83266,-13.46035 -29.09564,-21.4784 -14.8996,-14.45793 -24.97968,-29.59648 -32.08105,-48.18024 -3.81846,-9.99261 -4.84006,-11.01465 -8.90749,-8.9113 -1.65464,0.85564 -3.29469,2.0189 -3.64456,2.58501 -0.34988,0.56611 1.3918,3.28485 3.87039,6.04164 10.25543,11.40651 16.79407,29.24836 17.02044,46.44329 0.13541,10.2861 -1.7179,16.53197 -6.17157,20.79885 -3.64752,3.49455 -27.92047,15.70702 -31.16435,15.67975 -1.40008,-0.0118 -5.6956,-2.09307 -9.5456,-4.62512 z m 21.91111,-21.43021 c 2.018,-2.39826 2.58889,-4.16238 2.58889,-8 C 279,403.18201 278.53914,401 277.96016,401 c -0.57191,0 -2.70941,0.84654 -4.75,1.8812 -5.14168,2.60703 -23.25372,8.50043 -32.7849,10.66773 -4.35889,0.99117 -8.35276,2.17314 -8.87526,2.6266 -0.5225,0.45346 8.775,0.82447 20.66111,0.82447 l 21.6111,0 2.5889,-3.07673 z m -7.0181,-81.50506 c 1.22498,-3.19223 0.65385,-16.13443 -0.76392,-17.31108 -0.97257,-0.80715 -9.90759,-1.06066 -30.75,-0.87244 L 208.5,314.5 l -0.29313,8.41641 c -0.16122,4.62903 -0.0628,9.01653 0.21861,9.75 0.41073,1.07034 6.41877,1.33359 30.43615,1.33359 26.36464,0 29.9966,-0.18817 30.53138,-1.58179 z M 342.5,324 l 0,-9.5 -25,0 -25,0 -0.29313,8.41641 c -0.16122,4.62903 -0.0598,9.02441 0.22534,9.76752 0.42005,1.09464 5.22135,1.30033 25.29313,1.08359 L 342.5,333.5 l 0,-9.5 z m -66.50945,-20.8807 c 6.04249,-0.49958 7.55489,-0.95761 7.82333,-2.3693 0.3119,-1.64023 -1.90925,-1.75 -35.41182,-1.75 -31.85738,0 -35.94345,0.17998 -37.57332,1.65499 -1.00581,0.91024 -1.82874,2.03524 -1.82874,2.5 0,0.95111 55.412,0.92159 66.99055,-0.0357 z M 145,254.70583 l -2.5,-1.2647 -0.25728,-64.68148 c -0.29736,-74.75846 -1.60598,-67.19822 11.36014,-65.63068 4.41645,0.53393 11.15004,0.83584 14.96353,0.67091 L 175.5,123.5 l 0.29708,-7.41189 c 0.21058,-5.25379 -0.0806,-7.65146 -1,-8.23468 -0.7134,-0.45254 -7.01341,-0.8297 -14.00003,-0.83812 -15.92902,-0.0192 -20.7974,-1.89455 -17.31029,-6.66811 1.25141,-1.71308 3.73943,-1.883504 34.26675,-2.3472 l 32.91737,-0.5 3.84183,-3.375096 C 219.77353,89.50321 223.85006,88 231.12272,88 c 5.86819,0 6.37409,0.196725 9.81921,3.818298 4.2104,4.426045 7.10885,9.885812 6.32816,11.920252 C 246.2776,106.32493 242.00642,107 226.6349,107 c -10.51603,0 -15.60659,0.37169 -16.4349,1.2 -1.35672,1.35672 -1.68626,14.8 -0.36279,14.8 0.46046,0 3.47714,-1.89042 6.70373,-4.20093 4.87025,-3.48751 6.82812,-4.27048 11.52881,-4.6105 7.33774,-0.53076 11.45981,1.42216 16.2444,7.69613 l 3.68585,4.83321 0,63.0186 c 0,55.88451 -0.17667,63.16522 -1.56062,64.3138 -2.70827,2.24766 -11.93567,2.42222 -17.21526,0.32567 C 224.97971,252.6905 221.50442,252.5 195,252.5 c -25.80181,0 -30.03533,0.21938 -33.77024,1.75 -4.98714,2.0438 -12.66447,2.25942 -16.22976,0.45583 z m 77.5,-11.71618 c 2.93043,-1.47533 3.00677,-1.70367 3.29201,-9.84692 0.18515,-5.28588 -0.13411,-8.85001 -0.87245,-9.73965 -1.57631,-1.89934 -57.832,-2.09064 -59.71956,-0.20308 -1.31489,1.31489 -1.73317,19.9335 -0.47606,21.19061 0.39817,0.39816 12.88567,0.58566 27.75,0.41666 21.65422,-0.24619 27.62236,-0.60747 30.02606,-1.81762 z m 0,-30.00312 3,-1.51348 0,-16.95758 0,-16.95757 -8.5,-1.15391 c -4.675,-0.63465 -9.74855,-1.73744 -11.27456,-2.45065 -5.72856,-2.67737 -8.63069,-11.39517 -9.62663,-28.9178 L 195.5,134.5 l -2.75,-0.31642 c -1.5125,-0.17403 -2.76274,-0.17403 -2.77831,0 -0.0156,0.17403 -1.10992,6.63011 -2.43188,14.34685 -3.48728,20.35635 -4.97302,23.69122 -15.09477,33.88156 L 164,190.91426 l 0,11.3762 c 0,6.25691 0.31987,11.69607 0.71081,12.08702 0.39095,0.39094 12.87845,0.57844 27.75,0.41666 21.71497,-0.23622 27.62991,-0.59215 30.03919,-1.80761 z M 167.78524,177.75 c 3.69022,-8.34746 7.11502,-26.72663 7.18388,-38.55226 l 0.0309,-5.30226 -5.25,0.30226 -5.25,0.30226 -0.2681,23.75 c -0.168,14.88291 0.0945,23.75 0.70321,23.75 0.53421,0 1.81677,-1.9125 2.85013,-4.25 z m 49.36366,-19.25016 c 4.34717,-11.17226 5.62406,-13.08403 6.50048,-9.73259 1.29202,4.94066 2.41566,1.78276 2.14106,-6.01725 L 225.5,134.5 l -8.26577,-0.2907 c -6.8787,-0.24191 -8.37028,-0.0183 -8.88859,1.33237 -0.34256,0.89268 -0.14999,7.99849 0.42792,15.79069 1.58803,21.41199 2.5218,22.21109 8.37534,7.16748 z M 194.74061,122.75 c 0.54203,-0.6875 1.2548,-4.28328 1.58394,-7.99061 0.58957,-6.64067 0.55965,-6.75035 -2.01783,-7.39726 -4.54511,-1.14075 -5.70123,0.50515 -5.40765,7.69855 0.14431,3.53591 0.73116,6.99377 1.3041,7.68413 1.33008,1.60264 3.27625,1.60487 4.53744,0.005 z M 301,255.29056 c -0.825,-0.30334 -2.2875,-1.23756 -3.25,-2.07604 -1.58054,-1.37687 -1.75,-3.97883 -1.75,-26.86951 L 296,201 l -9.75,-0.0514 c -14.01619,-0.0738 -22.97076,-1.24084 -24.98631,-3.25639 -1.60026,-1.60026 -1.56835,-1.83221 0.54302,-3.94623 2.0851,-2.08772 3.3516,-2.28127 17.96825,-2.74603 l 15.72504,-0.5 0.61457,-16 c 0.33802,-8.8 0.67552,-16.99667 0.75,-18.21482 0.22991,-3.76005 3.21581,-4.50361 11.30882,-2.81617 3.97768,0.82937 7.9284,2.20356 8.77937,3.05375 1.22271,1.22158 1.65211,4.94697 2.04724,17.76152 l 0.5,16.21572 7.5,0 c 6.85365,0 7.90841,-0.28357 12.23902,-3.29048 13.15764,-9.13587 23.71378,-7.53453 30.55335,4.63484 l 2.28956,4.07371 -2.04097,2.04097 c -1.12253,1.12253 -3.05346,2.09798 -4.29096,2.16767 -1.2375,0.0697 -12.15,0.40719 -24.25,0.75 l -22,0.62329 -0.54253,26 c -0.2984,14.3 -0.6359,26.06848 -0.75,26.15217 -2.64271,1.9384 -13.5636,2.97822 -17.20747,1.63839 z m 41.92045,-90.3009 c -6.44704,-1.09118 -12.61359,-4.49559 -14.39984,-7.94981 C 327.37105,154.81684 327,150.66396 327,140.02063 l 0,-14.07868 -13.16086,0.27902 -13.16085,0.27903 -4.08915,7 c -5.35315,9.16379 -21.11303,25.0507 -28.77983,29.01181 -3.12988,1.61708 -5.98295,2.64788 -6.34016,2.29067 -0.35721,-0.3572 1.17408,-3.06474 3.40287,-6.01674 8.14343,-10.7859 18.19123,-30.2305 16.42935,-31.79426 -0.44075,-0.39119 -4.78469,-1.17371 -9.6532,-1.73892 -9.68418,-1.12428 -12.98094,-2.91613 -11.03658,-5.99858 1.45774,-2.31099 4.5095,-3.03348 13.38841,-3.16961 4.125,-0.0633 8.175,-0.53968 9,-1.05875 1.0523,-0.66207 1.79847,-4.01525 2.5,-11.23468 l 1,-10.29094 4.22821,-0.306433 c 5.22631,-0.378769 12.46122,2.639716 14.76896,6.161769 1.44035,2.198254 1.50814,3.302114 0.50077,8.154574 -0.64079,3.08668 -0.89554,6.31456 -0.56611,7.17304 0.89672,2.33682 5.20788,1.09752 12.84951,-3.69376 12.17241,-7.63207 20.7615,-6.40239 28.01463,4.01081 l 3.83093,5.5 -0.58608,8.5 c -0.32234,4.675 -0.83929,11.7625 -1.14877,15.75 -0.90541,11.66578 1.25842,9.71407 9.70097,-8.75 4.02372,-8.8 7.66529,-16 8.09237,-16 1.20242,0 1.72427,3.1305 3.74873,22.48824 1.15053,11.00128 1.53688,18.63169 0.99467,19.64482 -0.48762,0.91112 -2.31322,2.15391 -4.0569,2.76176 -3.53596,1.23264 -16.91594,1.28562 -23.95144,0.0948 z"
-       id="path3109"
-       inkscape:connector-curvature="0" />
-  </g>
-</svg>
diff --git a/themes/shogi/WhiteGold.svg b/themes/shogi/WhiteGold.svg
deleted file mode 100644 (file)
index bb96fc1..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg3400"
-   version="1.1"
-   inkscape:version="0.48.4 r9943 custom"
-   width="512"
-   height="512"
-   sodipodi:docname="WhiteGold.svg">
-  <metadata
-     id="metadata3406">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3404" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="997"
-     inkscape:window-height="724"
-     id="namedview3402"
-     showgrid="false"
-     inkscape:zoom="0.4609375"
-     inkscape:cx="190.91525"
-     inkscape:cy="189.50259"
-     inkscape:window-x="258"
-     inkscape:window-y="27"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3410" />
-  <g
-     id="g3410">
-    <g
-       id="g2999">
-      <path
-         inkscape:connector-curvature="0"
-         id="path3414"
-         d="m 81.239624,479.75 c -0.552897,-0.6875 -1.995733,-4.4 -3.206303,-8.25 l -2.201037,-7 25.083856,-177.09934 C 114.71226,189.99602 126,109.79936 126,109.18584 c 0,-0.61351 0.91337,-1.60429 2.02972,-2.20174 C 131.74047,104.99816 253.45469,63 255.49934,63 c 1.10517,0 29.23041,9.814635 62.50053,21.8103 51.98803,18.74448 60.66289,22.15324 61.71306,24.25 0.67205,1.34183 13.42558,81.97027 28.34115,179.17429 l 27.11924,176.73459 -2.21977,6.76541 c -1.22087,3.72098 -2.66497,7.32791 -3.2091,8.01541 C 428.9598,480.74138 392.90978,481 255.5,481 118.09872,481 82.036857,480.74132 81.239624,479.75 z"
-         style="fill:#d3bc5f" />
-      <g
-         transform="matrix(1.0897825,0,0,1.0897825,663.11434,-25.583254)"
-         id="g3097">
-        <path
-           style="fill:#000000"
-           d="m -381.375,113.84375 c -6.56129,0.69259 -10.3037,8.73005 -7.75,14.3125 -0.9159,12.66234 -10.33706,22.62151 -17.5,32.5 -14.9307,18.86578 -33.91714,33.95594 -49.09375,52.40625 -1.28938,4.89288 5.34403,3.04913 7.96875,1.78125 22.08555,-10.81992 39.85885,-28.7082 56.80663,-46.21539 6.81446,-7.12612 13.62891,-14.25224 20.44337,-21.37836 24.73556,20.69335 48.05117,43.36887 74.65625,61.5625 5.75067,3.43122 9.45087,-5.14353 8.6875,-9.8125 -1.77721,-11.39 -12.70973,-18.21619 -20.82124,-25.23812 -17.4735,-14.30057 -38.60235,-23.91706 -54.86626,-39.69938 -0.78202,-3.59726 -0.75238,-7.99613 -3.3125,-11.21875 -3.31018,-4.96977 -8.9004,-9.45364 -15.21875,-9 z m 22.75,60 c -13.29902,1.21713 -26.68756,3.78682 -39.8125,5.65625 -3.40572,3.64377 1.5475,8.76762 4.8125,10.6875 3.75412,2.52768 8.2234,0.84076 12.15625,0.625 1.46811,3.11799 0.73919,8.47537 -3.8125,8 -5.68031,1.32553 -12.6896,-1.41275 -17.625,2.125 -1.41931,4.51289 4.65234,6.70768 7.5625,8.8125 4.0209,2.85815 9.2053,2.62019 13.5625,4.03125 1.61465,3.42138 -1.93218,6.7401 -5.5,6.0625 -9.72779,0.42092 -22.49401,-2.94578 -29.5625,5.6875 -4.2177,6.35517 -5.01918,15.29738 -3.03125,22.59375 2.69901,6.8645 11.57845,4.80491 16.375,1.71875 6.22964,-2.97655 15.01022,-11.24053 18.75,-12.78125 -4.06176,4.78089 2.51303,9.63629 5.8125,12.53125 1.63306,1.26379 3.36571,2.50435 5.34375,3.125 -12.8766,3.1768 -26.74412,1.10027 -39.4375,4.8125 -4.76774,3.07192 0.98477,8.13331 3.5,10.5625 7.63213,7.43689 18.6652,1.74578 27.6823,1.64812 18.89833,-2.72823 38.48078,-1.3308 57.0052,-6.05437 5.36801,-0.98347 5.48724,-7.79385 1.78125,-10.75 -5.37784,-5.31227 -13.87137,-7.44694 -21.125,-5.28125 6.87992,-6.49788 14.20752,-17.8137 7.875,-26.96875 -6.31229,-7.62662 -17.60746,-7.13162 -26.4375,-5.625 -2.54133,-1.3081 0.90913,-4.70961 2.8125,-5 6.52934,-2.84458 17.05337,-2.08135 19.5,-10.25 1.1678,-4.70973 -3.57363,-8.10685 -7.9375,-7.09375 -4.92918,-0.17535 -10.59315,2.68831 -15.125,0.6875 -0.58658,-4.27047 5.90177,-3.67996 8.65625,-3.875 4.96495,-0.27647 13.51417,-2.36577 12.15625,-9 -2.34105,-6.35902 -10.12587,-7.12735 -15.9375,-6.6875 z m -2.3125,52.75 c 6.36227,1.22315 6.94712,10.22979 5.34375,15.28125 -1.80238,5.66191 -9.12543,8.70315 -13.46875,9.65625 6.00438,-6.22878 4.40895,-15.85719 6.1875,-23.4375 0.41288,-0.71616 1.04827,-1.43474 1.9375,-1.5 z M -402.25,229.625 c 2.00808,-0.24765 6.68712,0.95246 3.25,3.15625 -1.99451,1.86598 -5.39694,4.31884 -7.6875,4.34375 -0.78658,-3.40928 -0.0551,-8.04124 4.4375,-7.5 z m 77.21875,46.53125 c -21.93894,4.19347 -43.84263,8.94565 -65.78125,13.28125 8.70269,4.04619 18.40645,6.34403 26.21875,12.03125 -8.15302,10.30821 -23.03959,16.31044 -26.21875,30.15625 -0.99855,6.99176 7.84919,9.28952 13.03125,6.9375 7.41698,-2.15486 11.69093,-9.48276 19.71875,-10.34375 10.89566,-1.13721 21.90092,-2.37696 32,-6.9375 2.30724,-0.44159 6.26844,-2.37872 8.15625,-0.75 -2.98035,5.93597 -10.68329,8.02895 -16.3125,10.75 -12.15435,5.33159 -26.65249,4.69564 -38.0625,11.6875 -2.89768,4.46659 4.12914,5.96158 7.28125,5.96875 13.05074,1.0459 26.31015,-0.17917 38.78125,-3.875 2.66287,-0.93266 7.39767,1.50556 3.6875,4.125 -15.40491,5.08869 -32.12957,5.2725 -48.27519,6.81552 -12.61565,0.36542 -25.85849,2.31929 -37.91231,-2.19052 -5.36532,-1.19196 -6.60398,5.6195 -4.71875,9.25 4.8231,10.40946 18.78035,11.49839 28.82896,9.70366 21.73713,-4.31888 43.9541,-8.31455 66.20229,-6.73491 4.13156,0.28628 2.42952,6.32691 3.43429,9.05839 0.80555,7.80831 0.41384,15.67021 0.53446,23.50411 -10.87142,0.71994 -22.20233,-0.67151 -32.84375,1.375 -3.74225,3.02133 2.18877,5.55422 4.8125,6 13.66427,3.87475 22.00053,15.96425 33,23.90625 4.65814,3.80649 11.90267,1.95374 14.0625,-3.71875 6.02558,-11.97013 3.71222,-26.10572 3.37821,-39.05839 -0.46061,-8.11601 -2.21685,-16.71987 -4.40946,-24.12911 11.57952,-0.87016 24.1998,4.84379 35.375,0.125 5.06663,-3.61452 -0.32262,-9.86267 -3.75,-12.5 -9.69569,-8.874 -23.46179,-1.10413 -34.6875,-3.03125 -3.11056,-1.68919 -3.22629,-6.4769 -7,-7.75 -1.70695,-1.13866 -5.36227,-0.6543 -2,-3.09375 4.26821,-5.25817 12.56318,-10.44173 10.65625,-18.21875 -6.04582,-10.74553 -20.83917,-12.41414 -31.75277,-9.48179 -8.87434,1.53043 -16.96988,7.60493 -25.90348,7.23179 1.42447,-5.44607 5.33663,-10.6497 4.40625,-16.53125 8.22698,-4.69885 18.64938,-3.06626 27.59375,-5.46875 5.13708,-0.46788 11.33879,-4.54549 9.0625,-10.46875 -0.87956,-5.1423 -5.22107,-8.59421 -10.59375,-7.625 z m -107.09375,6.6875 c -6.13936,0.15377 -7.06311,7.97959 -3.875,12 3.72439,6.81947 12.81399,12.06404 11.5625,20.78125 -1.10834,4.06756 -5.01187,7.25784 -8.8125,8.15625 0.174,-11.46702 -9.00124,-22.5056 -20.03125,-24.96875 -3.33978,-1.11512 -8.90531,1.35366 -5.96875,5.25 6.14976,6.5041 10.43961,16.08503 8.96875,25.375 -5.14066,1.7307 -13.68498,-2.44061 -16.75,3.75 -0.15333,6.50319 6.74429,11.30335 12.65625,12.25 9.64595,1.82794 19.29071,-1.94976 26.875,-7.6875 -0.0253,7.24668 -9.08508,9.75623 -14.65625,11.65625 -11.51167,4.05591 -23.7906,-0.45681 -35.53125,1.53125 -5.28439,1.0912 -2.11583,7.3535 0.40625,9.8125 2.91076,3.99986 7.5144,6.97794 11.3125,9.4375 -0.16965,9.51221 -9.13389,18.31874 -5.59375,27.96875 2.92461,5.68028 11.0011,3.93743 13.71875,-1.03125 1.84715,-3.69293 3.13242,-4.43843 4.93182,0.35256 6.34496,8.31324 9.90179,18.61923 16.78693,26.39744 4.45586,4.61485 11.14105,0.41697 12.78125,-4.71875 9.42337,-22.67976 4.5797,-48.12604 8.5,-71.875 1.89291,-16.32078 5.95143,-32.15222 9.4375,-48.1875 -8.0867,-6.09969 -15.70695,-16.33604 -26.71875,-16.25 z m 0.71875,77.25 c 1.46432,13.58022 -0.82174,27.15049 -3.09375,40.5 -6.53349,-3.39598 -13.06484,-6.77896 -19.59375,-10.1875 3.90838,-8.60336 2.05539,-21.0528 12.03125,-25.84375 3.26362,-1.47399 7.78072,-4.59986 10.65625,-4.46875 z m 81.5,8.5625 c -5.64828,0.37366 -6.73836,6.91029 -6.53125,11.375 -3.2059,7.82164 -14.36921,6.0259 -19.28125,11.875 -1.09987,4.6687 5.70765,4.82223 8.8125,5.34375 11.1037,0.42544 23.61796,-1.80631 31.59375,-10.09375 4.8999,-7.3283 -3.1162,-16.17071 -10.25,-18.03125 -1.40622,-0.38272 -2.8712,-0.62 -4.34375,-0.46875 z"
-           id="path3095"
-           inkscape:connector-curvature="0" />
-      </g>
-      <path
-         sodipodi:nodetypes="sssscssscsscsscsssscc"
-         inkscape:connector-curvature="0"
-         id="path3412"
-         d="m 83.265046,479.18497 c -1.53838,-0.97713 -5.257384,-11.59288 -5.286997,-15.09152 -0.04681,-5.53048 49.150861,-351.72779 50.301891,-353.96753 1.0408,-2.02527 10.47616,-5.59199 64.2187,-24.275707 L 255.49729,63.948594 315.87165,85.704 c 33.2059,11.965473 60.96634,22.21454 61.68987,22.7757 0.87061,0.67524 10.46874,60.5423 28.3806,177.0203 14.88581,96.8 27.06348,177.16705 27.06149,178.59345 -0.005,3.46977 -3.71837,14.10683 -5.26866,15.09152 -1.61454,1.02551 -342.855361,1.02551 -344.469904,0 z M 422.34568,454.2497 c 0.44553,-0.72088 -51.75365,-334.80901 -52.853,-338.27276 -0.38507,-1.21326 -16.57207,-7.31007 -57.23295,-21.556711 L 255.56372,74.555244 197.66127,94.027622 c -31.84635,10.709808 -58.5677,19.948888 -59.38078,20.531288 -1.10961,0.79481 -7.54361,43.19024 -25.79641,169.97979 -13.374944,92.90648 -24.103874,169.26747 -23.842064,169.69109 0.614407,0.99413 333.089304,1.01397 333.703664,0.0199 z"
-         style="fill:#141310" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/shogi/WhiteGoldKnight.svg b/themes/shogi/WhiteGoldKnight.svg
deleted file mode 100644 (file)
index 4e1cdf1..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg4261"
-   version="1.1"
-   inkscape:version="0.48.4 r9943 custom"
-   width="512"
-   height="512"
-   sodipodi:docname="WhiteGoldKnight.svg">
-  <metadata
-     id="metadata4267">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs4265" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="957"
-     inkscape:window-height="785"
-     id="namedview4263"
-     showgrid="false"
-     inkscape:zoom="0.4609375"
-     inkscape:cx="256"
-     inkscape:cy="256"
-     inkscape:window-x="440"
-     inkscape:window-y="56"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g4271" />
-  <g
-     id="g4271">
-    <g
-       id="g3716">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4277"
-         d="m 95.072155,473.3646 c -4.895079,-6.22308 -5.788704,2.25431 18.785045,-178.20493 12.60791,-92.58719 23.31032,-168.72495 23.78313,-169.19502 1.29405,-1.28654 115.55058,-41.954093 117.85967,-41.950027 2.25173,0.004 111.52115,40.619397 112.85943,41.949847 0.47269,0.46992 12.29661,76.60765 26.27538,169.19496 27.29982,180.81832 26.23664,171.92039 21.29303,178.20517 L 413.85484,476 255.5,476 97.14516,476 95.072155,473.3646 z"
-         style="fill:#d3bc5f" />
-      <g
-         transform="matrix(1.3089706,0,0,1.3089706,588.84215,-119.2468)"
-         id="g3701">
-        <path
-           style="fill:#ff0000"
-           d="m -266.11059,398.66442 c -5.79853,-1.44799 -13.4325,-4.24986 -16.96438,-6.2264 -5.58196,-3.12382 -4.78729,-3.90032 6.07767,-5.93861 13.4093,-2.51559 20.79979,-9.02486 10.24665,-9.02486 -9.43429,0 -21.82563,-9.86332 -21.82563,-17.37288 0,-9.6802 13.4199,-17.37289 30.30701,-17.37289 13.4411,0 14.86248,-0.81111 14.86248,-8.48138 0,-11.77395 -3.19782,-12.78602 -25.57151,-8.09309 -14.41902,3.02442 -20.58233,3.08166 -23.44625,0.21775 -6.09399,-6.09399 -0.46377,-12.13257 7.39209,-7.92824 4.44939,2.38124 11.67803,2.39167 22.20721,0.032 25.78761,-5.77913 42.57006,6.10546 28.97354,20.51777 -3.47457,3.68305 -3.47457,4.92232 0,6.19633 8.53617,3.12993 4.10354,14.53817 -10.42373,26.82747 l -14.76694,12.49211 14.70913,-2.21504 c 11.92914,-1.79639 15.13561,-1.10367 16.9656,3.66522 1.24106,3.23414 0.87618,7.21704 -0.81083,8.85089 -4.74555,4.59603 -26.22215,6.778 -37.93211,3.85383 z m 9.40055,-33.88942 c 9.48739,-8.58595 7.91572,-15.09706 -3.64419,-15.09706 -11.33128,0 -19.56631,7.7539 -16.5588,15.59136 2.65594,6.92125 12.26876,6.68609 20.20299,-0.4943 z m -52.08249,-80.33111 c 31.32895,-32.87339 40.32773,-47.71843 34.54195,-56.98292 -2.14609,-3.43644 -3.90197,-7.05105 -3.90197,-8.03249 0,-4.26146 13.80247,-1.23865 21.01616,4.60265 l 7.88771,6.38708 -10.57738,15.32902 c -13.62188,19.74119 -48.10898,52.55355 -63.59694,60.50859 -10.17585,5.2266 -7.89006,1.81881 14.63047,-21.81193 z m 89.70777,-4.76077 -33.00847,-31.44035 24.70014,12.66986 c 29.19914,14.97762 50.00325,32.94945 50.00325,43.19579 0,4.04205 -1.95445,7.274 -4.34322,7.18212 -2.38877,-0.0919 -19.19704,-14.31522 -37.3517,-31.60742 z m -47.14952,16.64455 c 9.63513,-7.70951 9.82405,-8.34601 3.52368,-11.87187 -6.17874,-3.4578 -5.97072,-3.89793 2.8938,-6.12279 10.88995,-2.7332 19.88458,2.85896 19.88458,12.36268 0,6.43219 -15.64445,13.82751 -29.18374,13.7955 -6.60097,-0.0156 -6.32527,-0.79663 2.88168,-8.16352 z"
-           id="path3699"
-           inkscape:connector-curvature="0"
-           sodipodi:nodetypes="cssssssssssssscsssccsssssssscsssscssssssssss" />
-      </g>
-      <path
-         sodipodi:nodetypes="cssscsscscscssssscs"
-         inkscape:connector-curvature="0"
-         id="path4275"
-         d="M 97.24999,473.75309 C 95.059701,471.00854 93,465.95174 93,463.3189 c 0,-6.84605 45.21213,-334.92587 46.30894,-336.03877 0.66123,-0.67093 27.07049,-10.47529 58.68725,-21.78747 l 57.48501,-20.567594 55.20812,20.623214 c 30.36446,11.34276 55.66367,21.17213 56.22047,21.84303 1.00489,1.21082 51.10528,331.19418 51.07376,336.39444 -0.009,1.49284 -1.03586,4.51425 -2.2818,6.71425 l -2.26534,4 -157.5932,0.25309 c -125.32632,0.20127 -157.797948,-0.003 -158.59322,-1 z M 407.34361,454.25 c 0.7137,-1.15948 -48.00268,-320.30907 -49.05381,-321.3602 -1.02754,-1.02754 -100.80087,-37.878452 -102.63778,-37.908888 -0.63361,-0.0105 -25.35047,8.392298 -54.92636,18.672888 -45.34448,15.76176 -53.85483,19.01759 -54.28778,20.76909 -1.15654,4.67869 -43.22902,319.10604 -42.79294,319.81162 0.61236,0.99083 303.08883,1.00626 303.69867,0.0155 z"
-         style="fill:#f31611" />
-      <path
-         inkscape:connector-curvature="0"
-         id="path4273"
-         d="M 97.24999,473.75309 C 95.059701,471.00854 93,465.95174 93,463.3189 c 0,-6.84605 45.21213,-334.92587 46.30894,-336.03877 0.66123,-0.67093 27.07049,-10.47529 58.68725,-21.78747 l 57.48501,-20.567594 55.20812,20.623214 c 30.36446,11.34276 55.66367,21.17213 56.22047,21.84303 1.00489,1.21082 51.10528,331.19418 51.07376,336.39444 -0.009,1.49284 -1.03586,4.51425 -2.2818,6.71425 l -2.26534,4 -157.5932,0.25309 c -125.32632,0.20127 -157.797948,-0.003 -158.59322,-1 z M 407.34361,454.25 c 0.7137,-1.15948 -48.00268,-320.30907 -49.05381,-321.3602 -1.02754,-1.02754 -100.80087,-37.878452 -102.63778,-37.908888 -0.63361,-0.0105 -25.35047,8.392298 -54.92636,18.672888 -45.34448,15.76176 -53.85483,19.01759 -54.28778,20.76909 -1.15654,4.67869 -43.22902,319.10604 -42.79294,319.81162 0.61236,0.99083 303.08883,1.00626 303.69867,0.0155 z"
-         style="fill:#161513" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/shogi/WhiteGoldLance.svg b/themes/shogi/WhiteGoldLance.svg
deleted file mode 100644 (file)
index 3c97800..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg4397"
-   version="1.1"
-   inkscape:version="0.48.4 r9943 custom"
-   width="512"
-   height="512"
-   sodipodi:docname="WhiteGoldLance.svg">
-  <metadata
-     id="metadata4403">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs4401" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview4399"
-     showgrid="false"
-     inkscape:zoom="0.4609375"
-     inkscape:cx="256"
-     inkscape:cy="244.09001"
-     inkscape:window-x="252"
-     inkscape:window-y="22"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g4407" />
-  <g
-     id="g4407">
-    <g
-       id="g3900">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4413"
-         d="m 103.12951,473.43752 c -4.889381,-6.21585 -5.772542,2.36208 17.4072,-169.07198 13.53945,-100.13579 22.08696,-160.35204 22.87725,-161.16766 1.00047,-1.03252 84.91146,-31.23148 107.24808,-38.59781 l 5.16204,-1.70237 52.83796,19.60707 c 29.06088,10.78388 53.22556,19.992 53.6993,20.46248 0.47373,0.47048 11.84841,72.78282 25.27705,160.69409 26.23412,171.74297 25.23809,163.41209 20.28945,169.70326 L 405.85484,476 255.5,476 l -150.35484,0 -2.01565,-2.56248 z"
-         style="fill:#d3bc5f" />
-      <g
-         transform="matrix(1.1711716,0,0,1.1711716,414.60295,-15.959412)"
-         style="fill:#ff0000"
-         id="g3885">
-        <path
-           style="fill:#ff0000"
-           d="m -151.46875,154.65625 c -4.09713,0.0615 -3.15923,5.1898 -0.125,6.34375 2.98057,2.03653 7.95077,4.93061 4.65625,9.0625 -4.45878,10.30585 -13.38413,19.38487 -14.65625,30.9375 0.76623,6.51106 9.18855,5.21393 13.84375,5.71875 3.57778,-0.16041 5.95674,3.26041 3.59375,6.34375 -4.35088,9.00587 -14.1779,14.127 -17.78125,23.53125 10.10368,-3.56038 17.14047,-12.67863 26.15144,-18.15211 7.49381,-6.76451 18.54715,-10.01016 23.91106,-18.81664 2.37402,-5.13294 -4.18684,-8.08044 -8.3125,-8.03125 -7.63392,-0.74121 -15.28114,0.3857 -22.90625,0.71875 6.09894,-7.64215 15.86156,-13.48549 18.4375,-23.3125 0.30298,-8.96922 -9.94301,-12.58871 -17.25,-13.78125 -3.17494,-0.29148 -6.36948,-0.70016 -9.5625,-0.5625 z m 42.21875,62.375 c -23.67323,1.42366 -43.26089,17.07765 -61.33205,30.83595 -3.71441,2.3207 -7.59787,5.40347 -12.04295,4.22655 -5.20145,2.03287 -9.08722,8.15589 -8.8125,13.625 2.70022,4.40343 8.34217,-0.41805 11.5625,-1.75 13.39779,-7.09199 25.31469,-17.67318 39.71875,-22.625 5.23999,-0.78807 4.54811,6.91955 5.0625,10.1875 0.2977,10.87717 0.38405,22.05658 -0.53125,32.75 -3.34793,-7.79696 -12.77993,-15.52338 -21.34375,-10.65625 -11.39052,7.09269 -12.31311,23.38503 -7.625,34.84375 3.80097,12.22927 13.57935,20.91515 20.1875,31.5 2.24819,2.3586 0.74149,4.75197 0.78125,7.28125 2.96439,4.22667 8.62523,-0.35874 11.9375,-2.0625 9.88529,-5.20811 15.86452,-16.08977 14.40625,-27.25 -0.36046,-8.17823 -6.7875,-14.77094 -5.34375,-23.21875 0.17157,-17.30013 5.70005,-34.1418 5.09375,-51.4375 0.16994,-4.78542 -5.27764,-7.78174 -7.21875,-10.21875 6.98361,-2.65812 15.99101,-4.19815 22.75,-0.40625 0.38163,5.48406 -9.30987,8.43185 -5.71875,13.9375 5.35698,2.43471 11.194535,-1.90837 16.1875,-3.6875 5.616441,-2.00143 11.118874,-8.75764 6.96875,-14.53125 -5.500868,-7.76088 -15.216432,-11.91572 -24.6875,-11.34375 z M -154.96875,290 c 7.5434,1.96935 12.16377,9.80418 16.34375,15.90625 4.83681,9.03851 4.96084,20.24903 2.1875,29.90625 -10.68387,-10.08491 -18.6814,-24.00269 -20.84375,-38.53125 -0.004,-2.27061 -0.60599,-6.63167 2.3125,-7.28125 z m 29.0625,33.03125 c 3.33075,-0.021 -0.13512,5.62207 -1.25,4.40625 -0.27656,-1.46508 -0.10361,-3.5565 1.25,-4.40625 z m -15.78125,28.125 c -7.57866,0.69774 -15.89633,-0.5814 -23.03125,2.25 -2.72482,3.76467 3.19573,6.91462 5.78125,8.8125 12.58812,7.75066 27.95463,14.0996 43.03125,10.875 8.04225,-1.65992 12.21963,-12.75285 7.0625,-19.15625 -7.26489,-4.32732 -16.59371,-2.03691 -24.6875,-2.8125 -2.71881,0.004 -5.43769,-0.017 -8.15625,0.0312 z"
-           id="path3883"
-           inkscape:connector-curvature="0" />
-      </g>
-      <path
-         sodipodi:nodetypes="csssscscsccsscsssscc"
-         inkscape:connector-curvature="0"
-         id="path4411"
-         d="m 105.25012,473.75325 c -2.34157,-2.9341 -4.24783,-7.88513 -4.21738,-10.95359 0.0612,-6.16344 42.6761,-317.90876 43.57432,-318.76356 C 145.80279,142.89818 253.3947,105 255.42952,105 c 2.42715,0 103.80751,37.80716 105.23458,39.2445 1.17096,1.17938 49.35703,313.39268 49.31945,319.55687 -0.009,1.48425 -1.03586,4.49863 -2.28179,6.69863 l -2.26535,4 -149.59306,0.25325 c -118.92608,0.20133 -149.7981,-0.004 -150.59323,-1 z M 399.34258,454.25 c 0.62101,-1.01118 -45.10215,-301.36267 -46.15533,-303.19037 -0.4565,-0.7922 -22.6221,-9.44531 -49.25689,-19.22914 l -48.42691,-17.78878 -50.50172,17.54234 c -27.77595,9.64829 -51.12835,18.1566 -51.89422,18.90735 -0.97159,0.95242 -7.51901,46.94938 -21.66138,152.17568 -11.1479,82.94587 -20.05722,151.15317 -19.7985,151.57179 0.6106,0.98797 287.08822,0.99905 287.69495,0.0111 z"
-         style="fill:#f21712" />
-      <path
-         inkscape:connector-curvature="0"
-         id="path4409"
-         d="m 105.25012,473.75325 c -2.34157,-2.9341 -4.24783,-7.88513 -4.21738,-10.95359 0.0612,-6.16344 42.6761,-317.90876 43.57432,-318.76356 C 145.80279,142.89818 253.3947,105 255.42952,105 c 2.42715,0 103.80751,37.80716 105.23458,39.2445 1.17096,1.17938 49.35703,313.39268 49.31945,319.55687 -0.009,1.48425 -1.03586,4.49863 -2.28179,6.69863 l -2.26535,4 -149.59306,0.25325 c -118.92608,0.20133 -149.7981,-0.004 -150.59323,-1 z M 399.34258,454.25 c 0.62101,-1.01118 -45.10215,-301.36267 -46.15533,-303.19037 -0.4565,-0.7922 -22.6221,-9.44531 -49.25689,-19.22914 l -48.42691,-17.78878 -50.50172,17.54234 c -27.77595,9.64829 -51.12835,18.1566 -51.89422,18.90735 -0.97159,0.95242 -7.51901,46.94938 -21.66138,152.17568 -11.1479,82.94587 -20.05722,151.15317 -19.7985,151.57179 0.6106,0.98797 287.08822,0.99905 287.69495,0.0111 z"
-         style="fill:#161513" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/shogi/WhiteGoldPawn.svg b/themes/shogi/WhiteGoldPawn.svg
deleted file mode 100644 (file)
index 528f188..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg4501"
-   version="1.1"
-   inkscape:version="0.48.4 r9943 custom"
-   width="512"
-   height="512"
-   sodipodi:docname="WhiteGoldPawn.svg">
-  <metadata
-     id="metadata4507">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs4505" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview4503"
-     showgrid="false"
-     inkscape:zoom="0.4609375"
-     inkscape:cx="256"
-     inkscape:cy="256"
-     inkscape:window-x="232"
-     inkscape:window-y="22"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g4511" />
-  <g
-     id="g4511">
-    <g
-       id="g4041">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4517"
-         d="m 116.12951,473.43752 c -4.86391,-6.18346 -5.60943,1.59621 15.38776,-160.57459 16.56631,-127.9491 19.87154,-151.59809 21.36729,-152.88314 0.9732,-0.83612 24.48015,-9.76531 52.23767,-19.84264 l 50.46821,-18.32243 47.82955,18.50313 c 26.30626,10.17672 48.4166,19.10591 49.1341,19.84264 0.82062,0.84261 9.69082,57.49217 23.9119,152.71336 24.28574,162.61193 23.33281,154.29834 18.4045,160.56367 L 392.85484,476 255.5,476 l -137.35484,0 -2.01565,-2.56248 z"
-         style="fill:#d3bc5f" />
-      <path
-         sodipodi:nodetypes="cssssscscsccsscssscc"
-         inkscape:connector-curvature="0"
-         id="path4515"
-         d="m 118.25037,473.75355 c -2.33713,-2.92851 -4.24865,-7.88368 -4.22559,-10.95389 0.0469,-6.24276 38.70369,-300.92812 39.58907,-301.792 1.78848,-1.74507 100.90004,-37.14258 102.91772,-36.75687 1.14692,0.21924 22.92459,8.44784 48.39483,18.28576 35.76845,13.81563 46.4965,18.35107 47.13096,19.92529 0.96071,2.38373 44.99924,297.835 44.94581,301.53816 -0.0198,1.375 -1.05547,4.3 -2.30141,6.5 l -2.26534,4 -136.59282,0.25355 c -108.52563,0.20145 -136.79839,-0.004 -137.59323,-1 z M 386.34364,454.25 c 0.94787,-1.53983 -41.20013,-286.54327 -42.49397,-287.34291 -0.69908,-0.43205 -20.86786,-8.23463 -44.81952,-17.33907 l -43.54847,-16.55351 -46.93807,16.83187 c -25.81594,9.25753 -47.29497,17.46677 -47.73117,18.24275 -1.00671,1.79088 -36.82283,285.08503 -36.17506,286.13316 0.61732,0.99884 261.09149,1.02641 261.70626,0.0277 z"
-         style="fill:#f01813" />
-      <g
-         transform="matrix(1.5626356,0,0,1.1267045,-737.89712,-41.444797)"
-         id="g4026">
-        <path
-           style="fill:#ff0000"
-           d="m 609.40625,227.90625 c 4.91804,10.34622 12.02207,21.28122 8.52085,33.11102 -2.8456,12.78488 -5.61731,26.56733 -0.0208,39.04523 5.56247,13.70412 -4.36251,26.91486 -6.25,40.21875 -3.66839,15.57304 -0.59537,33.57994 11.53125,44.53125 10.611,9.93132 26.03017,19.09285 40.9375,13.96875 4.75792,-1.62264 3.21104,-7.84555 -0.5,-9.75 -10.27479,-8.03941 -25.62394,-7.73023 -33.28125,-19.46875 -11.85415,-15.34296 -8.70369,-40.00464 7.6875,-51 7.94362,-7.22688 20.10688,-9.8575 25.875,-19.1875 1.45705,-5.75821 -4.59482,-10.31737 -9.9375,-8.5625 -7.82064,1.58274 -14.62227,6.17426 -21.75,9.625 0.55094,-18.20407 5.12982,-37.1172 0.15625,-55 -3.7278,-12.09808 -16.64599,-17.18275 -26.0625,-24.0625 1.03125,2.17708 2.0625,4.35417 3.09375,6.53125 z"
-           id="path4024"
-           inkscape:connector-curvature="0" />
-      </g>
-      <path
-         inkscape:connector-curvature="0"
-         id="path4513"
-         d="m 118.25037,473.75355 c -2.33713,-2.92851 -4.24865,-7.88368 -4.22559,-10.95389 0.0469,-6.24276 38.70369,-300.92812 39.58907,-301.792 1.78848,-1.74507 100.90004,-37.14258 102.91772,-36.75687 1.14692,0.21924 22.92459,8.44784 48.39483,18.28576 35.76845,13.81563 46.4965,18.35107 47.13096,19.92529 0.96071,2.38373 44.99924,297.835 44.94581,301.53816 -0.0198,1.375 -1.05547,4.3 -2.30141,6.5 l -2.26534,4 -136.59282,0.25355 c -108.52563,0.20145 -136.79839,-0.004 -137.59323,-1 z M 386.34364,454.25 c 0.94787,-1.53983 -41.20013,-286.54327 -42.49397,-287.34291 -0.69908,-0.43205 -20.86786,-8.23463 -44.81952,-17.33907 l -43.54847,-16.55351 -46.93807,16.83187 c -25.81594,9.25753 -47.29497,17.46677 -47.73117,18.24275 -1.00671,1.79088 -36.82283,285.08503 -36.17506,286.13316 0.61732,0.99884 261.09149,1.02641 261.70626,0.0277 z"
-         style="fill:#171513" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/shogi/WhiteGoldSilver.svg b/themes/shogi/WhiteGoldSilver.svg
deleted file mode 100644 (file)
index 7bf8ad6..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg4605"
-   version="1.1"
-   inkscape:version="0.48.4 r9943 custom"
-   width="512"
-   height="512"
-   sodipodi:docname="WhiteGoldSilver.svg">
-  <metadata
-     id="metadata4611">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs4609" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1035"
-     inkscape:window-height="712"
-     id="namedview4607"
-     showgrid="false"
-     inkscape:zoom="0.4609375"
-     inkscape:cx="256"
-     inkscape:cy="256"
-     inkscape:window-x="45"
-     inkscape:window-y="22"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g4615" />
-  <g
-     id="g4615">
-    <g
-       id="g3312">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4621"
-         d="m 81.239624,479.75 c -0.552897,-0.6875 -1.995733,-4.4 -3.206303,-8.25 l -2.201037,-7 25.083856,-177.09934 C 114.71226,189.99602 126,109.79936 126,109.18584 c 0,-0.61351 0.91337,-1.60429 2.02972,-2.20174 C 131.74047,104.99816 253.45469,63 255.49934,63 c 1.10517,0 29.23041,9.814635 62.50053,21.8103 51.98803,18.74448 60.66289,22.15324 61.71306,24.25 0.67205,1.34183 13.42558,81.97027 28.34115,179.17429 l 27.11924,176.73459 -2.21977,6.76541 c -1.22087,3.72098 -2.66497,7.32791 -3.2091,8.01541 C 428.9598,480.74138 392.90978,481 255.5,481 118.09872,481 82.036857,480.74132 81.239624,479.75 z"
-         style="fill:#d3bc5f" />
-      <g
-         transform="matrix(1.3586678,0,0,1.3586678,704.94087,-76.297251)"
-         id="g3250">
-        <path
-           style="fill:#ff0000"
-           d="m -368.08221,357.37962 c -9.09419,-1.71879 -16.35961,-9.71818 -13.30924,-14.6538 1.21928,-1.97282 5.62772,-5.40423 9.79653,-7.6253 6.89145,-3.67168 7.14292,-3.50899 2.76963,1.79202 -6.72534,8.15197 -3.10639,10.18696 13.21286,7.42982 12.67032,-2.14062 14.04971,-3.36124 14.04971,-12.43276 0,-11.76516 -0.68828,-11.97961 -13.07492,-4.07379 -8.89548,5.67756 -9.13388,5.67756 -4.63687,0 4.06336,-5.1301 3.99277,-5.9853 -0.494,-5.9853 -5.29833,0 -11.11173,-9.8305 -7.7823,-13.15993 0.99464,-0.99464 1.80843,0.005 1.80843,2.22151 0,2.31779 5.23856,4.02995 12.33007,4.02995 10.81098,0 12.19409,-0.95754 11.22627,-7.77204 -0.7369,-5.18865 -3.11309,-7.43466 -7.14872,-6.75705 -3.3247,0.55824 -6.04491,-0.60756 -6.04491,-2.59068 0,-1.98311 -2.03452,-3.60566 -4.52115,-3.60566 -2.48663,0 -7.53845,-2.40139 -11.22627,-5.33643 -6.20506,-4.93844 -5.38774,-5.17671 10.95892,-3.19484 15.93294,1.93172 17.84889,1.43471 19.5503,-5.07149 1.92967,-7.37908 -5.57942,-14.03114 -15.83888,-14.03114 -2.74202,0 -6.7393,-2.1132 -8.88284,-4.69601 -3.17795,-3.82921 -0.22742,-5.17132 15.98468,-7.27098 30.90235,-4.00223 39.83715,-3.90532 41.33261,0.44829 0.76049,2.21396 -3.93583,5.94858 -10.43627,8.29917 -15.07921,5.45272 -13.85828,16.12606 2.02557,17.70748 12.18691,1.21335 17.45252,9.69172 6.01918,9.69172 -11.17795,0 -20.78619,6.34256 -20.78619,13.72131 0,5.57918 1.8229,6.27395 12.08983,4.60786 12.71086,-2.06269 17.60572,4.36285 6.04492,7.93524 -12.10159,3.73951 -16.41527,7.44235 -16.78575,14.40885 -0.33907,6.3758 1.57269,7.09255 18.51155,6.94032 12.449,-0.11191 19.88992,1.44871 21.82327,4.57694 4.95021,8.00961 -1.85566,10.61781 -30.17948,11.56551 -14.96245,0.50066 -30.27815,1.67358 -34.0349,2.6065 -3.75675,0.93292 -10.21499,1.05655 -14.35164,0.27461 z m 92.09067,-96.58588 c -10.41644,-8.87242 -27.90407,-24.7834 -38.86141,-35.35773 l -19.92243,-19.22606 -18.07418,19.67173 c -16.83579,18.32388 -54.99671,47.58951 -62.05433,47.58951 -1.71111,0 9.81603,-12.27887 25.61588,-27.28638 15.79984,-15.0075 32.613,-34.60188 37.36258,-43.54304 l 8.63559,-16.25667 -7.77203,-5.2376 c -10.62637,-7.16114 -9.74876,-11.30343 2.3948,-11.30343 13.1241,0 21.72237,11.26024 17.3599,22.73441 -3.496,9.19515 -1.15538,11.26882 39.83089,35.28831 31.62331,18.53244 42.39692,27.97508 45.13551,39.55948 3.47552,14.70169 -7.48134,12.25077 -29.65077,-6.63253 z"
-           id="path3248"
-           inkscape:connector-curvature="0"
-           sodipodi:nodetypes="csssssssssssssssssssssssssssssssssccsscsssscssssss" />
-      </g>
-      <path
-         sodipodi:nodetypes="sssscssscsscsscsssscc"
-         inkscape:connector-curvature="0"
-         id="path4619"
-         d="m 83.265046,479.18497 c -1.53838,-0.97713 -5.257384,-11.59288 -5.286997,-15.09152 -0.04681,-5.53048 49.150861,-351.72779 50.301891,-353.96753 1.0408,-2.02527 10.47616,-5.59199 64.2187,-24.275707 L 255.49729,63.948594 315.87165,85.704 c 33.2059,11.965473 60.96634,22.21454 61.68987,22.7757 0.87061,0.67524 10.46874,60.5423 28.3806,177.0203 14.88581,96.8 27.06348,177.16705 27.06149,178.59345 -0.005,3.46977 -3.71837,14.10683 -5.26866,15.09152 -1.61454,1.02551 -342.855361,1.02551 -344.469904,0 z M 422.34474,454.25 c 0.44725,-0.72483 -51.73931,-334.76709 -52.84312,-338.2449 -0.39684,-1.25032 -16.02525,-7.1435 -57.24189,-21.584871 L 255.56372,74.555244 197.66127,94.027622 c -31.84635,10.709808 -58.57039,19.950858 -59.38676,20.535658 -1.11754,0.80056 -7.49237,42.80036 -25.79926,169.97517 -13.373227,92.90154 -24.099467,169.26056 -23.836088,169.68672 0.616156,0.99696 333.090478,1.0217 333.705578,0.0248 z"
-         style="fill:#f4130f" />
-      <path
-         inkscape:connector-curvature="0"
-         id="path4617"
-         d="m 83.265046,479.18497 c -1.53838,-0.97713 -5.257384,-11.59288 -5.286997,-15.09152 -0.04681,-5.53048 49.150861,-351.72779 50.301891,-353.96753 1.0408,-2.02527 10.47616,-5.59199 64.2187,-24.275707 L 255.49729,63.948594 315.87165,85.704 c 33.2059,11.965473 60.96634,22.21454 61.68987,22.7757 0.87061,0.67524 10.46874,60.5423 28.3806,177.0203 14.88581,96.8 27.06348,177.16705 27.06149,178.59345 -0.005,3.46977 -3.71837,14.10683 -5.26866,15.09152 -1.61454,1.02551 -342.855361,1.02551 -344.469904,0 z M 422.34474,454.25 c 0.44725,-0.72483 -51.73931,-334.76709 -52.84312,-338.2449 -0.39684,-1.25032 -16.02525,-7.1435 -57.24189,-21.584871 L 255.56372,74.555244 197.66127,94.027622 c -31.84635,10.709808 -58.57039,19.950858 -59.38676,20.535658 -1.11754,0.80056 -7.49237,42.80036 -25.79926,169.97517 -13.373227,92.90154 -24.099467,169.26056 -23.836088,169.68672 0.616156,0.99696 333.090478,1.0217 333.705578,0.0248 z"
-         style="fill:#131211" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/shogi/WhiteJewled.svg b/themes/shogi/WhiteJewled.svg
deleted file mode 100644 (file)
index 4f1ab23..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg3502"
-   version="1.1"
-   inkscape:version="0.48.4 r9943 custom"
-   width="512"
-   height="512"
-   sodipodi:docname="WhiteJewled.svg">
-  <metadata
-     id="metadata3508">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3506" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="866"
-     inkscape:window-height="583"
-     id="namedview3504"
-     showgrid="false"
-     inkscape:zoom="0.65186406"
-     inkscape:cx="337.34053"
-     inkscape:cy="310.02684"
-     inkscape:window-x="175"
-     inkscape:window-y="67"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3512" />
-  <g
-     id="g3512">
-    <g
-       id="g3565">
-      <g
-         id="g3110">
-        <path
-           style="fill:#d3bc5f"
-           d="M 65.249679,484.75 C 64.702313,484.0625 63.254296,479.225 62.031864,474 L 59.80926,464.5 88.794087,268.16054 C 104.73574,160.17384 118.16616,71.436297 118.63946,70.966001 119.11276,70.495704 150.2125,59.464348 187.75,46.451875 L 256,22.792834 324.25,46.451875 c 37.5375,13.012473 68.63817,24.044759 69.11261,24.516191 0.47443,0.471433 13.90328,89.208974 29.84188,197.194544 L 452.18376,464.5 449.96464,474 c -1.22051,5.225 -2.66695,10.0625 -3.21432,10.75 C 445.96043,485.74211 406.60664,486 256,486 105.39336,486 66.039567,485.74211 65.249679,484.75 z"
-           id="path3516"
-           inkscape:connector-curvature="0" />
-        <path
-           style="fill:#110f0d"
-           d="M 67.333178,484.22708 C 65.952189,483.34853 62,468.47944 62,464.16237 62,457.71704 119.18293,73.440458 120.31204,72.298029 121.63782,70.956609 253.47753,25 256,25 258.52318,25 390.36257,70.956876 391.68684,72.298029 392.81422,73.439783 450,457.73405 450,464.16841 c 0,4.31238 -3.95319,19.18076 -5.33318,20.05867 -1.52552,0.97049 -375.808119,0.97049 -377.333642,0 z M 439.35585,454.23325 C 440.19167,452.88086 383.88777,79.54905 382.66873,78.360474 382.02593,77.733734 353.2625,67.73363 318.75,56.13802 L 256,35.055093 193.25,56.13802 c -34.5125,11.59561 -63.27535,21.595714 -63.91744,22.222454 -1.22344,1.194191 -57.532912,374.506336 -56.694278,375.863266 0.623488,1.00883 366.094098,1.0183 366.717568,0.01 z"
-           id="path3514"
-           inkscape:connector-curvature="0"
-           sodipodi:nodetypes="sssssssscsscssscc" />
-      </g>
-      <g
-         transform="matrix(1.1311236,0,0,1.1311236,-613.73549,-14.663102)"
-         id="g3543">
-        <path
-           style="fill:#000000"
-           d="m 837.54369,384.45473 c -5.7007,-7.19779 -15.5122,-14.94815 -21.8033,-17.22302 -17.1637,-6.20648 -13.8012,-10.1362 7.603,-8.88559 l 19.0414,1.11258 0,-23.18087 0,-23.18087 -21.5251,0.98946 c -11.8388,0.54419 -30.9313,3.15204 -42.4277,5.79522 -33.4638,7.6937 -41.5968,5.50768 -48.1742,-12.9486 -1.7712,-4.97021 -1.0671,-5.66809 3.6361,-3.6035 11.3566,4.98521 31.2893,5.46923 63.3739,1.53891 35.9592,-4.40499 41.3235,-6.38454 38.3437,-14.14975 -1.8166,-4.73387 -3.4413,-4.79316 -15.4305,-0.56313 -14.6043,5.15268 -30.3302,5.7723 -40.7157,1.60425 -5.6257,-2.2578 -4.6283,-3.17917 6.6231,-6.11823 7.2855,-1.90308 17.777,-4.37748 23.3146,-5.49869 13.9017,-2.81469 31.3261,-13.92924 31.3261,-19.98211 0,-6.90597 -7.3025,-6.28166 -23.1515,1.97928 -7.9139,4.12498 -16.8943,6.33128 -21.8862,5.37701 -5.9678,-1.14081 -10.7872,0.70347 -16.3347,6.25093 -9.0345,9.03447 -19.7833,10.2787 -22.7184,2.62978 -1.3356,-3.48056 3.548,-10.82728 14.5477,-21.88495 9.107,-9.15505 16.5244,-17.60125 16.483,-18.76934 -0.041,-1.16809 -4.7894,-4.44634 -10.5512,-7.285 -16.5482,-8.15276 -14.8721,-12.16036 5.1609,-12.34037 9.8869,-0.0888 22.5383,-2.52068 28.1142,-5.40408 12.6939,-6.56431 21.7171,-6.67042 26.9896,-0.31738 7.4194,8.93981 1.4344,13.93036 -19.5541,16.30493 -19.4867,2.20466 -20.1495,2.5946 -20.1495,11.85443 0,5.26613 -1.4902,10.49577 -3.3116,11.62143 -4.9646,3.06828 -3.9866,8.27888 1.5538,8.27888 2.676,0 10.9217,-3.15674 18.3239,-7.01498 29.4527,-15.3516 56.5685,4.72982 34.2794,25.38665 -6.4239,5.95343 -7.3578,8.12075 -3.4994,8.12075 2.8948,0 7.5276,3.23288 10.2952,7.18418 4.6445,6.63099 6.0598,6.87621 18.3816,3.18451 14.4963,-4.3432 24.2336,-1.53432 27.9121,8.0517 3.508,9.1416 -0.5733,10.81933 -21.6663,8.90668 -20.282,-1.8391 -20.3752,-1.80768 -18.1227,6.10939 4.8021,16.87855 6.0441,51.43497 2.3391,65.08224 -4.9342,18.175 -12.777,18.46588 -26.6203,0.98727 z m -148.44474,-7.61037 c -10.53544,-18.55291 -9.42453,-22.73997 3.74407,-14.11156 8.12046,5.32071 8.17011,5.28491 10.03978,-7.24236 1.03342,-6.92423 2.8203,-21.00585 3.97083,-31.29246 l 2.09186,-18.70298 -16.89703,8.36226 c -15.40113,7.62194 -16.89704,9.36557 -16.89704,19.6953 0,13.85911 -8.31663,30.87347 -15.09096,30.87347 -8.35865,0 -8.95791,-8.67305 -1.72851,-25.0163 8.14835,-18.42071 8.09621,-18.03388 2.43073,-18.03388 -6.03795,0 -15.41524,-10.80544 -15.41524,-17.76291 0,-4.65806 1.18465,-5.017 6.74211,-2.04273 18.83095,10.07802 56.74144,-0.59651 58.99864,-16.61235 1.121,-7.95398 0.9231,-8.0504 -5.18232,-2.52504 -3.49133,3.15961 -11.11976,7.40823 -16.95208,9.44139 -8.65098,3.01575 -12.11867,2.70433 -18.82639,-1.69074 -11.42763,-7.48767 -10.26301,-11.85781 3.16004,-11.85781 11.28034,0 11.36535,-0.11117 9.49655,-12.41832 -1.03712,-6.83008 -4.92869,-15.77127 -8.64793,-19.86932 l -6.76225,-7.45099 7.35088,0 c 9.80438,0 23.6076,14.25255 23.6076,24.37609 0,12.21015 11.9476,7.78128 14.5852,-5.40659 1.6261,-8.1307 0.3313,-12.04136 -6.26781,-18.92931 -14.77852,-15.42545 -9.2961,-24.73998 9.51651,-16.16838 13.9867,6.37278 16.965,19.30807 10.3853,45.10553 -3.1354,12.29345 -6.7424,42.46941 -8.0154,67.05769 -3.2547,62.86489 -11.22406,74.29551 -29.43714,42.2223 z m 75.91754,-25.31438 c -3.2388,-2.05197 -0.432,-4.24087 9.9347,-7.74764 12.667,-4.28492 14.3312,-5.96788 13.4956,-13.64707 -0.73,-6.70759 0.5073,-8.75942 5.2819,-8.75942 8.2935,0 18.5139,11.65934 15.9888,18.23973 -4.0184,10.47186 -34.2567,18.53145 -44.701,11.9144 z m -61.71687,-161.1239 c -20.33625,-10.41912 -24.10087,-23.21707 -5.79522,-19.70104 11.32539,2.17532 54.10039,2.81769 55.47819,0.83314 0.32,-0.46089 -0.08,-7.17133 -0.8897,-14.91209 -1.4489,-13.85832 -1.6663,-14.0741 -14.1851,-14.0741 -8.582,0 -15.6633,-2.53708 -21.7898,-7.80686 l -9.07599,-7.80686 21.30969,0.35587 21.3097,0.35587 1.0277,-12.41833 1.0278,-12.41832 -14.9172,0 c -10.9989,0 -17.3578,-2.10064 -24.2086,-7.997157 -11.72482,-10.091551 -9.44697,-12.468233 7.763,-8.099874 9.6122,2.439844 21.5658,2.307654 41.2876,-0.456557 15.267,-2.139849 33.0571,-4.6353 39.5334,-5.545444 7.9261,-1.1139 13.0811,-0.0811 15.7707,3.159636 6.1708,7.435359 -3.3486,13.205579 -24.7081,14.976869 -16.7076,1.385527 -18.1233,2.122127 -16.4022,8.534687 1.036,3.86005 1.904,9.79197 1.9288,13.18204 0.039,5.27128 1.7598,5.8421 11.8867,3.94229 12.445,-2.33469 21.2741,1.8855 21.2741,10.16875 0,3.18994 -4.4228,4.56184 -14.7066,4.56184 -16.6257,0 -16.9141,0.25463 -20.2148,17.84875 l -2.4071,12.83098 19.4921,-2.78089 c 28.8349,-4.1138 40.0904,-3.27173 47.6443,3.56445 12.7183,11.50991 6.6603,13.23937 -46.6482,13.31732 -41.2898,0.0604 -53.3998,1.16805 -63.3585,5.79522 -14.93,6.937 -15.0338,6.93923 -27.42667,0.58981 z m 130.76737,-50.19105 c -2.5447,-5.08941 -7.5622,-12.60642 -11.15,-16.70446 -6.4977,-7.42177 -6.497,-7.451 0.1873,-7.451 11.4326,0 29.2152,14.18998 29.2152,23.31278 0,12.20146 -12.2895,12.76884 -18.2525,0.84268 z"
-           id="path3531"
-           inkscape:connector-curvature="0"
-           sodipodi:nodetypes="ssscccsscssssssssssssscsssssssssssssssssssssscsssssssssssssscsssssssssscsssssccsscccccsssssssscsssscssssssssss" />
-      </g>
-    </g>
-  </g>
-</svg>
diff --git a/themes/shogi/WhiteKing.svg b/themes/shogi/WhiteKing.svg
deleted file mode 100644 (file)
index 3e8c9d1..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg3668"
-   version="1.1"
-   inkscape:version="0.48.4 r9943 custom"
-   width="512"
-   height="512"
-   sodipodi:docname="WhiteKing.svg">
-  <metadata
-     id="metadata3674">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3672" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1680"
-     inkscape:window-height="928"
-     id="namedview3670"
-     showgrid="false"
-     inkscape:zoom="0.65186405"
-     inkscape:cx="454.52745"
-     inkscape:cy="84.17197"
-     inkscape:window-x="0"
-     inkscape:window-y="22"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3678" />
-  <g
-     id="g3678">
-    <g
-       id="g3375">
-      <g
-         id="g3174">
-        <path
-           style="fill:#d3bc5f"
-           d="M 65.249679,484.75 C 64.702313,484.0625 63.254296,479.225 62.031864,474 L 59.80926,464.5 88.794087,268.16054 C 104.73574,160.17384 118.16616,71.436297 118.63946,70.966001 119.11276,70.495704 150.2125,59.464348 187.75,46.451875 L 256,22.792834 324.25,46.451875 c 37.5375,13.012473 68.63817,24.044759 69.11261,24.516191 0.47443,0.471433 13.90328,89.208974 29.84188,197.194544 L 452.18376,464.5 449.96464,474 c -1.22051,5.225 -2.66695,10.0625 -3.21432,10.75 C 445.96043,485.74211 406.60664,486 256,486 105.39336,486 66.039567,485.74211 65.249679,484.75 z"
-           id="path3682"
-           inkscape:connector-curvature="0" />
-        <g
-           id="g3147"
-           style="fill:#000000"
-           transform="translate(-442.57627,-4.3389838)">
-          <g
-             id="g3153" />
-        </g>
-        <path
-           style="fill:#110f0d"
-           d="M 67.333178,484.22708 C 65.952189,483.34853 62,468.47944 62,464.16237 62,457.71704 119.18293,73.440458 120.31204,72.298029 121.63782,70.956609 253.47753,25 256,25 258.52318,25 390.36257,70.956876 391.68684,72.298029 392.81422,73.439783 450,457.73405 450,464.16841 c 0,4.31238 -3.95319,19.18076 -5.33318,20.05867 -1.52552,0.97049 -375.808119,0.97049 -377.333642,0 z M 439.35585,454.23325 C 440.19167,452.88086 383.88777,79.54905 382.66873,78.360474 382.02593,77.733734 353.2625,67.73363 318.75,56.13802 L 256,35.055093 193.25,56.13802 c -34.5125,11.59561 -63.27535,21.595714 -63.91744,22.222454 -1.22344,1.194191 -57.532912,374.506336 -56.694278,375.863266 0.623488,1.00883 366.094098,1.0183 366.717568,0.01 z"
-           id="path3680"
-           inkscape:connector-curvature="0"
-           sodipodi:nodetypes="sssssssscsscssscc" />
-      </g>
-      <g
-         transform="matrix(1.0827996,0,0,1.0827996,554.82133,16.554677)"
-         id="g3344">
-        <path
-           style="fill:#000000"
-           d="m -201.83361,379.39189 c -5.99632,-7.57101 -16.31658,-15.72324 -22.9339,-18.11607 -18.05367,-6.52829 -14.51681,-10.66178 7.99727,-9.34632 l 20.02876,1.17027 0,-24.38285 0,-24.38284 -22.64121,1.04076 c -12.45267,0.57241 -32.53516,3.31548 -44.62776,6.09572 -35.19893,8.09263 -43.75358,5.79326 -50.67203,-13.62002 -1.86312,-5.22792 -1.12244,-5.96199 3.82462,-3.79034 11.94539,5.2437 32.91171,5.75281 66.6599,1.6187 37.82378,-4.6334 43.46622,-6.71559 40.33192,-14.88344 -1.91074,-4.97933 -3.61974,-5.0417 -16.2306,-0.59233 -15.3615,5.41986 -31.90291,6.07161 -42.82684,1.68743 -5.91741,-2.37486 -4.86828,-3.34402 6.96652,-6.43547 7.66318,-2.00175 18.69876,-4.60446 24.5235,-5.78381 14.62253,-2.96063 32.95035,-14.6515 32.95035,-21.01822 0,-7.26405 -7.68114,-6.60737 -24.35191,2.08192 -8.32428,4.33886 -17.77031,6.65956 -23.02106,5.65581 -6.27725,-1.19997 -11.34656,0.73995 -17.18166,6.57505 -9.50293,9.50293 -20.80906,10.81167 -23.89642,2.76614 -1.40487,-3.66103 3.73197,-11.38869 15.30201,-23.01973 9.57926,-9.62975 17.38123,-18.5139 17.33772,-19.74256 -0.0435,-1.22866 -5.03774,-4.6769 -11.0983,-7.66274 -17.40625,-8.5755 -15.64331,-12.7909 5.42854,-12.98025 10.39954,-0.0935 23.70689,-2.65138 29.5719,-5.68429 13.35217,-6.90468 22.84317,-7.01629 28.3891,-0.33384 7.80409,9.40336 1.50872,14.65268 -20.56799,17.15037 -20.49719,2.31898 -21.19435,2.72914 -21.19435,12.46911 0,5.53919 -1.56747,11.04 -3.48327,12.22403 -5.22199,3.22737 -4.19335,8.70815 1.63437,8.70815 2.8147,0 11.48801,-3.32042 19.27402,-7.37872 30.97987,-16.14761 59.50164,4.97507 36.05682,26.703 -6.75695,6.26213 -7.7393,8.54183 -3.68078,8.54183 3.04481,0 7.91783,3.40051 10.82893,7.55669 4.88537,6.97482 6.37409,7.23276 19.33478,3.34963 15.24797,-4.5684 25.49019,-1.61387 29.35944,8.4692 3.68982,9.61561 -0.60306,11.38034 -22.78979,9.36851 -21.33363,-1.93446 -21.43169,-1.90141 -19.06242,6.42617 5.0511,17.75374 6.35748,54.10198 2.46038,68.45689 -5.19005,19.1174 -13.43944,19.42337 -28.00056,1.03846 z m -156.14193,-8.00499 c -11.08173,-19.51491 -9.91321,-23.91908 3.93821,-14.84326 8.54152,5.59659 8.59374,5.55894 10.56036,-7.6179 1.08701,-7.28326 2.96654,-22.09504 4.17673,-32.91503 l 2.20034,-19.67277 -17.77319,8.79586 c -16.19971,8.01715 -17.77319,9.85119 -17.77319,20.71654 0,14.57773 -8.74786,32.47432 -15.87346,32.47432 -8.79205,0 -9.42239,-9.12277 -1.81813,-26.31344 8.57086,-19.37586 8.51602,-18.96898 2.55677,-18.96898 -6.35103,0 -16.21455,-11.36572 -16.21455,-18.68395 0,-4.89959 1.24607,-5.27714 7.0917,-2.14865 19.80738,10.60058 59.68363,-0.62744 62.05788,-17.47373 1.17912,-8.36641 0.97096,-8.46783 -5.45108,-2.65597 -3.67236,3.32344 -11.69634,7.79237 -17.83107,9.93094 -9.09956,3.17212 -12.74706,2.84456 -19.80259,-1.7784 -12.02017,-7.87592 -10.79516,-12.47266 3.3239,-12.47266 11.86525,0 11.95467,-0.11694 9.98897,-13.06224 -1.0909,-7.18423 -5.18426,-16.58904 -9.09635,-20.89958 l -7.11288,-7.83735 7.73204,0 c 10.31275,0 24.83169,14.99159 24.83169,25.64005 0,12.84327 12.56715,8.18476 15.34149,-5.68693 1.71046,-8.55229 0.34843,-12.66573 -6.59282,-19.91084 -15.54481,-16.22528 -9.77812,-26.02279 10.00995,-17.00674 14.71198,6.70322 17.84471,20.30924 10.92385,47.44434 -3.29805,12.93089 -7.09201,44.67153 -8.43103,70.53476 -3.42346,66.12457 -11.80607,78.14789 -30.96354,44.41161 z m 79.85405,-26.62697 c -3.40674,-2.15837 -0.45443,-4.46077 10.44979,-8.14937 13.32381,-4.5071 15.07436,-6.27733 14.19535,-14.35471 -0.76779,-7.05538 0.53364,-9.21361 5.55585,-9.21361 8.72346,0 19.47387,12.26391 16.81781,19.1855 -4.22679,11.01485 -36.03299,19.49234 -47.0188,12.53219 z m -64.91705,-169.47849 c -21.39073,-10.95938 -25.35055,-24.42093 -6.09571,-20.72258 11.91264,2.28811 56.90557,2.96379 58.35482,0.87634 0.33658,-0.48479 -0.0845,-7.54319 -0.93578,-15.68531 -1.52402,-14.57691 -1.75277,-14.80387 -14.92069,-14.80387 -9.027,0 -16.47542,-2.66864 -22.91958,-8.21167 l -9.54663,-8.21166 22.41463,0.37432 22.41463,0.37432 1.08108,-13.06224 1.08109,-13.062234 -15.69072,0 c -11.56919,0 -18.25787,-2.209559 -25.46393,-8.41183 -12.33273,-10.614817 -9.93677,-13.114734 8.16558,-8.519867 10.11064,2.566353 22.68407,2.427316 43.4284,-0.480231 16.05871,-2.250804 34.7712,-4.875649 41.5833,-5.832985 8.33713,-1.171659 13.75941,-0.0853 16.58845,3.323468 6.49077,7.820902 -3.52222,13.890314 -25.98921,15.753453 -17.57401,1.457373 -19.06303,2.232169 -17.25273,8.977226 1.08971,4.0602 2.0027,10.2997 2.02886,13.86555 0.0407,5.54461 1.85106,6.14504 12.50303,4.14671 13.09028,-2.45575 22.37717,1.98327 22.37717,10.69602 0,3.35535 -4.65207,4.79838 -15.46911,4.79838 -17.48784,0 -17.79117,0.26783 -21.26299,18.77425 l -2.53192,13.49629 20.50282,-2.92509 c 30.32999,-4.3271 42.16911,-3.44137 50.11468,3.74928 13.37778,12.10672 7.00572,13.92585 -49.06693,14.00785 -43.43075,0.0635 -56.16872,1.22861 -66.64381,6.09571 -15.70414,7.29669 -15.8133,7.29904 -28.8488,0.6204 z"
-           id="path3342"
-           inkscape:connector-curvature="0"
-           sodipodi:nodetypes="ssscccssssssssssssssssssssssssssssssssssssssscsssssssssssssscsssssssssssssssssssscccccssssssssssssscsssss" />
-      </g>
-    </g>
-  </g>
-</svg>
diff --git a/themes/shogi/WhiteKnight.svg b/themes/shogi/WhiteKnight.svg
deleted file mode 100644 (file)
index 5980d78..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg3754"
-   version="1.1"
-   inkscape:version="0.48.4 r9943 custom"
-   width="512"
-   height="512"
-   sodipodi:docname="WhiteKnight.svg">
-  <metadata
-     id="metadata3760">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3758" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1160"
-     inkscape:window-height="712"
-     id="namedview3756"
-     showgrid="false"
-     inkscape:zoom="0.4609375"
-     inkscape:cx="256"
-     inkscape:cy="256"
-     inkscape:window-x="0"
-     inkscape:window-y="22"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3764" />
-  <g
-     id="g3764">
-    <g
-       id="g3652">
-      <path
-         inkscape:connector-curvature="0"
-         id="path3768"
-         d="m 95.072155,473.3646 c -4.895079,-6.22308 -5.788704,2.25431 18.785045,-178.20493 12.60791,-92.58719 23.31032,-168.72495 23.78313,-169.19502 1.29405,-1.28654 115.55058,-41.954093 117.85967,-41.950027 2.25173,0.004 111.52115,40.619397 112.85943,41.949847 0.47269,0.46992 12.29661,76.60765 26.27538,169.19496 27.29982,180.81832 26.23664,171.92039 21.29303,178.20517 L 413.85484,476 255.5,476 97.14516,476 95.072155,473.3646 z"
-         style="fill:#d3bc5f" />
-      <g
-         transform="matrix(1.0499886,0,0,1.0499886,675.47879,35.837793)"
-         id="g3625">
-        <path
-           style="fill:#000000"
-           d="m -442.46875,91.59375 c -5.67669,1.199695 -3.5556,8.90193 -0.6875,11.75 1.7802,4.97533 3.0533,11.46414 0.75,16.34375 -7.64699,3.32377 -18.2627,-1.42608 -24.84375,4.96875 -2.89362,4.83553 3.83856,8.01375 7.6875,8.65625 5.79259,1.56866 11.88368,1.03749 17.59375,2.96875 -12.03604,16.88573 -28.8877,30.51967 -38.34375,49 -2.97752,4.88463 2.21185,10.91932 7.5,9.125 11.46978,-3.38032 19.69526,-13.03282 28.46875,-20.6875 -0.0376,16.38187 -1.33978,32.90204 -0.375,49.21875 2.91342,6.61728 13.90154,4.24732 14.5625,-2.8125 4.52352,-21.58959 -0.3695,-44.7762 7.5,-65.6875 1.42015,-4.15909 6.66405,-7.58041 5.46875,-12.3125 -2.80623,-2.92788 -6.90525,1.9587 -9.46875,0.53125 -0.64812,-3.55835 -1.72965,-11.15626 3.90625,-10.8125 5.12672,-0.15753 14.23712,-0.25133 14.71875,-6.96875 -1.067,-7.98945 -11.82272,-11.1676 -18.46875,-7.84375 4.59051,-10.66686 -3.98045,-23.175809 -14.6875,-25.46875 -0.42627,0.0182 -0.85885,-0.03866 -1.28125,0.03125 z m 55.09375,5.75 c -4.85838,-0.409466 -6.98093,5.44616 -4,8.875 7.66837,8.02691 9.37948,19.47853 9.625,30.25 -10.63313,1.66248 -21.99135,0.62615 -32.125,4.3125 -4.19518,3.54351 1.94139,8.00417 5.34375,9.09375 8.25055,3.47463 17.47669,0.68795 25.875,1.96875 2.39545,2.70176 1.14095,8.23409 -3.125,8.125 -9.0782,2.20078 -19.26513,0.076 -28.0625,3.53125 -3.51866,3.73207 2.61833,7.38432 5.65625,8.875 8.38734,4.21194 18.04902,2.91825 26.96875,4.625 2.6834,2.35505 -1.1374,6.49323 -4.03125,6.875 -7.36678,2.92801 -16.23624,0.98922 -23.28125,4.8125 -2.38732,4.52777 4.50205,6.48899 7.46875,8.1875 5.65085,2.96926 12.23713,2.55363 18.15625,4 3.04742,1.885 3.36048,8.74911 -1.46875,8.3125 -12.70882,1.19286 -25.52869,0.4244 -38.28125,0.75 8.88226,6.11834 16.7095,18.15858 28.9375,16.09375 22.16897,-5.03342 45.39236,-2.07417 67.96875,-3.75 4.42849,0.10278 9.63457,-3.17915 7.59375,-8.21875 -2.24299,-9.37977 -14.04423,-10.15408 -22,-9.78125 -8.30461,-0.26183 -17.01213,3.2309 -25.0625,1.09375 -1.47643,-3.56774 -0.24957,-8.56083 4.375,-8.5 7.60492,-1.95017 17.9341,0.53824 23.5,-6.28125 2.86585,-5.00498 -2.51516,-9.73054 -7.4375,-9.0625 -6.68469,-0.89907 -14.22538,2.32589 -20.4375,-0.53125 -1.91481,-3.91988 1.07907,-8.0529 5.34375,-8.28125 7.61794,-2.54686 18.17937,-1.07314 23.5625,-8.03125 1.86809,-5.25891 -5.36738,-6.94494 -9.125,-7.28125 -6.35128,-1.30137 -13.73518,1.28787 -19.5625,-1.5 -1.28881,-4.70506 2.29336,-9.46434 7.1875,-9.625 7.0858,-1.26835 16.53213,-1.84654 20.53125,-8.75 1.99019,-6.17867 -6.41988,-8.85641 -11.15625,-8.8125 -5.402,-0.92627 -10.91367,2.19869 -16,1.375 -3.8473,-8.81104 0.69745,-21.4257 -7.8125,-28.1875 -4.46226,-2.768154 -9.82179,-4.548193 -15.125,-4.5625 z m -54.03125,54.96875 c -0.11101,3.21704 -5.18564,7.57427 -6.09375,8.0625 1.45549,-2.81575 3.35038,-6.73575 6.09375,-8.0625 z M -371.96875,242 c -14.30713,1.18874 -27.34584,8.03332 -41.60558,9.91487 -7.71138,0.99442 -16.27421,3.3066 -23.51942,3.08513 -5.16062,-6.54549 -13.91673,-12.8768 -22.53125,-10.46875 -3.47447,3.94208 2.75397,8.07356 4.0625,11.75 6.99885,17.4493 1.73878,37.07333 6.43568,55.03869 1.27978,4.39306 3.76851,11.09198 9.18932,10.99256 5.69979,-3.02653 4.6914,-11.21676 6.06547,-16.61678 1.06946,-13.96263 4.08701,-28.51486 1.18453,-42.41447 -2.05061,-4.12646 -1.58077,-4.73292 2.97693,-2.04493 8.92769,4.65614 19.30923,6.18436 28.99182,4.01368 -1.93477,4.32627 -8.48004,4.43108 -12.625,5.21875 -4.81673,0.95712 -12.48848,0.6539 -14.375,6.1875 0.86844,6.43705 9.45066,5.87812 14.28125,6.0625 3.98736,0.74607 10.11258,-2.32812 12.96875,1.25 0.12452,6.09861 -8.18118,6.98377 -12.78125,7.46875 -5.47636,0.36705 -14.11224,-0.2855 -16.34375,6 0.83165,5.41621 8.30876,4.53532 12.40625,4.96875 4.14442,0.63298 10.29946,-0.99425 13.34375,2.5 -0.10624,3.35348 -5.30505,3.14359 -7.6875,3.90625 -6.91349,1.35525 -15.69547,0.0176 -21,5.375 -1.51644,6.81499 7.43448,8.79236 12.46875,8.71875 26.0765,0.18012 51.56986,-6.57661 77.25,-10.28125 3.7694,5.9638 11.99298,10.28548 11.96875,18 -3.0988,9.08296 -6.70664,18.80201 -13.21875,25.9375 -7.49891,5.73993 -17.89353,1.0334 -26.5,1.34375 -2.98734,-0.0401 -10.77791,-1.36328 -8.875,3.78125 8.39328,7.55613 18.11081,14.4453 28.90625,18.0625 9.83971,2.88494 17.3783,-6.22011 21.90625,-13.625 7.54971,-12.8106 15.13987,-26.336 17.59375,-41.1875 -1.89157,-11.68637 -13.15742,-18.71027 -20.6875,-26.8125 -4.90926,-1.26446 -11.11758,2.07102 -16.48459,2.43719 -13.22443,2.39297 -26.60764,6.13416 -39.98416,6.00031 -1.29356,-2.33869 3.57365,-4.13683 5.09375,-5.125 6.84286,-4.27294 16.17492,-0.13031 22.53125,-5.125 3.53762,-4.77887 -3.26348,-8.85436 -7.5,-8.9375 -5.7828,-1.57752 -13.36458,1.31565 -18.0625,-2.71875 5.40965,-6.53611 17.32972,-2.99114 22.1875,-10.6875 2.05535,-5.36287 -5.45365,-7.63598 -9.5,-7.4375 -4.01213,-0.49891 -9.36683,1.1192 -12.5625,-1.4375 7.75645,-7.65589 21.66385,-4.94547 29.15625,-13.28125 3.003,-5.09746 -3.14528,-9.58175 -7.90625,-9.53125 -2.36783,-0.4276 -4.81763,-0.38193 -7.21875,-0.28125 z m -22.5625,86.25 c 11.1683,8.15272 20.65808,20.94169 35.0625,22.96875 7.81515,0.55276 9.65851,-10.27969 4.875,-14.96875 -10.70468,-10.72657 -27.54362,-9.24025 -41.37957,-11.8992 -7.52945,-1.88773 -0.50663,1.63162 1.44207,3.8992 z m -23.78125,1.25 c -5.3576,1.20671 -2.00413,7.84527 0.28125,10.5625 5.6818,7.11412 10.60353,15.9332 19.09375,19.90625 7.30004,1.52929 10.70299,-8.73574 7,-13.9375 -5.24162,-9.1212 -15.68637,-14.42562 -25.625,-16.5625 -0.24987,0.0113 -0.50294,-0.0249 -0.75,0.0312 z m -29.59375,3.78125 c -5.20653,1.50847 -1.37106,8.05164 -0.5,11.375 3.48179,7.51956 5.3854,17.13997 12.78125,21.875 5.07504,2.95311 8.98127,-3.40126 8.5,-7.9375 -0.0802,-9.34903 -7.68614,-16.73997 -14.125,-22.59375 -1.89876,-1.39207 -4.16554,-2.98448 -6.65625,-2.71875 z m -33.3125,4.5 c -5.0492,1.73891 -0.8658,8.39751 -0.3125,11.8125 3.74991,9.66749 5.78515,20.74517 12.9375,28.5625 4.78919,4.45525 12.09724,0.25716 12.96875,-5.59375 2.35316,-9.50843 -4.88963,-18.22814 -10.625,-25.0625 -4.10193,-4.06602 -9.01267,-8.96846 -14.96875,-9.71875 z"
-           id="path3623"
-           inkscape:connector-curvature="0" />
-      </g>
-      <path
-         sodipodi:nodetypes="cssscsssscccssssscc"
-         inkscape:connector-curvature="0"
-         id="path3766"
-         d="M 98.223264,474.32881 C 96.361491,473.5803 93,466.52268 93,463.3623 c 0,-6.81391 45.23317,-334.97676 46.32613,-336.09221 0.66282,-0.67645 27.07307,-10.4755 58.68945,-21.77566 l 57.48433,-20.545748 55.19953,20.612328 c 30.35974,11.33678 55.65028,21.15545 56.2012,21.81926 C 367.85481,128.52999 418,458.49248 418,463.62139 c 0,3.22055 -3.47199,9.96202 -5.53919,10.75528 -1.93547,0.7427 -312.38876,0.69542 -314.237546,-0.0479 z M 407.34943,454.24363 c 0.72691,-1.17617 -48.00015,-320.29435 -49.07002,-321.36422 -1.03347,-1.03347 -100.74519,-37.862614 -102.62705,-37.905941 -0.6338,-0.01459 -25.35049,8.386921 -54.92598,18.670041 -45.34556,15.76621 -53.85515,19.02256 -54.29375,20.77653 -1.16917,4.67554 -43.24552,319.07369 -42.79882,319.79647 0.62223,1.00679 303.09346,1.03379 303.71562,0.0271 z"
-         style="fill:#151310" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/shogi/WhiteLance.svg b/themes/shogi/WhiteLance.svg
deleted file mode 100644 (file)
index b519db2..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg3840"
-   version="1.1"
-   inkscape:version="0.48.4 r9943 custom"
-   width="512"
-   height="512"
-   sodipodi:docname="WhiteLance.svg">
-  <metadata
-     id="metadata3846">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3844" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1114"
-     inkscape:window-height="705"
-     id="namedview3842"
-     showgrid="false"
-     inkscape:zoom="0.4609375"
-     inkscape:cx="256"
-     inkscape:cy="256"
-     inkscape:window-x="45"
-     inkscape:window-y="22"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3850" />
-  <g
-     id="g3850">
-    <g
-       id="g3836">
-      <path
-         inkscape:connector-curvature="0"
-         id="path3854"
-         d="m 103.12951,473.43752 c -4.889381,-6.21585 -5.772542,2.36208 17.4072,-169.07198 13.53945,-100.13579 22.08696,-160.35204 22.87725,-161.16766 1.00047,-1.03252 84.91146,-31.23148 107.24808,-38.59781 l 5.16204,-1.70237 52.83796,19.60707 c 29.06088,10.78388 53.22556,19.992 53.6993,20.46248 0.47373,0.47048 11.84841,72.78282 25.27705,160.69409 26.23412,171.74297 25.23809,163.41209 20.28945,169.70326 L 405.85484,476 255.5,476 l -150.35484,0 -2.01565,-2.56248 z"
-         style="fill:#d3bc5f" />
-      <g
-         transform="translate(438.23729,15.016949)"
-         id="g3809">
-        <path
-           style="fill:#000000"
-           d="m -182.96875,123.78125 c -14.05509,1.60358 -23.82993,13.47522 -31.34375,24.40625 8.81814,-1.52214 18.31045,-2.56911 26.75,-4.46875 -2.44047,2.56645 0.71389,8.42376 -4.59375,8.40625 -11.34293,2.21071 -24.01131,-1.24044 -34.625,4.03125 -3.49025,4.68926 2.89839,9.70082 7.03125,11.09375 9.30395,4.14969 19.59965,2.02592 29.1875,0.8125 3.24297,0.67825 1.1333,6.74842 1.78125,9.25 0.25363,3.5379 -0.82919,9.03319 -5.65625,7.6875 -3.79666,-0.529 -5.37379,4.21209 -2.5,6.5 4.01322,4.45658 8.00776,10.17962 14.125,11.6875 -11.88819,1.65401 -24.27766,5.84478 -36.1875,2.65625 -1.37411,-0.80497 -5.31914,-1.9777 -1.71875,-3.03125 6.53051,-3.19585 16.01159,-8.25776 14.03125,-17.09375 -2.18073,-6.41068 -7.54072,-12.07595 -13.78125,-14.71875 -4.84236,-0.47525 -3.79301,5.65847 -2.25,8.375 1.34099,6.78065 -6.95013,10.14186 -11.25,13.6875 -9.51104,6.88173 -20.79941,11.42929 -29.40625,19.3125 -1.60841,4.55023 4.85243,3.87776 7.4375,3 8.56163,-1.00142 19.556,-5.97404 26.6875,1.0625 9.09912,12.15671 9.59356,28.50331 15.625,42.0625 1.94492,3.81781 6.8824,1.28323 7.125,-2.28125 3.29319,-12.78694 -0.21565,-25.98275 -1.59375,-38.78125 18.40492,0.30967 36.84108,-0.54635 54.90625,-4.125 -0.82977,8.05626 1.70395,17.14483 -1.65625,24.65625 -5.7408,5.214 -14.70445,3.25048 -21.84025,4.49321 -7.6275,0.95569 -16.72368,-0.18972 -23.03475,4.78804 -2.51798,4.85371 4.83622,6.53758 8.25,7.0625 11.38201,2.53536 24.145,0.33203 34.75,5.0625 -0.29052,4.69275 5.83581,5.81512 8.375,2.3125 9.34335,-9.32245 12.35965,-23.49275 13.28125,-36.375 0.92155,-11.05614 -6.48009,-21.41052 -16.9375,-24.59375 -9.17528,-2.83378 -20.49046,1.21251 -28.34375,1.875 7.66427,-5.6719 8.89355,-16.3851 9.75,-25.28125 1.09958,-4.14656 -2.25697,-12.43197 2.0625,-13.25 10.19164,-0.85223 21.40757,1.90953 31,-2.4375 5.67192,-3.88262 0.96218,-12.24316 -4.71875,-13.1875 -9.44347,-3.50058 -19.32598,0.22587 -28.25,2.8125 -6.45609,0.94094 -9.38721,-6.63632 -14.90625,-8.21875 6.03491,-1.83817 15.38531,-6.2172 13.46875,-14 -1.63885,-4.3066 -6.84909,-5.59894 -11.03125,-5.25 z m 22.125,47.09375 c -4.24274,2.83814 1.21936,7.58133 3.0625,10.25 11.34214,11.91303 23.14745,24.77242 38.8125,30.78125 5.63869,2.4922 11.37788,-2.28373 11.5625,-8.0625 1.83769,-8.4186 -7.70628,-12.80045 -13.53125,-16.1875 -12.7654,-6.1697 -25.4444,-13.24898 -39.15625,-16.9375 l -0.375,0 -0.375,0.15625 z m -13.40625,49.75 c -9.17077,0.54184 -19.25747,2.34764 -26.625,7.875 -3.06882,4.64337 3.88893,7.7701 7.5,8.71875 10.30974,2.45224 22.6822,1.93844 31.25,-4.8125 3.98917,-3.11492 2.24422,-9.57561 -2.59375,-10.59375 -3.04403,-1.02088 -6.31514,-1.2915 -9.53125,-1.1875 z m -16.5625,50.03125 c -3.79543,-0.4976 -5.52578,4.24877 -2.4375,6.4375 4.3396,4.48675 7.44953,14.72421 0.0937,17.9375 -11.33691,4.92852 -23.72576,0.35604 -35.4375,0.34375 -4.99912,2.00408 0.0917,7.14516 2.4375,9.15625 9.60306,9.39442 24.22169,4.15487 35.90625,6.5625 3.09678,2.18365 1.8455,8.85725 -2.53125,8.65625 -20.20695,2.26638 -40.70855,1.13317 -60.96875,-0.25 10.96566,20.34541 20.48562,41.61424 32.75,61.125 4.27942,2.25108 4.24499,-4.24581 3.75,-6.875 -0.80418,-12.21267 -3.73853,-24.26829 -5.75,-36.25 2.54287,-2.87809 7.80669,-1.2804 11.3125,-2.0625 7.54792,-0.12865 14.91136,-1.88684 22.25,-3.0625 2.33879,2.166 -2.08483,4.47707 -3.90625,4.9375 -7.23048,3.17099 -18.32618,1.42823 -22.75,9.1875 -1.00049,6.00313 7.10434,7.20203 11.5,7.4375 5.02504,0.73252 11.74473,-1.52926 15.78125,2.0625 -0.5025,4.01212 -6.77947,3.04981 -9.84375,3.375 -5.84148,0.7416 -14.48469,0.95365 -16.90625,7.4375 -0.12403,6.30509 8.19067,6.33896 12.75,7 4.51794,0.50346 10.42778,-0.62945 13.90625,2.4375 -14.78348,6.26031 -31.31041,7.12114 -47.15625,9.03125 -12.55778,1.41904 -25.17504,1.12702 -37.59375,-0.65625 -4.13285,-0.97802 -9.22082,2.72207 -6.46875,7.09375 4.31217,8.82398 13.6778,14.29453 23.5,14 19.07377,0.58661 36.10768,-9.72496 54.71875,-12 5.56344,-0.20473 14.93204,-5.6616 13.50785,3.77844 2.13052,9.67978 1.54067,20.83954 7.0234,29.34656 4.10141,3.14813 6.78275,-3.04009 7.28125,-6.3125 2.2287,-9.4122 3.56798,-19.08547 3.5,-28.78125 25.237,-0.4178 50.88544,-0.10604 75.125,7.53125 5.369957,1.19815 14.975858,2.50833 16.34375,-4.75 0.186944,-8.73914 -6.938615,-17.19123 -15.9375,-17.0625 -8.55218,-0.70265 -17.14807,-0.29378 -25.71875,-0.40625 2.12877,-13.47721 7.27522,-25.99967 12.59375,-38.46875 2.47198,-8.53846 -2.4224,-17.31553 -7.78125,-23.59375 -8.4306,-5.98427 -19.69859,-2.13798 -29.13732,-1.50676 -8.20431,0.41753 -16.91673,3.90922 -24.89393,2.16301 -1.02073,-3.0236 -1.36482,-8.9403 3.46875,-8.71875 11.21047,-1.70542 23.52931,1.29712 34.0625,-3.53125 3.36252,-4.79255 -2.44329,-10.75455 -7.09375,-12.09375 -9.13442,-3.90948 -19.07757,0.0587 -28.4375,-0.3125 -2.68115,-5.09284 1.61815,-13.88813 -4.59375,-17.6875 -5.49541,-2.6842 -12.21652,-2.4781 -18.21875,-2.65625 z m 44.09375,57.5 c 5.98629,0.53892 13.74519,-0.80599 18.34375,3.6875 3.03405,10.69853 -1.16564,22.02453 -2.8125,32.625 -0.52524,5.17966 -4.17063,9.84713 -9.75,9.875 -9.30016,1.20312 -19.31263,4.16222 -28.46875,1.46875 -3.37675,-2.49055 1.90741,-4.81135 4.125,-4.8125 8.96744,-2.31373 18.95012,-0.13852 27.53125,-3.65625 3.62413,-3.73353 -2.19232,-7.90825 -4.875,-10.15625 -8.04762,-6.12639 -18.65109,-1.12404 -27.46875,-1.84375 1.4554,-4.38524 7.95594,-3.92205 11.68212,-4.69736 6.50505,-1.09465 15.39383,1.2012 20.09913,-4.52139 2.17718,-7.03883 -5.36437,-13.72682 -12.1875,-13.375 -6.5455,-0.91271 -13.45941,2.31486 -19.625,1.125 1.79377,-3.92785 7.98321,-3.67138 11.64505,-4.77425 3.86194,-0.5895 7.81171,-0.8777 11.7612,-0.9445 z"
-           id="path3807"
-           inkscape:connector-curvature="0" />
-      </g>
-      <path
-         sodipodi:nodetypes="ccssssscccsscsssscc"
-         inkscape:connector-curvature="0"
-         id="path3852"
-         d="m 106.22326,474.32881 c -1.88347,-0.75723 -5.22392,-7.82288 -5.21893,-11.03897 0.009,-5.56047 42.74583,-318.43885 43.60888,-319.25989 C 145.79838,142.90247 253.39591,105 255.41143,105 c 2.41457,0 103.8433,37.82398 105.25079,39.24927 C 361.78325,145.38449 410,457.48717 410,463.60832 c 0,3.23135 -3.4682,9.97363 -5.53919,10.76835 -1.9354,0.74268 -296.38875,0.69543 -298.23755,-0.0479 z M 399.34318,454.25 c 0.62421,-1.01505 -45.09485,-301.36919 -46.15078,-303.19037 -0.45933,-0.7922 -22.62725,-9.44531 -49.26204,-19.22914 l -48.42691,-17.78878 -50.50172,17.54234 c -27.77595,9.64829 -51.13157,18.15982 -51.90138,18.91452 -0.98108,0.96181 -7.45987,46.46873 -21.66444,152.17073 -11.14563,82.93921 -20.05173,151.14329 -19.79133,151.56463 0.6126,0.99121 287.0891,1.00721 287.6986,0.0161 z"
-         style="fill:#161412" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/shogi/WhitePawn.svg b/themes/shogi/WhitePawn.svg
deleted file mode 100644 (file)
index 83fdc1a..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg4028"
-   version="1.1"
-   inkscape:version="0.48.4 r9943 custom"
-   width="512"
-   height="512"
-   sodipodi:docname="WhitePawn.svg">
-  <metadata
-     id="metadata4034">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs4032" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1680"
-     inkscape:window-height="921"
-     id="namedview4030"
-     showgrid="false"
-     inkscape:zoom="1.84375"
-     inkscape:cx="182.61953"
-     inkscape:cy="243.69577"
-     inkscape:window-x="0"
-     inkscape:window-y="22"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g4046" />
-  <g
-     id="g4046">
-    <g
-       id="g3977">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4050"
-         d="m 116.12951,473.43752 c -4.86391,-6.18346 -5.60943,1.59621 15.38776,-160.57459 16.56631,-127.9491 19.87154,-151.59809 21.36729,-152.88314 0.9732,-0.83612 24.48015,-9.76531 52.23767,-19.84264 l 50.46821,-18.32243 47.82955,18.50313 c 26.30626,10.17672 48.4166,19.10591 49.1341,19.84264 0.82062,0.84261 9.69082,57.49217 23.9119,152.71336 24.28574,162.61193 23.33281,154.29834 18.4045,160.56367 L 392.85484,476 255.5,476 l -137.35484,0 -2.01565,-2.56248 z"
-         style="fill:#d3bc5f" />
-      <g
-         transform="matrix(0.92627741,0,0,0.92627741,369.47954,29.852836)"
-         id="g3962">
-        <path
-           style="fill:#000000"
-           d="m -126.78125,141.09375 c -5.34946,0.98835 -11.78875,1.20293 -15.96875,4.875 -1.24144,4.84169 6.08278,5.06978 8.90625,6.875 9.69039,3.35353 8.89472,15.34684 11,23.5625 1.27182,3.74078 0.007,8.21933 -4.125,9.09375 -6.07287,2.25749 -12.47831,5.18286 -18.71875,6.09375 4.09378,-9.35276 -4.26635,-19.05311 -12.25,-23 -4.7811,-2.55738 -12.20289,-1.25822 -14.9375,3.5 0.14533,5.06332 7.35296,4.89987 8.8125,9.59375 5.38817,7.57021 3.65371,20.77221 14.15625,24.0625 6.96141,2.14157 12.53349,-4.07408 19,-4.625 4.20627,2.27316 7.37332,7.13639 8.65625,11.71875 -2.08251,5.29177 -8.52399,7.64237 -13.125,10.5 -11.41869,4.47775 -22.46211,-8.77967 -33.9375,-2.8125 -10.06789,4.45571 -20.27394,15.43929 -16.3125,27.1875 2.96246,7.00304 9.5415,14.53852 17.84375,13.875 13.06194,-2.80256 19.90831,-16.71167 32.25,-20.875 6.85241,0.71329 7.69195,10.5491 14.03125,12.625 6.62291,2.38276 10.14126,-5.91606 11.375,-11 2.38871,-6.25868 1.04522,-14.4178 5.75,-19.53125 4.404019,-1.5779 10.224886,-1.86446 14.5625,0.125 4.358318,10.47062 -2.413849,21.81067 -9.449375,29.3378 -14.255585,16.31963 -34.518165,25.31758 -51.706875,38.00595 -2.93748,1.5335 -1.93322,6.08751 1.78125,4.96875 19.17776,-3.60152 37.19224,-12.11969 54.199814,-21.51687 9.235415,-5.85665 19.665589,-14.05515 19.237686,-26.17063 0.267887,-7.44709 -0.178251,-14.89658 -0.25,-22.34375 7.249403,0.42089 15.3356,4.86307 22.375,1.625 5.279204,-4.92272 0.275461,-13.53133 -5.46875,-15.71875 -13.868705,-6.94098 -29.74557,-2.04754 -44.46875,-2.9375 -5.6543,-0.62113 -7.61594,-6.90117 -9.9375,-11.125 14.389033,-2.49116 29.64867,0.88716 43.78125,-3.15625 4.693731,-1.74294 2.628126,-7.9812 -1.5625,-8.78125 -11.408527,-4.82065 -24.762129,-1.95058 -36.25,-5.71875 -1.97971,-3.28259 1.94741,-8.07171 5.46875,-8.40625 8.043142,-2.72101 18.605123,-0.082 25.1875,-6.40625 2.12988,-4.8757 -5.158546,-6.35831 -8.53125,-6.53125 -6.726428,-1.36254 -14.60798,2.22557 -20.65625,-1.59375 -2.59545,-4.39077 -3.19344,-10.41917 -8.40625,-12.96875 -3.6457,-2.27568 -8.10047,-2.70238 -12.3125,-2.40625 z m 1.03125,89.4375 c 0.88308,1.57483 0.61645,7.35134 -1.1875,3.1875 -0.79474,-1.11042 0.0378,-2.68243 1.1875,-3.1875 z m -35.28125,0.4375 c 3.4756,0.2002 7.47337,1.33774 9.8125,3.84375 -5.19453,5.02103 -11.96911,9.10869 -18.9375,10.71875 -5.6829,-6.46581 1.39057,-15.02309 9.125,-14.5625 z m 21.9375,67.90625 c -5.02201,0.98469 -2.15363,6.38605 -2.21875,9.5625 -5.88154,11.43188 -17.61015,18.46669 -27.43873,26.33124 -6.06044,4.41115 -12.39593,8.45859 -18.06127,13.38751 11.34209,-0.87941 22.70691,-3.76417 33.34375,-7.0625 4.58358,5.52011 4.23986,13.95414 6.17521,20.76578 0.63849,4.51933 2.07319,9.62886 1.85604,13.89047 -15.82543,1.75211 -32.47753,1.69259 -48.21875,-0.78125 -3.84548,-1.24464 -12.28115,-3.12772 -12.1875,3.25 2.56098,7.43483 8.85358,13.49701 15.375,17.71875 11.9885,5.19253 24.88979,-1.4089 36.74601,-3.91937 33.33692,-8.83905 68.734516,-8.86221 102.529124,-2.5952 6.488667,0.1616 13.895375,2.64149 19.943616,-0.14168 3.10757,-5.1092 -2.542442,-10.76329 -5.6875,-14.40625 -8.027294,-9.10598 -21.576333,-5.24933 -32.15625,-4.90625 -7.1875,0.66667 -14.375,1.33333 -21.5625,2 2.826398,-9.37859 8.016231,-18.83353 7.34375,-28.78125 6.341706,-3.5199 16.459018,-1.82501 20.25,-9.0625 0.84933,-6.25593 -7.202739,-8.45217 -11.75,-10.21875 -12.945233,-3.83575 -24.81047,5.27695 -37.35013,6.90912 -8.32289,1.91505 -16.97568,2.85818 -25.49362,3.96588 5.17012,-5.98765 13.88827,-10.16856 15.75,-18.34375 -0.76696,-6.86035 -7.1206,-11.61208 -12.03125,-15.8125 -1.5337,-0.9557 -3.27739,-1.93686 -5.15625,-1.75 z m 37.0625,44.5625 c 4.01833,0.13309 1.6429,6.61499 2.40625,9.125 -0.63234,5.29341 0.311925,11.92874 -3.28125,16.09375 -8.67203,4.01035 -18.91765,5.77098 -28.40625,5.0625 2.85413,-8.82958 -1.9425,-17.63999 -2.5625,-26.25 5.93863,-1.42732 13.01761,-0.44961 19.19999,-1.99202 4.25321,-0.44446 8.37785,-1.77109 12.64376,-2.03923 z m -0.75,52.375 c -4.42228,0.0141 -3.6624,5.64408 -0.65625,7.34375 13.158539,9.94956 22.677379,24.47172 36.875,33.25 4.519321,3.1715 12.481575,3.32038 14.3125,-2.96875 3.263857,-9.30639 -2.60333,-19.00633 -10.78125,-23.34375 -11.877861,-6.60756 -24.854297,-11.86794 -38.25,-14.28125 -0.49264,0.008 -1.01295,-0.10543 -1.5,0 z m -44,0.6875 c -6.36456,1.60278 -4.33611,10.29797 -9.25,13.71875 -9.93246,10.65914 -25.19671,14.30307 -35.5,24.1875 -0.12682,5.6006 7.56309,4.28378 11.2124,3.88751 14.03001,-2.56522 28.79448,-5.54837 40.75635,-13.63751 7.39289,-5.67201 10.02749,-18.51315 1.65625,-24.59375 -2.55124,-1.77961 -5.61949,-3.74081 -8.875,-3.5625 z"
-           id="path3960"
-           inkscape:connector-curvature="0" />
-      </g>
-      <path
-         sodipodi:nodetypes="cssssscscsccsscssscc"
-         inkscape:connector-curvature="0"
-         id="path4048"
-         d="m 118.25037,473.75355 c -2.33713,-2.92851 -4.24865,-7.88368 -4.22559,-10.95389 0.0469,-6.24276 38.70369,-300.92812 39.58907,-301.792 1.78848,-1.74507 100.90004,-37.14258 102.91772,-36.75687 1.14692,0.21924 22.92459,8.44784 48.39483,18.28576 35.76845,13.81563 46.4965,18.35107 47.13096,19.92529 0.96071,2.38373 44.99924,297.835 44.94581,301.53816 -0.0198,1.375 -1.05547,4.3 -2.30141,6.5 l -2.26534,4 -136.59282,0.25355 c -108.52563,0.20145 -136.79839,-0.004 -137.59323,-1 z M 386.34335,454.25 c 0.97357,-1.58258 -41.03,-285.36531 -42.44648,-286.77514 -0.76828,-0.76467 -20.98416,-8.82814 -44.92419,-17.91882 l -43.52732,-16.52851 -46.91991,16.82536 c -25.80596,9.25395 -47.27681,17.46026 -47.71301,18.23624 -1.00671,1.79088 -36.82283,285.08503 -36.17506,286.13316 0.61732,0.99884 261.09159,1.02641 261.70597,0.0277 z"
-         style="fill:#181613" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/shogi/WhitePrince.svg b/themes/shogi/WhitePrince.svg
deleted file mode 100644 (file)
index a324566..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg3209"
-   version="1.1"
-   inkscape:version="0.48.4 r9939"
-   width="512"
-   height="512"
-   sodipodi:docname="crown_prince.svg">
-  <metadata
-     id="metadata3215">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3213" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="640"
-     inkscape:window-height="480"
-     id="namedview3211"
-     showgrid="false"
-     inkscape:zoom="0.4609375"
-     inkscape:cx="256"
-     inkscape:cy="256"
-     inkscape:window-x="570"
-     inkscape:window-y="30"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3219" />
-  <g
-     id="g3219">
-    <path
-       style="fill:#d3bc5f"
-       d="m 66.329882,485.22504 c -0.643564,-0.40938 -2.288017,-5.14678 -3.654339,-10.52754 L 60.191321,464.91429 89.111472,268.72705 C 106.48538,150.86672 118.52437,72.055907 119.26581,71.327774 120.91838,69.704877 252.96387,24 256,24 c 3.03257,0 135.08059,45.703879 136.73122,47.32481 0.73753,0.724251 12.82829,79.88079 30.15272,197.40566 l 28.9215,196.19658 -2.4826,9.77683 c -1.36543,5.37725 -3.00916,10.11178 -3.65272,10.52116 -1.52984,0.97316 -377.810405,0.97316 -379.340238,0 z"
-       id="path3225"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#f7170f"
-       d="M 67.333178,484.22708 C 65.921815,483.32921 62,468.43833 62,463.97734 62,457.20837 119.12192,73.459587 120.30658,72.269977 121.7086,70.86209 253.36053,25 256,25 258.64084,25 390.29226,70.862638 391.69127,72.269977 392.87246,73.458203 450,457.24317 450,463.99025 c 0,4.45094 -3.92392,19.3403 -5.33318,20.23683 -1.52552,0.97049 -375.808119,0.97049 -377.333642,0 z M 439.3472,454.24723 C 440.17677,452.90497 383.87612,79.540939 382.66699,78.366098 382.02515,77.742452 353.2625,67.742009 318.75,56.142891 L 256,35.053585 193.25,56.142891 c -34.5125,11.599118 -63.27584,21.599561 -63.91854,22.223207 -1.21285,1.176899 -57.513387,374.530522 -56.681084,375.877212 0.609925,0.98688 366.086904,0.99079 366.696824,0.004 z M 238.08308,435.52569 c -5.17931,-3.01055 -12.37931,-6.44111 -16,-7.62347 C 213.20507,425.00306 212.4497,424 219.14444,424 c 3.04944,0 10.33944,-0.29338 16.2,-0.65197 L 246,422.69607 l 0,-25.73896 0,-25.73896 -51.25,-0.39172 C 138.8686,370.39931 137.5,370.26002 137.5,365 c 0,-5.11832 1.47561,-5.26779 57.20938,-5.79521 L 246,358.71943 l 0,-16.65972 c 0,-11.62422 0.36271,-17.02242 1.2,-17.85971 1.51404,-1.51404 6.51436,-1.53618 12.05833,-0.0534 l 4.28703,1.1466 17.71548,-11.3966 c 9.74352,-6.26814 17.72082,-11.66161 17.72733,-11.9855 0.0163,-0.81101 -51.78526,-1.90703 -90.23817,-1.90927 -30.41536,-0.002 -31.83407,-0.0859 -33.75,-2.00184 -2.71325,-2.71325 -2.51383,-4.61705 0.70464,-6.72695 2.49326,-1.63448 7.51775,-1.81213 64.29175,-2.27305 l 61.58712,-0.5 3.95825,-3.11693 c 7.67246,-6.04169 12.04614,-7.63205 19.78633,-7.19469 l 7.00155,0.39562 4.75624,5.31031 c 6.84366,7.6409 7.59284,9.92085 4.72114,14.36769 -1.26886,1.96485 -3.43202,4.10669 -4.80702,4.75965 -2.41274,1.14576 -18.403,6.97979 -49.20326,17.95177 -8.08679,2.88076 -15.32233,5.75273 -16.07897,6.38216 -1.09428,0.9103 -1.28612,4.26423 -0.93775,16.39442 l 0.43797,15.25 33.05013,0 33.05014,0 5.09674,-3.84808 C 350.12565,349.33033 353.30037,348 359.48246,348 c 7.65996,0 11.53033,1.8872 15.8005,7.70433 8.33748,11.35793 7.01878,13.34312 -9.5825,14.42571 -6.16025,0.40172 -29.98796,0.7618 -52.95046,0.80018 L 271,371 l -0.0239,25.75 c -0.0131,14.1625 -0.42554,27.48099 -0.91648,29.59665 -1.13849,4.90611 -4.14027,8.07362 -10.50062,11.08034 -9.28999,4.39164 -10.89396,4.24964 -21.47596,-1.9013 z M 347.5,261.63914 C 316.07953,251.44376 289.92591,225.60624 276.50276,191.5 l -3.14855,-8 -4.42643,0 -4.42644,0 -5.75324,10.88115 c -7.36096,13.92185 -13.58254,22.26419 -24.22175,32.47825 -20.47946,19.66111 -44.60479,30.49888 -74.7163,33.56464 -5.60925,0.5711 -8.86709,-0.7528 -5.12343,-2.08203 6.40135,-2.27287 23.53726,-11.01375 30.53873,-15.57754 9.35754,-6.09956 23.81231,-19.42097 32.20687,-29.68162 C 223.07977,206.17986 235,186.62683 235,184.26601 c 0,-0.99857 -8.29139,-1.28181 -39.25,-1.34083 -21.5875,-0.0412 -45.65977,-0.38842 -53.49393,-0.77171 -12.46878,-0.61004 -14.49879,-0.95175 -16.28895,-2.7419 -2.50219,-2.5022 -1.73985,-5.13717 1.91926,-6.63375 1.69282,-0.69237 21.91355,-1.23739 57.39459,-1.547 50.06368,-0.43686 54.85867,-0.62323 55.68342,-2.16427 2.05677,-3.84312 5.18724,-24.86393 5.83816,-39.20274 L 247.5,114.5 252,114.25684 c 5.56608,-0.30077 14.5683,3.23561 17.16543,6.74316 1.47068,1.98624 2.04453,5.47982 2.79237,17 0.72298,11.13732 1.53226,16.22051 3.48962,21.91892 C 279.59022,171.97975 276.07195,171 315.23944,171 l 33.92947,0 5.66554,-4.38422 c 6.92721,-5.36055 8.55962,-6.20051 13.70505,-7.05198 7.00733,-1.15959 12.42616,0.71935 17.2105,5.9676 3.77952,4.14599 4.25,5.201 4.25,9.53016 0,3.99431 -0.39546,5.07972 -2.20325,6.04722 -1.568,0.83916 -16.41687,1.32307 -51.5,1.67831 -28.44207,0.288 -49.29675,0.88268 -49.29675,1.4057 0,3.43539 10.17523,17.546 20.97792,29.09136 16.79829,17.95314 36.86725,30.99588 59.52208,38.68315 4.43637,1.50535 8,3.28648 8,3.99845 0,1.11919 -17.25743,7.98342 -20,7.9551 -0.55,-0.006 -4.15,-1.03245 -8,-2.28171 z M 269.07797,255.75 C 267.11008,253.4125 261.5625,247.61726 256.75,242.8717 245.01811,231.30298 245.11753,229.97408 257.52326,232.53655 275.56212,236.26258 296,245.58936 296,250.09533 c 0,1.92545 -6.39011,6.84959 -10.86945,8.37585 -2.46776,0.84085 -6.28408,1.52882 -8.48072,1.52882 -3.47079,0 -4.46253,-0.55666 -7.57186,-4.25 z"
-       id="path3223"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#100f0c"
-       d="M 67.333178,484.22708 C 65.921815,483.32921 62,468.43833 62,463.97734 62,457.20837 119.12192,73.459587 120.30658,72.269977 121.7086,70.86209 253.36053,25 256,25 258.64084,25 390.29226,70.862638 391.69127,72.269977 392.87246,73.458203 450,457.24317 450,463.99025 c 0,4.45094 -3.92392,19.3403 -5.33318,20.23683 -1.52552,0.97049 -375.808119,0.97049 -377.333642,0 z M 439.3472,454.24723 C 440.17677,452.90497 383.87612,79.540939 382.66699,78.366098 382.02515,77.742452 353.2625,67.742009 318.75,56.142891 L 256,35.053585 193.25,56.142891 c -34.5125,11.599118 -63.27584,21.599561 -63.91854,22.223207 -1.21285,1.176899 -57.513387,374.530522 -56.681084,375.877212 0.609925,0.98688 366.086904,0.99079 366.696824,0.004 z"
-       id="path3221"
-       inkscape:connector-curvature="0" />
-  </g>
-</svg>
diff --git a/themes/shogi/WhiteRook.svg b/themes/shogi/WhiteRook.svg
deleted file mode 100644 (file)
index 462d42f..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg4709"
-   version="1.1"
-   inkscape:version="0.48.4 r9943 custom"
-   width="512"
-   height="512"
-   sodipodi:docname="WhiteRook.svg">
-  <metadata
-     id="metadata4715">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs4713" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="948"
-     inkscape:window-height="739"
-     id="namedview4711"
-     showgrid="false"
-     inkscape:zoom="0.65186406"
-     inkscape:cx="507.92388"
-     inkscape:cy="132.49283"
-     inkscape:window-x="461"
-     inkscape:window-y="154"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g4719" />
-  <g
-     id="g4719">
-    <g
-       id="g3468">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4723"
-         d="M 72.249679,484.75 C 71.702313,484.0625 70.254357,479.225 69.032,474 L 66.809531,464.5 93.29548,276.65929 C 107.86275,173.34689 120.16811,88.435496 120.64071,87.967294 121.92769,86.69231 253.12009,41 255.49386,41 c 2.32043,0 129.53764,45.664114 130.8678,46.974479 0.47391,0.466858 13.678,85.376091 29.34242,188.687181 L 444.18485,464.5 441.96519,474 c -1.22081,5.225 -2.6675,10.0625 -3.21487,10.75 -1.46182,1.83607 -365.038821,1.83607 -366.500641,0 z"
-         style="fill:#d3bc5f" />
-      <g
-         transform="matrix(1.0130742,0,0,1.0130742,-469.08553,-11.977055)"
-         id="g3447">
-        <path
-           style="fill:#000000"
-           d="m 711.86791,445.7882 c -1.10857,-1.8076 -3.16172,-12.5013 -4.56256,-23.76376 l -2.54697,-20.47718 -14.52586,2.41223 c -7.98923,1.32671 -24.03047,5.37268 -35.64721,8.99104 -11.61674,3.61837 -25.26399,6.59926 -30.32723,6.62425 -9.3062,0.0459 -27.75647,-11.79356 -27.75647,-17.8112 0,-1.7956 11.78727,-3.26473 26.19393,-3.26473 14.40666,0 26.9587,-1.23743 27.89343,-2.74986 2.8444,-4.60234 -7.85593,-49.58615 -14.0402,-59.02454 -7.29035,-11.12647 -3.98492,-14.69795 9.0496,-9.77798 5.55807,2.09795 13.81414,3.28081 18.34682,2.62858 4.53268,-0.65222 15.76572,-2.14131 24.9623,-3.30908 13.87766,-1.76215 16.72106,-3.36206 16.72106,-9.40855 0,-6.53749 -1.3551,-7.01646 -13.20084,-4.66592 -19.85149,3.93911 -29.25819,3.1143 -35.48381,-3.11132 -5.15635,-5.15634 -4.31196,-5.66223 10.08791,-6.04386 28.30467,-0.75015 36.87788,-3.97965 36.4941,-13.7472 -0.18839,-4.79477 -1.54595,-11.48994 -3.01679,-14.87816 -2.20888,-5.08833 -0.84592,-6.16039 7.832,-6.16039 13.23333,0 19.40006,7.1455 16.41862,19.02451 -2.61381,10.41428 -1.98224,10.61006 16.43099,5.09332 14.5594,-4.36211 24.2816,-0.33224 24.2816,10.06475 0,4.05903 -2.97,4.65694 -13.9324,2.80485 -17.77543,-3.00313 -28.31026,0.35067 -28.31026,9.0127 0,8.04506 8.29481,8.72474 35.43686,2.90382 22.4996,-4.8253 33.3661,-0.71786 40.03,15.13104 4.2078,10.00732 3.9875,12.21827 -2.0284,20.35523 -3.712,5.02065 -7.7045,15.01647 -8.8723,22.21293 l -2.1233,13.08446 14.7015,0 c 11.1055,0 16.9206,2.21915 23.7741,9.07257 14.535,14.53504 6.5506,18.11539 -24.3047,10.89872 -14.0638,-3.28934 -36.8858,-5.96034 -50.71551,-5.93552 -27.44149,0.0493 -29.20089,1.37383 -29.66589,22.33444 -0.29683,13.37928 -4.78192,26.06532 -7.59412,21.47981 z m -17.68008,-54.28174 c 8.14551,-0.0352 11.44072,-1.67883 11.44072,-5.71002 0,-4.23849 -2.15109,-5.12206 -8.55626,-3.51445 -8.4228,2.11397 -29.29743,-3.42644 -25.8602,-6.86366 0.9692,-0.96922 8.5889,-2.92759 16.93266,-4.35198 8.34375,-1.42439 15.90311,-4.78779 16.79859,-7.47421 1.25923,-3.7777 -0.93681,-4.37142 -9.69217,-2.62032 -11.13356,2.22672 -24.82485,-2.13371 -24.82485,-7.90621 0,-1.6186 7.9205,-3.99355 17.60111,-5.27773 12.70475,-1.68534 17.60112,-3.88126 17.60112,-7.89368 0,-4.66035 -2.7025,-5.12618 -16.72106,-2.88232 -9.19658,1.47205 -19.49324,2.54241 -22.88145,2.37858 -7.42535,-0.35903 -7.80429,6.72285 -1.89149,35.34977 3.75919,18.20022 5.12521,20.43789 11.44072,18.74114 3.94451,-1.05976 12.32016,-1.94848 18.61256,-1.97491 z m 80.3545,-28.19752 c 4.6291,-25.66983 3.7797,-30.49341 -5.9113,-33.56921 -12.0206,-3.81518 -45.40136,2.07457 -45.40136,8.01073 0,4.22434 2.85757,4.86769 13.82825,3.11342 10.14304,-1.62194 15.30281,-0.73671 19.36121,3.32176 9.2133,9.21323 6.4366,11.6714 -14.43017,12.77492 -13.12579,0.69412 -20.51364,2.72276 -21.57037,5.92303 -1.28891,3.9034 1.66244,4.37701 14.90259,2.39153 16.99325,-2.54829 26.63095,1.25852 26.63095,10.51896 0,3.46506 -4.761,4.10359 -19.36123,2.59669 -16.60095,-1.71336 -19.36123,-1.15231 -19.36123,3.93544 0,5.07806 3.40212,5.78355 23.59432,4.89275 l 23.59434,-1.04089 z M 696.53142,255.31665 c -9.00947,-9.68288 -9.05841,-9.97746 -1.83941,-11.07242 6.82677,-1.03547 7.41632,-3.35396 7.41632,-29.1657 0,-26.94997 -0.27389,-27.89423 -7.04045,-24.27288 -3.87224,2.07236 -7.04045,6.82666 -7.04045,10.5651 0,19.15078 -31.06626,52.79893 -48.74757,52.79893 -6.13699,0 -7.57601,-2.08781 -7.57601,-10.99171 0,-8.63256 0.98445,-10.17468 4.58676,-7.18503 3.37645,2.8022 7.51132,2.02814 15.6701,-2.93352 10.46743,-6.36562 24.46436,-26.86776 20.82642,-30.5057 -0.92321,-0.9232 -8.18549,1.64104 -16.13841,5.69832 -11.05236,5.63849 -17.09056,6.69519 -25.62331,4.48413 -18.44915,-4.78065 -14.93127,-9.87119 9.99563,-14.46416 32.31117,-5.95356 37.51204,-9.16584 35.62763,-22.00514 -1.18294,-8.05985 -0.27465,-10.15428 4.04669,-9.33156 3.06458,0.58344 6.07777,4.60583 6.69597,8.93865 0.94205,6.60252 2.22427,7.28899 7.92051,4.24046 5.39397,-2.88677 6.79649,-7.46192 6.79649,-22.17071 0,-10.19333 -1.87452,-20.40785 -4.1656,-22.69892 -6.94083,-6.94083 0.40679,-9.73701 10.52558,-4.00557 8.74348,4.95243 9.38391,6.83302 8.23263,24.17464 -1.18819,17.89754 -0.8747,18.70673 6.49993,16.77822 14.38098,-3.76071 17.62992,0.35147 17.62992,22.31412 0,29.6202 10.426,40.35067 37.84244,38.9475 6.8897,-0.35261 7.9344,-2.35244 8.0275,-15.36632 0.092,-12.85479 0.6552,-13.96981 4.001,-7.9205 2.1417,3.87225 6.8906,10.35841 10.5531,14.41371 12.9653,14.35553 1.6811,23.361 -29.2724,23.361 -29.74614,0 -45.23253,-17.81566 -45.23253,-52.03589 0,-11.42789 -1.30528,-15.8154 -4.40028,-14.791 -3.03102,1.00323 -4.94799,13.87752 -6.1604,41.37296 -1.95381,44.30934 -4.70338,48.90119 -19.6578,32.82899 z m 58.38031,-50.01954 c 0,-5.54679 13.579,-6.83877 20.0776,-1.91029 5.7,4.32281 5.0215,4.80708 -6.8768,4.908 -7.2605,0.0616 -13.2008,-1.2874 -13.2008,-2.99771 z m -1.9674,-23.40397 c 7.5926,-5.74279 21.6085,-6.89102 24.6208,-2.01703 2.5801,4.17462 -6.493,7.43597 -20.3012,7.29736 -10.56844,-0.1061 -10.79477,-0.38275 -4.3196,-5.28033 z M 644.71342,170.18909 c 16.2178,-10.39302 24.29225,-23.65524 18.58722,-30.52938 -5.90923,-7.12019 -2.31114,-10.06256 8.87259,-7.25562 11.87966,2.98161 14.49879,10.57053 7.39167,21.41736 -7.54722,11.51851 -19.0792,18.79429 -33.96417,21.42871 l -12.13676,2.14804 z m 99.95695,-11.38257 c -12.58202,-5.03071 -17.68339,-13.7633 -17.80852,-30.48484 -0.12198,-16.30115 -3.19435,-17.98027 -17.71307,-9.68062 -12.79931,7.31675 -29.46616,6.52309 -36.96235,-1.76011 -6.24487,-6.9005 -6.14854,-7.04045 4.84579,-7.04045 6.16952,0 20.88377,-3.25639 32.69834,-7.23643 28.96459,-9.757461 32.20008,-8.072369 29.28582,15.25251 -1.92785,15.43003 -1.15549,20.04536 4.52937,27.06587 6.03627,7.45448 8.26068,8.06021 18.65348,5.07959 8.0245,-2.30141 12.5762,-6.17034 14.2261,-12.09224 1.4393,-5.16592 2.5689,-6.28343 2.777,-2.74728 0.193,3.27843 3.5978,8.23496 7.5661,11.01451 6.6531,4.65996 6.7706,5.49837 1.5087,10.76028 -6.3608,6.3608 -29.8544,7.36786 -43.60676,1.86921 z M 749.42412,132.61 c 7.54601,-5.70755 19.56841,-6.95153 19.56841,-2.02478 0,3.98954 -8.8909,7.45001 -18.76903,7.30512 -7.46868,-0.10955 -7.48585,-0.22294 -0.79938,-5.28034 z m 1.47727,-22.51602 c 9.14494,-8.02634 16.42644,-9.31523 19.99604,-3.53949 3.2946,5.33069 0.7982,6.85721 -14.6695,8.97037 l -13.63703,1.86306 z"
-           id="path3445"
-           inkscape:connector-curvature="0"
-           sodipodi:nodetypes="sscsssssssssssssssssssssssssscsssssscssssssssssssscsssssssssssscsssssssssssssssssssssssssssssssssssssssssssssscsssssssssssccssssssssscs" />
-      </g>
-      <path
-         sodipodi:nodetypes="sssscssssscsssscc"
-         inkscape:connector-curvature="0"
-         id="path4721"
-         d="M 74.333178,484.22708 C 72.934299,483.33715 69,468.45528 69,464.05381 69,458.46366 121.13145,90.54654 122.08661,89.395639 122.59762,88.779912 152.8305,77.851437 189.27078,65.110137 l 66.25507,-23.165999 63.98708,23.071644 c 35.19289,12.689404 64.52241,23.614473 65.17672,24.277931 C 385.82109,90.440973 442,457.97084 442,464.22559 c 0,4.26797 -3.9627,19.12963 -5.33318,20.00149 -1.52551,0.97048 -360.808133,0.97048 -362.333642,0 z M 431.35399,454.23624 C 432.29606,452.71195 376.2006,96.742012 374.89076,95.932485 373.06417,94.803592 257.19604,54.005373 255.72519,53.973206 254.27707,53.941537 134.00578,94.760359 132.12832,95.920693 130.801,96.741021 78.656683,452.63548 79.632479,454.21436 c 0.626082,1.01302 351.095481,1.03483 351.721511,0.0219 z"
-         style="fill:#12100e" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/xiangqi/BlackAdvisor.svg b/themes/xiangqi/BlackAdvisor.svg
deleted file mode 100644 (file)
index 7ad4814..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg3076"
-   version="1.1"
-   inkscape:version="0.48.2 r9819"
-   width="128.36652"
-   height="128.51732"
-   sodipodi:docname="BlackAdvisor.svg">
-  <metadata
-     id="metadata3082">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3080" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1027"
-     inkscape:window-height="709"
-     id="namedview3078"
-     showgrid="false"
-     inkscape:zoom="3.8688525"
-     inkscape:cx="120.52961"
-     inkscape:cy="87.755529"
-     inkscape:window-x="40"
-     inkscape:window-y="37"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3184"
-     inkscape:snap-page="false"
-     borderlayer="false"
-     fit-margin-top="3"
-     fit-margin-left="3"
-     fit-margin-right="3"
-     fit-margin-bottom="3" />
-  <g
-     id="g3269"
-     transform="translate(3.1777898,3.1736296)" />
-  <g
-     inkscape:groupmode="layer"
-     id="layer2"
-     inkscape:label="LAYER1"
-     style="display:inline"
-     transform="translate(3,3.5173231)" />
-  <g
-     id="g3184"
-     transform="translate(-42.38983,2.0677966)">
-    <path
-       style="fill:#ffeeaa;fill-opacity:1"
-       d="m 98.398746,122.78721 c -3.51808,-0.35291 -5.77824,-0.76286 -8.46883,-1.53609 -16.19139,-4.65314 -30.84645,-17.15535 -38.52237,-32.863373 -3.045953,-6.233265 -4.609303,-11.570118 -5.217493,-17.811121 -0.56839,-5.832564 -0.29669,-16.300125 0.53671,-20.677966 2.543103,-13.358775 11.470073,-27.360737 22.963913,-36.018927 4.40771,-3.320282 8.08048,-5.4268714 13.59618,-7.7983694 7.95784,-3.421504 13.59489,-4.517449 23.235704,-4.517449 17.35804,0 30.81588,5.611758 43.2445,18.0324444 12.13362,12.125875 17.64287,25.43279 17.64409,42.617076 0.001,13.193558 -2.7857,23.03275 -9.30995,32.872094 -9.25488,13.957451 -24.79651,24.605551 -39.92914,27.356821 -2.45223,0.44583 -16.35035,0.68823 -19.773314,0.34486 l 0,0 z"
-       id="path3194"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#8c8c8c;fill-opacity:1"
-       d="M 96.713985,122.33547 C 91.735548,121.5021 84.079618,118.7104 77.692448,115.39937 58.966998,105.69233 47.01225,86.709802 45.968669,65.026311 44.763014,39.975255 57.446568,18.487095 79.826338,7.6654802 c 19.267247,-9.3165684 37.646542,-8.8138904 57.113852,1.562079 17.8946,9.5377228 30.7738,31.6346228 30.7738,52.7987518 0,22.754951 -13.19921,43.980049 -33.84589,54.426149 -10.40723,5.2655 -26.04819,7.74209 -37.154115,5.88301 z m 24.414565,-5.2873 c 10.83552,-2.77127 16.91023,-6.31873 25.68868,-15.0015 11.55325,-11.427318 16.89676,-24.083539 16.89676,-40.020359 0,-15.93682 -5.34351,-28.593044 -16.89676,-40.020365 C 138.03878,13.323182 131.96407,9.7757192 121.12855,7.0044592 110.71221,4.3404078 100.92138,4.4525888 90.915748,7.3506302 80.486218,10.371451 72.973618,14.985495 65.366388,23.042388 c -10.71967,11.353305 -15.65241,23.638804 -15.65241,38.983923 0,15.345119 4.93274,27.630621 15.65241,38.983919 14.62369,15.4881 34.998912,21.34829 55.762162,16.03794 z M 95.213985,115.85604 C 76.059868,112.2298 57.848488,94.419552 53.219548,74.786579 c -4.46129,-18.921915 0.88985,-37.387529 14.88368,-51.360342 21.88817,-21.8553012 55.355532,-21.8553012 77.210832,0 21.9653,21.965294 21.9653,55.234854 0,77.200143 -13.47851,13.47851 -31.08287,18.82997 -50.100075,15.22966 z m 21.066345,-3.90543 C 135.29652,108.50319 151.71314,92.858772 156.17421,73.933243 163.08957,44.595651 143.69854,16.155393 113.81016,11.799118 92.980308,8.7631362 71.668338,19.383805 61.995168,37.620757 41.739909,75.808289 73.764708,119.6582 116.28033,111.95061 z m -36.974022,-23.822278 -1.9023,-2.10202 12.65498,0 12.655002,0 0,-14.086028 0,-14.086028 -13.406232,0.286301 c -13.13008,0.280403 -16.59378,-0.395207 -16.59378,-3.236691 0,-0.482655 6.75,-0.877555 15,-0.877555 l 15.000012,0 0,-13 c 0,-7.15 0.24292,-13 0.53983,-13 0.29692,0 2.32192,0.909146 4.5,2.020324 3.69177,1.883398 5.25102,3.979676 2.96017,3.979676 -0.6,0 -1,4 -1,10 l 0,10 9.68554,0 c 8.5827,0 9.95039,-0.248805 12.01145,-2.18507 l 2.3259,-2.18507 3.48855,3.381237 c 1.91871,1.85968 3.48856,3.742962 3.48856,4.18507 0,0.442108 -6.975,0.803833 -15.5,0.803833 l -15.5,0 0,14 0,14.000001 7.41659,0 c 6.78589,0 7.57362,-0.21556 9.26307,-2.5348 l 1.84647,-2.534806 3.93988,4.034806 3.93988,4.0348 -23.06338,0 c -12.68485,0 -25.039892,0.27091 -27.455632,0.60202 -3.65706,0.50126 -4.71066,0.25018 -6.29456,-1.5 z"
-       id="path3188"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#000000;fill-opacity:1"
-       d="M 97.000391,122.29175 C 83.73671,119.91612 71.93839,113.52198 62.479558,103.58307 44.895301,85.106329 40.974349,59.066741 52.22996,35.514074 59.340861,20.634324 76.17881,7.170458 92.637475,3.203649 c 13.534875,-3.26213101 31.524065,-0.669103 43.808285,6.31469 7.27849,4.137948 16.76199,13.112047 21.37405,20.225958 12.34835,19.046825 12.34835,46.109997 0,65.156821 -4.61637,7.120572 -14.10365,16.095172 -21.37405,20.219042 -10.95804,6.21555 -27.74396,9.26741 -39.445379,7.17159 z m 27.527219,-5.62553 c 13.22911,-4.33825 21.73526,-10.70593 29.48423,-22.071812 10.67138,-15.652355 12.97976,-33.884397 6.59803,-52.11262 -2.50384,-7.15174 -9.8749,-18.023051 -15.69186,-23.14334 C 125.66685,2.392903 96.344815,0.29981599 74.941455,14.343332 63.850805,21.620309 54.864161,33.823748 51.02356,46.822708 c -2.376826,8.044645 -2.376826,22.955355 0,31 9.363404,31.691532 42.275875,49.084252 73.50406,38.843512 z M 98.588071,116.29559 C 71.602532,112.15814 52.185227,89.573148 52.185227,62.322708 c 0,-15.022472 5.487806,-28.347404 15.85603,-38.5 21.691668,-21.240546 55.855423,-21.240478 77.096053,1.53e-4 21.27441,21.274409 21.27441,55.725285 0,76.999699 -12.03445,12.03444 -30.00854,18.00906 -46.549239,15.47303 z m 20.021589,-4.05229 c 12.00317,-2.76585 24.20462,-11.49937 31.2227,-22.348462 10.588,-16.367778 10.588,-38.776482 0,-55.14426 -9.73544,-15.049808 -25.1824,-23.42787 -43.19489,-23.42787 -13.495465,0 -24.518214,4.171739 -34.349165,13 -18.392037,16.516175 -22.220533,44.896287 -8.845724,65.57213 6.824658,10.550102 17.841499,18.764122 29.299524,21.845352 6.349736,1.70754 19.528255,1.96386 25.867555,0.50311 z m -39.416498,-23.859051 -1.865666,-2.06154 13.154987,0 13.154987,0 0,-14.04699 0,-14.046989 -14.024057,0.149468 c -10.49323,0.111836 -14.435435,-0.191045 -15.658003,-1.203011 -1.392578,-1.15269 0.642135,-1.426339 13.774058,-1.852479 l 15.408002,-0.5 -0.0957,-13.202606 c -0.0896,-12.359845 0.0178,-13.141852 1.68268,-12.250842 0.97811,0.523469 2.99307,1.413584 4.47768,1.978032 2.55125,0.969986 2.60764,1.127544 1.02809,2.872919 -1.3616,1.50456 -1.61761,3.583901 -1.38197,11.224574 l 0.28922,9.377923 9.45002,0.290173 c 8.37549,0.257178 9.7817,0.04496 12.36694,-1.866394 l 2.91691,-2.156567 3.6164,3.616394 3.61639,3.616394 -16.23333,0 -16.23333,0 0,14 0,14.000001 7.68554,0 c 6.54522,0 8.03347,-0.32685 10.03044,-2.2029 l 2.34488,-2.202906 3.7029,3.702906 3.7029,3.702899 -25.48333,0.0136 c -14.015829,0.008 -26.401024,0.26021 -27.522651,0.56154 -1.309514,0.35182 -2.706983,-0.18987 -3.904987,-1.513649 z"
-       id="path3186"
-       inkscape:connector-curvature="0" />
-  </g>
-</svg>
diff --git a/themes/xiangqi/BlackCanon.svg b/themes/xiangqi/BlackCanon.svg
deleted file mode 100644 (file)
index f056bdb..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg3076"
-   version="1.1"
-   inkscape:version="0.48.2 r9819"
-   width="128.36653"
-   height="128.51732"
-   sodipodi:docname="BlackCanon.svg">
-  <metadata
-     id="metadata3082">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3080" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1234"
-     inkscape:window-height="802"
-     id="namedview3078"
-     showgrid="false"
-     inkscape:zoom="2.39"
-     inkscape:cx="81.443285"
-     inkscape:cy="74.713354"
-     inkscape:window-x="133"
-     inkscape:window-y="0"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3154"
-     fit-margin-top="3"
-     fit-margin-left="3"
-     fit-margin-right="3"
-     fit-margin-bottom="3" />
-  <path
-     style="fill:#ffeeaa;fill-opacity:1"
-     d="M 56.62332,124.67739 C 45.6593,123.83655 35.86634,119.71479 26.052108,111.81027 14.512428,102.51605 5.7589784,87.834512 3.9339484,74.713012 c -0.5805,-4.17366 -0.57802,-16.819614 0.004,-21.005049 2.32675,-16.7287 15.1186096,-34.24796 31.3463416,-42.930773 8.1644,-4.3684477 15.14182,-6.4602997 23.22175,-6.9619557 12.44537,-0.772692 23.2033,1.151541 32.40385,5.795964 11.20832,5.6579457 22.40834,16.8562897 28.06373,28.0595527 7.49181,14.841204 7.79449,36.246391 0.73046,51.659141 -5.24564,11.445278 -14.95031,21.768868 -26.91051,28.626738 -10.52981,6.03768 -20.62307,7.9131 -36.17037,6.72076 z"
-     id="path3163"
-     inkscape:connector-curvature="0" />
-  <g
-     inkscape:groupmode="layer"
-     id="layer2"
-     inkscape:label="LAYER1"
-     style="display:inline"
-     transform="translate(2.9999998,3.5173203)" />
-  <g
-     id="g3154"
-     transform="translate(46.861925,-40.585774)">
-    <path
-       style="fill:#8c8c8c;fill-opacity:1"
-       d="m 7.4622287,164.98904 c -4.97844,-0.83337 -12.63437,-3.62507 -19.0215397,-6.93609 -18.725442,-9.70704 -30.680194,-28.68956 -31.723775,-50.37306 -1.205655,-25.051052 11.477895,-46.539212 33.8576647,-57.360827 19.26725,-9.316568 37.6465403,-8.81389 57.1138503,1.562079 17.894598,9.537723 30.773798,31.634623 30.773798,52.798748 0,22.75496 -13.19921,43.98005 -33.845888,54.42614 -10.40724,5.2655 -26.04819,7.74209 -37.1541103,5.88301 z m 24.4145603,-5.2873 c 10.83552,-2.77126 16.91023,-6.31872 25.68868,-15.00149 11.553248,-11.42731 16.896758,-24.08354 16.896758,-40.02036 0,-15.936816 -5.34351,-28.59304 -16.896758,-40.020361 -8.77845,-8.682764 -14.85316,-12.230227 -25.68868,-15.001487 -10.41634,-2.664051 -20.20717,-2.55187 -30.2128003,0.346171 -10.42953,3.020821 -17.9421297,7.634865 -25.5493557,15.691758 -10.719666,11.353305 -15.652408,23.638804 -15.652408,38.983919 0,15.34512 4.932742,27.63062 15.652408,38.98393 14.6236857,15.48808 34.998906,21.34827 55.762156,16.03792 z M 5.9622287,158.50961 c -19.1541097,-3.62623 -37.3654957,-21.43648 -41.9944347,-41.06945 -4.461291,-18.921913 0.889847,-37.387527 14.883677,-51.36034 21.88817767,-21.855301 55.355528,-21.855301 77.210828,0 21.965298,21.965294 21.965298,55.23485 0,77.20015 -13.47851,13.4785 -31.08287,18.82995 -50.1000703,15.22964 z m 21.0663403,-3.90542 c 19.01619,-3.44742 35.432808,-19.09184 39.893878,-38.01736 6.91536,-29.337596 -12.475668,-57.777854 -42.364048,-62.134129 -20.8298503,-3.035982 -42.14182,7.584687 -51.814982,25.821639 -20.255263,38.18753 11.769542,82.03743 54.285152,74.32985 z m -8.91136,-20.75304 c -1.40384,-1.55123 -1.65979,-4.4724 -1.68666,-19.25 l -0.0317,-17.421256 -2.05548,2.75515 c -1.13052,1.515336 -2.46626,2.501276 -2.96832,2.190986 -0.53145,-0.32846 -0.91549,4.57867 -0.91917,11.74485 l -0.006,12.30901 -2.9936803,1.70349 -2.99367,1.70349 0,-2.95349 c 0,-2.77907 -0.23622,-2.95349 -4.00000003,-2.95349 -3.99408997,0 -3.99999997,0.006 -3.99999997,3.96482 0,3.77314 -1.79189,6.03518 -4.78079,6.03518 -0.52477,0 -0.72722,-5.4157 -0.47662,-12.75 l 0.43566,-12.75 -4.0037897,4.5 c -3.28631,3.69361 -4.12325,4.19839 -4.67046,2.81686 -0.39877,-1.00679 0.34703,-3.41784 1.85595,-6 2.70362,-4.62659 8.0003597,-19.854853 9.0947697,-26.147692 l 0.66623,-3.830835 -4.06969,0.293841 C -12.608051,80.037468 -14.071331,79.590482 -15.768911,77.8929 l -2.213008,-2.213006 11.3934777,0 c 9.29938,0 11.73716,-0.311025 13.26335,-1.692207 1.7764,-1.60762 2.05443,-1.507648 5.5620803,2 l 3.6922,3.692207 -7.5742003,0 -7.57420003,0 -1.28663,5.75 c -0.70764997,3.1625 -1.50239997,6.3125 -1.76611997,7 -0.63372,1.652065 6.87668,1.707806 8.52124,0.06324 0.91568,-0.915675 1.73738,-0.669474 3.5973,1.077831 l 2.4105403,2.264588 3.12802,-8.111221 c 1.72041,-4.461168 3.64391,-10.346192 4.27445,-13.077828 0.63054,-2.731635 1.49342,-4.96661 1.91752,-4.96661 0.4241,0 2.34059,0.926027 4.25887,2.057837 l 3.48777,2.057837 -2.50934,3.692163 -2.50934,3.692163 8.20308,0.292452 c 6.28137,0.223939 8.60037,-0.0671 9.89899,-1.242326 1.54214,-1.395624 1.9471,-1.272585 4.46645,1.357043 2.34919,2.452028 2.53621,3.022959 1.22972,3.754106 -1.26867,0.709983 -1.5938,3.730638 -1.8408,17.101891 -0.16499,8.93178 -0.0217,16.23898 0.31835,16.23822 0.34008,-7.6e-4 0.86444,1.83354 1.16525,4.07623 0.30081,2.24269 1.29593,4.90526 2.21137,5.91681 1.2778,1.41195 1.42009,2.2958 0.61253,3.80474 -1.56665,2.92731 -3.065,3.20083 -17.53428,3.20083 -11.57921,0 -13.47336,-0.23219 -14.91822,-1.82874 z m 24.67065,-3.92126 c 0.24401,-0.4125 0.7574,-2.64638 1.14086,-4.96418 l 0.6972,-4.21419 -3.14418,1.56852 c -1.7293,0.86269 -3.22863,1.40908 -3.33184,1.21419 -1.85124,-3.4953 -2.89831,-4.48329 -5.5605,-5.2468 -2.07573,-0.59531 -3.36728,-1.71599 -3.75418,-3.25753 -0.47406,-1.88881 -1.25542,-2.35001 -3.9814,-2.35001 l -3.39159,0 0,8.33334 c 0,4.58333 0.3,8.63333 0.66666,9 0.92135,0.92134 20.11043,0.84394 20.65897,-0.0833 z m -38.3256303,-21.25 0,-10.999996 -4.00000003,0 -3.99999997,0 0,10.999996 0,11 3.99999997,0 4.00000003,0 0,-11 z m 36.0000003,-8.999996 0,-15 -8.5147,0 -8.5147,0 -1.98134,3.25 c -1.08973,1.7875 -1.83564,3.7 -1.65758,4.25 0.56278,1.738301 8.69327,1.787391 10.59761,0.06399 1.57877,-1.428762 1.93014,-1.337723 4.1478,1.074685 1.65988,1.805652 2.02925,2.776187 1.17291,3.081839 -0.85347,0.304619 -1.25,2.894103 -1.25,8.162822 0,4.66852 -0.47401,8.19067 -1.2,8.91666 -0.93334,0.93334 -0.26667,1.2 3,1.2 l 4.2,0 0,-14.999996 z m -12,3.499996 c 0,-5.44444 -0.0303,-5.499996 -3,-5.499996 -2.9697,0 -3,0.05556 -3,5.499996 0,5.44445 0.0303,5.5 3,5.5 2.96969,0 3,-0.0556 3,-5.5 z"
-       id="path3158"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#000000;fill-opacity:1"
-       d="M 7.7486399,164.94532 C -5.5150501,162.56969 -17.31337,156.17555 -26.7722,146.23664 -44.35645,127.7599 -48.27741,101.72031 -37.02179,78.167647 -29.91089,63.287897 -13.07295,49.82403 3.3857199,45.857221 16.9206,42.59509 34.90979,45.188118 47.19401,52.171911 54.4725,56.30986 63.956,65.283959 68.56806,72.39787 c 12.34835,19.046825 12.34835,46.11 0,65.15683 -4.61637,7.12056 -14.10365,16.09516 -21.37405,20.21903 -10.95804,6.21555 -27.74396,9.26741 -39.4453801,7.17159 z M 35.27586,159.31979 C 48.50497,154.98154 57.01112,148.61386 64.76009,137.24798 75.43147,121.59563 77.73985,103.36358 71.35812,85.135361 68.85428,77.983621 61.48322,67.11231 55.66626,61.992021 36.4151,45.046475 7.0930599,42.953388 -14.3103,56.996905 c -11.09065,7.276977 -20.07729,19.480416 -23.91789,32.479376 -2.37683,8.044645 -2.37683,22.955359 0,30.999999 9.3634,31.69153 42.2758699,49.08425 73.50405,38.84351 z M 9.3363199,158.94916 C -17.64922,154.81171 -37.06653,132.22673 -37.06653,104.97628 c 0,-15.022471 5.48781,-28.347403 15.85603,-38.499999 21.69166987,-21.240547 55.85543,-21.240479 77.09606,1.53e-4 21.27441,21.274409 21.27441,55.725286 0,76.999696 -12.03445,12.03444 -30.00854,18.00906 -46.5492401,15.47303 z M 29.35791,154.89687 c 12.00317,-2.76585 24.20462,-11.49936 31.2227,-22.34846 10.588,-16.36778 10.588,-38.776481 0,-55.144259 -9.73544,-15.049808 -25.1824,-23.42787 -43.19489,-23.42787 -13.4954701,0 -24.5182201,4.171739 -34.34917,13 -18.39204,16.516175 -22.22053,44.896289 -8.84572,65.572129 6.824654,10.5501 17.8414899,18.76412 29.2995199,21.84535 6.34974,1.70754 19.5282601,1.96386 25.8675601,0.50311 z M 18.46178,134.05235 c -1.94445,-1.94445 -2.07606,-3.19402 -2.07606,-19.71093 l 0,-17.634856 -2.1204,2.695647 c -1.17278,1.490949 -2.73695,2.459049 -3.5,2.166239 -1.1278501,-0.43279 -1.3796001,1.7714 -1.3796001,12.07897 0,10.83524 -0.24611,12.7952 -1.75,13.93682 -2.54988,1.93563 -3.25,1.69695 -3.25,-1.10796 0,-2.25 -0.4,-2.5 -4.00000003,-2.5 -3.97212997,0 -3.99999997,0.0268 -3.99999997,3.83949 0,3.12503 -0.46521,4.05144 -2.5,4.97856 l -2.5,1.13908 0,-13.10718 0,-13.10717 -3.9003099,4.37861 c -2.14516,2.40824 -4.18336,4.10292 -4.52931,3.76596 -0.34596,-0.33696 0.92741,-3.71196 2.82972,-7.5 4.14337,-8.25067 7.3127599,-17.742128 8.2278099,-24.640059 l 0.66997,-5.050541 -4.2607,0.681315 c -4.1081399,0.656918 -7.0371799,-0.383853 -7.0371799,-2.500509 0,-0.482655 5.02706,-0.877555 11.1712499,-0.877555 8.50116,0 11.5654,-0.35669 12.82027,-1.492326 1.4808,-1.340108 1.94142,-1.187107 4.5158301,1.5 l 2.86683,2.992326 -6.6280801,0 c -3.64544,0 -6.90285,0.444597 -7.23868003,0.987993 -0.81538,1.319314 -3.50741997,11.727591 -3.50741997,13.560797 0,2.022686 7.33619,1.955967 9.02764,-0.0821 1.12867,-1.359967 1.53504,-1.286701 3.5945101,0.648072 l 2.32198,2.181383 2.00425,-4.67572 c 1.10233,-2.571646 3.19734,-8.502398 4.65557,-13.179449 2.56103,-8.214111 2.72361,-8.457627 4.77369,-7.150104 1.16729,0.744493 2.66831,1.674945 3.33559,2.067669 0.9041,0.532106 0.71395,1.532897 -0.74627,3.927752 -1.07772,1.76754 -1.96117,3.551208 -1.96323,3.963708 -0.002,0.4125 3.67333,0.75 8.16752,0.75 5.8564,0 8.64035,-0.424517 9.82709,-1.498506 1.48599,-1.344799 1.89377,-1.245233 3.97552,0.970685 1.70362,1.813424 2.03892,2.808951 1.26253,3.748506 -1.20969,1.463906 -2.15338,33.781663 -0.98639,33.780233 0.4125,-5.1e-4 0.75,1.79908 0.75,3.99908 0,2.73685 0.66666,4.66667 2.11111,6.11111 l 2.11111,2.11112 -2.13603,2.13888 c -1.93137,1.93396 -3.41983,2.17013 -15.53505,2.46496 -12.46544,0.30335 -13.54366,0.18142 -15.47508,-1.75 z m 24.88875,-5.01032 c 0.56935,-1.06385 1.03519,-3.27476 1.03519,-4.91314 0,-2.84954 -0.12192,-2.93286 -2.80784,-1.91904 -2.45618,0.92711 -3.13933,0.72836 -5.45455,-1.58686 -1.45569,-1.45569 -3.35181,-2.64671 -4.2136,-2.64671 -0.86179,0 -2.07948,-1.125 -2.70597,-2.5 -0.88401,-1.94019 -1.88686,-2.5 -4.47856,-2.5 l -3.33948,0 0,8.33333 c 0,4.58334 0.3,8.63334 0.66666,9.00001 0.36667,0.36666 5.07584,0.66666 10.46482,0.66666 8.66369,0 9.918,-0.22395 10.83333,-1.93425 z m -38.9648101,-19.56575 0,-11.499999 -4.00000003,0 -3.99999997,0 0,11.499999 0,11.5 3.99999997,0 4.00000003,0 0,-11.5 z m 36.0000001,-9 0,-15.499999 -8.81479,0 -8.81479,0 -1.68521,3.533927 c -0.92687,1.94366 -1.68521,3.96866 -1.68521,4.5 0,1.400694 9.37793,1.18814 10.81111,-0.245038 0.94814,-0.948148 1.68878,-0.733435 3.41111,0.988889 1.72232,1.722324 1.93703,2.462963 0.98889,3.411111 -0.74112,0.74112 -1.21111,4.23802 -1.21111,9.01111 0,5.50313 -0.36809,7.83877 -1.25,7.93164 -1.15467,0.1216 4.1421,1.43575 7,1.73672 0.95189,0.10025 1.25,-3.56482 1.25,-15.36836 z m -12,2.93664 0,-6.563356 -3.25,0.313359 c -3.1294,0.30173 -3.2615,0.494184 -3.55982,5.186297 -0.41031,6.4537 0.17097,7.62706 3.77843,7.62706 l 3.03139,0 0,-6.56336 z"
-       id="path3156"
-       inkscape:connector-curvature="0" />
-  </g>
-</svg>
diff --git a/themes/xiangqi/BlackElephant.svg b/themes/xiangqi/BlackElephant.svg
deleted file mode 100644 (file)
index e94d1de..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg3076"
-   version="1.1"
-   inkscape:version="0.48.2 r9819"
-   width="128.20163"
-   height="128.2204"
-   sodipodi:docname="BlackElephant.svg">
-  <metadata
-     id="metadata3082">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3080" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1027"
-     inkscape:window-height="709"
-     id="namedview3078"
-     showgrid="false"
-     inkscape:zoom="3.8688525"
-     inkscape:cx="104.53855"
-     inkscape:cy="57.054009"
-     inkscape:window-x="242"
-     inkscape:window-y="148"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3110"
-     fit-margin-top="3"
-     fit-margin-right="3"
-     fit-margin-left="3"
-     fit-margin-bottom="3" />
-  <path
-     style="fill:#ffeeaa;fill-opacity:1"
-     d="m 58.920386,124.59076 c -4.66974,-0.29078 -8.23609,-0.82797 -11.26391,-1.69664 -19.5042,-5.59571 -36.51986,-22.58403 -42.1731695,-42.105411 -2.63876,-9.111882 -2.64527,-24.362851 -0.0143,-33.586087 1.50139,-5.263388 4.37644,-11.374869 7.7286595,-16.428748 6.47868,-9.767411 15.02206,-17.147239 25.49045,-22.0188109 8.72502,-4.060274 15.79336,-5.635051 25.30092,-5.636869 16.11114,-0.0031 28.7599,4.771809 40.625354,15.3360129 10.12089,9.010956 16.84129,20.148257 19.20938,31.834498 1.02296,5.048181 1.26796,7.695222 1.26796,13.699152 0,10.415052 -1.57359,17.963342 -5.40083,25.907052 -5.89006,12.225231 -16.93968,23.159861 -29.725164,29.415841 -5.96241,2.91743 -10.89476,4.44529 -16.15467,5.00414 -3.74494,0.39788 -10.82472,0.52905 -14.89064,0.27587 z"
-     id="path3118"
-     inkscape:connector-curvature="0" />
-  <g
-     inkscape:groupmode="layer"
-     id="layer2"
-     inkscape:label="LAYER1"
-     style="display:inline"
-     transform="translate(2.9999999,3.2204022)" />
-  <g
-     id="g3110">
-    <path
-       style="fill:#8c8c8c;fill-opacity:1"
-       d="m 54.324153,124.10635 c -4.97844,-0.83337 -12.63437,-3.62507 -19.021537,-6.93609 C 16.577172,107.46322 4.6224201,88.480685 3.5788391,66.797196 2.3731841,41.74614 15.056734,20.25798 37.436507,9.4363651 56.703753,0.11979715 75.083043,0.62247515 94.550353,10.998444 c 17.894597,9.537723 30.773797,31.634623 30.773797,52.798752 0,22.754949 -13.19921,43.980054 -33.845887,54.426144 -10.40723,5.2655 -26.04819,7.74209 -37.15411,5.88301 z m 24.41456,-5.2873 c 10.83552,-2.77126 16.91023,-6.31872 25.688677,-15.00149 11.55325,-11.427315 16.89676,-24.083545 16.89676,-40.020364 0,-15.93682 -5.34351,-28.593044 -16.89676,-40.020365 C 95.648943,15.094067 89.574233,11.546604 78.738713,8.7753441 68.322373,6.1112931 58.531543,6.2234741 48.525923,9.1215151 38.096387,12.142336 30.583788,16.75638 22.976558,24.813273 12.256892,36.166578 7.3241501,48.452077 7.3241501,63.797196 c 0,15.345119 4.9327419,27.630619 15.6524079,38.983924 14.623686,15.48809 34.998905,21.34828 55.762155,16.03793 z m -25.91456,-1.19213 C 33.670042,114.00069 15.458658,96.190435 10.829719,76.557465 6.3684281,57.635549 11.719566,39.169935 25.713396,25.197122 c 21.888177,-21.8553009 55.355527,-21.8553009 77.210824,0 21.9653,21.965294 21.9653,55.234853 0,77.200148 -13.478507,13.47851 -31.082857,18.82996 -50.100067,15.22965 z m 21.06634,-3.90542 C 92.906683,110.27408 109.3233,94.629655 113.78437,75.704125 120.69973,46.366536 101.3087,17.926278 71.420323,13.570003 50.590473,10.534021 29.278507,21.15469 19.605342,39.391642 -0.64992093,77.579175 31.37488,121.42908 73.890493,113.7215 z m -11.9453,-18.469455 c -0.32611,-0.84984 -2.17425,-2.20588 -4.10698,-3.01342 -1.93274,-0.80755 -3.51406,-2.16961 -3.51406,-3.02681 0,-1.30707 0.89361,-1.44688 5.53861,-0.86653 6.54301,0.8175 9.02943,-0.72864 10.06713,-6.26007 0.88369,-4.71046 -0.84586,-6.3301 -3.8425,-3.59833 -5.8614,5.34332 -20.394618,11.98903 -30.013243,13.72438 -3.2185,0.58067 -3.75,0.41606 -3.75,-1.16135 0,-1.34844 1.265012,-2.17469 4.75,-3.1025 7.804261,-2.07772 18.627023,-7.78459 24.107313,-12.71184 2.82848,-2.543043 5.14269,-5.029023 5.14269,-5.524397 0,-0.495373 -2.88359,1.0735 -6.40797,3.486386 -9.22637,6.316621 -21.388363,10.616691 -22.318589,7.891101 -0.240368,-0.70428 2.408033,-2.4874 6.347474,-4.27363 7.206825,-3.267727 18.467895,-11.1549 16.746085,-11.728837 -0.56808,-0.189361 -3.69555,1.259491 -6.94994,3.219671 -7.441594,4.482219 -18.447567,8.060006 -19.509333,6.342036 -0.495198,-0.801252 2.11115,-2.610909 7.927254,-5.504111 8.194509,-4.076334 11.887339,-6.686543 15.037459,-10.628964 1.25746,-1.573728 0.98517,-1.717634 -3.25,-1.717634 -3.0905,0 -4.62244,0.424462 -4.62244,1.280762 0,0.70442 -1.35,1.790331 -3.000003,2.413136 l -3,1.132374 0,-6.413136 c 0,-3.527225 -0.170044,-6.413136 -0.377876,-6.413136 -0.207832,0 -1.895332,0.621095 -3.75,1.380211 -6.465574,2.646359 -7.872124,2.865136 -7.872124,1.224438 0,-0.84157 2.5875,-3.292805 5.75,-5.447189 6.005113,-4.090852 17.250003,-15.227021 17.250003,-17.083223 0,-1.652245 1.69491,-1.290023 5.50164,1.175763 3.9107,2.533126 4.28318,3.398255 1.74836,4.060674 -0.9625,0.251528 1.21775,0.509524 4.84501,0.573325 5.44313,0.09574 6.91501,-0.237594 8.42714,-1.908476 1.82874,-2.020733 1.8382,-2.01859 5.11607,1.158452 3.67966,3.566462 3.62515,4.340128 -0.36741,5.214531 -1.52395,0.333756 -3.89581,1.506873 -5.27081,2.606926 l -2.5,2.000096 5.42126,0.02224 c 3.29527,0.01352 6.04037,-0.533196 7,-1.394115 1.37654,-1.234954 1.96033,-1.110655 4.5582,0.970534 2.35704,1.888247 2.72262,2.64373 1.75,3.616351 -0.6762,0.676202 -1.22946,3.389462 -1.22946,6.029462 0,2.872842 -0.44915,4.8 -1.11869,4.8 -0.61528,0 0.0463,1.52743 1.47026,3.394288 l 2.58895,3.394288 -3.44545,0.646369 c -1.89499,0.355503 -5.04915,1.316443 -7.00924,2.135422 l -3.56381,1.489052 1.78899,3.118294 c 2.07574,3.618116 9.10566,8.430056 13.64683,9.341176 5.62846,1.12926 6.642157,1.59451 6.642157,3.0485 0,0.78793 -0.752067,1.43261 -1.671257,1.43261 -0.9192,0 -2.50404,0.75365 -3.52188,1.67478 -1.71983,1.55643 -2.09329,1.55906 -5.28471,0.0372 -5.1305,-2.44656 -10.95358,-8.12467 -13.01089,-12.68696 -2.41755,-5.361189 -2.9151,-4.566469 -0.88014,1.40582 1.36414,4.00352 1.42873,5.43675 0.40202,8.91958 -1.36486,4.62991 -4.18402,8.13769 -8.23348,10.24462 -3.50329,1.82276 -5.44225,1.77878 -6.17862,-0.14016 z m 16.46402,-31.704849 c 7.11444,-4.657019 6.3082,-6.178321 -3.46825,-6.544267 -6.31996,-0.236564 -8.23446,0.04325 -9.76349,1.427007 -1.04609,0.946701 -1.77854,2.064585 -1.62765,2.484187 0.42535,1.182916 7.11604,5.70145 8.58437,5.797435 0.72053,0.0471 3.54428,-1.376862 6.27502,-3.164362 z M 61.288963,51.862937 c 1.90579,-3.560999 1.22736,-4.065741 -5.46481,-4.065741 l -6.5,0 0,3 c 0,2.967356 0.0595,3 5.46481,3 4.37945,0 5.67042,-0.384164 6.5,-1.934259 z m 21.85161,-1.315741 0.31642,-2.75 -6.9686,0 c -6.86489,0 -6.98437,0.04526 -8.02883,3.041388 l -1.06023,3.041387 7.71241,-0.291387 c 7.5878,-0.28668 7.71752,-0.335818 8.02883,-3.041388 z m -15.063,-9.5 1.49052,-2.25 -7.37197,0.03596 c -6.3505,0.03098 -7.78766,0.380358 -10.37197,2.521455 l -3,2.485492 8.88145,-0.271455 c 7.94272,-0.242763 9.039,-0.509272 10.37197,-2.521455 z"
-       id="path3114"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#000000;fill-opacity:1"
-       d="M 54.610564,124.06262 C 41.34688,121.68699 29.54856,115.29285 20.089728,105.35394 2.5054712,86.877204 -1.4154807,60.837616 9.8401303,37.284949 16.951031,22.405199 33.78898,8.9413328 50.247644,4.9745238 c 13.53488,-3.262131 31.52407,-0.669103 43.80829,6.3146902 7.278486,4.137948 16.761986,13.112047 21.374046,20.225958 12.34835,19.046825 12.34835,46.11 0,65.156822 -4.61637,7.120566 -14.10365,16.095166 -21.374046,20.219036 -10.95804,6.21555 -27.74396,9.26741 -39.44537,7.17159 z m 27.52723,-5.62553 c 13.2291,-4.33825 21.735246,-10.70593 29.484216,-22.071806 10.67138,-15.652352 12.97976,-33.884398 6.59803,-52.112621 -2.50384,-7.15174 -9.8749,-18.023051 -15.69186,-23.14334 C 83.277024,4.1637778 53.954984,2.0706908 32.551625,16.114207 21.460975,23.391184 12.474331,35.594623 8.6337303,48.593583 c -2.376826,8.044645 -2.376826,22.955355 0,30.999999 9.3634037,31.691528 42.2758737,49.084248 73.5040637,38.843508 z m -25.93955,-0.37063 C 29.212702,113.92901 9.7953973,91.344034 9.7953973,64.093583 c 0,-15.022472 5.4878057,-28.347404 15.8560297,-38.5 21.691667,-21.2405462 55.855427,-21.2404782 77.096053,1.53e-4 21.27441,21.274409 21.27441,55.725286 0,76.999694 -12.034446,12.03444 -30.008536,18.00906 -46.549236,15.47303 z m 20.02159,-4.05229 c 12.00317,-2.76585 24.204616,-11.49936 31.222696,-22.348456 10.588,-16.367782 10.588,-38.776483 0,-55.144261 -9.735436,-15.049808 -25.182396,-23.42787 -43.194886,-23.42787 -13.49547,0 -24.518218,4.171739 -34.349169,13 -18.392037,16.516175 -22.2205327,44.896287 -8.845724,65.572131 6.824658,10.550096 17.841499,18.764116 29.299523,21.845346 6.34974,1.70754 19.52826,1.96386 25.86756,0.50311 z M 62.495384,95.118684 c -0.63089,-1.01022 -2.74473,-2.36405 -4.69741,-3.00849 -5.86673,-1.93619 -4.4209,-3.5614 2.8346,-3.18628 5.73213,0.29636 6.555,0.0935 8.0021,-1.97251 1.51676,-2.16547 2.32282,-10.857822 1.00687,-10.857822 -0.33335,0 -2.24585,1.269 -4.25,2.82 -7.91842,6.128032 -16.58372,10.139402 -27.306755,12.640912 -8.909427,2.07843 -7.617611,-0.57497 1.912852,-3.92901 12.372893,-4.35437 26.250003,-13.399512 26.250003,-17.109824 0,-1.995703 -0.38774,-1.858618 -5.85729,2.07086 -7.70059,5.532322 -19.899151,10.393664 -22.32255,8.895922 -0.598323,-0.36979 2.480715,-2.37858 6.842306,-4.46398 7.699744,-3.681463 17.451904,-11.094366 16.237094,-12.342287 -0.33024,-0.339242 -3.22813,0.965511 -6.43976,2.89945 -9.043748,5.445862 -20.522417,9.247967 -20.432658,6.767958 0.01493,-0.4125 3.502429,-2.400844 7.75,-4.418541 7.421798,-3.525534 16.222858,-9.986487 16.222858,-11.909382 0,-1.48565 -8.16125,-1.071103 -9.38976,0.476948 -0.61063,0.769463 -2.12274,1.699788 -3.360243,2.067388 -2.170648,0.644791 -2.25,0.439779 -2.25,-5.812996 l 0,-6.481358 -5.001077,2.112893 c -7.209859,3.046078 -8.561534,1.064414 -2.120693,-3.109108 6.742437,-4.36895 14.575313,-11.555596 17.169353,-15.752836 l 2.1569,-3.48994 3.13067,1.982199 c 3.77613,2.390879 4.39017,3.757442 1.97019,4.38475 -0.99294,0.257389 1.30922,0.520181 5.11592,0.583982 5.21637,0.08743 7.38152,-0.300534 8.78978,-1.574988 1.77124,-1.602952 2.02863,-1.530877 4.94394,1.384429 l 3.07541,3.075418 -3.46815,1.144592 c -1.90748,0.629526 -4.51276,2.256533 -5.78951,3.615571 l -2.32136,2.470979 5.60288,0 c 3.64701,0 6.12651,-0.523626 7.10289,-1.5 1.97896,-1.978962 2.58571,-1.902317 5.32691,0.67291 1.99502,1.87422 2.12384,2.3897 0.93716,3.75 -0.75669,0.8674 -1.58908,3.930423 -1.84976,6.806719 -0.38212,4.216333 -0.11525,5.554248 1.3773,6.904988 2.32551,2.104561 2.36354,3.366831 0.10125,3.360437 -3.38935,-0.0096 -11.25,3.395939 -11.25,4.873907 0,2.843545 8.69756,9.963738 14.14835,11.582458 2.86806,0.85172 5.84547,1.548582 6.61648,1.548582 2.058816,0 0.8973,2.44282 -1.3477,2.83436 -1.05442,0.1839 -2.46389,1.03587 -3.13214,1.89327 -1.07504,1.37933 -1.86495,1.16801 -6.85692,-1.83436 -5.45205,-3.27907 -10.39551,-8.970412 -11.86307,-13.657792 -0.38995,-1.245486 -1.09953,-2.023158 -1.57685,-1.728159 -0.47731,0.294999 -0.21992,2.08708 0.572,3.982402 1.88457,4.510427 1.82629,9.893659 -0.15227,14.063159 -1.89012,3.98312 -2.93519,4.93384 -7.53716,6.85667 -3.19316,1.33418 -3.5692,1.30291 -4.62298,-0.38445 z m 18.46287,-32.664006 c 5.29995,-3.966438 3.55813,-5.361095 -6.69563,-5.361095 -7.98085,0 -8.90533,0.202259 -10.2617,2.245053 -1.42544,2.146836 -1.2886,2.382274 3.12803,5.381633 4.41373,2.99739 4.75182,3.070029 7.61869,1.636892 1.65,-0.824828 4.44477,-2.580945 6.21061,-3.902483 z m -18.86046,-11.361095 1.04581,-3 -6.94798,0 -6.94798,0 0,3 c 0,2.994475 0.0109,3 5.90217,3 5.65891,0 5.94528,-0.123651 6.94798,-3 z m 21.14985,0 0,-3 -7.5,0 c -5.80777,0 -7.5,0.319992 -7.5,1.418213 0,0.780016 -0.27315,2.130016 -0.60699,3 -0.52273,1.362222 0.51833,1.581787 7.5,1.581787 l 8.10699,0 0,-3 z m -15.54047,-8.739782 c 1.39726,-1.50688 2.54047,-3.08188 2.54047,-3.5 0,-0.41812 -3.34048,-0.760218 -7.42328,-0.760218 -6.52717,0 -7.79468,0.312518 -10.5,2.588894 -1.6922,1.423891 -3.07672,2.998891 -3.07672,3.5 0,0.501108 3.58179,0.911106 7.95953,0.911106 7.39109,0 8.14096,-0.195664 10.5,-2.739782 z"
-       id="path3112"
-       inkscape:connector-curvature="0" />
-  </g>
-</svg>
diff --git a/themes/xiangqi/BlackGold.svg b/themes/xiangqi/BlackGold.svg
deleted file mode 100644 (file)
index 148617d..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg3076"
-   version="1.1"
-   inkscape:version="0.48.2 r9819"
-   width="128.20164"
-   height="128.2204"
-   sodipodi:docname="BlackGold.svg">
-  <metadata
-     id="metadata3082">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3080" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1027"
-     inkscape:window-height="709"
-     id="namedview3078"
-     showgrid="false"
-     inkscape:zoom="3.8688525"
-     inkscape:cx="80.500953"
-     inkscape:cy="57.054009"
-     inkscape:window-x="242"
-     inkscape:window-y="148"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3118"
-     fit-margin-left="3"
-     fit-margin-top="3"
-     fit-margin-right="3"
-     fit-margin-bottom="3" />
-  <g
-     inkscape:groupmode="layer"
-     id="layer2"
-     inkscape:label="LAYER1"
-     style="display:inline"
-     transform="translate(2.9999999,3.2204009)" />
-  <g
-     id="g3118">
-    <path
-       style="fill:#ffeeaa;fill-opacity:1"
-       d="M 49.662159,123.39204 C 28.848397,118.35233 10.456785,100.11132 5.0149002,79.110404 c -2.019867,-7.794916 -2.019867,-22.743224 0,-30.538142 C 9.3817242,31.720138 21.887153,16.488867 37.445176,9.073073 47.497814,4.281443 53.737314,2.841334 64.445171,2.841334 c 17.06239,0 30.67919,5.6522 42.970509,17.836647 12.41389,12.305935 18.00575,25.710733 18.00575,43.163353 0,17.45262 -5.59186,30.85742 -18.00575,43.163346 -8.460039,8.38649 -19.604069,14.65541 -29.769729,16.74656 -6.96257,1.43225 -21.34778,1.24761 -27.983792,-0.3592 z"
-       id="path3124"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#8c8c8c;fill-opacity:1"
-       d="M 54.32415,124.10635 C 49.345717,123.27298 41.689783,120.48128 35.302616,117.17026 16.577172,107.46322 4.6224201,88.480685 3.5788391,66.797195 2.3731841,41.746139 15.056734,20.257979 37.436507,9.4363641 56.703755,0.11979615 75.083035,0.62247415 94.550355,10.998443 c 17.894595,9.537723 30.773795,31.634623 30.773795,52.798752 0,22.75495 -13.19921,43.980055 -33.845885,54.426145 -10.40724,5.2655 -26.04819,7.74209 -37.154115,5.88301 z m 24.414555,-5.2873 c 10.83553,-2.77126 16.91024,-6.31872 25.688685,-15.00149 11.55325,-11.427325 16.89676,-24.083545 16.89676,-40.020365 0,-15.93682 -5.34351,-28.593044 -16.89676,-40.020365 C 95.648945,15.094066 89.574235,11.546603 78.738705,8.7753431 68.322375,6.1112921 58.531545,6.2234731 48.525919,9.1215141 38.096387,12.142335 30.583788,16.756379 22.976558,24.813272 12.256892,36.166577 7.3241501,48.452076 7.3241501,63.797195 c 0,15.34512 4.9327419,27.63062 15.6524079,38.983925 14.623686,15.48809 34.998907,21.34828 55.762147,16.03793 z M 52.82415,117.62692 C 33.670042,114.00069 15.458658,96.190435 10.829719,76.557465 6.3684281,57.635548 11.719566,39.169934 25.713396,25.197121 c 21.888176,-21.8553009 55.355529,-21.8553009 77.210834,0 21.96529,21.965294 21.96529,55.234854 0,77.200149 -13.478515,13.47851 -31.082875,18.82996 -50.10008,15.22965 z M 73.890495,113.7215 C 92.906685,110.27408 109.3233,94.629655 113.78437,75.704125 120.69973,46.366535 101.30871,17.926277 71.420325,13.570002 50.590469,10.53402 29.278507,21.154689 19.605342,39.391641 -0.64992093,77.579175 31.37488,121.42908 73.890495,113.7215 z M 50.112876,82.845525 c 0.466132,-14.52204 0.413374,-15.04833 -1.508512,-15.04833 -1.762095,0 -2.057192,0.868106 -2.561414,7.53508 -0.658692,8.70942 -3.594855,14.74312 -9.287223,19.08491 -4.994149,3.80922 -6.271785,1.91652 -2.327112,-3.4474 3.755127,-5.10618 5.895535,-11.78601 5.895535,-18.398909 0,-4.50998 -0.168181,-4.855078 -2.071664,-4.250936 -2.021506,0.641601 -5.928336,-1.78206 -5.928336,-3.677733 0,-0.464756 4.05,-0.845012 9,-0.845012 l 9,0 0,-4.5 0,-4.5 -4.393011,0 c -3.194993,0 -4.569164,0.459047 -5.038945,1.683277 -0.580132,1.511799 -0.866335,1.462877 -2.80944,-0.480229 -1.956853,-1.956852 -2.13572,-3.048932 -1.872611,-11.433277 0.159992,-5.098374 0.445944,-9.42712 0.635449,-9.619436 0.189505,-0.192315 1.949705,0.180083 3.911556,0.827552 3.573918,1.1795 4.438347,2.365558 2.567002,3.522113 -0.55,0.339919 -1,3.066476 -1,6.059017 l 0,5.440983 4.143613,0 4.143613,0 -0.535891,-10.5 c -0.595745,-11.672739 -0.520931,-11.788371 5.70592,-8.818994 3.22693,1.538816 3.39523,1.824519 1.98966,3.377655 -1.16812,1.290756 -1.46505,3.579966 -1.24118,9.568994 l 0.29426,7.872345 6.06578,-6.023789 c 3.40545,-3.381881 7.28846,-8.522852 8.85359,-11.721878 l 2.78782,-5.698089 3.39641,2.590567 c 3.92386,2.992876 3.98733,3.184128 1.6464,4.961143 -1.51261,1.148241 -0.86151,1.332753 4.8,1.360243 3.81935,0.01854 7.0526,-0.470788 7.75557,-1.17376 0.94075,-0.94075 1.8526,-0.446518 4.15124,2.25 2.6553,3.114917 2.77849,3.554142 1.24971,4.455563 -0.93279,0.55 -4.27526,3.7 -7.42772,7 l -5.73174,6 4.06305,1.825593 c 3.78043,1.698606 3.95269,1.94754 2.47647,3.578741 -1.7395,1.922129 -2.08942,4.666857 -0.70411,5.523024 0.48535,0.299966 1.9923,-0.32761 3.34878,-1.394612 l 2.46631,-1.940004 3.34739,3.453629 3.347395,3.453629 -6.696175,0 -6.69617,0 0,11.04775 c 0,10.66233 -0.0923,11.1333 -2.64602,13.5 -2.96319,2.74619 -6.35398,3.24573 -6.35398,0.93607 0,-1.36029 -3.42545,-3.38626 -8.25,-4.87943 -0.9625,-0.29789 -1.75,-1.29289 -1.75,-2.2111 0,-1.45638 0.82969,-1.58448 6.5,-1.00354 l 6.5,0.66595 0,-9.11524 0,-9.115238 -13.5,0.324613 -13.5,0.324613 0,12.146142 c 0,10.70941 -0.207,12.20567 -1.749995,12.64932 -0.9625,0.27675 -2.468717,0.80099 -3.347149,1.16497 -1.43357,0.59401 -1.547678,-0.87945 -1.114125,-14.38655 z m 33.211269,-20.667019 0,-5.618689 -3.47091,2.647399 c -1.90901,1.456069 -6.29651,3.984124 -9.75,5.6179 l -6.27909,2.970501 9.75,7.89e-4 9.75,7.89e-4 0,-5.618689 z m -16.87769,-0.370413 c 2.5512,-1.182602 2.58103,-1.30092 1.10005,-4.363231 -2.75916,-5.705277 -3.07919,-5.856103 -7.34206,-3.46023 -3.66021,2.057148 -3.8803,2.451483 -3.8803,6.952345 l 0,4.7715 3.75,-1.34241 c 2.0625,-0.738326 4.93004,-1.889414 6.37231,-2.557974 z m 9.36287,-5.986908 c 0.72624,-1.175083 -1.747,-6.166472 -3.96943,-8.01092 -1.36207,-1.130419 -1.86156,-1.095827 -3.17744,0.220054 -1.41509,1.415092 -1.36346,1.624115 0.55125,2.231822 3.02331,0.959562 4.45008,4.031931 3.06994,6.610748 -1.00995,1.887102 -0.92735,1.977471 0.90912,0.994622 1.111,-0.594589 2.28845,-1.515436 2.61656,-2.046326 z m 6.03341,-13.823119 c -7.77973,-0.341207 -10.17221,0.871535 -5.52051,2.798333 2.1273,0.881155 3.2855,2.168656 3.66706,4.076452 l 0.5577,2.788518 4.05804,-4.682087 4.05804,-4.682087 -6.82033,-0.299129 z m -14.39673,44.520989 c -0.61702,-0.61703 -1.13174,-1.81936 -1.14382,-2.67186 -0.0121,-0.8525 -0.92471,-3.53986 -2.02808,-5.97192 -2.66898,-5.883018 -1.26227,-7.316412 3.56603,-3.63369 4.42806,3.37745 5.84819,6.66223 4.32532,10.00456 -1.32968,2.91832 -3.18196,3.81039 -4.71945,2.27291 z"
-       id="path3122"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#000000;fill-opacity:1"
-       d="M 54.61056,124.06262 C 41.34688,121.68699 29.54856,115.29285 20.089728,105.35394 2.5054712,86.877204 -1.4154808,60.837617 9.8401302,37.28495 16.951031,22.4052 33.78898,8.9413338 50.247641,4.9745248 c 13.534885,-3.262131 31.524075,-0.669103 43.808295,6.3146902 7.278494,4.137948 16.761984,13.112047 21.374044,20.225958 12.34835,19.046825 12.34835,46.110001 0,65.156821 -4.61637,7.120566 -14.10364,16.095166 -21.374044,20.219036 -10.95804,6.21555 -27.74396,9.26741 -39.445376,7.17159 z m 27.527226,-5.62553 c 13.2291,-4.33825 21.735254,-10.70593 29.484224,-22.071806 10.67138,-15.65236 12.97976,-33.884397 6.59803,-52.11262 -2.50384,-7.15174 -9.8749,-18.023051 -15.69185,-23.14334 C 83.277026,4.1637788 53.954981,2.0706918 32.551625,16.114208 21.460975,23.391185 12.474331,35.594624 8.6337302,48.593584 c -2.376826,8.044645 -2.376826,22.955355 0,31 9.3634038,31.691526 42.2758738,49.084246 73.5040558,38.843506 z m -25.93954,-0.37063 C 29.212702,113.92901 9.7953972,91.344034 9.7953972,64.093584 c 0,-15.022472 5.4878058,-28.347404 15.8560298,-38.5 21.691668,-21.2405462 55.855429,-21.2404782 77.096063,1.53e-4 21.2744,21.274409 21.2744,55.725287 0,76.999693 -12.034454,12.03444 -30.008554,18.00906 -46.549244,15.47303 z m 20.02159,-4.05229 c 12.00317,-2.76585 24.204624,-11.49937 31.222694,-22.348456 10.588,-16.36778 10.588,-38.776482 0,-55.14426 -9.735434,-15.049808 -25.182394,-23.42787 -43.194894,-23.42787 -13.49546,0 -24.51821,4.171739 -34.349161,13 -18.392037,16.516175 -22.2205328,44.896287 -8.845724,65.57213 6.824658,10.550096 17.841499,18.764116 29.299521,21.845346 6.349744,1.70754 19.528264,1.96386 25.867564,0.50311 z m 3.64686,-18.379236 c -0.88919,-1.35707 -3.40495,-2.99613 -5.61501,-3.65829 -6.46556,-1.93712 -5.08434,-3.71645 2.74595,-3.5374 l 6.75,0.15434 0.28966,-8.79968 0.28966,-8.799674 -13.09787,0.158135 c -7.20382,0.08698 -13.37167,-0.11567 -13.70632,-0.450323 -1.92993,-1.929931 -2.394392,0.641612 -2.18004,12.070072 0.21921,11.68736 0.08798,12.73725 -1.678644,13.42971 -1.054042,0.41316 -2.253941,0.78282 -2.666441,0.82147 -0.4125,0.0387 -0.75,-6.45471 -0.75,-14.42971 0,-13.534386 -0.12543,-14.5 -1.883503,-14.5 -1.589179,0 -1.993412,1.054784 -2.586856,6.75 -0.88786,8.52069 -3.205466,13.71706 -8.291516,18.59063 -5.397961,5.17245 -6.245279,3.14549 -1.60597,-3.84182 3.329481,-5.01456 3.750526,-6.39597 4.172806,-13.69061 0.453323,-7.830875 0.397253,-8.094343 -1.610828,-7.569218 -1.309159,0.342353 -2.715147,-0.157215 -3.792304,-1.34746 -1.666553,-1.84152 -1.48301,-1.891522 6.943183,-1.891522 l 8.654988,0 0,-5.5 0,-5.5 -3.671259,0 c -2.019193,0 -4.429977,0.68663 -5.357299,1.525845 -1.518059,1.373825 -1.921194,1.335429 -4.046308,-0.385385 -2.030982,-1.644589 -2.172147,-2.137901 -1.011844,-3.53598 0.973151,-1.172576 1.214651,-3.709214 0.867753,-9.114616 -0.264368,-4.119425 -0.37821,-7.489864 -0.25298,-7.489864 0.125229,0 1.916863,0.705782 3.981409,1.568404 2.793498,1.167199 3.464251,1.857873 2.622124,2.7 -0.622378,0.622378 -1.131596,3.516596 -1.131596,6.431596 l 0,5.3 4,0 4,0 0,-10.5 c 0,-5.775 0.209733,-10.5 0.466073,-10.5 0.25634,0 2.031707,0.746599 3.94526,1.659109 3.244732,1.547304 3.381792,1.798156 2.033922,3.722506 -1.578041,2.252975 -2.1046,17.618385 -0.60376,17.618385 1.81386,0 13.04694,-12.846328 15.54681,-17.779588 1.45496,-2.871227 2.77538,-5.220412 2.93426,-5.220412 0.15888,0 1.77085,1.093366 3.58215,2.429702 3.2405,2.390764 3.25964,2.45071 1.19428,3.740547 -3.434,2.144569 -2.44796,2.829751 4.07226,2.829751 4.06814,0 6.73323,-0.508575 7.82026,-1.492326 1.48017,-1.33953 1.93284,-1.196064 4.42119,1.401209 l 2.77218,2.893535 -8.18327,7.818247 c -9.46084,9.038837 -12.90918,11.531929 -21.36519,15.446674 l -6.13643,2.840883 10.87383,0.04589 10.87383,0.04589 -0.45975,-5.544027 c -0.39567,-4.771234 -0.23869,-5.453936 1.12617,-4.897717 0.87226,0.35547 2.84616,1.102229 4.38644,1.659463 2.56838,0.92917 2.672,1.155175 1.25,2.726458 -1.82591,2.017615 -2.06929,6.055823 -0.36497,6.055823 0.65206,0 2.16109,-0.916466 3.3534,-2.036592 l 2.16786,-2.036591 2.69749,3.536591 2.697494,3.536592 -6.050894,0 -6.0509,0 0,10.576918 c 0,10.35695 -0.0608,10.63772 -2.92307,13.5 -3.55835,3.55835 -4.3914,3.61826 -6.45787,0.46443 z m -13.11906,-33.57041 c 3.30001,-1.624698 7.05186,-3.776932 8.33747,-4.782742 l 2.33746,-1.828746 -3.15695,-4.677719 c -2.71419,-4.02166 -3.42772,-4.532814 -5.08747,-3.644542 -2.5793,1.380403 -2.4332,2.403409 0.62988,4.410415 1.88573,1.235581 2.47859,2.383481 2.25,4.356459 -0.47479,4.097806 -3.35114,3.965987 -5.34946,-0.245159 -1.87887,-3.95944 -2.96022,-4.298343 -6.2848,-1.969715 -1.24789,0.874055 -2.92302,1.338178 -3.72251,1.031384 -1.17321,-0.450206 -1.453615,0.614441 -1.453615,5.519218 l 0,6.077023 2.749995,-0.64594 c 1.51251,-0.355267 5.45001,-1.975239 8.75,-3.599936 z m 21.5,-19.193558 c 0,-1.128104 -13.77107,-0.956814 -14.47367,0.18003 -0.32545,0.526577 0.7411,1.646641 2.37011,2.489033 3.0805,1.592986 4.68828,4.625389 3.60251,6.794606 -0.34658,0.692422 1.42438,-0.978729 3.93545,-3.713669 2.51108,-2.73494 4.5656,-5.32244 4.5656,-5.75 z m -22.06628,39.972618 c -0.62885,-2.3375 -1.76954,-5.46196 -2.53487,-6.94325 -2.26136,-4.376839 0.31029,-4.496671 4.69142,-0.21861 4.03716,3.94219 5.07358,7.84801 2.70974,10.21186 -2.19471,2.1947 -3.71098,1.24436 -4.86629,-3.05 z"
-       id="path3120"
-       inkscape:connector-curvature="0" />
-  </g>
-</svg>
diff --git a/themes/xiangqi/BlackKnight.svg b/themes/xiangqi/BlackKnight.svg
deleted file mode 100644 (file)
index 7236d38..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg3076"
-   version="1.1"
-   inkscape:version="0.48.2 r9819"
-   width="128.20163"
-   height="128.2204"
-   sodipodi:docname="BlackKnight.svg">
-  <metadata
-     id="metadata3082">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3080" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1027"
-     inkscape:window-height="709"
-     id="namedview3078"
-     showgrid="false"
-     inkscape:zoom="3.8688525"
-     inkscape:cx="70.16197"
-     inkscape:cy="57.054009"
-     inkscape:window-x="211"
-     inkscape:window-y="124"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3131"
-     fit-margin-top="3"
-     fit-margin-right="3"
-     fit-margin-bottom="3"
-     fit-margin-left="3" />
-  <g
-     inkscape:groupmode="layer"
-     id="layer2"
-     inkscape:label="LAYER1"
-     style="display:inline"
-     transform="translate(2.9999999,3.2203999)" />
-  <g
-     id="g3131"
-     transform="translate(-30.414993,-8.2711864)">
-    <path
-       style="fill:#ffeeaa;fill-opacity:1"
-       d="m 80.077156,131.66323 c -20.81377,-5.03971 -39.20538,-23.28072 -44.64726,-44.28165 -2.01987,-7.794913 -2.01987,-22.743221 0,-30.538139 4.36682,-16.852124 16.87225,-32.083395 32.43027,-39.499189 10.05264,-4.79163 16.29214,-6.231739 27,-6.231739 17.062394,0 30.679184,5.6522 42.970514,17.836647 12.41389,12.305935 18.00575,25.710733 18.00575,43.163353 0,17.452617 -5.59186,30.857427 -18.00575,43.163357 -8.46005,8.38649 -19.60408,14.65541 -29.76973,16.74656 -6.96257,1.43225 -21.347784,1.24761 -27.983794,-0.3592 z"
-       id="path3137"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#8c8c8c;fill-opacity:1"
-       d="M 84.73914,132.37753 C 79.76071,131.54416 72.104776,128.75246 65.717609,125.44144 46.992165,115.7344 35.037413,96.751872 33.993832,75.068378 32.788177,50.017322 45.471727,28.529162 67.8515,17.707547 c 19.26724,-9.3165685 37.64653,-8.8138905 57.11384,1.562079 17.8946,9.537723 30.7738,31.634623 30.7738,52.798752 0,22.754954 -13.19921,43.980052 -33.84588,54.426142 -10.40724,5.2655 -26.04819,7.74209 -37.15412,5.88301 z m 24.41456,-5.2873 c 10.83553,-2.77126 16.91023,-6.31872 25.68868,-15.00149 11.55325,-11.42732 16.89676,-24.083541 16.89676,-40.020362 0,-15.93682 -5.34351,-28.593044 -16.89676,-40.020365 C 126.06393,23.365249 119.98923,19.817786 109.1537,17.046526 98.73736,14.382475 88.94654,14.494656 78.940912,17.392697 68.51138,20.413518 60.998781,25.027562 53.391551,33.084455 42.671885,44.43776 37.739143,56.723259 37.739143,72.068378 c 0,15.345121 4.932742,27.630624 15.652408,38.983922 14.623686,15.48809 34.998909,21.34828 55.762149,16.03793 z M 83.239143,125.8981 C 64.085035,122.27187 45.873651,104.46162 41.244712,84.828649 36.783421,65.906731 42.134559,47.441117 56.128389,33.468304 c 21.888176,-21.855301 55.355531,-21.855301 77.210831,0 21.96529,21.965294 21.96529,55.234855 0,77.200146 -13.47851,13.47851 -31.08287,18.82996 -50.100077,15.22965 z m 21.066337,-3.90542 c 19.0162,-3.44742 35.43281,-19.09184 39.89388,-38.017371 C 151.11472,54.637718 131.7237,26.19746 101.83532,21.841185 81.005462,18.805203 59.6935,29.425872 50.020335,47.662824 29.765072,85.850359 61.789873,129.70026 104.30548,121.99268 z m 7.7623,-17.76968 c -0.63385,-1.01495 -3.16359,-2.40845 -5.62165,-3.09667 -3.6603,-1.02482 -4.37778,-1.600858 -3.96412,-3.182658 0.31301,-1.19697 1.12337,-1.75836 2.1311,-1.47638 4.11828,1.15236 9.74864,1.54217 10.94835,0.75799 1.72229,-1.12576 3.12383,-7.305903 3.15383,-13.906904 l 0.0239,-5.25 -21,0 c -17.560973,0 -20.999997,0.234609 -20.999997,1.432612 0,0.787937 -0.848466,1.701905 -1.885481,2.031041 -1.530028,0.485612 -1.963451,1.822929 -2.29907,7.093728 -0.34058,5.348713 -0.873604,6.955323 -3.019503,9.101223 -2.005086,2.00508 -3.204226,2.455738 -5.200929,1.9546 -3.201468,-0.80351 -3.381593,-3.42115 -0.461742,-6.71019 1.173301,-1.32166 3.020972,-4.375683 4.105936,-6.786713 1.749008,-3.886693 1.988117,-6.812184 2.108975,-25.803284 0.133669,-21.00424 0.175244,-21.404927 2.144063,-20.663879 1.104263,0.415636 11.177365,0.907669 22.384668,1.093408 18.21799,0.301925 20.57974,0.154164 22.29113,-1.394627 1.83512,-1.66076 2.06675,-1.579786 5.60641,1.959874 l 3.69221,3.692207 -13.23333,0 -13.23334,0 0,4 0,4 6.18555,0 c 4.80385,0 6.65985,-0.445584 8.3089,-1.994779 l 2.12334,-1.994779 3.38727,3.494779 3.38728,3.494779 -11.69617,0 -11.69617,0 0,3.5 0,3.5 6.17126,0 c 4.39378,0 6.70983,-0.4874 8.04113,-1.692207 1.7764,-1.60762 2.05443,-1.507648 5.56207,2 l 3.69221,3.692207 -11.73333,0 -11.73334,0 0,3.5 0,3.5 9.58971,0 c 8.44153,0 9.7885,-0.244143 11.25,-2.039107 1.65417,-2.031588 1.6732,-2.027936 5.16029,0.990278 3.15026,2.726668 3.33569,3.158562 1.85566,4.322093 -1.14714,0.901827 -1.85942,3.701715 -2.35562,9.259717 -0.88436,9.905663 -3.30937,15.799941 -7.36274,17.896021 -3.86409,1.9982 -4.40538,1.97263 -5.80866,-0.27438 z m -18.32864,-33.654622 0,-3.5 -8.5,0 -8.499997,0 0,3.5 0,3.5 8.499997,0 8.5,0 0,-3.5 z m 0,-11 0,-3.5 -8.5,0 -8.499997,0 0,3.5 0,3.5 8.499997,0 8.5,0 0,-3.5 z m 0,-10.5 0,-4 -8.5,0 -8.499997,0 0,4 0,4 8.499997,0 8.5,0 0,-4 z M 80.866751,95.818382 c -2.426858,-6.582693 -3.956566,-12.217738 -3.511955,-12.937134 1.065912,-1.724682 3.360795,-0.664795 6.311543,2.914971 3.653521,4.43235 4.178151,9.610233 1.138541,11.236983 -2.684037,1.43645 -2.996175,1.34016 -3.938129,-1.21482 z m 14.101579,-1.92081 c -0.67605,-0.67606 -1.22919,-1.93335 -1.22919,-2.794003 0,-0.86064 -0.93197,-3.30367 -2.07105,-5.42895 -1.45537,-2.715392 -1.75678,-4.178411 -1.01389,-4.921301 1.4243,-1.424295 8.25702,4.102301 9.54654,7.721641 1.57184,4.411733 -2.26597,8.389043 -5.23241,5.422613 z m 14.34026,-1.4026 c -0.8632,-0.8632 -1.56945,-2.149513 -1.56945,-2.858473 0,-0.70897 -1.08053,-2.88129 -2.40119,-4.82738 -1.68337,-2.480583 -2.08599,-3.85356 -1.3468,-4.592745 2.34626,-2.346262 10.74799,4.692115 10.74799,9.003915 0,3.624503 -3.16949,5.535743 -5.43055,3.274683 z"
-       id="path3135"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#000000;fill-opacity:1"
-       d="m 85.025553,132.33381 c -13.26368,-2.37563 -25.062,-8.76977 -34.52083,-18.70868 -17.58426,-18.47674 -21.50521,-44.516323 -10.2496,-68.06899 7.1109,-14.87975 23.94885,-28.343616 40.40751,-32.310425 13.53489,-3.2621308 31.524077,-0.669103 43.808297,6.31469 7.27849,4.137948 16.76198,13.112047 21.37404,20.225958 12.34835,19.046825 12.34835,46.109997 0,65.156817 -4.61637,7.12057 -14.10364,16.09517 -21.37404,20.21904 -10.95804,6.21555 -27.743967,9.26741 -39.445377,7.17159 z m 27.527227,-5.62553 c 13.2291,-4.33825 21.73525,-10.70593 29.48422,-22.07181 10.67138,-15.65236 12.97976,-33.884393 6.59803,-52.112616 -2.50384,-7.15174 -9.8749,-18.023051 -15.69186,-23.14334 -19.25115,-16.945545 -48.573197,-19.038631 -69.976557,-4.995116 -11.09065,7.276977 -20.07729,19.480416 -23.91789,32.479376 -2.37683,8.044645 -2.37683,22.955356 0,30.999996 9.3634,31.69153 42.27587,49.08425 73.504057,38.84351 z m -25.939537,-0.37063 c -26.98555,-4.13745 -46.40286,-26.72243 -46.40286,-53.972876 0,-15.022472 5.48781,-28.347404 15.85603,-38.5 21.69167,-21.240546 55.855437,-21.240478 77.096067,1.53e-4 21.2744,21.274409 21.2744,55.725283 0,76.999693 -12.03445,12.03444 -30.00855,18.00906 -46.549237,15.47303 z m 20.021587,-4.05229 c 12.00316,-2.76585 24.20462,-11.49937 31.22269,-22.34846 10.588,-16.36777 10.588,-38.776478 0,-55.144256 -9.73543,-15.049808 -25.1824,-23.42787 -43.194887,-23.42787 -13.49547,0 -24.51822,4.171739 -34.34917,13 -18.39203,16.516175 -22.22053,44.896286 -8.84572,65.572126 6.82466,10.5501 17.8415,18.76412 29.29952,21.84535 6.34975,1.70754 19.528267,1.96386 25.867567,0.50311 z m 4.76324,-18.40944 c -1.01076,-1.38962 -3.25352,-2.70532 -5.25,-3.07986 -2.10118,-0.39418 -3.48544,-1.23702 -3.48544,-2.12218 0,-1.20705 1.1207,-1.34828 6.29876,-0.79376 5.09091,0.54519 6.54933,0.37262 7.60544,-0.89991 1.81165,-2.18291 3.69757,-17.41367 2.32604,-18.7852 -1.60764,-1.60764 -43.230237,0.0197 -43.230237,1.69017 0,0.69609 -0.675,1.52464 -1.5,1.84122 -0.99627,0.3823 -1.51896,2.01338 -1.55644,4.85698 -0.11791,8.9436 -4.56724,15.12352 -9.13023,12.68149 -2.4037,-1.28642 -2.29045,-3.16627 0.33105,-5.49511 1.17941,-1.04775 3.20441,-4.28032 4.5,-7.1835 2.23177,-5.00099 2.35562,-6.38245 2.35562,-26.27568 l 0,-20.997166 2.95034,1.52568 c 2.33659,1.2083 6.84773,1.52568 21.68555,1.52568 17.934117,0 18.835467,-0.09419 21.080087,-2.202902 l 2.34489,-2.202903 3.7029,3.702903 3.7029,3.702902 -13.23333,0 -13.233337,0 0,4 0,4 6.277497,0 c 3.75341,0 7.0788,-0.56126 8.27039,-1.395878 1.76911,-1.239139 2.29939,-1.132238 4.7225,0.952034 1.50129,1.291352 2.72961,2.594497 2.72961,2.895878 0,0.301381 -4.95,0.547966 -11,0.547966 l -10.999997,0 0,4 0,4 5.865137,0 c 4.30847,0 6.52563,-0.519534 8.35366,-1.957467 l 2.48852,-1.957468 2.64634,2.762187 c 1.45549,1.519202 2.64634,3.075062 2.64634,3.457467 0,0.382404 -4.95,0.695281 -11,0.695281 l -10.999997,0 0,4.118919 0,4.118917 9.749997,-0.702561 c 7.75546,-0.558841 10.05685,-1.083972 11.25,-2.567018 1.44451,-1.795486 1.61733,-1.75851 4.67166,0.999552 3.01537,2.722877 3.08383,2.943497 1.38915,4.477167 -1.33643,1.20945 -1.91186,3.6863 -2.29934,9.8972 -0.59419,9.52408 -2.43518,13.87838 -7.06002,16.6983 -3.95076,2.40893 -3.82044,2.42049 -5.96601,-0.52933 z m -17.735437,-32.511146 0,-4 -9,0 -9,0 0,3.333333 c 0,1.833334 0.3,3.633334 0.66667,4 0.36666,0.366663 4.41666,0.666663 9,0.666663 l 8.33333,0 0,-3.999996 z m 0,-11.038933 0,-4.038933 -8.75,0.288933 c -8.29543,0.273923 -8.7671,0.409601 -9.07908,2.611659 -0.66521,4.695164 0.2006,5.177274 9.2977,5.177274 l 8.53138,0 0,-4.038933 z m 0,-10.961067 0,-4 -9,0 -9,0 0,3.333333 c 0,1.833334 0.3,3.633334 0.66667,4 0.36666,0.366667 4.41666,0.666667 9,0.666667 l 8.33333,0 0,-4 z M 81.213543,96.11477 c -2.9199,-9.44772 -3.71955,-12.91469 -3.11758,-13.51666 1.18197,-1.18197 8.56667,7.46238 8.56667,10.02794 0,3.80774 -4.46667,6.66748 -5.44909,3.48872 z m 13.72865,-2.78899 c -0.31829,-1.21712 -1.59113,-4.21275 -2.82855,-6.65696 -2.7345,-5.40132 -1.17333,-6.82743 3.44968,-3.15124 3.78035,3.0061 5.815507,7.48718 4.41243,9.71543 -1.61887,2.57094 -4.37224,2.62168 -5.03356,0.0928 z m 12.818347,-4.15175 c -1.12645,-2.37009 -2.60589,-5.07517 -3.28764,-6.01129 -2.04156,-2.80333 0.0812,-3.4161 4.01035,-1.15765 4.69691,2.69974 7.1154,6.64986 5.5722,9.10105 -2.04369,3.24616 -4.13951,2.60289 -6.29491,-1.93211 z"
-       id="path3133"
-       inkscape:connector-curvature="0" />
-  </g>
-</svg>
diff --git a/themes/xiangqi/BlackPawn.svg b/themes/xiangqi/BlackPawn.svg
deleted file mode 100644 (file)
index 87b5191..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg3076"
-   version="1.1"
-   inkscape:version="0.48.2 r9819"
-   width="128.20163"
-   height="128.2204"
-   sodipodi:docname="BlackPawn.svg">
-  <metadata
-     id="metadata3082">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3080" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1027"
-     inkscape:window-height="709"
-     id="namedview3078"
-     showgrid="false"
-     inkscape:zoom="3.8688525"
-     inkscape:cx="80.500953"
-     inkscape:cy="57.054009"
-     inkscape:window-x="242"
-     inkscape:window-y="148"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3112"
-     fit-margin-top="3"
-     fit-margin-right="3"
-     fit-margin-bottom="3"
-     fit-margin-left="3"
-     showguides="true"
-     inkscape:guide-bbox="true" />
-  <g
-     inkscape:groupmode="layer"
-     id="layer2"
-     inkscape:label="LAYER1"
-     style="display:inline"
-     transform="translate(2.9999999,3.2204009)" />
-  <g
-     id="g3112"
-     transform="translate(77.688321,-24.876597)">
-    <path
-       style="fill:#ffeeaa;fill-opacity:1"
-       d="m -28.026162,148.26864 c -20.813762,-5.03971 -39.205374,-23.28072 -44.647259,-44.28164 -2.019867,-7.794918 -2.019867,-22.743226 0,-30.538144 4.366824,-16.852124 16.872253,-32.083395 32.430276,-39.499189 10.052638,-4.79163 16.292136,-6.231739 26.999996,-6.231739 17.0623903,0 30.67918,5.6522 42.97051,17.836647 12.41389,12.305935 18.00575,25.710733 18.00575,43.163353 0,17.452622 -5.59186,30.857412 -18.00575,43.163352 -8.46004,8.38649 -19.60408,14.65541 -29.76972975,16.74656 -6.96256995,1.43225 -21.34778025,1.24761 -27.98379325,-0.3592 z"
-       id="path3118"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#8c8c8c;fill-opacity:1"
-       d="m -23.364175,148.98294 c -4.978429,-0.83337 -12.634363,-3.62507 -19.02153,-6.93609 -18.725444,-9.70704 -30.680196,-28.68957 -31.723777,-50.373058 -1.205655,-25.051057 11.477895,-46.539217 33.857668,-57.360832 19.267239,-9.316568 37.6465288,-8.81389 57.113849,1.562079 17.89459,9.537723 30.77379,31.634623 30.77379,52.798753 0,22.754948 -13.19921,43.980048 -33.84588,54.426138 -10.4072399,5.2655 -26.04819,7.74209 -37.15412,5.88301 z m 24.4145598,-5.2873 c 10.8355302,-2.77126 16.9102302,-6.31872 25.6886802,-15.00149 11.55325,-11.42732 16.89676,-24.08354 16.89676,-40.020358 0,-15.936821 -5.34351,-28.593045 -16.89676,-40.020366 -8.77845,-8.682764 -14.85315,-12.230227 -25.6886802,-15.001487 -10.41634,-2.664051 -20.2071598,-2.55187 -30.2127868,0.346171 -10.429532,3.020821 -17.942131,7.634865 -25.549361,15.691758 -10.719666,11.353305 -15.652408,23.638804 -15.652408,38.983924 0,15.345118 4.932742,27.630608 15.652408,38.983918 14.623686,15.48809 34.998908,21.34828 55.7621478,16.03793 z m -25.9145598,-1.19213 c -19.154104,-3.62623 -37.365488,-21.43649 -41.994427,-41.06946 -4.461291,-18.921908 0.889847,-37.38752 14.883677,-51.360333 21.888176,-21.855301 55.3555301,-21.855301 77.21083,0 21.96529,21.965294 21.96529,55.234853 0,77.200143 -13.47851,13.47851 -31.0828702,18.82996 -50.10008,15.22965 z m 21.0663398,-3.90542 C 15.218365,135.15067 31.634975,119.50625 36.096045,100.58072 43.011405,71.243131 23.620385,42.802873 -6.2679952,38.446598 -27.097855,35.410616 -48.409814,46.031285 -58.082979,64.268237 -78.338242,102.45577 -46.313441,146.30567 -3.7978352,138.59809 z m -12.7546498,-28.49029 0.31169,-11.569908 -14.132093,0.21977 c -13.285622,0.2066 -14.260977,0.0909 -16.283909,-1.93205 l -2.151818,-2.15182 16.222222,0 c 13.273138,0 16.222218,-0.25567 16.222218,-1.40638 0,-0.88602 -0.69824,-1.22379 -1.88714,-0.91288 -2.0398,0.53342 -3.76399,-1.16028 -2.17862,-2.1401 0.85953,-0.53121 -0.81879,-3.74287 -5.17797,-9.90867 -1.23549,-1.74753 -1.50553,-1.601277 -4.186533,2.2674 -4.23286,6.10802 -10.534937,11.53543 -11.858079,10.21228 -0.767287,-0.76728 -0.125406,-2.25768 2.240006,-5.20112 3.607543,-4.48911 8.62877,-13.96078 10.075781,-19.006212 l 0.910039,-3.173121 -6.421403,0.515448 c -5.4265,0.435588 -6.685153,0.224008 -8.123728,-1.365599 -1.658823,-1.832979 -1.340608,-1.881047 12.452663,-1.881047 9.216444,0 14.154984,-0.366217 14.154984,-1.04966 0,-0.577313 -0.71329,-2.429019 -1.58509,-4.114902 -2.28833,-4.425126 -0.52996,-5.687696 4.01189,-2.880678 3.2949,2.036358 4.0766998,3.492705 3.64785,6.79524 -0.11588,0.892401 1.7655998,1.25 6.5767998,1.25 5.94521,0 7.0683903,-0.315463 9.5341503,-2.677813 l 2.79504,-2.677813 3.3995599,3.927813 3.39957,3.927813 -8.6002599,0.292001 -8.6002703,0.292002 2.9137,1.911362 c 2.3974403,1.572696 2.6225303,2.023097 1.27037,2.541967 -0.90382,0.346832 -2.34156003,1.696255 -3.19497003,2.998719 -1.51717997,2.315503 -1.42949997,2.449195 3.94643033,6.01753 5.82034,3.86332 7.4135299,6.84336 5.53508,10.35328 -1.70103,3.17841 -3.60241,2.53234 -6.3511803,-2.15808 -1.37026003,-2.33817 -3.47927,-5.14524 -4.68669,-6.23794 l -2.1953,-1.98672 -3.83456,4.48794 -3.8345598,4.48794 2.5117498,1.32675 c 2.40592,1.27085 2.43842,1.40779 0.77124,3.25 -1.7067098,1.88588 -1.5396298,1.92325 8.60001997,1.92325 9.10772033,0 10.60537023,-0.2488 12.56191023,-2.08688 l 2.22138,-2.08687 3.51798,3.83687 3.51799,3.83688 -15.9249199,0.27477 -15.9249101,0.27477 0,10.499978 c 0,10.35091 -0.0364,10.51382 -2.5651,11.47523 -1.4108,0.53638 -2.8733,0.97613 -3.25,0.97721 -0.37669,0.001 -0.54464,-5.2045 -0.37321,-11.56795 z m 7.0297798,-34.434009 c 5.55066,-10.41347 5.77662,-10.006049 -5.5240798,-9.959962 -9.36188,0.03818 -9.68717,0.110634 -7.01081,1.561579 l 2.80657,1.521541 -2.55657,2.011001 c -3.43904,2.705146 -3.22059,4.29234 0.9451,6.866878 3.53147,2.182574 5.28114,5.781494 3.98272,8.192124 -0.38714,0.71876 0.4502,-0.0432 1.86077,-1.69316 1.41056,-1.65 3.88389,-5.475001 5.4962998,-8.500001 z"
-       id="path3116"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#000000;fill-opacity:1"
-       d="m -23.077764,148.93922 c -13.263677,-2.37563 -25.061997,-8.76977 -34.520829,-18.70868 -17.584257,-18.47674 -21.505209,-44.516329 -10.249598,-68.068997 7.110901,-14.87975 23.94885,-28.343616 40.407507,-32.310425 13.53489,-3.262131 31.5240803,-0.669103 43.8083,6.31469 7.27849,4.137948 16.76198,13.112047 21.37404,20.225958 12.34835,19.046825 12.34835,46.109994 0,65.156824 -4.61637,7.12057 -14.10364,16.09517 -21.37404,20.21904 -10.9580397,6.21555 -27.74396,9.26741 -39.44538,7.17159 z m 27.5272303,-5.62553 c 13.2290997,-4.33825 21.7352497,-10.70593 29.4842197,-22.07181 10.67138,-15.65236 12.97976,-33.884399 6.59803,-52.112623 -2.50384,-7.15174 -9.8749,-18.023051 -15.69186,-23.14334 -19.2511497,-16.945545 -48.5732,-19.038632 -69.976552,-4.995116 -11.09065,7.276977 -20.077294,19.480416 -23.917895,32.479376 -2.376826,8.044644 -2.376826,22.955354 0,31.000003 9.363404,31.69153 42.275877,49.08425 73.5040573,38.84351 z m -25.9395403,-0.37063 c -26.985545,-4.13745 -46.40285,-26.72244 -46.40285,-53.972879 0,-15.022476 5.487806,-28.347408 15.85603,-38.500004 21.691668,-21.240546 55.8554303,-21.240478 77.09606,1.53e-4 21.2744,21.274409 21.2744,55.72528 0,76.99969 -12.03445,12.03445 -30.0085497,18.00907 -46.54924,15.47304 z m 20.0215903,-4.05229 C 10.534686,136.12492 22.736136,127.3914 29.754206,116.54231 c 10.588,-16.36778 10.588,-38.776489 0,-55.144263 -9.73543,-15.049808 -25.1823897,-23.42787 -43.19489,-23.42787 -13.49546,0 -24.518211,4.171739 -34.349162,13 -18.392037,16.516175 -22.220533,44.896284 -8.845724,65.572133 6.824658,10.5501 17.841499,18.76412 29.299516,21.84535 6.34975,1.70754 19.5282703,1.96386 25.8675703,0.50311 z m -14.9722003,-28.47261 0,-11.447979 -14.377551,0 c -11.560099,0 -14.621507,-0.29395 -15.622445,-1.5 -1.097533,-1.32245 0.60432,-1.5 14.377555,-1.5 15.220201,0 15.622441,-0.0543 15.622441,-2.10699 0,-1.44161 -0.46358,-1.9291 -1.46797,-1.54368 -3.02907,1.16236 -2.28753,-1.16068 2.04925,-6.41977 4.46011,-5.40864 10.4187203,-16.040121 10.4187203,-18.589286 0,-1.035802 -2.32853,-1.331183 -10.2500003,-1.30024 -9.76785,0.03815 -10.11742,0.111903 -7.43147,1.56784 l 2.81852,1.527803 -2.56852,2.568523 c -1.41269,1.412688 -2.56853,2.860136 -2.56853,3.216552 0,0.356416 1.36027,1.451561 3.02283,2.433658 4.41672,2.60902 6.39557,5.99529 5.01306,8.57853 -1.69277,3.16297 -3.31017,2.49901 -5.92657,-2.43294 -1.31298,-2.475 -2.88721,-4.47893 -3.49828,-4.45316 -0.61107,0.0258 -2.686036,2.30167 -4.611036,5.05758 -3.886246,5.56371 -8.433504,9.36372 -10.026738,8.37905 -0.623434,-0.3853 0.222469,-2.08131 2.110712,-4.2319 3.210243,-3.65626 10.916026,-18.508525 10.916026,-21.039739 0,-1.082653 -1.445474,-1.319625 -6.472493,-1.061105 -5.126878,0.263655 -6.834607,-0.02926 -8.214286,-1.408937 -1.655723,-1.655724 -1.039406,-1.741793 12.472493,-1.741793 12.954502,0 14.214282,-0.157535 14.214282,-1.777494 0,-0.977621 -0.72707,-2.815543 -1.61573,-4.08427 -2.47525,-3.533923 -0.37329,-4.604037 3.68672,-1.876916 2.23912,1.504026 3.53882,3.246344 3.74544,5.020981 0.31119,2.672803 0.43402,2.717699 7.4355403,2.717699 5.9614,0 7.50046,-0.358241 9.46401,-2.202902 l 2.34489,-2.202903 3.7028997,3.702903 3.7029,3.702902 -8.9833297,0.05245 c -8.44382,0.0493 -8.84874,0.146361 -6.74214997,1.616119 L 2.5416863,69.202414 0.05050633,72.16302 c -1.37015003,1.628333 -2.49038003,3.263579 -2.48940003,3.63388 9.9e-4,0.370301 2.05451003,1.970141 4.56339,3.555201 2.50888,1.58506 5.25983,3.94756 6.11322,5.25 1.40823,2.14923 1.40024,2.59911 -0.0864,4.86807 -0.90093,1.375 -1.81319,2.5 -2.02723,2.5 -0.21404,0 -2.47641,-2.925 -5.02747,-6.5 -2.55107,-3.575 -4.81582,-6.5 -5.03278,-6.5 -0.21696,0 -2.41629,2.1375 -4.88739,4.75 l -4.4929103,4.75 3.18792,1.67097 c 2.6725903,1.40086 2.9050203,1.78186 1.4379003,2.35699 -0.9625,0.37731 -1.7500003,1.31288 -1.7500003,2.07903 0,1.0949 2.0748703,1.39302 9.69528033,1.39302 9.02753997,0 9.87843997,-0.17547 12.35451967,-2.54771 l 2.65924,-2.54772 3.33619,3.79772 3.3362,3.79771 -15.6907197,0.27539 -15.6907103,0.27539 0,10.376789 0,10.37678 -3,1.0458 -3,1.04581 0,-11.44798 z"
-       id="path3114"
-       inkscape:connector-curvature="0" />
-  </g>
-</svg>
diff --git a/themes/xiangqi/BlackRook.svg b/themes/xiangqi/BlackRook.svg
deleted file mode 100644 (file)
index 4790598..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg3076"
-   version="1.1"
-   inkscape:version="0.48.2 r9819"
-   width="128.20163"
-   height="128.2204"
-   sodipodi:docname="BlackRook.svg">
-  <metadata
-     id="metadata3082">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3080" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1027"
-     inkscape:window-height="709"
-     id="namedview3078"
-     showgrid="false"
-     inkscape:zoom="3.8688525"
-     inkscape:cx="80.500953"
-     inkscape:cy="57.054009"
-     inkscape:window-x="147"
-     inkscape:window-y="82"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3116"
-     fit-margin-top="3"
-     fit-margin-right="3"
-     fit-margin-bottom="3"
-     fit-margin-left="3" />
-  <g
-     inkscape:groupmode="layer"
-     id="layer2"
-     inkscape:label="LAYER1"
-     style="display:inline"
-     transform="translate(2.9999999,3.2204049)" />
-  <g
-     id="g3116">
-    <path
-       style="fill:#ffeeaa;fill-opacity:1"
-       d="M 49.662159,123.39204 C 28.848397,118.35233 10.456785,100.11133 5.0149003,79.110414 c -2.019867,-7.794921 -2.019867,-22.743229 0,-30.538147 C 9.3817243,31.720143 21.887153,16.488872 37.445176,9.073078 47.497814,4.281448 53.737314,2.841339 64.445174,2.841339 c 17.06239,0 30.67918,5.6522 42.970506,17.836647 12.41389,12.305935 18.00575,25.710733 18.00575,43.163353 0,17.452615 -5.59186,30.857415 -18.00575,43.163341 -8.460046,8.38649 -19.604076,14.65541 -29.769726,16.74656 -6.96257,1.43225 -21.347782,1.24761 -27.983795,-0.3592 z"
-       id="path3122"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#8c8c8c;fill-opacity:1"
-       d="M 54.32415,124.10634 C 49.345717,123.27297 41.689783,120.48127 35.302616,117.17025 16.577172,107.46322 4.6224201,88.480694 3.5788391,66.797199 2.3731841,41.746143 15.056734,20.257983 37.436507,9.436368 56.70375,0.11979998 75.083038,0.62247798 94.550348,10.998447 112.44495,20.53617 125.32415,42.63307 125.32415,63.797199 c 0,22.754955 -13.19921,43.980051 -33.845882,54.426131 -10.40724,5.26551 -26.04819,7.74209 -37.154118,5.88301 z m 24.414558,-5.2873 c 10.83553,-2.77126 16.91023,-6.31872 25.688682,-15.00149 11.55325,-11.427306 16.89676,-24.083536 16.89676,-40.020351 0,-15.93682 -5.34351,-28.593044 -16.89676,-40.020365 C 95.648938,15.09407 89.574238,11.546607 78.738708,8.775347 68.322368,6.111296 58.531548,6.223477 48.525919,9.121518 38.096387,12.142339 30.583788,16.756383 22.976558,24.813276 12.256892,36.166581 7.3241501,48.45208 7.3241501,63.797199 c 0,15.345115 4.9327419,27.630615 15.6524079,38.983921 14.623686,15.48808 34.99891,21.34828 55.76215,16.03792 z M 52.82415,117.62691 C 33.670042,114.00068 15.458658,96.190434 10.829719,76.557464 6.3684281,57.635552 11.719566,39.169938 25.713396,25.197125 c 21.888176,-21.855301 55.355532,-21.855301 77.210834,0 21.96529,21.965294 21.96529,55.234859 0,77.200145 -13.478512,13.4785 -31.082872,18.82995 -50.10008,15.22964 z m 21.066338,-3.90542 C 92.906688,110.27407 109.3233,94.629664 113.78437,75.704131 120.69973,46.366539 101.30871,17.926281 71.420328,13.570006 50.590469,10.534024 29.278507,21.154693 19.605342,39.391645 -0.64992093,77.579174 31.37488,121.42907 73.890488,113.72149 z m -13.56634,-22.491286 0,-7.56699 -14.070401,0.21881 c -13.2219,0.20562 -14.200167,0.0891 -16.222223,-1.93301 l -2.151818,-2.15182 16.222222,0 16.22222,0 0,-3.5 0,-3.499995 -6.999998,0 c -5.182741,0 -7,0.347742 -7,1.339485 0,1.102376 -3.87654,3.66051 -5.547053,3.66051 -0.249121,0 -0.452947,-7.199995 -0.452947,-15.999995 0,-8.8 0.3375,-15.984054 0.75,-15.964565 0.4125,0.01949 1.875,0.678544 3.25,1.464565 1.464998,0.837469 5.294504,1.443799 9.25,1.464565 6.542778,0.03435 6.749998,-0.04131 6.749998,-2.464565 l 0,-2.5 -12.34501,0 c -11.075021,0 -12.531214,-0.20575 -14.154988,-2 -1.801876,-1.99105 -1.746633,-2 12.345012,-2 l 14.154986,0 0,-5.5 c 0,-3.025 0.14484,-5.5 0.32186,-5.5 0.17703,0 2.504,0.743528 5.17105,1.652284 4.84055,1.64934 4.84532,1.655418 2.67814,3.410293 -1.19408,0.966904 -2.17105,2.698377 -2.17105,3.847716 0,1.967943 0.53523,2.089707 9.18555,2.089707 8.06858,0 9.46838,-0.265706 11.51145,-2.18507 l 2.3259,-2.18507 3.44964,3.343522 c 1.8973,1.838937 3.21559,3.722219 2.92953,4.18507 -0.28606,0.462851 -7.01854,0.841548 -14.96108,0.841548 l -14.44099,0 0,2.5 c 0,2.417373 0.22096,2.5 6.68555,2.5 5.3084,0 7.12391,-0.411821 8.81364,-1.999237 l 2.12809,-1.999238 2.83881,2.963082 c 2.37743,2.481497 2.63126,3.213173 1.56176,4.501841 -0.88247,1.063308 -1.22235,4.725301 -1.1,11.851739 0.17527,10.208487 0.15073,10.324981 -2.42244,11.497396 -3.62179,1.650192 -4.50541,1.490242 -4.50541,-0.815583 0,-1.809524 -0.66667,-2 -7,-2 l -7,0 0,3.499995 0,3.5 10.68555,0 c 9.63871,0 10.91537,-0.2159 13.03144,-2.20385 l 2.3459,-2.203849 4.20385,4.203849 4.203852,4.20385 -17.235292,0 -17.2353,0 0,6.52476 c 0,6.08375 -0.17337,6.59066 -2.5651,7.5 -1.4108,0.53638 -2.7608,0.97524 -3,0.97524 -0.23919,0 -0.4349,-3.40514 -0.4349,-7.56699 z m 0,-25.433005 0,-3 -6.999998,0 -7,0 0,3 0,3 7,0 6.999998,0 0,-3 z m 20,0 0,-3 -7,0 -7,0 0,3 0,3 7,0 7,0 0,-3 z m -20,-10.5 0,-3.5 -6.999998,0 -7,0 0,3.5 0,3.5 7,0 6.999998,0 0,-3.5 z m 20,0 0,-3.5 -7,0 -7,0 0,3.5 0,3.5 7,0 7,0 0,-3.5 z"
-       id="path3120"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#000000;fill-opacity:1"
-       d="M 54.61056,124.06263 C 41.34688,121.687 29.54856,115.29286 20.089728,105.35394 2.5054712,86.877204 -1.4154808,60.837622 9.8401302,37.284955 16.951031,22.405205 33.78898,8.9413388 50.247641,4.9745298 63.782529,1.7123988 81.771719,4.3054268 94.055939,11.28922 c 7.278491,4.137948 16.761981,13.112047 21.374041,20.225958 12.34835,19.046825 12.34835,46.109996 0,65.156826 -4.61637,7.120566 -14.10364,16.095156 -21.374041,20.219026 -10.95805,6.21555 -27.74397,9.26741 -39.445379,7.17159 z m 27.527229,-5.62554 c 13.2291,-4.33825 21.735251,-10.70593 29.484221,-22.071806 10.67138,-15.65235 12.97976,-33.884392 6.59803,-52.112615 -2.50384,-7.15174 -9.8749,-18.023051 -15.69186,-23.14334 C 83.277029,4.1637838 53.954981,2.0706968 32.551625,16.114213 21.460975,23.39119 12.474331,35.594629 8.6337302,48.593589 c -2.376826,8.044645 -2.376826,22.955355 0,30.999995 C 17.997134,111.28512 50.909604,128.67783 82.137789,118.43709 z M 56.198245,118.06646 C 29.212702,113.92901 9.7953972,91.344034 9.7953972,64.093589 c 0,-15.022472 5.4878058,-28.347404 15.8560298,-38.5 21.691668,-21.2405462 55.855432,-21.2404782 77.096063,1.53e-4 21.2744,21.274409 21.2744,55.725282 0,76.999688 -12.034451,12.03444 -30.008551,18.00906 -46.549245,15.47303 z m 20.021594,-4.05228 c 12.00316,-2.76585 24.204621,-11.49937 31.222691,-22.348456 10.588,-16.367783 10.588,-38.776487 0,-55.144265 -9.735431,-15.049808 -25.182401,-23.42787 -43.194891,-23.42787 -13.495463,0 -24.518213,4.171739 -34.349164,13 -18.392037,16.516175 -22.2205328,44.896287 -8.845724,65.572135 6.824658,10.550086 17.841499,18.764116 29.299521,21.845336 6.349747,1.70754 19.528267,1.96386 25.867567,0.50312 z m -15.9722,-23.567466 0,-7.64688 -14.465046,0.54145 c -11.648022,0.43601 -14.690447,0.26987 -15.622444,-0.85312 -0.981512,-1.18265 1.216686,-1.39458 14.465047,-1.39458 l 15.622443,0 0,-4 0,-3.999995 -6.999998,0 c -3.877001,0 -7,0.434686 -7,0.97432 0,0.535876 -1.35,1.672432 -3,2.525675 l -3,1.55137 0,-16.051365 0,-16.05136 2.95034,1.52568 c 1.826053,0.944289 5.636756,1.52568 10,1.52568 l 7.049658,0 0,-3.089237 0,-3.089237 -12.501165,0.302356 C 37.015206,43.47702 35.002766,43.277291 33.532188,41.806708 31.914697,40.189216 32.612517,40.093589 46.033355,40.093589 l 14.214284,0 0,-5 c 0,-5.474802 0.22099,-5.613288 6.13154,-3.842443 3.67546,1.101192 3.76632,1.225686 1.86602,2.556704 -1.09865,0.769531 -1.99756,2.49863 -1.99756,3.842443 0,2.413732 0.11115,2.443296 9.18555,2.443296 7.80123,0 9.50555,-0.300625 11.30889,-1.994779 l 2.12335,-1.994779 3.38727,3.494779 3.38728,3.494779 -14.69617,0 -14.69617,0 0,3 0,3 7.17126,0 c 5.32833,0 7.65098,-0.434138 9.03795,-1.689328 1.76642,-1.598589 2.01235,-1.542113 4.57874,1.05147 2.48332,2.509643 2.56446,2.824984 0.96205,3.739017 -1.49686,0.853829 -1.75,2.558962 -1.75,11.788016 0,10.538694 -0.0582,10.816304 -2.5,11.928871 -2.20811,1.006079 -2.5,0.908069 -2.5,-0.839485 0,-1.795543 -0.69375,-1.978561 -7.5,-1.978561 l -7.5,0 0,3.999995 0,4 10.32569,0 c 9.68655,0 10.46926,-0.15282 12.64521,-2.46902 l 2.31952,-2.469016 3.90091,3.089576 c 2.14549,1.69926 3.66838,3.32209 3.38419,3.60628 -0.28419,0.28419 -7.72994,0.42712 -16.54611,0.31762 l -16.02941,-0.19909 0,6.94519 c 0,6.35711 -0.19052,6.99626 -2.25,7.54818 -1.2375,0.33164 -2.5875,0.60912 -3,0.61663 -0.4125,0.008 -0.75,-3.42744 -0.75,-7.63322 z m 0,-23.853125 0,-3.5 -6.999998,0 -7,0 0,3.5 0,3.5 7,0 6.999998,0 0,-3.5 z m 20.81336,-0.25 0.31336,-3.25 -7.56336,0 -7.56336,0 0,3.54381 0,3.543809 7.25,-0.293809 7.25,-0.29381 0.31336,-3.25 z m -20.81336,-10.25 0,-4 -6.999998,0 -7,0 0,4 0,4 7,0 6.999998,0 0,-4 z m 21,0 0,-4 -7.5,0 -7.5,0 0,4 0,4 7.5,0 7.5,0 0,-4 z"
-       id="path3118"
-       inkscape:connector-curvature="0" />
-  </g>
-</svg>
diff --git a/themes/xiangqi/WhiteAdvisor.svg b/themes/xiangqi/WhiteAdvisor.svg
deleted file mode 100644 (file)
index a12769d..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg3076"
-   version="1.1"
-   inkscape:version="0.48.2 r9819"
-   width="128.28036"
-   height="128.00662"
-   sodipodi:docname="WhiteAdvisor.svg">
-  <metadata
-     id="metadata3082">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3080" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1027"
-     inkscape:window-height="709"
-     id="namedview3078"
-     showgrid="false"
-     inkscape:zoom="2.9259416"
-     inkscape:cx="70.944653"
-     inkscape:cy="57.043811"
-     inkscape:window-x="233"
-     inkscape:window-y="138"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3116"
-     fit-margin-top="3"
-     fit-margin-right="3"
-     fit-margin-bottom="3"
-     fit-margin-left="3" />
-  <g
-     inkscape:groupmode="layer"
-     id="layer2"
-     inkscape:label="LAYER1"
-     style="display:inline"
-     transform="translate(3.0000004,3.0066283)" />
-  <g
-     id="g3116"
-     transform="translate(-76.309372,0)">
-    <g
-       id="g3054"
-       transform="translate(-157.55612,-28.708707)">
-      <path
-         style="fill:#ffeeaa;fill-opacity:1"
-         d="m 283.58247,151.91789 c -15.90591,-3.85136 -32.57202,-17.14578 -39.55249,-31.55071 -4.84168,-9.99129 -6.66449,-17.6496 -6.66449,-27.999996 0,-17.059894 5.86764,-31.107265 18.02948,-43.163353 8.46006,-8.386484 19.60409,-14.655406 29.76974,-16.746557 7.6666,-1.577077 21.4508,-1.338095 28.55643,0.495094 13.93484,3.595061 29.74754,15.238355 37.07348,27.298144 6.07794,10.005378 8.57087,19.346849 8.57087,32.116672 0,12.769826 -2.49293,22.111296 -8.57087,32.116666 -7.45235,12.26789 -23.65834,24.07552 -37.53224,27.34589 -7.67992,1.81032 -22.38706,1.854 -29.67991,0.0881 z"
-         id="path3062"
-         inkscape:connector-curvature="0" />
-      <path
-         style="fill:#ffaaaa;fill-opacity:1"
-         d="m 284.07915,152.02986 c -22.77192,-5.76321 -40.48695,-24.16496 -45.7385,-47.51158 -1.30021,-5.780248 -1.30021,-18.219748 0,-23.999996 6.49326,-28.86683 31.07825,-48.928839 60.02892,-48.985219 16.49596,-0.03213 31.4957,6.339849 43.53036,18.491945 11.57219,11.685107 17.3796,25.884273 17.3796,42.493274 0,21.035156 -10.09311,39.573086 -27.86102,51.172096 -4.06581,2.6542 -10.37287,5.77949 -14.01568,6.94511 -8.58285,2.74631 -25.22956,3.44286 -33.32368,1.39437 z m 27.14749,-4.06074 c 10.77078,-2.53869 18.73184,-7.0565 27.15613,-15.41078 11.55718,-11.46114 16.89676,-24.11428 16.89676,-40.040056 0,-15.925774 -5.33958,-28.578916 -16.89676,-40.040059 -8.42429,-8.354285 -16.38535,-12.872095 -27.15613,-15.410784 -31.95647,-7.532192 -64.4965,14.67302 -69.1692,47.200843 -5.67247,39.487436 30.513,72.812166 69.1692,63.700836 z m -25.67496,-1.8877 c -19.75333,-4.78648 -37.08872,-22.62169 -41.17518,-42.36236 -6.98773,-33.756083 19.63783,-66.268388 54.20225,-66.185995 16.28698,0.03882 31.90568,7.580676 42.74537,20.64059 15.94184,19.207115 15.94184,49.482145 0,68.689255 -13.74183,16.55648 -35.63067,24.09911 -55.77244,19.21851 z m 22.29419,-3.63884 c 23.47475,-4.2557 41.43366,-25.89478 41.43366,-49.924296 0,-34.722122 -34.62465,-59.310779 -67.56161,-47.978803 -7.94554,2.733665 -14.39183,7.081077 -20.86151,14.069109 -17.818,19.245561 -17.818,48.57382 0,67.81939 12.76783,13.79078 28.90992,19.29221 46.98946,16.0146 z m -30.8794,-34.36608 c 0.37079,-11.526238 0.25626,-19.534967 -0.27888,-19.501603 -0.49943,0.03114 -2.85541,2.731138 -5.23549,6 -2.38009,3.268865 -4.75672,5.943383 -5.28139,5.943383 -2.30003,0 -1.82134,-3.241148 1.10737,-7.497883 4.80636,-6.985807 10.57133,-19.127977 13.05771,-27.502113 1.22475,-4.125 2.35281,-7.652173 2.50678,-7.838161 0.15397,-0.185989 2.36155,0.88174 4.90574,2.372731 4.48563,2.628754 4.56309,2.754809 2.55649,4.160283 -1.94871,1.364928 -8.02527,12.123862 -8.02527,14.209243 0,0.528621 0.90653,1.248851 2.01452,1.600513 1.10799,0.351661 1.75643,1.056985 1.44098,1.567387 -0.33765,0.546333 3.41963,0.928004 9.13552,0.928004 l 9.70906,0 -0.67817,-12 c -0.373,-6.6 -0.32802,-11.979666 0.1,-11.954813 0.42797,0.02485 2.72664,1.064869 5.10815,2.311147 3.80054,1.988874 4.13681,2.426305 2.75,3.577257 -1.20994,1.004161 -1.58002,3.273524 -1.58002,9.688854 l 0,8.377555 5.15561,0 c 3.93192,0 5.91875,-0.582079 8.37088,-2.452408 l 3.21527,-2.452408 3.12912,3.89377 c 1.72102,2.141573 3.12912,4.145157 3.12912,4.452408 0,0.307251 -5.175,0.558638 -11.5,0.558638 l -11.5,0 0,14.999996 0,15 4.18555,0 c 2.92741,0 4.88469,-0.65681 6.51145,-2.18507 l 2.3259,-2.18507 3.48855,3.38124 c 1.9187,1.85968 3.48855,3.74296 3.48855,4.18507 0,0.44211 -9.15526,0.80383 -20.34501,0.80383 -19.07502,0 -20.458,-0.12484 -22.15499,-2 -1.79745,-1.98616 -1.74663,-2 7.34501,-2 l 9.15499,0 0,-15 0,-14.999996 -8.67126,0 c -6.73513,0 -9.0879,-0.377058 -10.53727,-1.688712 -1.81599,-1.643454 -1.86292,-1.129774 -1.75114,19.166818 0.12176,22.10957 0.26428,21.42236 -4.76145,22.95915 l -2.22112,0.67918 0.62918,-19.55822 z"
-         id="path3060"
-         inkscape:connector-curvature="0" />
-      <path
-         style="fill:#be0006;fill-opacity:1"
-         d="m 285.10358,151.86938 c -13.09937,-2.82357 -27.01418,-11.73165 -35.19119,-22.52895 -29.43297,-38.864653 -4.05944,-94.257845 44.69119,-97.565729 15.03679,-1.020295 32.75468,5.048068 44.20066,15.138697 6.98787,6.160418 14.38365,17.478505 17.35972,26.566329 3.49457,10.671179 3.49457,27.228293 0,37.899473 -9.57046,29.22474 -40.79171,47.0146 -71.06038,40.49018 z m 25.20078,-3.53001 c 19.91265,-4.09618 37.20882,-20.44695 43.20287,-40.84141 2.11031,-7.18022 2.11031,-22.956776 0,-30.136998 -4.65804,-15.84876 -15.67571,-29.140805 -29.70593,-35.838138 -17.40873,-8.310061 -34.37987,-8.279803 -51.69772,0.09217 -9.42445,4.556065 -20.60176,15.980411 -25.25627,25.814465 -10.83806,22.898702 -6.65328,47.319951 11.15303,65.086081 8.08071,8.06248 15.85174,12.62665 26.10324,15.33126 6.63945,1.75165 18.95454,1.98318 26.20078,0.49257 z m -23.20078,-2.46999 c -25.48955,-5.49427 -43.36079,-27.51965 -43.36079,-53.439919 0,-26.610349 18.06284,-48.218977 44.86079,-53.667107 17.21382,-3.499639 35.61014,2.37785 48.41081,15.466903 3.62406,3.705698 7.83652,9.058177 9.36104,11.894396 3.55164,6.607486 6.72815,19.027036 6.72815,26.305808 0,7.278768 -3.17651,19.698319 -6.72815,26.305809 -4.62352,8.60162 -14.50363,17.77059 -24.27185,22.52485 -12.32648,5.99938 -22.3977,7.32569 -35,4.60926 z m 23.86904,-3.89268 c 12.59604,-3.35256 23.29391,-11.10458 30.32585,-21.97511 10.588,-16.36778 10.588,-38.776481 0,-55.144259 -15.56792,-24.066126 -47.85667,-30.706995 -71.8542,-14.778344 -29.67969,19.700259 -29.68405,64.997793 -0.008,84.695533 11.78023,7.81927 28.39441,10.70007 41.5365,7.20218 z m -33.90231,-35.29724 -0.0333,-19.749999 -2.02244,2.5 c -7.89813,9.763108 -9.21573,11.095289 -10.09964,10.211378 -0.60304,-0.60304 0.3763,-3.02919 2.67039,-6.615425 5.33368,-8.337893 11.01073,-20.541597 13.0356,-28.022066 0.97871,-3.615638 2.22207,-6.573887 2.76302,-6.573887 0.54095,0 2.52649,0.953592 4.41231,2.119093 l 3.42876,2.119093 -2.07068,1.92913 c -1.70827,1.591496 -8.05078,12.768623 -8.05078,14.187536 0,0.226537 0.94528,0.659081 2.10062,0.961209 1.15668,0.302479 1.8042,1.028928 1.44098,1.616631 -0.45079,0.729392 2.52511,1.067308 9.39938,1.067308 l 10.05902,0 0,-11.5 c 0,-6.325 0.17004,-11.5 0.37788,-11.5 0.20783,0 2.06705,0.705782 4.13159,1.568404 2.7935,1.167199 3.46425,1.857873 2.62213,2.7 -0.67068,0.670674 -1.1316,4.716015 -1.1316,9.931596 l 0,8.8 5.68555,0 c 4.48381,0 6.18118,-0.465622 8.03043,-2.202902 l 2.34488,-2.202903 3.7029,3.702903 3.70291,3.702902 -11.73334,0 -11.73333,0 0,15.499999 0,15.5 4.67126,0 c 2.9609,0 5.34715,-0.61167 6.51723,-1.67058 1.74003,-1.57471 2.02117,-1.50297 4.89875,1.25 l 3.05278,2.92058 -19.82001,0.53386 c -18.06434,0.48658 -19.99471,0.37585 -21.79223,-1.25 -1.90763,-1.72543 -1.67015,-1.78386 7.25,-1.78386 l 9.22222,0 0,-15.60032 0,-15.600328 -8.84573,0.350324 c -6.45243,0.255541 -9.29331,-0.021 -10.5,-1.02212 -1.5299,-1.269263 -1.65427,0.175328 -1.65427,19.214814 0,19.33057 -0.11807,20.65045 -1.93426,21.62245 -3.96011,2.11939 -4.06472,1.64177 -4.09901,-18.71482 z"
-         id="path3058"
-         inkscape:connector-curvature="0" />
-      <path
-         style="fill:#000000;fill-opacity:1"
-         d="m 288.1032,152.65072 c -29.56461,-5.29469 -50.73771,-30.31819 -50.73771,-59.964527 0,-15.980042 5.20468,-29.257829 16.068,-40.991519 23.51471,-25.398695 62.86935,-26.250782 87.12142,-1.88631 25.65423,25.773134 23.62735,66.530676 -4.47478,89.981226 -5.47562,4.56927 -16.55933,10.11957 -23.53944,11.78765 -6.84855,1.63665 -18.44778,2.14618 -24.43749,1.07348 z m 27.67766,-5.5756 c 19.20531,-6.00261 34.2766,-22.79392 38.4956,-42.88893 1.8531,-8.826239 1.8531,-14.173755 0,-22.999997 -4.52579,-21.556238 -22.18154,-39.664048 -43.42839,-44.540325 -22.12383,-5.077551 -46.47359,4.13905 -59.6245,22.568411 -18.3395,25.700497 -12.4438,61.953071 12.99767,79.922501 15.49111,10.94145 33.21851,13.67084 51.55962,7.93834 z"
-         id="path3056"
-         inkscape:connector-curvature="0" />
-    </g>
-  </g>
-</svg>
diff --git a/themes/xiangqi/WhiteCanon.svg b/themes/xiangqi/WhiteCanon.svg
deleted file mode 100644 (file)
index 4d2321a..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg3076"
-   version="1.1"
-   inkscape:version="0.48.2 r9819"
-   width="128.28036"
-   height="128.00662"
-   sodipodi:docname="WhiteCanon.svg">
-  <metadata
-     id="metadata3082">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3080" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1027"
-     inkscape:window-height="709"
-     id="namedview3078"
-     showgrid="false"
-     inkscape:zoom="2.9259416"
-     inkscape:cx="80.486331"
-     inkscape:cy="57.043811"
-     inkscape:window-x="161"
-     inkscape:window-y="43"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3199"
-     fit-margin-top="3"
-     fit-margin-right="3"
-     fit-margin-bottom="3"
-     fit-margin-left="3" />
-  <g
-     inkscape:groupmode="layer"
-     id="layer2"
-     inkscape:label="LAYER1"
-     style="display:inline"
-     transform="translate(2.9999995,3.0066293)" />
-  <g
-     id="g3199">
-    <path
-       style="fill:#ffeeaa;fill-opacity:1"
-       d="M 49.716983,123.20918 C 33.811072,119.35782 17.144961,106.0634 10.164485,91.658475 5.322809,81.667177 3.5,74.008873 3.5,63.658473 3.5,46.598579 9.367636,32.551208 21.529485,20.49512 29.989538,12.108636 41.133569,5.8397136 51.299221,3.7485626 58.965819,2.1714856 72.750017,2.4104676 79.855655,4.2436566 93.79049,7.8387166 109.60319,19.482012 116.92913,31.541801 123.00707,41.547179 125.5,50.88865 125.5,63.658473 c 0,12.769823 -2.49293,22.111292 -8.57087,32.116672 -7.45235,12.267885 -23.65834,24.075515 -37.532243,27.345885 -7.67992,1.81032 -22.38706,1.854 -29.679904,0.0881 z"
-       id="path3207"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#ffaaaa;fill-opacity:1"
-       d="M 50.213652,123.32116 C 27.441734,117.55795 9.7267077,99.156185 4.4751507,75.809573 c -1.300201,-5.780248 -1.300201,-18.219752 0,-24 C 10.968417,22.942743 35.553401,2.8807343 64.504072,2.8243543 c 16.49596,-0.03213 31.495703,6.339849 43.530358,18.4919447 11.57219,11.685107 17.3796,25.884273 17.3796,42.493274 0,21.035162 -10.09311,39.573097 -27.861015,51.172107 -4.06581,2.6542 -10.372871,5.77949 -14.015684,6.94511 -8.582841,2.74631 -25.229552,3.44286 -33.323679,1.39437 z m 27.147495,-4.06074 c 10.770776,-2.53869 18.731838,-7.0565 27.156123,-15.41078 11.55718,-11.461155 16.89676,-24.114293 16.89676,-40.040067 0,-15.925774 -5.33958,-28.578916 -16.89676,-40.040059 C 96.092985,15.415229 88.131923,10.897419 77.361147,8.3587303 45.404677,0.82653833 12.864648,23.03175 8.1919447,55.559573 2.5194757,95.047015 38.704949,128.37175 77.361147,119.26042 z m -25.67496,-1.8877 C 31.932855,112.58624 14.597462,94.751015 10.51101,75.010352 3.5232697,41.254266 30.14884,8.7419613 64.713256,8.8243543 c 16.286976,0.03882 31.905679,7.5806757 42.745364,20.6405897 15.94184,19.207115 15.94184,49.482143 0,68.689261 C 93.716795,114.71069 71.827954,122.25332 51.686187,117.37272 z m 22.294189,-3.63884 c 23.474749,-4.2557 41.433654,-25.894785 41.433654,-49.924307 0,-34.722122 -34.624645,-59.3107787 -67.561605,-47.978803 -7.945535,2.733665 -14.391827,7.081077 -20.861512,14.069109 -17.8179953,19.245561 -17.8179953,48.573827 0,67.819386 12.767833,13.790795 28.909925,19.292225 46.989463,16.014615 z M 30.904303,95.793825 c -0.347109,-0.56163 1.19661,-3.75818 3.430487,-7.10344 6.636869,-9.93879 7.336578,-13.395083 7.834707,-38.700422 0.398788,-20.258774 0.591943,-22.257572 2.091946,-21.647717 0.908926,0.369541 2.890092,1.119887 4.402592,1.667435 2.845967,1.030284 3.481934,2.229498 1.75,3.299892 -0.55,0.339919 -0.980112,3.853976 -0.955804,7.809017 l 0.0442,7.190983 2.081313,-4 c 2.822045,-5.423585 2.682695,-5.369172 5.46665,-2.134616 1.356416,1.575961 2.681881,2.649713 2.945477,2.386117 0.263597,-0.263597 1.432491,-4.340499 2.597542,-9.059783 l 2.118275,-8.580516 4.101176,2.067319 c 2.255646,1.137025 4.251175,2.199505 4.434508,2.361065 0.183334,0.161561 -0.604166,1.231247 -1.75,2.377081 -4.097798,4.097794 -2.8745,5.083333 6.309674,5.083333 6.537964,0 8.520233,-0.331534 8.968615,-1.5 0.773702,-2.016234 1.615274,-1.855683 5.068154,0.966879 2.18942,1.789742 2.66558,2.728289 1.88427,3.714037 -0.57503,0.725496 -1.35117,8.066464 -1.72476,16.313261 -0.74001,16.33544 -1.321525,18.15611 -6.87828,21.535374 -3.157034,1.919907 -3.185761,1.919368 -3.922993,-0.07356 -0.408469,-1.104195 -2.777873,-2.880018 -5.265344,-3.946272 -4.42003,-1.894647 -6.01445,-4.009719 -3.022673,-4.009719 0.825,0 1.5,-0.45 1.5,-1 0,-0.55 -1.8,-1 -4,-1 l -4,0 0,9 0,9.000002 11.893011,0 c 13.227729,0 13.106989,0.0652 13.106989,-7.081789 0,-3.251546 0.34029,-3.918213 2,-3.918213 1.66339,0 2,0.666667 2,3.961045 0,2.744767 0.64927,4.565937 2.11448,5.930977 l 2.11447,1.96993 -2.56902,2.56903 c -2.53733,2.53733 -2.75989,2.56902 -18.043047,2.56902 -12.733963,0 -15.752287,-0.27826 -17.045454,-1.57143 -1.301036,-1.30104 -1.571429,-4.39827 -1.571429,-18.000001 0,-9.035714 -0.246585,-16.428571 -0.547966,-16.428571 -0.301381,0 -1.620077,1.2375 -2.930436,2.75 -1.772922,2.046421 -2.675392,2.462084 -3.52738,1.624654 -0.857268,-0.842619 -0.243496,-2.915316 2.443007,-8.25 1.973355,-3.91856 3.337983,-7.124654 3.032506,-7.124654 -0.305477,0 -2.786135,2.086579 -5.512572,4.636842 l -4.957159,4.636842 0,6.670657 0,6.670658 4.51775,3.184404 c 5.544752,3.908302 7.272126,7.171592 5.664204,10.700599 -0.626492,1.375 -1.584896,2.5 -2.129787,2.5 -0.54489,0 -2.631306,-2.56467 -4.636479,-5.699256 l -3.645769,-5.699255 -2.949609,5.92516 C 40.392916,90.061655 32.574131,98.495665 30.904303,95.793825 z M 84.807046,70.227786 c 0.333844,-0.869984 0.606989,-7.394984 0.606989,-14.5 l 0,-12.918213 -8.97432,0 c -8.926485,0 -8.982452,0.01573 -10.5,2.95034 -2.339799,4.524673 -1.964063,5.04966 3.614077,5.04966 3.73071,0 5.497871,-0.479757 6.446039,-1.75 1.210165,-1.621235 1.549387,-1.507179 4.610243,1.550083 2.98495,2.981448 3.134992,3.3966 1.553961,4.29969 -1.418182,0.810071 -1.75,2.398362 -1.75,8.376593 0,6.184816 -0.282812,7.450892 -1.75,7.834308 -0.9625,0.251528 -0.110645,0.509524 1.893011,0.573325 2.47743,0.07889 3.837217,-0.390092 4.25,-1.465786 z m -10.393011,-9.918213 0,-5.5 -4,0 -4,0 0,5.5 0,5.5 4,0 4,0 0,-5.5 z m -42.745894,1.354106 c -0.861192,-0.861192 -0.69275,-2.041349 0.677963,-4.75 1.003121,-1.982258 2.14503,-5.091657 2.537576,-6.909774 0.504591,-2.337068 1.199626,-3.213161 2.372037,-2.989957 2.415897,0.45994 2.924855,11.886231 0.631592,14.179493 -1.889869,1.88987 -4.594999,2.094407 -6.219168,0.470238 z"
-       id="path3205"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#be0006;fill-opacity:1"
-       d="M 51.238089,123.16067 C 38.138719,120.3371 24.223919,111.42902 16.046909,100.63172 -13.386072,61.767069 11.987459,6.3738772 60.738089,3.0659932 c 15.0368,-1.020295 32.75468,5.048068 44.200661,15.1386968 6.98787,6.160418 14.38365,17.478505 17.35972,26.566329 3.49457,10.671179 3.49457,27.228289 0,37.899468 -9.57046,29.224743 -40.791711,47.014603 -71.060381,40.490183 z m 25.20078,-3.53001 c 19.91265,-4.09618 37.208821,-20.446948 43.202871,-40.841408 2.11031,-7.180222 2.11031,-22.956776 0,-30.136998 -4.65804,-15.84876 -15.67571,-29.140805 -29.705931,-35.838138 -17.40872,-8.3100608 -34.37987,-8.2798028 -51.69772,0.09217 -9.42445,4.556065 -20.60176,15.980411 -25.25626,25.814465 -10.8380601,22.898702 -6.6532901,47.319952 11.15302,65.086079 8.08071,8.06248 15.85175,12.62665 26.10324,15.33126 6.63945,1.75165 18.95454,1.98318 26.20078,0.49257 z m -23.20078,-2.46999 C 27.748539,111.6664 9.8773089,89.641025 9.8773089,63.720753 c 0,-26.610349 18.0628301,-48.218977 44.8607801,-53.667107 17.21383,-3.4996388 35.61014,2.37785 48.410811,15.466903 3.62406,3.705698 7.83652,9.058177 9.36104,11.894396 3.55164,6.607486 6.72815,19.027036 6.72815,26.305808 0,7.278772 -3.17651,19.698322 -6.72815,26.305812 -4.62352,8.601607 -14.503631,17.770585 -24.271851,22.524845 -12.32647,5.99938 -22.3977,7.32569 -35,4.60926 z m 23.86904,-3.89268 c 12.59605,-3.35256 23.293911,-11.10459 30.325851,-21.975108 10.588,-16.367777 10.588,-38.776481 0,-55.144259 C 91.865059,12.082497 59.576309,5.4416282 35.578779,21.370279 5.8990889,41.070538 5.8947289,86.368075 35.570779,106.06581 c 11.78023,7.81927 28.39442,10.70007 41.5365,7.20218 z M 31.024469,95.579892 c -0.24408,-0.73225 0.99527,-3.36262 2.75412,-5.845257 7.57242,-10.688566 8.54986,-15.437331 8.4964,-41.278568 l -0.043,-20.764685 3.70167,1.546654 c 4.69941,1.96354 4.67163,1.928001 3.38541,4.331329 -1.39948,2.614962 -1.45822,15.502543 -0.0667,14.642556 0.55786,-0.344776 1.91599,-2.394337 3.01806,-4.55458 l 2.00377,-3.927715 2.79643,3.12975 2.79643,3.129749 2.18868,-7.384186 c 1.20377,-4.061302 2.18725,-8.219831 2.18551,-9.241175 -0.002,-1.372536 0.45337,-1.671953 1.74683,-1.147717 0.9625,0.390099 3.01544,1.167004 4.56208,1.726455 2.8058,1.01491 2.80773,1.021947 0.86494,3.147718 -1.07093,1.171793 -2.25419,3.143033 -2.62947,4.380533 -0.67035,2.210533 -0.53304,2.25 7.82836,2.25 7.33431,0 8.70144,-0.272343 9.89074,-1.970301 1.35222,-1.930566 1.44649,-1.914838 4.67435,0.779909 2.96418,2.474601 3.1322,2.88475 1.67666,4.092746 -1.34304,1.114625 -1.61766,3.618973 -1.61766,14.752209 0,14.753294 -0.99712,18.803084 -5.32838,21.641033 -3.36277,2.203371 -4.39584,2.148653 -5.16462,-0.273548 -0.3785,-1.192536 -2.19214,-2.446645 -4.56739,-3.158287 -2.16678,-0.649185 -3.93961,-1.784107 -3.93961,-2.522049 0,-0.737941 0.45,-1.341712 1,-1.341712 0.55,0 1,-0.45 1,-1 0,-0.55 -2.025,-1 -4.5,-1 l -4.5,0 0,8.377555 c 0,5.941137 0.40516,8.713807 1.39313,9.533747 0.92214,0.76531 5.23271,1.06027 12.75,0.87245 l 11.35687,-0.28375 0.86351,-5.750002 c 1.05731,-7.040484 3.63649,-8.160205 3.63649,-1.578741 0,2.333793 0.67138,4.913123 1.52411,5.855383 0.83826,0.92627 1.26351,2.36325 0.94499,3.19329 -1.12927,2.942817 -5.45193,3.780067 -19.51615,3.780067 -18.91435,0 -17.94052,1.12302 -17.99359,-20.749999 l -0.0406,-16.75 -2.70936,3.108223 c -4.7151,5.409244 -5.53473,2.987962 -1.62001,-4.785651 1.94646,-3.865148 3.28587,-7.280693 2.97646,-7.590101 -0.30941,-0.309408 -2.70079,1.247782 -5.31418,3.460422 l -4.75163,4.022983 -0.28915,8.062248 c -0.26197,7.304263 -0.10222,8.121576 1.69908,8.693289 1.09354,0.347073 3.36115,1.913534 5.03916,3.481024 3.31213,3.093996 4.13101,7.906271 1.69009,9.932055 -1.08051,0.89675 -2.05896,0.0593 -4.75,-4.065587 -4.01668,-6.156828 -5.41179,-6.857113 -6.33474,-3.179784 -1.64507,6.554471 -13.69929,21.426318 -14.76806,18.220018 z m 53.66363,-25.109139 c 0.21298,-0.6875 0.61608,-7.2125 0.89579,-14.5 l 0.50855,-13.25 -9.74196,0 -9.74196,0 -1.74306,3.655232 c -1.40585,2.948105 -1.49005,3.815695 -0.43521,4.484687 2.22066,1.408376 9.04681,0.953792 10.90305,-0.726082 1.60972,-1.456776 2.00287,-1.401198 4.81964,0.681324 2.75795,2.039048 2.91674,2.433458 1.57604,3.914904 -1.00522,1.110756 -1.49089,3.804451 -1.49089,8.268986 0,5.251292 -0.36214,6.8325 -1.75,7.64085 -1.41341,0.823239 -1.02271,1.02513 2.03139,1.04969 2.17527,0.01749 3.94586,-0.500517 4.16862,-1.219591 z m -10.45001,-9.75 0,-6 -4.5,0 -4.5,0 0,6 0,6 4.5,0 4.5,0 0,-6 z m -42.6892,0.367534 c -0.34454,-0.897856 -0.0276,-2.585356 0.70424,-3.75 0.73188,-1.164644 1.85821,-3.894304 2.50296,-6.065912 0.64475,-2.171608 1.6322,-4.101686 2.19433,-4.289063 1.10326,-0.367756 2.28767,4.22063 2.28767,8.862441 0,4.95985 -6.18062,9.173828 -7.6892,5.242534 z"
-       id="path3203"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#000000;fill-opacity:1"
-       d="M 54.237708,123.94201 C 24.673097,118.64732 3.5,93.623824 3.5,63.977482 3.5,47.99744 8.704674,34.719653 19.568001,22.985963 43.082713,-2.4127322 82.437347,-3.2648192 106.68942,21.099653 c 25.65423,25.773134 23.62735,66.530681 -4.47478,89.981227 -5.475622,4.56927 -16.559329,10.11957 -23.539442,11.78765 -6.848554,1.63665 -18.447776,2.14618 -24.43749,1.07348 z m 27.67766,-5.5756 c 19.205312,-6.00261 34.276602,-22.793916 38.495602,-42.888928 1.8531,-8.826242 1.8531,-14.173758 0,-23 C 115.88518,30.921244 98.229428,12.813434 76.982579,7.9371568 54.858747,2.8596058 30.508993,12.076207 17.358074,30.505568 -0.9814189,56.206065 4.914282,92.458644 30.35575,110.42807 c 15.491109,10.94145 33.218508,13.67084 51.559618,7.93834 z"
-       id="path3201"
-       inkscape:connector-curvature="0" />
-  </g>
-</svg>
diff --git a/themes/xiangqi/WhiteElephant.svg b/themes/xiangqi/WhiteElephant.svg
deleted file mode 100644 (file)
index 9f8559f..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg3076"
-   version="1.1"
-   inkscape:version="0.48.2 r9819"
-   width="128.28036"
-   height="128.00664"
-   sodipodi:docname="WhiteElephant.svg">
-  <metadata
-     id="metadata3082">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3080" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1027"
-     inkscape:window-height="709"
-     id="namedview3078"
-     showgrid="false"
-     inkscape:zoom="2.9259416"
-     inkscape:cx="80.486331"
-     inkscape:cy="57.043811"
-     inkscape:window-x="189"
-     inkscape:window-y="75"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg3076"
-     fit-margin-top="3"
-     fit-margin-right="3"
-     fit-margin-bottom="3"
-     fit-margin-left="3" />
-  <g
-     inkscape:groupmode="layer"
-     id="layer2"
-     inkscape:label="LAYER1"
-     style="display:inline"
-     transform="translate(2.9999995,3.0066323)" />
-  <g
-     id="g3111">
-    <path
-       style="fill:#ffeeaa;fill-opacity:1"
-       d="M 49.716983,123.2092 C 33.811072,119.35784 17.144961,106.06342 10.164485,91.65849 5.322809,81.66719 3.5,74.00889 3.5,63.658486 3.5,46.598592 9.367637,32.551221 21.529485,20.495133 29.989538,12.108649 41.133569,5.8397269 51.299221,3.7485759 c 7.666593,-1.577077 21.450793,-1.338095 28.556433,0.495094 13.93484,3.59506 29.747536,15.2383551 37.073476,27.2981441 6.07794,10.005378 8.57087,19.346849 8.57087,32.116672 0,12.769824 -2.49293,22.111294 -8.57087,32.116674 -7.45235,12.26789 -23.658336,24.07552 -37.532246,27.34589 -7.67992,1.81032 -22.38706,1.854 -29.679901,0.0881 z"
-       id="path3119"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#ffaaaa;fill-opacity:1"
-       d="M 50.213652,123.32117 C 27.441734,117.55796 9.7267077,99.156201 4.4751507,75.809591 c -1.300201,-5.78025 -1.300201,-18.219756 0,-24.000004 C 10.968418,22.942757 35.553401,2.8807476 64.504069,2.8243676 c 16.49596,-0.03213 31.4957,6.339849 43.530371,18.4919454 11.57219,11.685107 17.3796,25.884273 17.3796,42.493274 0,21.035164 -10.09311,39.573093 -27.861021,51.172103 -4.06582,2.6542 -10.37287,5.77949 -14.01569,6.94511 -8.58284,2.74631 -25.22955,3.44286 -33.323677,1.39437 z m 27.147497,-4.06074 c 10.77077,-2.53869 18.73184,-7.0565 27.156131,-15.41078 11.55718,-11.461149 16.89676,-24.114289 16.89676,-40.040063 0,-15.925774 -5.33958,-28.578916 -16.89676,-40.040059 C 96.092989,15.415243 88.131919,10.897433 77.361149,8.3587436 45.404677,0.82655158 12.864648,23.031764 8.1919447,55.559587 2.5194757,95.047021 38.704949,128.37176 77.361149,119.26043 z m -25.674962,-1.8877 C 31.932855,112.58625 14.597462,94.751031 10.51101,75.010361 3.5232697,41.25428 30.14884,8.7419746 64.713259,8.8243676 c 16.28697,0.03882 31.90567,7.5806764 42.745371,20.6405904 15.94184,19.207115 15.94184,49.482143 0,68.689253 C 93.716799,114.7107 71.827959,122.25333 51.686187,117.37273 z m 22.294192,-3.63884 c 23.47474,-4.2557 41.433661,-25.894779 41.433661,-49.924303 0,-34.722122 -34.624651,-59.3107794 -67.561615,-47.978803 -7.945535,2.733665 -14.391827,7.081077 -20.861512,14.069109 -17.8179953,19.245561 -17.8179953,48.573828 0,67.819388 12.767833,13.790789 28.909926,19.292219 46.989466,16.014609 z M 45.190428,82.292891 44.914035,67.894939 l -5,6.606022 c -5.608426,7.40987 -7.911399,9.29723 -9.457727,7.7509 -0.683698,-0.6837 0.153347,-2.74436 2.57612,-6.34197 4.00625,-5.94895 9.919486,-18.063739 10.978035,-22.491351 l 0.691189,-2.891048 -5.110413,0.491046 c -4.42601,0.425284 -5.406078,0.176326 -7.318123,-1.858952 l -2.207709,-2.349999 7.674314,0 7.674314,0 0,-9.452118 0,-9.452118 4.5,1.667818 c 4.890634,1.812596 5.271864,2.350942 3.000004,4.236418 -1.021996,0.848178 -1.500004,3.117902 -1.500004,7.122445 0,5.703211 0.07924,5.877555 2.671264,5.877555 1.46919,0 3.4989,-0.749012 4.51047,-1.66447 1.72592,-1.561929 1.99259,-1.520387 4.32874,0.674314 l 2.48953,2.338784 0,-7.789324 0,-7.789324 2.46481,1.61501 c 3.43975,2.253813 19.71246,2.311258 21.56745,0.07614 1.12779,-1.358905 1.609,-1.220936 4.11477,1.179739 2.60125,2.492157 2.70737,2.862529 1.27404,4.446343 -1.34593,1.487235 -1.53187,5.30838 -1.33584,27.451333 l 0.22772,25.723599 -2.40648,1.3335 c -3.53276,1.95759 -3.90647,1.75711 -3.90647,-2.09564 l 0,-3.5 -8,0 c -7.83622,0 -8,0.0505 -8,2.46481 0,2.31001 -2.42098,4.53519 -4.93426,4.53519 -0.72275,0 -1.06574,-7.24138 -1.06574,-22.5 l 0,-22.500004 -7,0 c -6.638333,0 -7.000004,0.118873 -7.000004,2.300734 0,1.734302 1.101624,2.835946 4.474584,4.474657 4.88927,2.37539 6.48575,5.561694 4.57526,9.131468 -1.54537,2.887555 -2.84906,2.623465 -4.84635,-0.981732 -4.252884,-7.676633 -4.322255,-7.487656 -4.003673,10.906617 l 0.300179,17.33175 -3.223607,1.35888 -3.223607,1.35888 -0.276393,-14.39795 z m 42.223611,-4.4833 0,-7 -8,0 -8,0 0,7 0,7 8,0 8,0 0,-7 z m 0,-16.000004 0,-6 -8,0 -8,0 0,6 0,6 8,0 8,0 0,-6 z m 0,-16 0,-6 -8,0 -8,0 0,6 0,6 8,0 8,0 0,-6 z"
-       id="path3117"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#be0006;fill-opacity:1"
-       d="M 51.238092,123.16069 C 38.13872,120.33712 24.223917,111.42904 16.046906,100.63173 -13.386072,61.767079 11.987463,6.3738875 60.738096,3.0660035 c 15.03679,-1.020295 32.75467,5.048068 44.200664,15.1386965 6.98787,6.160418 14.38365,17.478505 17.35972,26.566329 3.49457,10.671179 3.49457,27.228288 0,37.899468 -9.57046,29.224753 -40.791724,47.014613 -71.060388,40.490193 z m 25.200774,-3.53001 c 19.91266,-4.09618 37.208834,-20.446953 43.202884,-40.841413 2.11031,-7.18023 2.11031,-22.956781 0,-30.137003 C 114.98371,32.803504 103.96604,19.511459 89.935806,12.814126 72.527086,4.5040655 55.555946,4.5343235 38.238092,12.906296 28.813643,17.462361 17.636331,28.886707 12.981827,38.720761 2.143764,61.619463 6.328542,86.040717 24.134852,103.80685 c 8.080708,8.06248 15.851742,12.62665 26.10324,15.33126 6.639454,1.75165 18.954544,1.98318 26.200774,0.49257 z m -23.20077,-2.46999 C 27.748543,111.66642 9.877307,89.641037 9.877307,63.720763 c 0,-26.610349 18.062833,-48.218977 44.860789,-53.667107 17.21382,-3.4996385 35.61014,2.37785 48.410814,15.466903 3.62406,3.705698 7.83652,9.058177 9.36104,11.894396 3.55164,6.607486 6.72815,19.027036 6.72815,26.305808 0,7.278774 -3.17651,19.698324 -6.72815,26.305804 -4.62352,8.60162 -14.503644,17.770603 -24.271854,22.524863 -12.32648,5.99938 -22.39771,7.32569 -35,4.60926 z m 23.86903,-3.89268 c 12.59605,-3.35256 23.293924,-11.10459 30.325864,-21.975113 10.588,-16.36778 10.588,-38.776486 0,-55.144264 C 91.865066,12.082507 59.576306,5.4416385 35.578783,21.370289 5.899089,41.070548 5.894729,86.368087 35.570583,106.06583 c 11.780228,7.81927 28.394414,10.70007 41.536494,7.20218 z M 45.575079,80.720767 c 0.357087,-8.25 0.432991,-15.000004 0.168676,-15.000004 -0.264316,0 -1.649271,1.851336 -3.077679,4.114084 -3.021171,4.78584 -10.284848,12.88592 -11.555344,12.88592 -1.643848,0 -0.862731,-2.50199 2.185391,-7 4.143181,-6.11396 7.841712,-13.3955 10.020249,-19.727528 l 1.813997,-5.272476 -5.746138,0 c -5.254654,0 -8.146139,-1.135845 -8.146139,-3.2 0,-0.44 3.439566,-0.8 7.64348,-0.8 l 7.643479,0 -0.67941,-9 c -0.397308,-5.263055 -0.299983,-9 0.234397,-9 0.502593,0 2.641668,0.721947 4.753498,1.604326 3.43655,1.435884 3.65936,1.736188 2.12212,2.860243 -1.300553,0.950991 -1.717564,2.746596 -1.717564,7.395674 0,6.097229 0.01993,6.139757 2.877554,6.139757 1.58266,0 3.43239,-0.668538 4.11053,-1.48564 1.07785,-1.298733 1.56504,-1.223865 3.87244,0.595096 l 2.63948,2.080735 0.29134,-7.555253 0.29135,-7.555252 3.20865,1.956419 c 4.68833,2.858621 17.62182,2.822314 20.22737,-0.05678 1.82734,-2.019191 1.83077,-2.018675 4.67024,0.701709 2.36923,2.269866 2.58969,2.863338 1.3263,3.570366 -1.29403,0.724177 -1.51525,4.70453 -1.51525,27.263106 0,25.092408 -0.0969,26.466968 -1.93426,27.450308 -3.12737,1.67372 -4.06574,1.22024 -4.06574,-1.96481 l 0,-3 -8,0 c -7.7203,0 -8,0.0818 -8,2.33948 0,1.97784 -3.19299,4.66052 -5.54706,4.66052 -0.24912,0 -0.45294,-10.125 -0.45294,-22.5 l 0,-22.500004 -7,0 c -6.784704,0 -7.000004,0.07627 -7.000004,2.479676 0,1.882697 0.954944,2.966853 3.966564,4.503266 4.83612,2.467204 6.54605,5.190714 5.03344,8.017058 -1.59766,2.985254 -3.79662,2.422536 -5.38455,-1.377923 -3.03973,-7.275089 -3.615454,-5.319021 -3.615454,12.283717 0,15.80751 -0.1382,17.0978 -1.934259,18.05902 -4.288881,2.29534 -4.412507,1.83234 -3.728754,-13.96481 z m 41.663017,-2.5 0,-7.5 -8,0 -8,0 0,7.5 0,7.5 8,0 8,0 0,-7.5 z m 0,-16.500004 0,-6 -8,0 -8,0 0,6 0,6 8,0 8,0 0,-6 z m 0,-15.5 0,-6.5 -8,0 -8,0 0,6.5 0,6.5 8,0 8,0 0,-6.5 z"
-       id="path3115"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#000000;fill-opacity:1"
-       d="M 54.237712,123.94203 C 24.673097,118.64734 3.5,93.623829 3.5,63.977495 3.5,47.997453 8.704674,34.719666 19.568001,22.985976 43.082713,-2.4127189 82.437342,-3.2648059 106.68942,21.099666 c 25.65423,25.773134 23.62735,66.530683 -4.47479,89.981234 -5.475608,4.56927 -16.559318,10.11957 -23.539428,11.78765 -6.84856,1.63665 -18.44778,2.14618 -24.43749,1.07348 z m 27.67766,-5.5756 c 19.205298,-6.00261 34.276598,-22.793921 38.495598,-42.888931 1.8531,-8.826246 1.8531,-14.173762 0,-23.000004 C 115.88518,30.921257 98.229422,12.813447 76.982582,7.9371701 54.858752,2.8596191 30.508993,12.07622 17.358074,30.505581 -0.981419,56.206078 4.914282,92.458649 30.35575,110.42809 c 15.491109,10.94145 33.218512,13.67084 51.559622,7.93834 z"
-       id="path3113"
-       inkscape:connector-curvature="0" />
-  </g>
-</svg>
diff --git a/themes/xiangqi/WhiteGold.svg b/themes/xiangqi/WhiteGold.svg
deleted file mode 100644 (file)
index bcd1840..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg3076"
-   version="1.1"
-   inkscape:version="0.48.2 r9819"
-   width="128.28036"
-   height="128.00664"
-   sodipodi:docname="WhiteGold.svg">
-  <metadata
-     id="metadata3082">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3080" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1027"
-     inkscape:window-height="709"
-     id="namedview3078"
-     showgrid="false"
-     inkscape:zoom="2.9259416"
-     inkscape:cx="80.486331"
-     inkscape:cy="57.043811"
-     inkscape:window-x="208"
-     inkscape:window-y="63"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="g3112"
-     fit-margin-top="3"
-     fit-margin-right="3"
-     fit-margin-bottom="3"
-     fit-margin-left="3" />
-  <g
-     inkscape:groupmode="layer"
-     id="layer2"
-     inkscape:label="LAYER1"
-     style="display:inline"
-     transform="translate(2.9999995,3.0066323)" />
-  <g
-     id="g3112">
-    <path
-       style="fill:#ffeeaa;fill-opacity:1"
-       d="M 49.716986,123.2092 C 33.811072,119.35784 17.144961,106.06342 10.164485,91.65849 5.322809,81.66719 3.5,74.00889 3.5,63.658486 3.5,46.598592 9.367637,32.551221 21.529485,20.495133 29.989538,12.108649 41.133569,5.8397269 51.299226,3.7485759 c 7.66659,-1.577077 21.45079,-1.338095 28.55643,0.495094 13.93484,3.59506 29.747534,15.2383551 37.073474,27.2981441 6.07794,10.005378 8.57087,19.346849 8.57087,32.116672 0,12.769824 -2.49293,22.111294 -8.57087,32.116674 -7.45235,12.26789 -23.658334,24.07552 -37.532244,27.34589 -7.67992,1.81032 -22.38706,1.854 -29.6799,0.0881 z"
-       id="path3120"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#ffaaaa;fill-opacity:1"
-       d="M 50.213651,123.32117 C 27.441734,117.55796 9.7267078,99.156201 4.4751507,75.809591 c -1.300201,-5.78025 -1.300201,-18.219756 0,-24.000004 C 10.968418,22.942757 35.553401,2.8807476 64.504071,2.8243676 c 16.49596,-0.03213 31.4957,6.339849 43.530359,18.4919454 11.57219,11.685107 17.3796,25.884273 17.3796,42.493274 0,21.035164 -10.09311,39.573093 -27.861009,51.172103 -4.06582,2.6542 -10.37288,5.77949 -14.01569,6.94511 -8.58284,2.74631 -25.22955,3.44286 -33.32368,1.39437 z m 27.1475,-4.06074 c 10.77077,-2.53869 18.73184,-7.0565 27.156119,-15.41078 11.55718,-11.461149 16.89676,-24.114289 16.89676,-40.040063 0,-15.925774 -5.33958,-28.578916 -16.89676,-40.040059 C 96.092981,15.415243 88.131921,10.897433 77.361151,8.3587436 45.404681,0.82655158 12.864648,23.031764 8.1919457,55.559587 2.5194757,95.047021 38.704949,128.37176 77.361151,119.26043 z m -25.67496,-1.8877 C 31.932855,112.58625 14.597462,94.751031 10.51101,75.010361 3.5232697,41.25428 30.14884,8.7419746 64.713261,8.8243676 c 16.28697,0.03882 31.90567,7.5806764 42.745359,20.6405904 15.94184,19.207115 15.94184,49.482143 0,68.689253 C 93.716801,114.7107 71.827951,122.25333 51.686191,117.37273 z m 22.29418,-3.63884 c 23.47475,-4.2557 41.433659,-25.894779 41.433659,-49.924303 0,-34.722122 -34.624649,-59.3107794 -67.561609,-47.978803 -7.945531,2.733665 -14.391823,7.081077 -20.861508,14.069109 -17.8179952,19.245561 -17.8179952,48.573828 0,67.819388 12.767833,13.790789 28.909928,19.292219 46.989458,16.014609 z m 2.20399,-39.424299 0.52029,-24.500004 -4.14531,0 -4.14531,0 0,16.38499 c 0,16.311474 -0.0111,16.392234 -2.46481,18.000004 -1.35565,0.88825 -2.81815,1.61501 -3.25,1.61501 -0.43185,1e-5 -0.78519,-9.67496 -0.78519,-21.499934 0,-11.824968 0.225,-21.484026 0.5,-21.464571 0.275,0.01945 1.625,0.67848 3,1.464501 1.375,0.786021 4.46573,1.445075 6.86828,1.464565 l 4.36828,0.03543 -0.71625,-8.598483 -0.71625,-8.598483 2.34797,0.725168 c 1.29139,0.398843 3.66261,1.394604 5.26939,2.212804 2.52455,1.285547 2.69435,1.614702 1.25,2.423005 -1.24303,0.695634 -1.67142,2.332285 -1.67142,6.385679 l 0,5.45031 3.67126,0 c 2.0192,0 4.45997,-0.713774 5.42395,-1.586163 1.60972,-1.456776 2.00287,-1.401198 4.81964,0.681324 2.75795,2.039048 2.91674,2.433458 1.57604,3.914904 -1.18806,1.312801 -1.49089,4.839719 -1.49089,17.36413 0,15.353554 -0.0567,15.773434 -2.45454,18.171264 -2.82788,2.82788 -4.36111,3.09853 -5.19802,0.91756 -0.32439,-0.84534 -1.88527,-2.2069 -3.46862,-3.02568 l -2.87882,-1.48869 0,7.92785 0,7.92786 -3.14922,1.09782 c -1.73207,0.6038 -3.25081,1.09783 -3.37498,1.09783 -0.12417,0 0.008,-11.025 0.29453,-24.5 z m 14.22967,-10.559021 0,-13.940983 -4,0 -4,0 0,13.936642 0,13.936642 3.25,0.33736 c 1.7875,0.18554 3.5875,0.1875 4,0.004 0.4125,-0.18312 0.75,-6.60642 0.75,-14.273961 z M 34.349407,95.585271 c -0.03555,-0.15163 -0.148046,-12.76818 -0.25,-28.036796 -0.162531,-24.340486 -5.47e-4,-27.682289 1.314628,-27.121404 4.753595,2.027275 5.824646,1.676622 6.919201,-2.265286 0.588305,-2.118709 1.072155,-5.089698 1.075222,-6.602198 0.0067,-3.314405 0.27701,-3.346277 4.887543,-0.576344 4.89604,2.941459 4.82004,2.837559 3.04132,4.158105 -0.86546,0.642531 -2.37901,2.405739 -3.36343,3.918239 l -1.78988,2.75 3.41501,0 c 1.87826,0 3.94905,-0.53404 4.60177,-1.186756 0.91567,-0.915675 1.76386,-0.644593 3.71324,1.186756 1.70635,1.603024 2.19757,2.702431 1.51325,3.386756 -0.55729,0.557284 -1.01325,4.451012 -1.01325,8.652729 0,7.215998 -0.14119,7.703817 -2.54705,8.8 -3.25595,1.483511 -3.45295,1.464142 -3.45295,-0.339485 0,-1.166667 -1.33333,-1.5 -6,-1.5 l -5.999996,0 0,3.5 0,3.5 6.171256,0 c 4.40733,0 6.70872,-0.486395 8.05161,-1.701694 1.78764,-1.617784 1.9974,-1.556147 4.25411,1.25 1.46709,1.824298 2.0203,3.314548 1.44839,3.901698 -0.50895,0.5225 -0.92537,5.28776 -0.92537,10.58948 0,9.35918 -0.0741,9.67323 -2.54705,10.8 -3.40615,1.55195 -3.45295,1.53379 -3.45295,-1.33948 0,-2.41026 -0.23333,-2.5 -6.5,-2.5 -5.805147,0 -6.499996,0.21105 -6.499996,1.97432 0,1.18227 -1.20352,2.59668 -3,3.52568 -1.65,0.85324 -3.029083,1.4273 -3.064628,1.27568 z m 19.064624,-16.77568 0,-7 -6.5,0 -6.499996,0 0,7 0,7 6.499996,0 6.5,0 0,-7 z m -1,-27.500004 0,-5.5 -6,0 -5.999996,0 0,5.5 0,5.5 5.999996,0 6,0 0,-5.5 z"
-       id="path3118"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#be0006;fill-opacity:1"
-       d="m 51.238088,123.16069 c -13.09937,-2.82357 -27.01417,-11.73165 -35.19118,-22.52896 -29.43298,-38.864648 -4.05945,-94.2578395 44.69118,-97.5657235 15.0368,-1.020295 32.75468,5.048068 44.200662,15.1386965 6.98787,6.160418 14.38365,17.478505 17.35972,26.566329 3.49457,10.671179 3.49457,27.228288 0,37.899468 -9.57046,29.22475 -40.791712,47.01461 -71.060382,40.49019 z m 25.20078,-3.53001 c 19.91265,-4.09618 37.208822,-20.446953 43.202872,-40.84141 2.11031,-7.18023 2.11031,-22.956781 0,-30.137003 -4.65804,-15.84876 -15.67571,-29.140805 -29.705932,-35.838138 -17.40872,-8.3100605 -34.37987,-8.2798025 -51.69772,0.09217 -9.42445,4.556065 -20.60176,15.980411 -25.25626,25.814465 -10.8380696,22.898702 -6.6532896,47.319954 11.15302,65.086086 8.08071,8.06248 15.85174,12.62665 26.10324,15.33126 6.63945,1.75165 18.95454,1.98318 26.20078,0.49257 z m -23.20078,-2.46999 C 27.748538,111.66642 9.8773084,89.64104 9.8773084,63.720766 c 0,-26.610349 18.0628296,-48.218977 44.8607796,-53.667107 17.21383,-3.4996385 35.61014,2.37785 48.410812,15.466903 3.62406,3.705698 7.83652,9.058177 9.36104,11.894396 3.55164,6.607486 6.72815,19.027036 6.72815,26.305808 0,7.278774 -3.17651,19.698324 -6.72815,26.305804 -4.62352,8.601617 -14.503632,17.7706 -24.271852,22.52486 -12.32647,5.99938 -22.3977,7.32569 -35,4.60926 z m 23.86904,-3.89268 c 12.59605,-3.35256 23.293922,-11.10459 30.325852,-21.97511 10.588,-16.36778 10.588,-38.776486 0,-55.144264 C 91.865058,12.08251 59.576308,5.4416415 35.578778,21.370292 5.8990884,41.070551 5.8947284,86.36809 35.570778,106.06583 c 11.78023,7.81927 28.39442,10.70007 41.5365,7.20218 z m -0.86904,-40.10474 0,-24.5575 -4.25,0.307498 -4.25,0.307498 -0.5,16.88024 c -0.47757,16.123264 -0.60089,16.947134 -2.75,18.371974 l -2.25,1.49173 0,-21.228961 c 0,-19.852659 0.11346,-21.17769 1.75,-20.438133 0.9625,0.434956 4.1125,0.974748 7,1.199539 l 5.25,0.40871 0,-8.092549 c 0,-4.983608 0.40326,-8.09255 1.04966,-8.09255 0.57732,0 2.4177,0.707441 4.08975,1.57209 2.81794,1.457214 2.92392,1.700452 1.45034,3.328741 -0.97541,1.077815 -1.58975,3.5618 -1.58975,6.42791 l 0,4.671259 4.95031,0 c 3.66764,0 5.20896,-0.453441 5.94853,-1.75 0.90962,-1.594662 1.2469,-1.495667 3.79969,1.11526 1.87073,1.913322 2.38618,3.02077 1.55147,3.333333 -0.92796,0.347486 -1.25,4.564558 -1.25,16.368964 l 0,15.900887 -2.91343,3.2607 -2.91342,3.26069 -2.11266,-2.68581 c -1.16196,-1.47719 -3.00092,-2.96773 -4.08657,-3.3123 -1.08565,-0.34458 -1.97392,-1.27649 -1.97392,-2.07093 0,-1.12211 0.88162,-1.30345 3.95085,-0.81266 3.56941,0.57077 4.00763,0.40296 4.53902,-1.73819 0.32351,-1.30347 0.45813,-7.99494 0.29916,-14.869944 l -0.28903,-12.5 -4.5,0 -4.5,0 -0.0996,23.348004 c -0.0804,18.8468 -0.36954,23.51894 -1.5,24.23469 -3.78187,2.394467 -3.90045,1.675817 -3.90045,-23.64019 z m -42,-5.509892 0,-27.067387 2.25,0.704615 c 1.2375,0.387538 2.78402,0.905077 3.4367,1.150086 1.09555,0.411252 4.3133,-8.094304 4.3133,-11.401427 0,-2.040461 1.80286,-1.444174 6.82366,2.256892 0.17801,0.131219 -1.09633,2.192936 -2.83186,4.581594 l -3.15551,4.343015 3.1754,0.320335 c 1.98415,0.200161 3.89453,-0.330477 5.09233,-1.41447 1.82845,-1.654724 2.03179,-1.626909 4.40497,0.602575 2.32606,2.185221 2.381,2.455644 0.84394,4.154071 -1.3227,1.461566 -1.52534,3.08817 -1.03668,8.321153 0.60152,6.441587 0.57876,6.519268 -2.35443,8.03608 -2.82256,1.459607 -2.96182,1.434134 -2.96182,-0.541781 0,-1.908458 -0.49719,-2.049714 -6.25,-1.77568 l -6.25,0.297717 -0.31036,3.75 -0.31037,3.75 7.36037,0 c 4.30926,0 7.84801,-0.487643 8.53674,-1.176371 1.59967,-1.599674 5.55939,1.892955 4.66335,4.113275 -0.34694,0.8597 -0.5658,5.70266 -0.48635,10.76212 l 0.14446,9.19902 -3.04892,1.57666 c -3.00994,1.5565 -3.04892,1.54437 -3.04892,-0.94902 0,-2.46037 -0.18102,-2.52568 -7,-2.52568 -6.29155,0 -7,0.19885 -7,1.96481 0,1.67656 -2.59189,4.03519 -4.43426,4.03519 -0.31115,0 -0.56574,-12.18033 -0.56574,-27.067392 z m 19,10.521702 0,-7.54569 -6.75,0.29569 -6.75,0.29569 -0.30402,5.88802 c -0.43583,8.44068 -0.29117,8.61198 7.27264,8.61198 l 6.53138,0 0,-7.54569 z m -1,-26.954314 0,-5.5 -6.5,0 -6.5,0 0,5.5 0,5.5 6.5,0 6.5,0 0,-5.5 z"
-       id="path3116"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#000000;fill-opacity:1"
-       d="M 54.237704,123.94203 C 24.673097,118.64734 3.5,93.623829 3.5,63.977495 3.5,47.997453 8.704674,34.719666 19.568001,22.985976 43.082713,-2.4127189 82.437344,-3.2648059 106.68941,21.099666 c 25.65423,25.773134 23.62735,66.530683 -4.47478,89.981234 -5.475606,4.56927 -16.559316,10.11957 -23.539436,11.78765 -6.84855,1.63665 -18.44777,2.14618 -24.43749,1.07348 z m 27.67766,-5.5756 c 19.205306,-6.00261 34.276596,-22.793921 38.495596,-42.888931 1.8531,-8.826246 1.8531,-14.173762 0,-23.000004 C 115.88517,30.921257 98.229424,12.813447 76.982574,7.9371701 54.858744,2.8596191 30.508993,12.07622 17.358074,30.505581 -0.981419,56.206078 4.914282,92.458649 30.35575,110.42809 c 15.491104,10.94145 33.218504,13.67084 51.559614,7.93834 z"
-       id="path3114"
-       inkscape:connector-curvature="0" />
-  </g>
-</svg>
diff --git a/themes/xiangqi/WhiteKnight.svg b/themes/xiangqi/WhiteKnight.svg
deleted file mode 100644 (file)
index 81e4df9..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg3076"
-   version="1.1"
-   inkscape:version="0.48.2 r9819"
-   width="128.28036"
-   height="128.00664"
-   sodipodi:docname="WhiteKnight.svg">
-  <metadata
-     id="metadata3082">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3080" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1027"
-     inkscape:window-height="709"
-     id="namedview3078"
-     showgrid="false"
-     inkscape:zoom="2.9259416"
-     inkscape:cx="121.90322"
-     inkscape:cy="57.043811"
-     inkscape:window-x="145"
-     inkscape:window-y="0"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg3076"
-     fit-margin-top="3"
-     fit-margin-right="3"
-     fit-margin-bottom="3"
-     fit-margin-left="3" />
-  <g
-     inkscape:groupmode="layer"
-     id="layer2"
-     inkscape:label="LAYER1"
-     style="display:inline"
-     transform="translate(2.9999995,3.0066313)" />
-  <g
-     id="g3147">
-    <path
-       style="fill:#ffeeaa;fill-opacity:1"
-       d="M 49.716988,123.2092 C 33.811072,119.35784 17.144961,106.06342 10.164486,91.65849 5.322809,81.66719 3.5,74.00889 3.5,63.658486 3.5,46.598592 9.367637,32.551221 21.529485,20.495133 29.989538,12.108649 41.133568,5.8397269 51.299218,3.7485759 c 7.6666,-1.577077 21.4508,-1.338095 28.55644,0.495094 13.93483,3.59506 29.747532,15.2383551 37.073472,27.2981441 6.07794,10.005378 8.57087,19.346849 8.57087,32.116672 0,12.769824 -2.49293,22.111294 -8.57087,32.116674 -7.45235,12.26789 -23.658332,24.07552 -37.532242,27.34589 -7.67992,1.81032 -22.38706,1.854 -29.67991,0.0881 z"
-       id="path3155"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#ffaaaa;fill-opacity:1"
-       d="M 50.213653,123.32117 C 27.441734,117.55796 9.7267077,99.156201 4.4751507,75.809591 c -1.3002009,-5.78025 -1.3002009,-18.219756 0,-24.000004 C 10.968418,22.942757 35.553401,2.8807476 64.504073,2.8243676 c 16.49596,-0.03212 31.4957,6.339849 43.530357,18.4919454 11.57219,11.685107 17.3796,25.884273 17.3796,42.493274 0,21.035164 -10.09311,39.573093 -27.861007,51.172103 -4.06582,2.6542 -10.37288,5.77949 -14.01569,6.94511 -8.58284,2.74631 -25.22955,3.44286 -33.32368,1.39437 z m 27.14749,-4.06074 c 10.77078,-2.53869 18.73184,-7.0565 27.156127,-15.41078 11.55718,-11.461149 16.89676,-24.114289 16.89676,-40.040063 0,-15.925774 -5.33958,-28.578916 -16.89676,-40.040059 C 96.092983,15.415243 88.131923,10.897433 77.361143,8.3587436 45.404673,0.82655158 12.864648,23.031764 8.1919459,55.559587 2.5194757,95.047021 38.704953,128.37176 77.361143,119.26043 z m -25.67496,-1.8877 C 31.932855,112.58625 14.597462,94.751031 10.51101,75.010371 3.5232698,41.25428 30.14884,8.7419746 64.713253,8.8243676 c 16.28698,0.03882 31.90568,7.5806764 42.745367,20.6405904 15.94184,19.207115 15.94184,49.482143 0,68.689253 C 93.716793,114.7107 71.827953,122.25333 51.686183,117.37273 z m 22.29419,-3.63884 c 23.47475,-4.2557 41.433657,-25.894779 41.433657,-49.924303 0,-34.722122 -34.624647,-59.3107794 -67.561607,-47.978803 -7.94553,2.733665 -14.391825,7.081077 -20.86151,14.069109 -17.8179952,19.245561 -17.8179952,48.573828 0,67.819388 12.76783,13.790789 28.90993,19.292219 46.98946,16.014609 z m 5.93018,-16.935269 c -0.35104,-1.10603 -2.06886,-2.74804 -3.81739,-3.64891 -4.44289,-2.28906 -6.97319,-6.38377 -10.25175,-16.59012 -0.96439,-3.00218 2.49651,-2.02611 6.29916,1.77653 3.03962,3.03962 3.44984,3.99914 2.97108,6.94939 -0.54966,3.38714 -0.50999,3.42967 3.80247,4.07636 5.05527,0.75809 6.49991,0.14326 6.49991,-2.76629 0,-1.97867 -0.1039,-2.00194 -1.85662,-0.41575 -2.26248,2.04751 -2.8751,1.40291 -5.98809,-6.30068 -2.88824,-7.14741 -1.51722,-8.78194 3.38265,-4.03279 1.94801,1.88808 3.84007,4.56471 4.20458,5.94805 0.60091,2.28046 0.73179,2.1419 1.40249,-1.48482 1.68742,-9.12446 2.647,-8.5 -13.06168,-8.5 -7.65416,0 -14.06666,0.38038 -14.24999,0.84529 -0.18334,0.46491 -1.57084,1.14848 -3.08334,1.51905 l -2.75,0.67376 0,-20.027526 c 0,-19.654163 -0.0366,-20.004662 -1.9638,-18.801108 -1.0801,0.67453 -3.119,3.890052 -4.53089,7.145605 -2.34847,5.415123 -2.43304,6.067302 -0.99302,7.6585 1.41321,1.56158 1.41636,1.799826 0.0309,2.331485 -1.30559,0.500999 -1.54318,3.161229 -1.54318,17.278544 0,16.20916 0.0532,16.63819 1.86149,15.00174 1.02382,-0.92654 2.66717,-3.47128 3.65188,-5.65498 2.46778,-5.47257 4.48663,-5.2119 4.48663,0.5793 0,7.75289 -4.02282,12.69595 -8.35796,10.26988 -1.35586,-0.75877 -1.64204,-0.41539 -1.64204,1.97025 0,2.1256 -0.67315,3.19589 -2.54705,4.04969 -1.40088,0.63828 -2.75088,1.16052 -3,1.16052 -0.24912,0 -0.46638,-8.6625 -0.48279,-19.25 l -0.0298,-19.250004 -3.720159,4.246163 c -2.58571,2.951312 -4.125261,3.985843 -5.048598,3.392504 -1.044889,-0.671448 -0.671756,-1.920906 1.748128,-5.85372 3.962506,-6.439894 8.214799,-15.951327 11.080659,-24.784947 1.24904,-3.85 2.39993,-7.152504 2.55755,-7.338897 0.15761,-0.186393 2.00757,0.830561 4.11103,2.259898 2.10346,1.429337 3.97373,2.151025 4.15615,1.60375 0.19846,-0.595367 1.48526,-0.398508 3.20364,0.490102 2.06143,1.066006 6.18389,1.485147 14.60717,1.485147 10.72074,0 11.93801,-0.190516 14.0811,-2.203852 l 2.3459,-2.203852 4.20385,4.203852 4.20385,4.203852 -10.23529,0 -10.2353,0 0,3.5 c 0,3.267525 0.21159,3.5 3.18555,3.5 1.7993,0 4.10338,-0.862257 5.29469,-1.98143 l 2.10913,-1.98143 3.70532,3.054234 c 2.03792,1.679828 3.70531,3.471472 3.70531,3.98143 0,0.509958 -4.05,0.927196 -9,0.927196 l -9,0 0,3.5 c 0,3.267525 0.21159,3.5 3.18555,3.5 1.8047,0 4.10444,-0.863249 5.30538,-1.991475 l 2.11982,-1.991475 3.89758,3.991475 3.89757,3.991475 -9.20295,0 -9.20295,0 0,3.5 0,3.500004 6.17126,0 c 3.99043,0 6.73802,-0.512913 7.77506,-1.451422 1.41587,-1.281349 1.98873,-1.150162 4.88894,1.119589 3.21485,2.516003 3.24426,2.609093 1.37441,4.351123 -1.19451,1.11285 -2.14649,3.78562 -2.5397,7.13041 -0.34593,2.94266 -1.33054,7.7125 -2.18801,10.59964 -1.32119,4.44846 -2.15735,5.55457 -5.48066,7.25 -4.81004,2.45389 -4.72262,2.45406 -5.50478,-0.0103 z m -13.24652,-28.97538 c 2.47359,-0.0123 2.75,-0.365449 2.75,-3.513654 l 0,-3.5 -5,0 -5,0 0,4.116631 c 0,3.781093 0.1834,4.067483 2.25,3.513653 1.2375,-0.33163 3.4875,-0.60912 5,-0.61663 z m 2.75,-14.513654 0,-3.5 -5,0 -5,0 0,3.5 0,3.5 5,0 5,0 0,-3.5 z m 0,-11 0,-3.5 -5,0 -5,0 0,3.5 0,3.5 5,0 5,0 0,-3.5 z m -8.6492,48.657484 c -1.16092,-0.78866 -3.69925,-14.14236 -2.84972,-14.99189 1.11459,-1.11459 3.9252,1.49993 6.16441,5.73434 1.81328,3.42898 2.02988,4.67455 1.14905,6.60776 -1.19215,2.61648 -2.96424,3.66844 -4.46374,2.64979 z"
-       id="path3153"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#be0006;fill-opacity:1"
-       d="m 51.238088,123.16069 c -13.09937,-2.82357 -27.01417,-11.73165 -35.19118,-22.52896 -29.43298,-38.864649 -4.05945,-94.2578407 44.69118,-97.5657247 15.0368,-1.020295 32.75468,5.048068 44.200662,15.1386967 6.98787,6.160418 14.38365,17.478505 17.35972,26.566329 3.49457,10.671179 3.49457,27.228288 0,37.899468 -9.57046,29.224751 -40.791712,47.014611 -71.060382,40.490191 z m 25.20078,-3.53001 c 19.91265,-4.09618 37.208822,-20.446951 43.202872,-40.841421 2.11031,-7.18022 2.11031,-22.956771 0,-30.136993 -4.65804,-15.84876 -15.67571,-29.140805 -29.705932,-35.838138 -17.40872,-8.3100607 -34.37987,-8.2798027 -51.69772,0.09217 -9.42445,4.556065 -20.60176,15.980411 -25.25626,25.814465 -10.8380596,22.898702 -6.6532896,47.319954 11.15302,65.086087 8.08071,8.06248 15.85174,12.62665 26.10324,15.33126 6.63945,1.75165 18.95454,1.98318 26.20078,0.49257 z m -23.20078,-2.46999 C 27.748538,111.66642 9.8773084,89.641039 9.8773084,63.720765 c 0,-26.610349 18.0628296,-48.218977 44.8607796,-53.667107 17.21383,-3.4996387 35.61014,2.37785 48.410812,15.466903 3.62406,3.705698 7.83652,9.058177 9.36104,11.894396 3.55164,6.607486 6.72815,19.027036 6.72815,26.305808 0,7.278774 -3.17651,19.698324 -6.72815,26.305804 -4.62352,8.60162 -14.503632,17.770601 -24.271852,22.524861 -12.32647,5.99938 -22.3977,7.32569 -35,4.60926 z m 23.86904,-3.89268 c 12.59605,-3.35256 23.293922,-11.10459 30.325852,-21.975111 10.588,-16.36778 10.588,-38.776486 0,-55.144264 C 91.865058,12.082509 59.576308,5.4416403 35.578778,21.370291 5.8990884,41.07055 5.8947284,86.368089 35.570778,106.06583 c 11.78023,7.81927 28.39441,10.70007 41.5365,7.20218 z m -38.86904,-35.175851 0,-19.628611 -3.9003,4.378608 c -4.53088,5.086513 -6.49753,4.542932 -3.22143,-0.890411 3.73454,-6.19367 8.71098,-17.313731 11.18277,-24.988388 1.28294,-3.983426 2.70989,-7.242592 3.17098,-7.242592 0.46109,0 2.03993,0.7875 3.50852,1.75 3.30377,2.165252 4.5129,2.329506 21.30893,2.894698 12.75068,0.429065 13.66017,0.333626 15.42714,-1.618854 l 1.87767,-2.074798 3.32286,3.220644 c 1.82757,1.771354 3.32286,3.582369 3.32286,4.024477 0,0.442108 -4.275,0.803833 -9.5,0.803833 l -9.5,0 0,3.5 c 0,3.364432 0.1422,3.5 3.67126,3.5 2.04431,0 4.49931,-0.749378 5.53978,-1.690989 1.77198,-1.603614 2.0334,-1.526109 5.05951,1.5 l 3.19099,3.190989 -8.73077,0 -8.73077,0 0,4 c 0,3.825781 0.13812,4 3.17126,4 1.74419,0 3.96611,-0.719325 4.93758,-1.5985 1.63248,-1.477367 2.04982,-1.382643 5.50734,1.25 l 3.74101,2.8485 -8.67859,0.288933 -8.6786,0.288933 0,4.599956 0,4.599952 6.07388,-0.55076 c 3.43334,-0.31132 6.83309,-1.237837 7.82026,-2.131211 1.60808,-1.455296 1.95786,-1.359721 4.41682,1.206881 2.27503,2.37461 2.46859,3.00279 1.30723,4.24233 -0.74977,0.80024 -2.08351,5.49399 -2.96387,10.43056 -1.69165,9.48587 -3.77397,13.45947 -7.80674,14.89723 -2.03334,0.72492 -2.97722,0.34371 -5.57093,-2.25 -1.71754,-1.71754 -3.83242,-3.1228 -4.69973,-3.1228 -0.8673,0 -1.57692,-0.675 -1.57692,-1.5 0,-0.825 -0.44143,-1.5 -0.98095,-1.5 -0.53952,0 -1.27837,-1.2375 -1.6419,-2.75 -0.36352,-1.5125 -1.49375,-4.41301 -2.51161,-6.44558 -2.54162,-5.07536 -0.6248,-5.93266 3.76075,-1.68202 3.88169,3.76228 5.16196,7.22289 3.43982,9.29795 -0.95085,1.14569 -0.24247,1.59056 3.9719,2.49438 2.82102,0.605 5.48952,0.87727 5.92999,0.60504 0.44047,-0.27222 1.32929,-3.53804 1.97514,-7.25736 0.64586,-3.71933 1.38144,-7.77491 1.63463,-9.01241 l 0.46034,-2.25 -14.46004,0 c -8.56133,0 -14.71215,0.40793 -15.07807,1 -0.33992,0.55 -1.74065,1 -3.11273,1 l -2.49471,0 0.68567,-10.835929 c 0.37711,-5.959758 0.35867,-14.761353 -0.041,-19.559099 -0.694,-8.331365 -0.81309,-8.664374 -2.65129,-7.414075 -1.05855,0.720004 -3.24247,4.112374 -4.85314,7.538598 -2.69098,5.724225 -2.7908,6.31698 -1.23067,7.308041 1.22708,0.77949 1.35125,1.224191 0.44784,1.603834 -0.93227,0.391774 -1.25,4.967252 -1.25,18.00098 0,11.82252 0.33579,17.26815 1.03802,16.83415 0.57091,-0.35284 2.43084,-3.10947 4.13317,-6.12585 3.68151,-6.52326 5.3739,-5.94937 4.35265,1.47599 -0.80589,5.85952 -3.26159,8.6478 -6.9888,7.9353 -2.10485,-0.40237 -2.53504,-0.10341 -2.53504,1.76172 0,1.89472 -3.57407,5.47634 -5.46481,5.47634 -0.29436,0 -0.53519,-8.83288 -0.53519,-19.62861 z m 31,-13.871394 0,-4.5 -5,0 -5,0 0,4.5 0,4.500004 5,0 5,0 0,-4.500004 z m 0,-11.5 0,-4 -5,0 -5,0 0,4 0,4 5,0 5,0 0,-4 z m 0,-10.5 0,-3.5 -5,0 -5,0 0,3.5 0,3.5 5,0 5,0 0,-3.5 z m -9.45673,47.250004 c -0.3946,-1.25201 -1.90067,-10.44256 -1.99377,-12.16667 -0.0272,-0.50417 0.47875,-1.09275 1.12438,-1.30796 1.4092,-0.46973 6.32612,7.58441 6.32612,10.36248 0,3.50263 -4.521,6.0811 -5.45673,3.11215 z m 18.19003,-8.94717 c -3.04176,-6.88223 -2.46039,-8.94921 1.61536,-5.74322 3.92927,3.09076 5.97397,7.46902 4.64651,9.94942 -1.79145,3.34734 -3.40137,2.26593 -6.26187,-4.2062 z"
-       id="path3151"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#000000;fill-opacity:1"
-       d="M 54.237706,123.94203 C 24.673097,118.64734 3.5,93.623829 3.5,63.977495 3.5,47.997453 8.704674,34.719666 19.568001,22.985976 43.082716,-2.4127189 82.437346,-3.2648059 106.68942,21.099666 c 25.65423,25.773134 23.62735,66.530683 -4.47478,89.981234 -5.475614,4.56927 -16.559334,10.11957 -23.539444,11.78765 -6.84855,1.63665 -18.44777,2.14618 -24.43749,1.07348 z m 27.67766,-5.5756 c 19.205314,-6.00261 34.276604,-22.793921 38.495604,-42.888931 1.8531,-8.826246 1.8531,-14.173762 0,-23.000004 C 115.88518,30.921257 98.229426,12.813447 76.982576,7.9371701 54.858746,2.8596191 30.508993,12.07622 17.358074,30.505581 -0.981419,56.206078 4.914282,92.458649 30.35575,110.42809 c 15.491106,10.94145 33.218506,13.67084 51.559616,7.93834 z"
-       id="path3149"
-       inkscape:connector-curvature="0" />
-  </g>
-</svg>
diff --git a/themes/xiangqi/WhitePawn.svg b/themes/xiangqi/WhitePawn.svg
deleted file mode 100644 (file)
index f229f89..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg3076"
-   version="1.1"
-   inkscape:version="0.48.2 r9819"
-   width="128.28036"
-   height="128.00664"
-   sodipodi:docname="WhitePawn.svg">
-  <metadata
-     id="metadata3082">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3080" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1027"
-     inkscape:window-height="709"
-     id="namedview3078"
-     showgrid="false"
-     inkscape:zoom="3.6006072"
-     inkscape:cx="134.80412"
-     inkscape:cy="80.352127"
-     inkscape:window-x="251"
-     inkscape:window-y="122"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg3076"
-     fit-margin-top="3"
-     fit-margin-right="3"
-     fit-margin-bottom="3"
-     fit-margin-left="3" />
-  <g
-     inkscape:groupmode="layer"
-     id="layer2"
-     inkscape:label="LAYER1"
-     style="display:inline"
-     transform="translate(3.0000004,3.0066323)" />
-  <g
-     id="g3116">
-    <path
-       style="fill:#ffeeaa;fill-opacity:1"
-       d="M 49.71698,123.2092 C 33.81107,119.35784 17.14496,106.06342 10.16449,91.65849 5.32281,81.667194 3.5,74.00889 3.5,63.65849 3.5,46.598596 9.36764,32.551225 21.52948,20.495137 29.98954,12.108653 41.13357,5.8397309 51.29922,3.7485799 c 7.6666,-1.577077 21.4508,-1.338095 28.55643,0.495095 13.93484,3.59506 29.74754,15.2383541 37.07348,27.2981431 6.07794,10.005378 8.57087,19.346849 8.57087,32.116672 0,12.769823 -2.49293,22.111294 -8.57087,32.116672 -7.45235,12.267888 -23.65834,24.075518 -37.53224,27.345888 -7.67992,1.81032 -22.38706,1.854 -29.67991,0.0881 z"
-       id="path3124"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#ffaaaa;fill-opacity:1"
-       d="M 50.213658,123.32117 C 27.441738,117.55796 9.7267075,99.156208 4.4751575,75.809591 c -1.30021,-5.780248 -1.30021,-18.219752 0,-24 C 10.968417,22.942761 35.553407,2.8807516 64.504077,2.8243716 c 16.49596,-0.03213 31.4957,6.339849 43.530363,18.4919454 11.57219,11.685107 17.3796,25.884273 17.3796,42.493274 0,21.03516 -10.09311,39.573089 -27.861023,51.172099 -4.06581,2.6542 -10.37287,5.77949 -14.01568,6.94511 -8.58285,2.74631 -25.22956,3.44286 -33.32368,1.39437 z m 27.14749,-4.06074 c 10.77078,-2.53869 18.73184,-7.0565 27.156132,-15.41078 11.55718,-11.461143 16.89676,-24.114285 16.89676,-40.040059 0,-15.925774 -5.33958,-28.578916 -16.89676,-40.040059 C 96.092988,15.415247 88.131928,10.897437 77.361148,8.3587476 45.404678,0.82655658 12.864648,23.031768 8.1919475,55.559591 2.5194775,95.04703 38.704948,128.37176 77.361147,119.26043 z m -25.67496,-1.8877 C 31.932858,112.58625 14.597468,94.751037 10.511008,75.01037 3.5232775,41.254284 30.148838,8.7419786 64.713257,8.8243716 c 16.28698,0.03882 31.90568,7.5806764 42.745373,20.6405904 15.94184,19.207115 15.94184,49.482143 0,68.689258 -13.741832,16.55648 -35.630673,24.09911 -55.772443,19.21851 z m 22.29419,-3.63884 c 23.47475,-4.2557 41.433662,-25.894777 41.433662,-49.924299 0,-34.722122 -34.624653,-59.3107794 -67.561613,-47.978803 -7.94554,2.733665 -14.39183,7.081077 -20.86151,14.069109 -17.8179995,19.245561 -17.8179995,48.573827 0,67.819388 12.76783,13.790785 28.90992,19.292215 46.98946,16.014605 z M 30.414038,92.984128 c 0,-1.175199 2.58258,-3.468864 7.25,-6.438925 3.9875,-2.537404 9.39785,-6.74419 12.023,-9.348412 l 4.772999,-4.73495 3.477001,3.370042 c 4.10282,3.976612 4.31987,4.977708 1.079199,4.977708 -1.31878,0 -5.25763,1.737412 -8.75299,3.860916 -6.34458,3.854465 -18.32033,10.139084 -19.32069,10.139084 -0.29069,0 -0.528519,-0.821458 -0.528519,-1.825463 z m 54.115829,-4.180027 c -1.7704,-2.203019 -6.08355,-6.174086 -9.58479,-8.824593 -4.574999,-3.463366 -6.12969,-5.201285 -5.526289,-6.177605 0.68016,-1.100526 2.09114,-0.826591 7.430219,1.442551 12.29056,5.223557 18.053651,10.915101 15.632731,15.438644 -1.714221,3.203047 -4.37264,2.574871 -7.951871,-1.878997 z M 30.841538,70.73085 c -0.78512,-0.868307 -1.4275,-1.880807 -1.4275,-2.25 0,-0.369192 3.599999,-0.671259 8,-0.671259 l 8,0 0,-18 c 0,-9.9 0.240829,-18 0.53518,-18 0.29435,0 1.63774,0.722419 2.985299,1.605375 2.142231,1.403642 3.49722,1.456739 10.782881,0.422539 4.58302,-0.650561 11.300129,-2.181448 14.926919,-3.401972 l 6.594151,-2.219135 2.68546,3.365585 c 1.47701,1.851071 2.47566,3.575387 2.21924,3.831812 -0.32721,0.327204 -27.78562,3.102188 -33.47913,3.383446 -0.1375,0.0068 -0.25,2.26235 -0.25,5.01235 l 0,5 15.84501,0 c 14.63888,0 15.98448,-0.154105 17.67714,-2.024477 1.82852,-2.020489 1.83867,-2.018133 5.15499,1.196167 1.82757,1.771354 3.32286,3.582369 3.32286,4.024477 0,0.442108 -3.825,0.803833 -8.5,0.803833 l -8.5,0 0,7.5 0,7.5 5.68555,0 c 4.30429,0 6.2014,-0.484616 7.80889,-1.994779 l 2.12335,-1.994779 3.37275,3.479799 c 1.85501,1.913889 3.16428,3.68827 2.90948,3.943069 -0.2548,0.254799 -15.44416,0.59904 -33.75414,0.76498 -29.31133,0.265644 -33.46152,0.112989 -34.71838,-1.277031 z m 39.5725,-10.421259 0,-7.5 -9,0 -9,0 0,7.5 0,7.5 9,0 9,0 0,-7.5 z"
-       id="path3122"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#be0006;fill-opacity:1"
-       d="M 51.238087,123.16069 C 38.138722,120.33712 24.223912,111.42904 16.046902,100.63174 -13.386068,61.767085 11.987462,6.3738927 60.738087,3.0660087 c 15.03679,-1.020295 32.75468,5.048068 44.200663,15.1386973 6.98787,6.160418 14.38365,17.478505 17.35972,26.566329 3.49457,10.671179 3.49457,27.228289 0,37.899468 -9.57046,29.224747 -40.791713,47.014597 -71.060383,40.490187 z m 25.20078,-3.53001 c 19.91265,-4.09618 37.208823,-20.446949 43.202873,-40.841412 2.11031,-7.180222 2.11031,-22.956776 0,-30.136998 C 114.9837,32.80351 103.96603,19.511465 89.935807,12.814132 72.527077,4.5040717 55.555937,4.5343287 38.238092,12.906302 c -9.42445,4.556065 -20.60176,15.980411 -25.25627,25.814465 -10.8380599,22.898702 -6.6532799,47.319952 11.15303,65.086083 8.08071,8.06248 15.851735,12.62665 26.103235,15.33126 6.63945,1.75165 18.95454,1.98318 26.20078,0.49257 z m -23.20078,-2.46999 C 27.748542,111.66642 9.8773021,89.64104 9.8773021,63.720769 c 0,-26.610349 18.0628399,-48.218977 44.8607849,-53.667107 17.21382,-3.4996393 35.61014,2.37785 48.410813,15.466903 3.62406,3.705698 7.83652,9.058177 9.36104,11.894396 3.55164,6.607486 6.72815,19.027036 6.72815,26.305808 0,7.278772 -3.17651,19.698322 -6.72815,26.305808 -4.62352,8.601617 -14.503633,17.770593 -24.271853,22.524853 -12.32648,5.99938 -22.3977,7.32569 -35,4.60926 z m 23.86904,-3.89268 c 12.59604,-3.35256 23.293913,-11.10459 30.325853,-21.975111 10.588,-16.367778 10.588,-38.776482 0,-55.14426 C 91.865057,12.082513 59.576307,5.4416437 35.578782,21.370295 5.8990921,41.070554 5.8947321,86.368091 35.570782,106.06583 c 11.780225,7.81927 28.394405,10.70007 41.536495,7.20218 z M 30.278902,92.470769 c 0.0224,-0.6875 3.1854,-3.207481 7.02878,-5.599959 3.843385,-2.392477 9.380005,-6.53614 12.303595,-9.208139 l 5.31562,-4.85818 3.35176,3.458139 c 2.73395,2.820715 3.01115,3.458139 1.50386,3.458139 -1.01635,0 -5.26712,1.966135 -9.44617,4.369188 -9.62901,5.53692 -17.733215,9.630812 -19.065015,9.630812 -0.56828,0 -1.01488,-0.5625 -0.99243,-1.25 z m 51.459185,-6.561622 c -3.85,-3.727928 -8.35,-7.740183 -10,-8.916123 -2.05059,-1.461436 -2.6774,-2.466087 -1.98062,-3.174548 2.00077,-2.034312 20.28487,7.982405 22.18551,12.15405 1.18585,2.602802 -5.8e-4,6.75662 -1.92267,6.731457 -0.70522,-0.0092 -4.43222,-3.066909 -8.28222,-6.794836 z M 31.274292,70.264386 c -1.03792,-1.250621 -0.10156,-1.497867 6.62755,-1.75 l 7.836245,-0.293617 -0.34133,-18.370672 -0.34132,-18.370672 2.31383,1.620672 c 1.27261,0.89137 3.97412,1.620672 6.00336,1.620672 4.81179,0 17.15861,-2.421719 22.86546,-4.484855 l 4.5,-1.626838 2.79242,3.305846 2.79241,3.305847 -2.79241,0.300284 c -1.53583,0.165156 -9.31742,0.840156 -17.29242,1.5 l -14.5,1.199716 0,5.5 0,5.5 14.96653,0.277973 c 13.97077,0.259479 15.15949,0.135304 17.86694,-1.866394 l 2.90041,-2.144367 3.61639,3.616394 3.6164,3.616394 -9.2754,0 -9.2754,0 0.29207,7.75 0.29206,7.75 5.3753,0.306605 c 4.45962,0.254376 5.785,-0.0783 7.78043,-1.952903 l 2.40513,-2.259507 3.7029,3.702903 3.70291,3.702902 -33.61089,0 c -28.209015,0 -33.805145,-0.234067 -34.819575,-1.456383 z m 39.755855,-9.793617 0.29207,-7.75 -10.04207,0 -10.04206,0 0,7.333333 c 0,4.033334 0.31569,7.64902 0.70153,8.034859 0.38583,0.385839 4.77333,0.573339 9.75,0.416667 l 9.04847,-0.284859 0.29206,-7.75 z"
-       id="path3120"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#000000;fill-opacity:1"
-       d="M 54.23771,123.94203 C 24.6731,118.64734 3.5,93.623837 3.5,63.977499 3.5,47.997457 8.70468,34.71967 19.568,22.98598 43.08271,-2.4127149 82.43735,-3.2648019 106.68942,21.09967 c 25.65423,25.773134 23.62735,66.53068 -4.47478,89.98123 -5.47562,4.56927 -16.55933,10.11957 -23.53944,11.78765 -6.84855,1.63665 -18.44778,2.14618 -24.43749,1.07348 z m 27.67766,-5.5756 c 19.20531,-6.00261 34.2766,-22.793918 38.4956,-42.888931 1.8531,-8.826242 1.8531,-14.173758 0,-23 C 115.88518,30.921261 98.22943,12.813451 76.98258,7.9371741 54.85875,2.8596231 30.50899,12.076224 17.35808,30.505585 -0.98142,56.206082 4.91428,92.458657 30.35575,110.42809 c 15.49111,10.94145 33.21851,13.67084 51.55962,7.93834 z"
-       id="path3118"
-       inkscape:connector-curvature="0" />
-  </g>
-</svg>
diff --git a/themes/xiangqi/WhiteRook.svg b/themes/xiangqi/WhiteRook.svg
deleted file mode 100644 (file)
index 7f98556..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   id="svg3076"
-   version="1.1"
-   inkscape:version="0.48.2 r9819"
-   width="128.28036"
-   height="128.00662"
-   sodipodi:docname="WhiteRook.svg">
-  <metadata
-     id="metadata3082">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <defs
-     id="defs3080" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1027"
-     inkscape:window-height="709"
-     id="namedview3078"
-     showgrid="false"
-     inkscape:zoom="4.1438207"
-     inkscape:cx="80.49886"
-     inkscape:cy="80.353671"
-     inkscape:window-x="165"
-     inkscape:window-y="0"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="svg3076"
-     fit-margin-top="3"
-     fit-margin-left="3"
-     fit-margin-right="3"
-     fit-margin-bottom="3" />
-  <g
-     inkscape:groupmode="layer"
-     id="layer2"
-     inkscape:label="LAYER1"
-     style="display:inline"
-     transform="translate(2.9999995,3.0066283)" />
-  <g
-     id="g3115"
-     transform="translate(-99.666475,11.583513)">
-    <path
-       style="fill:#ffeeaa;fill-opacity:1"
-       d="m 149.38346,112.12567 c -15.90591,-3.85136 -32.57202,-17.145778 -39.5525,-31.550708 -4.84168,-9.9913 -6.66448,-17.6496 -6.66448,-28 0,-17.059894 5.86763,-31.107265 18.02948,-43.1633534 8.46005,-8.386484 19.60408,-14.655405 29.76973,-16.746557 7.6666,-1.577077 21.4508,-1.338095 28.55644,0.495094 13.93483,3.595061 29.74753,15.238355 37.07347,27.2981444 6.07794,10.005378 8.57087,19.346849 8.57087,32.116672 0,12.76982 -2.49293,22.11129 -8.57087,32.11667 -7.45235,12.26789 -23.65833,24.075518 -37.53224,27.345888 -7.67992,1.81032 -22.38706,1.854 -29.6799,0.0881 z"
-       id="path3123"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#ffaaaa;fill-opacity:1"
-       d="m 149.88013,112.23764 c -22.77192,-5.76321 -40.48695,-24.164958 -45.7385,-47.511578 -1.30021,-5.78025 -1.30021,-18.219752 0,-24 6.49326,-28.86683 31.07825,-48.9288387 60.02892,-48.9852187 16.49596,-0.03213 31.4957,6.33985 43.53036,18.4919447 11.57219,11.685107 17.3796,25.884273 17.3796,42.493274 0,21.03516 -10.09311,39.57309 -27.86101,51.172098 -4.06582,2.6542 -10.37288,5.77949 -14.01569,6.94511 -8.58284,2.74631 -25.22955,3.44286 -33.32368,1.39437 z m 27.1475,-4.06074 c 10.77077,-2.53869 18.73183,-7.0565 27.15612,-15.410778 11.55718,-11.46114 16.89676,-24.11429 16.89676,-40.04006 0,-15.925774 -5.33958,-28.578916 -16.89676,-40.040059 C 195.75946,4.3317183 187.7984,-0.18609167 177.02763,-2.7247807 145.07115,-10.256973 112.53112,11.948239 107.85842,44.476062 c -5.67247,39.48744 30.513,72.812168 69.16921,63.700838 z m -25.67496,-1.8877 c -19.75334,-4.78648 -37.08873,-22.621688 -41.17519,-42.362358 -6.98774,-33.756087 19.63783,-66.2683917 54.20225,-66.1859987 16.28698,0.03882 31.90568,7.580676 42.74537,20.6405897 15.94184,19.207115 15.94184,49.482139 0,68.689259 -13.74183,16.556478 -35.63067,24.099108 -55.77243,19.218508 z m 22.29418,-3.63884 c 23.47475,-4.255698 41.43366,-25.894778 41.43366,-49.924298 0,-34.722122 -34.62465,-59.3107787 -67.56161,-47.9788027 -7.94554,2.733665 -14.39183,7.0810767 -20.86151,14.0691087 -17.818,19.245561 -17.818,48.573824 0,67.819384 12.76783,13.790788 28.90993,19.292218 46.98946,16.014608 z M 139.80111,67.726062 c 0.32426,-11 0.38724,-20 0.13996,-20 -0.24727,0 -2.16546,2.25 -4.26264,5 -3.6025,4.72391 -5.82987,6.05175 -6.99341,4.1691 -0.28244,-0.457 1.09517,-3.21967 3.06135,-6.13929 4.05057,-6.014755 9.17631,-16.882459 11.80526,-25.02981 0.9761,-3.025 2.15123,-5.909326 2.61141,-6.409613 0.48892,-0.531529 2.54247,0.219213 4.94053,1.806174 l 4.10383,2.715787 -2.56344,2.016406 c -1.4099,1.109024 -2.56345,2.433745 -2.56345,2.943826 0,0.510081 4.0431,0.92742 8.98467,0.92742 l 8.98467,0 -0.62713,-6 c -0.34491,-3.3 -0.37532,-6 -0.0676,-6 0.30776,0 2.73436,0.933992 5.39246,2.075538 4.3344,1.861451 4.6524,2.208053 3.08291,3.360243 -0.96251,0.706587 -1.75001,2.472595 -1.75001,3.924462 0,2.477421 0.28815,2.639757 4.68555,2.639757 3.30256,0 5.31124,-0.587804 6.80538,-1.991475 l 2.11983,-1.991475 3.89757,3.991475 3.89757,3.991475 -10.70295,0 -10.70295,0 0,2.5 c 0,2.342397 0.32402,2.5 5.13976,2.5 3.4639,0 5.50529,-0.499891 6.26081,-1.533133 0.98459,-1.346501 1.51699,-1.241021 4.37357,0.866496 2.82073,2.081072 3.05162,2.56636 1.73919,3.655578 -1.17041,0.971349 -1.51333,3.571142 -1.51333,11.472989 0,9.97809 -0.0596,10.24418 -2.54705,11.37756 -3.25595,1.48351 -3.45295,1.46414 -3.45295,-0.33949 0,-1.13333 -1.22222,-1.5 -5,-1.5 l -5,0 0,3.5 0,3.5 5.54775,0 c 4.61176,0 5.9331,-0.41579 7.83175,-2.46447 l 2.28399,-2.46447 3.8712,3.96447 3.87121,3.96447 -11.70295,0 -11.70295,0 0,6.40217 c 0,6.28188 -0.0592,6.42281 -3.14922,7.5 -1.73207,0.60381 -3.35355,1.09783 -3.60329,1.09783 -0.24973,0 -0.29508,-3.2625 -0.10077,-7.25 l 0.35328,-7.25 -9.5,0 c -5.225,0 -10.0625,-0.36406 -10.75,-0.80902 -0.955,-0.61809 -1.25,0.73284 -1.25,5.72432 0,6.22342 -0.13996,6.60571 -2.95034,8.05902 -1.62269,0.83912 -3.1682,1.52568 -3.43448,1.52568 -0.26627,0 -0.21883,-9 0.10542,-20 z m 28.09276,-1.75 0.31336,-3.25 -5.06336,0 c -2.78485,0 -5.06336,0.37777 -5.06336,0.83949 0,0.71116 -4.26004,3.16051 -5.49694,3.16051 -0.22156,0 -0.53789,-6.77378 -0.70295,-15.05285 -0.2927,-14.681511 -0.25077,-15.035615 1.69989,-14.354395 1.1,0.384147 4.8125,0.896326 8.25,1.138175 6.1684,0.433983 6.25,0.405969 6.25,-2.145603 0,-2.576248 -0.0296,-2.585327 -8.44098,-2.585327 -4.64254,0 -8.7191,-0.45 -9.05902,-1 -1.07818,-1.744532 -2.08309,-1.097485 -3.76136,2.421894 -1.44139,3.022611 -1.45805,3.566084 -0.14283,4.657618 1.03299,0.857312 1.16975,1.554931 0.44657,2.278106 -0.61894,0.618942 -1.04238,6.458904 -1.04238,14.376212 l 0,13.33383 10.75,-0.28383 10.75,-0.28383 0.31336,-3.25 z m 0.18664,-10.25 c 0,-2.93333 -0.11111,-3 -5,-3 -4.88889,0 -5,0.0667 -5,3 0,2.93333 0.11111,3 5,3 4.88889,0 5,-0.0667 5,-3 z m 16,0 c 0,-2.93333 -0.11111,-3 -5,-3 -4.88889,0 -5,0.0667 -5,3 0,2.93333 0.11111,3 5,3 4.88889,0 5,-0.0667 5,-3 z m -16,-10 c 0,-2.933333 -0.11111,-3 -5,-3 -4.88889,0 -5,0.06667 -5,3 0,2.933333 0.11111,3 5,3 4.88889,0 5,-0.06667 5,-3 z m 16,0 c 0,-2.933333 -0.11111,-3 -5,-3 -4.88889,0 -5,0.06667 -5,3 0,2.933333 0.11111,3 5,3 4.88889,0 5,-0.06667 5,-3 z"
-       id="path3121"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#bf0008;fill-opacity:1"
-       d="M 150.90456,111.57716 C 137.8052,108.75359 123.89039,99.845509 115.71338,89.048209 86.280403,50.183559 111.65394,-5.2096368 160.40456,-8.5175208 c 15.0368,-1.020295 32.75468,5.048068 44.20066,15.138697 6.98787,6.1604178 14.38365,17.4785048 17.35972,26.5663288 3.49457,10.671179 3.49457,27.228294 0,37.899464 -9.57046,29.224751 -40.79171,47.014611 -71.06038,40.490191 z m 25.20078,-3.53001 c 19.91265,-4.09618 37.20882,-20.446951 43.20287,-40.841411 2.11031,-7.18022 2.11031,-22.956777 0,-30.136999 C 214.65017,21.21998 203.6325,7.9279352 189.60228,1.2306022 c -17.40872,-8.310061 -34.37987,-8.279803 -51.69771,0.09217 -9.42445,4.556065 -20.60176,15.9804108 -25.25627,25.8144648 -10.83806,22.898702 -6.65328,47.319952 11.15303,65.086082 8.08071,8.062481 15.85174,12.626651 26.10323,15.331261 6.63945,1.75165 18.95454,1.98318 26.20078,0.49257 z m -23.20078,-2.46999 c -25.48954,-5.49427 -43.36078,-27.519651 -43.36078,-53.439921 0,-26.610349 18.06284,-48.2189768 44.86078,-53.6671068 17.21383,-3.499639 35.61014,2.37785002 48.41081,15.4669028 3.62406,3.705698 7.83652,9.058177 9.36104,11.894396 3.55164,6.607486 6.72815,19.027036 6.72815,26.305808 0,7.27877 -3.17651,19.69832 -6.72815,26.30581 -4.62352,8.60162 -14.50363,17.77059 -24.27185,22.524851 -12.32647,5.99938 -22.3977,7.32569 -35,4.60926 z m 23.86904,-3.89268 c 12.59605,-3.352561 23.29392,-11.104581 30.32585,-21.975111 10.588,-16.36778 10.588,-38.776482 0,-55.14426 C 191.53153,0.49898322 159.24278,-6.1418858 135.24526,9.7867652 c -29.6797,19.7002588 -29.68406,64.9977938 -0.008,84.6955338 11.78023,7.819271 28.3944,10.700071 41.53649,7.202181 z m -9.13759,-22.179371 0.57275,-7.5731 -10.00922,0.34364 c -7.78054,0.26713 -10.4089,0.0119 -11.80425,-1.14611 -1.7051,-1.41511 -1.76941,-1.13138 -1.28331,5.66244 0.48761,6.81506 0.39829,7.20388 -1.89489,8.24873 -1.32365,0.60309 -2.61045,1.09653 -2.85958,1.09653 -0.24912,0 -0.45791,-8.8875 -0.46397,-19.75 l -0.011,-19.75 -4.81389,5.4378 c -6.31049,7.12837 -7.36081,5.23031 -1.98603,-3.588981 4.04984,-6.645218 10.80223,-21.952154 12.2014,-27.659233 l 0.68901,-2.810413 3.71578,2.23407 c 5.0057,3.009616 4.93001,2.907551 2.96972,4.004587 -0.95118,0.532303 -2.20076,1.848552 -2.77686,2.924997 -1.00576,1.879292 -0.66801,1.957173 8.48774,1.957173 l 9.53518,0 0,-5.5 c 0,-3.025 0.23946,-5.5 0.53212,-5.5 0.29267,0 2.15835,0.679484 4.14597,1.509964 3.40971,1.424665 3.52087,1.612707 1.96788,3.32874 -0.90528,1.000328 -1.64597,2.795844 -1.64597,3.990037 0,1.957531 0.52614,2.171259 5.34501,2.171259 4.09657,0 5.77295,-0.472863 7.17714,-2.024477 1.82823,-2.020163 1.83934,-2.0175 5.21673,1.25 l 3.3846,3.274477 -10.31174,0.5 -10.31174,0.5 -0.31642,2.75 c -0.31337,2.723446 -0.25978,2.75 5.55,2.75 3.22653,0 6.35832,-0.491894 6.95952,-1.093098 0.7908,-0.790797 1.81405,-0.620714 3.7,0.61501 2.76806,1.813704 3.23571,2.971428 1.6069,3.978088 -0.55839,0.345105 -1,5.017531 -1,10.58046 0,9.82585 -0.0366,9.9791 -2.67058,11.17922 -2.10959,0.96119 -2.7573,0.95668 -3.08334,-0.0214 -0.26037,-0.78112 -2.4124,-1.23824 -5.82941,-1.23824 l -5.41667,0 0,3.5 0,3.5 6.18555,0 c 5.03811,0 6.62998,-0.41738 8.58136,-2.25 l 2.39581,-2.25 3.13073,3.5 3.13072,3.5 -11.7815,0.28234 -11.7815,0.28233 0.25189,6.17195 c 0.24712,6.05493 0.19306,6.19595 -2.85123,7.43815 l -3.10313,1.26621 0.57275,-7.57311 z m 0.26855,-13.86787 c 0,-3.47481 -0.032,-3.5 -4.44284,-3.5 -2.71595,0 -5.82547,0.81577 -8,2.09878 l -3.55716,2.09877 0,-15.13396 c 0,-14.652623 0.0615,-15.101034 1.93426,-14.098774 1.06384,0.569351 4.66384,1.035184 8,1.035184 l 6.06574,0 0,-3.140957 0,-3.140957 -8.40246,0.524211 c -6.48204,0.4044 -8.72844,0.198231 -9.82873,-0.902058 -1.23502,-1.235024 -1.67203,-0.881258 -3.25914,2.638333 -1.74355,3.866507 -1.7475,4.127033 -0.081,5.345627 1.59408,1.165622 1.60864,1.399928 0.16161,2.600859 -1.30308,1.081457 -1.5903,3.64564 -1.5903,14.197392 l 0,12.87755 11.49999,0 11.5,0 0,-3.5 z m 0,-10 0,-3.5 -5,0 -5,0 0,3.5 0,3.5 5,0 5,0 0,-3.5 z m 16,0 0,-3.5 -5.5,0 c -5.37255,0 -5.5,0.0657 -5.5,2.83333 0,3.8016 0.54031,4.16667 6.16667,4.16667 l 4.83333,0 0,-3.5 z m -16,-10.5 c 0,-2.933333 -0.11111,-3 -5,-3 -4.88889,0 -5,0.06667 -5,3 0,2.933333 0.11111,3 5,3 4.88889,0 5,-0.06667 5,-3 z m 16,0 c 0,-2.969697 -0.0556,-3 -5.5,-3 -5.44444,0 -5.5,0.0303 -5.5,3 0,2.969697 0.0556,3 5.5,3 5.44445,0 5.5,-0.0303 5.5,-3 z"
-       id="path3119"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:#000000;fill-opacity:1"
-       d="m 153.90418,112.3585 c -29.56461,-5.29469 -50.7377,-30.318189 -50.7377,-59.964529 0,-15.980042 5.20467,-29.257829 16.068,-40.991519 23.51471,-25.398695 62.86934,-26.250782 87.12141,-1.8863102 25.65423,25.7731342 23.62735,66.5306792 -4.47478,89.9812292 -5.47561,4.569269 -16.55932,10.119569 -23.53944,11.787649 -6.84855,1.63665 -18.44777,2.14618 -24.43749,1.07348 z m 27.67766,-5.5756 c 19.20531,-6.00261 34.2766,-22.793919 38.4956,-42.888929 1.8531,-8.82624 1.8531,-14.17376 0,-23 -4.52579,-21.556238 -22.18154,-39.6640482 -43.42839,-44.5403252 -22.12383,-5.077551 -46.47358,4.13905001 -59.6245,22.5684112 -18.339494,25.700497 -12.44379,61.953074 12.99767,79.922504 15.49111,10.941449 33.21851,13.670839 51.55962,7.938339 z"
-       id="path3117"
-       inkscape:connector-curvature="0" />
-  </g>
-</svg>
diff --git a/uci.c b/uci.c
deleted file mode 100644 (file)
index 97c188f..0000000
--- a/uci.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * UCI support thru Polyglot
- *
- * Author: Alessandro Scotti (Jan 2006)
- *
- * Copyright 2006 Alessandro Scotti
- *
- * Enhancement Copyright 2009, 2010, 2011, 2012, 2013, 2014, 2015,
- * 2016 Free Software Foundation, Inc.
- *
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.
- *
- * ------------------------------------------------------------------------
- */
-#include <stdio.h>
-#include <ctype.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "common.h"
-#include "backend.h"
-Boolean GetArgValue(char *a);
-
-void
-InitEngineUCI (const char *iniDir, ChessProgramState *cps)
-{   // replace engine command line by adapter command with expanded meta-symbols
-    if( cps->isUCI ) {
-        char *p, *q;
-        char polyglotCommand[MSG_SIZ];
-
-        if(cps->isUCI == 2) p = appData.ucciAdapter; else
-        p = appData.adapterCommand;
-        q = polyglotCommand;
-        while(*p) {
-          if(*p == '\\') p++; else
-          if(*p == '%') { // substitute marker
-            char argName[MSG_SIZ], buf[MSG_SIZ], *s = buf;
-            if(*++p == '%') { // second %, expand as f or s in option name (e.g. %%cp -> fcp)
-              *s++ = cps == &first ? 'f' : 's';
-              p++;
-            }
-            while(isdigit(*p) || isalpha(*p)) *s++ = *p++; // copy option name
-            *s = NULLCHAR;
-            if(cps == &second) { // change options for first into those for second engine
-              if(strstr(buf, "first") == buf) sprintf(argName, "second%s", buf+5); else
-              if(buf[0] == 'f') sprintf(argName, "s%s", buf+1); else
-               safeStrCpy(argName, buf, sizeof(argName)/sizeof(argName[0]));
-            } else safeStrCpy(argName, buf, sizeof(argName)/sizeof(argName[0]));
-            if(GetArgValue(argName)) { // look up value of option with this name
-              s = argName;
-              while(*s) *q++ = *s++;
-            } else DisplayFatalError("Bad adapter command", 0, 1);
-            continue;
-          }
-          if(*p) *q++ = *p++;
-        }
-        *q = NULLCHAR;
-        cps->program = StrSave(polyglotCommand);
-        cps->dir = appData.polyglotDir;
-    }
-}
diff --git a/usounds.c b/usounds.c
deleted file mode 100644 (file)
index 6432335..0000000
--- a/usounds.c
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- * usounds.c -- sound handling for XBoard (through external player)
- *
- * Copyright 1991 by Digital Equipment Corporation, Maynard,
- * Massachusetts.
- *
- * Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006,
- * 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free
- * Software Foundation, Inc.
- *
- * The following terms apply to Digital Equipment Corporation's copyright
- * interest in XBoard:
- * ------------------------------------------------------------------------
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notice appear in all copies and that
- * both that copyright notice and this permission notice appear in
- * supporting documentation, and that the name of Digital not be
- * used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- *
- * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- * ------------------------------------------------------------------------
- *
- * The following terms apply to the enhanced version of XBoard
- * distributed by the Free Software Foundation:
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-#include "config.h"
-
-#include <stdio.h>
-#include <ctype.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#if STDC_HEADERS
-# include <stdlib.h>
-# include <string.h>
-#else /* not STDC_HEADERS */
-extern char *getenv();
-# if HAVE_STRING_H
-#  include <string.h>
-# else /* not HAVE_STRING_H */
-#  include <strings.h>
-# endif /* not HAVE_STRING_H */
-#endif /* not STDC_HEADERS */
-
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
-#include "common.h"
-#include "frontend.h"
-
-
-int
-PlaySoundFile (char *name)
-{
-  if (*name == NULLCHAR) {
-    return 0;
-  } else if (strcmp(name, "$") == 0) {
-    putc(BELLCHAR, stderr);
-  } else {
-    char buf[2048];
-    char *prefix = "", *sep = "";
-    if(appData.soundProgram[0] == NULLCHAR) return 1;
-    if(!strchr(name, '/')) { prefix = appData.soundDirectory; sep = "/"; }
-    snprintf(buf, sizeof(buf), "%s '%s%s%s' &", appData.soundProgram, prefix, sep, name);
-    system(buf);
-  }
-  return 1;
-}
-
-void
-RingBell ()
-{
-  PlaySoundFile(appData.soundMove);
-}
-
-void
-PlayIcsWinSound ()
-{
-  PlaySoundFile(appData.soundIcsWin);
-}
-
-void
-PlayIcsLossSound ()
-{
-  PlaySoundFile(appData.soundIcsLoss);
-}
-
-void
-PlayIcsDrawSound ()
-{
-  PlaySoundFile(appData.soundIcsDraw);
-}
-
-void
-PlayIcsUnfinishedSound ()
-{
-  PlaySoundFile(appData.soundIcsUnfinished);
-}
-
-void
-PlayAlarmSound ()
-{
-  PlaySoundFile(appData.soundIcsAlarm);
-}
-
-void
-PlayTellSound ()
-{
-  PlaySoundFile(appData.soundTell);
-}
-
-int
-Roar ()
-{
-  return PlaySoundFile(appData.soundRoar);
-}
-
-void
-PlaySoundForColor (ColorClass cc)
-{
-    switch (cc) {
-    case ColorShout:
-      PlaySoundFile(appData.soundShout);
-      break;
-    case ColorSShout:
-      PlaySoundFile(appData.soundSShout);
-      break;
-    case ColorChannel1:
-      PlaySoundFile(appData.soundChannel1);
-      break;
-    case ColorChannel:
-      PlaySoundFile(appData.soundChannel);
-      break;
-    case ColorKibitz:
-      PlaySoundFile(appData.soundKibitz);
-      break;
-    case ColorTell:
-      PlaySoundFile(appData.soundTell);
-      break;
-    case ColorChallenge:
-      PlaySoundFile(appData.soundChallenge);
-      break;
-    case ColorRequest:
-      PlaySoundFile(appData.soundRequest);
-      break;
-    case ColorSeek:
-      PlaySoundFile(appData.soundSeek);
-      break;
-    case ColorNormal:
-    case ColorNone:
-    default:
-      break;
-    }
-}
diff --git a/usystem.c b/usystem.c
deleted file mode 100644 (file)
index 743c701..0000000
--- a/usystem.c
+++ /dev/null
@@ -1,810 +0,0 @@
-/*
- * usystem.c -- X-free, but Unix-like code for XBoard front end
- *
- * Copyright 1991 by Digital Equipment Corporation, Maynard,
- * Massachusetts.
- *
- * Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006,
- * 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free
- * Software Foundation, Inc.
- *
- * The following terms apply to Digital Equipment Corporation's copyright
- * interest in XBoard:
- * ------------------------------------------------------------------------
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notice appear in all copies and that
- * both that copyright notice and this permission notice appear in
- * supporting documentation, and that the name of Digital not be
- * used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- *
- * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- * ------------------------------------------------------------------------
- *
- * The following terms apply to the enhanced version of XBoard
- * distributed by the Free Software Foundation:
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-#include "config.h"
-
-#include <stdio.h>
-#include <ctype.h>
-#include <signal.h>
-#include <errno.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <pwd.h>
-#include <math.h>
-
-#if !OMIT_SOCKETS
-# if HAVE_SYS_SOCKET_H
-#  include <sys/socket.h>
-#  include <netinet/in.h>
-#  include <netdb.h>
-# else /* not HAVE_SYS_SOCKET_H */
-#  if HAVE_LAN_SOCKET_H
-#   include <lan/socket.h>
-#   include <lan/in.h>
-#   include <lan/netdb.h>
-#  else /* not HAVE_LAN_SOCKET_H */
-#   define OMIT_SOCKETS 1
-#  endif /* not HAVE_LAN_SOCKET_H */
-# endif /* not HAVE_SYS_SOCKET_H */
-#endif /* !OMIT_SOCKETS */
-
-#if STDC_HEADERS
-# include <stdlib.h>
-# include <string.h>
-#else /* not STDC_HEADERS */
-extern char *getenv();
-# if HAVE_STRING_H
-#  include <string.h>
-# else /* not HAVE_STRING_H */
-#  include <strings.h>
-# endif /* not HAVE_STRING_H */
-#endif /* not STDC_HEADERS */
-
-#if HAVE_SYS_FCNTL_H
-# include <sys/fcntl.h>
-#else /* not HAVE_SYS_FCNTL_H */
-# if HAVE_FCNTL_H
-#  include <fcntl.h>
-# endif /* HAVE_FCNTL_H */
-#endif /* not HAVE_SYS_FCNTL_H */
-
-#if HAVE_SYS_SYSTEMINFO_H
-# include <sys/systeminfo.h>
-#endif /* HAVE_SYS_SYSTEMINFO_H */
-
-#if TIME_WITH_SYS_TIME
-# include <sys/time.h>
-# include <time.h>
-#else
-# if HAVE_SYS_TIME_H
-#  include <sys/time.h>
-# else
-#  include <time.h>
-# endif
-#endif
-
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
-#if HAVE_SYS_WAIT_H
-# include <sys/wait.h>
-#endif
-
-#if HAVE_DIRENT_H
-# include <dirent.h>
-# define NAMLEN(dirent) strlen((dirent)->d_name)
-# define HAVE_DIR_STRUCT
-#else
-# define dirent direct
-# define NAMLEN(dirent) (dirent)->d_namlen
-# if HAVE_SYS_NDIR_H
-#  include <sys/ndir.h>
-#  define HAVE_DIR_STRUCT
-# endif
-# if HAVE_SYS_DIR_H
-#  include <sys/dir.h>
-#  define HAVE_DIR_STRUCT
-# endif
-# if HAVE_NDIR_H
-#  include <ndir.h>
-#  define HAVE_DIR_STRUCT
-# endif
-#endif
-
-#if ENABLE_NLS
-#include <locale.h>
-#endif
-
-// [HGM] bitmaps: put before incuding the bitmaps / pixmaps, to know how many piece types there are.
-#include "common.h"
-
-#include "frontend.h"
-#include "backend.h"
-#include "childio.h"
-#include "menus.h"
-#include "usystem.h"
-#include "gettext.h"
-
-
-#ifdef __EMX__
-#ifndef HAVE_USLEEP
-#define HAVE_USLEEP
-#endif
-#define usleep(t)   _sleep2(((t)+500)/1000)
-#endif
-
-#ifdef ENABLE_NLS
-# define  _(s) gettext (s)
-# define N_(s) gettext_noop (s)
-#else
-# define  _(s) (s)
-# define N_(s)  s
-#endif
-
-static int get_term_width P(());
-
-static char *cnames[9] = { "black", "red", "green", "yellow", "blue",
-                            "magenta", "cyan", "white" };
-TextColors textColors[(int)NColorClasses];
-
-/* String is: "fg, bg, attr". Which is 0, 1, 2 */
-static int
-parse_color (char *str, int which)
-{
-    char *p, buf[100], *d;
-    int i;
-
-    if (strlen(str) > 99)      /* watch bounds on buf */
-      return -1;
-
-    p = str;
-    d = buf;
-    for (i=0; i<which; ++i) {
-       p = strchr(p, ',');
-       if (!p)
-         return -1;
-       ++p;
-    }
-
-    /* Could be looking at something like:
-       black, , 1
-       .. in which case we want to stop on a comma also */
-    while (*p && *p != ',' && !isalpha(*p) && !isdigit(*p))
-      ++p;
-
-    if (*p == ',') {
-       return -1;              /* Use default for empty field */
-    }
-
-    if (which == 2 || isdigit(*p))
-      return atoi(p);
-
-    while (*p && isalpha(*p))
-      *(d++) = *(p++);
-
-    *d = 0;
-
-    for (i=0; i<8; ++i) {
-       if (!StrCaseCmp(buf, cnames[i]))
-         return which? (i+40) : (i+30);
-    }
-    if (!StrCaseCmp(buf, "default")) return -1;
-
-    fprintf(stderr, _("%s: unrecognized color %s\n"), programName, buf);
-    return -2;
-}
-
-static int
-parse_cpair (ColorClass cc, char *str)
-{
-    if ((textColors[(int)cc].fg=parse_color(str, 0)) == -2) {
-       fprintf(stderr, _("%s: can't parse foreground color in '%s'\n"),
-               programName, str);
-       return -1;
-    }
-
-    /* bg and attr are optional */
-    textColors[(int)cc].bg = parse_color(str, 1);
-    if ((textColors[(int)cc].attr = parse_color(str, 2)) < 0) {
-       textColors[(int)cc].attr = 0;
-    }
-    return 0;
-}
-
-void
-ParseIcsTextColors ()
-{   // [HGM] tken out of main(), so it can be called from ICS-Options dialog
-    if (parse_cpair(ColorShout, appData.colorShout) < 0 ||
-       parse_cpair(ColorSShout, appData.colorSShout) < 0 ||
-       parse_cpair(ColorChannel1, appData.colorChannel1) < 0  ||
-       parse_cpair(ColorChannel, appData.colorChannel) < 0  ||
-       parse_cpair(ColorKibitz, appData.colorKibitz) < 0 ||
-       parse_cpair(ColorTell, appData.colorTell) < 0 ||
-       parse_cpair(ColorChallenge, appData.colorChallenge) < 0  ||
-       parse_cpair(ColorRequest, appData.colorRequest) < 0  ||
-       parse_cpair(ColorSeek, appData.colorSeek) < 0  ||
-       parse_cpair(ColorNormal, appData.colorNormal) < 0)
-      {
-         if (appData.colorize) {
-             fprintf(stderr,
-                     _("%s: can't parse color names; disabling colorization\n"),
-                     programName);
-         }
-         appData.colorize = FALSE;
-      }
-    textColors[ColorNone].fg = textColors[ColorNone].bg = -1;
-    textColors[ColorNone].attr = 0;
-    SetTextColor(cnames, textColors[ColorNormal].fg - 30, textColors[ColorNormal].bg - 40, -2); // kludge to announce background color to front-end 
-}
-
-char *oldICSInteractionTitle;
-
-void
-ShutDownFrontEnd ()
-{
-    if (appData.icsActive && oldICSInteractionTitle != NULL) {
-        DisplayIcsInteractionTitle(oldICSInteractionTitle);
-    }
-    if (saveSettingsOnExit) SaveSettings(settingsFileName);
-    unlink(gameCopyFilename);
-    unlink(gamePasteFilename);
-    EchoOn();
-}
-
-void
-RunCommand (char *buf)
-{
-    system(buf);
-}
-
-void
-Colorize (ColorClass cc, int continuation)
-{
-    char buf[MSG_SIZ];
-    int count, outCount, error;
-
-    SetTextColor(cnames, textColors[(int)cc].fg - 30, textColors[(int)cc].bg - 40, textColors[(int)cc].attr); // for GTK widget
-
-    if (textColors[(int)cc].bg > 0) {
-       if (textColors[(int)cc].fg > 0) {
-         snprintf(buf, MSG_SIZ, "\033[0;%d;%d;%dm", textColors[(int)cc].attr,
-                  textColors[(int)cc].fg, textColors[(int)cc].bg);
-       } else {
-         snprintf(buf, MSG_SIZ, "\033[0;%d;%dm", textColors[(int)cc].attr,
-                  textColors[(int)cc].bg);
-       }
-    } else {
-       if (textColors[(int)cc].fg > 0) {
-         snprintf(buf, MSG_SIZ, "\033[0;%d;%dm", textColors[(int)cc].attr,
-                   textColors[(int)cc].fg);
-       } else {
-         snprintf(buf, MSG_SIZ, "\033[0;%dm", textColors[(int)cc].attr);
-       }
-    }
-    count = strlen(buf);
-    outCount = OutputToProcess(NoProc, buf, count, &error);
-    if (outCount < count) {
-       DisplayFatalError(_("Error writing to display"), error, 1);
-    }
-
-    if (continuation) return;
-    PlaySoundForColor(cc);
-}
-
-char *
-UserName ()
-{
-    return getpwuid(getuid())->pw_name;
-}
-
-char *
-ExpandPathName (char *path)
-{
-    static char static_buf[4*MSG_SIZ];
-    char *d, *s, buf[4*MSG_SIZ];
-    struct passwd *pwd;
-
-    s = path;
-    d = static_buf;
-
-    while (*s && isspace(*s))
-      ++s;
-
-    if (!*s) {
-       *d = 0;
-       return static_buf;
-    }
-
-    if (*s == '~') {
-       if(s[1] == '~') { // use ~~ for XBoard's private data directory
-         snprintf(d, 4*MSG_SIZ, "%s%s", dataDir, s+2);
-       } else
-       if (*(s+1) == '/') {
-         safeStrCpy(d, getpwuid(getuid())->pw_dir, 4*MSG_SIZ );
-         strcat(d, s+1);
-       }
-       else {
-         safeStrCpy(buf, s+1, sizeof(buf)/sizeof(buf[0]) );
-         { char *p; if(p = strchr(buf, '/')) *p = 0; }
-         pwd = getpwnam(buf);
-         if (!pwd)
-           {
-             fprintf(stderr, _("ERROR: Unknown user %s (in path %s)\n"),
-                     buf, path);
-             return NULL;
-           }
-         safeStrCpy(d, pwd->pw_dir, 4*MSG_SIZ );
-         strcat(d, strchr(s+1, '/'));
-       }
-    }
-    else
-      safeStrCpy(d, s, 4*MSG_SIZ );
-
-    return static_buf;
-}
-
-int
-MySearchPath (char *installDir, char *name, char *fullname)
-{ // just append installDir and name. Perhaps ExpandPath should be used here?
-  name = ExpandPathName(name);
-  if(name && name[0] == '/')
-    safeStrCpy(fullname, name, MSG_SIZ );
-  else {
-    sprintf(fullname, "%s%c%s", installDir, '/', name);
-  }
-  return 1;
-}
-
-int
-MyGetFullPathName (char *name, char *fullname)
-{ // should use ExpandPath?
-  name = ExpandPathName(name);
-  safeStrCpy(fullname, name, MSG_SIZ );
-  return 1;
-}
-
-char *
-HostName ()
-{
-    static char host_name[MSG_SIZ];
-
-#if HAVE_GETHOSTNAME
-    gethostname(host_name, MSG_SIZ);
-    return host_name;
-#else  /* not HAVE_GETHOSTNAME */
-# if HAVE_SYSINFO && HAVE_SYS_SYSTEMINFO_H
-    sysinfo(SI_HOSTNAME, host_name, MSG_SIZ);
-    return host_name;
-# else /* not (HAVE_SYSINFO && HAVE_SYS_SYSTEMINFO_H) */
-    return "localhost";
-# endif/* not (HAVE_SYSINFO && HAVE_SYS_SYSTEMINFO_H) */
-#endif /* not HAVE_GETHOSTNAME */
-}
-
-
-int
-StartChildProcess (char *cmdLine, char *dir, ProcRef *pr)
-{
-    char *argv[64], *p;
-    int i, pid;
-    int to_prog[2], from_prog[2];
-    ChildProc *cp;
-    char buf[MSG_SIZ];
-
-    if (appData.debugMode) {
-       fprintf(debugFP, "StartChildProcess (dir=\"%s\") %s\n",dir, cmdLine);
-    }
-
-    /* We do NOT feed the cmdLine to the shell; we just
-       parse it into blank-separated arguments in the
-       most simple-minded way possible.
-       */
-    i = 0;
-    safeStrCpy(buf, cmdLine, sizeof(buf)/sizeof(buf[0]) );
-    p = buf;
-    for (;;) {
-       while(*p == ' ') p++;
-       argv[i++] = p;
-       if(*p == '"' || *p == '\'')
-            p = strchr(++argv[i-1], *p);
-       else p = strchr(p, ' ');
-       if (p == NULL) break;
-       *p++ = NULLCHAR;
-    }
-    argv[i] = NULL;
-
-    SetUpChildIO(to_prog, from_prog);
-
-    if ((pid = fork()) == 0) {
-       /* Child process */
-       // [HGM] PSWBTM: made order resistant against case where fd of created pipe was 0 or 1
-       close(to_prog[1]);     // first close the unused pipe ends
-       close(from_prog[0]);
-       dup2(to_prog[0], 0);   // to_prog was created first, nd is the only one to use 0 or 1
-       dup2(from_prog[1], 1);
-       if(to_prog[0] >= 2) close(to_prog[0]); // if 0 or 1, the dup2 already cosed the original
-       close(from_prog[1]);                   // and closing again loses one of the pipes!
-       if(fileno(stderr) >= 2) // better safe than sorry...
-               dup2(1, fileno(stderr)); /* force stderr to the pipe */
-
-       if (dir[0] != NULLCHAR && chdir(dir) != 0) {
-           perror(dir);
-           exit(1);
-       }
-
-       nice(appData.niceEngines); // [HGM] nice: adjust priority of engine proc
-
-        execvp(argv[0], argv);
-
-       /* If we get here, exec failed */
-       perror(argv[0]);
-       exit(1);
-    }
-
-    /* Parent process */
-    close(to_prog[0]);
-    close(from_prog[1]);
-
-    cp = (ChildProc *) calloc(1, sizeof(ChildProc));
-    cp->kind = CPReal;
-    cp->pid = pid;
-    cp->fdFrom = from_prog[0];
-    cp->fdTo = to_prog[1];
-    *pr = (ProcRef) cp;
-    return 0;
-}
-
-// [HGM] kill: implement the 'hard killing' of AS's Winboard_x
-static int pid;
-
-static RETSIGTYPE
-AlarmCallBack (int n)
-{
-    kill(pid, SIGKILL); // kill forcefully
-    return;
-}
-
-void
-DestroyChildProcess (ProcRef pr, int signalType)
-{
-    ChildProc *cp = (ChildProc *) pr;
-
-    if (cp->kind != CPReal) return;
-    cp->kind = CPNone;
-    if (signalType & 1) {
-           kill(cp->pid, signalType == 9 ? SIGKILL : SIGTERM); // [HGM] kill: for 9 hard-kill immediately
-    }
-    signal(SIGALRM, AlarmCallBack);
-    pid = cp->pid;
-    if(signalType & 4) alarm(1 + appData.delayAfterQuit); // [HGM] kill: schedule hard kill if so requested
-    /* Process is exiting either because of the kill or because of
-       a quit command sent by the backend; either way, wait for it to die.
-    */
-    wait((int *) 0);
-    alarm(0); // cancel alarm if still pending
-    close(cp->fdFrom);
-    close(cp->fdTo);
-}
-
-char *
-BufferCommandOutput (char *command, int size)
-{
-    char *res = (char *) calloc(1, size);
-    if(res) {
-       int count;
-       FILE *f;
-#if 0
-       ChildProc *pr;
-       StartChildProcess(command, ".", (ProcRef) &pr);    // run command in daughter process
-       f = fdopen(pr->fdFrom, "r");
-       count = fread(res, 1, size-1, f);  // read its output
-       fclose(f);
-       DestroyChildProcess((ProcRef) pr, 9);
-       free(pr);
-#else
-       f = popen(command, "r");
-       if(!f) return res;
-       count = fread(res, 1, size-1, f);  // read its output
-       pclose(f);
-#endif
-       res[count > 0 ? count : 0] = NULLCHAR;  
-    }
-    return res; // return buffer with output
-}
-
-void
-InterruptChildProcess (ProcRef pr)
-{
-    ChildProc *cp = (ChildProc *) pr;
-
-    if (cp->kind != CPReal) return;
-    (void) kill(cp->pid, SIGINT); /* stop it thinking */
-}
-
-int
-OpenTelnet (char *host, char *port, ProcRef *pr)
-{
-    char cmdLine[MSG_SIZ];
-
-    if (port[0] == NULLCHAR) {
-      snprintf(cmdLine, sizeof(cmdLine), "%s %s", appData.telnetProgram, host);
-    } else {
-      snprintf(cmdLine, sizeof(cmdLine), "%s %s %s", appData.telnetProgram, host, port);
-    }
-    return StartChildProcess(cmdLine, "", pr);
-}
-
-int
-OpenTCP (char *host, char *port, ProcRef *pr)
-{
-#if OMIT_SOCKETS
-    DisplayFatalError(_("Socket support is not configured in"), 0, 2);
-#else  /* !OMIT_SOCKETS */
-    struct addrinfo hints;
-    struct addrinfo *ais, *ai;
-    int error;
-    int s=0;
-    ChildProc *cp;
-
-    memset(&hints, 0, sizeof(hints));
-    hints.ai_family = AF_UNSPEC;
-    hints.ai_socktype = SOCK_STREAM;
-
-    error = getaddrinfo(host, port, &hints, &ais);
-    if (error != 0) {
-      /* a getaddrinfo error is not an errno, so can't return it */
-      fprintf(debugFP, "getaddrinfo(%s, %s): %s\n",
-             host, port, gai_strerror(error));
-      return ENOENT;
-    }
-
-    for (ai = ais; ai != NULL; ai = ai->ai_next) {
-      if ((s = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol)) < 0) {
-       error = errno;
-       continue;
-      }
-      if (connect(s, ai->ai_addr, ai->ai_addrlen) < 0) {
-       error = errno;
-       continue;
-      }
-      error = 0;
-      break;
-    }
-    freeaddrinfo(ais);
-
-    if (error != 0) {
-      return error;
-    }
-
-    cp = (ChildProc *) calloc(1, sizeof(ChildProc));
-    cp->kind = CPSock;
-    cp->pid = 0;
-    cp->fdFrom = s;
-    cp->fdTo = s;
-    *pr = (ProcRef) cp;
-#endif /* !OMIT_SOCKETS */
-
-    return 0;
-}
-
-int
-OpenCommPort (char *name, ProcRef *pr)
-{
-    int fd;
-    ChildProc *cp;
-
-    fd = open(name, 2, 0);
-    if (fd < 0) return errno;
-
-    cp = (ChildProc *) calloc(1, sizeof(ChildProc));
-    cp->kind = CPComm;
-    cp->pid = 0;
-    cp->fdFrom = fd;
-    cp->fdTo = fd;
-    *pr = (ProcRef) cp;
-
-    return 0;
-}
-
-int
-OpenLoopback (ProcRef *pr)
-{
-    ChildProc *cp;
-    int to[2], from[2];
-
-    SetUpChildIO(to, from);
-
-    cp = (ChildProc *) calloc(1, sizeof(ChildProc));
-    cp->kind = CPLoop;
-    cp->pid = 0;
-    cp->fdFrom = to[0];                /* note not from[0]; we are doing a loopback */
-    cp->fdTo = to[1];
-    *pr = (ProcRef) cp;
-
-    return 0;
-}
-
-int
-OpenRcmd (char *host, char *user, char *cmd, ProcRef *pr)
-{
-    DisplayFatalError(_("internal rcmd not implemented for Unix"), 0, 1);
-    return -1;
-}
-
-Boolean stdoutClosed = FALSE;
-
-int
-OutputToProcess (ProcRef pr, char *message, int count, int *outError)
-{
-    static int line = 0;
-    ChildProc *cp = (ChildProc *) pr;
-    int outCount = count;
-
-    if (pr == NoProc)
-    {
-        if (appData.noJoin || !appData.useInternalWrap) {
-            if(!stdoutClosed) outCount = fwrite(message, 1, count, stdout);
-        } else
-        {
-            int width = get_term_width();
-            int len = wrap(NULL, message, count, width, &line);
-            char *msg = malloc(len);
-            int dbgchk;
-
-            if (!msg)
-                outCount = fwrite(message, 1, count, stdout);
-            else
-            {
-                dbgchk = wrap(msg, message, count, width, &line);
-                if (dbgchk != len && appData.debugMode)
-                    fprintf(debugFP, "wrap(): dbgchk(%d) != len(%d)\n", dbgchk, len);
-                outCount = fwrite(msg, 1, dbgchk, stdout);
-                free(msg);
-            }
-        }
-        if(*message != '\033') ConsoleWrite(message, count);
-    }
-    else
-      outCount = write(cp->fdTo, message, count);
-
-    if (outCount == -1)
-      *outError = errno;
-    else
-      *outError = 0;
-
-    return outCount;
-}
-
-/* Output message to process, with "ms" milliseconds of delay
-   between each character. This is needed when sending the logon
-   script to ICC, which for some reason doesn't like the
-   instantaneous send. */
-int
-OutputToProcessDelayed (ProcRef pr, char *message, int count, int *outError, long msdelay)
-{
-    ChildProc *cp = (ChildProc *) pr;
-    int outCount = 0;
-    int r;
-
-    while (count--) {
-       r = write(cp->fdTo, message++, 1);
-       if (r == -1) {
-           *outError = errno;
-           return outCount;
-       }
-       ++outCount;
-       if (msdelay >= 0)
-         TimeDelay(msdelay);
-    }
-
-    return outCount;
-}
-
-int
-ICSInitScript ()
-{
-  /* try to open the icsLogon script, either in the location given
-   * or in the users HOME directory
-   */
-
-  FILE *f;
-  char buf[MSG_SIZ];
-  char *homedir;
-
-  f = fopen(appData.icsLogon, "r");
-  if (f == NULL)
-    {
-      homedir = getenv("HOME");
-      if (homedir != NULL)
-       {
-         safeStrCpy(buf, homedir, sizeof(buf)/sizeof(buf[0]) );
-         strncat(buf, "/", MSG_SIZ - strlen(buf) - 1);
-         strncat(buf, appData.icsLogon,  MSG_SIZ - strlen(buf) - 1);
-         f = fopen(buf, "r");
-       }
-    }
-
-  if (f != NULL) {
-    ProcessICSInitScript(f);
-    return TRUE;
-  } else
-    printf("Warning: Couldn't open icsLogon file (checked %s and %s).\n", appData.icsLogon, buf);
-
-  return FALSE;
-}
-
-void
-ResetFrontEnd ()
-{
-    CommentPopDown();
-    TagsPopDown();
-    return;
-}
-
-#include <sys/ioctl.h>
-static int
-get_term_width ()
-{
-    int fd, default_width;
-
-    fd = STDIN_FILENO;
-    default_width = 79; // this is FICS default anyway...
-
-#if !defined(TIOCGWINSZ) && defined(TIOCGSIZE)
-    struct ttysize win;
-    if (!ioctl(fd, TIOCGSIZE, &win))
-        default_width = win.ts_cols;
-#elif defined(TIOCGWINSZ)
-    struct winsize win;
-    if (!ioctl(fd, TIOCGWINSZ, &win))
-        default_width = win.ws_col;
-#endif
-    return default_width;
-}
-
-void
-update_ics_width ()
-{
-  static int old_width = 0;
-  int new_width = get_term_width();
-
-  if (old_width != new_width)
-    ics_printf("set width %d\n", new_width);
-  old_width = new_width;
-}
-
-void
-NotifyFrontendLogin ()
-{
-    update_ics_width();
-}
diff --git a/usystem.h b/usystem.h
deleted file mode 100644 (file)
index f3dc83a..0000000
--- a/usystem.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * usystem.h -- stuff shared between XBoard's xboard.c and uconnect.c
- *
- * Copyright 1991 by Digital Equipment Corporation, Maynard,
- * Massachusetts.
- *
- * Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006,
- * 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free
- * Software Foundation, Inc.
- *
- * The following terms apply to Digital Equipment Corporation's copyright
- * interest in XBoard:
- * ------------------------------------------------------------------------
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notice appear in all copies and that
- * both that copyright notice and this permission notice appear in
- * supporting documentation, and that the name of Digital not be
- * used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- *
- * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- * ------------------------------------------------------------------------
- *
- * The following terms apply to the enhanced version of XBoard
- * distributed by the Free Software Foundation:
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-
-typedef struct {
-    int attr, bg, fg;
-} TextColors;
-
-#define CPNone 0
-#define CPReal 1
-#define CPComm 2
-#define CPSock 3
-#define CPLoop 4
-typedef int CPKind;
-
-typedef struct {
-    CPKind kind;
-    int pid;
-    int fdTo, fdFrom;
-} ChildProc;
-
-extern char *oldICSInteractionTitle;
-extern Boolean stdoutClosed;
-
-char *ExpandPathName P((char *path));
-int  MySearchPath P((char *installDir, char *name, char *fullname));
-int  MyGetFullPathName P((char *name, char *fullname));
-void PlaySoundForColor P((ColorClass cc));
diff --git a/winboard/COMPILING b/winboard/COMPILING
deleted file mode 100644 (file)
index eaeeeea..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-Compiling with an Integrated Development Envrionment\r
-\r
-    Microsoft Visual C++\r
-    --\r
-    For MSVC 6.0 IDE, all you need to do is 'File|Open Workspace...' and select\r
-    'winboard.dsw'.  Then to build, choose 'Build|Batch Build...' and select\r
-    the targets you want to build.  This method has full support for Debug and\r
-    Release builds either with or without JAWS support.\r
-\r
-    For later versions of Visual C++, open the same workspace and convert when\r
-    prompted.  Then compile as above.\r
-\r
-\r
-    DevCpp\r
-    --\r
-    For DevCpp, you need to 'File|Open Project or File...' and select either\r
-    'winboard.dev' or 'WB4Jaws.dev'.  After parsing the project, you can\r
-    'Execute|Compile' to build.  This IDE has no facility for defines in the\r
-    resource compiler, so the version information resource will not indicate\r
-    JAWS support even if it actually has that support.  These projects are not\r
-    set up for debugging, but you can do so by adjusting the 'Compiler' and\r
-    'Parameters' options in the 'Project|Project Options' dialog.\r
-\r
-\r
-\r
-Compiling from the Command Line\r
-\r
-    GCC -- this includes cygwin, mingw, djgpp and others.\r
-\r
-        make -f makefile.gcc\r
-\r
-        You can modify certain settings in the makefile such as JAWS support,\r
-        debugging support.  If using cygwin, you can select whether or not to\r
-        link with cygwin1.dll instead of the msvcrt runtime.\r
-\r
-\r
-    CL -- this includes MSVC and recent Intel compilers.\r
-\r
-        nmake -f makefile.ms        Note: NMAKE, not MAKE\r
-\r
-        For Visual Studio 2005 and later, set VCVER to 8, otherwise set it to\r
-        6.  You can select JAWS support or debugging just like the GCC\r
-        makefile.  For MSVC 6.0 and earlier, you are going to need the latest\r
-        SDK from Microsoft.  After you install it, set the SDK_INC variable\r
-        appropriately.  It defaults to the standard location, but you still\r
-        need to uncomment the line.  Prior to compiling from the command line,\r
-        it will be necessary to invoke VCVARS32.BAT if you didn't have MSVC\r
-        register the command line environment variables during installation.\r
diff --git a/winboard/WB4Jaws.dev b/winboard/WB4Jaws.dev
deleted file mode 100644 (file)
index 3d62654..0000000
+++ /dev/null
@@ -1,300 +0,0 @@
-[Project]\r
-FileName=WB4Jaws.dev\r
-Name=Winboard\r
-UnitCount=27\r
-Type=0\r
-Ver=1\r
-ObjFiles=\r
-Includes=\r
-Libs=\r
-PrivateResource=Winboard_private.rc\r
-ResourceIncludes=..\r
-MakeIncludes=\r
-Compiler=-I.._@@_-I._@@_-DNDEBUG_@@_-DJAWS_@@_\r
-CppCompiler=\r
-Linker=-fpic_@@_-s_@@_-mwindows_@@_-lwsock32_@@_-lwinmm_@@_-lcomctl32_@@_\r
-IsCpp=0\r
-Icon=\r
-ExeOutput=\r
-ObjectOutput=.\objs\r
-OverrideOutput=1\r
-OverrideOutputName=Winboard.exe\r
-HostApplication=\r
-Folders=\r
-CommandLine=\r
-UseCustomMakefile=0\r
-CustomMakefile=makefile.gcc\r
-IncludeVersionInfo=0\r
-SupportXPThemes=0\r
-CompilerSet=0\r
-CompilerSettings=0000000000001000000100\r
-\r
-[Unit1]\r
-FileName=wsockerr.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit2]\r
-FileName=..\parser.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit3]\r
-FileName=wclipbrd.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit4]\r
-FileName=wedittags.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit5]\r
-FileName=wevalgraph.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit6]\r
-FileName=wgamelist.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit7]\r
-FileName=whistory.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit8]\r
-FileName=winboard.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit9]\r
-FileName=wlayout.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit10]\r
-FileName=woptions.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit11]\r
-FileName=wsnap.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit12]\r
-FileName=..\uci.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit13]\r
-FileName=..\backend.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit14]\r
-FileName=..\book.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit15]\r
-FileName=..\gamelist.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit16]\r
-FileName=..\lists.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit17]\r
-FileName=..\moves.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit18]\r
-FileName=..\pgntags.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit19]\r
-FileName=winboard.rc\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=0\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit20]\r
-FileName=..\zippy.c\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-CompileCpp=0\r
-\r
-[Unit21]\r
-FileName=help.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit22]\r
-FileName=wsettings.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit23]\r
-FileName=wchat.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit24]\r
-FileName=..\engineoutput.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit25]\r
-FileName=..\evalgraph.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit26]\r
-FileName=wengineoutput.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit27]\r
-FileName=..\history.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
diff --git a/winboard/Winboard.dev b/winboard/Winboard.dev
deleted file mode 100644 (file)
index 976b31f..0000000
+++ /dev/null
@@ -1,300 +0,0 @@
-[Project]\r
-FileName=Winboard.dev\r
-Name=Winboard\r
-UnitCount=27\r
-Type=0\r
-Ver=1\r
-ObjFiles=\r
-Includes=\r
-Libs=\r
-PrivateResource=Winboard_private.rc\r
-ResourceIncludes=..\r
-MakeIncludes=\r
-Compiler=-I.._@@_-I._@@_-DNDEBUG_@@_\r
-CppCompiler=\r
-Linker=-fpic_@@_-s_@@_-mwindows_@@_-lwsock32_@@_-lwinmm_@@_-lcomctl32_@@_\r
-IsCpp=0\r
-Icon=\r
-ExeOutput=\r
-ObjectOutput=./objs\r
-OverrideOutput=0\r
-OverrideOutputName=Winboard.exe\r
-HostApplication=\r
-Folders=\r
-CommandLine=\r
-UseCustomMakefile=0\r
-CustomMakefile=makefile.gcc\r
-IncludeVersionInfo=0\r
-SupportXPThemes=0\r
-CompilerSet=0\r
-CompilerSettings=0000000000001000000100\r
-\r
-[Unit1]\r
-FileName=wsockerr.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit2]\r
-FileName=..\parser.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit3]\r
-FileName=wclipbrd.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit4]\r
-FileName=wedittags.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit5]\r
-FileName=wevalgraph.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit6]\r
-FileName=wgamelist.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit7]\r
-FileName=whistory.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit8]\r
-FileName=winboard.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit9]\r
-FileName=wlayout.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit10]\r
-FileName=woptions.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit11]\r
-FileName=wsnap.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit12]\r
-FileName=..\uci.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit13]\r
-FileName=..\backend.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit14]\r
-FileName=..\book.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit15]\r
-FileName=..\gamelist.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit16]\r
-FileName=..\lists.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit17]\r
-FileName=..\moves.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit18]\r
-FileName=..\pgntags.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit19]\r
-FileName=winboard.rc\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=0\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit20]\r
-FileName=..\zippy.c\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-CompileCpp=0\r
-\r
-[Unit21]\r
-FileName=help.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit22]\r
-FileName=wsettings.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit23]\r
-FileName=wchat.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit24]\r
-FileName=wengineoutput.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit25]\r
-FileName=..\evalgraph.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit26]\r
-FileName=..\engineoutput.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
-\r
-[Unit27]\r
-FileName=..\history.c\r
-CompileCpp=0\r
-Folder=Winboard\r
-Compile=1\r
-Link=1\r
-Priority=1000\r
-OverrideBuildCmd=0\r
-BuildCmd=\r
diff --git a/winboard/bitmaps/README.bitmaps b/winboard/bitmaps/README.bitmaps
deleted file mode 100644 (file)
index 573108d..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-This directory provides bitmaps with the same size and naming\r
-conventions as those distributed till xboard-3.**\r
-These bitmaps are distributed under the GNU GENERAL PUBLIC LICENSE\r
-coming with xboard.\r
-\r
-The bitmaps contained herein were converted from my MetaFont\r
-version of chess font. These are designed very well to deliver\r
-good rastered images on low resolution devices. The general\r
-shape of these fonts are designed after very old typefaces\r
-used in printing chess books. They are not as fancy as the\r
-currently used bitmaps of xboard, but I like them in their\r
-'san serif'-ness - may be others too.\r
-  The MetaFont source of this font may be obtained from me\r
-under the GNU GENERAL PUBLIC LICENSE.\r
-  To convert the pk-Files to bitmaps I used the conversion tool\r
-mftobdf to generate X11-bdf - fonts, and then used a small C\r
-program, to write the xbm-files.\r
-\r
-5.Feb.1994 Elmar Bartel\r
-bartel@informatik.tu-muenchen.de\r
diff --git a/winboard/bitmaps/a33o.bmp b/winboard/bitmaps/a33o.bmp
deleted file mode 100644 (file)
index fcd6740..0000000
Binary files a/winboard/bitmaps/a33o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/a33s.bmp b/winboard/bitmaps/a33s.bmp
deleted file mode 100644 (file)
index 2a1bb7d..0000000
Binary files a/winboard/bitmaps/a33s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/a33w.bmp b/winboard/bitmaps/a33w.bmp
deleted file mode 100644 (file)
index 19598b4..0000000
Binary files a/winboard/bitmaps/a33w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/a37o.bmp b/winboard/bitmaps/a37o.bmp
deleted file mode 100644 (file)
index dfdc7ff..0000000
Binary files a/winboard/bitmaps/a37o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/a37s.bmp b/winboard/bitmaps/a37s.bmp
deleted file mode 100644 (file)
index ef1b222..0000000
Binary files a/winboard/bitmaps/a37s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/a37w.bmp b/winboard/bitmaps/a37w.bmp
deleted file mode 100644 (file)
index e0ed7cd..0000000
Binary files a/winboard/bitmaps/a37w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/a40o.bmp b/winboard/bitmaps/a40o.bmp
deleted file mode 100644 (file)
index 7545fdd..0000000
Binary files a/winboard/bitmaps/a40o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/a40s.bmp b/winboard/bitmaps/a40s.bmp
deleted file mode 100644 (file)
index d2a67d6..0000000
Binary files a/winboard/bitmaps/a40s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/a40w.bmp b/winboard/bitmaps/a40w.bmp
deleted file mode 100644 (file)
index 668ec31..0000000
Binary files a/winboard/bitmaps/a40w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/a45o.bmp b/winboard/bitmaps/a45o.bmp
deleted file mode 100644 (file)
index e6fbc98..0000000
Binary files a/winboard/bitmaps/a45o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/a45s.bmp b/winboard/bitmaps/a45s.bmp
deleted file mode 100644 (file)
index b6f36ae..0000000
Binary files a/winboard/bitmaps/a45s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/a45w.bmp b/winboard/bitmaps/a45w.bmp
deleted file mode 100644 (file)
index 1b84946..0000000
Binary files a/winboard/bitmaps/a45w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/a49c.bmp b/winboard/bitmaps/a49c.bmp
deleted file mode 100644 (file)
index 19b739a..0000000
Binary files a/winboard/bitmaps/a49c.bmp and /dev/null differ
diff --git a/winboard/bitmaps/a49o.bmp b/winboard/bitmaps/a49o.bmp
deleted file mode 100644 (file)
index 911d9fa..0000000
Binary files a/winboard/bitmaps/a49o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/a49s.bmp b/winboard/bitmaps/a49s.bmp
deleted file mode 100644 (file)
index 7b3836f..0000000
Binary files a/winboard/bitmaps/a49s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/a49w.bmp b/winboard/bitmaps/a49w.bmp
deleted file mode 100644 (file)
index 3a1b815..0000000
Binary files a/winboard/bitmaps/a49w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/a54o.bmp b/winboard/bitmaps/a54o.bmp
deleted file mode 100644 (file)
index 5281a27..0000000
Binary files a/winboard/bitmaps/a54o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/a54s.bmp b/winboard/bitmaps/a54s.bmp
deleted file mode 100644 (file)
index a7a2339..0000000
Binary files a/winboard/bitmaps/a54s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/a54w.bmp b/winboard/bitmaps/a54w.bmp
deleted file mode 100644 (file)
index c0208da..0000000
Binary files a/winboard/bitmaps/a54w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/a58o.bmp b/winboard/bitmaps/a58o.bmp
deleted file mode 100644 (file)
index 1661057..0000000
Binary files a/winboard/bitmaps/a58o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/a58s.bmp b/winboard/bitmaps/a58s.bmp
deleted file mode 100644 (file)
index e42dded..0000000
Binary files a/winboard/bitmaps/a58s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/a58w.bmp b/winboard/bitmaps/a58w.bmp
deleted file mode 100644 (file)
index 6827e85..0000000
Binary files a/winboard/bitmaps/a58w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/a64o.bmp b/winboard/bitmaps/a64o.bmp
deleted file mode 100644 (file)
index 4c72b61..0000000
Binary files a/winboard/bitmaps/a64o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/a64s.bmp b/winboard/bitmaps/a64s.bmp
deleted file mode 100644 (file)
index d8f467b..0000000
Binary files a/winboard/bitmaps/a64s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/a64w.bmp b/winboard/bitmaps/a64w.bmp
deleted file mode 100644 (file)
index a7fe420..0000000
Binary files a/winboard/bitmaps/a64w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/a72o.bmp b/winboard/bitmaps/a72o.bmp
deleted file mode 100644 (file)
index ea1680f..0000000
Binary files a/winboard/bitmaps/a72o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/a72s.bmp b/winboard/bitmaps/a72s.bmp
deleted file mode 100644 (file)
index 6250378..0000000
Binary files a/winboard/bitmaps/a72s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/a72w.bmp b/winboard/bitmaps/a72w.bmp
deleted file mode 100644 (file)
index e041e34..0000000
Binary files a/winboard/bitmaps/a72w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/analyze2_14.ico b/winboard/bitmaps/analyze2_14.ico
deleted file mode 100644 (file)
index 8f725f1..0000000
Binary files a/winboard/bitmaps/analyze2_14.ico and /dev/null differ
diff --git a/winboard/bitmaps/analyze_14.ico b/winboard/bitmaps/analyze_14.ico
deleted file mode 100644 (file)
index f25d0fb..0000000
Binary files a/winboard/bitmaps/analyze_14.ico and /dev/null differ
diff --git a/winboard/bitmaps/as33o.bmp b/winboard/bitmaps/as33o.bmp
deleted file mode 100644 (file)
index bae55ff..0000000
Binary files a/winboard/bitmaps/as33o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/as33s.bmp b/winboard/bitmaps/as33s.bmp
deleted file mode 100644 (file)
index 7d028dc..0000000
Binary files a/winboard/bitmaps/as33s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/as33w.bmp b/winboard/bitmaps/as33w.bmp
deleted file mode 100644 (file)
index 1f8a3a9..0000000
Binary files a/winboard/bitmaps/as33w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/as49o.bmp b/winboard/bitmaps/as49o.bmp
deleted file mode 100644 (file)
index de6625a..0000000
Binary files a/winboard/bitmaps/as49o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/as49s.bmp b/winboard/bitmaps/as49s.bmp
deleted file mode 100644 (file)
index 049ad53..0000000
Binary files a/winboard/bitmaps/as49s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/as49w.bmp b/winboard/bitmaps/as49w.bmp
deleted file mode 100644 (file)
index cfea22a..0000000
Binary files a/winboard/bitmaps/as49w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/as72o.bmp b/winboard/bitmaps/as72o.bmp
deleted file mode 100644 (file)
index fe967e9..0000000
Binary files a/winboard/bitmaps/as72o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/as72s.bmp b/winboard/bitmaps/as72s.bmp
deleted file mode 100644 (file)
index d1dcc7f..0000000
Binary files a/winboard/bitmaps/as72s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/as72w.bmp b/winboard/bitmaps/as72w.bmp
deleted file mode 100644 (file)
index ad07b7e..0000000
Binary files a/winboard/bitmaps/as72w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b108o.bmp b/winboard/bitmaps/b108o.bmp
deleted file mode 100644 (file)
index a02c11f..0000000
Binary files a/winboard/bitmaps/b108o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b108s.bmp b/winboard/bitmaps/b108s.bmp
deleted file mode 100644 (file)
index aac8e9c..0000000
Binary files a/winboard/bitmaps/b108s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b108w.bmp b/winboard/bitmaps/b108w.bmp
deleted file mode 100644 (file)
index 5086abf..0000000
Binary files a/winboard/bitmaps/b108w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b116o.bmp b/winboard/bitmaps/b116o.bmp
deleted file mode 100644 (file)
index 26b226a..0000000
Binary files a/winboard/bitmaps/b116o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b116s.bmp b/winboard/bitmaps/b116s.bmp
deleted file mode 100644 (file)
index 12d70e3..0000000
Binary files a/winboard/bitmaps/b116s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b116w.bmp b/winboard/bitmaps/b116w.bmp
deleted file mode 100644 (file)
index f11ec11..0000000
Binary files a/winboard/bitmaps/b116w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b129o.bmp b/winboard/bitmaps/b129o.bmp
deleted file mode 100644 (file)
index 243ef28..0000000
Binary files a/winboard/bitmaps/b129o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b129s.bmp b/winboard/bitmaps/b129s.bmp
deleted file mode 100644 (file)
index 4209b45..0000000
Binary files a/winboard/bitmaps/b129s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b129w.bmp b/winboard/bitmaps/b129w.bmp
deleted file mode 100644 (file)
index 759f1ef..0000000
Binary files a/winboard/bitmaps/b129w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b21o.bmp b/winboard/bitmaps/b21o.bmp
deleted file mode 100644 (file)
index 4a5dc5f..0000000
Binary files a/winboard/bitmaps/b21o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b21s.bmp b/winboard/bitmaps/b21s.bmp
deleted file mode 100644 (file)
index cb9e317..0000000
Binary files a/winboard/bitmaps/b21s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b21w.bmp b/winboard/bitmaps/b21w.bmp
deleted file mode 100644 (file)
index 0b8b1ee..0000000
Binary files a/winboard/bitmaps/b21w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b25o.bmp b/winboard/bitmaps/b25o.bmp
deleted file mode 100644 (file)
index dfd160e..0000000
Binary files a/winboard/bitmaps/b25o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b25s.bmp b/winboard/bitmaps/b25s.bmp
deleted file mode 100644 (file)
index c9c41af..0000000
Binary files a/winboard/bitmaps/b25s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b25w.bmp b/winboard/bitmaps/b25w.bmp
deleted file mode 100644 (file)
index 1d79b9d..0000000
Binary files a/winboard/bitmaps/b25w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b29o.bmp b/winboard/bitmaps/b29o.bmp
deleted file mode 100644 (file)
index cb1ef88..0000000
Binary files a/winboard/bitmaps/b29o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b29s.bmp b/winboard/bitmaps/b29s.bmp
deleted file mode 100644 (file)
index f14cbfa..0000000
Binary files a/winboard/bitmaps/b29s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b29w.bmp b/winboard/bitmaps/b29w.bmp
deleted file mode 100644 (file)
index a04ae00..0000000
Binary files a/winboard/bitmaps/b29w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b33o.bmp b/winboard/bitmaps/b33o.bmp
deleted file mode 100644 (file)
index 8a2779a..0000000
Binary files a/winboard/bitmaps/b33o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b33s.bmp b/winboard/bitmaps/b33s.bmp
deleted file mode 100644 (file)
index 1955f6b..0000000
Binary files a/winboard/bitmaps/b33s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b33w.bmp b/winboard/bitmaps/b33w.bmp
deleted file mode 100644 (file)
index 3d34cbc..0000000
Binary files a/winboard/bitmaps/b33w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b37o.bmp b/winboard/bitmaps/b37o.bmp
deleted file mode 100644 (file)
index 2e46cd4..0000000
Binary files a/winboard/bitmaps/b37o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b37s.bmp b/winboard/bitmaps/b37s.bmp
deleted file mode 100644 (file)
index de6f7c5..0000000
Binary files a/winboard/bitmaps/b37s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b37w.bmp b/winboard/bitmaps/b37w.bmp
deleted file mode 100644 (file)
index 432212c..0000000
Binary files a/winboard/bitmaps/b37w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b40o.bmp b/winboard/bitmaps/b40o.bmp
deleted file mode 100644 (file)
index bb0c457..0000000
Binary files a/winboard/bitmaps/b40o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b40s.bmp b/winboard/bitmaps/b40s.bmp
deleted file mode 100644 (file)
index 4664ff2..0000000
Binary files a/winboard/bitmaps/b40s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b40w.bmp b/winboard/bitmaps/b40w.bmp
deleted file mode 100644 (file)
index 239e2fe..0000000
Binary files a/winboard/bitmaps/b40w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b45o.bmp b/winboard/bitmaps/b45o.bmp
deleted file mode 100644 (file)
index 5cd3765..0000000
Binary files a/winboard/bitmaps/b45o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b45s.bmp b/winboard/bitmaps/b45s.bmp
deleted file mode 100644 (file)
index 285e968..0000000
Binary files a/winboard/bitmaps/b45s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b45w.bmp b/winboard/bitmaps/b45w.bmp
deleted file mode 100644 (file)
index dec307a..0000000
Binary files a/winboard/bitmaps/b45w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b49o.bmp b/winboard/bitmaps/b49o.bmp
deleted file mode 100644 (file)
index b643dc3..0000000
Binary files a/winboard/bitmaps/b49o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b49s.bmp b/winboard/bitmaps/b49s.bmp
deleted file mode 100644 (file)
index 1a7f30c..0000000
Binary files a/winboard/bitmaps/b49s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b49w.bmp b/winboard/bitmaps/b49w.bmp
deleted file mode 100644 (file)
index 8a294bb..0000000
Binary files a/winboard/bitmaps/b49w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b54o.bmp b/winboard/bitmaps/b54o.bmp
deleted file mode 100644 (file)
index 5020224..0000000
Binary files a/winboard/bitmaps/b54o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b54s.bmp b/winboard/bitmaps/b54s.bmp
deleted file mode 100644 (file)
index cb770e5..0000000
Binary files a/winboard/bitmaps/b54s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b54w.bmp b/winboard/bitmaps/b54w.bmp
deleted file mode 100644 (file)
index 011e8a9..0000000
Binary files a/winboard/bitmaps/b54w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b58o.bmp b/winboard/bitmaps/b58o.bmp
deleted file mode 100644 (file)
index c8d3bd8..0000000
Binary files a/winboard/bitmaps/b58o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b58s.bmp b/winboard/bitmaps/b58s.bmp
deleted file mode 100644 (file)
index f7c9220..0000000
Binary files a/winboard/bitmaps/b58s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b58w.bmp b/winboard/bitmaps/b58w.bmp
deleted file mode 100644 (file)
index 6a808b2..0000000
Binary files a/winboard/bitmaps/b58w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b64o.bmp b/winboard/bitmaps/b64o.bmp
deleted file mode 100644 (file)
index 52f14ac..0000000
Binary files a/winboard/bitmaps/b64o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b64s.bmp b/winboard/bitmaps/b64s.bmp
deleted file mode 100644 (file)
index a24c96e..0000000
Binary files a/winboard/bitmaps/b64s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b64w.bmp b/winboard/bitmaps/b64w.bmp
deleted file mode 100644 (file)
index acf8351..0000000
Binary files a/winboard/bitmaps/b64w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b72o.bmp b/winboard/bitmaps/b72o.bmp
deleted file mode 100644 (file)
index e0010bb..0000000
Binary files a/winboard/bitmaps/b72o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b72s.bmp b/winboard/bitmaps/b72s.bmp
deleted file mode 100644 (file)
index a91b41d..0000000
Binary files a/winboard/bitmaps/b72s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b72w.bmp b/winboard/bitmaps/b72w.bmp
deleted file mode 100644 (file)
index 76f2128..0000000
Binary files a/winboard/bitmaps/b72w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b80o.bmp b/winboard/bitmaps/b80o.bmp
deleted file mode 100644 (file)
index 3a72bfe..0000000
Binary files a/winboard/bitmaps/b80o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b80s.bmp b/winboard/bitmaps/b80s.bmp
deleted file mode 100644 (file)
index c9eef7a..0000000
Binary files a/winboard/bitmaps/b80s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b80w.bmp b/winboard/bitmaps/b80w.bmp
deleted file mode 100644 (file)
index ecaf147..0000000
Binary files a/winboard/bitmaps/b80w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b87o.bmp b/winboard/bitmaps/b87o.bmp
deleted file mode 100644 (file)
index 202994b..0000000
Binary files a/winboard/bitmaps/b87o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b87s.bmp b/winboard/bitmaps/b87s.bmp
deleted file mode 100644 (file)
index d5baa5c..0000000
Binary files a/winboard/bitmaps/b87s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b87w.bmp b/winboard/bitmaps/b87w.bmp
deleted file mode 100644 (file)
index 540b4c9..0000000
Binary files a/winboard/bitmaps/b87w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b95o.bmp b/winboard/bitmaps/b95o.bmp
deleted file mode 100644 (file)
index fea8eff..0000000
Binary files a/winboard/bitmaps/b95o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b95s.bmp b/winboard/bitmaps/b95s.bmp
deleted file mode 100644 (file)
index c288c7f..0000000
Binary files a/winboard/bitmaps/b95s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/b95w.bmp b/winboard/bitmaps/b95w.bmp
deleted file mode 100644 (file)
index 565deb0..0000000
Binary files a/winboard/bitmaps/b95w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/baloon_14.ico b/winboard/bitmaps/baloon_14.ico
deleted file mode 100644 (file)
index dfe056f..0000000
Binary files a/winboard/bitmaps/baloon_14.ico and /dev/null differ
diff --git a/winboard/bitmaps/black_14.ico b/winboard/bitmaps/black_14.ico
deleted file mode 100644 (file)
index 9661f7c..0000000
Binary files a/winboard/bitmaps/black_14.ico and /dev/null differ
diff --git a/winboard/bitmaps/board.ico b/winboard/bitmaps/board.ico
deleted file mode 100644 (file)
index 62f0714..0000000
Binary files a/winboard/bitmaps/board.ico and /dev/null differ
diff --git a/winboard/bitmaps/c33o.bmp b/winboard/bitmaps/c33o.bmp
deleted file mode 100644 (file)
index d2fb0ff..0000000
Binary files a/winboard/bitmaps/c33o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/c33s.bmp b/winboard/bitmaps/c33s.bmp
deleted file mode 100644 (file)
index 895e0a8..0000000
Binary files a/winboard/bitmaps/c33s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/c33w.bmp b/winboard/bitmaps/c33w.bmp
deleted file mode 100644 (file)
index 057bca0..0000000
Binary files a/winboard/bitmaps/c33w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/c37o.bmp b/winboard/bitmaps/c37o.bmp
deleted file mode 100644 (file)
index 882afe0..0000000
Binary files a/winboard/bitmaps/c37o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/c37s.bmp b/winboard/bitmaps/c37s.bmp
deleted file mode 100644 (file)
index 6f3b87b..0000000
Binary files a/winboard/bitmaps/c37s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/c37w.bmp b/winboard/bitmaps/c37w.bmp
deleted file mode 100644 (file)
index f7e076d..0000000
Binary files a/winboard/bitmaps/c37w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/c40o.bmp b/winboard/bitmaps/c40o.bmp
deleted file mode 100644 (file)
index b5677fc..0000000
Binary files a/winboard/bitmaps/c40o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/c40s.bmp b/winboard/bitmaps/c40s.bmp
deleted file mode 100644 (file)
index 7af0713..0000000
Binary files a/winboard/bitmaps/c40s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/c40w.bmp b/winboard/bitmaps/c40w.bmp
deleted file mode 100644 (file)
index a0b8d15..0000000
Binary files a/winboard/bitmaps/c40w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/c45o.bmp b/winboard/bitmaps/c45o.bmp
deleted file mode 100644 (file)
index 971b7d0..0000000
Binary files a/winboard/bitmaps/c45o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/c45s.bmp b/winboard/bitmaps/c45s.bmp
deleted file mode 100644 (file)
index 775ac47..0000000
Binary files a/winboard/bitmaps/c45s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/c45w.bmp b/winboard/bitmaps/c45w.bmp
deleted file mode 100644 (file)
index 3b9687c..0000000
Binary files a/winboard/bitmaps/c45w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/c49o.bmp b/winboard/bitmaps/c49o.bmp
deleted file mode 100644 (file)
index fd470a9..0000000
Binary files a/winboard/bitmaps/c49o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/c49s.bmp b/winboard/bitmaps/c49s.bmp
deleted file mode 100644 (file)
index bac2d94..0000000
Binary files a/winboard/bitmaps/c49s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/c49w.bmp b/winboard/bitmaps/c49w.bmp
deleted file mode 100644 (file)
index 069a524..0000000
Binary files a/winboard/bitmaps/c49w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/c54o.bmp b/winboard/bitmaps/c54o.bmp
deleted file mode 100644 (file)
index 6a597db..0000000
Binary files a/winboard/bitmaps/c54o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/c54s.bmp b/winboard/bitmaps/c54s.bmp
deleted file mode 100644 (file)
index 4571271..0000000
Binary files a/winboard/bitmaps/c54s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/c54w.bmp b/winboard/bitmaps/c54w.bmp
deleted file mode 100644 (file)
index 61caf6d..0000000
Binary files a/winboard/bitmaps/c54w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/c58o.bmp b/winboard/bitmaps/c58o.bmp
deleted file mode 100644 (file)
index 15d110e..0000000
Binary files a/winboard/bitmaps/c58o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/c58s.bmp b/winboard/bitmaps/c58s.bmp
deleted file mode 100644 (file)
index 0bb3cf9..0000000
Binary files a/winboard/bitmaps/c58s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/c58w.bmp b/winboard/bitmaps/c58w.bmp
deleted file mode 100644 (file)
index 41f05cf..0000000
Binary files a/winboard/bitmaps/c58w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/c64o.bmp b/winboard/bitmaps/c64o.bmp
deleted file mode 100644 (file)
index 6edd01e..0000000
Binary files a/winboard/bitmaps/c64o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/c64s.bmp b/winboard/bitmaps/c64s.bmp
deleted file mode 100644 (file)
index 6dac16f..0000000
Binary files a/winboard/bitmaps/c64s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/c64w.bmp b/winboard/bitmaps/c64w.bmp
deleted file mode 100644 (file)
index 5c3c8ff..0000000
Binary files a/winboard/bitmaps/c64w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/c72o.bmp b/winboard/bitmaps/c72o.bmp
deleted file mode 100644 (file)
index 28bc14f..0000000
Binary files a/winboard/bitmaps/c72o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/c72s.bmp b/winboard/bitmaps/c72s.bmp
deleted file mode 100644 (file)
index 963afdf..0000000
Binary files a/winboard/bitmaps/c72s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/c72w.bmp b/winboard/bitmaps/c72w.bmp
deleted file mode 100644 (file)
index d1f773d..0000000
Binary files a/winboard/bitmaps/c72w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/camel49o.bmp b/winboard/bitmaps/camel49o.bmp
deleted file mode 100644 (file)
index 220d53b..0000000
Binary files a/winboard/bitmaps/camel49o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/camel49s.bmp b/winboard/bitmaps/camel49s.bmp
deleted file mode 100644 (file)
index 2a47e99..0000000
Binary files a/winboard/bitmaps/camel49s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/camel49w.bmp b/winboard/bitmaps/camel49w.bmp
deleted file mode 100644 (file)
index c9a0501..0000000
Binary files a/winboard/bitmaps/camel49w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/camel72o.bmp b/winboard/bitmaps/camel72o.bmp
deleted file mode 100644 (file)
index a2f4068..0000000
Binary files a/winboard/bitmaps/camel72o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/camel72s.bmp b/winboard/bitmaps/camel72s.bmp
deleted file mode 100644 (file)
index fe26272..0000000
Binary files a/winboard/bitmaps/camel72s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/camel72w.bmp b/winboard/bitmaps/camel72w.bmp
deleted file mode 100644 (file)
index cb2f223..0000000
Binary files a/winboard/bitmaps/camel72w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/clock_14.ico b/winboard/bitmaps/clock_14.ico
deleted file mode 100644 (file)
index 0785d5c..0000000
Binary files a/winboard/bitmaps/clock_14.ico and /dev/null differ
diff --git a/winboard/bitmaps/convert.c b/winboard/bitmaps/convert.c
deleted file mode 100644 (file)
index c676453..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-#include <stdio.h>\r
-\r
-// [HGM] This program converts a WinBoard monochrome .bmp piece-symbol bitmap file\r
-//       to a .bm C-source file suitable for inclusion in xboard as buit-in bitmap.\r
-//       You will have to convert the bitmaps one by one, and re-direct the output to the desired file!\r
-\r
-main(int argc, char **argv)\r
-{\r
-       int i, j, k, d, cnt; char c, *p, data[10000], *name; unsigned char h, w;\r
-       FILE *f;\r
-\r
-       if(argc<2) { printf("usage is: convert <bmp filename>\n"); exit(0); }\r
-       f = fopen(argv[1], "rb");\r
-       if(f == NULL) { printf("file %s not found\n", argv[1]); exit(0); }\r
-\r
-       if(fscanf(f, "BM%c", &i) != 1) { printf("%s does not have bitmap format\n"); exit(0); }\r
-       for(i=0; i<15; i++) fgetc(f); fscanf(f, "%c%c%c%c%c", &h, &i, &i, &i, &w);\r
-       for(i=0; i<39; i++) fgetc(f);\r
-\r
-// printf("h=%d, w=%d\n", h, w);\r
-\r
-       p = data;\r
-       for(i=0; i<h; i++) {\r
-               for(j=0; j<w; j+=32) {\r
-                       c = fgetc(f);\r
-                       for(k=0; k<8; k++) {\r
-                               d = (d>>1) | (c&0x80);\r
-                               c <<= 1;\r
-                       }\r
-                       *p++ = d;\r
-                       c = fgetc(f);\r
-                       for(k=0; k<8; k++) {\r
-                               d = (d>>1) | (c&0x80);\r
-                               c <<= 1;\r
-                       }\r
-                       *p++ = d;\r
-                       c = fgetc(f);\r
-                       for(k=0; k<8; k++) {\r
-                               d = (d>>1) | (c&0x80);\r
-                               c <<= 1;\r
-                       }\r
-                       *p++ = d;\r
-                       c = fgetc(f);\r
-                       for(k=0; k<8; k++) {\r
-                               d = (d>>1) | (c&0x80);\r
-                               c <<= 1;\r
-                       }\r
-                       *p++ = d;\r
-               }\r
-       }\r
-       fclose(f);\r
-\r
-       name = argv[1];\r
-       for(i=0; argv[1][i]; i++) if(argv[1][i] == '\\') name = argv[1]+i+1;\r
-       for(i=0; name[i]; i++) if(name[i] == '.') name[i] = 0;\r
-       printf("#define %s_width %d\n", name, w);\r
-       printf("#define %s_height %d\n", name, h);\r
-       printf("static unsigned char %s_bits[] = {\n", name);\r
-       cnt = 0;\r
-       for(i=h-1; i>=0; i--) {\r
-               for(j=0; j<w; j+=8) {\r
-                       c = ~data[i*((w+31)/8&~3)+j/8];\r
-                       if(w-j<8) c &= 255>>(8+j-w);\r
-//                     for(k=0; k<8; k++) {\r
-//                             printf("%c", c&1 ? 'X' : '.');\r
-//                             c >>= 1;\r
-//                     }\r
-                       if(cnt!=0) printf(",");\r
-                       printf("0x%02x", c&255);\r
-                       if(++cnt % 15 == 0) { printf("\n"); }\r
-               }\r
-       }\r
-       printf("\n};\n");\r
-}\r
diff --git a/winboard/bitmaps/convert.exe b/winboard/bitmaps/convert.exe
deleted file mode 100644 (file)
index 713a2fc..0000000
Binary files a/winboard/bitmaps/convert.exe and /dev/null differ
diff --git a/winboard/bitmaps/cross.ico b/winboard/bitmaps/cross.ico
deleted file mode 100644 (file)
index 541dbac..0000000
Binary files a/winboard/bitmaps/cross.ico and /dev/null differ
diff --git a/winboard/bitmaps/cv33o.bmp b/winboard/bitmaps/cv33o.bmp
deleted file mode 100644 (file)
index eba036e..0000000
Binary files a/winboard/bitmaps/cv33o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/cv33s.bmp b/winboard/bitmaps/cv33s.bmp
deleted file mode 100644 (file)
index 31f6a45..0000000
Binary files a/winboard/bitmaps/cv33s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/cv33w.bmp b/winboard/bitmaps/cv33w.bmp
deleted file mode 100644 (file)
index 7a86530..0000000
Binary files a/winboard/bitmaps/cv33w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/cv37o.bmp b/winboard/bitmaps/cv37o.bmp
deleted file mode 100644 (file)
index 9075dd6..0000000
Binary files a/winboard/bitmaps/cv37o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/cv37s.bmp b/winboard/bitmaps/cv37s.bmp
deleted file mode 100644 (file)
index 1b31080..0000000
Binary files a/winboard/bitmaps/cv37s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/cv37w.bmp b/winboard/bitmaps/cv37w.bmp
deleted file mode 100644 (file)
index abf95b3..0000000
Binary files a/winboard/bitmaps/cv37w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/cv40o.bmp b/winboard/bitmaps/cv40o.bmp
deleted file mode 100644 (file)
index 7fe8326..0000000
Binary files a/winboard/bitmaps/cv40o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/cv40s.bmp b/winboard/bitmaps/cv40s.bmp
deleted file mode 100644 (file)
index bb2065e..0000000
Binary files a/winboard/bitmaps/cv40s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/cv40w.bmp b/winboard/bitmaps/cv40w.bmp
deleted file mode 100644 (file)
index cc195bb..0000000
Binary files a/winboard/bitmaps/cv40w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/cv45o.bmp b/winboard/bitmaps/cv45o.bmp
deleted file mode 100644 (file)
index 55b4087..0000000
Binary files a/winboard/bitmaps/cv45o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/cv45s.bmp b/winboard/bitmaps/cv45s.bmp
deleted file mode 100644 (file)
index 22b05b7..0000000
Binary files a/winboard/bitmaps/cv45s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/cv45w.bmp b/winboard/bitmaps/cv45w.bmp
deleted file mode 100644 (file)
index 250984d..0000000
Binary files a/winboard/bitmaps/cv45w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/cv49o.bmp b/winboard/bitmaps/cv49o.bmp
deleted file mode 100644 (file)
index 95fd748..0000000
Binary files a/winboard/bitmaps/cv49o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/cv49s.bmp b/winboard/bitmaps/cv49s.bmp
deleted file mode 100644 (file)
index 5fc24b9..0000000
Binary files a/winboard/bitmaps/cv49s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/cv49w.bmp b/winboard/bitmaps/cv49w.bmp
deleted file mode 100644 (file)
index cbf8e92..0000000
Binary files a/winboard/bitmaps/cv49w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/cv54o.bmp b/winboard/bitmaps/cv54o.bmp
deleted file mode 100644 (file)
index a74cbbb..0000000
Binary files a/winboard/bitmaps/cv54o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/cv54s.bmp b/winboard/bitmaps/cv54s.bmp
deleted file mode 100644 (file)
index 9c5bd8b..0000000
Binary files a/winboard/bitmaps/cv54s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/cv54w.bmp b/winboard/bitmaps/cv54w.bmp
deleted file mode 100644 (file)
index fff12e3..0000000
Binary files a/winboard/bitmaps/cv54w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/cv58o.bmp b/winboard/bitmaps/cv58o.bmp
deleted file mode 100644 (file)
index 1622ca5..0000000
Binary files a/winboard/bitmaps/cv58o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/cv58s.bmp b/winboard/bitmaps/cv58s.bmp
deleted file mode 100644 (file)
index 5b7674d..0000000
Binary files a/winboard/bitmaps/cv58s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/cv58w.bmp b/winboard/bitmaps/cv58w.bmp
deleted file mode 100644 (file)
index 2f37d5b..0000000
Binary files a/winboard/bitmaps/cv58w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/cv64o.bmp b/winboard/bitmaps/cv64o.bmp
deleted file mode 100644 (file)
index 522bb6c..0000000
Binary files a/winboard/bitmaps/cv64o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/cv64s.bmp b/winboard/bitmaps/cv64s.bmp
deleted file mode 100644 (file)
index 1787acd..0000000
Binary files a/winboard/bitmaps/cv64s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/cv64w.bmp b/winboard/bitmaps/cv64w.bmp
deleted file mode 100644 (file)
index b3e1bfd..0000000
Binary files a/winboard/bitmaps/cv64w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/cv72o.bmp b/winboard/bitmaps/cv72o.bmp
deleted file mode 100644 (file)
index d72c45d..0000000
Binary files a/winboard/bitmaps/cv72o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/cv72s.bmp b/winboard/bitmaps/cv72s.bmp
deleted file mode 100644 (file)
index e22fdd5..0000000
Binary files a/winboard/bitmaps/cv72s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/cv72w.bmp b/winboard/bitmaps/cv72w.bmp
deleted file mode 100644 (file)
index 65e7e1d..0000000
Binary files a/winboard/bitmaps/cv72w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/dk33o.bmp b/winboard/bitmaps/dk33o.bmp
deleted file mode 100644 (file)
index 9b00f94..0000000
Binary files a/winboard/bitmaps/dk33o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/dk33s.bmp b/winboard/bitmaps/dk33s.bmp
deleted file mode 100644 (file)
index f1c8bc9..0000000
Binary files a/winboard/bitmaps/dk33s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/dk33w.bmp b/winboard/bitmaps/dk33w.bmp
deleted file mode 100644 (file)
index c77c3b2..0000000
Binary files a/winboard/bitmaps/dk33w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/dk49o.bmp b/winboard/bitmaps/dk49o.bmp
deleted file mode 100644 (file)
index e3f6f3a..0000000
Binary files a/winboard/bitmaps/dk49o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/dk49s.bmp b/winboard/bitmaps/dk49s.bmp
deleted file mode 100644 (file)
index 46b05b1..0000000
Binary files a/winboard/bitmaps/dk49s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/dk49w.bmp b/winboard/bitmaps/dk49w.bmp
deleted file mode 100644 (file)
index 4e05b8f..0000000
Binary files a/winboard/bitmaps/dk49w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/dk72o.bmp b/winboard/bitmaps/dk72o.bmp
deleted file mode 100644 (file)
index e531478..0000000
Binary files a/winboard/bitmaps/dk72o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/dk72s.bmp b/winboard/bitmaps/dk72s.bmp
deleted file mode 100644 (file)
index da3d696..0000000
Binary files a/winboard/bitmaps/dk72s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/dk72w.bmp b/winboard/bitmaps/dk72w.bmp
deleted file mode 100644 (file)
index 66ee835..0000000
Binary files a/winboard/bitmaps/dk72w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/e129o.bmp b/winboard/bitmaps/e129o.bmp
deleted file mode 100644 (file)
index f464adf..0000000
Binary files a/winboard/bitmaps/e129o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/e33o.bmp b/winboard/bitmaps/e33o.bmp
deleted file mode 100644 (file)
index b7f0aac..0000000
Binary files a/winboard/bitmaps/e33o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/e33s.bmp b/winboard/bitmaps/e33s.bmp
deleted file mode 100644 (file)
index d132c2d..0000000
Binary files a/winboard/bitmaps/e33s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/e33w.bmp b/winboard/bitmaps/e33w.bmp
deleted file mode 100644 (file)
index 2ce9548..0000000
Binary files a/winboard/bitmaps/e33w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/e49o.bmp b/winboard/bitmaps/e49o.bmp
deleted file mode 100644 (file)
index ebb5c6b..0000000
Binary files a/winboard/bitmaps/e49o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/e49s.bmp b/winboard/bitmaps/e49s.bmp
deleted file mode 100644 (file)
index 46ffee2..0000000
Binary files a/winboard/bitmaps/e49s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/e49w.bmp b/winboard/bitmaps/e49w.bmp
deleted file mode 100644 (file)
index b2f3587..0000000
Binary files a/winboard/bitmaps/e49w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/e72o.bmp b/winboard/bitmaps/e72o.bmp
deleted file mode 100644 (file)
index e6c8d83..0000000
Binary files a/winboard/bitmaps/e72o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/e72s.bmp b/winboard/bitmaps/e72s.bmp
deleted file mode 100644 (file)
index 6d756a5..0000000
Binary files a/winboard/bitmaps/e72s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/e72w.bmp b/winboard/bitmaps/e72w.bmp
deleted file mode 100644 (file)
index 2339883..0000000
Binary files a/winboard/bitmaps/e72w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/f33o.bmp b/winboard/bitmaps/f33o.bmp
deleted file mode 100644 (file)
index 588010b..0000000
Binary files a/winboard/bitmaps/f33o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/f33s.bmp b/winboard/bitmaps/f33s.bmp
deleted file mode 100644 (file)
index 6ef112d..0000000
Binary files a/winboard/bitmaps/f33s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/f33w.bmp b/winboard/bitmaps/f33w.bmp
deleted file mode 100644 (file)
index b7f7069..0000000
Binary files a/winboard/bitmaps/f33w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/f49o.bmp b/winboard/bitmaps/f49o.bmp
deleted file mode 100644 (file)
index 9653fa6..0000000
Binary files a/winboard/bitmaps/f49o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/f49s.bmp b/winboard/bitmaps/f49s.bmp
deleted file mode 100644 (file)
index f85fb56..0000000
Binary files a/winboard/bitmaps/f49s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/f49w.bmp b/winboard/bitmaps/f49w.bmp
deleted file mode 100644 (file)
index 98f0b16..0000000
Binary files a/winboard/bitmaps/f49w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/f72o.bmp b/winboard/bitmaps/f72o.bmp
deleted file mode 100644 (file)
index 257c225..0000000
Binary files a/winboard/bitmaps/f72o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/f72s.bmp b/winboard/bitmaps/f72s.bmp
deleted file mode 100644 (file)
index 271e64f..0000000
Binary files a/winboard/bitmaps/f72s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/f72w.bmp b/winboard/bitmaps/f72w.bmp
deleted file mode 100644 (file)
index 3347e0f..0000000
Binary files a/winboard/bitmaps/f72w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/g33o.bmp b/winboard/bitmaps/g33o.bmp
deleted file mode 100644 (file)
index 6f3cc18..0000000
Binary files a/winboard/bitmaps/g33o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/g33s.bmp b/winboard/bitmaps/g33s.bmp
deleted file mode 100644 (file)
index 31dd9e8..0000000
Binary files a/winboard/bitmaps/g33s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/g33w.bmp b/winboard/bitmaps/g33w.bmp
deleted file mode 100644 (file)
index 0c52cea..0000000
Binary files a/winboard/bitmaps/g33w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/g49o.bmp b/winboard/bitmaps/g49o.bmp
deleted file mode 100644 (file)
index 2930420..0000000
Binary files a/winboard/bitmaps/g49o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/g49s.bmp b/winboard/bitmaps/g49s.bmp
deleted file mode 100644 (file)
index 835cd41..0000000
Binary files a/winboard/bitmaps/g49s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/g49w.bmp b/winboard/bitmaps/g49w.bmp
deleted file mode 100644 (file)
index 4cf34ac..0000000
Binary files a/winboard/bitmaps/g49w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/g72o.bmp b/winboard/bitmaps/g72o.bmp
deleted file mode 100644 (file)
index 6eb6bcf..0000000
Binary files a/winboard/bitmaps/g72o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/g72s.bmp b/winboard/bitmaps/g72s.bmp
deleted file mode 100644 (file)
index 751be79..0000000
Binary files a/winboard/bitmaps/g72s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/g72w.bmp b/winboard/bitmaps/g72w.bmp
deleted file mode 100644 (file)
index aaae0c4..0000000
Binary files a/winboard/bitmaps/g72w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/galactic.bmp b/winboard/bitmaps/galactic.bmp
deleted file mode 100644 (file)
index 7dc277e..0000000
Binary files a/winboard/bitmaps/galactic.bmp and /dev/null differ
diff --git a/winboard/bitmaps/h33o.bmp b/winboard/bitmaps/h33o.bmp
deleted file mode 100644 (file)
index d811f80..0000000
Binary files a/winboard/bitmaps/h33o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/h33s.bmp b/winboard/bitmaps/h33s.bmp
deleted file mode 100644 (file)
index 95e5dbe..0000000
Binary files a/winboard/bitmaps/h33s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/h33w.bmp b/winboard/bitmaps/h33w.bmp
deleted file mode 100644 (file)
index cebb7a3..0000000
Binary files a/winboard/bitmaps/h33w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/h49o.bmp b/winboard/bitmaps/h49o.bmp
deleted file mode 100644 (file)
index 8ae9967..0000000
Binary files a/winboard/bitmaps/h49o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/h49s.bmp b/winboard/bitmaps/h49s.bmp
deleted file mode 100644 (file)
index 1ace8fe..0000000
Binary files a/winboard/bitmaps/h49s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/h49w.bmp b/winboard/bitmaps/h49w.bmp
deleted file mode 100644 (file)
index 0163d1e..0000000
Binary files a/winboard/bitmaps/h49w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/h72o.bmp b/winboard/bitmaps/h72o.bmp
deleted file mode 100644 (file)
index cdef69a..0000000
Binary files a/winboard/bitmaps/h72o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/h72s.bmp b/winboard/bitmaps/h72s.bmp
deleted file mode 100644 (file)
index 44baa80..0000000
Binary files a/winboard/bitmaps/h72s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/h72w.bmp b/winboard/bitmaps/h72w.bmp
deleted file mode 100644 (file)
index eac2216..0000000
Binary files a/winboard/bitmaps/h72w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/icon_b.bmp b/winboard/bitmaps/icon_b.bmp
deleted file mode 100644 (file)
index 152809d..0000000
Binary files a/winboard/bitmaps/icon_b.bmp and /dev/null differ
diff --git a/winboard/bitmaps/icon_b.ico b/winboard/bitmaps/icon_b.ico
deleted file mode 100644 (file)
index 8555e72..0000000
Binary files a/winboard/bitmaps/icon_b.ico and /dev/null differ
diff --git a/winboard/bitmaps/icon_o.ico b/winboard/bitmaps/icon_o.ico
deleted file mode 100644 (file)
index e3051fd..0000000
Binary files a/winboard/bitmaps/icon_o.ico and /dev/null differ
diff --git a/winboard/bitmaps/icon_ob.ico b/winboard/bitmaps/icon_ob.ico
deleted file mode 100644 (file)
index 27cfe72..0000000
Binary files a/winboard/bitmaps/icon_ob.ico and /dev/null differ
diff --git a/winboard/bitmaps/icon_ow.ico b/winboard/bitmaps/icon_ow.ico
deleted file mode 100644 (file)
index 5ba5631..0000000
Binary files a/winboard/bitmaps/icon_ow.ico and /dev/null differ
diff --git a/winboard/bitmaps/icon_w.bmp b/winboard/bitmaps/icon_w.bmp
deleted file mode 100644 (file)
index c1a7c03..0000000
Binary files a/winboard/bitmaps/icon_w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/icon_w.ico b/winboard/bitmaps/icon_w.ico
deleted file mode 100644 (file)
index d0d803a..0000000
Binary files a/winboard/bitmaps/icon_w.ico and /dev/null differ
diff --git a/winboard/bitmaps/icon_whi.ico b/winboard/bitmaps/icon_whi.ico
deleted file mode 100644 (file)
index fd7b2db..0000000
Binary files a/winboard/bitmaps/icon_whi.ico and /dev/null differ
diff --git a/winboard/bitmaps/k108o.bmp b/winboard/bitmaps/k108o.bmp
deleted file mode 100644 (file)
index 3a38071..0000000
Binary files a/winboard/bitmaps/k108o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k108s.bmp b/winboard/bitmaps/k108s.bmp
deleted file mode 100644 (file)
index 854baff..0000000
Binary files a/winboard/bitmaps/k108s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k108w.bmp b/winboard/bitmaps/k108w.bmp
deleted file mode 100644 (file)
index 4fa8e67..0000000
Binary files a/winboard/bitmaps/k108w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k116o.bmp b/winboard/bitmaps/k116o.bmp
deleted file mode 100644 (file)
index eafb1f7..0000000
Binary files a/winboard/bitmaps/k116o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k116s.bmp b/winboard/bitmaps/k116s.bmp
deleted file mode 100644 (file)
index 5fce825..0000000
Binary files a/winboard/bitmaps/k116s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k116w.bmp b/winboard/bitmaps/k116w.bmp
deleted file mode 100644 (file)
index fd37812..0000000
Binary files a/winboard/bitmaps/k116w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k129o.bmp b/winboard/bitmaps/k129o.bmp
deleted file mode 100644 (file)
index c2c9bb2..0000000
Binary files a/winboard/bitmaps/k129o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k129s.bmp b/winboard/bitmaps/k129s.bmp
deleted file mode 100644 (file)
index 91db0dd..0000000
Binary files a/winboard/bitmaps/k129s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k129w.bmp b/winboard/bitmaps/k129w.bmp
deleted file mode 100644 (file)
index 2901b42..0000000
Binary files a/winboard/bitmaps/k129w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k21o.bmp b/winboard/bitmaps/k21o.bmp
deleted file mode 100644 (file)
index 0d753d9..0000000
Binary files a/winboard/bitmaps/k21o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k21s.bmp b/winboard/bitmaps/k21s.bmp
deleted file mode 100644 (file)
index bbc70fc..0000000
Binary files a/winboard/bitmaps/k21s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k21w.bmp b/winboard/bitmaps/k21w.bmp
deleted file mode 100644 (file)
index ea0ad50..0000000
Binary files a/winboard/bitmaps/k21w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k25o.bmp b/winboard/bitmaps/k25o.bmp
deleted file mode 100644 (file)
index 8c17818..0000000
Binary files a/winboard/bitmaps/k25o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k25s.bmp b/winboard/bitmaps/k25s.bmp
deleted file mode 100644 (file)
index fcf180c..0000000
Binary files a/winboard/bitmaps/k25s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k25w.bmp b/winboard/bitmaps/k25w.bmp
deleted file mode 100644 (file)
index bcc7986..0000000
Binary files a/winboard/bitmaps/k25w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k29o.bmp b/winboard/bitmaps/k29o.bmp
deleted file mode 100644 (file)
index 4284322..0000000
Binary files a/winboard/bitmaps/k29o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k29s.bmp b/winboard/bitmaps/k29s.bmp
deleted file mode 100644 (file)
index aefee9a..0000000
Binary files a/winboard/bitmaps/k29s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k29w.bmp b/winboard/bitmaps/k29w.bmp
deleted file mode 100644 (file)
index 9bea2c5..0000000
Binary files a/winboard/bitmaps/k29w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k33o.bmp b/winboard/bitmaps/k33o.bmp
deleted file mode 100644 (file)
index ef6bd2a..0000000
Binary files a/winboard/bitmaps/k33o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k33s.bmp b/winboard/bitmaps/k33s.bmp
deleted file mode 100644 (file)
index 8ac836d..0000000
Binary files a/winboard/bitmaps/k33s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k33w.bmp b/winboard/bitmaps/k33w.bmp
deleted file mode 100644 (file)
index 4658756..0000000
Binary files a/winboard/bitmaps/k33w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k37o.bmp b/winboard/bitmaps/k37o.bmp
deleted file mode 100644 (file)
index 34b1702..0000000
Binary files a/winboard/bitmaps/k37o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k37s.bmp b/winboard/bitmaps/k37s.bmp
deleted file mode 100644 (file)
index d5ac9ac..0000000
Binary files a/winboard/bitmaps/k37s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k37w.bmp b/winboard/bitmaps/k37w.bmp
deleted file mode 100644 (file)
index 5be036f..0000000
Binary files a/winboard/bitmaps/k37w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k40o.bmp b/winboard/bitmaps/k40o.bmp
deleted file mode 100644 (file)
index 52b02a3..0000000
Binary files a/winboard/bitmaps/k40o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k40s.bmp b/winboard/bitmaps/k40s.bmp
deleted file mode 100644 (file)
index 5965e8c..0000000
Binary files a/winboard/bitmaps/k40s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k40w.bmp b/winboard/bitmaps/k40w.bmp
deleted file mode 100644 (file)
index 098cc61..0000000
Binary files a/winboard/bitmaps/k40w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k45o.bmp b/winboard/bitmaps/k45o.bmp
deleted file mode 100644 (file)
index 7fc08b3..0000000
Binary files a/winboard/bitmaps/k45o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k45s.bmp b/winboard/bitmaps/k45s.bmp
deleted file mode 100644 (file)
index 4412cb5..0000000
Binary files a/winboard/bitmaps/k45s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k45w.bmp b/winboard/bitmaps/k45w.bmp
deleted file mode 100644 (file)
index f6ef58f..0000000
Binary files a/winboard/bitmaps/k45w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k49o.bmp b/winboard/bitmaps/k49o.bmp
deleted file mode 100644 (file)
index 912e63a..0000000
Binary files a/winboard/bitmaps/k49o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k49s.bmp b/winboard/bitmaps/k49s.bmp
deleted file mode 100644 (file)
index bda98b0..0000000
Binary files a/winboard/bitmaps/k49s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k49w.bmp b/winboard/bitmaps/k49w.bmp
deleted file mode 100644 (file)
index 985b675..0000000
Binary files a/winboard/bitmaps/k49w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k54o.bmp b/winboard/bitmaps/k54o.bmp
deleted file mode 100644 (file)
index f3e9047..0000000
Binary files a/winboard/bitmaps/k54o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k54s.bmp b/winboard/bitmaps/k54s.bmp
deleted file mode 100644 (file)
index 287d70b..0000000
Binary files a/winboard/bitmaps/k54s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k54w.bmp b/winboard/bitmaps/k54w.bmp
deleted file mode 100644 (file)
index 0923c9b..0000000
Binary files a/winboard/bitmaps/k54w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k58o.bmp b/winboard/bitmaps/k58o.bmp
deleted file mode 100644 (file)
index 95ac9de..0000000
Binary files a/winboard/bitmaps/k58o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k58s.bmp b/winboard/bitmaps/k58s.bmp
deleted file mode 100644 (file)
index 8eb1ed7..0000000
Binary files a/winboard/bitmaps/k58s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k58w.bmp b/winboard/bitmaps/k58w.bmp
deleted file mode 100644 (file)
index 10b2338..0000000
Binary files a/winboard/bitmaps/k58w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k64o.bmp b/winboard/bitmaps/k64o.bmp
deleted file mode 100644 (file)
index 7418826..0000000
Binary files a/winboard/bitmaps/k64o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k64s.bmp b/winboard/bitmaps/k64s.bmp
deleted file mode 100644 (file)
index d257d77..0000000
Binary files a/winboard/bitmaps/k64s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k64w.bmp b/winboard/bitmaps/k64w.bmp
deleted file mode 100644 (file)
index b90bcb3..0000000
Binary files a/winboard/bitmaps/k64w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k72o.bmp b/winboard/bitmaps/k72o.bmp
deleted file mode 100644 (file)
index 1e0ad8f..0000000
Binary files a/winboard/bitmaps/k72o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k72s.bmp b/winboard/bitmaps/k72s.bmp
deleted file mode 100644 (file)
index 2df1e5d..0000000
Binary files a/winboard/bitmaps/k72s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k72w.bmp b/winboard/bitmaps/k72w.bmp
deleted file mode 100644 (file)
index f710470..0000000
Binary files a/winboard/bitmaps/k72w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k80o.bmp b/winboard/bitmaps/k80o.bmp
deleted file mode 100644 (file)
index d9bc797..0000000
Binary files a/winboard/bitmaps/k80o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k80s.bmp b/winboard/bitmaps/k80s.bmp
deleted file mode 100644 (file)
index e5848e4..0000000
Binary files a/winboard/bitmaps/k80s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k80w.bmp b/winboard/bitmaps/k80w.bmp
deleted file mode 100644 (file)
index 1e9797a..0000000
Binary files a/winboard/bitmaps/k80w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k87o.bmp b/winboard/bitmaps/k87o.bmp
deleted file mode 100644 (file)
index 929fa11..0000000
Binary files a/winboard/bitmaps/k87o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k87s.bmp b/winboard/bitmaps/k87s.bmp
deleted file mode 100644 (file)
index a013148..0000000
Binary files a/winboard/bitmaps/k87s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k87w.bmp b/winboard/bitmaps/k87w.bmp
deleted file mode 100644 (file)
index 2f4a62a..0000000
Binary files a/winboard/bitmaps/k87w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k95o.bmp b/winboard/bitmaps/k95o.bmp
deleted file mode 100644 (file)
index 7438de4..0000000
Binary files a/winboard/bitmaps/k95o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k95s.bmp b/winboard/bitmaps/k95s.bmp
deleted file mode 100644 (file)
index 098bc95..0000000
Binary files a/winboard/bitmaps/k95s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/k95w.bmp b/winboard/bitmaps/k95w.bmp
deleted file mode 100644 (file)
index 15a98c8..0000000
Binary files a/winboard/bitmaps/k95w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/l33o.bmp b/winboard/bitmaps/l33o.bmp
deleted file mode 100644 (file)
index 510882b..0000000
Binary files a/winboard/bitmaps/l33o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/l33s.bmp b/winboard/bitmaps/l33s.bmp
deleted file mode 100644 (file)
index 4c1ce81..0000000
Binary files a/winboard/bitmaps/l33s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/l33w.bmp b/winboard/bitmaps/l33w.bmp
deleted file mode 100644 (file)
index fff3ec7..0000000
Binary files a/winboard/bitmaps/l33w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/l37o.bmp b/winboard/bitmaps/l37o.bmp
deleted file mode 100644 (file)
index 473b0f7..0000000
Binary files a/winboard/bitmaps/l37o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/l37s.bmp b/winboard/bitmaps/l37s.bmp
deleted file mode 100644 (file)
index 5709f68..0000000
Binary files a/winboard/bitmaps/l37s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/l37w.bmp b/winboard/bitmaps/l37w.bmp
deleted file mode 100644 (file)
index e9d27fa..0000000
Binary files a/winboard/bitmaps/l37w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/l40o.bmp b/winboard/bitmaps/l40o.bmp
deleted file mode 100644 (file)
index c97e0f2..0000000
Binary files a/winboard/bitmaps/l40o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/l40s.bmp b/winboard/bitmaps/l40s.bmp
deleted file mode 100644 (file)
index 50bc67a..0000000
Binary files a/winboard/bitmaps/l40s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/l40w.bmp b/winboard/bitmaps/l40w.bmp
deleted file mode 100644 (file)
index ca11b56..0000000
Binary files a/winboard/bitmaps/l40w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/l45o.bmp b/winboard/bitmaps/l45o.bmp
deleted file mode 100644 (file)
index 757f9cc..0000000
Binary files a/winboard/bitmaps/l45o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/l45s.bmp b/winboard/bitmaps/l45s.bmp
deleted file mode 100644 (file)
index 72e451b..0000000
Binary files a/winboard/bitmaps/l45s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/l45w.bmp b/winboard/bitmaps/l45w.bmp
deleted file mode 100644 (file)
index 9b2050f..0000000
Binary files a/winboard/bitmaps/l45w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/l49o.bmp b/winboard/bitmaps/l49o.bmp
deleted file mode 100644 (file)
index 4a83007..0000000
Binary files a/winboard/bitmaps/l49o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/l49s.bmp b/winboard/bitmaps/l49s.bmp
deleted file mode 100644 (file)
index 9dbea26..0000000
Binary files a/winboard/bitmaps/l49s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/l49w.bmp b/winboard/bitmaps/l49w.bmp
deleted file mode 100644 (file)
index da13b66..0000000
Binary files a/winboard/bitmaps/l49w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/l54o.bmp b/winboard/bitmaps/l54o.bmp
deleted file mode 100644 (file)
index 4fc6484..0000000
Binary files a/winboard/bitmaps/l54o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/l54s.bmp b/winboard/bitmaps/l54s.bmp
deleted file mode 100644 (file)
index 7abf49d..0000000
Binary files a/winboard/bitmaps/l54s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/l54w.bmp b/winboard/bitmaps/l54w.bmp
deleted file mode 100644 (file)
index 2ba36b8..0000000
Binary files a/winboard/bitmaps/l54w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/l58o.bmp b/winboard/bitmaps/l58o.bmp
deleted file mode 100644 (file)
index 584a038..0000000
Binary files a/winboard/bitmaps/l58o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/l58s.bmp b/winboard/bitmaps/l58s.bmp
deleted file mode 100644 (file)
index 1c7ba69..0000000
Binary files a/winboard/bitmaps/l58s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/l58w.bmp b/winboard/bitmaps/l58w.bmp
deleted file mode 100644 (file)
index 2ec0f44..0000000
Binary files a/winboard/bitmaps/l58w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/l64o.bmp b/winboard/bitmaps/l64o.bmp
deleted file mode 100644 (file)
index dcd5a4c..0000000
Binary files a/winboard/bitmaps/l64o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/l64s.bmp b/winboard/bitmaps/l64s.bmp
deleted file mode 100644 (file)
index 0bdc5bb..0000000
Binary files a/winboard/bitmaps/l64s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/l64w.bmp b/winboard/bitmaps/l64w.bmp
deleted file mode 100644 (file)
index 80342c3..0000000
Binary files a/winboard/bitmaps/l64w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/l72o.bmp b/winboard/bitmaps/l72o.bmp
deleted file mode 100644 (file)
index 130cbfd..0000000
Binary files a/winboard/bitmaps/l72o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/l72s.bmp b/winboard/bitmaps/l72s.bmp
deleted file mode 100644 (file)
index 798e908..0000000
Binary files a/winboard/bitmaps/l72s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/l72w.bmp b/winboard/bitmaps/l72w.bmp
deleted file mode 100644 (file)
index 6914cb1..0000000
Binary files a/winboard/bitmaps/l72w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/ln33o.bmp b/winboard/bitmaps/ln33o.bmp
deleted file mode 100644 (file)
index 1e369b2..0000000
Binary files a/winboard/bitmaps/ln33o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/ln33s.bmp b/winboard/bitmaps/ln33s.bmp
deleted file mode 100644 (file)
index 4f4b4fe..0000000
Binary files a/winboard/bitmaps/ln33s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/ln33w.bmp b/winboard/bitmaps/ln33w.bmp
deleted file mode 100644 (file)
index 8498503..0000000
Binary files a/winboard/bitmaps/ln33w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/ln49o.bmp b/winboard/bitmaps/ln49o.bmp
deleted file mode 100644 (file)
index 70f760e..0000000
Binary files a/winboard/bitmaps/ln49o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/ln49s.bmp b/winboard/bitmaps/ln49s.bmp
deleted file mode 100644 (file)
index b9ecc7b..0000000
Binary files a/winboard/bitmaps/ln49s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/ln49w.bmp b/winboard/bitmaps/ln49w.bmp
deleted file mode 100644 (file)
index 16f45eb..0000000
Binary files a/winboard/bitmaps/ln49w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/ln72o.bmp b/winboard/bitmaps/ln72o.bmp
deleted file mode 100644 (file)
index cb23356..0000000
Binary files a/winboard/bitmaps/ln72o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/ln72s.bmp b/winboard/bitmaps/ln72s.bmp
deleted file mode 100644 (file)
index f0a88ce..0000000
Binary files a/winboard/bitmaps/ln72s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/ln72w.bmp b/winboard/bitmaps/ln72w.bmp
deleted file mode 100644 (file)
index e55a5e8..0000000
Binary files a/winboard/bitmaps/ln72w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/m33o.bmp b/winboard/bitmaps/m33o.bmp
deleted file mode 100644 (file)
index 313e998..0000000
Binary files a/winboard/bitmaps/m33o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/m33s.bmp b/winboard/bitmaps/m33s.bmp
deleted file mode 100644 (file)
index 52be842..0000000
Binary files a/winboard/bitmaps/m33s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/m33w.bmp b/winboard/bitmaps/m33w.bmp
deleted file mode 100644 (file)
index 110f29e..0000000
Binary files a/winboard/bitmaps/m33w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/m49o.bmp b/winboard/bitmaps/m49o.bmp
deleted file mode 100644 (file)
index a70fb3e..0000000
Binary files a/winboard/bitmaps/m49o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/m49s.bmp b/winboard/bitmaps/m49s.bmp
deleted file mode 100644 (file)
index 516ef04..0000000
Binary files a/winboard/bitmaps/m49s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/m49w.bmp b/winboard/bitmaps/m49w.bmp
deleted file mode 100644 (file)
index eaa0795..0000000
Binary files a/winboard/bitmaps/m49w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/m72o.bmp b/winboard/bitmaps/m72o.bmp
deleted file mode 100644 (file)
index 1e1ad2a..0000000
Binary files a/winboard/bitmaps/m72o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/m72s.bmp b/winboard/bitmaps/m72s.bmp
deleted file mode 100644 (file)
index e9ac763..0000000
Binary files a/winboard/bitmaps/m72s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/m72w.bmp b/winboard/bitmaps/m72w.bmp
deleted file mode 100644 (file)
index a1958ea..0000000
Binary files a/winboard/bitmaps/m72w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n108o.bmp b/winboard/bitmaps/n108o.bmp
deleted file mode 100644 (file)
index 773c91b..0000000
Binary files a/winboard/bitmaps/n108o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n108s.bmp b/winboard/bitmaps/n108s.bmp
deleted file mode 100644 (file)
index 62691df..0000000
Binary files a/winboard/bitmaps/n108s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n108w.bmp b/winboard/bitmaps/n108w.bmp
deleted file mode 100644 (file)
index 248dff0..0000000
Binary files a/winboard/bitmaps/n108w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n116o.bmp b/winboard/bitmaps/n116o.bmp
deleted file mode 100644 (file)
index 61e037d..0000000
Binary files a/winboard/bitmaps/n116o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n116s.bmp b/winboard/bitmaps/n116s.bmp
deleted file mode 100644 (file)
index fc2419a..0000000
Binary files a/winboard/bitmaps/n116s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n116w.bmp b/winboard/bitmaps/n116w.bmp
deleted file mode 100644 (file)
index a6299b1..0000000
Binary files a/winboard/bitmaps/n116w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n129o.bmp b/winboard/bitmaps/n129o.bmp
deleted file mode 100644 (file)
index 857a82f..0000000
Binary files a/winboard/bitmaps/n129o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n129s.bmp b/winboard/bitmaps/n129s.bmp
deleted file mode 100644 (file)
index d5f2142..0000000
Binary files a/winboard/bitmaps/n129s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n129w.bmp b/winboard/bitmaps/n129w.bmp
deleted file mode 100644 (file)
index e1d630c..0000000
Binary files a/winboard/bitmaps/n129w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n21o.bmp b/winboard/bitmaps/n21o.bmp
deleted file mode 100644 (file)
index 8ae7a73..0000000
Binary files a/winboard/bitmaps/n21o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n21s.bmp b/winboard/bitmaps/n21s.bmp
deleted file mode 100644 (file)
index 7c2aa5c..0000000
Binary files a/winboard/bitmaps/n21s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n21w.bmp b/winboard/bitmaps/n21w.bmp
deleted file mode 100644 (file)
index 174e345..0000000
Binary files a/winboard/bitmaps/n21w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n25o.bmp b/winboard/bitmaps/n25o.bmp
deleted file mode 100644 (file)
index 9ebffd6..0000000
Binary files a/winboard/bitmaps/n25o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n25s.bmp b/winboard/bitmaps/n25s.bmp
deleted file mode 100644 (file)
index c4f4ab5..0000000
Binary files a/winboard/bitmaps/n25s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n25w.bmp b/winboard/bitmaps/n25w.bmp
deleted file mode 100644 (file)
index 493f9b5..0000000
Binary files a/winboard/bitmaps/n25w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n29o.bmp b/winboard/bitmaps/n29o.bmp
deleted file mode 100644 (file)
index 5b78783..0000000
Binary files a/winboard/bitmaps/n29o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n29s.bmp b/winboard/bitmaps/n29s.bmp
deleted file mode 100644 (file)
index 88d0afb..0000000
Binary files a/winboard/bitmaps/n29s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n29w.bmp b/winboard/bitmaps/n29w.bmp
deleted file mode 100644 (file)
index d075211..0000000
Binary files a/winboard/bitmaps/n29w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n33o.bmp b/winboard/bitmaps/n33o.bmp
deleted file mode 100644 (file)
index 2677922..0000000
Binary files a/winboard/bitmaps/n33o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n33s.bmp b/winboard/bitmaps/n33s.bmp
deleted file mode 100644 (file)
index 85d2f83..0000000
Binary files a/winboard/bitmaps/n33s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n33w.bmp b/winboard/bitmaps/n33w.bmp
deleted file mode 100644 (file)
index 7a42f6a..0000000
Binary files a/winboard/bitmaps/n33w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n37o.bmp b/winboard/bitmaps/n37o.bmp
deleted file mode 100644 (file)
index a68f14a..0000000
Binary files a/winboard/bitmaps/n37o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n37s.bmp b/winboard/bitmaps/n37s.bmp
deleted file mode 100644 (file)
index 27a6de2..0000000
Binary files a/winboard/bitmaps/n37s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n37w.bmp b/winboard/bitmaps/n37w.bmp
deleted file mode 100644 (file)
index 89d157e..0000000
Binary files a/winboard/bitmaps/n37w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n40o.bmp b/winboard/bitmaps/n40o.bmp
deleted file mode 100644 (file)
index 9be7534..0000000
Binary files a/winboard/bitmaps/n40o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n40s.bmp b/winboard/bitmaps/n40s.bmp
deleted file mode 100644 (file)
index 1fa0fce..0000000
Binary files a/winboard/bitmaps/n40s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n40w.bmp b/winboard/bitmaps/n40w.bmp
deleted file mode 100644 (file)
index 84eeea1..0000000
Binary files a/winboard/bitmaps/n40w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n45o.bmp b/winboard/bitmaps/n45o.bmp
deleted file mode 100644 (file)
index 81e3ee4..0000000
Binary files a/winboard/bitmaps/n45o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n45s.bmp b/winboard/bitmaps/n45s.bmp
deleted file mode 100644 (file)
index 67752a1..0000000
Binary files a/winboard/bitmaps/n45s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n45w.bmp b/winboard/bitmaps/n45w.bmp
deleted file mode 100644 (file)
index e200f89..0000000
Binary files a/winboard/bitmaps/n45w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n49o.bmp b/winboard/bitmaps/n49o.bmp
deleted file mode 100644 (file)
index 44d9cec..0000000
Binary files a/winboard/bitmaps/n49o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n49s.bmp b/winboard/bitmaps/n49s.bmp
deleted file mode 100644 (file)
index 7a5200b..0000000
Binary files a/winboard/bitmaps/n49s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n49w.bmp b/winboard/bitmaps/n49w.bmp
deleted file mode 100644 (file)
index f3f7311..0000000
Binary files a/winboard/bitmaps/n49w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n54o.bmp b/winboard/bitmaps/n54o.bmp
deleted file mode 100644 (file)
index 738c72b..0000000
Binary files a/winboard/bitmaps/n54o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n54s.bmp b/winboard/bitmaps/n54s.bmp
deleted file mode 100644 (file)
index 1c3c3fa..0000000
Binary files a/winboard/bitmaps/n54s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n54w.bmp b/winboard/bitmaps/n54w.bmp
deleted file mode 100644 (file)
index da912e7..0000000
Binary files a/winboard/bitmaps/n54w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n58o.bmp b/winboard/bitmaps/n58o.bmp
deleted file mode 100644 (file)
index b551c1c..0000000
Binary files a/winboard/bitmaps/n58o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n58s.bmp b/winboard/bitmaps/n58s.bmp
deleted file mode 100644 (file)
index 39bf412..0000000
Binary files a/winboard/bitmaps/n58s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n58w.bmp b/winboard/bitmaps/n58w.bmp
deleted file mode 100644 (file)
index b6ba799..0000000
Binary files a/winboard/bitmaps/n58w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n64o.bmp b/winboard/bitmaps/n64o.bmp
deleted file mode 100644 (file)
index a932bce..0000000
Binary files a/winboard/bitmaps/n64o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n64s.bmp b/winboard/bitmaps/n64s.bmp
deleted file mode 100644 (file)
index e0a25e1..0000000
Binary files a/winboard/bitmaps/n64s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n64w.bmp b/winboard/bitmaps/n64w.bmp
deleted file mode 100644 (file)
index 1c20506..0000000
Binary files a/winboard/bitmaps/n64w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n72o.bmp b/winboard/bitmaps/n72o.bmp
deleted file mode 100644 (file)
index be3f303..0000000
Binary files a/winboard/bitmaps/n72o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n72s.bmp b/winboard/bitmaps/n72s.bmp
deleted file mode 100644 (file)
index d641b8e..0000000
Binary files a/winboard/bitmaps/n72s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n72w.bmp b/winboard/bitmaps/n72w.bmp
deleted file mode 100644 (file)
index ba9552b..0000000
Binary files a/winboard/bitmaps/n72w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n80o.bmp b/winboard/bitmaps/n80o.bmp
deleted file mode 100644 (file)
index 05b1a33..0000000
Binary files a/winboard/bitmaps/n80o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n80s.bmp b/winboard/bitmaps/n80s.bmp
deleted file mode 100644 (file)
index 873c833..0000000
Binary files a/winboard/bitmaps/n80s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n80w.bmp b/winboard/bitmaps/n80w.bmp
deleted file mode 100644 (file)
index ff874d4..0000000
Binary files a/winboard/bitmaps/n80w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n87o.bmp b/winboard/bitmaps/n87o.bmp
deleted file mode 100644 (file)
index 3466d4d..0000000
Binary files a/winboard/bitmaps/n87o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n87s.bmp b/winboard/bitmaps/n87s.bmp
deleted file mode 100644 (file)
index 59b715b..0000000
Binary files a/winboard/bitmaps/n87s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n87w.bmp b/winboard/bitmaps/n87w.bmp
deleted file mode 100644 (file)
index f63f28f..0000000
Binary files a/winboard/bitmaps/n87w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n95o.bmp b/winboard/bitmaps/n95o.bmp
deleted file mode 100644 (file)
index f826a19..0000000
Binary files a/winboard/bitmaps/n95o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n95s.bmp b/winboard/bitmaps/n95s.bmp
deleted file mode 100644 (file)
index 6104c31..0000000
Binary files a/winboard/bitmaps/n95s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/n95w.bmp b/winboard/bitmaps/n95w.bmp
deleted file mode 100644 (file)
index 68f7488..0000000
Binary files a/winboard/bitmaps/n95w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/o33o.bmp b/winboard/bitmaps/o33o.bmp
deleted file mode 100644 (file)
index 667dc83..0000000
Binary files a/winboard/bitmaps/o33o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/o33s.bmp b/winboard/bitmaps/o33s.bmp
deleted file mode 100644 (file)
index a063095..0000000
Binary files a/winboard/bitmaps/o33s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/o33w.bmp b/winboard/bitmaps/o33w.bmp
deleted file mode 100644 (file)
index d782bd5..0000000
Binary files a/winboard/bitmaps/o33w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/o49o.bmp b/winboard/bitmaps/o49o.bmp
deleted file mode 100644 (file)
index 7cefe71..0000000
Binary files a/winboard/bitmaps/o49o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/o49s.bmp b/winboard/bitmaps/o49s.bmp
deleted file mode 100644 (file)
index 61e191f..0000000
Binary files a/winboard/bitmaps/o49s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/o49w.bmp b/winboard/bitmaps/o49w.bmp
deleted file mode 100644 (file)
index a4092ee..0000000
Binary files a/winboard/bitmaps/o49w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/o72o.bmp b/winboard/bitmaps/o72o.bmp
deleted file mode 100644 (file)
index f0d0d52..0000000
Binary files a/winboard/bitmaps/o72o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/o72s.bmp b/winboard/bitmaps/o72s.bmp
deleted file mode 100644 (file)
index f9aa0ff..0000000
Binary files a/winboard/bitmaps/o72s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/o72w.bmp b/winboard/bitmaps/o72w.bmp
deleted file mode 100644 (file)
index 3e557be..0000000
Binary files a/winboard/bitmaps/o72w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p108o.bmp b/winboard/bitmaps/p108o.bmp
deleted file mode 100644 (file)
index 08fe730..0000000
Binary files a/winboard/bitmaps/p108o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p108s.bmp b/winboard/bitmaps/p108s.bmp
deleted file mode 100644 (file)
index 099f9ee..0000000
Binary files a/winboard/bitmaps/p108s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p108w.bmp b/winboard/bitmaps/p108w.bmp
deleted file mode 100644 (file)
index 2e28c9c..0000000
Binary files a/winboard/bitmaps/p108w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p116o.bmp b/winboard/bitmaps/p116o.bmp
deleted file mode 100644 (file)
index d9950a3..0000000
Binary files a/winboard/bitmaps/p116o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p116s.bmp b/winboard/bitmaps/p116s.bmp
deleted file mode 100644 (file)
index 7fcf7aa..0000000
Binary files a/winboard/bitmaps/p116s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p116w.bmp b/winboard/bitmaps/p116w.bmp
deleted file mode 100644 (file)
index b24fc2a..0000000
Binary files a/winboard/bitmaps/p116w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p129o.bmp b/winboard/bitmaps/p129o.bmp
deleted file mode 100644 (file)
index 5a3713a..0000000
Binary files a/winboard/bitmaps/p129o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p129s.bmp b/winboard/bitmaps/p129s.bmp
deleted file mode 100644 (file)
index 83df042..0000000
Binary files a/winboard/bitmaps/p129s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p129w.bmp b/winboard/bitmaps/p129w.bmp
deleted file mode 100644 (file)
index 360735a..0000000
Binary files a/winboard/bitmaps/p129w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p21o.bmp b/winboard/bitmaps/p21o.bmp
deleted file mode 100644 (file)
index ba739e5..0000000
Binary files a/winboard/bitmaps/p21o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p21s.bmp b/winboard/bitmaps/p21s.bmp
deleted file mode 100644 (file)
index 53fb5ab..0000000
Binary files a/winboard/bitmaps/p21s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p21w.bmp b/winboard/bitmaps/p21w.bmp
deleted file mode 100644 (file)
index e47cc23..0000000
Binary files a/winboard/bitmaps/p21w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p25o.bmp b/winboard/bitmaps/p25o.bmp
deleted file mode 100644 (file)
index 7cf8014..0000000
Binary files a/winboard/bitmaps/p25o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p25s.bmp b/winboard/bitmaps/p25s.bmp
deleted file mode 100644 (file)
index 1a59190..0000000
Binary files a/winboard/bitmaps/p25s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p25w.bmp b/winboard/bitmaps/p25w.bmp
deleted file mode 100644 (file)
index bd7b65b..0000000
Binary files a/winboard/bitmaps/p25w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p29o.bmp b/winboard/bitmaps/p29o.bmp
deleted file mode 100644 (file)
index 49b9985..0000000
Binary files a/winboard/bitmaps/p29o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p29s.bmp b/winboard/bitmaps/p29s.bmp
deleted file mode 100644 (file)
index e3f5f87..0000000
Binary files a/winboard/bitmaps/p29s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p29w.bmp b/winboard/bitmaps/p29w.bmp
deleted file mode 100644 (file)
index 55169f6..0000000
Binary files a/winboard/bitmaps/p29w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p33o.bmp b/winboard/bitmaps/p33o.bmp
deleted file mode 100644 (file)
index 4ebb6f4..0000000
Binary files a/winboard/bitmaps/p33o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p33s.bmp b/winboard/bitmaps/p33s.bmp
deleted file mode 100644 (file)
index 88c9dd2..0000000
Binary files a/winboard/bitmaps/p33s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p33w.bmp b/winboard/bitmaps/p33w.bmp
deleted file mode 100644 (file)
index 0de8f7f..0000000
Binary files a/winboard/bitmaps/p33w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p37o.bmp b/winboard/bitmaps/p37o.bmp
deleted file mode 100644 (file)
index 0d165cf..0000000
Binary files a/winboard/bitmaps/p37o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p37s.bmp b/winboard/bitmaps/p37s.bmp
deleted file mode 100644 (file)
index dd95792..0000000
Binary files a/winboard/bitmaps/p37s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p37w.bmp b/winboard/bitmaps/p37w.bmp
deleted file mode 100644 (file)
index 48e0dc7..0000000
Binary files a/winboard/bitmaps/p37w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p40o.bmp b/winboard/bitmaps/p40o.bmp
deleted file mode 100644 (file)
index 2164542..0000000
Binary files a/winboard/bitmaps/p40o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p40s.bmp b/winboard/bitmaps/p40s.bmp
deleted file mode 100644 (file)
index 438d142..0000000
Binary files a/winboard/bitmaps/p40s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p40w.bmp b/winboard/bitmaps/p40w.bmp
deleted file mode 100644 (file)
index 44567d9..0000000
Binary files a/winboard/bitmaps/p40w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p45o.bmp b/winboard/bitmaps/p45o.bmp
deleted file mode 100644 (file)
index d878adb..0000000
Binary files a/winboard/bitmaps/p45o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p45s.bmp b/winboard/bitmaps/p45s.bmp
deleted file mode 100644 (file)
index c44efa7..0000000
Binary files a/winboard/bitmaps/p45s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p45w.bmp b/winboard/bitmaps/p45w.bmp
deleted file mode 100644 (file)
index d1cb668..0000000
Binary files a/winboard/bitmaps/p45w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p49o.bmp b/winboard/bitmaps/p49o.bmp
deleted file mode 100644 (file)
index 74fb233..0000000
Binary files a/winboard/bitmaps/p49o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p49s.bmp b/winboard/bitmaps/p49s.bmp
deleted file mode 100644 (file)
index a76357c..0000000
Binary files a/winboard/bitmaps/p49s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p49w.bmp b/winboard/bitmaps/p49w.bmp
deleted file mode 100644 (file)
index e34cb97..0000000
Binary files a/winboard/bitmaps/p49w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p54o.bmp b/winboard/bitmaps/p54o.bmp
deleted file mode 100644 (file)
index fc0a928..0000000
Binary files a/winboard/bitmaps/p54o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p54s.bmp b/winboard/bitmaps/p54s.bmp
deleted file mode 100644 (file)
index 7bd3fba..0000000
Binary files a/winboard/bitmaps/p54s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p54w.bmp b/winboard/bitmaps/p54w.bmp
deleted file mode 100644 (file)
index ca35eda..0000000
Binary files a/winboard/bitmaps/p54w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p58o.bmp b/winboard/bitmaps/p58o.bmp
deleted file mode 100644 (file)
index 6f1c81e..0000000
Binary files a/winboard/bitmaps/p58o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p58s.bmp b/winboard/bitmaps/p58s.bmp
deleted file mode 100644 (file)
index 3336583..0000000
Binary files a/winboard/bitmaps/p58s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p58w.bmp b/winboard/bitmaps/p58w.bmp
deleted file mode 100644 (file)
index 8a45650..0000000
Binary files a/winboard/bitmaps/p58w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p64o.bmp b/winboard/bitmaps/p64o.bmp
deleted file mode 100644 (file)
index 336c228..0000000
Binary files a/winboard/bitmaps/p64o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p64s.bmp b/winboard/bitmaps/p64s.bmp
deleted file mode 100644 (file)
index a134e41..0000000
Binary files a/winboard/bitmaps/p64s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p64w.bmp b/winboard/bitmaps/p64w.bmp
deleted file mode 100644 (file)
index ebdd7e4..0000000
Binary files a/winboard/bitmaps/p64w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p72o.bmp b/winboard/bitmaps/p72o.bmp
deleted file mode 100644 (file)
index 7436520..0000000
Binary files a/winboard/bitmaps/p72o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p72s.bmp b/winboard/bitmaps/p72s.bmp
deleted file mode 100644 (file)
index c155645..0000000
Binary files a/winboard/bitmaps/p72s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p72w.bmp b/winboard/bitmaps/p72w.bmp
deleted file mode 100644 (file)
index 542a9e0..0000000
Binary files a/winboard/bitmaps/p72w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p80o.bmp b/winboard/bitmaps/p80o.bmp
deleted file mode 100644 (file)
index 096c445..0000000
Binary files a/winboard/bitmaps/p80o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p80s.bmp b/winboard/bitmaps/p80s.bmp
deleted file mode 100644 (file)
index 0883c08..0000000
Binary files a/winboard/bitmaps/p80s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p80w.bmp b/winboard/bitmaps/p80w.bmp
deleted file mode 100644 (file)
index 2168385..0000000
Binary files a/winboard/bitmaps/p80w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p87o.bmp b/winboard/bitmaps/p87o.bmp
deleted file mode 100644 (file)
index de4374c..0000000
Binary files a/winboard/bitmaps/p87o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p87s.bmp b/winboard/bitmaps/p87s.bmp
deleted file mode 100644 (file)
index c8b6e3a..0000000
Binary files a/winboard/bitmaps/p87s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p87w.bmp b/winboard/bitmaps/p87w.bmp
deleted file mode 100644 (file)
index 15d9ea8..0000000
Binary files a/winboard/bitmaps/p87w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p95o.bmp b/winboard/bitmaps/p95o.bmp
deleted file mode 100644 (file)
index d8d1acd..0000000
Binary files a/winboard/bitmaps/p95o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p95s.bmp b/winboard/bitmaps/p95s.bmp
deleted file mode 100644 (file)
index 637365f..0000000
Binary files a/winboard/bitmaps/p95s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/p95w.bmp b/winboard/bitmaps/p95w.bmp
deleted file mode 100644 (file)
index 274c521..0000000
Binary files a/winboard/bitmaps/p95w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/ponder_14.ico b/winboard/bitmaps/ponder_14.ico
deleted file mode 100644 (file)
index 484deaa..0000000
Binary files a/winboard/bitmaps/ponder_14.ico and /dev/null differ
diff --git a/winboard/bitmaps/q108o.bmp b/winboard/bitmaps/q108o.bmp
deleted file mode 100644 (file)
index e11a741..0000000
Binary files a/winboard/bitmaps/q108o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q108s.bmp b/winboard/bitmaps/q108s.bmp
deleted file mode 100644 (file)
index 0840506..0000000
Binary files a/winboard/bitmaps/q108s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q108w.bmp b/winboard/bitmaps/q108w.bmp
deleted file mode 100644 (file)
index 3cfe3fc..0000000
Binary files a/winboard/bitmaps/q108w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q116o.bmp b/winboard/bitmaps/q116o.bmp
deleted file mode 100644 (file)
index 8d884cd..0000000
Binary files a/winboard/bitmaps/q116o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q116s.bmp b/winboard/bitmaps/q116s.bmp
deleted file mode 100644 (file)
index e526362..0000000
Binary files a/winboard/bitmaps/q116s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q116w.bmp b/winboard/bitmaps/q116w.bmp
deleted file mode 100644 (file)
index ea987cc..0000000
Binary files a/winboard/bitmaps/q116w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q129o.bmp b/winboard/bitmaps/q129o.bmp
deleted file mode 100644 (file)
index f6393bf..0000000
Binary files a/winboard/bitmaps/q129o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q129s.bmp b/winboard/bitmaps/q129s.bmp
deleted file mode 100644 (file)
index e058bf6..0000000
Binary files a/winboard/bitmaps/q129s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q129w.bmp b/winboard/bitmaps/q129w.bmp
deleted file mode 100644 (file)
index bbb98f5..0000000
Binary files a/winboard/bitmaps/q129w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q21o.bmp b/winboard/bitmaps/q21o.bmp
deleted file mode 100644 (file)
index 85f3359..0000000
Binary files a/winboard/bitmaps/q21o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q21s.bmp b/winboard/bitmaps/q21s.bmp
deleted file mode 100644 (file)
index ee9ad79..0000000
Binary files a/winboard/bitmaps/q21s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q21w.bmp b/winboard/bitmaps/q21w.bmp
deleted file mode 100644 (file)
index e3c9213..0000000
Binary files a/winboard/bitmaps/q21w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q25o.bmp b/winboard/bitmaps/q25o.bmp
deleted file mode 100644 (file)
index caf5bee..0000000
Binary files a/winboard/bitmaps/q25o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q25s.bmp b/winboard/bitmaps/q25s.bmp
deleted file mode 100644 (file)
index b3dadda..0000000
Binary files a/winboard/bitmaps/q25s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q25w.bmp b/winboard/bitmaps/q25w.bmp
deleted file mode 100644 (file)
index 565bab2..0000000
Binary files a/winboard/bitmaps/q25w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q29o.bmp b/winboard/bitmaps/q29o.bmp
deleted file mode 100644 (file)
index bd08feb..0000000
Binary files a/winboard/bitmaps/q29o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q29s.bmp b/winboard/bitmaps/q29s.bmp
deleted file mode 100644 (file)
index f97f190..0000000
Binary files a/winboard/bitmaps/q29s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q29w.bmp b/winboard/bitmaps/q29w.bmp
deleted file mode 100644 (file)
index 929c7d4..0000000
Binary files a/winboard/bitmaps/q29w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q33o.bmp b/winboard/bitmaps/q33o.bmp
deleted file mode 100644 (file)
index d1c7e0a..0000000
Binary files a/winboard/bitmaps/q33o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q33s.bmp b/winboard/bitmaps/q33s.bmp
deleted file mode 100644 (file)
index 34798a2..0000000
Binary files a/winboard/bitmaps/q33s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q33w.bmp b/winboard/bitmaps/q33w.bmp
deleted file mode 100644 (file)
index 90a18a8..0000000
Binary files a/winboard/bitmaps/q33w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q37o.bmp b/winboard/bitmaps/q37o.bmp
deleted file mode 100644 (file)
index 972d9b5..0000000
Binary files a/winboard/bitmaps/q37o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q37s.bmp b/winboard/bitmaps/q37s.bmp
deleted file mode 100644 (file)
index 76f7282..0000000
Binary files a/winboard/bitmaps/q37s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q37w.bmp b/winboard/bitmaps/q37w.bmp
deleted file mode 100644 (file)
index 4ef25b0..0000000
Binary files a/winboard/bitmaps/q37w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q40o.bmp b/winboard/bitmaps/q40o.bmp
deleted file mode 100644 (file)
index 2777d46..0000000
Binary files a/winboard/bitmaps/q40o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q40s.bmp b/winboard/bitmaps/q40s.bmp
deleted file mode 100644 (file)
index 2952764..0000000
Binary files a/winboard/bitmaps/q40s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q40w.bmp b/winboard/bitmaps/q40w.bmp
deleted file mode 100644 (file)
index 2238f1d..0000000
Binary files a/winboard/bitmaps/q40w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q45o.bmp b/winboard/bitmaps/q45o.bmp
deleted file mode 100644 (file)
index e04239e..0000000
Binary files a/winboard/bitmaps/q45o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q45s.bmp b/winboard/bitmaps/q45s.bmp
deleted file mode 100644 (file)
index 4a0b728..0000000
Binary files a/winboard/bitmaps/q45s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q45w.bmp b/winboard/bitmaps/q45w.bmp
deleted file mode 100644 (file)
index 30b954b..0000000
Binary files a/winboard/bitmaps/q45w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q49o.bmp b/winboard/bitmaps/q49o.bmp
deleted file mode 100644 (file)
index f0d9395..0000000
Binary files a/winboard/bitmaps/q49o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q49s.bmp b/winboard/bitmaps/q49s.bmp
deleted file mode 100644 (file)
index a4baae5..0000000
Binary files a/winboard/bitmaps/q49s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q49w.bmp b/winboard/bitmaps/q49w.bmp
deleted file mode 100644 (file)
index 460f23f..0000000
Binary files a/winboard/bitmaps/q49w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q54o.bmp b/winboard/bitmaps/q54o.bmp
deleted file mode 100644 (file)
index 7319504..0000000
Binary files a/winboard/bitmaps/q54o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q54s.bmp b/winboard/bitmaps/q54s.bmp
deleted file mode 100644 (file)
index 62245ff..0000000
Binary files a/winboard/bitmaps/q54s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q54w.bmp b/winboard/bitmaps/q54w.bmp
deleted file mode 100644 (file)
index 8ecbfff..0000000
Binary files a/winboard/bitmaps/q54w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q58o.bmp b/winboard/bitmaps/q58o.bmp
deleted file mode 100644 (file)
index 9f9ad7b..0000000
Binary files a/winboard/bitmaps/q58o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q58s.bmp b/winboard/bitmaps/q58s.bmp
deleted file mode 100644 (file)
index ff10ec8..0000000
Binary files a/winboard/bitmaps/q58s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q58w.bmp b/winboard/bitmaps/q58w.bmp
deleted file mode 100644 (file)
index 9370ff4..0000000
Binary files a/winboard/bitmaps/q58w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q64o.bmp b/winboard/bitmaps/q64o.bmp
deleted file mode 100644 (file)
index 0285e9b..0000000
Binary files a/winboard/bitmaps/q64o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q64s.bmp b/winboard/bitmaps/q64s.bmp
deleted file mode 100644 (file)
index 23408ab..0000000
Binary files a/winboard/bitmaps/q64s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q64w.bmp b/winboard/bitmaps/q64w.bmp
deleted file mode 100644 (file)
index 4aeba74..0000000
Binary files a/winboard/bitmaps/q64w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q72o.bmp b/winboard/bitmaps/q72o.bmp
deleted file mode 100644 (file)
index 2349650..0000000
Binary files a/winboard/bitmaps/q72o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q72s.bmp b/winboard/bitmaps/q72s.bmp
deleted file mode 100644 (file)
index 71ed548..0000000
Binary files a/winboard/bitmaps/q72s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q72w.bmp b/winboard/bitmaps/q72w.bmp
deleted file mode 100644 (file)
index 8c95eba..0000000
Binary files a/winboard/bitmaps/q72w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q80o.bmp b/winboard/bitmaps/q80o.bmp
deleted file mode 100644 (file)
index d462bae..0000000
Binary files a/winboard/bitmaps/q80o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q80s.bmp b/winboard/bitmaps/q80s.bmp
deleted file mode 100644 (file)
index 456c99a..0000000
Binary files a/winboard/bitmaps/q80s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q80w.bmp b/winboard/bitmaps/q80w.bmp
deleted file mode 100644 (file)
index 7004bc8..0000000
Binary files a/winboard/bitmaps/q80w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q87o.bmp b/winboard/bitmaps/q87o.bmp
deleted file mode 100644 (file)
index 4c702ac..0000000
Binary files a/winboard/bitmaps/q87o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q87s.bmp b/winboard/bitmaps/q87s.bmp
deleted file mode 100644 (file)
index a7f2e6a..0000000
Binary files a/winboard/bitmaps/q87s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q87w.bmp b/winboard/bitmaps/q87w.bmp
deleted file mode 100644 (file)
index 9ee8e91..0000000
Binary files a/winboard/bitmaps/q87w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q95o.bmp b/winboard/bitmaps/q95o.bmp
deleted file mode 100644 (file)
index 9789e10..0000000
Binary files a/winboard/bitmaps/q95o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q95s.bmp b/winboard/bitmaps/q95s.bmp
deleted file mode 100644 (file)
index 69eac49..0000000
Binary files a/winboard/bitmaps/q95s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/q95w.bmp b/winboard/bitmaps/q95w.bmp
deleted file mode 100644 (file)
index bb4a847..0000000
Binary files a/winboard/bitmaps/q95w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r108o.bmp b/winboard/bitmaps/r108o.bmp
deleted file mode 100644 (file)
index bb23012..0000000
Binary files a/winboard/bitmaps/r108o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r108s.bmp b/winboard/bitmaps/r108s.bmp
deleted file mode 100644 (file)
index 809111d..0000000
Binary files a/winboard/bitmaps/r108s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r108w.bmp b/winboard/bitmaps/r108w.bmp
deleted file mode 100644 (file)
index 196f913..0000000
Binary files a/winboard/bitmaps/r108w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r116o.bmp b/winboard/bitmaps/r116o.bmp
deleted file mode 100644 (file)
index 2207e9b..0000000
Binary files a/winboard/bitmaps/r116o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r116s.bmp b/winboard/bitmaps/r116s.bmp
deleted file mode 100644 (file)
index d728062..0000000
Binary files a/winboard/bitmaps/r116s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r116w.bmp b/winboard/bitmaps/r116w.bmp
deleted file mode 100644 (file)
index 918d8d7..0000000
Binary files a/winboard/bitmaps/r116w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r129o.bmp b/winboard/bitmaps/r129o.bmp
deleted file mode 100644 (file)
index e76cd84..0000000
Binary files a/winboard/bitmaps/r129o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r129s.bmp b/winboard/bitmaps/r129s.bmp
deleted file mode 100644 (file)
index 93b2c39..0000000
Binary files a/winboard/bitmaps/r129s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r129w.bmp b/winboard/bitmaps/r129w.bmp
deleted file mode 100644 (file)
index cc3ad72..0000000
Binary files a/winboard/bitmaps/r129w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r21o.bmp b/winboard/bitmaps/r21o.bmp
deleted file mode 100644 (file)
index 3dd5f09..0000000
Binary files a/winboard/bitmaps/r21o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r21s.bmp b/winboard/bitmaps/r21s.bmp
deleted file mode 100644 (file)
index 3e731ea..0000000
Binary files a/winboard/bitmaps/r21s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r21w.bmp b/winboard/bitmaps/r21w.bmp
deleted file mode 100644 (file)
index 6f01a85..0000000
Binary files a/winboard/bitmaps/r21w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r25o.bmp b/winboard/bitmaps/r25o.bmp
deleted file mode 100644 (file)
index ddde075..0000000
Binary files a/winboard/bitmaps/r25o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r25s.bmp b/winboard/bitmaps/r25s.bmp
deleted file mode 100644 (file)
index 91b184e..0000000
Binary files a/winboard/bitmaps/r25s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r25w.bmp b/winboard/bitmaps/r25w.bmp
deleted file mode 100644 (file)
index cc4ee6f..0000000
Binary files a/winboard/bitmaps/r25w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r29o.bmp b/winboard/bitmaps/r29o.bmp
deleted file mode 100644 (file)
index 6b725f6..0000000
Binary files a/winboard/bitmaps/r29o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r29s.bmp b/winboard/bitmaps/r29s.bmp
deleted file mode 100644 (file)
index f8e2a12..0000000
Binary files a/winboard/bitmaps/r29s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r29w.bmp b/winboard/bitmaps/r29w.bmp
deleted file mode 100644 (file)
index 49d7640..0000000
Binary files a/winboard/bitmaps/r29w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r33o.bmp b/winboard/bitmaps/r33o.bmp
deleted file mode 100644 (file)
index 92e47c3..0000000
Binary files a/winboard/bitmaps/r33o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r33s.bmp b/winboard/bitmaps/r33s.bmp
deleted file mode 100644 (file)
index da4d221..0000000
Binary files a/winboard/bitmaps/r33s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r33w.bmp b/winboard/bitmaps/r33w.bmp
deleted file mode 100644 (file)
index 4afebd1..0000000
Binary files a/winboard/bitmaps/r33w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r37o.bmp b/winboard/bitmaps/r37o.bmp
deleted file mode 100644 (file)
index 58139d7..0000000
Binary files a/winboard/bitmaps/r37o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r37s.bmp b/winboard/bitmaps/r37s.bmp
deleted file mode 100644 (file)
index c461384..0000000
Binary files a/winboard/bitmaps/r37s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r37w.bmp b/winboard/bitmaps/r37w.bmp
deleted file mode 100644 (file)
index 528e2ff..0000000
Binary files a/winboard/bitmaps/r37w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r40o.bmp b/winboard/bitmaps/r40o.bmp
deleted file mode 100644 (file)
index 000fc3e..0000000
Binary files a/winboard/bitmaps/r40o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r40s.bmp b/winboard/bitmaps/r40s.bmp
deleted file mode 100644 (file)
index e67094a..0000000
Binary files a/winboard/bitmaps/r40s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r40w.bmp b/winboard/bitmaps/r40w.bmp
deleted file mode 100644 (file)
index 1af962c..0000000
Binary files a/winboard/bitmaps/r40w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r45o.bmp b/winboard/bitmaps/r45o.bmp
deleted file mode 100644 (file)
index 3a84672..0000000
Binary files a/winboard/bitmaps/r45o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r45s.bmp b/winboard/bitmaps/r45s.bmp
deleted file mode 100644 (file)
index 2d8fe11..0000000
Binary files a/winboard/bitmaps/r45s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r45w.bmp b/winboard/bitmaps/r45w.bmp
deleted file mode 100644 (file)
index b81d18e..0000000
Binary files a/winboard/bitmaps/r45w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r49o.bmp b/winboard/bitmaps/r49o.bmp
deleted file mode 100644 (file)
index e90e522..0000000
Binary files a/winboard/bitmaps/r49o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r49s.bmp b/winboard/bitmaps/r49s.bmp
deleted file mode 100644 (file)
index 2ad664e..0000000
Binary files a/winboard/bitmaps/r49s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r49w.bmp b/winboard/bitmaps/r49w.bmp
deleted file mode 100644 (file)
index f9aa784..0000000
Binary files a/winboard/bitmaps/r49w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r54o.bmp b/winboard/bitmaps/r54o.bmp
deleted file mode 100644 (file)
index 7d26cd7..0000000
Binary files a/winboard/bitmaps/r54o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r54s.bmp b/winboard/bitmaps/r54s.bmp
deleted file mode 100644 (file)
index 1b25f53..0000000
Binary files a/winboard/bitmaps/r54s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r54w.bmp b/winboard/bitmaps/r54w.bmp
deleted file mode 100644 (file)
index 44123f0..0000000
Binary files a/winboard/bitmaps/r54w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r58o.bmp b/winboard/bitmaps/r58o.bmp
deleted file mode 100644 (file)
index 0f8f018..0000000
Binary files a/winboard/bitmaps/r58o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r58s.bmp b/winboard/bitmaps/r58s.bmp
deleted file mode 100644 (file)
index eaad170..0000000
Binary files a/winboard/bitmaps/r58s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r58w.bmp b/winboard/bitmaps/r58w.bmp
deleted file mode 100644 (file)
index 11f1ac7..0000000
Binary files a/winboard/bitmaps/r58w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r64o.bmp b/winboard/bitmaps/r64o.bmp
deleted file mode 100644 (file)
index 38e6ffe..0000000
Binary files a/winboard/bitmaps/r64o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r64s.bmp b/winboard/bitmaps/r64s.bmp
deleted file mode 100644 (file)
index 940ebe9..0000000
Binary files a/winboard/bitmaps/r64s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r64w.bmp b/winboard/bitmaps/r64w.bmp
deleted file mode 100644 (file)
index 564c882..0000000
Binary files a/winboard/bitmaps/r64w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r72o.bmp b/winboard/bitmaps/r72o.bmp
deleted file mode 100644 (file)
index 2a53da7..0000000
Binary files a/winboard/bitmaps/r72o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r72s.bmp b/winboard/bitmaps/r72s.bmp
deleted file mode 100644 (file)
index b438967..0000000
Binary files a/winboard/bitmaps/r72s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r72w.bmp b/winboard/bitmaps/r72w.bmp
deleted file mode 100644 (file)
index bc615cc..0000000
Binary files a/winboard/bitmaps/r72w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r80o.bmp b/winboard/bitmaps/r80o.bmp
deleted file mode 100644 (file)
index 6019342..0000000
Binary files a/winboard/bitmaps/r80o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r80s.bmp b/winboard/bitmaps/r80s.bmp
deleted file mode 100644 (file)
index be2a5b6..0000000
Binary files a/winboard/bitmaps/r80s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r80w.bmp b/winboard/bitmaps/r80w.bmp
deleted file mode 100644 (file)
index 5964098..0000000
Binary files a/winboard/bitmaps/r80w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r87o.bmp b/winboard/bitmaps/r87o.bmp
deleted file mode 100644 (file)
index e331f47..0000000
Binary files a/winboard/bitmaps/r87o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r87s.bmp b/winboard/bitmaps/r87s.bmp
deleted file mode 100644 (file)
index 8644fd9..0000000
Binary files a/winboard/bitmaps/r87s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r87w.bmp b/winboard/bitmaps/r87w.bmp
deleted file mode 100644 (file)
index bafd3c4..0000000
Binary files a/winboard/bitmaps/r87w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r95o.bmp b/winboard/bitmaps/r95o.bmp
deleted file mode 100644 (file)
index 5395cf8..0000000
Binary files a/winboard/bitmaps/r95o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r95s.bmp b/winboard/bitmaps/r95s.bmp
deleted file mode 100644 (file)
index adf44a0..0000000
Binary files a/winboard/bitmaps/r95s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/r95w.bmp b/winboard/bitmaps/r95w.bmp
deleted file mode 100644 (file)
index cfbd7c7..0000000
Binary files a/winboard/bitmaps/r95w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/s49o.bmp b/winboard/bitmaps/s49o.bmp
deleted file mode 100644 (file)
index e6755c9..0000000
Binary files a/winboard/bitmaps/s49o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/s49s.bmp b/winboard/bitmaps/s49s.bmp
deleted file mode 100644 (file)
index 0f0efbb..0000000
Binary files a/winboard/bitmaps/s49s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/s49w.bmp b/winboard/bitmaps/s49w.bmp
deleted file mode 100644 (file)
index cc7354a..0000000
Binary files a/winboard/bitmaps/s49w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/s72o.bmp b/winboard/bitmaps/s72o.bmp
deleted file mode 100644 (file)
index 4df9aa8..0000000
Binary files a/winboard/bitmaps/s72o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/s72s.bmp b/winboard/bitmaps/s72s.bmp
deleted file mode 100644 (file)
index d5ed119..0000000
Binary files a/winboard/bitmaps/s72s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/s72w.bmp b/winboard/bitmaps/s72w.bmp
deleted file mode 100644 (file)
index e042e37..0000000
Binary files a/winboard/bitmaps/s72w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/tim.bmp b/winboard/bitmaps/tim.bmp
deleted file mode 100644 (file)
index 0de2550..0000000
Binary files a/winboard/bitmaps/tim.bmp and /dev/null differ
diff --git a/winboard/bitmaps/trans_14.ico b/winboard/bitmaps/trans_14.ico
deleted file mode 100644 (file)
index a096131..0000000
Binary files a/winboard/bitmaps/trans_14.ico and /dev/null differ
diff --git a/winboard/bitmaps/u49o.bmp b/winboard/bitmaps/u49o.bmp
deleted file mode 100644 (file)
index 6548a24..0000000
Binary files a/winboard/bitmaps/u49o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/u49s.bmp b/winboard/bitmaps/u49s.bmp
deleted file mode 100644 (file)
index ca21af0..0000000
Binary files a/winboard/bitmaps/u49s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/u49w.bmp b/winboard/bitmaps/u49w.bmp
deleted file mode 100644 (file)
index d790963..0000000
Binary files a/winboard/bitmaps/u49w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/u72o.bmp b/winboard/bitmaps/u72o.bmp
deleted file mode 100644 (file)
index d4ea856..0000000
Binary files a/winboard/bitmaps/u72o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/u72s.bmp b/winboard/bitmaps/u72s.bmp
deleted file mode 100644 (file)
index ff6f72b..0000000
Binary files a/winboard/bitmaps/u72s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/u72w.bmp b/winboard/bitmaps/u72w.bmp
deleted file mode 100644 (file)
index d9dbca7..0000000
Binary files a/winboard/bitmaps/u72w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/unknown_14.ico b/winboard/bitmaps/unknown_14.ico
deleted file mode 100644 (file)
index ea3cef3..0000000
Binary files a/winboard/bitmaps/unknown_14.ico and /dev/null differ
diff --git a/winboard/bitmaps/v33o.bmp b/winboard/bitmaps/v33o.bmp
deleted file mode 100644 (file)
index 29edd62..0000000
Binary files a/winboard/bitmaps/v33o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/v33s.bmp b/winboard/bitmaps/v33s.bmp
deleted file mode 100644 (file)
index d28863c..0000000
Binary files a/winboard/bitmaps/v33s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/v33w.bmp b/winboard/bitmaps/v33w.bmp
deleted file mode 100644 (file)
index 718729c..0000000
Binary files a/winboard/bitmaps/v33w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/v49o.bmp b/winboard/bitmaps/v49o.bmp
deleted file mode 100644 (file)
index bd2f8a1..0000000
Binary files a/winboard/bitmaps/v49o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/v49s.bmp b/winboard/bitmaps/v49s.bmp
deleted file mode 100644 (file)
index 9bf4b10..0000000
Binary files a/winboard/bitmaps/v49s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/v49w.bmp b/winboard/bitmaps/v49w.bmp
deleted file mode 100644 (file)
index 076ea0f..0000000
Binary files a/winboard/bitmaps/v49w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/v72o.bmp b/winboard/bitmaps/v72o.bmp
deleted file mode 100644 (file)
index cd2bbcd..0000000
Binary files a/winboard/bitmaps/v72o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/v72s.bmp b/winboard/bitmaps/v72s.bmp
deleted file mode 100644 (file)
index 3dd30dc..0000000
Binary files a/winboard/bitmaps/v72s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/v72w.bmp b/winboard/bitmaps/v72w.bmp
deleted file mode 100644 (file)
index 3797c5a..0000000
Binary files a/winboard/bitmaps/v72w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/w33o.bmp b/winboard/bitmaps/w33o.bmp
deleted file mode 100644 (file)
index 5de631d..0000000
Binary files a/winboard/bitmaps/w33o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/w33s.bmp b/winboard/bitmaps/w33s.bmp
deleted file mode 100644 (file)
index 4defb6a..0000000
Binary files a/winboard/bitmaps/w33s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/w33w.bmp b/winboard/bitmaps/w33w.bmp
deleted file mode 100644 (file)
index d7a3994..0000000
Binary files a/winboard/bitmaps/w33w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/w49o.bmp b/winboard/bitmaps/w49o.bmp
deleted file mode 100644 (file)
index 3ff1ce4..0000000
Binary files a/winboard/bitmaps/w49o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/w49s.bmp b/winboard/bitmaps/w49s.bmp
deleted file mode 100644 (file)
index d51a73c..0000000
Binary files a/winboard/bitmaps/w49s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/w49w.bmp b/winboard/bitmaps/w49w.bmp
deleted file mode 100644 (file)
index d8158af..0000000
Binary files a/winboard/bitmaps/w49w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/w72o.bmp b/winboard/bitmaps/w72o.bmp
deleted file mode 100644 (file)
index c9c8969..0000000
Binary files a/winboard/bitmaps/w72o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/w72s.bmp b/winboard/bitmaps/w72s.bmp
deleted file mode 100644 (file)
index 693e36c..0000000
Binary files a/winboard/bitmaps/w72s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/w72w.bmp b/winboard/bitmaps/w72w.bmp
deleted file mode 100644 (file)
index b7d0682..0000000
Binary files a/winboard/bitmaps/w72w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/white_14.ico b/winboard/bitmaps/white_14.ico
deleted file mode 100644 (file)
index 4783e0f..0000000
Binary files a/winboard/bitmaps/white_14.ico and /dev/null differ
diff --git a/winboard/bitmaps/wl33o.bmp b/winboard/bitmaps/wl33o.bmp
deleted file mode 100644 (file)
index ff0ca1e..0000000
Binary files a/winboard/bitmaps/wl33o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/wl33s.bmp b/winboard/bitmaps/wl33s.bmp
deleted file mode 100644 (file)
index 75d9d71..0000000
Binary files a/winboard/bitmaps/wl33s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/wl49o.bmp b/winboard/bitmaps/wl49o.bmp
deleted file mode 100644 (file)
index 9e71d68..0000000
Binary files a/winboard/bitmaps/wl49o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/wl49s.bmp b/winboard/bitmaps/wl49s.bmp
deleted file mode 100644 (file)
index a24a4f4..0000000
Binary files a/winboard/bitmaps/wl49s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/wl72o.bmp b/winboard/bitmaps/wl72o.bmp
deleted file mode 100644 (file)
index 1e07a90..0000000
Binary files a/winboard/bitmaps/wl72o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/wl72s.bmp b/winboard/bitmaps/wl72s.bmp
deleted file mode 100644 (file)
index 4ea254a..0000000
Binary files a/winboard/bitmaps/wl72s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/wn33o.bmp b/winboard/bitmaps/wn33o.bmp
deleted file mode 100644 (file)
index 3b4aa03..0000000
Binary files a/winboard/bitmaps/wn33o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/wn33s.bmp b/winboard/bitmaps/wn33s.bmp
deleted file mode 100644 (file)
index 83bc6d8..0000000
Binary files a/winboard/bitmaps/wn33s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/wn49o.bmp b/winboard/bitmaps/wn49o.bmp
deleted file mode 100644 (file)
index e89eb7a..0000000
Binary files a/winboard/bitmaps/wn49o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/wn49s.bmp b/winboard/bitmaps/wn49s.bmp
deleted file mode 100644 (file)
index 0ab191a..0000000
Binary files a/winboard/bitmaps/wn49s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/wn72o.bmp b/winboard/bitmaps/wn72o.bmp
deleted file mode 100644 (file)
index 24f2a33..0000000
Binary files a/winboard/bitmaps/wn72o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/wn72s.bmp b/winboard/bitmaps/wn72s.bmp
deleted file mode 100644 (file)
index 7a91eff..0000000
Binary files a/winboard/bitmaps/wn72s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/wolf49o.bmp b/winboard/bitmaps/wolf49o.bmp
deleted file mode 100644 (file)
index efc9df9..0000000
Binary files a/winboard/bitmaps/wolf49o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/wolf49s.bmp b/winboard/bitmaps/wolf49s.bmp
deleted file mode 100644 (file)
index 4797b18..0000000
Binary files a/winboard/bitmaps/wolf49s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/wolf49w.bmp b/winboard/bitmaps/wolf49w.bmp
deleted file mode 100644 (file)
index 9c00fbe..0000000
Binary files a/winboard/bitmaps/wolf49w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/wolf72o.bmp b/winboard/bitmaps/wolf72o.bmp
deleted file mode 100644 (file)
index 4b6bb05..0000000
Binary files a/winboard/bitmaps/wolf72o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/wolf72s.bmp b/winboard/bitmaps/wolf72s.bmp
deleted file mode 100644 (file)
index 2e5c6ce..0000000
Binary files a/winboard/bitmaps/wolf72s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/wolf72w.bmp b/winboard/bitmaps/wolf72w.bmp
deleted file mode 100644 (file)
index a0858ef..0000000
Binary files a/winboard/bitmaps/wolf72w.bmp and /dev/null differ
diff --git a/winboard/bitmaps/wp33o.bmp b/winboard/bitmaps/wp33o.bmp
deleted file mode 100644 (file)
index dc9b09d..0000000
Binary files a/winboard/bitmaps/wp33o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/wp33s.bmp b/winboard/bitmaps/wp33s.bmp
deleted file mode 100644 (file)
index b6a5f76..0000000
Binary files a/winboard/bitmaps/wp33s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/wp49o.bmp b/winboard/bitmaps/wp49o.bmp
deleted file mode 100644 (file)
index f6e90fa..0000000
Binary files a/winboard/bitmaps/wp49o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/wp49s.bmp b/winboard/bitmaps/wp49s.bmp
deleted file mode 100644 (file)
index 88f96aa..0000000
Binary files a/winboard/bitmaps/wp49s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/wp72o.bmp b/winboard/bitmaps/wp72o.bmp
deleted file mode 100644 (file)
index 7c359be..0000000
Binary files a/winboard/bitmaps/wp72o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/wp72s.bmp b/winboard/bitmaps/wp72s.bmp
deleted file mode 100644 (file)
index 933f377..0000000
Binary files a/winboard/bitmaps/wp72s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/ws33o.bmp b/winboard/bitmaps/ws33o.bmp
deleted file mode 100644 (file)
index b158989..0000000
Binary files a/winboard/bitmaps/ws33o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/ws33s.bmp b/winboard/bitmaps/ws33s.bmp
deleted file mode 100644 (file)
index b695313..0000000
Binary files a/winboard/bitmaps/ws33s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/ws49o.bmp b/winboard/bitmaps/ws49o.bmp
deleted file mode 100644 (file)
index fe77467..0000000
Binary files a/winboard/bitmaps/ws49o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/ws49s.bmp b/winboard/bitmaps/ws49s.bmp
deleted file mode 100644 (file)
index 5d2ad69..0000000
Binary files a/winboard/bitmaps/ws49s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/ws72o.bmp b/winboard/bitmaps/ws72o.bmp
deleted file mode 100644 (file)
index 316da61..0000000
Binary files a/winboard/bitmaps/ws72o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/ws72s.bmp b/winboard/bitmaps/ws72s.bmp
deleted file mode 100644 (file)
index 382b4dc..0000000
Binary files a/winboard/bitmaps/ws72s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/zebra49o.bmp b/winboard/bitmaps/zebra49o.bmp
deleted file mode 100644 (file)
index 0608b95..0000000
Binary files a/winboard/bitmaps/zebra49o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/zebra49s.bmp b/winboard/bitmaps/zebra49s.bmp
deleted file mode 100644 (file)
index 303533a..0000000
Binary files a/winboard/bitmaps/zebra49s.bmp and /dev/null differ
diff --git a/winboard/bitmaps/zebra72o.bmp b/winboard/bitmaps/zebra72o.bmp
deleted file mode 100644 (file)
index 963ecb2..0000000
Binary files a/winboard/bitmaps/zebra72o.bmp and /dev/null differ
diff --git a/winboard/bitmaps/zebra72s.bmp b/winboard/bitmaps/zebra72s.bmp
deleted file mode 100644 (file)
index 6446c77..0000000
Binary files a/winboard/bitmaps/zebra72s.bmp and /dev/null differ
diff --git a/winboard/config.h b/winboard/config.h
deleted file mode 100644 (file)
index f415156..0000000
+++ /dev/null
@@ -1,162 +0,0 @@
-/* config.h.in.  Generated automatically from configure.in by autoheader.  */\r
-\r
-\r
-/* Define if you have <sys/wait.h> that is POSIX.1 compatible.  */\r
-/*#undef HAVE_SYS_WAIT_H*/\r
-\r
-/* Define if you need to in order for stat and other things to work.  */\r
-/*#undef _POSIX_SOURCE*/\r
-\r
-/* Define as the return type of signal handlers (int or void).  */\r
-/*#undef RETSIGTYPE*/\r
-\r
-/* Define if you have the ANSI C header files.  */\r
-#define STDC_HEADERS 1\r
-\r
-/* Define if you can safely include both <sys/time.h> and <time.h>.  */\r
-/*#undef TIME_WITH_SYS_TIME*/\r
-\r
-/* Define if lex declares yytext as a char * by default, not a char[].  */\r
-/*#undef YYTEXT_POINTER*/\r
-\r
-/*#define FIRST_PTY_LETTER 'p'*/\r
-\r
-#define HAVE_FCNTL_H 1\r
-\r
-#define HAVE_GETHOSTNAME 0\r
-\r
-#define HAVE_GETTIMEOFDAY 0\r
-\r
-/* Use our own random() defined in winboard.c. */\r
-#define HAVE_RANDOM 0\r
-\r
-#define HAVE_SYS_SOCKET_H 0\r
-\r
-/*#undef IBMRTAIX*/\r
-\r
-#define LAST_PTY_LETTER 'q'\r
-\r
-/* Name of package */\r
-#define PACKAGE "WinBoard"\r
-\r
-/* Define to the address where bug reports for this package should be sent. */\r
-#define PACKAGE_BUGREPORT "bug-xboard@gnu.org"\r
-\r
-/* Define to the full name of this package. */\r
-#define PACKAGE_NAME "WinBoard"\r
-\r
-/* Define to the full name and version of this package. */\r
-#define PACKAGE_STRING "WinBoard 4.9.0.20160402"\r
-\r
-/* Define to the one symbol short name of this package. */\r
-#define PACKAGE_TARNAME "winboard"\r
-\r
-/* Define to the version of this package. */\r
-#define PACKAGE_VERSION "4.9.0.20160402"\r
-\r
-/* Define the Windows-specific FILE version info.  this *MUST* be four comma separated 16-bit integers */\r
-/* remember to not start a number with 0 (octal), dates like 2014,0901 would lead to an error */\r
-#define PACKAGE_FILEVERSION 4,9,2016,402\r
-\r
-#define PTY_ITERATION\r
-\r
-#define PTY_NAME_SPRINTF\r
-\r
-#define PTY_TTY_NAME_SPRINTF\r
-\r
-#define REMOTE_SHELL ""\r
-\r
-/*#undef RTU*/\r
-\r
-/*#undef UNIPLUS*/\r
-\r
-#define USE_PTYS 0\r
-\r
-/*#undef X_WCHAR*/\r
-\r
-#ifndef __BORLANDC__\r
-#define WIN32 1\r
-#else\r
-#define WIN32\r
-#endif\r
-\r
-#define ZIPPY 1\r
-\r
-/* Define if you have the _getpty function.  */\r
-/*#undef HAVE__GETPTY*/\r
-\r
-/* Define if you have the ftime function.  */\r
-#define HAVE_FTIME 1\r
-\r
-/* Define if you have the grantpt function.  */\r
-/*#undef HAVE_GRANTPT*/\r
-\r
-/* Define if you have the rand48 function.  */\r
-/*#undef HAVE_RAND48*/\r
-\r
-/* Define if you have the sysinfo function.  */\r
-/*#undef HAVE_SYSINFO*/\r
-\r
-/* Define if you have the <lan/socket.h> header file.  */\r
-/*#undef HAVE_LAN_SOCKET_H*/\r
-\r
-/* Define if you have the <string.h> header file.  */\r
-#define HAVE_STRING_H 1\r
-\r
-/* Define if you have the <stropts.h> header file.  */\r
-/*#undef HAVE_STROPTS_H*/\r
-\r
-/* Define if you have the <sys/fcntl.h> header file.  */\r
-#define HAVE_SYS_FCNTL_H 0\r
-\r
-/* Define if you have the <sys/systeminfo.h> header file.  */\r
-/*#undef HAVE_SYS_SYSTEMINFO_H*/\r
-\r
-/* Define if you have the <sys/time.h> header file.  */\r
-/*#undef HAVE_SYS_TIME_H*/\r
-\r
-/* Define if you have the <unistd.h> header file.  */\r
-/*#undef HAVE_UNISTD_H*/\r
-\r
-/* Define if you have the i library (-li).  */\r
-/*#undef HAVE_LIBI*/\r
-\r
-/* Define if you have the seq library (-lseq).  */\r
-/*#undef HAVE_LIBSEQ*/\r
-\r
-/*\r
-  Options\r
-  -DEMULATE_RSH -DREMOTE_SHELL=\"\" is necessary on Windows 95, because it\r
-    does not have its own rsh command.  It works better this way on NT too,\r
-    because the NT rsh does not propagate signals to the remote process.\r
-  -DATTENTION is included even though I haven't been able to send signals to\r
-    child processes on Windows, because at least I can send them over rsh to\r
-    Unix programs.  On Windows I send a newline instead, which wakes up the\r
-    chess program if it's polling.  On my GNU Chess port the newline actually \r
-    works even for Move Now.\r
-*/\r
-#define EMULATE_RSH 1\r
-#define ATTENTION 1\r
-\r
-#ifdef __BORLANDC__\r
-#define _strdup(x) strdup(x)\r
-#define STRICT\r
-#define _winmajor 3  /* windows 95 */\r
-#endif\r
-\r
-/* Some definitions required by MSVC 4.1 */ \r
-#ifndef WM_MOUSEWHEEL \r
-#define WM_MOUSEWHEEL 0x020A \r
-#endif \r
-#ifndef SCF_DEFAULT \r
-#define SCF_DEFAULT 0x0000 \r
-#define SCF_ALL 0x0004 \r
-#endif \r
-\r
-#ifdef _MSC_VER\r
-#define snprintf _snprintf\r
-#define inline __inline\r
-#if _MSC_VER < 1500\r
-#define vsnprintf _vsnprintf\r
-#endif\r
-#endif\r
diff --git a/winboard/defaults.h b/winboard/defaults.h
deleted file mode 100644 (file)
index ce6ed8e..0000000
+++ /dev/null
@@ -1,265 +0,0 @@
-/*\r
- * defaults.h -- Default settings for Windows NT front end to XBoard\r
- *\r
- * Copyright 1991 by Digital Equipment Corporation, Maynard,\r
- * Massachusetts.\r
- *\r
- * Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006,\r
- * 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free\r
- * Software Foundation, Inc.\r
- *\r
- * Enhancements Copyright 2005 Alessandro Scotti\r
- *\r
- * The following terms apply to Digital Equipment Corporation's copyright\r
- * interest in XBoard:\r
- * ------------------------------------------------------------------------\r
- * All Rights Reserved\r
- *\r
- * Permission to use, copy, modify, and distribute this software and its\r
- * documentation for any purpose and without fee is hereby granted,\r
- * provided that the above copyright notice appear in all copies and that\r
- * both that copyright notice and this permission notice appear in\r
- * supporting documentation, and that the name of Digital not be\r
- * used in advertising or publicity pertaining to distribution of the\r
- * software without specific, written prior permission.\r
- *\r
- * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING\r
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL\r
- * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR\r
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,\r
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,\r
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS\r
- * SOFTWARE.\r
- * ------------------------------------------------------------------------\r
- *\r
- * The following terms apply to the enhanced version of XBoard\r
- * distributed by the Free Software Foundation:\r
- * ------------------------------------------------------------------------\r
- *\r
- * GNU XBoard is free software: you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation, either version 3 of the License, or (at\r
- * your option) any later version.\r
- *\r
- * GNU XBoard is distributed in the hope that it will be useful, but\r
- * WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
- * General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program. If not, see http://www.gnu.org/licenses/.  *\r
- *\r
- *------------------------------------------------------------------------\r
- ** See the file ChangeLog for a revision history.  */\r
-\r
-/* Static */\r
-#define POSITION_FILT "Position files (*.fen,*.epd,*.pos)\0*.fen;*.epd;*.pos\0All files (*.*)\0*.*\0"\r
-#define GAME_FILT     "Game files (*.pgn,*.gam)\0*.pgn;*.gam\0All files (*.*)\0*.*\0"\r
-#define DIAGRAM_FILT  "bitmap files (*.bmp)\0*.bmp\0All files (*.*)\0*.*\0"\r
-#define SOUND_FILT    "Wave files (*.wav)\0*.wav\0All files (*.*)\0*.*\0"\r
-#define OUTER_MARGIN (tinyLayout == 2 ? 0 : 4)\r
-#define INNER_MARGIN (tinyLayout == 2 ? 0 : 2)\r
-#define MESSAGE_LINE_LEFTMARGIN 2\r
-#define MESSAGE_TEXT_MAX 256\r
-/*#define COLOR_ECHOOFF RGB(192,192,192)*/\r
-#define COLOR_ECHOOFF consoleBackgroundColor\r
-#define WRAP_INDENT 200\r
-\r
-/* Settable */\r
-#define FIRST_CHESS_PROGRAM    ""\r
-#define FIRST_DIRECTORY                "."\r
-#define SECOND_CHESS_PROGRAM   ""\r
-#define SECOND_DIRECTORY       "."\r
-\r
-#define CLOCK_FONT_TINY        "Arial:9.0 b"\r
-#define CLOCK_FONT_TEENY       "Arial:9.0 b"\r
-#define CLOCK_FONT_DINKY       "Arial:10.0 b"\r
-#define CLOCK_FONT_PETITE      "Arial:10.0 b"\r
-#define CLOCK_FONT_SLIM        "Arial:12.0 b"\r
-#define CLOCK_FONT_SMALL       "Arial:14.0 b"\r
-#define CLOCK_FONT_MEDIOCRE    "Arial:14.0 b"\r
-#define CLOCK_FONT_MIDDLING    "Arial:14.0 b"\r
-#define CLOCK_FONT_AVERAGE     "Arial:15.0 b"\r
-#define CLOCK_FONT_MODERATE    "Arial:16.0 b"\r
-#define CLOCK_FONT_MEDIUM      "Arial:16.0 b"\r
-#define CLOCK_FONT_BULKY       "Arial:17.0 b"\r
-#define CLOCK_FONT_LARGE       "Arial:19.0 b"\r
-#define CLOCK_FONT_BIG         "Arial:20.0 b"\r
-#define CLOCK_FONT_HUGE        "Arial:21.0 b"\r
-#define CLOCK_FONT_GIANT       "Arial:22.0 b"\r
-#define CLOCK_FONT_COLOSSAL    "Arial:23.0 b"\r
-#define CLOCK_FONT_TITANIC     "Arial:24.0 b"\r
-\r
-#define MESSAGE_FONT_TINY      "Small Fonts:6.0"\r
-#define MESSAGE_FONT_TEENY     "Small Fonts:6.0"\r
-#define MESSAGE_FONT_DINKY     "Small Fonts:7.0"\r
-#define MESSAGE_FONT_PETITE    "Small Fonts:7.0"\r
-#define MESSAGE_FONT_SLIM      "Arial:8.0 b"\r
-#define MESSAGE_FONT_SMALL     "Arial:9.0 b"\r
-#define MESSAGE_FONT_MEDIOCRE  "Arial:9.0 b"\r
-#define MESSAGE_FONT_MIDDLING  "Arial:9.0 b"\r
-#define MESSAGE_FONT_AVERAGE   "Arial:10.0 b"\r
-#define MESSAGE_FONT_MODERATE  "Arial:10.0 b"\r
-#define MESSAGE_FONT_MEDIUM    "Arial:10.0 b"\r
-#define MESSAGE_FONT_BULKY     "Arial:10.0 b"\r
-#define MESSAGE_FONT_LARGE     "Arial:10.0 b"\r
-#define MESSAGE_FONT_BIG       "Arial:11.0 b"\r
-#define MESSAGE_FONT_HUGE      "Arial:11.0 b"\r
-#define MESSAGE_FONT_GIANT     "Arial:11.0 b"\r
-#define MESSAGE_FONT_COLOSSAL  "Arial:12.0 b"\r
-#define MESSAGE_FONT_TITANIC   "Arial:12.0 b"\r
-\r
-#define COORD_FONT_TINY        "Small Fonts:4.0"\r
-#define COORD_FONT_TEENY       "Small Fonts:4.0"\r
-#define COORD_FONT_DINKY       "Small Fonts:5.0"\r
-#define COORD_FONT_PETITE      "Small Fonts:5.0"\r
-#define COORD_FONT_SLIM        "Small Fonts:6.0"\r
-#define COORD_FONT_SMALL       "Small Fonts:7.0"\r
-#define COORD_FONT_MEDIOCRE    "Small Fonts:7.0"\r
-#define COORD_FONT_MIDDLING    "Small Fonts:7.0"\r
-#define COORD_FONT_AVERAGE     "Arial:7.0 b"\r
-#define COORD_FONT_MODERATE    "Arial:7.0 b"\r
-#define COORD_FONT_MEDIUM      "Arial:7.0 b"\r
-#define COORD_FONT_BULKY       "Arial:7.0 b"\r
-#define COORD_FONT_LARGE       "Arial:7.0 b"\r
-#define COORD_FONT_BIG         "Arial:8.0 b"\r
-#define COORD_FONT_HUGE        "Arial:8.0 b"\r
-#define COORD_FONT_GIANT       "Arial:8.0 b"\r
-#define COORD_FONT_COLOSSAL    "Arial:9.0 b"\r
-#define COORD_FONT_TITANIC     "Arial:9.0 b"\r
-\r
-#define CONSOLE_FONT_TINY      "Courier New:8.0"\r
-#define CONSOLE_FONT_TEENY     "Courier New:8.0"\r
-#define CONSOLE_FONT_DINKY     "Courier New:8.0"\r
-#define CONSOLE_FONT_PETITE    "Courier New:8.0"\r
-#define CONSOLE_FONT_SLIM      "Courier New:8.0"\r
-#define CONSOLE_FONT_SMALL     "Courier New:8.0"\r
-#define CONSOLE_FONT_MEDIOCRE  "Courier New:8.0"\r
-#define CONSOLE_FONT_MIDDLING  "Courier New:8.0"\r
-#define CONSOLE_FONT_AVERAGE   "Courier New:8.0"\r
-#define CONSOLE_FONT_MODERATE  "Courier New:8.0"\r
-#define CONSOLE_FONT_MEDIUM    "Courier New:8.0"\r
-#define CONSOLE_FONT_BULKY     "Courier New:8.0"\r
-#define CONSOLE_FONT_LARGE     "Courier New:8.0"\r
-#define CONSOLE_FONT_BIG       "Courier New:8.0"\r
-#define CONSOLE_FONT_HUGE      "Courier New:8.0"\r
-#define CONSOLE_FONT_GIANT     "Courier New:8.0"\r
-#define CONSOLE_FONT_COLOSSAL  "Courier New:8.0"\r
-#define CONSOLE_FONT_TITANIC   "Courier New:8.0"\r
-\r
-#define COMMENT_FONT_TINY      "Arial:9.0"\r
-#define COMMENT_FONT_TEENY     "Arial:9.0"\r
-#define COMMENT_FONT_DINKY     "Arial:9.0"\r
-#define COMMENT_FONT_PETITE    "Arial:9.0"\r
-#define COMMENT_FONT_SLIM      "Arial:9.0"\r
-#define COMMENT_FONT_SMALL     "Arial:9.0"\r
-#define COMMENT_FONT_MEDIOCRE  "Arial:9.0"\r
-#define COMMENT_FONT_MIDDLING  "Arial:9.0"\r
-#define COMMENT_FONT_AVERAGE   "Arial:9.0"\r
-#define COMMENT_FONT_MODERATE  "Arial:9.0"\r
-#define COMMENT_FONT_MEDIUM    "Arial:9.0"\r
-#define COMMENT_FONT_BULKY     "Arial:9.0"\r
-#define COMMENT_FONT_LARGE     "Arial:9.0"\r
-#define COMMENT_FONT_BIG       "Arial:9.0"\r
-#define COMMENT_FONT_HUGE      "Arial:9.0"\r
-#define COMMENT_FONT_GIANT     "Arial:9.0"\r
-#define COMMENT_FONT_COLOSSAL  "Arial:9.0"\r
-#define COMMENT_FONT_TITANIC   "Arial:9.0"\r
-\r
-#define EDITTAGS_FONT_TINY     "Courier New:8.0"\r
-#define EDITTAGS_FONT_TEENY    "Courier New:8.0"\r
-#define EDITTAGS_FONT_DINKY    "Courier New:8.0"\r
-#define EDITTAGS_FONT_PETITE   "Courier New:8.0"\r
-#define EDITTAGS_FONT_SLIM     "Courier New:8.0"\r
-#define EDITTAGS_FONT_SMALL    "Courier New:8.0"\r
-#define EDITTAGS_FONT_MEDIUM   "Courier New:8.0"\r
-#define EDITTAGS_FONT_MEDIOCRE "Courier New:8.0"\r
-#define EDITTAGS_FONT_MIDDLING "Courier New:8.0"\r
-#define EDITTAGS_FONT_AVERAGE  "Courier New:8.0"\r
-#define EDITTAGS_FONT_MODERATE "Courier New:8.0"\r
-#define EDITTAGS_FONT_BULKY    "Courier New:8.0"\r
-#define EDITTAGS_FONT_LARGE    "Courier New:8.0"\r
-#define EDITTAGS_FONT_BIG      "Courier New:8.0"\r
-#define EDITTAGS_FONT_HUGE     "Courier New:8.0"\r
-#define EDITTAGS_FONT_GIANT    "Courier New:8.0"\r
-#define EDITTAGS_FONT_COLOSSAL "Courier New:8.0"\r
-#define EDITTAGS_FONT_TITANIC  "Courier New:8.0"\r
-\r
-#define MOVEHISTORY_FONT_ALL    "MS Sans Serif:8.0"\r
-#define GAMELIST_FONT_ALL       "MS Sans Serif:8.0"\r
-\r
-#define COLOR_SHOUT            "#209000"\r
-#define COLOR_SSHOUT         "b #289808"\r
-#define COLOR_CHANNEL1         "#2020E0"\r
-#define COLOR_CHANNEL        "b #4040FF"\r
-#define COLOR_KIBITZ         "b #FF00FF"\r
-#define COLOR_TELL           "b #FF0000"\r
-#define COLOR_CHALLENGE     "bi #FF0000"\r
-#define COLOR_REQUEST       "bi #FF0000"\r
-#define COLOR_SEEK             "#980808"\r
-#define COLOR_NORMAL           "#000000"\r
-#define COLOR_NONE             "#000000"\r
-#define COLOR_BKGD             "#FFFFFF"\r
-\r
-#define SOUND_BELL "$"\r
-\r
-#define BUILT_IN_SOUND_NAMES {\\r
-  "Beepbeep", "Ching", "Click", "Cymbal", "Ding", "Drip", \\r
-  "Gong", "Laser", "Move", "Penalty", "Phone", "Pop", "Pop2", \\r
-  "Roar", "Slap", "Squeak", "Swish", "Thud", "Whipcrack", \\r
-  "Alarm", "Challenge", "Channel", "Channel1", "Draw", "Kibitz", \\r
-  "Lose", "Request", "Seek", "Shout", "SShout", "Tell", "Unfinished", \\r
-  "Win", NULL \\r
-}\r
-\r
-#define SETTINGS_FILE         "winboard.ini"\r
-#define DEBUG_FILE            "winboard.debug"\r
-\r
-#define ICS_LOGON             "ics.ini"\r
-\r
-#define ICS_NAMES "\\r
-chessclub.com /icsport=5000 /icshelper=timestamp\n\\r
-freechess.org /icsport=5000 /icshelper=timeseal\n\\r
-global.chessparlor.com /icsport=6000 /icshelper=timeseal\n\\r
-chessanytime.com /icsport=5000\n\\r
-chess.net /icsport=5000\n\\r
-chess.deepnet.com /icsport=5000 /icshelper=timeseal\n\\r
-zics.org /icsport=5000\n\\r
-jogo.cex.org.br /icsport=5000\n\\r
-ajedrez.cec.uchile.cl /icsport=5000\n\\r
-fly.cc.fer.hr /icsport=7890\n\\r
-freechess.nl /icsport=5000 /icshelper=timeseal\n\\r
-jeu.echecs.com /icsport=5000\n\\r
-chess.unix-ag.uni-kl.de /icsport=5000 /icshelper=timeseal\n\\r
-chess.mds.mdh.se /icsport=5000\n\\r
-"\r
-\r
-#define ICS_TEXT_MENU_DEFAULT "\\r
--\n\\r
-&Who,who,0,1\n\\r
-Playe&rs,players,0,1\n\\r
-&Games,games,0,1\n\\r
-&Sought,sought,0,1\n\\r
-| ,none,0,0\n\\r
-Open Chat &Box (name),chat,1,0\n\\r
-&Tell (name),tell,1,0\n\\r
-M&essage (name),message,1,0\n\\r
--\n\\r
-&Finger (name),finger,1,1\n\\r
-&Vars (name),vars,1,1\n\\r
-&Observe (name),observe,1,1\n\\r
-&Match (name),match,1,1\n\\r
-Pl&ay (name),play,1,1\n\\r
-"\r
-\r
-#define FCP_NAMES "\\r
-fmax /fd=Fairy-Max\n\\r
-GNUChess\n\\r
-\"GNUChes5 xboard\"\n\\r
-"\r
-\r
-#define SCP_NAMES "\\r
-fmax /sd=Fairy-Max\n\\r
-GNUChess\n\\r
-\"GNUChes5 xboard\"\n\\r
-"\r
diff --git a/winboard/help.c b/winboard/help.c
deleted file mode 100644 (file)
index e1e0345..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-/*\r
- * help.h\r
- *\r
- * Copyright 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free Software Foundation, Inc.\r
- * ------------------------------------------------------------------------\r
- *\r
- * GNU XBoard is free software: you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation, either version 3 of the License, or (at\r
- * your option) any later version.\r
- *\r
- * GNU XBoard is distributed in the hope that it will be useful, but\r
- * WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
- * General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program. If not, see http://www.gnu.org/licenses/.  *\r
- *\r
- *------------------------------------------------------------------------\r
- ** See the file ChangeLog for a revision history.  */\r
-\r
-/* Windows html help function to avoid having to link with the htmlhlp.lib  */\r
-\r
-#include <windows.h>\r
-#include <stdio.h>\r
-#include "config.h"
-#include "help.h"
-\r
-FILE *debugFP;\r
-\r
-HWND WINAPI\r
-HtmlHelp( HWND hwnd, LPCSTR helpFile, UINT action, DWORD_PTR data )\r
-{\r
-       PROCESS_INFORMATION helpProcInfo;\r
-       STARTUPINFO siStartInfo;\r
-       char buf[100];\r
-       static int status = 0;\r
-       FILE *f;\r
-\r
-       if(status < 0) return NULL;\r
-\r
-       if(!status) {\r
-               f = fopen(helpFile, "r");\r
-               if(f == NULL) {\r
-                       status = -1;\r
-                       return NULL;\r
-               }\r
-               status = 1;\r
-               fclose(f);\r
-       }\r
-\r
-       siStartInfo.cb = sizeof(STARTUPINFO);\r
-       siStartInfo.lpReserved = NULL;\r
-       siStartInfo.lpDesktop = NULL;\r
-       siStartInfo.lpTitle = NULL;\r
-       siStartInfo.dwFlags = STARTF_USESTDHANDLES;\r
-       siStartInfo.cbReserved2 = 0;\r
-       siStartInfo.lpReserved2 = NULL;\r
-       siStartInfo.hStdInput = NULL;\r
-       siStartInfo.hStdOutput = NULL;\r
-       siStartInfo.hStdError = debugFP;\r
-\r
-       snprintf(buf, sizeof(buf)/sizeof(buf[0]),"Hh.exe %s", helpFile);\r
-\r
-       // ignore the other parameters; just start the viewer with the help file\r
-       if(  CreateProcess(NULL,\r
-                          buf,            /* command line */\r
-                          NULL,           /* process security attributes */\r
-                          NULL,           /* primary thread security attrs */\r
-                          FALSE,          /* handles are inherited */\r
-                          DETACHED_PROCESS|CREATE_NEW_PROCESS_GROUP,\r
-                          NULL,           /* use parent's environment */\r
-                          NULL,\r
-                          &siStartInfo,   /* STARTUPINFO pointer */\r
-                          &helpProcInfo)  /* receives PROCESS_INFORMATION */\r
-               ) return hwnd; else return NULL;\r
-}\r
-\r
-//HWND WINAPI\r
-int\r
-MyHelp(HWND hwnd, LPSTR helpFile, UINT action, DWORD_PTR data)\r
-{\r
-       static int status = 0;\r
-       FILE *f;\r
-\r
-       if(status < 0) return 0;\r
-\r
-       if(!status) {\r
-               f = fopen(helpFile, "r");\r
-               if(f == NULL) {\r
-                       status = -1;\r
-                       return 0;\r
-               }\r
-               status = 1;\r
-               fclose(f);\r
-       }\r
-       return WinHelp(hwnd, helpFile, action, data);\r
-}\r
diff --git a/winboard/help.h b/winboard/help.h
deleted file mode 100644 (file)
index 7216018..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifdef VISTA\r
-#include "htmlhelp.h"\r
-#else\r
-  #ifdef _MSC_VER\r
-    #if _MSC_VER <= 1200\r
-      #define DWORD_PTR DWORD\r
-    #endif\r
-  #endif\r
-HWND WINAPI HtmlHelp( HWND hwnd, LPCSTR helpFile, UINT action, DWORD_PTR data );\r
-#endif\r
-int MyHelp(HWND hwnd, LPSTR helpFile, UINT action, DWORD_PTR data);\r
diff --git a/winboard/help/contents.hhc b/winboard/help/contents.hhc
deleted file mode 100644 (file)
index 26885f3..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">\r
-<HTML>\r
-<HEAD>\r
-<meta name="GENERATOR" content="Microsoft&reg; HTML Help Workshop 4.1">\r
-<!-- Sitemap 1.0 -->\r
-</HEAD><BODY>\r
-<OBJECT type="text/site properties">\r
-       <param name="Auto Generated" value="Yes">\r
-</OBJECT>\r
-<UL>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Name" value="WinBoard: Chessboard for Windows">\r
-               <param name="Local" value="html/01.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Name" value="Menus">\r
-               <param name="Local" value="html/02.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Name" value="File Menu">\r
-               <param name="Local" value="html/03.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Name" value="Mode Menu">\r
-               <param name="Local" value="html/04.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Name" value="Action Menu">\r
-               <param name="Local" value="html/05.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Name" value="Step Menu">\r
-               <param name="Local" value="html/06.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Name" value="Help Menu">\r
-               <param name="Local" value="html/08.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Name" value="ICS Interaction Context Menu">\r
-               <param name="Local" value="html/09.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Name" value="Buttons">\r
-               <param name="Local" value="html/10.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Name" value="Command Line Options">\r
-               <param name="Local" value="html/11.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Name" value="UCI Engine Support">\r
-               <param name="Local" value="html/13.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Name" value="Load and Save Options">\r
-               <param name="Local" value="html/15.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Name" value="Adjudication Options">\r
-               <param name="Local" value="html/17.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Name" value="Other Options">\r
-               <param name="Local" value="html/18.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Name" value="Initialization Files">\r
-               <param name="Local" value="html/19.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Name" value="Installing Chess Engines">\r
-               <param name="Local" value="html/20.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Name" value="Firewalls">\r
-               <param name="Local" value="html/21.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Name" value="Limitations and Non-Limitations">\r
-               <param name="Local" value="html/22.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Name" value="Authors and Contributors">\r
-               <param name="Local" value="html/23.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Name" value="Copyright">\r
-               <param name="Local" value="html/24.htm">\r
-               </OBJECT>\r
-</UL>\r
-</BODY></HTML>\r
diff --git a/winboard/help/html/01.htm b/winboard/help/html/01.htm
deleted file mode 100644 (file)
index bcbc933..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
-<HTML>\r
-<HEAD>\r
-<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
-<TITLE>Contents</TITLE>\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
-\r
-\r
-\r
-<H1><A NAME="contents"></A><I>WinBoard</I>: Chessboard for Windows</H1>\r
-\r
-<P><B><font color="#008000">A (not completely) updated description with the release of version 4.5.0.</font></B></P>\r
-\r
-<P><B><font color="#008000">“For the ultimate WinBoard Experience”</font></B></P>\r
-\r
-<P><font color="#ff0000">New features since WinBoard 4.2.7 that are implemented in Alessandro Scotti’s Winboard_x are highlighted in red.</font> <font color="#008000">New features in the WinBoard 4.3.xx series by H.G. Muller are highlighted in green,</font> <font color="#3333ff">that in the unified 4.4 series in blue.</font> <font color="#ff00ff">New additions for series 4.5 are in purple.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="description"></A>Description</B></P>\r
-\r
-<P><I>WinBoard</I> is a graphical user interface for chess. It displays a chessboard on the screen, accepts moves made with the mouse, and loads and saves game files in standard chess notation. WinBoard serves as a front-end for many different services, including:\r
-\r
-<UL>\r
-       <LI><B><I>Chess engines</I></B> that run on your PC. You can play a game against an engine, set up arbitrary positions, force variations, or watch a game between two engines. <I><font color="#008000">Fairy-Max</font></I> is supplied with WinBoard <font color="#008000">4.3.14,</font> and over 100 other free chess engines are available separately. Of these, Crafty is the most popular. See <A HREF="20.htm">Installing Chess Engines</A> for instructions on installing additional chess engines.<BR><BR></LI>\r
-\r
-       <LI><B><I>Chess servers</I> </B>on the Internet. You can play against other Internet Chess Server (ICS) users, observe games they are playing, review games in the ICS libraries, chat, <font color="#3333ff">analyze observed games with a chess program</font>, and more. WinBoard can also be used to run an automated computer player on the ICS, but this feature is for advanced users only and is subject to some caveats; see the separate file zippy.README for information.<BR><BR></LI>\r
-\r
-       <LI><B><I>The Web</I></B> and your own saved games. You can use WinBoard as a helper application to view files in your Web browser or the Explorer. You can use it to keep track of email postal games, browse games off the net, or review games you have saved.</LI>\r
-</UL>\r
-\r
-\r
-\r
-<P><B><A NAME="gettingstarted"></A>Getting Started</B></P>\r
-\r
-<P>WinBoard starts up in one of three major modes: chess engine mode, ICS client mode, or game viewer mode. You cannot change modes while WinBoard is running, but you can access all the game viewer features directly from the other two modes. Also, you can start WinBoard several times to get multiple chessboard windows running in any combination of modes.</P>\r
-\r
-<P>You will usually run WinBoard by choosing an item from the Windows Start menu that runs it in the mode you want. If you just double-click on WinBoard.exe, you get a startup dialog asking which mode you want. If you choose chess engine mode, you can then select from the installed engines; if you choose ICS client mode, you can then select from a list of known chess servers. More advanced users can <A HREF="16.htm#icsnames">customize</A> these lists or type in WinBoard <A HREF="11.htm">command line options</A> directly.</P>\r
-\r
-\r
-\r
-<P>After starting WinBoard, you can make <A NAME="move"></A>moves in several different ways. To move by dragging, press the left mouse button while the cursor is on one of your pieces, move the cursor to another square, and release the button. You can also move by clicking the left mouse button once (press and release) over one of your pieces, moving the cursor to another square, and clicking again. You drop new pieces on the board <font color="#3333FF">when setting up a position</font> by selecting from a context menu. Press the right mouse button over a square to bring up the menu <font color="#3333FF">in Edit Position mode</font>; no menu will come up in modes where dropping a new piece is not permitted. <font color="#3333FF">In games with piece drops, such as bughouse or shogi, the pieces you hold for dropping are displayed next to the board, and you can move them to the drop location the same way you perform normal moves.</font> You can also make moves by typing them in standard algebraic chess notation. Either a dialog box will pop up for you to type into, or in ICS mode, your typing will be redirected into the ICS interaction window.</P>\r
-\r
-<P><font color="#3333FF">When using an engine, the right-most mouse button allows you to see on the board what the engine is thinking about. Pressing the button shows the deepest position of the engine’s most recent analysis. Moving the mouse vertically while keeping this button pressed down will make you do step through the principal variation, and allows you to see how the engine thinks this position will be reached.</font></P>\r
-\r
-<P>When WinBoard<I> </I>is iconized, its <A NAME="icon"></A>icon is a white knight if it is White's turn to move, a black knight if it is Black's turn.</P>\r
-\r
-<font color="#FF00FF">Next to the main window, WinBoard does use many auxiliary windows for dedicated tasks. We mention the Engine-Output window (formerly analysis window) for a better display of the thinking output of engines (which you can then right-click to play out the selected PV in the board window), the Game-History window (where the game is displayed in SAN, and where you can double-click a move to call up the corresponding position in the board window), the Evaluation Graph window (where you see a graph of engine scores vs. move number, and can call up the corresponding position in the board window by clicking a point on the graph), the Comment popup (where you can right-click variation comments to play them out on the main board, or add and edit comments), the Game-List window (where you see an overview of all games in a game file you loaded, and can select a game for loading by clicking on it, and limit the list to games you are interested in by filtering). These auxiliary windows can be opened or closed as the need arises.</font>\r
-\r
-<P><B>Additional Information</B></P>\r
-\r
-<P><A HREF="02.htm">Menus</A></P>\r
-\r
-<P><A HREF="10.htm">Shortcut Buttons</A></P>\r
-\r
-<P><A HREF="11.htm">Command Line Options</A></P>\r
-\r
-<P><A HREF="19.htm">Initialization Files</A></P>\r
-\r
-<P><A HREF="20.htm">Installing Chess Engines</A></P>\r
-\r
-<P><A HREF="21.htm">Firewalls</A></P>\r
-\r
-<P><A HREF="22.htm">Limitations</A></P>\r
-\r
-<P><A HREF="23.htm">Authors</A></P>\r
-\r
-<P><A HREF="24.htm">Copyright</A></P>\r
-\r
-<P>Frequently Asked Questions</P>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/winboard/help/html/02.htm b/winboard/help/html/02.htm
deleted file mode 100644 (file)
index a686984..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
-<HTML>\r
-<HEAD>\r
-<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
-<TITLE>Menus</TITLE>\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
-\r
-<P><font color="#ff00ff">The menus of WinBoard 4.5.0 have been re-organized,\r
-and the new menu structure has not been incorporated in this help file yet.\r
-New menus Edit, View and Engine have been added, and the Step menu has disappeared.\r
-Sorry about this, but we are working on a new way to generate Help files,\r
-and we did not want to delay release of 4.5.0 until that is done.\r
-</P><P>\r
-Items now in the Edit menu previously were in the File menu, (for Copy and Paste items),\r
-or the Step menu (Revert, Truncate, Forward, Backward, etc.).\r
-Items now in the View menu used to be in the Mode Menu, (opening and closing auxiliary windows),\r
-or the Option Menu (for options that determine look, such as Board and Fonts).\r
-Items in the Engine menu where in the Option (settings), \r
-Help (Hint, Book) or Step menu (Retract Move, Move Now).\r
-</font></P>\r
-\r
-<P><B><A NAME="menus"></A>MENUS</B></P>\r
-\r
-<P><A HREF="03.htm">File Menu</A></P>\r
-\r
-<P><A HREF="04.htm">Mode Menu</A></P>\r
-\r
-<P><A HREF="05.htm">Action Menu</A></P>\r
-\r
-<P><A HREF="06.htm">Step Menu</A></P>\r
-\r
-<P><A HREF="07.htm">Options Menu</A></P>\r
-\r
-<P><A HREF="08.htm">Help Menu</A></P>\r
-\r
-<P><A HREF="09.htm">ICS Interaction Context Menu</A></P>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/winboard/help/html/03.htm b/winboard/help/html/03.htm
deleted file mode 100644 (file)
index fb926df..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
-<HTML>\r
-<HEAD>\r
-<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
-<TITLE>File Menu</TITLE>\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
-\r
-\r
-\r
-<P><B><A NAME="filemenu"></A>File Menu</B></P>\r
-\r
-\r
-\r
-<P><B><A NAME="newgame"></A><font color="#ff0000">New Game</font> <font color="#ff0000">(former</font> Reset<font color="#ff0000">)</font></B></P>\r
-\r
-<P>Resets WinBoard and the chess engine (if any) to the beginning of a new chess game. In Internet Chess Server mode, clears the current state of WinBoard, then resynchronizes with ICS by sending a <B>refresh </B>command. If you want to stop playing, observing, or examining a game on ICS, use an appropriate command from the <A HREF="05.htm">Action</A> menu, not <font color="#ff0000">New Game</font>.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="newshufflegame"></A><font color="#008000">New Shuffle Game</font></B></P>\r
-\r
-<P><font color="#ff0000">Brings you to a dialog box where you can enter the number of an opening setup for shuffle variants like FRC, or ask for a random number. After pressing OK, a new game is set up, using this position. The chosen position will continue to be used on every subsequent “New Game”,</font> <font color="#008000">even if you are playing a variant that normally is not shuffled, until you select a new variant through the “New Variant…” menu.</font> <font color="#ff0000">If you enter “-1” for the position number,  new random number is drawn before every game.</font></P>\r
-\r
-<P><font color="#008000">The type of shuffling that is done in reaction to a given position number obeys restrictions that depend on the selected variant. In variants that allow castling, Kings remain on the central files, Rooks in the corners. In games with FRC-style castlings, the King starts between the Rooks, but apart from that they could be anywhere. In games without castling, there are no restrictions on King and Rook placement. Pairs of color-bound pieces (such as Bishops) will be placed on oppositely colored squares. In ICS mode this feature has no effect, as the ICS determines the starting position.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="newvariant"></A><font color="#008000">New Variant</font></B></P>\r
-\r
-<P><font color="#008000">Select a new variant. There are controls to enter a board width, board height and holdings size, but normally you leave them at ‘-1’, which means the default value for the selected variant will be used (e.g. 8x8 for normal Chess, 9x10 for xiangqi, 10x8 for capablanca, holdings for 5 pieces in crazyhouse). You can set a deviating value for each of the three parameters (e.g. to play a crazyhouse version of xiangqi or capablanca you would set the holdings to 6 or 7). If the board width deviates from the default, the game will start with an empty board.</font></P>\r
-\r
-<P><font color="#008000">The variant will remain in force until you select a new one; i.e. subsequent “New Game” commands will start a new game of the same variant. In ICS mode this command has no effect, as the ICS determines which variant will be played.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="loadgame"></A>Load Game</B></P>\r
-\r
-<P>Plays a game from a record file. A popup dialog prompts you for the filename. If the file contains more than one game, a second popup dialog displays a list of games (with information drawn from their PGN tags, if any), and you can select the one you want.</P>\r
-\r
-<P>The game file parser will accept PGN (portable game notation), or in fact almost any file that contains moves in algebraic notation. Notation of the form <I>P@f7</I> is accepted for piece-drops in bughouse games; this is a nonstandard extension to PGN. If the file includes a PGN position (FEN tag), or a WinBoard position diagram bracketed by "[--" and "--]" before the first move, the game starts from that position. Text enclosed in parentheses, square brackets, or curly braces is assumed to be commentary and is displayed in a pop-up window. Any other text in the file is ignored. PGN variations (enclosed in parentheses) <font color="#FF00FF">appear in the comment popup amongst genuine comments; to walk the variation tree, you have to right-click them in this window. This will cause WinBoard to load them as the current line. You can revert to the previous line with the Revert command. (Beware! Currently WinBoard’s PGN parser is limited to 3 levels of nesting in variations.)</font> The nonstandard PGN tag <CODE>[Variant "varname"]</CODE> functions similarly to the <A HREF="18.htm#variant">variant</A> command-line option, allowing games in certain chess variants to be loaded. <font color="#FF00FF">Note that it has to appear before any FEN tag!</font> There is also a heuristic to recognize chess variants from the <CODE>Event</CODE> tag, by looking for the strings that the Internet Chess Servers put there when saving variant ("wild") games.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="loadnextgame"></A>Load Next Game</B></P>\r
-\r
-<P>Loads the next game from the last game record file you loaded.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="loadpreviousgame"></A>Load Previous Game</B></P>\r
-\r
-<P>Loads the previous game from the last game record file you loaded. Not available if the last game was loaded from a pipe.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="reloadsamegame"></A>Reload Same Game</B></P>\r
-\r
-<P>Reloads the last game you loaded. Not available if the last game was loaded from a pipe.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="savegame"></A>Save Game</B></P>\r
-\r
-<P>Appends a record of the current game to a file. A popup dialog prompts you for the filename. If the game did not begin with the standard starting position, the game file includes the starting position used. Game files are saved in the PGN (portable game notation) format, unless the <A HREF="15.htm#oldsavestyle">oldSaveStyle</A> option is True, in which case they are saved in an older format that is specific to WinBoard. Both formats are human-readable, and both can be read back by the Load Game command. Notation of the form <I>P@f7</I> is generated for piece-drops in bughouse games; this is a nonstandard extension to PGN.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="copygametoclipboard"></A>Copy Game To Clipboard</B></P>\r
-\r
-<P>Copies the record of the current game to the Windows clipboard in PGN (portable game notation) format.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="pastegamefromclipboard"></A>Paste Game From Clipboard</B></P>\r
-\r
-<P>Plays a game from the Windows clipboard. See <A HREF="#loadgame">Load Game</A> for a discussion of game file format and parser behavior.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="loadposition"></A>Load Position</B></P>\r
-\r
-<P>Sets up a position from a position file. A popup dialog prompts you for the filename. Position files must be in FEN (Forsythe-Edwards notation), or in the format that the <U>Save Position</U> command writes when <A HREF="15.htm#oldsavestyle">oldSaveStyle</A> is turned on. <font color="#008000">Note that many variants require an extension of the original FEN standard. WinBoard tries to be as universal as possible in understanding FENs when different standards are raound, but has to make a choice when writing them. In FRC is uses Shredder-FEN (Haha castling notation) , but it understands KQkq as the outermost Rook, so it also reads X-FEN. In Crazyhouse / Bughouse it appends the holdings immediately behind the board info between brackets [], but on input it also understands bFEN (which puts it behind a slash / as if it were an extra board rank). It uses a tilde ~ behind a piece to indicate it is really a promoted Pawn (like bFEN). In Shogi the holdings are printed like in Crazyhouse, but promoted pieces are represented by a plus sign + before the letter of the original piece. Letters used for the pieces can be set with the /pieceToCharTable command-line option.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="loadnextposition"></A>Load Next Position</B></P>\r
-\r
-<P>Loads the next position from the last position file you loaded.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="loadpreviousposition"></A>Load Previous Position</B></P>\r
-\r
-<P>Loads the previous position from the last position file you loaded. Not available if the last position was loaded from a pipe.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="reloadsameposition"></A>Reload Same Position</B></P>\r
-\r
-<P>Reloads the last position you loaded. Not available if the last position was loaded from a pipe.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="saveposition"></A>Save Position</B></P>\r
-\r
-<P>Appends a diagram of the current position to a file. A popup dialog prompts you for the filename. Positions are saved in FEN (Forsythe-Edwards notation) format, unless the <A HREF="15.htm#oldsavestyle">oldSaveStyle</A> option is True, in which case they are saved in an older, human-readable format that is specific to WinBoard<I>.</I> Both formats can be read back by the Load Position command; however, currently Load Position can load only the first position in a file.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="save diagram"></A><font color="#008000">Save Diagram</font></B></P>\r
-\r
-<P><font color="#008000">Writes the current board display as a bitmap file. With this command you can use WinBoard as a diagram generator.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="copypositiontoclipboard"></A>Copy Position To Clipboard</B></P>\r
-\r
-<P>Places a diagram of the current position (in Forsythe-Edwards notation) into the Windows clipboard.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="pastepositionfromclipboard"></A>Paste Position From Clipboard</B></P>\r
-\r
-<P>Sets up a position from the Windows clipboard. Position must be in FEN (Forsythe-Edwards notation). Puts WinBoard into <A HREF="04.htm#editgame">Edit Game</A> mode if it was not there already.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="exit"></A>Exit</B></P>\r
-\r
-<P>Exits from WinBoard.</P>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/winboard/help/html/04.htm b/winboard/help/html/04.htm
deleted file mode 100644 (file)
index 48517c0..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
-<HTML>\r
-<HEAD>\r
-<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
-<TITLE>Mode Menu</TITLE>\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
-\r
-\r
-\r
-<P><B><A NAME="modemenu"></A>Mode Menu</B></P>\r
-\r
-\r
-\r
-<P><B><A NAME="machinewhite"></A>Machine White</B></P>\r
-\r
-<P>Forces the chess engine to play white.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="machineblack"></A>Machine Black</B></P>\r
-\r
-<P>Forces the chess engine to play black.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="twomachines"></A>Two Machines</B></P>\r
-\r
-<P>Starts a game between two chess engines.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="machine both"></A><font color="#008000">Machine Both</font></B></P>\r
-\r
-<P><font color="#008000">A single chess engine plays itself. Mainly useful for pseudo-engines, that are in fact communication links to another machine, where you want to observe a game that is being played. (E.g. the gothic-chess.com server). This command is not implemented yet (version 4.3.14).</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="analysismode"></A>Analysis Mode</B></P>\r
-\r
-<P>In this mode, you can make moves for both sides on the board. After each move, the chess engine will think about possible replies and display its analysis in a separate window. Crafty was the first engine to support this feature, but by now there are many others that support it as well. <font color="#ff00ff">With respect to playing variations, the same holds as in Edit Game mode.</font></P>\r
-\r
-<P><font color="#3333ff">From WinBoard 4.4 on this function can also be invoked in ‘zippy mode’, i.e. when you are logged on to an ICS with an engine loaded. In that case it is not your own moves that the engine analyzes, but the moves that are played in a game on the ICS that you are observing. You must start observing before you start the analysis mode! See the file zippy.README for how to connect to an ICS and a chess engine running on your local computer at the same time. (Basically this amounts to adding the /zp command-line option in addition to all options you would need for connecting to the ICS, as well as those needed for running the chess engine.)</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="analyzefile"></A>Analyze File</B></P>\r
-\r
-<P>In this mode, you can load a game from a file, and the chess engine will analyze each move as in Analysis Mode. Crafty was the first engine to support this feature, but by now there are many others that support it as well.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="icsclient"></A>ICS Client</B></P>\r
-\r
-<P>This is the normal mode when WinBoard is connected to a chess server. If you have moved into Edit Game or Edit Position mode, you can select this option to get out.</P>\r
-\r
-<P>When you run WinBoard in ICS mode, it starts up a console window in which you can type commands and receive text responses from the chess server. You can use the standard Windows editing keys to edit your command line before pressing Enter. The console window keeps a history of the last few commands you typed. Press the up-arrow key to go back to a previous command; press the down-arrow key to go forward again to a later command. Press the right mouse button in the output area for a <A HREF="09.htm">context menu</A> of editing commands and ICS command shortcuts.</P>\r
-\r
-<P>Some useful ICS commands include <B>who</B> to see who is logged on, <B>games</B> to see what games are being played, <B>match</B> to challenge another player to a game, <B>observe</B> to observe an ongoing game, <B>examine</B> or <B>smoves</B> to review a recently completed game, and of course <B>help</B>. </P>\r
-\r
-<P>Whenever you ask to observe an ongoing game, review a completed game, or resume an adjourned game, WinBoard retrieves and parses the list of past moves from the ICS, so you can review them with <A HREF="06.htm#forward">Forward</A> and <A HREF="06.htm#backward">Backward</A> or save them with <A HREF="03.htm#savegame">Save Game</A>.</P>\r
-\r
-<P><font color="#FF00FF">In ICS mode a graph of players seeking games can be displayed in stead of the chess board, when you are idle (i.e. not playing, observing or examining). When this feature is enabled, left-clicking in the board area will switch between board and the seek graph. For details on this, see the Seek Graph command.</font></P>\r
-\r
-<P>Some special ICS Client features are activated when you are in <B>examine</B> or <B>bsetup </B>mode on ICS. See the descriptions of the menu commands <A HREF="06.htm#forward">Forward</A>, <A HREF="06.htm#backward">Backward</A>, <A HREF="#pause">Pause</A>, and <A HREF="05.htm#stopexamining">Stop Examining</A> below. You can also issue the ICS position-editing commands with the mouse. Move pieces by dragging with the left mouse button, or by left-clicking once on the starting square and once on the ending square. Press the right mouse button over a square for a context menu that lets you drop a new piece, empty the square, or clear the board. Click on the White or Black clock to set the side to play. You cannot set the side to play or drag pieces to arbitrary squares while examining on ICC, but you can do so in bsetup mode on FICS. You can also make moves by typing them into the ICS window; you may have to do this occasionally if you are playing a chess variant whose rules WinBoard does not understand. <font color="#FF00FF">(But this list is getting shorter, and Fischer Random is not on it anymore; you can enter castling there with the mouse by dragging the King on top of the Rook.)</font></P>\r
-\r
-<P>If you are playing a bughouse game on the ICS, a list of the offboard pieces that each player holds is shown in the window title bar<font color="#3333FF">, and graphically in the holdings area next to the board</font>. To drop an offboard piece<font color="#3333FF">, drag it from the holdings to the board.</font> <font color="#FF00FF">(Pressing the right mouse button over an empty square to bring up a context menu will still work if you have set the /dropMenu option.)</font> To observe your partner's games, start a second copy of WinBoard, log in as a guest, and use the ICS <B>follow</B> or <B>pfollow</B> command in the new window. <font color="#FF00FF">You can also use the Background Observe  or Dual Board features to follow your partner’s game through a single connection on which you are also playing yourself, in the background (peeking at it by pressing the right mouse button), or on side-by-side boards in the board window.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="editgame"></A>Edit Game</B></P>\r
-\r
-<P>Allows you to make moves for both Black and White, and to change moves after backing up with the <A HREF="06.htm#backward">Backward</A> command. The clocks do not run, but you can adjust their reading by clicking on them. A left-click subtracts one minute, a right-click adds one minute.</P>\r
-\r
-<P>In chess engine mode, the chess engine continues to check moves for legality but does not participate in the game. You can bring the chess engine back into the game by selecting <A HREF="#machinewhite">Machine White</A>, <A HREF="#machineblack">Machine Black</A>, or <A HREF="#twomachines">Two Machines</A>.</P>\r
-\r
-<P>In ICS mode, the moves are not sent to the ICS: Edit Game takes WinBoard out of ICS Client mode and lets you edit games locally. If you want to edit a game on ICS in a way that other ICS users can see, use the ICS <B>examine</B> command or start an ICS match against yourself.</P>\r
-\r
-<P><font color="#FF00FF">If you edit an existing game locally by playing new moves while not at the end, you will create a new variation. (New moves at the end will simply be appended to the existing game.) WinBoard will then shelve the original variation (‘main line’) from beyond the point where you played a new move. You can later revert to that main line with the Revert or Annotate commands. This will discard the variation you just entered, and restores the moves of the original main line that you overwrote. This procedure can be applied recursively, so you an make (sub-)variations on variations. Rather than entering variations move by move, you can also recall them from PGN variations in the Comment window, by right-clicking those.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="editposition"></A>Edit Position</B></P>\r
-\r
-<P>Lets you set up an arbitrary board position. Use the left mouse button to drag pieces to new squares, or to delete a piece by dragging it off the board or dragging an empty square on top of it. To drop a new piece on a square, press the right mouse button over the square. This brings up a menu of pieces. Additional menu choices let you empty the square or clear the board. You can set the side to play next by clicking on the White or Black indicator at the top of the screen. <font color="#008000">The pop-up menu also contains options to ‘promote’ or ‘demote’ the piece currently in the square. (In variants like Crazyhouse a piece has a different representation when it is a promoted Pawn rater than an original piece.) This allows you to create some of the not-so-common pieces (e.g. a Unicorn is a promoted King, a Commoner is a demoted King).</font></P>\r
-\r
-<P><font color="#ff0000">In Edit Position mode you can type a FEN in the move type-in box to setup the corresponding position.</font></P>\r
-\r
-<P>Selecting Edit Position causes WinBoard<I> </I>to discard all remembered moves in the current game.</P>\r
-\r
-<P>In ICS mode, change made to the position by Edit Position are not sent to the ICS: Edit Position takes WinBoard out of ICS Client mode and lets you edit positions locally. If you want to edit positions on ICS in a way that other ICS users can see, use the ICS <B>examine</B> command, or start an ICS match against yourself. (See also <A HREF="#icsclient">ICS Client</A> above.)</P>\r
-\r
-\r
-\r
-<P><B><A NAME="showengineoutput"></A><font color="#ff0000">Show Engine Output</font></B></P>\r
-\r
-<P><font color="#ff0000">Open a new window dedicated to showing the thinking output of the engine(s), as controlled by “Show Thinking”.</font> <font color="#008000">In ICS mode kibitzed info of an opponent engine can appear here as well, under control of the /autoKibitz option.</font>\r
-<font color="#FF00FF">Right-clicking a line of thinking output will allow you to step through the PV it contains on the main board, by vertically moving the mouse, keeping the right-button pressed. This also works for PVs kibitzed to you through an ICS.</font></P>\r
-\r
-<P><font color="#FF00FF">WinBoard will display lines of thinking output of the same depth ordered by score, (highest score on top), rather than in the order the engine produced them. Usually this amounts to the same, as a normal engine search will only find new PV (and emit it as thinking output) when it searches a move with a higher score than the previous variation. But when the engine is in multi-variation mode this needs not always be true, and it is more convenient for someone analyzing games to see the moves sorted by score. The order in which the engine found them is only of interest o the engine author, and can still be deduced from the time or node count printed with the line.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="showevaluationgraph"></A><font color="#ff0000">Show Evaluation Graph</font></B></P>\r
-\r
-<P><font color="#ff0000">Open a new window dedicated to displaying a graph, representing the development of the engine score(s) from the current game over time. (Needs “Show Thinking” to be enabled in order to work.) Right-clicking on the graph will take you to the corresponding move in the board display.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="showgamelist"></A>Show Game List</B></P>\r
-\r
-<P>Shows or hides the list of games generated by the last <A HREF="03.htm#loadgame">Load Game</A> command. Which info from the PGN tags is included in the game-description line can be customized. <font color="#ff0000">A 'Filter' field in this window allows you to display only lines that contain a certain string. (E.g. a player name to see only games of that player from a big tournament file.)</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="showmovehistory"></A><font color="#ff0000">Show Move History</font></B></P>\r
-\r
-<P><font color="#ff0000">Open a new window dedicated to showing the game currently in progress. Double-clicking on a move takes you to the corresponding position in the board display.</font></P>\r
-\r
-\r
-\r
-<P><font color="#FF00FF"><B><A NAME="openchatwindow"></A>Open Chat Window</B></font></P>\r
-\r
-<P><font color="#FF00FF">Open a new window that in ICS mode can be used to display messages received from ICS tell commands from a specified ICS handle, from a channel (when you set the handle to the channel number), shouts / c-shouts, or whispers / kibitzes from co-observers of a game (when you set the handle to “”shouts, “c-shouts”, “whisper” or “kibitzes”). You have to press the “Change” button in the chat window to activate the entered handle, or type <Enter>. Typing into the bottom field of the window will send tell messages to the handle or channel, or whispers to co-observers. You can open up to five chat windows. Messages that are diverted to such a chat window will not appear in the ICS interaction window. A window dedicated to shouts will also capture c-shouts (if there is no dedicated c-shout box) and ‘It’ messages, recognizable on the type of bracketing used around the shouter name ( [ ], ( ) or < >, respectively).</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="training"></A>Training</B></P>\r
-\r
-<P>Training mode lets you interactively guess the moves of a game for one of the players. While in Training mode, the navigation buttons are disabled. You guess the next move of the game by playing the move on the board (or using the <A HREF="06.htm#typeinmove">Type In Move</A> command). If the move played matches the next move of the game, the move is accepted and the opponent’s response is autoplayed.  If the move played is incorrect, an error message is displayed. </P>\r
-\r
-\r
-\r
-<P><B><A NAME="edittags"></A>Edit Tags</B></P>\r
-\r
-<P>Lets you edit the PGN (portable game notation) tags for the current game. After editing, the tags must still conform to the PGN tag syntax:</P>\r
-\r
-<PRE><CODE>\r
-&lt;tag-section&gt; ::= &lt;tag-pair&gt; &lt;tag-section&gt;\r
-                  &lt;empty&gt;\r
-&lt;tag-pair&gt;    ::= [ &lt;tag-name&gt; &lt;tag-value&gt; ]\r
-&lt;tag-name&gt;    ::= &lt;identifier&gt;\r
-&lt;tag-value&gt;   ::= &lt;string&gt;</CODE></PRE>\r
-\r
-<P>See the PGN Standard for full details. Here is an example:</P>\r
-\r
-<PRE><CODE>\r
-[Event "Portoroz Interzonal"]\r
-[Site "Portoroz, Yugoslavia"]\r
-[Date "1958.08.16"]\r
-[Round "8"]\r
-[White "Robert J. Fischer"]\r
-[Black "Bent Larsen"]\r
-[Result "1-0"]</CODE></PRE>\r
-\r
-<P>Any characters that do not match this syntax are silently ignored. Note that the PGN standard requires all games to have at least the seven tags shown above. Any that you omit will be filled in by WinBoard with <CODE>"?"</CODE> (unknown value) or <CODE>"-"</CODE> (inapplicable value).</P>\r
-\r
-\r
-\r
-<P><B><A NAME="editcomment"></A>Edit Comment</B></P>\r
-\r
-<P>Adds or modifies a comment on the current position. Comments are saved by <A HREF="03.htm#savegame">Save Game</A> and are displayed by <A HREF="03.htm#loadgame">Load Game</A>, <A HREF="06.htm#forward">Forward</A>, and <A HREF="06.htm#backward">Backward</A>.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="enterusername"></A><font color="#008000">Enter Username</font></B></P>\r
-\r
-<P><font color="#008000">Allows you to type the name of the human player, which will appear in the PGN header and in the window title.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="pause"></A>Pause</B></P>\r
-\r
-<P>Pauses updates to the board, and if you are playing against a local chess engine, also pauses your clock. To continue, select Pause again, and the display will automatically update to the latest position. The <B>P</B> (or <B>C</B>) button is equivalent to selecting Pause.</P>\r
-\r
-<P>If you select Pause when you are playing against a chess engine and it is not your move, the chess engine’s clock will continue to run and it will eventually make a move, at which point both clocks will stop. Since board updates are paused, however, you will not see the move until you exit from Pause mode (or select <A HREF="06.htm#forward">Forward</A>). This behavior is meant to simulate adjournment with a sealed move.</P>\r
-\r
-<P>If you select Pause while you are in <B>examine</B> mode on ICS, you can step backward and forward in the current history of the examined game without affecting the other examiners or observers. Select Pause again to reconnect yourself to the current state of the game on ICS.</P>\r
-\r
-<P>If you select Pause while you are loading a game, the game stops loading. You can load more moves one at a time by selecting <A HREF="06.htm#forward">Forward</A>, or resume automatic loading by selecting Pause again.</P>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/winboard/help/html/05.htm b/winboard/help/html/05.htm
deleted file mode 100644 (file)
index 450ef61..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
-<HTML>\r
-<HEAD>\r
-<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
-<TITLE>Action Menu</TITLE>\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
-\r
-\r
-\r
-<P><B><A NAME="actionmenu"></A>Action Menu</B></P>\r
-\r
-<P>Most of these commands are available in chess server mode only.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="accept"></A>Accept</B></P>\r
-\r
-<P>Accepts a pending match offer. If there is more than one offer pending, you will have to type in a more specific command instead of using this menu choice.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="decline"></A>Decline</B></P>\r
-\r
-<P>Declines a pending offer (match, draw, etc.). If there is more than one offer pending, you will have to type in a more specific command instead of using this menu choice.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="rematch"></A>Rematch</B></P>\r
-\r
-<P>Issues the ICS <B>rematch</B> command, which asks for another game against your last opponent with the same time control and rule set.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="callflag"></A>Call Flag</B></P>\r
-\r
-<P>Calls your opponent's flag, claiming a win on time, or claiming a draw if you are both out of time. You can also call your opponent's flag by clicking on his clock.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="draw"></A>Draw</B></P>\r
-\r
-<P>Offers a draw to your opponent, accepts a pending draw offer from your opponent, or claims a draw by repetition or the 50-move rule, as appropriate.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="adjourn"></A>Adjourn</B></P>\r
-\r
-<P>Asks your opponent to agree to adjourning the current game, or agrees to a pending adjournment offer from your opponent. You continue an adjourned ICS game by challenging the same player again with the ICS <B>match</B> command.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="abort"></A>Abort</B></P>\r
-\r
-<P>Asks your opponent to agree to abort the current game, or agrees to a pending abort offer from your opponent. An aborted ICS game ends immediately without affecting either player's rating.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="resign"></A>Resign</B></P>\r
-\r
-<P>Resigns the game to your opponent.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="stopobserving"></A>Stop Observing</B></P>\r
-\r
-<P>Ends your participation in observing a game, by issuing the ICS <B>unobserve</B> command.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="stopexamining"></A>Stop Examining</B></P>\r
-\r
-<P>Ends your participation in observing a game, by issuing the ICS <B>unobserve</B> command.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="uploadtoexamine"></A><font color="#ff00ff">Upload To Examine</font></B></P>\r
-\r
-<P><font color="#ff00ff">Starts an examined game on the ICS, and uploads the game currently loaded in WinBoard (by pasting it, or loading from a file) to it.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="adjudicatetowhite"></A><font color="#ff0000">Adjudicate To White</font></B></P>\r
-\r
-<P><font color="#ff0000">End the current game and stop participating engine. The result will appear in the PGN as a win for white.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="adjudicatetoblack"></A><font color="#ff0000">Adjudicate To Black</font></B></P>\r
-\r
-<P><font color="#ff0000">Same as above, but game will appear as a win for black.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="adjudicatedraw"></A><font color="#ff0000">Adjudicate Draw</font></B></P>\r
-\r
-<P><font color="#ff0000">Same as above, but game will appear as a draw.</font></P>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/winboard/help/html/06.htm b/winboard/help/html/06.htm
deleted file mode 100644 (file)
index 433b032..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
-<HTML>\r
-<HEAD>\r
-<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
-<TITLE>Step Menu</TITLE>\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
-\r
-\r
-\r
-<P><B><A NAME="stepmenu"></A>Step Menu</B></P>\r
-\r
-\r
-\r
-<P><B><A NAME="typeinmove"></A>Type In Move</B></P>\r
-\r
-<P>Pops up a dialog box, into which you can type moves in standard algebraic chess notation. (You can also get this dialog box by simply starting to type over the chessboard, except in ICS mode, where such typing is redirected into the ICS interaction window.) <font color="#FF00FF">Typing a number will have the same effect as stepping forward or backward to the position after that move. In Edit Position mode you can also type a FEN to set up the position.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="backward"></A>Backward</B></P>\r
-\r
-<P>Steps backward through a series of remembered moves. The <B>&lt;</B> button is equivalent to selecting Backward<font color="#3333ff">, as is turning the mouse wheel towards you</font>. In most modes, Backward only lets you look back at old positions; it does not retract moves. This is the case if you are playing against a chess engine, playing or observing a game on the ICS, or loading a game. If you select Backward in any of these situations, you will not be allowed to make a different move. Use <A HREF="#retractmove">Retract Move</A> or <A HREF="04.htm#editgame">Edit Game</A> if you want to change past moves.</P>\r
-\r
-<P>If you are examining a game on the ICS, the behavior of Backward depends on whether WinBoard<I> </I>is in <A HREF="04.htm#pause">Pause</A> mode. If Pause mode is off, Backward issues the ICS command<B> backward</B>, which backs up everyone's view of the game and allows you to make a different move. If Pause mode is on, Backward only backs up your local view.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="forward"></A>Forward</B></P>\r
-\r
-<P>Steps forward through a series of remembered moves (undoing the effect of <A HREF="#backward">Backward</A>) or through a game file. The <B>&gt;</B> button is equivalent<font color="#3333ff">, as is turning the mouse wheel away from you</font>.</P>\r
-\r
-<P>If you are examining a game on the ICS, the behavior of Forward depends on whether WinBoard<I> </I>is in <A HREF="04.htm#pause">Pause</A> mode. If Pause mode is off, Forward issues the ICS command<B> forward</B>, which moves everyone's view of the game forward along the current line. If Pause mode is on, Forward only moves your local view forward, and it will not go past the position the game was in when you paused.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="backtostart"></A>Back to Start</B></P>\r
-\r
-<P>Jumps backward to the first remembered position in the game. The <B>&lt;&lt; </B>button is equivalent.</P>\r
-\r
-<P>In most modes, Back to Start only lets you look back at old positions; it does not retract moves. This is the case if you are playing against a chess engine, playing or observing a game on the ICS, or loading a game. If you select Back to Start in any of these situations, you will not be allowed to make a different move. Use <A HREF="#retractmove">Retract Move</A> or <A HREF="04.htm#editgame">Edit Game</A> if you want to change past moves; or use <A HREF="03.htm#newgame">New Game</A> to start a new game.</P>\r
-\r
-<P>If you are examining a game on the ICS, the behavior of Back to Start depends on whether WinBoard<I> </I>is in <A HREF="04.htm#pause">Pause</A> mode. If Pause mode is off, Backward issues the ICS command <B>backward 999999</B>, which backs up everyone's view of the game to the start and allows you to make different moves. If Pause mode is on, Back to Start only backs up your local view.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="forwardtoend"></A>Forward to End</B></P>\r
-\r
-<P>Jumps forward to the last position in the game. The <B>&gt;&gt;</B> button is equivalent.</P>\r
-\r
-<P>If you are examining a game on the ICS, the behavior of Forward to End depends on whether WinBoard<I> </I>is in <A HREF="04.htm#pause">Pause</A> mode. If Pause mode is off, Forward to End issues the ICS command <B>forward 999999</B>, which moves everyone's view of the game forward to the end of the current line. If Pause mode is on, Forward to End only moves your local view forward, and it will not go past the position the game was in when you paused.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="revert"></A>Revert</B></P>\r
-\r
-<P>If you are examining a game on the ICS, issues the ICS command <B>revert</B>.\r
-<font color="#3333FF">In local mode, when you were editing or analyzing a game, and have been entering a number of moves by hand, starting from a position not at the end of the game, the revert command restores the game to the variation you started from. This can be applied recursively, so that you can analyze variations on variations; each time you create a new variation by entering an alternative move, the current variation will be shelved. Revert allows you to return to the most recently shelved variation.</font></P>\r
-\r
-<P><font color="#FF00FF"><B><A NAME="annotate"></A>Annotate</B></font></P>\r
-\r
-<P><font color="#FF00FF">Similar to the <A HREF="#revert">Revert</A> command, but in local mode it will add the variation you are abandoning as a comment to the move where it first deviated, in PGN variation format (i.e. in parentheses). You can right-click such variation comments to recall them.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="truncategame"></A>Truncate Game</B></P>\r
-\r
-<P>Discards all remembered moves of the game beyond the current position. Puts WinBoard into <A HREF="04.htm#editgame">Edit Game</A> mode if it was not there already.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="movenow"></A>Move Now</B></P>\r
-\r
-<P>Forces the chess engine to move immediately. May not work with all chess engines.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="retractmove"></A>Retract Move</B></P>\r
-\r
-<P>Retracts your last move.</P>\r
-\r
-<P>In chess engine mode, you can do this only after the chess engine has replied to your move. If the chess engine is still thinking, use <A HREF="#movenow">Move Now</A> first.</P>\r
-\r
-<P>In ICS mode, Retract Move issues the command <B>takeback 1 </B>or <B>takeback 2</B>, depending on whether it is your opponent's move or yours.</P>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/winboard/help/html/07.htm b/winboard/help/html/07.htm
deleted file mode 100644 (file)
index 7aa3b04..0000000
+++ /dev/null
@@ -1,452 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
-<HTML>\r
-<HEAD>\r
-<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
-<TITLE>Options Menu</TITLE>\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
-\r
-\r
-\r
-<P><B><A NAME="optionsmenu"></A>Options Menu</B></P>\r
-\r
-\r
-\r
-<P><B><A NAME="flipview"></A><U>Flip View</U></B></P>\r
-\r
-<P>Inverts your view of the chessboard.</P>\r
-\r
-<P>If you are playing a game on the ICS, the board is always oriented at the start of the game so that your pawns move from the bottom of the window towards the top. Otherwise, the starting position is determined by the <A HREF="16.htm#flipviewoption">flipView</A> command line option.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="swap clocks"></A><font color="#008000"><U>Swap Clocks</U></font></B></P>\r
-\r
-<P><font color="#008000">Interchanges the position of the white and black clocks on the screen. Intended for manually-operated computer-computer games, where the monitor is standing to the side of the playing board, to make sure that the operator sees the time of his own machine on his side of the table. Note that it is possible to adjust the clocks in steps of one minute, by left- (decrement) or right-clicking (increment) it with the mouse in “Edit Game” mode. (Clicking the clocks in other modes is interpreted as claiming the flag.)</font></P>\r
-\r
-<P><B><A NAME="mute"></A><font color="#3333FF"><U>Mute all Sounds</U></font></B></P>\r
-<P><font color="#3333FF">Provides a quick way to switch on or off all sounds, without affecting the settings for them.\r
-</font></P>\r
-\r
-<P><B><U><A NAME="generaloptions"></A>General</U></B></P>\r
-\r
-\r
-\r
-<P><B><A NAME="alwaysontop"></A>Always On Top</B></P>\r
-\r
-<P>If this option is on, WinBoard sets its chessboard to be a <I>topmost</I> window, meaning that it always appears on top of all ordinary windows on the screen.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="alwaysqueen"></A>Always Queen</B></P>\r
-\r
-<P>If Always Queen is off, WinBoard brings up a dialog box whenever you move a pawn to the last rank, asking what piece you want to promote it to. If the option is on, your pawns are always promoted to queens. Your opponent can still underpromote, however.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="animatedragging"></A>Animate Dragging</B></P>\r
-\r
-<P>If Animate Dragging is on while you are dragging a piece with the mouse, an image of the piece follows the mouse cursor. If Animate Dragging is off, there is no visual feedback while you are</P>\r
-\r
-<P>dragging a piece, but if Animate Moving is on, the move will be animated when it is complete.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="animatemoving"></A>Animate Moving</B></P>\r
-\r
-<P>If Animate Moving is on, all piece moves are animated.  An image of the piece is shown moving from the old square to the new square when the move is completed (unless the move was already animated by Animate Dragging). If Animate Moving is off, a moved piece instantly disappears from its old square and reappears on its new square when the move is complete.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="autoflagcmd"></A>Auto Flag</B></P>\r
-\r
-<P>If this option is on and one player runs out of time before the other, WinBoard will automatically call his flag, claiming a win on time. In ICS mode, Auto Flag will only call your opponent's flag, not yours, and the ICS may award you a draw instead of a win if you have insufficient mating material. On most chess servers, you can now do<B> set autoflag 1 </B>instead and have the server call the flag. In local chess engine mode, WinBoard may call either player's flag and will not take material into account.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="autoflipview"></A>Auto Flip View</B></P>\r
-\r
-<P>If this option is on when you start a game, the board will be automatically oriented so that your pawns move from the bottom of the window towards the top.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="autoraiseboard"></A>Auto Raise Board</B></P>\r
-\r
-<P>If this option is on, whenever a new game begins, the chessboard window will be deiconized (if necessary) and raised to the top of the stack of windows on your screen.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="blindfoldcmd"></A>Blindfold</B></P>\r
-\r
-<P>If Blindfold is on, WinBoard displays a blank board. Moves can still be entered with the mouse, either by dragging the (invisible) piece or clicking the starting and ending square. You can also enter your move by typing it on the keyboard.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="highlightdragging"></A>Highlight Dragging</B></P>\r
-\r
-<P>If Highlight Dragging is on while you are dragging a piece with the mouse, the starting square and the square that the mouse cursor is over are highlighted. This option works even if Animate Dragging is off. <font color="#FF00FF">When the option /showTargetSquares is set, WinBoard will also indicate all squares where a piece can legally move to as soon as you lift it.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="extendedpgninfo"></A><font color="#ff0000">Extended PGN Info</font></B></P>\r
-\r
-<P><font color="#ff0000">The PGN will contain the engine search depth, score and time for each move where the depth is non-zero, as a comment behind the move if this option is on. Works only when “Show Thinking” is enabled. The recorded time is the time reported by the engine.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="extrainfoinmovehistory"></A><font color="#ff0000">Extra Info In Move History</font></B></P>\r
-\r
-<P><font color="#ff0000">Same as above, but in move-history window.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="highlightlastmove"></A>Highlight Last Move</B></P>\r
-\r
-<P>If Highlight Last Move is on, after a move is made, the starting and ending squares remain highlighted. In addition, after you use <A HREF="06.htm#backward">Backward</A> or <A HREF="06.htm#backtostart">Back to Start</A>, the starting and ending squares of the last move to be <I>unmade</I> are highlighted.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="periodicupdatescmd"></A>Periodic Updates</B></P>\r
-\r
-<P>If Periodic Updates is on, the Analysis window is updated every two seconds. If not, it is updated only when the best move found changes. The Analysis window currently works only with Crafty, and Periodic Updates may not work with all versions of Crafty.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="pondernextmovecmd"></A>Ponder Next Move</B></P>\r
-\r
-<P>If this option is off, the chess engine will think only when it is on move. If the option is on, the engine will also think while waiting for you to make your move.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="popupexitmessagecmd"></A>Popup Exit Message</B></P>\r
-\r
-<P>If this option is on, when WinBoard wants to display a message just before exiting, it brings up a modal dialog box and waits for you to click OK before exiting. If the option is off, WinBoard prints exits immediately without showing the message. If <A HREF="15.htm#debugmode">debugMode</A> is on, however, the message will appear in the debug log.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="popupmoveerrorscmd"></A>Popup Move Errors</B></P>\r
-\r
-<P>If this option is off, when you make an error in moving (such as attempting an illegal move or moving the wrong color piece), the error message is displayed in the message area. If the option is on, move errors are displayed in small popup windows like other errors. You can dismiss an error popup either by clicking its OK button or by clicking anywhere on the board, including downclicking to start a move.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="showbuttonbarcmd"></A>Show Button Bar</B></P>\r
-\r
-<P>If Show Button Bar is on, WinBoard displays on-screen <A HREF="10.htm">buttons</A> to step forward, backward, or pause the game. If it is off, the buttons are hidden, making the message line wider.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="showcoordscmd"></A>Show Coords</B></P>\r
-\r
-<P>If Show Coords is on, WinBoard displays algebraic coordinates along the board's left and bottom edges. </P>\r
-\r
-\r
-\r
-<P><B><A NAME="showthinkingcmd"></A>Show Thinking</B></P>\r
-\r
-<P>If this option is set, WinBoard displays the chess engine’s current search depth and its notion of the score and best line of play from the current position as it is thinking. The score indicates how many pawns ahead (or if negative, behind) the engine thinks it is. In matches between two machines, the score is prefixed by W or B to indicate whether it is showing White's thinking or Black's.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="testlegalitycmd"></A>Test Legality</B></P>\r
-\r
-<P>If Test Legality is on, WinBoard tests whether the moves you enter with the mouse or read from game files are legal, and displays an error if they are not. Turn this option off if you are playing a chess variant that WinBoard does not understand. (Bughouse, suicide, and wild variants where the king may castle after starting on the <B>d</B> file are generally supported with Test Legality on. <font color="#008000">The same holds for variants with non-FIDE pieces, like shatranj, xangqi, shogi, gothic, capablanca, courier, knightmate: WinBoard knows how all pieces occurring in those variants move. Falcon, cylinder and berolina are only partly supported, though, and the latter two should definitely be played with legality testing off, and falcon uses a wildcard piece for the Falcons, so it considers any move of them legal, but might miss checkmates that involve a Falcon. So you should not play it with claim verification switched on.)</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="hidethinkingfromhuman"></A><font color="#ff0000">Hide Thinking From Human</font></B></P>\r
-\r
-<P><font color="#ff0000">An alternative to suppressing the Thinking Output in the display above the board by switching “Show Thinking” off, but doing it in a way that still allows the extended PGN info to be recorded.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="highlightmovewitharrow"></A><font color="#ff0000">Highlight Move With Arrow</font></B></P>\r
-\r
-<P><font color="#ff0000">A big, fat arrow is drawn between the start and target field of the last move, so you cannot possibly miss it.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="displaylogos"></A><font color="#FF00FF">Display Logos</font></B></P>\r
-\r
-<P><font color="#ff00ff">Controls the display of engine, user or ICS logos above the board, next to the clocks, by switching on or off the option /autoLogo.</font></P>\r
-\r
-\r
-\r
-<P><B><U><A NAME="boardoptions"></A>Board</U></B></P>\r
-\r
-\r
-\r
-<P><B><A NAME="boardsizecmd"></A>Board Size</B></P>\r
-\r
-<P>Determines how large the board will be and what fonts and piece bitmaps will be used. On a Titanic board the piece bitmaps are 129x129 pixels, on Colossal 116x116, Giant 108x108, Huge 95x95, Big 87x87, Large 80x80, Bulky 72x72, Medium 64x64, Moderate 58x58, Average 54x54, Middling 49x49, Mediocre 45x45, Small 40x40, Slim 37x37, Petite 33x33, Dinky 29x29, Teeny 25x25, and Tiny 21x21. The smaller boards have no system menu, but you can minimize or close them from the File menu.</P>\r
-\r
-<P>You can also change the board size by dragging the window edges or corners with the mouse. The board will snap to the largest size that fits into the area you outline.</P>\r
-\r
-<P><font color="#008000">Note that only sizes Bulky, Middling and to a lesser extent Petite have built-in bitmaps for the non-FIDE- pieces. Archbishop, Chancellor and the wildcard Lance exist in all sizes from Petite to Bulky, though. In size Moderate, variant shogi uses the traditional Japanese piece representation.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="boardcolors"></A>Board Colors</B></P>\r
-\r
-<P>Lets you change the colors WinBoard is using to draw the board and pieces.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="allwhite"></A><font color="#008000">All White</font></B></P>\r
-\r
-<P><font color="#008000">Uses the representation of the white pieces (a filled-in black outline) also for the black pieces (where you can fill them with another color to distinguish them). If you do not choose a very dark color for the black pieces, they look very ugly without outline, and using this option can fix that.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="flipblack"></A><font color="#008000">Flip Black</font></B></P>\r
-\r
-<P><font color="#008000">Displays the black pieces upside down (or the white pieces in “Flip View”). This is useful in Shogi, when you want to use the traditional Japanese representation of the pieces.</font></P>\r
-\r
-\r
-\r
-<P><B><font color="#ff0000"><U><A NAME="adjudications"></A>Adjudications</U></font></B></P>\r
-\r
-\r
-\r
-<P><font color="#ff0000"><B><A NAME="pondernextmove"></A>Ponder Next Move,<SUP> <A NAME="showthinking"></A></SUP>Show Thinking, <A NAME="hidethinkingfromhuman"></A>Hide Thinking from Human and <A NAME="periodicupdates"></A>Periodic Updates</B></font></P>\r
-\r
-<P><font color="#ff0000">Duplicates of the controls in the “General” option menu.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="adjudicatedrawmoves"></A><font color="#ff0000">Adjudicate Draw Moves</font></B></P>\r
-\r
-<P><font color="#ff0000">Adjudicate a draw after the given number of moves, to prevent games from dragging on forever if two engines in a dead-drawn position, conspire to avoid 50-move draws. This and the folowing options are only active in “Two Machines” mode.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="adjudicatelossthreshold"></A><font color="#ff0000">Adjudicate Loss Threshold</font></B></P>\r
-\r
-<P><font color="#ff0000">Adjudicate the game as a loss when both engines agree that the (negative) score is  below the given threshold for the duration of 6 consecutive plies.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="verifyclaims"></A><font color="#008000">Verify Claims</font></B></P>\r
-\r
-<P><font color="#008000">Verify result claims made by engines when they terminate the game. If needed, correct the results to a loss for the engine making the false claim. Needs “Test Legality” to be on in order to work.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="detectmates"></A><font color="#008000">Detect Mates</font></B></P>\r
-\r
-<P><font color="#008000">Let WinBoard detect checkmate and stalemate, even before the engine gets the chance to claim it. Useful with buggy engines, that exit without a claim, or just hang. Needs “Test Legality” to be on in order to work.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="drawifinsufficientmaterial"></A><font color="#008000">Draw If Insufficient Material</font></B></P>\r
-\r
-<P><font color="#008000">If this option is on, WinBoard will recognize KBKB positions with equally colored Bishops, KBK, KNK, and KK positions as draws, even before the engine can claim them. Needs “Test Legality” to be on in order to work.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="adjudicatetrivialdraws"></A><font color="#008000">Adjudicate Trivial Draws</font></B></P>\r
-\r
-<P><font color="#008000">If this option is on, KBKB (with B on unlike color), KBKN, KNKN, KNNK, KRKR and KQKQ positions will be adjudicated draw after 6 ply. For KQKQ this is not really sound, and in the future it might be taken out of this option. But as long as tablebase adjudications are not implemented, it seems best to group this end-game with the trivial draws. Needs “Test Legality” to be on in order to work.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="n-moverule"></A><font color="#008000">N-Move Rule</font></B></P>\r
-\r
-<P><font color="#008000">Here you can set the number of reversible moves (non-pawn, non-capture) after which WinBoard should adjudicate a game as draw. Engine draw claims are always consider ed valid after 50 moves (in the context of “Verify Claims”), but you can set a different value here to either give the engine more leeway if it wants to play on, or test its claiming capabilities, or set it to a smaller value if you are impatient.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="n-foldrepetitionrule"></A><font color="#008000">N-Fold Repetition Rule</font></B></P>\r
-\r
-<P><font color="#008000">Here you can set the number of repetitions of the same position that should occur in order for WinBoard to adjudicate the game as draw. Engine draw claims are always consider ed valid after 3 repetitions (in the context of “Verify Claims”) , but you can set a different value here to either give the engine more leeway if it wants to play on, or test its claiming capabilities, or set it to 2 if you are impatient. (Do not set it to 1!)</font></P>\r
-\r
-\r
-\r
-<P><B><font color="#ff0000"><U><A NAME="commonsettings"></A>Common Engine Settings</U></font></B></P>\r
-\r
-\r
-\r
-<P><B><A NAME="polyglotdirectory"></A><font color="#ff0000">Polyglot Directory</font></B></P>\r
-\r
-<P><font color="#ff0000">If WinBoard knows where to find Polyglot, you can install UCI engines as if they were WinBoard engines, and WinBoard will automatically invoke Polyglot as an adapter to run them.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="hashsize"></A><font color="#ff0000">Hash Size, <A NAME="egtbpath"></A>EGTB Path, <A NAME="egtbcachesize"></A>EGTB Cache Size, <A NAME="openingbook"></A>Opening Book, <A NAME="number of cpus"></A>Number of CPUs</B></font></P>\r
-\r
-<P><font color="#ff0000">These are options that UCI engines expect to be specified.</font> <font color="#3333ff">WinBoard protocol now also allows native WinBoard engines to request similar information, so it might be used for these engines as well. The memory size specified by the WinBoard-protocol ‘memory’ command is the sum of the hash and EGTB cache sizes. The specified opening book, when enabled through the ‘Use Book’ check box, will be used as GUI book for engines that do not have their own book (as indicated by the check boxes). It must be a book in Polyglot format.</font></P>\r
-\r
-\r
-<P><font color="#3333ff"><A NAME="enginesettings"></A><B>Engine #1 Settings</B>, <B>Engine #2 Settings</B></font></P>\r
-\r
-<P><font color="#3333ff">This pops up a dialog that allows the user to set engine-defined options of the mentioned engine (if it is in use). What is in the dialog is entirely determined by the engine. Generally, any changes you make to the controls are only sent to the engine after you press “OK”. An exception are engine-defined push buttons; the corresponding signal is sent to the engine immediately when you push those. To see the options of UCI engines, you need a Polyglot adapter that supports the recent WB-protocol extensions.</font></P>\r
-\r
-\r
-\r
-<P><B><U><A NAME="icsoptions"></A>ICS</U></B></P>\r
-\r
-\r
-\r
-<P><B><A NAME="autocommentcmd"></A>Auto Comment</B></P>\r
-\r
-<P>If Auto Comment is on, any remarks made on ICS while you are observing or playing a game are recorded as a comment on the current move. This includes remarks made with the ICS commands <B>say, tell, whisper, </B>and <B>kibitz</B>. Limitation: remarks that you type yourself are not </P>\r
-\r
-<P>recognized; WinBoard scans only the output from ICS, not the input you type to it.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="autobscmd"></A>Auto Observe</B></P>\r
-\r
-<P>If Auto Observe is on and you add a player to your <B>gnotify</B> list on ICS, WinBoard will automatically observe all of that player's games, unless you are doing something else (such as observing or playing a game of your own) when one starts. On most chess servers, you can now do <B>follow <I>player</I></B> instead, and the server will automatically observe all of <B><I>player’s</I></B> games.</P>\r
-\r
-\r
-\r
-<P><font color="#FF00FF"><B><A NAME="autokibitzcmd"></A>Auto Kibitz</B></font></P>\r
-\r
-<P><font color="#FF00FF">Auto Kibitz controls how output of computers playing on an ICS is handled. In many tournaments, computers are obliged to kibitz their thinking output to the ICS, and this option will do that automatically, without the engine having to know it. In addition, such kibitzed output by your opponent will be kept out of the console window, and will be diverted to the engine-output window.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="getmovelistcmd"></A>Get Move List</B></P>\r
-\r
-<P>If Get Move List is on, whenever WinBoard<I> </I>receives the first board of a new ICS game (or a different ICS game from the one it is currently displaying), it retrieves the list of past moves from the server. You can then review the moves with the Forward and Backward commands or save them with Save Game. You might want to turn off this option if you are observing several blitz games at once, to keep from wasting time and network bandwidth fetching the move lists over and over. If you turn this option on while a game is in progress, WinBoard<I> </I>immediately fetches the current move list.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="locallineediting"></A>Local Line Editing</B></P>\r
-\r
-<P>If Local Line Editing is <B>on</B>, your machine handles echoing, backspacing, etc., for the characters that you type into the ICS Interaction window. Output is forwarded to the ICS only when you hit Enter.The Enter key produces a newline character, also known as Ctrl+J, \n, LF, linefeed, or decimal ASCII code 10. In this mode you can force a control character into the edit buffer by preceding it with Ctrl+Q (“quote”); however, the edit buffer will not accept certain control characters even when they are quoted in this way. You can force a control character to be sent immediately to ICS, bypassing the edit buffer, by preceding it with Ctrl+S (“send”).</P>\r
-\r
-<P>WinBoard keeps a history of lines you recently typed in Local Line Editing mode. You can bring back old lines by pressing the cursor up key in the text entry box. Press the cursor down key to go back down to newer lines.</P>\r
-\r
-<P>If Local Line Editing is <B>off</B>, all characters are sent to ICS as you type them. The Enter key produces a carriage return character, also known as Ctrl+M, \r, CR, or decimal ASCII code 13. Use Ctrl+Backspace if you need the ASCII DEL character. You can enter any character code by holding down the Alt key and typing its decimal value (always beginning with 0) on the numeric keypad; this is a little-known standard feature of Windows.</P>\r
-\r
-<P>In both modes, if WinBoard<I>’s </I>internal telnet protocol implementation is active, it translates all \n characters to the standard telnet end-of-line sequence \r\n just before sending them out to ICS; see <A HREF="14.htm#telnetprogram">telnetProgram</A>.</P>\r
-\r
-<P>It is generally not a good idea to turn off this option while connected to ICS. If you are tempted to do so because everything you type is being echoed an extra time, see the paragraph about extra echoes under <A HREF="22.htm">LIMITATIONS</A> below.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="quietplaycmd"></A>Quiet Play</B></P>\r
-\r
-<P>If Quiet Play is on, WinBoard will automatically issue an ICS <B>set shout 0</B> command whenever you start a game and a <B>set shout 1</B> command whenever you finish one. Thus you will not be distracted by shouts from other ICS users while playing.</P>\r
-\r
-\r
-\r
-<P><font color="#FF00FF"><B><A NAME="seekgraphcmd"></A>Seek Graph</B></font></P>\r
-<P><font color="#FF00FF"><B><A NAME="autorefreshcmd"></A>Auto Refresh</B></font></P>\r
-\r
-<P><font color="#FF00FF">If Seek Graph is on, you can summon up a graphical representation of players seeking a game on the ICS in stead of the chess board, by left-clicking the latter when you are not using it. The requested games are separated out by rating and time control. Rated, unrated and wild games are displayed in different colors, computers as squares, humans as dots. Hovering the mouse over a dot in the graph will display the details of the corresponding seek ad in the message field above the board. Left-clicking the dot will take up the challenge. Right-clicking dots will ‘push them to the back’, so you can see seek ads that might have been hidden behind it. Right-clicking off dots will refresh the graph, left-clicking off dots will take the graph down ad display the chess board again.</font></P>\r
-\r
-<P><font color="#FF00FF">In combination with Auto Refresh, the seek graph will be updated automatically. This is only implemented for the FICS and ICC servers. To make switching on of this option effective might require you to log off and on again to the ICS, as it requires changing ICS settings that are locked during a session.</font></P>\r
-\r
-\r
-\r
-<P><font color="#FF00FF"><B><A NAME="backgroundobservecmd"></A>Background Observe</B></font></P>\r
-<P><font color="#FF00FF"><B><A NAME="dualboardcmd"></A>Dual Board</B></font></P>\r
-\r
-<P><font color="#FF00FF">If Background Observe is on, boards sent to you by the ICS when you are playing, but which are not of your game, (but of games you are observing), will not be displayed automatically. In stead WinBoard will remember the last board it received that way, and display it when you press the right mouse button in stead of the board of your own game. This feature is meant to enable bughouse players a peek at their partner’s game, without the need to log on to the ICS a second time.</font></P>\r
-\r
-<P><font color="#FF00FF">If in addition Dual Board is also on, such background games are even displayed on a second board, side by side with your own game, so that it is always in view. This feature is experimental, and largely undeveloped; there is no animation of moves on this second board, while the effets are undefined if the board format of the observed game is not the same as that of your own game.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="premovecmd"></A>Premove</B></P>\r
-\r
-<P>Premove allows you to play a move on the board before you have received your opponent’s move.  This move is highlighted on the board using the <A HREF="16.htm#premovehighlightcolor">Premove Highlight</A> color, and is sent to the ICS as soon as your opponent’s move is received. To cancel a premove, either click twice on the piece that was premoved or premove an illegal move.</P>\r
-\r
-<P>This group of controls allows you to set the following options: <A HREF="14.htm#premove">premove</A>, <A HREF="14.htm#premovewhite">premoveWhite</A>, <A HREF="14.htm#premovewhitetext">premoveWhiteText</A>, <A HREF="14.htm#premoveblack">premoveBlack</A>, <A HREF="14.htm#premoveblacktext">premoveBlackText</A>.</P>\r
-\r
-\r
-\r
-<P><font color="#FF00FF"><B><A NAME="oneclickmovecmd"></A>One-Click Move</B></font></P>\r
-\r
-\r
-<P><font color="#FF00FF">When One-Click Move is set, a click on an own piece will immediately move that piece if it only has a single legal move, without waiting for you to click a to-square. Similarly, clicking an opponent piece or empty square will immediately perform the move to that square, if only a single legal move to it existed. This is the mouse equivalent of having to type only e4 when you mean e2-e4. Finally, double clicking an own piece (or clicking an already selected piece) will make it execute its only capture, which can save you some time if the target square was far away. Legality testing has to be switched on for this to work.</font></P>\r
-\r
-\r
-<P><B><A NAME="icsalarm"></A>ICS Alarm</B></P>\r
-\r
-<P>When <B>icsAlarm</B> is set to True, the <A HREF="16.htm#soundicsalarm">alarm sound</A> is played when your clock counts down to <A HREF="14.htm#icsalarmtime">icsAlarmTime</A> seconds.  For ICS games with time controls that include an increment, the alarm will sound each time the clock counts down to the <A HREF="14.htm#icsalarmtime">icsAlarmTime</A>.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="icsinteractioncolors"></A>ICS Interaction Colors</B></P>\r
-\r
-<P>Lets you change the colors and type styles that WinBoard uses to distinguish between different types of messages in the ICS Interaction window. The types distinguished are: shout, sshout, channel 1 tell, other channel tell, kibitz (or whisper), personal tell (or new message notification), challenge, request (including abort, adjourn, draw, pause, and takeback), seek, and normal (all other messages).</P>\r
-\r
-\r
-\r
-<P><font color="#FF00FF"><B><A NAME="startupchatboxescmd"></A>Startup Chat Boxes</B></font></P>\r
-\r
-<P><font color="#FF00FF">You can put a semicolon-separated list of ICS handles or channel numbers here, WinBoard will open a <A HREF="04.htm#openchatwindow">Chat Window</A> for each handle at startup in ICS mode.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="fonts"></A><U>Fonts</U></B></P>\r
-\r
-<P>Lets you change the fonts WinBoard is using.  The clock font, message font and coordinates font are specific to each board size.  The tags font, comments font and ICS Interaction font are not dependent on the current size of the board.  The “Revert to Defaults” button will reset the clock font, message font and coordinates font for the current board size, and will set the tags font, message font and Ics Interaction font for all board sizes.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="sounds"></A><U>Sounds</U></B></P>\r
-\r
-<P>Lets you change the sounds that WinBoard plays for various events.</P>\r
-\r
-\r
-\r
-<P><A NAME="movesound"></A>If the Move sound is on, WinBoard alerts you by playing a sound after each of your opponent's moves (or after every move if you are observing a game on the Internet Chess Server). The sound is not played after moves you make or moves read from a saved game file. If you turn on the Move sound when using WinBoard with the Internet Chess Server, you will probably want to give the <B>set bell 0</B> command to the ICS. Otherwise the ICS will send a bell character after every move (not just yours), causing WinBoard to play the ICS Bell sound too. Alternatively, you could turn off the ICS Bell sound in WinBoard, but that might cause you to miss ICS alerts for other interesting events.</P>\r
-\r
-<P>The other sound events correspond directly to the types of messages that the <A HREF="#icsinteractioncolors">ICS Interaction Colors</A> option knows how to colorize.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="sounds"></A><U>Game List</U></B></P>\r
-\r
-<P>Lets you select which information is displayed in the Game List window.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="communications"></A><U>Communications</U></B></P>\r
-\r
-<P>Lets you change the communication port parameters when the <A HREF="14.htm#internetchessservercomport">internetChessServerComPort</A> option is in use.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="loadgameoptns"></A><U>Load Game</U></B></P>\r
-\r
-<P>Lets you change options used while loading games (<A HREF="15.htm#timedelay">timeDelay</A> option).</P>\r
-\r
-\r
-\r
-<P><B><A NAME="savegameoptns"></A><U>Save Game</U></B></P>\r
-\r
-<P>Lets you change options used for saving games (<A HREF="15.htm#autosavegames">autoSaveGames</A>, <A HREF="15.htm#oldsavestyle">oldSaveStyle</A>, and <A HREF="15.htm#savegamefile">saveGameFile</A> options).</P>\r
-\r
-\r
-\r
-<P><B><A NAME="timecontrolcmd"></A><U>Time Control</U></B></P>\r
-\r
-<P>Lets you change the time control to be used in games against a chess engine. Two types of timing are available.</P>\r
-\r
-<P>With conventional chess clocks, each player begins with his clock set to the <A HREF="12.htm#timecontrol">timeControl</A> period. When both players have made <A HREF="12.htm#movespersession">movesPerSession</A> moves, a new time control period begins. The time in the new period is added to whatever time the players have left on their clocks.</P>\r
-\r
-<P>With incremental clocks, each player is given an initial time allotment, and a <A HREF="12.htm#timeincrement">timeIncrement</A> is added to his clock after every move. The increment may be zero, in which case the entire game must be finished within the initial time allotment.</P>\r
-\r
-<P><font color="#FF00FF">With fixed time per move, the clock is reset to the given time before each move, and any left-over time is discarded (i.e. not added to the time for the next move).</font></P>\r
-\r
-<P><font color="#FF00FF">Note that in local modes it is always possible to adjust the clocks during a game by Shift + click on it, where a right-click adds a minute, and a left-click subtracts one.</font></P>\r
-\r
-<P><B><A NAME="savesettings"></A><U>Save Settings Now</U></B></P>\r
-\r
-<P>Save the current option settings to a file, along with the current window sizes and positions, to be automatically reloaded next time WinBoard is run. See <A HREF="19.htm#settings">Settings</A> for the fine points.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="savesettingsonexit"></A><U>Save Settings on Exit</U></B></P>\r
-\r
-<P>If this option is on, the current settings are automatically saved when WinBoard exits, as with Save Settings Now.</P>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/winboard/help/html/08.htm b/winboard/help/html/08.htm
deleted file mode 100644 (file)
index bcf3b5c..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
-<HTML>\r
-<HEAD>\r
-<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
-<TITLE>Help Menu</TITLE>\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
-\r
-\r
-\r
-<P><B><A NAME="helpmenu"></A><SUP></SUP>Help Menu</B></P>\r
-\r
-\r
-\r
-<P><B><A NAME="helpcontents"></A>Help Contents</B></P>\r
-\r
-<P>Brings up this help file, starting at the Contents page.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="searchhelp"></A>Help Index</B></P>\r
-\r
-<P>Brings up this help file, starting at the Index/Find dialog.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="helphelp"></A>How to Use Help</B></P>\r
-\r
-<P>Brings up the standard help file that explains how to use Windows Help.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="hint"></A>Hint</B></P>\r
-\r
-<P>Displays a move hint from the chess engine.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="book"></A>Book</B></P>\r
-\r
-<P>Displays a list of possible moves from the chess engine’s opening book. The first column gives moves, the second column gives one possible response for each move, and the third column shows the number of lines in the book that include the move from the first column. If you select this option and nothing happens, the engine is out of its book or does not support the book command.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="aboutwinboard"></A>About WinBoard</B></P>\r
-\r
-<P>Displays the WinBoard version number.</P>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/winboard/help/html/09.htm b/winboard/help/html/09.htm
deleted file mode 100644 (file)
index a3c1ac6..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
-<HTML>\r
-<HEAD>\r
-<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
-<TITLE>ICS Interaction Context Menu</TITLE>\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
-\r
-\r
-\r
-<P><B><A NAME="icsinteractioncontextmenu"></A><SUP></SUP>ICS Interaction Context Menu</B></P>\r
-\r
-<P>To see this menu, press the right mouse button anywhere in the output (upper) pane of the ICS Interaction window. Pressing the right mouse button in the input (lower) pane gives a standard editing context menu, not described here. Use the <B>help</B> command on ICS to learn what these commands mean.</P>\r
-\r
-<P>You can customize the lower part of this menu (below the Paste option) by setting the <A HREF="16.htm#icsmenu">icsMenu</A> option. The easiest way to accomplish this is to edit your <A HREF="19.htm#settings">settings file</A> with Notepad or another plain text editor. Sorry, there is no graphical user interface for customizing the menu.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="copyandpaste"></A>Copy and Paste</B></P>\r
-\r
-<P>Copies the current selection to the clipboard, then pastes it to the input box. As a shortcut to this function, you can press the middle mouse button (if you have one), or Shift plus the right mouse button.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="copy"></A>Copy</B></P>\r
-\r
-<P>Copies the current selection to the clipboard.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="paste"></A>Paste</B></P>\r
-\r
-<P>Pastes the clipboard contents to the input box.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="who"></A>Who</B></P>\r
-\r
-<P>Sends the command “who”<B><I> </I></B>to ICS.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="players"></A>Players</B></P>\r
-\r
-<P>Sends the command “players”<B><I> </I></B>to ICS.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="games"></A>Games</B></P>\r
-\r
-<P>Sends the command “games”<B><I> </I></B>to ICS.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="sought"></A>Sought</B></P>\r
-\r
-<P>Sends the command “sought”<B><I> </I></B>to ICS.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="tell"></A>Tell (name)</B></P>\r
-\r
-<P>Inserts “tell <I>name </I>”<B><I> </I></B>into the input box. The string <I>name </I>is the current selection if it is not empty. Otherwise <I>name </I>is the word surrounding the mouse position, where a “word” is a string of letters, digits, or hyphens (-), such as an ICS user handle or game number.</P>\r
-\r
-\r
-\r
-<P><B><font coor="#FF00FF"><A NAME="openchatbox"></A>Open Chat Box (name)</font></B></P>\r
-\r
-<P><font coor="#FF00FF">Causes WinBoard to open a new <A HREF="04.htm#openchatwindow">Chat Window</A>, with <I>name</I> in the chat Partner field, where <I>name</I> is as defined above.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="message"></A>Message (name)</B></P>\r
-\r
-<P>Inserts “message <I>name </I>”<B><I> </I></B>into the input box, where <I>name</I> is as defined above.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="finger"></A>Finger (name)</B></P>\r
-\r
-<P>Sends the command “finger <I>name</I>”<B><I> </I></B>to ICS, where <I>name</I> is as defined above. </P>\r
-\r
-\r
-\r
-<P><B><A NAME="vars"></A>Vars (name)</B></P>\r
-\r
-<P>Sends the command “vars <I>name</I>”<B><I> </I></B>to ICS, where <I>name</I> is as defined above. </P>\r
-\r
-\r
-\r
-<P><B><A NAME="observe"></A>Observe (name)</B></P>\r
-\r
-<P>Sends the command “observe <I>name</I>”<B><I> </I></B>to ICS, where <I>name</I> is as defined above. Here <I>name</I> can be either a user handle or a game number.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="match"></A>Match (name)</B></P>\r
-\r
-<P>Sends the command “match <I>name</I>”<B><I> </I></B>to ICS, where <I>name</I> is as defined above. </P>\r
-\r
-\r
-\r
-<P><B><A NAME="play"></A>Play (name)</B></P>\r
-\r
-<P>Sends the command “play <I>name</I>”<B><I> </I></B>to ICS, where <I>name</I> is as defined above. Here <I>name</I> can be either a user handle or a seek ad number.</P>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/winboard/help/html/10.htm b/winboard/help/html/10.htm
deleted file mode 100644 (file)
index d333d20..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
-<HTML>\r
-<HEAD>\r
-<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
-<TITLE>Buttons</TITLE>\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
-\r
-\r
-\r
-<P><B><A NAME="buttons"></A>BUTTONS</B></P>\r
-\r
-\r
-\r
-<P><B>&lt;&lt;</B></P>\r
-\r
-<P>Same as <A HREF="06.htm#backtostart">Back to Start</A>.</P>\r
-\r
-\r
-\r
-<P><B>&lt;</B></P>\r
-\r
-<P>Same as <A HREF="06.htm#backward">Backward</A>.</P>\r
-\r
-\r
-\r
-<P><B>P</B></P>\r
-\r
-<P>Same as <A HREF="04.htm#pause">Pause</A>. The button label changes to <B>C</B> while WinBoard is pausing.</P>\r
-\r
-\r
-\r
-<P><B>&gt;</B></P>\r
-\r
-<P>Same as <A HREF="06.htm#forward">Forward</A>.</P>\r
-\r
-\r
-\r
-<P><B>&gt;&gt;</B></P>\r
-\r
-<P>Same as <A HREF="06.htm#forwardtoend">Forward to End</A>.</P>\r
-\r
-<P><font color="#3333ff">Note that using the mouse wheel has the same effect as using the &lt; or &gt; button.</font></P>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/winboard/help/html/11.htm b/winboard/help/html/11.htm
deleted file mode 100644 (file)
index dcc4d4b..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
-<HTML>\r
-<HEAD>\r
-<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
-<TITLE>Command Line Options</TITLE>\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
-\r
-\r
-\r
-<P><B><A NAME="options"></A><SUP></SUP>COMMAND LINE OPTIONS</B></P>\r
-\r
-<P>All WinBoard options can be set either on the command line (if you start WinBoard by typing into an MSDOS Prompt box), in the Properties/Shortcut/Target box of a Windows shortcut, in a <A HREF="19.htm#settings">settings file</A>, or in the Additional Options box of the WinBoard startup dialog. Exactly the same syntax is used in all four places. Most options can also be set from the menus and saved using <A HREF="07.htm#savesettings">Save Settings Now</A> or <A HREF="07.htm#savesettingsonexit">Save Settings on Exit</A>, so most people will not need to read this section.</P>\r
-\r
-<P>Most options have two names, a long one that is easy to read and a short one that is easy to type. To turn on a boolean (true/false) option <I>opt</I>, you can just give its short name preceded by a minus sign or slash (-<I>opt</I> or /<I>opt</I>); to turn one off, prefix the short name by an “x” or an extra minus sign (-x<I>opt</I> or /-<I>opt</I>). To set any other kind of option, or to set a boolean option using its long name, give the value after the name, separated by a space, colon, or equal sign. (-<I>opt</I> 23 or /<I>option</I>:true). If a string option contains spaces or special characters, enclose it in double quotes and use the \ quoting convention of C to name the special characters. Alternatively, you can enclose a string value in curly braces (/opt={string}), as long as the value does not contain a closing curly brace. If a filename option contains spaces, enclose it in either single or double quotes. In filename options, the \ character is not treated specially, so use single quotes around the outside of the value if it has double quotes inside (and vice versa).</P>\r
-\r
-<P>When you start WinBoard, it will pop up the Startup dialog box unless you provide sufficient options on the command line for WinBoard to determine which major mode to be in and what engines to use or chess server to connect to. To bypass this box, you must at minimum give one of the three options <A HREF="12.htm#cp">/cp</A>, <A HREF="14.htm#ics">/ics</A>, or <A HREF="18.htm#ncp">/ncp</A>.  If you give the /cp option, you must also give the <A HREF="12.htm#fcp">/fcp</A> and <A HREF="12.htm#scp">/scp</A> options. If you give the /ics option, you must also give the <A HREF="14.htm#icshost">/icshost</A> option.</P>\r
-\r
-<P><A HREF="12.htm">Chess Engine Options</A></P>\r
-\r
-<P><A HREF="13.htm">UCI Engine Support                  !NEW!</A></P>\r
-\r
-<P><A HREF="14.htm">Internet Chess Server Options</A></P>\r
-\r
-<P><A HREF="15.htm">Load and Save Options</A></P>\r
-\r
-<P><A HREF="16.htm">User Interface Options</A></P>\r
-\r
-<P><A HREF="17.htm">Adjudication Options                   !NEW!</A></P>\r
-\r
-<P><A HREF="18.htm">Other Options</A></P>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/winboard/help/html/12.htm b/winboard/help/html/12.htm
deleted file mode 100644 (file)
index 014f013..0000000
+++ /dev/null
@@ -1,221 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
-<HTML>\r
-<HEAD>\r
-<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
-<TITLE>Chess Engine Options</TITLE>\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
-\r
-\r
-\r
-<P><B><A NAME="chessengineoptions"></A>Chess Engine Options</B></P>\r
-\r
-\r
-\r
-<P><B><A NAME="cp"></A>/cp</B> or<B> /xcp</B>,<B> </B>or<B> <A NAME="chessprogram"></A>/chessProgram <I>true|false</I></B></P>\r
-\r
-<P>If true, puts WinBoard in chess engine mode. In this mode, you can play against a chess program running on your PC or use it as an analysis partner.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="tc"></A>/tc </B>or<B> <A NAME="timecontrol"></A>/timeControl <I>minutes[:seconds]</I></B></P>\r
-\r
-<P>Each player begins with his clock set to the timeControl period. Default: 5 minutes. The additional options movesPerSession and timeIncrement are mutually exclusive.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="mps"></A>/mps </B>or<B> <A NAME="movespersession"></A>/movesPerSession <I>moves</I></B></P>\r
-\r
-<P>When both players have made movesPerSession moves, a new timeControl period is added to both clocks. Default: 40 moves.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="inc"></A>/inc </B>or<B> <A NAME="timeincrement"></A>/timeIncrement <I>seconds</I></B></P>\r
-\r
-<P>If this option is specified, movesPerSession is ignored. Instead, after each player's move, timeIncrement seconds are added to his clock. Use -timeIncrement 0 if you want to require the entire game to be played in one timeControl period, with no increment. Default: -1, which specifies movesPerSession mode.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="clock"></A>/clock </B>or <B>/xclock</B>, or<B> <A NAME="clockmode"></A>/clockMode <I>true|false</I></B></P>\r
-\r
-<P>Determines whether or not to display the chess clocks. If clockMode is False, the clocks are not shown, but the side that is to play next is still highlighted. Also, unless searchTime is set, the chess engine still keeps track of the clock time and uses it to determine how fast to make its moves.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="st"></A>/st </B>or<B> <A NAME="searchtime"></A>/searchTime <I>minutes[:seconds]</I></B></P>\r
-\r
-<P>Tells the chess engine to spend at most the given amount of time searching for each of its moves. Without this option, the engine chooses its search time based on the number of moves and amount of time remaining until the next time control. Setting this option also sets clockMode to False.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="sd"></A>/depth </B>or<B> <A NAME="searchdepth"></A>/searchDepth <I>number</I></B></P>\r
-\r
-<P>Tells the chess engine to look ahead at most the given number of moves when searching for a move to make. Without this option, the engine chooses its search depth based on the number of moves and amount of time remaining until the next time control. With the option, the engine will cut off its search early if it reaches the specified depth.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="firstnps"></A><font color="#008000">/firstNPS <I>number</I></font></B></P>\r
-\r
-\r
-\r
-<P><B><A NAME="secondnps"></A><font color="#008000">/secondNPS <I>number</I></font></B></P>\r
-\r
-<P><font color="#008000">Tells the chess engine to use an internal time standard based on its node count, rather then wall-clock time, to make its timing decisions. The time in virtual seconds should be obtained by dividing the node count through the given <I>number</I>, like the number was a rate in nodes per second. WinBoard will manage the clocks in accordance with this, relying on the number of nodes reported by the engine in its thinking output. If <I>number</I> equals zero, it can obviously not be used to convert nodes to seconds, and the time reported by the engine is used to decrement the WinBoard clock. The engine is supposed to report in CPU time it uses, rather than wall-clock time in this mode. This option can provide fairer conditions for engine-engine matches on heavily loaded machines, or with very fast games (where the wall clock is too inaccurate). “Show Thinking” must be on for this option to work. Not many engines might support this yet!</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="firsttimeodds"></A><font color="#008000">/firstTimeOdds <I>factor</I></font></B></P>\r
-\r
-\r
-\r
-<P><B><A NAME="secondtimeodds"></A><font color="#008000">/secondTimeOdds <I>factor</I></font></B></P>\r
-\r
-<P><font color="#008000">Reduces the time given to the mentioned engine by the given <I>factor</I>. If pondering is off, the effect is indistinguishable from what would happen if the engine was running on a <I>factor</I> times slower machine.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="timeoddsmode"></A><font color="#008000">/timeOddsMode <I>mode</I></font></B></P>\r
-\r
-<P><font color="#008000">This option determines how the case is handled when both engines have a time-odds handicap. If mode=1, the engine that gets the most time will always get the nominal time, as specified by the time-control options, and its opponent’s time is normalized similarly. If mode=0, both play with reduced time.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="ponder"></A>/ponder</B> or <B>/xponder</B>,<B> </B>or<B> <A NAME="pondernextmove"></A>/ponderNextMove <I>true|false</I></B></P>\r
-\r
-<P>Sets the <A HREF="07.htm#pondernextmovecmd">Ponder Next Move</A> option. Default: True.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="thinking"></A>/thinking</B> or <B>/xthinking</B>,<B> </B>or<B> <A NAME="showthinking"></A>/showThinking <I>true|false</I></B></P>\r
-\r
-<P>Sets the <A HREF="07.htm#showthinkingcmd">Show Thinking</A> option. Default: False.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="periodic"></A>/periodic </B>or <B>/xperiodic</B>, or<B> <A NAME="periodicupdates"></A>/periodicUpdates <I>true|false</I></B></P>\r
-\r
-<P>Sets the <A HREF="07.htm#periodicupdatescmd">Periodic Updates</A> option. Default: True.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="mg"></A>/mg </B>or<B> <A NAME="matchgames"></A>/matchGames <I>n</I></B></P>\r
-\r
-<P>Automatically runs an <I><B>n</B>-</I>game match between two chess engines, with alternating colors. If the <A HREF="15.htm#loadgamefile">loadGameFile</A> or <A HREF="15.htm#loadpositionfile">loadPositionFile</A> option is set, WinBoard will start each game with the given opening moves or the given position; otherwise, the games will start with the standard initial chess position. If the <A HREF="15.htm#savegamefile">saveGameFile</A> option is set, a move record for the match will be appended to the specified file. If the <A HREF="15.htm#savepositionfile">savePositionFile</A> option is set, the final position reached in each game of the match will be appended to the specified file. When the match is over, WinBoard will display the match score and exit. Default: 0 (do not run a match).</P>\r
-\r
-\r
-\r
-<P><B><A NAME="mm"></A>/mm </B>or <B>/xmm</B>, or<B> <A NAME="matchmode"></A>/matchMode <I>true|false</I></B></P>\r
-\r
-<P>Provided for backward compatibility. If true and matchGames=0, sets matchGames=1.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="matchpause"></A><font color="#008000">/matchPause <I>number</I></font></B></P>\r
-\r
-<P><font color="#008000">Sets the length of the pause between games in match mode to <I>number</I> msec. Default value is 10000, i.e. 10 sec. (If this pause is too short, engines not implementing ‘ping’ will sometimes send the last move of their previous game only when a new game has started, at which time the move is illegal, and causes them to forfeit the game.)</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="fd"></A>/fd </B>or<B> <A NAME="firstdirectory"></A>/firstDirectory <I>dir<BR>\r
-</I><A NAME="sd"></A>/sd </B>or<B> <A NAME="seconddirectory"></A>/secondDirectory <I>dir</I><SUP> </SUP><BR>\r
-<A NAME="fcp"></A>/fcp </B>or<B> <A NAME="firstchessprogram"></A>/firstChessProgram <I>command<BR>\r
-</I><A NAME="scp"></A>/scp </B>or<B> <A NAME="secondchessprogram"></A>/secondChessProgram <I>command</I><SUP> </SUP></B></P>\r
-\r
-<P>Names of the chess engines and working directories in which they are to be run. The second chess engine is started only in Two Machines (match) mode. These arguments are parsed as filenames; that is, the \ character is interpreted literally, not as a C-style escape.</P>\r
-\r
-<P>The <I>dir</I> argument specifies the initial working directory for the chess engine. It should usually be the directory where the engine and its working files are installed. If <I>dir</I> is not an absolute pathname, it is interpreted relative to the directory from which WinBoard.exe itself was loaded. The <I>dir</I> argument is ignored if the chess engine is being run on a remote machine (see firstHost and secondHost below). The default value for <I>dir </I>"", meaning that the chess engine is expected to be installed in the same directory as WinBoard.</P>\r
-\r
-<P>The <I>command</I> argument is actually the command line to the chess engine, so if the engine itself needs command line arguments, you can include them by enclosing <I>command</I> in single or double quotes. If the engine name or an engine argument has a space in it, use single quotes around the whole <I>command, </I>and inside them use double quotes around each item that contains spaces. If the engine name has more than one period in it (for example, <CODE>QChess1.5.exe</CODE>), you must include the "<CODE>.exe</CODE>" extension; otherwise you can leave it out. The default value for <I>command</I> is "", which brings up the startup dialog to ask which engines you want.</P>\r
-\r
-<P>Examples:</P>\r
-\r
-<PRE><CODE>WinBoard /cp /fd="C:\Program Files\Crafty" /fcp=WCrafty-15.12.exe /scp=GNUChess\r
-WinBoard /cp /fd="C:\Miracle Games" /fcp='"Miracle Chess.exe" /wow' /scp=GNUChess</CODE></PRE>\r
-\r
-<P><font color="#008000">The basic rule is thus that what is inside the quotes delimiting the argument to /fcp and /scp, all goes to the engine, and is ignored by WinBoard. WinBoard 4.3.13 and later, however, knows an exception to this: If, within the quotes, the word WBopt appears, everything that follows this word will be interpreted as a WinBoard argument, in stead of being passed to the engine on startup of the latter. (The WBopt itself is also not passed to the engine.) This possibility of hiding WinBoard arguments in the engine command is provided in order to create options that follow the engine in a tournament, when a tournament manager like PSWBTM is used to invoke WinBoard. Because, in order to apply to a given engine, some options need to know if they apply to first or second engine, which might vary during the tournament, options hidden inside the engine command-line can contain ‘%s’ which will be replaced at the time the option is used by ‘first’ or ‘second’, as applicable.</font></P>\r
-\r
-<P><font color="#008000">Examples:</font></P>\r
-\r
-<font color="#008000"><PRE><CODE>WinBoard /cp /fd="C:\Engines\Crafty" /fcp=”WCrafty-15.12 WBopt /%sTimeOdds=2” /scp=GNUChess</CODE></PRE></font>\r
-\r
-<P><font color="#008000">Meaning that Crafty will have to play with half the time GNUChess will get.</font></P>\r
-\r
-<PRE></PRE>\r
-\r
-\r
-\r
-<P><B><A NAME="fh"></A>/fh </B>or<B> <A NAME="firsthost"></A>/firstHost <I>host<BR>\r
-</I><A NAME="sh"></A>/sh </B>or<B> <A NAME="secondhost"></A>/secondHost <I>host</I></B></P>\r
-\r
-<P>Hosts on which the chess engines are to run. The default for each is "localhost". If you specify another host, WinBoard<I> </I>uses <A HREF="18.htm#rsh">rsh</A> to run the chess program there. The /fd and /sd flags do not work in conjunction with these flags; if you need a remote chess engine to run somewhere other than your default login directory on the remote machine, you will have to include a "cd" command in the argument to /fcp or /scp.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="initstring"></A>/firstInitString </B>or <B>/initString <I>string<BR>\r
-</I><A NAME="secondinitstring"></A>/secondInitString <I>string</I></B></P>\r
-\r
-<P>The strings that are sent to initialize the chess engines. Default: "new\nrandom\n". The "\n" sequences represent newlines. You can type "\n" on the command line or in a <A HREF="19.htm#settings">settings file</A>, and WinBoard will convert it to a newline.</P>\r
-\r
-<P>All chess engines require the "new" command to start a new game.</P>\r
-\r
-<P>You can remove the "random" command if you like; including it causes GNU Chess to randomize its move selection slightly so that it doesn't play the same moves in every game. Even without "random", GNU Chess randomizes its choice of moves from its opening book. You can also try adding other commands to the initString; see the GNU Chess documentation (gnuchess.txt) for details. Crafty ignores the "random" command; see its documentation for the commands it accepts.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="initstring"></A>/firstComputerString <I>string<BR>\r
-</I><A NAME="secondinitstring"></A>/secondComputerString <I>string</I></B></P>\r
-\r
-<P>If the chess engine is playing against another computer program (whether locally or on a chess server), by default the command "computer\n" is sent to it. Some chess engines change their playing style when they receive this command. If you do not want the engine to know when it is playing another computer, you can set the string to "".</P>\r
-\r
-<P><font color="#008000">Note that the computer string is sent to the engine after most other initialization commands, and is thus ideal for hiding a WinBoard-protocol command in that should be sent only to one engine, when the WinBoard option that normally specifies this command cannot be differentiated by engine, but s always sent to both engines. E.g. if you want one of the engines to ponder, and the other not. Because it is sent last, in can overrule earlier commands.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="fb"></A>/fb </B>or <B>/xfb</B>, or<B> <A NAME="firstplaysblack"></A>/firstPlaysBlack <I>true|false</I></B></P>\r
-\r
-<P>In games between two chess programs, the firstChessProgram normally plays white. (This is a change from earlier versions of WinBoard.) If this option is True, firstChessProgram plays black. In a multi-game match, this option affects the colors only for the first game; they still alternate in subsequent games.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="reuse"></A>/reuse<SUP> </SUP></B>or <B>/xreuse</B>, or <B><A NAME="reusefirst"></A>/reuseFirst<I> true|false<BR>\r
-</I><A NAME="reuse2"></A>/reuse2<SUP> </SUP></B>or <B>/xreuse2</B>, or <B><A NAME="reusesecond"></A>/reuseSecond<I> true|false</I></B></P>\r
-\r
-<P>If this option is True (the default), WinBoard<I> </I>uses the same chess engine process repeatedly when playing multiple games. If the option is False, WinBoard kills off the chess engine after every game and starts a fresh one for the next game. Starting a fresh chess engine can be slow, so it is not recommended. However, some chess engines may not work properly when reused, such as versions of Crafty earlier than 12.0.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="firstprotocolversion"></A>/firstProtocolVersion <I>ver<BR>\r
-</I><A NAME="secondprotocolversion"></A>/secondProtocolVersion <I>ver</I></B></P>\r
-\r
-<P>This option specifies which version of the chess engine communication protocol to use. By default, version-number is 2. In version 1, the "protover" command is not sent to the engine; since version 1 is a subset of version 2, nothing else changes. Other values for version-number are not supported.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="firstscoreabs"></A><font color="#ff0000">/firstScoreAbs<I> true|false<BR>\r
-</I></font><A NAME="secondscoreabs"></A><font color="#ff0000">/secondScoreAbs<I> true|false</I></font></B></P>\r
-\r
-<P><font color="#ff0000">If this option is true, the score reported by the engine is taken to be that in favor of white, even when the engine plays black. Important when winboard uses the score for adjudications, or in PGN reporting. This can be a useful option in combination with WBopt in the engine command-line, see under /fcp.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="niceengines"></A><font color="#3333ff">/niceEngines<I> priority</I></font></B></P>\r
-\r
-<P><font color="#3333ff">This option allows you to lower the priority of the engine processes, so that the generally insatiable hunger for CPU time of chess engines does not interfere so much with smooth operation of WinBoard (or the rest of your system). Try priority = 10 or even 20 to lower the priority of the engines. Negative values could increase the engine priority, which is not recommended.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="firstoptions"></A><font color="#3333ff">/firstOptions<I> string</font><BR>\r
-</I><A NAME="secondoptions"></A><font color="#3333ff">/secondOptions<I> string</I></font></B></P>\r
-\r
-<P><font color="#3333ff">The given string is a comma-separated list of (option name, option value) pairs, like the following example: “style=Karpov,blunder rate=0”. If the options announced by the engine at startup through the feature commands of WinBoard protocol matches one of the option names (i.e. “style” or “blunder rate”), it would be set to the given value (i.e. “Karpov” or 0) through a corresponding option command to the engine. This provided that the type of the value (text or numeric) matches as well.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="firstneedsnoncompliantfen"></A><font color="#3333ff">/firstNeedsNoncompliantFEN<I> string</font><BR>\r
-</I><A NAME="secondneedsnoncompliantfen"></A><font color="#3333ff">/secondNeedsNoncompliantFEN<I> string</I></font></B></P>\r
-\r
-<P><font color="#3333ff">The castling rights and e.p. fields of the FEN sent to the mentioned engine with the setboard command will be replaced by the given string. This can for instance be used to run engines that do not understand Chess960 FENs in variant fischerandom, to make them at least understand the opening position, through setting the string to “KQkq -”. (Note you also have to give the e.p. field!) Other possible applications are to provide work-arounds for engines that want to see castling and e.p. fields in variants that do not have castling or e.p. (shatranj, courier, xiangqi, shogi) so that WinBoard would normally omit them (string = “- -“, or to add variant-specific fields that are not yet supported by WinBoard (e.g. to indicate the number of checks in 3check).</font></P>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/winboard/help/html/13.htm b/winboard/help/html/13.htm
deleted file mode 100644 (file)
index eb1471f..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
-<HTML>\r
-<HEAD>\r
-<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
-<TITLE>UCI Engine Support</TITLE>\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
-\r
-\r
-\r
-<P><B><A NAME="ucienginesupport"></A><font color="#ff0000">UCI Engine Support</font></B></P>\r
-\r
-\r
-\r
-<P><B><A NAME="fuci"></A><font color="#ff0000">/fUCI </B>or<B> <A NAME="firstisuci"></A>/firstIsUCI<I> true|false</I></font></B></P>\r
-\r
-\r
-\r
-<P><B><font color="#ff0000"><A NAME="suci"></A>/sUCI </B>or<B> <A NAME="secondisuci"></A>/secondIsUCI<I> true|false</I></B></font></P>\r
-\r
-<P><font color="#ff0000">Indicates if the mentioned engine executable file is an UCI engine, and should be run with the aid of the Polyglot adapter rather than directly. WinBoard will then pass the other UCI options and engine name to Polyglot through a .ini temporary file ceated for the purpose.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="polyglotdir"></A><font color="#ff0000">/PolyglotDir <I>filename</I></font></B></P>\r
-\r
-<P><font color="#ff0000">Gives the name of the folder in which Polyglot is installed.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="usepolyglotbook"></A><font color="#ff0000">/usePolyglotBook <I>true|false</I></font></B></P>\r
-\r
-<P><font color="#ff0000">Specifies if the Polygot book should be used.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="polyglotbook"></A><font color="#ff0000">/PolyglotBook <I>filename</I></font></B></P>\r
-\r
-<P><font color="#ff0000">Gives the filename of the opening book that Polyglot should use.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="fnoownbookuci"></A><font color="#ff0000">/fNoOwnBookUCI </B>or<B> <A NAME="firstxbook"></A>/firstXBook </B>or<B> <A NAME="firsthasownbookuci"></A>/firstHasOwnBookUCI<I> true|false</I></font></B></P>\r
-\r
-\r
-\r
-<P><B><A NAME="snoownbookuci"></A><font color="#ff0000">/sNoOwnBookUCI </B>or<B> <A NAME="secondxbook"></A>/secondXBook </B>or<B> <A NAME="secondhasownbookuci"></A>/secondHasOwnBookUCI<I> true|false</I></B></font></P>\r
-\r
-<P><font color="#ff0000">Indicates if the mentioned engine lacks an opening book or not.</font> <font color="#3333ff">Engines that have an own opening book will not use the GUI book (as given by /polyglotBook) even if /usePolyglotBook is set to true.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="defaulthashsize"></A><font color="#ff0000">/defaultHashSize <I>number</I></font></B></P>\r
-\r
-<P><font color="#ff0000">Sets the size of the hash table to <I>number</I> MegaBytes.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="defaultcachesizeegtb"></A><font color="#ff0000">/defaultCacheSizeEGTB <I>number</I></font></B></P>\r
-\r
-<P><font color="#ff0000">Sets the size of the EGTB cache to <I>number</I> MegaBytes.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="defaultpathegtb"></A><font color="#ff0000">/defaultPathEGTB <I>filename</I></font></B></P>\r
-\r
-<P><font color="#ff0000">Gives the name of the folder where the end-game tablebases are installed.</font></P>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/winboard/help/html/14.htm b/winboard/help/html/14.htm
deleted file mode 100644 (file)
index cc29ab7..0000000
+++ /dev/null
@@ -1,209 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
-<HTML>\r
-<HEAD>\r
-<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
-<TITLE>Internet Chess Server Options</TITLE>\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
-\r
-\r
-\r
-<P><B><A NAME="internetchessserveroptions"></A>Internet Chess Server Options</B></P>\r
-\r
-\r
-\r
-<P><B><A NAME="ics"></A>/ics </B>or <B>/xics</B>, or<B> <A NAME="internetchessservermode"></A>/internetChessServerMode<I> true|false</I></B></P>\r
-\r
-<P>Connect with an Internet Chess Server to play chess against its other users, observe games they are playing, or review games that have recently finished. See <A HREF="04.htm#icsclient">ICS Client</A> Default: False.</P>\r
-\r
-<P>You can create a script file containing ICS commands that WinBoard will type in for you whenever you connect to the ICS. See <A HREF="#icslogon">ICS Logon</A>.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="icshost"></A>/icshost </B>or<B> <A NAME="internetchessserverhost"></A>/internetChessServerHost <I>hostname</I></B></P>\r
-\r
-<P>The host name or numeric address of the Internet Chess Server to connect to when in ICS mode. The default is the empty string, which causes WinBoard to pop up a menu of known ICS sites. The file ics-addresses.txt in the WinBoard distribution gives slightly more information on these sites. It includes their numeric addresses, which you can use if your site does not have a working name server.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="icsport"></A>/icsport </B>or<B> <A NAME="internetchessserverport"></A>/internetChessServerPort <I>portnumber</I></B></P>\r
-\r
-<P>The port number to use when connecting to a chess server in ICS mode. Default: 5000.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="via"></A>/icshelper <I>program</I></B></P>\r
-\r
-\r
-\r
-<P>An external helper program used to communicate with the chess server. Typically <I>timestamp</I> for the ICC (chessclub.com) or <I>timeseal</I> for FICS (freechess.org, eics.daimi.aau.dk, etc.). This option is shorthand for “/useTelnet /telnetProgram <I>program</I>”<B>.</B></P>\r
-\r
-\r
-\r
-<P><B><A NAME="telnet"></A>/telnet</B> or <B>/xtelnet</B>,<B> </B>or<B> <A NAME="usetelnet"></A>/useTelnet<I> true|false</I></B></P>\r
-\r
-<P>This option is poorly named; it should be called <B>/useHelper</B>. If set to True, it instructs WinBoard to use an external helper program to communicate with the ICS, as specified by the telnetProgram option. The external program must be a pure console application that can communicate with WinBoard through pipes; the Windows telnet application is not suitable. If the option is False (the default), WinBoard communicates with the ICS by opening a Winsock TCP socket and using its own internal implementation of the telnet protocol.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="gateway"></A>/gateway <I>hostname</I></B></P>\r
-\r
-<P>If this option is set to a host name, WinBoard uses <A HREF="18.htm#rsh">rsh</A> to run the telnetProgram remotely on the given host to communicate with the Internet Chess Server instead of using its own internal implementation of the telnet protocol. See the <A HREF="21.htm">FIREWALLS</A> section below for an explanation of when this option is useful.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="telnetprogram"></A>/telnetProgram <I>program</I></B></P>\r
-\r
-<P>This option is poorly named; it should be called <B>/helperProgram</B>. It gives the name of the remote or external helper program to be used with the gateway or useTelnet option. The default is "telnet". The telnet program is invoked with the value of internetChessServer as the first argument and the value of internetChessServerPort as the second argument on its command line.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="icscom"></A>/icscom </B>or<B> <A NAME="internetchessservercomport"></A>/internetChessServerComPort <I>name</I></B></P>\r
-\r
-<P>If this option is set, WinBoard communicates with the Internet Chess Server using a serial communication port instead of a network connection. Use this option if your machine is not connected to a network (not even via SLIP or PPP), but you do have Internet access through another machine by dialing in using a modem or by connecting directly to a serial terminal port. Example:</P>\r
-\r
-<PRE><CODE>WinBoard /ics /icscom:com1</CODE></PRE>\r
-\r
-<P>After you start WinBoard in this way, type whatever modem commands are necessary to dial out to your Internet provider and log in. You may need to turn off <A HREF="07.htm#locallineediting">Local Line Editing</A> on the Options menu while typing commands to the modem, but turn it on again afterwards. Then telnet to the ICS, using a command like "telnet chessclub.com 5000". Important: See the paragraph in the <A HREF="22.htm">LIMITATIONS</A> section below about extra echoes.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="comportsettings"></A>/comPortSettings</B> <B><I>“dataRate,dataBits,parity,stopBits,flow”</I></B></P>\r
-\r
-<P>This option allows serial port parameters to be set from the command line or a settings file. The values are simply filled in to the <A HREF="07.htm#communications">Communications</A> dialog.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="icslogon"></A>/icslogon </B>or<B> <A NAME="internetchessserverlogonscript"></A>/internetChessServerLogonScript <I>filename</I></B></P>\r
-\r
-<P>This option lets you change the name used for the <A HREF="#icslogon">ICS Logon</A> file. Default: "ICS.ini". The filename is interpreted relative to WinBoard's installation directory (the directory containing WinBoard.exe).</P>\r
-\r
-\r
-\r
-<P><B><A NAME="autocomm"></A>/autocomm </B>or <B>/xautocomm</B>, or<B> <A NAME="autocomment"></A>/autoComment<I> true|false</I></B></P>\r
-\r
-<P>Sets the <A HREF="07.htm#autocommentcmd">Auto Comment</A> option. Default: False.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="autoflag"></A>/autoflag</B> or <B>/xautoflag</B>,<B> </B>or<B> <A NAME="autocallflag"></A>/autoCallFlag<I> true|false</I></B></P>\r
-\r
-<P>Sets the <A HREF="#autoflag">Auto Flag</A> option. Default: False.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="autobs"></A>/autobs</B> or <B>/xautobs</B>,<B> </B>or<B> <A NAME="autoobservecmd"></A>/autoObserve<I> true|false</I></B></P>\r
-\r
-<P>Sets the <A HREF="#autoobservecmd">Auto Observe</A> option. Default: False.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="autokibitz"></A><font color="#008000">/autoKibitz</font></B></P>\r
-\r
-<P><font color="#008000">Kibitzes the engines last thinking output (depth, score, time, speed, PV) to the ICS in zippy mode. Show Thinking must be on for this option to work.</font> <font color="#3333ff">Also diverts similar kibitz information of an opponent engine that is playing you through the ICS to the engine-output window, as if the engine was playing locally.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="moves"></A>/moves</B> or <B>/xmoves</B>,<B> </B>or<B> <A NAME="getmovelist"></A>/getMoveList<I> true|false</I></B></P>\r
-\r
-<P>Sets the <A HREF="07.htm#getmovelistcmd">Get Move List</A> option. Default: True.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="edit"></A>/edit<SUP> </SUP></B> or <B>/xedit</B>,<B> </B>or<B> <A NAME="locallineeditingoption"></A>/localLineEditing<I> true|false</I></B></P>\r
-\r
-<P>Sets the <A HREF="07.htm#locallineediting">Local Line Editing</A> option. Default: True.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="quiet"></A>/quiet </B>or <B>/xquiet</B>, or<B> <A NAME="quietplay"></A>/quietPlay<I> true|false</I></B></P>\r
-\r
-<P>Sets the <A HREF="07.htm#quietplaycmd">Quiet Play</A> option. Default: False</P>\r
-\r
-\r
-\r
-<P><B><A NAME="opt_blindfold"></A>/blindfold <I>true|false</I></B></P>\r
-\r
-<P>Sets the <A HREF="07.htm#blindfoldcmd">Blindfold</A> option. Default: False</P>\r
-\r
-\r
-\r
-<P><font color="#FF00FF"><A NAME="seekgraph"></A><B>/seekGraph <I>true|false</I></B>, or <A NAME="sg"></A><B>/sg</B></font></P>\r
-\r
-<P><font color="#FF00FF">Enables summoning up of the <A HREF="07.htm#seekgraphcmd">Seek Graph</A>  by left-clicking the board. Default: False</font></P>\r
-\r
-\r
-\r
-<P><B><font color="#FF00FF"><A NAME="autorefresh"></A>/autoRefresh <I>true|false</I></font></B></P>\r
-\r
-<P><font color="#FF00FF">Sets the <A HREF="07.htm#autorefreshcmd">Auto Refresh</A> option of the <A HREF="07.htm#seekgraphcmd">Seek Graph</A>. Default: False</font></P>\r
-\r
-\r
-\r
-<P><B><font color="#FF00FF"><A NAME="backgroundobserve"></A>/backgroundObserve <I>true|false</I></font></B></P>\r
-\r
-<P><font color="#FF00FF">Sets the <A HREF="07.htm#backgroundobservecmd">Background Observe</A> option for observing other games during play. Default: False</font></P>\r
-\r
-\r
-\r
-<P><B><font color="#FF00FF"><A NAME="dualboard"></A>/dualBoard <I>true|false</I></font></B></P>\r
-\r
-<P><font color="#FF00FF">Sets the <A HREF="07.htm#dualboardcmd">Dual Board</A> option for observing your partner's bughouse game. Default: False</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="pre"></A>/pre </B>or<B> <A NAME="xpre"></A>/xpre</B>, or<B> <A NAME="premove"></A>/premove<I> true|false</I></B></P>\r
-\r
-<P>Sets the <A HREF="07.htm#premovecmd">Premove</A> option. If set to True, the premove feature is enabled. If set to False, premove is disabled and the other <A HREF="07.htm#premovecmd">Premove</A> settings are ignored. Default: False.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="prewhite"></A>/prewhite </B>or<B> <A NAME="xprewhite"></A>/xprewhite</B>, or <B><A NAME="premovewhite"></A>/premoveWhite<I> true|false</I></B></P>\r
-\r
-\r
-\r
-<P><B><A NAME="premovewhitetext"></A>/premoveWhiteText<I> movetext</I></B></P>\r
-\r
-<P>If <B>premoveWhite</B> is set to True and you are playing white in an ICS game, the text specified by the <B>premoveWhiteText</B> option is sent to the ICS as soon as the game starts.  These options can be set from the <A HREF="07.htm#premovecmd">Premove</A> section of the <A HREF="07.htm#icsoptions">ICS Options</A> dialog box. The default for <B>premoveWhite</B> is False.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="preblack"></A>/preblack </B>or<B> <A NAME="xpreblack"></A>/xpreblack</B>, or <B><A NAME="premoveblack"></A>/premoveBlack<I> true|false</I></B></P>\r
-\r
-\r
-\r
-<P><B><A NAME="premoveblacktext"></A>/premoveBlackText<I> movetext</I></B></P>\r
-\r
-<P>If <B>premoveBlack</B> is set to True and you are playing black in an ICS game, the text specified by the <B>premoveBlackText</B> option is sent to the ICS as soon as the first move is received from your opponent, even if you make a different premove on the board before the first white move is received. These options can be set from the <A HREF="07.htm#premovecmd">Premove</A> section of the <A HREF="07.htm#icsoptions">ICS Options</A> dialog box. The default for <B>premoveBlack</B> is False.</P>\r
-\r
-\r
-\r
-<P><B><font color="#FF00FF"><A NAME="oneclickmove"></A>/oneClickMove <I>true|false</I></font></B></P>\r
-\r
-<P><font color="#FF00FF">Sets the <A HREF="07.htm#oneclickmovecmd">One-Click Move</A> option. Default: False</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="alarm"></A>/alarm </B>or<B> <A NAME="xalarm"></A>/xalarm</B>, or <B><A NAME="icsalarm"></A>/icsAlarm <I>true|false</I></B></P>\r
-\r
-\r
-\r
-<P><B><A NAME="icsalarmtime"></A>/icsAlarmTime <I>milliseconds</I></B></P>\r
-\r
-<P>When <B>icsAlarm</B> is set to True, the <A HREF="16.htm#soundicsalarm">alarm sound</A> is played when your clock counts down to <B>icsAlarmTime</B> seconds.  For ICS games with time controls that include an increment, the alarm will sound each time the clock counts down to the <B>icsAlarmTime</B>.  The <B>icsAlarmTime</B> can be set by selecting <A HREF="07.htm#icsalarm">ICS Alarm</A> from the <A HREF="07.htm#icsoptions">ICS options</A> dialog. The default is 5 seconds.</P>\r
-\r
-\r
-<P><B><font color="#3333FF"><A NAME="keepalive"></A>/keepAlive <I>time</I></font></B></P>\r
-\r
-<P><font color="#3333FF">When <I>time</I> is non-zero, send a “date” command every <I>time</I> minutes after your last move to the ICS, to prevent it from logging you off. (Do not use frivolously! The ICS operator might ban you.) Default: 0.</font></P>\r
-\r
-\r
-<P><B><font color="#FF00FF"><A NAME="chatboxes"></A>/chatBoxes <I>handles</I></font></B></P>\r
-\r
-<P><font color="#FF00FF">Sets the list of <A HREF="04.htm#openchatwindow">Chat Boxes</A> to be opened at startup. The given string handles should be a semicolon-separated list, like “shouts;53;Johnny” to open 3 chat boxes, to capture all shouts (including c-shouts and ‘it’ messages), the traffic on channel 53, and for a player named Johnny. Default: no chat windows.</font></P>\r
-\r
-\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/winboard/help/html/15.htm b/winboard/help/html/15.htm
deleted file mode 100644 (file)
index ec008af..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
-<HTML>\r
-<HEAD>\r
-<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
-<TITLE>Load and Save Options</TITLE>\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
-\r
-\r
-\r
-<P><B><A NAME="loadandsaveoptions"></A>Load and Save Options</B></P>\r
-\r
-\r
-\r
-<P><B><A NAME="lgf"></A>/lgf </B>or<B> <A NAME="loadgamefile"></A>/loadGameFile <I>filename</I><BR>\r
-<A NAME="lgi"></A>/lgi </B>or<B> <A NAME="loadgameindex"></A>/loadGameIndex <I>N</I></B></P>\r
-\r
-<P>If loadGameFile is set, WinBoard reads the specified game file at startup. You can leave out the name of this option and give just the file name, which is handy if you want to configure WinBoard as a game viewer with a browser such as the Windows Explorer or Netscape. The filename is interpreted relative to WinBoard's initial working directory. The filename "-" specifies the standard input. If there is more than one game in the file, WinBoard pops up a menu of the available games, with entries based on their PGN tags. If loadGameIndex is set to <I>N, </I>the menu is suppressed and the <I>N</I>th game found in the file is loaded immediately. \r
-<font color="#008000">A game index of –1 will load the first game, but step to the next game on each new game in <A HREF="12.htm#matchgames">Match Mode</A>. Similarly, an index of –2 will step to the next game every two games, so that all games are played by each player with both colors.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="td"></A>/td </B>or<B> <A NAME="timedelay"></A>/timeDelay <I>seconds</I></B></P>\r
-\r
-<P>Time delay between moves during <A HREF="03.htm#loadgame">Load Game</A>. Fractional seconds are allowed; try 0.4. A time delay value of -1 tells WinBoard not to step through game files automatically. Default: 1 second.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="sgf"></A>/sgf </B>or<B> <A NAME="savegamefile"></A>/saveGameFile <I>filename</I></B></P>\r
-\r
-<P>If this option is set, WinBoard appends a record of every game played to the specified file. The filename is interpreted relative to WinBoard's initial working directory. The filename "-" specifies the standard output.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="autosave"></A>/autosave</B> or <B>/xautosave</B>,<B> </B>or<B> <A NAME="autosavegames"></A>/autoSaveGames<I> true|false</I></B></P>\r
-\r
-<P>If this option is True, at the end of every game WinBoard prompts you for a filename and appends a record of the game to the file you specify. Ignored if saveGameFile is set. Default: False.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="lpf"></A>/lpf </B>or<B> <A NAME="loadpositionfile"></A>/loadPositionFile <I>filename</I><BR>\r
-<A NAME="lpi"></A>/lpi </B>or<B> <A NAME="loadpositionindex"></A>/loadPositionIndex <I>N</I></B></P>\r
-\r
-<P>If loadPositionFile is set, WinBoard loads the specified position file at startup. The filename is interpreted relative to WinBoard's initial working directory. The filename "-" specifies the standard input. If loadPositionIndex is set to <I>N</I>, the <I>N</I>th position found in the file is loaded; otherwise the first is loaded.\r
-<font color="#008000">A position index of –1 will load the first position, but step to the next position on each new game in <A HREF="12.htm#matchgames">Match Mode</A>. Similarly, an index of –2 will step to the next position every two games, so that all positions are played by each player with both colors.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="rewindindex"></A><font color="#008000">/rewindIndex <I>number</I></font></B></P>\r
-\r
-<P><font color="#008000">When <I>number</I> is non-zero, resets the game or position index used in the /lgf or /lpf options back to 1 after it has reached the value <I>number</I>. Default: 0.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="spf"></A>/spf </B>or<B> <A NAME="savepositionfile"></A>/savePositionFile <I>filename</I></B></P>\r
-\r
-<P>If this option is set, WinBoard appends the final position reached in every game played to the specified file. The filename is interpreted relative to WinBoard's initial working directory. The file name "-" specifies the standard output.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="pgnextendedinfo"></A><font color="#ff0000">/pgnExtendedInfo <I>true|false</I></font></B></P>\r
-\r
-<P><font color="#ff0000">If this option is set, WinBoard saves depth, score and time used for each move that the engine found as a comment in the PGN file.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="pgneventheader"></A><font color="#ff0000">/pgnEventHeader <I>string</I></font></B></P>\r
-\r
-<P><font color="#ff0000">Sets the name used in the PGN event tag to <I>string</I>.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="saveoutofbookinfo"></A><font color="#ff0000">/saveOutOfBookInfo <I>true|false</I></font></B></P>\r
-\r
-<P><font color="#ff0000">Include the information on how the engine(s) game out of its opening book in a special ‘annotator’ tag with the PGN file.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="oldsave"></A>/oldsave </B>or <B>/xoldsave</B>, or<B> <A NAME="oldsavestyle"></A>/oldSaveStyle<I> true|false</I></B></P>\r
-\r
-<P>If this option is False (the default), WinBoard saves games in PGN (portable game notation) and positions in FEN (Forsythe-Edwards notation). If the option is True, a save style that is compatible with older versions of WinBoard (and of xboard) is used instead.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="debug"></A>/debug</B> or <B>/xdebug</B>,<B> </B>or<B> <A NAME="debugmode"></A>/debugMode<I> true|false</I></B></P>\r
-\r
-<P>Writes debugging information to the file “WinBoard.debug”, including all commands sent to the chess engine, all output received from it, and all commands sent to ICS. You can press Ctrl+Alt+F12 to turn this option on or off while WinBoard is running. Each time you turn it on, any existing debug file is overwritten.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="debugfile"></A><font color="#ff0000">/debugFile<SUP> </SUP> <I>filename</I> </B>or<B> <A NAME="nameofdebugfile"></A>/nameOfDebugFile<I> filename</I></B></font></P>\r
-\r
-<P><font color="#ff0000">Sets the name of the file to which WinBoard saves debug information (including all communication to and from the engines).</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="enginedebugoutput"></A><font color="#008000">/engineDebugOutput<SUP> </SUP> <I>number</I></font></B></P>\r
-\r
-<P><font color="#008000">Specifies how WinBoard should handle unsollicited output from the engine, with respect to saving it in the debug file. The output is further (hopefully) ignored. If <I>number</I>=0, WinBoard refrains from writing such spurious output to the debug file. If<I> number</I>=1, all engine output is written faithfully to the debug file. If <I> number</I>=2, any protocol-violating line is prefixed with a ‘#’ character, as the engine itself should have done if it wanted to submit info for inclusion in the debug file.</font></font></P>\r
-\r
-<P><font color="#008000">This option is provided for the benefit of applications that use the debug file as a source of information, such as the broadcaster of live games TLCV / TLCS. Such applications can be protected from spurious engine output that might otherwise confuse them.<font color="#FF00FF">The case <I>number</I>=3 is similar, but now marks non-compliant engine output with a more conspicuous prefix.</font></P>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/winboard/help/html/16.htm b/winboard/help/html/16.htm
deleted file mode 100644 (file)
index 7b1991a..0000000
+++ /dev/null
@@ -1,506 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
-<HTML>\r
-<HEAD>\r
-<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
-<TITLE>User Interface Options</TITLE>\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
-\r
-\r
-\r
-<P><B><A NAME="userinterfaceoptions"></A>User Interface Options</B></P>\r
-\r
-\r
-\r
-<P><B><A NAME="firstlogo"></A><font color="#3333ff">/firstLogo <I>filename</I></font></B></P>\r
-\r
-\r
-\r
-<P><B><A NAME="secondlogo"></A><font color="#3333ff">/secondLogo <I>filename</I></font></B></P>\r
-\r
-<P><font color="#3333ff">The appearance of either of these options causes WinBoard to reserve space for displaying logos on both sides of the clocks. Normally the first logo goes left, the second right, unless the option ‘swap clocks’ is in effect. The <I>filename</I> must refer to a bitmap file (.bmp) containing a logo for the particular player (usually a 130x65 or 100x50 bitmap, which will be scaled to the height of two clock lines.)</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="autologo"></A><font color="#3333ff">/autoLogo<I> true|false</I></font></B></P>\r
-\r
-<P><font color="#3333ff">When true, causes WinBoard to automatically supply a logo for the first and second chess program, by looking for a fie named logo.bmp in the engine directory (as specified by the /fd or /sd option), and then displays it like this file was given as an argument to the /firstLogo or /secondLogo option. In this mode it will also look in a sub-folder of its installation folder called “logos”, for finding logos with names corresponding to the ICS (e.g. “chessclub.com.bmp”) or to the human user, should they be involved in a game.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="hidethinkingfromhuman"></A><font color="#ff0000">/hideThinkingFromHuman<I> true|false</I></font></B></P>\r
-\r
-<P><font color="#ff0000">Prevents the engine thinking output to appear in the display, without necessitating to suppress the sending of this information altogether (so it can still appear in the PGN).</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="nogui"></A><font color="#3333ff">/noGUI</font></B></P>\r
-\r
-<P><font color="#3333ff">Suppresses all GUI functions of WinBoard (to speed up automated ultra-fast engine-engine games, which you don’t want to watch). There will be no board or clock updates, no printing of moves, and no update of the icon on the task bar in this mode.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="top"></A>/top </B>or <B>/xtop</B>, or<B> <A NAME="alwaysontopopt"></A>/alwaysOnTop<I> true|false</I></B></P>\r
-\r
-<P>Sets the <A HREF="07.htm#alwaysontop">Always On Top</A> option. Default: False.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="queen"></A>/queen</B> or <B>/xqueen</B>,<B> </B>or<B> <A NAME="alwayspromotetoqueen"></A>/alwaysPromoteToQueen<I> true|false</I></B></P>\r
-\r
-<P>Sets the <A HREF="07.htm#alwaysqueen">Always Queen</A> option. Default: False.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="drag"></A>/drag</B> or <B>/xdrag</B>,<B> </B>or<B> <A NAME="animatedraggingopt"></A>/animateDragging<I> true|false</I></B></P>\r
-\r
-<P>Sets the <A HREF="07.htm#animatedragging">Animate Dragging</A> option. Default: True.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="animate"></A>/animate </B>or <B>/xanimate</B>, or<B> <A NAME="animatemovingopt"></A>/animateMoving<I> true|false</I></B></P>\r
-\r
-<P>Sets the <A HREF="07.htm#animatemoving">Animate Moving</A> option. Default: True.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="flip"></A>/flip </B>or <B>/xflip</B>, or<B> <A NAME="flipviewoption"></A>/flipView<I> true|false</I></B></P>\r
-\r
-<P>If Auto Flip View is not set, or if you are observing but not participating in a game, then the positioning of the board at the start of each game depends on the flipView option.  If flipView is False (the default), the board is positioned so that the white pawns move from the bottom to the top; if True, the black pawns move from the bottom to the top. In any case, the <A HREF="07.htm#flipview">Flip View</A> menu command can be used to flip the board after the game starts</P>\r
-\r
-\r
-\r
-<P><B><A NAME="autoflip"></A>/autoflip</B> or <B>/xautoflip</B>, or <A NAME="autoflipviewoption"></A><B>/autoFlipView <I>true|false</I></B></P>\r
-\r
-<P>Sets the <A HREF="07.htm#autoflipview">Auto Flip View</A> option. Default: True.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="autoraise"></A>/autoraise</B> or <B>/xautoraise</B>, or <A NAME="autoraiseboardoption"></A><B>/autoRaiseBoard <I>true|false</I></B></P>\r
-\r
-<P>Sets the <A HREF="07.htm#autoflipview">Auto Raise Board</A> option. Default: True.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="highdrag"></A>/highdrag </B>or <B>/xhighdrag</B>, or<B> <A NAME="highlightdraggingopt"></A>/highlightDragging <I>true|false</I></B></P>\r
-\r
-<P>Sets the <A HREF="07.htm#highlightdragging">Highlight Dragging</A> option. <font color="#FF00FF">Must be on for /showTargetSquares to work.</font> Default: False.</P>\r
-\r
-\r
-<P><B><A NAME="showtargets"></A><font color="#ff00ff">/showTargetSquares <I>true|false</I></font></B></P>\r
-\r
-<P><font color="#ff00ff">When set, and the Highlight Dragging option is set, WinBoard will indicate all squares a piece can legally move to when you pick up that piece, by drawing a colored dot in it. Default: False.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="highlight"></A>/highlight </B>or <B>/xhighlight</B>, or<B> <A NAME="highlightlastmoveopt"></A>/highlightLastMove<I> true|false</I></B></P>\r
-\r
-<P>Sets the <A HREF="#highlightlastmoveopt">Highlight Last Move</A> option. Default: False.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="popup"></A>/exit</B> or <B>/xexit</B>,<B> </B>or<B> <A NAME="popupmoveerrorsopt"></A>/popupExitMessage<I> true|false</I></B></P>\r
-\r
-<P>Sets the <A HREF="07.htm#popupexitmessagecmd">Popup Exit Message</A> menu option. Default: False.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="popup"></A>/popup</B> or <B>/xpopup</B>,<B> </B>or<B> <A NAME="popupmoveerrorsopt"></A>/popupMoveErrors<I> true|false</I></B></P>\r
-\r
-<P>Sets the <A HREF="07.htm#popupmoveerrorscmd">Popup Move Errors</A> menu option. Default: False.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="coords"></A>/coords </B>or <B>/xcoords</B>, or<B> <A NAME="showcoords"></A>/showCoords<I> true|false</I></B></P>\r
-\r
-<P>Sets the <A HREF="#showcoords">Show Coords</A> option. Default: False.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="legal"></A>/legal </B>or <B>/xlegal</B>, or<B> <A NAME="testlegality"></A>/testLegality<I> true|false</I></B></P>\r
-\r
-<P>Sets the <A HREF="07.htm#testlegalitycmd">Test Legality</A> option. Default: True.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="size"></A>/size </B>or<B> <A NAME="boardsize"></A>/boardSize <I>sizename</I></B></P>\r
-\r
-<P>Sets the <A HREF="07.htm#boardsizecmd">Board Size</A> option. Also chooses which board size any following Font options will affect. The default is the largest size that will fit on your screen.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="wpc"></A>/wpc</B> or <B><A NAME="whitepiececolor"></A>/whitePieceColor <I>color<BR>\r
-</I><A NAME="bpc"></A>/bpc </B>or <B><A NAME="blackpiececolor"></A>/blackPieceColor <I>color<BR>\r
-</I><A NAME="lsc"></A>/lsc </B>or<B><I> </I><A NAME="lightsquarecolor"></A>/lightSquareColor <I>color</I><SUP> </SUP><BR>\r
-<A NAME="dsc"></A>/dsc </B>or<B> <A NAME="darksquarecolor"></A>/darkSquareColor <I>color</I><SUP> </SUP></B></P>\r
-\r
-<P>Color specifications for white pieces, black pieces, light squares, and dark squares. Colors can be specified only by red/green/blue intensity, either in hexadecimal (as <I>#rrggbb</I>) or in decimal (as <I>rrr,ggg,bbb</I>). In the latter format, you must enclose the string in quotation marks if you leave spaces after the commas. The defaults are respectively #FFFFCC, #202020, #C8C365, and #77A26D. Available on the <A HREF="07.htm#boardcolors">Board Colors</A> section of the <A HREF="07.htm#boardoptions">Board Options</A> dialog.</P>\r
-\r
-\r
-\r
-<P>If you are using a <A NAME="grayscale"></A>grayscale monitor, try setting the colors to:</P>\r
-\r
-<PRE><CODE>-whitePieceColor:#FFFFFF\r
--blackPieceColor:#000000\r
--lightSquareColor:#CCCCCC\r
--darkSquareColor:#999999</CODE></PRE>\r
-\r
-\r
-\r
-<P><B><A NAME="hsc"></A>/hsc </B>or<B> <A NAME="highlightsquarecolor"></A>/highlightSquareColor <I>color</I><SUP> </SUP><BR>\r
-<A NAME="phc"></A>/phc </B>or <B><A NAME="premovehighlightcolor"></A>/premoveHighlightColor <I>color</I><SUP> </SUP></B></P>\r
-\r
-<P>Color specifications for the <A HREF="07.htm#highlightlastmove">Highlight Last Move</A> and <A HREF="07.htm#premovecmd">Premove</A> options, respectively. Colors can be specified only by red/green/blue intensity, either in hexadecimal (as <I>#rrggbb</I>) or in decimal (as <I>rrr,ggg,bbb</I>). In the latter format, you must enclose the string in quotation marks if you leave spaces after the commas. The defaults are respectively #FFFF00 and #FF0000, respectively. <font color="#3333FF">These colors are also used to indicate non-captures and captures, respectively, with the /showTargetSquares option. The premove color is also used to indicate the most recent move when stepping through the principal variation of an engine.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="mono"></A>/mono</B> or <B>/xmono</B>,<B> </B>or<B> <A NAME="monomode"></A>/monoMode<I> true|false</I></B></P>\r
-\r
-<P>Determines whether WinBoard displays its pieces and squares in black and white (True) or color (False, the default). Available in the <A HREF="07.htm#boardcolors">Board Colors</A> section of the <A HREF="07.htm#boardoptions">Board Options</A> dialog.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="flipblack"></A><font color="#008000">/flipBlack<I> true|false</I></font></B></P>\r
-\r
-<P><font color="#008000">Determines whether WinBoard displays the black pieces upside down (or the white pieces in Flip View). Useful with Shogi with the traditional Japanese pieces, which are not distinguished by color but by orientation.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="allwhite"></A><font color="#008000">/allWhite<I> true|false</I></font></B></P>\r
-\r
-<P><font color="#008000">Determines whether the white piece bitmaps will be used to display black pieces. The white pieces have a dark outline, which the black pieces lack. This makes the latter look vague if the color you give them is not very dark.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="renderpieceswithfont"></A><font color="#ff0000">/renderPiecesWithFont <I>fontname</I></font></B></P>\r
-\r
-<P><font color="#ff0000">Uses the named true-type font to render the pieces, rather than the built-in bitmaps. The font must be installed on your computer. If the name starts with a *  it is ignored, allowing you to easily disable a font temporarily in the whinboard.ini file.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="fontpiecetochartable"></A><font color="#ff0000">/fontPieceToCharTable <I>characterstring</I></font></B></P>\r
-\r
-<P><font color="#ff0000">If font-based rendering of the pieces is used, this table specifies which character of the font alphabet should be used for which piece. The format of the character strings is the same as that of the argument of /pieceToCharTable.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="fontpiecesize"></A><font color="#ff0000">/fontPieceSize <I>number</I></font></B></P>\r
-\r
-<P><font color="#ff0000">The number gives the size of the piece, as a percentage of the square size.</font></P>\r
-\r
-\r
-\r
-<P><font color="#ff0000"><B><A NAME="fontpiecebackcolorwhite"></A>/fontPieceBackColorWhite <I>color<BR>\r
-</I><A NAME="fontpieceforecolorwhite"></A>/fontPieceForeColorWhite <I>color<BR>\r
-</I><A NAME="fontpiecebackcolorblack"></A>/fontPieceBackColorBlack <I>color<BR>\r
-</I><A NAME="fontpieceforecolorblack"></A>/fontPieceForeColorBlack <I>color</I><SUP> </SUP></B></font></P>\r
-\r
-<P><font color="#ff0000">Color specifications for white pieces, black pieces that are generated with font-based rendering.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="litebacktexturefile"></A><font color="#ff0000">/liteBackTextureFile <I>filename</I></font></B></P>\r
-\r
-\r
-\r
-<P><B><A NAME="darkbacktexturefile"></A><font color="#ff0000">/darkBackTextureFile <I>filename</I></font></B></P>\r
-\r
-<P><font color="#ff0000">The filename indicates a bitmap file that should be used to display the light or dark squares, allowing you to make boards that look like wood, marble, etc. A filename starting with * is ignored.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="litebacktexturemode"></A><font color="#ff0000">/liteBackTextureMode <I>number</I></font></B></P>\r
-\r
-\r
-\r
-<P><B><A NAME="darkbacktexturemode"></A><font color="#ff0000">/darkBackTextureMode <I>number</I></font></B></P>\r
-\r
-<P><font color="#ff0000">The number indicates the way the files given in the background-texture options should be used to fill in the squares. Valid texture modes are 1 (default) and 2. In mode 1 the squares are taken from portions of the texture bitmap and copied without further processing. In mode 2, squares can also be rotated, mirrored and so on in order to provide a little more variety to the texture. The operations are selected at random so the board will look slightly different every time the program is run.</font><BR>\r
-</P>\r
-\r
-\r
-\r
-<P><B><A NAME="overidelinegap"></A><font color="#ff0000">/overideLineGap <I>number</I></font></B></P>\r
-\r
-<P><font color="#ff0000">The number specifies the width, in pixels, of the grid lines used to separate the squares. If it is very small (like a single pixel), it becomes vey hard to see which squares are highlighted (to indicate the last move), as this highlighting is a color change of these grid lines. Highlighting the moves with an arrow is then recommended.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="highlightmoveswitharrow"></A><font color="#ff0000">/highlightMovesWithArrow <I>true|false</I></font></B></P>\r
-\r
-<P><font color="#ff0000">If this option is true, a big, fat arrow is drawn to indicate the last move.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="highlightarrowcolor"></A><font color="#ff0000">/highlightArrowColor <I>color</I></font></B></P>\r
-\r
-<P><font color="#ff0000">Specifies the color of the arrow that highlights the moves.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="evalhistocolorwhite"></A><font color="#ff0000">/evalHistoColorWhite <I>color</I></font></B></P>\r
-\r
-\r
-\r
-<P><B><A NAME="evalhistocolorblack"></A><font color="#ff0000">/evalHistoColorBlack <I>color</I></font></B></P>\r
-\r
-<P><font color="#ff0000">Specifies the colors to be used to plot the white and black scores in the evaluation graph.</font><BR>\r
-</P>\r
-\r
-\r
-\r
-<P><B><A NAME="colorshout"></A>/colorShout<I> “effects color”<BR>\r
-</I><A NAME="colorsshout"></A>/colorSShout <I>“effects color”<BR>\r
-</I><A NAME="colorchannel1"></A>/colorChannel1 <I>“effects color”</I><BR>\r
-<A NAME="colorchannel"></A>/colorChannel <I>“effects color”</I><BR>\r
-<A NAME="colorkibitz"></A>/colorKibitz <I>“effects color”</I><BR>\r
-<A NAME="colortell"></A>/colorTell <I>“effects color”</I><BR>\r
-<A NAME="colorchallenge"></A>/colorChallenge <I>“effects color”</I><BR>\r
-<A NAME="colorrequest"></A>/colorRequest <I>“effects color”</I><BR>\r
-<A NAME="colorseek"></A>/colorSeek <I>“effects color”</I><BR>\r
-<A NAME="colornormal"></A>/colorNormal <I>“effects color”</I></B></P>\r
-\r
-<P>Select colors and effects to colorize messages in the ICS Interaction window. The effects may be any combination of <B>b</B>old, <B>i</B>talic, <B>u</B>nderline, and <B>s</B>trikeout. Colors are specified as for squares and pieces. Available on the <A HREF="07.htm#icsinteractioncolors">ICS Interaction Colors</A> section of the <A HREF="07.htm#icsoptions">ICS Options</A> dialog. Limitation: On 256 color displays, Windows chooses the nearest solid color from the system palette, which will not always be close to the color you selected.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="colorbackground"></A>/colorBackground <I>color</I></B></P>\r
-\r
-<P>Sets the background color for the ICS Interaction window. Available on the <A HREF="07.htm#icsinteractioncolors">ICS Interaction Colors</A> section of the <A HREF="07.htm#icsoptions">ICS Options</A> dialog.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="colorize"></A>/colorize<SUP> </SUP></B>or <B>/xcolorize</B>, or<B> <A NAME="colorizemessages"></A>/colorizeMessages<I> true|false</I></B></P>\r
-\r
-<P>If True, WinBoard colorizes messages in the ICS Interaction window with the colors listed above. Default: True. Available in the <A HREF="07.htm#icsinteractioncolors">ICS Interaction Colors</A> section of the <A HREF="07.htm#icsoptions">ICS Options</A> dialog.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="clockfont"></A>/clockFont “<I>fontname:size effects</I>”<BR>\r
-<A NAME="messagefont"></A>/messageFont “<I>fontname:size effects</I>”<BR>\r
-<A NAME="coordfont"></A>/coordFont “<I>fontname:size effects</I>”<BR>\r
-<A NAME="tagsfont"></A>/tagsFont “<I>fontname:size effects</I>”<BR>\r
-<A NAME="commentfont"></A>/commentFont “<I>fontname:size effects</I>”<BR>\r
-<A NAME="icsfont"></A>/icsFont “<I>fontname:size effects</I>”</B></P>\r
-\r
-<P>The fonts used respectively for the clocks, the message display line, rank and file coordinate labels, the Edit Tags dialog, the Edit Comment dialog, and the ICS Interaction window. These options may be given more than once. Each occurrence affects the fonts for the current board size; that is, the size given in the last preceding /boardSize option, if any, or else the default size. The font size may contain a decimal point, and the effects may be any combination of <B>b</B>old, <B>i</B>talic, <B>u</B>nderline, and <B>s</B>trikeout. Example: <CODE>/clockFont="Arial:20.0 bi".</CODE> Available on the <A HREF="07.htm#fonts">Fonts</A> menu.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="soundshout"></A>/soundShout<I> sound<BR>\r
-</I><A NAME="soundsshout"></A>/soundSShout <I>sound<BR>\r
-</I><A NAME="soundchannel1"></A>/soundChannel1 <I>sound</I><BR>\r
-<A NAME="soundchannel"></A>/soundChannel <I>sound</I><BR>\r
-<A NAME="soundkibitz"></A>/soundKibitz <I>sound</I><BR>\r
-<A NAME="soundtell"></A>/soundTell <I>sound</I><BR>\r
-<A NAME="soundchallenge"></A>/soundChallenge <I>sound</I><BR>\r
-<A NAME="soundrequest"></A>/soundRequest <I>sound</I><BR>\r
-<A NAME="soundmove"></A>/soundMove <I>sound</I><SUP> </SUP><BR>\r
-<A NAME="soundbell"></A>/soundBell <I>sound</I><SUP> </SUP></B></P>\r
-\r
-\r
-\r
-<P><B><A NAME="soundicswin"></A>/soundIcsWin <I>sound</I><BR>\r
-<A NAME="soundicsloss"></A>/soundIcsLoss <I>sound</I><SUP> </SUP><BR>\r
-<A NAME="soundicsdraw"></A>/soundIcsDraw <I>sound</I><SUP> </SUP><BR>\r
-<A NAME="soundicsunfinished"></A>/soundIcsUnfinished <I>sound</I><SUP> </SUP></B></P>\r
-\r
-\r
-\r
-<P><B><A NAME="soundicsalarm"></A>/soundIcsAlarm <I>sound</I><SUP> </SUP></B></P>\r
-\r
-<P>Associate sounds with WinBoard events. Most of the events are the same ones that cause text colorization. In addition, <B>soundMove</B> is played if a chess engine or another player makes a move. <B>SoundBell</B> is played if the chess server sends an ASCII BEL character (Ctrl+G). Available on the <A HREF="07.htm#sounds">Sounds</A> menu.</P>\r
-\r
-<P><B>SoundIcsWin</B>, <B>soundIcsLoss</B>, <B>soundIcsDraw</B> and <B>soundIcsUnfinished</B> are played at the conclusion of an ICS game.  The result of the game determines which sound is played.</P>\r
-\r
-<P><B>SoundIcsAlarm</B> is played when your game clock counts down to <A HREF="14.htm#icsalarmtime">icsAlarmTime</A>. </P>\r
-\r
-<P>The <I>sound</I> argument may be one of the following:\r
-\r
-<UL>\r
-       <LI>The name of a <CODE>.wav</CODE> file. The filename is interpreted relative to WinBoard's installation directory (the directory containing WinBoard.exe).<BR><BR></LI>\r
-\r
-       <LI><CODE>$</CODE>, indicating the default system sound.<BR><BR></LI>\r
-\r
-       <LI><CODE>!</CODE> followed by the name of a built-in WinBoard wave resource.<BR><BR></LI>\r
-\r
-       <LI><CODE>!</CODE> alone, or “” (empty string), indicating silence.</LI>\r
-</UL>\r
-\r
-<P>The default for soundMove and soundBell is <CODE>$</CODE>, while the others default to silence.</P>\r
-\r
-\r
-<P><B><A NAME="dropmenu"></A><font color="#FF00FF">/dropMenu <I>true|false</I></font></B></P>\r
-\r
-<P><font color="#FF00FF">This option allows you to emulate old behavior, where the right mouse button brings up the (now deprecated) drop menu rather than displaying the position at the end of the principal variation. Default: False.</font></P>\r
-\r
-\r
-<P><B><A NAME="icsmenu"></A>/icsMenu={<I>entries</I>} </B>or <B>/icsMenu=@<I>filename</I></B></P>\r
-\r
-<P>This option lets you customize the right-button <A HREF="09.htm">context menu</A> that is available in the upper (output) pane of the ICS Interaction window. It consists of a list of menu entries, one per line. If the option value starts with an @ sign, it is the name of a file that contains the entries. Each entry contains either four fields separated by commas or the single character <CODE>"-"</CODE>. The fields are:\r
-\r
-<OL>\r
-       <LI>The menu text. If this field begins with <CODE>"|"</CODE>, the item begins a new column in the menu and the <CODE>"|"</CODE> is not shown. If this field contains an <CODE>"&amp;"</CODE>, the character after the ampersand is underlined in the menu and acts as a keyboard shortcut for the item when the menu is displayed. Do not assign the same shortcut key to two different menu items.<BR><BR></LI>\r
-\r
-       <LI>Text to insert into the input pane. The text cannot include a comma. You can use ICS aliases to get around this limitation.<BR><BR></LI>\r
-\r
-       <LI>A flag (1 or 0) saying whether to insert a space and <I>name </I>(see <A HREF="09.htm#tell">above</A>) after the text. If you set this flag, you might also want to put "(name)" into the menu text as a memory aid.<BR><BR></LI>\r
-\r
-       <LI>A flag (1 or 0) saying whether the result should be sent immediately to ICS or left in the input pane for further editing.</LI>\r
-</OL>\r
-\r
-<P><font color="#FF00FF">You can now use two special insert texts “chat” and “none” in the entry definitions. In stead of being sent to the ICS, WinBoard will recognize them as special cases (they are not valid ICS commands anyway). “Chat” will open a chat box for the handle you clicked on, “none” will define a disabled entry (usually used with an item name of spaces), which you could put in the position of the menu that pops up under your mouse pointer, so there would be no default action when you up-click without moving the mouse first.</font></P>\r
-\r
-<P>The entry <CODE>"-"</CODE> produces a separator line in the menu. The top three menu entries are always <B>Copy and Paste</B>, <B>Copy</B>, and <B>Paste</B>, but you have full control over the rest of the menu.</P>\r
-\r
-<P>The default menu is:</P>\r
-\r
-<PRE><CODE>–\r
-&amp;Who,who,0,1\r
-Playe&amp;rs,players,0,1\r
-&amp;Games,games,0,1\r
-&amp;Sought,sought,0,1\r
-|<font color="#FF00FF"> ,none,0,0\r
-Open Chat &Box (name),chat,1,0</font>\r
-&amp;Tell (name),tell,1,0\r
-M&amp;essage (name),message,1,0\r
\r
-&amp;Finger (name),finger,1,1\r
-&amp;Vars (name),vars,1,1\r
-&amp;Observe (name),observe,1,1\r
-&amp;Match (name),match,1,1\r
-Pl&amp;ay (name),play,1,1</CODE></PRE>\r
-\r
-<P>There is no graphical user interface to set this option. To change it, edit your <A HREF="19.htm#settings">settings</A> file with a plain text editor such as Notepad.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="icsnames"></A>/icsNames={<I>names</I>} </B>or <B>/icsNames=@<I>filename</I></B></P>\r
-\r
-<P>This option lets you customize the drop-down list of ICS names that appears in the WinBoard startup dialog. It consists of a list of strings, one per line. If the option value starts with an @ sign, it is the name of a file that contains the strings. When you select a string from the drop-down list, WinBoard prepends the text ”/ics /icsHost=” and adds the result to the command-line options. There is no graphical user interface to set this option. To change it, edit your <A HREF="19.htm#settings">settings</A> file with a plain text editor such as Notepad.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="firstchessprogramnames"></A>/firstChessProgramNames={<I>names</I>} </B>or <B>/firstChessProgramNames="@<I>filename</I>"</B></P>\r
-\r
-<P>This option lets you customize the first drop-down list of chess engine names that appears in the WinBoard startup dialog. It consists of a list of strings, one per line. If the option value starts with an @ sign, it is the name of a file that contains the strings. When you select a string from the drop-down list, WinBoard prepends the text ”/cp /firstChessProgram=” and adds the result to the command-line options. </P>\r
-\r
-<P>There is no graphical user interface to set this option. To change it, edit your <A HREF="19.htm#settings">settings</A> file with a plain text editor such as Notepad. Example:</P>\r
-\r
-<PRE><CODE>/firstChessProgramNames={GNUChess\r
-WCrafty-15_11 /fd="C:\Program Files\Crafty"\r
-ArasanX /fd="C:\Program Files\Arasan\Arasan 4.1"\r
-"EXchess xb" /fd=C:\EXchess\r
-Comet-WB /fd=C:\Comet\r
-}</CODE></PRE>\r
-\r
-\r
-\r
-<P><B><A NAME="secondchessprogramnames"></A>/secondChessProgramNames={<I>names</I>}</B> or <B>/secondChessProgramNames="@<I>filename</I>"</B></P>\r
-\r
-<P>This option lets you customize the second drop-down list of chess engine names that appears in the WinBoard startup dialog. It consists of a list of strings, one per line. If the option value starts with an @ sign, it is the name of a file that contains the strings. When you select a string from the drop-down list, WinBoard prepends the text ”/cp /secondChessProgram=” and adds the result to the command-line options.</P>\r
-\r
-<P>There is no graphical user interface to set this option. To change it, edit your <A HREF="19.htm#settings">settings</A> file with a plain text editor such as Notepad. Example:</P>\r
-\r
-<P><CODE>/secondChessProgramNames={GNUChess<BR>\r
-WCrafty-15_11 /sd="C:\\Program Files\\Crafty\"<BR>\r
-ArasanX /sd="C:\Program Files\Arasan\Arasan 4.1"<BR>\r
-"EXchess xb" /sd=C:\EXchess<BR>\r
-Comet-WB /sd=C:\Comet<BR>\r
-}</CODE></P>\r
-\r
-\r
-\r
-<P><B><A NAME="xy"></A>/x=<I>xcoord  </I>/y=<I>ycoord</I></B></P>\r
-\r
-<P>Sets the initial location of the board window, giving the screen coordinates of the upper left-hand corner. Both arguments must be given together.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="xywh"></A>/analysisX=<I>xcoord  </I>/analysisY=<I>ycoord</I>  /analysisW=<I>width</I>  /analysisH=<I>height</I></B></P>\r
-\r
-<P><font color="#3333ff">These options have been deprecated, as the analysis window is replaced by the more general engine-output window. They are recognized, but ignored, and no longer saved in the winboard.ini file.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="xywh"></A>/commentX=<I>xcoord  </I>/commentY=<I>ycoord</I>  /commentW=<I>width</I>  /commentH=<I>height</I></B></P>\r
-\r
-<P>Sets the initial location and size of the Comment window, giving the screen coordinates of the upper left-hand corner <font color="#3333ff">(relative to the main window)</font>, the width, and the height. All four arguments must be given together.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="xywh"></A>/gameListX=<I>xcoord  </I>/gameListY=<I>ycoord</I>  /gameListW=<I>width</I>  /gameListH=<I>height</I></B></P>\r
-\r
-<P>Sets the initial location and size of the Game List window, giving the screen coordinates of the upper left-hand corner <font color="#3333ff">(relative to the main window)</font>, the width, and the height. All four arguments must be given together.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="xywh"></A>/icsX=<I>xcoord  </I>/icsY=<I>ycoord</I>  /icsW=<I>width</I>  /icsH=<I>height</I></B></P>\r
-\r
-<P>Sets the initial location and size of the ICS Interaction window, giving the screen coordinates of the upper left-hand corner <font color="#3333ff">(relative to the main window)</font>, the width, and the height. All four arguments must be given together.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="xywh"></A>/tagsX=<I>xcoord  </I>/tagsY=<I>ycoord</I>  /tagsW=<I>width</I>  /tagsH=<I>height</I></B></P>\r
-\r
-<P>Sets the initial location and size of the Tags window, giving the screen coordinates of the upper left-hand corner <font color="#3333ff">(relative to the main window)</font>, the width, and the height. All four arguments must be given together.</P>\r
-\r
-\r
-\r
-<P><font color="#ff0000"><B><A NAME="xywh"></A>/moveHistoryX=<I>xcoord  </I>moveHistoryY=<I>ycoord</I>  /moveHistoryW=<I>width</I>  /moveHistoryH=<I>height</I></B></font></P>\r
-\r
-<P><font color="#ff0000">Sets the initial location and size of the move-history window, giving the screen coordinates of the upper left-hand corner</font> <font color="#3333ff">(relative to the main window)</font><font color="#ff0000">, the width, and the height. All four arguments must be given together.</font></P>\r
-\r
-\r
-\r
-<P><font color="#ff0000"><B><A NAME="xywh"></A>/evalGraphX=<I>xcoord  </I>/evalGraphY=<I>ycoord</I>  /evalGraphW=<I>width</I>  /evalGraphH=<I>height</I></B></font></P>\r
-\r
-<P><font color="#ff0000">Sets the initial location and size of the evaluation-graph window, giving the screen coordinates of the upper left-hand corner</font> <font color="#3333ff">(relative to the main window)</font><font color="#ff0000">, the width, and the height. All four arguments must be given together.</font></P>\r
-\r
-\r
-\r
-<P><font color="#ff0000"><B><A NAME="xywh"></A>/engineOutputX=<I>xcoord  </I>/engineOutputY=<I>ycoord</I>  </B></font></P>\r
-\r
-<P><font color="#ff0000"><B>/engineOutputW=<I>width</I>  /engineOutputH=<I>height</I></B></font></P>\r
-\r
-<P><font color="#ff0000">Sets the initial location and size of the engine-output window, giving the screen coordinates of the upper left-hand corner</font> <font color="#3333ff">(relative to the main window)</font><font color="#ff0000">, the width, and the height. All four arguments must be given together.</font></P>\r
-\r
-\r
-\r
-<P><font color="#ff0000"><B><A NAME="windowup"></A>/engineOutputUp <I>true|false </I></B></font></P>\r
-\r
-\r
-\r
-<P><font color="#ff0000"><B><A NAME="windowup"></A>/evalGraphUp <I>true|false</I></B></font></P>\r
-\r
-\r
-\r
-<P><font color="#ff0000"><B><A NAME="windowup"></A>/moveHistoryUp <I>true|false</I></B></font></P>\r
-\r
-<P><font color="#ff0000">If set to True, the corresponding window is displayed, if False, the window is absent.</font></P>\r
-\r
-\r
-\r
-<P><font color="#ff0000"><B><A NAME="stickywindows"></A>/stickyWindows <I>true|false</I></B></font></P>\r
-\r
-<P><font color="#ff0000">Auxiliary windows touching the main window will stay attached to the latter when you move it.</font></P>\r
-\r
-\r
-\r
-<P><font color="#ff0000"><B><A NAME="autodisplaycomment"></A>/autoDisplayComment <I>true|false</I></B></font></P>\r
-\r
-\r
-\r
-<P><font color="#ff0000"><B><A NAME="autodisplaytags"></A>/autoDisplayTags <I>true|false</I></B></font></P>\r
-\r
-<P><font color="#ff0000">If set to True, these options cause the window with the move comments, and the window with PGN tags, respectively, to pop up automatically when such tags or comments are encountered during the replaying a stored or loaded game.</font></P>\r
-\r
-\r
-\r
-<P><font color="#ff0000"><B><A NAME="gamelisttags"></A>/gameListTags <I>string</I></B></font></P>\r
-\r
-<P><font color="#ff0000">The <I>string</I> contains single-character codes specifying the PGN tags that have to be listed for each game in the game-list window, and their order. The meaning of the characters is a=out-of-book info, b=black Elo, e=event, d=date, o=round, p=players, r=result, w=white Elo, s=site, t=time control and v=variant, Default: “eprd”.</font></P>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/winboard/help/html/17.htm b/winboard/help/html/17.htm
deleted file mode 100644 (file)
index c1f77cb..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
-<HTML>\r
-<HEAD>\r
-<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
-<TITLE>Adjudication Options</TITLE>\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
-\r
-\r
-\r
-<P><font color="#ff0000"><B><A NAME="adjudicationoptions"></A>Adjudication Options</B></font></P>\r
-\r
-\r
-\r
-<P><font color="#ff0000"><B><A NAME="adjudicatelossthreshold"></A>/adjudicateLossThreshold <I>scorethreshold</I></B></font></P>\r
-\r
-<P><font color="#ff0000">If the given value is non-zero, WinBoard adjudicates the game as a loss if both engines agree for a duration of 6 consecutive ply that the score is below the given score threshold for that engine. Make sure the score is interpreted properly by WinBoard, using /firstScoreAbs and /secondScoreAbs if needed.</font></P>\r
-\r
-\r
-\r
-<P><font color="#ff0000"><B><A NAME="adjudicatedrawmoves"></A>/adjudicateDrawMoves <I>number</I></B></font></P>\r
-\r
-<P><font color="#ff0000">If the given value is non-zero, WinBoard adjudicates the game as a draw if after the given <I>number</I> of moves it was not yet decided.</font></P>\r
-\r
-\r
-\r
-<P><font color="#008000"><B><A NAME="checkmates"></A>/checkMates<I> true|false</I></B></font></P>\r
-\r
-<P><font color="#008000">If this option is True, WinBoard detects all checkmates and stalemates, and ends the game as soon as they occur. Legality-testing must be on for this option to work.</font></P>\r
-\r
-\r
-\r
-<P><font color="#008000"><B><A NAME="testclaims"></A>/testClaims<I> true|false</I></B></font></P>\r
-\r
-<P><font color="#008000">If this option is True, WinBoard verifies all result claims made by engines, and those who send false claims will forfeit the game because of it. Legality-testing must be on for this option to work.</font></P>\r
-\r
-\r
-\r
-<P><font color="#008000"><B><A NAME="materialdraws"></A>/materialDraws<I> true|false</I></B></font></P>\r
-\r
-<P><font color="#008000">If this option is True, WinBoard adjudicates games as draws when there is no sufficient material left to create a checkmate. This applies to KBKB with like bishops, and to KBK, KNK and KK. Legality-testing must be on for this option to work.</font></P>\r
-\r
-\r
-\r
-<P><font color="#008000"><B><A NAME="trivialdraws"></A>/trivialDraws<I> true|false</I></B></font></P>\r
-\r
-<P><font color="#008000">If this option is True, WinBoard adjudicates games as draws that cannot be usualy won without opponent assistance. This applies to KBKB with unlike bishops, and to KBKN, KNKN, KNNK, KRKR and KQKQ. The draw is called after 6 ply into these end-games, to allow quick mates that can occur in some positions. KQKQ does not really belong in this category, and might be taken out in the future. (When bitbase-based adjudications are implemented.) Legality-testing must be on for this option to work.</font></P>\r
-\r
-\r
-\r
-<P><font color="#008000"><B><A NAME="rulemoves"></A>/ruleMoves <I>number</I></B></font></P>\r
-\r
-<P><font color="#008000">If the given value is non-zero, WinBoard adjudicates the game as a draw after the given <I>number</I> of consecutive reversible moves. Engines can claim draws after 50 moves, irrespective of the value of <I>number</I>.</font></P>\r
-\r
-\r
-\r
-<P><font color="#008000"><B><A NAME="repeatstodraw"></A>/repeatsToDraw <I>number</I></B></font></P>\r
-\r
-<P><font color="#008000">If the given value is non-zero, WinBoard adjudicates the game as a draw if a position is repeated the given <I>number</I> of times. Engines can claim draws after 3 repeats, (on the 3rd occurrence, actually), irrespective of the value of <I>number</I>. Beware that positions that have different castling or en-passant rights do not count as repeats, WinBoard is fully e.p. and castling aware!</font></P>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/winboard/help/html/18.htm b/winboard/help/html/18.htm
deleted file mode 100644 (file)
index 33d8c0c..0000000
+++ /dev/null
@@ -1,178 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
-<HTML>\r
-<HEAD>\r
-<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
-<TITLE>Other Options</TITLE>\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
-\r
-\r
-\r
-<P><B><A NAME="otheroptions"></A>Other Options</B></P>\r
-\r
-\r
-\r
-<P><B><A NAME="ncp"></A>/ncp</B> or <B>/xncp</B>,<B> </B>or<B> <A NAME="nochessprogram"></A>/noChessProgram<I> true|false</I></B></P>\r
-\r
-<P>If this option is True, WinBoard acts as a passive chessboard; it does not start a chess program or connect to ICS. This option also sets clockMode to False. Default: False.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="mode"></A>/mode</B> or <B><A NAME="initialmode"></A>/initialMode <I>modename</I></B></P>\r
-\r
-<P>If this option is given, WinBoard selects the given <I>modename</I> from the <A HREF="04.htm">Mode menu</A> after starting and (if applicable) processing the <A HREF="15.htm#loadgamefile">loadGameFile</A> or <A HREF="15.htm#loadpositionfile">loadPositionFile</A> option. Default: "". Other supported values are TwoMachines, AnalyzeFile, Analysis, MachineWhite, MachineBlack, EditGame, EditPosition, and Training.</P>\r
-\r
-\r
-\r
-<P><B><A NAME="variant"></A>/variant</B> <B><I> varname</I></B></P>\r
-\r
-<P>Activates preliminary, partial support for playing chess variants against a local engine or editing variant games. This flag is not needed in ICS mode. Recognized variant names are:</P>\r
-\r
-<table><tr><td>\r
-normal</td><td>Normal chess\r
-</td></tr><tr><td>\r
-wildcastle</td><td>Shuffle chess, king can castle from d file\r
-</td></tr><tr><td>\r
-nocastle</td><td>Shuffle chess, no castling allowed\r
-</td></tr><tr><td>\r
-fischerandom</td><td>Fischer Random shuffle chess\r
-</td></tr><tr><td>\r
-bughouse</td><td>Bughouse, ICC/FICS rules\r
-</td></tr><tr><td>\r
-crazyhouse</td><td>Crazyhouse, ICC/FICS rules\r
-</td></tr><tr><td>\r
-losers</td><td>Lose all pieces or get mated (ICC wild 17)\r
-</td></tr><tr><td>\r
-suicide</td><td>Lose all pieces including king (FICS)\r
-</td></tr><tr><td>\r
-giveaway</td><td>Try to have no legal moves (ICC wild 26)\r
-</td></tr><tr><td>\r
-twokings</td><td>Weird ICC wild 9\r
-</td></tr><tr><td>\r
-kriegspiel</td><td>Opponent's pieces are invisible\r
-</td></tr><tr><td>\r
-atomic</td><td>Capturing piece explodes (ICC wild 27)\r
-</td></tr><tr><td>\r
-3check</td><td>Win by giving check 3 times (ICC wild 25)\r
-</td></tr><tr><td>\r
-<font color="#008000">xiangqi</font></td><td><font color="#008000">Chinese Chess (on a 9x10 board)</font>\r
-</td></tr><tr><td>\r
-<font color="#008000">shogi</font></td><td><font color="#008000">Japanese Chess (on a 9x9 board, with piece drops)</font>\r
-</td></tr><tr><td>\r
-<font color="#008000">capablanca</font></td><td><font color="#008000">Capablanca Chess (10x8 board, with Archbishop and Chancellor pieces)</font>\r
-</td></tr><tr><td>\r
-<font color="#008000">gothic</font></td><td><font color="#008000">similar, with a better initial position</font>\r
-</td></tr><tr><td>\r
-<font color="#008000">caparandom</font></td><td><font color="#008000">An FRC-like version of Capablanca Chess (10x8 board)</font>\r
-</td></tr><tr><td>\r
-<font color="#008000">janus</font></td><td><font color="#008000">A game with two Archbishops (10x8 board)</font>\r
-</td></tr><tr><td>\r
-<font color="#008000">shatranj</font></td><td><font color="#008000">Ancient Arabic Chess, with Elephants and General replacing B and Q.</font>\r
-</td></tr><tr><td>\r
-<font color="#008000">courier</font></td><td><font color="#008000">Medieval intermedite between shatranj and modern Chess (on 12x8 board)</font>\r
-</td></tr><tr><td>\r
-<font color="#008000">falcon</font></td><td><font color="#008000">A patented Chess variant with two Falcon pieces (10x8) board</font>\r
-</td></tr><tr><td>\r
-<font color="#008000">berolina</font></td><td><font color="#008000">Pawns capture straight ahead, and move diagonal (legality testing off!)</font>\r
-</td></tr><tr><td>\r
-<font color="#008000">cylinder</font></td><td><font color="#008000">Pieces wrap around the board, as if it were a cylinder (legality testing off!)</font> \r
-</td></tr><tr><td>\r
-<font color="#008000">fairy</font></td><td><font color="#008000">A variant in which all pieces known to WinBoard can participate</font>\r
-</td></tr><tr><td>\r
-<font color="#008000">knightmate</font></td><td><font color="#008000">King moves a Knight, and vice versa</font>\r
-</td></tr><tr><td>\r
-<font color="#3333ff">makruk</font></td><td><font color="#3333ff">Thai Chess (shatranj-like, pawns promote on 6th rank)</font>\r
-</td></tr><tr><td>\r
-<font color="#3333ff">super</font></td><td><font color="#3333ff">Superchess, a shuffle variant with B+N, R+N, K+N and Q+N compound</font>\r
-</td></tr><tr><td>\r
-<font color="#3333ff">great</font></td><td><font color="#3333ff">Great Shatranj, whithout sliders, on 10x8 board (legality testing off!)</font>\r
-</td></tr></table>\r
-\r
-<P><font color="#008000">In the shuffle variants, WinBoard does now shuffle the pieces, although you can still do it by hand using Edit Position.</font> \r
-Some variants are supported only in ICS mode, including bughouse, and kriegspiel. \r
-The winning/drawing conditions in crazyhouse (off-board interposition on mate) is not fully understood, \r
-<font color="#3333ff">but losers, suicide, giveaway, atomic, and 3check should be OK.</font> \r
-In crazyhouse, <font color="#3333ff">WinBoard now does keep track of off-board pieces.\r
-In shatranj it does implement the baring rule when mate detection is switched on.\r
-In xiangqi it does implement the rules for perpetual checking and chasing (in Two-Machines mode).</font></P>\r
-\r
-\r
-\r
-<P><font color="#FF00FF"><B><A NAME="shuffleopenings"></A>/shuffleOpenings</B></font></P>\r
-\r
-<P><font color="#FF00FF">This volatile option will cause shuffling of all pieces on the back rank, even in variants that normally have a fixed opening setup, according to the setting of the /defaultFrcPosition. It will remain in effect untill you select a new variant. In variants with normal castling, corner Rooks and King will be exempted from shuffling. Color-bound pieces such as Bishops will be kept on differently colored squares.</font></P>\r
-\r
-\r
-\r
-<P><font color="#008000"><B><A NAME="boardheight"></A>/boardHeight <I>height</I></B></font></P>\r
-\r
-<P><font color="#008000">Allows you to set a non-standard number of board ranks in any variant. If the height is given as ‘-1’, the default height for the variant is used.</font></P>\r
-\r
-\r
-\r
-<P><font color="#008000"><B><A NAME="boardwidth"></A>/boardWidth <I>width</I></B></font></P>\r
-\r
-<P><font color="#008000">Allows you to set a non-standard number of board files in any variant. If the width is given as ‘-1’, the default width for the variant is used. Width a non-standard width, the initial position will always be an empty board, as the usual opening array will not fit.</font></P>\r
-\r
-\r
-\r
-<P><font color="#008000"><B><A NAME="holdingssize"></A>/holdingsSize <I>size</I></B></font></P>\r
-\r
-<P><font color="#008000">Allows you to set a non-standard size for the holdings in any variant. If the size is given as ‘-1’, the default holdings size for the variant is used. The first <I>size</I> piece types will go into the holdings on capture, and you will be able to drop them on the board in stead of making a normal move. If <I>size</I> equals 0, there will be no holdings.</font></P>\r
-\r
-\r
-\r
-<P><font color="#ff0000"><B><A NAME="defaultfrcposition"></A>/defaultFrcPosition <I>number</I></B></font></P>\r
-\r
-<P><font color="#ff0000">Specifies the number of the opening position in shuffle games like FRC. A value of ‘-1’ means the position is randomly generated by WinBoard.</font></P>\r
-\r
-\r
-\r
-<P><font color="#008000"><B><A NAME="piecetochartable"></A>/pieceToCharTable <I>characterstring</I></B></font></P>\r
-\r
-<P><font color="#008000">The characters that are used to represent the piece types WinBoard knows in FEN diagrams and SAN moves. The string argument has to have an even length (or it will be ignored), as white and black pieces have to be given separately (in that order). The last letter for each color will be the King. The letters before that will be PNBRQ and then a whole host of fairy pieces in an order that has not fully crystallized yet (currently FEACWMOHIJGDVSLU, F=Ferz, Elephant, A=Archbishop, C=Chancellor, W=Wazir, M=Commoner, O=Cannon, H=Nightrider). You should list at least all pieces that occur in the variant you are playing. If you have less than 44 characters in the string, the pieces not mentioned will get assigned a period, and you will not be able to distinguish them in FENs. You can also explicitly assign pieces a period, in which case they will not be counted in deciding which captured pieces can go into the holdings.</font></P>\r
-\r
-<P><font color="#008000">A tilde as a piece name does mean this piece is used to represent a promoted Pawn in Crazyhouse-like games, i.e. on capture it turns back onto a Pawn. A + similarly indicate the piece is a Shogi-style promoted piece, that should revert to its non-promoted version on capture (rather than to a Pawn).</font></P>\r
-\r
-<P><font color="#008000">Note that promoted pieces are represented by pieces 11 further in the list.</font></P>\r
-\r
-<P><font color="#008000">You should not have to use this option often: each variant has its own default setting for the piece representation in FEN, which should be sufficient in normal use.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="rsh"></A>/rsh </B>or<B> <A NAME="remoteshell"></A>/remoteShell <I>shellname</I></B></P>\r
-\r
-<P>Name of the command used to run programs remotely. If this option is not given, WinBoard<I> </I>uses its own built-in implementation of the Unix <I>rcmd</I> protocol (the protocol used by <I>rsh</I>).</P>\r
-\r
-\r
-\r
-<P><B><A NAME="ruser"></A>/ruser </B>or<B> <A NAME="remoteuser"></A>/remoteUser <I>username</I></B></P>\r
-\r
-<P>User name on the remote system when running programs with the remoteShell. The default is your local user name.</P>\r
-\r
-\r
-\r
-<P><font color="#008000"><B><A NAME="username"></A>/userName <I>username</I></B></font></P>\r
-\r
-<P><font color="#008000">Name under which the Human player will be listed in the PGN file. (Default is the login name on your local computer.)</font></P>\r
-\r
-\r
-\r
-<P><font color="#ff0000"><B><A NAME="delaybeforequit"></A>/delayBeforeQuit <I>number</I></B></font></P>\r
-\r
-\r
-\r
-<P><font color="#ff0000"><B><A NAME="delayafterquit"></A>/delayAfterQuit <I>number</I></B></font></P>\r
-\r
-<P><font color="#ff0000">These options specify how long WinBoard has to wait before sending a termination signal to rogue engine processes, that do not want to react to the ‘quit’ command. The second one determines the pause after killing the engine, to make sure it dies.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="ini"></A>/ini </B>or<B> <A NAME="settingsfile"></A>/settingsFile <I>filename<BR>\r
-</I><A NAME="atsign"></A>@ <I>file-name</I></B></P>\r
-\r
-<P>See <A HREF="19.htm#settings">Settings</A>.</P>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/winboard/help/html/19.htm b/winboard/help/html/19.htm
deleted file mode 100644 (file)
index 6440fc6..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
-<HTML>\r
-<HEAD>\r
-<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
-<TITLE>Files</TITLE>\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
-\r
-\r
-\r
-<P><B><A NAME="files"></A>INITIALIZATION FILES</B></P>\r
-\r
-\r
-\r
-<P><B><A NAME="settings"></A>Settings</B></P>\r
-\r
-<P>When WinBoard starts up, it reads option settings from a file named <I>WinBoard.ini </I>in its installation directory (the directory containing WinBoard.exe). Options in this file have the same format as <A HREF="11.htm">command line options</A>, except that they do not all have to be on a single line. You can put a comment in a settings file by preceding it with a semicolon (<CODE>;</CODE>).</P>\r
-\r
-<P>The WinBoard.ini file is read before the command line is processed, so any options you give on the command line override options in the file.</P>\r
-\r
-<P>If WinBoard encounters a <A HREF="18.htm#settingsfile">/settingsFile</A> <I>filename </I>or <A HREF="18.htm#atsign">@</A><I>filename </I>option while reading settings (whether from the command line or a file), it reads more settings from the given file before reading the next option.</P>\r
-\r
-<P>The <A HREF="07.htm#savesettings">Save Settings Now</A> menu command writes the current values of most options to a file. In addition, settings are saved automatically when WinBoard exits if <A HREF="07.htm#savesettingsonexit">Save Settings on Exit</A> is checked. The settings are written to the last file named in a /settingsFile command, if any; otherwise to WinBoard.ini<I>.</I> The @ option does not affect which file settings are saved to.</P>\r
-\r
-<P>Warning: Because Save Settings overwrites the last settings file (usually WinBoard.ini) and only saves a subset of WinBoard's options, you should not add settings of more options to such a file with a text editor. If you do this, your additional options will be lost on the next Save Settings. You can change the values of existing settings freely, using Notepad or any plain text editor. Be careful not to do this while WinBoard is running, however, unless you know that Save Settings on Exit is off. Otherwise all your changes will be overwritten and lost when WinBoard exits.</P>\r
-\r
-<P><font color="#008000">Notice that tournament managers, like PSWBTM, usually call WinBoard with the option not to save settings on exit, so that the entire tournament uses the same settings. So it does make sense to edit ‘volatile’ options, such as /variant, into the settings file.</font></P>\r
-\r
-\r
-\r
-<P><B><A NAME="icslogon"></A>ICS Logon</B></P>\r
-\r
-<P>Whenever WinBoard connects to the Internet Chess Server, if it finds a file called <I>ICS.ini </I>in its installation directory<I>,</I> it feeds the file's contents to the ICS as commands. Usually the first two lines of the file should be your ICS user name and password. You can specify a different name instead of <I>ICS.ini</I> by using the <A HREF="14.htm#icslogon">icslogon</A> command line option.</P>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/winboard/help/html/20.htm b/winboard/help/html/20.htm
deleted file mode 100644 (file)
index 025c8b2..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
-<HTML>\r
-<HEAD>\r
-<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
-<TITLE>Installing Chess Engines</TITLE>\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
-\r
-\r
-\r
-<P><B><A NAME="installingchessengines"></A>INSTALLING CHESS ENGINES</B></P>\r
-\r
-<P><B>Introduction</B></P>\r
-\r
-<P>WinBoard is capable of operating with many different chess engines. You can play chess against a compatible engine, set up matches between two engines, or (advanced users only) run an automated computer player on an ICS.</P>\r
-\r
-<P>Typically, the main difficulty in installing a new chess engine for use by WinBoard comes in getting the engine itself running and setting its options appropriately. The connection to WinBoard is relatively straightforward.</P>\r
-\r
-<P>WinBoard-compatible chess engines are Win32 command line programs that you can run by hand in an MS-DOS Prompt box and type human-readable commands to. WinBoard connects to an engine simply by starting the engine up in the background and communicating with it through a pair of pipes. Therefore the basic procedure for installing an engine is:</P>\r
-\r
-<P>1. Get a copy of the engine and any supporting files it needs.</P>\r
-\r
-<P>2. Install and configure the engine as a command-line program by following the instructions that come with it. Try it out by running it from the command line in an MS-DOS Prompt box and make sure it works.</P>\r
-\r
-<P>3. Optional, but recommended: Try out the WinBoard plus engine combination by running WinBoard with the proper command line arguments in an MS-DOS Prompt box.</P>\r
-\r
-<P>4. Create a shortcut on your desktop or Start menu to run the engine with WinBoard.</P>\r
-\r
-<P>5. Optionally edit your WinBoard.ini file to add the engine to the drop-down lists on WinBoard's startup dialog.</P>\r
-\r
-<P>This document cannot explain steps 1 and 2 in detail for all engines, but we will take you through all five steps in outline, using Crafty as an example.</P>\r
-\r
-<P><B>Example: Crafty</B></P>\r
-\r
-<P>1. Choose a directory to put Crafty in. We'll use <CODE>C:\Program Files\Crafty</CODE> in this example. Download your copy of Crafty into this directory from its author's FTP site, <CODE>ftp://ftp.cis.uab.edu/pub/hyatt</CODE>. At this writing, you will need at least the following files:</P>\r
-\r
-<P><CODE>read.me<BR>\r
-v15/crafty.doc<BR>\r
-v15/crafty.faq<BR>\r
-v15/wcrafty-15.*.exe</CODE> (where * is replaced by the largest number there)<BR>\r
-<CODE>common/start.zip<BR>\r
-common/medium.zip </CODE>(or another book).</P>\r
-\r
-<P>2. The first three files are documentation that you can read with a text editor. Read the read.me file first and follow the instructions carefully. This will take some time. Do not write to the author of WinBoard if you have trouble with the instructions in the Crafty read.me. Try running Crafty from an MS-DOS Prompt box and make sure it works before you go on.</P>\r
-\r
-<P>3. Optional, but recommended: In an MS-DOS Prompt box, <CODE>cd </CODE>to the directory where WinBoard is installed, typically <CODE>"C:\Program Files\WinBoard"</CODE>. Then type the following command line. Use the actual name of the wcrafty file you downloaded, not an <CODE>*</CODE>, and if your browser changed the first period to an underscore when you downloaded the file, make that change in the command line too.</P>\r
-\r
-<PRE><CODE>WinBoard /cp /fcp=WCrafty-15.* /fd="C:\Program Files\Crafty" /scp=WCrafty-15.* /sd="C:\Program Files\Crafty"</CODE></PRE>\r
-\r
-<P>WinBoard should start up, with Crafty running as its chess engine. Check that you can play chess against Crafty.</P>\r
-\r
-<P>4. To make a shortcut or Start menu entry for Crafty: Right-click on the desktop and select New/Shortcut. Use the Browse button to find your winboard.exe file and get its name into the Command Line box. (It usually will be "C:\Program Files\WinBoard\winboard.exe".) Click in the Command Line box and hit the End key to go to the end. Add the following to the end of the command line, <I>after</I> the closing quotation mark. Use the actual name of the wcrafty file you downloaded, not an <CODE>*</CODE>, and if your browser changed the first period to an underscore when you downloaded the file, make that change in the command line too.</P>\r
-\r
-<PRE><CODE>/cp /fcp=WCrafty-15.* /fd="C:\Program Files\Crafty" \r
-/scp=WCrafty-15.* /sd="C:\Program Files\Crafty"</CODE></PRE>\r
-\r
-<P>Press Next, choose a name for the shortcut, and press Finish. You can now use this shortcut to run WinBoard with Crafty. Double-click it to check that it works. You can drag or copy the shortcut into your Start menu if you like.</P>\r
-\r
-<P>5. To add Crafty as an option in the WinBoard Startup dialog, edit your <A HREF="19.htm#settings">WinBoard.ini file</A> with Notepad or another plain text editor, carefully following the example shown under <A HREF="16.htm#firstchessprogramnames">/firstChessProgramNames</A> above.</P>\r
-\r
-<P><B>For more information</B></P>\r
-\r
-<P>If you would like to run an automated computer player on the ICS, see the separate file <CODE>zippy.README</CODE>. If you would like to write your own engine to interface to WinBoard, see the separate file <CODE>engine-intf.html</CODE>, and join the mailing list mentioned there. Both files are included in the WinBoard distribution. You might also want to get the source code for WinBoard. It is available from the author's Web page, http://www.tim-mann.org/chess.html<CODE>.</CODE></P>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/winboard/help/html/21.htm b/winboard/help/html/21.htm
deleted file mode 100644 (file)
index c970da5..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
-<HTML>\r
-<HEAD>\r
-<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
-<TITLE>Firewalls</TITLE>\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
-\r
-\r
-\r
-<P><B><A NAME="firewalls"></A>FIREWALLS</B></P>\r
-\r
-<P>By default, "WinBoard /ics"<I> </I>communicates with an Internet Chess Server by opening a TCP socket directly from the machine it is running on to the ICS. If there is a firewall between your machine and the ICS, this won't work. Here are some recipes for getting around common kinds of firewalls using special options to WinBoard<I>.</I> Important: See the paragraph in the <A HREF="22.htm">LIMITATIONS</A> section below about extra echoes.</P>\r
-\r
-<P>Suppose that you can't telnet directly to ICS, but you can telnet to a firewall host, log in, and then telnet from there to ICS. Let's say the firewall is called fire.wall.com. Set command-line options as follows: </P>\r
-\r
-<PRE><CODE>WinBoard -ics -icshost fire.wall.com -icsport 23</CODE></PRE>\r
-\r
-<P>Then when you run WinBoard<I> </I>in ICS mode, you will be prompted to log in to the firewall host. (This works because port 23 is the standard telnet login service.) Do so, then telnet to ICS, using a command like "telnet chessclub.com 5000", or whatever command the firewall provides for telnetting to port 5000.</P>\r
-\r
-<P>If your firewall lets you telnet (or rlogin) to remote hosts, but doesn't let you telnet to port 5000, you will have to find some other host outside the firewall that does let you do this, and hop through it. For instance, suppose you have an account at foo.edu. Follow the recipe above, but instead of typing "telnet chessclub.com 5000" to the firewall, type "telnet foo.edu" (or "rlogin foo.edu"), log in there, and then type "telnet chessclub.com 5000".</P>\r
-\r
-<P>Exception: chessclub.com itself lets you connect to the chess server on the default telnet port (23), which is what you get if you don’t specify a port to the telnet program. But the other chess servers don’t allow this.</P>\r
-\r
-<P>Suppose that you can't telnet directly to ICS, but you can use rsh to run programs on a firewall host, and that host can telnet to ICS. Let's say the firewall is called rsh.wall.com. Set command-line options as follows: </P>\r
-\r
-<PRE><CODE>WinBoard -ics -gateway rsh.wall.com -icshost chessclub.com</CODE></PRE>\r
-\r
-<P>Then when you run WinBoard<I> </I>in ICS mode, it will connect to the ICS by using rsh to run the command "telnet chessclub.com 5000" on host rsh.wall.com.</P>\r
-\r
-<P>ICC timestamp and FICS timeseal do not work through many<B> </B>firewalls. You can use them only if your firewall gives a clean TCP connection with a full 8-bit wide path. If your firewall allows you to get out only by running a special telnet program, you can't use timestamp or timeseal across it. But if you have access to a computer just outside your firewall, and you have much lower netlag when talking to that computer than to the ICS, it might be worthwhile running timestamp there. Follow the instructions above for hopping through a host outside the firewall (foo.edu in the example), but run timestamp or timeseal on that host instead of telnet.</P>\r
-\r
-<P>Suppose that you have a SOCKS firewall that requires you to go through some extra level of authentication, but after that will give you a clean 8-bit wide TCP connection to the chess server. In that case, if you are using timestamp or timeseal, you need to somehow socksify it; if not, you need to socksify WinBoard itself. Socksification is beyond the scope of this document, but see the SOCKS Web site at http://www.socks.nec.com/how2socksify.html.</P>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/winboard/help/html/22.htm b/winboard/help/html/22.htm
deleted file mode 100644 (file)
index 5d5255f..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
-<HTML>\r
-<HEAD>\r
-<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
-<TITLE>Limitations</TITLE>\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
-\r
-\r
-\r
-<P><B><A NAME="limitations"></A>LIMITATIONS <font color="#008000">AND NON-LIMITATIONS</font></B></P>\r
-\r
-<P>WinBoard<I> </I>is a Win32 application. It runs only on Windows NT and Windows 95. It does not work on Windows 3.11 or earlier, even with the Win32s compatibility package.</P>\r
-\r
-<P><I>CMail, </I>the companion program to xboard for playing electronic mail correspondence chess, has not been ported to Win32.</P>\r
-\r
-<P>There is no way for two people running copies of WinBoard<I> </I>to play each other without going through the Internet Chess Server.</P>\r
-\r
-<P>Under some circumstances, your ICS password may be echoed when you log on.</P>\r
-\r
-<P>If you are connecting to the ICS by running telnet, timestamp, or timeseal on an Internet provider host, you may find that each line you type is echoed back an extra time after you hit Enter. You can probably turn this echo off. If your Internet provider is a Unix system, type "<CODE>stty -echo</CODE>" after you log in to the provider but before you run telnet, timestamp, or timeseal. In addition, you may need to type the sequence “<CODE>Ctrl+Q Ctrl+E Enter</CODE>“ after you have finished logging in to ICS. On VMS, type “<CODE>set terminal /noecho /nowrap</CODE>”, and after you telnet to the ICS, type “<CODE>Ctrl+Q Ctrl+] Enter set mode char Enter Enter</CODE>”. It is a good idea to turn off the extra remote echo if you can, because otherwise it can get interleaved with output from the ICS and confuse WinBoard's parsing routines. Don’t just turn off <A HREF="07.htm#locallineediting">Local Line Editing</A> so that you see only the remote echo and not the local one; that will make the interleaving problem worse.</P>\r
-\r
-<P>The game parser recognizes only algebraic notation (SAN).</P>\r
-\r
-<P>The <A HREF="14.htm#icslogon">ICS logon</A> file does not work properly when you connect to ICS through a Unix gateway host by setting <A HREF="14.htm#icsport">icsPort</A> to 23. The Unix login process apparently discards type-ahead.</P>\r
-\r
-<P>Some WinBoard functions may not work with versions of GNU Chess earlier than 4.0, patchlevel 77. The current version of WinBoard<I> </I>works best with Crafty version 15.11 or later.</P>\r
-\r
-<P><font color="#008000">Many of the following points used to be limitations in WinBoard 4.2.7 and earlier, but are now fixed:</font></P>\r
-\r
-<P><font color="#008000">The internal move legality tester in WinBoard 4.3.xx does look at the game history, and is fully aware of castling or en passant-capture rights.</font> It permits castling with the king on the <B>d</B> file because this is possible in some "wild 1" games on ICS. The piece-drop menu does not check piece drops in bughouse to see if you actually hold the piece you are trying to drop. <font color="#008000">But this way of dropping pieces should be considered an obsolete feature, now that pieces can be dropped by dragging them from the holdings to the board.</font> Anyway, if you would attempt an illegal move when using a chess engine or the ICS, WinBoard will accept the error message that comes back, undo the move, and let you try another.</P>\r
-\r
-<P><font color="#008000">FEN positions saved by WinBoard<I> </I>do include correct information about whether castling or en passant are legal, and also handle the 50-move counter.</font></P>\r
-\r
-<P>The mate detector does not understand that non-contact mate is not really mate in bughouse. The only problem this causes while playing is minor: a "#" (mate indicator) character will show up after a non-contact mating move in the move list. WinBoard will not assume the game is over at that point, <font color="#008000">not even when the option Detect Mates is on.</font></P>\r
-\r
-<P><font color="#008000">Edit Game mode always uses the rules of the selected variant, which can be a variant that uses piece drops.  You can load and edit games that contain piece drops. The (obsolete) piece menus are not active, but you can perform piece drops by dragging pieces from the holdings.</font></P>\r
-\r
-<P><font color="#008000">Edit Position mode does not allow you to edit the Crazyhouse holdings properly. You cannot drag pieces to the holding, and using the popup menu to put pieces there does not adapt the holding counts and leads to an inconsistent state. Set up Crazyhouse positions by loading / pasting a bFEN, from there you can set the holdings.</font></P>\r
-\r
-<P><font color="#008000">Fischer Random castling is fully understood. You can enter castlings by dragging the King on top of your Rook. You can probably also play Fischer Random successfully on ICS by typing castling moves into the ICS Interaction window.</font></P>\r
-\r
-<P>Also see the ToDo file included with the distribution for many other possible bugs, limitations, and ideas for improvement that have been suggested.</P>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/winboard/help/html/23.htm b/winboard/help/html/23.htm
deleted file mode 100644 (file)
index ba29478..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
-<HTML>\r
-<HEAD>\r
-<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
-<TITLE>Authors</TITLE>\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
-\r
-\r
-\r
-<P><B><A NAME="authors"></A>AUTHORS AND CONTRIBUTORS</B></P>\r
-\r
-<P>WinBoard is partly based on <I>xboard</I>, a chessboard program for Unix and the X Window System. Tim Mann has been responsible for all versions of WinBoard,<I> </I>and for xboard versions 1.3 and beyond. <font color="#008000">H.G.Muller is responsible for version 4.3.</font></P>\r
-\r
-<P>Mark Williams added many features to WinBoard 4.1.0, including copy/paste, premove, icsAlarm, autoFlipView, training mode, auto raise, and blindfold. Hugh Fischer added piece animation to xboard, and Henrik Gram added it to WinBoard. Frank McIngvale contributed many xboard<I> </I>user interface improvements and improved Crafty support. Jochen Wiedmann ported xboard<I> </I>to the Amiga, creating <I>AmyBoard</I>, and converted the documentation to texinfo. Elmar Bartel contributed the new piece bitmaps for version 3.2. Evan Welsh wrote <I>CMail. </I>John Chanak contributed the initial implementation of ICS mode. The default color scheme was adapted from Wayne Christopher's <I>XChess </I>program. Chris Sears and Dan Sears wrote the original xboard<I>. </I>They were responsible for xboard<I> </I>versions 1.0 through 1.2. <font color="#ff0000">Alessandro Scotti added many elements to the user interface, including the board textures and font-based rendering, the evaluation-graph, move-history and engine-output window. He was also responsible for adding the UCI support.</font> <font color="#008000">H.G. Muller made WinBoard castling- and e.p.-aware, added variant support with adjustable board sizes, the Crazyhouse holdings, and the fairy pieces. In addition he added most of the adjudication options, made WinBoard ore robust in dealing with buggy and crashing engines, and extended time control with a time-odds and node-count-based modes.</font></P>\r
-\r
-<P>Send bug reports to &lt;bug-xboard@gnu.org&gt;. Please run WinBoard with the /debug option and include the output from the resulting WinBoard.debug file in your message.</P>\r
-\r
-<P><font color="#008000">The WinBoard 4.3.xx line is being developed by H.G. Muller independently of the GNU Savannah xboard project. Bug reports on this version, and suggestions for improvements and additions, are best posted in the WinBoard forum, development section</font> <font color="#3333ff">(<u>www.open-aurec.com/wbforum/</u>)</font><font color="#008000">.</font></P>\r
-\r
-<P><font color="#3333ff">Michel van den Bergh provided the code for reading Polyglot opening books.</a></P>\r
-\r
-<P><font color="#3333ff">Arun Persaud worked with H.G. Muller to combine all the features of the never-released WinBoard 4.2.8 of the Savannah project (mainly by Daniel Mehrmann), and the never-released 4.3.16 into a unified WinBoard 4.4, which is now available both from the Savannah web site and the WinBoard forum.</a></P>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/winboard/help/html/24.htm b/winboard/help/html/24.htm
deleted file mode 100644 (file)
index b3bb9e0..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\r
-<HTML>\r
-<HEAD>\r
-<META HTTP-EQUIV="Content-Type" Content="text/html; charset=Windows-1252">\r
-<TITLE>Copyright</TITLE>\r
-</HEAD>\r
-\r
-<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\r
-\r
-\r
-\r
-<P><B><A NAME="copyright"></A>COPYRIGHT</B></P>\r
-\r
-<P>Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts. <BR>\r
-Enhancements Copyright 1992-2016 Free Software Foundation, Inc.</P>\r
-\r
-<P>The following terms apply to Digital Equipment Corporation's copyright interest in WinBoard:</P>\r
-\r
-<P>All Rights Reserved</P>\r
-\r
-<P>Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Digital not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission.</P>\r
-\r
-<P>DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</P>\r
-\r
-<P>The following terms apply to the enhanced version of WinBoard distributed by the Free Software Foundation:</P>\r
-\r
-<P>This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.</P>\r
-\r
-<P>This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.</P>\r
-\r
-<P>You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.</P>\r
-\r
-</BODY>\r
-</HTML>\r
diff --git a/winboard/help/winboard b/winboard/help/winboard
deleted file mode 100644 (file)
index 5328dc9..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-[OPTIONS]\r
-Compatibility=1.1 or later\r
-Compiled file=..\..\..\xboard-4.4.0.chm\r
-Contents file=Table of Contents.hhc\r
-Default topic=html\winb3mnn.htm\r
-Display compile progress=No\r
-Index file=winboard.hhk\r
-Language=0x413 Nederlands (Nederland)\r
-\r
-\r
-[FILES]\r
-html\winb3mnn.htm\r
-html\winb31o3.htm\r
-html\winb54vp.htm\r
-html\winb5lkl.htm\r
-html\winb9gqd.htm\r
-html\winb0nlh.htm\r
-html\winb85it.htm\r
-html\winb3j3p.htm\r
-html\winb4h6d.htm\r
-html\winb87ar.htm\r
-html\winb5qpf.htm\r
-html\winb75yr.htm\r
-html\winb3i0k.htm\r
-html\winb701f.htm\r
-html\winb1v8z.htm\r
-html\winb8ws3.htm\r
-html\winb55yr.htm\r
-html\winb8n03.htm\r
-html\winb85yr.htm\r
-html\winb2tv7.htm\r
-html\winb381f.htm\r
-html\winb1hir.htm\r
-html\winb3wmr.htm\r
-html\winb1ks4.htm\r
-\r
-[INFOTYPES]\r
-\r
diff --git a/winboard/help/winboard.chm b/winboard/help/winboard.chm
deleted file mode 100644 (file)
index 9b52438..0000000
Binary files a/winboard/help/winboard.chm and /dev/null differ
diff --git a/winboard/help/winboard.hhk b/winboard/help/winboard.hhk
deleted file mode 100644 (file)
index d420880..0000000
+++ /dev/null
@@ -1,2500 +0,0 @@
-<HTML>\r
-<!-- Sitemap 1.0 -->\r
-<OBJECT type="text/site properties">\r
-</OBJECT>\r
-<UL>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Abort">\r
-               <param name="Name" value="Action Menu">\r
-               <param name="Local" value="html/05.htm#abort">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="About WinBoard">\r
-               <param name="Name" value="Help Menu">\r
-               <param name="Local" value="html/08.htm#aboutwinboard">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Accept">\r
-               <param name="Name" value="Action Menu">\r
-               <param name="Local" value="html/05.htm#accept">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Action Menu">\r
-               <param name="Name" value="Action Menu">\r
-               <param name="Local" value="html/05.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Adjourn">\r
-               <param name="Name" value="Action Menu">\r
-               <param name="Local" value="html/05.htm#adjourn">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Adjudicate Draw">\r
-               <param name="Name" value="Action Menu">\r
-               <param name="Local" value="html/05.htm#adjudicatedraw">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Adjudicate Draw Moves">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#adjudicatedrawmoves">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Adjudicate Loss Threshold">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#adjudicatelossthreshold">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Adjudicate To Black">\r
-               <param name="Name" value="Action Menu">\r
-               <param name="Local" value="html/05.htm#adjudicatetoblack">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Adjudicate To White">\r
-               <param name="Name" value="Action Menu">\r
-               <param name="Local" value="html/05.htm#adjudicatetowhite">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Adjudicate Trivial Draws">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#adjudicatetrivialdraws">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="adjudicateDrawMoves">\r
-               <param name="Name" value="Adjudication Options">\r
-               <param name="Local" value="html/17.htm#checkmates">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="adjudicateLossThreshold">\r
-               <param name="Name" value="Adjudication Options">\r
-               <param name="Local" value="html/17.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Adjudication Options">\r
-               <param name="Name" value="Adjudication Options">\r
-               <param name="Local" value="html/17.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Adjudications">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#adjudications">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="alarm">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#alarm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="All White">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#allwhite">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="allWhite">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#renderpieceswithfont">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Always On Top">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#alwaysontop">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Always Queen">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#alwaysqueen">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="alwaysOnTop">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#top">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="alwaysPromoteToQueen">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#queen">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Analysis Mode">\r
-               <param name="Name" value="Mode Menu">\r
-               <param name="Local" value="html/04.htm#analysismode">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Analyze File">\r
-               <param name="Name" value="Mode Menu">\r
-               <param name="Local" value="html/04.htm#analyzefile">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="animate">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#animate">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Animate Dragging">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#animatedragging">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Animate Moving">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#animatemoving">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="animateDragging">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#drag">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="animateMoving">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#animate">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Annotate">\r
-               <param name="Name" value="Step Menu">\r
-               <param name="Local" value="html/06.htm#annotate">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="at sign">\r
-               <param name="Name" value="Other Options">\r
-               <param name="Local" value="html/18.htm#ini">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Authors">\r
-               <param name="Name" value="Authors">\r
-               <param name="Local" value="html/23.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Auto Comment">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#autocommentcmd">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Auto Flag">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#autoflagcmd">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Auto Flip View">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#autoflipview">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Auto Kibitz">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#autokibitzcmd">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Auto Observe">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#autobscmd">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Auto Raise Board">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#autoraiseboard">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Auto Refresh">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#autorefreshcmd">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="autoRefresh">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#autorefresh">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="autobs">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#autobs">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="autoCallFlag">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#autoflag">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="autocomm">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#autocomm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="autoComment">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#autocomm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="autoDisplayComment">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#autodisplaycomment">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="autoDisplayTags">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#autodisplaytags">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="autoflag">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#autoflag">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="autoflip">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#autoflip">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="autoFlipView">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#autoflip">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="autoKibitz">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#autokibitz">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="autoLogo">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#autologo">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="autoObserve">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#autobs">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="autoraise">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#autoraise">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="autoRaiseBoardOption">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#autoraise">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="autosave">\r
-               <param name="Name" value="Load and Save Options">\r
-               <param name="Local" value="html/15.htm#autosave">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="autoSaveGames">\r
-               <param name="Name" value="Load and Save Options">\r
-               <param name="Local" value="html/15.htm#autosave">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Back to Start">\r
-               <param name="Name" value="Step Menu">\r
-               <param name="Local" value="html/06.htm#backtostart">\r
-               <param name="Name" value="Buttons">\r
-               <param name="Local" value="html/10.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Backward">\r
-               <param name="Name" value="Step Menu">\r
-               <param name="Local" value="html/06.htm#backward">\r
-               <param name="Name" value="Buttons">\r
-               <param name="Local" value="html/10.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Background Observe">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#backgroundobserve">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="backgroundObserve">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#backgroundobservecmd">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="blackPieceColor">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#wpc">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Blindfold">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#blindfoldcmd">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="blindfold (option)">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#opt_blindfold">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Board Colors">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#boardcolors">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Board Options">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#boardoptions">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Board Size">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#boardsizecmd">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="boardHeight">\r
-               <param name="Name" value="Other Options">\r
-               <param name="Local" value="html/18.htm#boardheight">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="boardSize">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#size">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="boardWidth">\r
-               <param name="Name" value="Other Options">\r
-               <param name="Local" value="html/18.htm#boardwidth">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Book">\r
-               <param name="Name" value="Help Menu">\r
-               <param name="Local" value="html/08.htm#book">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="bpc">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#wpc">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Buttons">\r
-               <param name="Name" value="Buttons">\r
-               <param name="Local" value="html/10.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Call Flag">\r
-               <param name="Name" value="Action Menu">\r
-               <param name="Local" value="html/05.htm#callflag">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="chatBoxes">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#chatboxes">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="checkMates">\r
-               <param name="Name" value="Adjudication Options">\r
-               <param name="Local" value="html/17.htm#checkmates">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Chess Engine Options">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="chessProgram">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#cp">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="clock">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#clock">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="clockFont">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#clockfont">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="clockMode">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#clock">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="colorBackground">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#colorbackground">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="colorChallenge">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#colorshout">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="colorChannel">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#colorshout">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="colorChannel1">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#colorshout">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="colorize">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#colorize">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="colorizeMessages">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#colorize">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="colorKibitz">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#colorshout">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="colorNormal">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#colorshout">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="colorRequest">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#colorshout">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="colorSeek">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#colorshout">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="colorShout">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#colorshout">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="colorSShout">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#colorshout">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="colorTell">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#colorshout">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Command Line Options">\r
-               <param name="Name" value="Command Line Options">\r
-               <param name="Local" value="html/11.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="commentFont">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#clockfont">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Common Engine Settings">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#commonsettings">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Communications">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#communications">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="comPortSettings">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#comportsettings">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Contents">\r
-               <param name="Name" value="Contents">\r
-               <param name="Local" value="html/01.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="coordFont">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#clockfont">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="coords">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#coords">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Copy">\r
-               <param name="Name" value="ICS Interaction Context Menu">\r
-               <param name="Local" value="html/09.htm#copy">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Copy and Paste">\r
-               <param name="Name" value="ICS Interaction Context Menu">\r
-               <param name="Local" value="html/09.htm#copyandpaste">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Copy Game To Clipboard">\r
-               <param name="Name" value="File Menu">\r
-               <param name="Local" value="html/03.htm#copygametoclipboard">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Copy Position Clipboard">\r
-               <param name="Name" value="File Menu">\r
-               <param name="Local" value="html/03.htm#copypositiontoclipboard">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Copyright">\r
-               <param name="Name" value="Copyright">\r
-               <param name="Local" value="html/24.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="cp">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#cp">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="darkBackTextureFile">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#darkbacktexturefile">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="darkBackTextureMode">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#darkbacktexturemode">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="darkSquareColor">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#wpc">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="debug">\r
-               <param name="Name" value="Load and Save Options">\r
-               <param name="Local" value="html/15.htm#debug">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="debugFile">\r
-               <param name="Name" value="Load and Save Options">\r
-               <param name="Local" value="html/15.htm#debugfile">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="debugMode">\r
-               <param name="Name" value="Load and Save Options">\r
-               <param name="Local" value="html/15.htm#debug">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Decline">\r
-               <param name="Name" value="Action Menu">\r
-               <param name="Local" value="html/05.htm#decline">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="defaultCacheSizeEGTB">\r
-               <param name="Name" value="UCI Engine Support">\r
-               <param name="Local" value="html/13.htm#defaultcachesizeegtb">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="defaultFrcPosition">\r
-               <param name="Name" value="Other Options">\r
-               <param name="Local" value="html/18.htm#defaultfrcposition">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="defaultHashSize">\r
-               <param name="Name" value="UCI Engine Support">\r
-               <param name="Local" value="html/13.htm#defaulthashsize">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="defaultPathEGTB">\r
-               <param name="Name" value="UCI Engine Support">\r
-               <param name="Local" value="html/13.htm#defaultpathegtb">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="delayAfterQuit">\r
-               <param name="Name" value="Other Options">\r
-               <param name="Local" value="html/18.htm#delayafterquit">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="delayBeforeQuit">\r
-               <param name="Name" value="Other Options">\r
-               <param name="Local" value="html/18.htm#delaybeforequit">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Description">\r
-               <param name="Name" value="Contents">\r
-               <param name="Local" value="html/01.htm#description">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Detect Mates">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#detectmates">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Display Logos">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#displaylogos">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="drag">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#drag">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Draw">\r
-               <param name="Name" value="Action Menu">\r
-               <param name="Local" value="html/05.htm#draw">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Draw If Insufficient Material">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#drawifinsufficientmaterial">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="dropMenu">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#dropmenu">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="dsc">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#wpc">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Dual Board">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#dualboardcmd">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="dualBoard">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#dualboard">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="edit">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#edit">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Edit Comment">\r
-               <param name="Name" value="Mode Menu">\r
-               <param name="Local" value="html/04.htm#editcomment">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Edit Game">\r
-               <param name="Name" value="Mode Menu">\r
-               <param name="Local" value="html/04.htm#editgame">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Edit Position">\r
-               <param name="Name" value="Mode Menu">\r
-               <param name="Local" value="html/04.htm#editposition">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Edit Tags">\r
-               <param name="Name" value="Mode Menu">\r
-               <param name="Local" value="html/04.htm#edittags">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="EGTB Cache Size">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#hashsize">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="EGTB Path">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#hashsize">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Engine Settings">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#enginesettings">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="engineDebugOutput">\r
-               <param name="Name" value="Load and Save Options">\r
-               <param name="Local" value="html/15.htm#enginedebugoutput">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="engineOutputUp">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#windowup">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Enter Username">\r
-               <param name="Name" value="Mode Menu">\r
-               <param name="Local" value="html/04.htm#enterusername">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="evalGraphUp">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#windowup">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="evalHistoColorBlack">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#evalhistocolorblack">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="evalHistoColorWhite">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#evalhistocolorwhite">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Exit">\r
-               <param name="Name" value="File Menu">\r
-               <param name="Local" value="html/03.htm#exit">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Extended PGN Info">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#extendedpgninfo">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Extra Info In Move History">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#extrainfoinmovehistory">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="fb">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#fb">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="fcp">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#fd">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="fd">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#fd">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="fh">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#fh">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="File Menu">\r
-               <param name="Name" value="File Menu">\r
-               <param name="Local" value="html/03.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Files">\r
-               <param name="Name" value="Files">\r
-               <param name="Local" value="html/19.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Finger">\r
-               <param name="Name" value="ICS Interaction Context Menu">\r
-               <param name="Local" value="html/09.htm#finger">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Firewalls">\r
-               <param name="Name" value="Firewalls">\r
-               <param name="Local" value="html/21.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="firstChessProgram">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#fd">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="firstChessProgramNames">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#firstchessprogramnames">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="firstDirectory">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#fd">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="firstHasOwnBookUCI">\r
-               <param name="Name" value="UCI Engine Support">\r
-               <param name="Local" value="html/13.htm#fnoownbookuci">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="firstHost">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#fh">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="firstIsUCI">\r
-               <param name="Name" value="UCI Engine Support">\r
-               <param name="Local" value="html/13.htm#fuci">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="firstLogo">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#firstlogo">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="firstNeedsNoncompliantFEN">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#firstneedsnoncompliantfen">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="firstNPS">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#firstnps">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="firstOptions">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#firstoptions">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="firstPlaysBlack">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#fb">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="firstProtocolVersion">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#firstprotocolversion">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="firstScoreAbs">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#firstscoreabs">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="firstTimeOdds">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#firsttimeodds">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="firstXBook">\r
-               <param name="Name" value="UCI Engine Support">\r
-               <param name="Local" value="html/13.htm#fnoownbookuci">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="flip">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#flip">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Flip Black">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#flipblack">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Flip View">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#flipview">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="flipBlack">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#monomode">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="flipView">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#flip">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="fNoOwnBookUCI">\r
-               <param name="Name" value="UCI Engine Support">\r
-               <param name="Local" value="html/13.htm#fnoownbookuci">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="fontPieceBackColorBlack">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#fontpiecebackcolorwhite">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="fontPieceBackColorWhite">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#fontpiecebackcolorwhite">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="fontPieceForeColorBlack">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#fontpiecebackcolorwhite">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="fontPieceForeColorWhite">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#fontpiecebackcolorwhite">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="fontPieceSize">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#fontpiecesize">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="fontPieceToCharTable">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#fontpiecetochartable">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Fonts">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#fonts">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Forward">\r
-               <param name="Name" value="Step Menu">\r
-               <param name="Local" value="html/06.htm#forward">\r
-               <param name="Name" value="Buttons">\r
-               <param name="Local" value="html/10.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Forward to End">\r
-               <param name="Name" value="Step Menu">\r
-               <param name="Local" value="html/06.htm#forwardtoend">\r
-               <param name="Name" value="Buttons">\r
-               <param name="Local" value="html/10.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="fUCI">\r
-               <param name="Name" value="UCI Engine Support">\r
-               <param name="Local" value="html/13.htm#fuci">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="gameListTags">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#gamelisttags">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Games">\r
-               <param name="Name" value="ICS Interaction Context Menu">\r
-               <param name="Local" value="html/09.htm#games">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="gateway">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#gateway">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="General Options">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#generaloptions">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Get Move List">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#getmovelistcmd">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="getMoveList">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#moves">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Getting Started">\r
-               <param name="Name" value="Contents">\r
-               <param name="Local" value="html/01.htm#gettingstarted">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="grayscale">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#grayscale">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Hash Size">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#hashsize">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Help Contents">\r
-               <param name="Name" value="Help Menu">\r
-               <param name="Local" value="html/08.htm#helpcontents">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Help Menu">\r
-               <param name="Name" value="Help Menu">\r
-               <param name="Local" value="html/08.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Hide Thinking From Human">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#hidethinkingfromhuman">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#pondernextmove">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="hideThinkingFromHuman">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#nogui">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="highdrag">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#highdrag">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="highlight">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#highlight">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Highlight Dragging">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#highlightdragging">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Highlight Last Move">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#highlightlastmove">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Highlight Move With Arrow">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#highlightmovewitharrow">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="highlightArrowColor">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#highlightarrowcolor">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="highlightDragging">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#highdrag">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="highlightLastMove">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#highlight">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="highlightMovesWithArrow">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#highlightmoveswitharrow">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="highlightSquareColor">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#hsc">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Hint">\r
-               <param name="Name" value="Help Menu">\r
-               <param name="Local" value="html/08.htm#hint">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="holdingsSize">\r
-               <param name="Name" value="Other Options">\r
-               <param name="Local" value="html/18.htm#holdingssize">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="How to Use Help">\r
-               <param name="Name" value="Help Menu">\r
-               <param name="Local" value="html/08.htm#helphelp">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="hsc">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#hsc">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="icon">\r
-               <param name="Name" value="Contents">\r
-               <param name="Local" value="html/01.htm#icon">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="ics">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#ics">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="ICS Alarm">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#icsalarm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="ICS Client">\r
-               <param name="Name" value="Mode Menu">\r
-               <param name="Local" value="html/04.htm#icsclient">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="ICS Interaction Colors">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#icsinteractioncolors">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="ICS Interaction Context Menu">\r
-               <param name="Name" value="ICS Interaction Context Menu">\r
-               <param name="Local" value="html/09.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="ICS Logon">\r
-               <param name="Name" value="Files">\r
-               <param name="Local" value="html/19.htm#settings">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="ICS Options">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#icsoptions">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="icsAlarm">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#alarm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="icsAlarmTime">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#icsalarmtime">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="icscom">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#icscom">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="icsFont">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#clockfont">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="icshost">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#icshost">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="icslogon">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#icslogon">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="icsMenu">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#icsmenu">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="icsNames">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#icsnames">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="icsport">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#icsport">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="inc">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#inc">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="ini">\r
-               <param name="Name" value="Other Options">\r
-               <param name="Local" value="html/18.htm#ini">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Initialization files">\r
-               <param name="Name" value="Files">\r
-               <param name="Local" value="html/19.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="initialMode">\r
-               <param name="Name" value="Other Options">\r
-               <param name="Local" value="html/18.htm#mode">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="initString">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#initstring">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#secondinitstring">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Installing Chess Engines">\r
-               <param name="Name" value="Installing Chess Engines">\r
-               <param name="Local" value="html/20.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Internet Chess Server Options">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="internetChessServerComPort">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#icscom">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="internetChessServerHost">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#icshost">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="internetChessServerLogonScript">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#icslogon">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="internetChessServerMode">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#ics">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="internetChessServerPort">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#icsport">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="keepAlive">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#keepalive">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="legal">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#legal">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="lgf">\r
-               <param name="Name" value="Load and Save Options">\r
-               <param name="Local" value="html/15.htm#lgf">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="lgi">\r
-               <param name="Name" value="Load and Save Options">\r
-               <param name="Local" value="html/15.htm#lgf">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="lightSquareColor">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#wpc">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Limitations">\r
-               <param name="Name" value="Limitations">\r
-               <param name="Local" value="html/22.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="liteBackTextureFile">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#litebacktexturefile">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="liteBackTextureMode">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#litebacktexturemode">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Load and Save Options">\r
-               <param name="Name" value="Load and Save Options">\r
-               <param name="Local" value="html/15.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Load Game">\r
-               <param name="Name" value="File Menu">\r
-               <param name="Local" value="html/03.htm#loadgame">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#loadgameoptns">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Load Next Game">\r
-               <param name="Name" value="File Menu">\r
-               <param name="Local" value="html/03.htm#loadnextgame">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Load Next Position">\r
-               <param name="Name" value="File Menu">\r
-               <param name="Local" value="html/03.htm#loadnextposition">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Load Position">\r
-               <param name="Name" value="File Menu">\r
-               <param name="Local" value="html/03.htm#loadposition">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Load Previous Game">\r
-               <param name="Name" value="File Menu">\r
-               <param name="Local" value="html/03.htm#loadpreviousgame">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Load Previous Position">\r
-               <param name="Name" value="File Menu">\r
-               <param name="Local" value="html/03.htm#loadpreviousposition">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="loadGameFile">\r
-               <param name="Name" value="Load and Save Options">\r
-               <param name="Local" value="html/15.htm#lgf">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="loadGameIndex">\r
-               <param name="Name" value="Load and Save Options">\r
-               <param name="Local" value="html/15.htm#lgf">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="loadPositionFile">\r
-               <param name="Name" value="Load and Save Options">\r
-               <param name="Local" value="html/15.htm#lpf">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="loadPositionIndex">\r
-               <param name="Name" value="Load and Save Options">\r
-               <param name="Local" value="html/15.htm#lpf">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Local Line Editing">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#locallineediting">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="localLineEditing">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#edit">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="lpf">\r
-               <param name="Name" value="Load and Save Options">\r
-               <param name="Local" value="html/15.htm#lpf">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="lpi">\r
-               <param name="Name" value="Load and Save Options">\r
-               <param name="Local" value="html/15.htm#lpf">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="lsc">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#wpc">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Machine Black">\r
-               <param name="Name" value="Mode Menu">\r
-               <param name="Local" value="html/04.htm#machineblack">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Machine Both">\r
-               <param name="Name" value="Mode Menu">\r
-               <param name="Local" value="html/04.htm#machine both">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Machine White">\r
-               <param name="Name" value="Mode Menu">\r
-               <param name="Local" value="html/04.htm#machinewhite">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Match">\r
-               <param name="Name" value="ICS Interaction Context Menu">\r
-               <param name="Local" value="html/09.htm#match">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="matchGames">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#mg">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="matchMode">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#mm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="matchPause">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#matchpause">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="materialDraws">\r
-               <param name="Name" value="Adjudication Options">\r
-               <param name="Local" value="html/17.htm#materialdraws">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Menus">\r
-               <param name="Name" value="Menus">\r
-               <param name="Local" value="html/02.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Message">\r
-               <param name="Name" value="ICS Interaction Context Menu">\r
-               <param name="Local" value="html/09.htm#message">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="messageFont">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#clockfont">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="mg">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#mg">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="mm">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#mm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="mode">\r
-               <param name="Name" value="Other Options">\r
-               <param name="Local" value="html/18.htm#mode">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Mode Menu">\r
-               <param name="Name" value="Mode Menu">\r
-               <param name="Local" value="html/04.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="mono">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#mono">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="monoMode">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#mono">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="move">\r
-               <param name="Name" value="Contents">\r
-               <param name="Local" value="html/01.htm#move">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Move Now">\r
-               <param name="Name" value="Step Menu">\r
-               <param name="Local" value="html/06.htm#movenow">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Move Sound">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#movesound">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="moveHistoryUp">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#windowup">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="moves">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#moves">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="movesPerSession">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#mps">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="mps">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#mps">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Mute all Sounds">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#mute">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="N-Fold Repetition Rule">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#n-foldrepetitionrule">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="N-Move Rule">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#n-moverule">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="nameOfDebugFile">\r
-               <param name="Name" value="Load and Save Options">\r
-               <param name="Local" value="html/15.htm#debugfile">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="ncp">\r
-               <param name="Name" value="Other Options">\r
-               <param name="Local" value="html/18.htm#ncp">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="New Game">\r
-               <param name="Name" value="File Menu">\r
-               <param name="Local" value="html/03.htm#newgame">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="New Shuffle Game">\r
-               <param name="Name" value="File Menu">\r
-               <param name="Local" value="html/03.htm#newshufflegame">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="New Variant">\r
-               <param name="Name" value="File Menu">\r
-               <param name="Local" value="html/03.htm#newvariant">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="niceEngines">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#niceengines">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="noChessProgram">\r
-               <param name="Name" value="Other Options">\r
-               <param name="Local" value="html/18.htm#ncp">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="noGUI">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#nogui">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Number of CPUs">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#hashsize">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Observe">\r
-               <param name="Name" value="ICS Interaction Context Menu">\r
-               <param name="Local" value="html/09.htm#observe">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="oldsave">\r
-               <param name="Name" value="Load and Save Options">\r
-               <param name="Local" value="html/15.htm#oldsave">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="oldSaveStyle">\r
-               <param name="Name" value="Load and Save Options">\r
-               <param name="Local" value="html/15.htm#oldsave">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="One-Click Move">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#oneclickmovecmd">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="oneClickMove">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#oneclickmove">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Open Chat Box">\r
-               <param name="Name" value="ICS Interaction Context Menu">\r
-               <param name="Local" value="html/09.htm#openchatbox">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Open Chat Window">\r
-               <param name="Name" value="Mode Menu">\r
-               <param name="Local" value="html/04.htm#openchatwindow">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Opening Book">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#hashsize">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Options">\r
-               <param name="Name" value="Command Line Options">\r
-               <param name="Local" value="html/11.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Options Menu">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Other Options">\r
-               <param name="Name" value="Other Options">\r
-               <param name="Local" value="html/18.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="overideLineGap">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#overidelinegap">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Paste">\r
-               <param name="Name" value="ICS Interaction Context Menu">\r
-               <param name="Local" value="html/09.htm#paste">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Paste Game From Clipboard">\r
-               <param name="Name" value="File Menu">\r
-               <param name="Local" value="html/03.htm#pastegamefromclipboard">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Paste Position Clipboard">\r
-               <param name="Name" value="File Menu">\r
-               <param name="Local" value="html/03.htm#pastepositionfromclipboard">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Pause">\r
-               <param name="Name" value="Mode Menu">\r
-               <param name="Local" value="html/04.htm#pause">\r
-               <param name="Name" value="Buttons">\r
-               <param name="Local" value="html/10.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="periodic">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#periodic">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Periodic Updates">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#periodicupdatescmd">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#pondernextmove">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="periodicUpdates">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#periodic">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="pgnEventHeader">\r
-               <param name="Name" value="Load and Save Options">\r
-               <param name="Local" value="html/15.htm#pgneventheader">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="pgnExtendedInfo">\r
-               <param name="Name" value="Load and Save Options">\r
-               <param name="Local" value="html/15.htm#pgnextendedinfo">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="phc">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#hsc">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="pieceToCharTable">\r
-               <param name="Name" value="Other Options">\r
-               <param name="Local" value="html/18.htm#piecetochartable">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Play">\r
-               <param name="Name" value="ICS Interaction Context Menu">\r
-               <param name="Local" value="html/09.htm#play">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Players">\r
-               <param name="Name" value="ICS Interaction Context Menu">\r
-               <param name="Local" value="html/09.htm#players">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Polyglot Directory">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#polyglotdirectory">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="PolyglotBook">\r
-               <param name="Name" value="UCI Engine Support">\r
-               <param name="Local" value="html/13.htm#polyglotbook">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="PolyglotDir">\r
-               <param name="Name" value="UCI Engine Support">\r
-               <param name="Local" value="html/13.htm#polyglotdir">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="ponder">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#ponder">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Ponder Next Move">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#pondernextmovecmd">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#pondernextmove">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="ponderNextMove">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#ponder">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="popup">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#popup">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#popupmoveerrorsopt">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Popup Exit Message">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#popupexitmessagecmd">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Popup Move Errors">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#popupmoveerrorscmd">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="popupMoveErrors">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#popup">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#popupmoveerrorsopt">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="pre">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#pre">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="preBlack">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#preblack">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Premove">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#premovecmd">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="premove (option)">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#pre">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="premoveBlack">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#preblack">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="premoveBlackText">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#premoveblacktext">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="premoveHighlightColor">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#hsc">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="premoveWhite">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#prewhite">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="premoveWhiteText">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#premovewhitetext">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="preWhite">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#prewhite">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="queen">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#queen">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="quiet">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#quiet">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Quiet Play">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#quietplaycmd">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="quietPlay">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#quiet">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Reload Same Game">\r
-               <param name="Name" value="File Menu">\r
-               <param name="Local" value="html/03.htm#reloadsamegame">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Reload Same Position">\r
-               <param name="Name" value="File Menu">\r
-               <param name="Local" value="html/03.htm#reloadsameposition">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Rematch">\r
-               <param name="Name" value="Action Menu">\r
-               <param name="Local" value="html/05.htm#rematch">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="remoteShell">\r
-               <param name="Name" value="Other Options">\r
-               <param name="Local" value="html/18.htm#rsh">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="remoteUser">\r
-               <param name="Name" value="Other Options">\r
-               <param name="Local" value="html/18.htm#ruser">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="renderPiecesWithFont">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#renderpieceswithfont">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="repeatsToDraw">\r
-               <param name="Name" value="Adjudication Options">\r
-               <param name="Local" value="html/17.htm#repeatstodraw">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Resign">\r
-               <param name="Name" value="Action Menu">\r
-               <param name="Local" value="html/05.htm#resign">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Retract Move">\r
-               <param name="Name" value="Step Menu">\r
-               <param name="Local" value="html/06.htm#retractmove">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="reuse">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#reuse">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="reuse2">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#reuse">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="reuseFirst">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#reuse">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="reuseSecond">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#reuse">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Revert">\r
-               <param name="Name" value="Step Menu">\r
-               <param name="Local" value="html/06.htm#revert">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="rewindIndex">\r
-               <param name="Name" value="Load and Save Options">\r
-               <param name="Local" value="html/15.htm#rewindindex">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="rsh">\r
-               <param name="Name" value="Other Options">\r
-               <param name="Local" value="html/18.htm#rsh">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="ruleMoves">\r
-               <param name="Name" value="Adjudication Options">\r
-               <param name="Local" value="html/17.htm#rulemoves">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="ruser">\r
-               <param name="Name" value="Other Options">\r
-               <param name="Local" value="html/18.htm#ruser">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Save Diagram">\r
-               <param name="Name" value="File Menu">\r
-               <param name="Local" value="html/03.htm#save diagram">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Save Game">\r
-               <param name="Name" value="File Menu">\r
-               <param name="Local" value="html/03.htm#savegame">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#savegameoptns">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Save Position">\r
-               <param name="Name" value="File Menu">\r
-               <param name="Local" value="html/03.htm#saveposition">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Save Settings Now">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#savesettings">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Save Settings on Exit">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#savesettingsonexit">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="saveGameFile">\r
-               <param name="Name" value="Load and Save Options">\r
-               <param name="Local" value="html/15.htm#sgf">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="saveOutOfBookInfo">\r
-               <param name="Name" value="Load and Save Options">\r
-               <param name="Local" value="html/15.htm#saveoutofbookinfo">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="savePositionFile">\r
-               <param name="Name" value="Load and Save Options">\r
-               <param name="Local" value="html/15.htm#spf">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="scp">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#fd">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="sd">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#sd">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#fd">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Search for Help on">\r
-               <param name="Name" value="Help Menu">\r
-               <param name="Local" value="html/08.htm#searchhelp">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="searchDepth">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#sd">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="searchTime">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#st">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="secondChessProgram">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#fd">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="secondChessProgramNames">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#secondchessprogramnames">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="secondDirectory">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#fd">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="secondHasOwnBookUCI">\r
-               <param name="Name" value="UCI Engine Support">\r
-               <param name="Local" value="html/13.htm#snoownbookuci">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="secondHost">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#fh">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="secondInitString">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#initstring">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#secondinitstring">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="secondIsUCI">\r
-               <param name="Name" value="UCI Engine Support">\r
-               <param name="Local" value="html/13.htm#suci">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="secondLogo">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#secondlogo">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="secondNeedsNoncompliantFEN">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#firstneedsnoncompliantfen">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="secondNPS">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#secondnps">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="secondOptions">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#firstoptions">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="secondProtocolVersion">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#firstprotocolversion">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="secondScoreAbs">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#firstscoreabs">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="secondTimeOdds">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#secondtimeodds">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="secondXBook">\r
-               <param name="Name" value="UCI Engine Support">\r
-               <param name="Local" value="html/13.htm#snoownbookuci">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Seek Graph">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#seekgraphcmd">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="seekGraph">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#seekgraph">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Settings">\r
-               <param name="Name" value="Files">\r
-               <param name="Local" value="html/19.htm#settings">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="settingsFile">\r
-               <param name="Name" value="Other Options">\r
-               <param name="Local" value="html/18.htm#ini">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="sg">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#seekgraph">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="sgf">\r
-               <param name="Name" value="Load and Save Options">\r
-               <param name="Local" value="html/15.htm#sgf">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="sh">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#fh">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Show Button Bar">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#showbuttonbarcmd">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Show Coords">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#showcoordscmd">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Show Engine Output">\r
-               <param name="Name" value="Mode Menu">\r
-               <param name="Local" value="html/04.htm#showengineoutput">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Show Evaluation Graph">\r
-               <param name="Name" value="Mode Menu">\r
-               <param name="Local" value="html/04.htm#showevaluationgraph">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Show Game List">\r
-               <param name="Name" value="Mode Menu">\r
-               <param name="Local" value="html/04.htm#showgamelist">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Show Move History">\r
-               <param name="Name" value="Mode Menu">\r
-               <param name="Local" value="html/04.htm#showmovehistory">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Show Thinking">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#showthinkingcmd">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#pondernextmove">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="showCoords">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#coords">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="showTargetSquares">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#showtargets">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="showThinking">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#thinking">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="shuffleOpenings">\r
-               <param name="Name" value="Other Options">\r
-               <param name="Local" value="html/18.htm#shuffleopenings">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="size">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#size">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="sNoOwnBookUCI">\r
-               <param name="Name" value="UCI Engine Support">\r
-               <param name="Local" value="html/13.htm#snoownbookuci">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Sought">\r
-               <param name="Name" value="ICS Interaction Context Menu">\r
-               <param name="Local" value="html/09.htm#sought">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="soundBell">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#soundshout">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="soundChallenge">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#soundshout">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="soundChannel">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#soundshout">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="soundChannel1">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#soundshout">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="soundIcsAlarm">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#soundicsalarm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="soundIcsDraw">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#soundicswin">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="soundIcsLoss">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#soundicswin">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="soundIcsUnfinished">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#soundicswin">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="soundIcsWin">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#soundicswin">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="soundKibitz">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#soundshout">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="soundMove">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#soundshout">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="soundRequest">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#soundshout">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Sounds">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#sounds">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#communications">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="soundShout">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#soundshout">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="soundSShout">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#soundshout">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="soundTell">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#soundshout">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="spf">\r
-               <param name="Name" value="Load and Save Options">\r
-               <param name="Local" value="html/15.htm#spf">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="st">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#st">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Startup Chat Boxes">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#startupchatboxescmd">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Step Menu">\r
-               <param name="Name" value="Step Menu">\r
-               <param name="Local" value="html/06.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="stickyWindows">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#stickywindows">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Stop Examining">\r
-               <param name="Name" value="Action Menu">\r
-               <param name="Local" value="html/05.htm#stopexamining">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Stop Observing">\r
-               <param name="Name" value="Action Menu">\r
-               <param name="Local" value="html/05.htm#stopobserving">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="sUCI">\r
-               <param name="Name" value="UCI Engine Support">\r
-               <param name="Local" value="html/13.htm#suci">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Swap Clocks">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#swap clocks">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="tagsFont">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#clockfont">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="tc">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#tc">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="td">\r
-               <param name="Name" value="Load and Save Options">\r
-               <param name="Local" value="html/15.htm#td">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Tell">\r
-               <param name="Name" value="ICS Interaction Context Menu">\r
-               <param name="Local" value="html/09.htm#tell">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="telnet">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#telnet">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="telnetProgram">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#telnetprogram">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Test Legality">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#testlegalitycmd">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="testClaims">\r
-               <param name="Name" value="Adjudication Options">\r
-               <param name="Local" value="html/17.htm#testclaims">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="testLegality">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#legal">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="thinking">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#thinking">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Time Control">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#timecontrolcmd">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="timeControl">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#tc">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="timeDelay">\r
-               <param name="Name" value="Load and Save Options">\r
-               <param name="Local" value="html/15.htm#td">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="timeIncrement">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#inc">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="timeOddsMode">\r
-               <param name="Name" value="Chess Engine Options">\r
-               <param name="Local" value="html/12.htm#timeoddsmode">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="timeseal">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#via">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="timestamp">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#via">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="top">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#top">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Training">\r
-               <param name="Name" value="Mode Menu">\r
-               <param name="Local" value="html/04.htm#training">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="trivialDraws">\r
-               <param name="Name" value="Adjudication Options">\r
-               <param name="Local" value="html/17.htm#trivialdraws">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Truncate Game">\r
-               <param name="Name" value="Step Menu">\r
-               <param name="Local" value="html/06.htm#truncategame">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Two Machines">\r
-               <param name="Name" value="Mode Menu">\r
-               <param name="Local" value="html/04.htm#twomachines">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Type In Move">\r
-               <param name="Name" value="Step Menu">\r
-               <param name="Local" value="html/06.htm#typeinmove">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="UCI Engine Support">\r
-               <param name="Name" value="UCI Engine Support">\r
-               <param name="Local" value="html/13.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Upload to Examine">\r
-               <param name="Name" value="Action Menu">\r
-               <param name="Local" value="html/05.htm#uploadtoexamine">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="usePolyglotBook">\r
-               <param name="Name" value="UCI Engine Support">\r
-               <param name="Local" value="html/13.htm#usepolyglotbook">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="User Interface Options">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="userName">\r
-               <param name="Name" value="Other Options">\r
-               <param name="Local" value="html/18.htm#username">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="useTelnet">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#telnet">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="variant">\r
-               <param name="Name" value="Other Options">\r
-               <param name="Local" value="html/18.htm#variant">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Vars">\r
-               <param name="Name" value="ICS Interaction Context Menu">\r
-               <param name="Local" value="html/09.htm#vars">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Verify Claims">\r
-               <param name="Name" value="Options Menu">\r
-               <param name="Local" value="html/07.htm#verifyclaims">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="via">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#via">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="whitePieceColor">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#wpc">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="Who">\r
-               <param name="Name" value="ICS Interaction Context Menu">\r
-               <param name="Local" value="html/09.htm#who">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="wpc">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#wpc">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="xalarm">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#alarm">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="xpre">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#pre">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="xpreBlack">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#preblack">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="xpreWhite">\r
-               <param name="Name" value="Internet Chess Server Options">\r
-               <param name="Local" value="html/14.htm#prewhite">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="xy coordinates of board">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#xy">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="xywh coordinates of Analysis window">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#xywh">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="xywh coordinates of Comment window">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#xywh">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="xywh coordinates of Engine Output window">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#windowup">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="xywh coordinates of Evaluation Graph window">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#windowup">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="xywh coordinates of Game List window">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#xywh">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="xywh coordinates of ICS Interaction window">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#xywh">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="xywh coordinates of Move History window">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#windowup">\r
-               </OBJECT>\r
-       <LI> <OBJECT type="text/sitemap">\r
-               <param name="Keyword" value="xywh coordinates of Tags window">\r
-               <param name="Name" value="User Interface Options">\r
-               <param name="Local" value="html/16.htm#xywh">\r
-               </OBJECT>\r
-</UL></HTML>\r
diff --git a/winboard/help/winboard.hhp b/winboard/help/winboard.hhp
deleted file mode 100644 (file)
index 6f8618c..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-[OPTIONS]\r
-Compatibility=1.1 or later\r
-Compiled file=winboard.chm\r
-Contents file=contents.hhc\r
-Default topic=html\01.htm\r
-Display compile progress=No\r
-Index file=winboard.hhk\r
-Language=0x413 Nederlands (Nederland)\r
-\r
-\r
-[FILES]\r
-html\01.htm\r
-html\02.htm\r
-html\03.htm\r
-html\04.htm\r
-html\05.htm\r
-html\06.htm\r
-html\07.htm\r
-html\08.htm\r
-html\09.htm\r
-html\10.htm\r
-html\11.htm\r
-html\12.htm\r
-html\13.htm\r
-html\14.htm\r
-html\15.htm\r
-html\16.htm\r
-html\17.htm\r
-html\18.htm\r
-html\19.htm\r
-html\20.htm\r
-html\21.htm\r
-html\22.htm\r
-html\23.htm\r
-html\24.htm\r
-\r
-[INFOTYPES]\r
-\r
diff --git a/winboard/internationalize b/winboard/internationalize
deleted file mode 100644 (file)
index 9465038..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-ed $1<metascript.txt\r
-ed winboard.rc<script.txt\r
-windres -D_WIN32_IE=0x0300 -DWIN32 -DJAWS --use-temp-file --include-dir .. tmp.rc -O coff -o wbres.o
\ No newline at end of file
diff --git a/winboard/jaws.c b/winboard/jaws.c
deleted file mode 100644 (file)
index aa843ad..0000000
+++ /dev/null
@@ -1,1400 +0,0 @@
-/*\r
- * JAWS.c -- Code for Windows front end to XBoard to use it with JAWS\r
- *\r
- * Copyright 1991 by Digital Equipment Corporation, Maynard,\r
- * Massachusetts.\r
- *\r
- * Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006,\r
- * 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free\r
- * Software Foundation, Inc.\r
- *\r
- * XBoard borrows its colors and the bitmaps.xchess bitmap set from XChess,\r
- * which was written and is copyrighted by Wayne Christopher.\r
- *\r
- * The following terms apply to Digital Equipment Corporation's copyright\r
- * interest in XBoard:\r
- * ------------------------------------------------------------------------\r
- * All Rights Reserved\r
- *\r
- * Permission to use, copy, modify, and distribute this software and its\r
- * documentation for any purpose and without fee is hereby granted,\r
- * provided that the above copyright notice appear in all copies and that\r
- * both that copyright notice and this permission notice appear in\r
- * supporting documentation, and that the name of Digital not be\r
- * used in advertising or publicity pertaining to distribution of the\r
- * software without specific, written prior permission.\r
- *\r
- * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING\r
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL\r
- * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR\r
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,\r
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,\r
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS\r
- * SOFTWARE.\r
- * ------------------------------------------------------------------------\r
- *\r
- * The following terms apply to the enhanced version of XBoard\r
- * distributed by the Free Software Foundation:\r
- * ------------------------------------------------------------------------\r
- *\r
- * GNU XBoard is free software: you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation, either version 3 of the License, or (at\r
- * your option) any later version.\r
- *\r
- * GNU XBoard is distributed in the hope that it will be useful, but\r
- * WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
- * General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program. If not, see http://www.gnu.org/licenses/.  *\r
- *\r
- *------------------------------------------------------------------------\r
- ** See the file ChangeLog for a revision history.  */\r
-\r
-// This file collects all patches for the JAWS version, so they can all be included in winboard.c\r
-// in one big swoop. At the bottom of this file you can read instructions for how to patch\r
-// WinBoard to work with JAWS with the aid of this file. Note that the code in this file\r
-// is for WinBoard 4.3 and later; for older WB versions you would have to throw out the\r
-// piece names for all pieces from Guard to Unicorn, #define ONE as '1', AAA as 'a',\r
-// BOARD_LEFT as 0, BOARD_RGHT and BOARD_HEIGHT as 8, and set holdingssizes to 0.\r
-// You will need to build with jaws.rc in stead of winboard.rc.\r
-\r
-// from resource.h\r
-\r
-#define IDM_PossibleAttackMove          1800\r
-#define IDM_PossibleAttacked            1801\r
-#define IDM_SayMachineMove              1802\r
-#define IDM_ReadRow                     1803\r
-#define IDM_ReadColumn                  1804\r
-#define IDM_SayCurrentPos               1805\r
-#define IDM_SayAllBoard                 1806\r
-#define IDM_SayUpperDiagnols            1807\r
-#define IDM_SayLowerDiagnols            1808\r
-#define IDM_SayClockTime                1810\r
-#define IDM_SayWhosTurn                 1811\r
-#define IDM_SayKnightMoves              1812\r
-#define ID_SHITTY_HI                    1813\r
-#define IDM_SayWhitePieces              1816\r
-#define IDM_SayBlackPieces              1817\r
-\r
-\r
-// from common.h, but 'extern' added to it, so the actual declaraton can remain in backend.c\r
-\r
-extern long whiteTimeRemaining, blackTimeRemaining, timeControl, timeIncrement;\r
-\r
-// from moves.c, added WinBoard_F piece types and ranks / files\r
-\r
-char *squareToChar[] = { "ay", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l" };\r
-\r
-char *squareToNum[] = {"naught", "1", "2", "3", "4", "5", "6", "7", "8", "9" };\r
-\r
-char *ordinals[] = {"zeroth", "first", "second", "third", "fourth", "fifth", "sixth", "seventh", "eighth", "nineth"};\r
-\r
-char *pieceToName[] = {\r
-               "White Pawn", "White Knight", "White Bishop", "White Rook", "White Queen",\r
-               "White Guard", "White Elephant", "White Arch Bishop", "White Chancellor",\r
-               "White General", "White Man", "White Cannon", "White Night Rider",\r
-               "White Crowned Bishop", "White Crowned Rook", "White Grass Hopper", "White Veteran",\r
-               "White Falcon", "White Amazon", "White Snake", "White Unicorn",\r
-               "White King",\r
-               "Black Pawn", "Black Knight", "Black Bishop", "Black Rook", "Black Queen",\r
-               "Black Guard", "Black Elephant", "Black Arch Bishop", "Black Chancellor",\r
-               "Black General", "Black Man", "Black Cannon", "Black Night Rider",\r
-               "Black Crowned Bishop", "Black Crowned Rook", "Black Grass Hopper", "Black Veteran",\r
-               "Black Falcon", "Black Amazon", "Black Snake", "Black Unicorn",\r
-               "Black King",\r
-               "Empty"\r
-       };\r
-\r
-char *pieceTypeName[] = {\r
-               "Pawn", "Knight", "Bishop", "Rook", "Queen",\r
-               "Guard", "Elephant", "Arch Bishop", "Chancellor",\r
-               "General", "Man", "Cannon", "Night Rider",\r
-               "Crowned Bishop", "Crowned Rook", "Grass Hopper", "Veteran",\r
-               "Falcon", "Amazon", "Snake", "Unicorn",\r
-               "King",\r
-               "Pawn", "Knight", "Bishop", "Rook", "Queen",\r
-               "Guard", "Elephant", "Arch Bishop", "Chancellor",\r
-               "General", "Man", "Cannon", "Night Rider",\r
-               "Crowned Bishop", "Crowned Rook", "Grass Hopper", "Veteran",\r
-               "Falcon", "Amazon", "Snake", "Unicorn",\r
-               "King",\r
-               "Empty"\r
-       };\r
-\r
-int CoordToNum(c)\r
-               char c;\r
-{\r
-       if(isdigit(c)) return c - ONE;\r
-       if(c >= 'a') return c - AAA;\r
-       return 0;\r
-}\r
-\r
-char* PieceToName(p, i)\r
-       ChessSquare p;\r
-       int i;\r
-{\r
-       if(i) return pieceToName[(int) p];\r
-               return pieceTypeName[(int) p];\r
-}\r
-\r
-char* SquareToChar(x)\r
-                       int x;\r
-{\r
-               return squareToChar[x - BOARD_LEFT];\r
-}\r
-\r
-char* SquareToNum(y)\r
-                       int y;\r
-{\r
-               return squareToNum[y + (gameInfo.boardHeight < 10)];\r
-}\r
-\r
-\r
-// from winboard.c: all new routines\r
-#define JFWAPI __declspec(dllimport)\r
-JFWAPI BOOL WINAPI JFWSayString (LPCTSTR lpszStrinToSpeak, BOOL bInterrupt);\r
-\r
-typedef JFWAPI BOOL (WINAPI *PSAYSTRING)(LPCTSTR lpszStrinToSpeak, BOOL bInterrupt);\r
-\r
-PSAYSTRING RealSayString;\r
-\r
-VOID SayString(char *mess, BOOL flag)\r
-{ // for debug file\r
-       static char buf[8000], *p;\r
-        int l = strlen(buf);\r
-       if(appData.debugMode) fprintf(debugFP, "SAY '%s'\n", mess);\r
-        if(l) buf[l++] = ' '; // separate by space from previous\r
-       safeStrCpy(buf+l, _(mess), 8000-1-l); // buffer\r
-        if(!flag) return; // wait for flush\r
-       if(p = StrCaseStr(buf, "Xboard adjudication:")) {\r
-               int i;\r
-               for(i=19; i>1; i--) p[i] = p[i-1];\r
-               p[1] = ' ';\r
-       }\r
-       RealSayString(buf, !strcmp(mess, " ")); // kludge to indicate flushing of interruptable speach\r
-       if(appData.debugMode) fprintf(debugFP, "SPEAK '%s'\n", buf);\r
-       buf[0] = NULLCHAR;\r
-}\r
-\r
-//static int fromX = 0, fromY = 0;\r
-static int oldFromX, oldFromY;\r
-static int timeflag;\r
-static int suppressClocks = 0;\r
-static int suppressOneKey = 0;\r
-static HANDLE hAccelJAWS;\r
-\r
-typedef struct { char *name; int code; } MenuItemDesc;\r
-\r
-MenuItemDesc menuItemJAWS[] = {\r
-{"Say Clock &Time\tAlt+T",      IDM_SayClockTime },\r
-{"-", 0 },\r
-{"Say Last &Move\tAlt+M",       IDM_SayMachineMove },\r
-{"Say W&ho's Turn\tAlt+X",      IDM_SayWhosTurn },\r
-{"-", 0 },\r
-{"Say Complete &Position\tAlt+P",IDM_SayAllBoard },\r
-{"Say &White Pieces\tAlt+W",    IDM_SayWhitePieces },\r
-{"Say &Black Pieces\tAlt+B",    IDM_SayBlackPieces },\r
-{"Say Board &Rank\tAlt+R",      IDM_ReadRow },\r
-{"Say Board &File\tAlt+F",      IDM_ReadColumn },\r
-{"-", 0 },\r
-{"Say &Upper Diagonals\tAlt+U",  IDM_SayUpperDiagnols },\r
-{"Say &Lower Diagonals\tAlt+L",  IDM_SayLowerDiagnols },\r
-{"Say K&night Moves\tAlt+N",    IDM_SayKnightMoves },\r
-{"Say Current &Square\tAlt+S",  IDM_SayCurrentPos },\r
-{"Say &Attacks\tAlt+A",         IDM_PossibleAttackMove },\r
-{"Say Attacke&d\tAlt+D",        IDM_PossibleAttacked },\r
-{NULL, 0}\r
-};\r
-\r
-ACCEL acceleratorsJAWS[] = {\r
-{FVIRTKEY|FALT, 'T', IDM_SayClockTime },\r
-{FVIRTKEY|FALT, 'M', IDM_SayMachineMove },\r
-{FVIRTKEY|FALT, 'X', IDM_SayWhosTurn },\r
-{FVIRTKEY|FALT, 'P', IDM_SayAllBoard },\r
-{FVIRTKEY|FALT, 'W', IDM_SayWhitePieces },\r
-{FVIRTKEY|FALT, 'B', IDM_SayBlackPieces },\r
-{FVIRTKEY|FALT, 'R', IDM_ReadRow },\r
-{FVIRTKEY|FALT, 'F', IDM_ReadColumn },\r
-{FVIRTKEY|FALT, 'U', IDM_SayUpperDiagnols },\r
-{FVIRTKEY|FALT, 'L', IDM_SayLowerDiagnols },\r
-{FVIRTKEY|FALT, 'N', IDM_SayKnightMoves },\r
-{FVIRTKEY|FALT, 'S', IDM_SayCurrentPos },\r
-{FVIRTKEY|FALT, 'A', IDM_PossibleAttackMove },\r
-{FVIRTKEY|FALT, 'D', IDM_PossibleAttacked }\r
-};\r
-\r
-void\r
-AdaptMenu()\r
-{\r
-       HMENU menuMain, menuJAWS;\r
-       MENUBARINFO helpMenuInfo;\r
-       int i;\r
-\r
-       helpMenuInfo.cbSize = sizeof(helpMenuInfo);\r
-       menuMain = GetMenu(hwndMain);\r
-       menuJAWS = CreatePopupMenu();\r
-\r
-       for(i=0; menuItemJAWS[i].name; i++) {\r
-           if(menuItemJAWS[i].name[0] == '-')\r
-                AppendMenu(menuJAWS, MF_SEPARATOR, (UINT_PTR) 0, NULL);\r
-           else AppendMenu(menuJAWS, MF_ENABLED|MF_STRING,\r
-                       (UINT_PTR) menuItemJAWS[i].code, (LPCTSTR) _(menuItemJAWS[i].name));\r
-       }\r
-       InsertMenu(menuMain, 7, MF_BYPOSITION|MF_POPUP|MF_ENABLED|MF_STRING,\r
-               (UINT_PTR) menuJAWS, "&JAWS");\r
-       oldMenuItemState[8] = oldMenuItemState[7];\r
-       DrawMenuBar(hwndMain);\r
-}\r
-\r
-BOOL\r
-InitJAWS()\r
-{      // to be called at beginning of WinMain, after InitApplication and InitInstance\r
-       HINSTANCE hApi = LoadLibrary("jfwapi32.dll");\r
-       if(!hApi) {\r
-               DisplayInformation("Missing jfwapi32.dll");\r
-               return (FALSE);\r
-       }\r
-\r
-       RealSayString = (PSAYSTRING)GetProcAddress(hApi, "JFWSayString");\r
-       if(!RealSayString) {\r
-               DisplayInformation("SayString returned a null pointer");\r
-               return (FALSE);\r
-       }\r
-\r
-       {\r
-               // [HGM] kludge to reduce need for modification of winboard.c: make tinyLayout menu identical\r
-               // to standard layout, so that code for switching between them does not have to be deleted\r
-               int i;\r
-\r
-               AdaptMenu();\r
-               menuBarText[0][8] = menuBarText[0][7]; menuBarText[0][7] = "&JAWS";\r
-               for(i=0; i<9; i++) menuBarText[2][i] = menuBarText[1][i] = menuBarText[0][i];\r
-       }\r
-\r
-       hAccelJAWS = CreateAcceleratorTable(acceleratorsJAWS, 14);\r
-\r
-       /* initialize cursor position */\r
-       fromX = fromY = 0;\r
-       SetHighlights(fromX, fromY, -1, -1);\r
-       DrawPosition(FALSE, NULL);\r
-       oldFromX = oldFromY = -1;\r
-\r
-       if(hwndConsole) SetFocus(hwndConsole);\r
-       return TRUE;\r
-}\r
-\r
-int beeps[] = { 1, 0, 0, 0, 0 };\r
-int beepCodes[] = { 0, MB_OK, MB_ICONERROR, MB_ICONQUESTION, MB_ICONEXCLAMATION, MB_ICONASTERISK };\r
-static int dropX = -1, dropY = -1;\r
-\r
-VOID\r
-KeyboardEvent(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)\r
-{\r
-       ChessSquare currentPiece;\r
-       char *piece, *xchar, *ynum ;\r
-       int n, beepType = 1; // empty beep\r
-\r
-       if(fromX == -1 || fromY == -1) { // if we just dropped piece, stay at that square\r
-               fromX = dropX; fromY = dropY;\r
-               dropX = dropY = -1; // but only once\r
-        }\r
-       if(fromX == -1 || fromY == -1) {\r
-               fromX = BOARD_LEFT; fromY = 0;\r
-        }\r
-       switch(wParam) {\r
-       case VK_LEFT:\r
-               if(fromX == BOARD_RGHT+1) fromX -= 2; else\r
-               if(fromX == BOARD_LEFT) { if(fromY >= BOARD_HEIGHT - gameInfo.holdingsSize) fromX -= 2; else beepType = 0; } else\r
-               if(fromX > BOARD_LEFT) fromX--; else beepType = 0; // off-board beep\r
-               break;\r
-       case VK_RIGHT:\r
-               if(fromX == BOARD_LEFT-2) fromX += 2; else\r
-               if(fromX == BOARD_RGHT-1) { if(fromY < gameInfo.holdingsSize) fromX += 2; else beepType = 0; } else\r
-               if(fromX < BOARD_RGHT-1) fromX++; else beepType = 0;\r
-               break;\r
-       case VK_UP:\r
-               if(fromX == BOARD_RGHT+1) { if(fromY < gameInfo.holdingsSize - 1) fromY++; else beepType = 0; } else\r
-               if(fromY < BOARD_HEIGHT-1) fromY++; else beepType = 0;\r
-               break;\r
-       case VK_DOWN:\r
-               if(fromX == BOARD_LEFT-2) { if(fromY > BOARD_HEIGHT - gameInfo.holdingsSize) fromY--; else beepType = 0; } else\r
-               if(fromY > 0) fromY--; else beepType = 0;\r
-               break;\r
-       }\r
-       SetHighlights(fromX, fromY, -1, -1);\r
-       DrawPosition(FALSE, NULL);\r
-       currentPiece = boards[currentMove][fromY][fromX];\r
-       piece = PieceToName(currentPiece,1);\r
-       if(beepType == 1 && currentPiece != EmptySquare) beepType = currentPiece < (int) BlackPawn ? 2 : 3; // white or black beep\r
-       if(beeps[beepType] == beeps[1] && (fromX == BOARD_RGHT+1 || fromX == BOARD_LEFT-2)) beepType = 4; // holdings beep\r
-       beepType = beeps[beepType]%6;\r
-       if(beepType) MessageBeep(beepCodes[beepType]);\r
-       if(fromX == BOARD_LEFT - 2) {\r
-               SayString("black holdings", FALSE);\r
-               if(currentPiece != EmptySquare) {\r
-                       char buf[MSG_SIZ];\r
-                       n = boards[currentMove][fromY][1];\r
-                       snprintf(buf, MSG_SIZ, "%d %s%s", n, PieceToName(currentPiece,0), n == 1 ? "" : "s");\r
-                       SayString(buf, FALSE);\r
-               }\r
-               SayString(" ", TRUE);\r
-       } else\r
-       if(fromX == BOARD_RGHT + 1) {\r
-               SayString("white holdings", FALSE);\r
-               if(currentPiece != EmptySquare) {\r
-                       char buf[MSG_SIZ];\r
-                       n = boards[currentMove][fromY][BOARD_WIDTH-2];\r
-                       snprintf(buf, MSG_SIZ,"%d %s%s", n, PieceToName(currentPiece,0), n == 1 ? "" : "s");\r
-                       SayString(buf, FALSE);\r
-               }\r
-               SayString(" ", TRUE);\r
-       } else\r
-       if(fromX >= BOARD_LEFT && fromX < BOARD_RGHT) {\r
-               char buf[MSG_SIZ];\r
-               xchar = SquareToChar(fromX);\r
-               ynum = SquareToNum(fromY);\r
-               if(currentPiece != EmptySquare) {\r
-                 snprintf(buf, MSG_SIZ, "%s %s %s", xchar, ynum, piece);\r
-               } else snprintf(buf, MSG_SIZ, "%s %s", xchar, ynum);\r
-               SayString(buf, FALSE);\r
-               SayString(" ", TRUE);\r
-       }\r
-       return;\r
-}\r
-\r
-int PosFlags(int nr);\r
-\r
-typedef struct {\r
-    int rf, ff, rt, ft;\r
-    int onlyCaptures;\r
-    int count;\r
-} ReadClosure;\r
-\r
-extern void ReadCallback P((Board board, int flags, ChessMove kind,\r
-                               int rf, int ff, int rt, int ft,\r
-                               VOIDSTAR closure));\r
-\r
-void ReadCallback(board, flags, kind, rf, ff, rt, ft, closure)\r
-     Board board;\r
-     int flags;\r
-     ChessMove kind;\r
-     int rf, ff, rt, ft;\r
-     VOIDSTAR closure;\r
-{\r
-    register ReadClosure *cl = (ReadClosure *) closure;\r
-    ChessSquare possiblepiece;\r
-    char *piece, *xchar, *ynum ;\r
-\r
-//if(appData.debugMode) fprintf(debugFP, "%c%c%c%c\n", ff+AAA, rf+ONE, ft+AAA, rt+ONE);\r
-    if(cl->ff == ff && cl->rf == rf) {\r
-       possiblepiece = board[rt][ft];\r
-       if(possiblepiece != EmptySquare) {\r
-               piece = PieceToName(possiblepiece,1);\r
-               xchar = SquareToChar(ft);\r
-               ynum  = SquareToNum(rt);\r
-               SayString(xchar , FALSE);\r
-               SayString(ynum, FALSE);\r
-               SayString(piece, FALSE);\r
-               cl->count++;\r
-       }\r
-    }\r
-    if(cl->ft == ft && cl->rt == rt) {\r
-       possiblepiece = board[rf][ff];\r
-               piece = PieceToName(possiblepiece,1);\r
-               xchar = SquareToChar(ff);\r
-               ynum  = SquareToNum(rf);\r
-               SayString(xchar , FALSE);\r
-               SayString(ynum, FALSE);\r
-               SayString(piece, FALSE);\r
-               cl->count++;\r
-    }\r
-}\r
-\r
-VOID\r
-PossibleAttackMove()\r
-{\r
-       ReadClosure cl;\r
-       ChessSquare piece, victim;\r
-       int removedSelectedPiece = 0, swapColor;\r
-\r
-//if(appData.debugMode) fprintf(debugFP, "PossibleAttackMove %d %d %d %d\n", fromX, fromY, oldFromX, oldFromY);\r
-       if(fromY < 0 || fromY >= BOARD_HEIGHT) return;\r
-       if(fromX < BOARD_LEFT || fromX >= BOARD_RGHT) { SayString("holdings",TRUE); return; }\r
-\r
-       piece = boards[currentMove][fromY][fromX];\r
-       if(piece == EmptySquare) { // if square is empty, try to substitute selected piece\r
-           if(oldFromX >= 0 && oldFromY >= 0) {\r
-               piece = boards[currentMove][oldFromY][oldFromX];\r
-               boards[currentMove][oldFromY][oldFromX] = EmptySquare;\r
-               removedSelectedPiece = 1;\r
-               SayString("Your", FALSE);\r
-               SayString(PieceToName(piece, 0), FALSE);\r
-               SayString("would have", FALSE);\r
-           } else { SayString("You must select a piece first", TRUE); return; }\r
-       }\r
-\r
-       victim = boards[currentMove][fromY][fromX];\r
-       boards[currentMove][fromY][fromX] = piece; // make sure piece is actally there\r
-       SayString("possible captures from here are", FALSE);\r
-\r
-       swapColor = piece <  (int)BlackPawn && !WhiteOnMove(currentMove) ||\r
-                   piece >= (int)BlackPawn &&  WhiteOnMove(currentMove);\r
-       cl.count = 0; cl.rf = fromY; cl.ff = fromX; cl.rt = cl.ft = -1;\r
-       GenLegal(boards[currentMove], PosFlags(currentMove + swapColor), ReadCallback, (VOIDSTAR) &cl);\r
-       if(cl.count == 0) SayString("None", FALSE);\r
-       SayString("", TRUE); // flush\r
-       boards[currentMove][fromY][fromX] = victim; // repair\r
-\r
-       if( removedSelectedPiece ) boards[currentMove][oldFromY][oldFromX] = piece;\r
-}\r
-\r
-\r
-VOID\r
-PossibleAttacked()\r
-{\r
-       ReadClosure cl;\r
-       ChessSquare piece = EmptySquare, victim;\r
-\r
-       if(fromY < 0 || fromY >= BOARD_HEIGHT) return;\r
-       if(fromX < BOARD_LEFT || fromX >= BOARD_RGHT) { SayString("holdings",TRUE); return; }\r
-\r
-       if(oldFromX >= 0 && oldFromY >= 0) { // if piece is selected, remove it\r
-               piece = boards[currentMove][oldFromY][oldFromX];\r
-               boards[currentMove][oldFromY][oldFromX] = EmptySquare;\r
-       }\r
-\r
-       SayString("Pieces that can capture you are", FALSE);\r
-\r
-       victim = boards[currentMove][fromY][fromX]; // put dummy piece on target square, to activate Pawn captures\r
-       boards[currentMove][fromY][fromX] = WhiteOnMove(currentMove) ? WhiteQueen : BlackQueen;\r
-       cl.count = 0; cl.rt = fromY; cl.ft = fromX; cl.rf = cl.ff = -1;\r
-       GenLegal(boards[currentMove], PosFlags(currentMove+1), ReadCallback, (VOIDSTAR) &cl);\r
-       if(cl.count == 0) SayString("None", FALSE);\r
-\r
-       SayString("You are defended by", FALSE);\r
-\r
-       boards[currentMove][fromY][fromX] = WhiteOnMove(currentMove) ? BlackQueen : WhiteQueen;\r
-       cl.count = 0; cl.rt = fromY; cl.ft = fromX; cl.rf = cl.ff = -1;\r
-       GenLegal(boards[currentMove], PosFlags(currentMove), ReadCallback, (VOIDSTAR) &cl);\r
-       if(cl.count == 0) SayString("None", FALSE);\r
-       SayString("", TRUE); // flush\r
-       boards[currentMove][fromY][fromX] = victim; // put back original occupant\r
-\r
-       if(oldFromX >= 0 && oldFromY >= 0) { // put back possibl selected piece\r
-               boards[currentMove][oldFromY][oldFromX] = piece;\r
-       }\r
-}\r
-\r
-VOID\r
-ReadRow()\r
-{\r
-       ChessSquare currentpiece;\r
-       char *piece, *xchar, *ynum ;\r
-       int xPos, count=0;\r
-       ynum = SquareToNum(fromY);\r
-\r
-       if(fromY < 0) return;\r
-\r
-       for (xPos=BOARD_LEFT; xPos<BOARD_RGHT; xPos++) {\r
-               currentpiece = boards[currentMove][fromY][xPos];\r
-               if(currentpiece != EmptySquare) {\r
-                       piece = PieceToName(currentpiece,1);\r
-                       xchar = SquareToChar(xPos);\r
-                       SayString(xchar , FALSE);\r
-                       SayString(ynum, FALSE);\r
-                       SayString(piece, FALSE);\r
-                       count++;\r
-               }\r
-       }\r
-       if(count == 0) {\r
-               SayString("rank", FALSE);\r
-               SayString(ynum, FALSE);\r
-               SayString("empty", FALSE);\r
-       }\r
-       SayString("", TRUE); // flush\r
-}\r
-\r
-VOID\r
-ReadColumn()\r
-{\r
-       ChessSquare currentpiece;\r
-       char *piece, *xchar, *ynum ;\r
-       int yPos, count=0;\r
-       xchar = SquareToChar(fromX);\r
-\r
-       if(fromX < 0) return;\r
-\r
-       for (yPos=0; yPos<BOARD_HEIGHT; yPos++) {\r
-               currentpiece = boards[currentMove][yPos][fromX];\r
-               if(currentpiece != EmptySquare) {\r
-                       piece = PieceToName(currentpiece,1);\r
-                       ynum = SquareToNum(yPos);\r
-                       SayString(xchar , FALSE);\r
-                       SayString(ynum, FALSE);\r
-                       SayString(piece, FALSE);\r
-                       count++;\r
-               }\r
-       }\r
-       if(count == 0) {\r
-               SayString(xchar, FALSE);\r
-               SayString("file empty", FALSE);\r
-       }\r
-       SayString("", TRUE); // flush\r
-}\r
-\r
-VOID\r
-SayUpperDiagnols()\r
-{\r
-       ChessSquare currentpiece;\r
-       char *piece, *xchar, *ynum ;\r
-       int yPos, xPos;\r
-\r
-       if(fromX < 0 || fromY < 0) return;\r
-\r
-       if(fromX < BOARD_RGHT-1 && fromY < BOARD_HEIGHT-1) {\r
-               SayString("The diagnol squares to your upper right contain", FALSE);\r
-               yPos = fromY+1;\r
-               xPos = fromX+1;\r
-               while(yPos<BOARD_HEIGHT && xPos<BOARD_RGHT) {\r
-                       currentpiece = boards[currentMove][yPos][xPos];\r
-                       piece = PieceToName(currentpiece,1);\r
-                       xchar = SquareToChar(xPos);\r
-                       ynum = SquareToNum(yPos);\r
-                       SayString(xchar , FALSE);\r
-                       SayString(ynum, FALSE);\r
-                       SayString(piece, FALSE);\r
-                       yPos++;\r
-                       xPos++;\r
-               }\r
-       }\r
-       else SayString("There is no squares to your upper right", FALSE);\r
-\r
-       if(fromX > BOARD_LEFT && fromY < BOARD_HEIGHT-1) {\r
-               SayString("The diagnol squares to your upper left contain", FALSE);\r
-               yPos = fromY+1;\r
-               xPos = fromX-1;\r
-               while(yPos<BOARD_HEIGHT && xPos>=BOARD_LEFT) {\r
-                       currentpiece = boards[currentMove][yPos][xPos];\r
-                       piece = PieceToName(currentpiece,1);\r
-                       xchar = SquareToChar(xPos);\r
-                       ynum = SquareToNum(yPos);\r
-                       SayString(xchar , FALSE);\r
-                       SayString(ynum, FALSE);\r
-                       SayString(piece, FALSE);\r
-                       yPos++;\r
-                       xPos--;\r
-               }\r
-       }\r
-       else SayString("There is no squares to your upper left", FALSE);\r
-       SayString("", TRUE); // flush\r
-}\r
-\r
-VOID\r
-SayLowerDiagnols()\r
-{\r
-       ChessSquare currentpiece;\r
-       char *piece, *xchar, *ynum ;\r
-       int yPos, xPos;\r
-\r
-       if(fromX < 0 || fromY < 0) return;\r
-\r
-       if(fromX < BOARD_RGHT-1 && fromY > 0) {\r
-               SayString("The diagnol squares to your lower right contain", FALSE);\r
-               yPos = fromY-1;\r
-               xPos = fromX+1;\r
-               while(yPos>=0 && xPos<BOARD_RGHT) {\r
-                       currentpiece = boards[currentMove][yPos][xPos];\r
-                       piece = PieceToName(currentpiece,1);\r
-                       xchar = SquareToChar(xPos);\r
-                       ynum = SquareToNum(yPos);\r
-                       SayString(xchar , FALSE);\r
-                       SayString(ynum, FALSE);\r
-                       SayString(piece, FALSE);\r
-                       yPos--;\r
-                       xPos++;\r
-               }\r
-       }\r
-       else SayString("There is no squares to your lower right", FALSE);\r
-\r
-       if(fromX > BOARD_LEFT && fromY > 0) {\r
-               SayString("The diagnol squares to your lower left contain", FALSE);\r
-               yPos = fromY-1;\r
-               xPos = fromX-1;\r
-               while(yPos>=0 && xPos>=BOARD_LEFT) {\r
-                       currentpiece = boards[currentMove][yPos][xPos];\r
-                       piece = PieceToName(currentpiece,1);\r
-                       xchar = SquareToChar(xPos);\r
-                       ynum = SquareToNum(yPos);\r
-                       SayString(xchar , FALSE);\r
-                       SayString(ynum, FALSE);\r
-                       SayString(piece, FALSE);\r
-                       yPos--;\r
-                       xPos--;\r
-               }\r
-       }\r
-       else SayString("There is no squares to your lower left", FALSE);\r
-       SayString("", TRUE); // flush\r
-}\r
-\r
-VOID\r
-SayKnightMoves()\r
-{\r
-       ChessSquare currentpiece, oldpiece;\r
-       char *piece, *xchar, *ynum ;\r
-\r
-       oldpiece = boards[currentMove][fromY][fromX];\r
-       if(oldpiece == WhiteKnight || oldpiece == BlackKnight)\r
-               SayString("The possible squares a Knight could move to are", FALSE);\r
-       else\r
-               SayString("The squares a Knight could possibly attack from are", FALSE);\r
-\r
-       if (fromY+2 < BOARD_HEIGHT && fromX-1 >= BOARD_LEFT) {\r
-               currentpiece = boards[currentMove][fromY+2][fromX-1];\r
-               if(((oldpiece == WhiteKnight) && (currentpiece > WhiteKing))\r
-                       || ((oldpiece == BlackKnight) && (currentpiece < BlackPawn || currentpiece == EmptySquare))\r
-                       || (oldpiece == EmptySquare) && (currentpiece == WhiteKnight || currentpiece == BlackKnight))\r
-               {\r
-                       piece = PieceToName(currentpiece,1);\r
-                       xchar = SquareToChar(fromX-1);\r
-                       ynum = SquareToNum(fromY+2);\r
-                       SayString(xchar , FALSE);\r
-                       SayString(ynum, FALSE);\r
-                       SayString(piece, FALSE);\r
-               }\r
-       }\r
-\r
-       if (fromY+2 < BOARD_HEIGHT && fromX+1 < BOARD_RGHT) {\r
-               currentpiece = boards[currentMove][fromY+2][fromX+1];\r
-               if(((oldpiece == WhiteKnight) && (currentpiece > WhiteKing))\r
-                       || ((oldpiece == BlackKnight) && (currentpiece < BlackPawn || currentpiece == EmptySquare))\r
-                       || (oldpiece == EmptySquare) && (currentpiece == WhiteKnight || currentpiece == BlackKnight))\r
-               {\r
-                       piece = PieceToName(currentpiece,1);\r
-                       xchar = SquareToChar(fromX+1);\r
-                       ynum = SquareToNum(fromY+2);\r
-                       SayString(xchar , FALSE);\r
-                       SayString(ynum, FALSE);\r
-                       SayString(piece, FALSE);\r
-               }\r
-       }\r
-\r
-       if (fromY+1 < BOARD_HEIGHT && fromX+2 < BOARD_RGHT) {\r
-               currentpiece = boards[currentMove][fromY+1][fromX+2];\r
-               if(((oldpiece == WhiteKnight) && (currentpiece > WhiteKing))\r
-                       || ((oldpiece == BlackKnight) && (currentpiece < BlackPawn || currentpiece == EmptySquare))\r
-                       || (oldpiece == EmptySquare) && (currentpiece == WhiteKnight || currentpiece == BlackKnight))\r
-               {\r
-                       piece = PieceToName(currentpiece,1);\r
-                       xchar = SquareToChar(fromX+2);\r
-                       ynum = SquareToNum(fromY+1);\r
-                       SayString(xchar , FALSE);\r
-                       SayString(ynum, FALSE);\r
-                       SayString(piece, FALSE);\r
-               }\r
-       }\r
-\r
-       if (fromY-1 >= 0 && fromX+2 < BOARD_RGHT) {\r
-               currentpiece = boards[currentMove][fromY-1][fromX+2];\r
-               if(((oldpiece == WhiteKnight) && (currentpiece > WhiteKing))\r
-                       || ((oldpiece == BlackKnight) && (currentpiece < BlackPawn || currentpiece == EmptySquare))\r
-                       || (oldpiece == EmptySquare) && (currentpiece == WhiteKnight || currentpiece == BlackKnight))\r
-               {\r
-                       piece = PieceToName(currentpiece,1);\r
-                       xchar = SquareToChar(fromX+2);\r
-                       ynum = SquareToNum(fromY-1);\r
-                       SayString(xchar , FALSE);\r
-                       SayString(ynum, FALSE);\r
-                       SayString(piece, FALSE);\r
-               }\r
-       }\r
-\r
-       if (fromY-2 >= 0 && fromX+1 < BOARD_RGHT) {\r
-               currentpiece = boards[currentMove][fromY-2][fromX+1];\r
-               if(((oldpiece == WhiteKnight) && (currentpiece > WhiteKing))\r
-                       || ((oldpiece == BlackKnight) && (currentpiece < BlackPawn || currentpiece == EmptySquare))\r
-                       || (oldpiece == EmptySquare) && (currentpiece == WhiteKnight || currentpiece == BlackKnight))\r
-               {\r
-                       piece = PieceToName(currentpiece,1);\r
-                       xchar = SquareToChar(fromX+1);\r
-                       ynum = SquareToNum(fromY-2);\r
-                       SayString(xchar , FALSE);\r
-                       SayString(ynum, FALSE);\r
-                       SayString(piece, FALSE);\r
-               }\r
-       }\r
-\r
-       if (fromY-2 >= 0 && fromX-1 >= BOARD_LEFT) {\r
-               currentpiece = boards[currentMove][fromY-2][fromX-1];\r
-               if(((oldpiece == WhiteKnight) && (currentpiece > WhiteKing))\r
-                       || ((oldpiece == BlackKnight) && (currentpiece < BlackPawn || currentpiece == EmptySquare))\r
-                       || (oldpiece == EmptySquare) && (currentpiece == WhiteKnight || currentpiece == BlackKnight))\r
-               {\r
-                       piece = PieceToName(currentpiece,1);\r
-                       xchar = SquareToChar(fromX-1);\r
-                       ynum = SquareToNum(fromY-2);\r
-                       SayString(xchar , FALSE);\r
-                       SayString(ynum, FALSE);\r
-                       SayString(piece, FALSE);\r
-               }\r
-       }\r
-\r
-       if (fromY-1 >= 0 && fromX-2 >= BOARD_LEFT) {\r
-               currentpiece = boards[currentMove][fromY-1][fromX-2];\r
-               if(((oldpiece == WhiteKnight) && (currentpiece > WhiteKing))\r
-                       || ((oldpiece == BlackKnight) && (currentpiece < BlackPawn || currentpiece == EmptySquare))\r
-                       || (oldpiece == EmptySquare) && (currentpiece == WhiteKnight || currentpiece == BlackKnight))\r
-               {\r
-                       piece = PieceToName(currentpiece,1);\r
-                       xchar = SquareToChar(fromX-2);\r
-                       ynum = SquareToNum(fromY-1);\r
-                       SayString(xchar , FALSE);\r
-                       SayString(ynum, FALSE);\r
-                       SayString(piece, FALSE);\r
-               }\r
-       }\r
-\r
-       if (fromY+1 < BOARD_HEIGHT && fromX-2 >= BOARD_LEFT) {\r
-               currentpiece = boards[currentMove][fromY+1][fromX-2];\r
-               if(((oldpiece == WhiteKnight) && (currentpiece > WhiteKing))\r
-                       || ((oldpiece == BlackKnight) && (currentpiece < BlackPawn || currentpiece == EmptySquare))\r
-                       || (oldpiece == EmptySquare) && (currentpiece == WhiteKnight || currentpiece == BlackKnight))\r
-               {\r
-                       piece = PieceToName(currentpiece,1);\r
-                       xchar = SquareToChar(fromX-2);\r
-                       ynum = SquareToNum(fromY+1);\r
-                       SayString(xchar , FALSE);\r
-                       SayString(ynum, FALSE);\r
-                       SayString(piece, FALSE);\r
-               }\r
-       }\r
-       SayString("", TRUE); // flush\r
-}\r
-\r
-VOID\r
-SayPieces(ChessSquare p)\r
-{\r
-       ChessSquare currentpiece;\r
-       char *piece, *xchar, *ynum ;\r
-       int yPos, xPos, count = 0;\r
-       char buf[50];\r
-\r
-       if(p == WhitePlay)   SayString("White pieces", FALSE); else\r
-       if(p == BlackPlay)   SayString("Black pieces", FALSE); else\r
-       if(p == EmptySquare) SayString("Pieces", FALSE); else {\r
-         snprintf(buf, sizeof(buf)/sizeof(buf[0]),"%ss", PieceToName(p,1));\r
-               SayString(buf, FALSE);\r
-       }\r
-       SayString("are located", FALSE);\r
-       for(yPos=0; yPos<BOARD_HEIGHT; yPos++) {\r
-               for(xPos=BOARD_LEFT; xPos<BOARD_RGHT; xPos++) {\r
-                       currentpiece = boards[currentMove][yPos][xPos];\r
-                       if(p == BlackPlay && currentpiece >= BlackPawn && currentpiece <= BlackKing ||\r
-                          p == WhitePlay && currentpiece >= WhitePawn && currentpiece <= WhiteKing   )\r
-                               piece = PieceToName(currentpiece,0);\r
-                       else if(p == EmptySquare && currentpiece != EmptySquare)\r
-                               piece = PieceToName(currentpiece,1);\r
-                       else if(p == currentpiece)\r
-                               piece = NULL;\r
-                       else continue;\r
-\r
-                               if(count == 0) SayString("at", FALSE);\r
-                               xchar = SquareToChar(xPos);\r
-                               ynum = SquareToNum(yPos);\r
-                               SayString(xchar , FALSE);\r
-                               SayString(ynum, FALSE);\r
-                               if(piece) SayString(piece, FALSE);\r
-                               count++;\r
-               }\r
-       }\r
-       if(count == 0) SayString("nowhere", FALSE);\r
-       SayString("", TRUE); // flush\r
-}\r
-\r
-VOID\r
-SayCurrentPos()\r
-{\r
-       ChessSquare currentpiece;\r
-       char *piece, *xchar, *ynum ;\r
-       if(fromX <  BOARD_LEFT) { SayString("You strayed into the white holdings", FALSE); return; }\r
-       if(fromX >= BOARD_RGHT) { SayString("You strayed into the black holdings", FALSE); return; }\r
-       currentpiece = boards[currentMove][fromY][fromX];\r
-       piece = PieceToName(currentpiece,1);\r
-       ynum = SquareToNum(fromY);\r
-       xchar = SquareToChar(fromX);\r
-       SayString("Your current position is", FALSE);\r
-       SayString(xchar, FALSE);\r
-       SayString(ynum, FALSE);\r
-       SayString(piece, FALSE);\r
-       if(((fromX-BOARD_LEFT) ^ fromY)&1)\r
-               SayString("on a light square",FALSE);\r
-       else\r
-               SayString("on a dark square",FALSE);\r
-\r
-       PossibleAttacked();\r
-       SayString("", TRUE); // flush\r
-}\r
-\r
-VOID\r
-SayAllBoard()\r
-{\r
-       int Xpos, Ypos;\r
-       ChessSquare currentpiece;\r
-       char *piece, *ynum ;\r
-\r
-       if(gameInfo.holdingsWidth) {\r
-               int first = 0;\r
-               for(Ypos=0; Ypos<gameInfo.holdingsSize; Ypos++) {\r
-                       int n = boards[currentMove][Ypos][BOARD_WIDTH-2];\r
-                       if(n) {\r
-                         char buf[MSG_SIZ];\r
-                         if(!first++)\r
-                           SayString("white holds", FALSE);\r
-                         currentpiece = boards[currentMove][Ypos][BOARD_WIDTH-1];\r
-                         piece = PieceToName(currentpiece,0);\r
-                         snprintf(buf, MSG_SIZ,"%d %s%s", n, piece, (n==1 ? "" : "s") );\r
-                         SayString(buf, FALSE);\r
-                       }\r
-               }\r
-               first = 0;\r
-               for(Ypos=BOARD_HEIGHT-1; Ypos>=BOARD_HEIGHT - gameInfo.holdingsSize; Ypos--) {\r
-                       int n = boards[currentMove][Ypos][1];\r
-                       if(n) {\r
-                         char buf[MSG_SIZ];\r
-                         if(!first++)\r
-                           SayString("black holds", FALSE);\r
-                         currentpiece = boards[currentMove][Ypos][0];\r
-                         piece = PieceToName(currentpiece,0);\r
-                         snprintf(buf, MSG_SIZ, "%d %s%s", n, piece, (n==1 ? "" : "s") );\r
-                         SayString(buf, FALSE);\r
-                       }\r
-               }\r
-       }\r
-\r
-       for(Ypos=BOARD_HEIGHT-1; Ypos>=0; Ypos--) {\r
-               ynum = ordinals[Ypos + (gameInfo.boardHeight < 10)];\r
-               SayString(ynum, FALSE);\r
-               SayString("rank", FALSE);\r
-               for(Xpos=BOARD_LEFT; Xpos<BOARD_RGHT; Xpos++) {\r
-                       currentpiece = boards[currentMove][Ypos][Xpos];\r
-                       if(currentpiece != EmptySquare) {\r
-                               int count = 0;\r
-                               char buf[50];\r
-                               piece = PieceToName(currentpiece,1);\r
-                               while(Xpos < BOARD_RGHT && boards[currentMove][Ypos][Xpos] == currentpiece)\r
-                                       Xpos++, count++;\r
-                               if(count > 1)\r
-                                 snprintf(buf, sizeof(buf)/sizeof(buf[0]), "%d %ss", count, piece);\r
-                               else\r
-                                 snprintf(buf, sizeof(buf)/sizeof(buf[0]), "%s", piece);\r
-                               Xpos--;\r
-                               SayString(buf, FALSE);\r
-                       } else {\r
-                               int count = 0, oldX = Xpos;\r
-                               while(Xpos < BOARD_RGHT && boards[currentMove][Ypos][Xpos] == EmptySquare)\r
-                                       Xpos++, count++;\r
-                               if(Xpos == BOARD_RGHT && oldX == BOARD_LEFT)\r
-                                       SayString("all", FALSE);\r
-                               else{\r
-                                   if(count > 1) {\r
-                                       char buf[10];\r
-                                       snprintf(buf, sizeof(buf)/sizeof(buf[0]),"%d", count);\r
-                                       SayString(buf, FALSE);\r
-                                   }\r
-                                   Xpos--;\r
-                               }\r
-                               SayString("empty", FALSE);\r
-                       }\r
-               }\r
-       }\r
-       SayString("", TRUE); // flush\r
-}\r
-\r
-VOID\r
-SayWhosTurn()\r
-{\r
-       if(gameMode == MachinePlaysBlack || gameMode == IcsPlayingWhite) {\r
-               if(WhiteOnMove(currentMove))\r
-                       SayString("It is your turn", FALSE);\r
-               else    SayString("It is your opponents turn", FALSE);\r
-       } else if(gameMode == MachinePlaysWhite || gameMode == IcsPlayingBlack) {\r
-               if(WhiteOnMove(currentMove))\r
-                       SayString("It is your opponents turn", FALSE);\r
-               else    SayString("It is your turn", FALSE);\r
-       } else {\r
-               if(WhiteOnMove(currentMove))\r
-                       SayString("White is on move here", FALSE);\r
-               else    SayString("Black is on move here", FALSE);\r
-       }\r
-       SayString("", TRUE); // flush\r
-}\r
-\r
-extern char *commentList[];\r
-\r
-VOID\r
-SayMachineMove(int evenIfDuplicate)\r
-{\r
-       int len, xPos, yPos, moveNr, secondSpace = 0, castle = 0, n;\r
-       ChessSquare currentpiece;\r
-       char *piece, *xchar, *ynum, *p, checkMark = 0;\r
-       char c, buf[MSG_SIZ], comment[MSG_SIZ];\r
-       static char disambiguation[2];\r
-       static int previousMove = 0;\r
-\r
-       if(appData.debugMode) fprintf(debugFP, "Message = '%s'\n", messageText);\r
-       if(gameMode == BeginningOfGame) return;\r
-       if(messageText[0] == '[') return;\r
-       comment[0]= 0;\r
-           if(isdigit(messageText[0])) { // message is move, possibly with thinking output\r
-               int dotCount = 0, spaceCount = 0;\r
-               sscanf(messageText, "%d", &moveNr);\r
-               len = 0;\r
-               // [HGM] show: better extraction of move\r
-               while (messageText[len] != NULLCHAR) {\r
-                   if(messageText[len] == '.' && spaceCount == 0) dotCount++;\r
-                   if(messageText[len] == ' ') { if(++spaceCount == 2) secondSpace = len; }\r
-                   if(messageText[len] == '{') { // we detected a comment\r
-                       if(isalpha(messageText[len+1]) ) sscanf(messageText+len, "{%[^}]}", comment);\r
-                       break;\r
-                   }\r
-                   if(messageText[len] == '[') { // we detected thinking output\r
-                       int depth; float score=0; char c, lastMover = (dotCount == 3 ? 'B' : 'W');\r
-                       if(sscanf(messageText+len+1, "%d]%c%f", &depth, &c, &score) > 1) {\r
-                           if(c == ' ') { // if not explicitly specified, figure out source of thinking output\r
-                               switch(gameMode) {\r
-                                 case MachinePlaysWhite:\r
-                                 case IcsPlayingWhite:\r
-                                   c = 'W'; break;\r
-                                 case IcsPlayingBlack:\r
-                                 case MachinePlaysBlack:\r
-                                   c = 'B';\r
-                                 default:\r
-                                   break;\r
-                               }\r
-                           }\r
-                           if(c != lastMover && !evenIfDuplicate) return; // line is thinking output of future move, ignore.\r
-                           if(2*moveNr - (dotCount < 2) == previousMove)\r
-                               return; // do not repeat same move; likely ponder output\r
-                           snprintf(buf, MSG_SIZ, "score %s %d at %d ply",\r
-                                       score > 0 ? "plus" : score < 0 ? "minus" : "",\r
-                                       (int) (fabs(score)*100+0.5),\r
-                                       depth );\r
-                           SayString(buf, FALSE); // move + thinking output describing it; say it.\r
-                       }\r
-                       while(messageText[len-1] == ' ') len--; // position just behind move;\r
-                       break;\r
-                   }\r
-                   if(messageText[len] == '(') { // ICS time printed behind move\r
-                       while(messageText[len+1] && messageText[len] != ')') len++; // skip it\r
-                   }\r
-                   len++;\r
-               }\r
-               if(secondSpace) len = secondSpace; // position behind move\r
-               if(messageText[len-1] == '+' || messageText[len-1] == '#') {  /* you are in checkmate */\r
-                       len--; // strip off check or mate indicator\r
-                     checkMark = messageText[len]; // make sure still seen after we stip off promo piece\r
-               }\r
-               if(messageText[len-2] == '=') {  /* promotion */\r
-                       len-=2; // strip off promotion piece\r
-                       SayString("promotion", FALSE);\r
-               }\r
-\r
-               n = 2*moveNr - (dotCount < 2);\r
-\r
-               if(previousMove != 2*moveNr + (dotCount > 1) || evenIfDuplicate) {\r
-                   char number[20];\r
-                   previousMove = 2*moveNr + (dotCount > 1); // remember move nr of move last spoken\r
-                   snprintf(number, sizeof(number)/sizeof(number[0]),"%d", moveNr);\r
-\r
-                   yPos = CoordToNum(messageText[len-1]);  /* turn char coords to ints */\r
-                   xPos = CoordToNum(messageText[len-2]);\r
-                   if(xPos < 0 || xPos > 11) return; // prevent crashes if no coord string available to speak\r
-                   if(yPos < 0 || yPos > 9)  return;\r
-                   currentpiece = boards[n][yPos][xPos];\r
-                   piece = PieceToName(currentpiece,0);\r
-                   ynum = SquareToNum(yPos);\r
-                   xchar = SquareToChar(xPos);\r
-                   c = messageText[len-3];\r
-                   if(c == 'x') c = messageText[len-4];\r
-                   if(!isdigit(c) && c < 'a' && c != '@') c = 0;\r
-                   disambiguation[0] = c;\r
-                   SayString(WhiteOnMove(n) ? "Black" : "White", FALSE);\r
-                   SayString("move", FALSE);\r
-                   SayString(number, FALSE);\r
-//                 if(c==0 || c=='@') SayString("a", FALSE);\r
-                   // intercept castling moves\r
-                   p = StrStr(messageText, "O-O-O");\r
-                   if(p && p-messageText < len) {\r
-                       SayString("queen side castling",FALSE);\r
-                       castle = 1;\r
-                   } else {\r
-                       p = StrStr(messageText, "O-O");\r
-                       if(p && p-messageText < len) {\r
-                           SayString("king side castling",FALSE);\r
-                           castle = 1;\r
-                       }\r
-                   }\r
-                   if(!castle) {\r
-                       SayString(piece, FALSE);\r
-                       if(c == '@') SayString("dropped on", FALSE); else\r
-                       if(c) SayString(disambiguation, FALSE);\r
-                       SayString("to", FALSE);\r
-                       SayString(xchar, FALSE);\r
-                       SayString(ynum, FALSE);\r
-                       if(messageText[len-3] == 'x') {\r
-                               currentpiece = boards[n-1][yPos][xPos];\r
-                               if(currentpiece != EmptySquare) {\r
-                                       piece = PieceToName(currentpiece,0);\r
-                                       SayString("Capturing a",FALSE);\r
-                                       SayString(piece, FALSE);\r
-                               } else SayString("Capturing onn passann",FALSE);\r
-                       }\r
-                   }\r
-                   if(checkMark == '+') SayString("check", FALSE); else\r
-                   if(checkMark == '#') {\r
-                               SayString("finishing off", FALSE);\r
-                               SayString(WhiteOnMove(n) ? "White" : "Black", FALSE);\r
-                   }\r
-               }\r
-\r
-               /* say comment after move, possibly with result */\r
-               p = NULL;\r
-               if(StrStr(messageText, " 1-0")) p = "white wins"; else\r
-               if(StrStr(messageText, " 0-1")) p = "black wins"; else\r
-               if(StrStr(messageText, " 1/2-1/2")) p = "game ends in a draw";\r
-               if(comment[0]) {\r
-                   if(p) {\r
-                       if(!StrCaseStr(comment, "draw") &&\r
-                          !StrCaseStr(comment, "white") &&\r
-                          !StrCaseStr(comment, "black") ) {\r
-                               SayString(p, FALSE);\r
-                               SayString("due to", FALSE);\r
-                       }\r
-                   }\r
-                   SayString(comment, FALSE); // alphabetic comment (usually game end)\r
-               } else if(p) SayString(p, FALSE);\r
-\r
-               if(commentDialog && commentList[currentMove]) SetFocus(commentDialog);\r
-\r
-           } else {\r
-               /* starts not with digit */\r
-               if(StrCaseStr(messageText, "illegal")) PlayIcsUnfinishedSound();\r
-               SayString(messageText, FALSE);\r
-           }\r
-\r
-       SayString("", TRUE); // flush\r
-}\r
-\r
-VOID\r
-SayClockTime()\r
-{\r
-       char buf1[50], buf2[50];\r
-       char *str1, *str2;\r
-       static long int lastWhiteTime, lastBlackTime;\r
-\r
-       suppressClocks = 1; // if user is using alt+T command, no reason to display them\r
-       if(abs(lastWhiteTime - whiteTimeRemaining) < 1000 && abs(lastBlackTime - blackTimeRemaining) < 1000)\r
-               suppressClocks = 0; // back on after two requests in rapid succession\r
-       snprintf(buf1, sizeof(buf1)/sizeof(buf1[0]),"%s", TimeString(whiteTimeRemaining));\r
-       str1 = buf1;\r
-       SayString("White clock", FALSE);\r
-       SayString(str1, FALSE);\r
-       snprintf(buf2, sizeof(buf2)/sizeof(buf2[0]), "%s", TimeString(blackTimeRemaining));\r
-       str2 = buf2;\r
-       SayString("Black clock", FALSE);\r
-       SayString(str2, FALSE);\r
-       lastWhiteTime = whiteTimeRemaining;\r
-       lastBlackTime = blackTimeRemaining;\r
-       SayString("", TRUE); // flush\r
-}\r
-\r
-VOID\r
-Toggle(Boolean *b, char *mess)\r
-{\r
-       *b = !*b;\r
-       SayString(mess, FALSE);\r
-       SayString("is now", FALSE);\r
-       SayString(*b ? "on" : "off", FALSE);\r
-       SayString("", TRUE); // flush\r
-}\r
-\r
-/* handles keyboard moves in a click-click fashion */\r
-VOID\r
-KeyboardMove(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)\r
-{\r
-       ChessSquare currentpiece;\r
-       char *piece;\r
-\r
-       static BOOLEAN sameAgain = FALSE;\r
-       switch (message) {\r
-       case WM_KEYDOWN:\r
-               sameAgain = FALSE;\r
-               if(oldFromX == fromX && oldFromY == fromY) {\r
-                       sameAgain = TRUE;\r
-                       /* click on same square */\r
-                       break;\r
-               }\r
-               else if(oldFromX != -1) {\r
-\r
-                       ChessSquare pdown, pup;\r
-      pdown = boards[currentMove][oldFromY][oldFromX];\r
-      pup = boards[currentMove][fromY][fromX];\r
-\r
-               if (gameMode == EditPosition ||\r
-                       !((WhitePawn <= pdown && pdown <= WhiteKing &&\r
-                                WhitePawn <= pup && pup <= WhiteKing) ||\r
-                               (BlackPawn <= pdown && pdown <= BlackKing &&\r
-                                BlackPawn <= pup && pup <= BlackKing))) {\r
-                       /* EditPosition, empty square, or different color piece;\r
-                       click-click move is possible */\r
-                       char promoChoice = NULLCHAR;\r
-\r
-                       if (HasPromotionChoice(oldFromX, oldFromY, fromX, fromY, &promoChoice)) {\r
-                               if (appData.alwaysPromoteToQueen) {\r
-                                       UserMoveEvent(oldFromX, oldFromY, fromX, fromY, 'q');\r
-                               }\r
-                               else {\r
-                                       toX = fromX; toY = fromY; fromX = oldFromX; fromY = oldFromY;\r
-                                       PromotionPopup(hwnd);\r
-                                       fromX = toX; fromY = toY;\r
-                               }\r
-                       }\r
-                       else {\r
-                               UserMoveEvent(oldFromX, oldFromY, fromX, fromY, promoChoice);\r
-                       }\r
-               oldFromX = oldFromY = -1;\r
-               break;\r
-               }\r
-\r
-               }\r
-               /* First downclick, or restart on a square with same color piece */\r
-               if (OKToStartUserMove(fromX, fromY)) {\r
-               oldFromX = fromX;\r
-               oldFromY = fromY;\r
-               currentpiece = boards[currentMove][fromY][fromX];\r
-               piece = PieceToName(currentpiece,1);\r
-               SayString(piece, FALSE);\r
-               SayString("selected", TRUE);\r
-               }\r
-               else {\r
-               oldFromX = oldFromY = -1;\r
-               }\r
-               break;\r
-\r
-       case WM_KEYUP:\r
-               if (oldFromX == fromX && oldFromY == fromY) {\r
-      /* Upclick on same square */\r
-      if (sameAgain) {\r
-       /* Clicked same square twice: abort click-click move */\r
-                       oldFromX = oldFromY = -1;\r
-                       currentpiece = boards[currentMove][fromY][fromX];\r
-                       piece = PieceToName(currentpiece,0);\r
-                       SayString(piece, FALSE);\r
-                       SayString("unselected", TRUE);\r
-                       }\r
-               }\r
-       }\r
-}\r
-\r
-int\r
-NiceTime(int x)\r
-{      // return TRUE for times we want to announce\r
-       if(x<0) return 0;\r
-       x = (x+50)/100;   // tenth of seconds\r
-       if(x <= 100) return (x%10 == 0);\r
-       if(x <= 600) return (x%100 == 0);\r
-       if(x <= 6000) return (x%600 == 0);\r
-       return (x%3000 == 0);\r
-}\r
-\r
-#define JAWS_ARGS \\r
-  { "beepOffBoard", ArgInt, (LPVOID) beeps, TRUE, (ArgIniType) 1 },\\r
-  { "beepEmpty", ArgInt, (LPVOID) (beeps+1), TRUE, (ArgIniType) 0 },\\r
-  { "beepWhite", ArgInt, (LPVOID) (beeps+2), TRUE, (ArgIniType) 0 },\\r
-  { "beepBlack", ArgInt, (LPVOID) (beeps+3), TRUE, (ArgIniType) 0 },\\r
-  { "beepHoldings", ArgInt, (LPVOID) (beeps+4), TRUE, (ArgIniType) 0 },\\r
-\r
-#define JAWS_ALT_INTERCEPT \\r
-           if(suppressOneKey) {\\r
-               suppressOneKey = 0;\\r
-               if(GetKeyState(VK_MENU) < 0 && GetKeyState(VK_CONTROL) < 0) break;\\r
-           }\\r
-           if ((char)wParam == 022 && gameMode == EditPosition) { /* <Ctl R>. Pop up piece menu */\\r
-               POINT pt; int x, y;\\r
-               SquareToPos(fromY, fromX, &x, &y);\\r
-               dropX = fromX; dropY = fromY;\\r
-               pt.x = x; pt.y = y;\\r
-               if(gameInfo.variant != VariantShogi)\\r
-                   MenuPopup(hwnd, pt, LoadMenu(hInst, "PieceMenu"), -1);\\r
-               else\\r
-                   MenuPopup(hwnd, pt, LoadMenu(hInst, "ShogiPieceMenu"), -1);\\r
-               break;\\r
-           }\\r
-\r
-#define JAWS_REPLAY \\r
-    case '\020': /* ctrl P */\\r
-      { char buf[MSG_SIZ];\\r
-       if(GetWindowText(hwnd, buf, MSG_SIZ-1))\\r
-               SayString(buf, TRUE);\\r
-      }\\r
-      return 0;\\r
-\r
-#define JAWS_KBDOWN_NAVIGATION \\r
-\\r
-\\r
-               if(GetKeyState(VK_MENU) < 0 && GetKeyState(VK_CONTROL) < 0) {\\r
-                   /* Control + Alt + letter used for speaking piece positions */\\r
-                   static int lastTime; static char lastChar;\\r
-                   int mine = 0, time = GetTickCount(); char c;\\r
-\\r
-                   if((char)wParam == lastChar && time-lastTime < 250) mine = 1;\\r
-                   lastChar = wParam; lastTime = time;\\r
-                   c = wParam;\\r
-\\r
-                   if(gameMode == IcsPlayingWhite || gameMode == MachinePlaysBlack) mine = !mine;\\r
-\\r
-                   if(ToLower(c) == 'x') {\\r
-                       SayPieces(mine ? WhitePlay : BlackPlay);\\r
-                       suppressOneKey = 1;\\r
-                       break;\\r
-                   } else\\r
-                   if(CharToPiece(c) != EmptySquare) {\\r
-                       SayPieces(CharToPiece(mine ? ToUpper(c) : ToLower(c)));\\r
-                       suppressOneKey = 1;\\r
-                       break;\\r
-                   }\\r
-               }\\r
-\\r
-               switch (wParam) {\\r
-               case VK_LEFT:\\r
-               case VK_RIGHT:\\r
-               case VK_UP:\\r
-               case VK_DOWN:\\r
-                       KeyboardEvent(hwnd, message, wParam, lParam);\\r
-                       break;\\r
-               case VK_SPACE:\\r
-                        shiftKey = GetKeyState(VK_SHIFT) < 0;\\r
-                       KeyboardMove(hwnd, message, wParam, lParam);\\r
-                       break;\\r
-               }\\r
-\r
-#define JAWS_KBUP_NAVIGATION \\r
-               switch (wParam) {\\r
-               case VK_SPACE:\\r
-                       KeyboardMove(hwnd, message, wParam, lParam);\\r
-                       break;\\r
-               }\\r
-\r
-#define JAWS_MENU_ITEMS \\r
-               case IDM_PossibleAttackMove:  /*What can I possible attack from here */\\r
-                       PossibleAttackMove();\\r
-                       break;\\r
-\\r
-               case IDM_PossibleAttacked:  /*what can possible attack this square*/\\r
-                       PossibleAttacked();\\r
-                       break;\\r
-\\r
-               case IDM_ReadRow:   /* Read the current row of pieces */\\r
-                       ReadRow();\\r
-                       break;\\r
-\\r
-               case IDM_ReadColumn:   /* Read the current column of pieces */\\r
-                       ReadColumn();\\r
-                       break;\\r
-\\r
-               case IDM_SayCurrentPos: /* Say current position including color */\\r
-                       SayCurrentPos();\\r
-                       break;\\r
-\\r
-               case IDM_SayAllBoard:  /* Say the whole board from bottom to top */\\r
-                       SayAllBoard();\\r
-                       break;\\r
-\\r
-               case IDM_SayMachineMove:  /* Say the last move made */\\r
-                       timeflag = 1;\\r
-                       SayMachineMove(1);\\r
-                       break;\\r
-\\r
-               case IDM_SayUpperDiagnols:  /* Says the diagnol positions above you */\\r
-                       SayUpperDiagnols();\\r
-                       break;\\r
-\\r
-               case IDM_SayLowerDiagnols:  /* Say the diagnol positions below you */\\r
-                       SayLowerDiagnols();\\r
-                       break;\\r
-\\r
-               case IDM_SayBlackPieces: /*Say the opponents pieces */\\r
-                       SayPieces(BlackPlay);\\r
-                       break;\\r
-\\r
-               case IDM_SayWhitePieces: /*Say the opponents pieces */\\r
-                       SayPieces(WhitePlay);\\r
-                       break;\\r
-\\r
-               case IDM_SayClockTime:  /*Say the clock time */\\r
-                       SayClockTime();\\r
-                       break;\\r
-\\r
-               case IDM_SayWhosTurn:   /* Say whos turn it its */\\r
-                       SayWhosTurn();\\r
-                       break;\\r
-\\r
-               case IDM_SayKnightMoves:  /* Say Knights (L-shaped) move */\\r
-                       SayKnightMoves();\\r
-                       break;\\r
-\\r
-               case OPT_PonderNextMove:  /* Toggle option setting */\\r
-                       Toggle(&appData.ponderNextMove, "ponder");\\r
-                       break;\\r
-\\r
-               case OPT_AnimateMoving:  /* Toggle option setting */\\r
-                       Toggle(&appData.animate, "animate moving");\\r
-                       break;\\r
-\\r
-               case OPT_AutoFlag:  /* Toggle option setting */\\r
-                       Toggle(&appData.autoCallFlag, "auto flag");\\r
-                       break;\\r
-\\r
-               case OPT_AlwaysQueen:  /* Toggle option setting */\\r
-                       Toggle(&appData.alwaysPromoteToQueen, "always promote to queen");\\r
-                       break;\\r
-\\r
-               case OPT_TestLegality:  /* Toggle option setting */\\r
-                       Toggle(&appData.testLegality, "legality testing");\\r
-                       break;\\r
-\\r
-               case OPT_HideThinkFromHuman:  /* Toggle option setting */\\r
-                       Toggle(&appData.hideThinkingFromHuman, "hide thinking");\\r
-                       ShowThinkingEvent();\\r
-                       break;\\r
-\\r
-               case OPT_SaveExtPGN:  /* Toggle option setting */\\r
-                       Toggle(&appData.saveExtendedInfoInPGN, "extended P G N info");\\r
-                       break;\\r
-\\r
-               case OPT_ExtraInfoInMoveHistory:  /* Toggle option setting */\\r
-                       Toggle(&appData.showEvalInMoveHistory, "extra info in move histoty");\\r
-                       break;\\r
-\\r
-\r
-\r
-#define JAWS_ACCEL \\r
-       !(!frozen && TranslateAccelerator(hwndMain, hAccelJAWS, &msg)) &&\r
-\r
-#define JAWS_INIT if (!InitJAWS()) return (FALSE);\r
-\r
-#define JAWS_DELETE(X)\r
-\r
-#define JAWS_SILENCE if(suppressClocks) return;\r
-\r
-#define JAWS_COPYRIGHT \\r
-       SetDlgItemText(hDlg, OPT_MESS, "Auditory/Keyboard Enhancements  By:  Ed Rodriguez (sort of)");\r
-\r
-#define SAY(S) SayString((S), TRUE)\r
-\r
-#define SAYMACHINEMOVE() SayMachineMove(0)\r
-\r
-// After inclusion of this file somewhere early in winboard.c, the remaining part of the patch\r
-// is scattered over winboard.c for actually calling the routines.\r
diff --git a/winboard/language.txt b/winboard/language.txt
deleted file mode 100644 (file)
index 62c5d6a..0000000
+++ /dev/null
@@ -1,1112 +0,0 @@
-## WinBoard language file\r
-##\r
-## LANGUAGE NAME IN ENGLISH / TRANSLATED\r
-## v1.0 beta 1\r
-##\r
-## Translation by NAME (DATE)\r
-## SAME AS ABOVE, TRANSLATED\r
-## WEB ADDRESS OF TRANSLATOR\r
-##\r
-## If you revise this, please insert your date, name and description.\r
-## TRANSLATION OF MESSAGE ABOVE\r
-##\r
-## For example:\r
-## TRANSLATION OF FOR EXAMPLE\r
-##   24-ago-2010. Juan Pérez (j@xyz.p). Corrected translation for xyzzy.\r
-\r
-## Notes for translators (can be deleted from he file after translation):\r
-##   Just write the translations between the second pair of quotes\r
-##   Things like %s, %d and %c must be preserved in the original order\r
-##   Empty translated strings will be ignored, so there is no reason\r
-##   to delete those for which you don't know a translation,\r
-##   and you can start testing everything immediately.\r
-##   Simply rename this file to LANGUAGE.lng, and WinBoard should see it,\r
-##   and allow you to use the option /language=LANGUAGE.\r
-##   You are encouraged to call up the corresponding WinBoard dialog while\r
-##   working on the translation, to see in which context the strings are used.\r
-##   This is why the strings below are sorted by dialog\r
-##\r
-##   Of duplicats, only the first occurrence will be used, even if it was in\r
-##   a different dialog! For this reason you will only see an 'OK' in the\r
-##   About Box. After you translated it there, this translation will be used\r
-##   for all other dialogs as well.\r
-## o Use ## for comments, to make iteasy to find them scattered throughout the translation\r
-## o Careful with temptation of direct translation, by example 'movimiento' for 'move' when 'jugada' is better.\r
-## o Try to use short phrases, more text doesn't imply more clearness.\r
-## o Check that your translation is right, does it mean what it does?\r
-## o Test your translation, check every dialog.\r
-## o For standard chess names check Wikipedia for confirmation.\r
-## o For menus, assign shortcuts (character &) until you finish the translation.\r
-##   preferably it should be unique in the applicable menu, so it depends on translation of other items!\r
-\r
-winboard.rc\r
-\r
-MENUS:\r
-## Pleace keep the accelerator-key indications on the menu items, and keep \r
-## the keystrokes the same (for now). (Alt, Ctrl and Shift can be translated.)\r
-\r
-"&New Game\tCtrl-N" === ""\r
-"New Sh&uffle Game..." === ""\r
-"New &Variant...\tAlt+Shift+V" === ""\r
-"&Load Game...\tCtrl-O" === ""\r
-"&Save Game...\tCtrl-S" === ""\r
-"L&oad Position...\tCtrl+Shift+O" === ""\r
-"S&ave Position...\tCtrl+Shift+S" === ""\r
-"Save as &Diagram..." === ""\r
-"&Quit" === ""\r
-## Next six currently not used\r
-"Load &Next Game\tAlt+PgDn" === ""\r
-"Load &Previous Game\tAlt+PgUp" === ""\r
-"&Reload Same Game" === ""\r
-"Load N&ext Position\tAlt+Shift+PgDn" === ""\r
-"Load Pre&vious Position\tAlt+Shift+PgUp" === ""\r
-"Reload Sa&me Position" === ""\r
-\r
-"&Copy Game To Clipboard\tCtrl+C" === ""\r
-"C&opy Position To Clipboard\tCtrl+Shift+C" === ""\r
-"Copy Game List to Clipboard" === ""\r
-"&Paste Game From Clipboard\tCtrl+V" === ""\r
-"P&aste Position From Clipboard\tCtrl+Shift+V" === ""\r
-"&Edit Game\tCtrl+E" === ""\r
-"E&dit Position\tCtrl+Shift+E" === ""\r
-"Edit Ta&gs..." === ""\r
-"Edit Co&mment..." === ""\r
-"Enter &Username..." === ""\r
-"&Revert\tHome" === ""\r
-"&Annotate" === ""\r
-"&Truncate Game\tEnd" === ""\r
-"&Backward\tAlt+Left" === ""\r
-"&Forward\tAlt+Right" === ""\r
-"Back to &Start\tAlt+Home" === ""\r
-"For&ward to End\tAlt+End" === ""\r
-\r
-"Flip &View\tF2" === ""\r
-"&Swap Clocks" === ""\r
-"Engine &Output\tAlt+Shift+O" === ""\r
-"Move &History\tAlt+Shift+H" === ""\r
-"Evaluation &Graph\tAlt+Shift+E" === ""\r
-"Game &List\tAlt+Shift+G" === ""\r
-"Open &New Chat Window" === ""\r
-"Type In &Move...\tAlt+I" === ""\r
-"&Tags" === ""\r
-"&Comments" === ""\r
-"&Game List Tags..." === ""\r
-"&Board..." === ""\r
-"&Fonts..." === ""\r
-\r
-"Machine &White\tCtrl+W" === ""\r
-"Machine &Black\tCtrl+B" === ""\r
-"&Two Machines\tCtrl+T" === ""\r
-"Machine Both" === ""\r
-"&Analysis Mode\tCtrl+A" === ""\r
-"Analyze &File\tCtrl+F" === ""\r
-"&Edit Game\tCtrl+E" === ""\r
-"E&dit Position\tCtrl+Shift+E" === ""\r
-"Trai&ning" === ""\r
-"&ICS Client" === ""\r
-"&Machine Match" === ""\r
-"&Pause\tPause" === ""\r
-\r
-"&Accept\tF3" === ""\r
-"D&ecline\tF4" === ""\r
-"Re&match\tF12" === ""\r
-"Call &Flag\tF5" === ""\r
-"&Draw\tF6" === ""\r
-"Ad&journ\tF7" === ""\r
-"A&bort\tF8" === ""\r
-"&Resign\tF9" === ""\r
-"Stop &Observing\tF10" === ""\r
-"Stop E&xamining\tF11" === ""\r
-"&Upload to Examine" === ""\r
-"Adjudicate to &White" === ""\r
-"Adjudicate to &Black" === ""\r
-"Adjudicate &Draw" === ""\r
-\r
-"Install 1st..." === ""\r
-"Install 2nd..." === ""\r
-"Engine #&1 Settings..." === ""\r
-"Engine #&2 Settings..." === ""\r
-"&Hint..." === ""\r
-"&Book..." === ""\r
-"&Move Now\tCtrl+M" === ""\r
-"&Retract Move\tCtrl+X" === ""\r
-\r
-"&Mute all Sounds" === ""\r
-"&General..." === ""\r
-"&Time Control...\tAlt+Shift+T" === ""\r
-"Common &Engine...\tAlt+Shift+U" === ""\r
-"Ad&judications...\tAlt+Shift+J" === ""\r
-"&Load Game...\tAlt+Shift+L" === ""\r
-"&Save Game...\tAlt+Shift+S" === ""\r
-"G&ame List..." === ""\r
-"Soun&ds..." === ""\r
-"&ICS..." === ""\r
-"Add ICS..." === ""\r
-"Comm&unications..." === ""\r
-"Save Settings &Now" === ""\r
-"Save Settings on E&xit" === ""\r
-\r
-"Help &Contents\tF1" === ""\r
-"Help &Index" === ""\r
-"How to &Use Help" === ""\r
-"&About WinBoard" === ""\r
-\r
-"White" === ""\r
-"Promote" === ""\r
-"Pawn" === ""\r
-"Knight" === ""\r
-"Bishop" === ""\r
-"Rook" === ""\r
-"Queen" === ""\r
-"King" === ""\r
-## The next 2 are pieces for Capablanca Chess. Use the names from the Wikipedia entry for this,\r
-## rather than litteral translations of the English names!\r
-"Archbishop" === ""\r
-"Chancellor" === ""\r
-## Next 2 Xiangqi (Chinese Chess) pieces. Google for 'Xiangqi' in the target language to get the standard translation.\r
-"Elephant" === ""\r
-"Cannon" === ""\r
-"Empty Square" === ""\r
-"Black" === ""\r
-"Demote" === ""\r
-"Clear Board    " === ""\r
-## Next 3: Shogi pieces.\r
-"Gold" === ""\r
-"Silver" === ""\r
-"Lance" === ""\r
-\r
-"Drop" === ""\r
-\r
-"Cop&y and Paste" === ""\r
-"&Copy" === ""\r
-"&Paste" === ""\r
-\r
-"&Undo" === ""\r
-"Cu&t" === ""\r
-"&Copy" === ""\r
-"&Paste" === ""\r
-"Select &All" === ""\r
-\r
-DIALOGS:\r
-\r
-ABOUTBOX\r
-\r
-## Pehaps copyright notices best left untranslated?\r
-"About WinBoard" === ""\r
-"OK" === ""\r
-"Chessboard for Windows" === ""\r
-"Copyright 1991 Digital Equipment Corporation" === ""\r
-"Enhancements Copyright 1992-2015  Free Software Foundation" === ""\r
-"Enhancements Copyright 2005\r\nAlessandro Scotti" === ""\r
-## What happened with H.G.Muller? [He sold his copyrights to FSF for $1]\r
-## The following string of 6 spaces can be translated to an acknowledgement of the translator,\r
-## like "Traducción por Óscar Toledo G.".\r
-"      " === ""\r
-"WinBoard 0.0.0" === ""\r
-\r
-ABOUTBOX2\r
-\r
-## Weird, it is needed? [Normally not. It is a built-in 'Easter Egg' joke.]\r
-"galactic" === ""\r
-\r
-TIME CONTROL DIALOG\r
-\r
-"Time Control" === ""\r
-"Conventional chess clock" === ""\r
-"Incremental clock" === ""\r
-"Cancel" === ""\r
-\r
-## Next is there really only for the benefit of blind users of the JAWS version...\r
-"Use arrow keys to specify which clock setting type, then press tab to alter values." === ""\r
-"Fixed time per move" === ""\r
-"Number of moves:" === ""\r
-"Within number of minutes:" === ""\r
-"Initial number of minutes:" === ""\r
-"Plus number of seconds per move:" === ""\r
-"Maximum seconds per move:" === ""\r
-"Time-Odds Factors:" === ""\r
-"Engine #1:" === ""\r
-"Engine #2:" === ""\r
-\r
-LOAD OPTIONS DIALOG\r
-\r
-"Load Game Options" === ""\r
-"Load games with &automatic stepping" === ""\r
-"&seconds per move" === ""\r
-"when filtering game list on position, use thresholds:" === ""\r
-"Search Mode: " === ""\r
-"Match exact &position" === ""\r
-"Match if position is s&ubset" === ""\r
-"Match material with e&xact pawn structure" === ""\r
-"Match &material" === ""\r
-"Material &range (upper board-half is optional)" === ""\r
-"Material &difference (optional material balanced)" === ""\r
-"Also match reversed &colors" === ""\r
-"Also match &left-right mirror image" === ""\r
-"minimum Elo for &best player" === ""\r
-"minimum Elo for &weakest players" === ""\r
-"or later &year" === ""\r
-"co&nsecutive positions" === ""\r
-\r
-SAVE OPTIONS DIALOG\r
-\r
-"Save Game Options" === ""\r
-"Save As: " === ""\r
-"Save games automatically" === ""\r
-"Prompt for filename" === ""\r
-"To file:" === ""\r
-"PGN" === ""\r
-"Old" === ""\r
-"Browse..." === ""\r
-"Save out of book info in PGN" === ""\r
-\r
-1536\r
-## This dialog is only used in some older Windows versions, so you might not be ableto test it.\r
-\r
-"Open" === ""\r
-"File &Name:" === ""\r
-"&Directories:" === ""\r
-"List Files of &Type:" === ""\r
-"Dri&ves:" === ""\r
-"&Help" === ""\r
-\r
-"&Index number:" === ""\r
-\r
-COMMPORT\r
-## Always disabled if you are not actually using an ICS through a comport, so difficult to test.\r
-\r
-"Communication Port Settings" === ""\r
-"Net&work..." === ""\r
-"&Port:" === ""\r
-"Data &Rate:" === ""\r
-"Data &Bits:" === ""\r
-"P&arity:" === ""\r
-"&Stop Bits:" === ""\r
-"F&low:" === ""\r
-\r
-EDIT COMMENT\r
-\r
-"Edit Comment" === ""\r
-"&Clear" === ""\r
-"&Edit" === ""\r
-\r
-PROMOTION POPUP\r
-\r
-"Promote to:" === ""\r
-## next used in Shogi as promotion-popup header\r
-"Promote?" === ""\r
-"Promotion" === ""\r
-"&Queen" === ""\r
-"&Rook" === ""\r
-"&Bishop" === ""\r
-"K&night" === ""\r
-"&King" === ""\r
-"&Cancel" === ""\r
-\r
-"Chance&llor" === ""\r
-"&Archbishop" === ""\r
-"YES" === ""\r
-"NO" === ""\r
-"C&entaur" === ""\r
-\r
-GAME LIST\r
-\r
-"Game List" === ""\r
-"&Load" === ""\r
-"&Prev" === ""\r
-"&Next" === ""\r
-"&Close" === ""\r
-"Filter" === ""\r
-\r
-EDIT TAGS\r
-\r
-"Edit Tags" === ""\r
-\r
-ERROR\r
-\r
-"ICS Interaction" === ""\r
-"Dialog" === ""\r
-"Error" === ""\r
-## I don't think the next will really appear ever.\r
-"Sorry Charlie" === ""\r
-\r
-COLORIZE\r
-\r
-"I C S Interaction Colors" === ""\r
-"Interaction Colors" === ""\r
-"Premove" === ""\r
-"Alarm" === ""\r
-"Colors" === ""\r
-"&Choose Color..." === ""\r
-"&Bold" === ""\r
-"&Italic" === ""\r
-"&Underline" === ""\r
-"&Strikeout" === ""\r
-\r
-QUESTION\r
-\r
-## next one seems only a placeholder, and never appears? [might also be just a programmer's joke...]\r
-"Enter a chess engine command or just type something stupid that will completely screw things up." === ""\r
-"Question" === ""\r
-"Enter" === ""\r
-\r
-STARTUP DIALOG\r
-\r
-"WinBoard Startup" === ""\r
-"What would you like to do?" === ""\r
-"&Play against a chess engine or match two engines" === ""\r
-"&Use an Internet Chess Server" === ""\r
-"Just &view or edit game files" === ""\r
-"Specify Chess &Engines:" === ""\r
-"Specify Chess &Server:" === ""\r
-"&Additional options" === ""\r
-\r
-INDEX (IN FILE-BROWSE DIALOG)\r
-\r
-"Inde&x number:" === ""\r
-\r
-MOVE TYPE-IN\r
-\r
-"Type in a move" === ""\r
-\r
-USER-NAME TYPE-IN\r
-\r
-"Type in your name" === ""\r
-\r
-SOUND DIALOG\r
-\r
-"Sounds" === ""\r
-\r
-"&Event:" === ""\r
-"&No sound" === ""\r
-"&Default beep" === ""\r
-"&Built-in sound:" === ""\r
-"&WAV file:" === ""\r
-\r
-"B&rowse..." === ""\r
-"&Play" === ""\r
-"&Defaults" === ""\r
-\r
-GENERAL OPTIONS DIALOG\r
-## pleace keep the indication of the accelerator keys for the same keystroke\r
-## Note: finely tuned spaces to align keys at right\r
-\r
-"General Options" === ""\r
-"Always on &Top" === ""\r
-"Always &Queen            Ctrl+Shift+Q" === ""\r
-"Animate &Dragging" === ""\r
-"&Animate Moving         Ctrl+Shift+A" === ""\r
-"Auto &Flag                   Ctrl+Shift+F" === ""\r
-"Auto Flip &View" === ""\r
-"Auto &Raise Board" === ""\r
-"&Blindfold" === ""\r
-"Highlight Dra&gging" === ""\r
-"Highlight Last &Move" === ""\r
-"Periodic &Updates" === ""\r
-"Ponder &Next Move  Ctrl+Shift+P" === ""\r
-"&Popup Exit Message" === ""\r
-"Popup Move &Errors" === ""\r
-"Show Butt&on Bar" === ""\r
-"Show &Coordinates" === ""\r
-"&Show Thinking" === ""\r
-"Test &Legality            Ctrl+Shift+L" === ""\r
-"&Hide Thinking          Ctrl+Shift+H" === ""\r
-"&Info in Move History   Ctrl+Shift+I" === ""\r
-"&Send Engine Think" === ""\r
-"E&xtended PGN Info    Ctrl+Shift+X" === ""\r
-"Highlight with Arro&w" === ""\r
-"Displa&y Logos" === ""\r
-"One-Click Move" === ""\r
-\r
-ICS OPTIONS\r
-\r
-"ICS Options" === ""\r
-"&Auto Comment" === ""\r
-"Auto &Observe" === ""\r
-"&Get Move List" === ""\r
-"&Local Line Editing" === ""\r
-"&Quiet Play" === ""\r
-"&Premove" === ""\r
-"&White first move" === ""\r
-"&Black first move" === ""\r
-"&Sound alarm at" === ""\r
-"seconds" === ""\r
-"Choose..." === ""\r
-"Do &not colorize messages" === ""\r
-"&Auto Kibitz" === ""\r
-"Auto Kibit&z" === ""\r
-"See&k Graph" === ""\r
-"auto-&Refresh" === ""\r
-"Bckgnd Obser&ve" === ""\r
-"&Dual Board" === ""\r
-"One-Click &Move" === ""\r
-"Background..." === ""\r
-"&Defaults..." === ""\r
-"Startup &Chat Boxes:" === ""\r
-"General" === ""\r
-\r
-BOARD OPTIONS\r
-## (NOTE: AllWhite uses the white (outline-style) piece bitmaps for both sides\r
-##        FlipBlack draws the black pieces upside down)\r
-\r
-"Board Options" === ""\r
-"Defaults" === ""\r
-"Light Squares" === ""\r
-"Dark Squares" === ""\r
-"White Pieces" === ""\r
-"Black Pieces" === ""\r
-"Square Highlights" === ""\r
-"Premove Highlights" === ""\r
-"Monochrome" === ""\r
-"All White" === ""\r
-"Flip Black" === ""\r
-"Use Board Textures" === ""\r
-"Use Piece Font" === ""\r
-"Suppress Grid" === ""\r
-"Size" === ""\r
-\r
-BOARD SIZES (translate as number?)\r
-## Don't put numbers, or nobody will translate them. [True. But do we really want them translated?]\r
-## This is a space for imagination!\r
-"&Tiny" === ""\r
-"T&eeny" === ""\r
-"&Dinky" === ""\r
-"&Petite" === ""\r
-"Sl&im" === ""\r
-"&Small" === ""\r
-"Medi&ocre" === ""\r
-"&Middling" === ""\r
-"&Average" === ""\r
-"Mode&rate" === ""\r
-"Medi&um" === ""\r
-"Bul&ky" === ""\r
-"&Large" === ""\r
-"&Big" === ""\r
-"&Huge" === ""\r
-"&Giant" === ""\r
-"&Colossal" === ""\r
-"Tita&nic" === ""\r
-\r
-FONTS\r
-\r
-"Fonts" === ""\r
-"Current Board Size" === ""\r
-"All Board Sizes" === ""\r
-"&Revert to Defaults" === ""\r
-"Clocks" === ""\r
-"Messages" === ""\r
-"Coordinates" === ""\r
-"Tags" === ""\r
-"Comments" === ""\r
-"I C S Interaction" === ""\r
-"Piece font" === ""\r
-\r
-"&Color..." === ""\r
-"Move History, Engine Output" === ""\r
-\r
-ADJUDICATIONS DIALOG\r
-\r
-"Adjudications" === ""\r
-"Ponder Next Move" === ""\r
-"Enable and Show Thinking (recommended)" === ""\r
-"Hide Thinking when Playing against Human" === ""\r
-"Periodic Updates (for Analysis Mode)" === ""\r
-"Adjudications in non-ICS games" === ""\r
-"Adjudicate draw after:" === ""\r
-"moves" === ""\r
-"Win/loss adjudication threshold:" === ""\r
-"centipawns" === ""\r
-"&Verify Engine Claims" === ""\r
-"Detect &Mates" === ""\r
-"Draw if &Insufficient Material" === ""\r
-"Adjudicate &Trivial Draws" === ""\r
-"Apply" === ""\r
-## next 2 are suffixed to a text-edit containing a number (50 or 3)\r
-"-move rule" === ""\r
-"-fold repeats" === ""\r
-"Engine #1 Score is Absolute" === ""\r
-"Engine #2 Score is Absolute" === ""\r
-\r
-COMMON ENGINE DIALOG\r
-\r
-"Common Engine Settings" === ""\r
-"Polyglot Directory:" === ""\r
-"Hash Size (MB):" === ""\r
-"EGTB Path:" === ""\r
-"EGTB Size (MB):" === ""\r
-"Use Book:" === ""\r
-"Max nr of CPUs:" === ""\r
-"First has Own Book" === ""\r
-"Second has Own Book" === ""\r
-"Book Depth:" === ""\r
-"Book Variation:" === ""\r
-"Default Match Games:" === ""\r
-\r
-NEW-VARIANT DIALOG\r
-## (NOTE: the 'holdings' are the pieces standing next to the board ('in hand')\r
-\r
-"Variants" === ""\r
-"Variant" === ""\r
-"Board size:" === ""\r
-"ranks" === ""\r
-"files" === ""\r
-"Holdings with room for:" === ""\r
-"pieces" === ""\r
-"('-1' means defaults for selected variant)" === ""\r
-\r
-VARIANT NAMES: \r
-"&normal" === ""\r
-"&FRC" === ""\r
-"&wildcastle" === ""\r
-"&nocastle" === ""\r
-"&losers" === ""\r
-"&giveaway" === ""\r
-"s&uicide" === ""\r
-"&3Check" === ""\r
-"&twokings" === ""\r
-"&atomic" === ""\r
-"cra&zyhouse" === ""\r
-"&bughouse" === ""\r
-"&Twilight" === ""\r
-"Sp&artan" === ""\r
-"&shogi" === ""\r
-"su&per" === ""\r
-"&knightmate" === ""\r
-"&Berolina" === ""\r
-"c&ylinder" === ""\r
-"&fairy" === ""\r
-"&makruk" === ""\r
-"&gothic" === ""\r
-"&capablanca" === ""\r
-"&Janus" === ""\r
-"&CRC" === ""\r
-"&Falcon" === ""\r
-"cou&rier" === ""\r
-"&Great" === ""\r
-"&Shatranj" === ""\r
-"&xiangqi" === ""\r
-\r
-NEW SHUFFLE GAME\r
-\r
-"New Shuffle Game" === ""\r
-"&Start Position Number:" === ""\r
-"Random" === ""\r
-\r
-GAME-LIST OPTIONS DIALOG\r
-\r
-"Game List Options" === ""\r
-"PGN &Tags:" === ""\r
-"&Up" === ""\r
-"&Down" === ""\r
-"Default" === ""\r
-"Factory" === ""\r
-"Restore to:" === ""\r
-\r
-MOVE HISTORY WINDOW\r
-\r
-"Move History" === ""\r
-\r
-EVALUATION GRAPH\r
-\r
-"Evaluation Graph" === ""\r
-\r
-ENGINE OUTPUT WINDOW\r
-\r
-"Engine Output" === ""\r
-"%s (%d reversible plies)" === ""\r
-"Engine #1" === ""\r
-"NPS" === ""\r
-"Engine #2" === ""\r
-\r
-CHAT BOXES\r
-\r
-"Chat Window" === ""\r
-"Chat partner:" === ""\r
-"Clear" === ""\r
-"Send" === ""\r
-\r
-winboard.c\r
-\r
-"&File" === ""\r
-"&Edit" === ""\r
-"&View" === ""\r
-"&Mode" === ""\r
-"&Action" === ""\r
-"&Step" === ""\r
-"E&ngine" === ""\r
-"&Options" === ""\r
-"&Help" === ""\r
-"You can only start a match from the initial position." === ""\r
-"Font name too long:" === ""\r
-"Font point size missing:" === ""\r
-"Can't parse color name %s" === ""\r
-"Unrecognized board size value" === ""\r
-"Unrecognized argument" === ""\r
-"No value provided for argument" === ""\r
-"Incomplete \\ escape in value for" === ""\r
-"Failed to open indirection file" === ""\r
-"Unrecognized boolean argument value" === ""\r
-"Unrecognized argument" === ""\r
-"Too many colors" === ""\r
-"&Minimize\tCtrl+F4" === ""\r
-"White: %s" === ""\r
-"We only care about the height here" === ""\r
-"Cannot build game list" === ""\r
-"Load Game from File" === ""\r
-"Load Position from File" === ""\r
-"Save Game to File" === ""\r
-"Save Diagram to File" === ""\r
-"Save Position to File" === ""\r
-"%s does not support analysis" === ""\r
-"Analyze Game from File" === ""\r
-"Unable to activate help" === ""\r
-"Send to chess program:" === ""\r
-"Send to second chess program:" === ""\r
-"Direct Command" === ""\r
-"Error loading sound %s" === ""\r
-"Error playing sound %s" === ""\r
-"File open failed" === ""\r
-"Internal error in file dialog box" === ""\r
-"Option Error" === ""\r
-"Choose an option, or cancel to exit" === ""\r
-"Unable to activate help" === ""\r
-"Displayed move is not current" === ""\r
-"Could not parse move" === ""\r
-"%s:\nError code %d" === ""\r
-"Error" === ""\r
-"Fatal Error" === ""\r
-"Exiting" === ""\r
-"%s:\nError code %d" === ""\r
-"Note" === ""\r
-"Error writing to chess program" === ""\r
-"User" === ""\r
-"Unknown" === ""\r
-"White" === ""\r
-"Black" === ""\r
-"Save Game to File" === ""\r
-"Not implemented" === ""\r
-\r
-"Shout Text" === ""\r
-"SShout/CShout" === ""\r
-"Channel 1 Text" === ""\r
-"Channel Text" === ""\r
-"Kibitz Text" === ""\r
-"Tell Text" === ""\r
-"Challenge Text" === ""\r
-"Request Text" === ""\r
-"Seek Text" === ""\r
-"Normal Text" === ""\r
-"None" === ""\r
-"Pawn" === ""\r
-"Knight" === ""\r
-"Bishop" === ""\r
-"Rook" === ""\r
-"Queen" === ""\r
-"Information" === ""\r
-\r
-wclipbrd.c\r
-\r
-"Unable to convert position to FEN." === ""\r
-"Unable to copy FEN to clipboard." === ""\r
-"Cannot create temporary file name." === ""\r
-"Cannot open temporary file." === ""\r
-"Cannot write to temporary file." === ""\r
-"Cannot reopen temporary file." === ""\r
-"Cannot determine size of file." === ""\r
-"Cannot allocate clipboard buffer." === ""\r
-"Cannot read from temporary file." === ""\r
-"Error reading from temporary file." === ""\r
-"Cannot copy text to clipboard" === ""\r
-"Unable to allocate memory for clipboard." === ""\r
-"Unable to lock clipboard memory." === ""\r
-"Cannot unlock clipboard memory." === ""\r
-"Cannot open clipboard." === ""\r
-"Cannot empty clipboard." === ""\r
-"Cannot copy text to clipboard." === ""\r
-"Cannot close clipboard." === ""\r
-"Unable to paste FEN from clipboard." === ""\r
-"Unable to create temporary file." === ""\r
-"Error writing to temporary file." === ""\r
-"Unable to open clipboard." === ""\r
-"No text in clipboard." === ""\r
-"Unable to lock clipboard memory." === ""\r
-"Unable to allocate memory for text string." === ""\r
-"Unable to unlock clipboard memory." === ""\r
-"Unable to close clipboard." === ""\r
-\r
-woptions.c\r
-\r
-## For now, do NOT translate sound names, because WinBoard will no longer recognize them\r
-"Move" === ""\r
-"Bell" === ""\r
-"ICS Alarm" === ""\r
-"ICS Win" === ""\r
-"ICS Loss" === ""\r
-"ICS Draw" === ""\r
-"ICS Unfinished" === ""\r
-"Shout" === ""\r
-"SShout/CShout" === ""\r
-"Channel 1" === ""\r
-"Channel" === ""\r
-"Kibitz" === ""\r
-"Tell" === ""\r
-"Challenge" === ""\r
-"Request" === ""\r
-"Seek" === ""\r
-## end of sound names\r
-\r
-"Browse for Sound File" === ""\r
-"Can't parse com port settings" === ""\r
-"Option Error" === ""\r
-"Invalid data rate" === ""\r
-"Option Error" === ""\r
-"Failed to set comm port state;\r\ninvalid options?" === ""\r
-"Failed to set comm port state" === ""\r
-"Invalid load game step rate" === ""\r
-"Invalid save game file name" === ""\r
-"Browse for Auto Save File" === ""\r
-"Invalid moves per time control" === ""\r
-"Invalid minutes per time control" === ""\r
-"Invalid increment" === ""\r
-"Invalid initial time" === ""\r
-"Changing time control during a game is not implemented" === ""\r
-\r
-"Variant %s not supported by %s" === ""\r
-"Warning: second engine (%s) does not support this!" === ""\r
-"Invalid ICS Alarm Time" === ""\r
-"Invalid max time per move" === ""\r
-"Invalid time-odds factor" === ""\r
-"Choose Folder" === ""\r
-"Choose Book" === ""\r
-"Choose Polyglot Directory" === ""\r
-"Choose EGTB Directory:" === ""\r
-"Polyglot was not found in the specified folder!" === ""\r
-\r
-wgamelist.c\r
-\r
-"No game selected" === ""\r
-"Can't go forward any further" === ""\r
-"Can't back up any further" === ""\r
-"No game list" === ""\r
-"Game List" === ""\r
-"Game list not loaded or empty" === ""\r
-"%s - %d/%d games" === ""\r
-\r
-wedittags.c\r
-\r
-"Edit Tags" === ""\r
-"Tags" === ""\r
-"Error replacing tags." === ""\r
-\r
-wsettings.c\r
-\r
-"%s Engine Settings (%s)" === ""\r
-"OK" === ""\r
-"Cancel" === ""\r
-\r
-wchat.c\r
-\r
-"Chat Window %s" === ""\r
-\r
-backend.c\r
-\r
-"bad timeControl option %s" === ""\r
-"bad searchTime option %s" === ""\r
-## following to will appear in combinationslike "first engine" \r
-"first" === ""\r
-"second" === ""\r
-"protocol version %d not supported" === ""\r
-"Variant %s supported only in ICS mode" === ""\r
-"Unknown variant name %s" === ""\r
-"Starting chess program" === ""\r
-"Could not open comm port %s" === ""\r
-"Could not connect to host %s, port %s" === ""\r
-"Unknown initialMode %s" === ""\r
-"Can't have a match with no chess programs" === ""\r
-"Bad game file" === ""\r
-"Bad position file" === ""\r
-"AnalyzeFile mode requires a game file" === ""\r
-"Analysis mode requires a chess engine" === ""\r
-"Analysis mode does not work with ICS mode" === ""\r
-"MachineWhite mode requires a chess engine" === ""\r
-"MachineWhite mode does not work with ICS mode" === ""\r
-"MachineBlack mode requires a chess engine" === ""\r
-"MachineBlack mode does not work with ICS mode" === ""\r
-"TwoMachines mode does not work with ICS mode" === ""\r
-"TwoMachines mode requires a chess engine" === ""\r
-"Training mode requires a game file" === ""\r
-"Error writing to ICS" === ""\r
-"Error reading from keyboard" === ""\r
-"Got end of file from keyboard" === ""\r
-"Error writing to ICS" === ""\r
-"Error writing to display" === ""\r
-"Error gathering move list: two headers" === ""\r
-"Error gathering move list: nested" === ""\r
-"Connection closed by ICS" === ""\r
-"Error reading from ICS" === ""\r
-"Failed to parse board string:\n\"%s\"" === ""\r
-"Game too long; increase MAX_MOVES and recompile" === ""\r
-"Error gathering move list: extra board" === ""\r
-"Illegal move \"%s\" from ICS" === ""\r
-"Couldn't parse move \"%s\" from ICS" === ""\r
-## The leading 'say' is used as ICS command here, and should NOT be translated. Only the message behind it.\r
-"say Internal error; bad moveType %d (%d,%d-%d,%d)" === ""\r
-"You are playing Black" === ""\r
-"You are playing White" === ""\r
-"It is White's turn" === ""\r
-"It is Black's turn" === ""\r
-"Displayed position is not current" === ""\r
-"Illegal move" === ""\r
-"End of game" === ""\r
-"Incorrect move" === ""\r
-## next 6: Second (first 3) or first (other) '%s' will be substituted for 'first' or 'second'.\r
-"Illegal move \"%s\" from %s machine" === ""\r
-"Illegal move \"%s\" (rejected by %s chess program)" === ""\r
-"Failed to start %s chess program %s on %s: %s\n" === ""\r
-"Error writing to %s chess program" === ""\r
-"Error: %s chess program (%s) exited unexpectedly" === ""\r
-"Error reading from %s chess program (%s)" === ""\r
-"Forfeit due to illegal move" === ""\r
-"%s does not support analysis" === ""\r
-"Hint: %s" === ""\r
-"Machine accepts your draw offer" === ""\r
-"Machine offers a draw\nSelect Action / Draw to agree" === ""\r
-"%s (only move)" === ""\r
-"Ambiguous move in ICS output: \"%s\"" === ""\r
-"Illegal move in ICS output: \"%s\"" === ""\r
-"Gap in move list" === ""\r
-"Game too long; increase MAX_MOVES and recompile" === ""\r
-"Variant %s not supported by %s" === ""\r
-"Startup failure on '%s'" === ""\r
-"Waiting for first chess program" === ""\r
-"Waiting for second chess program" === ""\r
-"Match %s vs. %s: final score %d-%d-%d" === ""\r
-"Stalemate" === ""\r
-"Illegal move: %d.%s%s" === ""\r
-"Ambiguous move: %d.%s%s" === ""\r
-"Can't open \"%s\"" === ""\r
-"Cannot build game list" === ""\r
-"No more games in this message" === ""\r
-"No game has been loaded yet" === ""\r
-"Can't back up any further" === ""\r
-"Game number out of range" === ""\r
-"Can't seek on game file" === ""\r
-"Game not found in file" === ""\r
-"Bad FEN position in file" === ""\r
-"No moves in game" === ""\r
-"No position has been loaded yet" === ""\r
-"Can't back up any further" === ""\r
-"Can't open \"%s\"" === ""\r
-"Can't seek on position file" === ""\r
-"Position not found in file" === ""\r
-"Bad FEN position in file" === ""\r
-"Black to play" === ""\r
-"White to play" === ""\r
-"Can't open \"%s\"" === ""\r
-"You have edited the game history.\nUse Reload Same Game and make your move again." === ""\r
-"You have entered too many moves.\nBack up to the correct position and try again." === ""\r
-"Displayed position is not current.\nStep forward to the correct position and try again." === ""\r
-"You have not made a move yet" === ""\r
-"The cmail message is not loaded.\nUse Reload CMail Message and make your move again." === ""\r
-"No unfinished games" === ""\r
-"You have already mailed a move.\nWait until a move arrives from your opponent.\nTo resend the same move, type\n\"cmail -remail -game %s\"\non the command line." === ""\r
-"Failed to invoke cmail" === ""\r
-"Waiting for reply from opponent\n" === ""\r
-"Still need to make move for game\n" === ""\r
-"Still need to make moves for both games\n" === ""\r
-"Still need to make moves for all %d games\n" === ""\r
-"Still need to make a move for game %s\n" === ""\r
-"No unfinished games\n" === ""\r
-"Ready to send mail\n" === ""\r
-"Still need to make moves for games %s\n" === ""\r
-"Edit comment" === ""\r
-"Edit comment on %d.%s%s" === ""\r
-"Starting analysis mode...\nIf this message stays up, your chess program does not support analysis." ===  ""\r
-"It is not White's turn" === ""\r
-"It is not Black's turn" === ""\r
-"Wait until your turn,\nor select Move Now" === ""\r
-"Starting second chess program" === ""\r
-"Training mode off" === ""\r
-"Training mode on" === ""\r
-"Already at end of game" === ""\r
-"Warning: You are still playing a game" === ""\r
-"Warning: You are still observing a game" === ""\r
-"Warning: You are still examining a game" === ""\r
-"It is Black's turn" === ""\r
-"It is White's turn" === ""\r
-"That square is occupied" === ""\r
-"There is no pending offer on this move" === ""\r
-"Your opponent is not out of time" === ""\r
-"Black offers a draw" === ""\r
-"White offers a draw" === ""\r
-"You must make your move before offering a draw" === ""\r
-"You are not examining a game" === ""\r
-"You can't revert while pausing" === ""\r
-"Wait until your turn,\nor select Move Now" === ""\r
-"It is your turn" === ""\r
-"Wait until your turn" === ""\r
-"No hint available" === ""\r
-"Analysis (%s)" === ""\r
-"Comment" === ""\r
-"Comment on %d.%s%s" === ""\r
-"Both flags fell" === ""\r
-"White's flag fell" === ""\r
-"Black's flag fell" === ""\r
-"Bad FEN position in clipboard" === ""\r
-"No response from ICS" === ""\r
-"You cannot do this while you are playing or observing" === ""\r
-"Click in holdings to choose piece" === ""\r
-"failed writing PV" === ""\r
-"Bad Seek" === ""\r
-"vs." === ""\r
-"%s (%d reversible plies)" === ""\r
-"Reading game file (%d)" === ""\r
-"Click clock to clear board" === ""\r
-"Pull pawn backwards to under-promote" === ""\r
-\r
-END-OF-GAME MESSAGES (should they be translated?)\r
-## I think that only for visualization and not for PGN, as PGN files are shared all around the world\r
-## [OK, I adapted the source that way. So please translate.]\r
-\r
-"Game aborted" === ""\r
-"White wins on time" === ""\r
-"Black wins on time" === ""\r
-"Both players ran out of time" === ""\r
-"White resigns" === ""\r
-"Black resigns" === ""\r
-"White mates" === ""\r
-"Black mates" === ""\r
-"Draw" === ""\r
-"Draw agreed" === ""\r
-"Xboard adjudication: King destroyed" === ""\r
-"Xboard adjudication: Bare king" === ""\r
-"Xboard adjudication: 3rd check" === ""\r
-"Xboard adjudication: Stalemate" === ""\r
-"Xboard adjudication: Checkmate" === ""\r
-"Xboard adjudication: Insufficient mating material" === ""\r
-"Xboard adjudication: Trivial draw" === ""\r
-"XBoard adjudication: repetition draw" === ""\r
-"Xboard adjudication: perpetual checking" === ""\r
-"Xboard adjudication: perpetual chasing" === ""\r
-"%Xboard adjudication: perpetual chasing of" === ""\r
-"Xboard adjudication: 50-move rule" === ""\r
-"Draw claim: 50-move rule" === ""\r
-"Draw claim: 3-fold repetition" === ""\r
-"Draw claim: insufficient mating material" === ""\r
-"Xboard adjudication: long game" === ""\r
-"Xboard: Forfeit due to invalid move: %s (%c%c%c%c) res=%d" === ""\r
-"Xboard: Forfeit due to illegal move: %s (%c%c%c%c)%c" === ""\r
-"Xboard adjudication" === ""\r
-"User adjudication" === ""\r
-"False win claim: '%s'" === ""\r
-"False draw claim: '%s'" === ""\r
-"xboard exit" === ""\r
-\r
-\r
-# NEW STRINGS FOR EXPERIMENTAL TM VERSION:\r
-\r
-# MENU\r
-\r
-"Edit Boo&k..." === ""\r
-"Edit Engine List..." === ""\r
-"Load Engine..." === ""\r
-"Tournament..." === ""\r
-\r
-# LOAD ENGINE DIALOG\r
-\r
-"First" === ""\r
-"Second" === ""\r
-"Choose File" === ""\r
-"Choose Folder:" === ""\r
-"Select engine from list:" === ""\r
-"or specify one below:" === ""\r
-"Nickname (optional):" === ""\r
-"Use nickname in PGN tag" === ""\r
-"Engine (*.exe):" === ""\r
-"command-line parameters:" === ""\r
-"directory:" === ""\r
-"(Directory will be derived from engine path when left empty)" === ""\r
-"Add this engine to the list" === ""\r
-"Must not use GUI book" === ""\r
-"UCI" === ""\r
-"WB protocol v1 (skip waiting for features)" === ""\r
-"UCCI / USI (uses specified /uxiAdapter)" === ""\r
-"Force current variant with this engine" === ""\r
-"Load mentioned engine as" === ""\r
-"Load Engine" === ""\r
-"You did not specify the engine executable" === ""\r
-"Select single engine from the group" === ""\r
-\r
-# TOURNAMENT OPTIONS DIALOG\r
-\r
-"Tournament file:" === ""\r
-"If you specify an existing file, the rest of this dialog will be ignored." === ""\r
-"Otherwise, the file will be created, with the settings you specify below:" === ""\r
-"Select Engine:" === ""\r
-"Use Swiss pairing engine (cycles = rounds)" === ""\r
-"Tourney type (0=RR, 1=gauntlet):" === ""\r
-"Sync after cycle" === ""\r
-"Number of tourney cycles:" === ""\r
-"Sync after round" === ""\r
-"Games per Match / Pairing:" === ""\r
-"File for saving tourney games:" === ""\r
-"Game File with Opening Lines:" === ""\r
-"Game Number:" === ""\r
-"File with Start Positions:" === ""\r
-"Position Number:" === ""\r
-"Step through lines/positions in file" === ""\r
-"Rewind after (0 = never):" === ""\r
-"Use each line/position twice" === ""\r
-"Pause between Games (ms):" === ""\r
-"Tournament and Match Options" === ""\r
-"Tourney participants:" === ""\r
-"Replace Engine" === ""\r
-"Upgrade Engine" === ""\r
-"Time Control..." === ""\r
-"Common Engine..." === ""\r
-"Clone Tourney" === ""\r
-"Make all use GUI book by default" === ""\r
-"You must supply a tournament file,\nfor storing the tourney progress" === ""\r
-"Not enough participants" === ""\r
-"Continue Later" === ""\r
-"First you must specify an existing tourney file to clone" === ""\r
-"No engine %s is installed" === ""\r
-\r
-# THEMES DIALOG\r
-\r
-"Board themes" === ""\r
-"Select theme from list:" === ""\r
-"or specify new theme below:" === ""\r
-"Theme name:" === ""\r
-"Use board textures" === ""\r
-"Light-square texture:" === ""\r
-"Dark-square texture:" === ""\r
-"Dark reorientation mode:" === ""\r
-"Light reorientation mode:" === ""\r
-"Draw border around board" === ""\r
-"Optional border bitmap:" === ""\r
-"        Beware: a specified piece font will prevail over piece bitmaps" === ""\r
-"Directory with piece bitmaps:" === ""\r
-"Use piece font" === ""\r
-"Font size (%):" === ""\r
-"Font name:" === ""\r
-"Font piece to char:" === ""\r
-"Delete Theme" === ""\r
-"Select single theme from the group" === ""\r
-\r
-# book.c\r
-\r
-"Could not create book" === ""\r
-"Polyglot book not valid" === ""\r
-"Hash keys are different" === ""\r
-"Book Fault" === ""\r
-"Book file exists! Try again for overwrite." === ""\r
-\r
-# NEW MENU ITEMS IN 4.7\r
-\r
-"Save Games to &Book" === ""\r
-"Colo&rs..." === ""\r
-"Load &First Engine..." === ""\r
-"Load &Second Engine..." === ""\r
-"&Board Themes..." === ""\r
-"Auto &Create Logon" === ""\r
diff --git a/winboard/language/chinese(simp).lng b/winboard/language/chinese(simp).lng
deleted file mode 100644 (file)
index 8b443ec..0000000
+++ /dev/null
@@ -1,787 +0,0 @@
-winboard.rc\r
-\r
-"      " === "Translation by Morning Yellow && Liuzy"\r
-\r
-MENUS\r
-\r
-"&New Game\tCtrl-N" === "ÖØÖÃÆå¾Ö(&N)\tCtrl-N"\r
-"New Sh&uffle Game..." === "Ï´ÅÆÓÎÏ·(&u)..."\r
-"New &Variant...\tAlt+Shift+V" === "бäÖÖ(&V)...\tAlt+Shift+V"\r
-"&Load Game...\tCtrl-O" === "ÔØÈëÆå¾Ö(&L)...\tCtrl-O"\r
-"Load &Next Game\tAlt+PgDn" === "ÔØÈëÏÂÒ»Æå¾Ö(&N)\tAlt+PgDn"\r
-"Load &Previous Game\tAlt+PgUp" === "ÔØÈëÉÏÒ»Æå¾Ö(&P)\tAlt+PgUp"\r
-"&Reload Same Game" === "ÖØÐÂÔØÈëͬһÆå¾Ö(&R)"\r
-"&Save Game...\tCtrl-S" === "±£´æÆå¾Ö(&S)...\tCtrl-S"\r
-"&Copy Game To Clipboard\tCtrl+C" === "¸´ÖÆÆå¾Öµ½¼ôÌù°å(&C)\tCtrl+C"\r
-"&Paste Game From Clipboard\tCtrl+V" === "Õ³ÌùÆå¾Ö×Ô¼ôÌù°å(&P)\tCtrl+V"\r
-"Copy Game List to Clipboard" === "¸´ÖÆÓÎÏ·ÁÐ±íµ½¼ôÌù°å"\r
-"L&oad Position...\tCtrl+Shift+O" === "ÔØÈë¾ÖÃæ(&O)...\tCtrl+Shift+O"\r
-"Load N&ext Position\tAlt+Shift+PgDn" === "ÔØÈëÏÂÒ»¾ÖÃæ(&E)\tAlt+Shift+PgDn"\r
-"Load Pre&vious Position\tAlt+Shift+PgUp" === "ÔØÈëÉÏÒ»¾ÖÃæ(&V)\tAlt+Shift+PgUp"\r
-"Reload Sa&me Position" === "ÖØÐÂÔØÈëͬһ¾ÖÃæ(&M)"\r
-"S&ave Position...\tCtrl+Shift+S" === "±£´æ¾ÖÃæ(&A)...\tCtrl+Shift+S"\r
-"Save as &Diagram..." === "±£´æÍ¼±í...(&D)"\r
-"C&opy Position To Clipboard\tCtrl+Shift+C" === "¸´ÖƾÖÃæµ½¼ôÌù°å(&Y)\tCtrl+Shift+C"\r
-"P&aste Position From Clipboard\tCtrl+Shift+V" === "´Ó¼ôÌù°åÕ³Ìù¾ÖÃæ(&T)\tCtrl+Shift+V"\r
-"E&xit" === "Í˳ö(&X)"\r
-"&Quit" === "Í˳ö(&Q)"\r
-"&Edit Game\tCtrl+E" === "±à¼­Æå¾Ö(&E)\tCtrl+E"\r
-"E&dit Position\tCtrl+Shift+E" === "±à¼­¾ÖÃæ(&d)\tCtrl+Shift+E"\r
-\r
-"&Tags" === "±à¼­±êÇ©(&T)"\r
-"&Comments" === "±à¼­×¢ÊÍ(&C)..."\r
-"&Game List Tags..." === "ÓÎÏ·Áбí..."\r
-\r
-"Machine &White\tCtrl+W" === "µçÄÔÖ´°×(&W)\tCtrl+W"\r
-"Machine &Black\tCtrl+B" === "µçÄÔÖ´ºÚ(&B)\tCtrl+B"\r
-"&Two Machines\tCtrl+T" === "µçÄÔ¶ÔÞÄ(&M)\tCtrl+T"\r
-"Machine Both" === "ÒýÇæÖ´°×ºÍºÚ"\r
-"&Machine Match" === "ÒýÇæ±ÈÈü(&M)"\r
-"&Analysis Mode\tCtrl+A" === "·ÖÎöģʽ(&A)\tCtrl+A"\r
-"Analyze &File\tCtrl+F" === "·ÖÎöÎļþ(&F)\tCtrl+F"\r
-"&ICS Client" === "&ICS¿Í»§¶Ë"\r
-"Edit &Game\tCtrl+E" === "±à¼­Æå¾Ö(&G)\tCtrl+E"\r
-"&Edit Position\tShift+Ctrl+E" === "±à¼­¾ÖÃæ(&E)\tShift+Ctrl+E"\r
-"Trai&ning" === "ѵÁ·(&N)"\r
-"Engine &Output\tAlt+Shift+O" === "ÏÔʾÒýÇæÊä³ö\tAlt+Shift+O"\r
-"Evaluation &Graph\tAlt+Shift+E" === "ÏÔʾÆÀ¼Ûͼ\tAlt+Shift+E"\r
-"Game &List\tAlt+Shift+G" === "ÏÔʾÆå¾ÖÁбí(&L)\tAlt+Shift+G"\r
-"Move &History\tAlt+Shift+H" === "ÏÔʾ×Å·¨\tAlt+Shift+H"\r
-"Open &New Chat Window" === "´ò¿ªÁÄÌì´°¿Ú"\r
-"Edit Ta&gs..." === "±à¼­±êÇ©(&T)"\r
-"Edit Co&mment..." === "±à¼­×¢ÊÍ(&C)..."\r
-"Enter &Username..." === "ÊäÈëÓû§Ãû³Æ(&U)"\r
-"&Pause\tPause" === "ÔÝÍ£(&P)\tPause"\r
-\r
-"&Accept\tF3" === "½ÓÊÜ(&A)\tF3"\r
-"D&ecline\tF4" === "¾Ü¾ø(&C)\tF4"\r
-"Re&match\tF12" === "ÖØÈü(&M)\tF12"\r
-"Call &Flag\tF5" === "³¬Ê±Åиº(&F)\tF5"\r
-"&Draw\tF6" === "ÌáºÍ(&D)\tF6"\r
-"Ad&journ\tF7" === "·âÅÌ(&J)\tF7"\r
-"A&bort\tF8" === "ÖÐÖ¹(&B)\tF8"\r
-"&Resign\tF9" === "ÈÏÊä(&R)\tF9"\r
-"Stop &Observing\tF10" === "Í£Ö¹ÅÔ¹Û(&O)\tF10"\r
-"Stop E&xamining\tF11" === "Í£Ö¹Ñо¿(&X)\tF11"\r
-"&Upload to Examine" === "ÉÏ´«¼ì²é(&U)"\r
-"Adjudicate to &White" === "²Ã¾ö°×Ó® (&W)"\r
-"Adjudicate to &Black" === "²Ã¾öºÚÓ® (&B)"\r
-"Adjudicate &Draw" === "ÌáÇëÖÙ²Ã(&D)"\r
-\r
-"Type In &Move...\tAlt+I" === "ÊäÈë×Å·¨(&Y)...\tAlt+I"\r
-"&Backward\tAlt+Left" === "ÏÂÒ»×Å(&B)\tAlt+Left"\r
-"&Forward\tAlt+Right" === "ÉÏÒ»×Å(&F)\tAlt+Right"\r
-"Back to &Start\tAlt+Home" === "Æðʼ¾ÖÃæ(&S)\tAlt+Home"\r
-"For&ward to End\tAlt+End" === "×îºó¾ÖÃæ(&E)\tAlt+End"\r
-"&Revert\tHome" === "»Ö¸´(&V)"\r
-"&Annotate" === "×¢ÊÍ(&A)"\r
-"&Truncate Game\tEnd" === "½Ø¶ÏºóÃæµÄ×Å·¨(&T)"\r
-"&Move Now\tCtrl+M" === "Á¢¼´×߯å(&M)\tCtrl+M"\r
-"&Retract Move\tCtrl+X" === "»ÚÆå(&R)\tCtrl+X"\r
-\r
-"Flip &View\tF2" === "·­×ªÆåÅÌ(&V)\tF2"\r
-"&Swap Clocks" === "½»»»ÖÓ±í(&C)"\r
-"&Mute all Sounds" === "ËùÓÐÉùÒô¾²Òô(&M)"\r
-"&General..." === "³£¹æÑ¡Ïî(&G)..."\r
-"&Board..." === "ÆåÅÌÑ¡Ïî(&B)..."\r
-"Ad&judications...\tAlt+Shift+J" === "Åоö(&j)...\tAlt+Shift+J"\r
-"Common &Engine...\tAlt+Shift+U" === "ͨÓÃÒýÇæÉèÖÃ(&E)...\tAlt+Shift+U"\r
-"Engine #&1 Settings..." === "ÒýÇæ #1 ÉèÖÃ"\r
-"Engine #&2 Settings..." === "ÒýÇæ #2 ÉèÖÃ"\r
-"&ICS..." === "&ICSÑ¡Ïî..."\r
-"&Fonts..." === "×ÖÌåÑ¡Ïî(&F)..."\r
-"Soun&ds..." === "ÉùÒôÑ¡Ïî(&D)..."\r
-"G&ame List..." === "ÓÎÏ·Áбí..."\r
-"Comm&unications..." === "ͨѶ¶Ë¿ÚÉèÖÃ(&U)..."\r
-"&Load Game...\tAlt+Shift+L" === "ÔØÈëÆå¾ÖÑ¡Ïî(&L)...\tAlt+Shift+L"\r
-"&Save Game...\tAlt+Shift+S" === "±£´æÆå¾ÖÑ¡Ïî(&S)...\tAlt+Shift+S"\r
-"&Time Control...\tAlt+Shift+T" === "ʱÏÞÉèÖÃ(&T)...\tAlt+Shift+T"\r
-"Save Settings &Now" === "Á¢¼´±£´æÉèÖÃ(&N)"\r
-"Save Settings on E&xit" === "Í˳öʱ±£´æÉèÖÃ(&X)"\r
-\r
-"Help &Contents\tF1" === "°ïÖúÖ÷Ìâ(&C)\tF1"\r
-"Help &Index" === "°ïÖúË÷Òý(&I)"\r
-"How to &Use Help" === "ÈçºÎʹÓðïÖú(&U)"\r
-"&Hint..." === "Ìáʾ(&H)..."\r
-"&Book..." === "¿ª¾Ö¿â(&B)..."\r
-"&About WinBoard" === "¹ØÓÚWinBoard(&A)"\r
-\r
-"White" === "°×·½"\r
-"Promote" === "Éý±ä"\r
-"Pawn" === "±ø"\r
-"Knight" === "Âí"\r
-"Bishop" === "Ïó"\r
-"Rook" === "³µ"\r
-"Queen" === "ºó"\r
-"King" === "Íõ"\r
-"Archbishop" === "¹úʦ"\r
-"Chancellor" === "Ô×Ïà"\r
-"Elephant" === "Ïó"\r
-"Cannon" === "ÅÚ"\r
-"Empty Square" === "Çå¿Õ¸ñ×Ó"\r
-"Black" === "ºÚ·½"\r
-"Demote" === "½µ¼¶"\r
-"Clear Board    " === "Çå¿ÕÆåÅÌ"\r
-"Drop" === "È¡Ïû"\r
-\r
-"Cop&y and Paste" === "¸´ÖƲ¢Õ³Ìù(&Y)"\r
-"&Copy" === "¸´ÖÆ(&C)"\r
-"&Paste" === "Õ³Ìù(&P)"\r
-\r
-"&Undo" === "³·Ïû(&U)"\r
-"Cu&t" === "¼ôÇÐ(&T)"\r
-"&Copy" === "¸´ÖÆ(&C)"\r
-"&Paste" === "Õ³Ìù(&P)"\r
-"Select &All" === "ȫѡ(&A)"\r
-\r
-DIALOGS\r
-\r
-"&Animate Moving         Ctrl+Shift+A" === "¶¯»­×߯å(&A)     Ctrl+Shift+A"\r
-"&Auto Comment" === "×Ô¶¯×¢ÊÍ(&A)"\r
-"&Average" === "54"\r
-"&Big" === "87"\r
-"&Bishop" === "Ïó(&B)"\r
-"&Black first move" === "ºÚ·½ÏÈÐÐ(&B)"\r
-"&Blindfold" === "äÆå(&B)"\r
-"&Bold" === "¼Ó´Ö(&B)"\r
-"&Cancel" === "È¡Ïû(&C)"\r
-"&Choose Background Color..." === "Ñ¡Ôñ±³¾°ÑÕÉ«(&C)..."\r
-"&Choose Color..." === "Ñ¡ÔñÑÕÉ«(&C)..."\r
-"&Clear" === "Çå³ý(&C)"\r
-"&Close" === "¹Ø±Õ(&C)"\r
-"&Colossal" === "116"\r
-"&Default ICS Colors" === "ĬÈÏICSÑÕÉ«(&D)"\r
-"&Dinky" === "29"\r
-"&Directories:" === "Ŀ¼(&D)"\r
-"&Edit" === "±à¼­(&E)"\r
-"&Edit" === "±à¼­(&E)"\r
-"&Get Move List" === "»ñÈ¡×Å·¨Áбí(&G)"\r
-"&Giant" === "108"\r
-"&Help" === "°ïÖú(&H)"\r
-"Highlight Dra&gging" === "ÍÏ×§ÐÑÄ¿Ìáʾ(&H)"\r
-"&Huge" === "95"\r
-"&Index number:" === "ÐòºÅ(&I)"\r
-"&Italic" === "Çãб(&I)"\r
-"&King" === "Íõ(&K)"\r
-"&Large" === "80"\r
-"&Load" === "ÔØÈë(&L)"\r
-"&Local Line Editing" === "±¾µØÐб༭(&L)"\r
-"&Middling" === "49"\r
-"&Next" === "ÏÂÒ»¾Ö(&N)"\r
-"&Petite" === "33"\r
-"&Popup Exit Message" === "Í˳öʱÌáʾ(&P)"\r
-"&Port:" === "¶Ë¿Ú(&P)"\r
-"&Premove" === "Ô¤ÏÈ×߯å(&P)"\r
-"&Prev" === "ÉÏÒ»¾Ö(&P)"\r
-"&Queen" === "ºó(&Q)"\r
-"&Quiet Play" === "Âä×ÓÎÞÉù(&Q)"\r
-"&Revert to Defaults" === "»Ö¸´Ä¬ÈÏÉ趨(&R)"\r
-"&Rook" === "³µ(&R)"\r
-"&Show Thinking" === "ÏÔʾ˼¿¼Ï¸½Ú(&S)"\r
-"&Small" === "40"\r
-"&Sound alarm at" === "ÉùÒô¾¯¸æÓÚ(&S)"\r
-"&Stop Bits:" === "ֹͣλ(&S)"\r
-"&Strikeout" === "ɾ³ýÏß(&S)"\r
-"&Tiny" === "21"\r
-"&Underline" === "Ï»®Ïß(&U)"\r
-"&White first move" === "°×·½ÏÈÐÐ(&W)"\r
-"&Additional options" === "¸½¼ÓÑ¡Ïî(&A)"\r
-"Always &Queen            Ctrl+Shift+Q" === "×ÜÊÇÉý±äΪºó(&Q) Ctrl+Shift+Q"\r
-"Always on &Top" === "×ÜÔÚ×îÇ°Ãæ(&T)"\r
-"Animate &Dragging" === "¶¯»­ÍÏ×§(&D)"\r
-"Auto &Flag                   Ctrl+Shift+F" === "×Ô¶¯³¬Ê±Åиº(&F) Ctrl+Shift+F"\r
-"Auto &Observe" === "×Ô¶¯ÅÔ¹Û(&O)"\r
-"Auto &Raise Board" === "×Ô¶¯¸Ä±äÆåÅÌ´óС(&R)"\r
-"Auto Flip &View" === "×Ô¶¯·­×ªÆåÅÌ(&V)"\r
-"Black Pieces" === "ºÚ×Ó"\r
-"Browse..." === "ä¯ÀÀ..."\r
-"Built-in sound:" === "ÄÚ½¨ÉùÒô"\r
-"Bul&ky" === "72"\r
-"Cancel" === "È¡Ïû"\r
-"Chessboard for Windows" === "Windowsϵĵç×Ó¹ú¼ÊÏóÆåÆåÅÌ"\r
-"Choose..." === "Ñ¡Ôñ..."\r
-"Clocks" === "ʱÖÓ"\r
-"Comments" === "×¢ÊÍ"\r
-"Conventional chess clock" === "ʱ¶ÎÖÆ"\r
-"Coordinates" === "×ø±ê"\r
-"Copyright 1991 Digital Equipment Corporation" === "Copyright 1991 Digital Equipment Corporation"\r
-"Dark Squares" === "ºÚ¸ñ"\r
-"Data &Bits:" === "Êý¾Ýλ(&B)"\r
-"Data &Rate:" === "²¨ÌØÂÊ(&R)"\r
-"Default beep" === "ĬÈÏÉùÒô"\r
-"Defaults" === "ĬÈÏ"\r
-"Do &not colorize messages" === "²»Òª¶ÔÐÅÏ¢×ÅÉ«(&N)"\r
-"Dri&ves:" === "Çý¶¯Æ÷(&V)"\r
-"Enter" === "ÊäÈë"\r
-"Event:" === "ʼþ"\r
-"F&low:" === "¿ØÖÆ(&L)"\r
-"File &Name:" === "ÎļþÃû(&N)"\r
-"Help" === "°ïÖú"\r
-"Highlight Last &Move" === "ÐÑÄ¿ÌáʾÉÏÒ»×Å·¨(&M)"\r
-"ICS Interaction" === "ICS½»»¥½çÃæ"\r
-"Incremental clock" === "¼ÓÊ±ÖÆ"\r
-"Inde&x number:" === "ÐòºÅ(&X)"\r
-"Just &view or edit game files" === "Ö»¹Û¿´»ò±à¼­Æå¾Ö(&v)"\r
-"K&night" === "Âí(&N)"\r
-"Light Squares" === "°×¸ñ"\r
-"List Files of &Type:" === "ÎļþÀàÐÍ(&T)"\r
-"Load games with automatic stepping" === "ÔØÈëÆå¾Ö×Ô¶¯×߯å"\r
-"Medi&ocre" === "45"\r
-"Medi&um" === "64"\r
-"Messages" === "ÐÅÏ¢"\r
-"Mode&rate" === "58"\r
-"Monochrome" === "ºÚ°×"\r
-"Net&work..." === "ÍøÂç(&W)..."\r
-"No sound" === "ÎÞÉù"\r
-"OK" === "È·¶¨"\r
-"Old" === "¾É¸ñʽ"\r
-"P&arity:" === "УÑé(&A)"\r
-"PGN" === "PGN¸ñʽ"\r
-"Periodic &Updates" === "¶¨ÆÚ¸üÐÂ(&U)"\r
-"Play" === "²¥·Å"\r
-"Ponder &Next Move  Ctrl+Shift+P" === "ͬ²½Ë¼¿¼(&N)  Ctrl+Shift+P"\r
-"Popup Move &Errors" === "Ìáʾ´íÎó×Å·¨(&E)"\r
-"Premove Highlights" === "Ô¤ÏÈ×߯å±ê¼Ç"\r
-"Promote pawn to:" === "±øÉý±äΪ"\r
-"Prompt for filename" === "ÌáʾÎļþÃû"\r
-"Save As: " === "±£´æÀàÐÍ"\r
-"Save games automatically" === "×Ô¶¯±£´æÆå¾Ö"\r
-"Show &Coordinates" === "ÏÔÊ¾×ø±ê(&C)"\r
-"Show Butt&on Bar" === "ÏÔʾ°´Å¥À¸(&O)"\r
-"Sl&im" === "37"\r
-"Sorry Charlie" === "¶Ô²»Æð£¬¸óÏÂ"\r
-"Square Highlights" === "¸ñ×Ó±ê¼Ç"\r
-"T&eeny" === "25"\r
-"Tags" === "±êÇ©"\r
-"Test &Legality            Ctrl+Shift+L" === "¼ì²é×Å·¨ºÏÀíÐÔ(&L) Cl+Sh+L"\r
-"Tita&nic" === "129"\r
-"To file:" === "µ½Îļþ"\r
-"Use an Internet Chess Server" === "µÇÂ¼ÍøÉϹú¼ÊÏóÆå·þÎñÆ÷"\r
-"WAV file:" === "WAVÎļþ"\r
-"White Pieces" === "°××Ó"\r
-"WinBoard 0.0.0" === "WinBoard 0.0.0"\r
-"galactic" === "galactic"\r
-"minutes initially," === "Æðʼʱ¼äÓÐ"\r
-"minutes" === "·ÖÖÓÄÚÍê³É"\r
-"moves in" === "²½"\r
-"plus" === "·ÖÖÓ"\r
-"seconds per move" === "ÿ×ßÒ»²½¼Ó"\r
-"seconds per move" === "Ãë×ßÒ»²½"\r
-"seconds" === "Ãë"\r
-"Save As:" === "±£´æÀàÐÍ"\r
-"What would you like to do?" === "´òËãÈçºÎʹÓã¿"\r
-"Interaction Colors" === "½»»¥½çÃæÑÛÉ«"\r
-"Premove" === "Ô¤ÏÈ×߯å"\r
-"Alarm" === "Ìáʾ"\r
-"Colors" === "ÑÕÉ«"\r
-"Size" === "´óС"\r
-"Current Board Size" === "µ±Ç°ÆåÅÌ´óС"\r
-"All Board Sizes" === "ËùÓÐÆåÅÌ´óС"\r
-\r
-"Number of moves:" === "²½"\r
-"Within number of minutes:" === "·ÖÖÓÄÚÍê³É"\r
-"Initial number of minutes:" === "Æðʼʱ¼äÓÐ"\r
-"Plus number of seconds per move:" === "·ÖÖÓÿ×ßÒ»²½¼Ó"\r
-\r
-"Ponder Next Move" === "ͬ²½Ë¼¿¼(&N)"\r
-"Enable and Show Thinking (recommended)" === "ÏÔʾ˼¿¼Ï¸½Ú"\r
-"Periodic Updates (for Analysis Mode)" === "¶¨ÆÚ¸üÐÂ(·ÖÎöģʽ)"\r
-\r
-"Game List Options" === "Æå¾ÖÁбíÑ¡Ïî"\r
-"PGN &Tags:" === "PGN±êÇ©(&T)"\r
-"Default" === "ĬÈÏ"\r
-\r
-"Sounds" === "ÉùÒô"\r
-"&Event:" === "ʼþ(&E)"\r
-"&No sound" === "ÎÞÉù(&N)"\r
-"&Default beep" === "ĬÈÏÉùÒô(&D)"\r
-"&Built-in sound:" === "ÄÚ½¨ÉùÒô(&B)"\r
-"&WAV file:" === "&WAVÎļþ"\r
-"B&rowse..." === "ä¯ÀÀ...(&B)"\r
-"&Play" === "²¥·Å(&P)"\r
-"&Defaults" === "ĬÈÏ(&D)"\r
-"I C S Interaction" === "I C S ½»»¥»·¾³"\r
-\r
-"About WinBoard" === "¹ØÓÚWinBoard"\r
-"Time Control" === "ʱÏÞÉèÖÃ"\r
-"Load Game Options" === "ÔØÈëÆå¾ÖÑ¡Ïî"\r
-"Save Game Options" === "±£´æÆå¾ÖÑ¡Ïî"\r
-"Open" === "´ò¿ª"\r
-"Communication Port Settings" === "ͨѶ¶Ë¿ÚÉèÖÃ"\r
-"Edit Comment" === "±à¼­×¢ÊÍ"\r
-"Promotion" === "Éý±ä"\r
-"Game List" === "Æå¾ÖÁбí"\r
-"Edit Tags" === "±à¼­±êÇ©"\r
-"ICS Interaction" === "ICS½»»¥»·¾³"\r
-"Dialog" === "¶Ô»°"\r
-"Error" === "´íÎó"\r
-"ICS Interaction Colors" === "ICS½»»¥»·¾³ÑÕÉ«"\r
-"Question" === "Ìáʾ"\r
-"WinBoard Startup" === "WinBoardÆô¶¯"\r
-"Type in a move" === "ÊäÈë×Å·¨"\r
-"General Options" === "³£¹æÑ¡Ïî"\r
-"ICS Options" === "ICSÉèÖÃ"\r
-"Board Options" === "ÆåÅÌÑ¡Ïî"\r
-"Fonts" === "×ÖÌå"\r
-\r
-NEW\r
-\r
-"&Up" === "ÏòÉÏ"\r
-"&Down" === "ÏòÏÂ"\r
-"Filter" === "¹ýÂËÆ÷"\r
-"All White" === "È«°×É«"\r
-"Flip Black" === "·´×ªºÚÉ«"\r
-"Specify Chess &Engines:" === "Ö¸¶¨ÒýÇæ(&E)"\r
-"Specify Chess &Server:" === "Ö¸¶¨·þÎñÆ÷(&S)"\r
-"New Shuffle Game..." === "Ï´ÅÆÓÎÏ·..."\r
-"New Variant...\tAlt+Shift+V" === "бäÖÖ...\tAlt+Shift+V"\r
-"Copy Game List to Clipboard" === "¸´ÖÆÓÎÏ·ÁÐ±íµ½¼ôÌù°å"\r
-"Save &Diagram..." === "±£´æÍ¼±í...(&D)"\r
-"Machine Both" === "ÒýÇæÖ´°×ºÍºÚ"\r
-"Machine Matc&h" === "ÒýÇæ±ÈÈü(&h)"\r
-"Show Engine &Output\tAlt+Shift+O" === "ÏÔʾÒýÇæÊä³ö\tAlt+Shift+O"\r
-"Show Evaluation Graph\tAlt+Shift+E" === "ÏÔʾÆÀ¼Ûͼ\tAlt+Shift+E"\r
-"Show Move History\tAlt+Shift+H" === "ÏÔʾ×Å·¨\tAlt+Shift+H"\r
-"Open Chat Window" === "´ò¿ªÁÄÌì´°¿Ú"\r
-"Enter &Username..." === "ÊäÈëÓû§Ãû³Æ(&U)"\r
-"&Upload to Examine" === "ÉÏ´«¼ì²é(&U)"\r
-"Adjudicate to &White" === "²Ã¾ö°×Ó® (&W)"\r
-"Adjudicate to &Black" === "²Ã¾öºÚÓ® (&B)"\r
-"Adjudicate &Draw" === "ÌáÇëÖÙ²Ã(&D)"\r
-"&Annotate" === "×¢ÊÍ(&A)"\r
-"&Truncate Game" === "½Ø¶ÏÆåÆ×(&T)"\r
-"Swap &Clocks" === "½»»»ÖÓ±í(&C)"\r
-"&Mute all Sounds" === "ËùÓÐÉùÒô¾²Òô(&M)"\r
-"Adjudications...\tAlt+Shift+J" === "Åоö...\tAlt+Shift+J"\r
-"Common Engine...\tAlt+Shift+U" === "ͨÓÃÒýÇæÉèÖÃ...\tAlt+Shift+U"\r
-"Engine #1 Settings..." === "ÒýÇæ #1 ÉèÖÃ"\r
-"Engine #2 Settings..." === "ÒýÇæ #2 ÉèÖÃ"\r
-"Game List..." === "ÓÎÏ·Áбí..."\r
-"Promote" === "Éý±ä"\r
-"Archbishop" === "¹úʦ"\r
-"Chancellor" === "Ô×Ïà"\r
-"Elephant" === "Ïó"\r
-"Cannon" === "ÅÚ"\r
-"Demote" === "½µ¼¶"\r
-"Lance" === "Ïã³µ"\r
-"Silver" === "Òø½«"\r
-"Gold" === "½ð½«"\r
-\r
-"Fixed time per move" === "¹Ì¶¨²½Ê±"\r
-"Maximum seconds per move:" === "×î´ó²½Ê±(Ãë)"\r
-"Time-Odds Factors:" === "ʱ¼ä±¶Êý"\r
-"Engine #1:" === "ÒýÇæ #1"\r
-"Engine #2:" === "ÒýÇæ #2"\r
-"Save out of book info in PGN" === "ÔÚPGNÖб£´æ¿âÐÅÏ¢"\r
-"&Send Engine Think" === "·¢ËÍÒýÇæË¼¿¼(&S)"\r
-"E&xtended PGN Info    Ctrl+Shift+X" === "À©Õ¹PGNÐÅÏ¢ Ctrl+Shift+X"\r
-"&Hide Thinking          Ctrl+Shift+H" === "Òþ²ØÒýÇæË¼¿¼ Ctrl+Shift+H"\r
-"&Info in Move History   Ctrl+Shift+I" === "×Å·¨ÁбíÖÐÏÔʾÐÅÏ¢ Cl+Sh+I"\r
-"Highlight with Arro&w" === "ÓüýÍ·Í»³öÒÆ¶¯"\r
-"Displa&y Logos" === "ÏÔʾÒýÇæ±êÖ¾(&y)"\r
-\r
-"&Auto Kibitz" === "×Ô¶¯\"kibitz\"(&A)"\r
-"See&k Graph" === "¿ÉÑ¡¶ÔÊÖͼ±í(&k)"\r
-"auto-&Refresh" === "×Ô¶¯Ë¢ÐÂͼ±í(&R)"\r
-"Bckgnd Obser&ve" === "ºǫ́¹Û²ì(&v)"\r
-"&Dual Board" === "Ë«ÆåÅÌ(&D)"\r
-"One-Click &Move" === "µ¥»÷ÒÆ¶¯(&M)"\r
-"Background..." === "±³¾°..."\r
-"&Defaults..." === "ȱʡ(&D)"\r
-"Startup &Chat Boxes:" === "Æô¶¯ÁÄÌì¿ò(&C)"\r
-"General" === "³£¹æ"\r
-\r
-"      YES" === "ÊÇ"\r
-"       NO" === "·ñ"\r
-"Move History, Engine Output" === "ÀúÊ·Éϵ͝×÷,³öµÄ·¢¶¯»ú"\r
-"New Shuffle Game" === "Ï´ÅÆÓÎÏ·"\r
-"&Start Position Number:" === "Æô¶¯Î»ÖúÅÂë(&S)"\r
-"Random" === "Ëæ»ú"\r
-\r
-"Move History" === "×Å·¨"\r
-"Evaluation Graph" === "ÆÀ¼Ûͼ"\r
-"Engine output" === "ÒýÇæÊä³ö"\r
-"Engine #1" === "ÒýÇæ #1"\r
-"NPS" === "NPS"\r
-"Engine #2" === "ÒýÇæ #2"\r
-"Chat Window" === "ÁÄÌì´°¿Ú"\r
-"Chat partner:" === "ÁÄÌì»ï°é"\r
-"Clear" === "Çå¿Õ"\r
-"Send" === "·¢ËÍ"\r
-\r
-"Adjudications" === "Åоö"\r
-"Hide Thinking when Playing against Human" === "ÓëÈ˶ÔÞÄʱÒþ²ØË¼¿¼Ï¸½Ú"\r
-"Adjudications in non-ICS games" === "Åоö·ÇICSµÄÓÎÏ·"\r
-"Adjudicate draw after:" === "¼¸×źóÅоö"\r
-"moves" === "×Å·¨"\r
-"Win/loss adjudication threshold:" === "Êä/Ó®ÅоöãÐÖµ"\r
-"centipawns" === "°Ù·ÖÖ®Ò»±ø"\r
-"&Verify Engine Claims" === "ÑéÖ¤ÒýÇæÉùÃ÷(&V)"\r
-"Detect &Mates" === "¼ì²â½«É±(&M)"\r
-"Draw if &Insufficient Material" === "×ÓÁ¦²»×ãʱÅкÍ(&I)"\r
-"Adjudicate &Trivial Draws" === "Ò»°ãºÍÆåÅоö(&T)"\r
-"Apply" === "Ó¦ÓÃ"\r
-"-move rule" === "×ÅÊý¹æÔò"\r
-"-fold repeats" === "ÖØ¸´"\r
-"Engine #1 Score is Absolute" === "ÒýÇæ #1 ÊǾø¶Ô·ÖÊý"\r
-"Engine #2 Score is Absolute" === "ÒýÇæ #2 ÊǾø¶Ô·ÖÊý"\r
-\r
-"Common Engine Settings" === "ͨÓÃÒýÇæÉèÖÃ"\r
-"Polyglot Directory:" === " Polyglot Ŀ¼"\r
-"Hash Size (MB):" === "Hash ´óС(MB)"\r
-"EGTB Path:" === "EGTB Â·¾¶"\r
-"EGTB Size (MB):" === "EGTB ´óС(MB)"\r
-"Use Book:" === "ʹÓÿâ"\r
-"Max nr of CPUs:" === "×î´óCPUÊý"\r
-"First has Own Book" === "ÒýÇæ1ÓÐ×ÔÓÿâ"\r
-"Second has Own Book" === "ÒýÇæ2ÓÐ×ÔÓÿâ"\r
-"Book Depth:" === "¿â×Å·¨Éî¶È"\r
-"Book Variation:" === "¿â±äÀý"\r
-"Default Match Games:" === "ȱʡ±ÈÈü¶Ô¾ÖÊý"\r
-\r
-"Variants" === "±äÖÖ"\r
-"Variant" === "±äÖÖ"\r
-"Board size:" === "ÆåÅÌ´óС"\r
-"ranks" === "ºá"\r
-"files" === "ÁÐ"\r
-"Holdings with room for:" === "¿ÉÓµÓÐµÄÆå×ÓÀàÐÍÊýÄ¿"\r
-"('-1' means defaults for selected variant)" === "-1±íʾȱʡ"\r
-\r
-"Type In Your Name" === "Je Naam, Sufferd!"\r
-"&Play against a chess engine or match two engines" === "ÈË»ú¶ÔÞÄ»òµçÄÔ¶ÔÞÄ(&P)"\r
-"&Use an Internet Chess Server" === "µÇÂ¼ÍøÉϹú¼ÊÏóÆå·þÎñÆ÷(&U)"\r
-\r
-winboard.c\r
-\r
-"&File" === "Îļþ(&F)"\r
-"&Mode" === "ģʽ(&M)"\r
-"&Action" === "ÐÐΪ(&A)"\r
-"&Step" === "×Å·¨(&S)"\r
-"&Options" === "Ñ¡Ïî(&O)"\r
-"&Help" === "°ïÖú(&H)"\r
-"&View" === "Íâ¹Û(&V)"\r
-"E&ngine" === "ÒýÇæ(&N)"\r
-"Font name too long:" === "×ÖÌåÃû³ÆÌ«³¤"\r
-"Font point size missing:" === "ûÓÐ×ÖÌå´óС"\r
-"Can't parse color name %s" === "ÎÞ·¨Ê¶±ðÑÕÉ«Ãû³Æ %s"\r
-"Unrecognized board size value" === "ÎÞ·¨Ê¶±ðµÄÆåÅÌ´óС"\r
-"Unrecognized argument" === "ÎÞ·¨Ê¶±ðµÄ²ÎÊý"\r
-"No value provided for argument" === "ûÓÐÖµÌṩ¸ø²ÎÊý"\r
-"Incomplete \\ escape in value for" === "²»ÍêÕû»òÖжϵÄÖµ"\r
-"Failed to open indirection file" === "ÎÞ·¨´ò¿ª¼ä½ÓÎļþ"\r
-"Unrecognized boolean argument value" === "ÎÞ·¨Ê¶±ðµÄÂß¼­Öµ"\r
-"Unrecognized argument" === "ÎÞ·¨Ê¶±ðµÄ²ÎÊý"\r
-"Too many colors" === "ÑÕɫ̫¶à"\r
-"&Minimize\tCtrl+F4" === "×îС»¯(&M)\tCtrl+F4"\r
-"White: %s" === "°×·½ %s"\r
-"We only care about the height here" === "ÕâÀïÎÒÃÇÖ»¹Ø×¢¸ß¶È"\r
-"Cannot build game list" === "ÎÞ·¨½¨Á¢Æå¾ÖÁбí"\r
-"Load Game from File" === "´ÓÎļþÔØÈëÆå¾Ö"\r
-"Load Position from File" === "´ÓÎļþÔØÈë¾ÖÃæ"\r
-"Save Game to File" === "±£´æÆå¾Öµ½Îļþ"\r
-"Save Position to File" === "±£´æ¾ÖÃæµ½Îļþ"\r
-"%s does not support analysis" === "%s ²»Ö§³Ö·ÖÎö¹¦ÄÜ"\r
-"Analyze Game from File" === "´ÓÎļþ·ÖÎöÆå¾Ö"\r
-"Unable to activate help" === "ÎÞ·¨´ò¿ª°ïÖú"\r
-"Send to chess program:" === "·¢Ë͸øµÚÒ»¸ö¹ú¼ÊÏóÆå³ÌÐò"\r
-"Send to second chess program:" === "·¢Ë͸øµÚ¶þ¸ö¹ú¼ÊÏóÆå³ÌÐò"\r
-"Direct Command" === "Ö±½ÓÊäÈëÃüÁî"\r
-"Error loading sound %s" === "ÔØÈëÉùÒô %s ´íÎó"\r
-"Error playing sound %s" === "²¥·ÅÉùÒô %s ´íÎó"\r
-"File open failed" === "ÎÞ·¨´ò¿ªÎļþ"\r
-"Internal error in file dialog box" === "Îļþ¶Ô»°¿òµÄÄÚ²¿´íÎó"\r
-"Option Error" === "Ñ¡Ïî´íÎó"\r
-"Choose an option, or cancel to exit" === "Ñ¡ÔñÒ»¸öÑ¡Ï»òÕß°´È¡Ïû°´Å¥Í˳ö"\r
-"Unable to activate help" === "ÎÞ·¨´ò¿ª°ïÖú"\r
-"Displayed move is not current" === "ÏÔʾµÄ×Å·¨²»Êǵ±Ç°×Å·¨"\r
-"Could not parse move" === "ÎÞ·¨½âÎö×Å·¨"\r
-"%s:\nError code %d" === "%s:\n´íÎóºÅ %d"\r
-"Error" === "´íÎó"\r
-"Fatal Error" === "ÑÏÖØ´íÎó"\r
-"Exiting" === "Í˳ö"\r
-"%s:\nError code %d" === "%s:\n´íÎóºÅ %d"\r
-"ÌáʾÐÅÏ¢" === "ÌáʾÐÅÏ¢"\r
-"Note" === "×¢ÊÍ"\r
-"Error writing to chess program" === "·¢ËÍÐÅÏ¢¸ø¹ú¼ÊÏóÆå³ÌÐòʱ³ö´í"\r
-"User" === "Óû§"\r
-"Unknown" === "δ֪"\r
-"White" === "°×·½"\r
-"Black" === "ºÚ·½"\r
-"Save Game to File" === "±£´æÆå¾Öµ½Îļþ"\r
-"Not implemented" === "¹¦ÄÜÉÐδʵÏÖ"\r
-"Shout Text" === "ºð½ÐÎÄ×Ö"\r
-"SShout/CShout" === "´óÉùºð½ÐÎÄ×Ö"\r
-"Channel 1 Text" === "ƵµÀIÎÄ×Ö"\r
-"Channel Text" === "ƵµÀÎÄ×Ö"\r
-"Kibitz Text" === "²å×ìÎÄ×Ö"\r
-"Tell Text" === "Ëß˵ÎÄ×Ö"\r
-"Challenge Text" === "ÌôÕ½ÎÄ×Ö"\r
-"Request Text" === "ÑûÇëÎÄ×Ö"\r
-"Seek Text" === "ËÑË÷ÎÄ×Ö"\r
-"Normal Text" === "Õý³£ÎÄ×Ö"\r
-"None" === "ÎÞ"\r
-"Pawn" === "±ø"\r
-"Knight" === "Âí"\r
-"Bishop" === "Ïó"\r
-"Rook" === "³µ"\r
-"Queen" === "ºó"\r
-"Information" === ""\r
-\r
-wclipbrd.c\r
-\r
-"Unable to convert position to FEN." === "ÎÞ·¨°Ñ¾ÖÃæ×ª»¯ÎªFEN"\r
-"Unable to copy FEN to clipboard." === "ÎÞ·¨¸´ÖÆFENµ½¼ôÌù°å"\r
-"Cannot create temporary file name." === "ÎÞ·¨½¨Á¢ÁÙʱÎļþ"\r
-"Cannot open temporary file." === "ÎÞ·¨´ò¿ªÁÙʱÎļþ"\r
-"Cannot write to temporary file." === "ÎÞ·¨Ð´ÈëÁÙʱÎļþ"\r
-"Cannot reopen temporary file." === "ÎÞ·¨Ôٴδò¿ªÁÙʱÎļþ"\r
-"Cannot determine size of file." === "ÎÞ·¨È·¶¨Îļþ´óС"\r
-"Cannot determine size of file." === "ÎÞ·¨È·¶¨Îļþ´óС"\r
-"Cannot allocate clipboard buffer." === "ÎÞ·¨·ÖÅä¼ôÌù°åµÄ»º³åÇø"\r
-"Cannot read from temporary file." === "ÎÞ·¨¶Á³öÁÙʱÎļþ"\r
-"Error reading from temporary file." === "¶Á³öÁÙʱÎļþʱ³ö´í"\r
-"Cannot copy text to clipboard" === "ÎÞ·¨¸´ÖÆÎÄ×Öµ½¼ôÌù°å"\r
-"Unable to allocate memory for clipboard." === "ÎÞ·¨Îª¼ôÌù°å·ÖÅä´æ´¢¿Õ¼ä"\r
-"Unable to lock clipboard memory." === "ÎÞ·¨Ëø¶¨¼ôÌù°åµÄ´æ´¢¿Õ¼ä"\r
-"Cannot unlock clipboard memory." === "ÎÞ·¨Îª¼ôÌù°åµÄ´æ´¢¿Õ¼ä½âËø"\r
-"Cannot open clipboard." === "ÎÞ·¨´ò¿ª¼ôÌù°å"\r
-"Cannot empty clipboard." === "ÎÞ·¨Çå¿Õ¼ôÌù°å"\r
-"Cannot copy text to clipboard." === "ÎÞ·¨¸´ÖÆÎÄ×Öµ½¼ôÌù°å"\r
-"Cannot close clipboard." === "ÎÞ·¨¹Ø±Õ¼ôÌù°å"\r
-"Unable to paste FEN from clipboard." === "ÎÞ·¨´Ó¼ôÌù°åÕ³ÌùFEN"\r
-"Unable to create temporary file." === "ÎÞ·¨½¨Á¢ÁÙʱÎļþ"\r
-"Error writing to temporary file." === "дÈëÁÙʱÎļþʱ³ö´í"\r
-"Unable to open clipboard." === "ÎÞ·¨´ò¿ª¼ôÌù°å"\r
-"No text in clipboard." === "¼ôÌù°åÖÐûÓÐÎÄ×Ö"\r
-"Unable to lock clipboard memory." === "ÎÞ·¨Ëø¶¨¼ôÌù°åµÄ´æ´¢¿Õ¼ä"\r
-"Unable to allocate memory for text string." === "ÎÞ·¨ÎªÎÄ×Ö·ÖÅä´æ´¢¿Õ¼ä"\r
-"Unable to unlock clipboard memory." === "ÎÞ·¨¶Ô¼ôÌù°åµÄ´æ´¢¿Õ¼ä½âËø"\r
-"Unable to close clipboard." === "ÎÞ·¨¹Ø±Õ¼ôÌù°å"\r
-\r
-woptions.c\r
-\r
-"Variant %s not supported by %s" === "±äÌå %s ²»±» %s ËùÖ§³Ö"\r
-"Warning: second engine (%s) does not support this!" === "¾¯¸æ: µÚ¶þ¸öÒýÇæ(%s) ²»Ö§³Ö´Ë!"\r
-"Invalid ICS Alarm Time" === "ICS·Ç·¨"\r
-"Invalid max time per move" === "×î´ó²½Ê±·Ç·¨"\r
-"Invalid time-odds factor" === "ʱ¼ä±¶Êý·Ç·¨"\r
-"Choose Folder" === "Ñ¡ÔñĿ¼"\r
-"Choose Book" === "Ñ¡ÔñÓÿâ"\r
-"Choose Polyglot Directory" === "Ñ¡Ôñ Polyglot Ä¿Â¼"\r
-"Choose EGTB Directory:" === "Ñ¡Ôñ EGTB Ä¿Â¼"\r
-"Polyglot was not found in the specified folder!" === "Ñ¡¶¨µÄĿ¼δ·¢ÏÖ Polyglot "\r
-\r
-wgamelist.c\r
-\r
-"No game selected" === "ûÓÐÑ¡ÖÐÆå¾Ö"\r
-"Can't go forward any further" === "ÎÞ·¨ÔÙǰ½øÁË"\r
-"Can't back up any further" === "ÎÞ·¨ÔÙºóÍËÁË"\r
-"No game list" === "ûÓÐÆå¾ÖÁбí"\r
-"Game List" === "Æå¾ÖÁбí"\r
-"Game list not loaded or empty" === ""\r
-"%s - %d/%d games" === "%s - %d/%d Æå¾Ö"\r
-\r
-"Game list not loaded or empty" === "Æå¾ÖÁбíδ¼ÓÔØ»òÕßΪ¿Õ"\r
-\r
-wedittags.c\r
-\r
-"Edit Tags" === "±à¼­±êÇ©"\r
-"Tags" === "±êÇ©"\r
-"Error replacing tags." === "Ìæ»»±êÇ©´íÎó"\r
-\r
-wsettings.c\r
-\r
-"%s Engine Settings (%s)" === "%s ÒýÇæÉèÖà(%s)"\r
-"OK" === "È·¶¨"\r
-"Cancel" === "È¡Ïû"\r
-\r
-backend.c\r
-\r
-"bad timeControl option %s" === "·Ç·¨µÄ\"timeControl\"(ʱ¼ä¿ØÖÆ)Ñ¡Ïî %s"\r
-"bad searchTime option %s" === "·Ç·¨µÄ\"searchTime\"(ËÑË÷ʱ¼ä)Ñ¡Ïî %s"\r
-"first" === "µÚÒ»¸ö"\r
-"second" === "µÚ¶þ¸ö"\r
-"protocol version %d not supported" === "ЭÒé°æ±¾ %d ²»±»Ö§³Ö"\r
-"Variant %s supported only in ICS mode" === "±äÌå %s Ö»ÔÚICSģʽÏÂÖ§³Ö"\r
-"Unknown variant name %s" === "δ֪µÄ±äÌåÃû %s"\r
-"Starting chess program" === "Æô¶¯¹ú¼ÊÏóÆå³ÌÐò"\r
-"Could not open comm port %s" === "ÎÞ·¨´ò¿ªÍ¨Ñ¶¶Ë¿Ú %s"\r
-"Could not connect to host %s, port %s" === "ÎÞ·¨Á¬½ÓÖ÷»ú %s ¶Ë¿Ú %s"\r
-"Unknown initialMode %s" === "δ֪µÄ\"initialMode\"(³õʼģʽ)Ñ¡Ïî %s"\r
-"Can't have a match with no chess programs" === "ûÓÐÏóÆå³ÌÐòʱÎÞ·¨½øÐбÈÈü"\r
-"Bad game file" === "Æå¾ÖÎļþ´íÎó"\r
-"Bad position file" === "¾ÖÃæÎļþ´íÎó"\r
-"AnalyzeFile mode requires a game file" === "\"AnalyzeFile\"(·ÖÎöÎļþ)ģʽ±ØÐëÖ¸¶¨Ò»¸öÆå¾ÖÎļþ"\r
-"Analysis mode requires a chess engine" === "\"Analysis\"(·ÖÎö)ģʽ±ØÐëÆô¶¯¹ú¼ÊÏóÆåÒýÇæ"\r
-"Analysis mode does not work with ICS mode" === "\"Analysis\"(·ÖÎö)ģʽÎÞ·¨ÔÚICSģʽϹ¤×÷"\r
-"MachineWhite mode requires a chess engine" === "\"MachineWhite\"(µçÄÔÖ´°×)ģʽ±ØÐëÆô¶¯¹ú¼ÊÏóÆåÒýÇæ"\r
-"MachineWhite mode does not work with ICS mode" === "\"MachineWhite\"(µçÄÔÖ´°×)ģʽÎÞ·¨ÔÚICSģʽÏÂÔËÐÐ"\r
-"MachineBlack mode requires a chess engine" === "\"MachineBlack\"(µçÄÔÖ´ºÚ)ģʽ±ØÐëÆô¶¯¹ú¼ÊÏóÆåÒýÇæ"\r
-"MachineBlack mode does not work with ICS mode" === "\"MachineBlack\"(µçÄÔÖ´ºÚ)ģʽÎÞ·¨ÔÚICSģʽÏÂÔËÐÐ"\r
-"TwoMachines mode does not work with ICS mode" === "\"TwoMachines\"(µçÄÔ¶ÔÞÄ)ģʽÎÞ·¨ÔÚICSģʽÏÂÔËÐÐ"\r
-"TwoMachines mode requires a chess engine" === "\"TwoMachines\"(·ÖÎö)ģʽ±ØÐëÆô¶¯¹ú¼ÊÏóÆåÒýÇæ"\r
-"Training mode requires a game file" === "\"Training\"(ѵÁ·)ģʽ±ØÐëÖ¸¶¨Ò»¸öÆå¾ÖÎļþ"\r
-"Error writing to ICS" === "·¢ËÍÐÅÏ¢¸øICSʱ³ö´í"\r
-"Error reading from keyboard" === "¶ÁÈ¡¼üÅÌʱ³ö´í"\r
-"Got end of file from keyboard" === "¶ÁÈ¡¼üÅÌʱÓöµ½Îļþβ"\r
-"Error writing to ICS" === "·¢ËÍÐÅÏ¢¸øICSʱ³ö´í"\r
-"Error writing to display" === "·¢ËÍÐÅÏ¢¸øÏÔʾÆ÷ʱ³ö´í"\r
-"Error gathering move list: two headers" === "¶ÁÈ¡×Å·¨Ê±³ö´í£¬³öÏÖÁ½¸ö¿ªÍ·"\r
-"Error gathering move list: nested" === "¶ÁÈ¡×Å·¨Ê±³ö´í£¬Ç¶Ì×´íÎó"\r
-"Connection closed by ICS" === "Á¬½Ó±»ICS¹Ø±Õ"\r
-"Error reading from ICS" === "¶ÁÈ¡ICSÐÅϢʱ³ö´í"\r
-"Failed to parse board string:\n\"%s\"" === "ÎÞ·¨½âÎöÆåÅÌ×Ö·û´®\n\"%s\""\r
-"Game too long; increase MAX_MOVES and recompile" === "Æå¾ÖÌ«³¤£¬ÐèÒªÔö¼Ó\"MAX_MOVES\"²¢ÖØÐ±àÒë"\r
-"Error gathering move list: extra board" === "¶ÁÈ¡×Å·¨Ê±³ö´í£¬³¬³öÆåÅÌ"\r
-"Illegal move \"%s\" from ICS" === "´ÓICS¶Áµ½²»ºÏÀí×Å·¨\"%s\""\r
-"Couldn't parse move \"%s\" from ICS" === "ÎÞ·¨½âÎö´ÓICS¶Áµ½µÄ×Å·¨\"%s\""\r
-"say Internal error; bad moveType %d (%d,%d-%d,%d)" === "say ÄÚ²¿´íÎ󣬷Ƿ¨µÄ\"moveType\"(×Å·¨ÀàÐÍ) %d (%d,%d-%d,%d)"\r
-"You are playing Black" === "ÄãÔÚÖ´ºÚ"\r
-"You are playing White" === "ÄãÔÚÖ´°×"\r
-"It is White's turn" === "ÂÖµ½°×·½×߯å"\r
-"It is Black's turn" === "ÂÖµ½ºÚ·½×߯å"\r
-"Displayed position is not current" === "ÏÔʾµÄ¾ÖÃæ²»Êǵ±Ç°¾ÖÃæ"\r
-"Illegal move" === "×Å·¨´íÎó"\r
-"End of game" === "Æå¾Ö½áÊø"\r
-"Incorrect move" === "×Å·¨´íÎó"\r
-"Illegal move \"%s\" from %s machine" === "´Ó%s»úÆ÷¶Áµ½²»ºÏÀí×Å·¨\"%s\""\r
-"Forfeit due to illegal move" === "Òò×ß²»ºÏÀí×Å·¨¶ø·¸¹æ"\r
-"%s does not support analysis" === "%s ²»Ö§³Ö·ÖÎö¹¦ÄÜ"\r
-"Illegal move \"%s\" (rejected by %s chess program)" === "²»ºÏÀí×Å·¨\"%s\" (%s¹ú¼ÊÏóÆå³ÌÐò¾Ü¾ø½ÓÊܸÃ×Å·¨)"\r
-"Failed to start %s chess program %s on %s: %s\n" === "ÎÞ·¨Æô¶¯%s¹ú¼ÊÏóÆå³ÌÐò %s(ÔÚÖ÷»ú %s ÉÏ)£¬%s\n"\r
-"Hint: %s" === "Ìáʾ %s"\r
-"White resigns" === "°×·½ÈÏÊä"\r
-"Black resigns" === "ºÚ·½ÈÏÊä"\r
-"White mates" === "°×·½×öɱ"\r
-"Black mates" === "ºÚ·½×öɱ"\r
-"Draw" === "ºÍÆå"\r
-"Draw agreed" === "ЭÉÌºÍÆå"\r
-"Machine accepts your draw offer" === "..."\r
-"Machine offers a draw\nSelect Action / Draw to agree" === "µçÄÔÌáºÍ\nÑ¡ÔñÊÇ·ñ½ÓÊÜÌáºÍ"\r
-"%s (only move)" === "%s (Ψһ×Å·¨)"\r
-"Ambiguous move in ICS output: \"%s\"" === "ICSÊä³ö²»Ã÷È·µÄ×Å·¨\"%s\""\r
-"Illegal move in ICS output: \"%s\"" === "ICSÊä³ö²»Ã÷È·µÄ×Å·¨\"%s\""\r
-"Gap in move list" === "×Å·¨¶Ï¿ª"\r
-"Game too long; increase MAX_MOVES and recompile" === "Æå¾ÖÌ«³¤£¬ÐèÒªÔö¼Ó\"MAX_MOVES\"²¢ÖØÐ±àÒë"\r
-"Variant %s not supported by %s" === "±äÌå %s ²»±» %s Ö§³Ö"\r
-"Startup failure on '%s'" === "ÎÞ·¨Æô¶¯'%s'"\r
-"Waiting for first chess program" === "µÈ´ýµÚÒ»¸ö¹ú¼ÊÏóÆå³ÌÐò"\r
-"Waiting for second chess program" === "µÈ´ýµÚ¶þ¸ö¹ú¼ÊÏóÆå³ÌÐò"\r
-"Match %s vs. %s: final score %d-%d-%d" === "±ÈÈü %s vs. %s: ×îÖձȷ֠%d-%d-%d"\r
-"Stalemate" === "±ÆºÍ"\r
-"Illegal move: %d.%s%s" === "²»ºÏÀí×Å·¨ %d.%s%s"\r
-"Ambiguous move: %d.%s%s" === "²»Ã÷È·µÄ×Å·¨ %d.%s%s"\r
-"Can't open \"%s\"" === "ÎÞ·¨´ò¿ª\"%s\""\r
-"Cannot build game list" === "ÎÞ·¨½¨Á¢Æå¾ÖÁбí"\r
-"No more games in this message" === "ÕâÌõÐÅÏ¢²»°üº¬¸ü¶àµÄÆå¾Ö"\r
-"No game has been loaded yet" === "ÉÐδÓÐÆå¾ÖÔØÈë"\r
-"Can't back up any further" === "ÎÞ·¨ÔÙºóÍËÁË"\r
-"Game number out of range" === "Æå¾ÖÊýÁ¿³¬³ö·¶Î§"\r
-"Can't seek on game file" === "ÎÞ·¨ËÑË÷Æå¾ÖÎļþ"\r
-"Game not found in file" === "ÎļþÖÐûÓÐÕÒµ½Æå¾Ö"\r
-"Bad FEN position in file" === "ÎļþÖеÄFEN¾ÖÃæ´íÎó"\r
-"No moves in game" ===  "Æå¾ÖÖÐûÓÐ×Å·¨"\r
-"No position has been loaded yet" === "ÉÐδÓоÖÃæÔØÈë"\r
-"Can't back up any further" === "ÎÞ·¨ÔÙºóÍËÁË"\r
-"Can't open \"%s\"" === "ÎÞ·¨´ò¿ª\"%s\""\r
-"Can't seek on position file" === "ÎÞ·¨ËÑË÷¾ÖÃæÎļþ"\r
-"Position not found in file" === "ÎļþÖÐûÓÐ×ŵ½¾ÖÃæ"\r
-"Bad FEN position in file" === "ÎļþÖеÄFEN¾ÖÃæ´íÎó"\r
-"Black to play" === "ÂÖµ½ºÚ·½×߯å"\r
-"White to play" === "ÂÖµ½°×·½×߯å"\r
-"Can't open \"%s\"" === "ÎÞ·¨´ò¿ª\"%s\""\r
-"You have edited the game history.\nUse Reload Same Game and make your move again." === "Æå¾ÖÒѾ­±à¼­¹ýÁË\nÖ´ÐÐ\"ÖØÐÂÔØÈëͬһÆå¾Ö\"Ö®ºó²ÅÄÜ×߯å"\r
-"You have entered too many moves.\nBack up to the correct position and try again." === "ÄãÊäÈëÁ˹ý¶àµÄ×Å·¨\nºóÍ˻ص½ÕýÈ·µÄ¾ÖÃæÔÙÊÔÒ»´Î"\r
-"Displayed position is not current.\nStep forward to the correct position and try again." === "ËùÏÔʾµÄ¾ÖÃæ²»Êǵ±Ç°¾ÖÃæ\nǰ½øµ½µ±Ç°¾ÖÃæÔÙÊÔÒ»´Î"\r
-"You have not made a move yet" === "Ò»²½ÆåҲû×ß¹ý"\r
-"The cmail message is not loaded.\nUse Reload CMail Message and make your move again." === "The cmail message is not loaded.\nUse Reload CMail Message and make your move again."\r
-"No unfinished games" === "No unfinished games"\r
-"You have already mailed a move.\nWait until a move arrives from your opponent.\nTo resend the same move, type\n\"cmail -remail -game %s\"\non the command line." === "You have already mailed a move.\nWait until a move arrives from your opponent.\nTo resend the same move, type\n\"cmail -remail -game %s\"\non the command line."\r
-"Failed to invoke cmail" === "Failed to invoke cmail"\r
-"Waiting for reply from opponent\n" === "Waiting for reply from opponent\n"\r
-"Still need to make move for game\n" === "Still need to make move for game\n"\r
-"Still need to make moves for both games\n" === "Still need to make moves for both games\n"\r
-"Still need to make moves for all %d games\n" === "Still need to make moves for all %d games\n"\r
-"Still need to make a move for game %s\n" === "Still need to make a move for game %s\n"\r
-"No unfinished games\n" === "No unfinished games\n"\r
-"Ready to send mail\n" === "Ready to send mail\n"\r
-"Still need to make moves for games %s\n" === "Still need to make moves for games %s\n"\r
-"Edit comment" === "±à¼­×¢ÊÍ"\r
-"Edit comment on %d.%s%s" === "±à¼­×¢ÊÍ %d.%s%s"\r
-"Starting analysis mode...\nIf this message stays up, your chess program does not support analysis." ===  "Æô¶¯·ÖÎöģʽ...\nÈç¹ûÕâÌõÐÅÏ¢Ò»Ö±Áô×Å£¬¾Í˵Ã÷ÄãµÄ¹ú¼ÊÏóÆå³ÌÐò²»Ö§³Ö·ÖÎö¡£"\r
-"It is not White's turn" === "ûÓÐÂÖµ½°×·½×߯å"\r
-"It is not Black's turn" === "ûÓÐÂÖµ½ºÚ·½×߯å"\r
-"Wait until your turn,\nor select Move Now" === "µÈ´ýÄã×߯å\n»òÕßÑ¡Ôñ\"Á¢¼´×߯å\""\r
-"Starting second chess program" === "Æô¶¯µÚ¶þ¸ö¹ú¼ÊÏóÆå³ÌÐò"\r
-"Training mode off" === "ѵÁ·Ä£Ê½ÒѹرÕ"\r
-"Training mode on" === "ѵÁ·Ä£Ê½ÒÑ´ò¿ª"\r
-"Already at end of game" === "Æå¾ÖÒѾ­½áÊø"\r
-"Warning: You are still playing a game" === "×¢Ò⣺ÄãÕýÔÚ½øÐÐÆå¾Ö"\r
-"Warning: You are still observing a game" === "×¢Ò⣺ÄãÕýÔÚÅÔ¹ÛÆå¾Ö"\r
-"Warning: You are still examining a game" === "×¢Ò⣺ÄãÕýÔÚÑо¿Æå¾Ö"\r
-"It is Black's turn" === "ÂÖµ½ºÚ·½×߯å"\r
-"It is White's turn" === "ÂÖµ½°×·½×߯å"\r
-"That square is occupied" === "¸ñ×ÓÒÑ·ÅÆå×Ó"\r
-"Draw agreed" === "ЭÉÌºÍÆå"\r
-"There is no pending offer on this move" === "¸Ã×Å·¨Ã»Óдý¶¨µÄÌáÒé"\r
-"Both players ran out of time" === "Ë«·½¶¼³¬Ê±ÁË"\r
-"Black wins on time" === "°×·½³¬Ê±Åиº"\r
-"Your opponent is not out of time" === "¶ÔÊÖûÓг¬Ê±"\r
-"Both players ran out of time" === "Ë«·½¶¼³¬Ê±ÁË"\r
-"White wins on time" === "ºÚ·½³¬Ê±Åиº"\r
-"Your opponent is not out of time" === "¶ÔÊÖûÓг¬Ê±"\r
-"Draw agreed" === "ЭÉÌºÍÆå"1,$g/=== ""/d\r
-"Black offers a draw" === "°×·½ÌáºÍ"\r
-"White offers a draw" === "ºÚ·½ÌáºÍ"\r
-"You must make your move before offering a draw" === "±ØÐë×ßÍêÆå²ÅÄÜÌáºÍ"\r
-"Draw agreed" === "ЭÉÌºÍÆå"\r
-"Game aborted" === "Æå¾ÖÖжÏ"\r
-"You are not examining a game" === "ûÓзÖÎöÆå¾Ö"\r
-"You can't revert while pausing" === "ÔÝͣʱ²»Äܸ´Ô­Æå¾Ö"\r
-"Wait until your turn,\nor select Move Now" === "µÈ´ý¶ÔÊÖ×߯å\n»òÕßÑ¡Ôñ\"Á¢¼´×ß×Ó\""\r
-"It is your turn" === "ÂÖµ½Äã×߯å"\r
-"Wait until your turn" === "µÈ´ý¶ÔÊÖ×߯å"\r
-"No hint available" === "ûÓпÉÓõÄÌáʾ"\r
-"Error writing to %s chess program" === "·¢ËÍÐÅÏ¢µ½%s¹ú¼ÊÏóÆå³ÌÐòʱ³ö´í"\r
-"Error: %s chess program (%s) exited unexpectedly" === "´íÎó£º%s¹ú¼ÊÏóÆå³ÌÐò(%s)ͻȻÍ˳öÁË"\r
-"Error reading from %s chess program (%s)" === "´Ó%s¹ú¼ÊÏóÆå³ÌÐò(%s)½ÓÊÕÐÅϢʱ³ö´í"\r
-"Analysis (%s)" === "·ÖÎö(%s)"\r
-"Comment" === "×¢ÊÍ"\r
-"Comment on %d.%s%s" === "×¢ÊÍ %d.%s%s"\r
-"Both flags fell" === "Ë«·½¶¼³¬Ê±ÁË"\r
-"White's flag fell" === "°×·½³¬Ê±"\r
-"Black wins on time" === "°×·½³¬Ê±Åиº"\r
-"Black's flag fell" === "ºÚ·½³¬Ê±"\r
-"White wins on time" === "ºÚ·½³¬Ê±Åиº"\r
-"Bad FEN position in clipboard" === "¼ôÌù°åµÄFEN¾ÖÃæ´íÎó"\r
-"No response from ICS" === "ICS Î´ÏìÓ¦"\r
-"You cannot do this while you are playing or observing" === "ÏÂÆå»òÅÔ¹Ûʱ²»ÄܽøÐд˲Ù×÷"\r
-"Click in holdings to choose piece" === "µã»÷Ñ¡ÔñÊֳֵįå×Ó"\r
-\r
-END-OF-GAME MESSAGES (should they be translated?)\r
-\r
-"Xboard adjudication: King destroyed" === "Xboard Åоö£ºÍõ±»ÏûÃð"\r
-"Xboard adjudication: Bare king" === "Xboard Åоö£º¹â½«"\r
-"Xboard adjudication: 3rd check" === "Xboard Åоö£º3´Î½«¾ü"\r
-"Xboard adjudication: Stalemate" === "Xboard Åоö£ºÀ§±Ð"\r
-"Xboard adjudication: Checkmate" === "Xboard Åоö£º½«ËÀ"\r
-"Xboard adjudication: Insufficient mating material" === "Xboard Åоö£º×ÓÁ¦²»×ãȡʤ"\r
-"Xboard adjudication: Trivial draw" === "Xboard Åоö£ºÒ»°ãºÍÆå"\r
-"XBoard adjudication: repetition draw" === "Xboard Åоö£ºÑ­»·ºÍÆå"\r
-"Xboard adjudication: perpetual checking" === "Xboard Åоö£º³¤½«"\r
-"Xboard adjudication: perpetual chasing" === "Xboard Åоö£º³¤×½"\r
-"%Xboard adjudication: perpetual chasing of" === "Xboard Åоö£º³¤×½"\r
-"Xboard adjudication: 50-move rule" === "Xboard Åоö£º50»ØºÏÅк͹æÔò"\r
-"Draw claim: 50-move rule" === "ºÍÆåÉùÃ÷£º50»ØºÏÅк͹æÔò"\r
-"Draw claim: 3-fold repetition" === "ºÍÆåÉùÃ÷£º3´ÎÑ­»·"\r
-"Draw claim: insufficient mating material" === "ºÍÆåÉùÃ÷£º×ÓÁ¦²»×ãȡʤ"\r
-"Xboard adjudication: long game" === "Xboard Åоö£º¶Ô¾Ö¹ý³¤"\r
-"Xboard: Forfeit due to invalid move: %s (%c%c%c%c) res=%d" === "Xboard£ºÎ´ÄÜʶ±ðµÄÆå²½Ö¸º %s (%c%c%c%c) res=%d"\r
-"Xboard: Forfeit due to illegal move: %s (%c%c%c%c)%c" === "Xboard£º·Ç·¨Æå²½Ö¸º %s (%c%c%c%c)%c"\r
-"Xboard adjudication" === "Xboard Åоö"\r
-"User adjudication" === "Óû§Åоö"\r
-"False win claim: '%s'" === "Ó®ÆåÉùÃ÷ʧ°Ü"\r
-"False draw claim: '%s'" === "ºÍÆåÉùÃ÷ʧ°Ü"\r
-"xboard exit" === "xboard Í˳ö"\r
-\r
-\r
diff --git a/winboard/language/chinese(trad).lng b/winboard/language/chinese(trad).lng
deleted file mode 100644 (file)
index 7ebb1e8..0000000
+++ /dev/null
@@ -1,785 +0,0 @@
-winboard.rc
-
-"      " === "Translation by Morning Yellow && Liuzy"
-
-MENUS
-
-"&New Game\tCtrl-N" === "¶}·s´Ñ§½(&N)\tCtrl-N"
-"New Sh&uffle Game..." === "¬~µP¹CÀ¸(&u)..."
-"New &Variant...\tAlt+Shift+V" === "·sÅܺØ(&V)...\tAlt+Shift+V"
-"&Load Game...\tCtrl-O" === "¸ü¤J´Ñ§½(&L)...\tCtrl-O"
-"Load &Next Game\tAlt+PgDn" === "¸ü¤J¤U¤@´Ñ§½(&N)\tAlt+PgDn"
-"Load &Previous Game\tAlt+PgUp" === "¸ü¤J¤W¤@´Ñ§½(&P)\tAlt+PgUp"
-"&Reload Same Game" === "­«·s¸ü¤J¦P¤@´Ñ§½(&R)"
-"&Save Game...\tCtrl-S" === "Àx¦s´Ñ§½(&S)...\tCtrl-S"
-"&Copy Game To Clipboard\tCtrl+C" === "½Æ»s´Ñ§½¨ì°Å¶Kï(&C)\tCtrl+C"
-"&Paste Game From Clipboard\tCtrl+V" === "¶K¤W´Ñ§½¦Û°Å¶Kï(&P)\tCtrl+V"
-"Copy Game List to Clipboard" === "½Æ»s¹CÀ¸¦Cªí¨ì°Å¶Kï"
-"L&oad Position...\tCtrl+Shift+O" === "¸ü¤J§½­±(&O)...\tCtrl+Shift+O"
-"Load N&ext Position\tAlt+Shift+PgDn" === "¸ü¤J¤U¤@§½­±(&E)\tAlt+Shift+PgDn"
-"Load Pre&vious Position\tAlt+Shift+PgUp" === "¸ü¤J¤W¤@§½­±(&V)\tAlt+Shift+PgUp"
-"Reload Sa&me Position" === "­«·s¸ü¤J¦P¤@§½­±(&M)"
-"S&ave Position...\tCtrl+Shift+S" === "Àx¦s§½­±(&A)...\tCtrl+Shift+S"
-"Save as &Diagram..." === "Àx¦s¹Ïªí...(&D)"
-"C&opy Position To Clipboard\tCtrl+Shift+C" === "½Æ»s§½­±¨ì°Å¶Kï(&Y)\tCtrl+Shift+C"
-"P&aste Position From Clipboard\tCtrl+Shift+V" === "±q°Å¶Kï¶K¤W§½­±(&T)\tCtrl+Shift+V"
-"E&xit" === "Â÷¶}(&X)"
-"&Quit" === "Â÷¶}(&Q)"
-"&Edit Game\tCtrl+E" === "½s¿è´Ñ§½(&E)\tCtrl+E"
-"E&dit Position\tCtrl+Shift+E" === "½s¿è§½­±(&d)\tCtrl+Shift+E"
-
-"&Tags" === "½s¿è¼ÐÅÒ(&T)"
-"&Comments" === "½s¿èµù¸Ñ(&C)..."
-"&Game List Tags..." === "¹CÀ¸¦Cªí..."
-
-"Machine &White\tCtrl+W" === "¹q¸£°õ¬õ(&W)\tCtrl+W"
-"Machine &Black\tCtrl+B" === "¹q¸£°õ¶Â(&B)\tCtrl+B"
-"Two &Machines\tCtrl+T" === "¹q¸£¹ï«Ù(&M)\tCtrl+T"
-"Machine Both" === "¹q¸£°õ¬õ©M¶Â"
-"&Machine Match" === "¹q¸£¤ñÁÉ(&M)"
-"&Analysis Mode\tCtrl+A" === "¤ÀªR¼Ò¦¡(&A)\tCtrl+A"
-"Analyze &File\tCtrl+F" === "¤ÀªRÀÉ®×(&F)\tCtrl+F"
-"&ICS Client" === "&ICS«È¤áºÝ"
-"Edit &Game\tCtrl+E" === "½s¿è´Ñ§½(&G)\tCtrl+E"
-"&Edit Position\tShift+Ctrl+E" === "½s¿è§½­±(&E)\tShift+Ctrl+E"
-"Trai&ning" === "°V½m(&N)"
-"Engine &Output\tAlt+Shift+O" === "Åã¥Ü¤ÞÀº¿é¥X\tAlt+Shift+O"
-"Evaluation &Graph\tAlt+Shift+E" === "Åã¥Üµû»ù¹Ï\tAlt+Shift+E"
-"Game &List\tAlt+Shift+G" === "Åã¥Ü´Ñ§½¦Cªí(&L)\tAlt+Shift+G"
-"Move &History\tAlt+Shift+H" === "Åã¥Ü¾ú¥vµÛªk\tAlt+Shift+H"
-"Open &New Chat Window" === "¥´¶}²á¤Ñµøµ¡"
-"Edit Ta&gs..." === "½s¿è¼ÐÅÒ(&T)"
-"Edit Co&mment..." === "½s¿èµù¸Ñ(&C)..."
-"Enter &Username..." === "¿é¤J¥Î¤á¦WºÙ(&U)"
-"&Pause\tPause" === "¼È°±(&P)\tPause"
-
-"&Accept\tF3" === "±µ¨ü(&A)\tF3"
-"D&ecline\tF4" === "©Úµ´(&C)\tF4"
-"Re&match\tF12" === "­«ÁÉ(&M)\tF12"
-"Call &Flag\tF5" === "¶W®É§P­t(&F)\tF5"
-"&Draw\tF6" === "´£©M(&D)\tF6"
-"Ad&journ\tF7" === "«Ê½L(&J)\tF7"
-"A&bort\tF8" === "¤¤¤î(&B)\tF8"
-"&Resign\tF9" === "»{¿é(&R)\tF9"
-"Stop &Observing\tF10" === "°±¤îÆ[´Ñ(&O)\tF10"
-"Stop E&xamining\tF11" === "°±¤î¬ã¨s(&X)\tF11"
-"&Upload to Examine" === "¤W¶ÇÀˬd(&U)"
-"Adjudicate to &White" === "µô¨M¬õĹ (&W)"
-"Adjudicate to &Black" === "µô¨M¶ÂĹ (&B)"
-"Adjudicate &Draw" === "´£½Ð¥òµô(&D)"
-
-"Type In &Move...\tAlt+I" === "¿é¤JµÛªk(&Y)...\tAlt+I"
-"&Backward\tAlt+Left" === "¤U¤@µÛ(&B)\tAlt+Left"
-"&Forward\tAlt+Right" === "¤W¤@µÛ(&F)\tAlt+Right"
-"Back to &Start\tAlt+Home" === "°_©l§½­±(&S)\tAlt+Home"
-"For&ward to End\tAlt+End" === "³Ì«á§½­±(&E)\tAlt+End"
-"&Revert\tHome" === "«ì´_(&V)"
-"&Annotate" === "µù¸Ñ(&A)"
-"&Truncate Game\tEnd" === "ºIÂ_«á­±ªºµÛªk(&T)"
-"&Move Now\tCtrl+M" === "¥ß§Y¨«´Ñ(&M)\tCtrl+M"
-"&Retract Move\tCtrl+X" === "®¬´Ñ(&R)\tCtrl+X"
-
-"Flip &View\tF2" === "½Âà´Ñ½L(&V)\tF2"
-"&Swap Clocks" === "¥æ´«ÄÁªí(&C)"
-"&Mute all Sounds" === "©Ò¦³Án­µÀR­µ(&M)"
-"&General..." === "¤@¯ë¿ï¶µ(&G)..."
-"&Board..." === "´Ñ½L¿ï¶µ(&B)..."
-"Ad&judications...\tAlt+Shift+J" === "§P¨M(&j)...\tAlt+Shift+J"
-"Common &Engine...\tAlt+Shift+U" === "³q¥Î¤ÞÀº³]©w(&E)...\tAlt+Shift+U"
-"Engine #&1 Settings..." === "¤ÞÀº #1 ³]©w"
-"Engine #&2 Settings..." === "¤ÞÀº #2 ³]©w"
-"&ICS..." === "&ICS¿ï¶µ..."
-"&Fonts..." === "¦rÅé¿ï¶µ(&F)..."
-"Soun&ds..." === "Án­µ¿ï¶µ(&D)..."
-"G&ame List..." === "¹CÀ¸¦Cªí..."
-"Comm&unications..." === "³q°T³]©w(&U)..."
-"&Load Game...\tAlt+Shift+L" === "¸ü¤J´Ñ§½¿ï¶µ(&L)...\tAlt+Shift+L"
-"&Save Game...\tAlt+Shift+S" === "Àx¦s´Ñ§½¿ï¶µ(&S)...\tAlt+Shift+S"
-"&Time Control...\tAlt+Shift+T" === "®É¶¡³]©w(&T)...\tAlt+Shift+T"
-"Save Settings &Now" === "¥ß§YÀx¦s³]©w(&N)"
-"Save Settings on E&xit" === "Â÷¶}®ÉÀx¦s³]©w(&X)"
-
-"Help &Contents\tF1" === "»¡©ú¥DÃD(&C)\tF1"
-"Help &Index" === "»¡©ú¯Á¤Þ(&I)"
-"How to &Use Help" === "¦p¦ó¨Ï¥Î»¡©ú(&U)"
-"&Hint..." === "´£¥Ü(&H)..."
-"&Book..." === "¶}§½®w(&B)..."
-"&About WinBoard" === "Ãö©óWinBoard(&A)"
-
-"White" === "¬õ¤è"
-"Promote" === "¤ÉÅÜ"
-"Pawn" === "§L"
-"Knight" === "°¨"
-"Bishop" === "¶H"
-"Rook" === "¨®"
-"Queen" === "¦Z"
-"King" === "¤ý"
-"Archbishop" === "°ê®v"
-"Chancellor" === "®_¬Û"
-"Elephant" === "¶H"
-"Cannon" === "¬¶"
-"Empty Square" === "²MªÅ®æ¤l"
-"Black" === "¶Â¤è"
-"Demote" === "­°¯Å"
-"Clear Board    " === "²MªÅ´Ñ½L"
-"Drop" === "¨ú®ø"
-
-"Cop&y and Paste" === "½Æ»s¨Ã¶K¤W(&Y)"
-"&Copy" === "½Æ»s(&C)"
-"&Paste" === "¶K¤W(&P)"
-
-"&Undo" === "´_­ì(&U)"
-"Cu&t" === "°Å¤U(&T)"
-"&Copy" === "½Æ»s(&C)"
-"&Paste" === "¶K¤W(&P)"
-"Select &All" === "¥þ¿ï(&A)"
-
-DIALOGS
-
-"&Animate Moving         Ctrl+Shift+A" === "°Êµe¨«´Ñ(&A)     Ctrl+Shift+A"
-"&Auto Comment" === "¦Û°Êµù¸Ñ(&A)"
-"&Average" === "54"
-"&Big" === "87"
-"&Bishop" === "¶H(&B)"
-"&Black first move" === "¶Â¤è¥ý¨«(&B)"
-"&Blindfold" === "ª¼´Ñ(&B)"
-"&Bold" === "¥[²Ê(&B)"
-"&Cancel" === "¨ú®ø(&C)"
-"&Choose Background Color..." === "¿ï¾Ü­I´ºÃC¦â(&C)..."
-"&Choose Color..." === "¿ï¾ÜÃC¦â(&C)..."
-"&Clear" === "²M°£(&C)"
-"&Close" === "Ãö³¬(&C)"
-"&Colossal" === "116"
-"&Default ICS Colors" === "¹w³]ICSÃC¦â(&D)"
-"&Dinky" === "29"
-"&Directories:" === "¸ê®Æ§¨(&D)"
-"&Edit" === "½s¿è(&E)"
-"&Edit" === "½s¿è(&E)"
-"&Get Move List" === "¨ú±oµÛªk¦Cªí(&G)"
-"&Giant" === "108"
-"&Help" === "»¡©ú(&H)"
-"Highlight Dra&gging" === "©ì¦²¿ô¥Ø´£¥Ü(&H)"
-"&Huge" === "95"
-"&Index number:" === "§Ç¸¹(&I)"
-"&Italic" === "±×Åé(&I)"
-"&King" === "¤ý(&K)"
-"&Large" === "80"
-"&Load" === "¸ü¤J(&L)"
-"&Local Line Editing" === "¥»¦aºÝ½s¿è(&L)"
-"&Middling" === "49"
-"&Next" === "¤U¤@§½(&N)"
-"&Petite" === "33"
-"&Popup Exit Message" === "Â÷¶}®É´£¥Ü(&P)"
-"&Port:" === "³s±µ°ð(&P)"
-"&Premove" === "¹w¥ý¨«´Ñ(&P)"
-"&Prev" === "¤W¤@§½(&P)"
-"&Queen" === "¦Z(&Q)"
-"&Quiet Play" === "¸¨¤lµLÁn(&Q)"
-"&Revert to Defaults" === "«ì´_¹w³]­È(&R)"
-"&Rook" === "¨®(&R)"
-"&Show Thinking" === "Åã¥Ü«ä¦Ò²Ó¸`(&S)"
-"&Small" === "40"
-"&Sound alarm at" === "Án­µÄµ§i©ó(&S)"
-"&Stop Bits:" === "°±¤î¦ì¤¸(&S)"
-"&Strikeout" === "§R°£½u(&S)"
-"&Tiny" === "21"
-"&Underline" === "©³½u(&U)"
-"&White first move" === "¬õ¤è¥ý¨«(&W)"
-"&Additional options" === "ªþ¥[¿ï¶µ(&A)"
-"Always &Queen            Ctrl+Shift+Q" === "Á`¬O¤ÉÅܬ°¬Ó¦Z(&Q) Ctrl+Shift+Q"
-"Always on &Top" === "Á`¦b³Ì«e­±(&T)"
-"Animate &Dragging" === "°Êµe©ì¦²(&D)"
-"Auto &Flag                   Ctrl+Shift+F" === "¦Û°Ê¶W®É§P­t(&F) Ctrl+Shift+F"
-"Auto &Observe" === "¦Û°ÊÆ[´Ñ(&O)"
-"Auto &Raise Board" === "¦Û°Ê§ïÅܴѽL¤j¤p(&R)"
-"Auto Flip &View" === "¦Û°Ê½Âà´Ñ½L(&V)"
-"Black Pieces" === "¶Â¤l"
-"Browse..." === "ÂsÄý..."
-"Built-in sound:" === "¤º«ØÁn­µ"
-"Bul&ky" === "72"
-"Cancel" === "¨ú®ø"
-"Chessboard for Windows" === "Windows¤Uªº¹q¤l°ê»Ú¶H´Ñ´Ñ½L"
-"Choose..." === "¿ï¾Ü..."
-"Clocks" === "®ÉÄÁ"
-"Comments" === "µù¸Ñ"
-"Conventional chess clock" === "®É¬q¨î"
-"Coordinates" === "§¤¼Ð"
-"Copyright 1991 Digital Equipment Corporation" === "Copyright 1991 Digital Equipment Corporation"
-"Dark Squares" === "¶Â®æ"
-"Data &Bits:" === "¸ê®Æ¦ì¤¸(&B)"
-"Data &Rate:" === "¶Ç¿é²v(&R)"
-"Default beep" === "¹w³]Án­µ"
-"Defaults" === "¹w³]"
-"Do &not colorize messages" === "¤£­n¹ï°T®§µÛ¦â(&N)"
-"Dri&ves:" === "ºÏºÐ¾÷(&V)"
-"Enter" === "¿é¤J"
-"Event:" === "¨Æ¥ó"
-"F&low:" === "±±¨î(&L)"
-"File &Name:" === "ÀɮצW(&N)"
-"Help" === "»¡©ú"
-"Highlight Last &Move" === "¼Ð°O¤W¤@µÛªk(&M)"
-"ICS Interaction" === "ICS¤¬°Ê"
-"Incremental clock" === "¥[®É¨î"
-"Inde&x number:" === "§Ç¸¹(&X)"
-"Just &view or edit game files" === "¥uÆ[¬Ý©Î½s¿è´Ñ§½(&v)"
-"K&night" === "°¨(&N)"
-"Light Squares" === "¥Õ®æ"
-"List Files of &Type:" === "ÀÉ®×Ãþ«¬(&T)"
-"Load games with automatic stepping" === "¸ü¤J´Ñ§½¦Û°Ê¨«´Ñ"
-"Medi&ocre" === "45"
-"Medi&um" === "64"
-"Messages" === "°T®§"
-"Mode&rate" === "58"
-"Monochrome" === "¶Â¥Õ"
-"Net&work..." === "ºôµ¸(&W)..."
-"No sound" === "µLÁn"
-"OK" === "½T©w"
-"Old" === "®榡"
-"P&arity:" === "®ÕÅç(&A)"
-"PGN" === "PGN®æ¦¡"
-"Periodic &Updates" === "©w´Á§ó·s(&U)"
-"Play" === "¼½©ñ"
-"Ponder &Next Move  Ctrl+Shift+P" === "¦P¨B«ä¦Ò(&N)  Ctrl+Shift+P"
-"Popup Move &Errors" === "´£¥Ü¿ù»~µÛªk(&E)"
-"Premove Highlights" === "¹w¥ý¨«´Ñ¼Ð°O"
-"Promote pawn to:" === "§L¤ÉÅܬ°"
-"Prompt for filename" === "´£¥ÜÀɮצW"
-"Save As: " === "Àx¦sÃþ«¬"
-"Save games automatically" === "¦Û°ÊÀx¦s´Ñ§½"
-"Show &Coordinates" === "Åã¥Ü§¤¼Ð(&C)"
-"Show Butt&on Bar" === "Åã¥Ü«ö¶sÄæ(&O)"
-"Sl&im" === "37"
-"Sorry Charlie" === "¹ï¤£°_¡A»Õ¤U"
-"Square Highlights" === "®æ¤l¼Ð°O"
-"T&eeny" === "25"
-"Tags" === "¼ÐÅÒ"
-"Test &Legality            Ctrl+Shift+L" === "ÀˬdµÛªk¦X²z©Ê(&L) Cl+Sh+L"
-"Tita&nic" === "129"
-"To file:" === "¨ìÀÉ®×"
-"Use an Internet Chess Server" === "µn¿ýºô¤W°ê»Ú¶H´ÑªA°È¾¹"
-"WAV file:" === "WAVÀÉ®×"
-"White Pieces" === "¬õ¤l"
-"WinBoard 0.0.0" === "WinBoard 0.0.0"
-"galactic" === "galactic"
-"minutes initially," === "°_©l®É¶¡¦³"
-"minutes" === "¤ÀÄÁ¤º§¹¦¨"
-"moves in" === "¨B"
-"plus" === "¤ÀÄÁ"
-"seconds per move" === "¨C¨«¤@¨B¥["
-"seconds per move" === "¬í¨«¤@¨B"
-"seconds" === "¬í"
-"Save As:" === "Àx¦sÃþ«¬"
-"What would you like to do?" === "¥´ºâ¦p¦ó¨Ï¥Î¡H"
-"Interaction Colors" === "¤¬°Ê²´¦â"
-"Premove" === "¹w¥ý¨«´Ñ"
-"Alarm" === "´£¥Ü"
-"Colors" === "ÃC¦â"
-"Size" === "¤j¤p"
-"Current Board Size" === "·í«e´Ñ½L¤j¤p"
-"All Board Sizes" === "©Ò¦³´Ñ½L¤j¤p"
-
-"Number of moves:" === "¨B"
-"Within number of minutes:" === "¤ÀÄÁ¤º§¹¦¨"
-"Initial number of minutes:" === "°_©l®É¶¡¦³"
-"Plus number of seconds per move:" === "¤ÀÄÁ¨C¨«¤@¨B¥["
-
-"Ponder Next Move" === "¦P¨B«ä¦Ò(&N)"
-"Enable and Show Thinking (recommended)" === "Åã¥Ü«ä¦Ò²Ó¸`"
-"Periodic Updates (for Analysis Mode)" === "©w´Á§ó·s(¤ÀªR¼Ò¦¡)"
-
-"Game List Options" === "´Ñ§½¦Cªí¿ï¶µ"
-"PGN &Tags:" === "PGN¼ÐÅÒ(&T)"
-"Default" === "¹w³]"
-
-"Sounds" === "Án­µ"
-"&Event:" === "¨Æ¥ó(&E)"
-"&No sound" === "µLÁn(&N)"
-"&Default beep" === "¹w³]Án­µ(&D)"
-"&Built-in sound:" === "¤º«ØÁn­µ(&B)"
-"&WAV file:" === "&WAVÀÉ®×"
-"B&rowse..." === "ÂsÄý...(&B)"
-"&Play" === "¼½©ñ(&P)"
-"&Defaults" === "¹w³](&D)"
-"I C S Interaction" === "I C S ¥æ¤¬Àô¹Ò"
-
-"About WinBoard" === "Ãö©óWinBoard"
-"Time Control" === "®É¶¡³]©w"
-"Load Game Options" === "¸ü¤J´Ñ§½¿ï¶µ"
-"Save Game Options" === "Àx¦s´Ñ§½¿ï¶µ"
-"Open" === "¥´¶}"
-"Communication Port Settings" === "³q°T³s±µ°ð³]©w"
-"Edit Comment" === "½s¿èµù¸Ñ"
-"Promotion" === "¤ÉÅÜ"
-"Game List" === "´Ñ§½¦Cªí"
-"Edit Tags" === "½s¿è¼ÐÅÒ"
-"ICS Interaction" === "ICS¥æ¤¬Àô¹Ò"
-"Dialog" === "¹ï¸Ü"
-"Error" === "¿ù»~"
-"ICS Interaction Colors" === "ICS¥æ¤¬Àô¹ÒÃC¦â"
-"Question" === "´£¥Ü"
-"WinBoard Startup" === "WinBoard±Ò°Ê"
-"Type in a move" === "¿é¤JµÛªk"
-"General Options" === "¤@¯ë¿ï¶µ"
-"ICS Options" === "ICS³]©w"
-"Board Options" === "´Ñ½L¿ï¶µ"
-"Fonts" === "¦rÅé"
-
-NEW
-
-"&Up" === "¦V¤W"
-"&Down" === "¦V¤U"
-"Filter" === "¹LÂo¾¹"
-"All White" === "¥þ¬õ¦â"
-"Flip Black" === "¤ÏÂà¶Â¦â"
-"Specify Chess &Engines:" === "«ü©w¤ÞÀº(&E)"
-"Specify Chess &Server:" === "«ü©wªA°È¾¹(&S)"
-"New Shuffle Game..." === "¬~µP¹CÀ¸..."
-"New Variant...\tAlt+Shift+V" === "·sÅܺØ...\tAlt+Shift+V"
-"Copy Game List to Clipboard" === "½Æ»s¹CÀ¸¦Cªí¨ì°Å¶Kï"
-"Save &Diagram..." === "Àx¦s¹Ïªí...(&D)"
-"Machine Both" === "¤ÞÀº°õ¬õ©M¶Â"
-"Machine Matc&h" === "¤ÞÀº¤ñÁÉ(&h)"
-"Show Engine &Output\tAlt+Shift+O" === "Åã¥Ü¤ÞÀº¿é¥X\tAlt+Shift+O"
-"Show Evaluation Graph\tAlt+Shift+E" === "Åã¥Üµû»ù¹Ï\tAlt+Shift+E"
-"Show Move History\tAlt+Shift+H" === "Åã¥ÜµÛªk\tAlt+Shift+H"
-"Open Chat Window" === "¥´¶}²á¤Ñµøµ¡"
-"Enter &Username..." === "¿é¤J¥Î¤á¦WºÙ(&U)"
-"&Upload to Examine" === "¤W¶ÇÀˬd(&U)"
-"Adjudicate to &White" === "µô¨M¬õĹ (&W)"
-"Adjudicate to &Black" === "µô¨M¶ÂĹ (&B)"
-"Adjudicate &Draw" === "´£½Ð¥òµô(&D)"
-"&Annotate" === "µù¸Ñ(&A)"
-"&Truncate Game" === "ºIÂ_´ÑÃÐ(&T)"
-"Swap &Clocks" === "¥æ´«ÄÁªí(&C)"
-"&Mute all Sounds" === "©Ò¦³Án­µÀR­µ(&M)"
-"Adjudications...\tAlt+Shift+J" === "§P¨M...\tAlt+Shift+J"
-"Common Engine...\tAlt+Shift+U" === "³q¥Î¤ÞÀº³]©w...\tAlt+Shift+U"
-"Engine #1 Settings..." === "¤ÞÀº #1 ³]©w"
-"Engine #2 Settings..." === "¤ÞÀº #2 ³]©w"
-"Game List..." === "¹CÀ¸¦Cªí..."
-"Promote" === "¤ÉÅÜ"
-"Archbishop" === "°ê®v"
-"Chancellor" === "®_¬Û"
-"Elephant" === "¶H"
-"Cannon" === "¬¶"
-"Demote" === "­°¯Å"
-"Lance" === "­»¨®"
-"Silver" === "»È±N"
-"Gold" === "ª÷±N"
-
-"Fixed time per move" === "©T©w¨B®É"
-"Maximum seconds per move:" === "³Ì¤j¨B®É(¬í)"
-"Time-Odds Factors:" === "®É¶¡­¿¼Æ"
-"Engine #1:" === "¤ÞÀº #1"
-"Engine #2:" === "¤ÞÀº #2"
-"Save out of book info in PGN" === "¦bPGN¤¤Àx¦s®w°T®§"
-"&Send Engine Think" === "µo°e¤ÞÀº«ä¦Ò(&S)"
-"E&xtended PGN Info    Ctrl+Shift+X" === "ÂX®iPGN°T®§ Ctrl+Shift+X"
-"&Hide Thinking          Ctrl+Shift+H" === "ÁôÂäÞÀº«ä¦Ò Ctrl+Shift+H"
-"&Info in Move History   Ctrl+Shift+I" === "µÛªk¦Cªí¤¤Åã¥Ü°T®§ Cl+Sh+I"
-"Highlight with Arro&w" === "¥Î½bÀY¬ð¥X²¾°Ê"
-"Displa&y Logos" === "Åã¥Ü¤ÞÀº¼Ð»x(&y)"
-
-"&Auto Kibitz" === "¦Û°Ê\"kibitz\"(&A)"
-"See&k Graph" === "¥i¿ï¹ï¤â¹Ïªí(&k)"
-"auto-&Refresh" === "¦Û°Ê¨ê·s¹Ïªí(&R)"
-"Bckgnd Obser&ve" === "­I´ºÆ[¹î(&v)"
-"&Dual Board" === "Âù´Ñ½L(&D)"
-"One-Click &Move" === "³æÀ»²¾°Ê(&M)"
-"Background..." === "­I´º..."
-"&Defaults..." === "¹w³](&D)"
-"Startup &Chat Boxes:" === "±Ò°Ê²á¤Ñ®Ø(&C)"
-"General" === "¤@¯ë"
-
-"      YES" === "¬O"
-"       NO" === "§_"
-"Move History, Engine Output" === "¾ú¥v¨«ªk,¤ÞÀº¿é¥X"
-"New Shuffle Game" === "¬~µP¹CÀ¸"
-"&Start Position Number:" === "±Ò°Ê¦ì¸m¸¹½X(&S)"
-"Random" === "ÀH¾÷"
-
-"Move History" === "¾ú¥v¨«ªk"
-"Evaluation Graph" === "¼f§½¹Ï"
-"Engine output" === "¤ÞÀº¿é¥X"
-"Engine #1" === "¤ÞÀº #1"
-"NPS" === "NPS"
-"Engine #2" === "¤ÞÀº #2"
-"Chat Window" === "²á¤Ñµøµ¡"
-"Chat partner:" === "²á¤Ñ¹Ù¦ñ"
-"Clear" === "²MªÅ"
-"Send" === "µo°e"
-
-"Adjudications" === "§P¨M"
-"Hide Thinking when Playing against Human" === "»P¤H¹ï«Ù®ÉÁôÂëä¦Ò²Ó¸`"
-"Adjudications in non-ICS games" === "§P¨M«DICSªº¹CÀ¸"
-"Adjudicate draw after:" === "´XµÛ«á§P©M"
-"moves" === "µÛªk"
-"Win/loss adjudication threshold:" === "¿é/ŧP¨MªùÂe"
-"centipawns" === "¦Ê¤À¤§¤@§L"
-"&Verify Engine Claims" === "ÅçÃÒ¤ÞÀºÁn©ú(&V)"
-"Detect &Mates" === "ÀË´ú±N±þ(&M)"
-"Draw if &Insufficient Material" === "¤l¤O¤£¨¬®É§P©M(&I)"
-"Adjudicate &Trivial Draws" === "²©ö©M´Ñ§P¨M(&T)"
-"Apply" === "®M¥Î"
-"-move rule" === "¨«ªk³W«h"
-"-fold repeats" === "­«½Æ"
-"Engine #1 Score is Absolute" === "¤ÞÀº #1 ¬Oµ´¹ï¤À¼Æ"
-"Engine #2 Score is Absolute" === "¤ÞÀº #2 ¬Oµ´¹ï¤À¼Æ"
-
-"Common Engine Settings" === "³q¥Î¤ÞÀº³]©w"
-"Polyglot Directory:" === " Polyglot ¸ê®Æ§¨"
-"Hash Size (MB):" === "Âø´êªí¤j¤p(MB)"
-"EGTB Path:" === "EGTB ¸ô®|"
-"EGTB Size (MB):" === "EGTB ¤j¤p(MB)"
-"Use Book:" === "¨Ï¥Î®w"
-"Max nr of CPUs:" === "³Ì¤jCPU¼Æ"
-"First has Own Book" === "¤ÞÀº1¦³¦Û¥Î®w"
-"Second has Own Book" === "¤ÞÀº2¦³¦Û¥Î®w"
-"Book Depth:" === "®wµÛªk²`«×"
-"Book Variation:" === "®wÅܨÒ"
-"Default Match Games:" === "¹w³]¤ñÁɹ什¼Æ"
-
-"Variants" === "ÅܺØ"
-"Variant" === "ÅܺØ"
-"Board size:" === "´Ñ½L¤j¤p"
-"ranks" === "¦æ"
-"files" === "¦C"
-"Holdings with room for:" === "¥i¾Ö¦³ªº´Ñ¤lÃþ«¬¼Æ¥Ø"
-"('-1' means defaults for selected variant)" === "-1ªí¥Ü¹w³]"
-
-"Type In Your Name" === "Je Naam, Sufferd!" 
-"&Play against a chess engine or match two engines" === "¤H¾÷¹ï«Ù©Î¹q¸£¹ï«Ù(&P)"
-"&Use an Internet Chess Server" === "µn¿ýºô¤W°ê»Ú¶H´ÑªA°È¾¹(&U)"
-
-winboard.c
-
-"&File" === "ÀÉ®×(&F)"
-"&Mode" === "¼Ò¦¡(&M)"
-"&Action" === "¦æ¬°(&A)"
-"&Step" === "µÛªk(&S)"
-"&Options" === "¿ï¶µ(&O)"
-"&Help" === "»¡©ú(&H)"
-"Font name too long:" === "¦rÅé¦WºÙ¤Óªø"
-"Font point size missing:" === "¨S¦³¦rÅé¤j¤p"
-"Can't parse color name %s" === "µLªkÃѧOÃC¦â¦WºÙ %s"
-"Unrecognized board size value" === "µLªkÃѧOªº´Ñ½L¤j¤p"
-"Unrecognized argument" === "µLªkÃѧOªº°Ñ¼Æ"
-"No value provided for argument" === "¨S¦³­È´£¨Ñµ¹°Ñ¼Æ"
-"Incomplete \\ escape in value for" === "¤£§¹¾ã©Î¤¤Â_ªº­È"
-"Failed to open indirection file" === "µLªk¥´¶}¶¡±µÀÉ®×"
-"Unrecognized boolean argument value" === "µLªkÃѧOªºÅÞ¿è°Ñ¼Æ­È"
-"Unrecognized argument" === "µLªkÃѧOªº°Ñ¼Æ"
-"Too many colors" === "ÃC¦â¤Ó¦h"
-"&Minimize\tCtrl+F4" === "³Ì¤p¤Æ(&M)\tCtrl+F4"
-"White: %s" === "¬õ¤è %s"
-"We only care about the height here" === "³o¸Ì§Ú­Ì¥uÃöª`°ª«×"
-"Cannot build game list" === "µLªk«Ø¥ß´Ñ§½¦Cªí"
-"Load Game from File" === "±qÀɮ׸ü¤J´Ñ§½"
-"Load Position from File" === "±qÀɮ׸ü¤J½L­±"
-"Save Game to File" === "Àx¦s´Ñ§½¨ìÀÉ®×"
-"Save Position to File" === "Àx¦s½L­±¨ìÀÉ®×"
-"%s does not support analysis" === "%s ¤£¤ä«ù¤ÀªR¥\¯à"
-"Analyze Game from File" === "±qÀɮפÀªR´Ñ§½"
-"Unable to activate help" === "µLªk¥´¶}»¡©ú"
-"Send to chess program:" === "µo°eµ¹²Ä¤@­Ó°ê»Ú¶H´Ñµ{¦¡"
-"Send to second chess program:" === "µo°eµ¹²Ä¤G­Ó°ê»Ú¶H´Ñµ{¦¡"
-"Direct Command" === "ª½±µ¿é¤J©R¥O"
-"Error loading sound %s" === "¸ü¤JÁn­µ %s ¿ù»~"
-"Error playing sound %s" === "¼½©ñÁn­µ %s ¿ù»~"
-"File open failed" === "µLªk¥´¶}ÀÉ®×"
-"Internal error in file dialog box" === "ÀÉ®×¹ï¸Ü®Øªº¤º³¡¿ù»~"
-"Option Error" === "¿ï¶µ¿ù»~"
-"Choose an option, or cancel to exit" === "¿ï¾Ü¤@­Ó¿ï¶µ¡A©ÎªÌ«ö¨ú®ø«ö¶sÂ÷¶}"
-"Unable to activate help" === "µLªk¥´¶}»¡©ú"
-"Displayed move is not current" === "Åã¥ÜªºµÛªk¤£¬O·í«eµÛªk"
-"Could not parse move" === "µLªk¸ÑªRµÛªk"
-"%s:\nError code %d" === "%s:\n¿ù»~¸¹ %d"
-"Error" === "¿ù»~"
-"Fatal Error" === "ÄY­«¿ù»~"
-"Exiting" === "Â÷¶}"
-"%s:\nError code %d" === "%s:\n¿ù»~¸¹ %d"
-"´£¥Ü°T®§" === "´£¥Ü°T®§"
-"Note" === "µù¸Ñ"
-"Error writing to chess program" === "µo°e°T®§µ¹°ê»Ú¶H´Ñµ{¦¡®É¥X¿ù"
-"User" === "¥Î¤á"
-"Unknown" === "¥¼ª¾"
-"White" === "¬õ¤è"
-"Black" === "¶Â¤è"
-"Save Game to File" === "Àx¦s´Ñ§½¨ìÀÉ®×"
-"Not implemented" === "¥\¯à©|¥¼¹ê§@"
-"Shout Text" === "§q¥s¤å¦r"
-"SShout/CShout" === "¤jÁn§q¥s¤å¦r"
-"Channel 1 Text" === "ÀW¹DI¤å¦r"
-"Channel Text" === "ÀW¹D¤å¦r"
-"Kibitz Text" === "´¡¼L¤å¦r"
-"Tell Text" === "¶D»¡¤å¦r"
-"Challenge Text" === "¬D¾Ô¤å¦r"
-"Request Text" === "ÁܽФå¦r"
-"Seek Text" === "·j´M¤å¦r"
-"Normal Text" === "¥¿±`¤å¦r"
-"None" === "µL"
-"Pawn" === "§L"
-"Knight" === "°¨"
-"Bishop" === "¶H"
-"Rook" === "¨®"
-"Queen" === "¦Z"
-"Information" === "¸ê°T"
-
-wclipbrd.c
-
-"Unable to convert position to FEN." === "µLªk§â½L­±Âà¤Æ¬°FEN"
-"Unable to copy FEN to clipboard." === "µLªk½Æ»sFEN¨ì°Å¶Kï"
-"Cannot create temporary file name." === "µLªk«Ø¥ßÁ{®ÉÀÉ®×"
-"Cannot open temporary file." === "µLªk¥´¶}Á{®ÉÀÉ®×"
-"Cannot write to temporary file." === "µLªk¼g¤JÁ{®ÉÀÉ®×"
-"Cannot reopen temporary file." === "µLªk¦A¦¸¥´¶}Á{®ÉÀÉ®×"
-"Cannot determine size of file." === "µLªk½T©wÀɮפj¤p"
-"Cannot determine size of file." === "µLªk½T©wÀɮפj¤p"
-"Cannot allocate clipboard buffer." === "µLªk¤À°t°Å¶K諸½w½Ä°Ï"
-"Cannot read from temporary file." === "µLªkŪ¥XÁ{®ÉÀÉ®×"
-"Error reading from temporary file." === "Ū¥XÁ{®ÉÀɮ׮ɥX¿ù"
-"Cannot copy text to clipboard" === "µLªk½Æ»s¤å¦r¨ì°Å¶Kï"
-"Unable to allocate memory for clipboard." === "µLªk¬°°Å¶Kï¤À°tÀx¦sªÅ¶¡"
-"Unable to lock clipboard memory." === "µLªkÂê©w°Å¶K諸Àx¦sªÅ¶¡"
-"Cannot unlock clipboard memory." === "µLªk¬°°Å¶K諸Àx¦sªÅ¶¡¸ÑÂê"
-"Cannot open clipboard." === "µLªk¥´¶}°Å¶Kï"
-"Cannot empty clipboard." === "µLªk²MªÅ°Å¶Kï"
-"Cannot copy text to clipboard." === "µLªk½Æ»s¤å¦r¨ì°Å¶Kï"
-"Cannot close clipboard." === "µLªkÃö³¬°Å¶Kï"
-"Unable to paste FEN from clipboard." === "µLªk±q°Å¶Kï¶K¤WFEN"
-"Unable to create temporary file." === "µLªk«Ø¥ßÁ{®ÉÀÉ®×"
-"Error writing to temporary file." === "¼g¤JÁ{®ÉÀɮ׮ɥX¿ù"
-"Unable to open clipboard." === "µLªk¥´¶}°Å¶Kï"
-"No text in clipboard." === "°Å¶K襤¨S¦³¤å¦r"
-"Unable to lock clipboard memory." === "µLªkÂê©w°Å¶K諸Àx¦sªÅ¶¡"
-"Unable to allocate memory for text string." === "µLªk¬°¤å¦r¤À°tÀx¦sªÅ¶¡"
-"Unable to unlock clipboard memory." === "µLªk¹ï°Å¶K諸Àx¦sªÅ¶¡¸ÑÂê"
-"Unable to close clipboard." === "µLªkÃö³¬°Å¶Kï"
-
-woptions.c
-
-"Variant %s not supported by %s" === "ÅÜÅé %s ¤£³Q %s ©Ò¤ä«ù"
-"Warning: second engine (%s) does not support this!" === "ĵ§i: ²Ä¤G­Ó¤ÞÀº(%s) ¤£¤ä«ù¦¹!"
-"Invalid ICS Alarm Time" === "ICS«Dªk"
-"Invalid max time per move" === "¤£¦Xªkªº³Ì¤j¨B®É"
-"Invalid time-odds factor" === "¤£¦Xªkªº®É¶¡­¿¼Æ"
-"Choose Folder" === "¿ï¾Ü¸ê®Æ§¨"
-"Choose Book" === "¿ï¾Ü¥Î®w"
-"Choose Polyglot Directory" === "¿ï¾Ü Polyglot ¸ê®Æ§¨"
-"Choose EGTB Directory:" === "¿ï¾Ü EGTB ¸ê®Æ§¨"
-"Polyglot was not found in the specified folder!" === "¿ï©wªº¸ê®Æ§¨¥¼µo²{ Polyglot "
-
-wgamelist.c
-
-"No game selected" === "¨S¦³¿ï¤¤´Ñ§½"
-"Can't go forward any further" === "µLªk¦A«e¶i¤F"
-"Can't back up any further" === "µLªk¦A«á°h¤F"
-"No game list" === "¨S¦³´Ñ§½¦Cªí"
-"Game List" === "´Ñ§½¦Cªí"
-"Game list not loaded or empty" === "´Ñ§½¦Cªí¥¼¸ü¤J©ÎªÅ¥Õ"
-"%s - %d/%d games" === "%s - %d/%d ´Ñ§½"
-
-"Game list not loaded or empty" === "´Ñ§½¦Cªí¥¼¸ü¤J©ÎªÅ¥Õ"
-
-wedittags.c
-
-"Edit Tags" === "½s¿è¼ÐÅÒ"
-"Tags" === "¼ÐÅÒ"
-"Error replacing tags." === "´À´«¼ÐÅÒ¿ù»~"
-
-wsettings.c
-
-"%s Engine Settings (%s)" === "%s ¤ÞÀº³]©w (%s)"
-"OK" === "½T©w"
-"Cancel" === "¨ú®ø"
-
-backend.c
-
-"bad timeControl option %s" === "«Dªkªº\"timeControl\"(®É¶¡±±¨î)¿ï¶µ %s"
-"bad searchTime option %s" === "«Dªkªº\"searchTime\"(·j´M®É¶¡)¿ï¶µ %s"
-"first" === "²Ä¤@­Ó"
-"second" === "²Ä¤G­Ó"
-"protocol version %d not supported" === "³q°T¨ó©wª©¥» %d ¤£³Q¤ä«ù"
-"Variant %s supported only in ICS mode" === "ÅÜÅé %s ¥u¦bICS¼Ò¦¡¤U¤ä«ù"
-"Unknown variant name %s" === "¥¼ª¾ªºÅÜÅé¦W %s"
-"Starting chess program" === "±Ò°Ê°ê»Ú¶H´Ñµ{¦¡"
-"Could not open comm port %s" === "µLªk¥´¶}³q°T³s±µ°ð %s"
-"Could not connect to host %s, port %s" === "µLªk³s±µ¥D¾÷ %s ³s±µ°ð %s"
-"Unknown initialMode %s" === "¥¼ª¾ªº\"initialMode\"(ªì©l¼Ò¦¡)¿ï¶µ %s"
-"Can't have a match with no chess programs" === "¨S¦³¶H´Ñµ{¦¡®ÉµLªk¶i¦æ¤ñÁÉ"
-"Bad game file" === "´Ñ§½Àɮ׿ù»~"
-"Bad position file" === "½L­±Àɮ׿ù»~"
-"AnalyzeFile mode requires a game file" === "\"AnalyzeFile\"(¤ÀªRÀÉ®×)¼Ò¦¡¥²¶·«ü©w¤@­Ó´Ñ§½ÀÉ®×"
-"Analysis mode requires a chess engine" === "\"Analysis\"(¤ÀªR)¼Ò¦¡¥²¶·±Ò°Ê°ê»Ú¶H´Ñ¤ÞÀº"
-"Analysis mode does not work with ICS mode" === "\"Analysis\"(¤ÀªR)¼Ò¦¡µLªk¦bICS¼Ò¦¡¤U¤u§@"
-"MachineWhite mode requires a chess engine" === "\"MachineWhite\"(¹q¸£°õ¬õ)¼Ò¦¡¥²¶·±Ò°Ê°ê»Ú¶H´Ñ¤ÞÀº"
-"MachineWhite mode does not work with ICS mode" === "\"MachineWhite\"(¹q¸£°õ¬õ)¼Ò¦¡µLªk¦bICS¼Ò¦¡¤U¹B¦æ"
-"MachineBlack mode requires a chess engine" === "\"MachineBlack\"(¹q¸£°õ¶Â)¼Ò¦¡¥²¶·±Ò°Ê°ê»Ú¶H´Ñ¤ÞÀº"
-"MachineBlack mode does not work with ICS mode" === "\"MachineBlack\"(¹q¸£°õ¶Â)¼Ò¦¡µLªk¦bICS¼Ò¦¡¤U¹B¦æ"
-"TwoMachines mode does not work with ICS mode" === "\"TwoMachines\"(¹q¸£¹ï«Ù)¼Ò¦¡µLªk¦bICS¼Ò¦¡¤U¹B¦æ"
-"TwoMachines mode requires a chess engine" === "\"TwoMachines\"(¤ÀªR)¼Ò¦¡¥²¶·±Ò°Ê°ê»Ú¶H´Ñ¤ÞÀº"
-"Training mode requires a game file" === "\"Training\"(°V½m)¼Ò¦¡¥²¶·«ü©w¤@­Ó´Ñ§½ÀÉ®×"
-"Error writing to ICS" === "µo°e°T®§µ¹ICS®É¥X¿ù"
-"Error reading from keyboard" === "Ū¨úÁä½L®É¥X¿ù"
-"Got end of file from keyboard" === "Ū¨úÁä½L®É¹J¨ìÀÉ®×§À"
-"Error writing to ICS" === "µo°e°T®§µ¹ICS®É¥X¿ù"
-"Error writing to display" === "µo°e°T®§µ¹Åã¥Ü¾¹®É¥X¿ù"
-"Error gathering move list: two headers" === "Ū¨úµÛªk®É¥X¿ù¡A¥X²{¨â­Ó¶}ÀY"
-"Error gathering move list: nested" === "Ū¨úµÛªk®É¥X¿ù¡A±_ª¬¿ù»~"
-"Connection closed by ICS" === "³s±µ³QICSÃö³¬"
-"Error reading from ICS" === "Ū¨úICS°T®§®É¥X¿ù"
-"Failed to parse board string:\n\"%s\"" === "µLªk¸ÑªR´Ñ½L¦r¦ê\n\"%s\""
-"Game too long; increase MAX_MOVES and recompile" === "´Ñ§½¤Óªø¡A»Ý­n¼W¥[\"MAX_MOVES\"¨Ã­«·s½sĶ"
-"Error gathering move list: extra board" === "Ū¨úµÛªk®É¥X¿ù¡A¶W¥X´Ñ½L"
-"Illegal move \"%s\" from ICS" === "±qICSŪ¨ì¤£¦XªkµÛªk\"%s\""
-"Couldn't parse move \"%s\" from ICS" === "µLªk¸ÑªR±qICSŪ¨ìªºµÛªk\"%s\""
-"say Internal error; bad moveType %d (%d,%d-%d,%d)" === "say ¤º³¡¿ù»~¡A«Dªkªº\"moveType\"(µÛªkÃþ«¬) %d (%d,%d-%d,%d)"
-"You are playing Black" === "§A¦b°õ¶Â"
-"You are playing White" === "§A¦b°õ¬õ"
-"It is White's turn" === "½ü¨ì¬õ¤è¨«´Ñ"
-"It is Black's turn" === "½ü¨ì¶Â¤è¨«´Ñ"
-"Displayed position is not current" === "Åã¥Üªº½L­±¤£¬O·í«e½L­±"
-"Illegal move" === "µÛªk¿ù»~"
-"End of game" === "´Ñ§½µ²§ô"
-"Incorrect move" === "µÛªk¿ù»~"
-"Illegal move \"%s\" from %s machine" === "±q%s¾÷¾¹Åª¨ì¤£¦XªkµÛªk\"%s\""
-"Forfeit due to illegal move" === "¦]¨«¤£¦X²zµÛªk¦Ó¥Ç³W"
-"%s does not support analysis" === "%s ¤£¤ä«ù¤ÀªR¥\¯à"
-"Illegal move \"%s\" (rejected by %s chess program)" === "¤£¦XªkµÛªk\"%s\" (%s°ê»Ú¶H´Ñµ{¦¡©Úµ´±µ¨ü¸ÓµÛªk)"
-"Failed to start %s chess program %s on %s: %s\n" === "µLªk±Ò°Ê%s°ê»Ú¶H´Ñµ{¦¡ %s(¦b¥D¾÷ %s ¤W)¡A%s\n"
-"Hint: %s" === "´£¥Ü %s"
-"White resigns" === "¬õ¤è»{¿é"
-"Black resigns" === "¶Â¤è»{¿é"
-"White mates" === "¬õ¤è°µ±þ"
-"Black mates" === "¶Â¤è°µ±þ"
-"Draw" === "©M´Ñ"
-"Draw agreed" === "¨ó°Ó©M´Ñ"
-"Machine accepts your draw offer" === "¹q¸£¦P·N©M´Ñ"
-"Machine offers a draw\nSelect Action / Draw to agree" === "¹q¸£´£©M\n¿ï¾Ü¬O§_±µ¨ü´£©M"
-"%s (only move)" === "%s (°ß¤@µÛªk)"
-"Ambiguous move in ICS output: \"%s\"" === "ICS¿é¥X¤£©ú½TªºµÛªk\"%s\""
-"Illegal move in ICS output: \"%s\"" === "ICS¿é¥X¤£©ú½TªºµÛªk\"%s\""
-"Gap in move list" === "µÛªkÂ_¶}"
-"Game too long; increase MAX_MOVES and recompile" === "´Ñ§½¤Óªø¡A»Ý­n¼W¥[\"MAX_MOVES\"¨Ã­«·s½sĶ"
-"Variant %s not supported by %s" === "ÅÜÅé %s ¤£³Q %s ¤ä«ù"
-"Startup failure on '%s'" === "µLªk±Ò°Ê'%s'"
-"Waiting for first chess program" === "µ¥«Ý²Ä¤@­Ó°ê»Ú¶H´Ñµ{¦¡"
-"Waiting for second chess program" === "µ¥«Ý²Ä¤G­Ó°ê»Ú¶H´Ñµ{¦¡"
-"Match %s vs. %s: final score %d-%d-%d" === "¤ñÁÉ %s vs. %s: ³Ì²×¤ñ¤À %d-%d-%d"
-"Stalemate" === "§xÀÅ"
-"Illegal move: %d.%s%s" === "¤£¦XªkµÛªk %d.%s%s"
-"Ambiguous move: %d.%s%s" === "¤£©ú½TªºµÛªk %d.%s%s"
-"Can't open \"%s\"" === "µLªk¥´¶}\"%s\""
-"Cannot build game list" === "µLªk«Ø¥ß´Ñ§½¦Cªí"
-"No more games in this message" === "³o±ø°T®§¤£¥]§t§ó¦hªº´Ñ§½"
-"No game has been loaded yet" === "©|¥¼¦³´Ñ§½¸ü¤J"
-"Can't back up any further" === "µLªk¦A«á°h¤F"
-"Game number out of range" === "´Ñ§½¼Æ¶q¶W¥X½d³ò"
-"Can't seek on game file" === "µLªk·j´M´Ñ§½ÀÉ®×"
-"Game not found in file" === "Àɮפ¤¨S¦³§ä¨ì´Ñ§½"
-"Bad FEN position in file" === "Àɮפ¤ªºFEN½L­±¿ù»~"
-"No moves in game" ===  "´Ñ§½¤¤¨S¦³µÛªk"
-"No position has been loaded yet" === "©|¥¼¦³½L­±¸ü¤J"
-"Can't back up any further" === "µLªk¦A«á°h¤F"
-"Can't open \"%s\"" === "µLªk¥´¶}\"%s\""
-"Can't seek on position file" === "µLªk·j´M½L­±ÀÉ®×"
-"Position not found in file" === "Àɮפ¤¨S¦³§ä¨ì½L­±"
-"Bad FEN position in file" === "Àɮפ¤ªºFEN½L­±¿ù»~"
-"Black to play" === "½ü¨ì¶Â¤è¨«´Ñ"
-"White to play" === "½ü¨ì¬õ¤è¨«´Ñ"
-"Can't open \"%s\"" === "µLªk¥´¶}\"%s\""
-"You have edited the game history.\nUse Reload Same Game and make your move again." === "´Ñ§½¤w¸g½s¿è¹L¤F\n°õ¦æ\"­«·s¸ü¤J¦P¤@´Ñ§½\"¤§«á¤~¯à¨«´Ñ"
-"You have entered too many moves.\nBack up to the correct position and try again." === "§A¿é¤J¤F¹L¦hªºµÛªk\n«á°h¦^¨ì¥¿½Tªº½L­±¦A¸Õ¤@¦¸"
-"Displayed position is not current.\nStep forward to the correct position and try again." === "©ÒÅã¥Üªº½L­±¤£¬O·í«e½L­±\n«e¶i¨ì·í«e½L­±¦A¸Õ¤@¦¸"
-"You have not made a move yet" === "§A©|¥¼¨«´Ñ"
-"The cmail message is not loaded.\nUse Reload CMail Message and make your move again." === "©|¥¼¸ü¤Jcmail°T®§.\n­«·s¸ü¤JCMail°T®§¨Ã­«·s¨«´Ñ."
-"No unfinished games" === "¤£¦s¦b¥¼§¹¦¨´Ñ§½"
-"You have already mailed a move.\nWait until a move arrives from your opponent.\nTo resend the same move, type\n\"cmail -remail -game %s\"\non the command line." === "§A¤w±H°e¥X¤@­ÓµÛªk\n½Ðµ¥µÛªk¶Ç°e¦Ü¹ï¤è\n­Y±ý­«·s±H°e¥»µÛªk, ¦b©R¥O¦C¿é¤J\n\"cmail -remail -game %s\"\n"
-"Failed to invoke cmail" === "©I¥scmail¥¢±Ñ"
-"Waiting for reply from opponent\n" === "µ¥«Ý¹ï¤â¦^À³\n"
-"Still need to make move for game\n" === "¥»´Ñ§½¤´»Ý¨«´Ñ\n"
-"Still need to make moves for both games\n" === "¨â´Ñ§½¬Ò¤´»Ý¨«´Ñ\n"
-"Still need to make moves for all %d games\n" === "©Ò¦³ %d ´Ñ§½¬Ò¤´»Ý¨«´Ñ\n"
-"Still need to make a move for game %s\n" === "´Ñ§½ %s ¤´»Ý¨«´Ñ\n"
-"No unfinished games\n" === "¤£¦s¦b¥¼§¹¦¨´Ñ§½\n"
-"Ready to send mail\n" === "·Ç³Æ°e«H´Nºü\n"
-"Still need to make moves for games %s\n" === "´Ñ§½ %s ¤´»Ý¨«´Ñ\n"
-"Edit comment" === "½s¿èµù¸Ñ"
-"Edit comment on %d.%s%s" === "½s¿èµù¸Ñ %d.%s%s"
-"Starting analysis mode...\nIf this message stays up, your chess program does not support analysis." ===  "±Ò°Ê¤ÀªR¼Ò¦¡...\n¦pªG³o±ø°T®§¤@ª½¯dµÛ¡A´N»¡©ú§Aªº°ê»Ú¶H´Ñµ{¦¡¤£¤ä«ù¤ÀªR¡C"
-"It is not White's turn" === "¨S¦³½ü¨ì¬õ¤è¨«´Ñ"
-"It is not Black's turn" === "¨S¦³½ü¨ì¶Â¤è¨«´Ñ"
-"Wait until your turn,\nor select Move Now" === "µ¥«Ý¦Ü½ü§A¨«´Ñ\n©ÎªÌ¿ï¾Ü\"¥ß§Y¨«´Ñ\""
-"Starting second chess program" === "±Ò°Ê²Ä¤G­Ó°ê»Ú¶H´Ñµ{¦¡"
-"Training mode off" === "°V½m¼Ò¦¡¤wÃö³¬"
-"Training mode on" === "°V½m¼Ò¦¡¤w¥´¶}"
-"Already at end of game" === "´Ñ§½¤w¸gµ²§ô"
-"Warning: You are still playing a game" === "ª`·N¡G§A¥¿¦b¶i¦æ´Ñ§½"
-"Warning: You are still observing a game" === "ª`·N¡G§A¥¿¦bÆ[´Ñ´Ñ§½"
-"Warning: You are still examining a game" === "ª`·N¡G§A¥¿¦b¬ã¨s´Ñ§½"
-"It is Black's turn" === "½ü¨ì¶Â¤è¨«´Ñ"
-"It is White's turn" === "½ü¨ì¬õ¤è¨«´Ñ"
-"That square is occupied" === "®æ¤l¤w¦³´Ñ¤l"
-"Draw agreed" === "¨ó°Ó©M´Ñ"
-"There is no pending offer on this move" === "¸ÓµÛªk¨S¦³«Ý©wªº´£Ä³"
-"Both players ran out of time" === "Âù¤è³£¶W®É¤F"
-"Black wins on time" === "¬õ¤è¶W®É§P­t"
-"Your opponent is not out of time" === "¹ï¤â¨S¦³¶W®É"
-"Both players ran out of time" === "Âù¤è³£¶W®É¤F"
-"White wins on time" === "¶Â¤è¶W®É§P­t"
-"Your opponent is not out of time" === "¹ï¤â¨S¦³¶W®É"
-"Draw agreed" === "¨ó°Ó©M´Ñ"1,$g/=== ""/d
-"Black offers a draw" === "¶Â¤è´£©M"
-"White offers a draw" === "¬õ¤è´£©M"
-"You must make your move before offering a draw" === "¥²¶·¨«§¹´Ñ¤~¯à´£©M"
-"Draw agreed" === "¨ó°Ó©M´Ñ"
-"Game aborted" === "´Ñ§½¤¤Â_"
-"You are not examining a game" === "¨S¦³¤ÀªR´Ñ§½"
-"You can't revert while pausing" === "¼È°±®É¤£¯à´_­ì´Ñ§½"
-"Wait until your turn,\nor select Move Now" === "µ¥«Ý¹ï¤â¨«´Ñ\n©ÎªÌ¿ï¾Ü\"¥ß§Y¨«¤l\""
-"It is your turn" === "½ü¨ì§A¨«´Ñ"
-"Wait until your turn" === "µ¥«Ý¹ï¤â¨«´Ñ"
-"No hint available" === "¨S¦³¥i¥Îªº´£¥Ü"
-"Error writing to %s chess program" === "µo°e°T®§¨ì%s°ê»Ú¶H´Ñµ{¦¡®É¥X¿ù"
-"Error: %s chess program (%s) exited unexpectedly" === "¿ù»~¡G%s°ê»Ú¶H´Ñµ{¦¡(%s)²§±`²×¤î"
-"Error reading from %s chess program (%s)" === "±q%s°ê»Ú¶H´Ñµ{¦¡(%s)±µ¦¬°T®§®É¥X¿ù"
-"Analysis (%s)" === "¤ÀªR(%s)"
-"Comment" === "µù¸Ñ"
-"Comment on %d.%s%s" === "µù¸Ñ %d.%s%s"
-"Both flags fell" === "Âù¤è³£¶W®É¤F"
-"White's flag fell" === "¬õ¤è¶W®É"
-"Black wins on time" === "¬õ¤è¶W®É§P­t"
-"Black's flag fell" === "¶Â¤è¶W®É"
-"White wins on time" === "¶Â¤è¶W®É§P­t"
-"Bad FEN position in clipboard" === "°Å¶K諸FEN½L­±¿ù»~"
-"No response from ICS" === "ICS ¥¼ÅTÀ³"
-"You cannot do this while you are playing or observing" === "¤U´Ñ©ÎÆ[´Ñ®É¤£¯à¶i¦æ¦¹¾Þ§@"
-"Click in holdings to choose piece" === "ÂIÀ»¿ï¾Ü¤â«ùªº´Ñ¤l"
-
-END-OF-GAME MESSAGES (should they be translated? You can translate it as "´Ñ§½µ²ªG°T®§")
-
-"Xboard adjudication: King destroyed" === "Xboard §P¨M¡G¤ý³Q®ø·À"
-"Xboard adjudication: Bare king" === "Xboard §P¨M¡G¥ú±N"
-"Xboard adjudication: 3rd check" === "Xboard §P¨M¡G3¦¸±N­x"
-"Xboard adjudication: Stalemate" === "Xboard §P¨M¡G§xÀÅ"
-"Xboard adjudication: Checkmate" === "Xboard §P¨M¡G±N¦º"
-"Xboard adjudication: Insufficient mating material" === "Xboard §P¨M¡G¤l¤O¤£¨¬¨ú³Ó"
-"Xboard adjudication: Trivial draw" === "Xboard §P¨M¡G¤@¯ë©M´Ñ"
-"XBoard adjudication: repetition draw" === "Xboard §P¨M¡G´`Àô©M´Ñ"
-"Xboard adjudication: perpetual checking" === "Xboard §P¨M¡Gªø±N"
-"Xboard adjudication: perpetual chasing" === "Xboard §P¨M¡Gªø®»"
-"%Xboard adjudication: perpetual chasing of" === "Xboard §P¨M¡Gªø®»"
-"Xboard adjudication: 50-move rule" === "Xboard §P¨M¡G50¦^¦X§P©M³W«h"
-"Draw claim: 50-move rule" === "©M´ÑÁn©ú¡G50¦^¦X§P©M³W«h"
-"Draw claim: 3-fold repetition" === "©M´ÑÁn©ú¡G3¦¸´`Àô"
-"Draw claim: insufficient mating material" === "©M´ÑÁn©ú¡G¤l¤O¤£¨¬¨ú³Ó"
-"Xboard adjudication: long game" === "Xboard §P¨M¡G¹ï§½¹Lªø"
-"Xboard: Forfeit due to invalid move: %s (%c%c%c%c) res=%d" === "Xboard¡G¥¼¯àÃѧOªº´Ñ¨B¥Ç³W %s (%c%c%c%c) res=%d"
-"Xboard: Forfeit due to illegal move: %s (%c%c%c%c)%c" === "Xboard¡G«Dªk´Ñ¨B¥Ç³W %s (%c%c%c%c)%c"
-"Xboard adjudication" === "Xboard §P¨M"
-"User adjudication" === "¥Î¤á§P¨M"
-"False win claim: '%s'" === "Ĺ´ÑÁn©ú¥¢±Ñ"
-"False draw claim: '%s'" === "©M´ÑÁn©ú¥¢±Ñ"
-"xboard exit" === "xboard Â÷¶}"
-
-
diff --git a/winboard/language/deutsch.lng b/winboard/language/deutsch.lng
deleted file mode 100644 (file)
index 808482e..0000000
+++ /dev/null
@@ -1,971 +0,0 @@
-## WinBoard 4.5.0 language file\r
-## German/Deutsch v1.0 beta 1\r
-## Translation by Oliver Uwira\r
-##\r
-## If you revise this, please insert your date, name and description.\r
-## Falls Sie diese Datei überarbeiten, tragen Sie bitte Ihren Namen, \r
-## das Datum und eine kurze Beschreibung hier ein.\r
-##\r
-##   07. November 2010 Oliver Uwira\r
-##     Ersterstellung\r
-\r
-## Anmerkungen für Übersetzer: (empfohlen auch für lang450.txt)\r
-## o Benutzen Sie ## Kommentare für erklärungsbedürftige Einträge.\r
-## o Beachten Sie, dass wortwörtliche Übersetzungen in der Zielsprache ungewöhnlich klingen können, z.B. "Königin" anstatt dem richtigen "Dame".\r
-## o Versuchen Sie, kurze Übersetzungen zu finden. Mehr Text führt nicht automatisch zu besserem Verständnis.\r
-## o Überprüfen Sie Ihre Übersetzung. Gibt sie die Bedeutung des Ursprungstext klar wieder?\r
-## o Testen Sie Ihre Übersetzung.\r
-## o Vergeben Sie Shortcuts (über das Zeichen &).\r
-\r
-"      " === "Übersetzung: Oliver Uwira"\r
-\r
-winboard.rc\r
-\r
-MENUS:\r
-\r
-"&New Game\tCtrl-N" === "&Neue Partie\tCtrl+N"\r
-"New Sh&uffle Game..." === "Neue Partie - Shuffleschach..."\r
-"New &Variant...\tAlt+Shift+V" === "Neue Partie - Variante...\tAlt+Umschalt+V"\r
-"&Load Game...\tCtrl-O" === "Partie &laden...\tCtrl+O"\r
-"Load &Next Game\tAlt+PgDn" === "Nächste Partie laden\tAlt+PgDn"\r
-"Load &Previous Game\tAlt+PgUp" === "Vorherige Partie laden\tAlt+PgUp"\r
-"&Reload Same Game" === "Partie erneut laden"\r
-"&Save Game...\tCtrl-S" === "Partie &speichern...\tCtrl+S"\r
-"&Copy Game To Clipboard\tCtrl+C" === "Partie &kopieren\tCtrl+C"\r
-"&Paste Game From Clipboard\tCtrl+V" === "Partie &einfügen\tCtrl+V"\r
-"Copy Game List to Clipboard" === "Partieliste kopieren"\r
-"L&oad Position...\tCtrl+Shift+O" === "Stellung laden...\tCtrl+Umschalt+O"\r
-"Load N&ext Position\tAlt+Shift+PgDn" === "Nächste Stellung laden\tAlt+Umschalt+PgDn"\r
-"Load Pre&vious Position\tAlt+Shift+PgUp" === "Vorherige Stellung laden\tAlt+Umschalt+PgUp"\r
-"Reload Sa&me Position" === "Stellung erneut laden"\r
-"S&ave Position...\tCtrl+Shift+S" === "Stellung speichern...\tCtrl+Umschalt+S"\r
-"Save as &Diagram..." === "Diagramm speichern..."\r
-"C&opy Position To Clipboard\tCtrl+Shift+C" === "Stellung kopieren\tAlt+Umschalt+C"\r
-"P&aste Position From Clipboard\tCtrl+Shift+V" === "Stellung einfügen\tAlt+Umschalt+V"\r
-"&Quit" === "Beenden"\r
-\r
-"Machine &White\tCtrl+W" === "Engine Weiß\tCtrl+W"\r
-"Machine &Black\tCtrl+B" === "Engine Schwarz\tCtrl+B"\r
-"&Two Machines\tCtrl+T" === "Zwei Engines\tCtrl+T"\r
-"Machine Both" === "Engine gegen sich selbst"\r
-"&Machine Match" === "Turnier"\r
-"&Analysis Mode\tCtrl+A" === "Analysemodus\tCtrl+A"\r
-"Analyze &File\tCtrl+F" === "Datei analysieren\tCtrl+F"\r
-"&ICS Client" === "Mit ICS verbinden"\r
-"&Edit Game\tCtrl+E" === "Partie bearbeiten\tCtrl+E"\r
-"E&dit Position\tCtrl+Shift+E" === "Stellung bearbeiten\tCtrl+Umschalt+E"\r
-"Trai&ning" === "Trai&ning"\r
-"Engine &Output\tAlt+Shift+O" === "Engineausgabe anzeigen\tAlt+Umschalt+O"\r
-"Evaluation &Graph\tAlt+Shift+E" === "Bewertungsgraph anzeigen\tAlt+Umschalt+E"\r
-"Game &List\tAlt+Shift+G" === "Partieliste anzeigen\tAlt+Umschalt+G"\r
-"Move &History\tAlt+Shift+H" === "Notation anzeigen\tAlt+Umschalt+H"\r
-"Open &New Chat Window" === "Chatfenster öffnen"\r
-"Edit Ta&gs..." === "&Tags bearbeiten"\r
-"Edit Co&mment..." === "&Kommentar bearbeiten"\r
-"&Tags" === "&Tags"\r
-"&Comments" === "&Kommentar"\r
-"Enter &Username..." === "Ben&utzernamen eingeben"\r
-"&Pause\tPause" === "&Pause\tPausa"\r
-\r
-"&Accept\tF3" === "&Annehmen\tF3"\r
-"D&ecline\tF4" === "Abl&ehnen\tF4"\r
-"Re&match\tF12" === "Rücks&piel\tF12"\r
-"Call &Flag\tF5" === "Zeit &reklamieren\tF5"\r
-"&Draw\tF6" === "&Remis\tF6"\r
-"Ad&journ\tF7" === "Vertagen\tF7"\r
-"A&bort\tF8" === "Abbrechen\tF8"\r
-"&Resign\tF9" === "Auf&geben\tF9"\r
-"Stop &Observing\tF10" === "Zuschauen beenden\tF10"\r
-"Stop E&xamining\tF11" === "Analyse beenden\tF11"\r
-"&Upload to Examine" === "Z&ur Analyse hochladen"\r
-"Adjudicate to &White" === "Abschätzung - Weiß gewinnt"\r
-"Adjudicate to &Black" === "Abschätzung -  Schwarz gewinnt"\r
-"Adjudicate &Draw" === "Abschätzung - Remis"\r
-\r
-"Type In &Move...\tAlt+I" === "&Zug eingeben...\tAlt+I"\r
-"&Backward\tAlt+Left" === "Zurück\tAlt+Links"\r
-"&Forward\tAlt+Right" === "&Vorwärts\tAlt+Rechts"\r
-"Back to &Start\tAlt+Home" === "Zum &Anfang\tAlt+Anfang"\r
-"Forward to &End\tAlt+End" === "Zum &Ende\tAlt+Ende"\r
-"&Revert\tHome" === "Rückgängig\tAnfang"\r
-"&Annotate" === "Kommentieren"\r
-"&Truncate Game\tEnd" === "Res&tliche Züge löschen\tEnde"\r
-"&Move Now\tCtrl+M" === "Ziehe &jetzt\tCtrl+M"\r
-"&Retract Move\tCtrl+X" === "Zurück&nehmen\tCtrl+X"\r
-\r
-"Flip &View\tF2" === "&Brett drehen\tF2"\r
-"&Swap Clocks" === "Uhren taus&chen"\r
-"&Mute all Sounds" === "Lautlos"\r
-"&General..." === "&Allgemein"\r
-"&Board..." === "Brett..."\r
-"Ad&judications...\tAlt+Shift+J" === "Abschätzungen...\tAlt+Umschalt+J"\r
-"Common &Engine...\tAlt+Shift+U" === "Standardengine...\tAlt+Umschalt+U"\r
-"Engine #&1 Settings..." === "Engine #1 konfigurieren..."\r
-"Engine #&2 Settings..." === "Engine #2 konfigurieren..."\r
-"Install 1st..." === "Installieren in Engineliste 1..."\r
-"Install 2nd..." === "Installieren in Engineliste 2..."\r
-"&ICS..." === "&ICS..."\r
-"Add ICS..." === "Neue ICS..."\r
-"&Fonts..." === "&Schriftarten..."\r
-"Soun&ds..." === "&Klänge..."\r
-"G&ame List..." === "Partieliste..."\r
-"&Game List Tags..." === "Partieliste Tags..."\r
-"Comm&unications..." === "Porteinstellungen..."\r
-"&Load Game...\tAlt+Shift+L" === "Partie &laden...\tAlt+Umschalt+L"\r
-"&Save Game...\tAlt+Shift+S" === "Partie &speichern...\tAlt+Umschalt+S"\r
-"&Time Control...\tAlt+Shift+T" === "&Zeitkontrolle..."\r
-"Save Settings &Now" === "Einstellungen sofort speichern"\r
-"Save Settings on E&xit" === "Einstellungen nach Beenden speichern"\r
-\r
-"Help &Contents\tF1" === "In&halt\tF1"\r
-"Help &Index" === "&Index"\r
-"How to &Use Help" === "Wie benutzt man die Hilfe"\r
-"&Hint..." === "&Tipp..."\r
-"&Book..." === "&Eröffnungsbuch..."\r
-"&About WinBoard" === "Über WinBoard"\r
-\r
-"White" === "Weiß"\r
-"Promote" === "Schwarz"\r
-"Pawn" === "Bauer"\r
-"Knight" === "Springer"\r
-"Bishop" === "Läufer"\r
-"Rook" === "Turm"\r
-"Queen" === "Dame"\r
-"King" === "König"\r
-"Archbishop" === "Erzbischof"\r
-"Chancellor" === "Kanzler"\r
-"Elephant" === "Elefant"\r
-"Cannon" === "Kanone"\r
-"Empty Square" === "Leeres Feld"\r
-"Black" === "Schwarz"\r
-"Demote" === "Degradieren"\r
-"Clear Board    " === "Brett leeren   "\r
-"Gold" === "Gold"\r
-"Silver" === "Silber"\r
-"Lance" === "Lanze"\r
-\r
-"Drop" === "Einsetzen"\r
-\r
-"Cop&y and Paste" === "Kopieren &und einfügen"\r
-"&Copy" === "&Kopieren"\r
-"&Paste" === "&Einfügen"\r
-\r
-"&Undo" === "&Rückgängig"\r
-"Cu&t" === "A&usschneiden"\r
-"&Copy" === "&Kopieren"\r
-"&Paste" === "&Einfügen"\r
-"Select &All" === "&Alles auswählen"\r
-\r
-DIALOGS:\r
-\r
-ABOUTBOX\r
-\r
-"About WinBoard" === "Über WinBoard"\r
-"OK" === "OK"\r
-"Chessboard for Windows" === "Schachbrett für Windows"\r
-"Copyright 1991 Digital Equipment Corporation" === "Copyright (c) Digital Equipment Corporation 1991"\r
-"Enhancements Copyright 1992-2014  Free Software Foundation" === "Weiter Copyright (c) Free Software Fundation 1992-2014"\r
-"Enhancements Copyright 2005\r\nAlessandro Scotti" === "Weiter Copyright (c) \r\nAlessandro Scotti 2005"\r
-"WinBoard 0.0.0" === "WinBoard 0.0.0"\r
-\r
-ABOUTBOX2\r
-\r
-"galactic" === "galaktisch"\r
-\r
-TIME CONTROL DIALOG\r
-\r
-"Time Control" === "Zeitkontrolle"\r
-"Conventional chess clock" === "Normale Schachuhr"\r
-"Incremental clock" === "Schachuhr mit Inkrement"\r
-"Cancel" === "Abbrechen"\r
-\r
-"Use arrow keys to specify which clock setting type, then press tab to alter values." === "Benutzen Sie die Pfeiltasten zur Auswahlt des Uhrentyps und verwenden Sie anschließend die Tabulatortaste, um die Uhr zu stellen."\r
-"Fixed time per move" === "Feste Zeit pro Zug"\r
-"Number of moves:" === "Anzahl Züge:"\r
-\r
-"Within number of minutes:" === "in Anzahl Minuten:"\r
-\r
-"Initial number of minutes:" === "Initiale Anzahl Minuten:"\r
-"Plus number of seconds per move:" === "Plus Anzahl Sekunden pro Zug:"\r
-"Maximum seconds per move:" === "Maximale Anzahl Sekunden pro Zug"\r
-"Time-Odds Factors:" === "Zeitvorgabe:"\r
-"Engine #1:" === "Engine #1:"\r
-"Engine #2:" === "Engine #2:"\r
-\r
-LOAD OPTIONS DIALOG\r
-\r
-"Load Game Options" === "Partieeinstellungen laden"\r
-"Load games with automatic stepping" === "Partien mit automatischen Schritten laden"\r
-\r
-## Make it wider. It could say "segundos por jugada"\r
-"seconds per move" === "Sekunden pro Zug"\r
-\r
-SAVE OPTIONS DIALOG\r
-\r
-"Save Game Options" === "Partieeinstellungen speichern"\r
-"Save As: " === "Stil speichern"\r
-"Save games automatically" === "Partien automatisch speichern"\r
-"Prompt for filename" === "Dateinamen eingeben"\r
-"To file:" === "Datei:"\r
-"PGN" === "PGN"\r
-"Old" === "Alt"\r
-"Browse..." === "Durchsuchen..."\r
-"Save out of book info in PGN" === "Verlassen des Eröffnungsbuchs in PGN markieren"\r
-\r
-1536\r
-\r
-"Open" === "Öffnen"\r
-"File &Name:" === "Datei&name:"\r
-"&Directories:" === "&Verzeichnisse:"\r
-"List Files of &Type:" === "Datei&typ:"\r
-"Dri&ves:" === "&Partitionen:"\r
-"&Help" === "&Hilfe"\r
-"&Index number:" === "&Zugnummer:"\r
-\r
-COMMPORT\r
-"Communication Port Settings" === "Porteinstellungen"\r
-"Net&work..." === "&Netzwerk"\r
-"&Port:" === "&Port:"\r
-"Data &Rate:" === "&Übertragungsrate:"\r
-"Data &Bits:" === "&Bits:"\r
-"P&arity:" === "P&arität:"\r
-"&Stop Bits:" === "&Stop Bits:"\r
-"F&low:" === "Datenf&luss:"\r
-\r
-EDIT COMMENT\r
-\r
-"Edit comment" === "Kommentar bearbeiten"\r
-"&Clear" === "&Leeren"\r
-"&Edit" === "&Bearbeiten"\r
-\r
-PROMOTION POPUP\r
-"Promotion" === "Umwandlung"\r
-"&Queen" === "&Dame"\r
-"&Rook" === "&Turm"\r
-"&Bishop" === "&Läufer"\r
-"K&night" === "&Springer"\r
-"&King" === "&König"\r
-"&Cancel" === "&Abbrechen"\r
-\r
-## This text doesn't appear in WB (remove comment and string if deleted from lang450.txt)\r
-"Promote pawn to:" === "Bauern umwandeln in:"\r
-## This text appears and it is not in lang450.txt (remove comment if added to lang450.txt)\r
-"Promote to:" === "Umwandeln in:"\r
-\r
-"Chance&llor" === "Kanz&ler"\r
-"&Archbishop" === "Er&zbischof"\r
-"      YES" === "       JA"\r
-"       NO" === "     NEIN"\r
-"C&entaur" === "Z&entaurus"\r
-\r
-GAME LIST\r
-\r
-"Game List" === "Partieliste"\r
-"&Load" === "&Laden"\r
-"&Prev" === "&Vorschau"\r
-"&Next" === "&Weiter"\r
-"&Close" === "&Schließen"\r
-"Filter" === "Filter"\r
-\r
-EDIT TAGS\r
-\r
-"Edit Tags" === "Tags bearbeiten"\r
-\r
-ERROR\r
-\r
-"ICS Interaction" === "ICS Interaktion"\r
-"Dialog" === "Dialog"\r
-"Error" === "Fehler"\r
-"Sorry Charlie" === "Pech gehabt"\r
-\r
-COLORIZE\r
-\r
-"I C S Interaction Colors" === "Interaktionsfarben I C S"\r
-"Interaction Colors" === "Interaktionsfarben"\r
-"Premove" === "Zugeingabe vorab"\r
-"Alarm" === "Alarm"\r
-"Colors" === "Farben"\r
-"&Choose Color..." === "&Farbe auswählen..."\r
-"&Bold" === "&Fett"\r
-"&Italic" === "&Kursiv"\r
-"&Underline" === "&Unterstrichen"\r
-"&Strikeout" === "&Durchgestrichen"\r
-\r
-QUESTION\r
-\r
-## Really appears this? weird\r
-"Enter a chess engine command or just type something stupid that will completely screw things up." === "Geben Sie ein Kommand für die Schachengine ein oder geben Sie etwas Unsinniges ein, das das Programm abstürzen lässt."\r
-"Question" === "Frage"\r
-"Enter" === "Eingabe"\r
-\r
-STARTUP DIALOG\r
-\r
-"WinBoard Startup" === "WinBoard starten"\r
-"What would you like to do?" === "Was möchten Sie tun?"\r
-"&Play against a chess engine or match two engines" === "Gegen ein &Schachprogramm spielen oder ein Match zwischen zwei Schachprogrammen starten"\r
-"&Use an Internet Chess Server" === "Mit einem &Internetschachserver (ICS) verbinden"\r
-"Just &view or edit game files" === "Nur &Partien nachspielen oder bearbeiten"\r
-"Specify Chess &Engines:" === "&Schachprogramme auswählen:"\r
-"Specify Chess &Server:" === "&Internetschachserver auswählen:"\r
-"&Additional options" === "&Erweiterte Einstellungen"\r
-\r
-INDEX\r
-\r
-"Type in a move" === "Geben Sie einen Zug ein"\r
-"Inde&x number:" === "Zugnummer"\r
-\r
-SOUND DIALOG\r
-\r
-"Sounds" === "Klänge"\r
-\r
-"&Event:" === "&Ereignis:"\r
-"&No sound" === "&Lautlos"\r
-\r
-## Make it wider, it could say "Bip por defecto"\r
-"&Default beep" === "&Standardton"\r
-\r
-"&Built-in sound:" === "&Mitgelieferte Klänge"\r
-\r
-## Make it wider, it could say "Archivo WAV:"\r
-"&WAV file:" === "&WAV-Datei:"\r
-\r
-"B&rowse..." === "&Durchsuchen..."\r
-"&Play" === "&Abspielen"\r
-"&Defaults" === "&Standardton"\r
-\r
-GENERAL OPTIONS DIALOG\r
-## In this dialog, buttons OK/Cancel are not aligned at the right\r
-## Note: finely tuned spaces to align keys at right (add this comment to lang450.txt for commodity)\r
-\r
-"General Options" === "Allgemeine Einstellungen"\r
-"Always on &Top" === "Immer im Vordergrund"\r
-"Always &Queen            Ctrl+Shift+Q" === "Immer &Dame                     Ctrl+Umschalt+Q"\r
-"Animate &Dragging" === "&Animiertes Ziehen"\r
-"&Animate Moving         Ctrl+Shift+A" === "Animierte &Züge                 Ctrl+Umschalt+A"\r
-"Auto &Flag                   Ctrl+Shift+F" === "Autom. &Zeitreklamation     Ctrl+Umschalt+F"\r
-"Auto Flip &View" === "&Brett automatisch drehen"\r
-\r
-"Auto &Raise Board" === "&Brett im Vordergrund halten"\r
-\r
-"&Blindfold" === "Blindspiel"\r
-"Highlight Dra&gging" === "&Ziehen hervorheben"\r
-"Highlight Last &Move" === "&Letzten Zug hervorhaben"\r
-"Periodic &Updates" === "&Regelmäßig aktualisieren"\r
-\r
-## Was wrong in lang450.txt (remove comment if corrected in lang450.txt)\r
-"Ponder &Next Move  Ctrl+Shift+P" === "Auf &Gegnerzeit rechnen Ctrl+Umschalt+P"\r
-\r
-"&Popup Exit Message" === "&Rückfrage vor Beenden"\r
-"Popup Move &Errors" === "&Inkorrekten Zug anzeigen"\r
-"Show Butt&on Bar" === "&Schalterleiste anzeigen"\r
-"Show &Coordinates" === "&Koordinaten anzeigen"\r
-"&Show Thinking" === "&Computerausgabe anzeigen"\r
-"Test &Legality            Ctrl+Shift+L" === "&Legalität überprüfen       Ctrl+Umschalt+L"\r
-"&Hide Thinking          Ctrl+Shift+H" === "C&omp. ausgabe ausblenden Ctrl+Ums+H"\r
-"&Info in Move History   Ctrl+Shift+I" === "&Informationen in Notation  Ctrl+Umschalt+I"\r
-"&Send Engine Think" === "Computerausgabe &übertragen"\r
-"E&xtended PGN Info    Ctrl+Shift+X" === "&Erweiterte Inf. in PGN       Ctrl+Umschalt+X"\r
-"Highlight with Arro&w" === "Mit &Pfeil hervorheben"\r
-"Displa&y Logos" === "&Logos anzeigen"\r
-"One-Click Move" === "Ein-Klick-Eingabe"\r
-\r
-ICS OPTIONS\r
-\r
-"ICS Options" === "ICS Optionen"\r
-"&Auto Comment" === "&Autom. Kommentare"\r
-"Auto &Observe" === "Automatisches &Zuschauen"\r
-\r
-"&Get Move List" === "&Zugliste"\r
-\r
-"&Local Line Editing" === "&Lokale Zeile bearbeiten"\r
-"&Quiet Play" === "&Stilles Spiel"\r
-\r
-"&Premove" === "&Zugeingabe vorab"\r
-\r
-"&White first move" === "1. Zug &Weiß"\r
-"&Black first move" === "1. Zug &Schwarz"\r
-"&Sound alarm at" === "&Alarm bei"\r
-"seconds" === "Sekunden"\r
-"Choose..." === "Auswählen..."\r
-"Do &not colorize messages" === "Keine &Nachrichtenfarben"\r
-\r
-"&Auto Kibitz" === "&Autom. Kibitzen"\r
-"See&k Graph" === "&Suchgraph"\r
-"auto-&Refresh" === "&Autom. aktualisieren"\r
-"Bckgnd Obser&ve" === "&Im Hintergrund zuschauen"\r
-"&Dual Board" === "&Doppeltes Brett"\r
-"One-Click &Move" === "&Ein-Klick-Eingabe"\r
-"Background..." === "Hintergrund..."\r
-"&Defaults..." === "&Standard..."\r
-"Startup &Chat Boxes:" === "Öffne Chatfenster:"\r
-"General" === "Allgemein"\r
-\r
-BOARD OPTIONS\r
-(NOTE: AllWhite uses the white pieces for both sides\r
-       FlipBlack plots the blck pieces upside down)\r
-\r
-"Board Options" === "Brettoptionen"\r
-"Defaults" === "Standard"\r
-"Light Squares" === "Weiße Felder"\r
-"Dark Squares" === "Schwarze Felder"\r
-"White Pieces" === "Weiße Figuren"\r
-"Black Pieces" === "Schwarze Figuren"\r
-"Square Highlights" === "Felder hervorheben"\r
-"Premove Highlights" === "Vorabeingabe hervorheben"\r
-"Monochrome" === "Monochrome"\r
-\r
-"All White" === "Alle Weiß"\r
-"Flip Black" === "Drehe Schwarz"\r
-\r
-"Size" === "Größe"\r
-\r
-BOARD SIZES (translate as number?)\r
-## Don't put numbers, or nobody will translate them.\r
-## This is a space for imagination (useful note to add to lang450.txt).\r
-"&Tiny" === "&Mini"\r
-"T&eeny" === "&Sehr winzig"\r
-"&Dinky" === "&Winziger"\r
-"&Petite" === "W&inzig"\r
-"Sl&im" === "Sehr &klein"\r
-"&Small" === "K&leiner"\r
-"Medi&ocre" === "Kl&ein"\r
-"&Middling" === "&Solala"\r
-"&Average" === "&Durchschnitt"\r
-"Mode&rate" === "&Moderat"\r
-"Medi&um" === "&Normal"\r
-"Bul&ky" === "M&assiv"\r
-"&Large" === "&Groß"\r
-"&Big" === "G&rößer"\r
-"&Huge" === "Sehr gr&oß"\r
-"&Giant" === "Gigan&tisch"\r
-"&Colossal" === "Kol&losal"\r
-"Tita&nic" === "Tita&nisch"\r
-\r
-FONTS\r
-\r
-"Fonts" === "Schriftarten"\r
-"Current Board Size" === "Aktuelle Brettgröße"\r
-"All Board Sizes" === "Alle Brettgrößen"\r
-"&Revert to Defaults" === "&Standardeinstellung"\r
-"Clocks" === "Uhren"\r
-"Messages" === "Nachrichten"\r
-"Coordinates" === "Koordinaten"\r
-"Tags" === "Markierungen"\r
-"Comments" === "Kommentare"\r
-"I C S Interaction" === "ICS Kommunikation"\r
-\r
-"&Color..." === "&Farben..."\r
-"Move History, Engine Output" === "Notation, Engineausgabe"\r
-\r
-ADJUDICATIONS DIALOG\r
-\r
-"Adjudications" === "Abschätzungen"\r
-\r
-## Make wider next four controls, text could be more clear\r
-"Ponder Next Move" === "Auf Gegnerzeit rechnen"\r
-"Enable and Show Thinking (recommended)" === "Engineausgabe anzeigen (empfohlen)"\r
-"Hide Thinking when Playing against Human" === "Engineausgabe im Spiel gegen Menschen ausblenden"\r
-"Periodic Updates (for Analysis Mode)" === "Regelmäßig aktualisieren (im Analysemodus)"\r
-\r
-"Adjudications in non-ICS games" === "Abschätzungen in Nicht-ICS-Partien"\r
-\r
-## Make it wider\r
-"Adjudicate draw after:" === "Als Remis abschätzen nach:"\r
-\r
-## Make it wider\r
-"moves" === "Züge"\r
-"Win/loss adjudication threshold:" === "Gewinn-/Verlustabschätzung bei:"\r
-## Make it wider\r
-"centipawns" === "1/100 Bauerneinheit"\r
-"&Verify Engine Claims" === "&Überprüfe Enginereklamationen"\r
-"Detect &Mates" === "&Matterkennung"\r
-"Draw if &Insufficient Material" === "&Remis falls kein Mattmaterial"\r
-"Adjudicate &Trivial Draws" === "&Klare Remis abschätzen"\r
-"Apply" === "Übernehmen"\r
-\r
-## Make wider next four (currently cutted)\r
-"-move rule" === "-Züge-Regel"\r
-"-fold repeats" === "-fache Wiederholung"\r
-"Engine #1 Score is Absolute" === "Bewertung Engine #1 ist absolut"\r
-"Engine #2 Score is Absolute" === "Bewertung Engine #2 ist absolut"\r
-\r
-COMMON ENGINE DIALOG\r
-\r
-"Common Engine Settings" === "Allgemeine Einstellungen (Engines)"\r
-"Polyglot Directory:" === "Verzeichnis Polyglot:"\r
-"Hash Size (MB):" === "Hashgröße (MB):"\r
-\r
-## Make wider next four\r
-"EGTB Path:" === "Verzeichnis EGTB:"\r
-"EGTB Size (MB):" === "Größe EGTB (MB):"\r
-"Use Book:" === "Buch verwenden:"\r
-"Max nr of CPUs:" === "Max. Prozessoren:"\r
-\r
-"First has Own Book" === "Eigenes Buch (Engine #1)"\r
-"Second has Own Book" === "Eigenes Buch (Engine #2)"\r
-"Book Depth:" === "Buchtiefe:"\r
-"Book Variation:" === "Buchvariation:"\r
-"Default Match Games:" === "Anzahl Matchpartien"\r
-\r
-NEW-VARIANT DIALOG\r
-(NOTE: the 'holdings' are the pieces standing next to the board ('in hand')\r
-\r
-"Variants" === "Varianten"\r
-"Variant" === "Variante"\r
-"Board size:" === "Brettgröße"\r
-\r
-## Make it wider (currently cutted)\r
-"ranks" === "Reihe"\r
-\r
-"files" === "Linie"\r
-"Holdings with room for:" === "Figuren zum Einsetzen:"\r
-"pieces" === "Figuren"\r
-\r
-## Make it wider (so 'val.' becomes 'valor', and 'sel.' becomes 'seleccionada')\r
-"('-1' means defaults for selected variant)" === "('-1' bedeutet Standard für ausgewählte Variante)"\r
-\r
-VARIANT NAMES: \r
-"&normal" === "&Normal"\r
-"&FRC" === "&FRC"\r
-"&wildcastle" === "&Wildcastle"\r
-"&nocastle" === "&Nocastle"\r
-"&losers" === "&Losers"\r
-"&giveaway" === "&Räuberschach"\r
-"s&uicide" === "&Selbstmord"\r
-"&3Check" === "&Drei Schachs"\r
-"&twokings" === "&Zwei Könige"\r
-"&atomic" === "&Atomschach"\r
-"cra&zyhouse" === "Cra&zyhouse"\r
-"&bughouse" === "&Tandem"\r
-"&Twilight" === "&Twilight"\r
-"&shogi" === "&Shogi"\r
-"su&per" === "Su&per"\r
-"&knightmate" === "&Springermatt"\r
-"&Berolina" === "&Berolina"\r
-"c&ylinder" === "&Zylinderschach"\r
-"&fairy" === "&Märchenschach"\r
-"&makruk" === "&Makruk"\r
-"&gothic" === "&Gothic"\r
-"&capablanca" === "&Capablanca"\r
-"&Janus" === "&Janus"\r
-"&CRC" === "&CRC"\r
-"&Falcon" === "&Falcon"\r
-"cou&rier" === "&Courier"\r
-"&Great" === "&Großschach"\r
-"&Shatranj" === "&Shatanj"\r
-"&xiangqi" === "&Xiangqi"\r
-\r
-NEW SHUFFLE GAME\r
-\r
-"New Shuffle Game" === "Neue Partie FRC"\r
-"&Start Position Number:" === "Startposition Nr.:"\r
-"Random" === "Zufällig"\r
-\r
-GAME-LIST OPTIONS DIALOG\r
-\r
-"Game List Options" === "Einstellungen (Partieliste)"\r
-"PGN &Tags:" === "&PGN-Tags:"\r
-\r
-## Make wider next five\r
-"&Up" === "&Aufwärts"\r
-"&Down" === "A&bwärts"\r
-"Default" === "Standard"\r
-"Factory" === "Fabrik"\r
-"Restore to:" === "Wiederherstellen nach:"\r
-\r
-MOVE HISTORY WINDOW\r
-\r
-"Move History" === "Notation"\r
-\r
-EVALUATION GRAPH\r
-\r
-"Evaluation Graph" === "Bewertungsgraph"\r
-\r
-ENGINE OUTPUT WINDOW\r
-\r
-"Engine output" === "Engineausgabe"\r
-"Engine #1" === "Engine #1"\r
-"NPS" === "Kn./Sec."\r
-"Engine #2" === "Engine #2"\r
-\r
-CHAT BOXES\r
-\r
-"Chat Window" === "Chatfenster"\r
-"Chat partner:" === "Chatpartner:"\r
-"Clear" === "Leeren"\r
-"Send" === "Senden"\r
-\r
-winboard.c\r
-\r
-"&File" === "&Datei"\r
-"&Mode" === "&Modus"\r
-"&Action" === "&Partie"\r
-"&Step" === "&Zug"\r
-"&Options" === "&Optionen"\r
-"&Help" === "Hilfe"\r
-"Font name too long:" === "Schriftname zu lang:"\r
-"Font point size missing:" === "Schriftgröße fehlt:"\r
-"Can't parse color name %s" === "Unbekannte Farbe: %s"\r
-"Unrecognized board size value" === "Unbekannte Brettgröße"\r
-"Unrecognized argument" === "Unbekannter Parameter"\r
-"No value provided for argument" === "Fehlender Wert für Parameter"\r
-"Incomplete \\ escape in value for" === "Escapezeichen \\ nicht komplett in Wert für"\r
-"Failed to open indirection file" === "Konnte Umleitungsdatei nicht öffnen"\r
-"Unrecognized boolean argument value" === "Ungültiger Wert für boolschen Parameter"\r
-"Unrecognized argument" === "Unbekannter Parameter"\r
-"Too many colors" === "Zu viele Farben"\r
-"&Minimize\tCtrl+F4" === "&Minimieren\tCtrl+F4"\r
-"White: %s" === "Weiß: %s"\r
-"We only care about the height here" === "Hier ist nur die Höhe wichtig"\r
-"Cannot build game list" === "Konnte Partieliste nicht erzeugen"\r
-"Load Game from File" === "Partie aus Datei laden"\r
-"Load Position from File" === "Stellung aus Datei laden"\r
-"Save Game to File" === "Partie in Datei speichern"\r
-"Save Position to File" === "Stellung in Datei speichern"\r
-"%s does not support analysis" === "%s unterstützt Analysemodus nicht"\r
-"Analyze Game from File" === "Analysiere Partie aus Datei"\r
-"Unable to activate help" === "Hilfe konnte nicht aktiviert werden"\r
-"Send to chess program:" === "An Engine senden:"\r
-"Send to second chess program:" === "An Engine #2 senden:"\r
-"Direct Command" === "Direkter Befehl"\r
-"Error loading sound %s" === "Konnte Klang %s nicht laden"\r
-"Error playing sound %s" === "Konnte Klang %s nicht abspielen"\r
-"File open failed" === "Konnte Datei nicht öffnen"\r
-"Internal error in file dialog box" === "Interner Fehler in Dateidialog"\r
-"Option Error" === "Fehler (Option)"\r
-"Choose an option, or cancel to exit" === "Option auswählen oder abbrechen"\r
-"Unable to activate help" === "Hilfe konnte nicht aktiviert werden"\r
-"Displayed move is not current" === "Angezeigter Zug ist nicht aktuell"\r
-"Could not parse move" === "Konnte Zug nicht verarbeiten"\r
-"%s:\nError code %d" === "%s:\nFehler %d"\r
-"Error" === "Fehler"\r
-"Fatal Error" === "Schwerer Fehler"\r
-"Exiting" === "Beende..."\r
-"%s:\nError code %d" === "%s:\nFehler %d"\r
-"Note" === "Beachte"\r
-"Error writing to chess program" === "Fehler beim Senden an Engine"\r
-"User" === "Benutzer"\r
-"Unknown" === "Unbekannt"\r
-"White" === "Weiß"\r
-"Black" === "Schwarz"\r
-"Save Game to File" === "Partie in Datei speichern"\r
-"Not implemented" === "Nicht implementiert"\r
-\r
-## What is this? appears that it can be without translation\r
-"Shout Text" === ""\r
-"SShout/CShout" === ""\r
-\r
-"Channel 1 Text" === "Text (Kanal 1)"\r
-"Channel Text" === "Text (Kanal)"\r
-"Kibitz Text" === "Text (Kibitz)"\r
-"Tell Text" === "Text (Chat)"\r
-"Challenge Text" === "Text (Fordern)"\r
-"Request Text" === "Text (Forderung)"\r
-"Seek Text" === "Text (Suche)"\r
-"Normal Text" === "Text (Standard)"\r
-"None" === "Nichts"\r
-"Pawn" === "Bauer"\r
-"Knight" === "Springer"\r
-"Bishop" === "Läufer"\r
-"Rook" === "Turm"\r
-"Queen" === "Dame"\r
-"Information" === "Information"\r
-\r
-wclipbrd.c\r
-\r
-"Unable to convert position to FEN." === "Konnte Stellung nicht nach FEN konvertieren."\r
-"Unable to copy FEN to clipboard." === "Konnte FEN nicht in Zwischenablage kopieren"\r
-"Cannot create temporary file name." === "Konnte temporäre Datei nicht erstellen"\r
-"Cannot open temporary file." === "Konnte temporäre Datei nicht öffnen"\r
-"Cannot write to temporary file." === "Konnte temporäre Datei nicht schreiben"\r
-"Cannot reopen temporary file." === "Konnte temporäre Datei nicht erneut öffnen"\r
-"Cannot determine size of file." === "Konnte Dateigröße nicht bestimmen"\r
-"Cannot allocate clipboard buffer." === "Nicht genug Speicher für Zwischenablage"\r
-"Cannot read from temporary file." === "Konnte temporäre Datei nicht lesen"\r
-"Error reading from temporary file." === "Fehler beim Lesen temporärer Datei"\r
-"Cannot copy text to clipboard" === "Konnte Text nicht in Zwischenablage kopieren"\r
-"Unable to allocate memory for clipboard." === "Nicht genug Speicher für Zwischenablage"\r
-"Unable to lock clipboard memory." === "Konnte Speicher für Zwischenablage nicht blockieren"\r
-"Cannot unlock clipboard memory." === "Konnte Speicher für Zwischenablage nicht freigeben"\r
-"Cannot open clipboard." === "Konnte Zwischenablage nicht öffnen"\r
-"Cannot empty clipboard."  === ""\r
-"Cannot copy text to clipboard."  === ""\r
-"Cannot close clipboard."  === ""\r
-"Unable to paste FEN from clipboard."  === ""\r
-"Unable to create temporary file."  === ""\r
-"Error writing to temporary file."  === ""\r
-"Unable to open clipboard."  === ""\r
-"No text in clipboard."  === ""\r
-"Unable to lock clipboard memory."  === ""\r
-"Unable to allocate memory for text string."  === ""\r
-"Unable to unlock clipboard memory."  === ""\r
-"Unable to close clipboard."  === ""\r
-\r
-woptions.c\r
-\r
-"Move"  === ""\r
-"Bell"  === ""\r
-"ICS Alarm"  === ""\r
-"ICS Win"  === ""\r
-"ICS Loss"  === ""\r
-"ICS Draw"  === ""\r
-"ICS Unfinished"  === ""\r
-\r
-## What is this? appears that it can be without translation\r
-"Shout"  === ""\r
-"SShout/CShout"  === ""\r
-\r
-"Channel 1"  === ""\r
-"Channel"  === ""\r
-"Kibitz"  === ""\r
-"Tell"  === ""\r
-"Challenge"  === ""\r
-"Request"  === ""\r
-"Seek"  === ""\r
-"Browse for Sound File"  === ""\r
-"Can't parse com port settings"  === ""\r
-"Option Error"  === ""\r
-"Invalid data rate"  === ""\r
-"Option Error"  === ""\r
-"Failed to set comm port state;\r\ninvalid options?"  === ""\r
-"Failed to set comm port state"  === ""\r
-"Invalid load game step rate"  === ""\r
-"Invalid save game file name"  === ""\r
-"Browse for Auto Save File"  === ""\r
-"Invalid moves per time control"  === ""\r
-"Invalid minutes per time control"  === ""\r
-"Invalid increment"  === ""\r
-"Invalid initial time"  === ""\r
-"Changing time control during a game is not implemented"  === ""\r
-\r
-"Variant %s not supported by %s"  === ""\r
-"Warning: second engine (%s) does not support this!"  === ""\r
-"Invalid ICS Alarm Time"  === ""\r
-"Invalid max time per move"  === ""\r
-"Invalid time-odds factor"  === ""\r
-"Choose Folder"  === ""\r
-"Choose Book"  === ""\r
-"Choose Polyglot Directory"  === ""\r
-"Choose EGTB Directory:"  === ""\r
-"Polyglot was not found in the specified folder!"  === ""\r
-\r
-wgamelist.c\r
-\r
-"No game selected"  === ""\r
-"Can't go forward any further"  === ""\r
-"Can't back up any further"  === ""\r
-"No game list"  === ""\r
-"Game List"  === ""\r
-"Game list not loaded or empty"  === ""\r
-"%s - %d/%d games"  === ""\r
-\r
-wedittags.c\r
-\r
-"Edit Tags"  === ""\r
-"Tags"  === ""\r
-"Error replacing tags."  === ""\r
-\r
-wsettings.c\r
-\r
-"%s Engine Settings (%s)"  === ""\r
-"OK"  === ""\r
-"Cancel"  === ""\r
-\r
-backend.c\r
-\r
-"bad timeControl option %s"  === ""\r
-"bad searchTime option %s"  === ""\r
-"first"  === ""\r
-"second"  === ""\r
-"protocol version %d not supported"  === ""\r
-"Variant %s supported only in ICS mode"  === ""\r
-"Unknown variant name %s"  === ""\r
-"Starting chess program"  === ""\r
-"Could not open comm port %s"  === ""\r
-"Could not connect to host %s, port %s"  === ""\r
-"Unknown initialMode %s"  === ""\r
-"Can't have a match with no chess programs"  === ""\r
-"Bad game file"  === ""\r
-"Bad position file"  === ""\r
-"AnalyzeFile mode requires a game file"  === ""\r
-"Analysis mode requires a chess engine"  === ""\r
-"Analysis mode does not work with ICS mode"  === ""\r
-"MachineWhite mode requires a chess engine"  === ""\r
-"MachineWhite mode does not work with ICS mode"  === ""\r
-"MachineBlack mode requires a chess engine"  === ""\r
-"MachineBlack mode does not work with ICS mode"  === ""\r
-"TwoMachines mode does not work with ICS mode"  === ""\r
-"TwoMachines mode requires a chess engine"  === ""\r
-"Training mode requires a game file"  === ""\r
-"Error writing to ICS"  === ""\r
-"Error reading from keyboard"  === ""\r
-"Got end of file from keyboard"  === ""\r
-"Error writing to ICS"  === ""\r
-"Error writing to display"  === ""\r
-"Error gathering move list: two headers"  === ""\r
-"Error gathering move list: nested"  === ""\r
-"Connection closed by ICS"  === ""\r
-"Error reading from ICS"  === ""\r
-"Failed to parse board string:\n\"%s\""  === ""\r
-"Game too long; increase MAX_MOVES and recompile"  === ""\r
-"Error gathering move list: extra board"  === ""\r
-"Illegal move \"%s\" from ICS"  === ""\r
-"Couldn't parse move \"%s\" from ICS"  === ""\r
-## 'say' must not be translated (add this comment to lang450.txt)\r
-"say Internal error; bad moveType %d (%d,%d-%d,%d)"  === ""\r
-"You are playing Black"  === ""\r
-"You are playing White"  === ""\r
-"It is White's turn"  === ""\r
-"It is Black's turn"  === ""\r
-"Displayed position is not current"  === ""\r
-"Illegal move"  === ""\r
-"End of game"  === ""\r
-"Incorrect move"  === ""\r
-## Second %s is translated 'first' or 'second'. (add this comment to lang450.txt)\r
-"Illegal move \"%s\" from %s machine"  === ""\r
-"Forfeit due to illegal move"  === ""\r
-"%s does not support analysis"  === ""\r
-## Second %s is translated 'first' or 'second' (add this comment to lang450.txt)\r
-"Illegal move \"%s\" (rejected by %s chess program)"  === ""\r
-## First %s is translated 'first' or 'second' (add this comment to lang450.txt)\r
-"Failed to start %s chess program %s on %s: %s\n"  === ""\r
-"Hint: %s"  === ""\r
-\r
-"Machine accepts your draw offer"  === ""\r
-"Machine offers a draw\nSelect Action / Draw to agree"  === ""\r
-"%s (only move)"  === ""\r
-"Ambiguous move in ICS output: \"%s\""  === ""\r
-"Illegal move in ICS output: \"%s\""  === ""\r
-"Gap in move list"  === ""\r
-"Game too long; increase MAX_MOVES and recompile"  === ""\r
-"Variant %s not supported by %s"  === ""\r
-"Startup failure on '%s'"  === ""\r
-"Waiting for first chess program"  === ""\r
-"Waiting for second chess program"  === ""\r
-"Match %s vs. %s: final score %d-%d-%d"  === ""\r
-"Stalemate"  === ""\r
-"Illegal move: %d.%s%s"  === ""\r
-"Ambiguous move: %d.%s%s"  === ""\r
-"Can't open \"%s\""  === ""\r
-"Cannot build game list"  === ""\r
-"No more games in this message"  === ""\r
-"No game has been loaded yet"  === ""\r
-"Can't back up any further"  === ""\r
-"Game number out of range"  === ""\r
-"Can't seek on game file"  === ""\r
-"Game not found in file"  === ""\r
-"Bad FEN position in file"  === ""\r
-"No moves in game"  === ""\r
-"No position has been loaded yet"  === ""\r
-"Can't back up any further"  === ""\r
-"Can't open \"%s\""  === ""\r
-"Can't seek on position file"  === ""\r
-"Position not found in file"  === ""\r
-"Bad FEN position in file"  === ""\r
-"Black to play"  === ""\r
-"White to play"  === ""\r
-"Can't open \"%s\""  === ""\r
-"You have edited the game history.\nUse Reload Same Game and make your move again."  === ""\r
-"You have entered too many moves.\nBack up to the correct position and try again."  === ""\r
-"Displayed position is not current.\nStep forward to the correct position and try again."  === ""\r
-"You have not made a move yet"  === ""\r
-"The cmail message is not loaded.\nUse Reload CMail Message and make your move again."  === ""\r
-"No unfinished games"  === ""\r
-"You have already mailed a move.\nWait until a move arrives from your opponent.\nTo resend the same move, type\n\"cmail -remail -game %s\"\non the command line."  === ""\r
-"Failed to invoke cmail"  === ""\r
-"Waiting for reply from opponent\n"  === ""\r
-"Still need to make move for game\n"  === ""\r
-"Still need to make moves for both games\n"  === ""\r
-"Still need to make moves for all %d games\n"  === ""\r
-"Still need to make a move for game %s\n"  === ""\r
-"No unfinished games\n"  === ""\r
-"Ready to send mail\n"  === ""\r
-"Still need to make moves for games %s\n"  === ""\r
-"Edit comment"  === ""\r
-"Edit comment on %d.%s%s"  === ""\r
-"Starting analysis mode...\nIf this message stays up, your chess program does not support analysis."  === ""\r
-"It is not White's turn"  === ""\r
-"It is not Black's turn"  === ""\r
-"Wait until your turn,\nor select Move Now"  === ""\r
-"Starting second chess program"  === ""\r
-"Training mode off"  === ""\r
-"Training mode on"  === ""\r
-"Already at end of game"  === ""\r
-"Warning: You are still playing a game"  === ""\r
-"Warning: You are still observing a game"  === ""\r
-"Warning: You are still examining a game"  === ""\r
-"It is Black's turn"  === ""\r
-"It is White's turn"  === ""\r
-"That square is occupied"  === ""\r
-"There is no pending offer on this move"  === ""\r
-"Your opponent is not out of time"  === ""\r
-"Black offers a draw"  === ""\r
-"White offers a draw"  === ""\r
-"You must make your move before offering a draw"  === ""\r
-"You are not examining a game"  === ""\r
-"You can't revert while pausing"  === ""\r
-"Wait until your turn,\nor select Move Now"  === ""\r
-"It is your turn"  === ""\r
-"Wait until your turn"  === ""\r
-"No hint available"  === ""\r
-\r
-## First %s is translated 'first' or 'second' (add this comment to lang450.txt)\r
-"Error writing to %s chess program"  === ""\r
-## First %s is translated 'first' or 'second' (add this comment to lang450.txt)\r
-"Error: %s chess program (%s) exited unexpectedly"  === ""\r
-## First %s is translated 'first' or 'second' (add this comment to lang450.txt)\r
-"Error reading from %s chess program (%s)"  === ""\r
-"Analysis (%s)"  === ""\r
-"Comment"  === ""\r
-"Comment on %d.%s%s"  === ""\r
-"Both flags fell"  === ""\r
-"White's flag fell"  === ""\r
-\r
-\r
-"Black's flag fell"  === ""\r
-"Bad FEN position in clipboard"  === ""\r
-"No response from ICS"  === ""\r
-"You cannot do this while you are playing or observing"  === ""\r
-"Click in holdings to choose piece"  === ""\r
-\r
-END-OF-GAME MESSAGES (should they be translated?)\r
-## I think that only for visualization and not for PGN, as PGN files are shared all around the world\r
-## [Well, this is currently not possible, they are used for both. And it only appears as a comment in the PGN.]\r
-\r
-"Game aborted"  === ""\r
-"White wins on time"  === ""\r
-"Black wins on time"  === ""\r
-"Both players ran out of time"  === ""\r
-"White resigns"  === ""\r
-"Black resigns"  === ""\r
-"White mates"  === ""\r
-"Black mates"  === ""\r
-"Draw"  === ""\r
-"Draw agreed"  === ""\r
-"Xboard adjudication: King destroyed"  === ""\r
-"Xboard adjudication: Bare king"  === ""\r
-"Xboard adjudication: 3rd check"  === ""\r
-"Xboard adjudication: Stalemate"  === ""\r
-"Xboard adjudication: Checkmate"  === ""\r
-"Xboard adjudication: Insufficient mating material"  === ""\r
-"Xboard adjudication: Trivial draw"  === ""\r
-"XBoard adjudication: repetition draw"  === ""\r
-"Xboard adjudication: perpetual checking"  === ""\r
-"Xboard adjudication: perpetual chasing"  === ""\r
-"%Xboard adjudication: perpetual chasing of"  === ""\r
-"Xboard adjudication: 50-move rule"  === ""\r
-"Draw claim: 50-move rule"  === ""\r
-"Draw claim: 3-fold repetition"  === ""\r
-"Draw claim: insufficient mating material"  === ""\r
-"Xboard adjudication: long game"  === ""\r
-"Xboard: Forfeit due to invalid move: %s (%c%c%c%c) res=%d"  === ""\r
-"Xboard: Forfeit due to illegal move: %s (%c%c%c%c)%c"  === ""\r
-"Xboard adjudication"  === ""\r
-"User adjudication"  === ""\r
-"False win claim: '%s'"  === ""\r
-"False draw claim: '%s'"  === ""\r
-"xboard exit"  === ""\r
-\r
-## One forgetted string (remove comment if added to lang450.txt)\r
-"Type in your name" === "Geben sie ihre namen ein"\r
-\r
diff --git a/winboard/language/italiano.lng b/winboard/language/italiano.lng
deleted file mode 100644 (file)
index f1f3925..0000000
+++ /dev/null
@@ -1,976 +0,0 @@
-## WinBoard 4.5.0 language file\r
-##\r
-## Italian / Italiano\r
-## v1.0 beta 1\r
-##\r
-## Translation by Giorgio Medeot (09-nov-2010)\r
-## Traduzione di Giorgio Medeot\r
-## WEB ADDRESS OF TRANSLATOR\r
-##\r
-## If you revise this, please insert your date, name and description.\r
-## Se modificate questo file, inserite la data, il vostro nome e la descrizione della modifica\r
-##\r
-## For example:\r
-## Per esempio:\r
-##   24-ago-2010. Juan Pérez (j@xyz.p). Corrected translation for xyzzy.\r
-\r
-## Notes for translators (can be deleted from the file after translation):\r
-##   Just write the translations between the second pair of quotes\r
-##   Things like %s, %d and %c must be preserved in the original order\r
-##   Empty translated strings will be ignored, so there is no reason\r
-##   to delete those for which you don't know a translation,\r
-##   and you can start testing everything immediately.\r
-##   Simply rename this file to LANGUAGE.lng, and WinBoard should see it,\r
-##   and allow you to use the option /language=LANGUAGE.\r
-##   You are encouraged to call up the corresponding WinBoard dialog while\r
-##   working on the translation, to see in which context the strings are used.\r
-##   This is why the strings below are sorted by dialog\r
-##\r
-##   Of duplicats, only the first occurrence will be used, even if it was in\r
-##   a different dialog! For this reason you will only see an 'OK' in the\r
-##   About Box. After you translated it there, this translation will be used\r
-##   for all other dialogs as well.\r
-## o Use ## for comments, to make it easy to find them scattered throughout the translation\r
-## o Careful with temptation of direct translation, by example 'movimiento' for 'move' when 'jugada' is better.\r
-## o Try to use short phrases, more text doesn't imply more clearness.\r
-## o Check that your translation is right, does it mean what it does?\r
-## o Test your translation, check every dialog.\r
-## o For standard chess names check Wikipedia for confirmation.\r
-## o For menus, assign shortcuts (character &) until you finish the translation.\r
-##   preferably it should be unique in the applicable menu, so it depends on translation of other items!\r
-\r
-"      " === "Traduzione di Giorgio Medeot"\r
-\r
-winboard.rc\r
-\r
-MENUS:\r
-## Pleace keep the accelerator-key indications on the menu items, and keep \r
-## the keystrokes the same (for now). (Alt, Ctrl and Shift can be translated.)\r
-\r
-"&New Game\tCtrl-N" === "&Nuova partita\tCtrl-N"\r
-"New Sh&uffle Game..." === "Nuova partita Shu&ffle..."\r
-"New &Variant...\tAlt+Shift+V" === "Nuova &variante...\tAlt+Shift+V"\r
-"&Load Game...\tCtrl-O" === "&Apri partita da file...\tCtrl-O"\r
-"&Save Game...\tCtrl-S" === "&Salva partita...\tCtrl-S"\r
-"L&oad Position...\tCtrl+Shift+O" === "Apri &posizione da file...\tCtrl+Shift+O"\r
-"S&ave Position...\tCtrl+Shift+S" === "&Salva posizione...\tCtrl+Shift+S"\r
-"Save as &Diagram..." === "Salva come &immagine..."\r
-"&Quit" === "&Esci"\r
-## Next six currently not used\r
-"Load &Next Game\tAlt+PgDn" === "Partita successiva\tAlt+PgDn"\r
-"Load &Previous Game\tAlt+PgUp" === "Partita precedente\tAlt+PgUp"\r
-"&Reload Same Game" === "Riapri partita corrente"\r
-"Load N&ext Position\tAlt+Shift+PgDn" === "Posizione successiva\tAlt+Shift+PgDn"\r
-"Load Pre&vious Position\tAlt+Shift+PgUp" === "Posizione precedente\tAlt+Shift+PgUp"\r
-"Reload Sa&me Position" === "Riapri posizione corrente"\r
-\r
-"&Copy Game To Clipboard\tCtrl+C" === "&Copia partita\tCtrl+C"\r
-"C&opy Position To Clipboard\tCtrl+Shift+C" === "&Copia posizione\tCtrl+Shift+C"\r
-"Copy Game List to Clipboard" === "Copia &lista partite"\r
-"&Paste Game From Clipboard\tCtrl+V" === "&Incolla partita\tCtrl+V"\r
-"P&aste Position From Clipboard\tCtrl+Shift+V" === "&Incolla posizione\tCtrl+Shift+V"\r
-"&Edit Game\tCtrl+E" === "&Modifica partita\tCtrl+E"\r
-"E&dit Position\tCtrl+Shift+E" === "&Modifica posizione\tCtrl+Shift+E"\r
-"Edit Ta&gs..." === "Mo&difica informazioni partita..."\r
-"Edit Co&mment..." === "Mo&difica commento..."\r
-"Enter &Username..." === "Inserisci nome &utente..."\r
-"&Revert\tHome" === "&Ripristina\tHome"\r
-"&Annotate" === "A&nnota"\r
-"&Truncate Game\tEnd" === "Tr&onca la partita\tEnd"\r
-"&Backward\tAlt+Left" === "&Indietro\tAlt+Left"\r
-"&Forward\tAlt+Right" === "&Avanti\tAlt+Right"\r
-"Back to &Start\tAlt+Home" === "&Torna all'inizio\tAlt+Home"\r
-"For&ward to End\tAlt+End" === "Vai alla &fine\tAlt+End"\r
-\r
-"Flip &View\tF2" === "&Ruota la scacchiera\tF2"\r
-"&Swap Clocks" === "Scambia gli &orologi"\r
-"Engine &Output\tAlt+Shift+O" === "&Output del motore di gioco\tAlt+Shift+O"\r
-"Move &History\tAlt+Shift+H" === "Lista &mosse\tAlt+Shift+H"\r
-"Evaluation &Graph\tAlt+Shift+E" === "&Grafico della valutazione\tAlt+Shift+E"\r
-"Game &List\tAlt+Shift+G" === "&Lista partite\tAlt+Shift+G"\r
-"Open &New Chat Window" === "Apri nuova Chat"\r
-"Type In &Move...\tAlt+I" === "&Digita mossa...\tAlt+I"\r
-"&Tags" === "&Informazioni partita"\r
-"&Comments" === "&Commenti"\r
-"&Game List Tags..." === "Impostazioni &lista partite..."\r
-"&Board..." === "&Scacchiera..."\r
-"&Fonts..." === "&Fonts..."\r
-\r
-"Machine &White\tCtrl+W" === "&Bianco al motore di gioco\tCtrl+W"\r
-"Machine &Black\tCtrl+B" === "&Nero al motore di gioco\tCtrl+B"\r
-"&Two Machines\tCtrl+T" === "Mo&tore di gioco 1 vs 2\tCtrl+T"\r
-"Machine Both" === "Osserva motore di gioco"\r
-"&Analysis Mode\tCtrl+A" === "&Avvia analisi\tCtrl+A"\r
-"Analyze &File\tCtrl+F" === "Analizza &file\tCtrl+F"\r
-"&Edit Game\tCtrl+E" === "Mo&difica partita\tCtrl+E"\r
-"E&dit Position\tCtrl+Shift+E" === "Mo&difica posizione\tCtrl+Shift+E"\r
-"Trai&ning" === "Allenamento"\r
-"&ICS Client" === "Connetti ad un &ICS"\r
-"&Machine Match" === "Matc&h tra i motori di gioco"\r
-"&Pause\tPause" === "&Pausa\tPause"\r
-\r
-"&Accept\tF3" === "&Accetta\tF3"\r
-"D&ecline\tF4" === "&Declina\tF4"\r
-"Re&match\tF12" === "&Rigioca\tF12"\r
-"Call &Flag\tF5" === "Chiama il &Tempo\tF5"\r
-"&Draw\tF6" === "&Offri Patta\tF6"\r
-"Ad&journ\tF7" === "A&ggiorna\tF7"\r
-"A&bort\tF8" === "&Interrompi\tF8"\r
-"&Resign\tF9" === "Abband&ona\tF9"\r
-"Stop &Observing\tF10" === "Smetti di o&sservare\tF10"\r
-"Stop E&xamining\tF11" === "Smetti di &esaminare\tF11"\r
-"&Upload to Examine" === "&Carica su ICS per esaminare"\r
-"Adjudicate to &White" === "Aggiudica al &Bianco"\r
-"Adjudicate to &Black" === "Aggiudica al &Nero"\r
-"Adjudicate &Draw" === "Aggiudica come &Patta"\r
-\r
-"Install 1st..." === "Installa motore 1..."\r
-"Install 2nd..." === "Installa motore 2..."\r
-"Engine #&1 Settings..." === "Impostazioni motore &1"\r
-"Engine #&2 Settings..." === "Impostazioni motore &2"\r
-"&Hint..." === "&Suggerimento..."\r
-"&Book..." === "&Libro delle aperture..."\r
-"&Move Now\tCtrl+M" === "&Muovi subito\tCtrl+M"\r
-"&Retract Move\tCtrl+X" === "&Annulla mossa\tCtrl+X"\r
-\r
-"&Mute all Sounds" === "Modalità silen&ziosa"\r
-"&General..." === "&Generali..."\r
-"&Time Control...\tAlt+Shift+T" === "Controllo &Tempo...\tAlt+Shift+T"\r
-"Common &Engine...\tAlt+Shift+U" === "&Motori di gioco...\tAlt+Shift+U"\r
-"Ad&judications...\tAlt+Shift+J" === "&Aggiudicazioni...\tAlt+Shift+J"\r
-"&Load Game...\tAlt+Shift+L" === "Apertura &partita...\tAlt+Shift+L"\r
-"&Save Game...\tAlt+Shift+S" === "Sal&vataggio partita...\tAlt+Shift+S"\r
-"G&ame List..." === "&Lista partite..."\r
-"Soun&ds..." === "Suo&ni..."\r
-"&ICS..." === "&ICS..."\r
-"Add ICS..." === "Aggiungi ICS..."\r
-"Comm&unications..." === "&Comunicazioni..."\r
-"Save Settings &Now" === "&Salva impostazioni"\r
-"Save Settings on E&xit" === "Salva impostazioni all'&uscita"\r
-\r
-"Help &Contents\tF1" === "&Guida in linea\tF1"\r
-"Help &Index" === "&Indice della Guida"\r
-"How to &Use Help" === "&Utilizzo della Guida"\r
-"&About WinBoard" === "Informazioni su &Winboard"\r
-\r
-"White" === "Bianco"\r
-"Promote" === "Promuovi"\r
-"Pawn" === "Pedone"\r
-"Knight" === "Cavallo"\r
-"Bishop" === "Alfiere"\r
-"Rook" === "Torre"\r
-"Queen" === "Donna"\r
-"King" === "Re"\r
-## The next 2 are pieces for Capablanca Chess. Use the names from the Wikipedia entry for this,\r
-## rather than litteral translations of the English names!\r
-"Archbishop" === "Arcivescovo"\r
-"Chancellor" === "Cancelliere"\r
-## Next 2 are Xiangqi (Chinese Chess) pieces. Google for 'Xiangqi' in the target language to get the standard translation.\r
-"Elephant" === "Elefante"\r
-"Cannon" === "Cannone"\r
-## Next 3 are Shogi (Japanese Chess) pieces. Google for 'Shogi' in the target language to get the standard translation.\r
-"Lance" === "Lancia"\r
-"Silver" === "Generale Argento"\r
-"Gold" === "Generale Oro"\r
-"Empty Square" === "Casa vuota"\r
-"Black" === "Nero"\r
-"Demote" === "Degrada"\r
-"Clear Board    " === "Svuota scacchiera"\r
-\r
-"Drop" === "Paracadutaggio"\r
-\r
-"Cop&y and Paste" === "Co&pia e Incolla"\r
-"&Copy" === "&Copia"\r
-"&Paste" === "&Incolla"\r
-\r
-"&Undo" === "&Annulla"\r
-"Cu&t" === "&Taglia"\r
-"&Copy" === "&Copia"\r
-"&Paste" === "&Incolla"\r
-"Select &All" === "&Seleziona tutto"\r
-\r
-DIALOGS:\r
-\r
-ABOUTBOX\r
-\r
-## Perhaps copyright notices best left untranslated?\r
-"About WinBoard" === "Informazioni su Winboard"\r
-"OK" === "OK"\r
-"Chessboard for Windows" === "Interfaccia per gli Scacchi e varianti per Windows"\r
-"Copyright 1991 Digital Equipment Corporation" === "Copyright (C) 1991 Digital Equipment Corporation"\r
-"Enhancements Copyright 1992-2014  Free Software Foundation" === "Modifiche Copyright (C) 1992-2014 Free Software Foundation"\r
-"Enhancements Copyright 2005\r\nAlessandro Scotti" === "Modifiche Copyright (C) 2005\r\nAlessandro Scotti"\r
-## What happened with H.G.Muller? [He sold his copyrights to FSF for $1]\r
-## The following string of 6 spaces can be translated to an acknowledgement of the translator,\r
-## like "Traducción por Óscar Toledo G.".\r
-"      " === "Traduzione italiana di Giorgio Medeot"\r
-"WinBoard 0.0.0" === "WinBoard 4.5.0"\r
-\r
-ABOUTBOX2\r
-\r
-## Weird, is it needed? [Normally not. It is a built-in 'Easter Egg' joke.]\r
-"galactic" === "galattico\r
-\r
-TIME CONTROL DIALOG\r
-\r
-"Time Control" === "Controllo Tempo"\r
-"Conventional chess clock" === "Orologio tradizionale"\r
-"Incremental clock" === "Orologio con incremento"\r
-"Cancel" === "Cancella"\r
-\r
-## Next is there really only for the benefit of blind users of the JAWS version...\r
-"Use arrow keys to specify which clock setting type, then press tab to alter values." === "Usa le frecce per specificare quale tipo di orologio utilizzare, poi premi il tasto tabulazione per modificare i valori."\r
-"Fixed time per move" === "Tempo per mossa fisso"\r
-"Number of moves:" === "Mosse:"\r
-"Within number of minutes:" === "In minuti:"\r
-"Initial number of minutes:" === "Tempo iniziale in minuti:"\r
-"Plus number of seconds per move:" === "Secondi aggiuntivi per mossa:"\r
-"Maximum seconds per move:" === "Secondi per mossa:"\r
-"Time-Odds Factors:" === "Riduci il tempo di un fattore:"\r
-"Engine #1:" === "Motore 1:"\r
-"Engine #2:" === "Motore 2:"\r
-\r
-LOAD OPTIONS DIALOG\r
-\r
-"Load Game Options" === "Impostazioni apertura partita"\r
-"Load games with automatic stepping" === "Apri partite attivando replay automatico"\r
-"seconds per move" === "secondi per mossa"\r
-\r
-SAVE OPTIONS DIALOG\r
-\r
-"Save Game Options" === "Impostazioni salvataggio partita"\r
-##"Save Style" === "Tipo file: "\r
-"Save As: " === "Tipo file: "\r
-"Save games automatically" === "Salva automaticamente"\r
-"Prompt for filename" === "Chiedi sempre dove salvare"\r
-"To file:" === "Salva in:"\r
-"PGN" === ""\r
-"Old" === "Formato Winboard 3.x"\r
-"Browse..." === "Sfoglia..."\r
-"Save out of book info in PGN" === "Salva informazioni 'out of book' nel PGN"\r
-\r
-1536\r
-## This dialog is only used in some older Windows versions, so you might not be able to test it.\r
-\r
-"Open" === "Apri file"\r
-"File &Name:" === "&Nome file:"\r
-"&Directories:" === "Cerca &in:"\r
-"List Files of &Type:" === "&Tipo file:"\r
-"Dri&ves:" === "&Unità:"\r
-"&Help" === "&Aiuto"\r
-\r
-"&Index number:" === "I&ndice:"\r
-\r
-COMMPORT\r
-## Always disabled if you are not actually using an ICS through a comport, so difficult to test.\r
-\r
-"Communication Port Settings" === "Impostazioni porta di comunicazione"\r
-"Net&work..." === "Re&te..."\r
-"&Port:" === "&Porta:"\r
-"Data &Rate:" === "Data &rate:"\r
-"Data &Bits:" === "Data &bits:"\r
-"P&arity:" === "P&arità:"\r
-"&Stop Bits:" === "&Stop bits"\r
-"F&low:" === "F&lusso"\r
-\r
-EDIT COMMENT\r
-\r
-"Edit Comment" === "Modifica commento"\r
-"&Clear" === "&Cancella"\r
-"&Edit" === "&Modifica"\r
-\r
-PROMOTION POPUP\r
-\r
-"Promote to:" === "Promuovi a:"\r
-## next used in Shogi as promotion-popup header\r
-"Promote?" === "Promuovi?"\r
-"Promotion" === "Promozione"\r
-"&Queen" === "&Donna"\r
-"&Rook" === "&Torre"\r
-"&Bishop" === "&Alfiere"\r
-"K&night" === "&Cavallo"\r
-"&King" === "&Re"\r
-"&Cancel" === "&Cancella"\r
-\r
-"Chance&llor" === "&Cancelliere"\r
-"&Archbishop" === "&Arcivescovo"\r
-"YES" === "SI"\r
-"NO" === "NO"\r
-"C&entaur" === "&Centauro"\r
-\r
-GAME LIST\r
-\r
-"Game List" === "Lista partite"\r
-"&Load" === "&Apri"\r
-"&Prev" === "&Prec"\r
-"&Next" === "&Succ"\r
-"&Close" === "&Chiudi"\r
-"Filter" === "Filtro"\r
-\r
-EDIT TAGS\r
-\r
-"Edit Tags" === "Modifica informazioni"\r
-\r
-ERROR\r
-\r
-"ICS Interaction" === "Console ICS"\r
-"Dialog" === "Dialogo"\r
-"Error" === "Errore"\r
-## I don't think the next will really appear ever.\r
-"Sorry Charlie" === "Spiacente Ciccio"\r
-\r
-COLORIZE\r
-\r
-"I C S Interaction Colors" === "Colori Console ICS"\r
-"Interaction Colors" === "Colori Console"\r
-"Premove" === "Premossa"\r
-"Alarm" === "Allarme"\r
-"Colors" === "Colori"\r
-"&Choose Color..." === "Scegli &colori"\r
-"&Bold" === "&Grassetto"\r
-"&Italic" === "&Corsivo"\r
-"&Underline" === "&Sottolineato"\r
-"&Strikeout" === "&Barrato"\r
-\r
-QUESTION\r
-\r
-## next one seems only a placeholder, and never appears? [might also be just a programmer's joke...]\r
-"Enter a chess engine command or just type something stupid that will completely screw things up." === "Digita un comando per il motore di gioco"\r
-"Question" === "Comando diretto"\r
-"Enter" === "Invia"\r
-\r
-STARTUP DIALOG\r
-\r
-"WinBoard Startup" === "Avvio di Winboard"\r
-"What would you like to do?" === "Selezionare una delle seguenti azioni:"\r
-"&Play against a chess engine or match two engines" === "&Partita contro un motore di gioco o match tra due motori"\r
-"&Use an Internet Chess Server" === "&Connetti ad un Internet Chess Server"\r
-"Just &view or edit game files" === "&Apri o modifica una partita su file"\r
-"Specify Chess &Engines:" === "Specificare &motore di gioco:"\r
-"Specify Chess &Server:" === "Specificare indirizzo &ICS:"\r
-"&Additional options" === "&Opzioni aggiuntive:"\r
-\r
-INDEX (IN FILE-BROWSE DIALOG)\r
-\r
-"Inde&x number:" === "I&ndice:"\r
-\r
-MOVE TYPE-IN\r
-\r
-"Type in a move" === "Digita una mossa"\r
-\r
-USER-NAME TYPE-IN\r
-\r
-"Type in your name" === "Inserisci il tuo nome"\r
-\r
-SOUND DIALOG\r
-\r
-"Sounds" === "Impostazioni suoni"\r
-\r
-"&Event:" === "&Evento:"\r
-"&No sound" === "&Silenzioso"\r
-"&Default beep" === "&Beep"\r
-"&Built-in sound:" === "Suoni &predefiniti:"\r
-"&WAV file:" === "&File WAV:"\r
-\r
-"B&rowse..." === "&Apri..."\r
-"&Play" === "A&scolta"\r
-"&Defaults" === "&Default"\r
-\r
-GENERAL OPTIONS DIALOG\r
-## please keep the indication of the accelerator keys for the same keystroke\r
-## Note: finely tuned spaces to align keys at right\r
-\r
-"General Options" === "Impostazioni generali"\r
-"Always on &Top" === "Sempre in &primo piano"\r
-"Always &Queen            Ctrl+Shift+Q" === "Promuovi a &Donna                    Ctrl+Shift+Q"\r
-"Animate &Dragging" === "&Trascinamento animato"\r
-"&Animate Moving         Ctrl+Shift+A" === "&Mosse animate                          Ctrl+Shift+A"\r
-"Auto &Flag                   Ctrl+Shift+F" === "Aggiudica sul &tempo                  Ctrl+Shift+F"\r
-"Auto Flip &View" === "Ruota &vista automaticamente"\r
-"Auto &Raise Board" === "Porta in p&rimo piano"\r
-"&Blindfold" === "Alla &cieca"\r
-"Highlight Dra&gging" === "Eviden&zia trascinamento"\r
-"Highlight Last &Move" === "&Evidenzia l'ultima mossa"\r
-"Periodic &Updates" === "&Aggiornamenti continui"\r
-"Ponder &Next Move  Ctrl+Shift+P" === "Pe&nsa sul mio tempo             Ctrl+Shift+P"\r
-"&Popup Exit Message" === "C&hiedi conferma alla chiusura"\r
-"Popup Move &Errors" === "Mostra pop&up per mosse errate"\r
-"Show Butt&on Bar" === "Mostra &barra dei pulsanti"\r
-"Show &Coordinates" === "Mostra c&oordinate"\r
-"&Show Thinking" === "Mo&stra output del motore"\r
-"Test &Legality            Ctrl+Shift+L" === "Verifica mosse i&llegali             Ctrl+Shift+L"\r
-"&Hide Thinking          Ctrl+Shift+H" === "N&ascondi analisi                    Ctrl+Shift+H"\r
-"&Info in Move History   Ctrl+Shift+I" === "&Informazioni nella Lista mosse   Ctrl+Shift+I"\r
-"&Send Engine Think" === "Invia l'output del &motore di gioco"\r
-"E&xtended PGN Info    Ctrl+Shift+X" === "&Informazioni PGN estese           Ctrl+Shift+X"\r
-"Highlight with Arro&w" === "Evidenzia con una &freccia"\r
-"Displa&y Logos" === "Mostra i &loghi"\r
-"One-Click Move" === "Muovi con click &singolo"\r
-\r
-ICS OPTIONS\r
-\r
-"ICS Options" === "Impostazioni ICS"\r
-"&Auto Comment" === "&Commenti automatici"\r
-"Auto &Observe" === "&Osserva automaticamente"\r
-"&Get Move List" === "Scarica lista &mosse"\r
-"&Local Line Editing" === "Modifiche in &locale"\r
-"&Quiet Play" === "Non &disturbare durante il gioco"\r
-"&Premove" === "&Premosse"\r
-"&White first move" === "1° mossa &Bianco"\r
-"&Black first move" === "1° mossa &Nero"\r
-"&Sound alarm at" === "Avvi&sa a"\r
-"seconds" === "secondi"\r
-"Choose..." === "Scegli..."\r
-"Do &not colorize messages" === "Non colorare i &messaggi"\r
-"&Auto Kibitz" === "&Auto Kibitz"\r
-"Auto Kibit&z" === "Auto Kibit&z"\r
-"See&k Graph" === "Grafico delle &richieste"\r
-"auto-&Refresh" === "Auto a&ggiorna"\r
-"Bckgnd Obser&ve" === "&Osserva in bckgnd"\r
-"&Dual Board" === "Doppia &scacchiera"\r
-"One-Click &Move" === "&Mossa con click singolo"\r
-"Background..." === "Sfondo..."\r
-"&Defaults..." === "&Default..."\r
-"Startup &Chat Boxes:" === "Apri &Chat all'avvio:"\r
-"General" === "Generali"\r
-\r
-BOARD OPTIONS\r
-## (NOTE: AllWhite uses the white (outline-style) piece bitmaps for both sides\r
-##        FlipBlack draws the black pieces upside down)\r
-\r
-"Board Options" === "Impostazioni scacchiera"\r
-"Defaults" === "Default"\r
-"Light Squares" === "Case bianche"\r
-"Dark Squares" === "Case nere"\r
-"White Pieces" === "Pezzi bianchi"\r
-"Black Pieces" === "Pezzi neri"\r
-"Square Highlights" === "Case evidenziate"\r
-"Premove Highlights" === "Premosse evidenziate"\r
-"Monochrome" === "Monocromatico"\r
-"All White" === "Neri a colore pieno"\r
-"Flip Black" === "Neri capovolti"\r
-"Size" === "Dimensioni"\r
-\r
-BOARD SIZES (translate as number?)\r
-## Don't put numbers, or nobody will translate them. [True. But do we really want them translated?]\r
-## This is a space for imagination!\r
-"&Tiny" === "&Minima"\r
-"T&eeny" === "&Scricciola"\r
-"&Dinky" === "&Minuscola"\r
-"&Petite" === "&Piccina"\r
-"Sl&im" === "&Ridotta"\r
-"&Small" === "&Piccola"\r
-"Medi&ocre" === "&Contenuta"\r
-"&Middling" === "&Modesta"\r
-"&Average" === "&Usuale"\r
-"Mode&rate" === "&Moderata"\r
-"Medi&um" === "&Media"\r
-"Bul&ky" === "&Ampia"\r
-"&Large" === "&Estesa"\r
-"&Big" === "&Grande"\r
-"&Huge" === "&Imponente"\r
-"&Giant" === "&Gigantesca"\r
-"&Colossal" === "&Colossale"\r
-"Tita&nic" === "&Titanica"\r
-\r
-FONTS\r
-\r
-"Fonts" === "Font"\r
-"Current Board Size" === "Dmensione scacchiera corrente"\r
-"All Board Sizes" === "Impostazioni globali"\r
-"&Revert to Defaults" === "Valori di &default"\r
-"Clocks" === "Orologi"\r
-"Messages" === "Messaggi"\r
-"Coordinates" === "Coordinate"\r
-"Tags" === "Tags"\r
-"Comments" === "Commenti"\r
-"I C S Interaction" === "Console ICS"\r
-\r
-"&Color..." === "&Colori..."\r
-"Move History, Engine Output" === "Lista mosse,\noutput motore"\r
-\r
-ADJUDICATIONS DIALOG\r
-\r
-"Adjudications" === "Impostazioni aggiudicazioni"\r
-"Ponder Next Move" === "Pensa sul mio tempo"\r
-"Enable and Show Thinking (recommended)" === "Abilita e mostra output del motore (raccomandato)"\r
-"Hide Thinking when Playing against Human" === "Nascondi l'output del motore se gioca contro un uomo"\r
-"Periodic Updates (for Analysis Mode)" === "Aggiornamenti continui (per Modalità di analisi)"\r
-"Adjudications in non-ICS games" === "Aggiudicazioni in partite non ICS"\r
-"Adjudicate draw after:" === "Aggiudica patta dopo:"\r
-"moves" === "mosse"\r
-"Win/loss adjudication threshold:" === "Limite per aggiudicare vinta/persa:"\r
-"centipawns" === "centipawn"\r
-"&Verify Engine Claims" === "&Verifica gli annunci del motore"\r
-"Detect &Mates" === "Individua scacco &matto"\r
-"Draw if &Insufficient Material" === "Patta per materiale &insufficiente"\r
-"Adjudicate &Trivial Draws" === "Aggiudica patte &triviali"\r
-"Apply" === "Applica regole"\r
-## next 2 are suffixed to a text-edit containing a number (50 or 3)\r
-"-move rule" === "mosse irreversibili"\r
-"-fold repeats" === "ripetizioni di posizione"\r
-"Engine #1 Score is Absolute" === "Output motore 1 sempre riferito al Bianco"\r
-"Engine #2 Score is Absolute" === "Output motore 2 sempre riferito al Bianco"\r
-\r
-COMMON ENGINE DIALOG\r
-\r
-"Common Engine Settings" === "Impostazioni motori di gioco"\r
-"Polyglot Directory:" === "Cartella Polyglot:"\r
-"Hash Size (MB):" === "Dimensione Hash [MB]:"\r
-"EGTB Path:" === "Cartella EGTB:"\r
-"EGTB Size (MB):" === "Dimensione EGTB [MB]:"\r
-"Use Book:" === "Libro aperture:"\r
-"Max nr of CPUs:" === "Num max di CPU:"\r
-"First has Own Book" === "Libro proprio per motore 1"\r
-"Second has Own Book" === "Libro proprio per motore 2"\r
-"Book Depth:" === "Profondità Libro:"\r
-"Book Variation:" === "Varianti Libro:"\r
-"Default Match Games:" === "Partite per match:"\r
-\r
-NEW-VARIANT DIALOG\r
-## (NOTE: the 'holdings' are the pieces standing next to the board ('in hand')\r
-\r
-"Variants" === "Varianti di gioco"\r
-"Variant" === "Variante"\r
-"Board size:" === "Scacchiera:"\r
-"ranks" === "traverse"\r
-"files" === "colonne"\r
-"Holdings with room for:" === "Num max di pezzi in mano"\r
-"pieces" === "pezzi"\r
-"('-1' means defaults for selected variant)" === "('-1' per il default della variante selezionata)"\r
-\r
-VARIANT NAMES: \r
-"&normal" === "&Normale"\r
-"&FRC" === "&FRC"\r
-"&wildcastle" === "&Wildcastle"\r
-"&nocastle" === "&Nocastle"\r
-"&losers" === "&Losers"\r
-"&giveaway" === "&Giveaway"\r
-"s&uicide" === "S&uicide"\r
-"&3Check" === "&3Check"\r
-"&twokings" === "&Twokings"\r
-"&atomic" === "&Atomic"\r
-"cra&zyhouse" === "Cra&zyhouse"\r
-"&bughouse" === "&Bughouse"\r
-"&Twilight" === "&Twilight"\r
-"&shogi" === "&Shogi"\r
-"su&per" === "Su&per"\r
-"&knightmate" === "&Knightmate"\r
-"&Berolina" === "&Berolina"\r
-"c&ylinder" === "&Cilindrici"\r
-"&fairy" === "&Fairy"\r
-"&makruk" === "&Makruk"\r
-"&gothic" === "&Gothic"\r
-"&capablanca" === "&Capablanca"\r
-"&Janus" === "&Janus"\r
-"&CRC" === "&CRC"\r
-"&Falcon" === "&Falcon"\r
-"cou&rier" === "Cou&rier"\r
-"&Great" === "&Great"\r
-"&Shatranj" === "&Shatranj"\r
-"&xiangqi" === "&Xiangqi"\r
-\r
-NEW SHUFFLE GAME\r
-\r
-"New Shuffle Game" === "Partita Shuffle"\r
-"&Start Position Number:" === "Disposizione iniziale:"\r
-"Random" === "Casuale"\r
-\r
-GAME-LIST OPTIONS DIALOG\r
-\r
-"Game List Options" === "Impostazioni lista partite"\r
-"PGN &Tags:" === "&Informazioni PGN:"\r
-"&Up" === "Muovi &su"\r
-"&Down" === "Muovi &giu"\r
-"Default" === "Default"\r
-"Factory" === "Fabbrica"\r
-"Restore to:" === "Reimposta:"\r
-\r
-MOVE HISTORY WINDOW\r
-\r
-"Move History" === "Lista mosse"\r
-\r
-EVALUATION GRAPH\r
-\r
-"Evaluation Graph" === "Grafico della valutazione"\r
-\r
-ENGINE OUTPUT WINDOW\r
-\r
-"Engine output" === "Output del motore di gioco"\r
-"Engine #1" === "Motore 1"\r
-"NPS" === ""\r
-"Engine #2" === "Motore 2"\r
-\r
-CHAT BOXES\r
-\r
-"Chat Window" === "Finestra della Chat"\r
-"Chat partner:" === "Compagno di chat:"\r
-"Clear" === "Cancella"\r
-"Send" === "Invia"\r
-\r
-winboard.c\r
-\r
-"&File" === "&File"\r
-"&Edit" === "&Modifica"\r
-"&View" === "&Visualizza"\r
-"&Mode" === "&Modalità"\r
-"&Action" === "&Azioni"\r
-"&Step" === "&Avanzamento"\r
-"E&ngine" === "&Motore"\r
-"&Options" === "&Impostazioni"\r
-"&Help" === "&Aiuto"\r
-"You can only start a match from the initial position." === "Un match può essere avviato solo dalla posizione iniziale."\r
-"Font name too long:" === "Nome del font troppo lungo:"\r
-"Font point size missing:" === "Dimensione del font mancante:"\r
-"Can't parse color name %s" === "Impossibile leggere nome del colore %s"\r
-"Unrecognized board size value" === "Dimensione scacchiera non riconosciuta"\r
-"Unrecognized argument" === "Argomento non riconosciuto"\r
-"No value provided for argument" === "Valore mancante per l'argomento"\r
-"Incomplete \\ escape in value for" === "Escape \\ incompleto nel valore per"\r
-"Failed to open indirection file" === "Apertura fallita per il file di reindirizzamneto"\r
-"Unrecognized boolean argument value" === "Valore non valido per argomento booleano"\r
-"Unrecognized argument" === "Argomento non riconosciuto"\r
-"Too many colors" === "Troppi colori"\r
-"&Minimize\tCtrl+F4" === "&Minimizza\tCtrl+F4"\r
-"White: %s" === "Bianco: %s"\r
-"We only care about the height here" === "Qui solo l'altezza è significativa"\r
-"Cannot build game list" === "Impossibile costruire lista delle partite"\r
-"Load Game from File" === "Apri partita da file"\r
-"Load Position from File" === "Apri posizione da file"\r
-"Save Game to File" === "Salva partita"\r
-"Save Position to File" === "Salva posizione"\r
-"%s does not support analysis" === "%s non supporta l'analisi"\r
-"Analyze Game from File" === "Analizza partita da file"\r
-"Unable to activate help" === "Impossibile aprire file della guida"\r
-"Send to chess program:" === "Invia al motore di gioco:"\r
-"Send to second chess program:" === "Invia al secondo motore di gioco"\r
-"Direct Command" === "Comando diretto"\r
-"Error loading sound %s" === "Errore nell'apertura del suono %s"\r
-"Error playing sound %s" === "Errore nella riproduzione del suono %s"\r
-"File open failed" === "Apertura file fallita"\r
-"Internal error in file dialog box" === "Errore interno nella finestra di dialogo apertura file"\r
-"Option Error" === "Errore nelle opzioni"\r
-"Choose an option, or cancel to exit" === "Scegli un'opzione o premi Cancella per uscire"\r
-"Unable to activate help" === "Impossibile aprire file della guida"\r
-"Displayed move is not current" === "La mossa mostrata non è quella corrente"\r
-"Could not parse move" === "Impossibile leggere mossa"\r
-"%s:\nError code %d" === "%s:\nCodice errore %d"\r
-"Error" === "Errore"\r
-"Fatal Error" === "Errore fatale"\r
-"Exiting" === "Chiusura in corso"\r
-"%s:\nError code %d" === "%s:\nCodice errore %d"\r
-"Note" === "Nota"\r
-"Error writing to chess program" === "Errore in scrittura sul motore di gioco"\r
-"User" === "Utente"\r
-"Unknown" === "Sconosciuto"\r
-"White" === "Bianco"\r
-"Black" === "Nero"\r
-"Save Game to File" === "Salva partita"\r
-"Not implemented" === "Non implementato"\r
-\r
-"Shout Text" === "Testo Shout"\r
-"SShout/CShout" === ""\r
-"Channel 1 Text" === "Testo Canale 1"\r
-"Channel Text" === "Testo Canale"\r
-"Kibitz Text" === "Testo Kibitz"\r
-"Tell Text" === "Testo Tell"\r
-"Challenge Text" === "Testo Challenge"\r
-"Request Text" === "Testo Richiesta"\r
-"Seek Text" === "Testo Seek"\r
-"Normal Text" === "Testo normale"\r
-"None" === "Nessuno"\r
-"Pawn" === "Pedone"\r
-"Knight" === "Cavallo"\r
-"Bishop" === "Alfiere"\r
-"Rook" === "Torre"\r
-"Queen" === "Donna"\r
-"Information" === "Informazione"\r
-\r
-wclipbrd.c\r
-\r
-"Unable to convert position to FEN." === "Impossibile convertire posizione in FEN."\r
-"Unable to copy FEN to clipboard." === "Impossibile copiare FEN negli Appunti."\r
-"Cannot create temporary file name." === "Impossibile creare nome file temporaneo."\r
-"Cannot open temporary file." === "Impossibile aprire file temporaneo."\r
-"Cannot write to temporary file." === "Impossibile scrivere su file temporaneo."\r
-"Cannot reopen temporary file." === "Impossibile riaprire file temporaneo."\r
-"Cannot determine size of file." === "Impossibile determinare la dimensione del file."\r
-"Cannot allocate clipboard buffer." === "Impossibile allocare il buffer per gli Appunti."\r
-"Cannot read from temporary file." === "Impossibile leggere da file temporaneo."\r
-"Error reading from temporary file." === "Errore in lettura da file temporaneo."\r
-"Cannot copy text to clipboard" === "Impossibile copiare il testo negli Appunti"\r
-"Unable to allocate memory for clipboard." === "Impossibile allocare la memoria per gli Appunti."\r
-"Unable to lock clipboard memory." === "Impossibile riservare la memoria per gli Appunti."\r
-"Cannot unlock clipboard memory." === "Impossibile rilasciare la memoria per gli Appunti."\r
-"Cannot open clipboard." === "Impossibile aprire gli Appunti."\r
-"Cannot empty clipboard." === "Impossibile svuotare gli Appunti"\r
-"Cannot copy text to clipboard." === "Impossibile copiare il testo negli Appunti."\r
-"Cannot close clipboard." === "Impossibile chiudere gli Appunti."\r
-"Unable to paste FEN from clipboard." === "Impossibile incollare FEN dagli Appunti."\r
-"Unable to create temporary file." === "Impossibile creare file temporaneo."\r
-"Error writing to temporary file." === "Errore in scrittura su file temporaneo."\r
-"Unable to open clipboard." === "Impossibile aprire gli Appunti."\r
-"No text in clipboard." === "NEssun testo negli Appunti."\r
-"Unable to lock clipboard memory." === "Impossibile riservare la memoria per gli Appunti."\r
-"Unable to allocate memory for text string." === "Impossibile allocare la memoria per il testo."\r
-"Unable to unlock clipboard memory." === "Impossibile rilasciare la memoria per gli Appunti."\r
-"Unable to close clipboard." === "Impossibile chiudere gli Appunti."\r
-\r
-woptions.c\r
-\r
-## For now, do NOT translate sound names, because WinBoard will no longer recognize them\r
-"Move" === ""\r
-"Bell" === ""\r
-"ICS Alarm" === ""\r
-"ICS Win" === ""\r
-"ICS Loss" === ""\r
-"ICS Draw" === ""\r
-"ICS Unfinished" === ""\r
-"Shout" === ""\r
-"SShout/CShout" === ""\r
-"Channel 1" === ""\r
-"Channel" === ""\r
-"Kibitz" === ""\r
-"Tell" === ""\r
-"Challenge" === ""\r
-"Request" === ""\r
-"Seek" === ""\r
-## end of sound names\r
-\r
-"Browse for Sound File" === "Sfoglia..."\r
-"Can't parse com port settings" === "Impossibile leggere le impostazioni per la porta COM"\r
-"Option Error" === "Errore nelle impostazioni"\r
-"Invalid data rate" === "Data Rate non valido"\r
-"Option Error" === "Errore nelle impostazioni"\r
-"Failed to set comm port state;\r\ninvalid options?" === "Settaggio della porta COM fallito;\r\nimpostazioni non valide?"\r
-"Failed to set comm port state" === "Settaggio dello stato della porta COM fallito"\r
-"Invalid load game step rate" === "Velocità replay partita non valida"\r
-"Invalid save game file name" === "Nome file per salvataggio partita non valido"\r
-"Browse for Auto Save File" === "Sfoglia nome file Salvataggio Automatico"\r
-"Invalid moves per time control" === "Numero mosse per sessione non valido"\r
-"Invalid minutes per time control" === "Valore minuti per sessione non valido"\r
-"Invalid increment" === "Valore incremento non valido"\r
-"Invalid initial time" === "Valore tempo iniziale non valido"\r
-"Changing time control during a game is not implemented" === "La possibilità di modificare il controllo di tempo durante la partita non è implementata"\r
-\r
-"Variant %s not supported by %s" === "La variante %s non è supportata da %s"\r
-"Warning: second engine (%s) does not support this!" === "Attenzione: il secondo motore di gioco (%s) non supporta questa azione!"\r
-"Invalid ICS Alarm Time" === "Valore per allarme controllo tempo ICS non valido"\r
-"Invalid max time per move" === "Valore tempo massimo per mossa non valido"\r
-"Invalid time-odds factor" === "Fattore di riduzione del tempo non valido"\r
-"Choose Folder" === "Scegli cartella"\r
-"Choose Book" === "Scegli Libro aperture"\r
-"Choose Polyglot Directory" === "Scegli cartella Polyglot"\r
-"Choose EGTB Directory:" === "Scegli cartella EGTB:"\r
-"Polyglot was not found in the specified folder!" === "Polyglot non è stato trovato nella cartella specificata!"\r
-\r
-wgamelist.c\r
-\r
-"No game selected" === "Nessuna partita selezionata"\r
-"Can't go forward any further" === "Impossibile avanzare oltre"\r
-"Can't back up any further" === "Impossibile tornare più indietro"\r
-"No game list" === "Nessuna lista partite"\r
-"Game List" === "Lista partite"\r
-"Game list not loaded or empty" === "Lista partite vuota o non caricata"\r
-"%s - %d/%d games" === "%s - %d/%d partite"\r
-\r
-wedittags.c\r
-\r
-"Edit Tags" === "Modifica informazioni"\r
-"Tags" === "Campi"\r
-"Error replacing tags." === "Errore nella sostituzione dei campi"\r
-\r
-wsettings.c\r
-\r
-"%s Engine Settings (%s)" === "Impostazioni %s motore di gioco (%s)"\r
-"OK" === "OK"\r
-"Cancel" === "Cancella"\r
-\r
-backend.c\r
-\r
-"bad timeControl option %s" === "Opzione timeControl non corretta: %s"\r
-"bad searchTime option %s" === "Opzione searchTime non corretta: %s"\r
-## following to will appear in combinations like "first engine" \r
-"first" === "primo"\r
-"second" === "secondo"\r
-"protocol version %d not supported" === "Versione %d del protocollo non supportata"\r
-"Variant %s supported only in ICS mode" === "La variante %s è supportata solo in modalità ICS"\r
-"Unknown variant name %s" === "Nome di variante sconosciuto: %s"\r
-"Starting chess program" === "Avvio del motore di gioco"\r
-"Could not open comm port %s" === "Apertura della porta comm %s fallita"\r
-"Could not connect to host %s, port %s" === "Connessione all'host %s, porta %s fallita"\r
-"Unknown initialMode %s" === "Valore per initialMode non riconosciuto: %s"\r
-"Can't have a match with no chess programs" === "Impossibile avviare un match senza specificare alcun motore di gioco"\r
-"Bad game file" === "File partita non riconosciuto"\r
-"Bad position file" === "File posizione non riconosciuto"\r
-"AnalyzeFile mode requires a game file" === "La modalità 'Analizza file' richiede un file partita"\r
-"Analysis mode requires a chess engine" === "La modalità Analisi richiede un motore di gioco"\r
-"Analysis mode does not work with ICS mode" === "La funzione di Analisi non è disponibile in modalità ICS"\r
-"MachineWhite mode requires a chess engine" === "La modalità 'Bianco al motore di gioco' richiede almeno un motore"\r
-"MachineWhite mode does not work with ICS mode" === "La funzione 'Bianco al motore di gioco' non è disponibile in modalità ICS"\r
-"MachineBlack mode requires a chess engine" === "La modalità 'Nero al motore di gioco' richiede almeno un motore"\r
-"MachineBlack mode does not work with ICS mode" === "La funzione 'Nero al motore di gioco' non è disponibile in modalità ICS"\r
-"TwoMachines mode does not work with ICS mode" === "La funzione 'Motore di gioco 1 vs 2' non è disponibile in modalità ICS"\r
-"TwoMachines mode requires a chess engine" === "La modalità 'Motore di gioco 1 vs 2' richiede almeno un motore di gioco"\r
-"Training mode requires a game file" === "La modalità Allenamento richiede un file partita"\r
-"Error writing to ICS" === "Errore in scrittura sull'ICS"\r
-"Error reading from keyboard" === "Errore in lettura da tastiera"\r
-"Got end of file from keyboard" === "Ricevuto carattere di Fine file (EOF) dalla tastiera"\r
-"Error writing to ICS" === "Errore in scrittura sull'ICS"\r
-"Error writing to display" === "Errore in scrittura sul display"\r
-"Error gathering move list: two headers" === "Errore nella lettura della lista mosse: sono presenti due intestazioni"\r
-"Error gathering move list: nested" === "Errore nella lettura della lista mosse: mosse annidate"\r
-"Connection closed by ICS" === "Connessione chiusa dal'ICS"\r
-"Error reading from ICS" === "Errore in lettura dall'ICS"\r
-"Failed to parse board string:\n\"%s\"" === "Lettura della descrizione posizione fallita:\n\"%s\""\r
-"Game too long; increase MAX_MOVES and recompile" === "Partita troppo lunga; incrementare il valore di MAX_MOVES e ricompilare"\r
-"Error gathering move list: extra board" === "Errore nela lettura della lista mosse: è presente una posizione in più"\r
-"Illegal move \"%s\" from ICS" === "Mossa illegale dall'ICS: \"%s\""\r
-"Couldn't parse move \"%s\" from ICS" === "Impossibile interpretare la mossa dall'ICS: \"%s\""\r
-## The leading 'say' is used as ICS command here, and should NOT be translated. Only the message behind it.\r
-"say Internal error; bad moveType %d (%d,%d-%d,%d)" === "say Errore interno; moveType malformato %d (%d,%d-%d,%d)"\r
-"You are playing Black" === "Stai giocando con il Nero"\r
-"You are playing White" === "Stai giocando con il Bianco"\r
-"It is White's turn" === "Il tratto è al Bianco"\r
-"It is Black's turn" === "Il tratto è al Nero"\r
-"Displayed position is not current" === "La posizione mostrata non è quella corrente"\r
-"Illegal move" === "Mossa illegale"\r
-"End of game" === "Termine della partita"\r
-"Incorrect move" === "Mossa non corretta"\r
-## next 6: Second (first 3) or first (other) '%s' will be substituted for 'first' or 'second'.\r
-"Illegal move \"%s\" from %s machine" === "Mossa illegale \"%s\" dal %s motore di gioco"\r
-"Illegal move \"%s\" (rejected by %s chess program)" === "Mossa illegale \"%s\" (rifiutata dal %s motore di gioco)"\r
-"Failed to start %s chess program %s on %s: %s\n" === "Avvio del %s motore di gioco %s su %s fallito: %s\n"\r
-"Error writing to %s chess program" === "Errore in scrittura sul %s motore di gioco"\r
-"Error: %s chess program (%s) exited unexpectedly" === "Errore: il %s motore di gioco (%s) è terminato in maniera inaspettata"\r
-"Error reading from %s chess program (%s)" === "Errore in lettura dal %s motore di gioco (%s)"\r
-"Forfeit due to illegal move" === "Forfeit decretato per mossa illegale"\r
-"%s does not support analysis" === "%s non supporta la modalità di analisi"\r
-"Hint: %s" === "Suggerimento: %s"\r
-"Machine accepts your draw offer" === "Il motore di gioco accetta la tua offerta di patta"\r
-"Machine offers a draw\nSelect Action / Draw to agree" === "Il motore di gioco offre la patta\nPer accettare seleziona il menù Azioni / Offri Patta"\r
-"%s (only move)" === "%s (unica mossa)"\r
-"Ambiguous move in ICS output: \"%s\"" === "Mossa ambigua nell'output dell'ICS: \"%s\""\r
-"Illegal move in ICS output: \"%s\"" === "Mossa illegale nell'output dell'ICS: \"%s\""\r
-"Gap in move list" === "Mosse mancanti nella lista mosse"\r
-"Game too long; increase MAX_MOVES and recompile" === "Partita troppo lunga; incrementare il valore di MAX_MOVES e ricompilare"\r
-"Variant %s not supported by %s" === "La variante %s non è supportata da %s"\r
-"Startup failure on '%s'" === "Avvio di '%s' fallito"\r
-"Waiting for first chess program" === "In attesa del primo motore di gioco"\r
-"Waiting for second chess program" === "In attesa del secondo motore di gioco"\r
-"Match %s vs. %s: final score %d-%d-%d" === "Match %s vs %s: punteggio finale %d-%d-%d"\r
-"Stalemate" === "Stallo"\r
-"Illegal move: %d.%s%s" === "Mossa illegale: %d.%s%s"\r
-"Ambiguous move: %d.%s%s" === "Mossa ambigua: %d.%s%s"\r
-"Can't open \"%s\"" === "Impossibile aprire \"%s\""\r
-"Cannot build game list" === "Impossibile costruire la lista partite"\r
-"No more games in this message" === "In questo messaggio non sono presenti altre partite"\r
-"No game has been loaded yet" === "Non è ancora stata caricata nessuna partita"\r
-"Can't back up any further" === "Impossibile risalire oltre"\r
-"Game number out of range" === "Indice superiore al numero di partite"\r
-"Can't seek on game file" === "Impossibile effettuare la ricerca nel file di partita"\r
-"Game not found in file" === "Partita non trovata nel file"\r
-"Bad FEN position in file" === "Stringa FEN di posizione scorretta nel file"\r
-"No moves in game" === "Partita senza mosse"\r
-"No position has been loaded yet" === "Non è ancora stata caricata nessuna posizione"\r
-"Can't back up any further" === "Impossibile risalire oltre"\r
-"Can't open \"%s\"" === "Impossibile aprire \"%s\""\r
-"Can't seek on position file" === "Impossibile effettuare la ricerca nel file di posizione"\r
-"Position not found in file" === "Posizione non trovata nel file"\r
-"Bad FEN position in file" === "Stringa FEN di posizione scorretta nel file"\r
-"Black to play" === "Il tratto è al Nero"\r
-"White to play" === "Il tratto è al Bianco"\r
-"Can't open \"%s\"" === "Impossibile aprire \"%s\""\r
-"You have edited the game history.\nUse Reload Same Game and make your move again." === "La lista mosse è stata modificata.\nUtilizzare 'Riapri partita corrente' e ripetere la mossa"\r
-"You have entered too many moves.\nBack up to the correct position and try again." === "Sono state immesse troppe mosse.\nRitornare alla posizione corretta e riprovare."\r
-"Displayed position is not current.\nStep forward to the correct position and try again." === "La posizione mostrata non è quella corrente.\nAvanzare fino alla posizione corretta e riprovare."\r
-"You have not made a move yet" === "Non hai ancora fatto alcuna mossa"\r
-"The cmail message is not loaded.\nUse Reload CMail Message and make your move again." === "Il messaggio cmail non è stato caricato.\Utilizzare 'Ricarica Messaggio CMail e reimmettere la mossa."\r
-"No unfinished games" === "Non è presente nessuna partita non terminata"\r
-"You have already mailed a move.\nWait until a move arrives from your opponent.\nTo resend the same move, type\n\"cmail -remail -game %s\"\non the command line." === "E' già stata postata una mossa.\nAttendere sino a quando non viene inviata una mossa dall'avversario.\nPer reinviare la stessa mossa, digitare\n\"cmail -remail -game %s\"\nsulla riga di comando."\r
-"Failed to invoke cmail" === "Impossibile aprire l'applicazione cmail"\r
-"Waiting for reply from opponent\n" === "In attesa di risposta dall'avversario\n"\r
-"Still need to make move for game\n" === "Occorre ancora eseguire la mossa per la partita\n"\r
-"Still need to make moves for both games\n" === "Occorre ancora eseguire mosse per entrambe le partite\n"\r
-"Still need to make moves for all %d games\n" === "Occorre ancora eseguire mosse per tutte le %d partite\n"\r
-"Still need to make a move for game %s\n" === "Occorre ancora eseguire una mossa per la partita %s\n"\r
-"No unfinished games\n" === "Non è presente nessuna partita non terminata"\r
-"Ready to send mail\n" === "Pronto all'invio della posta\n"\r
-"Still need to make moves for games %s\n" === "Occorre ancora eseguire mosse per le partite %s\n"\r
-"Edit comment" === "Modifica commento"\r
-"Edit comment on %d.%s%s" === "Modifica commento a %d.%s%s"\r
-##"Starting analysis mode...\nIf this message stays up, your chess program does not support analysis." ===  "Comenzando modo de análisis...\nSi este mensaje permanece, su programa de ajedrez no admite análisis."\r
-"Starting analysis mode...\nIf this message stays up, your chess program does not support analysis." ===  "Avvio della modalità di analisi...\nSe questo messaggio rimane visibile, il motore di gioco non supporta la modalità di analisi."\r
-"It is not White's turn" === "Il tratto non è al Bianco"\r
-"It is not Black's turn" === "Il tratto non è al Nero"\r
-"Wait until your turn,\nor select Move Now" === "Attendi il tuo turno,\noppure seleziona 'Muovi subito'"\r
-"Starting second chess program" === "Avvio del secondo motore di gioco"\r
-"Training mode off" === "Modalità Allenamento disattivata"\r
-"Training mode on" === "Modalità Allenamento attivata"\r
-"Already at end of game" === "Già alla fine della partita"\r
-"Warning: You are still playing a game" === "Avviso: Stai ancora giocando una partita"\r
-"Warning: You are still observing a game" === "Avviso: Stai ancora osservando una partita"\r
-"Warning: You are still examining a game" === "Avviso: Stai ancora esaminando una partita"\r
-"It is Black's turn" === "Il tratto è al Nero"\r
-"It is White's turn" === "Il tratto è al Bianco"\r
-"That square is occupied" === "La casa è già occupata"\r
-"There is no pending offer on this move" === "Non vi è alcuna offerta pendente a questa mossa"\r
-"Your opponent is not out of time" === "Il tuo avversario non ha ancora esaurito il proprio tempo"\r
-"Black offers a draw" === "Il Nero offre la patta"\r
-"White offers a draw" === "Il Bianco ofre la patta"\r
-"You must make your move before offering a draw" === "Devi eseguire la tua mossa prima di offrire la patta"\r
-"You are not examining a game" === "Non stai esaminando alcuna partita"\r
-"You can't revert while pausing" === "Non è possibile ripristinare mentre la pausa è attiva"\r
-"Wait until your turn,\nor select Move Now" === "Attendi il tuo turno,\noppure seleziona 'Muovi subito'"\r
-"It is your turn" === "E' il tuo turno"\r
-"Wait until your turn" === "Attendi il tuo turno"\r
-"No hint available" === "Nessun suggerimento disponibile"\r
-"Analysis (%s)" === "Analisi (%s)"\r
-"Comment" === "Commento"\r
-"Comment on %d.%s%s" === "Commento a %d.%s%s"\r
-"Both flags fell" === "Tempo esaurito per entrambi"\r
-"White's flag fell" === "Tempo esaurito per il Bianco"\r
-"Black's fell" === "Tempo esaurito per il Nero"\r
-"Bad FEN position in clipboard" === "Stringa FEN di posizione scorretta negli Appunti"\r
-"No response from ICS" === "Nessuna risposta dall'ICS"\r
-"You cannot do this while you are playing or observing" === "Questa operazione non può essere eseguita mentre si sta giocando o osservando una partita"\r
-"Click in holdings to choose piece" === "Cliccare sui pezzi 'in mano' per sceglierne uno"\r
-\r
-END-OF-GAME MESSAGES (should they be translated?)\r
-## I think that only for visualization and not for PGN, as PGN files are shared all around the world\r
-## [OK, I adapted the source that way. So please translate.]\r
-\r
-"Game aborted" === "Partita abortita"\r
-"White wins on time" === "Il Bianco vince sul tempo"\r
-"Black wins on time" === "Il Nero vince sul tempo"\r
-"Both players ran out of time" === "Tempo esaurito per entrambi i giocatori"\r
-"White resigns" === "Il Bianco abbandona"\r
-"Black resigns" === "Il Nero abbandona"\r
-"White mates" === "Il Bianco matta"\r
-"Black mates" === "Il Nero matta"\r
-"Draw" === "Patta"\r
-"Draw agreed" === "Patta concordata"\r
-"Xboard adjudication: King destroyed" === "Aggiudicazione di Xboard: Re distrutto"\r
-"Xboard adjudication: Bare king" === "Aggiudicazione di Xboard: Resta solo il re"\r
-"Xboard adjudication: 3rd check" === "Aggiudicazione di Xboard: Terzo scacco"\r
-"Xboard adjudication: Stalemate" === "Aggiudicazione di Xboard: Stallo"\r
-"Xboard adjudication: Checkmate" === "Aggiudicazione di Xboard: Scacco matto"\r
-"Xboard adjudication: Insufficient mating material" === "Aggiudicazione di Xboard: Materiale insufficiente"\r
-"Xboard adjudication: Trivial draw" === "Aggiudicazione di Xboard: Patta triviale"\r
-"XBoard adjudication: repetition draw" === "Aggiudicazione di Xboard: Patta per ripetizione"\r
-"Xboard adjudication: perpetual checking" === "Aggiudicazione di Xboard: Scacco perpetuo"\r
-"Xboard adjudication: perpetual chasing" === "Aggiudicazione di Xboard: Minaccia perpetua"\r
-"%Xboard adjudication: perpetual chasing of" === "Aggiudicazione di Xboard: Minaccia perpetua"\r
-"Xboard adjudication: 50-move rule" === "Aggiudicazione di Xboard: Regola delle 50 mosse"\r
-"Draw claim: 50-move rule" === "Patta dichiarata: Regola delle 50 mosse"\r
-"Draw claim: 3-fold repetition" === "Patta dichiarata: Terza ripetizione"\r
-"Draw claim: insufficient mating material" === "Patta dichiarata: Materiale insufficiente"\r
-"Xboard adjudication: long game" === "Aggiudicazione di Xboard: Partita lunga"\r
-"Xboard: Forfeit due to invalid move: %s (%c%c%c%c) res=%d" === "Xboard: Forfeit decretato per mossa non valida: %s (%c%c%c%c) res=%d"\r
-"Xboard: Forfeit due to illegal move: %s (%c%c%c%c)%c" === "Xboard: Forfeit decretato per mossa illegale: %s (%c%c%c%c)%c"\r
-"Xboard adjudication" === "Aggiudicazione di Xboard"\r
-"User adjudication" === "Aggiudicazione dell'utente"\r
-"False win claim: '%s'" === "Falsa dichiarazione di vittoria: '%s'"\r
-"False draw claim: '%s'" === "Falsa dichiarazione di patta: '%s'"\r
-"xboard exit" === "Chiusura di Xboard"\r
-\r
diff --git a/winboard/language/nederlands.lng b/winboard/language/nederlands.lng
deleted file mode 100644 (file)
index 3ac85fc..0000000
+++ /dev/null
@@ -1,1262 +0,0 @@
-## WinBoard language file\r
-##\r
-## Dutch / Nederlands\r
-## v1.2\r
-##\r
-## Translation by H.G.Muller (July 19, 2011)\r
-## Vertaald door H.G.Muller (19 juli 2011)\r
-## http://www.open-aurec.com/wbforum\r
-##    3-oct-2011. H.G.Muller. Added a few missing translations.\r
-##    7-oct-2011. H.G.Muller. Redid Load Options dialog, new Tournament dialog strings\r
-##   10-feb-2012. H.G.Muller. Added some strings in Load Engine, Tournament and Board dialogs
-##    1-feb-2010. H.G.Muller. Added new strings for version 4.7.0\r
-##\r
-## If you revise this, please insert your date, name and description.\r
-## AUB uw naam en datum hierboven bijschrijven als u dit bestand bijwerkt\r
-##\r
-\r
-winboard.rc\r
-\r
-MENUS:\r
-## Pleace keep the accelerator-key indications on the menu items, and keep \r
-## the keystrokes the same (for now). (Alt, Ctrl and Shift can be translated.)\r
-\r
-"&New Game\tCtrl-N" === "&Nieuwe partij\tCtrl-N"\r
-"New Sh&uffle Game..." === "Openingsstelling Sch&udden..."\r
-"New &Variant...\tAlt+Shift+V" === "Nieuwe Schaak&variant...\tAlt+Shift+V"\r
-"&Load Game...\tCtrl-O" === "Partij &Inlezen...\tCtrl-O"\r
-"&Save Game...\tCtrl-S" === "Partij &Opslaan...\tCtrl-S"\r
-"L&oad Position...\tCtrl+Shift+O" === "Stelling In&lezen...\tCtrl+Shift+O"\r
-"S&ave Position...\tCtrl+Shift+S" === "Stelling Op&slaan...\tCtrl+Shift+S"\r
-"Save as &Diagram..." === "Opslaan als &Diagram"\r
-"&Quit" === "&Afsluiten"\r
-## Next six currently not used\r
-"Load &Next Game\tAlt+PgDn" === ""\r
-"Load &Previous Game\tAlt+PgUp" === ""\r
-"&Reload Same Game" === ""\r
-"Load N&ext Position\tAlt+Shift+PgDn" === "Vol&gende stelling\tAlt+Shift+PgDn"\r
-"Load Pre&vious Position\tAlt+Shift+PgUp" === "Vo&rige Stelling\tAlt+Shift+PgUp"\r
-"Reload Sa&me Position" === ""\r
-\r
-"&Copy Game To Clipboard\tCtrl+C" === "Partij &Kopiëren\tCtrl+C"\r
-"C&opy Position To Clipboard\tCtrl+Shift+C" === "Stelling K&opiëren\tCtrl+Shift+C"\r
-"Copy Game List to Clipboard" === "Partijenover&zicht Kopiëren"\r
-"&Paste Game From Clipboard\tCtrl+V" === "Partij &Plakken\tCtrl+V"\r
-"P&aste Position From Clipboard\tCtrl+Shift+V" === "Stelling P&lakken\tCtrl+Shift+V"\r
-"&Edit Game\tCtrl+E" === "Partij &Bewerken\tCtrl+E"\r
-"E&dit Position\tCtrl+Shift+E" === "Stelling B&ewerken\tCtrl+Shift+E"\r
-"Edit Ta&gs..." === "P G N &Titels Bewerken..."\r
-"Edit Co&mment..." === "&Commentaar Bewerken..."\r
-"Enter &Username..." === "Gebruikers&naam Invoeren..."\r
-"&Revert\tHome" === "&Herstel Vorige Variant"\r
-"&Annotate" === "Becommentariëer met &Variant"\r
-"&Truncate Game\tEnd" === "Partij &Afkappen\tEnd"\r
-"&Backward\tAlt+Left" === "Stap Te&rug\tAlt+Left"\r
-"&Forward\tAlt+Right" === "Stap &Vooruit\tAlt+Right"\r
-"Back to &Start\tAlt+Home" === "Naar Be&gin\tAlt+Home"\r
-"For&ward to End\tAlt+End" === "Naar Ein&d\tAlt+End"\r
-\r
-"Flip &View\tF2" === "Bord &Omdraaien\tF2"\r
-"&Swap Clocks" === "&Klokken Verwisselen"\r
-"Engine &Output\tAlt+Shift+O" === "O&verwogen Zetten\tAlt+Shift+O"\r
-"Move &History\tAlt+Shift+H" === "&Zettenlijst\tAlt+Shift+H"\r
-"Evaluation &Graph\tAlt+Shift+E" === "&Scoregrafiek\tAlt+Shift+E"\r
-"Game &List\tAlt+Shift+G" === "&Partijenoverzicht\tAlt+Shift+G"\r
-"Open &New Chat Window" === "Open &Nieuw Kwebbelvenster"\r
-"Type In &Move...\tAlt+I" === "Zet &Intypen...\tAlt+I"\r
-"&Tags" === "P G N &Titels"\r
-"&Comments" === "&Commentaar"\r
-"&Game List Tags..." === "Partijenove&rzicht titels..."\r
-"&Board..." === "Schaak&bord..."\r
-"&Fonts..." === "&Lettertypen..."\r
-\r
-"Machine &White\tCtrl+W" === "Computer &Wit\tCtrl+W"\r
-"Machine &Black\tCtrl+B" === "Computer &Zwart\tCtrl+B"\r
-"&Two Machines\tCtrl+T" === "&Twee Programma's\tCtrl+T"\r
-"Machine Both" === ""\r
-"&Analysis Mode\tCtrl+A" === "&Analyseren\tCtrl+A"\r
-"Analyze &File\tCtrl+F" === "Bestan&d Analyseren\tCtrl+F"\r
-"&Edit Game\tCtrl+E" === "Partij &Bewerken\tCtrl+E"\r
-"E&dit Position\tCtrl+Shift+E" === "Stelling B&ewerken\tCtrl+Shift+E"\r
-"Trai&ning" === "T&raining"\r
-"&ICS Client" === "&Internet Verbinding"\r
-"&Machine Match" === "&Computer Tweekamp"\r
-"&Pause\tPause" === "&Pauze\tPause"\r
-\r
-"&Accept\tF3" === "&Accepteer Uitdaging\tF3"\r
-"D&ecline\tF4" === "&Uitdaging afwijzen\tF4"\r
-"Re&match\tF12" === "&Opnieuw Uitdagen\tF12"\r
-"Call &Flag\tF5" === "&Vlag Gevallen\tF5"\r
-"&Draw\tF6" === "&Remise Aanbieden\tF6"\r
-"Ad&journ\tF7" === "A&fbreken\tF7"\r
-"A&bort\tF8" === "&Beëindigen\tF8"\r
-"&Resign\tF9" === "&Geef Op\tF9"\r
-"Stop &Observing\tF10" === "&Stop met Toekijken\tF10"\r
-"Stop E&xamining\tF11" === "Stop met Anal&yseren\tF11"\r
-"&Upload to Examine" === "&Partij Overzenden"\r
-"Adjudicate to &White" === "Arbitreer Winst &Wit"\r
-"Adjudicate to &Black" === "Arbitreer Winst &Zwart"\r
-"Adjudicate &Draw" === "Arbitreer Re&mise"\r
-\r
-"Install 1st..." === "Installeer &eerste"\r
-"Install 2nd..." === "Installeer t&weede"\r
-"Engine #&1 Settings..." === "Programma #&1 Instellingen"\r
-"Engine #&2 Settings..." === "Programma #&2 Instellingen"\r
-"&Hint..." === "&Hint"\r
-"&Book..." === "&Boekzetten"\r
-"&Move Now\tCtrl+M" === "&Zet Onmiddelijk"\r
-"&Retract Move\tCtrl+X" === "Zet &Terugnemen"\r
-\r
-"&Mute all Sounds" === "Geluid &Uit"\r
-"&General..." === "&Algemeen..."\r
-"&Time Control...\tAlt+Shift+T" === "Speel&duur...\tAlt+Shift+T"\r
-"Common &Engine...\tAlt+Shift+U" === "&Globale Engine...\tAlt+Shift+U"\r
-"Ad&judications...\tAlt+Shift+J" === "Ar&bitrage...\tAlt+Shift+J"\r
-"&Load Game...\tAlt+Shift+L" === "&Inlees...\tAlt+Shift+L"\r
-"&Save Game...\tAlt+Shift+S" === "&Opslag...\tAlt+Shift+S"\r
-"G&ame List..." === "&Partijenoverzicht..."\r
-"Soun&ds..." === "Ge&luiden..."\r
-"&ICS..." === "Internet &Schaakdiensten"\r
-"Add ICS..." === "Internet Schaakdienst &Toevoegen"\r
-"Comm&unications..." === "&Com-poort Instellingen..."\r
-"Save Settings &Now" === "Instellingen &Nu Opslaan"\r
-"Save Settings on E&xit" === "Inste&llingen Opslaan bij Afsluiten"\r
-\r
-"Help &Contents\tF1" === "&Help Inhoud\tF1"\r
-"Help &Index" === "Help Inde&x"\r
-"How to &Use Help" === "Help &Gebruiken"\r
-"&About WinBoard" === "WinBoard &Info"\r
-\r
-"White" === "Wit"\r
-"Promote" === "Promoveer"\r
-"Pawn" === "Pion"\r
-"Knight" === "Paard"\r
-"Bishop" === "Loper"\r
-"Rook" === "Toren"\r
-"Queen" === "Dame"\r
-"King" === "Koning"\r
-## The next 2 are pieces for Capablanca Chess. Use the names from the Wikipedia entry for this,\r
-## rather than litteral translations of the English names!\r
-"Archbishop" === "Aartsbischop"\r
-"Chancellor" === "Kanselier"\r
-## Next 2 Xiangqi (Chinese Chess) pieces. Google for 'Xiangqi' in the target language to get the standard translation.\r
-"Elephant" === "Olifant"\r
-"Cannon" === "Kanon"\r
-"Empty Square" === "Leeg Veld"\r
-"Black" === "Zwart"\r
-"Demote" === "Degradeer"\r
-"Clear Board    " === "Leeg Bord"\r
-## Next 3: Shogi pieces.\r
-"Gold" === "Goud"\r
-"Silver" === "Zilver"\r
-"Lance" === "Lans"\r
-\r
-"Drop" === "Inzetten"\r
-\r
-"Cop&y and Paste" === "Kopiëer en Plak"\r
-"&Copy" === "Kopiëer"\r
-"&Paste" === "Plak"\r
-\r
-"&Undo" === "Ongedaan Maken"\r
-"Cu&t" === "Knippen"\r
-"&Copy" === "Kopiëren"\r
-"&Paste" === "Plakken"\r
-"Select &All" === "Alles Selecteren"\r
-\r
-DIALOGS:\r
-\r
-ABOUTBOX\r
-\r
-## Pehaps copyright notices best left untranslated?\r
-"About WinBoard" === "Info"\r
-"OK" === "OK"\r
-"Chessboard for Windows" === "Schaakbord voor Windows"\r
-"Copyright 1991 Digital Equipment Corporation" === ""\r
-"Enhancements Copyright 1992-2014  Free Software Foundation" === ""\r
-"Enhancements Copyright 2005\r\nAlessandro Scotti" === ""\r
-## What happened with H.G.Muller? [He sold his copyrights to FSF for $1]\r
-## The following string of 6 spaces can be translated to an acknowledgement of the translator,\r
-## like "Traducción por Óscar Toledo G.".\r
-"      " === "Nederlandse vertaling: H.G.Muller"\r
-"WinBoard 0.0.0" === ""\r
-\r
-ABOUTBOX2\r
-\r
-## Weird, it is needed? [Normally not. It is a built-in 'Easter Egg' joke.]\r
-"galactic" === ""\r
-\r
-TIME CONTROL DIALOG\r
-\r
-"Time Control" === "Speelduur Instellen"\r
-"Conventional chess clock" === "Klassieke Schaakklok"\r
-"Incremental clock" === "Incrementele Klok"\r
-"Cancel" === "Annuleren"\r
-\r
-## Next is there really only for the benefit of blind users of the JAWS version...\r
-"Use arrow keys to specify which clock setting type, then press tab to alter values." === "Gebruik pijltjestoetsen om kloktype te kiezen, en dan de tabulatortoets om de waarden te veranderen"\r
-"Fixed time per move" === "Gongschaak"\r
-"Number of moves:" === "Aantal zetten:"\r
-"Within number of minutes:" === "In aantal minuten:"\r
-"Initial number of minutes:" === "Aanvangstijd (min):"\r
-"Plus number of seconds per move:" === "Plus aantal seconden per zet:"\r
-"Maximum seconds per move:" === "Maximum seconden per zet"\r
-"Time-Odds Factors:" === "Tijdvoorgift Factoren:"\r
-"Engine #1:" === "Schaakprog 1:"\r
-"Engine #2:" === "Schaakprog 2:"\r
-\r
-LOAD OPTIONS DIALOG\r
-\r
-"Load Game Options" === "Opties voor Inlezen Partijen"\r
-"Load games with &automatic stepping" === "Stap &automatisch door partij"\r
-"&seconds per move" === "&seconden per zet"\r
-"when filtering game list on position, use thresholds:" === "Gebruikte drempels bij zoeken stelling:"\r
-"Search Mode: " === "Zoekmethode:"\r
-"Match exact &position" === "Alleen e&xacte stelling"\r
-"Match if position is s&ubset" === "M&ogelijk met extra materiaal"\r
-"Match material with e&xact pawn structure" === "Zelfde materiaal, met exacte &pion opstelling"\r
-"Match &material" === "Zelfde &materiaal"\r
-"Material &range (upper board-half is optional)" === "Materiaal&interval (bovenste bordhelft optioneel)"\r
-"Material &difference (optional material balanced)" === "Materiaal&verschil (optioneel deel evenwichtig)"\r
-"Also match reversed &colors" === "Accepteer ook verwisselde &kleuren"\r
-"Also match &left-right mirror image" === "Accepteer &links-rechts spiegeling"\r
-"minimum Elo for &best player" === "minimum Elo &beste speler"\r
-"minimum Elo for &weakest players" === "minimum Elo &zwakste speler"\r
-"or later &year" === "of een later &jaar"\r
-"co&nsecutive positions" === "opee&nvolgende stellingen"\r
-\r
-SAVE OPTIONS DIALOG\r
-\r
-"Save Game Options" === "Opties voor Opslaan Partijen"\r
-"Save As: " === "Opslaan als:"\r
-"Save games automatically" === "Sla partijen automatisch op"\r
-"Prompt for filename" === "Vraag telkens om bestandsnaam"\r
-"To file:" === "Op bestand:"\r
-"PGN" === "P G N"\r
-"Old" === "Oud formaat"\r
-"Browse..." === "Bladeren..."\r
-"Save out of book info in PGN" === "Uit-boek info opslaan in P G N"\r
-\r
-1536\r
-## This dialog is only used in some older Windows versions, so you might not be ableto test it.\r
-\r
-"Open" === "Open"\r
-"File &Name:" === "Bestandsnaam:"\r
-"&Directories:" === "Map"\r
-"List Files of &Type:" === "List van bestandstypen"\r
-"Dri&ves:" === "Schijf"\r
-"&Help" === "Help"\r
-\r
-"&Index number:" === "Index nummer"\r
-\r
-COMMPORT\r
-## Always disabled if you are not actually using an ICS through a comport, so difficult to test.\r
-\r
-"Communication Port Settings" === "Communicatiepoort Instellingen"\r
-"Net&work..." === "Netwerk"\r
-"&Port:" === "Poort"\r
-"Data &Rate:" === "Data Snelheid"\r
-"Data &Bits:" === "Data Bits"\r
-"P&arity:" === "Pariteit"\r
-"&Stop Bits:" === "Stop Bits"\r
-"F&low:" === "Vloed"\r
-\r
-EDIT COMMENT\r
-\r
-"Edit Comment" === "Commentaar Bewerken"\r
-"&Clear" === "Wissen"\r
-\r
-PROMOTION POPUP\r
-\r
-"Promote to:" === "Promoveer tot:"\r
-## next used in Shogi as promotion-popup header\r
-"Promote?" === "Promoveren?"\r
-"Promotion" === "Promotie"\r
-"&Queen" === "&Dame"\r
-"&Rook" === "&Toren"\r
-"&Bishop" === "&Loper"\r
-"K&night" === "&Paard"\r
-"&King" === "&Koning"\r
-"&Cancel" === "&Annuleren"\r
-\r
-"Chance&llor" === "Kan&selier"\r
-"&Archbishop" === "Aarts&bischop"\r
-"YES" === "&JA"\r
-"NO" === "&NEE"\r
-"C&entaur" === "&Centaur"\r
-\r
-GAME LIST\r
-\r
-"Game List" === "Partijenoverzicht"\r
-"&Load" === "&Inlezen"\r
-"&Prev" === "Vo&rige"\r
-"&Next" === "&Volgende"\r
-"&Close" === "&Sluiten"\r
-"Filter" === "&Filter"\r
-\r
-EDIT TAGS\r
-\r
-"Edit Tags" === "P G N Titels Bewerken"\r
-\r
-ERROR\r
-\r
-"ICS Interaction" === "ICS Interactie"\r
-"Dialog" === "Dialoog"\r
-"Error" === "Fout"\r
-## I don't think the next will really appear ever.\r
-"Sorry Charlie" === ""\r
-\r
-COLORIZE\r
-\r
-"I C S Interaction Colors" === "I C S Interactie Kleuren"\r
-"Interaction Colors" === "Interactie Kleuren"\r
-"Premove" === "Voor&zet"\r
-"Alarm" === "Tijdnood Alarm"\r
-"Colors" === "Kleuren"\r
-"&Choose Color..." === "&Kies Kleur..."\r
-"&Bold" === "&Vet"\r
-"&Italic" === "&Cursief"\r
-"&Underline" === "&Onderstreep"\r
-"&Strikeout" === "&Doorstreep"\r
-\r
-QUESTION\r
-\r
-## next one seems only a placeholder, and never appears? [might also be just a programmer's joke...]\r
-"Enter a chess engine command or just type something stupid that will completely screw things up." === ""\r
-"Question" === "Vraag"\r
-"Enter" === ""\r
-\r
-STARTUP DIALOG\r
-\r
-"WinBoard Startup" === "Opstarten WinBoard"\r
-"What would you like to do?" === "Waarvoor wilt u WinBoard gebruiken?"\r
-"&Play against a chess engine or match two engines" === "&Spelen tegen de computer, of twee programma's tegen elkaar"\r
-"&Use an Internet Chess Server" === "Een &Internet Schaakdienst gebruiken"\r
-"Just &view or edit game files" === "&Alleen partijen uit bestand bekijken of bewerken"\r
-"Specify Chess &Engines:" === "Specificeer Schaak&programma's"\r
-"Specify Chess &Server:" === "Specificeer Internet Schaak&dienst"\r
-"&Additional options" === "&Overige opties"\r
-\r
-INDEX (IN FILE-BROWSE DIALOG)\r
-\r
-"Inde&x number:" === "Inde&x nummer"\r
-\r
-MOVE TYPE-IN\r
-\r
-"Type in a move" === "Type een zet"\r
-\r
-USER-NAME TYPE-IN\r
-\r
-"Type in your name" === "Typ uw naam"\r
-\r
-SOUND DIALOG\r
-\r
-"Sounds" === "Geluid"\r
-\r
-"&Event:" === "&Gebeurtenis"\r
-"&No sound" === "&Stilte"\r
-"&Default beep" === "Standaard &piepje"\r
-"&Built-in sound:" === "&Ingebouwd geluid"\r
-"&WAV file:" === "&WAV bestand:"\r
-\r
-"B&rowse..." === "&Bladeren..."\r
-"&Play" === "&Afspelen"\r
-"&Defaults" === "Stan&daard"\r
-\r
-GENERAL OPTIONS DIALOG\r
-## pleace keep the indication of the accelerator keys for the same keystroke\r
-## Note: finely tuned spaces to align keys at right\r
-\r
-"General Options" === "Algemene Instellingen"\r
-"Always on &Top" === "Altijd &Voorgrond"\r
-"Always &Queen            Ctrl+Shift+Q" === "Alti&jd Dame                            Ctrl+Shift+Q"\r
-"Animate &Dragging" === "&Sleep Stukken"\r
-"&Animate Moving         Ctrl+Shift+A" === "Sch&uif Stukken                     Ctrl+Shift+A"\r
-"Auto &Flag                   Ctrl+Shift+F" === "&Automatisch Vlag Claimen     Ctrl+Shift+F"\r
-"Auto Flip &View" === "Automatische Bord &Oriëntatie"\r
-"Auto &Raise Board" === "Automatisch naar Voorgrond"\r
-"&Blindfold" === "&Blind Schaken"\r
-"Highlight Dra&gging" === "Toon &Doelveld(en)"\r
-"Highlight Last &Move" === "Acce&ntueer Laatste Zet"\r
-"Periodic &Updates" === "Period&iek &Bijwerken"\r
-"Ponder &Next Move  Ctrl+Shift+P" === "Denk in &Tijd Tegenstander     Ctrl+Shift+P"\r
-"&Popup Exit Message" === "Toon &Mededeling bij Afsluiten"\r
-"Popup Move &Errors" === "Waarschuw bij &Foute Zetten"\r
-"Show Butt&on Bar" === "Toon &Knoppenpaneel"\r
-"Show &Coordinates" === "Toon Bord&coördinaten"\r
-"&Show Thinking" === "Toon Bedenksels"\r
-"Test &Legality            Ctrl+Shift+L" === "&Weiger Onreglemetaire Zetten Ctrl+Shift+L"\r
-"&Hide Thinking          Ctrl+Shift+H" === "Verberg &Gedachten               Ctrl+Shift+H"\r
-"&Info in Move History   Ctrl+Shift+I" === "Scores in Zettenlijst               Ctrl+Shift+I"\r
-"&Send Engine Think" === "Rapporteer Bedenksels"\r
-"E&xtended PGN Info    Ctrl+Shift+X" === "Vermeld Scores in P G N      Ctrl+Shift+X"\r
-"Highlight with Arro&w" === "Accentueren met &Pijl"\r
-"Displa&y Logos" === "Toon &Logo's"\r
-"One-Click Move" === "Tu&rbo-zet"\r
-\r
-ICS OPTIONS\r
-\r
-"ICS Options" === "Instellingen Internet Schaakdienst"\r
-"&Auto Comment" === "&Commentaar opvangen"\r
-"Auto &Observe" === "&Automatisch Toekijken"\r
-"&Get Move List" === "Ophalen Zetten&lijst"\r
-"&Local Line Editing" === "&Bewerk Regels ter Plaatse"\r
-"&Quiet Play" === "&Rustig Spelen"\r
-"&Premove" === "&Voorzet"\r
-"&White first move" === "&Wit's eerste zet"\r
-"&Black first move" === "&Zwart's eerste zet"\r
-"&Sound alarm at" === "&Waarschuw bij"\r
-"seconds" === "sec"\r
-"Choose..." === "Kies..."\r
-"Do &not colorize messages" === "Boodschappen &niet kleuren"\r
-"&Auto Kibitz" === "Auto-Kibitz"\r
-"Auto Kibit&z" === ""\r
-"See&k Graph" === "Zoek&grafiek"\r
-"auto-&Refresh" === "Zel&f-verversend"\r
-"Bckgnd Obser&ve" === "Verdekt Toekijken"\r
-"&Dual Board" === "&Dubbel Bord"\r
-"One-Click &Move" === "&Turbo-zet"\r
-"Background..." === "Achtergrond..."\r
-"&Defaults..." === "&Standaard..."\r
-"Startup &Chat Boxes:" === "&Kwebbelvensters:"\r
-"General" === "Algemeen"\r
-\r
-BOARD OPTIONS\r
-## (NOTE: AllWhite uses the white (outline-style) piece bitmaps for both sides\r
-##        FlipBlack draws the black pieces upside down)\r
-\r
-"Board Options" === "Schaakbord Instellingen"\r
-"Defaults" === "Standaard"\r
-"Light Squares" === "Lichte Velden"\r
-"Dark Squares" === "Donkere Velden"\r
-"White Pieces" === "Witte Stukken"\r
-"Black Pieces" === "Zwarte Stukken"\r
-"Square Highlights" === "Accentuering"\r
-"Premove Highlights" === "Accentuering Voorzet"\r
-"Monochrome" === "Zwart-Wit"\r
-"All White" === "Beiden Wit"\r
-"Flip Black" === "Zwart Omkeren"\r
-"Use Board Textures" === "Bord inkleuren"\r
-"Use Piece Font" === "Externe stukken"\r
-"Suppress Grid" === "Onderdruk belijning"\r
-"Size" === "Bordgrootte"\r
-\r
-BOARD SIZES (translate as number?)\r
-## Don't put numbers, or nobody will translate them. [True. But do we really want them translated?]\r
-## This is a space for imagination!\r
-"&Tiny" === ""\r
-"T&eeny" === ""\r
-"&Dinky" === ""\r
-"&Petite" === ""\r
-"Sl&im" === ""\r
-"&Small" === ""\r
-"Medi&ocre" === ""\r
-"&Middling" === ""\r
-"&Average" === ""\r
-"Mode&rate" === ""\r
-"Medi&um" === ""\r
-"Bul&ky" === ""\r
-"&Large" === ""\r
-"&Big" === ""\r
-"&Huge" === ""\r
-"&Giant" === ""\r
-"&Colossal" === ""\r
-"Tita&nic" === ""\r
-\r
-FONTS\r
-\r
-"Fonts" === "Lettertypen"\r
-"Current Board Size" === "Huidige Bordgrootte"\r
-"All Board Sizes" === "Alle Bordgroottes"\r
-"&Revert to Defaults" === "Gebruik Standaardwaarden"\r
-"Clocks" === "Klokken"\r
-"Messages" === "Mededelingen"\r
-"Coordinates" === "Coördinaten"\r
-"Tags" === "P G N Titels"\r
-"Comments" === "Commentaar"\r
-"I C S Interaction" === "I C S Interactie"\r
-"Piece Font" === "Externe stukken"\r
-\r
-"&Color..." === "Kleur..."\r
-"Move History, Engine Output" === "Zettenlijst, Overwogen Zetten"\r
-\r
-ADJUDICATIONS DIALOG\r
-\r
-"Adjudications" === "Arbitrage"\r
-"Ponder Next Move" === "Denk in Tijd Tegenstander"\r
-"Enable and Show Thinking (recommended)" === "Raporteer Bedenksels"\r
-"Hide Thinking when Playing against Human" === "Verberg Gedachten voor Gebruiker"\r
-"Periodic Updates (for Analysis Mode)" === "Periodiek Bijwerken (bij Analyse)"\r
-"Adjudications in non-ICS games" === "Arbitrage in Lokale Partijen"\r
-"Adjudicate draw after:" === "Geef Remise na:"\r
-"moves" === "zetten"\r
-"Win/loss adjudication threshold:" === "Win/verlies drempel"\r
-"centipawns" === "centi-pion"\r
-"&Verify Engine Claims" === "Controleer Partijresultaat"\r
-"Detect &Mates" === "Detecteer Mat en Pat"\r
-"Draw if &Insufficient Material" === "Remise als geen Matpotentieel"\r
-"Adjudicate &Trivial Draws" === "Arbitreer Simpele Remises"\r
-"Apply" === "Toepassen:"\r
-## next 2 are suffixed to a text-edit containing a number (50 or 3)\r
-"-move rule" === "-zettenregel"\r
-"-fold repeats" === "-voudige herhaling"\r
-"Engine #1 Score is Absolute" === "Programma #1 geeft Score voor Wit"\r
-"Engine #2 Score is Absolute" === "Programma #2 geeft Score voor Wit"\r
-\r
-COMMON ENGINE DIALOG\r
-\r
-"Common Engine Settings" === "Globale Instellingen"\r
-"Polyglot Directory:" === "Polyglot Map:"\r
-"Hash Size (MB):" === "Tabelgrootte (MB):"\r
-"EGTB Path:" === "EGTB pad:"\r
-"EGTB Size (MB):" === "EGTB buffer (MB):"\r
-"Use Book:" === "Openingsboek:"\r
-"Max nr of CPUs:" === "Max aantal CPUs:"\r
-"First has Own Book" === "Prog #1 heeft eigen Boek"\r
-"Second has Own Book" === "Prog #2 heeft eigen Boek"\r
-"Book Depth:" === "Boekdiepte:"\r
-"Book Variation:" === "Boekvariatie:"\r
-"Default Match Games:" === "Partijen in Tweekamp"\r
-\r
-NEW-VARIANT DIALOG\r
-## (NOTE: the 'holdings' are the pieces standing next to the board ('in hand')\r
-\r
-"Variants" === "Schaakvarianten"\r
-"Variant" === "Schaakariant"\r
-"Board size:" === "Bordgrootte:"\r
-"ranks" === "rijen"\r
-"files" === "lijnen"\r
-"Holdings with room for:" === "Ruimte voor:"\r
-"pieces" === "stukken in de hand"\r
-"('-1' means defaults for selected variant)" === "('-1' betekent standaardwaarde voor gekozen variant)"\r
-\r
-VARIANT NAMES: \r
-"&normal" === "Standard"\r
-"&FRC" === "Chess960"\r
-"&wildcastle" === ""\r
-"&nocastle" === ""\r
-"&losers" === ""\r
-"&giveaway" === "weg&gevertje"\r
-"s&uicide" === ""\r
-"&3Check" === ""\r
-"&twokings" === ""\r
-"&atomic" === ""\r
-"cra&zyhouse" === ""\r
-"&bughouse" === "doorgeefschaak"\r
-"&Twilight" === ""\r
-"Sp&artan" === "Spartaans"\r
-"&shogi" === "Japans (&shogi)"\r
-"su&per" === "Superschaak"\r
-"&knightmate" === ""\r
-"&Berolina" === ""\r
-"c&ylinder" === "cylinder"\r
-"&fairy" === "sprookjes"\r
-"&makruk" === "Thais (&makruk)"\r
-"&gothic" === "Gotisch"\r
-"&capablanca" === ""\r
-"&Janus" === ""\r
-"&CRC" === ""\r
-"&Falcon" === ""\r
-"cou&rier" === ""\r
-"&Great" === ""\r
-"&Shatranj" === ""\r
-"&xiangqi" === "Chinees (&xiangqi)"\r
-\r
-NEW SHUFFLE GAME\r
-\r
-"New Shuffle Game" === "Willekeurig Opzetten"\r
-"&Start Position Number:" === "&Nummer Beginopstelling"\r
-"Random" === "&zomaar een"\r
-\r
-GAME-LIST OPTIONS DIALOG\r
-\r
-"Game List Options" === "Partijoverzicht Opties"\r
-"PGN &Tags:" === "PGN &Titels"\r
-"&Up" === "&Op"\r
-"&Down" === "&Neer"\r
-"Default" === "&Standaard"\r
-"Factory" === "&Fabrieks"\r
-"Restore to:" === "&Herstel naar:"\r
-\r
-MOVE HISTORY WINDOW\r
-\r
-"Move History" === "Zettenlijst"\r
-\r
-EVALUATION GRAPH\r
-\r
-"Evaluation Graph" === "Scoregrafiek"\r
-\r
-ENGINE OUTPUT WINDOW\r
-\r
-"Engine Output" === "Overwogen zetten"\r
-"%s (%d reversible plies)" === "%s (%d omkeerbare zetten)"\r
-"Engine #1" === "Programma #1"\r
-"NPS" === ""\r
-"Engine #2" === "Programma #1"\r
-\r
-CHAT BOXES\r
-\r
-"Chat Window" === "Kwebbelvenster"\r
-"Chat partner:" === "&Klets met"\r
-"Clear" === "&Wis"\r
-"Send" === "&Zend"\r
-\r
-winboard.c\r
-\r
-"&File" === "&Bestand"\r
-"&Edit" === "Be&werk"\r
-"&View" === "Beel&d"\r
-"&Mode" === "&Modus"\r
-"&Action" === "&Actie"\r
-"&Step" === "&Stap"\r
-"E&ngine" === "&Schaakprog"\r
-"&Options" === "&Opties"\r
-"&Help" === "&Help"\r
-"You can only start a match from the initial position." === "Een tweekamp kan alleen starten vanuit de openingsstelling"\r
-"Font name too long:" === ""\r
-"Font point size missing:" === ""\r
-"Can't parse color name %s" === ""\r
-"Unrecognized board size value" === "Ongeldige bordgrootte"\r
-"Unrecognized argument" === "Waarde onherkenbaar"\r
-"No value provided for argument" === "Waarde van optie ontbreekt"\r
-"Incomplete \\ escape in value for" === "Onvolledige \\ in waarde van"\r
-"Failed to open indirection file" === "Openen indirectie bestand mislukt"\r
-"Unrecognized boolean argument value" === "Onherkenbare waarde"\r
-"Unrecognized argument" === "Onherkenbaar argument"\r
-"Too many colors" === "Teveel kleuren"\r
-"&Minimize\tCtrl+F4" === "&Minimaliseer\tCtrl+F4"\r
-"White: %s" === "Wit: %s"\r
-"We only care about the height here" === "Alleen de hoogte telt hier"\r
-"Cannot build game list" === "Maken van partijenoverzicht mislukt"\r
-"Load Game from File" === "Partij van bestand inlezen"\r
-"Load Position from File" === "Stelling van bestand inlezen"\r
-"Save Game to File" === "Partij opslaan in bestand"\r
-"Save Diagram to File" === "Diagram opslaan in bestand"\r
-"Save Position to File" === "Stelling opslaan in bestand"\r
-"%s does not support analysis" === "%s kan niet analyseren"\r
-"Analyze Game from File" === "Analyseer Partij van Bestand"\r
-"Unable to activate help" === "Activeren helpprogramma mislukt"\r
-"Send to chess program:" === "Zend naar schaakprogramma:"\r
-"Send to second chess program:" === "Zend naar tweede schaakprogramma"\r
-"Direct Command" === "Rechtstreekse opdracht"\r
-"Error loading sound %s" === "Fout bij inlezen geluid %s"\r
-"Error playing sound %s" === "Fout bij afspelen geluid %s"\r
-"File open failed" === "Openen bestand mislukt"\r
-"Internal error in file dialog box" === "Interne fout in bestandsdialoog"\r
-"Option Error" === "Optie Fout"\r
-"Choose an option, or cancel to exit" === "Kies een optie, of annuleer"\r
-"Unable to activate help" === ""\r
-"Displayed move is not current" === "Getoonde zet is niet de huidige"\r
-"Could not parse move" === "Onbegrijpelijke zet"\r
-"%s:\nError code %d" === "%s:\nFout code %d"\r
-"Error" === "Fout"\r
-"Fatal Error" === "Fatale Fout"\r
-"Exiting" === "Afsluiten"\r
-"Note" === "Let op"\r
-"Error writing to chess program" === "Fout bij zenden naar schaakprogramma"\r
-"User" === "Gebruiker"\r
-"Unknown" === "Onbekend"\r
-"White" === "Wit"\r
-"Black" === "Zwart"\r
-"Save Game to File" === "Partij Opslaan in Bestand"\r
-"Not implemented" === "Niet Geïmplementeerd"\r
-\r
-"Shout Text" === ""\r
-"SShout/CShout" === ""\r
-"Channel 1 Text" === ""\r
-"Channel Text" === ""\r
-"Kibitz Text" === ""\r
-"Tell Text" === ""\r
-"Challenge Text" === ""\r
-"Request Text" === ""\r
-"Seek Text" === ""\r
-"Normal Text" === ""\r
-"None" === ""\r
-"Pawn" === "Pion"\r
-"Knight" === "Paard"\r
-"Bishop" === "Loper"\r
-"Rook" === "Toren"\r
-"Queen" === "Dame"\r
-"Information" === "Informatie"\r
-\r
-wclipbrd.c\r
-\r
-"Unable to convert position to FEN." === "Kan stelling niet in FEN omzetten"\r
-"Unable to copy FEN to clipboard." === "Kan FEN niet naar klembord kopiëren"\r
-"Cannot create temporary file name." === "Maken van tijdelijk opslagbestand mislukt"\r
-"Cannot open temporary file." === "Openen van tijdelijk opslagbestand mislukt"\r
-"Cannot write to temporary file." === "Schrijven naar tijdelijk opslagbestand mislukt"\r
-"Cannot reopen temporary file." === "Heropenen van tijdelijk opslagbestand mislukt"\r
-"Cannot determine size of file." === "Kan grootte van bestand niet bepalen"\r
-"Cannot allocate clipboard buffer." === "Reserveren ruimte op klembord mislukt"\r
-"Cannot read from temporary file." === "Lezen van tijdelijk opslagbestand mislukt"\r
-"Error reading from temporary file." === "Fout bij lezen van tijdelijk opslagbestand"\r
-"Cannot copy text to clipboard" === "Kan tekst niet naar klembord kopiëren"\r
-"Unable to allocate memory for clipboard." === "Reserveren geheugenruimte voor klembord mislukt"\r
-"Unable to lock clipboard memory." === "Vergrendelen van klembordgeheugen mislukt"\r
-"Cannot unlock clipboard memory." === "Ontgrendelen van klembordgeheugen mislukt"\r
-"Cannot open clipboard." === "Openen klembord mislukt"\r
-"Cannot empty clipboard." === "Ledigen klembord mislukt"\r
-"Cannot copy text to clipboard." === "Kopiëren van tekst naar klembord mislukt"\r
-"Cannot close clipboard." === "Afsluiten klembord mislukt"\r
-"Unable to paste FEN from clipboard." === "Plakken FEN vanaf klembord mislukt"\r
-"Unable to create temporary file." === ""\r
-"Error writing to temporary file." === ""\r
-"Unable to open clipboard." === ""\r
-"No text in clipboard." === ""\r
-"Unable to lock clipboard memory." === ""\r
-"Unable to allocate memory for text string." === ""\r
-"Unable to unlock clipboard memory." === ""\r
-"Unable to close clipboard." === ""\r
-\r
-woptions.c\r
-\r
-## For now, do NOT translate sound names, because WinBoard will no longer recognize them\r
-"Move" === ""\r
-"Bell" === ""\r
-"ICS Alarm" === ""\r
-"ICS Win" === ""\r
-"ICS Loss" === ""\r
-"ICS Draw" === ""\r
-"ICS Unfinished" === ""\r
-"Shout" === ""\r
-"SShout/CShout" === ""\r
-"Channel 1" === ""\r
-"Channel" === ""\r
-"Kibitz" === ""\r
-"Tell" === ""\r
-"Challenge" === ""\r
-"Request" === ""\r
-"Seek" === ""\r
-## end of sound names\r
-\r
-"Browse for Sound File" === "Bladeren voor Geluidsbestand"\r
-"Can't parse com port settings" === ""\r
-"Option Error" === "Optie Fout"\r
-"Invalid data rate" === ""\r
-"Option Error" === ""\r
-"Failed to set comm port state;\r\ninvalid options?" === ""\r
-"Failed to set comm port state" === ""\r
-"Invalid load game step rate" === ""\r
-"Invalid save game file name" === ""\r
-"Browse for Auto Save File" === "Bladeren voor automatische partijopslag"\r
-"Invalid moves per time control" === "Ongeldig aantal zetten per periode"\r
-"Invalid minutes per time control" === "Ongeldig aantal minuten per periode"\r
-"Invalid increment" === "Ongeldige tijdophoging"\r
-"Invalid initial time" === "Ongeldige starttijd"\r
-"Changing time control during a game is not implemented" === "De speelduur kan niet veranderd worden als een partij nog bezig is"\r
-\r
-"Variant %s not supported by %s" === "Schaakvariant %s kan door %s niet gespeeld worden"\r
-"Warning: second engine (%s) does not support this!" === "Pas op: het tweede schaakprogramma (%s) kan dit niet!"\r
-"Invalid ICS Alarm Time" === "Ongeldige tijdnoodwaarschuwingstijd"\r
-"Invalid max time per move" === "Ongeldige maximum tijd per zet"\r
-"Invalid time-odds factor" === "Ongeldige tijdsvoorgiftfactor"\r
-"Choose Folder" === "Kies Map"\r
-"Choose Book" === "Kies Openingsboek"\r
-"Choose Polyglot Directory" === "Kies Polyglot Map"\r
-"Choose EGTB Directory:" === "Kies EGTB Map:"\r
-"Polyglot was not found in the specified folder!" === "Polyglot is niet aanwezig in de gekozen map!"\r
-\r
-wgamelist.c\r
-\r
-"No game selected" === "Geen partij geselecteerd"\r
-"Can't go forward any further" === "U bent al aan het eind"\r
-"Can't back up any further" === "U bent al aan het begin"\r
-"No game list" === "Geen partijenoverzicht"\r
-"Game List" === "Partijenoverzicht"\r
-"Game list not loaded or empty" === "Partijenoverzicht niet gemaakt of leeg"\r
-"%s - %d/%d games" === "%s - %d/%d partijen"\r
-\r
-wedittags.c\r
-\r
-"Edit Tags" === "P G N Titels Bewerken"\r
-"Tags" === "P G N Titels"\r
-"Error replacing tags." === "Fout bij vervangen P G N Titels"\r
-\r
-wsettings.c\r
-\r
-"%s Engine Settings (%s)" === "Instellingen %s Schaakprogramma"\r
-"OK" === "OK"\r
-"Cancel" === "Annuleren"\r
-\r
-wchat.c\r
-\r
-"Chat Window %s" === "Kwebbelvenster %s"\r
-\r
-backend.c\r
-\r
-"bad timeControl option %s" === "Misvormde speeltijd instelling"\r
-"bad searchTime option %s" === "misvormde zoektijd instelling"\r
-## following to will appear in combinationslike "first engine" \r
-"first" === "eerste"\r
-"second" === "tweede"\r
-"protocol version %d not supported" === "protocol versie %d niet ondersteund"\r
-"Variant %s supported only in ICS mode" === "Schaakvariant %s werkt alleen op Internet Schaakdienst"\r
-"Unknown variant name %s" === "Onbekende schaakvariant %s"\r
-"Starting chess program" === "Schaakprogramma opstarten"\r
-"Could not open comm port %s" === "Kan com poort %s niet openen"\r
-"Could not connect to host %s, port %s" === "Verbinding maken met %s (poort %s) mislukt"\r
-"Unknown initialMode %s" === "Onbekende startmodus %s"\r
-"Can't have a match with no chess programs" === "Tweekamp is niet mogelik zonder schaakprogramma's"\r
-"Bad game file" === "Foutief partijenbestand"\r
-"Bad position file" === "Foutief stellingenbestand"\r
-"AnalyzeFile mode requires a game file" === "Partij analyseren vereist een partijenbestand"\r
-"Analysis mode requires a chess engine" === "Analyseren vereist een schaakprogramma"\r
-"Analysis mode does not work with ICS mode" === "Analyseren werkt niet met een Internet Schaakdienst"\r
-"MachineWhite mode requires a chess engine" === "Computer Wit verseist een schaakprogramma"\r
-"MachineWhite mode does not work with ICS mode" === "Computer Wit werkt niet met een Internet Schaakdienst"\r
-"MachineBlack mode requires a chess engine" === "Computer Zwart verseist een schaakprogramma"\r
-"MachineBlack mode does not work with ICS mode" === "Computer Zwart werkt niet met een Internet Schaakdienst"\r
-"TwoMachines mode does not work with ICS mode" === "Twee Programma's werkt niet met een Internet Schaakdienst"\r
-"TwoMachines mode requires a chess engine" === "Twee Programma's verseist een schaakprogramma"\r
-"Training mode requires a game file" === "Training vereist eenpartijenbestand"\r
-"Error writing to ICS" === "Fout bij zenden naar Interenet Schaakdienst"\r
-"Error reading from keyboard" === "Fout bij invoer toetsenbord"\r
-"Got end of file from keyboard" === "'Einde bestand' ontvangen van toetsenbord"\r
-"Error writing to display" === "Fout bij scrijven op beeldscherm"\r
-"Error gathering move list: two headers" === "Fout bij ophalen zettenlijst: twee koppen"\r
-"Error gathering move list: nested" === "Fout bij ophalen zettenlijst: één binnen ander"\r
-"Connection closed by ICS" === "Verbinding verbroken door Internet Schaakdienst"\r
-"Error reading from ICS" === "Fout bij ontvangen van Interenet Schaakdienst"\r
-"Failed to parse board string:\n\"%s\"" === "Onbegrijpelijk bord:\n\"%s\""\r
-"Game too long; increase MAX_MOVES and recompile" === "Partij te lang"\r
-"Error gathering move list: extra board" === "Fout bij ophalen zettenlijst: extra bord"\r
-"Illegal move \"%s\" from ICS" === "Onreglementaire zet \"%s\" van Internet Schaakdienst"\r
-"Couldn't parse move \"%s\" from ICS" === "Onbegrijpelijke zet \"%s\" van Internet Schaakdienst"\r
-## The leading 'say' is used as ICS command here, and should NOT be translated. Only the message behind it.\r
-"say Internal error; bad moveType %d (%d,%d-%d,%d)" === ""\r
-"You are playing Black" === "U speelt met Zwart"\r
-"You are playing White" === "U speelt met Wit"\r
-"It is White's turn" === "Wit is aan zet"\r
-"It is Black's turn" === "Zwart is aan zet"\r
-"Displayed position is not current" === "Getoonde stelling is niet de huidige"\r
-"Illegal move" === "Onreglementaire zet"\r
-"End of game" === "Einde partij"\r
-"Incorrect move" === "Incorrecte zet"\r
-## next 6: Second (first 3) or first (other) '%s' will be substituted for 'first' or 'second'.\r
-"Illegal move \"%s\" from %s machine" === "Onreglementaire zet \"%s\" van %s schaakprogramma"\r
-"Illegal move \"%s\" (rejected by %s chess program)" === "Onreglementaire zet \"%s\" (geweigerd door %s schaakprogramma)"\r
-"Failed to start %s chess program %s on %s: %s\n" === "Opstarten %s schaakprogramma %s op %s mislukt: %s\n"\r
-"Error writing to %s chess program" === "Fout bij zenden naar %s schaakprogramma"\r
-"Error: %s chess program (%s) exited unexpectedly" === "Fout: %s schaakprogramma onverwacht gestopt"\r
-"Error reading from %s chess program (%s)" === "Fout bij ontvangen van %s schaakprogramma (%s)"\r
-"Forfeit due to illegal move" === "Verloren wegens onreglementaire zet"\r
-"%s does not support analysis" === "%s kan niet analyseren"\r
-"Hint: %s" === ""\r
-"Machine accepts your draw offer" === "Schaakprogramma neemt remiseaanbod aan"\r
-"Machine offers a draw\nSelect Action / Draw to agree" === "Schaakprogramma bied remise aan\nKies Actie"\r
-"%s (only move)" === "%s (enige zet)"\r
-"Ambiguous move in ICS output: \"%s\"" === "Dubbelzinnige zet in bericht van Internet Schaakdienst: \"%s\""\r
-"Illegal move in ICS output: \"%s\"" === "Onreglementaire zet in bericht van Internet Schaakdienst: \"%s\""\r
-"Gap in move list" === "Lacune in zettenlijst"\r
-"Startup failure on '%s'" === "Opstarten '%s' mislukt"\r
-"Waiting for first chess program" === "Wacht op eerste schaakprogramma"\r
-"Waiting for second chess program" === "Wacht op tweede schaakprogramma"\r
-"Match %s vs. %s: final score %d-%d-%d" === "Tweekamp %s tegen %s: eindscore %d-%d-%d"\r
-"Stalemate" === "Pat"\r
-"Illegal move: %d.%s%s" === "Onreglementaire zet: %d.%s%s"\r
-"Ambiguous move: %d.%s%s" === "Dubelzinnige zet: %d.%s%s"\r
-"Can't open \"%s\"" === "Openen \"%s\" mislukt"\r
-"Cannot build game list" === "Maken partijenoverzicht mislukt"\r
-"No more games in this message" === "Geen partijen meer in dit bericht"\r
-"No game has been loaded yet" === "Er is nog geen partij ingelezen"\r
-"Game number out of range" === "Er is geen partij met dat nummer"\r
-"Can't seek on game file" === "Spoelen door partijenbestand mislukt"\r
-"Game not found in file" === "Het bestand bevat geen partij"\r
-"Bad FEN position in file" === "Ongeldige FEN stelling in bestand"\r
-"No moves in game" === "Partij zonder zetten"\r
-"No position has been loaded yet" === "Er is nog geen stelling ingelezen"\r
-"Can't seek on position file" === "Spoelen door stellingenbestand mislukt"\r
-"Position not found in file" === "Bestand bevat geen stelling"\r
-"Black to play" === "Zwart aan zet"\r
-"White to play" === "Wit aan zet"\r
-"You have edited the game history.\nUse Reload Same Game and make your move again." === "U heeft de partij bewerkt.\nGebruik Herlaad Partij en herhaaluw zet"\r
-"You have entered too many moves.\nBack up to the correct position and try again." === "U heeftteveel zetten ingevoerd.\nStap terug naarde juiste stelling, and probeer het opnieuw"\r
-"Displayed position is not current.\nStep forward to the correct position and try again." === "De getoonde stelling is niet de huidige.\nStap vooruit naar de juiste stelling en probeer het opnieuw"\r
-"You have not made a move yet" === "U heeft nog geen zet gedaan"\r
-"The cmail message is not loaded.\nUse Reload CMail Message and make your move again." === "Het cmail bericht is niet ingelezen.\nGebruik CMailbericht Herladen, en doe u zet opnieuw"\r
-"No unfinished games" === "Geen actieve partijen"\r
-"You have already mailed a move.\nWait until a move arrives from your opponent.\nTo resend the same move, type\n\"cmail -remail -game %s\"\non the command line." === ""\r
-"Failed to invoke cmail" === ""\r
-"Waiting for reply from opponent\n" === ""\r
-"Still need to make move for game\n" === ""\r
-"Still need to make moves for both games\n" === ""\r
-"Still need to make moves for all %d games\n" === ""\r
-"Still need to make a move for game %s\n" === ""\r
-"No unfinished games\n" === ""\r
-"Ready to send mail\n" === ""\r
-"Still need to make moves for games %s\n" === ""\r
-"Edit comment" === "Commentaar Bewerken"\r
-"Edit comment on %d.%s%s" === "Commentaar op %d.%s%s"\r
-"Starting analysis mode...\nIf this message stays up, your chess program does not support analysis." ===  ""\r
-"It is not White's turn" === "Wit is niet aan zet"\r
-"It is not Black's turn" === "Zwart is niet aan zet"\r
-"Wait until your turn,\nor select Move Now" === "Wacht op uw beurt,\nof kies nu een zet"\r
-"Starting second chess program" === "Bezig met opstarten tweede schaakprogramma"\r
-"Training mode off" === "Trainingmodus uit"\r
-"Training mode on" === "Trainingmodus aan"\r
-"Already at end of game" === "U bent alaan het eind"\r
-"Warning: You are still playing a game" === "Pas op: Uw partij is nog bezig"\r
-"Warning: You are still observing a game" === "Pas op: U bent nog toeschouwer bij een partij"\r
-"Warning: You are still examining a game" === "Pas op: U bent nog een partij aan het analyseren"\r
-"It is Black's turn" === "Zwart is aan zet"\r
-"It is White's turn" === "Wit is aan zet"\r
-"That square is occupied" === "Dat veld is bezet"\r
-"There is no pending offer on this move" === "Er is geen remiseaanbod gedaan op deze zet"\r
-"Your opponent is not out of time" === "Uw tegenstander is nog niet door zijn vlag"\r
-"Black offers a draw" === "Zwart biedt remise aan"\r
-"White offers a draw" === "Wit biedt remise aan"\r
-"You must make your move before offering a draw" === "U moet zetten voordat u remise aanbiedt"\r
-"You are not examining a game" === "U bent geenpartij aan het analyseren"\r
-"You can't revert while pausing" === "Herstellen gedurende een pauze is niet mogelijk"\r
-"It is your turn" === "U bent aan zet"\r
-"Wait until your turn" === "Wacht op uw beurt"\r
-"No hint available" === "Geen hint beschikbaar"\r
-"Analysis (%s)" === "Analyse (%s)"\r
-"Comment" === "Commentaar"\r
-"Comment on %d.%s%s" === "Commentaar op  %d.%s%s"\r
-"Both flags fell" === "Bijde vlaggen zijn gevallen"\r
-"White's flag fell" === "Wit's vlag is gavalen"\r
-"Black's flag fell" === "Zwart's vlag is gevallen"\r
-"Bad FEN position in clipboard" === "Ongeldige FEN stelling op klembord"\r
-"No response from ICS" === "Geen respons van Internet Schaakdienst"\r
-"You cannot do this while you are playing or observing" === "Dit kan niet als u aan het spelen of toeschouwen bent"\r
-"Click in holdings to choose piece" === "Klik in de voorraad om een stuk te kiezen"\r
-"Click clock to clear board" === "Klik op klok voor leeg bord"\r
-"Pull pawn backwards to under-promote" === "Trek pion terug voor minor promotie"\r
-\r
-END-OF-GAME MESSAGES (should they be translated?)\r
-## I think that only for visualization and not for PGN, as PGN files are shared all around the world\r
-## [OK, I adapted the source that way. So please translate.]\r
-\r
-"Game aborted" === "Partij afgelazen"\r
-"White wins on time" === "Wit wint op tijd"\r
-"Black wins on time" === "Zwart wint op tijd"\r
-"Both players ran out of time" === "Beide spelers overschreden hun tijd"\r
-"White resigns" === "Wit geeft op"\r
-"Black resigns" === "Zwart geeft op"\r
-"White mates" === "Zwart staat mat"\r
-"Black mates" === "Wit staat mat"\r
-"Draw" === "Remise"\r
-"Draw agreed" === "Remise overeengekomen"\r
-"Xboard adjudication: King destroyed" === "XBoard arbitrage: Koning opgeblazen"\r
-"Xboard adjudication: Bare king" === "XBoard arbitrage: Kale koning"\r
-"Xboard adjudication: 3rd check" === "XBoard arbitrage: 3e schaakje"\r
-"Xboard adjudication: Stalemate" === "XBoard arbitrage: Pat"\r
-"Xboard adjudication: Checkmate" === "XBoard arbitrage: Schaakmat"\r
-"Xboard adjudication: Insufficient mating material" === "XBoard arbitrage: Geen matpotentiëel"\r
-"Xboard adjudication: Trivial draw" === "XBoard arbitrage: Simpele remise"\r
-"XBoard adjudication: repetition draw" === "XBoard arbitrage: zettenherhaling"\r
-"Xboard adjudication: perpetual checking" === "XBoard arbitrage: eeuwig schaak"\r
-"Xboard adjudication: perpetual chasing" === "XBoard arbitrage: eeuwig najagen"\r
-"%Xboard adjudication: perpetual chasing of" === "XBoard arbitrage: eeuwig najagen van"\r
-"Xboard adjudication: 50-move rule" === "XBoard arbitrage: 50-zettenregel"\r
-"Draw claim: 50-move rule" === "Remise opgeëist: 50-zettenregel"\r
-"Draw claim: 3-fold repetition" === "Remise opgeëist: 3x zelfde stelling"\r
-"Draw claim: insufficient mating material" === "Remise opgeëist: geen matpotentiëel"\r
-"Xboard adjudication: long game" === "XBoard arbitrage: lange partij"\r
-"Xboard: Forfeit due to invalid move: %s (%c%c%c%c) res=%d" === "XBoard: ongeldige zet: %s (%c%c%c%c) res=%d"\r
-"Xboard: Forfeit due to illegal move: %s (%c%c%c%c)%c" === "XBoard: onreglementaire zet: %s (%c%c%c%c)%c"\r
-"Xboard adjudication" === "XBoard arbitrage"\r
-"User adjudication" === "Gebruiker arbitrage"\r
-"False win claim: '%s'" === "Onterechte winsteis: '%s'"\r
-"False draw claim: '%s'" === "Onterechte remiseëis: '%s'"\r
-"xboard exit" === "XBoard afgesloten"\r
-\r
-\r
-# NEW STRINGS FOR EXPERIMENTAL TM VERSION:\r
-\r
-# MENU\r
-\r
-"Edit Boo&k..." === "Openingsboek Be&werken"\r
-"Edit Engine List..." === "&Lijst met Schaakprogs Bewerken..."\r
-"Load Engine..." === "&Schaakprogramma Wisselen..."\r
-"Tournament..." === "Toernooi..."\r
-\r
-# LOAD ENGINE DIALOG\r
-\r
-"First" === "Eerste"\r
-"Second" === "Tweede"\r
-"Choose File" === "Kies Bestand"\r
-"Choose Folder:" === "Kies Map:"\r
-"Select engine from list:" === "Kies schaakprog van &lijst:"\r
-"or specify one below:" === "of specificeer er een hieronder"\r
-"Nickname (optional):" === "Bijnaam (optioneel)"\r
-"Use nickname in PGN tag" === "Gebruik bijnaam in P G N titel"\r
-"Engine (*.exe):" === "&Schaakprog (*.exe)"\r
-"command-line parameters:" === "&Parameters bij opstartbevel"\r
-"directory:" === "&map:"\r
-"(Directory will be derived from engine path when left empty)" === "(de map wordt afgeleid van het pad wanneer u het leeg laat)"\r
-"Add this engine to the list" === "&Voeg schaakprogramma toe aan lijst"\r
-"Must not use GUI book" === "Gebruik gezamenlijk openings&boek niet"\r
-"UCI" === "&UCI"\r
-"WB protocol v1 (skip waiting for features)" === "WB protocol v&1 (wacht niet of 'features')"\r
-"UCCI / USI (uses specified /uxiAdapter)" === "UCCI/USI (gebruik ingestelde uxiAdapter)"\r
-"Force current variant with this engine" === "Alleen met huidige schaakvariant"\r
-"Load mentioned engine as" === "&Gebruik schaakprogramma als"\r
-"Load Engine" === "Wisselen Schaakprogramma"\r
-"You did not specify the engine executable" === "U heeft geen schaakprogramma (.exe bestand) gespecificeerd"\r
-"Select single engine from the group" === "Kies een schaakprogramma uit deze groep"\r
-\r
-# TOURNAMENT OPTIONS DIALOG\r
-\r
-"Tournament file:" === "Toernooibestand:"\r
-"If you specify an existing file, the rest of this dialog will be ignored." === "Als u een bestaand bestand aangeeft wordt de rest van deze dialoog genegeerd"\r
-"Otherwise, the file will be created, with the settings you specify below:" === "Zo niet, dan wordt het bestand aangemaakt met onderstaande gegevens"\r
-"Select Engine:" === "Selecteer Schaakprogramma"\r
-"Use Swiss pairing engine (cycles = rounds)" === "Zwitsers (cycli = rondes)"\r
-"Tourney type (0=RR, 1=gauntlet):" === "Toernooitype (0=competitie)"\r
-"Sync after cycle" === "Synchroniseer na cyclus"\r
-"Number of tourney cycles:" === "Aantal toernooicycli:"\r
-"Sync after round" === "Synchroniseer na ronde"\r
-"Games per Match / Pairing:" === "Partijen per paring/tweekamp"\r
-"File for saving tourney games:" === "Bestand voor toernooipartijen:"\r
-"Game File with Opening Lines:" === "Bestand met Openingszetten:"\r
-"Game Number:" === "Partijnummer"\r
-"File with Start Positions:" === "Bestand met Beginstellingen:"\r
-"Position Number:" === "Stellingnummer"\r
-"Step through lines/positions in file" === "Stap door openingen/stellingen in bestand"\r
-"Rewind after (0 = never):" === "Terugspoelen na: (0 = nooit)"\r
-"Use each line/position twice" === "Gebruik elke opening/stelling 2x"\r
-"Pause between Games (ms):" === "Pauze tussen partijen (ms):"\r
-"Tournament and Match Options" === "Toernooi en Tweekamp Instellingen"\r
-"Tourney participants:" === "Deelnemers:"\r
-"Replace Engine" === "Vervang Speler"\r
-"Upgrade Engine" === "Invaller"\r
-"Time Control..." === "Speelduur..."\r
-"Common Engine..." === "Glob. Instellingen..."\r
-"Clone Tourney" === "Kloon Toernooi"\r
-"Make all use GUI book by default" === "Gebruik openingsboek voor iedereen"\r
-"You must supply a tournament file,\nfor storing the tourney progress" === "U moet een toernooibestand specificeren,\nwaarin de voortgang kan worden bijgehouden"\r
-"Not enough participants" === "Niet genoeg deelnemers voor een dergelijk toernooi"\r
-"Continue Later" === "Straks afmaken"\r
-"First you must specify an existing tourney file to clone" === "U moet eerst een bestand om te klonen specificeren"\r
-"No engine %s is installed" === "Er is geen schaakprogramma %s geïnstalleerd"\r
-\r
-\r
-# THEMES DIALOG\r
-\r
-"Board themes" === "Schaakbord thema's"\r
-"Select theme from list:" === "Kies thema uit de lijst:"\r
-"or specify new theme below:" === "of specifficeer een nieuw thema hieronder:"\r
-"Theme name:" === "Thema naam:"\r
-"Use board textures" === "Kleur bord in"\r
-"Light-square texture:" === "Patroon lichte velden"\r
-"Dark-square texture:" === "Patroon donkere velden"\r
-"Dark reorientation mode:" === "donkere orientatiemethode:"\r
-"Light reorientation mode:" === "lichte orientatiemethode:"\r
-"Draw border around board" === "Bord met rand"\r
-"Optional border bitmap:" === "Rand afbeelding"\r
-"        Beware: a specified piece font will prevail over piece bitmaps" === "        Let op: een schaakfiguren lettertype prevaleert over plaatjes"\r
-"Directory with piece bitmaps:" === "Map met stukkenplaatjes"\r
-"Use piece font" === "Gebruik schaakfiguur lettertype"\r
-"Font size (%):" === "Afmeting lettertype(%)"\r
-"Font name:" === "Lettertype:"\r
-"Font piece to char:" === "Letters voor stukken:"\r
-"Delete Theme" === "Verwijder thema"\r
-"Select single theme from the group" === "Selecteer een enkel thema uit de groep"\r
-\r
-# book.c\r
-\r
-"Could not create book" === "Kon geen openingen bestand maken"\r
-"Polyglot book not valid" === "Polyglot openingboek ongeldig"\r
-"Hash keys are different" === ""\r
-"Book Fault" === "Boek fout"\r
-"Book file exists! Try again for overwrite." === "Openingsboek bestaat al. Probeer het nog eens om het te overschrijven."\r
-\r
-# NEW MENU ITEMS IN 4.7\r
-\r
-"Save Games to &Book" === "Sla partijen op als openings&boek"\r
-"Colo&rs..." === "Kleu&ren..."\r
-"&Board Themes..." === "&Bord stijlen..."\r
-"Load &First Engine..." === "1e Schaakprogramma &Wisselen..."\r
-"Load &Second Engine..." === "2e &Schaakprogramma Wisselen..."\r
-"Auto &Create Logon" === "Bewaar login in&fo"\r
-\r
-JAWS strings\r
-\r
-# board coords, files\r
-"ay" === "a"\r
-"b" === ""\r
-"c" === ""\r
-"d" === ""\r
-"e" === ""\r
-"f" === ""\r
-"g" === ""\r
-"h" === ""\r
-"i" === ""\r
-"j" === ""\r
-"k" === ""\r
-"l" === ""\r
-# board coords, ranks\r
-"naught" === "nul"\r
-"zeroth" === "nulde"\r
-"first" === "eerste"\r
-"second" === "tweede"\r
-"third" === "derde"\r
-"fourth" === "vierde"\r
-"fifth" === "vijfde"\r
-"sixth" === "zesde"\r
-"seventh" === "zevende"\r
-"eighth" === "achtste"\r
-"nineth" === "negende"\r
-# piece names\r
-"White Pawn" === "Witte Pion"\r
-"White Knight" === "Wit Paard"\r
-"White Bishop" === "Witte Loper"\r
-"White Rook" === "Witte Toren"\r
-"White Queen" === "Witte Dame"\r
-"White Guard" === "Witte Paleiswacht"\r
-"White Elephant" === "Witte Olifant"\r
-"White Arch Bishop" === "Witte Aartsbischop"\r
-"White Chancellor" === "Witte Kanselier"\r
-"White General" === "Witte Generaal"\r
-"White Man" === "Witte Burger"\r
-"White Cannon" === "Wit Kanon"\r
-"White Night Rider" === "Witte Nachtruiter"\r
-"White Crowned Bishop" === "Witte Gekroonde Loper"\r
-"White Crowned Rook" === "Witte Gekroonde Toren"\r
-"White Grass Hopper" === "Witte Sprinkhaan"\r
-"White Veteran" === "Witte Veteraan"\r
-"White Falcon" === "Witte Valk"\r
-"White Amazon" === "Witte Amazone"\r
-"White Snake" === "Witte Cobra"\r
-"White Unicorn" === "Witte Eenhoorn"\r
-"White King" === "Witte Koning"\r
-"Black Pawn" === "Zwarte Pion"\r
-"Black Knight" === "Zwart Paard"\r
-"Black Bishop" === "Zwarte Loper"\r
-"Black Rook" === "Zwarte Toren"\r
-"Black Queen" === "Zwarte Dame"\r
-"Black Guard" === "Zwarte Paleiswacht"\r
-"Black Elephant" === "Zwarte Olifant"\r
-"Black Arch Bishop" === "Zwarte Aartsbischop"\r
-"Black Chancellor" === "Zwarte Kanselier"\r
-"Black General" === "Zwarte Generaal"\r
-"Black Man" === "Zwarte Burger"\r
-"Black Cannon" === "Zwart Kanon"\r
-"Black Night Rider" === "Zwarte Nachtruiter"\r
-"Black Crowned Bishop" === "Zwarte Gekroonde Loper"\r
-"Black Crowned Rook" === "Zwarte Gekroonde Toren"\r
-"Black Grass Hopper" === "Zwarte Sprinkhaan"\r
-"Black Veteran" === "Zwarte Veteraan"\r
-"Black Falcon" === "Zwarte Valk"\r
-"Black Amazon" === "Zwarte Amazone"\r
-"Black Snake" === "Zwarte Cobra"\r
-"Black Unicorn" === "Zwarte Eenhoorn"\r
-"Black King" === "Zwarte Koning"\r
-"Empty" === "Leeg"\r
-"Pawn" === "Pion"\r
-"Knight" === "Paard"\r
-"Bishop" === "Loper"\r
-"Rook" === "Toren"\r
-"Queen" === "Dame"\r
-"Guard" === "Paleiswacht"\r
-"Elephant" === "Olifant"\r
-"Arch Bishop" === "Aartsbischop"\r
-"Chancellor" === "Kanselier"\r
-"General" === "Generaal"\r
-"Man" === "Burger"\r
-"Cannon" === "Kanon"\r
-"Night Rider" === "Nachtruiter"\r
-"Crowned Bishop" === "Gekroonde Loper"\r
-"Crowned Rook" === "Gekroonde Toren"\r
-"Grass Hopper" === "Sprinkhaan"\r
-"Veteran" === "Veteraan"\r
-"Falcon" === "Valk"\r
-"Amazon" === "Amazone"\r
-"Snake" === "Cobra"\r
-"Unicorn" === "Eenhoorn"\r
-"King" === "Koning"\r
-\r
-# JAWS menu\r
-\r
-"Say Clock &Time\tAlt+T" === "Lees &Klokken\tAlt+T"\r
-"Say Last &Move\tAlt+M" === "Zeg Laatste &Zet\tAlt+M"\r
-"Say W&ho's Turn\tAlt+X" === "Zeg Wie &aan Zet is\tAlt+X"\r
-"Say Complete &Position\tAlt+P" === "Lees hele &Stelling op\tAlt+P"\r
-"Say &White Pieces\tAlt+W" === "Noem &Witte Stukken\tAlt+W"\r
-"Say &Black Pieces\tAlt+B" === "Noem &Zwarte Stukken\tAlt+B"\r
-"Say Board &Rank\tAlt+R" === "Lees &Rij op\tAlt+R"\r
-"Say Board &File\tAlt+F" === "Lees &Lijn Op\tAlt+F"\r
-"Say &Upper Diagonals\tAlt+U" === "Lees &Bovendiagonalen op\tAlt+U"\r
-"Say &Lower Diagonals\tAlt+L" === "Lees &Onderdiagonalen op\tAlt+L"\r
-"Say K&night Moves\tAlt+N" === "Noem &Paard Zetten\tAlt+N"\r
-"Say Current &Square\tAlt+S" === "Noem &Huidig Veld\tAlt+S"\r
-"Say &Attacks\tAlt+A" === "Noem Aan&vallers\tAlt+A"\r
-"Say Attacke&d\tAlt+D" === "Noem Aan&gevallenen\tAlt+D"\r
-\r
-"black holdings" === "zwarte voorraad"\r
-"white holdings" === "witte voorraad"\r
-"holdings" === "voorraad"\r
-"Your" === "Uw"\r
-"would have" === "zou hebben"\r
-"You must select a piece first" === "U moet eerst een stuk activeren"\r
-"possible captures from here are" === "Mogelijke slagzetten van hieruit"\r
-"None" === "Geen"\r
-"Pieces that can capture you are" === "Stukken die u kunt slaan zijn"\r
-"You are defended by" === "U staat gedekt door"\r
-"rank" === "rij"\r
-"empty" === "leeg"\r
-"file empty" === "lijn leeg"\r
-"The diagnol squares to your upper right contain" === "De diagonaal rechts boven u bevat"\r
-"There is no squares to your upper right" === "Er zijn geen velden rechts boven u"\r
-"The diagnol squares to your upper left contain" === "De diagonaal links boven u bevat"\r
-"There is no squares to your upper left" === "Er zijn geen velden links boven u"\r
-"The diagnol squares to your lower right contain" === "De diagonaal rechts onder u bevat"\r
-"There is no squares to your lower right" === "Er zijn geen velden rechts onder u"\r
-"The diagnol squares to your lower left contain" === "De diagonaal links onder u bevat"\r
-"There is no squares to your lower left" === "Er zijn geen velden links onder u"\r
-"The possible squares a Knight could move to are" === "Velden waareen paard heen zou kunnen zijn"\r
-"The squares a Knight could possibly attack from are" === "De velden van waaruit een paard u zou kunnen aanvallen zijn"\r
-"White pieces" === "Witte stukken"\r
-"Black pieces" === "Zwarte stukken"\r
-"Pieces" === "Stukken"\r
-"are located" === "bevinden zich"\r
-"at" === "op"\r
-"nowhere" === "nergens"\r
-"You strayed into the white holdings" === "U bent de witte voorraad binnengestapt"\r
-"You strayed into the black holdings" === "U bent de zwarte voorraad binnengestapt"\r
-"Your current position is" === "Uw huidige locatie is"\r
-"on a light square" === "op een licht veld"\r
-"on a dark square" === "op een donker veld"\r
-"white holds" === "wit heeft voorradig"\r
-"black holds" === "zwart heeft voorradig"\r
-"all" === "alles"\r
-"It is your turn" === "U bent aan zet"\r
-"It is your opponents turn" === "Uw tegenstander is aan zet"\r
-"White is on move here" === "Wit is aan zet"\r
-"Black is on move here" === "wart is aan zet"\r
-"score %s %d at %d ply" === "Score %d %d bij %d halve zetten"\r
-"plus" === "plus"\r
-"minus" === "minus"\r
-"promotion" === "promotie"\r
-"move" === "zet"\r
-"queen side castling" === "lange rokade"\r
-"king side castling" === "korte rokade"\r
-"dropped on" === "neergezet op"\r
-"to" === "naar"\r
-"Capturing a" === "en slaat een"\r
-"Capturing onn passann" === "en slaat en passant"\r
-"check" === "schaak"\r
-"finishing off" === "en verslaat"\r
-"white wins" === "wit wint"\r
-"black wins" === "zwart wint"\r
-"game ends in a draw" === "partij eindigt in remise"\r
-"draw" === "remise"\r
-"due to" === "vanwege"\r
-"illegal" === "onreglementair"\r
-"White clock" === "witte klok"\r
-"Black clock" === "zwarte klok"\r
-"is now" === "is nu"\r
-"on" === "aan"\r
-"off" === "uit"\r
-"selected" === "geactiveerd"\r
-"unselected" === "gedeactiveerd"\r
-"ponder" === "peins"\r
-"animate moving" === "verschuiven stukken"\r
-"auto flag" === "automatisch vlaggen"\r
-"always promote to queen" === "altijd to dame promoveren"\r
-"legality testing" === "weiger onreglementaire zetten"\r
-"hide thinking" === "verberg gedachten"\r
-"extended P G N info" === "scores in P G N"\r
-"extra info in move history" === "scores in zettenlijst"\r
diff --git a/winboard/language/romanian.lng b/winboard/language/romanian.lng
deleted file mode 100644 (file)
index 8559006..0000000
+++ /dev/null
@@ -1,1042 +0,0 @@
-## WinBoard language file\r
-##\r
-## LANGUAGE NAME IN ENGLISH / TRANSLATED\r
-## v1.0 beta 1\r
-##\r
-## Translation by NAME (DATE)\r
-## SAME AS ABOVE, TRANSLATED\r
-## WEB ADDRESS OF TRANSLATOR\r
-##\r
-## If you revise this, please insert your date, name and description.\r
-## TRANSLATION OF MESSAGE ABOVE\r
-##\r
-\r
-TRANSLATION BY \r
-11-oct-2011. Dl Silvian Rucsandescu din Iasi. \r
-\r
-##   Of duplicats, only the first occurrence will be used, even if it was in\r
-##   a different dialog! For this reason you will only see an 'OK' in the\r
-##   About Box. After you translated it there, this translation will be used\r
-##   for all other dialogs as well.\r
-## o Use ## for comments, to make iteasy to find them scattered throughout the translation\r
-## o Careful with temptation of direct translation, by example 'movimiento' for 'move' when 'jugada' is better.\r
-## o Try to use short phrases, more text doesn't imply more clearness.\r
-## o Check that your translation is right, does it mean what it does?\r
-## o Test your translation, check every dialog.\r
-## o For standard chess names check Wikipedia for confirmation.\r
-## o For menus, assign shortcuts (character &) until you finish the translation.\r
-##   preferably it should be unique in the applicable menu, so it depends on translation of other items!\r
-\r
-winboard.rc\r
-\r
-MENUS:\r
-## Pleace keep the accelerator-key indications on the menu items, and keep \r
-## the keystrokes the same (for now). (Alt, Ctrl and Shift can be translated.)\r
-\r
-"&New Game\tCtrl-N" === "Partida Noua"\r
-"New Sh&uffle Game..." === "Partida Noua Shuffle"\r
-"New &Variant...\tAlt+Shift+V" === "Varianta Noua"\r
-"&Load Game...\tCtrl-O" === "Incarca Partida"\r
-"&Save Game...\tCtrl-S" === "Salveaza Partida"\r
-"L&oad Position...\tCtrl+Shift+O" === "Incarca Pozitia"\r
-"S&ave Position...\tCtrl+Shift+S" === "Salveaza Pozitia"\r
-"Save as &Diagram..." === "Salveaza ca Diagrama"\r
-"&Quit" === "Inchide"\r
-## Next six currently not used\r
-"Load &Next Game\tAlt+PgDn" === "Incarca Partida Urmatoare"\r
-"Load &Previous Game\tAlt+PgUp" === "Incarca Partida Precedenta"\r
-"&Reload Same Game" === "Reincarca Aceeasi Partida"\r
-"Load N&ext Position\tAlt+Shift+PgDn" === "Incarca Urmatoarea Pozitie"\r
-"Load Pre&vious Position\tAlt+Shift+PgUp" === "Incarca Precedenta Pozitie"\r
-"Reload Sa&me Position" === "Reincarca Aceeasi Pozitie"\r
-\r
-"&Copy Game To Clipboard\tCtrl+C" === "Copie Partida pe Clipboard"\r
-"C&opy Position To Clipboard\tCtrl+Shift+C" === "Copie Pozitia pe Clipboard"\r
-"Copy Game List to Clipboard" === "Copie Lista Partidelor pe Clipboard"\r
-"&Paste Game From Clipboard\tCtrl+V" === "Copie Partida din Clipboard"\r
-"P&aste Position From Clipboard\tCtrl+Shift+V" === "Copie Pozitia din Clipboard"\r
-"&Edit Game\tCtrl+E" === "Editeaza Partida"\r
-"E&dit Position\tCtrl+Shift+E" === "Editeaza Pozitia"\r
-"Edit Ta&gs..." === "Editeaza Eticheta"\r
-"Edit Co&mment..." === "Editeaza Comentariul"\r
-"Enter &Username..." === "Introdu Nume Utilizator"\r
-"&Revert\tHome" === "Revenire"\r
-"&Annotate" === "Adnotare"\r
-"&Truncate Game\tEnd" === "Scurteaza Partida"\r
-"&Backward\tAlt+Left" === "Inapoi"\r
-"&Forward\tAlt+Right" === "Inainte"\r
-"Back to &Start\tAlt+Home" === "Inapoi la Start"\r
-"For&ward to End\tAlt+End" === "Inainte la Sfarsit"\r
-\r
-"Flip &View\tF2" === "Vizualizare Inversa"\r
-"&Swap Clocks" === "Schimba Ceasurile"\r
-"Engine &Output\tAlt+Shift+O" === "Calculatia Motorului"\r
-"Move &History\tAlt+Shift+H" === "Istoricul Mutarilor"\r
-"Evaluation &Graph\tAlt+Shift+E" === "Graficul Evaluarii"\r
-"Game &List\tAlt+Shift+G" === "Lista Partidelor"\r
-"Open &New Chat Window" === "Deschide Fereastra Noua de Chat"\r
-"Type In &Move...\tAlt+I" === "Introdu Mutari"\r
-"&Tags" === "Eticheta"\r
-"&Comments" === "Comentarii"\r
-"&Game List Tags..." === "Eticheta Partidei"\r
-"&Board..." === "Tabla"\r
-"&Fonts..." === "Fonturi"\r
-\r
-"Machine &White\tCtrl+W" === "Motorul la Alb"\r
-"Machine &Black\tCtrl+B" === "Motorul la Negru"\r
-"&Two Machines\tCtrl+T" === "Doua Motoare"\r
-"Machine Both" === "Ambele Motoare"\r
-"&Analysis Mode\tCtrl+A" === "Modul de Analiza"\r
-"Analyze &File\tCtrl+F" === "Fisierul de Analizat"\r
-"&Edit Game\tCtrl+E" === "Editeaza Partida"\r
-"E&dit Position\tCtrl+Shift+E" === "Editeaza Pozitia"\r
-"Trai&ning" === "Antrenament"\r
-"&ICS Client" === "ICS Client"\r
-"&Machine Match" === "Partida Intre Motoare"\r
-"&Pause\tPause" === "Pauza"\r
-\r
-"&Accept\tF3" === "Accept"\r
-"D&ecline\tF4" === "Refuz"\r
-"Re&match\tF12" === "Rejucare"\r
-"Call &Flag\tF5" === "Caderea Steagului"\r
-"&Draw\tF6" === "Remiza"\r
-"Ad&journ\tF7" === "Intrerupere"\r
-"A&bort\tF8" === "Renunt"\r
-"&Resign\tF9" === "Cedez"\r
-"Stop &Observing\tF10" === "Opreste Observarea"\r
-"Stop E&xamining\tF11" === "Opreste Examinarea"\r
-"&Upload to Examine" === "Incarca spre Examinare"\r
-"Adjudicate to &White" === "Adjudecat la Alb"\r
-"Adjudicate to &Black" === "Adjudecat la Negru"\r
-"Adjudicate &Draw" === "Adjudecat Remiza"\r
-\r
-"Install 1st..." === "Instaleaza motorul 1"\r
-"Install 2nd..." === "Instaleaza motorul 2"\r
-"Engine #&1 Settings..." === "Setare Motorul nr 1"\r
-"Engine #&2 Settings..." === "Setare Motorul nr 2"\r
-"&Hint..." === "Sugestie"\r
-"&Book..." === "Carte de Deschideri"\r
-"&Move Now\tCtrl+M" === "Muta Acum"\r
-"&Retract Move\tCtrl+X" === "Retrage Mutarea"\r
-\r
-"&Mute all Sounds" === "Fara Sunet"\r
-"&General..." === "Optiuni Generale"\r
-"&Time Control...\tAlt+Shift+T" === "Controlul Timpului"\r
-"Common &Engine...\tAlt+Shift+U" === "Setari Comune Enginelor UCI"\r
-"Ad&judications...\tAlt+Shift+J" === "Adjudecarea"\r
-"&Load Game...\tAlt+Shift+L" === "Incarca Partida"\r
-"&Save Game...\tAlt+Shift+S" === "Salveaza Partida"\r
-"G&ame List..." === "Optiunile Listei de Partide"\r
-"Soun&ds..." === "Sunetul"\r
-"&ICS..." === "ICS"\r
-"Add ICS..." === "Adauga ICS"\r
-"Comm&unications..." === "Comunicatii"\r
-"Save Settings &Now" === "Salveaza Setarile Acum"\r
-"Save Settings on E&xit" === "Salveaza Setarile la Iesire"\r
-\r
-"Help &Contents\tF1" === "Continutul Ajutorului"\r
-"Help &Index" === "Indexul Ajutorului"\r
-"How to &Use Help" === "Cum se Foloseste Ajutorul"\r
-"&About WinBoard" === "Despre WinBoard"\r
-\r
-"White" === "Albul"\r
-"Promote" === "Transforma"\r
-"Pawn" === "Pion"\r
-"Knight" === "Cal"\r
-"Bishop" === "Nebun"\r
-"Rook" === "Tura"\r
-"Queen" === "Dama"\r
-"King" === "Rege"\r
-## The next 2 are pieces for Capablanca Chess. Use the names from the Wikipedia entry for this,\r
-## rather than litteral translations of the English names!\r
-"Archbishop" === "Arhiepiscop"\r
-"Chancellor" === "Cancelar"\r
-## Next 2 Xiangqi (Chinese Chess) pieces. Google for 'Xiangqi' in the target language to get the standard translation.\r
-"Elephant" === "Elefant"\r
-"Cannon" === "Tun"\r
-"Empty Square" === "Camp Liber"\r
-"Black" === "Negru"\r
-"Demote" === "Degradeaza"\r
-"Clear Board    " === "Curata Tabla"\r
-## Next 3: Shogi pieces.\r
-"Gold" === "Aur"\r
-"Silver" === "Argint"\r
-"Lance" === "Lancie"\r
-\r
-"Drop" === "Cadere"\r
-\r
-"Cop&y and Paste" === "Copie si Scrie"\r
-"&Copy" === "Copie"\r
-"&Paste" === "Scrie"\r
-\r
-"&Undo" === "Revenire"\r
-"Cu&t" === "Taie"\r
-"&Copy" === "Copie"\r
-"&Paste" === "Scrie"\r
-"Select &All" === "Selecteaza Totul"\r
-\r
-DIALOGS:\r
-\r
-ABOUTBOX\r
-\r
-## Pehaps copyright notices best left untranslated?\r
-"About WinBoard" === "Despre Winboard"\r
-"OK" === "OK"\r
-"Chessboard for Windows" === "WinBoard GUI pentru Windows"\r
-"Copyright 1991 Digital Equipment Corporation" === ""\r
-"Enhancements Copyright 1992-2014  Free Software Foundation" === ""\r
-"Enhancements Copyright 2005\r\nAlessandro Scotti" === ""\r
-## What happened with H.G.Muller? [He sold his copyrights to FSF for $1]\r
-## The following string of 6 spaces can be translated to an acknowledgement of the translator,\r
-## like "Traducción por Óscar Toledo G.".\r
-"Tradus de Dl Silvian Rucsandescu Iasi" === "Tradus de Dl Silvian Rucsandescu Iasi "\r
-"WinBoard 0.0.0" === "WinBoard 4.5.3"\r
-\r
-ABOUTBOX2\r
-\r
-## Weird, it is needed? [Normally not. It is a built-in 'Easter Egg' joke.]\r
-"galactic" === "galactic"\r
-\r
-TIME CONTROL DIALOG\r
-\r
-"Time Control" === "Controlul Timpului"\r
-"Conventional chess clock" === "Ceas Conventional"\r
-"Incremental clock" === "Ceas cu Incrementare"\r
-"Cancel" === "Anuleaza"\r
-\r
-## Next is there really only for the benefit of blind users of the JAWS version...\r
-"Use arrow keys to specify which clock setting type, then press tab to alter values." === "Foloseste sagetile pentru a specifica setarile ceasului, apoi apãsaþi butonul pentru a modifica valorile."\r
-"Fixed time per move" === "Timp fix pe mutare"\r
-"Number of moves:" === "Numarul de mutari"\r
-"Within number of minutes:" === "In numarul de minute "\r
-"Initial number of minutes:" === "Numarul initial de minute"\r
-"Plus number of seconds per move:" === "Plus numarul de secunde pe mutare"\r
-"Maximum seconds per move:" === "Maximul de secunde pe mutare"\r
-"Time-Odds Factors:" === "Timpi Diferiti"\r
-"Engine #1:" === "Motorul nr 1"\r
-"Engine #2:" === "Motorul nr 2"\r
-\r
-LOAD OPTIONS \r
-\r
-"Load Game Options" === "Incarca Optiunile Partidei"\r
-"Load games with &automatic stepping" === "Incarca partidele cu rulare automata"\r
-"&seconds per move" === "secunde pe mutare"\r
-"when filtering game list on position, use thresholds:" === "cand se filtreaza lista de partide dupa pozitie , foloseste limitele"\r
-"Search Mode: " === "Modul de Cautare"\r
-"Match exact &position" === "Cauta pozitia exacta"\r
-"Match if position is s&ubset" === "Cauta daca pozitia este continuta"\r
-"Match material with e&xact pawn structure" === "Cauta pozitii cu aceeasi structura de pioni"\r
-"Match &material" === "Cauta material"\r
-"Material &range (upper board-half is optional)" === "Gama de material (jumãtatea de sus a tablei este opþionala)"\r
-"Material &difference (optional material balanced)" === "Diferenta materiala (material optional echilibrat)"\r
-"Also match reversed &colors" === "Cauta de asemenea culorile inversate"\r
-"Also match &left-right mirror image" === "Cauta de asemenea imaginea in oglinda stanga-dreapta"\r
-"minimum Elo for &best player" === "ELO minim pentru cel mai bun jucator"\r
-"minimum Elo for &weakest players" === "ELO minim pentru cel mai slab jucator"\r
-"or later &year" === "sau mai tarziu anul"\r
-"co&nsecutive positions" === "pozitii consecutive"\r
\r
-SAVE OPTIONS DIALOG\r
-\r
-"Save Game Options" === "Salveaza Optiunile Partidei"\r
-"Save As: " === "Salveaza ca"\r
-"Save games automatically" === "Salveaza partidele automat"\r
-"Prompt for filename" === "Prompter pentru numele fisierului"\r
-"To file:" === "Spre fisierul"\r
-"PGN" === "PGN"\r
-"Old" === "Vechi"\r
-"Browse..." === "Cauta"\r
-"Save out of book info in PGN" === "Salveaza iesirea din cartea de deschideri in PGN"\r
-\r
-1536\r
-## This dialog is only used in some older Windows versions, so you might not be ableto test it.\r
-\r
-"Open" === "Deschide"\r
-"File &Name:" === "Denumirea Fisierului"\r
-"&Directories:" === "Directorul"\r
-"List Files of &Type:" === "Listeaza Fisierele de Tipul"\r
-"Dri&ves:" === "Partitia"\r
-"&Help" === "Ajutor"\r
-\r
-"&Index number:" === "Numarul de index"\r
-\r
-COMMPORT\r
-## Always disabled if you are not actually using an ICS through a comport, so difficult to test.\r
-\r
-"Communication Port Settings" === "Setarile Portului de Comunicare"\r
-"Net&work..." === "Reteaua"\r
-"&Port:" === "Port"\r
-"Data &Rate:" === "Rata de Transfer a Datelor"\r
-"Data &Bits:" === "Numarul de Biti ai datelor"\r
-"P&arity:" === "Paritatea"\r
-"&Stop Bits:" === "Stop Biti"\r
-"F&low:" === "Functionare"\r
-\r
-EDIT COMMENT\r
-\r
-"Edit Comment" === "Editeaza Comentariul"\r
-"&Clear" === "Sterge"\r
-"&Edit" === "Editeaza"\r
-\r
-PROMOTION POPUP\r
-\r
-"Promote to:" === "Transforma in"\r
-## next used in Shogi as promotion-popup header\r
-"Promote?" === "Transformi?"\r
-"Promotion" === "Transformare"\r
-"&Queen" === "Regina"\r
-"&Rook" === "Turn"\r
-"&Bishop" === "Nebun"\r
-"K&night" === "Cal"\r
-"&King" === "Rege"\r
-"&Cancel" === "Anuleaza"\r
-\r
-"Chance&llor" === "Cancelar"\r
-"&Archbishop" === "Arhiepiscop"\r
-"YES" === "DA"\r
-"NO" === "NU"\r
-"C&entaur" === "Centaur"\r
-\r
-GAME LIST\r
-\r
-"Game List" === "Lista Partidelor"\r
-"&Load" === "Incarca"\r
-"&Prev" === "Precedenta"\r
-"&Next" === "Urmatoarea"\r
-"&Close" === "Inchide"\r
-"Filter" === "Filtreaza"\r
-\r
-EDIT TAGS\r
-\r
-"Edit Tags" === "Editeaza Eticheta"\r
-\r
-ERROR\r
-\r
-"ICS Interaction" === "Interactiune ICS"\r
-"Dialog" === "Dialog"\r
-"Error" === "Eroare"\r
-## I don't think the next will really appear ever.\r
-"Sorry Charlie" === "Imi pare rau Charlie"\r
-\r
-COLORIZE\r
-\r
-"I C S Interaction Colors" === "Interactiunea culorilor I C S"\r
-"Interaction Colors" === "Interactiunea Culorilor"\r
-"Premove" === "Mutare Anticipata"\r
-"Alarm" === "Alarma"\r
-"Colors" === "Culori"\r
-"&Choose Color..." === "Alege Culoarea"\r
-"&Bold" === ""\r
-"&Italic" === ""\r
-"&Underline" === "Subliniaza"\r
-"&Strikeout" === "Barat"\r
-\r
-QUESTION\r
-\r
-## next one seems only a placeholder, and never appears? [might also be just a programmer's joke...]\r
-"Enter a chess engine command or just type something stupid that will completely screw things up." === "Abracadabra"\r
-"Question" === "Intrebare"\r
-"Enter" === "Introdu"\r
-\r
-STARTUP DIALOG\r
-\r
-"WinBoard Startup" === "Pornire WinBoard"\r
-"What would you like to do?" === "Ce aþi dori sã faceþi ?"\r
-"&Play against a chess engine or match two engines" === "Joaca contra unui motor de sah sau meci inte doua motoare"\r
-"&Use an Internet Chess Server" === "Foloseste un Server de Sah pe Internet"\r
-"Just &view or edit game files" === "Vizualizeaza sau editeaza fisierele partidelor"\r
-"Specify Chess &Engines:" === "Specifica Motoarele de Sah"\r
-"Specify Chess &Server:" === "Specifica Serverul de Sah"\r
-"&Additional options" === "Optiuni Suplimentare"\r
-\r
-INDEX (IN FILE-BROWSE DIALOG)\r
-\r
-"Inde&x number:" === "Numarul de index"\r
-\r
-MOVE TYPE-IN\r
-\r
-"Type in a move" === "Introdu o mutare"\r
-\r
-USER-NAME TYPE-IN\r
-\r
-"Type in your name" === "Scrieþi numele Dvs"\r
-\r
-SOUND DIALOG\r
-\r
-"Sounds" === "Sunetul"\r
-\r
-"&Event:" === "Evenimentul"\r
-"&No sound" === "Fara sunet"\r
-"&Default beep" === "Bip default"\r
-"&Built-in sound:" === "Sunetul continut de program "\r
-"&WAV file:" === "Fisier WAV"\r
-\r
-"B&rowse..." === "Cauta"\r
-"&Play" === "Joaca"\r
-"&Defaults" === "Defaults"\r
-\r
-GENERAL OPTIONS DIALOG\r
-## pleace keep the indication of the accelerator keys for the same keystroke\r
-## Note: finely tuned spaces to align keys at right\r
-\r
-"General Options" === "Optiuni Generale"\r
-"Always on &Top" === "Intotdeauna Deasupra"\r
-"Always &Queen            Ctrl+Shift+Q" === "Intotdeauna Dama"\r
-"Animate &Dragging" === "Tragere Animata"\r
-"&Animate Moving         Ctrl+Shift+A" === "Mutare Animata"\r
-"Auto &Flag                   Ctrl+Shift+F" === "Steag Automat"\r
-"Auto Flip &View" === "Intoarce Tabla Automat"\r
-"Auto &Raise Board" === "Fereastra Deasupra"\r
-"&Blindfold" === "Sah Orb"\r
-"Highlight Dra&gging" === "Marcheaza campurile de plecare - sosire"\r
-"Highlight Last &Move" === "Marcheaza ultima mutare"\r
-"Periodic &Updates" === "Updateuri periodice"\r
-"Ponder &Next Move  Ctrl+Shift+P" === "Motorul permanent"\r
-"&Popup Exit Message" === "Afiseaza un mesaj inainte de iesire"\r
-"Popup Move &Errors" === "Afiseaza un mesaj la mutarile gresite"\r
-"Show Butt&on Bar" === "Afiseaza bara cu butoanele de comanda"\r
-"Show &Coordinates" === "Afiseaza coordonatele"\r
-"&Show Thinking" === "Arata calculatia motorului"\r
-"Test &Legality            Ctrl+Shift+L" === "Testeaza legalitatea mutarii"\r
-"&Hide Thinking          Ctrl+Shift+H" === "Ascunde calculatia motorului"\r
-"&Info in Move History   Ctrl+Shift+I" === "Informatii in lista de mutari"\r
-"&Send Engine Think" === "Transmite calculatia motorului"\r
-"E&xtended PGN Info    Ctrl+Shift+X" === "Informatii PGN extinse"\r
-"Highlight with Arro&w" === "Marcheaza cu sageata"\r
-"Displa&y Logos" === "Afiseaza logourile motoarelor"\r
-"One-Click Move" === "Mutare printr-un click"\r
-\r
-ICS OPTIONS\r
-\r
-"ICS Options" === "Optiunile ICS"\r
-"&Auto Comment" === "Comentariu Automat"\r
-"Auto &Observe" === "Observatie Automata"\r
-"&Get Move List" === "Primeste Lista de Mutari"\r
-"&Local Line Editing" === "Editarea Liniei Locale"\r
-"&Quiet Play" === "Joc Tacut"\r
-"&Premove" === "Mutare Anticipata"\r
-"&White first move" === "Albul are prima mutare"\r
-"&Black first move" === "Negrul are prima mutare"\r
-"&Sound alarm at" === "Suna alarma la"\r
-"seconds" === "secunde"\r
-"Choose..." === "Alege"\r
-"Do &not colorize messages" === "Nu colora mesajele"\r
-"&Auto Kibitz" === "Auto Kibitz"\r
-"Auto Kibit&z" === "Auto Kibitz"\r
-"See&k Graph" === "Cerceteaza Graficul"\r
-"auto-&Refresh" === "Auto-Refresh"\r
-"Bckgnd Obser&ve" === "Observare din background"\r
-"&Dual Board" === "Tabla duala"\r
-"One-Click &Move" === "Mutare printr-un click"\r
-"Background..." === "In spate"\r
-"&Defaults..." === "Implicite"\r
-"Startup &Chat Boxes:" === "Porneste Boxele de Conversatie"\r
-"General" === "General"\r
-\r
-BOARD OPTIONS\r
-## (NOTE: AllWhite uses the white (outline-style) piece bitmaps for both sides\r
-##        FlipBlack draws the black pieces upside down)\r
-\r
-"Board Options" === "Optiunile Tablei"\r
-"Defaults" === "Implicite"\r
-"Light Squares" === "Campuri deschise"\r
-"Dark Squares" === "Campuri inchise"\r
-"White Pieces" === "Piesele Albe"\r
-"Black Pieces" === "Piesele Negre"\r
-"Square Highlights" === "Marcheaza Campul"\r
-"Premove Highlights" === "Marcheaza Anticipata"\r
-"Monochrome" === "Monocrom"\r
-"All White" === "Totul Alb"\r
-"Flip Black" === "Intoarce Negrele"\r
-"Size" === "Marimea"\r
-\r
-BOARD SIZES (translate as number?)\r
-## Don't put numbers, or nobody will translate them. [True. But do we really want them translated?]\r
-## This is a space for imagination!\r
-"&Tiny" === "Foarte Mica"\r
-"T&eeny" === "Mititica"\r
-"&Dinky" === "Micuta"\r
-"&Petite" === "Mica 1"\r
-"Sl&im" === "Mica 2"\r
-"&Small" === "Mica"\r
-"Medi&ocre" === "Nu chiar mica"\r
-"&Middling" === "Mijlocie"\r
-"&Average" === "Normala"\r
-"Mode&rate" === "Moderata"\r
-"Medi&um" === "Medie"\r
-"Bul&ky" === "Groasa"\r
-"&Large" === "Larga"\r
-"&Big" === "Mare"\r
-"&Huge" === "Enorma"\r
-"&Giant" === "Giganta"\r
-"&Colossal" === "Colosala"\r
-"Tita&nic" === "Titanica"\r
-\r
-FONTS\r
-\r
-"Fonts" === "Fonturi"\r
-"Current Board Size" === "Marimea curenta a Tablei"\r
-"All Board Sizes" === "Toate marimile Tablei"\r
-"&Revert to Defaults" === "Revenire la Implicite"\r
-"Clocks" === "Ceasurile"\r
-"Messages" === "Mesajele"\r
-"Coordinates" === "Coordonatele"\r
-"Tags" === "Etichetele"\r
-"Comments" === "Comentariile"\r
-"I C S Interaction" === "Interactiune I C S"\r
-\r
-"&Color..." === "Culoarea..."\r
-"Move History, Engine Output" === "Lista Mutarilor,Calculatia Motorului"\r
-\r
-ADJUDICATIONS DIALOG\r
-\r
-"Adjudications" === "Adjudecarea"\r
-"Ponder Next Move" === "Calculeaza Urmatoarea Mutare"\r
-"Enable and Show Thinking (recommended)" === "Comuteaza si Arata Calculatia (recomandat)"\r
-"Hide Thinking when Playing against Human" === "Ascunde Calculatia la Jocul contra Oamenilor "\r
-"Periodic Updates (for Analysis Mode)" === "Updateuri Periodice (pentru Modul de Analiza)"\r
-"Adjudications in non-ICS games" === "Adjudecarea in partidele non-ICS"\r
-"Adjudicate draw after:" === "Adjudeca remiza dupa"\r
-"moves" === "mutari"\r
-"Win/loss adjudication threshold:" === "limita de adjudecare castig/pierdere"\r
-"centipawns" === "centipioni"\r
-"&Verify Engine Claims" === "Verifica Solicitarile Motorului"\r
-"Detect &Mates" === "Detecteaza Maturile"\r
-"Draw if &Insufficient Material" === "Remiza daca Materialul este Insuficient"\r
-"Adjudicate &Trivial Draws" === "Adjudeca Remizele Clare"\r
-"Apply" === "Aplica"\r
-## next 2 are suffixed to a text-edit containing a number (50 or 3)\r
-"-move rule" === "-regula celor 50"\r
-"-fold repeats" === "-a repetare"\r
-"Engine #1 Score is Absolute" === "Motorul 1 Scorul este Absolut"\r
-"Engine #2 Score is Absolute" === "Motorul 2 Scorul este Absolut"\r
-\r
-COMMON ENGINE DIALOG\r
-\r
-"Common Engine Settings" === "Setari Comune Enginelor UCI"\r
-"Polyglot Directory:" === "Directorul pt. Polyglot"\r
-"Hash Size (MB):" === "Marimea Hashului (MB)"\r
-"EGTB Path:" === "Adresa bazelor de final"\r
-"EGTB Size (MB):" === "Hashul bazelor de final (MB)"\r
-"Use Book:" === "Utilizeaza Cartea"\r
-"Max nr of CPUs:" === "Nr. max. de CPUs"\r
-"First has Own Book" === "Albul are cartea sa"\r
-"Second has Own Book" === "Negrul are cartea sa"\r
-"Book Depth:" === "Profunzimea Cartii"\r
-"Book Variation:" === "Variatia Cartii"\r
-"Default Match Games:" === "Meciuri Implicite"\r
-\r
-NEW-VARIANT DIALOG\r
-## (NOTE: the 'holdings' are the pieces standing next to the board ('in hand')\r
-\r
-"Variants" === "Variantele de Sah"\r
-"Variant" === "Varianta"\r
-"Board size:" === "Marimea tablei"\r
-"ranks" === "randuri"\r
-"files" === "coloane"\r
-"Holdings with room for:" === "Pegatiti-va pentru"\r
-"pieces" === "piese"\r
-"('-1' means defaults for selected variant)" === "('-1' inseamna "implicit" pentru varianta selectata)"\r
-\r
-VARIANT NAMES: \r
-"&normal" === ""\r
-"&FRC" === ""\r
-"&wildcastle" === ""\r
-"&nocastle" === ""\r
-"&losers" === ""\r
-"&giveaway" === ""\r
-"s&uicide" === ""\r
-"&3Check" === ""\r
-"&twokings" === ""\r
-"&atomic" === ""\r
-"cra&zyhouse" === ""\r
-"&bughouse" === ""\r
-"&Twilight" === ""\r
-"Sp&artan" === ""\r
-"&shogi" === ""\r
-"su&per" === ""\r
-"&knightmate" === ""\r
-"&Berolina" === ""\r
-"c&ylinder" === ""\r
-"&fairy" === ""\r
-"&makruk" === ""\r
-"&gothic" === ""\r
-"&capablanca" === ""\r
-"&Janus" === ""\r
-"&CRC" === ""\r
-"&Falcon" === ""\r
-"cou&rier" === ""\r
-"&Great" === ""\r
-"&Shatranj" === ""\r
-"&xiangqi" === ""\r
-\r
-NEW SHUFFLE GAME\r
-\r
-"New Shuffle Game" === "Partida Noua Shuffle"\r
-"&Start Position Number:" === "Pozitia de Start Numarul"\r
-"Random" === "La Intamplare"\r
-\r
-GAME-LIST OPTIONS DIALOG\r
-\r
-"Game List Options" === "Optiunile Listei Partidei"\r
-"PGN &Tags:" === "PGN si Etichete"\r
-"&Up" === "Sus"\r
-"&Down" === "Jos"\r
-"Default" === "Implicit"\r
-"Factory" === "Fabrica"\r
-"Restore to:" === "Restaureaza"\r
-\r
-MOVE HISTORY WINDOW\r
-\r
-"Move History" === "Istoricul Mutarilor"\r
-\r
-EVALUATION GRAPH\r
-\r
-"Evaluation Graph" === "Graficul de Evaluare"\r
-\r
-ENGINE OUTPUT WINDOW\r
-\r
-"Engine output" === "Calculatia Motorului"\r
-"Engine #1" === "Motorul nr. 1"\r
-"NPS" === "NPS"\r
-"Engine #2" === "Motorul nr. 2"\r
-\r
-CHAT BOXES\r
-\r
-"Chat Window" === "Fereastra de Conversatie"\r
-"Chat partner:" === "Partenerul de Conversatie"\r
-"Clear" === "Sterge"\r
-"Send" === "Trimite"\r
-\r
-winboard.c\r
-\r
-"&File" === "Fisier"\r
-"&Edit" === "Editeaza"\r
-"&View" === "Vizualizare"\r
-"&Mode" === "Mod"\r
-"&Action" === "Actiune "\r
-"&Step" === "Pas"\r
-"E&ngine" === "Motor"\r
-"&Options" === "Optiuni"\r
-"&Help" === "Ajutor"\r
-"You can only start a match from the initial position." === "Puteti incepe o partida doar din pozitia initiala"\r
-"Font name too long:" === "Denumirea fontului prea lunga"\r
-"Font point size missing:" === "Lipseste marimea fontului"\r
-"Can't parse color name %s" === "Nu poate analiza numele culorii %s"\r
-"Unrecognized board size value" === "Marimea tablei necunoscuta"\r
-"Unrecognized argument" === "Argument necunoscut"\r
-"No value provided for argument" === "Nici o valoare alocata argumentului"\r
-"Incomplete \\ escape in value for" === "Incomplet \\ pierdere in valoare pentru"\r
-"Failed to open indirection file" === "Ratata deschiderea fisierului incorect "\r
-"Unrecognized boolean argument value" === "Valoarea argumentului boolean necunoscuta"\r
-"Unrecognized argument" === "Argument necunoscut"\r
-"Too many colors" === "Prea multe culori"\r
-"&Minimize\tCtrl+F4" === "Micsoreaza"\r
-"White: %s" === "Albul: %s"\r
-"We only care about the height here" === "Avem grija doar de inaltime aici"\r
-"Cannot build game list" === "Nu se poate construi lista de partide"\r
-"Load Game from File" === "Incarca Partida din Fisierul"\r
-"Load Position from File" === "Incarca Pozitia din Fisierul"\r
-"Save Game to File" === "Salveaza Partida in Fisierul"\r
-"Save Diagram to File" === "Salveaza Diagrama in Fisierul"\r
-"Save Position to File" === "Salveaza Pozitia in Fisierul"\r
-"%s does not support analysis" === "%s nu suporta analiza"\r
-"Analyze Game from File" === "Analizeaza Partida din Fisierul"\r
-"Unable to activate help" === "Imposibil sa activeze ajutorul"\r
-"Send to chess program:" === "Trimite programului de sah"\r
-"Send to second chess program:" === "Trimite programului de sah nr 2"\r
-"Direct Command" === "Comanda Directa"\r
-"Error loading sound %s" === "Eroare la incarcarea sunetului %s"\r
-"Error playing sound %s" === "Eroare la rularea sunetului %s"\r
-"File open failed" === "Deschiderea fisierului ratata"\r
-"Internal error in file dialog box" === "Eroare interna in casuta de dialog a fisierului"\r
-"Option Error" === "Optiunea Eroare"\r
-"Choose an option, or cancel to exit" === "Alege o optiune, ori anuleaza pentru iesire"\r
-"Unable to activate help" === "Imposibil de activat ajutorul"\r
-"Displayed move is not current" === "Mutarea afisata nu este cea curenta"\r
-"Could not parse move" === "Nu s-a putut interpreta mutarea"\r
-"%s:\nError code %d" === "%s:\nEroare de cod %d"\r
-"Error" === "Eroare"\r
-"Fatal Error" === "Eroare Fatala"\r
-"Exiting" === "Iesind"\r
-"%s:\nError code %d" === "%s:\nEroare de cod %d"\r
-"Note" === "Nota"\r
-"Error writing to chess program" === "Eroare de scris catre programul de sah"\r
-"User" === "Utilizator"\r
-"Unknown" === "Necunoscut"\r
-"White" === "Albul"\r
-"Black" === "Negrul"\r
-"Save Game to File" === "Salveaza Partida in Fisierul"\r
-"Not implemented" === "Neimplementat"\r
-\r
-"Shout Text" === "Text de Iesire"\r
-"SShout/CShout" === ""\r
-"Channel 1 Text" === "Text Canal 1"\r
-"Channel Text" === "Text Canal"\r
-"Kibitz Text" === "Text Kibitz"\r
-"Tell Text" === "Spune Textul"\r
-"Challenge Text" === "Textul pentru Intrecere"\r
-"Request Text" === "Cerere"\r
-"Seek Text" === "Textul de Cautare"\r
-"Normal Text" === "Text Normal"\r
-"None" === "Nimic"\r
-"Pawn" === "Pion"\r
-"Knight" === "Cal"\r
-"Bishop" === "Nebun"\r
-"Rook" === "Turn"\r
-"Queen" === "Dama"\r
-"Information" === "Informatie"\r
-\r
-wclipbrd.c\r
-\r
-"Unable to convert position to FEN." === "Imposibil sa transform pozitia in FEN"\r
-"Unable to copy FEN to clipboard." === "Imposibil sa copii FEN-ul spre clipboard "\r
-"Cannot create temporary file name." === "Nu pot creia un nume de fisier temporar "\r
-"Cannot open temporary file." === "Nu pot deschide un fisier temporar"\r
-"Cannot write to temporary file." === "Nu pot scrie catre un fisier temporar"\r
-"Cannot reopen temporary file." === "Nu pot redeschide fisierul temporar"\r
-"Cannot determine size of file." === "Nu pot determina marimea fisierului"\r
-"Cannot allocate clipboard buffer." === "Nu pot aloca buferul clipboardului"\r
-"Cannot read from temporary file." === "Nu pot citi din fisierul temporar"\r
-"Error reading from temporary file." === "Eroare de citire din fisierul temporar"\r
-"Cannot copy text to clipboard" === "Nu pot copia textul pe clipboard"\r
-"Unable to allocate memory for clipboard." === "Incapabil sa aloc memorie pentru clipboard"\r
-"Unable to lock clipboard memory." === "Imposibil sa blochez memoria clipboardului"\r
-"Cannot unlock clipboard memory." === "Imposibil sa deblochez memoria clipboardului"\r
-"Cannot open clipboard." === "Nu pot deschide clipboardul"\r
-"Cannot empty clipboard." === "Nu pot sterge clipboardul"\r
-"Cannot copy text to clipboard." === "Nu pot copia textul pe clipboard"\r
-"Cannot close clipboard." === "Nu pot inchide clipboardul"\r
-"Unable to paste FEN from clipboard." === "Imposibil sa copii FENul din clipboard"\r
-"Unable to create temporary file." === "Imposibil sa creiez un fisier temporar"\r
-"Error writing to temporary file." === "Eroare de scris in fisierul temporar"\r
-"Unable to open clipboard." === "Imposibil sa deschid clipboardul"\r
-"No text in clipboard." === "Nici un text in clipboard"\r
-"Unable to lock clipboard memory." === "Imposibil sa blochez memoria clipboardului"\r
-"Unable to allocate memory for text string." === "Imposibil sa aloc memorie pentru stringul urmator"\r
-"Unable to unlock clipboard memory." === "Imposibil sa deblochez memoria clipboardului"\r
-"Unable to close clipboard." === "Imposibil sa inchid clipboardul"\r
-\r
-woptions.c\r
-\r
-## For now, do NOT translate sound names, because WinBoard will no longer recognize them\r
-"Move" === ""\r
-"Bell" === ""\r
-"ICS Alarm" === ""\r
-"ICS Win" === ""\r
-"ICS Loss" === ""\r
-"ICS Draw" === ""\r
-"ICS Unfinished" === ""\r
-"Shout" === ""\r
-"SShout/CShout" === ""\r
-"Channel 1" === ""\r
-"Channel" === ""\r
-"Kibitz" === ""\r
-"Tell" === ""\r
-"Challenge" === ""\r
-"Request" === ""\r
-"Seek" === ""\r
-## end of sound names\r
-\r
-"Browse for Sound File" === "Cauta Fisierul de Sunet"\r
-"Can't parse com port settings" === "Nu se pot analiza setarile portului de comunicare"\r
-"Option Error" === "Optiunea Eroare"\r
-"Invalid data rate" === "Rata de date invalida"\r
-"Option Error" === "Optiunea Eroare"\r
-"Failed to set comm port state;\r\ninvalid options?" === "Esuat in setarea portului de comunicatii;\r\ninvalid options?"\r
-"Failed to set comm port state" === "Esuat in setarea portului de comunicatii"\r
-"Invalid load game step rate" === "Rata de derulare a incarcarii partidei invalida"\r
-"Invalid save game file name" === "Numele fisierului de salvare a partidei invalid"\r
-"Browse for Auto Save File" === "Cauta Auto Salvarea Fisierului"\r
-"Invalid moves per time control" === "Mutari pe timpul de control invalide"\r
-"Invalid minutes per time control" === "Minute pe timpul de control invalide"\r
-"Invalid increment" === "Increment invalid"\r
-"Invalid initial time" === "Timp initial invalid"\r
-"Changing time control during a game is not implemented" === "Schimbarea timpului de control in timpul partidei nu este implementata"\r
-\r
-"Variant %s not supported by %s" === "Varianta %s nu este suportata de %s"\r
-"Warning: second engine (%s) does not support this!" === "Atentie: al doielea motor (%s) nu suporta aceasta"\r
-"Invalid ICS Alarm Time" === "Timp de Alarma ICS Invalid"\r
-"Invalid max time per move" === "Timp maxim pe mutare invalid"\r
-"Invalid time-odds factor" === "Factorul de diferenta de timp invalid"\r
-"Choose Folder" === "Alege Folderul"\r
-"Choose Book" === "Alege Cartea de Deschideri"\r
-"Choose Polyglot Directory" === "Alege Directorul pentru Polyglot"\r
-"Choose EGTB Directory:" === "Alege Directorul pentru EGTB"\r
-"Polyglot was not found in the specified folder!" === "Polyglot nu a fost gasit in directorul specificat!"\r
-\r
-wgamelist.c\r
-\r
-"No game selected" === "Nici o partida selectata"\r
-"Can't go forward any further" === "Nu poate merge mai departe"\r
-"Can't back up any further" === "Nu se poate inapoi mai mult"\r
-"No game list" === "Fara lista de partide"\r
-"Game List" === "Lista de Partide"\r
-"Game list not loaded or empty" === "Lista de partide neincarcata sau goala"\r
-"%s - %d/%d games" === "%d (%d,%d-%d,%d) partide"\r
-\r
-wedittags.c\r
-\r
-"Edit Tags" === "Editeaza Eticheta"\r
-"Tags" === "Eticheta"\r
-"Error replacing tags." === "Eroare la inlocuirea etichetei"\r
-\r
-wsettings.c\r
-\r
-"%s Engine Settings (%s)" === "%s Setarile Motorului (%s)"\r
-"OK" === "OK"\r
-"Cancel" === "Inchide"\r
-\r
-wchat.c\r
-\r
-"Chat Window %s" === "Fereastra de Conversatie %s"\r
-\r
-backend.c\r
-\r
-"bad timeControl option %s" === "optiune incorecta de timp %s"\r
-"bad searchTime option %s" === "optiune incotecta de timp de cautare %s "\r
-## following to will appear in combinationslike "first engine" \r
-"first" === "primul"\r
-"second" === "al doielea"\r
-"protocol version %d not supported" === "versiunea de protocol %d nu este suportata"\r
-"Variant %s supported only in ICS mode" === "Varianta %s suportata doar in modul ICS"\r
-"Unknown variant name %s" === "Numele variantei necunoscut %s"\r
-"Starting chess program" === "Porneste programul de sah"\r
-"Could not open comm port %s" === "Nu se poate deschide portul de comunicatii %s"\r
-"Could not connect to host %s, port %s" === "Nu se poate conecta la gazda %s, portul %s"\r
-"Unknown initialMode %s" === "Modul initial necunoscut %s"\r
-"Can't have a match with no chess programs" === "Nu putem avea un meci fara programe de sah"\r
-"Bad game file" === "Fisierul partidei incorect"\r
-"Bad position file" === "Fisierul pozitiei incorect"\r
-"AnalyzeFile mode requires a game file" === "Modul AnalizaFisierului cere un fisier de partida"\r
-"Analysis mode requires a chess engine" === "Modul de analiza cere un motor de sah "\r
-"Analysis mode does not work with ICS mode" === "Analiza nu lucreaza cu modul ICS"\r
-"MachineWhite mode requires a chess engine" === "Modul MasinaAlba cere un motor de sah"\r
-"MachineWhite mode does not work with ICS mode" === "Modul MasinaAlba nu merge cu modul ICS"\r
-"MachineBlack mode requires a chess engine" === "Modul MasinaNeagra cere un motor de sah"\r
-"MachineBlack mode does not work with ICS mode" === "Modul MasinaNeagra nu merge cu modul ICS"\r
-"TwoMachines mode does not work with ICS mode" === "Modul DouaMasini nu merge cu modul ICS"\r
-"TwoMachines mode requires a chess engine" === "Modul DouaMasini cere un motor de sah"\r
-"Training mode requires a game file" === "Modul de antrenamernt cere un fisier de partide"\r
-"Error writing to ICS" === "Eroare de scris catre ICS"\r
-"Error reading from keyboard" === "Eroare de citit din claviatura"\r
-"Got end of file from keyboard" === "Scoate textul din claviatura"\r
-"Error writing to ICS" === "Eroare de scris catre ICS"\r
-"Error writing to display" === "Eroare de scris catre afisaj"\r
-"Error gathering move list: two headers" === "Eroare de colectare la lista mutarilor: doua anteturi"\r
-"Error gathering move list: nested" === "Eroare de colectare la lista mutarilor: imbricate"\r
-"Connection closed by ICS" === "Conexiune inchisa de ICS"\r
-"Error reading from ICS" === "Eroare de citire de la ICS"\r
-"Failed to parse board string:\n\"%s\"" === "Esuat in analiza stringului tablei:\n\"%s\""\r
-"Game too long; increase MAX_MOVES and recompile" === "Partida prea lunga: mareste MAX_MOVES si recompileaza"\r
-"Error gathering move list: extra board" === "Eroare colectare lista mutari: extra board"\r
-"Illegal move \"%s\" from ICS" === "Mutare ilegala \"%s\" de la ICS "\r
-"Couldn't parse move \"%s\" from ICS" === "Nu se poate analiza mutarea \"%s\" de la ICS"\r
-## The leading 'say' is used as ICS command here, and should NOT be translated. Only the message behind it.\r
-"say Internal error; bad moveType %d (%d,%d-%d,%d)" === "Eroare interna :tip de mutare gresit %d (%d,%d-%d,%d)"\r
-"You are playing Black" === "Tu joci cu Negrul"\r
-"You are playing White" === "Tu joci cu Albul"\r
-"It is White's turn" === "Este randul Albului"\r
-"It is Black's turn" === "Este randul Negrului"\r
-"Displayed position is not current" === "Pozitia afisata nu este cea curenta"\r
-"Illegal move" === "Mutare ilegala"\r
-"End of game" === "Sfarsitul partidei"\r
-"Incorrect move" === "Mutare incorecta"\r
-## next 6: Second (first 3) or first (other) '%s' will be substituted for 'first' or 'second'.\r
-"Illegal move \"%s\" from %s machine" === "Mutare ilegala \"%s\" de la primul calculator"\r
-"Illegal move \"%s\" (rejected by %s chess program)" === "Mutare ilegala \"%s\" (respinsa de de catre primul program de sah)"\r
-"Failed to start %s chess program %s on %s: %s\n" === "Esuat in pornirea %s primului program de sah pe %s: %s\n"\r
-"Error writing to %s chess program" === "Eroare de scris catre primul program de sah"\r
-"Error: %s chess program (%s) exited unexpectedly" === "Eroare primul program de sah a iesit neasteptat"\r
-"Error reading from %s chess program (%s)" === "Eroare de citire de la primul program de sah"\r
-"Forfeit due to illegal move" === "Forfait datorat unei mutari ilegale"\r
-"%s does not support analysis" === "%s nu suporta analiza"\r
-"Hint: %s" === "Ajutor: %s"\r
-"Machine accepts your draw offer" === "Computerul accepta oferta Dvs de remiza"\r
-"Machine offers a draw\nSelect Action / Draw to agree" === "Computerul ofera o remiza\nSelecteaza Actiunea / Agreati remiza "\r
-"%s (only move)" === "%s (doar mutarea)"\r
-"Ambiguous move in ICS output: \"%s\"" === "Mutare ICS ambigua: \"%s\""\r
-"Illegal move in ICS output: \"%s\"" === "Mutare ICS ilegala: \"%s\""\r
-"Gap in move list" === "Decalaj in lista de mutari"\r
-"Game too long; increase MAX_MOVES and recompile" === "Partida prea lunga; mariti MAX_MOVES si recompilati"\r
-"Variant %s not supported by %s" === "Varianta %s nu este suportata de catre %s"\r
-"Startup failure on '%s'" === "Start esuat pentru'%s'"\r
-"Waiting for first chess program" === "Asteptam primul program de sah"\r
-"Waiting for second chess program" === "Asteptam al doilea program de sah"\r
-"Match %s vs. %s: final score %d-%d-%d" === "Partida %s vs. %s: scorul final %d-%d-%d"\r
-"Stalemate" === "Remiza"\r
-"Illegal move: %d.%s%s" === "Mutare ilegala: %d.%s%s"\r
-"Ambiguous move: %d.%s%s" === "Mutare ambigua: %d.%s%s"\r
-"Can't open \"%s\"" === "Nu pot deschide \"%s\""\r
-"Cannot build game list" === "Nu pot construi lista de partide"\r
-"No more games in this message" === "Nici o partida in acest mesaj"\r
-"No game has been loaded yet" === "Nici o partida nu a fost inca incarcata"\r
-"Can't back up any further" === "Fara revenire la mutari mai departe"\r
-"Game number out of range" === "Numarul partidei in afara seriei"\r
-"Can't seek on game file" === "Nu se poate cauta in fisierul partidei"\r
-"Game not found in file" === "Partida negasita in fisier"\r
-"Bad FEN position in file" === "FEN incorect in fisier"\r
-"No moves in game" === "Nu mai sunt mutari in partida"\r
-"No position has been loaded yet" === "Nici o pozitie nu a fost inca incarcata"\r
-"Can't back up any further" === "Fara revenire la mutari mai departe"\r
-"Can't open \"%s\"" === "Nu pot deschide \"%s\""\r
-"Can't seek on position file" === "Nu se poate cauta in fisierul pozitiei"\r
-"Position not found in file" === "Pozitie negasita in fisier"\r
-"Bad FEN position in file" === "FEN incorect in fisier"\r
-"Black to play" === "Negrul la mutare"\r
-"White to play" === "Albul la mutare"\r
-"Can't open \"%s\"" === "Can't open \"%s\""\r
-"You have edited the game history.\nUse Reload Same Game and make your move again." === "Ai editat istoria partidei.\nFoloseste Reincarca Aceeasi Partida si fa mutarea ta din nou."\r
-"You have entered too many moves.\nBack up to the correct position and try again." === "Ai introdus prea multe mutari.\nRevino la pozitia corecta si incearca din nou."\r
-"Displayed position is not current.\nStep forward to the correct position and try again." === "Pozitia afisata nu este curenta.\nMergi inainte spre pozitia corecta si incearca din nou."\r
-"You have not made a move yet" === "Nu ai facut inca o mutare"\r
-"The cmail message is not loaded.\nUse Reload CMail Message and make your move again." === "Mesajul de CMail nu este incarcat.\nFoloseste Reincarca Mesajul de CMail si fa mutarea din nou."\r
-"No unfinished games" === "Nu exista partide neterminate"\r
-"You have already mailed a move.\nWait until a move arrives from your opponent.\nTo resend the same move, type\n\"cmail -remail -game %s\"\non the command line." === "Ai trimis deja o mutare.\nAsteapta pana o mutare soseste de la oponent.\nPentru a retrimite mutarea,  tipareste\n\"cmail -remail -partida %s\"\nu linia de comanda."\r
-"Failed to invoke cmail" === "Esuat in invocarea cmail"\r
-"Waiting for reply from opponent\n" === "Asteptand replica de la oponent\n"\r
-"Still need to make move for game\n" === "Inca trebuie facuta mutarea pentru partida\n"\r
-"Still need to make moves for both games\n" === "Inca trebuiesc facute mutarile pentru ambele partide\n"\r
-"Still need to make moves for all %d games\n" === "Inca trebuiesc facute mutari pentru toate %d partidele\n"\r
-"Still need to make a move for game %s\n" === "Inca trebuie facuta o mutare pentru partida %s\n"\r
-"No unfinished games\n" === "Nu exista partide neterminate\n"\r
-"Ready to send mail\n" === "Gata sa trimit mailul\n"\r
-"Still need to make moves for games %s\n" === "Inca trebuiesc facute mutari pentru partidele %s\n"\r
-"Edit comment" === "Editeaza comentariul"\r
-"Edit comment on %d.%s%s" === "Editeaza comentariul pentru %d.%s%s"\r
-"Starting analysis mode...\nIf this message stays up, your chess program does not support analysis." ===  "Declansata analiza...\nDaca acest mesaj ramane, programul Dvs de sah nu suporta analiza."\r
-"It is not White's turn" === "Nu este randul Albului"\r
-"It is not Black's turn" === "Nu este randul Negrului"\r
-"Wait until your turn,\nor select Move Now" === "Asteapta pana este randul tau,\sau selecteaza Muta Acum"\r
-"Starting second chess program" === "Porneste al doilea program de sah"\r
-"Training mode off" === "Inchide Modul de antrenament"\r
-"Training mode on" === "Deschide Modul de antrenament"\r
-"Already at end of game" === "Deja la finalul partidei"\r
-"Warning: You are still playing a game" === "Atentie: inca joci o partida"\r
-"Warning: You are still observing a game" === "Atentie: inca observi o partida"\r
-"Warning: You are still examining a game" === "Atentie: inca examinezi o partida"\r
-"It is Black's turn" === "Este randul Negrului"\r
-"It is White's turn" === "Este randul Albului"\r
-"That square is occupied" === "Acel camp este ocupat"\r
-"There is no pending offer on this move" === "Nu existã nici o ofertã în curs pe aceastã mutare" \r
-"Your opponent is not out of time" === "Adversarul tau nu a depasit timpul"\r
-"Black offers a draw" === "Negrul ofera o remiza"\r
-"White offers a draw" === "Albul ofera o remiza"\r
-"You must make your move before offering a draw" === "Trebuie sa faci o mutare inainte de a oferi o remiza"\r
-"You are not examining a game" === "Nu examinezi o partida"\r
-"You can't revert while pausing" === "Nu puteþi reveni în timp ce asteptati"\r
-"Wait until your turn,\nor select Move Now" === "Asteapta pana iti vine randul,\sau selecteaza Muta Acum"\r
-"It is your turn" === "Este randul tau"\r
-"Wait until your turn" === "Asteapta pana este randul tau"\r
-"No hint available" === "Nici un ajutor disponibil"\r
-"Analysis (%s)" === "Analiza (%s)"\r
-"Comment" === "Comentariu"\r
-"Comment on %d.%s%s" === "Conentariu despre %d.%s%s"\r
-"Both flags fell" === "Cad ambele steaguri"\r
-"White's flag fell" === "Cade steagul albului"\r
-"Black's flag fell" === "Cade steagul negrului"\r
-"Bad FEN position in clipboard" === "Positie FEN incorecta in clipboard"\r
-"No response from ICS" === "Niciun raspuns de la ICS"\r
-"You cannot do this while you are playing or observing" === "Nu poti face asta cand joci sau observi"\r
-"Click in holdings to choose piece" === "Faceti click pentru a alege piesa"\r
-\r
-END-OF-GAME MESSAGES (should they be translated?)\r
-## I think that only for visualization and not for PGN, as PGN files are shared all around the world\r
-## [OK, I adapted the source that way. So please translate.]\r
-\r
-"Game aborted" === "Partida esuata"\r
-"White wins on time" === "Albul castiga la timp"\r
-"Black wins on time" === "Negrul castiga la timp"\r
-"Both players ran out of time" === "Ambii jucatori au depasit timpul"\r
-"White resigns" === "Albul cedeaza"\r
-"Black resigns" === "Negrul cedeaza"\r
-"White mates" === "Albul da mat"\r
-"Black mates" === "Negrul da mat"\r
-"Draw" === "Remiza"\r
-"Draw agreed" === "Remiza prin intelegere"\r
-"Xboard adjudication: King destroyed" === "Adjudecare Xboard: Regele distrus"\r
-"Xboard adjudication: Bare king" === "Rege singur"\r
-"Xboard adjudication: 3rd check" === "Adjudecare Xboard: al treilea sah"\r
-"Xboard adjudication: Stalemate" === "Adjudecare Xboard: Pat"\r
-"Xboard adjudication: Checkmate" === "Adjudecare Xboard: Mat"\r
-"Xboard adjudication: Insufficient mating material" === "Adjudecare Xboard: material insuficient"\r
-"Xboard adjudication: Trivial draw" === "Adjudecare Xboard: Remiza banala"\r
-"XBoard adjudication: repetition draw" === "Adjudecare Xboard: remiza prin repetitie"\r
-"Xboard adjudication: perpetual checking" === "Adjudecare Xboard: sah etern"\r
-"Xboard adjudication: perpetual chasing" === "Adjudecare Xboard: alungare continua"\r
-"%Xboard adjudication: perpetual chasing of" === "Adjudecare Xboard: alungare continua"\r
-"Xboard adjudication: 50-move rule" === "Adjudecare Xboard: regula celor 50 de mutari"\r
-"Draw claim: 50-move rule" === "Cerere de remiza: regula celor 50 de mutari"\r
-"Draw claim: 3-fold repetition" === "Cerere de remiza: a treia repetitie"\r
-"Draw claim: insufficient mating material" === "Cerere de remiza: material insuficient pentru mat"\r
-"Xboard adjudication: long game" === "Adjudecare Xboard: partida lunga"\r
-"Xboard: Forfeit due to invalid move: %s (%c%c%c%c) res=%d" === "Xboard: Forfait datorat unei mutari ilegale: %s (%c%c%c%c) res=%d"\r
-"Xboard: Forfeit due to illegal move: %s (%c%c%c%c)%c" === "Xboard: Forfait datoratunei mutari ilegale: %s (%c%c%c%c)%c"\r
-"Xboard adjudication" === "Adjudecare Xboard"\r
-"User adjudication" === "Adjudecare utilizator"\r
-"False win claim: '%s'" === "Cerere de castig falsa: '%s'"\r
-"False draw claim: '%s'" === "Cerere de remiza falsa: '%s'"\r
-"xboard exit" === "Iesire Xboard"\r
-\r
-\r
-# NEW STRINGS FOR EXPERIMENTAL TM VERSION:\r
-\r
-# MENU\r
-\r
-"Edit Boo&k..." === "Editeaza Cartea"\r
-"Edit Engine List..." === "Editeaza Lista Motoarelor"\r
-"Load Engine..." === "Incarca Motorul"\r
-"Tournament..." === "Turneu"\r
-\r
-# LOAD ENGINE DIALOG\r
-\r
-"First" === "Primul"\r
-"Second" === "Al doilea"\r
-"Choose File" === "Alege Fisierul"\r
-"Choose Folder:" === "Alege Folderul"\r
-"Select engine from list:" === "Alege motorul din lista"\r
-"or specify one below:" === "sau specifica unul mai jos"\r
-"Nickname (optional):" === "Pseudonim (optional)"\r
-"Use nickname in PGN tag" === "Foloseste pseudonimul in eticheta PGN"\r
-"Engine (*.exe):" === "Motor (*.exe)"\r
-"command-line parameters:" === "parametrii liniei de comanda"\r
-"directory:" === "directorul"\r
-"(Directory will be derived from engine path when left empty)" === "(Directorul va deriva din adresa motorului cand nu se completeaza)"\r
-"Add this engine to the list" === "Adauga aceasta engina in lista"\r
-"Must not use GUI book" === "Trebuie sa nu foloseasca cartea GUIului"\r
-"UCI" === "UCI"\r
-"WB protocol v1 (skip waiting for features)" === "WB protocol v1 (sari peste asteptarea caracteristicilor)"\r
-"UCCI / USI (uses specified /uxiAdapter)" === "UCCI / USI (foloseste specificatele /uxiAdapter)"\r
-"Force current variant with this engine" === "Forteaza varianta curenta cu acest motor"\r
-"Load mentioned engine as" === "Incarca Motorul mentionat ca"\r
-"Load Engine" === "Incarca Motorul"\r
-\r
-# TOURNAMENT OPTIONS DIALOG\r
-\r
-"Tournament file:" === "Fisierul de turneu"\r
-"If you specify an existing file, the rest of this dialog will be ignored." === "Daca specificati un fisier existent, restul acestui dialog va fi ignorat."\r
-"Otherwise, the file will be created, with the settings you specify below:" === "Altfel, fisierul va fi creat, cu setarile pe care le specificati mai jos"\r
-"Select Engine:" === "Alege Motorul"\r
-"Use Swiss pairing engine (cycles = rounds)" === "Utilizaþi motorul de asociere elveþian (cicluri = runde)"\r
-"Tourney type (0=RR, 1=gauntlet):" === "Tipul Turneului (0=RR, 1=gauntlet)"\r
-"Sync after cycle" === "Sincronizare dupa ciclu"\r
-"Number of tourney cycles:" === "Numarul de cicluri"\r
-"Sync after round" === "Sincronizare dupa runda"\r
-"Games per Match / Pairing:" === "Partide pe Meci/Pereche"\r
-"File for saving tourney games:" === "Fisier de salvat partidele turneului"\r
-"Game File with Opening Lines:" === "Fisierul de Partide cu Liniile de Deschidere"\r
-"Game Number:" === "Partida Numarul"\r
-"File with Start Positions:" === "Fisier cu Pozitiile de Start"\r
-"Position Number:" === "Pozitia Numarul"\r
-"Step through lines/positions in file" === "Mergi printre linii/pozitii in fisier"\r
-"Rewind after (0 = never):" === "Deruleaza dupa (0 = niciodata)"\r
-"Use each line/position twice" === "Foloseste fiecare linie/pozitie de doua ori"\r
-"Pause between Games (ms):" === "Pauza intre Partide (ms)"\r
-"Tournament and Match Options" === "Optiunile pentru Turneu si Meci"\r
-"Tourney participants:" === "Participantii la turneu"\r
-"Replace Engine" === "Inlocuieste Motorul"\r
-"Upgrade Engine" === "Upgradeaza Motorul"\r
-"Time Control..." === "Timpul de control"\r
-"Common Engine..." === "Motor comun"\r
-"Clone Tourney" === "Turneu de Clone"\r
-\r
diff --git a/winboard/language/russian.lng b/winboard/language/russian.lng
deleted file mode 100644 (file)
index ae11cf4..0000000
+++ /dev/null
@@ -1,994 +0,0 @@
-## WinBoard 4.5.1 language file\r
-## Encoding: Win-1251\r
-## Win-1251 should be set as the default encoding for nonunicode programs (on WinXP)\r
-##\r
-## Russian/Ðóññêèé\r
-## v1.0 beta 1\r
-##\r
-## Translation by Hr. Burunduk (2011.04.14)\r
-## Based on the WinBoard 4.2.6 translation by A.V.Serdiukov (À.Â.Ñåðäþêîâ, 2003)\r
-##\r
-##\r
-## If you revise this, please insert your date, name and description.\r
-## Èçìåíèâ ýòîò ôàéë, äîáàâüòå, ïîæàëóéñòà, äàòó, âàøå èìÿ è îïèñàíèå.\r
-## For example:\r
-## Íàïðèìåð:\r
-##   24-ago-2010. Juan Perez (j@xyz.p). Corrected translation for xyzzy.\r
-\r
-## Notes for translators (can be deleted from he file after translation):\r
-##   Just write the translations between the second pair of quotes\r
-##   Things like %s, %d and %c must be preserved in the original order\r
-##   Empty translated strings will be ignored, so there is no reason\r
-##   to delete those for which you don't know a translation,\r
-##   and you can start testing everything immediately.\r
-##   Simply rename this file to LANGUAGE.lng, and WinBoard should see it,\r
-##   and allow you to use the option /language=LANGUAGE.\r
-##   You are encouraged to call up the corresponding WinBoard dialog while\r
-##   working on the translation, to see in which context the strings are used.\r
-##   This is why the strings below are sorted by dialog\r
-##\r
-##   Of duplicats, only the first occurrence will be used, even if it was in\r
-##   a different dialog! For this reason you will only see an 'OK' in the\r
-##   About Box. After you translated it there, this translation will be used\r
-##   for all other dialogs as well.\r
-## o Use ## for comments, to make iteasy to find them scattered throughout the translation\r
-## o Careful with temptation of direct translation, by example 'movimiento' for 'move' when 'jugada' is better.\r
-## o Try to use short phrases, more text doesn't imply more clearness.\r
-## o Check that your translation is right, does it mean what it does?\r
-## o Test your translation, check every dialog.\r
-## o For standard chess names check Wikipedia for confirmation.\r
-## o For menus, assign shortcuts (character &) until you finish the translation.\r
-##   preferably it should be unique in the applicable menu, so it depends on translation of other items!\r
-\r
-winboard.rc\r
-\r
-MENUS:\r
-## Pleace keep the accelerator-key indications on the menu items, and keep \r
-## the keystrokes the same (for now). (Alt, Ctrl and Shift can be translated.)\r
-\r
-"&New Game\tCtrl-N" === "&Íîâàÿ ïàðòèÿ\tCtrl-N"\r
-"New Sh&uffle Game..." === "Íîâàÿ â ñìå&øàííûå øàõìàòû..."\r
-"New &Variant...\tAlt+Shift+V" === "Íîâûé &âàðèàíò...\tAlt+Shift+V"\r
-"&Load Game...\tCtrl-O" === "&Çàãðóçèòü ïàðòèþ...\tCtrl-O"\r
-"&Save Game...\tCtrl-S" === "&Ñîõðàíèòü ïàðòèþ...\tCtrl-S"\r
-"L&oad Position...\tCtrl+Shift+O" === "Ç&àãðóçèòü ïîçèöèþ...\tCtrl+Shift+O"\r
-"S&ave Position...\tCtrl+Shift+S" === "Ñ&îõðàíèòü ïîçèöèþ...\tCtrl+Shift+S"\r
-"Save as &Diagram..." === "Ñîõðàíèòü &äèàãðàììó..."\r
-"&Quit" === "Â&ûõîä"\r
-## Next six currently not used\r
-"Load &Next Game\tAlt+PgDn" === "Çàãðóçèòü ñ&ëåäóþùóþ ïàðòèþ\tAlt+PgDn""\r
-"Load &Previous Game\tAlt+PgUp" === "Çàãðóçèòü ï&ðåäûäóùóþ ïàðòèþ\tAlt+PgUp"\r
-"&Reload Same Game" === "&Ïåðåçàãðóçèòü ïàðòèþ"\r
-"Load N&ext Position\tAlt+Shift+PgDn" === "Çàãðóçè&òü ñëåäóþùóþ ïîçèöèþ\tAlt+Shift+PgDn"\r
-"Load Pre&vious Position\tAlt+Shift+PgUp" === "Çàãðóçèò&ü ïðåäûäóùóþ ïîçèöèþ\tAlt+Shift+PgUp"\r
-"Reload Sa&me Position" === "Ï&åðåçàãðóçèòü ïîçèöèþ"\r
-\r
-"&Copy Game To Clipboard\tCtrl+C" === "&Êîïèðîâàòü ïàðòèþ\tCtrl+C"\r
-"C&opy Position To Clipboard\tCtrl+Shift+C" === "Ê&îïèðîâàòü ïîçèöèþ\tCtrl+Shift+C"\r
-"Copy Game List to Clipboard" === "Êîïèðîâàòü &ñïèñîê ïàðòèé"\r
-"&Paste Game From Clipboard\tCtrl+V" === "&Âñòàâèòü ïàðòèþ\tCtrl+V"\r
-"P&aste Position From Clipboard\tCtrl+Shift+V" === "Âñò&àâèòü ïîçèöèþ\tCtrl+Shift+V"\r
-"&Edit Game\tCtrl+E" === "&Ïðàâèòü ïàðòèþ\tCtrl+E"\r
-"E&dit Position\tCtrl+Shift+E" === "Ï&ðàâèòü ïîçèöèþ\tCtrl+Shift+E"\r
-"Edit Ta&gs..." === "Ïðàâ&èòü îïèñàíèå..."\r
-"Edit Co&mment..." === "Ïðàâè&òü êîììåíòàðèé..."\r
-"Enter &Username..." === "È&ìÿ ïîëüçîâàòåëÿ..."\r
-"&Revert\tHome" === "Âåð&íóòüñÿ\tHome"\r
-"&Annotate" === "Çàïèñàò&ü è âåðíóòüñÿ"\r
-"&Truncate Game\tEnd" === "Îò&áðîñèòü ïîñëåäóþùèå õîäû\tEnd"\r
-"&Backward\tAlt+Left" === "Íà&çàä\tAlt+Left"\r
-"&Forward\tAlt+Right" === "Âïåðå&ä\tAlt+Right"\r
-"Back to &Start\tAlt+Home" === " íà&÷àëî\tAlt+Home"\r
-"For&ward to End\tAlt+End" === " êîíå&ö\tAlt+End"\r
-\r
-"Flip &View\tF2" === "Ðà&çâåðíóòü äîñêó\tF2"\r
-"&Swap Clocks" === "Ïîìåíÿòü &ìåñòàìè ÷àñû"\r
-"Engine &Output\tAlt+Shift+O" === "&Âûâîä äâèæêà\tAlt+Shift+O"\r
-"Move &History\tAlt+Shift+H" === "Ñïèñîê &õîäîâ\tAlt+Shift+H"\r
-"Evaluation &Graph\tAlt+Shift+E" === "&Ãðàôèê îöåíêè\tAlt+Shift+E"\r
-"Game &List\tAlt+Shift+G" === "&Ñïèñîê ïàðòèé\tAlt+Shift+G"\r
-"Open &New Chat Window" === "Îòêðûòü íîâîå îêíî &÷àòà"\r
-"Type In &Move...\tAlt+I" === "Ââ&åñòè õîä...\tAlt+I"\r
-"&Tags" === "&Îïèñàíèå"\r
-"&Comments" === "&Êîììåíòàðèè"\r
-"&Game List Tags..." === "Ñîäåð&æàíèå ñïèñêà ïàðòèé..."\r
-"&Board..." === "&Äîñêà..."\r
-"&Fonts..." === "&Øðèôòû..."\r
-\r
-"Machine &White\tCtrl+W" === "Êîìïüþòåð &áåëûìè\tCtrl+W"\r
-"Machine &Black\tCtrl+B" === "Êîìïüþòåð &÷åðíûìè\tCtrl+B"\r
-"&Two Machines\tCtrl+T" === "&Äâà äâèæêà\tCtrl+T"\r
-"Machine Both" === "Äâèæîê ïðîòèâ &ñåáÿ"\r
-"&Analysis Mode\tCtrl+A" === "&Àíàëèç\tCtrl+A"\r
-"Analyze &File\tCtrl+F" === "Àíàëèçèðîâàòü &ôàéë\tCtrl+F"\r
-"&Edit Game\tCtrl+E" === "&Ïðàâèòü ïàðòèþ\tCtrl+E"\r
-"E&dit Position\tCtrl+Shift+E" === "Ï&ðàâèòü ïîçèöèþ\tCtrl+Shift+E"\r
-"Trai&ning" === "&Òðåíèðîâêà"\r
-"&ICS Client" === "&Êëèåíò ICS"\r
-"&Machine Match" === "Íà÷àòü &ìàò÷ äâèæêîâ"\r
-"&Pause\tPause" === "Ïàó&çà"\r
-\r
-"&Accept\tF3" === "&Ïðèíÿòü\tF3"\r
-"D&ecline\tF4" === "&Îòêëîíèòü\tF4"\r
-"Re&match\tF12" === "Ïåðå&èãðàòü\tF12"\r
-"Call &Flag\tF5" === "Ïðî&âåðèòü âðåìÿ\tF5"\r
-"&Draw\tF6" === "Íè÷ü&ÿ\tF6"\r
-"Ad&journ\tF7" === "Îò&ëîæèòü\tF7"\r
-"A&bort\tF8" === "Ïð&åðâàòü\tF8"\r
-"&Resign\tF9" === "&Ñäàòüñÿ\tF9"\r
-"Stop &Observing\tF10" === "Ïðåêðàòèòü &íàáëþäåíèå çà èãðîé\tF10"\r
-"Stop E&xamining\tF11" === "Ïðåêðàòèòü è&çó÷åíèå ïàðòèè\tF11"\r
-"&Upload to Examine" === "Çà&ãðóçèòü íà ñåðâåð äëÿ èçó÷åíèÿ"\r
-"Adjudicate to &White" === "Ïðèñóäèòü ïîáåäó &áåëûì"\r
-"Adjudicate to &Black" === "Ïðèñóäèòü ïîáåäó &÷åðíûì"\r
-"Adjudicate &Draw" === "Ïðèñóäèòü íè÷ü&þ"\r
-\r
-"Install 1st..." === "1-é &ñïèñîê çàïóñêà..."\r
-"Install 2nd..." === "2-é ñ&ïèñîê çàïóñêà..."\r
-"Engine #&1 Settings..." === "Íàñòðîéêè äâèæêà &1..."\r
-"Engine #&2 Settings..." === "Íàñòðîéêè äâèæêà &2..."\r
-"&Hint..." === "Ïîäñêà&çêà..."\r
-"&Book..." === "&Êíèãà..."\r
-"&Move Now\tCtrl+M" === "Äåëàé &õîä!\tCtrl+M"\r
-"&Retract Move\tCtrl+X" === "Âçÿòü õîä &íàçàä\tCtrl+X"\r
-\r
-"&Mute all Sounds" === "Îòêëþ÷èòü &çâóê"\r
-"&General..." === "&Îáùèå..."\r
-"&Time Control...\tAlt+Shift+T" === "Êîíòðîëü &âðåìåíè...\tAlt+Shift+T"\r
-"Common &Engine...\tAlt+Shift+U" === "Î&áùèå äëÿ äâèæêîâ...\tAlt+Shift+U"\r
-"Ad&judications...\tAlt+Shift+J" === "&Ïðèñóæäåíèå...\tAlt+Shift+J"\r
-"&Load Game...\tAlt+Shift+L" === "Çà&ãðóçêà...\tAlt+Shift+L"\r
-"&Save Game...\tAlt+Shift+S" === "&Ñîõðàíåíèå...\tAlt+Shift+S"\r
-"G&ame List..." === "Ñï&èñîê ïàðòèé..."\r
-"Soun&ds..." === "Çâó&êè..."\r
-"&ICS..." === "&ICS..."\r
-"Add ICS..." === "Äîáàâè&òü ICS..."\r
-"Comm&unications..." === "Ñîîá&ùåíèÿ..."\r
-"Save Settings &Now" === "Ñî&õðàíèòü íàñòðîéêè ñåé÷àñ"\r
-"Save Settings on E&xit" === "Ñîõðàíÿòü íàñòðîéêè ïðè â&ûõîäå"\r
-\r
-"Help &Contents\tF1" === "&Ñîäåðæàíèå\tF1"\r
-"Help &Index" === "&Óêàçàòåëü"\r
-"How to &Use Help" === "Îá &èñïîëüçîâàíèè ñïðàâêè"\r
-"&About WinBoard" === "Π&ïðîãðàììå WinBoard"\r
-\r
-"White" === "Áåëûå"\r
-"Promote" === "Ïðåâðàòèòü"\r
-"Pawn" === "Ïåøêà"\r
-"Knight" === "Êîíü"\r
-"Bishop" === "Ñëîí"\r
-"Rook" === "Ëàäüÿ"\r
-"Queen" === "Ôåðçü"\r
-"King" === "Êîðîëü"\r
-## The next 2 are pieces for Capablanca Chess. Use the names from the Wikipedia entry for this,\r
-## rather than litteral translations of the English names!\r
-"Archbishop" === "Àðõèåïèñêîï"\r
-"Chancellor" === "Êàíöëåð"\r
-## Next 2 Xiangqi (Chinese Chess) pieces. Google for 'Xiangqi' in the target language to get the standard translation.\r
-"Elephant" === "Ñëîí (ñòàð.)"\r
-"Cannon" === "Ïóøêà"\r
-"Empty Square" === "Ïóñòîå ïîëå"\r
-"Black" === "×åðíûå"\r
-"Demote" === "Ðàçæàëîâàòü"\r
-"Clear Board    " === "Î÷èñòèòü äîñêó"\r
-## Next 3: Shogi pieces.\r
-"Gold" === "Çîëîòî"\r
-"Silver" === "Ñåðåáðî"\r
-"Lance" === "Êîïüå"\r
-\r
-"Drop" === "Âûñòàâèòü"\r
-\r
-"Cop&y and Paste" === "Ñêîïèðîâàòü è âñòàâèòü"\r
-"&Copy" === "Êîïèðîâàòü"\r
-"&Paste" === "Âñòàâèòü"\r
-\r
-"&Undo" === "Îòìåíèòü"\r
-"Cu&t" === "Âûðåçàòü"\r
-"&Copy" === "Êîïèðîâàòü"\r
-"&Paste" === "Âñòàâèòü"\r
-"Select &All" === "Âûáðàòü âñå"\r
-\r
-DIALOGS:\r
-\r
-ABOUTBOX\r
-\r
-## Pehaps copyright notices best left untranslated?\r
-"About WinBoard" === "Πïðîãðàììå WinBoard"\r
-"OK" === "OK"\r
-"Chessboard for Windows" === "Øàõìàòíàÿ äîñêà äëÿ Windows"\r
-"Copyright 1991 Digital Equipment Corporation" === ""\r
-"Enhancements Copyright 1992-2014  Free Software Foundation" === ""\r
-"Enhancements Copyright 2005\r\nAlessandro Scotti" === ""\r
-## What happened with H.G.Muller? [He sold his copyrights to FSF for $1]\r
-## The following string of 6 spaces can be translated to an acknowledgement of the translator,\r
-## like "Traduccion por Oscar Toledo G.".\r
-"      " === "Ïåðåâîä: À.Â.Ñåðäþêîâ (2003), Hr.Burunduk (2011)"\r
-"WinBoard 0.0.0" === ""\r
-\r
-ABOUTBOX2\r
-\r
-## Weird, it is needed? [Normally not. It is a built-in 'Easter Egg' joke.]\r
-## It's a "galactic software ltd." bitmap, no need to translate.\r
-"galactic" === ""\r
-\r
-TIME CONTROL DIALOG\r
-\r
-"Time Control" === "Êîíòðîëü âðåìåíè"\r
-"Conventional chess clock" === "Îáû÷íûå øàõìàòíûå ÷àñû"\r
-"Incremental clock" === "Ñ äîáàâëåíèåì âðåìåíè"\r
-"Cancel" === "Îòìåíà"\r
-\r
-## Next is there really only for the benefit of blind users of the JAWS version...\r
-"Use arrow keys to specify which clock setting type, then press tab to alter values." === "Âûáåðèòå òèï ÷àñîâ êëàâèøàìè êóðñîðà, íàæìèòå tab è ââåäèòå âðåìÿ."\r
-"Fixed time per move" === "Ôèêñèðîâàííîå âðåìÿ"\r
-"Number of moves:" === "×èñëî õîäîâ:"\r
-"Within number of minutes:" === "Âðåìÿ â ìèíóòàõ:"\r
-"Initial number of minutes:" === "Íà÷àëüíîå âðåìÿ, ìèíóò:"\r
-"Plus number of seconds per move:" === "Ïëþñ ñåêóíä çà õîä:"\r
-"Maximum seconds per move:" === "Ñåêóíä íà õîä íå áîëåå:"\r
-"Time-Odds Factors:" === "Ôàêòîð âðåìåíè äâèæêîâ:"\r
-"Engine #1:" === "äëÿ 1-ãî:"\r
-"Engine #2:" === "äëÿ 2-ãî:"\r
-\r
-LOAD OPTIONS DIALOG\r
-\r
-"Load Game Options" === "Ïàðàìåòðû çàãðóçêè"\r
-"Load games with automatic stepping" === "Ïîêàçàòü ïàðòèþ ñ çàäåðæêîé"\r
-"seconds per move" === "ñåê. íà õîä"\r
-\r
-SAVE OPTIONS DIALOG\r
-\r
-"Save Game Options" === "Íàñòðîéêè ñîõðàíåíèÿ"\r
-"Save As: " === "Ñîõðàíèòü êàê: "\r
-"Save games automatically" === "Ñîõðàíÿòü ïàðòèè àâòîìàòè÷åñêè"\r
-"Prompt for filename" === "Çàïðàøèâàòü èìÿ ôàéëà"\r
-"To file:" === " ôàéë:"\r
-"PGN" === "PGN"\r
-"Old" === "Ñòàðûé"\r
-"Browse..." === "Îáçîð..."\r
-"Save out of book info in PGN" === "Çàïèñü î âûõîäå èç êíèãè â PGN"\r
-\r
-1536\r
-## This dialog is only used in some older Windows versions, so you might not be ableto test it.\r
-\r
-"Open" === "Îòêðûòü"\r
-"File &Name:" === "Èìÿ ôàéëà:"\r
-"&Directories:" === "Êàòàëîãè:"\r
-"List Files of &Type:" === "Òèï ôàéëîâ:"\r
-"Dri&ves:" === "Äèñêè:"\r
-"&Help" === "&Ñïðàâêà"\r
-\r
-"&Index number:" === "Íîìåð:"\r
-\r
-COMMPORT\r
-## Always disabled if you are not actually using an ICS through a comport, so difficult to test.\r
-\r
-"Communication Port Settings" === "Íàñòðîéêè COM-ïîðòà"\r
-"Net&work..." === "Ñåòü..."\r
-"&Port:" === "Ïîðò:"\r
-"Data &Rate:" === "Ñêîðîñòü:"\r
-"Data &Bits:" === "Áèòû äàííûõ:"\r
-"P&arity:" === "×åòíîñòü:"\r
-"&Stop Bits:" === "Ñòîï-áèòû:"\r
-"F&low:" === "Ïîòîê:"\r
-\r
-EDIT COMMENT\r
-\r
-"Edit Comment" === "Ïðàâêà êîììåíòàðèÿ"\r
-"&Clear" === "&Î÷èñòèòü"\r
-"&Edit" === "&Ïðàâêà"\r
-\r
-PROMOTION POPUP\r
-\r
-"Promote to:" === "Ïðåâðàùåíèå"\r
-## next used in Shogi as promotion-popup header\r
-"Promote?" === "Ïðåâðàòèòü?"\r
-"Promotion" === "Ïðåâðàùåíèå"\r
-"&Queen" === "&Ôåðçü"\r
-"&Rook" === "&Ëàäüÿ"\r
-"&Bishop" === "&Ñëîí"\r
-"K&night" === "&Êîíü"\r
-"&King" === "Êî&ðîëü"\r
-"&Cancel" === "&Îòìåíà"\r
-\r
-"Chance&llor" === "Êà&íöëåð"\r
-"&Archbishop" === "&Àðõèåïèñêîï"\r
-"YES" === "Äà"\r
-"NO" === "Íåò"\r
-"C&entaur" === "Ê&åíòàâð"\r
-\r
-GAME LIST\r
-\r
-"Game List" === "Ñïèñîê ïàðòèé"\r
-"&Load" === "Âû&áðàòü"\r
-"&Prev" === "Ïðåäûäóùàÿ"\r
-"&Next" === "Ñëåäóþùàÿ"\r
-"&Close" === "&Çàêðûòü"\r
-"Filter" === "Ôèëüòð"\r
-\r
-EDIT TAGS\r
-\r
-"Edit Tags" === "Ïðàâêà îïèñàíèÿ"\r
-\r
-ERROR\r
-\r
-"ICS Interaction" === "Ñîåäèíåíèÿ ñ ICS"\r
-"Dialog" === "Äèàëîã"\r
-"Error" === "Îøèáêà"\r
-## I don't think the next will really appear ever.\r
-"Sorry Charlie" === "Ïðîñòè, äðóã!"\r
-\r
-COLORIZE\r
-\r
-"I C S Interaction Colors" === "Öâåòà ñîîáùåíèé ICS"\r
-"Interaction Colors" === "Öâåòà ñîîáùåíèé"\r
-"Premove" === "Ïðåäâàðèòåëüíûé õîä"\r
-"Alarm" === "Çâîíîê"\r
-"Colors" === "Öâåòà"\r
-"&Choose Color..." === "Âûáåðèòå öâåò"\r
-"&Bold" === "Ïîëóæèðíûé"\r
-"&Italic" === "Êóðñèâ"\r
-"&Underline" === "Ïîä÷åðêíóòûé"\r
-"&Strikeout" === "Çà÷åðêíóòûé"\r
-\r
-QUESTION\r
-\r
-## next one seems only a placeholder, and never appears? [might also be just a programmer's joke...]\r
-"Enter a chess engine command or just type something stupid that will completely screw things up." === "Ââåäèòå êîìàíäó äëÿ øàõìàòíîé ïðîãðàììû èëè ïðîñòî êàêóþ-íèáóäü ÷åïóõó, ÷òîáû îêîí÷àòåëüíî ñáèòü åå ñ òîëêó."\r
-"Question" === "Âîïðîñ"\r
-"Enter" === "Ââîä"\r
-\r
-STARTUP DIALOG\r
-\r
-"WinBoard Startup" === "Çàïóñê WinBoard"\r
-"What would you like to do?" === "Ðåæèì ðàáîòû ñ ïðîãðàììîé"\r
-"&Play against a chess engine or match two engines" === "&Èãðà ïðîòèâ êîìïüþòåðà èëè ïàðòèÿ äâóõ äâèæêîâ"\r
-"&Use an Internet Chess Server" === "&Ïîäêëþ÷åíèå ê øàõìàòíîìó ñåðâåðó"\r
-"Just &view or edit game files" === "Ïðî&ñìîòð è ðåäàêòèðîâàíèå ôàéëîâ"\r
-"Specify Chess &Engines:" === "Âûáåðèòå äâèæêè"\r
-"Specify Chess &Server:" === "Âûáåðèòå ñåðâåð"\r
-"&Additional options" === "&Äîáàâèòü ïàðàìåòðû"\r
-\r
-INDEX (IN FILE-BROWSE DIALOG)\r
-\r
-"Inde&x number:" === "Íîìåð:"\r
-\r
-MOVE TYPE-IN\r
-\r
-"Type in a move" === "Ââåäèòå õîä"\r
-\r
-USER-NAME TYPE-IN\r
-\r
-"Type in your name" === "Ââåäèòå âàøå èìÿ"\r
-\r
-SOUND DIALOG\r
-\r
-"Sounds" === "Çâóêè"\r
-\r
-"&Event:" === "Ñîáûòèå"\r
-"&No sound" === "Áåç çâóêà"\r
-"&Default beep" === "Ïðîñòîé ñèãíàë"\r
-"&Built-in sound:" === "Âñòðîåííûé çâóê:"\r
-"&WAV file:" === "WAV-ôàéë"\r
-\r
-"B&rowse..." === "Îáçîð..."\r
-"&Play" === "Ïîñëóøàòü"\r
-"&Defaults" === "Ñáðîñèòü"\r
-\r
-GENERAL OPTIONS DIALOG\r
-## pleace keep the indication of the accelerator keys for the same keystroke\r
-## Note: finely tuned spaces to align keys at right\r
-\r
-"General Options" === "Îáùèå íàñòðîéêè"\r
-"Always on &Top" === "Ïîâåðõ âñåõ îêîí"\r
-"Always &Queen            Ctrl+Shift+Q" === "Âñåãäà â ôåðçÿ                           CS+Q"\r
-"Animate &Dragging" === "Àíèìàöèÿ ïåðåòàñêèâàíèÿ"\r
-"&Animate Moving         Ctrl+Shift+A" === "Àíèìàöèÿ õîäîâ                          CS+A"\r
-"Auto &Flag                   Ctrl+Shift+F" === "Ïðîâåðÿòü âðåìÿ                        CS+F"\r
-"Auto Flip &View" === "Àâòîðàçâîðîò äîñêè"\r
-"Auto &Raise Board" === "Ðàñêðûâàòü äîñêó"\r
-"&Blindfold" === "Íåâèäèìûå ôèãóðû"\r
-"Highlight Dra&gging" === "Âûäåëÿòü ïðè ïåðåòàñêèâàíèè"\r
-"Highlight Last &Move" === "Âûäåëÿòü ïîñëåäíèé õîä"\r
-"Periodic &Updates" === "Ïåðèîäè÷åñêè îáíîâëÿòü"\r
-"Ponder &Next Move  Ctrl+Shift+P" === "Äóìàòü âñåãäà                            CS+P"\r
-"&Popup Exit Message" === "Ñîîáùåíèå ïðè âûõîäå"\r
-"Popup Move &Errors" === "Ñîîáùàòü î íåïðàâèëüíîì õîäå"\r
-"Show Butt&on Bar" === "Ïàíåëü óïðàâëåíèÿ"\r
-"Show &Coordinates" === "Ïîêàçûâàòü êîîðäèíàòû"\r
-"&Show Thinking" === "Ïîêàçûâàòü âûâîä äâèæêà"\r
-"Test &Legality            Ctrl+Shift+L" === "Ïðîâåðÿòü ïðàâèëüíîñòü õîäà CS+L"\r
-"&Hide Thinking          Ctrl+Shift+H" === "Ñêðûòü ãëàâíûé âàðèàíò          CS+H"\r
-"&Info in Move History   Ctrl+Shift+I" === "Áîëüøå äàííûõ â ñïèñêå õîäîâ CS+I"\r
-"&Send Engine Think" === "Ïîêàçûâàòü âûâîä äâèæêà"\r
-"E&xtended PGN Info    Ctrl+Shift+X" === "Áîëüøå äàííûõ â PGN               CS+X"\r
-"Highlight with Arro&w" === "Âûäåëÿòü ñòðåëêîé"\r
-"Displa&y Logos" === "Ïîêàçûâàòü ýìáëåìû"\r
-"One-Click Move" === "Õîä îäíèì ùåë÷êîì"\r
-\r
-ICS OPTIONS\r
-\r
-"ICS Options" === "Íàñòðîéêè ñîåäèíåíèÿ ñ ICS"\r
-"&Auto Comment" === "Êîììåíòàðèè"\r
-"Auto &Observe" === "Ñëåäèòü çà èãðîé"\r
-"&Get Move List" === "Çàïðàøèâàòü çàïèñü õîäîâ"\r
-"&Local Line Editing" === "Ðåäàêòèðîâàíèå êîìàíä"\r
-"&Quiet Play" === "Ñïîêîéíàÿ èãðà"\r
-"&Premove" === "Ïðåäâàðèòåëüíûé õîä"\r
-"&White first move" === "1-é õîä áåëûõ"\r
-"&Black first move" === "1-é õîä ÷åðíûõ"\r
-"&Sound alarm at" === "Çâîíîê çà"\r
-"seconds" === "ñåê."\r
-"Choose..." === "Âûáðàòü..."\r
-"Do &not colorize messages" === "Íå âûäåëÿòü ñîîáùåíèÿ"\r
-"&Auto Kibitz" === ""\r
-"Auto Kibit&z" === ""\r
-"See&k Graph" === "Ãðàôèê ïîèñêà"\r
-"auto-&Refresh" === "Àâòîîáíîâëåíèå"\r
-"Bckgnd Obser&ve" === "Ñëåäèòü â ôîíå"\r
-"&Dual Board" === "Äâîéíàÿ äîñêà"\r
-"One-Click &Move" === "Õîä îäíèì ùåë÷êîì"\r
-"Background..." === "Öâåò ôîíà..."\r
-"&Defaults..." === "Ñáðîñèòü"\r
-"Startup &Chat Boxes:" === "Îêíà ÷àòà (÷/ç ;):"\r
-"General" === "Îáùèå"\r
-\r
-BOARD OPTIONS\r
-## (NOTE: AllWhite uses the white (outline-style) piece bitmaps for both sides\r
-##        FlipBlack draws the black pieces upside down)\r
-\r
-"Board Options" === "Íàñòðîéêè äîñêè"\r
-"Defaults" === "Ñáðîñèòü"\r
-"Light Squares" === "Áåëûå ïîëÿ"\r
-"Dark Squares" === "×åðíûå ïîëÿ"\r
-"White Pieces" === "Áåëûå ôèãóðû"\r
-"Black Pieces" === "×åðíûå ôèãóðû"\r
-"Square Highlights" === "Âûäåëåííîå ïîëå"\r
-"Premove Highlights" === "Ïðåäâàðèò. õîä"\r
-"Monochrome" === "Ìîíîõðîìíàÿ"\r
-"All White" === "×åðíûé êîíòóð"\r
-"Flip Black" === "×åðíûå íà óøàõ"\r
-"Size" === "Ðàçìåð"\r
-\r
-BOARD SIZES\r
-## Don't put numbers, or nobody will translate them. [True. But do we really want them translated?]\r
-## This is a space for imagination!\r
-"&Tiny" === "Êðîøå÷íàÿ"\r
-"T&eeny" === "Èçÿùíàÿ"\r
-"&Dinky" === "Ìèíèàòþðíàÿ"\r
-"&Petite" === "Èãðóøå÷íàÿ"\r
-"Sl&im" === "Êîìïàêòíàÿ"\r
-"&Small" === "Ìàëåíüêàÿ"\r
-"Medi&ocre" === "Íåáîëüøàÿ"\r
-"&Middling" === "Ñíîñíàÿ"\r
-"&Average" === "Ñðåäíÿÿ"\r
-"Mode&rate" === "Ñêðîìíàÿ"\r
-"Medi&um" === "Óìåðåííàÿ"\r
-"Bul&ky" === "Ðàçóìíàÿ"\r
-"&Large" === "Êðóïíàÿ"\r
-"&Big" === "Áîëüøàÿ"\r
-"&Huge" === "Îãðîìíàÿ"\r
-"&Giant" === "Ãðîìàäíàÿ"\r
-"&Colossal" === "Ãèãàíòñêàÿ"\r
-"Tita&nic" === "Èñïîëèíñêàÿ"\r
-\r
-FONTS\r
-\r
-"Fonts" === "Øðèôòû"\r
-"Current Board Size" === "Òåêóùèé ðàçìåð äîñêè"\r
-"All Board Sizes" === "Âñå ðàçìåðû äîñêè"\r
-"&Revert to Defaults" === "Ïî óìîë÷àíèþ"\r
-"Clocks" === "×àñû"\r
-"Messages" === "Ñîîáùåíèÿ"\r
-"Coordinates" === "Êîîðäèíàòû"\r
-"Tags" === "Îïèñàíèÿ"\r
-"Comments" === "Êîììåíòàðèè"\r
-"I C S Interaction" === "Ñîåäèíåíèÿ ñ ICS"\r
-\r
-"&Color..." === "Öâåò..."\r
-"Move History, Engine Output" === "Ñïèñîê õîäîâ, âûâîä äâèæêà"\r
-\r
-ADJUDICATIONS DIALOG\r
-\r
-"Adjudications" === "Ïðèñóæäåíèå"\r
-"Ponder Next Move" === "Äóìàòü âñåãäà"\r
-"Enable and Show Thinking (recommended)" === "Ïîêàçûâàòü âûâîä äâèæêà (ðåêîìåíäóåòñÿ)"\r
-"Hide Thinking when Playing against Human" === "Ñêðûâàòü âûâîä äâèæêà â èãðå ïðîòèâ ÷åëîâåêà"\r
-"Periodic Updates (for Analysis Mode)" === "Ïåðèîäè÷åñêè îáíîâëÿòü (â ðåæèìå àíàëèçà)"\r
-"Adjudications in non-ICS games" === "Ïðèñóæäåíèå â ïàðòèÿõ íå ÷åðåç ICS"\r
-"Adjudicate draw after:" === "Ïðèñóäèòü íè÷üþ ïîñëå"\r
-"moves" === "õîäîâ"\r
-"Win/loss adjudication threshold:" === "Ïîáåäà/ïîðàæåíèå ïðè ïåðåâåñå â"\r
-"centipawns" === "ñîòûõ ïåøêè"\r
-"&Verify Engine Claims" === "Ïðîâåðÿòü òðåáîâàíèÿ äâèæêà"\r
-"Detect &Mates" === "Îïðåäåëÿòü ìàò"\r
-"Draw if &Insufficient Material" === "Íè÷üÿ ïðè íåõâàòêå ìàòåðèàëà"\r
-"Adjudicate &Trivial Draws" === "Íè÷üÿ â òåõíè÷. îêîí÷àíèÿõ"\r
-"Apply" === "Ïðèìåíèòü ïðàâèëî"\r
-## next 2 are suffixed to a text-edit containing a number (50 or 3)\r
-"-move rule" === "îáðàòèìûõ õîäîâ"\r
-"-fold repeats" === "-êðàòíîãî ïîâòîðà"\r
-"Engine #1 Score is Absolute" === "Îöåíêà äâèæêà 1 - àáñîëþòíàÿ"\r
-"Engine #2 Score is Absolute" === "Îöåíêà äâèæêà 2 - àáñîëþòíàÿ"\r
-\r
-COMMON ENGINE DIALOG\r
-\r
-"Common Engine Settings" === "Îáùèå íàñòðîéêè äâèæêîâ"\r
-"Polyglot Directory:" === "Polyglot â êàòàëîãå:"\r
-"Hash Size (MB):" === "Ðàçìåð õåøà (ÌÁ):"\r
-"EGTB Path:" === "Ïóòü ê ÝÁÄ:"\r
-"EGTB Size (MB):" === "Êåø ÝÁÄ (ÌÁ):"\r
-"Use Book:" === "Êíèãà:"\r
-"Max nr of CPUs:" === "Max ÷èñëî CPU:"\r
-"First has Own Book" === "Ñâîÿ êíèãà ó äâèæêà 1"\r
-"Second has Own Book" === "Ñâîÿ êíèãà ó äâèæêà 2"\r
-"Book Depth:" === "Ãëóáèíà êíèãè:"\r
-"Book Variation:" === "Âàðüèðîâàíèå:"\r
-"Default Match Games:" === "Ïàðòèé â ìàò÷å:"\r
-\r
-NEW-VARIANT DIALOG\r
-## (NOTE: the 'holdings' are the pieces standing next to the board ('in hand')\r
-\r
-"Variants" === "Âàðèàíòû"\r
-"Variant" === "Âàðèàíò"\r
-"Board size:" === "Ðàçìåð äîñêè"\r
-## Ðÿäîâ, ãîðèçîíòàëè íå âëåçëè.\r
-"ranks" === "ðÿäîâ"\r
-"files" === "ñòîëáöîâ"\r
-"Holdings with room for:" === "Ðåçåðâ íà:"\r
-"pieces" === "ôèãóð"\r
-"('-1' means defaults for selected variant)" === "'-1' - ïî óìîë÷àíèþ äëÿ ýòîãî âàðèàíòà"\r
-\r
-VARIANT NAMES: \r
-"&normal" === "îáû÷íûå"\r
-"&FRC" === "Ôèøåðà (960)"\r
-"&wildcastle" === ""\r
-"&nocastle" === ""\r
-"&losers" === "ïîääàâêè (ìàò)"\r
-"&giveaway" === "ïîääàâêè"\r
-"s&uicide" === ""\r
-"&3Check" === "3 øàõà"\r
-"&twokings" === ""\r
-"&atomic" === "àòîìíûå"\r
-"cra&zyhouse" === ""\r
-"&bughouse" === "øâåäêè"\r
-"&Twilight" === ""\r
-"Sp&artan" === ""\r
-"&shogi" === "ñ¸ãè"\r
-"su&per" === ""\r
-"&knightmate" === ""\r
-"&Berolina" === ""\r
-"c&ylinder" === "öèëèíäðè÷åñêèå"\r
-"&fairy" === ""\r
-"&makruk" === "ìàêðóê"\r
-"&gothic" === ""\r
-"&capablanca" === "Êàïàáëàíêè"\r
-"&Janus" === "ßíóñ"\r
-"&CRC" === ""\r
-"&Falcon" === ""\r
-"cou&rier" === ""\r
-"&Great" === "âåëèêèå"\r
-"&Shatranj" === "øàòðàíäæ"\r
-"Seira&wan" === "Ñåéðàâàíà"\r
-"&xiangqi" === "ñÿíöè"\r
-\r
-NEW SHUFFLE GAME\r
-\r
-"New Shuffle Game" === "Ïàðòèÿ â ñìåøàííûå øàõìàòû"\r
-"&Start Position Number:" === "Íîìåð ïîçèöèè:"\r
-"Random" === "Ñëó÷àéíî"\r
-\r
-GAME-LIST OPTIONS DIALOG\r
-\r
-"Game List Options" === "Ñîäåðæàíèå ñïèñêà ïàðòèé"\r
-"PGN &Tags:" === "Îïèñàíèÿ PGN âûøå ÷åðòû áóäóò ïîêàçàíû:"\r
-"&Up" === "Ââåðõ"\r
-"&Down" === "Âíèç"\r
-"Default" === "Ñáðîñèòü"\r
-"Factory" === "Ñòàíäàðò"\r
-"Restore to:" === " "\r
-\r
-MOVE HISTORY WINDOW\r
-\r
-"Move History" === "Ñïèñîê õîäîâ"\r
-\r
-EVALUATION GRAPH\r
-\r
-"Evaluation Graph" === "Îöåíêà ïîçèöèè"\r
-\r
-ENGINE OUTPUT WINDOW\r
-\r
-"Engine output" === "Âûâîä äâèæêà"\r
-"Engine #1" === "Äâèæîê 1"\r
-"NPS" === "NPS (Óçë./ñåê.)"\r
-"Engine #2" === "Äâèæîê 2"\r
-\r
-CHAT BOXES\r
-\r
-"Chat Window" === "Îêíî ÷àòà"\r
-"Chat partner:" === "Ñîáåñåäíèê:"\r
-"Clear" === "Ñáðîñ"\r
-"Send" === "Îòïð."\r
-\r
-winboard.c\r
-\r
-"&File" === "&Ôàéë"\r
-"&Edit" === "&Ïðàâêà"\r
-"&View" === "&Âèä"\r
-"&Mode" === "&Ðåæèì"\r
-"&Action" === "&Èãðà"\r
-"&Step" === "&Øàã"\r
-"E&ngine" === "&Äâèæîê"\r
-"&Options" === "&Íàñòðîéêè"\r
-"&Help" === "&Ñïðàâêà"\r
-\r
-## One-letter menu for small board sizes\r
-"&F" === "&Ô"\r
-"&E" === "&Ï"\r
-"&V" === "&Â"\r
-"&M" === "&Ð"\r
-"&A" === "&È"\r
-"&N" === "&Ä"\r
-"&O" === "&Í"\r
-"&H" === "&?"\r
-\r
-"You can only start a match from the initial position." === "Ìàò÷ ìîæíî íà÷èíàòü òîëüêî ñ èñõîäíîé ïîçèöèè."\r
-"Font name too long:" === "Ñëèøêîì äëèííîå íàçâàíèå øðèôòà:"\r
-"Font point size missing:" === "Íå óêàçàí ðàçìåð øðèôòà:"\r
-"Can't parse color name %s" === "Íåèçâåñòíûé öâåò %s"\r
-"Unrecognized board size value" === "Íåèçâåñòíûé ðàçìåð äîñêè"\r
-"Unrecognized argument" === "Íåèçâåñòíûé ïàðàìåòð"\r
-"No value provided for argument" === "Íå çàäàíî çíà÷åíèå ïàðàìåòðà"\r
-"Incomplete \\ escape in value for" === "Íåçàêîí÷åííîå âûðàæåíèå \\ â"\r
-"Failed to open indirection file" === "Íå óäàëîñü îòêðûòü äîáàâî÷íûé INI-ôàéë"\r
-"Unrecognized boolean argument value" === "Íåèçâåñòíîå çíà÷åíèå ëîãè÷åñêîãî ïàðàìåòðà"\r
-"Unrecognized argument" === "Íåèçâåñòíûé ïàðàìåòð"\r
-"Too many colors" === "Ñëèøêîì ìíîãî öâåòîâ"\r
-"&Minimize\tCtrl+F4" === "Ñâåðíóòü\tCtrl+F4"\r
-"White: %s" === "Áåëûå: %s"\r
-"We only care about the height here" === "Çäåñü âàæíà òîëüêî âûñîòà"\r
-"Cannot build game list" === "Íå óäàëîñü ñîçäàòü ñïèñîê ïàðòèé"\r
-"Load Game from File" === "Çàãðóçèòü ïàðòèþ èç ôàéëà"\r
-"Load Position from File" === "Çàãðóçèòü ïîçèöèþ èç ôàéëà"\r
-"Save Game to File" === "Ñîõðàíèòü ïàðòèþ â ôàéë"\r
-"Save Diagram to File" === "Ñîõðàíèòü äèàãðàììó â ôàéë"\r
-"Save Position to File" === "Ñîõðàíèòü ïîçèöèþ â ôàéë"\r
-"%s does not support analysis" === "%s íå ïîääåðæèâàåò ðåæèì àíàëèçà"\r
-"Analyze Game from File" === "Àíàëèçèðîâàòü ïàðòèþ èç ôàéëà"\r
-"Unable to activate help" === "Íåâîçìîæíî îòêðûòü ñïðàâêó"\r
-"Send to chess program:" === "Êîìàíäà äëÿ øàõìàòíîé ïðîãðàììû:"\r
-"Send to second chess program:" === "Êîìàíäà äëÿ âòîðîé øàõìàòíîé ïðîãðàììû:"\r
-"Direct Command" === "Êîìàíäíàÿ ñòðîêà"\r
-"Error loading sound %s" === "Îøèáêà çàãðóçêè ôàéëà çâóêà %s"\r
-"Error playing sound %s" === "Îøèáêà âîñïðîèçâåäåíèÿ çâóêà %s"\r
-"File open failed" === "Îøèáêà îòêðûòèÿ ôàéëà"\r
-"Internal error in file dialog box" === "Âíóòðåííÿÿ îøèáêà â äèàëîãîâîì îêíå ôàéëà"\r
-"Option Error" === "Íåïðàâèëüíàÿ íàñòðîéêà"\r
-"Choose an option, or cancel to exit" === "Âûáåðèòå îïöèþ èëè íàæìèòå \"îòìåíó\" äëÿ âûõîäà"\r
-"Unable to activate help" === "Íåâîçìîæíî îòêðûòü ñïðàâêó"\r
-"Displayed move is not current" === "Ïîçèöèÿ íå îòâå÷àåò ïîëîæåíèþ â èãðå"\r
-"Could not parse move" === "Íåâîçìîæíî èíòåðïðåòèðîâàòü õîä"\r
-"%s:\nError code %d" === "%s:\nÊîä îøèáêè %d"\r
-"Error" === "Îøèáêà"\r
-"Fatal Error" === "Íåèñïðàâèìàÿ îøèáêà"\r
-"Exiting" === "Âûõîä"\r
-"%s:\nError code %d" === "%s:\nÊîä îøèáêè %d"\r
-"Note" === "Ïðèìå÷àíèå"\r
-"Error writing to chess program" === "Îøèáêà ïîäêëþ÷åíèÿ ê øàõìàòíîé ïðîãðàììå"\r
-"User" === "Ïîëüçîâàòåëü"\r
-"Unknown" === "Íåèçâåñòíî"\r
-"White" === "Áåëûå"\r
-"Black" === "×åðíûå"\r
-"Save Game to File" === "Ñîõðàíèòü ïàðòèþ â ôàéë"\r
-"Not implemented" === "Íå ðåàëèçîâàíî"\r
-\r
-"Shout Text" === "Shout"\r
-"SShout/CShout" === ""\r
-"Channel 1 Text" === "Channel 1"\r
-"Channel Text" === "Channel"\r
-"Kibitz Text" === "Kibitz"\r
-"Tell Text" === "Tell"\r
-"Challenge Text" === "Challenge"\r
-"Request Text" === "Request"\r
-"Seek Text" === "Seek"\r
-"Normal Text" === "Ïðîñòîé òåêñò"\r
-"None" === "Íèêàêîé"\r
-"Pawn" === "Ïåøêà"\r
-"Knight" === "Êîíü"\r
-"Bishop" === "Ñëîí"\r
-"Rook" === "Ëàäüÿ"\r
-"Queen" === "Ôåðçü"\r
-"Information" === "Èíôîðìàöèÿ"\r
-\r
-wclipbrd.c\r
-\r
-"Unable to convert position to FEN." === "Íåâîçìîæíî ïðåîáðàçîâàòü ïîçèöèþ â ôîðìàò FEN."\r
-"Unable to copy FEN to clipboard." === "Íåâîçìîæíî ñêîïèðîâàòü ïîçèöèþ (FEN) â áóôåð îáìåíà."\r
-"Cannot create temporary file name." === "Íå ìîãó ñîçäàòü èìÿ âðåìåííîãî ôàéëà."\r
-"Cannot open temporary file." === "Íå ìîãó îòêðûòü âðåìåííûé ôàéë."\r
-"Cannot write to temporary file." === "Íå ìîãó çàïèñàòü âî âðåìåííûé ôàéë."\r
-"Cannot reopen temporary file." === "Íå ìîãó ïåðåîòêðûòü âðåìåííûé ôàéë."\r
-"Cannot determine size of file." === "Íå ìîãó îïðåäåëèòü ðàçìåð ôàéëà."\r
-"Cannot allocate clipboard buffer." === "Íåò ïàìÿòè äëÿ îòêðûòèÿ áóôåðà îáìåíà"\r
-"Cannot read from temporary file." === "Íå ìîãó ïðî÷èòàòü âðåìåííûé ôàéë."\r
-"Error reading from temporary file." === "Îøèáêà ÷òåíèÿ âðåìåííîãî ôàéëà."\r
-"Cannot copy text to clipboard" === "Íåâîçìîæíî ñêîïèðîâàòü òåêñò â áóôåð îáìåíà."\r
-"Unable to allocate memory for clipboard." === "Íåäîñòàòî÷íî ïàìÿòè äëÿ áóôåðà îáìåíà."\r
-"Unable to lock clipboard memory." === "Íåâîçìîæíî çàáëîêèðîâàòü ïàìÿòü áóôåðà îáìåíà."\r
-"Cannot unlock clipboard memory." === "Íåâîçìîæíî ðàçáëîêèðîâàòü ïàìÿòü áóôåðà îáìåíà."\r
-"Cannot open clipboard." === "Íå ìîãó îòêðûòü áóôåð îáìåíà."\r
-"Cannot empty clipboard." === "Íåâîçìîæíî îñâîáîäèòü áóôåð îáìåíà."\r
-"Cannot copy text to clipboard." === "Íåâîçìîæíî ñêîïèðîâàòü òåêñò â áóôåð îáìåíà."\r
-"Cannot close clipboard." === "Íå ìîãó çàêðûòü áóôåð îáìåíà."\r
-"Unable to paste FEN from clipboard." === "Íåâîçìîæíî âñòàâèòü ïîçèöèþ (FEN) èç áóôåðà îáìåíà."\r
-"Unable to create temporary file." === "Íåâîçìîæíî ñîçäàòü âðåìåííûé ôàéë."\r
-"Error writing to temporary file." === "Îøèáêà çàïèñè âî âðåìåííûé ôàéë."\r
-"Unable to open clipboard." === "Íåâîçìîæíî îòêðûòü áóôåð îáìåíà."\r
-"No text in clipboard." === "Íåò òåêñòà â áóôåðå îáìåíà."\r
-"Unable to lock clipboard memory." === "Íåâîçìîæíî çàáëîêèðîâàòü ïàìÿòü áóôåðà îáìåíà."\r
-"Unable to allocate memory for text string." === "Íåäîñòàòî÷íî ïàìÿòè äëÿ òåêñòîâîé ñòðîêè."\r
-"Unable to unlock clipboard memory." === "Íåâîçìîæíî ðàçáëîêèðîâàòü ïàìÿòü áóôåðà îáìåíà."\r
-"Unable to close clipboard." === "Íå ìîãó çàêðûòü áóôåð îáìåíà."\r
-\r
-woptions.c\r
-\r
-## For now, do NOT translate sound names, because WinBoard will no longer recognize them\r
-"Move" === ""\r
-"Bell" === ""\r
-"ICS Alarm" === ""\r
-"ICS Win" === ""\r
-"ICS Loss" === ""\r
-"ICS Draw" === ""\r
-"ICS Unfinished" === ""\r
-"Shout" === ""\r
-"SShout/CShout" === ""\r
-"Channel 1" === ""\r
-"Channel" === ""\r
-"Kibitz" === ""\r
-"Tell" === ""\r
-"Challenge" === ""\r
-"Request" === ""\r
-"Seek" === ""\r
-## end of sound names\r
-\r
-"Browse for Sound File" === "Âûáåðèòå çâóêîâîé ôàéë"\r
-"Can't parse com port settings" === "Íå óäàëîñü èíòåðïðåòèðîâàòü íàñòðîéêè COM-ïîðòà."\r
-"Option Error" === "Íåïðàâèëüíàÿ íàñòðîéêà"\r
-"Invalid data rate" === "Íåêîððåêòíàÿ ñêîðîñòü ïîäêëþ÷åíèÿ."\r
-"Option Error" === "Íåïðàâèëüíàÿ íàñòðîéêà"\r
-"Failed to set comm port state;\r\ninvalid options?" === "Îøèáêà èíèöèàëèçàöèè COM-ïîðòà;\r\níåïðàâèëüíî çàäàíû ïàðàìåòðû?"\r
-"Failed to set comm port state" === "Íå óäàëîñü èíèöèàëèçèðîâàòü COM-ïîðò."\r
-"Invalid load game step rate" === "Íåïðàâèëüíàÿ çàäåðæêà ïîêàçà õîäîâ."\r
-"Invalid save game file name" === "Íåïðàâèëüíîå èìÿ ôàéëà"\r
-"Browse for Auto Save File" === "Âûáåðèòå ôàéë àâòîñîõðàíåíèÿ"\r
-"Invalid moves per time control" === "Íåïðàâèëüíî çàäàíî ÷èñëî êîíòðîëüíûõ õîäîâ"\r
-"Invalid minutes per time control" === "Íåïðàâèëüíî çàäàíî êîëè÷åñòâî êîíòðîëüíûõ ìèíóò"\r
-"Invalid increment" === "Íåïðàâèëüíî çàäàíî äîáàâî÷íîå âðåìÿ çà ñäåëàííûé õîä"\r
-"Invalid initial time" === "Íåïðàâèëüíî çàäàíî íà÷àëüíîå âðåìÿ"\r
-"Changing time control during a game is not implemented" === "Íåâîçìîæíî èçìåíèòü óñòàíîâêè êîíòðîëÿ âðåìåíè â õîäå èãðû"\r
-\r
-"Variant %s not supported by %s" === "Âàðèàíò %s íå ïîääåðæèâàåòñÿ %s"\r
-"Warning: second engine (%s) does not support this!" === "Ïðåäóïðåæäåíèå: âòîðîé äâèæîê (%s) íå ïîääåðæèâàåò ýòî!"\r
-"Invalid  Alarm Time" === "Íåâåðíî çàäàíî âðåìÿ çâîíêà ICS"\r
-"Invalid max time per move" === "Íåâåðíî çàäàí ìàêñèìóì âðåìåíè íà õîä"\r
-"Invalid time-odds factor" === "Íåâåðíî çàäàí ôàêòîð âðåìåíè"\r
-"Choose Folder" === "Âûáåðèòå êàòàëîã"\r
-"Choose Book" === "Âûáåðèòå êíèãó"\r
-"Choose Polyglot Directory" === "Âûáåðèòå êàòàëîã ñ Polyglot"\r
-"Choose EGTB Directory:" === "Âûáåðèòå êàòàëîã ñ ýíäøïèëüíûìè áàçàìè:"\r
-"Polyglot was not found in the specified folder!" === "Polyglot íå íàéäåí â óêàçàííîì êàòàëîãå!"\r
-\r
-wgamelist.c\r
-\r
-"No game selected" === "Âûáåðèòå ïàðòèþ èç ñïèñêà"\r
-"Can't go forward any further" === "Äîñòèãíóò êîíåö ñïèñêà"\r
-"Can't back up any further" === "Äîñòèãíóòî íà÷àëî ñïèñêà"\r
-"No game list" === "Íåò ñïèñêà ïàðòèé"\r
-"Game List" === "Ñïèñîê ïàðòèé"\r
-"Game list not loaded or empty" === "Ñïèñîê ïàðòèé íå çàãðóæåí èëè ïóñò"\r
-"%s - %d/%d games" === "%s - %d/%d ïàðòèé"\r
-\r
-wedittags.c\r
-\r
-"Edit Tags" === "Ïðàâêà îïèñàíèÿ"\r
-"Tags" === "Îïèñàíèå"\r
-"Error replacing tags." === "Íåâîçìîæíî èñïðàâèòü îïèñàíèå."\r
-\r
-wsettings.c\r
-\r
-"%s Engine Settings (%s)" === "Íàñòðîéêè äâèæêà %s (%s)"\r
-"OK" === "OK"\r
-"Cancel" === "Îòìåíà"\r
-\r
-wchat.c\r
-\r
-"Chat Window %s" === "Îêíî ÷àòà %s"\r
-\r
-backend.c\r
-\r
-"bad timeControl option %s" === "timeControl: íåâåðíûé ïàðàìåòð %s"\r
-"bad searchTime option %s" === "searchTime: íåâåðíûé ïàðàìåòð %s"\r
-## following to will appear in combinationslike "first engine" \r
-"first" === "1"\r
-"second" === "2"\r
-"protocol version %d not supported" === "âåðñèÿ ïðîòîêîëà %d íå ïîääåðæèâàåòñÿ"\r
-"Variant %s supported only in ICS mode" === "Âàðèàíò %s ïîääåðæèâàåòñÿ òîëüêî â ðåæèìå ICS"\r
-"Unknown variant name %s" === "Íåèçâåñòíûé âàðèàíò %s"\r
-"Starting chess program" === "Çàïóñêàåòñÿ øàõìàòíàÿ ïðîãðàììà"\r
-"Could not open comm port %s" === "Íå ìîãó îòêðûòü COM-ïîðò %s"\r
-"Could not connect to host %s, port %s" === "Íå ìîãó óñòàíîâèòü ñâÿçü ñ %s, ïîðò %s"\r
-"Unknown initialMode %s" === "initialMode: íåèçâåñòíûé ðåæèì %s"\r
-"Can't have a match with no chess programs" === "Íå ïîäêëþ÷åíî íè îäíîé øàõìàòíîé ïðîãðàììû"\r
-"Bad game file" === "Íåïðàâèëüíûé ôîðìàò ôàéëà"\r
-"Bad position file" === "Íåïðàâèëüíûé ôîðìàò ôàéëà ïîçèöèè"\r
-"AnalyzeFile mode requires a game file" === "Ðåæèì àíàëèçà: íå óêàçàí ôàéë äëÿ àíàëèçà"\r
-"Analysis mode requires a chess engine" === "Äëÿ àíàëèçà íåîáõîäèìà øàõìàòíàÿ ïðîãðàììà"\r
-"Analysis mode does not work with ICS mode" === "Ðåæèì àíàëèçà íå ñîâìåñòèì ñ ðåæèìîì ICS"\r
-"MachineWhite mode requires a chess engine" === " ðåæèìå \"Êîìïüþòåð áåëûìè\" íóæíà øàõìàòíàÿ ïðîãðàììà"\r
-"MachineWhite mode does not work with ICS mode" === "Ðåæèì \"Êîìïüþòåð áåëûìè\" íå ñîâìåñòèì ñ ðåæèìîì ICS"\r
-"MachineBlack mode requires a chess engine" === " ðåæèìå \"Êîìïüþòåð ÷åðíûìè\" íóæíà øàõìàòíàÿ ïðîãðàììà (äâèæîê)"\r
-"MachineBlack mode does not work with ICS mode" === "Ðåæèì \"Êîìïüþòåð ÷åðíûìè\" íå ñîâìåñòèì ñ ðåæèìîì ICS"\r
-"TwoMachines mode does not work with ICS mode" === "Ðåæèì \"Äâà äâèæêà\" íå ñîâìåñòèì ñ ðåæèìîì ICS"\r
-"TwoMachines mode requires a chess engine" === " ðåæèìå \"Äâà äâèæêà\" íóæíà øàõìàòíàÿ ïðîãðàììà"\r
-"Training mode requires a game file" === "Äëÿ òðåíèðîâêè íåîáõîäèìî çàãðóçèòü øàõìàòíóþ ïàðòèþ èç ôàéëà"\r
-"Error writing to ICS" === "Îøèáêà çàïèñè íà âõîä ñåðâåðà ICS"\r
-"Error reading from keyboard" === "Îøèáêà êëàâèàòóðû"\r
-"Got end of file from keyboard" === "Ïîëó÷åí ñèìâîë êîíöà ôàéëà ñ êëàâèàòóðû"\r
-"Error writing to ICS" === "Îøèáêà çàïèñè íà âõîä ñåðâåðà ICS"\r
-"Error writing to display" === "Îøèáêà çàïèñè íà äèñïëåé"\r
-"Error gathering move list: two headers" === "Îøèáêà ÷òåíèÿ ñïèñêà õîäîâ: äâà çàãîëîâêà"\r
-"Error gathering move list: nested" === "Îøèáêà ÷òåíèÿ ñïèñêà õîäîâ: âëîæåííûå ñïèñêè"\r
-"Connection closed by ICS" === "Ñåðâåð ICS ðàçîðâàë ñîåäèíåíèå"\r
-"Error reading from ICS" === "Îøèáêà ÷òåíèÿ ñ ñåðâåðà ICS"\r
-"Failed to parse board string:\n\"%s\"" === "Îøèáêà ðàçáîðà ñòðîêè:\n\"%s\""\r
-"Game too long; increase MAX_MOVES and recompile" === "Ñëèøêîì äëèííàÿ ïàðòèÿ: óâåëè÷üòå çíà÷åíèå MAX_MOVES è ïåðåêîìïèëèðóéòå ïðîãðàììó"\r
-"Error gathering move list: extra board" === "Îøèáêà ÷òåíèÿ ñïèñêà õîäîâ: ëèøíÿÿ äîñêà"\r
-"Illegal move \"%s\" from ICS" === "Íåïðàâèëüíûé õîä "%s" ïîëó÷åí ñ ñåðâåðà ICS"\r
-"Couldn't parse move \"%s\" from ICS" === "Ñòðàííûé õîä "%s" ïîëó÷åí ñ ñåðâåðà ICS"\r
-## The leading 'say' is used as ICS command here, and should NOT be translated. Only the message behind it.\r
-"say Internal error; bad moveType %d (%d,%d-%d,%d)" === ""\r
-"You are playing Black" === "Âû èãðàåòå ÷åðíûìè"\r
-"You are playing White" === "Âû èãðàåòå áåëûìè"\r
-"It is White's turn" === "Õîä áåëûõ"\r
-"It is Black's turn" === "Õîä ÷åðíûõ"\r
-"Displayed position is not current" === "Ïîêàçàííàÿ ïîçèöèÿ íå ñîîòâåòñòâóåò ïîëîæåíèþ â èãðå"\r
-"Illegal move" === "Íåïðàâèëüíûé õîä"\r
-"End of game" === "Ñûãðàí ïîñëåäíèé çàïèñàííûé õîä"\r
-"Incorrect move" === "Íåâåðíûé õîä"\r
-## next 6: Second (first 3) or first (other) '%s' will be substituted for 'first' or 'second'.\r
-"Illegal move \"%s\" from %s machine" === "Íåïðàâèëüíûé õîä \"%s\" ïûòàåòñÿ âûïîëíèòü äâèæîê %s"\r
-"Illegal move \"%s\" (rejected by %s chess program)" === "Íåïðàâèëüíûé õîä \"%s\" (íå ïðèíÿò äâèæêîì %s)"\r
-"Failed to start %s chess program %s on %s: %s\n" === "Íå óäàëîñü çàïóñòèòü %s äâèæîê %s íà %s: %s\n"\r
-"Error writing to %s chess program" === "Îøèáêà çàïèñè íà âõîä äâèæêà %s"\r
-"Error: %s chess program (%s) exited unexpectedly" === "Îøèáêà: äâèæîê %s (%s) çàâåðøèë ðàáîòó"\r
-"Error reading from %s chess program (%s)" === "Îøèáêà ÷òåíèÿ ñ âûõîäà äâèæêà %s (%s)"\r
-"Forfeit due to illegal move" === "Øòðàô çà íåïðàâèëüíûé õîä"\r
-"%s does not support analysis" === "%s íå ïîääåðæèâàåò ðåæèì àíàëèçà"\r
-"Hint: %s" === "Ïîäñêàçêà: %s"\r
-"Machine accepts your draw offer" === "Êîìïüþòåð ñîãëàñèëñÿ íà íè÷üþ"\r
-"Machine offers a draw\nSelect Action / Draw to agree" === "Êîìïüþòåð ïðåäëàãàåò íè÷üþ.\n×òîáû ñîãëàñèòüñÿ, âûáåðèòå â ìåíþ Èãðà/Íè÷üÿ"\r
-"%s (only move)" === "%s (åäèíñòâåííûé õîä)"\r
-"Ambiguous move in ICS output: \"%s\"" === "Íåîäíîçíà÷íûé õîä ñ ñåðâåðà ICS: \"%s\""\r
-"Illegal move in ICS output: \"%s\"" === "Íåïðàâèëüíûé õîä ñ ñåðâåðà ICS: \"%s\""\r
-"Gap in move list" === "Ïðîïóñê â çàïèñè õîäîâ"\r
-"Game too long; increase MAX_MOVES and recompile" === "Ñëèøêîì äëèííàÿ ïàðòèÿ: óâåëè÷üòå çíà÷åíèå MAX_MOVES è ïåðåêîìïèëèðóéòå ïðîãðàììó"\r
-"Variant %s not supported by %s" === "Âàðèàíò %s íå ïîääåðæèâàåòñÿ %s"\r
-"Startup failure on '%s'" === "Îøèáêà ïðè çàïóñêå ïðîãðàììû '%s'"\r
-"Waiting for first chess program" === "Æäåì ïåðâóþ øàõìàòíóþ ïðîãðàììó"\r
-"Waiting for second chess program" === "Æäåì âòîðóþ øàõìàòíóþ ïðîãðàììó"\r
-"Match %s vs. %s: final score %d-%d-%d" === "Ìàò÷ %s ïðîòèâ %s: ôèíàëüíûé ðåçóëüòàò %d-%d-%d"\r
-"Stalemate" === "Ïàò"\r
-"Illegal move: %d.%s%s" === "Íåïðàâèëüíûé õîä: %d.%s%s"\r
-"Ambiguous move: %d.%s%s" === "Íåîäíîçíà÷íûé õîä: %d.%s%s"\r
-"Can't open \"%s\"" === "Íå ìîãó îòêðûòü ôàéë \"%s\""\r
-"Cannot build game list" === "Îøèáêà ïîñòðîåíèÿ ñïèñêà øàõìàòíûõ ïàðòèé"\r
-"No more games in this message" === " ýòîì ñîîáùåíèè áîëüøå íåò øàõìàòíûõ ïàðòèé"\r
-"No game has been loaded yet" === "Íåò çàãðóæåííûõ øàõìàòíûõ ïàðòèé"\r
-"Can't back up any further" === "Äîñòèãíóòî íà÷àëî ñïèñêà"\r
-"Game number out of range" === "Íîìåð ïàðòèè - âíå äèàïàçîíà"\r
-"Can't seek on game file" === "Ïîèñê â ôàéëàõ çàïèñåé ïàðòèé íå ïðåäóñìîòðåí"\r
-"Game not found in file" === "Ïàðòèÿ íå íàéäåíà â ôàéëå"\r
-"Bad FEN position in file" === "Íåïðàâèëüíàÿ ïîçèöèÿ ôîðìàòà FEN â ôàéëå"\r
-"No moves in game" === "Íåò çàïèñàííûõ õîäîâ"\r
-"No position has been loaded yet" === "Íåò çàãðóæåííûõ ïîçèöèé"\r
-"Can't back up any further" === "Äîñòèãíóòî íà÷àëî ñïèñêà"\r
-"Can't open \"%s\"" === "Íå ìîãó îòêðûòü ôàéë \"%s\""\r
-"Can't seek on position file" === "Ïîèñê â ôàéëàõ ïîçèöèé íå ïðåäóñìîòðåí"\r
-"Position not found in file" === "Ïîçèöèÿ íå íàéäåíà â ôàéëå"\r
-"Bad FEN position in file" === "Íåïðàâèëüíàÿ ïîçèöèÿ ôîðìàòà FEN â ôàéëå"\r
-"Black to play" === "Õîä ÷åðíûõ"\r
-"White to play" === "Õîä áåëûõ"\r
-"Can't open \"%s\"" === "Íå ìîãó îòêðûòü ôàéë \"%s\""\r
-"You have edited the game history.\nUse Reload Same Game and make your move again." === "Âû èçìåíèëè çàïèñü øàõìàòíîé ïàðòèè.\nÂûáåðèòå \"Ïåðåçàãðóçèòü ïàðòèþ\" è ïîâòîðèòå õîä åùå ðàç."\r
-"You have entered too many moves.\nBack up to the correct position and try again." === "Âû ââåëè ñëèøêîì ìíîãî õîäîâ.\nÂåðíèòåñü íàçàä ê ïðàâèëüíîé ïîçèöèè è ïîïûòàéòåñü åùå ðàç."\r
-"Displayed position is not current.\nStep forward to the correct position and try again." === "Ïîêàçàííàÿ ïîçèöèÿ íå ñîîòâåòñòâóåò ïîëîæåíèþ â èãðå.\nÏðîéäèòå âïåðåä ê ïðàâèëüíîé ïîçèöèè è ïîïûòàéòåñü åùå ðàç."\r
-"You have not made a move yet" === "Âû åùå íå ñäåëàëè õîä"\r
-"The cmail message is not loaded.\nUse Reload CMail Message and make your move again." === "Ñîîáùåíèå CMail íå çàãðóæåíî.\nÂûáåðèòå \"Reload CMail Message\" è ïîâòîðèòå õîä åùå ðàç."\r
-"No unfinished games" === "Íåò íåîêîí÷åííûõ ïàðòèé"\r
-"You have already mailed a move.\nWait until a move arrives from your opponent.\nTo resend the same move, type\n\"cmail -remail -game %s\"\non the command line." === "Âû óæå îòîñëàëè õîä.\nÏîäîæäèòå îòâåòíîãî õîäà ñîïåðíèêà.\nÄëÿ ïîâòîðíîé îòïðàâêè õîäà ââåäèòå:\n\"cmail -remail -game %s\"\nâ êîìàíäíîé ñòðîêå."\r
-"Failed to invoke cmail" === "Îøèáêà çàïóñêà cmail"\r
-"Waiting for reply from opponent\n" === "Îæèäàíèå îòâåòíîãî õîäà\n"\r
-"Still need to make move for game\n" === "Âñå åùå âàøà î÷åðåäü õîäèòü â ýòîé ïàðòèè\n"\r
-"Still need to make moves for both games\n" === "Âñå åùå âàøà î÷åðåäü õîäèòü â îáåèõ ïàðòèÿõ\n"\r
-"Still need to make moves for all %d games\n" === "Âñå åùå âàø õîä âî âñåõ %d ïàðòèÿõ\n"\r
-"Still need to make a move for game %s\n" === "Âñå åùå âàø õîä â ïàðòèè %s\n"\r
-"No unfinished games\n" === "Íåò íåîêîí÷åííûõ ïàðòèé\n"\r
-"Ready to send mail\n" === "Ìîæíî îòñûëàòü ïî÷òó\n"\r
-"Still need to make moves for games %s\n" === "Âñå åùå âàøà î÷åðåäü õîäèòü â ïàðòèÿõ %s\n"\r
-"Edit comment" === "Ïðàâêà êîììåíòàðèÿ"\r
-"Edit comment on %d.%s%s" === "Ïðàâêà êîììåíòàðèÿ ê %d.%s%s"\r
-"Starting analysis mode...If this message stays up, your chess program does not support analysis." ===  "Ïðèñòóïàåì ê àíàëèçó...\nÅñëè ýòî ñîîáùåíèå íå èñ÷åçàåò, âåðîÿòíî, âàøà øàõìàòíàÿ ïðîãðàììà íå ïîääåðæèâàåò ðåæèì àíàëèçà"\r
-"It is not White's turn" === "Ñåé÷àñ íå õîä áåëûõ"\r
-"It is not Black's turn" === "Ñåé÷àñ íå õîä ÷åðíûõ"\r
-"Wait until your turn,\nor select Move Now" === "Ïîäîæäèòå ñâîåé î÷åðåäè õîäèòü,\nèëè âûáåðèòå â ìåíþ \"Äåëàé õîä\""\r
-"Starting second chess program" === "Çàïóñêàåòñÿ âòîðàÿ øàõìàòíàÿ ïðîãðàììà"\r
-"Training mode off" === "Òðåíèðîâêà îêîí÷åíà"\r
-"Training mode on" === "Òðåíèðîâêà"\r
-"Already at end of game" === "Ñûãðàíû âñå õîäû äàííîé ïàðòèè"\r
-"Warning: You are still playing a game" === "Ïðåäóïðåæäåíèå: âû âñå åùå ïðîäîëæàåòå èãðàòü"\r
-"Warning: You are still observing a game" === "Ïðåäóïðåæäåíèå: âû âñå åùå íàáëþäàåòå çà èãðîé"\r
-"Warning: You are still examining a game" === "Ïðåäóïðåæäåíèå: âû âñå åùå èçó÷àåòå èãðó"\r
-"It is Black's turn" === "Õîä ÷åðíûõ"\r
-"It is White's turn" === "Õîä áåëûõ"\r
-"That square is occupied" === "Ýòî ïîëå çàíÿòî"\r
-"There is no pending offer on this move" === "Ê äàííîìó õîäó íèêàêèõ ïðåäëîæåíèé íå ñäåëàíî"\r
-"Your opponent is not out of time" === "Ó âàøåãî ñîïåðíèêà åùå åñòü âðåìÿ"\r
-"Black offers a draw" === "×åðíûå ïðåäëàãàþò íè÷üþ"\r
-"White offers a draw" === "Áåëûå ïðåäëàãàþò íè÷üþ"\r
-"You must make your move before offering a draw" === "Âû äîëæíû ñäåëàòü ñâîé õîä ïðåæäå, ÷åì ïðåäëàãàòü íè÷üþ"\r
-"You are not examining a game" === "Íå âêëþ÷åí ðåæèì èçó÷åíèÿ øàõìàòíûõ ïàðòèé"\r
-"You can't revert while pausing" === "Íåëüçÿ âåðíóòüñÿ ê íà÷àëó ïîêà âûáðàíà \"Ïàóçà\""\r
-"Wait until your turn,\nor select Move Now" === "Ïîäîæäèòå ñâîåé î÷åðåäè õîäèòü,\nèëè âûáåðèòå â ìåíþ \"Äåëàé õîä\""\r
-"It is your turn" === "Âàø õîä"\r
-"Wait until your turn" === "Ïîäîæäèòå ñâîåé î÷åðåäè õîäèòü"\r
-"No hint available" === "Ïîäñêàçîê íåò"\r
-"Analysis (%s)" === "Àíàëèç (%s)"\r
-"Comment" === "Êîììåíòàðèé"\r
-"Comment on %d.%s%s" === "Êîììåíòàðèé ê %d.%s%s"\r
-"Both flags fell" === "Ó îáîèõ èãðîêîâ âðåìÿ âûøëî"\r
-"White's flag fell" === "Ó áåëûõ óïàë ôëàæîê"\r
-"Black's flag fell" === "Ó ÷åðíûõ óïàë ôëàæîê"\r
-"Bad FEN position in clipboard" === "Ïîçèöèÿ â áóôåðå îáìåíà íå ñîîòâåòñòâóåò ôîðìàòó FEN"\r
-"No response from ICS" === "Ñåðâåð ICS íå îòâå÷àåò"\r
-"You cannot do this while you are playing or observing" === "Ýòî äåéñòâèå íåâûïîëíèìî âî âðåìÿ èãðû èëè íàáëþäåíèÿ"\r
-"Click in holdings to choose piece" === "×òîáû âûáðàòü ôèãóðó èç ðåçåðâà, ùåëêíèòå ïî íåé"\r
-\r
-END-OF-GAME MESSAGES (should they be translated?)\r
-## I think that only for visualization and not for PGN, as PGN files are shared all around the world\r
-## [OK, I adapted the source that way. So please translate.]\r
-\r
-"Game aborted" === "Ïàðòèÿ ïðåðâàíà"\r
-"White wins on time" === "Áåëûå âûèãðàëè ïî âðåìåíè"\r
-"Black wins on time" === "×åðíûå âûèãðàëè ïî âðåìåíè"\r
-"Both players ran out of time" === "Ó îáîèõ èãðîêîâ çàêîí÷èëîñü âðåìÿ"\r
-"White resigns" === "Áåëûå ñäàëèñü"\r
-"Black resigns" === "×åðíûå ñäàëèñü"\r
-"White mates" === "Áåëûå äàþò ìàò"\r
-"Black mates" === "×åðíûå äàþò ìàò"\r
-"Draw" === "Íè÷üÿ"\r
-"Draw agreed" === "Íè÷üÿ ïî ñîãëàøåíèþ"\r
-"Xboard adjudication: King destroyed" === "Ïðèñóæäåíî Xboard: êîðîëü óíè÷òîæåí"\r
-"Xboard adjudication: Bare king" === "Ïðèñóæäåíî Xboard: ãîëûé êîðîëü"\r
-"Xboard adjudication: 3rd check" === "Ïðèñóæäåíî Xboard: òðåòèé øàõ"\r
-"Xboard adjudication: Stalemate" === "Ïðèñóæäåíî Xboard: ïàò"\r
-"Xboard adjudication: Checkmate" === "Ïðèñóæäåíî Xboard: ìàò"\r
-"Xboard adjudication: Insufficient mating material" === "Ïðèñóæäåíî Xboard: íåäîñòàòî÷íî ìàòåðèàëà"\r
-"Xboard adjudication: Trivial draw" === "Ïðèñóæäåíî Xboard: íè÷üÿ â òåõíè÷åñêîì îêîí÷àíèè"\r
-"XBoard adjudication: repetition draw" === "Ïðèñóæäåíî Xboard: íè÷üÿ èç-çà ïîâòîðåíèÿ"\r
-"Xboard adjudication: perpetual checking" === "Ïðèñóæäåíî Xboard: âå÷íûé øàõ"\r
-"Xboard adjudication: perpetual chasing" === "Ïðèñóæäåíî Xboard: âå÷íîå ïðåñëåäîâàíèå"\r
-"%Xboard adjudication: perpetual chasing of" === "Ïðèñóæäåíî Xboard: âå÷íîå ïðåñëåäîâàíèå"\r
-"Xboard adjudication: 50-move rule" === "Ïðèñóæäåíî Xboard: ïðàâèëî 50 õîäîâ"\r
-"Draw claim: 50-move rule" === "Òðåáîâàíèå íè÷üåé: ïðàâèëî 50 õîäîâ"\r
-"Draw claim: 3-fold repetition" === "Òðåáîâàíèå íè÷üåé: òðåõêðàòíîå ïîâòîðåíèå"\r
-"Draw claim: insufficient mating material" === "Òðåáîâàíèå íè÷üåé: íåäîñòàòî÷íî ìàòåðèàëà"\r
-"Xboard adjudication: long game" === "Ïðèñóæäåíî Xboard: äîëãàÿ èãðà"\r
-"Xboard: Forfeit due to invalid move: %s (%c%c%c%c) res=%d" === "Xboard: Ïðîèãðûø èç-çà íåâåðíîãî õîäà: %s (%c%c%c%c) res=%d"\r
-"Xboard: Forfeit due to illegal move: %s (%c%c%c%c)%c" === "Xboard: Ïðîèãðûø èç-çà íåïðàâèëüíîãî õîäà: %s (%c%c%c%c)%c"\r
-"Xboard adjudication" === "Ïðèñóæäåíî Xboard"\r
-"User adjudication" === "Ïðèñóæäåíî ïîëüçîâàòåëåì"\r
-"False win claim: '%s'" === "Îøèáî÷íîå òðåáîâàíèå ïîáåäû: '%s'"\r
-"False draw claim: '%s'" === "Îøèáî÷íîå òðåáîâàíèå íè÷üåé: '%s'"\r
-"xboard exit" === "Âûõîä èç Xboard"\r
-\r
-\r
diff --git a/winboard/language/spanish.lng b/winboard/language/spanish.lng
deleted file mode 100644 (file)
index a1ada60..0000000
+++ /dev/null
@@ -1,953 +0,0 @@
-## WinBoard 4.5.0 language file\r
-## Spanish/Español v1.0\r
-## Translation by Óscar Toledo G.\r
-##\r
-## If you revise this, please insert your date, name and description.\r
-## Si usted revisa esto, por favor inserte su fecha, nombre y descripción.\r
-##\r
-##   Aug/24/2010 Óscar Toledo G. http://nanochess.110mb.com/\r
-##     First beta translation\r
-##   Aug/25/2010 Óscar Toledo G.\r
-##     Second beta, enhanced translation. Added notes for translators.\r
-##   Nov/29/2010 Óscar Toledo G.\r
-##     Final revision, added new string, adjusted messages for new menu reorganization.\r
-\r
-## Notes for translators: (suggested also for lang450.txt)\r
-## o Use ## for comments, find them scattered around this translation\r
-## o Careful with temptation of direct translation, by example 'movimiento' for 'move' when 'jugada' is better.\r
-## o Try to use short phrases, more text doesn't imply more clearness.\r
-## o Check that your translation is right, does it mean what it does?\r
-## o Test your translation, check every dialog.\r
-## o For standard chess names check Wikipedia for confirmation.\r
-## o For menus, assign shortcuts (character &) until you finish the translation.\r
-\r
-winboard.rc\r
-\r
-MENUS:\r
-\r
-"&New Game\tCtrl-N" === "&Nueva partida\tCtrl+N"\r
-"New Sh&uffle Game..." === "Nueva partida revuelta..."\r
-"New &Variant...\tAlt+Shift+V" === "Nueva variante...\tAlt+Mayús+V"\r
-"&Load Game...\tCtrl-O" === "&Leer partida...\tCtrl+O"\r
-"L&oad Position...\tCtrl+Shift+O" === "Lee&r posición...\tCtrl+Mayús+O"\r
-"&Save Game...\tCtrl-S" === "&Guardar partida...\tCtrl+S"\r
-"S&ave Position...\tCtrl+Shift+S" === "Guardar po&sición...\tCtrl+Mayús+S"\r
-"Save as &Diagram..." === "Guardar &diagrama..."\r
-"&Quit" === "&Salir"\r
-## Next six strings not used now.\r
-"Load &Next Game\tAlt+PgDn" === "Partida s&iguiente\tAlt+PgDn"\r
-"Load &Previous Game\tAlt+PgUp" === "Par&tida previa\tAlt+PgUp"\r
-"&Reload Same Game" === "Releer la &misma partida"\r
-"Load N&ext Position\tAlt+Shift+PgDn" === "Posición si&guiente\tAlt+Mayús+PgDn"\r
-"Load Pre&vious Position\tAlt+Shift+PgUp" === "Posició&n previa\tAlt+Mayús+PgUp"\r
-"Reload Sa&me Position" === "Releer la mism&a posición"\r
-\r
-"&Copy Game To Clipboard\tCtrl+C" === "&Copiar partida\tCtrl+C"\r
-"C&opy Position To Clipboard\tCtrl+Shift+C" === "C&opiar posición\tAlt+Mayús+C"\r
-"Copy Game List to Clipboard" === "Copiar lista de &partidas"\r
-"&Paste Game From Clipboard\tCtrl+V" === "&Pegar partida\tCtrl+V"\r
-"P&aste Position From Clipboard\tCtrl+Shift+V" === "Peg&ar posición\tAlt+Mayús+V"\r
-"&Edit Game\tCtrl+E" === "&Editar partida\tCtrl+E"\r
-"E&dit Position\tCtrl+Shift+E" === "E&ditar posición\tCtrl+Mayús+E"\r
-"Edit Ta&gs..." === "Editar c&ircunstancias"\r
-"Edit Co&mment..." === "Editar co&mentarios"\r
-"Enter &Username..." === "Introducir nombre de &usuario..."\r
-"&Revert\tHome" === "&Revertir\tHome"\r
-"&Annotate" === "&Anotar"\r
-"&Truncate Game\tEnd" === "&Truncar partida\tEnd"\r
-"&Backward\tAlt+Left" === "Jugada &anterior\tAlt+Izquierda"\r
-"&Forward\tAlt+Right" === "&Siguiente jugada\tAlt+Derecha"\r
-"Back to &Start\tAlt+Home" === "&Primera jugada\tAlt+Inicio"\r
-"For&ward to End\tAlt+End" === "&Ultima jugada\tAlt+Fin"\r
-\r
-"Flip &View\tF2" === "&Tablero invertido\tF2"\r
-"&Swap Clocks" === "Intercambiar relojes"\r
-"Engine &Output\tAlt+Shift+O" === "Mostrar &salida del motor\tAlt+Mayús+O"\r
-"Evaluation &Graph\tAlt+Shift+E" === "Mostrar &gráfica de evaluación\tAlt+Mayús+E"\r
-"Game &List\tAlt+Shift+G" === "Mostrar &lista de partidas\tAlt+Mayús+G"\r
-"Move &History\tAlt+Shift+H" === "Mostrar lista de &jugadas\tAlt+Mayús+H"\r
-"Open &New Chat Window" === "Abrir ventana de conversación"\r
-"Type In &Move...\tAlt+I" === "T&eclear jugada...\tAlt+I"\r
-"&Tags" === "C&ircunstancias"\r
-"&Comments" === "&Comentarios"\r
-"&Game List Tags..." === "Opciones de lista de &partidas..."\r
-"&Board..." === "Opciones del t&ablero..."\r
-"&Fonts..." === "Opciones de ti&pografía..."\r
-\r
-"Machine &White\tCtrl+W" === "El programa juega con &blancas\tCtrl+W"\r
-"Machine &Black\tCtrl+B" === "El programa juega con &negras\tCtrl+B"\r
-"&Two Machines\tCtrl+T" === "Juegan d&os programas\tCtrl+T"\r
-"Machine Both" === "Programa contra si mismo"\r
-"&Analysis Mode\tCtrl+A" === "&Análisis\tCtrl+A"\r
-"Analyze &File\tCtrl+F" === "A&nalizar archivo\tCtrl+F"\r
-"&Edit Game\tCtrl+E" === "&Editar partida\tCtrl+E"\r
-"E&dit Position\tShift+Ctrl+E" === "E&ditar posición\tCtrl+Mayús+E"\r
-"Trai&ning" === "Ent&renamiento"\r
-"&ICS Client" === "Conectado a un &ICS"\r
-"&Machine Match" === "&Torneo de dos programas"\r
-"&Pause\tPause" === "&Pausa\tPausa"\r
-\r
-"&Accept\tF3" === "&Acepto\tF3"\r
-"D&ecline\tF4" === "&Rehuso\tF4"\r
-"Re&match\tF12" === "Pido &desquite\tF12"\r
-"Call &Flag\tF5" === "&Pedir la bandera\tF5"\r
-"&Draw\tF6" === "&Tablas\tF6"\r
-"Ad&journ\tF7" === "Ap&lazamiento\tF7"\r
-"A&bort\tF8" === "A&nulación\tF8"\r
-"&Resign\tF9" === "&Me rindo\tF9"\r
-"Stop &Observing\tF10" === "Dejo de obser&var\tF10"\r
-"Stop E&xamining\tF11" === "Dejo de e&xaminar\tF11"\r
-"&Upload to Examine" === "Enviar para examinar"\r
-"Adjudicate to &White" === "Adjudicar a blancas"\r
-"Adjudicate to &Black" === "Adjudicar a negras"\r
-"Adjudicate &Draw" === "Adjudicar tablas"\r
-\r
-"Engine #&1 Settings..." === "Configuración motor #&1..."\r
-"Engine #&2 Settings..." === "Configuración motor #&2..."\r
-"Install 1st..." === "Lista de motores #1..."\r
-"Install 2nd..." === "Lista de motores #2..."\r
-"&Hint..." === "&Dame una pista..."\r
-"&Book..." === "Repertorio de &aperturas..."\r
-"&Move Now\tCtrl+M" === "&Forzar jugada\tCtrl+M"\r
-"&Retract Move\tCtrl+X" === "&Revocar jugada\tCtrl+X"\r
-\r
-"&Mute all Sounds" === "&Apagar los sonidos"\r
-"&General..." === "&Generales..."\r
-"&Time Control...\tAlt+Shift+T" === "&Controles de tiempo..."\r
-"Common &Engine...\tAlt+Shift+U" === "Para los motores...\tAlt+Mayús+U"\r
-"Ad&judications...\tAlt+Shift+J" === "Adjudicaciones...\tAlt+Mayús+J"\r
-"&Load Game...\tAlt+Shift+L" === "Para &leer partida...\tAlt+Mayús+L"\r
-"&Save Game...\tAlt+Shift+S" === "Para gua&rdar partida...\tAlt+Mayús+S"\r
-"G&ame List..." === "Lista de &partidas..."\r
-"Soun&ds..." === "Soni&do..."\r
-"&ICS..." === "&ICS..."\r
-"Add ICS..." === "Nueva ICS..."\r
-"Comm&unications..." === "Com&unicaciones..."\r
-"Save Settings &Now" === "Salvar config. a&hora"\r
-"Save Settings on E&xit" === "Salvar config. al &salir del programa"\r
-\r
-"Help &Contents\tF1" === "&Contenido\tF1"\r
-"Help &Index" === "&Indice alfabético"\r
-"How to &Use Help" === "Modo de utilizar la ayuda"\r
-"&About WinBoard" === "Acerca de &WinBoard"\r
-\r
-"White" === "Blancas"\r
-"Promote" === "Coronar"\r
-"Pawn" === "Peón"\r
-"Knight" === "Caballo"\r
-"Bishop" === "Alfil"\r
-"Rook" === "Torre"\r
-"Queen" === "Dama"\r
-"King" === "Rey"\r
-"Archbishop" === "Arzobispo"\r
-"Chancellor" === "Canciller"\r
-"Elephant" === "Elefante"\r
-"Cannon" === "Cañón"\r
-"Empty Square" === "Vaciar el escaque"\r
-"Black" === "Negras"\r
-"Demote" === "Degradar"\r
-"Clear Board    " === "Limpiar el tablero    "\r
-"Gold" === "Oro"\r
-"Silver" === "Plata"\r
-"Lance" === "Lanza"\r
-\r
-"Drop" === "Soltar"\r
-\r
-"Cop&y and Paste" === "Cop&iar y pegar"\r
-"&Copy" === "&Copiar"\r
-"&Paste" === "&Pegar"\r
-\r
-"&Undo" === "&Deshacer"\r
-"Cu&t" === "Cor&tar"\r
-"&Copy" === "&Copiar"\r
-"&Paste" === "&Pegar"\r
-"Select &All" === "&Seleccionar todo"\r
-\r
-DIALOGS:\r
-\r
-ABOUTBOX\r
-\r
-"About WinBoard" === "Acerca de WinBoard"\r
-"OK" === "Aceptar"\r
-"Chessboard for Windows" === "Tablero de ajedrez para Windows"\r
-## Following 3 strings doesn't get translated :(\r
-"Copyright 1991 Digital Equipment Corporation" === "(c) Copyright Digital Equipment Corporation 1991"\r
-"Enhancements Copyright 1992-2014  Free Software Foundation" === "Mejoras (c) Copyright Free Software Fundation 1992-2010"\r
-"Enhancements Copyright 2005\r\nAlessandro Scotti" === "Mejoras (c) Copyright\r\nAlessandro Scotti 2005"\r
-## What happened with H.G.Muller?\r
-## Absolutely needed a link to download the most recent version\r
-"      " === "Traducción por Óscar Toledo G."\r
-"WinBoard 0.0.0" === "WinBoard 0.0.0"\r
-\r
-ABOUTBOX2\r
-\r
-"galactic" === "galáctico"\r
-\r
-TIME CONTROL DIALOG\r
-\r
-"Time Control" === "Control de tiempo"\r
-"Conventional chess clock" === "Reloj convencional de ajedrez"\r
-"Incremental clock" === "Reloj incremental"\r
-"Cancel" === "Cancelar"\r
-\r
-"Use arrow keys to specify which clock setting type, then press tab to alter values." === "Utilice las flechas del teclado para especificar el tipo de configuración de reloj, después oprima Tab para alterar los valores."\r
-"Fixed time per move" === "Tiempo fijo por jugada"\r
-"Number of moves:" === "Número jugadas:"\r
-"Within number of minutes:" === "Durante (minutos):"\r
-"Initial number of minutes:" === "Número inicial de minutos:"\r
-"Plus number of seconds per move:" === "Segundos extra por jugada:"\r
-"Maximum seconds per move:" === "Máximo de segundos por jugada:"\r
-"Time-Odds Factors:" === "Factores de tiempo:"\r
-"Engine #1:" === "Motor #1:"\r
-"Engine #2:" === "Motor #2:"\r
-\r
-LOAD OPTIONS DIALOG\r
-\r
-"Load Game Options" === "Opciones al leer partida"\r
-"Load games with automatic stepping" === "Carga partida con avance automático"\r
-"seconds per move" === "segundos por jugada"\r
-\r
-SAVE OPTIONS DIALOG\r
-\r
-"Save Game Options" === "Opciones al salvar partida"\r
-"Save As: " === "Estilo"\r
-"Save games automatically" === "Salvar partidas automático"\r
-"Prompt for filename" === "Pedir nombre"\r
-"To file:" === "Archivo:"\r
-"PGN" === "PGN"\r
-"Old" === "Viejo"\r
-"Browse..." === "Ver"\r
-"Save out of book info in PGN" === "Incluir en PGN info. al dejar libro de aperturas"\r
-\r
-1536\r
-\r
-## Used in old Windows versions (still working?)\r
-"Open" === "Abrir"\r
-"File &Name:" === "&Nombre:"\r
-"&Directories:" === "&Directorios:"\r
-"List Files of &Type:" === "Listar de &tipo:"\r
-"Dri&ves:" === "&Unidades:"\r
-"&Help" === "Ay&uda"\r
-"&Index number:" === "Nú&m. índice"\r
-\r
-COMMPORT\r
-## Not tested, I could not access it.\r
-"Communication Port Settings" === "Configuración comunicaciones"\r
-"Net&work..." === "&Red..."\r
-"&Port:" === "&Puerta:"\r
-"Data &Rate:" === "&Velocidad:"\r
-"Data &Bits:" === "&Bits:"\r
-"P&arity:" === "P&aridad:"\r
-"&Stop Bits:" === "Bits pa&rada:"\r
-"F&low:" === "F&lujo:"\r
-\r
-EDIT COMMENT\r
-\r
-"Edit Comment" === "Editar comentario"\r
-"&Clear" === "&Limpiar"\r
-"&Edit" === "&Edición"\r
-\r
-PROMOTION POPUP\r
-"Promotion" === "Coronación"\r
-"&Queen" === "&Dama"\r
-"&Rook" === "&Torre"\r
-"&Bishop" === "&Alfil"\r
-"K&night" === "Ca&ballo"\r
-"&King" === "&Rey"\r
-"&Cancel" === "&Cancelar"\r
-\r
-## This text appears and it is not in lang450.txt (remove comment if added to lang450.txt)\r
-"Promote to:" === "Coronar a:"\r
-"Promote?" === "¿Coronar?:"\r
-\r
-"Chance&llor" === "Canci&ller"\r
-"&Archbishop" === "Ar&zobispo"\r
-"      YES" === "       SI"\r
-"       NO" === "       NO"\r
-"C&entaur" === "C&entauro"\r
-\r
-GAME LIST\r
-\r
-"Game List" === "Lista de juegos"\r
-"&Load" === "&Leer"\r
-"&Prev" === "&Previo"\r
-"&Next" === "&Siguiente"\r
-"&Close" === "&Cerrar"\r
-"Filter" === "Filtro"\r
-\r
-EDIT TAGS\r
-\r
-"Edit Tags" === "Circunstancias"\r
-\r
-ERROR\r
-\r
-"ICS Interaction" === "Interacción ICS"\r
-"Dialog" === "Diálogo"\r
-"Error" === "Error"\r
-"Sorry Charlie" === "Lo siento amigo"\r
-\r
-COLORIZE\r
-\r
-"I C S Interaction Colors" === "Colores interacción I C S"\r
-"Interaction Colors" === "Colores interacción"\r
-"Premove" === "Pre-mov."\r
-"Alarm" === "Alarma"\r
-"Colors" === "Colores"\r
-"&Choose Color..." === "&Escoger color..."\r
-"&Bold" === "&Negrita"\r
-"&Italic" === "&Itálica"\r
-"&Underline" === "&Subrayado"\r
-"&Strikeout" === "&Tachado"\r
-\r
-QUESTION\r
-\r
-## Next string currently not used\r
-"Enter a chess engine command or just type something stupid that will completely screw things up." === "Introduzca una orden para el motor o sólo teclee algo tonto que arruinará completamente las cosas."\r
-"Question" === "Pregunta"\r
-"Enter" === "Entrar"\r
-\r
-STARTUP DIALOG\r
-\r
-"WinBoard Startup" === "Inicio de WinBoard"\r
-"What would you like to do?" === "¿Qué le gustaría hacer?"\r
-"&Play against a chess engine or match two engines" === "&Jugar contra un motor de ajedrez o torneo de dos motores"\r
-"&Use an Internet Chess Server" === "&Utilizar un servidor de ajedrez de Internet (ICS)"\r
-"Just &view or edit game files" === "Sólo &ver o editar archivos de partidas"\r
-"Specify Chess &Engines:" === "Especifique &motores de ajedrez:"\r
-"Specify Chess &Server:" === "Especifique &servidor de ajedrez:"\r
-"&Additional options" === "Opciones extras"\r
-\r
-INDEX\r
-\r
-"Type in a move" === "Introduzca una jugada"\r
-"Inde&x number:" === "Núm. índi&ce"\r
-\r
-SOUND DIALOG\r
-\r
-"Sounds" === "Sonidos"\r
-\r
-"&Event:" === "&Evento:"\r
-"&No sound" === "&Sin sonido"\r
-"&Default beep" === "Bip por &defecto"\r
-"&Built-in sound:" === "Sonido &interno"\r
-"&WAV file:" === "Archivo &WAV:"\r
-"B&rowse..." === "E&xaminar..."\r
-"&Play" === "&Reproducir"\r
-"&Defaults" === "&Por defecto"\r
-\r
-GENERAL OPTIONS DIALOG\r
-## Note: finely tuned spaces to align keys at right (add this comment to lang450.txt for commodity)\r
-\r
-"General Options" === "Opciones generales"\r
-"Always on &Top" === "Siempre al &frente"\r
-"Always &Queen            Ctrl+Shift+Q" === "Siempre &dama                Ctrl+Mayús+Q"\r
-"Animate &Dragging" === "Animar &arrastre"\r
-"&Animate Moving         Ctrl+Shift+A" === "Animar &movimiento         Ctrl+Mayús+A"\r
-"Auto &Flag                   Ctrl+Shift+F" === "&Bandera automática       Ctrl+Mayús+F"\r
-"Auto Flip &View" === "Cambio de &lado automático"\r
-"Auto &Raise Board" === "&Tablero al frente (automático)"\r
-"&Blindfold" === "A &ciegas"\r
-"Highlight Dra&gging" === "Iluminar a&rrastre"\r
-"Highlight Last &Move" === "Iluminar última ju&gada"\r
-"Periodic &Updates" === "Act&ualización periódica"\r
-\r
-## Was wrong in lang450.txt (remove comment if corrected in lang450.txt)\r
-"Ponder &Next Move  Ctrl+Shift+P" === "Prever &próx.jugada      Ctrl+Mayús+P"\r
-\r
-"&Popup Exit Message" === "&Ventana al salir"\r
-"Popup Move &Errors" === "Ventana si &error en jugada"\r
-"Show Butt&on Bar" === "Mostrar barra de boto&nes"\r
-"Show &Coordinates" === "Mostrar coordenada&s"\r
-"&Show Thinking" === "Mostrar cog&itaciones"\r
-"Test &Legality            Ctrl+Shift+L" === "Checar &legalidad         Ctrl+Mayús+L"\r
-"&Hide Thinking          Ctrl+Shift+H" === "Ocultar cogitación      Ctrl+Mayús+H"\r
-"&Info in Move History   Ctrl+Shift+I" === "Info. en lista jugadas       Ctrl+Mayús+I"\r
-"&Send Engine Think" === "Enviar cogitaciones del motor"\r
-"E&xtended PGN Info    Ctrl+Shift+X" === "Info. PGN extendida       Ctrl+Mayús+X"\r
-"Highlight with Arro&w" === "Iluminar con flecha"\r
-"Displa&y Logos" === "Mostrar logotipos"\r
-"One-Click Move" === "Moviemento de un click"\r
-\r
-ICS OPTIONS\r
-\r
-"ICS Options" === "Opciones ICS"\r
-"&Auto Comment" === "&Auto-comentario"\r
-"Auto &Observe" === "Auto-&Observar"\r
-\r
-"&Get Move List" === "L&eer lista jugadas"\r
-\r
-"&Local Line Editing" === "Edición de línea &local"\r
-"&Quiet Play" === "Jugar en s&ilencio"\r
-\r
-"&Premove" === "&Moviemento prev."\r
-\r
-"&White first move" === "1er. mov. &blancas"\r
-"&Black first move" === "1er. mov. &negras"\r
-"&Sound alarm at" === "&Sonar alarma en"\r
-"seconds" === "segundos"\r
-"Choose..." === "Escoger..."\r
-"Do &not colorize messages" === "N&o colorear mensajes"\r
-\r
-"&Auto Kibitz" === "&Auto Kibitz"\r
-"Auto Kibit&z" === "Auto Kibit&z"\r
-"See&k Graph" === "&Buscar gráfica"\r
-"auto-&Refresh" === "auto-&Refresco"\r
-"Bckgnd Obser&ve" === "M&irar en el fondo"\r
-"&Dual Board" === "Tablero &dual"\r
-"One-Click &Move" === "&Moviemento de un click"\r
-"Background..." === "Fondo..."\r
-"&Defaults..." === "&Por defecto..."\r
-"Startup &Chat Boxes:" === "Cajones de plática:"\r
-"General" === "General"\r
-\r
-BOARD OPTIONS\r
-## (NOTE: AllWhite uses the white pieces for both sides\r
-##        FlipBlack plots the black pieces upside down)\r
-\r
-"Board Options" === "Opciones de tablero"\r
-"Defaults" === "Por defecto"\r
-"Light Squares" === "Cuadros claros"\r
-"Dark Squares" === "Cuadros obscuros"\r
-"White Pieces" === "Piezas blancas"\r
-"Black Pieces" === "Piezas negras"\r
-"Square Highlights" === "Cuadro iluminado"\r
-"Premove Highlights" === "Iluminación pre.mov."\r
-"Monochrome" === "Monocromo"\r
-\r
-"All White" === "Sólo blancas"\r
-"Flip Black" === "Girar negras"\r
-\r
-"Size" === "Tamaño"\r
-\r
-BOARD SIZES \r
-## This is a space for imagination (useful note to add to lang450.txt).\r
-"&Tiny" === "&Infimo"\r
-"T&eeny" === "Dimin&uto"\r
-"&Dinky" === "&Pigmeo"\r
-"&Petite" === "E&nano"\r
-"Sl&im" === "Pequeñin"\r
-"&Small" === "Pe&queño"\r
-"Medi&ocre" === "Medio&cre"\r
-"&Middling" === "Esca&so"\r
-"&Average" === "Ra&zonable"\r
-"Mode&rate" === "Mode&rado"\r
-"Medi&um" === "&Medio"\r
-"Bul&ky" === "Apara&toso"\r
-"&Large" === "&Grande"\r
-"&Big" === "&Enorme"\r
-"&Huge" === "Inmen&so"\r
-"&Giant" === "Gigante"\r
-"&Colossal" === "Colos&al"\r
-"Tita&nic" === "Titánico"\r
-\r
-FONTS\r
-\r
-"Fonts" === "Tipografía"\r
-"Current Board Size" === "Tamaño actual del tablero"\r
-"All Board Sizes" === "Todos los tamaños de tablero"\r
-"&Revert to Defaults" === "&Volver a por defecto"\r
-"Clocks" === "Relojes"\r
-"Messages" === "Mensajes"\r
-"Coordinates" === "Coordenadas"\r
-"Tags" === "Circunstancias"\r
-"Comments" === "Comentarios"\r
-"I C S Interaction" === "Interacción ICS"\r
-\r
-"&Color..." === "&Color..."\r
-"Move History, Engine Output" === "Lista jugadas,    salida motor"\r
-\r
-ADJUDICATIONS DIALOG\r
-\r
-"Adjudications" === "Adjudicaciones"\r
-\r
-"Ponder Next Move" === "Prever siguente jugada"\r
-"Enable and Show Thinking (recommended)" === "Activa y muestra cogitaciones(recomendado)"\r
-"Hide Thinking when Playing against Human" === "Ocultar cogitaciones al jugar contra humano"\r
-"Periodic Updates (for Analysis Mode)" === "Actualización periódica (en análisis)"\r
-\r
-"Adjudications in non-ICS games" === "Adjudicaciones en juegos no-ICS"\r
-\r
-"Adjudicate draw after:" === "Adjudicar mate después de:"\r
-\r
-"moves" === "jugadas"\r
-"Win/loss adjudication threshold:" === "Límite para adjudicar juego:"\r
-"centipawns" === "centipeones"\r
-"&Verify Engine Claims" === "&Verificar avisos del motor"\r
-"Detect &Mates" === "Detectar &mates"\r
-"Draw if &Insufficient Material" === "Tablas si hay material &insufficiente"\r
-"Adjudicate &Trivial Draws" === "Adjudicar tablas &triviales"\r
-"Apply" === "Aplicar"\r
-\r
-"-move rule" === "-jugadas (regla)"\r
-"-fold repeats" === "-veces (repetición)"\r
-"Engine #1 Score is Absolute" === "Puntuación motor #1 es absoluta"\r
-"Engine #2 Score is Absolute" === "Puntuación motor #2 es absoluta"\r
-\r
-COMMON ENGINE DIALOG\r
-\r
-"Common Engine Settings" === "Configuración común de motor"\r
-"Polyglot Directory:" === "Carpeta Polyglot:"\r
-"Hash Size (MB):" === "Tamaño hash (MB):"\r
-\r
-"EGTB Path:" === "Carpeta EGTB:"\r
-"EGTB Size (MB):" === "Tamaño EGTB (MB):"\r
-"Use Book:" === "Usar libro:"\r
-"Max nr of CPUs:" === "Número max. CPUs:"\r
-\r
-"First has Own Book" === "Primero tiene libro propio"\r
-"Second has Own Book" === "Segundo tiene libro propio"\r
-"Book Depth:" === "Profundo libro:"\r
-"Book Variation:" === "Variación libro:"\r
-"Default Match Games:" === "Partidas torneo p/def"\r
-\r
-NEW-VARIANT DIALOG\r
-## (NOTE: the 'holdings' are the pieces standing next to the board ('in hand')\r
-\r
-"Variants" === "Variantes"\r
-"Variant" === "Variante"\r
-"Board size:" === "Tamaño de tablero"\r
-\r
-"ranks" === "columnas"\r
-\r
-"files" === "filas"\r
-"Holdings with room for:" === "Admitir en mano hasta:"\r
-"pieces" === "piezas"\r
-\r
-"('-1' means defaults for selected variant)" === "('-1' indica valor por defecto para variante seleccionada)"\r
-\r
-VARIANT NAMES: \r
-"&normal" === "&normal"\r
-"&FRC" === ""\r
-"&wildcastle" === ""\r
-"&nocastle" === ""\r
-"&losers" === ""\r
-"&giveaway" === ""\r
-"s&uicide" === "s&uicida"\r
-"&3Check" === ""\r
-"&twokings" === ""\r
-"&atomic" === "&atómico"\r
-"cra&zyhouse" === ""\r
-"&bughouse" === ""\r
-"&Twilight" === ""\r
-"&shogi" === ""\r
-"su&per" === ""\r
-"&knightmate" === ""\r
-"&Berolina" === ""\r
-"c&ylinder" === "c&ilindro"\r
-"&fairy" === ""\r
-"&makruk" === ""\r
-"&gothic" === "&gótico"\r
-"&capablanca" === ""\r
-"&Janus" === ""\r
-"&CRC" === ""\r
-"&Falcon" === ""\r
-"cou&rier" === ""\r
-"&Great" === ""\r
-"&Shatranj" === ""\r
-"&xiangqi" === ""\r
-\r
-NEW SHUFFLE GAME\r
-\r
-"New Shuffle Game" === "Nueva partida revuelta"\r
-"&Start Position Number:" === "Núm. de pos. inicial:"\r
-"Random" === "Aleatorio"\r
-\r
-GAME-LIST OPTIONS DIALOG\r
-\r
-"Game List Options" === "Opciones de lista de partidas"\r
-"PGN &Tags:" === "&Etiquetas PGN:"\r
-\r
-"&Up" === "&Arriba"\r
-"&Down" === "A&bajo"\r
-"Default" === "Por defecto"\r
-"Factory" === "De fábrica"\r
-"Restore to:" === "Restaurar a"\r
-\r
-MOVE HISTORY WINDOW\r
-\r
-"Move History" === "Lista de jugadas"\r
-\r
-EVALUATION GRAPH\r
-\r
-"Evaluation Graph" === "Gráfica de evaluación"\r
-\r
-ENGINE OUTPUT WINDOW\r
-\r
-"Engine output" === "Salida de motores"\r
-"Engine #1" === "Motor #1"\r
-"NPS" === "NPS"\r
-"Engine #2" === "Motor #2"\r
-\r
-CHAT BOXES\r
-\r
-"Chat Window" === "Ventana de plática"\r
-"Chat partner:" === "Quién platica:"\r
-"Clear" === "Limpiar"\r
-"Send" === "Enviar"\r
-\r
-winboard.c\r
-\r
-"&File" === "&Archivo"\r
-"&Edit" === "&Editar"\r
-"&View" === "&Ver"\r
-"&Mode" === "&Modo"\r
-"&Action" === "&Partida"\r
-"E&ngine" === "Moto&r"\r
-"&Step" === "&Jugada"\r
-"&Options" === "&Opciones"\r
-"&Help" === "Ay&uda"\r
-"Font name too long:" === "Nombre tipográfico muy largo:"\r
-"Font point size missing:" === "Falta tamaño tipográfico:"\r
-"Can't parse color name %s" === "No se pudo analizar nombre de color %s"\r
-"Unrecognized board size value" === "Valor no reconocido de tamaño de tablero"\r
-"Unrecognized argument" === "Parametro no reconocido"\r
-"No value provided for argument" === "No se dio valor para parametro"\r
-"Incomplete \\ escape in value for" === "Escape \\ incompleto en valor para"\r
-"Failed to open indirection file" === "Falla al abrir archivo de indirección"\r
-"Unrecognized boolean argument value" === "Valor no reconocido para parametro booleano"\r
-"Unrecognized argument" === "Parametro no reconocido"\r
-"Too many colors" === "Demasiados colores"\r
-"&Minimize\tCtrl+F4" === "&Minimizar\tCtrl+F4"\r
-"White: %s" === "Blancas: %s"\r
-"We only care about the height here" === "Aquí solo importa la altura"\r
-"Cannot build game list" === "No se pudo armar lista de partidas"\r
-"Load Game from File" === "Leer partida desde archivo"\r
-"Load Position from File" === "Leer posición desde archivo"\r
-"Save Game to File" === "Salvar partida a archivo"\r
-"Save Position to File" === "Salvar posición a archivo"\r
-"%s does not support analysis" === "%s no admite análisis"\r
-"Analyze Game from File" === "Analizar juego desde archivo"\r
-"Unable to activate help" === "No se pudo activar la ayuda"\r
-"Send to chess program:" === "Enviar al programa de ajedrez:"\r
-"Send to second chess program:" === "Enviar al segundo programa de ajedrez:"\r
-"Direct Command" === "Orden directa"\r
-"Error loading sound %s" === "Error al cargar sonido %s"\r
-"Error playing sound %s" === "Error al ejecutar sonido %s"\r
-"File open failed" === "Falla al abrir archivo"\r
-"Internal error in file dialog box" === "Error interno en archivo de caja de diálogo"\r
-"Option Error" === "Error de opción"\r
-"Choose an option, or cancel to exit" === "Escoja una opción o cancelar para salir"\r
-"Unable to activate help" === "Imposible activar ayuda"\r
-"Displayed move is not current" === "La jugada ilustrada no es la actual"\r
-"Could not parse move" === "No se pudo analizar la jugada"\r
-"%s:\nError code %d" === "%s:\nCódigo de error %d"\r
-"Error" === "Error"\r
-"Fatal Error" === "Error fatal"\r
-"Exiting" === "Saliendo"\r
-"%s:\nError code %d" === "%s:\nCódigo de error %d"\r
-"Note" === "Nota"\r
-"Error writing to chess program" === "Error al escribir al programa de ajedrez"\r
-"User" === "Usuario"\r
-"Unknown" === "Desconocido"\r
-"White" === "Blancas"\r
-"Black" === "Negras"\r
-"Save Game to File" === "Salvar partida en archivo"\r
-"Not implemented" === "No implementado"\r
-"Shout Text" === "Texto Shout"\r
-"SShout/CShout" === ""\r
-"Channel 1 Text" === "Texto canal 1"\r
-"Channel Text" === "Texto de canal"\r
-"Kibitz Text" === "Texto kibitz"\r
-"Tell Text" === "Texto tell"\r
-"Challenge Text" === "Texto desafío"\r
-"Request Text" === "Texto de pedido"\r
-"Seek Text" === "Texto de búsqueda"\r
-"Normal Text" === "Texto normal"\r
-"None" === "Ninguno"\r
-"Pawn" === "Peón"\r
-"Knight" === "Caballo"\r
-"Bishop" === "Alfil"\r
-"Rook" === "Torre"\r
-"Queen" === "Dama"\r
-"Information" === "Información"\r
-\r
-wclipbrd.c\r
-\r
-"Unable to convert position to FEN." === "Imposible convertir posición a FEN."\r
-"Unable to copy FEN to clipboard." === "Imposible copiar FEN a portapapeles."\r
-"Cannot create temporary file name." === "No se pudo crear nombre de archivo temporal"\r
-"Cannot open temporary file." === "No se pudo abrir archivo temporal"\r
-"Cannot write to temporary file." === "No se pudo escribir a archivo temporal"\r
-"Cannot reopen temporary file." === "No se pudo reabrir archivo temporal"\r
-"Cannot determine size of file." === "No se pudo determinar el tamaño del archivo"\r
-"Cannot allocate clipboard buffer." === "No se pudo asignar buffer para el portapapeles"\r
-"Cannot read from temporary file." === "No se pudo leer de archivo temporal"\r
-"Error reading from temporary file." === "Error al leer de archivo temporal"\r
-"Cannot copy text to clipboard" === "No se pudo copiar texto al portapapeles"\r
-"Unable to allocate memory for clipboard." === "Imposible asignar memoria para el portapapeles"\r
-"Unable to lock clipboard memory." === "Imposible proteger memoria del portapapeles"\r
-"Cannot unlock clipboard memory." === "Imposible desproteger memoria del portapapeles"\r
-"Cannot open clipboard." === "No se puede abrir el portapapeles"\r
-"Cannot empty clipboard." === "No se puede vaciar el portapapeles"\r
-"Cannot copy text to clipboard." === "No se puede copiar texto al portapapeles"\r
-"Cannot close clipboard." === "No se puede cerrar el portapapeles"\r
-"Unable to paste FEN from clipboard." === "Imposible pegar FEN desde el portapapeles."\r
-"Unable to create temporary file." === "Imposible crear archivo temporal."\r
-"Error writing to temporary file." === "Error al escribir a archivo temporal."\r
-"Unable to open clipboard." === "Imposible abrir el portapapeles"\r
-"No text in clipboard." === "No hay texto en el portapapeles."\r
-"Unable to lock clipboard memory." === "Imposible proteger memora del portapapeles"\r
-"Unable to allocate memory for text string." === "Imposible asignar memoria para cadena de texto"\r
-"Unable to unlock clipboard memory." === "Imposible desproteger memoria del portapapeles"\r
-"Unable to close clipboard." === "Imposible cerrar portapapeles"\r
-\r
-woptions.c\r
-\r
-## "Move" === "Jugada"\r
-## "Bell" === "Campana"\r
-## "ICS Alarm" === "Alarma ICS"\r
-## "ICS Win" === "Gana ICS"\r
-## "ICS Loss" === "Pierde ICS"\r
-## "ICS Draw" === "Empate ICS"\r
-## "ICS Unfinished" === "Sin terminar ICS"\r
-## "Shout" === ""\r
-## "SShout/CShout" === ""\r
-## "Channel 1" === "Canal 1"\r
-## "Channel" === "Canal"\r
-## "Kibitz" === "Kibitz"\r
-## "Tell" === "Decir"\r
-## "Challenge" === "Desafiar"\r
-## "Request" === "Pedir"\r
-## "Seek" === "Buscar"\r
-"Browse for Sound File" === "Buscar archivo de audio"\r
-"Can't parse com port settings" === "No se puede leer configuración de puerta COM"\r
-"Option Error" === "Error de opción"\r
-"Invalid data rate" === "Velocidad incorrecta"\r
-"Option Error" === "Error de opción"\r
-"Failed to set comm port state;\r\ninvalid options?" === "Falla al poner estado de puerta de comunicaciones;\r\nopciones inválidas?"\r
-"Failed to set comm port state" === "Falla al poner estado de puerta de comunicaciones"\r
-"Invalid load game step rate" === "Velocidad de paso inválida para leer partida"\r
-"Invalid save game file name" === "Nombre de archivo inválido para salvar partida"\r
-"Browse for Auto Save File" === "Buscar el archivo de salvado automático"\r
-"Invalid moves per time control" === "Control inválido de jugadas por tiempo"\r
-"Invalid minutes per time control" === "Control inválido de minutos por tiempo"\r
-"Invalid increment" === "Incremento inválido"\r
-"Invalid initial time" === "Tiempo inicial inválido"\r
-"Changing time control during a game is not implemented" === "No está implementado cambiar el control de tiempo durante un juego"\r
-\r
-"Variant %s not supported by %s" === "La variante %s no es admitida por %s"\r
-"Warning: second engine (%s) does not support this!" === "Advertencia: ¡el segundo motor (%s) no admite esto!"\r
-"Invalid ICS Alarm Time" === "Tiempo de alarma ICS inválido"\r
-"Invalid max time per move" === "Tiempo máximo por jugada es inválido"\r
-"Invalid time-odds factor" === "Factor de tiempo es inválido"\r
-"Choose Folder" === "Escoja carpeta"\r
-"Choose Book" === "Escoja libro"\r
-"Choose Polyglot Directory" === "Escoja directorio Polyglot"\r
-"Choose EGTB Directory:" === "Escoja directorio EGTB"\r
-"Polyglot was not found in the specified folder!" === "¡Polyglot no fue encontrado en la carpeta especificada!"\r
-\r
-wgamelist.c\r
-\r
-"No game selected" === "Ninguna partida seleccionada"\r
-"Can't go forward any further" === "Ya no se puede ir más adelante"\r
-"Can't back up any further" === "Ya no se puede ir más atrás"\r
-"No game list" === "No hay lista de partidas"\r
-"Game List" === "Lista de partidas"\r
-"Game list not loaded or empty" === "Lista de partidas no cargada o vacía"\r
-"%s - %d/%d games" === "%s - %d/%d partidas"\r
-\r
-wedittags.c\r
-\r
-"Edit Tags" === "Editar circunstancias"\r
-"Tags" === "Etiquetas"\r
-"Error replacing tags." === "Error al reemplazar etiquetas"\r
-\r
-wsettings.c\r
-\r
-"%s Engine Settings (%s)" === "Config. motor %s (%s)"\r
-"OK" === "Aceptar"\r
-"Cancel" === "Cancelar"\r
-\r
-backend.c\r
-\r
-"bad timeControl option %s" === "opción timeControl incorrecta %s"\r
-"bad searchTime option %s" === "opción searchTime incorrecta %s"\r
-## Note that translation cannot be "primero" because it is for a composed string, check ahead\r
-"first" === "primer"\r
-"second" === "segundo"\r
-"protocol version %d not supported" === "versión %d del protocolo no es admitida"\r
-"Variant %s supported only in ICS mode" === "La variante %s solo se admite en modo ICS"\r
-"Unknown variant name %s" === "Nombre de variante desconocido %s"\r
-"Starting chess program" === "Iniciando programa de ajedrez"\r
-"Could not open comm port %s" === "No se pudo abrir la puerta de comunicaciones %s"\r
-"Could not connect to host %s, port %s" === "No se pudo conectar al servidor %s, puerta %s"\r
-"Unknown initialMode %s" === "Modo inicial desconocido %s"\r
-"Can't have a match with no chess programs" === "No se puede tener una partida sin programas de ajedrez"\r
-"Bad game file" === "archivo de partidas incorrecto"\r
-"Bad position file" === "archivo de posición incorrecto"\r
-"AnalyzeFile mode requires a game file" === "El modo análisis de archivo requiere un archivo de partida"\r
-"Analysis mode requires a chess engine" === "El modo de análisis requiere un motor de ajedrez"\r
-"Analysis mode does not work with ICS mode" === "El modo de análisis no funciona con el modo ICS"\r
-"MachineWhite mode requires a chess engine" === "El modo de máquina con blancas requiere un motor de ajedrez"\r
-"MachineWhite mode does not work with ICS mode" === "El modo de máquina con blancas no funciona con el modo ICS"\r
-"MachineBlack mode requires a chess engine" === "El modo de máquina con negras requiere un motor de ajedrez"\r
-"MachineBlack mode does not work with ICS mode" === "El modo de máquina con negras no funciona con el modo ICS"\r
-"TwoMachines mode does not work with ICS mode" === "El modo de dos máquinas no funciona con el modo ICS"\r
-"TwoMachines mode requires a chess engine" === "El modo de dos máquinas requiere un motor de ajedrez"\r
-"Training mode requires a game file" === "El modo de entrenamiento requiere un archivo de partidas"\r
-"Error writing to ICS" === "Error al escribir a ICS"\r
-"Error reading from keyboard" === "Error al leer el teclado"\r
-"Got end of file from keyboard" === "Se obtuvo del teclado un fin de archivo"\r
-"Error writing to ICS" === "Error al escribir a ICS"\r
-"Error writing to display" === "Error al escribir a la pantalla"\r
-"Error gathering move list: two headers" === "Error al recolectar lista de jugadas: dos encabezados"\r
-"Error gathering move list: nested" === "Error al recolectar lista de jugadas: anidado"\r
-"Connection closed by ICS" === "Conexión cerrada por ICS"\r
-"Error reading from ICS" === "Error al leer de ICS"\r
-"Failed to parse board string:\n\"%s\"" === "Falla al analizar cadena de tablero:\n\"%s\""\r
-"Game too long; increase MAX_MOVES and recompile" === "Juego demasiado largo; incremente MAX_MOVES y recompile"\r
-"Error gathering move list: extra board" === "Error al recolectar lista de jugadas: tablero extra"\r
-"Illegal move \"%s\" from ICS" === "Jugada ilegal \"%s\" de ICS"\r
-"Couldn't parse move \"%s\" from ICS" === "No se pudo analizar jugada \"%s\" de ICS"\r
-## 'say' must not be translated (add this comment to lang450.txt)\r
-"say Internal error; bad moveType %d (%d,%d-%d,%d)" === "say Error interno; moveType incorrecto %d (%d,%d-%d,%d)"\r
-"You are playing Black" === "Usted juega negras"\r
-"You are playing White" === "Usted juega blancas"\r
-"It is White's turn" === "Turno de las blancas"\r
-"It is Black's turn" === "Turno de las negras"\r
-"Displayed position is not current" === "La posición mostrada no es la actual"\r
-"Illegal move" === "Jugada ilegal"\r
-"End of game" === "Fin del juego"\r
-"Incorrect move" === "Jugada incorrecta"\r
-## Second %s is translated 'first' or 'second'. (add this comment to lang450.txt)\r
-"Illegal move \"%s\" from %s machine" === "Jugada ilegal \"%s\" del %s motor"\r
-"Forfeit due to illegal move" === "Detenido por jugada ilegal"\r
-"%s does not support analysis" === "%s no admite análisis"\r
-## Second %s is translated 'first' or 'second' (add this comment to lang450.txt)\r
-"Illegal move \"%s\" (rejected by %s chess program)" === "Jugada ilegal \"%s\" (rechazada por %s programa de ajedrez)"\r
-## First %s is translated 'first' or 'second' (add this comment to lang450.txt)\r
-"Failed to start %s chess program %s on %s: %s\n" === "Falla al iniciar %s programa de ajedrez %s en %s: %s\n"\r
-"Hint: %s" === "Sugerencia: %s"\r
-\r
-"Machine accepts your draw offer" === "La máquina acepta su oferta de tablas"\r
-"Machine offers a draw\nSelect Action / Draw to agree" === "La máquina ofrece tablas\nSeleccione acción / Tablas para acordar"\r
-"%s (only move)" === "%s (jugada única)"\r
-"Ambiguous move in ICS output: \"%s\"" === "Jugada ambigua en salida ICS: \"%s\""\r
-"Illegal move in ICS output: \"%s\"" === "Jugada ilegal en salida ICS: \"%s\""\r
-"Gap in move list" === "Hueco en lista de jugadas"\r
-"Game too long; increase MAX_MOVES and recompile" === "Juego demasiado largo; incremente MAX_MOVES y recompile"\r
-"Variant %s not supported by %s" === "Variante %s no es admitida por %s"\r
-"Startup failure on '%s'" === "Falla al iniciar '%s'"\r
-"Waiting for first chess program" === "Esperando al primer programa de ajedrez"\r
-"Waiting for second chess program" === "Esperando al segundo programa de ajedrez"\r
-"Match %s vs. %s: final score %d-%d-%d" === "Partida %s vs. %s: puntuación final %d-%d-%d"\r
-"Stalemate" === "Mate ahogado"\r
-"Illegal move: %d.%s%s" === "Jugada ilegal: %d.%s%s"\r
-"Ambiguous move: %d.%s%s" === "Jugada ambigua: %d.%s%s"\r
-"Can't open \"%s\"" === "No se puede abrir \"%s\""\r
-"Cannot build game list" === "No se puede armar lista de partidas"\r
-"No more games in this message" === "No hay más partidas en este mensaje"\r
-"No game has been loaded yet" === "Ninguna partida se ha cargado aún"\r
-"Can't back up any further" === "No se puede ir más atrás"\r
-"Game number out of range" === "Número de partida fuera de rango"\r
-"Can't seek on game file" === "No se puede buscar en archivo de partidas"\r
-"Game not found in file" === "Partida no hallada en archivo"\r
-"Bad FEN position in file" === "Posición FEN incorrecta en archivo"\r
-"No moves in game" === "Ninguna jugada en la partida"\r
-"No position has been loaded yet" === "Ninguna posición se ha cargado aún"\r
-"Can't back up any further" === "No se puede ir más atrás"\r
-"Can't open \"%s\"" === "No se puede abrir \"%s\""\r
-"Can't seek on position file" === "No se puede buscar en archivo de partidas"\r
-"Position not found in file" === "No se halló la posición en el archivo"\r
-"Bad FEN position in file" === "Posición FEN incorrecta en archivo"\r
-"Black to play" === "Las negras juegan"\r
-"White to play" === "Las blancas juegan"\r
-"Can't open \"%s\"" === "No se puede abrir \"%s\""\r
-"You have edited the game history.\nUse Reload Same Game and make your move again." === "Usted editó la lista de jugadas.\nUtilice Recargar misma partida y realice su jugada de nuevo."\r
-"You have entered too many moves.\nBack up to the correct position and try again." === "Usted entró demasiados jugadas.\nRetroceda a la posición correcta y vuelva a intentar"\r
-"Displayed position is not current.\nStep forward to the correct position and try again." === "La posición ilustrada no es la actual.\nAdelante a la posición correcta y vuelva a intentar."\r
-"You have not made a move yet" === "Usted todavía no hace una jugada"\r
-"The cmail message is not loaded.\nUse Reload CMail Message and make your move again." === "El mensaje cmail no está cargado.\nUtilice Reload CMail Message y realice su jugada de nuevo."\r
-"No unfinished games" === "No hay partidas sin terminar"\r
-"You have already mailed a move.\nWait until a move arrives from your opponent.\nTo resend the same move, type\n\"cmail -remail -game %s\"\non the command line." === "Usted ya envió una jugada.\nEspere hasta que llegue una jugada de su oponente.\nPara reenviar la misma jugada, teclee\n\"cmail -remail -game %s\"\nen la línea de comandos."\r
-"Failed to invoke cmail" === "Falla al invocar cmail"\r
-"Waiting for reply from opponent\n" === "Esperando respuesta del oponente\n"\r
-"Still need to make move for game\n" === "Todavía necesita hacer una jugada para la partida\n"\r
-"Still need to make moves for both games\n" === "Todavía necesita hacer jugadas para ambas partidas\n"\r
-"Still need to make moves for all %d games\n" === "Todavía necesita hacer jugadas para las %d partidas\n"\r
-"Still need to make a move for game %s\n" === "Todavía necesita hacer una jugada para la partida %s\n"\r
-"No unfinished games\n" === "No hay juegos sin terminar\n"\r
-"Ready to send mail\n" === "Listo para enviar correo\n"\r
-"Still need to make moves for games %s\n" === "Todavía necesita hacer jugadas para las partidas %s\n"\r
-"Edit comment" === "Editar comentario"\r
-"Edit comment on %d.%s%s" === "Editar comentario en %d.%s%s"\r
-"Starting analysis mode...\nIf this message stays up, your chess program does not support analysis." ===  "Comenzando modo de análisis...\nSi este mensaje permanece, su programa de ajedrez no admite análisis."\r
-"It is not White's turn" === "No es turno de las blancas"\r
-"It is not Black's turn" === "No es turno de las negras"\r
-"Wait until your turn,\nor select Move Now" === "Espere su turno,\no seleccione Forzar Jugada"\r
-"Starting second chess program" === "Comenzado el segundo programa de ajedrez"\r
-"Training mode off" === "Modo de entrenamiento apagado"\r
-"Training mode on" === "Modo de entrenamiento activo"\r
-"Already at end of game" === "Ya se encuentra al final de la partida"\r
-"Warning: You are still playing a game" === "Advertencia: Usted todavía está jugando una partida"\r
-"Warning: You are still observing a game" === "Advertencia: Usted todavía está observando una partida"\r
-"Warning: You are still examining a game" === "Advertencia: Usted todavía está examinando una partida"\r
-"It is Black's turn" === "Es turno de las negras"\r
-"It is White's turn" === "Es turno de las blancas"\r
-"That square is occupied" === "Ese cuadro está ocupado"\r
-"There is no pending offer on this move" === "No hay oferta pendiente para esta jugada"\r
-"Your opponent is not out of time" === "Su oponente no está fuera de tiempo"\r
-"Black offers a draw" === "Las negras ofrecen tablas"\r
-"White offers a draw" === "Las blancas ofrecen tablas"\r
-"You must make your move before offering a draw" === "Debe hacer su jugada antes de ofrecer tablas"\r
-"You are not examining a game" === "Usted no está examinando una partida"\r
-"You can't revert while pausing" === "No puede revertir si está en pausa"\r
-"Wait until your turn,\nor select Move Now" === "Espere su turno,\no seleccione Forzar Jugada"\r
-"It is your turn" === "Es su turno"\r
-"Wait until your turn" === "Espero su turno"\r
-"No hint available" === "No hay sugerencia disponible"\r
-## First %s is translated 'first' or 'second' (add this comment to lang450.txt)\r
-"Error writing to %s chess program" === "Error al escribir al %s programa de ajedrez"\r
-## First %s is translated 'first' or 'second' (add this comment to lang450.txt)\r
-"Error: %s chess program (%s) exited unexpectedly" === "Error: el %s programa de ajedrez (%s) terminó inesperadamente"\r
-## First %s is translated 'first' or 'second' (add this comment to lang450.txt)\r
-"Error reading from %s chess program (%s)" === "Error al leer del %s programa de ajedrez (%s)"\r
-"Analysis (%s)" === "Análisis (%s)"\r
-"Comment" === "Comentario"\r
-"Comment on %d.%s%s" === "Comentario de %d.%s%s"\r
-"Both flags fell" === "Ambas banderas cayeron"\r
-"White's flag fell" === "La bandera blanca cayó"\r
-"Black's flag fell" === "La bandera negra cayó"\r
-"Bad FEN position in clipboard" === "Posición FEN incorrecta en portapapeles"\r
-"No response from ICS" === "No hay respuesta de ICS"\r
-"You cannot do this while you are playing or observing" === "Usted no puede hacer esto mientras juega u observa"\r
-"Click in holdings to choose piece" === "Haga click para escoger pieza"\r
-\r
-END-OF-GAME MESSAGES \r
-"Game aborted" === "Partida abortada"\r
-"White wins on time" === "Las blancas ganan por tiempo"\r
-"Black wins on time" === "Las negras ganan por tiempo"\r
-"Both players ran out of time" === "Ambos jugadores se quedaron sin tiempo"\r
-"White resigns" === "Las blancas se resignan"\r
-"Black resigns" === "Las negras se resignan"\r
-"White mates" === "Las blancas dan mate"\r
-"Black mates" === "Las negras dan mate"\r
-"Draw" === "Tablas"\r
-"Draw agreed" === "Tablas acordadas"\r
-"Xboard adjudication: King destroyed" === "XBoard adjudica: Rey destruido"\r
-"Xboard adjudication: Bare king" === "XBoard adjudica: Rey solitario"\r
-"Xboard adjudication: 3rd check" === "XBoard adjudica: 3er. jaque"\r
-"Xboard adjudication: Stalemate" === "XBoard adjudica: Mate ahogado"\r
-"Xboard adjudication: Checkmate" === "XBoard adjudica: Jaquemate"\r
-"Xboard adjudication: Insufficient mating material" === "XBoard adjudica: Material insuficiente para dar mate"\r
-"Xboard adjudication: Trivial draw" === "XBoard adjudica: Tablas triviales"\r
-"XBoard adjudication: repetition draw" === "XBoard adjudica: Tablas por repetición"\r
-"Xboard adjudication: perpetual checking" === "XBoard adjudica: Jaque perpetuo"\r
-"Xboard adjudication: perpetual chasing" === "XBoard adjudica: Persecución perpetua"\r
-"%Xboard adjudication: perpetual chasing of" === "XBoard adjudica: Persecución perpetua"\r
-"Xboard adjudication: 50-move rule" === "XBoard adjudica: regla de las 50 jugadas"\r
-"Draw claim: 50-move rule" === "Pide tablas: regla de las 50 jugadas"\r
-"Draw claim: 3-fold repetition" === "Pide tablas: 3 repeticiones de posición"\r
-"Draw claim: insufficient mating material" === "Pide tablas: material insuficiente para dar mate"\r
-"Xboard adjudication: long game" === "XBoard adjudica: juego largo"\r
-"Xboard: Forfeit due to invalid move: %s (%c%c%c%c) res=%d" === "XBoard: Perdido por jugada inválida: %s (%c%c%c%c) res=%d"\r
-"Xboard: Forfeit due to illegal move: %s (%c%c%c%c)%c" === "XBoard: Perdido por jugada ilegal: %s (%c%c%c%c)%c"\r
-"Xboard adjudication" === "XBoard adjudica"\r
-"User adjudication" === "El usuario adjudica"\r
-"False win claim: '%s'" === "Falso aviso de ganar: '%s'"\r
-"False draw claim: '%s'" === "Falso aviso de tablas: '%s'"\r
-"xboard exit" === "XBoard termina"\r
-\r
-## One forgetted string (remove comment if added to lang450.txt)\r
-"Type in your name" === "Introduzca su nombre"\r
-"You can only start a match from the initial position" === "Sólo se puede iniciar un torneo desde la posición inicial"
diff --git a/winboard/language/vietnamese.lng b/winboard/language/vietnamese.lng
deleted file mode 100644 (file)
index ca4e312..0000000
+++ /dev/null
@@ -1,973 +0,0 @@
-## WinBoard language file\r
-##\r
-## LANGUAGE NAME IN ENGLISH / TRANSLATED\r
-## v1.0 beta 1\r
-##\r
-## Translation by Nguyen Pham (27 Jan 2011)\r
-## NgýõÌi diòch: Phaòm HôÌng Nguyên (27/01/2011)\r
-## xqfan.com\r
-##\r
-## If you revise this, please insert your date, name and description.\r
-## TRANSLATION OF MESSAGE ABOVE\r
-##\r
-## For example:\r
-## TRANSLATION OF FOR EXAMPLE\r
-##   24-ago-2010. Juan Prez (j@xyz.p). Corrected translation for xyzzy.\r
-\r
-## Notes for translators (can be deleted from he file after translation):\r
-##   Just write the translations between the second pair of quotes\r
-##   Things like %s, %d and %c must be preserved in the original order\r
-##   Empty translated strings will be ignored, so there is no reason\r
-##   to delete those for which you don't know a translation,\r
-##   and you can start testing everything immediately.\r
-##   Simply rename this file to LANGUAGE.lng, and WinBoard should see it,\r
-##   and allow you to use the option /language=LANGUAGE.\r
-##   You are encouraged to call up the corresponding WinBoard dialog while\r
-##   working on the translation, to see in which context the strings are used.\r
-##   This is why the strings below are sorted by dialog\r
-##\r
-##   Of duplicats, only the first occurrence will be used, even if it was in\r
-##   a different dialog! For this reason you will only see an 'OK' in the\r
-##   About Box. After you translated it there, this translation will be used\r
-##   for all other dialogs as well.\r
-## o Use ## for comments, to make iteasy to find them scattered throughout the translation\r
-## o Careful with temptation of direct translation, by example 'movimiento' for 'move' when 'jugada' is better.\r
-## o Try to use short phrases, more text doesn't imply more clearness.\r
-## o Check that your translation is right, does it mean what it does?\r
-## o Test your translation, check every dialog.\r
-## o For standard chess names check Wikipedia for confirmation.\r
-## o For menus, assign shortcuts (character &) until you finish the translation.\r
-##   preferably it should be unique in the applicable menu, so it depends on translation of other items!\r
-\r
-winboard.rc\r
-\r
-MENUS:\r
-## Pleace keep the accelerator-key indications on the menu items, and keep \r
-## the keystrokes the same (for now). (Alt, Ctrl and Shift can be translated.)\r
-\r
-"New &Game\tCtrl-N" === "Ván Mõìi\tCtrl-N"\r
-"New Sh&uffle Game..." === "Tráo Bên..."\r
-"New &Variant...\tAlt+Shift+V" === "Biêìn Mõìi...\tAlt+Shift+&V"\r
-"&Load Game...\tCtrl-O" === "TaÒi Ván CõÌ...\tCtr&l-O"\r
-"&Save Game...\tCtrl-S" === "Lýu Ván CõÌ...\tCtrl-&S"\r
-"L&oad Position...\tCtrl+Shift+O" === "TaÒi Thêì CõÌ...\tCtrl+Shift+&O"\r
-"S&ave Position...\tCtrl+Shift+S" === "Lýu Thêì CõÌ...\tCtrl+Shift+S"\r
-"Save as &Diagram..." === "Lýu Thành BiêÒu ÐôÌ..."\r
-"&Quit" === "Thoát"\r
-## Next six currently not used\r
-"Load &Next Game\tAlt+PgDn" === "TaÒi Vá&n Tiêìp\tAlt+PgDn"\r
-"Load &Previous Game\tAlt+PgUp" === "TaÒi Ván Trýõìc"\r
-"&Reload Same Game" === "TaÒi Laòi Ván CõÌ"\r
-"Load N&ext Position\tAlt+Shift+PgDn" === "TaÒi Thêì CõÌ Tiêìp"\r
-"Load Pre&vious Position\tAlt+Shift+PgUp" === "TaÒi Thêì CõÌ Trýõìc"\r
-"Reload Sa&me Position" === "TaÒi Laòi Thêì CõÌ"\r
-\r
-"&Copy Game To Clipboard\tCtrl+C" === "&Chép Ván CõÌ Vào Clipboard\tCtrl+C"\r
-"C&opy Position To Clipboard\tCtrl+Shift+C" === "Chép Thêì CõÌ Vào Clipb&oard\tCtrl+Shift+C"\r
-"Copy Game List to Clipboard" === "Copy Danh Sách Các Ván CõÌ Vào Clipboard"\r
-"&Paste Game From Clipboard\tCtrl+V" === "Dán Ván CõÌ TýÌ Clipboard\tCtrl+V"\r
-"P&aste Position From Clipboard\tCtrl+Shift+V" === "Dán Thêì CõÌ TýÌ Clipbo&ard\tCtrl+Shift+V"\r
-"&Edit Game\tCtrl+E" === "Soaòn Ván CõÌ\tCtrl+&E"\r
-"E&dit Position\tCtrl+Shift+E" === "Soaòn Thêì CõÌ\tCtrl+Shift+E"\r
-"Edit Ta&gs..." === "Soaòn Các TheÒ..."\r
-"Edit &Comment..." === "Soaòn BiÌnh Chú..."\r
-"Enter &Username..." === Nhâòp Username..."\r
-"&Revert\tHome" === "Ngýõòc Laòi\tHome"\r
-"&Annotate" === "Chú GiaÒi"\r
-"&Truncate Game\tEnd" === "Cãì&t Ngãìn Ván CõÌ\tEnd"\r
-"&Backward\tAlt+Left" === "Quay TrõÒ Laòi\tAlt+Left"\r
-"&Forward\tAlt+Right" === "Ði Tiêìp\tAlt+Right"\r
-"Back to &Start\tAlt+Home" === "Quay Laòi Ðêìn ÐâÌu\tAlt+Home"\r
-"For&ward to End\tAlt+End" === "Ði Tiêìp Tõìi Cuôìi\tAlt+End"\r
-\r
-"Flip &View\tF2" === "Lâòt Ngýõòc Bàn CõÌ\tF2"\r
-"&Swap Clocks" === "ÐôÒi ÐôÌng HôÌ"\r
-"Engine &Output\tAlt+Shift+O" === "In Ra CuÒa Các Chýõng TriÌnh CõÌ\tAlt+Shift+&O"\r
-"Move &History\tAlt+Shift+H" === "Các Nýõìc Ði\tAlt+Shift+&H"\r
-"Evaluation &Graph\tAlt+Shift+E" === "ÐôÌ Thiò Lýõòng &Giá\tAlt+Shift+E"\r
-"Game &List\tAlt+Shift+G" === "Danh Sách Các Ván CõÌ\tA&lt+Shift+G"\r
-"Open &New Chat Window" === "MõÒ CýÒa SôÒ Ðôìi Thoaòi Mõìi"\r
-"Type In &Move...\tAlt+I" === "BiÌnh Chú Cho Nýõìc ði...\tAlt+I"\r
-"&Tags" === "Các TheÒ"\r
-"&Comments" === "BiÌnh &Chú"\r
-"&Game List Tags..." === "Các TheÒ cuÒa Danh Sách Ván CõÌ"\r
-"&Board..." === "&Bàn CõÌ..."\r
-"&Fonts..." === "Các &Fonts..."\r
-\r
-"Machine &White\tCtrl+W" === "Máy Chõi Bên Trãìng\tCtrl+&W"\r
-"Machine &Black\tCtrl+B" === "Máy Chõi &Bên Ðen\tCtrl+B"\r
-"&Two Machines\tCtrl+T" === "Máy Chõi CaÒ Hai Bên\tCtrl+&T"\r
-"Machine Both" === "Máy Chõi CaÒ Hai Bên"\r
-"&Analysis Mode\tCtrl+A" === "Chêì Ðôò Phân Tích\tCtrl+&A"\r
-"Analyze &File\tCtrl+F" === "Phân Tích &File\tCtrl+F"\r
-"&Edit Game\tCtrl+E" === "Soaòn ThaÒo Ván CõÌ\tCtrl+&E"\r
-"E&dit Position\tCtrl+Shift+E" === "Soaòn ThaÒo Thêì CõÌ\tCtrl+Shift+E"\r
-"Trai&ning" === "Ða&ng Dâòy Máy"\r
-"&ICS Client" === "Kêìt Nôìi Chõi Võìi Máy ChuÒ &ICS"\r
-"&Machine Match" === "Trâòn Ðâìu Võìi &Máy"\r
-"&Pause\tPause" === "Taòm DýÌng\t&Pause"\r
-\r
-"&Accept\tF3" === "Châìp Nhâòn\tF3"\r
-"D&ecline\tF4" === "TýÌ Chôìi\tF4"\r
-"Re&match\tF12" === "Chõi Ván NýÞa\tF12"\r
-"Call &Flag\tF5" === "Ðãòt CõÌ\t&F5"\r
-"&Draw\tF6" === "HoÌa\tF6"\r
-"Ad&journ\tF7" === "\tF7"\r
-"A&bort\tF8" === "BoÒ\tF8"\r
-"&Resign\tF9" === "Nhâòn Thua\tF9"\r
-"Stop &Observing\tF10" === "NgýÌng Xem"\r
-"Stop E&xamining\tF11" === "NgýÌng ThýÒ"\r
-"&Upload to Examine" === "TaÒi ÐêÒ "\r
-"Adjudicate to &White" === "Phân XýÒ Trãìng Thãìng"\r
-"Adjudicate to &Black" === "Phân XýÒ Ðen Thãìng"\r
-"Adjudicate &Draw" === "Phân XýÒ HoÌa"\r
-\r
-"Install 1st..." === "Cài Ðãòt NgýõÌi Chõi Thýì Nhâìt"\r
-"Install 2nd..." === "Cài Ðãòt NgýõÌi Chõi Thýì Hai"\r
-"Engine #&1 Settings..." === "Ðãòt Tham Sôì Cho Chýõng TriÌnh Chõi 1..."\r
-"Engine #&2 Settings..." === "Ðãòt Tham Sôì Cho Chýõng TriÌnh Chõi 2..."\r
-"&Hint..." === "Gõòi Yì..."\r
-"&Book..." === "CâÒm Nang Khai Cuôòc..."\r
-"&Move Now\tCtrl+M" === "PhaÒi Ði Ngay\tCtrl+M"\r
-"&Retract Move\tCtrl+X" === "HoaÞn Nýõìc Ði VýÌa RôÌi\tCtrl+X"\r
-\r
-"&Mute all Sounds" === "NgýÌng Phát Âm Thanh"\r
-"&General..." === "Chung..."\r
-"&Time Control...\tAlt+Shift+T" === "Ðãòt ThõÌi Gian...\tAlt+Shift+T"\r
-"Common &Engine...\tAlt+Shift+U" === "Chýõng TriÌnh CõÌ Chung...\tAlt+Shift+U"\r
-"Ad&judications...\tAlt+Shift+J" === "Phân XýÒ Kêìt QuaÒ...\tAlt+Shift+J"\r
-"&Load Game...\tAlt+Shift+L" === "TaÒi Ván CõÌ...\tAlt+Shift+L"\r
-"&Save Game...\tAlt+Shift+S" === "Lýu Ván CõÌ...\tAlt+Shift+S"\r
-"G&ame List..." === "Danh Sách Ván CõÌ"\r
-"Soun&ds..." === "Âm Thanh"\r
-"&ICS..." === "&ICS..."\r
-"Add ICS..." === "Thêm ICS..."\r
-"Comm&unications..." === "Kêìt Nôìi...."\r
-"Save Settings &Now" === "Lýu Các Tham Sôì &Ngay"\r
-"Save Settings on E&xit" === "Lýu Các Tham Sôì Khi Kêìt Thúc"\r
-\r
-"Help &Contents\tF1" === "Nôòi Dung Hýõìng DâÞn"\r
-"Help &Index" === "Hýõìng DâÞn"\r
-"How to &Use Help" === "SýÒ Duòng Hýõìng DâÞn"\r
-"&About WinBoard" === "Thông Tin VêÌ WinBoard"\r
-\r
-"White" === "Trãìng"\r
-"Promote" === "Phong Câìp"\r
-"Pawn" === "Tôìt"\r
-"Knight" === "MaÞ"\r
-"Bishop" === "Týõòng"\r
-"Rook" === "Xe"\r
-"Queen" === "Hoàng Hâòu"\r
-"King" === "Vua"\r
-## The next 2 are pieces for Capablanca Chess. Use the names from the Wikipedia entry for this,\r
-## rather than litteral translations of the English names!\r
-"Archbishop" === "SiÞ"\r
-"Chancellor" === "Xe"\r
-## Next 2 Xiangqi (Chinese Chess) pieces. Google for 'Xiangqi' in the target language to get the standard translation.\r
-"Elephant" === "Týõòng"\r
-"Cannon" === "Pháo"\r
-"Empty Square" === "Ô Trôìng"\r
-"Black" === "Ðen"\r
-"Demote" === ""\r
-"Clear Board    " === "Xóa Bàn CõÌ"\r
-## Next 3: Shogi pieces.\r
-"Gold" === "Vàng"\r
-"Silver" === "Baòc"\r
-"Lance" === "ÐôÌng"\r
-\r
-"Drop" === "Ðýìt"\r
-\r
-"Cop&y and Paste" === "Chép và Dán"\r
-"&Copy" === "Chép"\r
-"&Paste" === "Dán"\r
-\r
-"&Undo" === "Laòi Nhý Trýõìc"\r
-"Cu&t" === "Cãìt"\r
-"&Copy" === "Chép"\r
-"&Paste" === "Dán"\r
-"Select &All" === "Choòn Tâìt CaÒ"\r
-\r
-DIALOGS:\r
-\r
-ABOUTBOX\r
-\r
-## Pehaps copyright notices best left untranslated?\r
-"About WinBoard" === "Thông Tin VêÌ WinBoard"\r
-"OK" === "Ðýõòc"\r
-"Chessboard for Windows" === "Bàn CõÌ Cho Windows"\r
-"Copyright 1991 Digital Equipment Corporation" === "BaÒn QuyêÌn 1991 Digital Equipment Corporation"\r
-"Enhancements Copyright 1992-2014  Free Software Foundation" === ""\r
-"Enhancements Copyright 2005\r\nAlessandro Scotti" === ""\r
-## What happened with H.G.Muller? [He sold his copyrights to FSF for $1]\r
-## The following string of 6 spaces can be translated to an acknowledgement of the translator,\r
-## like "Traduccin por scar Toledo G.".\r
-"      " === ""\r
-"WinBoard 0.0.0" === "WinBoard 0.0.0"\r
-\r
-ABOUTBOX2\r
-\r
-## Weird, it is needed? [Normally not. It is a built-in 'Easter Egg' joke.]\r
-"galactic" === ""\r
-\r
-TIME CONTROL DIALOG\r
-\r
-"Time Control" === "ThõÌi gian chõi"\r
-"Conventional chess clock" === "ÐôÌng hôÌ qui chuâÒn"\r
-"Incremental clock" === "ÐôÌng hôÌ tãng tiêìn"\r
-"Cancel" === "BoÒ"\r
-\r
-## Next is there really only for the benefit of blind users of the JAWS version...\r
-"Use arrow keys to specify which clock setting type, then press tab to alter values." === "Dùng các phím muÞi tên ðêÒ choòn kiêÒu ðôÌng hôÌ mong muôìn, rôÌi bâìm phím tab ðêÒ thay ðôÒi giá triò."\r
-"Fixed time per move" === "ThõÌi gian côì ðiònh cho môÞi nýõìc ði"\r
-"Number of moves:" === "Sôì nýõìc ði"\r
-"Within number of minutes:" === "Trong sôì phút:"\r
-"Initial number of minutes:" === "KhõÒi ðâÌu võìi sôì phút"\r
-"Plus number of seconds per move:" === "Sôì giây thêm cho môÞi nýõìc:"\r
-"Maximum seconds per move:" === "Sôì giây cýòc ðaòi cho môÞi nýõìc"\r
-"Time-Odds Factors:" === "Hêò sôì thõÌi gian leÒ"\r
-"Engine #1:" === "Chýõng triÌnh cõÌ 1:"\r
-"Engine #2:" === "Chýõng triÌnh cõÌ 2:"\r
-\r
-LOAD OPTIONS DIALOG\r
-\r
-"Load Game Options" === "Các Lýòa Choòn TaÒi Ván CõÌ"\r
-"Load games with automatic stepping" === "TaÒi các ván cõÌ và týò ðôòng ði quân"\r
-"seconds per move" === "sôì giây môÞi nýõìc"\r
-\r
-SAVE OPTIONS DIALOG\r
-\r
-"Save Game Options" === "Các Lýòa Choòn Lýu Ván CõÌ"\r
-"Save Style" === "KiêÒu Lýu"\r
-"Save games automatically" === "Lýu týò ðôòng các ván cõÌ"\r
-"Prompt for filename" === "Nhãìc tên file"\r
-"To file:" === "ra file:"\r
-"PGN" === "PGN"\r
-"Old" === "CuÞ"\r
-"Browse..." === "Xem"\r
-"Save out of book info in PGN" === "Lýu thông tin khi hêìt câÒm nang khai cuôòc vào PGN"\r
-\r
-1536\r
-## This dialog is only used in some older Windows versions, so you might not be ableto test it.\r
-\r
-"Open" === "MõÒ"\r
-"File &Name:" === "Tê&n File:"\r
-"&Directories:" === "Thý Muòc:"\r
-"List Files of &Type:" === "Danh Sách File Võìi KiêÒu:"\r
-"Dri&ves:" === "ÔÒ ÐiÞa:"\r
-"&Help" === "&Hýõìng DâÞn"\r
-\r
-"&Index number:" === "ChiÒ Muòc:"\r
-\r
-COMMPORT\r
-## Always disabled if you are not actually using an ICS through a comport, so difficult to test.\r
-\r
-"Communication Port Settings" === ""\r
-"Net&work..." === ""\r
-"&Port:" === ""\r
-"Data &Rate:" === ""\r
-"Data &Bits:" === ""\r
-"P&arity:" === ""\r
-"&Stop Bits:" === ""\r
-"F&low:" === ""\r
-\r
-EDIT COMMENT\r
-\r
-"Edit Comment" === "Soaòn BiÌnh Chú"\r
-"&Clear" === "Xóa"\r
-"&Edit" === "Soaòn"\r
-\r
-PROMOTION POPUP\r
-\r
-"Promote to:" === "Phong câìp thành:"\r
-## next used in Shogi as promotion-popup header\r
-"Promote?" === "Phong câìp?"\r
-"Promotion" === "Phong câìp"\r
-"&Queen" === "Hoàng Hâòu"\r
-"&Rook" === "Xe"\r
-"&Bishop" === "Týõòng"\r
-"K&night" === "MaÞ"\r
-"&King" === "Vua"\r
-"&Cancel" === "BoÒ"\r
-\r
-"Chance&llor" === "Xe"\r
-"&Archbishop" === "SiÞ"\r
-"YES" === "ÐôÌng Yì"\r
-"NO" === "Không"\r
-"C&entaur" === ""\r
-\r
-GAME LIST\r
-\r
-"Game List" === "Danh Sách Ván CõÌ"\r
-"&Load" === "TaÒi"\r
-"&Prev" === "Trýõìc"\r
-"&Next" === "Tiêìp"\r
-"&Close" === "Ðóng"\r
-"Filter" === "Loòc"\r
-\r
-EDIT TAGS\r
-\r
-"Edit Tags" === "Soaòn các theÒ"\r
-\r
-ERROR\r
-\r
-"ICS Interaction" === ""\r
-"Dialog" === ""\r
-"Error" === ""\r
-## I don't think the next will really appear ever.\r
-"Sorry Charlie" === ""\r
-\r
-COLORIZE\r
-\r
-"I C S Interaction Colors" === ""\r
-"Interaction Colors" === ""\r
-"Premove" === ""\r
-"Alarm" === ""\r
-"Colors" === ""\r
-"&Choose Color..." === ""\r
-"&Bold" === ""\r
-"&Italic" === ""\r
-"&Underline" === ""\r
-"&Strikeout" === ""\r
-\r
-QUESTION\r
-\r
-## next one seems only a placeholder, and never appears? [might also be just a programmer's joke...]\r
-"Enter a chess engine command or just type something stupid that will completely screw things up." === ""\r
-"Question" === ""\r
-"Enter" === ""\r
-\r
-STARTUP DIALOG\r
-\r
-"WinBoard Startup" === "WinBoard Ðang KhõÒi Ðôòng"\r
-"What would you like to do?" === "Baòn Muôìn Làm GiÌ?"\r
-"&Play against a chess engine or match two engines" === "Chõi võìi môòt chýõng triÌnh cõÌ hoãòc cho hai chýõng triÌnh ðâìu võìi nhau"\r
-"&Use an Internet Chess Server" === "Kêìt nôìi và chõi võìi môòt máy chuÒ cõÌ"\r
-"Just &view or edit game files" === "ChiÒ xem hoãòc soaòn thaÒo các file ván cõÌ"\r
-"Specify Chess &Engines:" === "Choòn Các Chýõng TriÌnh CõÌ:"\r
-"Specify Chess &Server:" === "Choòn Máy ChuÒ Chõi CõÌ"\r
-"&Additional options" === "Các lýòa choòn thêm"\r
-\r
-INDEX (IN FILE-BROWSE DIALOG)\r
-\r
-"Inde&x number:" === "Sôì chiÒ muòc"\r
-\r
-MOVE TYPE-IN\r
-\r
-"Type in a move" === ""\r
-\r
-USER-NAME TYPE-IN\r
-\r
-"Type in your name" === ""\r
-\r
-SOUND DIALOG\r
-\r
-"Sounds" === "Âm thanh"\r
-\r
-"&Event:" === "Sýò kiêòn:"\r
-"&No sound" === "Không âm thanh"\r
-"&Default beep" === "Tiêìng tút ngâÌm ðiònh"\r
-"&Built-in sound:" === "Âm thanh có sãÞn"\r
-"&WAV file:" === "File âm thanh WAV"\r
-\r
-"B&rowse..." === "Xem..."\r
-"&Play" === "Chõi"\r
-"&Defaults" === "NgâÌm ðiònh"\r
-\r
-GENERAL OPTIONS DIALOG\r
-## pleace keep the indication of the accelerator keys for the same keystroke\r
-## Note: finely tuned spaces to align keys at right\r
-\r
-"General Options" === "Các Lýòa Choòn Chung"\r
-"Always on &Top" === "Luôn NôÒi Lên Trên"\r
-"Always &Queen            Ctrl+Shift+Q" === "Luôn Là Hoàng Hâòu     Ctrl+Shift+&Q"\r
-"Animate &Dragging" === ""\r
-"&Animate Moving         Ctrl+Shift+A" === ""\r
-"Auto &Flag                   Ctrl+Shift+F" === "Týò Ðôòng Ðãòt CõÌ"\r
-"Auto Flip &View" === "Týò Ðôòng Xoay Bàn CõÌ"\r
-"Auto &Raise Board" === "Týò Ðôòng Hiêòn Bàn CõÌ"\r
-"&Blindfold" === "Mù Quáng"\r
-"Highlight Dra&gging" === "Ðánh Dâìu Khi Ðang Kéo Quân CõÌ"\r
-"Highlight Last &Move" === "Ðánh Dâìu Nýõìc Cuôìi"\r
-"Periodic &Updates" === "Câòp Nhâòt Theo Chu KyÌ"\r
-"Ponder &Next Move  Ctrl+Shift+P" === "Tiêìp Tuòc Tính Trýõìc"\r
-"&Popup Exit Message" === "Bâòt CýÒa SôÒ Thoát Chýõng triÌnh"\r
-"Popup Move &Errors" === "Bâòt CýÒa SôÒ LôÞi Nýõìc Ði"\r
-"Show Butt&on Bar" === "Hiêòn Thanh Nút Bâìm"\r
-"Show &Coordinates" === "Hiêòn Toòa Ðôò"\r
-"&Show Thinking" === "Hiêòn Tính Toán"\r
-"Test &Legality            Ctrl+Shift+L" === "KiêÒm Tra Hõòp &Lêò"\r
-"&Hide Thinking          Ctrl+Shift+H" === "ÂÒn Suy NghiÞ"\r
-"&Info in Move History   Ctrl+Shift+I" === "Thông Tin trong Nýõìc Ði"\r
-"&Send Engine Think" === "Lêònh Cho Chýõng TriÌnh Suy NghiÞ"\r
-"E&xtended PGN Info    Ctrl+Shift+X" === "Thông Tin MõÒ rôòng Trong PGN"\r
-"Highlight with Arro&w" === "Ðánh Dâìu Võìi MuÞi Tên"\r
-"Displa&y Logos" === "Hiêòn Logo"\r
-"One-Click Move" === "Ði Quân Võìi ChiÒ Môòt Bâìm"\r
-\r
-ICS OPTIONS\r
-\r
-"ICS Options" === ""\r
-"&Auto Comment" === ""\r
-"Auto &Observe" === ""\r
-"&Get Move List" === ""\r
-"&Local Line Editing" === ""\r
-"&Quiet Play" === ""\r
-"&Premove" === ""\r
-"&White first move" === ""\r
-"&Black first move" === ""\r
-"&Sound alarm at" === ""\r
-"seconds" === ""\r
-"Choose..." === ""\r
-"Do &not colorize messages" === ""\r
-"&Auto Kibitz" === ""\r
-"Auto Kibit&z" === ""\r
-"See&k Graph" === ""\r
-"auto-&Refresh" === ""\r
-"Bckgnd Obser&ve" === ""\r
-"&Dual Board" === ""\r
-"One-Click &Move" === ""\r
-"Background..." === ""\r
-"&Defaults..." === ""\r
-"Startup &Chat Boxes:" === ""\r
-"General" === ""\r
-\r
-BOARD OPTIONS\r
-## (NOTE: AllWhite uses the white (outline-style) piece bitmaps for both sides\r
-##        FlipBlack draws the black pieces upside down)\r
-\r
-"Board Options" === ""\r
-"Defaults" === ""\r
-"Light Squares" === ""\r
-"Dark Squares" === ""\r
-"White Pieces" === ""\r
-"Black Pieces" === ""\r
-"Square Highlights" === ""\r
-"Premove Highlights" === ""\r
-"Monochrome" === ""\r
-"All White" === ""\r
-"Flip Black" === ""\r
-"Size" === ""\r
-\r
-BOARD SIZES (translate as number?)\r
-## Don't put numbers, or nobody will translate them. [True. But do we really want them translated?]\r
-## This is a space for imagination!\r
-"&Tiny" === ""\r
-"T&eeny" === ""\r
-"&Dinky" === ""\r
-"&Petite" === ""\r
-"Sl&im" === ""\r
-"&Small" === ""\r
-"Medi&ocre" === ""\r
-"&Middling" === ""\r
-"&Average" === ""\r
-"Mode&rate" === ""\r
-"Medi&um" === ""\r
-"Bul&ky" === ""\r
-"&Large" === ""\r
-"&Big" === ""\r
-"&Huge" === ""\r
-"&Giant" === ""\r
-"&Colossal" === ""\r
-"Tita&nic" === ""\r
-\r
-FONTS\r
-\r
-"Fonts" === ""\r
-"Current Board Size" === ""\r
-"All Board Sizes" === ""\r
-"&Revert to Defaults" === ""\r
-"Clocks" === ""\r
-"Messages" === ""\r
-"Coordinates" === ""\r
-"Tags" === ""\r
-"Comments" === ""\r
-"I C S Interaction" === ""\r
-\r
-"&Color..." === ""\r
-"Move History, Engine Output" === ""\r
-\r
-ADJUDICATIONS DIALOG\r
-\r
-"Adjudications" === ""\r
-"Ponder Next Move" === ""\r
-"Enable and Show Thinking (recommended)" === ""\r
-"Hide Thinking when Playing against Human" === ""\r
-"Periodic Updates (for Analysis Mode)" === ""\r
-"Adjudications in non-ICS games" === ""\r
-"Adjudicate draw after:" === ""\r
-"moves" === ""\r
-"Win/loss adjudication threshold:" === ""\r
-"centipawns" === ""\r
-"&Verify Engine Claims" === ""\r
-"Detect &Mates" === ""\r
-"Draw if &Insufficient Material" === ""\r
-"Adjudicate &Trivial Draws" === ""\r
-"Apply" === ""\r
-## next 2 are suffixed to a text-edit containing a number (50 or 3)\r
-"-move rule" === ""\r
-"-fold repeats" === ""\r
-"Engine #1 Score is Absolute" === ""\r
-"Engine #2 Score is Absolute" === ""\r
-\r
-COMMON ENGINE DIALOG\r
-\r
-"Common Engine Settings" === ""\r
-"Polyglot Directory:" === ""\r
-"Hash Size (MB):" === ""\r
-"EGTB Path:" === ""\r
-"EGTB Size (MB):" === ""\r
-"Use Book:" === ""\r
-"Max nr of CPUs:" === ""\r
-"First has Own Book" === ""\r
-"Second has Own Book" === ""\r
-"Book Depth:" === ""\r
-"Book Variation:" === ""\r
-"Default Match Games:" === ""\r
-\r
-NEW-VARIANT DIALOG\r
-## (NOTE: the 'holdings' are the pieces standing next to the board ('in hand')\r
-\r
-"Variants" === ""\r
-"Variant" === ""\r
-"Board size:" === ""\r
-"ranks" === ""\r
-"files" === ""\r
-"Holdings with room for:" === ""\r
-"pieces" === ""\r
-"('-1' means defaults for selected variant)" === ""\r
-\r
-VARIANT NAMES: \r
-"&normal" === ""\r
-"&FRC" === ""\r
-"&wildcastle" === ""\r
-"&nocastle" === ""\r
-"&losers" === ""\r
-"&giveaway" === ""\r
-"s&uicide" === ""\r
-"&3Check" === ""\r
-"&twokings" === ""\r
-"&atomic" === ""\r
-"cra&zyhouse" === ""\r
-"&bughouse" === ""\r
-"&Twilight" === ""\r
-"&shogi" === ""\r
-"su&per" === ""\r
-"&knightmate" === ""\r
-"&Berolina" === ""\r
-"c&ylinder" === ""\r
-"&fairy" === ""\r
-"&makruk" === ""\r
-"&gothic" === ""\r
-"&capablanca" === ""\r
-"&Janus" === ""\r
-"&CRC" === ""\r
-"&Falcon" === ""\r
-"cou&rier" === ""\r
-"&Great" === ""\r
-"&Shatranj" === ""\r
-"&xiangqi" === ""\r
-\r
-NEW SHUFFLE GAME\r
-\r
-"New Shuffle Game" === ""\r
-"&Start Position Number:" === ""\r
-"Random" === ""\r
-\r
-GAME-LIST OPTIONS DIALOG\r
-\r
-"Game List Options" === ""\r
-"PGN &Tags:" === ""\r
-"&Up" === ""\r
-"&Down" === ""\r
-"Default" === ""\r
-"Factory" === ""\r
-"Restore to:" === ""\r
-\r
-MOVE HISTORY WINDOW\r
-\r
-"Move History" === ""\r
-\r
-EVALUATION GRAPH\r
-\r
-"Evaluation Graph" === ""\r
-\r
-ENGINE OUTPUT WINDOW\r
-\r
-"Engine output" === ""\r
-"Engine #1" === ""\r
-"NPS" === ""\r
-"Engine #2" === ""\r
-\r
-CHAT BOXES\r
-\r
-"Chat Window" === ""\r
-"Chat partner:" === ""\r
-"Clear" === ""\r
-"Send" === ""\r
-\r
-winboard.c\r
-\r
-"&File" === ""\r
-"&Edit" === ""\r
-"&View" === ""\r
-"&Mode" === ""\r
-"&Action" === ""\r
-"&Step" === ""\r
-"E&ngine" === ""\r
-"&Options" === ""\r
-"&Help" === ""\r
-"You can only start a match from the initial position" === ""\r
-"Font name too long:" === ""\r
-"Font point size missing:" === ""\r
-"Can't parse color name %s" === ""\r
-"Unrecognized board size value" === ""\r
-"Unrecognized argument" === ""\r
-"No value provided for argument" === ""\r
-"Incomplete \\ escape in value for" === ""\r
-"Failed to open indirection file" === ""\r
-"Unrecognized boolean argument value" === ""\r
-"Unrecognized argument" === ""\r
-"Too many colors" === ""\r
-"&Minimize\tCtrl+F4" === ""\r
-"White: %s" === ""\r
-"We only care about the height here" === ""\r
-"Cannot build game list" === ""\r
-"Load Game from File" === ""\r
-"Load Position from File" === ""\r
-"Save Game to File" === ""\r
-"Save Position to File" === ""\r
-"%s does not support analysis" === ""\r
-"Analyze Game from File" === ""\r
-"Unable to activate help" === ""\r
-"Send to chess program:" === ""\r
-"Send to second chess program:" === ""\r
-"Direct Command" === ""\r
-"Error loading sound %s" === ""\r
-"Error playing sound %s" === ""\r
-"File open failed" === ""\r
-"Internal error in file dialog box" === ""\r
-"Option Error" === ""\r
-"Choose an option, or cancel to exit" === ""\r
-"Unable to activate help" === ""\r
-"Displayed move is not current" === ""\r
-"Could not parse move" === ""\r
-"%s:\nError code %d" === ""\r
-"Error" === ""\r
-"Fatal Error" === ""\r
-"Exiting" === ""\r
-"%s:\nError code %d" === ""\r
-"Note" === ""\r
-"Error writing to chess program" === ""\r
-"User" === ""\r
-"Unknown" === ""\r
-"White" === ""\r
-"Black" === ""\r
-"Save Game to File" === ""\r
-"Not implemented" === ""\r
-\r
-"Shout Text" === ""\r
-"SShout/CShout" === ""\r
-"Channel 1 Text" === ""\r
-"Channel Text" === ""\r
-"Kibitz Text" === ""\r
-"Tell Text" === ""\r
-"Challenge Text" === ""\r
-"Request Text" === ""\r
-"Seek Text" === ""\r
-"Normal Text" === ""\r
-"None" === ""\r
-"Pawn" === ""\r
-"Knight" === ""\r
-"Bishop" === ""\r
-"Rook" === ""\r
-"Queen" === ""\r
-"Information" === ""\r
-\r
-wclipbrd.c\r
-\r
-"Unable to convert position to FEN." === ""\r
-"Unable to copy FEN to clipboard." === ""\r
-"Cannot create temporary file name." === ""\r
-"Cannot open temporary file." === ""\r
-"Cannot write to temporary file." === ""\r
-"Cannot reopen temporary file." === ""\r
-"Cannot determine size of file." === ""\r
-"Cannot allocate clipboard buffer." === ""\r
-"Cannot read from temporary file." === ""\r
-"Error reading from temporary file." === ""\r
-"Cannot copy text to clipboard" === ""\r
-"Unable to allocate memory for clipboard." === ""\r
-"Unable to lock clipboard memory." === ""\r
-"Cannot unlock clipboard memory." === ""\r
-"Cannot open clipboard." === ""\r
-"Cannot empty clipboard." === ""\r
-"Cannot copy text to clipboard." === ""\r
-"Cannot close clipboard." === ""\r
-"Unable to paste FEN from clipboard." === ""\r
-"Unable to create temporary file." === ""\r
-"Error writing to temporary file." === ""\r
-"Unable to open clipboard." === ""\r
-"No text in clipboard." === ""\r
-"Unable to lock clipboard memory." === ""\r
-"Unable to allocate memory for text string." === ""\r
-"Unable to unlock clipboard memory." === ""\r
-"Unable to close clipboard." === ""\r
-\r
-woptions.c\r
-\r
-## For now, do NOT translate sound names, because WinBoard will no longer recognize them\r
-"Move" === ""\r
-"Bell" === ""\r
-"ICS Alarm" === ""\r
-"ICS Win" === ""\r
-"ICS Loss" === ""\r
-"ICS Draw" === ""\r
-"ICS Unfinished" === ""\r
-"Shout" === ""\r
-"SShout/CShout" === ""\r
-"Channel 1" === ""\r
-"Channel" === ""\r
-"Kibitz" === ""\r
-"Tell" === ""\r
-"Challenge" === ""\r
-"Request" === ""\r
-"Seek" === ""\r
-## end of sound names\r
-\r
-"Browse for Sound File" === ""\r
-"Can't parse com port settings" === ""\r
-"Option Error" === ""\r
-"Invalid data rate" === ""\r
-"Option Error" === ""\r
-"Failed to set comm port state;\r\ninvalid options?" === ""\r
-"Failed to set comm port state" === ""\r
-"Invalid load game step rate" === ""\r
-"Invalid save game file name" === ""\r
-"Browse for Auto Save File" === ""\r
-"Invalid moves per time control" === ""\r
-"Invalid minutes per time control" === ""\r
-"Invalid increment" === ""\r
-"Invalid initial time" === ""\r
-"Changing time control during a game is not implemented" === ""\r
-\r
-"Variant %s not supported by %s" === ""\r
-"Warning: second engine (%s) does not support this!" === ""\r
-"Invalid ICS Alarm Time" === ""\r
-"Invalid max time per move" === ""\r
-"Invalid time-odds factor" === ""\r
-"Choose Folder" === ""\r
-"Choose Book" === ""\r
-"Choose Polyglot Directory" === ""\r
-"Choose EGTB Directory:" === ""\r
-"Polyglot was not found in the specified folder!" === ""\r
-\r
-wgamelist.c\r
-\r
-"No game selected" === ""\r
-"Can't go forward any further" === ""\r
-"Can't back up any further" === ""\r
-"No game list" === ""\r
-"Game List" === ""\r
-"Game list not loaded or empty" === ""\r
-"%s - %d/%d games" === ""\r
-\r
-wedittags.c\r
-\r
-"Edit Tags" === ""\r
-"Tags" === ""\r
-"Error replacing tags." === ""\r
-\r
-wsettings.c\r
-\r
-"%s Engine Settings (%s)" === ""\r
-"OK" === ""\r
-"Cancel" === ""\r
-\r
-backend.c\r
-\r
-"bad timeControl option %s" === ""\r
-"bad searchTime option %s" === ""\r
-## following to will appear in combinationslike "first engine" \r
-"first" === ""\r
-"second" === ""\r
-"protocol version %d not supported" === ""\r
-"Variant %s supported only in ICS mode" === ""\r
-"Unknown variant name %s" === ""\r
-"Starting chess program" === ""\r
-"Could not open comm port %s" === ""\r
-"Could not connect to host %s, port %s" === ""\r
-"Unknown initialMode %s" === ""\r
-"Can't have a match with no chess programs" === ""\r
-"Bad game file" === ""\r
-"Bad position file" === ""\r
-"AnalyzeFile mode requires a game file" === ""\r
-"Analysis mode requires a chess engine" === ""\r
-"Analysis mode does not work with ICS mode" === ""\r
-"MachineWhite mode requires a chess engine" === ""\r
-"MachineWhite mode does not work with ICS mode" === ""\r
-"MachineBlack mode requires a chess engine" === ""\r
-"MachineBlack mode does not work with ICS mode" === ""\r
-"TwoMachines mode does not work with ICS mode" === ""\r
-"TwoMachines mode requires a chess engine" === ""\r
-"Training mode requires a game file" === ""\r
-"Error writing to ICS" === ""\r
-"Error reading from keyboard" === ""\r
-"Got end of file from keyboard" === ""\r
-"Error writing to ICS" === ""\r
-"Error writing to display" === ""\r
-"Error gathering move list: two headers" === ""\r
-"Error gathering move list: nested" === ""\r
-"Connection closed by ICS" === ""\r
-"Error reading from ICS" === ""\r
-"Failed to parse board string:\n\"%s\"" === ""\r
-"Game too long; increase MAX_MOVES and recompile" === ""\r
-"Error gathering move list: extra board" === ""\r
-"Illegal move \"%s\" from ICS" === ""\r
-"Couldn't parse move \"%s\" from ICS" === ""\r
-## The leading 'say' is used as ICS command here, and should NOT be translated. Only the message behind it.\r
-"say Internal error; bad moveType %d (%d,%d-%d,%d)" === ""\r
-"You are playing Black" === ""\r
-"You are playing White" === ""\r
-"It is White's turn" === ""\r
-"It is Black's turn" === ""\r
-"Displayed position is not current" === ""\r
-"Illegal move" === ""\r
-"End of game" === ""\r
-"Incorrect move" === ""\r
-## next 6: Second (first 3) or first (other) '%s' will be substituted for 'first' or 'second'.\r
-"Illegal move \"%s\" from %s machine" === ""\r
-"Illegal move \"%s\" (rejected by %s chess program)" === ""\r
-"Failed to start %s chess program %s on %s: %s\n" === ""\r
-"Error writing to %s chess program" === ""\r
-"Error: %s chess program (%s) exited unexpectedly" === ""\r
-"Error reading from %s chess program (%s)" === ""\r
-"Forfeit due to illegal move" === ""\r
-"%s does not support analysis" === ""\r
-"Hint: %s" === ""\r
-"Machine accepts your draw offer" === ""\r
-"Machine offers a draw\nSelect Action / Draw to agree" === ""\r
-"%s (only move)" === ""\r
-"Ambiguous move in ICS output: \"%s\"" === ""\r
-"Illegal move in ICS output: \"%s\"" === ""\r
-"Gap in move list" === ""\r
-"Game too long; increase MAX_MOVES and recompile" === ""\r
-"Variant %s not supported by %s" === ""\r
-"Startup failure on '%s'" === ""\r
-"Waiting for first chess program" === ""\r
-"Waiting for second chess program" === ""\r
-"Match %s vs. %s: final score %d-%d-%d" === ""\r
-"Stalemate" === ""\r
-"Illegal move: %d.%s%s" === ""\r
-"Ambiguous move: %d.%s%s" === ""\r
-"Can't open \"%s\"" === ""\r
-"Cannot build game list" === ""\r
-"No more games in this message" === ""\r
-"No game has been loaded yet" === ""\r
-"Can't back up any further" === ""\r
-"Game number out of range" === ""\r
-"Can't seek on game file" === ""\r
-"Game not found in file" === ""\r
-"Bad FEN position in file" === ""\r
-"No moves in game" === ""\r
-"No position has been loaded yet" === ""\r
-"Can't back up any further" === ""\r
-"Can't open \"%s\"" === ""\r
-"Can't seek on position file" === ""\r
-"Position not found in file" === ""\r
-"Bad FEN position in file" === ""\r
-"Black to play" === ""\r
-"White to play" === ""\r
-"Can't open \"%s\"" === ""\r
-"You have edited the game history.\nUse Reload Same Game and make your move again." === ""\r
-"You have entered too many moves.\nBack up to the correct position and try again." === ""\r
-"Displayed position is not current.\nStep forward to the correct position and try again." === ""\r
-"You have not made a move yet" === ""\r
-"The cmail message is not loaded.\nUse Reload CMail Message and make your move again." === ""\r
-"No unfinished games" === ""\r
-"You have already mailed a move.\nWait until a move arrives from your opponent.\nTo resend the same move, type\n\"cmail -remail -game %s\"\non the command line." === ""\r
-"Failed to invoke cmail" === ""\r
-"Waiting for reply from opponent\n" === ""\r
-"Still need to make move for game\n" === ""\r
-"Still need to make moves for both games\n" === ""\r
-"Still need to make moves for all %d games\n" === ""\r
-"Still need to make a move for game %s\n" === ""\r
-"No unfinished games\n" === ""\r
-"Ready to send mail\n" === ""\r
-"Still need to make moves for games %s\n" === ""\r
-"Edit comment" === ""\r
-"Edit comment on %d.%s%s" === ""\r
-"Starting analysis mode...\nIf this message stays up, your chess program does not support analysis." ===  "Comenzando modo de anlisis...\nSi este mensaje permanece, su programa de ajedrez no admite anlisis."\r
-"It is not White's turn" === ""\r
-"It is not Black's turn" === ""\r
-"Wait until your turn,\nor select Move Now" === ""\r
-"Starting second chess program" === ""\r
-"Training mode off" === ""\r
-"Training mode on" === ""\r
-"Already at end of game" === ""\r
-"Warning: You are still playing a game" === ""\r
-"Warning: You are still observing a game" === ""\r
-"Warning: You are still examining a game" === ""\r
-"It is Black's turn" === ""\r
-"It is White's turn" === ""\r
-"That square is occupied" === ""\r
-"There is no pending offer on this move" === ""\r
-"Your opponent is not out of time" === ""\r
-"Black offers a draw" === ""\r
-"White offers a draw" === ""\r
-"You must make your move before offering a draw" === ""\r
-"You are not examining a game" === ""\r
-"You can't revert while pausing" === ""\r
-"Wait until your turn,\nor select Move Now" === ""\r
-"It is your turn" === ""\r
-"Wait until your turn" === ""\r
-"No hint available" === ""\r
-"Analysis (%s)" === ""\r
-"Comment" === ""\r
-"Comment on %d.%s%s" === ""\r
-"Both flags fell" === ""\r
-"White's flag fell" === ""\r
-"Black's flag fell" === ""\r
-"Bad FEN position in clipboard" === ""\r
-"No response from ICS" === ""\r
-"You cannot do this while you are playing or observing" === ""\r
-"Click in holdings to choose piece" === ""\r
-\r
-END-OF-GAME MESSAGES (should they be translated?)\r
-## I think that only for visualization and not for PGN, as PGN files are shared all around the world\r
-## [OK, I adapted the source that way. So please translate.]\r
-\r
-"Game aborted" === "Ván cõÌ biò boÒ dõÒ"\r
-"White wins on time" === "Trãìng thãìng thõÌi gian"\r
-"Black wins on time" === "Ðen thãìng thõÌi gian"\r
-"Both players ran out of time" === "CaÒ hai bên hêìt thõÌi gian"\r
-"White resigns" === "Trãìng Xin Thua"\r
-"Black resigns" === "Ðen Xin Thua"\r
-"White mates" === "Trãìng Chiêìu Hêìt"\r
-"Black mates" === "Ðen Chiêìu Hêìt"\r
-"Draw" === "HoÌa"\r
-"Draw agreed" === "ÐôÌng yì hoÌa"\r
-"Xboard adjudication: King destroyed" === ""\r
-"Xboard adjudication: Bare king" === ""\r
-"Xboard adjudication: 3rd check" === ""\r
-"Xboard adjudication: Stalemate" === ""\r
-"Xboard adjudication: Checkmate" === ""\r
-"Xboard adjudication: Insufficient mating material" === ""\r
-"Xboard adjudication: Trivial draw" === ""\r
-"XBoard adjudication: repetition draw" === ""\r
-"Xboard adjudication: perpetual checking" === ""\r
-"Xboard adjudication: perpetual chasing" === ""\r
-"%Xboard adjudication: perpetual chasing of" === ""\r
-"Xboard adjudication: 50-move rule" === ""\r
-"Draw claim: 50-move rule" === ""\r
-"Draw claim: 3-fold repetition" === ""\r
-"Draw claim: insufficient mating material" === ""\r
-"Xboard adjudication: long game" === ""\r
-"Xboard: Forfeit due to invalid move: %s (%c%c%c%c) res=%d" === ""\r
-"Xboard: Forfeit due to illegal move: %s (%c%c%c%c)%c" === ""\r
-"Xboard adjudication" === ""\r
-"User adjudication" === ""\r
-"False win claim: '%s'" === ""\r
-"False draw claim: '%s'" === ""\r
-"xboard exit" === ""\r
-\r
-\r
diff --git a/winboard/makefile.gcc b/winboard/makefile.gcc
deleted file mode 100644 (file)
index 77fc0b9..0000000
+++ /dev/null
@@ -1,175 +0,0 @@
-# WinBoard makefile using gcc\r
-\r
-\r
-PROJ=winboard\r
-\r
-\r
-OBJS=backend.o book.o gamelist.o lists.o moves.o pgntags.o uci.o zippy.o\\r
- parser.o wbres.o wclipbrd.o wedittags.o wengineoutput.o wevalgraph.o\\r
- wgamelist.o whistory.o history.o winboard.o wlayout.o woptions.o wsnap.o\\r
- wsockerr.o help.o wsettings.o wchat.o engineoutput.o evalgraph.o\r
-\r
-\r
-# make compiling less spammy\r
-compile = @echo "$1"; $(CC) $(CFLAGS) $1\r
-\r
-\r
-# Debugging?\r
-USE_DEBUG=0\r
-\r
-\r
-# JAWS support?\r
-JAWS=0\r
-\r
-\r
-# set this to 1 unless you don't mind linking with cygwin1.dll\r
-USE_MINGW=1\r
-\r
-\r
-# set up for cygwin or not\r
-ifeq ($(USE_MINGW),1)\r
-CFCYG = -mno-cygwin -DUSE_I64\r
-LFCYG = -mno-cygwin -lmsvcrt\r
-endif\r
-\r
-CC = gcc\r
-FLEX = "flex.exe" # we need version 2.5.4 or later, cygwin's is 2.5.35\r
-#      "c:/mingw/mingw32/bin/flex.exe"\r
-HC="C:/Program Files/Help Workshop/hcrtf" -xn\r
-DEFS = -D_WIN32_IE=0x0300 -DWIN32\r
-ifeq ($(JAWS),1)\r
-  DEFS += -DJAWS\r
-endif\r
-WARN = -Wall -Wno-char-subscripts -Wno-parentheses\r
-ARCH =\r
-ifeq ($(USE_DEBUG),0)\r
-  CFDEBUG = -DNDEBUG\r
-  OPTS = -Os -frename-registers -funit-at-a-time -fstrict-aliasing -fstrength-reduce\r
-else\r
-  CFDEBUG = -D_DEBUG -DDEBUG -g\r
-endif\r
-CF = -c $(WARN) -pipe $(CFDEBUG) $(DEFS) -I. -I..\r
-CFLAGS = $(CF) $(ARCH) $(OPTS) $(CFCYG)\r
-LFLAGS = $(LFCYG) $(CFDEBUG) -fpic -s -mwindows -lwsock32 -lwinmm -lcomctl32\r
-\r
-all: $(PROJ).exe\r
-\r
-\r
-clean:\r
-       rm -f *~ $(PROJ).exe $(PROJ).err $(PROJ).rbj $(PROJ).RES $(PROJ).res\\r
-       *.sbr *.bsc *.o *.obj *.plg *.opt *.ncb *.debug *.bak *.gid *.GID\\r
-       *.map *.pdb *.tmp $(PROJ).ini\r
-\r
-\r
-# Update the help file if necessary\r
-$(PROJ).hlp : $(PROJ).rtf\r
-       $(HC) $(PROJ).hpj && @cat $(PROJ).err && @mv $(PROJ).hlp tmp.hlp && @mv tmp.hlp $(PROJ).hlp || true # these moves to get the case right\r
-\r
-\r
-# Update the resource if necessary\r
-wbres.o: $(PROJ).rc $(PROJ).h resource.h config.h\r
-       windres $(DEFS) --use-temp-file --include-dir .. $< -O coff -o $@\r
-\r
-\r
-$(PROJ).exe: $(OBJS) $(PROJ).hlp\r
-       $(CC) $(guiflags) $(OBJS) $(LFLAGS) -o $(PROJ).exe\r
-\r
-\r
-winboard.o: winboard.c config.h winboard.h ../common.h ../frontend.h ../backend.h \\r
-       ../moves.h defaults.h resource.h wclipbrd.h \\r
-       wsockerr.h woptions.h wsnap.h ../lists.h help.h ../args.h\r
-       $(call compile, $<)\r
-\r
-backend.o: ../backend.c config.h ../common.h ../frontend.h ../backend.h \\r
-       ../parser.h ../moves.h ../zippy.h ../backendz.h ../gettext.h ../lists.h\r
-       $(call compile, $<)\r
-\r
-parser.o: ../parser.c config.h ../common.h ../backend.h ../parser.h \\r
-       ../frontend.h ../moves.h ../lists.h\r
-       $(call compile, $<)\r
-\r
-moves.o: ../moves.c config.h ../backend.h ../common.h ../parser.h \\r
-       ../moves.h ../lists.h\r
-       $(call compile, $<)\r
-\r
-lists.o: ../lists.c config.h ../lists.h ../common.h\r
-       $(call compile, $<)\r
-\r
-gamelist.o: ../gamelist.c config.h ../lists.h ../common.h ../frontend.h \\r
-       ../backend.h ../parser.h\r
-       $(call compile, $<)\r
-\r
-wclipbrd.o: wclipbrd.c config.h ../common.h ../frontend.h ../backend.h \\r
-       winboard.h resource.h wclipbrd.h ../lists.h\r
-       $(call compile, $<)\r
-\r
-wedittags.o: wedittags.c config.h ../common.h winboard.h resource.h ../frontend.h \\r
-       ../backend.h ../lists.h\r
-       $(call compile, $<)\r
-\r
-wgamelist.o: wgamelist.c config.h ../common.h winboard.h resource.h ../frontend.h \\r
-       ../backend.h ../lists.h\r
-       $(call compile, $<)\r
-\r
-woptions.o: woptions.c config.h ../common.h ../frontend.h ../backend.h ../lists.h \\r
-       defaults.h winboard.h resource.h\r
-       $(call compile, $<)\r
-\r
-wengineoutput.o: wengineoutput.c ../engineoutput.h config.h ../common.h \\r
-       ../frontend.h ../backend.h ../lists.h winboard.h resource.h wsnap.h\r
-       $(call compile, $<)\r
-\r
-engineoutput.o: ../engineoutput.c ../engineoutput.h config.h ../common.h \\r
-       ../frontend.h ../backend.h ../lists.h\r
-       $(call compile, $<)\r
-\r
-whistory.o: whistory.c config.h ../common.h ../frontend.h ../backend.h \\r
-       ../lists.h winboard.h resource.h wsnap.h\r
-       $(call compile, $<)\r
-\r
-history.o: ../history.c config.h ../common.h ../frontend.h ../backend.h \\r
-       ../lists.h\r
-       $(call compile, $<)\r
-\r
-wevalgraph.o: wevalgraph.c ../evalgraph.h config.h ../common.h ../frontend.h \\r
-       ../backend.h ../lists.h winboard.h resource.h wsnap.h\r
-       $(call compile, $<)\r
-\r
-evalgraph.o: ../evalgraph.c ../evalgraph.h config.h ../common.h ../frontend.h \\r
-       ../backend.h ../lists.h\r
-       $(call compile, $<)\r
-\r
-wlayout.o: wlayout.c config.h ../common.h ../frontend.h winboard.h resource.h\r
-       $(call compile, $<)\r
-\r
-wsockerr.o: wsockerr.c wsockerr.h\r
-       $(call compile, $<)\r
-\r
-help.o: help.c help.h\r
-       $(call compile, $<)\r
-\r
-wsnap.o: wsnap.c wsnap.h\r
-       $(call compile, $<)\r
-\r
-pgntags.o: ../pgntags.c config.h ../common.h ../frontend.h ../backend.h \\r
-       ../parser.h ../lists.h\r
-       $(call compile, $<)\r
-\r
-zippy.o: ../zippy.c config.h ../common.h ../zippy.h ../frontend.h \\r
-       ../backend.h ../backendz.h ../lists.h\r
-       $(call compile, $<)\r
-\r
-book.o: ../book.c ../common.h ../backend.h ../lists.h\r
-       $(call compile, $<)\r
-\r
-uci.o: ../uci.c ../common.h ../backend.h ../frontend.h ../lists.h\r
-       $(call compile, $<)\r
-\r
-wsettings.o: wsettings.c ../common.h ../backend.h ../frontend.h ../lists.h\r
-       $(call compile, $<)\r
-\r
-wchat.o: wchat.c winboard.h wsnap.h ../common.h ../backend.h ../frontend.h ../lists.h\r
-       $(call compile, $<)\r
-\r
-%.o: %.c\r
-       $(call compile, $<)\r
diff --git a/winboard/makefile.ms b/winboard/makefile.ms
deleted file mode 100644 (file)
index 5762640..0000000
+++ /dev/null
@@ -1,195 +0,0 @@
-# Command line: nmake /f makefile.ms\r
-# Set VCVER=6 for MSVC 4.x through 7.0(aka 2002 aka .NET).\r
-# For MSVC 8 (aka 2005) set VCVER=8.  Beyond that try 8 first.\r
-VCVER=6\r
-\r
-# If using MSVC 6.0 or earlier, you will need the latest platform SDK supported.\r
-# Set SDK_INC to the include directory after you install it.\r
-# See: http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm\r
-#SDK_INC="C:\Program Files\Microsoft SDK\include"\r
-\r
-\r
-PROJ = winboard\r
-\r
-\r
-OBJS=backend.obj book.obj gamelist.obj lists.obj moves.obj pgntags.obj uci.obj\\r
- zippy.obj parser.obj wclipbrd.obj wedittags.obj wengineoutput.obj wevalgraph.obj\\r
- wgamelist.obj whistory.obj history.obj winboard.obj wlayout.obj woptions.obj wsnap.obj\\r
- wsockerr.obj help.obj wsettings.obj wchat.obj engineoutput.obj evalgraph.obj\r
-\r
-\r
-# Debugging?\r
-USE_DEBUG=0\r
-\r
-\r
-# JAWS support?\r
-JAWS=0\r
-\r
-\r
-CC = @cl\r
-RC = @rc\r
-LINK = link\r
-HC="c:\program files\help workshop\hcrtf.exe" -xn\r
-FLEX = "c:/mingw/mingw32/bin/flex.exe"\r
-DEFS = -D_WIN32_IE=0x300 -DWIN32 -DWINVER=0x0500 -D_WIN32_WINDOWS=0x500 -D YY_NO_UNISTD_H\r
-!if $(JAWS) == 1\r
-DEFS = -DJAWS $(DEFS)\r
-!endif\r
-#WARN = -W3\r
-ARCH =\r
-\r
-\r
-!if $(VCVER) >= 8\r
-CLIB= libcmt\r
-LIBF= -MT\r
-DEPRECATE=-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_USE_32BIT_TIME_T\r
-!else\r
-VSO = -Gf -Og\r
-CLIB = msvcrt\r
-LIBF = -MD\r
-!endif\r
-\r
-\r
-!if $(USE_DEBUG) == 0\r
-CFDEBUG = -DNDEBUG\r
-OPTS = -Os -Oy -Gs -GA -Zl $(VSO) $(LIBF)\r
-LFDEBUG = $(CLIB).lib\r
-!else\r
-CFDEBUG = -D_DEBUG -DDEBUG\r
-OPTS = -Od -Zi -Fd$(PROJ).pdb $(LIBF)d\r
-LFDEBUG = -DEBUG -PDB:$(PROJ).pdb -MAP:$(PROJ).map $(CLIB)d.lib\r
-!endif\r
-CF = $(CFDEBUG) $(DEFS) $(DEPRECATE) -I. -I..\r
-!if DEFINED(SDK_INC)\r
-CF = $(CF) -I$(SDK_INC)\r
-!endif\r
-CFLAGS = -c -nologo $(WARN) $(CF) $(ARCH) $(OPTS)\r
-LFLAGS = -nologo $(LFDEBUG)\r
-\r
-\r
-all: $(PROJ).exe\r
-\r
-\r
-clean:\r
-        -erase *~ $(PROJ).exe $(PROJ).err $(PROJ).rbj $(PROJ).res *.sbr *.bsc\\r
-        *.o *.obj *.plg *.opt *.ncb *.debug *.bak *.gid *.map *.pdb *.ini\r
-\r
-\r
-# Update the help file if necessary\r
-$(PROJ).hlp : $(PROJ).rtf\r
-        $(HC) $(PROJ).hpj\r
-        -@type $(PROJ).err\r
-        -@rename $(PROJ).hlp $(PROJ).hlp.tmp\r
-        -@rename $(PROJ).hlp.tmp $(PROJ).hlp\r
-\r
-\r
-# Update the resource if necessary\r
-$(PROJ).res: $(PROJ).rc $(PROJ).h resource.h config.h\r
-    $(RC) $(CF) -r -fo $(PROJ).res $(PROJ).rc\r
-\r
-winboard.obj: winboard.c config.h winboard.h ../common.h ../frontend.h \\r
-        ../backend.h ../moves.h defaults.h resource.h wclipbrd.h \\r
-        wsockerr.h woptions.h wsnap.h ../lists.h help.h ../args.h\r
-        $(CC) $(CFLAGS) winboard.c\r
-\r
-backend.obj: ../backend.c config.h ../common.h ../frontend.h ../backend.h \\r
-        ../parser.h ../moves.h ../zippy.h ../backendz.h ../gettext.h ../lists.h\r
-        $(CC) $(CFLAGS) ../backend.c\r
-\r
-parser.obj: ../parser.c config.h ../common.h ../backend.h ../parser.h \\r
-        ../frontend.h ../moves.h ../lists.h\r
-        $(CC) $(CFLAGS) ../parser.c\r
-\r
-book.obj: ../book.c ../common.h ../backend.h ../lists.h\r
-        $(CC) $(CFLAGS) ../book.c\r
-\r
-gamelist.obj: ../gamelist.c config.h ../lists.h ../common.h ../frontend.h \\r
-        ../backend.h ../parser.h\r
-        $(CC) $(CFLAGS) ../gamelist.c\r
-\r
-lists.obj: ../lists.c config.h ../lists.h ../common.h\r
-        $(CC) $(CFLAGS) ../lists.c\r
-\r
-moves.obj: ../moves.c config.h ../backend.h ../common.h ../parser.h \\r
-        ../moves.h ../lists.h\r
-        $(CC) $(CFLAGS) ../moves.c\r
-\r
-wclipbrd.obj: wclipbrd.c config.h ../common.h ../frontend.h ../backend.h \\r
-        winboard.h resource.h wclipbrd.h ../lists.h\r
-        $(CC) $(CFLAGS) wclipbrd.c\r
-\r
-wedittags.obj: wedittags.c config.h ../common.h winboard.h resource.h ../frontend.h \\r
-        ../backend.h ../lists.h\r
-        $(CC) $(CFLAGS) wedittags.c\r
-\r
-wgamelist.obj: wgamelist.c config.h ../common.h winboard.h resource.h ../frontend.h \\r
-        ../backend.h ../lists.h\r
-        $(CC) $(CFLAGS) wgamelist.c\r
-\r
-woptions.obj: woptions.c config.h ../common.h ../frontend.h ../backend.h \\r
-       ../lists.h defaults.h winboard.h resource.h\r
-        $(CC) $(CFLAGS) woptions.c\r
-\r
-wengineoutput.obj: wengineoutput.c config.h ../common.h ../frontend.h ../backend.h \\r
-       ../lists.h winboard.h resource.h wsnap.h\r
-        $(CC) $(CFLAGS) wengineoutput.c\r
-\r
-engineoutput.obj: ../engineoutput.c ../engineoutput.h config.h ../common.h \\r
-       ../frontend.h ../backend.h ../lists.h\r
-        $(CC) $(CFLAGS) ../engineoutput.c\r
-\r
-whistory.obj: whistory.c config.h ../common.h ../frontend.h ../backend.h \\r
-       ../lists.h winboard.h resource.h wsnap.h\r
-        $(CC) $(CFLAGS) whistory.c\r
-\r
-history.obj: ../history.c config.h ../common.h ../frontend.h ../backend.h \\r
-       ../lists.h\r
-        $(CC) $(CFLAGS) ../history.c\r
-\r
-wevalgraph.obj: wevalgraph.c config.h ../common.h ../frontend.h ../backend.h \\r
-       ../lists.h winboard.h resource.h wsnap.h\r
-        $(CC) $(CFLAGS) wevalgraph.c\r
-\r
-evalgraph.obj: ../evalgraph.c ../evalgraph.h config.h ../common.h ../frontend.h \\r
-       ../backend.h ../lists.h\r
-        $(CC) $(CFLAGS) ../evalgraph.c\r
-\r
-wlayout.obj: wlayout.c config.h ../common.h ../frontend.h winboard.h resource.h\r
-        $(CC) $(CFLAGS) wlayout.c\r
-\r
-wsockerr.obj: wsockerr.c wsockerr.h\r
-        $(CC) $(CFLAGS) wsockerr.c\r
-\r
-help.obj: help.c help.h\r
-        $(CC) $(CFLAGS) help.c\r
-\r
-wsnap.obj: wsnap.c wsnap.h\r
-        $(CC) $(CFLAGS) wsnap.c\r
-\r
-pgntags.obj: ../pgntags.c config.h ../common.h ../frontend.h ../backend.h \\r
-        ../parser.h ../lists.h\r
-        $(CC) $(CFLAGS) ../pgntags.c\r
-\r
-zippy.obj: ../zippy.c config.h ../common.h ../zippy.h ../frontend.h \\r
-       ../backend.h ../backendz.h ../lists.h\r
-        $(CC) $(CFLAGS) ../zippy.c\r
-\r
-uci.obj: ../uci.c ../common.h ../backend.h ../frontend.h ../lists.h\r
-        $(CC) $(CFLAGS) ../uci.c\r
-\r
-\r
-wsettings.obj: wsettings.c ../common.h ../backend.h ../frontend.h ../lists.h\r
-        $(CC) $(CFLAGS) wsettings.c\r
-\r
-wchat.obj: wchat.c winboard.h wsnap.h ../common.h ../backend.h ../frontend.h ../lists.h\r
-        $(CC) $(CFLAGS) wchat.c\r
-\r
-\r
-$(PROJ).exe: $(OBJS) $(PROJ).res $(PROJ).hlp\r
-    $(LINK) $(LFLAGS) $(OBJS) wsock32.lib comctl32.lib winmm.lib shell32.lib\\r
- oldnames.lib kernel32.lib advapi32.lib user32.lib gdi32.lib comdlg32.lib\\r
- $(PROJ).res -out:$(PROJ).exe\r
-\r
-\r
-.c.obj:\r
-        $(CC) $(CFLAGS) $< \r
diff --git a/winboard/metascript.txt b/winboard/metascript.txt
deleted file mode 100644 (file)
index ac746d1..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-1,$g/""/d\r
-1,$g/^[^"]*$/d\r
-1,$g/\\/s//&&/g\r
-1,$g/\//s//\\&/g\r
-1,$g/&[^"]*"$/s//\\&/\r
-1,$s/===/\/s\/\//\r
-1,$s/$/\/gp/\r
-1,$s/^/1,$g\//\r
-$a\r
-w tmp.rc\r
-q\r
-.\r
-w script.txt\r
-q\r
diff --git a/winboard/res/winboard.exe.manifest b/winboard/res/winboard.exe.manifest
deleted file mode 100644 (file)
index 349abd5..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\r
-<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">\r
-<assemblyIdentity\r
-    version="1.0.0.0"\r
-    processorArchitecture="X86"\r
-    name="Winboard.Application"\r
-    type="win32"\r
-/>\r
-<description>Winboard 32-bit application.</description>\r
-<dependency>\r
-    <dependentAssembly>\r
-        <assemblyIdentity\r
-            type="win32"\r
-            name="Microsoft.Windows.Common-Controls"\r
-            version="6.0.0.0"\r
-            processorArchitecture="X86"\r
-            publicKeyToken="6595b64144ccf1df"\r
-            language="*"\r
-        />\r
-    </dependentAssembly>\r
-</dependency>\r
-</assembly>\r
diff --git a/winboard/resource.h b/winboard/resource.h
deleted file mode 100644 (file)
index b442dc6..0000000
+++ /dev/null
@@ -1,657 +0,0 @@
-//{{NO_DEPENDENCIES}}\r
-// Microsoft Developer Studio generated include file.\r
-// Used by winboard.rc\r
-//\r
-#define MANIFEST_RESOURCE_ID              1\r
-#define IDM_NewGame                     100\r
-#define IDM_LoadGame                    101\r
-#define IDM_SaveGame                    102\r
-#define IDM_Exit                        103\r
-#define IDM_LoadPosition                104\r
-#define IDM_SavePosition                105\r
-#define IDM_EditPosition                106\r
-#define IDM_FlipView                    107\r
-#define IDM_MachineWhite                108\r
-#define IDM_MachineBlack                109\r
-#define IDM_TwoMachines                 110\r
-#define IDM_EditGame                    111\r
-#define IDM_Forward                     112\r
-#define IDM_Backward                    113\r
-#define IDM_ToEnd                       114\r
-#define IDM_ToStart                     115\r
-#define IDM_Pause                       116\r
-#define IDM_CallFlag                    117\r
-#define IDM_Draw                        118\r
-#define IDM_SaveDiagram                 119\r
-#define IDM_Abort                       120\r
-#define IDM_Adjourn                     122\r
-#define IDM_Resign                      124\r
-#define IDM_Hint                        125\r
-#define IDM_IcsClient                   126\r
-#define IDM_TimeControl                 131\r
-#define IDM_LoadOptions                 132\r
-#define IDM_SaveOptions                 133\r
-#define IDM_EditGame2                   134\r
-#define IDM_EditPosition2               135\r
-#define IDM_CommPort                    147\r
-#define IDM_EditComment                 148\r
-#define IDM_LoadNextGame                149\r
-#define IDM_LoadPrevGame                150\r
-#define IDM_ReloadGame                  151\r
-#define IDM_Accept                      153\r
-#define IDM_Decline                     154\r
-#define IDM_StopObserving               155\r
-#define IDM_StopExamining               156\r
-#define IDM_Revert                      157\r
-#define IDM_TruncateGame                158\r
-#define IDM_MoveNow                     159\r
-#define IDM_RetractMove                 160\r
-#define IDM_Upload                      161\r
-#define IDM_MailMove                    164\r
-#define IDM_ReloadCMailMsg              165\r
-#define IDM_Book                        166\r
-#define IDM_AboutGame                   167\r
-#define IDM_EditServers                 169\r
-#define IDM_ShowGameList                170\r
-#define IDM_EditTags                    171\r
-#define IDM_Tags                        172\r
-#define IDM_Comment                     173\r
-#define IDM_Debug                       174\r
-#define IDM_EditProgs1                  175\r
-#define IDM_LoadProg1                   176\r
-#define IDM_AnalysisMode                177\r
-#define IDM_AnalyzeFile                 178\r
-#define IDM_Annotate                    179\r
-#define IDM_CopyGame                    180\r
-#define IDM_PasteGame                   181\r
-#define IDM_CopyPosition                182\r
-#define IDM_PastePosition               183\r
-#define IDM_NewVariant                  184  \r
-#define IDM_TypeInName                  185  \r
-#define IDM_MachineBoth                 186  \r
-#define IDM_MuteSounds                  187\r
-#define IDM_Match                       188\r
-#define IDM_CreateBook                  189\r
-#define OPT_TCtext1                     202\r
-#define OPT_TCTime                      203\r
-#define OPT_TCtext2                     204\r
-#define OPT_Autosave                    206\r
-#define OPT_AVPrompt                    208\r
-#define OPT_AVToFile                    209\r
-#define OPT_AVFilename                  210\r
-#define OPT_Autostep                    214\r
-#define OPT_ASTimeDelay                 215\r
-#define OPT_AStext1                     216\r
-#define OPT_TCMoves                     217\r
-#define IDM_HELPCONTENTS                300\r
-#define IDM_HELPSEARCH                  301\r
-#define IDM_HELPHELP                    302\r
-#define IDM_ABOUT                       303\r
-#define IDM_CommandX                    310\r
-#define IDM_CommandXLast                399\r
-#define DLG_TimeControl                 400\r
-#define ABOUTBOX_Version                401\r
-#define OPT_TCUseMoves                  402\r
-#define OPT_TCUseInc                    403\r
-#define OPT_TCitext1                    405\r
-#define OPT_TCitext2                    406\r
-#define OPT_TCInc                       407\r
-#define OPT_TCitext3                    408\r
-#define OPT_TCTime2                     409\r
-#define OPT_TCOdds1                     410\r
-#define OPT_TCOdds2                     411\r
-#define OPT_TCUseFixed                  412\r
-#define OPT_TCFixed                     413\r
-#define OPT_TCftext                     414\r
-#define DLG_PremoveOptions              450\r
-#define DLG_GeneralOptions              453\r
-#define DLG_IcsOptions                  454\r
-#define DLG_BoardOptions                455\r
-#define DLG_Fonts                       456\r
-#define DLG_NewGameFRC                  457\r
-#define DLG_GameListOptions             458\r
-#define DLG_MoveHistory                 459\r
-#define IDM_ThemeOptions                460\r
-#define DLG_EvalGraph                   461\r
-#define DLG_EngineOutput                463\r
-#define DLG_EnginePlayOptions           464\r
-#define IDI_WHITE_14                    466\r
-#define IDI_BLACK_14                    467\r
-#define DLG_OptionsUCI                  467\r
-#define IDI_PONDER_14                   468\r
-#define IDI_TRANS_14                    469\r
-#define IDI_CLOCK_14                    470\r
-#define IDI_UNKNOWN_14                  471\r
-#define IDI_BALOON_14                   472\r
-#define IDI_ANALYZE_14                  473\r
-#define IDI_ANALYZE2_14                 474\r
-#define DLG_Promotion                   500\r
-#define PB_Queen                        502\r
-#define PB_Rook                         503\r
-#define PB_Bishop                       504\r
-#define PB_Knight                       505\r
-#define PB_Chancellor                   506 /* [HGM] Capablanca pieces */\r
-#define PB_Archbishop                   507\r
-#define IDC_Yes                         520\r
-#define IDC_No                          521\r
-#define IDC_Centaur                     522\r
-#define EP_White                        600\r
-#define EP_WhitePawn                    601\r
-#define EP_WhiteKnight                  602\r
-#define EP_WhiteBishop                  603\r
-#define EP_WhiteRook                    604\r
-#define EP_WhiteQueen                   605\r
-#define EP_Black                        606\r
-#define EP_BlackPawn                    607\r
-#define EP_BlackKnight                  608\r
-#define EP_BlackBishop                  609\r
-#define EP_BlackRook                    610\r
-#define EP_BlackQueen                   611\r
-#define EP_EmptySquare                  612\r
-#define EP_ClearBoard                   613\r
-#define EP_WhiteKing                    614\r
-#define EP_BlackKing                    615\r
-#define DP_Pawn                         616\r
-#define DP_Knight                       617\r
-#define DP_Bishop                       618\r
-#define DP_Rook                         619\r
-#define DP_Queen                        620\r
-\r
-#define EP_WhiteCardinal                630\r
-#define EP_WhiteMarshall                631\r
-#define EP_WhiteAlfil                   632\r
-#define EP_WhiteCannon                  633\r
-#define EP_WhiteFerz                    634\r
-#define EP_WhiteWazir                   635\r
-#define EP_BlackCardinal                640\r
-#define EP_BlackMarshall                641\r
-#define EP_BlackAlfil                   642\r
-#define EP_BlackCannon                  643\r
-#define EP_BlackFerz                    644\r
-#define EP_BlackWazir                   645\r
-#define EP_Promote                      650\r
-#define EP_Demote                       651\r
-\r
-#define DLG_LoadOptions                 700\r
-#define DLG_SaveOptions                 800\r
-#define OPT_PGN                         802\r
-#define OPT_Old                         803\r
-#define DLG_CommPort                    900\r
-#define OPT_Port                        901\r
-#define OPT_DataRate                    902\r
-#define OPT_Bits                        903\r
-#define OPT_Parity                      904\r
-#define OPT_StopBits                    905\r
-#define OPT_Flow                        910\r
-#define OPT_SerialHelp                  911\r
-#define DLG_BoardSize                   1000\r
-#define OPT_Small                       1001\r
-#define OPT_SizeSmall                   1001\r
-#define OPT_Medium                      1002\r
-#define OPT_SizeBulky                   1002\r
-#define OPT_Large                       1003\r
-#define DLG_EditComment                 1004\r
-#define OPT_ClearComment                1005\r
-#define OPT_EditComment                 1006\r
-#define OPT_CommentText                 1007\r
-#define DLG_ViewComment                 1008\r
-#define DLG_GameList                    1009\r
-#define OPT_GameListPrev                1010\r
-#define OPT_GameListText                1011\r
-#define OPT_GameListLoad                1012\r
-#define OPT_GameListNarrow              1010\r
-#define OPT_GameListNext                1013\r
-#define OPT_GameListClose               1014\r
-#define DLG_EditTags                    1015\r
-#define OPT_TagsText                    1016\r
-#define DLG_Analysis                    1017\r
-#define OPT_AnalysisText                1018\r
-#define DLG_Error                       1019\r
-#define OPT_ErrorIcon                   1020\r
-#define IDD_DIALOG1                     1021\r
-#define DLG_ConsoleRich                 1022\r
-#define IDC_EDIT1                       1023\r
-#define OPT_DarkSquareColor             1023\r
-#define IDC_GameListFilter              1023\r
-#define IDC_NFG_Edit                    1023\r
-#define IDC_EpDrawMoveCount             1023\r
-#define IDC_PolyglotDir                 1023\r
-#define OPT_TagsSave                    1023\r
-#define OPT_ConsoleText                 1024\r
-#define OPT_LightSquareColor            1024\r
-#define OPT_CommandInput                1025\r
-#define OPT_WhitePieceColor             1025\r
-#define OPT_QuestionInput               1026\r
-#define OPT_BlackPieceColor             1026\r
-#define OPT_ChessEngineName             1027\r
-#define OPT_HighlightSquareColor        1027\r
-#define OPT_WavFileName                 1028\r
-#define OPT_PremoveHighlightColor       1028\r
-#define OPT_IndexNumber                 1029\r
-#define OPT_SampleLightSquare           1029\r
-#define OPT_Move                        1030\r
-#define OPT_SampleDarkSquare            1030\r
-#define OPT_PremoveWhiteText            1031\r
-#define IDC_EDIT2                       1032\r
-#define IDC_EpAdjudicationThreshold     1032\r
-#define IDC_HashSize                    1032\r
-#define OPT_ConsoleInput                1033\r
-#define OPT_AdditionalOptions           1034\r
-#define OPT_PremoveBlackText            1035\r
-#define OPT_ErrorText                   1036\r
-#define OPT_IcsAlarmTime                1037\r
-#define OPT_Name                        1038\r
-#define DLG_Console                     1100\r
-#define DLG_PromotionKing               1102\r
-#define DLG_Colorize                    1106\r
-#define DLG_Command                     1122\r
-#define DLG_Question                    1123\r
-#define DLG_Startup                     1124\r
-#define DLG_Sound                       1127\r
-#define DLG_IndexNumber                 1149\r
-#define DLG_TypeInMove                  1151\r
-#define DLG_TypeInName                  1152\r
-#define OPT_IndexNumberOld              1155\r
-#define IDM_Rematch                     1203\r
-#define IDA_PAGEUP                      1216\r
-#define IDA_PAGEDOWN                    1217\r
-#define IDA_CTRLHOME                    1218\r
-#define IDA_CTRLEND                     1219\r
-#define IDA_TAB                         1221\r
-#define IDM_SaveSettings                1223\r
-#define IDM_Iconize                     1224\r
-#define IDM_DirectCommand1              1226\r
-#define IDM_DirectCommand2              1227\r
-#define IDM_Copy                        1229\r
-#define IDM_Paste                       1230\r
-#define IDM_MatchX                      1231\r
-#define IDM_ObserveX                    1232\r
-#define IDM_FingerX                     1233\r
-#define IDM_TellX                       1234\r
-#define IDM_QuickPaste                  1235\r
-#define IDM_MessageX                    1237\r
-#define IDM_VarsX                       1238\r
-#define IDM_Cut                         1240\r
-#define IDM_Undo                        1242\r
-#define IDM_SelectAll                   1243\r
-#define IDM_SaveSettingsOnExit          1280\r
-#define IDM_LoadNextPosition            1286\r
-#define IDM_ReloadPosition              1287\r
-#define IDM_LoadPrevPosition            1288\r
-#define IDM_TypeInMove                  1291\r
-#define IDM_PopupExitMessage            1292\r
-#define IDM_Training                    1293\r
-#define IDM_GeneralOptions              1299\r
-#define IDM_BoardOptions                1300\r
-#define IDM_Fonts                       1301\r
-#define IDM_UserAdjudication_White      1302\r
-#define IDM_UserAdjudication_Black      1303\r
-#define IDM_UserAdjudication_Draw       1304\r
-#define IDM_NewGameFRC                  1305\r
-#define IDM_GameListOptions             1306\r
-#define PB_King                         1307\r
-#define IDM_ShowMoveHistory             1307\r
-#define IDM_PasteAny                    1309\r
-#define IDM_ShowEvalGraph               1310\r
-#define IDM_CopyGameListToClipboard     1311\r
-#define OPT_Bold                        1312\r
-#define IDM_ShowEngineOutput            1312\r
-#define OPT_Italic                      1313\r
-#define IDM_EnginePlayOptions           1313\r
-#define OPT_Underline                   1314\r
-#define IDM_OptionsUCI                  1314\r
-#define OPT_Strikeout                   1315\r
-#define OPT_ChooseColor                 1316\r
-#define OPT_Sample                      1318\r
-#define OPT_SampleSShout                1319\r
-#define OPT_CancelComment               1320\r
-#define OPT_SampleChannel1              1320\r
-#define OPT_SampleChannel               1321\r
-#define OPT_SampleKibitz                1322\r
-#define OPT_SampleTell                  1324\r
-#define OPT_EditTags                    1325\r
-#define OPT_SampleChallenge             1325\r
-#define OPT_TagsCancel                  1326\r
-#define OPT_SampleRequest               1326\r
-#define OPT_CommandText                 1327\r
-#define OPT_QuestionText                1327\r
-#define OPT_SampleSeek                  1327\r
-#define OPT_ChessEngine                 1328\r
-#define OPT_SampleNormal                1328\r
-#define OPT_ChessServer                 1329\r
-#define OPT_View                        1330\r
-#define OPT_ChessServerName             1331\r
-#define OPT_NoSound                     1333\r
-#define OPT_DefaultBeep                 1334\r
-#define OPT_SystemSound                 1335\r
-#define OPT_BuiltInSound                1336\r
-#define OPT_WavFile                     1337\r
-#define OPT_BuiltInSoundName            1339\r
-#define OPT_SystemSoundName             1340\r
-#define OPT_BrowseSound                 1341\r
-#define OPT_PlaySound                   1342\r
-#define OPT_AVBrowse                    1343\r
-#define OPT_SecondChessEngineName       1344\r
-#define OPT_AnyAdditional               1345\r
-#define OPT_Premove                     1346\r
-#define OPT_PremoveWhite                1347\r
-#define OPT_PremoveBlack                1348\r
-#define OPT_IcsAlarm                    1349\r
-#define CBO_Sounds                      1350\r
-#define OPT_DefaultSounds               1351\r
-#define OPT_AlwaysOnTop                 1352\r
-#define OPT_AutoCreate                  1352\r
-#define OPT_AutoFlag                    1353\r
-#define OPT_AlwaysQueen                 1354\r
-#define OPT_AutoComment                 1458\r
-#define OPT_AnimateDragging             1355\r
-#define OPT_AutoObserve                 1355\r
-#define OPT_AnimateMoving               1356\r
-#define OPT_GetMoveList                 1356\r
-#define OPT_AutoFlipView                1357\r
-#define OPT_LocalLineEditing            1357\r
-#define OPT_HighlightDragging           1358\r
-#define OPT_QuietPlay                   1358\r
-#define OPT_HighlightLastMove           1359\r
-#define OPT_PeriodicUpdates             1360\r
-#define OPT_ChooseLightSquareColor      1360\r
-#define OPT_PonderNextMove              1361\r
-#define OPT_ChooseDarkSquareColor       1361\r
-#define OPT_PopupExitMessage            1362\r
-#define OPT_ChooseWhitePieceColor       1362\r
-#define OPT_PopupMoveErrors             1363\r
-#define OPT_ChooseBlackPieceColor       1363\r
-#define OPT_ShowCoordinates             1364\r
-#define OPT_ChooseHighlightSquareColor  1364\r
-#define OPT_ShowThinking                1365\r
-#define OPT_ChoosePremoveHighlightColor 1365\r
-#define OPT_TestLegality                1366\r
-#define OPT_Blindfold                   1367\r
-#define OPT_SizeTiny                    1368\r
-#define OPT_SizeTeeny                   1369\r
-#define OPT_SizeDinky                   1370\r
-#define OPT_SizePetite                  1371\r
-#define OPT_SizeSlim                    1372\r
-#define OPT_SizeMediocre                1374\r
-#define OPT_SizeMiddling                1375\r
-#define OPT_SizeAverage                 1376\r
-#define OPT_SizeModerate                1377\r
-#define OPT_SizeMedium                  1378\r
-#define OPT_SizeLarge                   1379\r
-#define OPT_SizeBig                     1380\r
-#define OPT_SizeHuge                    1381\r
-#define OPT_SizeGiant                   1382\r
-#define OPT_SizeColossal                1383\r
-#define OPT_SizeTitanic                 1384\r
-#define OPT_Monochrome                  1385\r
-#define OPT_DefaultBoardColors          1386\r
-#define OPT_ChooseShoutColor            1387\r
-#define OPT_ChooseSShoutColor           1388\r
-#define OPT_ChooseChannel1Color         1389\r
-#define OPT_ChooseChannelColor          1390\r
-#define OPT_ChooseKibitzColor           1391\r
-#define OPT_ChooseBackgroundColor       1392\r
-#define OPT_ChooseTellColor             1393\r
-#define OPT_ChooseChallengeColor        1394\r
-#define OPT_ChooseRequestColor          1395\r
-#define OPT_ChooseSeekColor             1396\r
-#define OPT_ChooseNormalColor           1397\r
-#define OPT_DefaultColors               1398\r
-#define IDM_Minimize                    1400\r
-#define OPT_SampleShout                 1400\r
-#define IDM_Sounds                      1401\r
-#define OPT_SampleClockFont             1401\r
-#define IDM_IcsOptions                  1402\r
-#define OPT_SampleCoordFont             1402\r
-#define OPT_DontColorize                1403\r
-#define OPT_SampleMessageFont           1403\r
-#define OPT_SampleTagFont               1404\r
-#define OPT_SampleCommentsFont          1405\r
-#define OPT_SampleConsoleFont           1406\r
-#define OPT_MessageFont                 1407\r
-#define OPT_ClockFont                   1408\r
-#define OPT_CoordFont                   1409\r
-#define OPT_EditTagsFont                1410\r
-#define OPT_CommentsFont                1411\r
-#define OPT_MessageFont5                1412\r
-#define OPT_ChooseClockFont             1413\r
-#define OPT_ChooseMessageFont           1414\r
-#define OPT_ChooseCoordFont             1415\r
-#define OPT_ChooseTagFont               1416\r
-#define OPT_ChooseCommentsFont          1417\r
-#define OPT_ChooseConsoleFont           1418\r
-#define OPT_DefaultFonts                1419\r
-#define OPT_ChooseMoveHistoryFont       1420\r
-#define OPT_AutoRaiseBoard              1421\r
-#define OPT_SampleMoveHistoryFont       1421\r
-#define OPT_ShowButtonBar               1422\r
-#define OPT_MessageFont6                1422\r
-#define OPT_SaveExtPGN                  1423\r
-#define OPT_HideThinkFromHuman          1424\r
-#define IDC_GameListDoFilter            1425\r
-#define IDC_NFG_Random                  1426\r
-#define IDC_NFG_Label                   1427\r
-#define IDC_GameListTags                1428\r
-#define IDC_GLT                         1429\r
-#define IDC_GLT_Up                      1430\r
-#define IDC_GLT_Down                    1431\r
-#define IDC_GLT_Restore                 1432\r
-#define IDC_GLT_Default                 1433\r
-#define IDC_GLT_RestoreTo               1434\r
-#define IDC_MoveHistory                 1435\r
-#define OPT_OutOfBookInfo               1436\r
-#define OPT_ExtraInfoInMoveHistory      1437\r
-#define OPT_HighlightMoveArrow          1438\r
-#define OPT_AutoLogo                   1439\r
-#define OPT_AutoTags                    1440\r
-#define OPT_Headers                     1441\r
-#define OPT_Variations                  1442\r
-#define OPT_AutoExtend                  1443\r
-#define IDC_BUTTON1                     1440\r
-#define IDC_BrowseForPolyglotDir        1440\r
-#define IDC_BrowseForEGTB               1441\r
-#define IDC_BrowseForBook               1442\r
-#define IDC_EngineMemo1                 1443\r
-#define IDC_EngineMemo2                 1444\r
-#define IDC_EngineLabel1                1445\r
-#define IDC_EngineLabel2                1446\r
-#define IDC_EpShowThinking              1447\r
-#define IDC_EpHideThinkingHuman         1448\r
-#define IDC_EpPonder                    1449\r
-#define IDC_EpPeriodicUpdates           1450\r
-#define IDC_Engine1_NPS                 1451\r
-#define IDC_Engine2_NPS                 1452\r
-#define IDC_Color1                      1459\r
-#define IDC_Color2                      1460\r
-#define IDC_StateIcon1                  1461\r
-#define IDC_StateData1                  1462\r
-#define IDC_StateData2                  1463\r
-#define IDC_StateIcon2                  1464\r
-#define IDC_PathToEGTB                  1466\r
-#define IDC_SizeOfEGTB                  1467\r
-#define IDC_BookFile                    1469\r
-#define IDC_UseBook                     1470\r
-#define IDC_OwnBook1                    1471\r
-#define IDC_OwnBook2                    1472\r
-#define IDC_Cores                       1473\r
-#define IDC_BookDep                     1474\r
-#define IDC_BookStr                     1475\r
-#define IDC_Games                       1476\r
-#define DLG_NewVariant                  1500\r
-#define OPT_VariantGothic               1501\r
-#define OPT_VariantCrazyhouse           1502\r
-#define OPT_VariantBughouse             1503\r
-#define OPT_VariantCourier              1504\r
-#define OPT_VariantShatranj             1505\r
-#define OPT_VariantShogi                1506\r
-#define OPT_VariantXiangqi              1507\r
-#define OPT_VariantCapablanca           1508\r
-#define OPT_VariantTwoKings             1509\r
-#define OPT_VariantKnightmate           1510\r
-#define OPT_VariantLosers               1511\r
-#define OPT_VariantSuicide              1512\r
-#define OPT_VariantAtomic               1513\r
-#define OPT_VariantNormal               1514\r
-#define OPT_VariantFairy                1515\r
-#define OPT_VariantFRC                  1516\r
-#define OPT_VariantCylinder             1517\r
-#define OPT_VariantFalcon               1518\r
-#define OPT_VariantCRC                  1519\r
-#define OPT_VariantBerolina             1520\r
-#define OPT_VariantSuper                1521\r
-#define OPT_VariantJanus                1522\r
-#define OPT_VariantWildcastle           1523\r
-#define OPT_VariantNocastle             1524\r
-#define OPT_VariantGiveaway             1525\r
-#define OPT_Variant3Check               1526\r
-#define OPT_VariantGreat                1527\r
-#define OPT_VariantTwilight             1528\r
-#define OPT_VariantMakruk               1529\r
-#define OPT_VariantSChess               1530\r
-#define OPT_VariantSpartan              1531\r
-#define OPT_VariantASEAN                1532\r
-#define OPT_VariantGrand                1534\r
-#define OPT_VariantLion                 1535\r
-#define OPT_EngineVariant               1560\r
-#define IDC_Files                       1550\r
-#define IDC_Ranks                       1551\r
-#define IDC_Holdings                    1552\r
-#define IDC_TestClaims                  1600\r
-#define IDC_DetectMates                 1601\r
-#define IDC_MaterialDraws               1602\r
-#define IDC_TrivialDraws                1603\r
-#define IDC_RuleMoves                   1604\r
-#define IDC_DrawRepeats                 1605\r
-#define IDC_ScoreAbs1                   1606\r
-#define IDC_ScoreAbs2                   1607\r
-#define IDM_FlipClock                   1700\r
-#define OPT_AllWhite                    1701\r
-#define OPT_UpsideDown                  1702\r
-#define DLG_Chat                       1720\r
-#define IDC_Change                     1721\r
-#define IDC_ChatPartner                        1722\r
-#define IDC_ChatMemo                   1723\r
-#define OPT_ChatInput                  1724\r
-#define IDC_Clear                      1725\r
-#define IDC_Send                       1726\r
-#define IDM_NewChat                    1727\r
-#define IDC_Focus1                     1730\r
-#define IDC_Focus2                     1731\r
-#define IDC_Focus3                     1732\r
-#define IDC_Focus4                     1733\r
-#define OPT_SeekGraph                  1750\r
-#define OPT_AutoRefresh                        1751\r
-#define OPT_BgObserve                  1752\r
-#define OPT_DualBoard                  1753\r
-#define OPT_SmartMove                  1754\r
-#define OPT_StartupChatBoxes           1755\r
-#define OPT_AutoKibitz                 1756\r
-#define IDC_SPECIFY_ENG_STATIC          1814\r
-#define IDC_SPECIFY_SERVER_STATIC       1815\r
-#define OPT_MESS                        1818\r
-#define IDM_Engine1Options             1890\r
-#define IDM_Engine2Options             1891\r
-#define IDM_EditBook                   1892\r
-#define IDM_Tourney                    1894\r
-#define IDC_STATIC                      -1\r
-// static strings that were made dynamic to allow run-time translation\r
-#define IDC_Babble                     1900\r
-#define GPB_Factors                    1901\r
-#define IDC_Factor1                    1902\r
-#define IDC_Factor2                    1903\r
-#define IDC_Directories                        1904\r
-#define IDC_IndexNr                    1905\r
-#define IDC_Port                       1906\r
-#define IDC_Rate                       1907\r
-#define IDC_Bits                       1908\r
-#define IDC_Parity                     1909\r
-#define IDC_Stop                       1910\r
-#define IDC_Flow                       1911\r
-#define IDC_ChessBoard                 1912\r
-#define IDC_Welcome                    1913\r
-#define IDC_Index                      1914\r
-#define IDC_Event                      1915\r
-#define IDC_Sec                                1916\r
-#define IDC_Boxes                      1917\r
-#define GPB_Premove                    1918\r
-#define GPB_General                    1919\r
-#define GPB_Colors                     1920\r
-#define GPB_Alarm                      1921\r
-#define IDC_Light                      1922\r
-#define IDC_Dark                       1923\r
-#define IDC_White                      1924\r
-#define IDC_Black                      1925\r
-#define IDC_High                       1926\r
-#define IDC_PreHigh                    1927\r
-#define GPB_Size                       1928\r
-#define IDC_Height                     1929\r
-#define IDC_Width                      1930\r
-#define IDC_Hand                       1931\r
-#define IDC_Pieces                     1932\r
-#define IDC_Def                                1933\r
-#define GPB_Board                      1934\r
-#define GPB_Current                    1935\r
-#define GPB_All                                1936\r
-#define IDC_Partner                    1937\r
-#define IDC_Draw                       1938\r
-#define IDC_Threshold                  1939\r
-#define IDC_Moves                      1940\r
-#define IDC_Centi                      1941\r
-#define IDC_Rule                       1942\r
-#define IDC_Repeats                    1943\r
-#define GPB_Adjudications              1944    \r
-#define GPB_Apply                      1945\r
-#define IDC_PolyDir                    1946\r
-#define IDC_Hash                       1947\r
-#define IDC_Path                       1948\r
-#define IDC_Cache                      1949\r
-#define IDC_CPU                                1950\r
-#define IDC_Depth                      1951\r
-#define IDC_Variation                  1952\r
-#define IDC_DefGames                   1953\r
-#define GPB_Variant                    1954\r
-#define OPT_MessageFont7                1955\r
-#define OPT_SampleGameListFont          1956\r
-#define OPT_ChooseGameListFont          1957\r
-#define OPT_elo1                        1958\r
-#define OPT_elo2                        1959\r
-#define OPT_date                        1960\r
-#define OPT_elo1t                       1961\r
-#define OPT_elo2t                       1962\r
-#define OPT_datet                       1963\r
-#define OPT_thresholds                  1964\r
-#define OPT_Exact                       1965\r
-#define OPT_Subset                      1966\r
-#define OPT_Struct                      1967\r
-#define OPT_Material                    1968\r
-#define OPT_Range                       1969\r
-#define OPT_Difference                  1970\r
-#define OPT_Stretch                     1971\r
-#define OPT_Stretcht                    1972\r
-#define OPT_Reversed                    1973\r
-#define OPT_SearchMode                  1974\r
-#define OPT_Mirror                      1975\r
-#define OPT_Bitmaps                     1976\r
-#define OPT_PieceFont                   1977\r
-#define OPT_MessageFont8                1978\r
-#define OPT_SamplePieceFont             1979\r
-#define OPT_ChoosePieceFont             1980\r
-#define OPT_GameListFind                1981\r
-#define OPT_Grid                        1983\r
-#define IDM_LoadProg2                   1984\r
-#define OPT_Counts                      1985\r
-#define OPT_Ranget                      1986\r
-#define IDM_SaveSelected                1987\r
-\r
-\r
-// Next default values for new objects\r
-// \r
-#ifdef APSTUDIO_INVOKED\r
-#ifndef APSTUDIO_READONLY_SYMBOLS\r
-#define _APS_NO_MFC                     1\r
-#define _APS_NEXT_RESOURCE_VALUE        468\r
-#define _APS_NEXT_COMMAND_VALUE         1315\r
-#define _APS_NEXT_CONTROL_VALUE         1471\r
-#define _APS_NEXT_SYMED_VALUE           1404\r
-#endif\r
-#endif\r
diff --git a/winboard/shogibitmaps/README b/winboard/shogibitmaps/README
deleted file mode 100644 (file)
index 94e05c4..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-These bitmaps are distributed under the GNU GENERAL PUBLIC LICENSE
-coming with xboard.
diff --git a/winboard/shogibitmaps/bamazon.bmp b/winboard/shogibitmaps/bamazon.bmp
deleted file mode 100644 (file)
index e9ed472..0000000
Binary files a/winboard/shogibitmaps/bamazon.bmp and /dev/null differ
diff --git a/winboard/shogibitmaps/king.bmp b/winboard/shogibitmaps/king.bmp
deleted file mode 100644 (file)
index c80a2b3..0000000
Binary files a/winboard/shogibitmaps/king.bmp and /dev/null differ
diff --git a/winboard/shogibitmaps/largeking.bmp b/winboard/shogibitmaps/largeking.bmp
deleted file mode 100644 (file)
index 20c4c0c..0000000
Binary files a/winboard/shogibitmaps/largeking.bmp and /dev/null differ
diff --git a/winboard/shogibitmaps/sa58o.bmp b/winboard/shogibitmaps/sa58o.bmp
deleted file mode 100644 (file)
index fcae346..0000000
Binary files a/winboard/shogibitmaps/sa58o.bmp and /dev/null differ
diff --git a/winboard/shogibitmaps/sb58o.bmp b/winboard/shogibitmaps/sb58o.bmp
deleted file mode 100644 (file)
index 75b2be2..0000000
Binary files a/winboard/shogibitmaps/sb58o.bmp and /dev/null differ
diff --git a/winboard/shogibitmaps/sc58o.bmp b/winboard/shogibitmaps/sc58o.bmp
deleted file mode 100644 (file)
index 84bef21..0000000
Binary files a/winboard/shogibitmaps/sc58o.bmp and /dev/null differ
diff --git a/winboard/shogibitmaps/sf58o.bmp b/winboard/shogibitmaps/sf58o.bmp
deleted file mode 100644 (file)
index 5c1d43a..0000000
Binary files a/winboard/shogibitmaps/sf58o.bmp and /dev/null differ
diff --git a/winboard/shogibitmaps/sg58o.bmp b/winboard/shogibitmaps/sg58o.bmp
deleted file mode 100644 (file)
index 580814c..0000000
Binary files a/winboard/shogibitmaps/sg58o.bmp and /dev/null differ
diff --git a/winboard/shogibitmaps/sh58o.bmp b/winboard/shogibitmaps/sh58o.bmp
deleted file mode 100644 (file)
index 8b906eb..0000000
Binary files a/winboard/shogibitmaps/sh58o.bmp and /dev/null differ
diff --git a/winboard/shogibitmaps/sk58o.bmp b/winboard/shogibitmaps/sk58o.bmp
deleted file mode 100644 (file)
index 8b57f9e..0000000
Binary files a/winboard/shogibitmaps/sk58o.bmp and /dev/null differ
diff --git a/winboard/shogibitmaps/sk58w.bmp b/winboard/shogibitmaps/sk58w.bmp
deleted file mode 100644 (file)
index a419066..0000000
Binary files a/winboard/shogibitmaps/sk58w.bmp and /dev/null differ
diff --git a/winboard/shogibitmaps/sl58o.bmp b/winboard/shogibitmaps/sl58o.bmp
deleted file mode 100644 (file)
index 799b21a..0000000
Binary files a/winboard/shogibitmaps/sl58o.bmp and /dev/null differ
diff --git a/winboard/shogibitmaps/sl58w.bmp b/winboard/shogibitmaps/sl58w.bmp
deleted file mode 100644 (file)
index dc1ce99..0000000
Binary files a/winboard/shogibitmaps/sl58w.bmp and /dev/null differ
diff --git a/winboard/shogibitmaps/sn58o.bmp b/winboard/shogibitmaps/sn58o.bmp
deleted file mode 100644 (file)
index 387e28f..0000000
Binary files a/winboard/shogibitmaps/sn58o.bmp and /dev/null differ
diff --git a/winboard/shogibitmaps/sn58w.bmp b/winboard/shogibitmaps/sn58w.bmp
deleted file mode 100644 (file)
index b1c6af2..0000000
Binary files a/winboard/shogibitmaps/sn58w.bmp and /dev/null differ
diff --git a/winboard/shogibitmaps/sp58o.bmp b/winboard/shogibitmaps/sp58o.bmp
deleted file mode 100644 (file)
index 62be42b..0000000
Binary files a/winboard/shogibitmaps/sp58o.bmp and /dev/null differ
diff --git a/winboard/shogibitmaps/sp58w.bmp b/winboard/shogibitmaps/sp58w.bmp
deleted file mode 100644 (file)
index 2e623c8..0000000
Binary files a/winboard/shogibitmaps/sp58w.bmp and /dev/null differ
diff --git a/winboard/shogibitmaps/sr58o.bmp b/winboard/shogibitmaps/sr58o.bmp
deleted file mode 100644 (file)
index 6f6d142..0000000
Binary files a/winboard/shogibitmaps/sr58o.bmp and /dev/null differ
diff --git a/winboard/shogibitmaps/sr58w.bmp b/winboard/shogibitmaps/sr58w.bmp
deleted file mode 100644 (file)
index 87469d3..0000000
Binary files a/winboard/shogibitmaps/sr58w.bmp and /dev/null differ
diff --git a/winboard/shogibitmaps/ss58o.bmp b/winboard/shogibitmaps/ss58o.bmp
deleted file mode 100644 (file)
index e1aa7ad..0000000
Binary files a/winboard/shogibitmaps/ss58o.bmp and /dev/null differ
diff --git a/winboard/shogibitmaps/su58o.bmp b/winboard/shogibitmaps/su58o.bmp
deleted file mode 100644 (file)
index 9bdce85..0000000
Binary files a/winboard/shogibitmaps/su58o.bmp and /dev/null differ
diff --git a/winboard/shogibitmaps/sw58o.bmp b/winboard/shogibitmaps/sw58o.bmp
deleted file mode 100644 (file)
index cb6029f..0000000
Binary files a/winboard/shogibitmaps/sw58o.bmp and /dev/null differ
diff --git a/winboard/shogibitmaps/sw58w.bmp b/winboard/shogibitmaps/sw58w.bmp
deleted file mode 100644 (file)
index e90dde3..0000000
Binary files a/winboard/shogibitmaps/sw58w.bmp and /dev/null differ
diff --git a/winboard/wchat.c b/winboard/wchat.c
deleted file mode 100644 (file)
index 3be1e7f..0000000
+++ /dev/null
@@ -1,410 +0,0 @@
-/*\r
- * Chat window (PV)\r
- *\r
- * Author: H.G.Muller (August 2009)\r
- *\r
- * Copyright 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free\r
- * Software Foundation, Inc.\r
- *\r
- * ------------------------------------------------------------------------\r
- *\r
- * GNU XBoard is free software: you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation, either version 3 of the License, or (at\r
- * your option) any later version.\r
- *\r
- * GNU XBoard is distributed in the hope that it will be useful, but\r
- * WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
- * General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program. If not, see http://www.gnu.org/licenses/.  *\r
- *\r
- *------------------------------------------------------------------------\r
- ** See the file ChangeLog for a revision history.  */\r
-\r
-#include "config.h"\r
-\r
-#include <windows.h> /* required for all Windows applications */\r
-#include <richedit.h>\r
-#include <stdio.h>\r
-#include <stdlib.h>\r
-#include <malloc.h>\r
-#include <commdlg.h>\r
-#include <dlgs.h>\r
-#include <Windowsx.h>\r
-\r
-#include "common.h"\r
-#include "frontend.h"\r
-#include "winboard.h"\r
-#include "backend.h"\r
-\r
-#include "wsnap.h"\r
-\r
-int chatCount;\r
-static int onTop;\r
-extern char chatPartner[MAX_CHAT][MSG_SIZ];\r
-HANDLE chatHandle[MAX_CHAT];\r
-static WNDPROC chatInputWindowProc;\r
-\r
-void SendToICS P((char *s));\r
-void ChatPopUp P((char *s));\r
-void ChatPopDown();\r
-\r
-/* Imports from backend.c */\r
-extern int opponentKibitzes;\r
-\r
-/* Imports from winboard.c */\r
-VOID SaveInHistory(char *cmd);\r
-char *PrevInHistory(char *cmd);\r
-char *NextInHistory();\r
-extern HWND ChatDialog;\r
-\r
-extern HINSTANCE hInst;\r
-extern HWND hwndConsole;\r
-extern char ics_handle[];\r
-\r
-extern WindowPlacement wpChat[MAX_CHAT];\r
-extern WindowPlacement wpConsole;\r
-\r
-extern BoardSize boardSize;\r
-\r
-/* Module variables */\r
-#define H_MARGIN            5\r
-#define V_MARGIN            5\r
-\r
-// front end, although we might make GetWindowRect front end instead\r
-static int GetControlWidth( HWND hDlg, int id )\r
-{\r
-    RECT rc;\r
-\r
-    GetWindowRect( GetDlgItem( hDlg, id ), &rc );\r
-\r
-    return rc.right - rc.left;\r
-}\r
-\r
-// front end?\r
-static int GetControlHeight( HWND hDlg, int id )\r
-{\r
-    RECT rc;\r
-\r
-    GetWindowRect( GetDlgItem( hDlg, id ), &rc );\r
-\r
-    return rc.bottom - rc.top;\r
-}\r
-\r
-static void SetControlPos( HWND hDlg, int id, int x, int y, int width, int height )\r
-{\r
-    HWND hControl = GetDlgItem( hDlg, id );\r
-\r
-    SetWindowPos( hControl, HWND_TOP, x, y, width, height, SWP_NOZORDER );\r
-}\r
-\r
-// Also here some of the size calculations should go to the back end, and their actual application to a front-end routine\r
-static void ResizeWindowControls( HWND hDlg )\r
-{\r
-    RECT rc;\r
-    int clientWidth;\r
-    int clientHeight;\r
-    int maxControlWidth;\r
-    int buttonWidth, buttonHeight;\r
-\r
-    /* Initialize variables */\r
-    GetClientRect( hDlg, &rc );\r
-\r
-    clientWidth = rc.right - rc.left;\r
-    clientHeight = rc.bottom - rc.top;\r
-\r
-    maxControlWidth = clientWidth - 2*H_MARGIN;\r
-    buttonWidth  = GetControlWidth(hDlg, IDC_Send);\r
-    buttonHeight = GetControlHeight(hDlg, IDC_Send);\r
-\r
-    /* Resize controls */\r
-    SetControlPos( hDlg, IDC_Clear, maxControlWidth+H_MARGIN-2*buttonWidth-5, V_MARGIN, buttonWidth, buttonHeight );\r
-    SetControlPos( hDlg, IDC_Send, maxControlWidth+H_MARGIN-buttonWidth, V_MARGIN, buttonWidth, buttonHeight );\r
-    SetControlPos( hDlg, IDC_ChatMemo, H_MARGIN, 2*V_MARGIN+buttonHeight, maxControlWidth, clientHeight-3*V_MARGIN-2*buttonHeight );\r
-    SetControlPos( hDlg, OPT_ChatInput, H_MARGIN, clientHeight-V_MARGIN-buttonHeight, maxControlWidth, buttonHeight );\r
-\r
-//    InvalidateRect( GetDlgItem(hDlg,IDC_EngineMemo1), NULL, FALSE );\r
-//    InvalidateRect( GetDlgItem(hDlg,IDC_EngineMemo2), NULL, FALSE );\r
-}\r
-\r
-// front end. Actual printing of PV lines into the output field\r
-static void InsertIntoMemo( HANDLE hDlg, char * text )\r
-{\r
-    HANDLE hMemo = GetDlgItem(hDlg, IDC_ChatMemo);\r
-\r
-    SendMessage( hMemo, EM_SETSEL, 1000000, 1000000 );\r
-\r
-    SendMessage( hMemo, EM_REPLACESEL, (WPARAM) FALSE, (LPARAM) text );\r
-    SendMessage( hMemo, EM_SCROLLCARET, 0, 0);\r
-}\r
-\r
-LRESULT CALLBACK\r
-InterceptArrowKeys(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)\r
-{\r
-  char buf[MSG_SIZ];\r
-  char *p;\r
-  CHARRANGE sel;\r
-\r
-  switch (message) {\r
-  case WM_KEYDOWN: // cloned from ConsoleInputSubClass()\r
-    switch (wParam) {\r
-    case VK_UP:\r
-      GetWindowText(hwnd, buf, MSG_SIZ);\r
-      p = PrevInHistory(buf);\r
-      if (p != NULL) {\r
-       SetWindowText(hwnd, p);\r
-       sel.cpMin = 999999;\r
-       sel.cpMax = 999999;\r
-       SendMessage(hwnd, EM_EXSETSEL, 0, (LPARAM)&sel);\r
-        return 0;\r
-      }\r
-      break;\r
-    case VK_DOWN:\r
-      p = NextInHistory();\r
-      if (p != NULL) {\r
-       SetWindowText(hwnd, p);\r
-       sel.cpMin = 999999;\r
-       sel.cpMax = 999999;\r
-       SendMessage(hwnd, EM_EXSETSEL, 0, (LPARAM)&sel);\r
-        return 0;\r
-      }\r
-      break;\r
-    }\r
-  }\r
-  return (*chatInputWindowProc)(hwnd, message, wParam, lParam);\r
-}\r
-\r
-// This seems pure front end\r
-LRESULT CALLBACK ChatProc( HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam )\r
-{\r
-    static SnapData sd;\r
-    char buf[MSG_SIZ], mess[MSG_SIZ];\r
-    int partner = -1, i, x, y;\r
-    static BOOL filterHasFocus[MAX_CHAT];\r
-    WORD wMask;\r
-    HWND hMemo;\r
-\r
-    for(i=0; i<MAX_CHAT; i++) if(hDlg == chatHandle[i]) { partner = i; break; }\r
-\r
-    switch (message) {\r
-    case WM_INITDIALOG:\r
-        Translate(hDlg, DLG_Chat);\r
-       if(partner<0) {\r
-               for(i=0; i<MAX_CHAT; i++) if(chatHandle[i] == NULL) { partner = i; break; }\r
-               chatHandle[partner] = hDlg;\r
-               snprintf(buf, MSG_SIZ, T_("Chat Window %s"), ics_handle[0] ? ics_handle : first.tidy);\r
-               SetWindowText(hDlg, buf);\r
-        }\r
-       for(i=0; i<MAX_CHAT; i++) if(chatHandle[i]) {\r
-           if(i == partner) continue;\r
-           // set our button in other open chats\r
-           SetDlgItemText(chatHandle[i], IDC_Focus1+partner-(i<partner), chatPartner[partner]);\r
-           EnableWindow( GetDlgItem(chatHandle[i], IDC_Focus1+partner-(i<partner)), 1 );\r
-           // and buttons for other chats in ours\r
-           SetDlgItemText(hDlg, IDC_Focus1+i-(i>partner), chatPartner[i]);\r
-       } else EnableWindow( GetDlgItem(hDlg, IDC_Focus1+i-(i>partner)), 0 );\r
-       for(i=0; i<MAX_CHAT-1; i++) { Button_SetStyle(GetDlgItem(hDlg, IDC_Focus1+i), BS_PUSHBUTTON|BS_LEFT, TRUE); }\r
-        x = wpConsole.x; y = wpConsole.y; EnsureOnScreen(&x, &y, 0, 0);\r
-        SetWindowPos(hDlg, NULL, x, y, 0, 0, SWP_NOZORDER|SWP_NOSIZE);\r
-       SendMessage( GetDlgItem(hDlg, IDC_ChatPartner), // [HGM] clickbox: initialize with requested handle\r
-                       WM_SETTEXT, 0, (LPARAM) chatPartner[partner] );\r
-       filterHasFocus[partner] = TRUE;\r
-       onTop = partner; // a newly opened box becomes top one\r
-       if(chatPartner[partner][0]) {\r
-           filterHasFocus[partner] = FALSE;\r
-           SetFocus( GetDlgItem(hDlg, OPT_ChatInput) );\r
-       }\r
-       hMemo = GetDlgItem(hDlg, IDC_ChatMemo);\r
-       wMask = (WORD) SendMessage(hMemo, EM_GETEVENTMASK, 0, 0L);\r
-       SendMessage(hMemo, EM_SETEVENTMASK, 0, wMask | ENM_LINK);\r
-       SendMessage(hMemo, EM_AUTOURLDETECT, TRUE, 0L);\r
-       chatInputWindowProc = (WNDPROC) // cloned from ConsoleWndProc(). Assume they all share same proc.\r
-             SetWindowLongPtr(GetDlgItem(hDlg, OPT_ChatInput), GWLP_WNDPROC, (LONG_PTR) InterceptArrowKeys);\r
-        return FALSE;\r
-\r
-    case WM_NOTIFY:\r
-      if (((NMHDR*)lParam)->code == EN_LINK)\r
-      {\r
-       ENLINK *pLink = (ENLINK*)lParam;\r
-       if (pLink->msg == WM_LBUTTONUP)\r
-       {\r
-         TEXTRANGE tr;\r
-\r
-         tr.chrg = pLink->chrg;\r
-         tr.lpstrText = malloc(1+tr.chrg.cpMax-tr.chrg.cpMin);\r
-         SendMessage( GetDlgItem(hDlg, IDC_ChatMemo), EM_GETTEXTRANGE, 0, (LPARAM)&tr);\r
-         ShellExecute(NULL, "open", tr.lpstrText, NULL, NULL, SW_SHOW);\r
-         free(tr.lpstrText);\r
-       }\r
-      }\r
-    break;\r
-\r
-    case WM_COMMAND:\r
-      /*\r
-        [AS]\r
-        If <Enter> is pressed while editing the filter, it's better to apply\r
-        the filter rather than selecting the current game.\r
-      */\r
-      if( LOWORD(wParam) == IDC_ChatPartner ) {\r
-          switch( HIWORD(wParam) ) {\r
-          case EN_SETFOCUS:\r
-              filterHasFocus[partner] = TRUE;\r
-              break;\r
-          case EN_KILLFOCUS:\r
-              filterHasFocus[partner] = FALSE;\r
-              break;\r
-          }\r
-      }\r
-\r
-      if( filterHasFocus[partner] && (LOWORD(wParam) == IDC_Send) ) {\r
-         SetFocus(GetDlgItem(hDlg, OPT_ChatInput));\r
-          wParam = IDC_Change;\r
-      }\r
-      /* [AS] End command replacement */\r
-\r
-        switch (LOWORD(wParam)) {\r
-\r
-       case IDCANCEL: /* let Esc key switch focus back to console */\r
-           SetFocus(GetDlgItem(hwndConsole, OPT_ConsoleInput));\r
-           break;\r
-\r
-       case IDC_Clear:\r
-           SendMessage( GetDlgItem(hDlg, IDC_ChatMemo), WM_SETTEXT, 0, (LPARAM) "" );\r
-           break;\r
-\r
-       case IDC_Change:\r
-           GetDlgItemText(hDlg, IDC_ChatPartner, chatPartner[partner], MSG_SIZ);\r
-           for(i=0; i<MAX_CHAT; i++) if(chatHandle[i] && i != partner) {\r
-             // set our button in other open chats\r
-             SetDlgItemText(chatHandle[i], IDC_Focus1+partner-(i<partner), chatPartner[partner]);\r
-           }\r
-           break;\r
-\r
-       case IDC_Send:\r
-           GetDlgItemText(hDlg, OPT_ChatInput, mess, MSG_SIZ);\r
-           SetDlgItemText(hDlg, OPT_ChatInput, "");\r
-           // from here on it could be back-end\r
-           SaveInHistory(mess);\r
-           if(!strcmp("whispers", chatPartner[partner]))\r
-             snprintf(buf, MSG_SIZ, "whisper %s\n", mess); // WHISPER box uses "whisper" to send\r
-           else if(!strcmp("shouts", chatPartner[partner]))\r
-             snprintf(buf, MSG_SIZ, "shout %s\n", mess); // SHOUT box uses "shout" to send\r
-           else {\r
-               if(!atoi(chatPartner[partner])) {\r
-                 snprintf(buf, MSG_SIZ, "> %s\r\n", mess); // echo only tells to handle, not channel\r
-               InsertIntoMemo(hDlg, buf);\r
-               snprintf(buf, MSG_SIZ, "xtell %s %s\n", chatPartner[partner], mess);\r
-               } else\r
-                 snprintf(buf, MSG_SIZ, "tell %s %s\n", chatPartner[partner], mess);\r
-           }\r
-           SendToICS(buf);\r
-           break;\r
-\r
-       case IDC_Focus1:\r
-       case IDC_Focus2:\r
-       case IDC_Focus3:\r
-       case IDC_Focus4:\r
-           i = LOWORD(wParam) - IDC_Focus1;\r
-           if(i >= partner) i++;\r
-           onTop = i;\r
-           SetFocus(GetDlgItem(hDlg, IDC_Send));\r
-           if(chatHandle[i]) {\r
-               int j;\r
-               for(j=0; j<MAX_CHAT; j++) if(i != j && chatHandle[j])\r
-                   Button_SetState(GetDlgItem(chatHandle[j], IDC_Focus1+i-(j<i)), FALSE);\r
-               SetFocus(GetDlgItem(chatHandle[i], OPT_ChatInput));\r
-           }\r
-           break;\r
-\r
-        default:\r
-          break;\r
-        }\r
-\r
-        break;\r
-\r
-    case WM_CLOSE:\r
-       chatHandle[partner] = 0;\r
-       chatPartner[partner][0] = 0;\r
-        ChatPopDown();\r
-       for(i=0; i<MAX_CHAT; i++) if(chatHandle[i] && i != partner) {\r
-           // set our button in other open chats\r
-           SetDlgItemText(chatHandle[i], IDC_Focus1+partner-(i<partner), "");\r
-           EnableWindow( GetDlgItem(chatHandle[i], IDC_Focus1+partner-(i<partner)), 0 );\r
-       }\r
-       EndDialog(hDlg, TRUE);\r
-        break;\r
-\r
-    case WM_SIZE:\r
-        ResizeWindowControls( hDlg );\r
-        break;\r
-\r
-    case WM_ENTERSIZEMOVE:\r
-        return OnEnterSizeMove( &sd, hDlg, wParam, lParam );\r
-\r
-    case WM_SIZING:\r
-        return OnSizing( &sd, hDlg, wParam, lParam );\r
-\r
-    case WM_MOVING:\r
-        return OnMoving( &sd, hDlg, wParam, lParam );\r
-\r
-    case WM_EXITSIZEMOVE:\r
-        return OnExitSizeMove( &sd, hDlg, wParam, lParam );\r
-    }\r
-\r
-    return FALSE;\r
-}\r
-\r
-// front end\r
-void ChatPopUp(char *icsHandle)\r
-{\r
-  FARPROC lpProc;\r
-  int i, partner = -1;\r
-  char buf[MSG_SIZ];\r
-  static int first = 1;\r
-\r
-  CheckMenuItem(GetMenu(hwndMain), IDM_NewChat, MF_CHECKED);\r
-  for(i=0; i<MAX_CHAT; i++) if(chatHandle[i] == NULL) { partner = i; break; }\r
-  if(partner == -1) { DisplayError("You first have to close a Chat Box\nbefore you can open a new one", 0); return; }\r
-  if(icsHandle) { // [HGM] clickbox set handle in advance\r
-    safeStrCpy(chatPartner[partner], icsHandle,\r
-              sizeof(chatPartner[partner])/sizeof(chatPartner[partner][0]) );\r
-    if(sscanf(icsHandle, "%d", &i) == 1) { // make sure channel is on\r
-       snprintf(buf, MSG_SIZ, "addlist ch %d\n", i);\r
-       SendToICS(buf);\r
-       if(first) first=0, SendToICS(buf); // work-around for weirdness: On public FICS code first attempt on login is completely ignored\r
-    }\r
-  } else chatPartner[partner][0] = NULLCHAR;\r
-  chatCount++;\r
-\r
-    lpProc = MakeProcInstance( (FARPROC) ChatProc, hInst );\r
-\r
-    /* Note to self: dialog must have the WS_VISIBLE style set, otherwise it's not shown! */\r
-    CreateDialog( hInst, MAKEINTRESOURCE(DLG_Chat), hwndConsole, (DLGPROC)lpProc );\r
-\r
-    FreeProcInstance(lpProc);\r
-\r
-}\r
-\r
-// front end\r
-void ChatPopDown()\r
-{\r
-  if(--chatCount <= 0)\r
-       CheckMenuItem(GetMenu(hwndMain), IDM_NewChat, MF_UNCHECKED);\r
-}\r
-\r
-\r
-//------------------------ pure back-end routines -------------------------------\r
-\r
-void OutputChatMessage(int partner, char *text)\r
-{\r
-       int j, n = strlen(text);\r
-\r
-       if(!chatHandle[partner]) return;\r
-       text[n+1] = 0; text[n] = '\n'; text[n-1] = '\r'; // Needs CR to not lose line breaks on copy-paste\r
-       InsertIntoMemo(chatHandle[partner], text);\r
-       if(partner != onTop) for(j=0; j<MAX_CHAT; j++) if(j != partner && chatHandle[j])\r
-           Button_SetState(GetDlgItem(chatHandle[j], IDC_Focus1+partner-(j<partner)), TRUE);\r
-}\r
diff --git a/winboard/wclipbrd.c b/winboard/wclipbrd.c
deleted file mode 100644 (file)
index 700ccde..0000000
+++ /dev/null
@@ -1,391 +0,0 @@
-/*\r
- * wclipbrd.c -- Clipboard routines for WinBoard\r
- *\r
- * Copyright 2000, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free\r
- * Software Foundation, Inc.\r
- *\r
- * Enhancements Copyright 2005 Alessandro Scotti\r
- *\r
- * ------------------------------------------------------------------------\r
- *\r
- * GNU XBoard is free software: you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation, either version 3 of the License, or (at\r
- * your option) any later version.\r
- *\r
- * GNU XBoard is distributed in the hope that it will be useful, but\r
- * WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
- * General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program. If not, see http://www.gnu.org/licenses/.  *\r
- *\r
- *------------------------------------------------------------------------\r
- ** See the file ChangeLog for a revision history.  */\r
-\r
-#include "config.h"\r
-\r
-#include <windows.h>   /* required for all Windows applications */\r
-#include <stdio.h>\r
-#include <stdlib.h>\r
-#include <malloc.h>\r
-#include <sys/stat.h>\r
-\r
-#include "common.h"\r
-#include "frontend.h"\r
-#include "backend.h"\r
-#include "winboard.h"\r
-#include "wclipbrd.h"\r
-\r
-#define _(s) T_(s)\r
-#define N_(s) s\r
-\r
-/* Imports from winboard.c */\r
-extern HWND hwndMain;\r
-\r
-/* File globals */\r
-static char *copyTemp;\r
-static char *pasteTemp;\r
-\r
-VOID \r
-CopyFENToClipboard()\r
-{\r
-  char *fen = NULL;\r
-\r
-  if(gameMode == EditPosition) EditPositionDone(TRUE); // [HGM] mak sure castling rights are set consistently\r
-  fen = PositionToFEN(currentMove, NULL, 1);\r
-  if (!fen) {\r
-    DisplayError(_("Unable to convert position to FEN."), 0);\r
-    return;\r
-  }\r
-  if (!CopyTextToClipboard(fen))\r
-      DisplayError(_("Unable to copy FEN to clipboard."), 0);\r
-  free(fen);\r
-}\r
-\r
-/* [AS] */\r
-HGLOBAL ExportGameListAsText();\r
-\r
-VOID CopyGameListToClipboard()\r
-{\r
-    HGLOBAL hMem = ExportGameListAsText();\r
-    \r
-    if( hMem != NULL ) {\r
-        /* Assign memory block to clipboard */\r
-        BOOL ok = OpenClipboard( hwndMain );\r
-\r
-        if( ok ) {\r
-            ok = EmptyClipboard();\r
-\r
-            if( ok ) {\r
-                if( hMem != SetClipboardData( CF_TEXT, hMem ) ) {\r
-                    ok = FALSE;\r
-                }\r
-            }\r
-\r
-            CloseClipboard();\r
-\r
-            if( ! ok ) {\r
-                GlobalFree( hMem );\r
-            }\r
-        }\r
-\r
-        if( ! ok ) {\r
-            DisplayError( "Cannot copy list to clipboard.", 0 );\r
-        }\r
-    }\r
-}\r
-\r
-VOID\r
-CopyGameToClipboard()\r
-{\r
-  /* A rather cheesy hack here. Write the game to a file, then read from the\r
-   * file into the clipboard.\r
-   */\r
-  char *buf = NULL;\r
-  FILE *f;\r
-  unsigned long size;\r
-  size_t len;\r
-  struct stat st;\r
-\r
-  if (!copyTemp) {\r
-    copyTemp = tempnam(NULL, "wbcp");\r
-  }\r
-  if (!copyTemp) {\r
-      DisplayError(_("Cannot create temporary file name."),0);\r
-      return;\r
-  }\r
-  f = fopen(copyTemp, "w");\r
-  if (!f) {\r
-    DisplayError(_("Cannot open temporary file."), 0);\r
-    return;\r
-  }\r
-  if (!SaveGame(f,0,"")) {                     /* call into backend */\r
-    DisplayError(_("Cannot write to temporary file."), 0);\r
-    goto copy_game_to_clipboard_cleanup;\r
-  }\r
-  f = fopen(copyTemp, "rb");\r
-  if (!f) {\r
-    DisplayError(_("Cannot reopen temporary file."), 0);\r
-    goto copy_game_to_clipboard_cleanup;\r
-  }\r
-  if (fstat(fileno(f), &st) < 0) {\r
-    DisplayError(_(_("Cannot determine size of file.")), 0);\r
-    goto copy_game_to_clipboard_cleanup;\r
-  }\r
-  size = st.st_size;\r
-  if (size == -1) {\r
-    DisplayError(_(_("Cannot determine size of file.")), 0);\r
-    goto copy_game_to_clipboard_cleanup;\r
-  }\r
-  rewind(f);\r
-  buf = (char*)malloc(size+1);\r
-  if (!buf) {\r
-    DisplayError(_("Cannot allocate clipboard buffer."), 0);\r
-    goto copy_game_to_clipboard_cleanup;\r
-  }\r
-  len = fread(buf, sizeof(char), size, f);\r
-  if (len == -1) {\r
-    DisplayError(_("Cannot read from temporary file."), 0);\r
-    goto copy_game_to_clipboard_cleanup;\r
-  }\r
-  if ((unsigned long)size != (unsigned long)len) { /* sigh */ \r
-      DisplayError(_("Error reading from temporary file."), 0);\r
-      goto copy_game_to_clipboard_cleanup;\r
-  }\r
-  buf[size] = 0;\r
-  if (!CopyTextToClipboard(buf)) {\r
-      DisplayError(_("Cannot copy text to clipboard"), 0);\r
-  }\r
-\r
-copy_game_to_clipboard_cleanup:\r
-  if (buf) free(buf);\r
-  if (f) fclose(f);\r
-}\r
-\r
-\r
-int \r
-CopyTextToClipboard(char *text)\r
-{\r
-  /* some (most?) of the error checking may be overkill, \r
-   * but hey, this is Windows \r
-   */\r
-  HGLOBAL hGlobalMem;\r
-  LPVOID lpGlobalMem;\r
-  BOOL locked;\r
-  UINT lockCount;\r
-  DWORD err;\r
-\r
-  hGlobalMem = GlobalAlloc(GHND, (DWORD)lstrlen(text)+1);\r
-  if (hGlobalMem == NULL) {\r
-    DisplayError(_("Unable to allocate memory for clipboard."), 0);\r
-    return FALSE;\r
-  }\r
-  lpGlobalMem = GlobalLock(hGlobalMem);\r
-  if (lpGlobalMem == NULL) {\r
-    DisplayError(_(_("Unable to lock clipboard memory.")), 0);\r
-    GlobalFree(hGlobalMem);\r
-    return FALSE;\r
-  }\r
-  safeStrCpy(lpGlobalMem, text, 1<<20);\r
-  if (appData.debugMode) {\r
-    lockCount = GlobalFlags(hGlobalMem) & GMEM_LOCKCOUNT;\r
-    fprintf(debugFP, "CopyTextToClipboard(): lock count %d\n", lockCount);\r
-  }\r
-  SetLastError(NO_ERROR);\r
-  locked = GlobalUnlock(hGlobalMem);\r
-  err = GetLastError();\r
-  if (appData.debugMode) {\r
-    lockCount = GlobalFlags(hGlobalMem) & GMEM_LOCKCOUNT;\r
-    fprintf(debugFP, "CopyTextToClipboard(): lock count %d\n", lockCount);\r
-  }\r
-  if (!locked) {\r
-    locked = !((err == NO_ERROR) || (err == ERROR_NOT_LOCKED));\r
-    if (appData.debugMode) {\r
-      fprintf(debugFP, \r
-             "CopyTextToClipboard(): err %d locked %d\n", (int)err, locked);\r
-    }\r
-  }\r
-  if (locked) {\r
-    DisplayError(_("Cannot unlock clipboard memory."), 0);\r
-    GlobalFree(hGlobalMem);\r
-    return FALSE;\r
-  }\r
-  if (!OpenClipboard(hwndMain)) {\r
-    DisplayError(_("Cannot open clipboard."), 0);\r
-    GlobalFree(hGlobalMem);\r
-    return FALSE;\r
-  }\r
-  if (!EmptyClipboard()) {\r
-    DisplayError(_("Cannot empty clipboard."), 0);\r
-    return FALSE;\r
-  }\r
-  if (hGlobalMem != SetClipboardData(CF_TEXT, hGlobalMem)) {\r
-    DisplayError(_("Cannot copy text to clipboard."), 0);\r
-    CloseClipboard();\r
-    GlobalFree(hGlobalMem);\r
-    return FALSE;\r
-  }\r
-  if (!CloseClipboard())\r
-    DisplayError(_("Cannot close clipboard."), 0);\r
-  \r
-  return TRUE;\r
-}\r
-\r
-/* [AS] Reworked paste functions so they can work with strings too */\r
-\r
-VOID PasteFENFromString( char * fen )\r
-{\r
-  if (appData.debugMode) {\r
-    fprintf(debugFP, "PasteFenFromString(): fen '%s'\n", fen);\r
-  }\r
-  EditPositionPasteFEN(fen); /* call into backend */\r
-  free(fen);\r
-}\r
-\r
-\r
-VOID\r
-PasteFENFromClipboard()\r
-{\r
-  char *fen = NULL;\r
-  if (!PasteTextFromClipboard(&fen)) {\r
-      DisplayError(_("Unable to paste FEN from clipboard."), 0);\r
-      return;\r
-  }\r
-  PasteFENFromString( fen );\r
-}\r
-\r
-VOID PasteGameFromString( char * buf )\r
-{\r
-  FILE *f;\r
-  size_t len;\r
-  int flip = appData.flipView;\r
-  if (!pasteTemp) {\r
-    pasteTemp = tempnam(NULL, "wbpt");\r
-  }\r
-  f = fopen(pasteTemp, "w");\r
-  if (!f) {\r
-    DisplayError(_("Unable to create temporary file."), 0);\r
-    free(buf); /* [AS] */\r
-    return;\r
-  }\r
-  len = fwrite(buf, sizeof(char), strlen(buf), f);\r
-  fclose(f);\r
-  if (len != strlen(buf)) {\r
-    DisplayError(_("Error writing to temporary file."), 0);\r
-    free(buf); /* [AS] */\r
-    return;\r
-  }\r
-  if(!appData.autoFlipView) appData.flipView = flipView;\r
-  LoadGameFromFile(pasteTemp, 0, "Clipboard", TRUE);\r
-  appData.flipView = flip;\r
-  free( buf ); /* [AS] */\r
-}\r
-\r
-\r
-VOID\r
-PasteGameFromClipboard()\r
-{\r
-  /* Write the clipboard to a temp file, then let LoadGameFromFile()\r
-   * do all the work.  */\r
-  char *buf;\r
-  if (!PasteTextFromClipboard(&buf)) {\r
-    return;\r
-  }\r
-  PasteGameFromString( buf );\r
-}\r
-\r
-/* [AS] Try to detect whether the clipboard contains FEN or PGN data */\r
-VOID PasteGameOrFENFromClipboard()\r
-{\r
-  char *buf;\r
-//  char *tmp;\r
-  Board dummyBoard; int dummy; // [HGM] paste any\r
-\r
-  if (!PasteTextFromClipboard(&buf)) {\r
-\r
-    return;\r
-  }\r
-\r
-  // [HGM] paste any: make still smarter, to allow pasting of games without tags, recognize FEN in stead\r
-  if(!ParseFEN(dummyBoard, &dummy, buf, 0) ) {\r
-      PasteGameFromString( buf );\r
-  }\r
-  else {\r
-      PasteFENFromString( buf );\r
-  }\r
-}\r
-\r
-int \r
-PasteTextFromClipboard(char **text)\r
-{\r
-  /* some (most?) of the error checking may be overkill, \r
-   * but hey, this is Windows \r
-   */\r
-  HANDLE hClipMem;\r
-  LPVOID lpClipMem;\r
-  BOOL locked = FALSE;\r
-  DWORD err;\r
-  UINT lockCount;\r
-\r
-  if (!OpenClipboard(hwndMain)) {\r
-    DisplayError(_("Unable to open clipboard."), 0);\r
-    return FALSE;\r
-  }\r
-  hClipMem = GetClipboardData(CF_TEXT);\r
-  if (hClipMem == NULL) {\r
-    CloseClipboard();\r
-    DisplayError(_("No text in clipboard."), 0);\r
-    return FALSE;\r
-  }\r
-  lpClipMem = GlobalLock(hClipMem);\r
-  if (lpClipMem == NULL) {\r
-    CloseClipboard();\r
-    DisplayError(_(_("Unable to lock clipboard memory.")), 0);\r
-    return FALSE;\r
-  }\r
-  *text = (char *) malloc(GlobalSize(hClipMem)+1);\r
-  if (!*text) {\r
-    DisplayError(_("Unable to allocate memory for text string."), 0);\r
-    CloseClipboard();\r
-    return FALSE;\r
-  }\r
-  safeStrCpy(*text, lpClipMem, 1<<20 );\r
-  if (appData.debugMode) {\r
-    lockCount = GlobalFlags(hClipMem) & GMEM_LOCKCOUNT;\r
-    fprintf(debugFP, "PasteTextFromClipboard(): lock count %d\n", lockCount);\r
-  }\r
-  SetLastError(NO_ERROR);\r
-  /*suggested by Wilkin Ng*/\r
-  lockCount = GlobalFlags(hClipMem) & GMEM_LOCKCOUNT;\r
-  if (lockCount) {\r
-    locked = GlobalUnlock(hClipMem);\r
-  }\r
-  err = GetLastError();\r
-  if (appData.debugMode) {\r
-    lockCount = GlobalFlags(hClipMem) & GMEM_LOCKCOUNT;\r
-    fprintf(debugFP, "PasteTextFromClipboard(): lock count %d\n", lockCount);\r
-  }\r
-  if (!locked) {\r
-    locked = !((err == NO_ERROR) || (err == ERROR_NOT_LOCKED));\r
-    if (appData.debugMode) {\r
-      fprintf(debugFP, \r
-             "PasteTextFromClipboard(): err %d locked %d\n", (int)err, locked);\r
-    }\r
-  }\r
-  if (locked) \r
-    DisplayError(_("Unable to unlock clipboard memory."), 0);\r
-  \r
-  if (!CloseClipboard())\r
-    DisplayError(_("Unable to close clipboard."), 0);\r
-  \r
-  return TRUE;\r
-}\r
-\r
-VOID\r
-DeleteClipboardTempFiles()\r
-{\r
-  if (copyTemp) remove(copyTemp);\r
-  if (pasteTemp) remove(pasteTemp);\r
-}\r
diff --git a/winboard/wclipbrd.h b/winboard/wclipbrd.h
deleted file mode 100644 (file)
index 1fc56b1..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-/*\r
- * wclipbrd.c -- Clipboard routines for WinBoard\r
- *\r
- * Copyright 2000, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free\r
- * Software Foundation, Inc.\r
- *\r
- * Enhancements Copyright 2005 Alessandro Scotti\r
- *\r
- * ------------------------------------------------------------------------\r
- *\r
- * GNU XBoard is free software: you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation, either version 3 of the License, or (at\r
- * your option) any later version.\r
- *\r
- * GNU XBoard is distributed in the hope that it will be useful, but\r
- * WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
- * General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program. If not, see http://www.gnu.org/licenses/.  *\r
- *\r
- *------------------------------------------------------------------------\r
- ** See the file ChangeLog for a revision history.  */\r
-\r
-VOID CopyFENToClipboard();\r
-VOID CopyGameToClipboard();\r
-VOID CopyGameListToClipboard();\r
-int CopyTextToClipboard(char *text);\r
-\r
-VOID PasteFENFromClipboard();\r
-VOID PasteGameFromClipboard();\r
-int PasteTextFromClipboard(char **text);\r
-\r
-VOID DeleteClipboardTempFiles();\r
-\r
-VOID PasteGameOrFENFromClipboard(); /* [AS] */\r
diff --git a/winboard/wedittags.c b/winboard/wedittags.c
deleted file mode 100644 (file)
index 6b4362d..0000000
+++ /dev/null
@@ -1,284 +0,0 @@
-/*\r
- * wedittags.c -- EditTags window for WinBoard\r
- *\r
- * Copyright 1995, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free\r
- * Software Foundation, Inc.\r
- *\r
- * Enhancements Copyright 2005 Alessandro Scotti\r
- *\r
- * ------------------------------------------------------------------------\r
- *\r
- * GNU XBoard is free software: you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation, either version 3 of the License, or (at\r
- * your option) any later version.\r
- *\r
- * GNU XBoard is distributed in the hope that it will be useful, but\r
- * WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
- * General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program. If not, see http://www.gnu.org/licenses/.  *\r
- *\r
- *------------------------------------------------------------------------\r
- ** See the file ChangeLog for a revision history.  */\r
-\r
-#include "config.h"\r
-\r
-#include <windows.h>   /* required for all Windows applications */\r
-#include <richedit.h>\r
-#include <stdio.h>\r
-#include <stdlib.h>\r
-#include <malloc.h>\r
-#include <fcntl.h>\r
-#include <math.h>\r
-#include <commdlg.h>\r
-#include <dlgs.h>\r
-\r
-#include "common.h"\r
-#include "frontend.h"\r
-#include "backend.h"\r
-#include "winboard.h"\r
-\r
-#define _(s) T_(s)\r
-\r
-/* Module globals */\r
-static char *editTagsText, **resPtr;\r
-static HWND memo;\r
-BOOL editTagsUp = FALSE;\r
-BOOL canEditTags = FALSE;\r
-\r
-/* Imports from winboard.c */\r
-extern HINSTANCE hInst;\r
-extern HWND hwndMain;\r
-extern BoardSize boardSize;\r
-\r
-LRESULT CALLBACK\r
-EditTagsDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
-{\r
-  static HANDLE hwndText;\r
-  static int sizeX, sizeY;\r
-  int len, newSizeX, newSizeY;\r
-  char *str;\r
-  RECT rect;\r
-  MINMAXINFO *mmi;\r
-  int err;\r
-  \r
-  switch (message) {\r
-  case WM_INITDIALOG: /* message: initialize dialog box */\r
-    /* Initialize the dialog items */\r
-    Translate(hDlg, DLG_EditTags);\r
-   hwndText = memo = GetDlgItem(hDlg, OPT_TagsText);\r
-    SendMessage(hwndText, WM_SETFONT, \r
-      (WPARAM)font[boardSize][EDITTAGS_FONT]->hf, MAKELPARAM(FALSE, 0));\r
-    SetDlgItemText(hDlg, OPT_TagsText, editTagsText);\r
-    EnableWindow(GetDlgItem(hDlg, OPT_TagsCancel), canEditTags);\r
-    EnableWindow(GetDlgItem(hDlg, OPT_EditTags), !canEditTags || bookUp);\r
-    SendMessage(hwndText, EM_SETREADONLY, !canEditTags, 0);\r
-    if (bookUp) {\r
-      SetDlgItemText(hDlg, OPT_EditTags, _("&Play Move"));\r
-      SetWindowText(hDlg, _("Edit Book"));\r
-      SetFocus(hwndText);\r
-    } else\r
-    if (canEditTags) {\r
-      SetWindowText(hDlg, _("Edit Tags"));\r
-      SetFocus(hwndText);\r
-    } else {\r
-      SetWindowText(hDlg, _("Tags"));\r
-      SetFocus(GetDlgItem(hDlg, IDOK));\r
-    }\r
-    if (!editTagsDialog) {\r
-      editTagsDialog = hDlg;\r
-      GetClientRect(hDlg, &rect);\r
-      sizeX = rect.right;\r
-      sizeY = rect.bottom;\r
-      SendDlgItemMessage( hDlg, OPT_TagsText, EM_SETEVENTMASK, 0, ENM_MOUSEEVENTS );\r
-      if (wpTags.x != CW_USEDEFAULT && wpTags.y != CW_USEDEFAULT &&\r
-         wpTags.width != CW_USEDEFAULT && wpTags.height != CW_USEDEFAULT) {\r
-       WINDOWPLACEMENT wp;\r
-       EnsureOnScreen(&wpTags.x, &wpTags.y, 0, 0);\r
-       wp.length = sizeof(WINDOWPLACEMENT);\r
-       wp.flags = 0;\r
-       wp.showCmd = SW_SHOW;\r
-       wp.ptMaxPosition.x = wp.ptMaxPosition.y = 0;\r
-       wp.rcNormalPosition.left = wpTags.x;\r
-       wp.rcNormalPosition.right = wpTags.x + wpTags.width;\r
-       wp.rcNormalPosition.top = wpTags.y;\r
-       wp.rcNormalPosition.bottom = wpTags.y + wpTags.height;\r
-       SetWindowPlacement(hDlg, &wp);\r
-\r
-       GetClientRect(hDlg, &rect);\r
-       newSizeX = rect.right;\r
-       newSizeY = rect.bottom;\r
-        ResizeEditPlusButtons(hDlg, hwndText, sizeX, sizeY,\r
-                             newSizeX, newSizeY);\r
-       sizeX = newSizeX;\r
-       sizeY = newSizeY;\r
-      }\r
-    }\r
-    return FALSE;\r
-    \r
-  case WM_COMMAND:\r
-    switch (LOWORD(wParam)) {\r
-    case IDOK:\r
-    case OPT_TagsSave:\r
-      if (canEditTags) {\r
-       char *p, *q;\r
-       /* Read changed options from the dialog box */\r
-       len = GetWindowTextLength(hwndText);\r
-       str = (char *) malloc(len + 1);\r
-       GetWindowText(hwndText, str, len + 1);\r
-       p = q = str;\r
-       while (*q) {\r
-         if (*q == '\r')\r
-           q++;\r
-         else\r
-           *p++ = *q++;\r
-       }\r
-       *p = NULLCHAR; err = 0;\r
-        if(resPtr) *resPtr = strdup(str); else\r
-       if(bookUp) SaveToBook(str), DisplayBook(currentMove); else\r
-       err = ReplaceTags(str, &gameInfo);\r
-       if (err) DisplayError(_("Error replacing tags."), err);\r
-\r
-       free(str);\r
-      }\r
-      if(LOWORD(wParam) == IDOK) TagsPopDown();\r
-      return TRUE;\r
-      \r
-    case IDCANCEL:\r
-    case OPT_TagsCancel:\r
-      TagsPopDown();\r
-      return TRUE;\r
-      \r
-    case OPT_EditTags:\r
-      if(bookUp) addToBookFlag = !addToBookFlag; else\r
-      EditTagsEvent();\r
-      return TRUE;\r
-\r
-    default:\r
-      break;\r
-    }\r
-    break;\r
-\r
-  case WM_NOTIFY: // [HGM] vari: cloned from whistory.c\r
-        if( wParam == OPT_TagsText ) {\r
-            MSGFILTER * lpMF = (MSGFILTER *) lParam;\r
-\r
-            if( lpMF->msg == WM_RBUTTONDOWN ) {\r
-                POINTL pt;\r
-                LRESULT index;\r
-\r
-                pt.x = LOWORD( lpMF->lParam );\r
-                pt.y = HIWORD( lpMF->lParam );\r
-\r
-                index = SendDlgItemMessage( hDlg, OPT_TagsText, EM_CHARFROMPOS, 0, (LPARAM) &pt );\r
-\r
-               hwndText = GetDlgItem(hDlg, OPT_TagsText); // cloned from above\r
-               len = GetWindowTextLength(hwndText);\r
-               str = (char *) malloc(len + 1);\r
-               GetWindowText(hwndText, str, len + 1);\r
-               if(bookUp) PlayBookMove(str, index);\r
-               free(str);\r
-\r
-                /* Zap the message for good: apparently, returning non-zero is not enough */\r
-                lpMF->msg = WM_USER;\r
-\r
-                return TRUE;\r
-            }\r
-        }\r
-        break;\r
-\r
-  case WM_SIZE:\r
-    newSizeX = LOWORD(lParam);\r
-    newSizeY = HIWORD(lParam);\r
-    ResizeEditPlusButtons(hDlg, hwndText, sizeX, sizeY, newSizeX, newSizeY);\r
-    sizeX = newSizeX;\r
-    sizeY = newSizeY;\r
-    break;\r
-\r
-  case WM_GETMINMAXINFO:\r
-    /* Prevent resizing window too small */\r
-    mmi = (MINMAXINFO *) lParam;\r
-    mmi->ptMinTrackSize.x = 100;\r
-    mmi->ptMinTrackSize.y = 100;\r
-    break;\r
-  }\r
-  return FALSE;\r
-}\r
-\r
-VOID AddBookMove(char *text)\r
-{\r
-    SendMessage( memo, EM_SETSEL, 999999, 999999 ); // [HGM] multivar: choose insertion point\r
-    SendMessage( memo, EM_REPLACESEL, (WPARAM) FALSE, (LPARAM) text );\r
-}\r
-\r
-VOID TagsPopDown(void)\r
-{\r
-  if (editTagsDialog) ShowWindow(editTagsDialog, SW_HIDE);\r
-  CheckMenuItem(GetMenu(hwndMain), IDM_Tags, MF_UNCHECKED);\r
-  editTagsUp = bookUp = addToBookFlag = FALSE;\r
-}\r
-\r
-\r
-VOID EitherTagsPopUp(char *tags, char *msg, BOOLEAN edit)\r
-{\r
-  FARPROC lpProc;\r
-  char *p, *q;\r
-  \r
-  if (msg == NULL) msg = "";\r
-  p = (char *) malloc(2 * (strlen(tags) + strlen(msg)) + 2);\r
-  q = p;\r
-  while (*tags) {\r
-    if (*tags == '\n') *q++ = '\r';\r
-    *q++ = *tags++;\r
-  }\r
-  if (*msg != NULLCHAR) {\r
-    *q++ = '\r';\r
-    *q++ = '\n';\r
-    while (*msg) {\r
-      if (*msg == '\n') *q++ = '\r';\r
-      *q++ = *msg++;\r
-    }\r
-  }\r
-  *q = NULLCHAR;\r
-  if (editTagsText != NULL) free(editTagsText);\r
-  editTagsText = p;\r
-  canEditTags = edit;\r
-  \r
-  CheckMenuItem(GetMenu(hwndMain), IDM_Tags, MF_CHECKED);\r
-  if (editTagsDialog) {\r
-    SendMessage(editTagsDialog, WM_INITDIALOG, 0, 0);\r
-    ShowWindow(editTagsDialog, SW_SHOW);\r
-    if(bookUp) SetFocus(hwndMain);\r
-  } else {\r
-    lpProc = MakeProcInstance((FARPROC)EditTagsDialog, hInst);\r
-    CreateDialog(hInst, MAKEINTRESOURCE(DLG_EditTags),\r
-      hwndMain, (DLGPROC)lpProc);\r
-    FreeProcInstance(lpProc);\r
-  }\r
-  editTagsUp = TRUE;\r
-}\r
-\r
-VOID TagsPopUp(char *tags, char *msg)\r
-{\r
-  HWND hwnd = GetActiveWindow();\r
-  EitherTagsPopUp(tags, msg, FALSE);\r
-  SetActiveWindow(hwnd);\r
-}\r
-\r
-VOID EditTagsPopUp(char *tags, char **dest)\r
-{\r
-  resPtr = dest;\r
-  EitherTagsPopUp(tags, "", TRUE);\r
-}\r
-\r
-VOID EditTagsProc()\r
-{\r
-  if (editTagsUp && !bookUp) {\r
-    TagsPopDown();\r
-  } else {\r
-    EditTagsEvent();\r
-  }\r
-}\r
diff --git a/winboard/wengineoutput.c b/winboard/wengineoutput.c
deleted file mode 100644 (file)
index b9d13f5..0000000
+++ /dev/null
@@ -1,446 +0,0 @@
-/*\r
- * wengineoutput.c - split-off front-end of Engine output (PV) by HGM\r
- *\r
- * Author: Alessandro Scotti (Dec 2005)\r
- *\r
- * Copyright 2005 Alessandro Scotti\r
- *\r
- * Enhancements Copyright 2009, 2010, 2011, 2012, 2013, 2014, 2015,\r
- * 2016 Free Software Foundation, Inc.\r
- *\r
- * ------------------------------------------------------------------------\r
- *\r
- * GNU XBoard is free software: you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation, either version 3 of the License, or (at\r
- * your option) any later version.\r
- *\r
- * GNU XBoard is distributed in the hope that it will be useful, but\r
- * WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
- * General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program. If not, see http://www.gnu.org/licenses/.  *\r
- *\r
- *------------------------------------------------------------------------\r
- ** See the file ChangeLog for a revision history.  */\r
-\r
-#include "config.h"\r
-\r
-#include <windows.h> /* required for all Windows applications */\r
-#include <richedit.h>\r
-#include <stdio.h>\r
-#include <stdlib.h>\r
-#include <malloc.h>\r
-#include <commdlg.h>\r
-#include <dlgs.h>\r
-\r
-#include "common.h"\r
-#include "frontend.h"\r
-#include "backend.h"\r
-#include "winboard.h"\r
-\r
-#include "wsnap.h"\r
-#include "engineoutput.h"\r
-\r
-/* Module variables */\r
-int  windowMode = 1;\r
-static BOOLEAN engineOutputDialogUp = FALSE;\r
-HICON icons[8]; // [HGM] this front-end array translates back-end icon indicator to handle\r
-HWND outputField[2][7]; // [HGM] front-end array to translate output field to window handle\r
-\r
-// front end\r
-static HICON LoadIconEx( int id )\r
-{\r
-    return LoadImage( hInst, MAKEINTRESOURCE(id), IMAGE_ICON, ICON_SIZE, ICON_SIZE, 0 );\r
-}\r
-\r
-// [HGM] the platform-dependent way of indicating where output should go is now all\r
-// concentrated here, where a table of platform-dependent handles are initialized.\r
-// This cleanses most other routines of front-end stuff, so they can go into the back end.\r
-static void InitializeEngineOutput()\r
-{\r
-       // [HGM] made this into a table, rather than separate global variables\r
-        icons[nColorBlack]   = LoadIconEx( IDI_BLACK_14 );\r
-        icons[nColorWhite]   = LoadIconEx( IDI_WHITE_14 );\r
-        icons[nColorUnknown] = LoadIconEx( IDI_UNKNOWN_14 );\r
-        icons[nClear]        = LoadIconEx( IDI_TRANS_14 );\r
-        icons[nPondering]    = LoadIconEx( IDI_PONDER_14 );\r
-        icons[nThinking]     = LoadIconEx( IDI_CLOCK_14 );\r
-        icons[nAnalyzing]    = LoadIconEx( IDI_ANALYZE2_14 );\r
-\r
-       // [HGM] also make a table of handles to output controls\r
-       // Note that engineOutputDialog must be defined first!\r
-        outputField[0][nColorIcon] = GetDlgItem( engineOutputDialog, IDC_Color1 );\r
-        outputField[0][nLabel]     = GetDlgItem( engineOutputDialog, IDC_EngineLabel1 );\r
-        outputField[0][nStateIcon] = GetDlgItem( engineOutputDialog, IDC_StateIcon1 );\r
-        outputField[0][nStateData] = GetDlgItem( engineOutputDialog, IDC_StateData1 );\r
-        outputField[0][nLabelNPS]  = GetDlgItem( engineOutputDialog, IDC_Engine1_NPS );\r
-        outputField[0][nMemo]      = GetDlgItem( engineOutputDialog, IDC_EngineMemo1 );\r
-\r
-        outputField[1][nColorIcon] = GetDlgItem( engineOutputDialog, IDC_Color2 );\r
-        outputField[1][nLabel]     = GetDlgItem( engineOutputDialog, IDC_EngineLabel2 );\r
-        outputField[1][nStateIcon] = GetDlgItem( engineOutputDialog, IDC_StateIcon2 );\r
-        outputField[1][nStateData] = GetDlgItem( engineOutputDialog, IDC_StateData2 );\r
-        outputField[1][nLabelNPS]  = GetDlgItem( engineOutputDialog, IDC_Engine2_NPS );\r
-        outputField[1][nMemo]      = GetDlgItem( engineOutputDialog, IDC_EngineMemo2 );\r
-}\r
-\r
-// front end\r
-static void SetControlPos( HWND hDlg, int id, int x, int y, int width, int height )\r
-{\r
-    HWND hControl = GetDlgItem( hDlg, id );\r
-\r
-    SetWindowPos( hControl, HWND_TOP, x, y, width, height, SWP_NOZORDER );\r
-}\r
-\r
-#define HIDDEN_X    20000\r
-#define HIDDEN_Y    20000\r
-\r
-// front end\r
-static void HideControl( HWND hDlg, int id )\r
-{\r
-    HWND hControl = GetDlgItem( hDlg, id );\r
-    RECT rc;\r
-\r
-    GetWindowRect( hControl, &rc );\r
-\r
-    /* \r
-        Avoid hiding an already hidden control, because that causes many\r
-        unnecessary WM_ERASEBKGND messages!\r
-    */\r
-    if( rc.left != HIDDEN_X || rc.top != HIDDEN_Y ) {\r
-        SetControlPos( hDlg, id, 20000, 20000, 100, 100 );\r
-    }\r
-}\r
-\r
-// front end, although we might make GetWindowRect front end instead\r
-static int GetControlWidth( HWND hDlg, int id )\r
-{\r
-    RECT rc;\r
-\r
-    GetWindowRect( GetDlgItem( hDlg, id ), &rc );\r
-\r
-    return rc.right - rc.left;\r
-}\r
-\r
-// front end?\r
-static int GetControlHeight( HWND hDlg, int id )\r
-{\r
-    RECT rc;\r
-\r
-    GetWindowRect( GetDlgItem( hDlg, id ), &rc );\r
-\r
-    return rc.bottom - rc.top;\r
-}\r
-\r
-static int GetHeaderHeight()\r
-{\r
-    int result = GetControlHeight( engineOutputDialog, IDC_EngineLabel1 );\r
-\r
-    if( result < ICON_SIZE ) result = ICON_SIZE;\r
-\r
-    return result;\r
-}\r
-\r
-// The size calculations should be backend? If setControlPos is a platform-dependent way of doing things,\r
-// a platform-independent wrapper for it should be supplied.\r
-static void PositionControlSet( HWND hDlg, int x, int y, int clientWidth, int memoHeight, int idColor, int idEngineLabel, int idNPS, int idMemo, int idStateIcon, int idStateData )\r
-{\r
-    int label_x = x + ICON_SIZE + H_MARGIN;\r
-    int label_h = GetControlHeight( hDlg, IDC_EngineLabel1 );\r
-    int label_y = y + ICON_SIZE - label_h;\r
-    int nps_w = GetControlWidth( hDlg, IDC_Engine1_NPS );\r
-    int nps_x = clientWidth - H_MARGIN - nps_w;\r
-    int state_data_w = GetControlWidth( hDlg, IDC_StateData1 );\r
-    int state_data_x = nps_x - H_MARGIN - state_data_w;\r
-    int state_icon_x = state_data_x - ICON_SIZE - 2;\r
-    int max_w = clientWidth - 2*H_MARGIN;\r
-    int memo_y = y + ICON_SIZE + LABEL_V_DISTANCE;\r
-\r
-    SetControlPos( hDlg, idColor, x, y, ICON_SIZE, ICON_SIZE );\r
-    SetControlPos( hDlg, idEngineLabel, label_x, label_y, state_icon_x - label_x, label_h );\r
-    SetControlPos( hDlg, idStateIcon, state_icon_x, y, ICON_SIZE, ICON_SIZE );\r
-    SetControlPos( hDlg, idStateData, state_data_x, label_y, state_data_w, label_h );\r
-    SetControlPos( hDlg, idNPS, nps_x, label_y, nps_w, label_h );\r
-    SetControlPos( hDlg, idMemo, x, memo_y, max_w, memoHeight );\r
-}\r
-\r
-// Also here some of the size calculations should go to the back end, and their actual application to a front-end routine\r
-void ResizeWindowControls( int mode )\r
-{\r
-    HWND hDlg = engineOutputDialog; // [HGM] used to be parameter, but routine is called from back-end\r
-    RECT rc;\r
-    int headerHeight = GetHeaderHeight();\r
-//    int labelHeight = GetControlHeight( hDlg, IDC_EngineLabel1 );\r
-//    int labelOffset = H_MARGIN + ICON_SIZE + H_MARGIN;\r
-//    int labelDeltaY = ICON_SIZE - labelHeight;\r
-    int clientWidth;\r
-    int clientHeight;\r
-    int maxControlWidth;\r
-    int npsWidth;\r
-\r
-    /* Initialize variables */\r
-    GetClientRect( hDlg, &rc );\r
-\r
-    clientWidth = rc.right - rc.left;\r
-    clientHeight = rc.bottom - rc.top;\r
-\r
-    maxControlWidth = clientWidth - 2*H_MARGIN;\r
-\r
-    npsWidth = GetControlWidth( hDlg, IDC_Engine1_NPS );\r
-\r
-    /* Resize controls */\r
-    if( mode == 0 ) {\r
-        /* One engine */\r
-        PositionControlSet( hDlg, H_MARGIN, V_MARGIN, \r
-            clientWidth, \r
-            clientHeight - V_MARGIN - LABEL_V_DISTANCE - headerHeight- V_MARGIN,\r
-            IDC_Color1, IDC_EngineLabel1, IDC_Engine1_NPS, IDC_EngineMemo1, IDC_StateIcon1, IDC_StateData1 );\r
-\r
-        /* Hide controls for the second engine */\r
-        HideControl( hDlg, IDC_Color2 );\r
-        HideControl( hDlg, IDC_EngineLabel2 );\r
-        HideControl( hDlg, IDC_StateIcon2 );\r
-        HideControl( hDlg, IDC_StateData2 );\r
-        HideControl( hDlg, IDC_Engine2_NPS );\r
-        HideControl( hDlg, IDC_EngineMemo2 );\r
-        SendDlgItemMessage( hDlg, IDC_EngineMemo2, WM_SETTEXT, 0, (LPARAM) "" );\r
-        /* TODO: we should also hide/disable them!!! what about tab stops?!?! */\r
-    }\r
-    else {\r
-        /* Two engines */\r
-        int memo_h = (clientHeight - headerHeight*2 - V_MARGIN*2 - LABEL_V_DISTANCE*2 - SPLITTER_SIZE) / 2;\r
-        int header1_y = V_MARGIN;\r
-        int header2_y = V_MARGIN + headerHeight + LABEL_V_DISTANCE + memo_h + SPLITTER_SIZE;\r
-\r
-        PositionControlSet( hDlg, H_MARGIN, header1_y, clientWidth, memo_h,\r
-            IDC_Color1, IDC_EngineLabel1, IDC_Engine1_NPS, IDC_EngineMemo1, IDC_StateIcon1, IDC_StateData1 );\r
-\r
-        PositionControlSet( hDlg, H_MARGIN, header2_y, clientWidth, memo_h,\r
-            IDC_Color2, IDC_EngineLabel2, IDC_Engine2_NPS, IDC_EngineMemo2, IDC_StateIcon2, IDC_StateData2 );\r
-    }\r
-\r
-    InvalidateRect( GetDlgItem(hDlg,IDC_EngineMemo1), NULL, FALSE );\r
-    InvalidateRect( GetDlgItem(hDlg,IDC_EngineMemo2), NULL, FALSE );\r
-}\r
-\r
-static int currentPV;\r
-int highTextStart[2], highTextEnd[2];\r
-extern RECT boardRect;\r
-\r
-VOID\r
-GetMemoLine(HWND hDlg, int x, int y)\r
-{      // [HGM] pv: translate click to PV line, and load it for display\r
-       char buf[10000];\r
-       int index, start, end, memo;\r
-       POINT pt;\r
-\r
-       pt.x = x; pt.y = y;\r
-       memo = currentPV ? IDC_EngineMemo2 : IDC_EngineMemo1;\r
-       index = SendDlgItemMessage( hDlg, memo, EM_CHARFROMPOS, 0, (LPARAM) &pt );\r
-       GetDlgItemText(hDlg, memo, buf, sizeof(buf));\r
-       if(LoadMultiPV(x, y, buf, index, &start, &end, currentPV)) {\r
-           SetCapture(hDlg);\r
-           SendMessage( outputField[currentPV][nMemo], EM_SETSEL, (WPARAM)start, (LPARAM)end );\r
-           highTextStart[currentPV] = start; highTextEnd[currentPV] = end;\r
-           SetFocus(outputField[currentPV][nMemo]);\r
-       }\r
-}\r
-\r
-// front end. Actual printing of PV lines into the output field\r
-void InsertIntoMemo( int which, char * text, int where )\r
-{\r
-    SendMessage( outputField[which][nMemo], EM_SETSEL, where, where ); // [HGM] multivar: choose insertion point\r
-\r
-    SendMessage( outputField[which][nMemo], EM_REPLACESEL, (WPARAM) FALSE, (LPARAM) text );\r
-    if(where < highTextStart[which]) { // [HGM] multiPVdisplay: move highlighting\r
-       int len = strlen(text);\r
-       highTextStart[which] += len; highTextEnd[which] += len;\r
-       SendMessage( outputField[which][nMemo], EM_SETSEL, highTextStart[which], highTextEnd[which] );\r
-    }\r
-}\r
-\r
-// front end. Associates an icon with an output field ("control" in Windows jargon).\r
-// [HGM] let it find out the output field from the 'which' number by itself\r
-void SetIcon( int which, int field, int nIcon )\r
-{\r
-\r
-    if( nIcon != 0 ) {\r
-        SendMessage( outputField[which][field], STM_SETICON, (WPARAM) icons[nIcon], 0 );\r
-    }\r
-}\r
-\r
-// front end wrapper for SetWindowText, taking control number in stead of handle\r
-void DoSetWindowText(int which, int field, char *s_label)\r
-{\r
-    SetWindowText( outputField[which][field], s_label );\r
-}\r
-\r
-void SetEngineOutputTitle(char *title)\r
-{\r
-    SetWindowText( engineOutputDialog, title );\r
-}\r
-\r
-// This seems pure front end\r
-LRESULT CALLBACK EngineOutputProc( HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam )\r
-{\r
-    static SnapData sd;\r
-\r
-    switch (message) {\r
-    case WM_INITDIALOG:\r
-        if( engineOutputDialog == NULL ) {\r
-            engineOutputDialog = hDlg;\r
-\r
-            Translate(hDlg, DLG_EngineOutput);\r
-            RestoreWindowPlacement( hDlg, &wpEngineOutput ); /* Restore window placement */\r
-\r
-            ResizeWindowControls( windowMode );\r
-\r
-            SendDlgItemMessage( hDlg, IDC_EngineMemo1, EM_SETEVENTMASK, 0, ENM_MOUSEEVENTS );\r
-            SendDlgItemMessage( hDlg, IDC_EngineMemo2, EM_SETEVENTMASK, 0, ENM_MOUSEEVENTS );\r
-\r
-           /* Set font */\r
-           SendDlgItemMessage( engineOutputDialog, IDC_EngineMemo1, WM_SETFONT, (WPARAM)font[boardSize][MOVEHISTORY_FONT]->hf, MAKELPARAM(TRUE, 0 ));\r
-           SendDlgItemMessage( engineOutputDialog, IDC_EngineMemo2, WM_SETFONT, (WPARAM)font[boardSize][MOVEHISTORY_FONT]->hf, MAKELPARAM(TRUE, 0 ));\r
-\r
-            SetEngineState( 0, STATE_IDLE, "" );\r
-            SetEngineState( 1, STATE_IDLE, "" );\r
-        }\r
-\r
-        return FALSE;\r
-\r
-    case WM_COMMAND:\r
-        switch (LOWORD(wParam)) {\r
-        case IDOK:\r
-          EndDialog(hDlg, TRUE);\r
-          return TRUE;\r
-\r
-        case IDCANCEL:\r
-          EndDialog(hDlg, FALSE);\r
-          return TRUE;\r
-\r
-        default:\r
-          break;\r
-        }\r
-\r
-        break;\r
-\r
-    case WM_MOUSEMOVE:\r
-        MovePV(LOWORD(lParam) - boardRect.left, HIWORD(lParam) - boardRect.top, boardRect.bottom - boardRect.top);\r
-        break;\r
-\r
-    case WM_RBUTTONUP:\r
-        ReleaseCapture();\r
-        SendMessage( outputField[currentPV][nMemo], EM_SETSEL, 0, 0 );\r
-        highTextStart[currentPV] = highTextEnd[currentPV] = 0;\r
-        UnLoadPV();\r
-        break;\r
-\r
-    case WM_NOTIFY:\r
-        if( wParam == IDC_EngineMemo1 || wParam == IDC_EngineMemo2 ) {\r
-            MSGFILTER * lpMF = (MSGFILTER *) lParam;\r
-            if( lpMF->msg == WM_RBUTTONDOWN && (lpMF->wParam & (MK_CONTROL)) == 0 ) {\r
-               shiftKey = (lpMF->wParam & MK_SHIFT) != 0; // [HGM] remember last shift status\r
-                currentPV = (wParam == IDC_EngineMemo2);\r
-                GetMemoLine(hDlg, LOWORD(lpMF->lParam), HIWORD(lpMF->lParam));\r
-            }\r
-        }\r
-        break;\r
-\r
-    case WM_GETMINMAXINFO:\r
-        {\r
-            MINMAXINFO * mmi = (MINMAXINFO *) lParam;\r
-        \r
-            mmi->ptMinTrackSize.x = 100;\r
-            mmi->ptMinTrackSize.y = 160;\r
-        }\r
-        break;\r
-\r
-    case WM_CLOSE:\r
-        EngineOutputPopDown();\r
-        break;\r
-\r
-    case WM_SIZE:\r
-        ResizeWindowControls( windowMode );\r
-        break;\r
-\r
-    case WM_ENTERSIZEMOVE:\r
-        return OnEnterSizeMove( &sd, hDlg, wParam, lParam );\r
-\r
-    case WM_SIZING:\r
-        return OnSizing( &sd, hDlg, wParam, lParam );\r
-\r
-    case WM_MOVING:\r
-        return OnMoving( &sd, hDlg, wParam, lParam );\r
-\r
-    case WM_EXITSIZEMOVE:\r
-        return OnExitSizeMove( &sd, hDlg, wParam, lParam );\r
-    }\r
-\r
-    return FALSE;\r
-}\r
-\r
-// front end\r
-void EngineOutputPopUp()\r
-{\r
-  FARPROC lpProc;\r
-  static int  needInit = TRUE;\r
-  \r
-  CheckMenuItem(GetMenu(hwndMain), IDM_ShowEngineOutput, MF_CHECKED);\r
-\r
-  if( engineOutputDialog ) {\r
-    SendMessage( engineOutputDialog, WM_INITDIALOG, 0, 0 );\r
-\r
-    if( ! engineOutputDialogUp ) {\r
-        ShowWindow(engineOutputDialog, SW_SHOW);\r
-    }\r
-  }\r
-  else {\r
-    lpProc = MakeProcInstance( (FARPROC) EngineOutputProc, hInst );\r
-\r
-    /* Note to self: dialog must have the WS_VISIBLE style set, otherwise it's not shown! */\r
-    CreateDialog( hInst, MAKEINTRESOURCE(DLG_EngineOutput), hwndMain, (DLGPROC)lpProc );\r
-\r
-    FreeProcInstance(lpProc);\r
-  }\r
-\r
-  // [HGM] displaced to after creation of dialog, to allow initialization of output fields\r
-  if( needInit ) {\r
-      InitializeEngineOutput();\r
-      needInit = FALSE;\r
-  }\r
-\r
-  engineOutputDialogUp = TRUE;\r
-}\r
-\r
-// front end\r
-void EngineOutputPopDown()\r
-{\r
-  CheckMenuItem(GetMenu(hwndMain), IDM_ShowEngineOutput, MF_UNCHECKED);\r
-\r
-  if( engineOutputDialog ) {\r
-      ShowWindow(engineOutputDialog, SW_HIDE);\r
-  }\r
-\r
-  engineOutputDialogUp = FALSE;\r
-}\r
-\r
-// front end. [HGM] Takes handle of output control from table, so only number is passed\r
-void DoClearMemo(int which)\r
-{\r
-        SendMessage( outputField[which][nMemo], WM_SETTEXT, 0, (LPARAM) "" );\r
-}\r
-\r
-// front end (because only other front-end wants to know)\r
-int EngineOutputIsUp()\r
-{\r
-    return engineOutputDialogUp;\r
-}\r
-\r
-// front end, to give back-end access to engineOutputDialog\r
-int EngineOutputDialogExists()\r
-{\r
-    return engineOutputDialog != NULL;\r
-}\r
diff --git a/winboard/wevalgraph.c b/winboard/wevalgraph.c
deleted file mode 100644 (file)
index 3f1f076..0000000
+++ /dev/null
@@ -1,325 +0,0 @@
-/*\r
- * wevalgraph.c - Evaluation graph front-end part\r
- *\r
- * Author: Alessandro Scotti (Dec 2005)\r
- *\r
- * Copyright 2005 Alessandro Scotti\r
- *\r
- * Enhancements Copyright 2009, 2010, 2011, 2012, 2013, 2014, 2015,\r
- * 2016 Free Software Foundation, Inc.\r
- *\r
- * ------------------------------------------------------------------------\r
- *\r
- * GNU XBoard is free software: you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation, either version 3 of the License, or (at\r
- * your option) any later version.\r
- *\r
- * GNU XBoard is distributed in the hope that it will be useful, but\r
- * WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
- * General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program. If not, see http://www.gnu.org/licenses/.  *\r
- *\r
- *------------------------------------------------------------------------\r
- ** See the file ChangeLog for a revision history.  */\r
-\r
-// code refactored by HGM to obtain front-end / back-end separation\r
-\r
-#include "config.h"\r
-\r
-#include <windows.h>\r
-#include <commdlg.h>\r
-#include <dlgs.h>\r
-#include <stdio.h>\r
-\r
-#include "common.h"\r
-#include "frontend.h"\r
-#include "backend.h"\r
-#include "winboard.h"\r
-#include "evalgraph.h"\r
-#include "wsnap.h"\r
-\r
-#define WM_REFRESH_GRAPH    (WM_USER + 1)\r
-\r
-/* Module globals */\r
-static BOOLEAN evalGraphDialogUp;\r
-\r
-static COLORREF crWhite = RGB( 0xFF, 0xFF, 0xB0 );\r
-static COLORREF crBlack = RGB( 0xAD, 0x5D, 0x3D );\r
-\r
-static HDC hdcPB = NULL;\r
-static HBITMAP hbmPB = NULL;\r
-static HPEN pens[PEN_ANY+1]; // [HGM] put all pens in one array\r
-static HBRUSH hbrHist[3] = { NULL, NULL, NULL };\r
-\r
-Boolean EvalGraphIsUp()\r
-{\r
-    return evalGraphDialogUp;\r
-}\r
-\r
-// [HGM] front-end, added as wrapper to avoid use of LineTo and MoveToEx in other routines (so they can be back-end) \r
-void DrawSegment( int x, int y, int *lastX, int *lastY, int penType )\r
-{\r
-    POINT stPt;\r
-    if(penType == PEN_NONE) MoveToEx( hdcPB, x, y, &stPt ); else {\r
-       HPEN hp = SelectObject( hdcPB, pens[penType] );\r
-       LineTo( hdcPB, x, y );\r
-       SelectObject( hdcPB, hp );\r
-    }\r
-    if(lastX != NULL) { *lastX = stPt.x; *lastY = stPt.y; }\r
-}\r
-\r
-// front-end wrapper for drawing functions to do rectangles\r
-void DrawRectangle( int left, int top, int right, int bottom, int side, int style )\r
-{\r
-    HPEN hp = SelectObject( hdcPB, pens[PEN_BLACK] );\r
-    RECT rc;\r
-\r
-    rc.top = top; rc.left = left; rc.bottom = bottom; rc.right = right;\r
-    if(style == FILLED)\r
-        FillRect( hdcPB, &rc, hbrHist[side] );\r
-    else {\r
-        SelectObject( hdcPB, hbrHist[side] );\r
-        Rectangle( hdcPB, left, top, right, bottom );\r
-    }\r
-    SelectObject( hdcPB, hp );\r
-}\r
-\r
-// front-end wrapper for putting text in graph\r
-void DrawEvalText(char *buf, int cbBuf, int y)\r
-{\r
-        SIZE stSize;\r
-       SetBkMode( hdcPB, TRANSPARENT );\r
-        GetTextExtentPoint32( hdcPB, buf, cbBuf, &stSize );\r
-        TextOut( hdcPB, MarginX - stSize.cx - 2, y - stSize.cy / 2, buf, cbBuf );\r
-}\r
-\r
-// front-end\r
-static HBRUSH CreateBrush( UINT style, COLORREF color )\r
-{\r
-    LOGBRUSH stLB;\r
-\r
-    stLB.lbStyle = style;\r
-    stLB.lbColor = color;\r
-    stLB.lbHatch = 0;\r
-\r
-    return CreateBrushIndirect( &stLB );\r
-}\r
-\r
-// front-end. Create pens, device context and buffer bitmap for global use, copy result to display\r
-// The back-end part n the middle has been taken out and moed to PainEvalGraph()\r
-static VOID DisplayEvalGraph( HWND hWnd, HDC hDC )\r
-{\r
-    RECT rcClient;\r
-    int width;\r
-    int height;\r
-\r
-    /* Get client area */\r
-    GetClientRect( hWnd, &rcClient );\r
-\r
-    width = rcClient.right - rcClient.left;\r
-    height = rcClient.bottom - rcClient.top;\r
-\r
-    /* Create or recreate paint box if needed */\r
-    if( hbmPB == NULL || width != nWidthPB || height != nHeightPB ) {\r
-        if( pens[PEN_DOTTED] == NULL ) {\r
-           pens[PEN_BLACK]      = GetStockObject(BLACK_PEN);\r
-            pens[PEN_DOTTED]     = CreatePen( PS_DOT, 0, RGB(0xA0,0xA0,0xA0) );\r
-            pens[PEN_BLUEDOTTED] = CreatePen( PS_DOT, 0, RGB(0x00,0x00,0xFF) );\r
-            pens[PEN_BOLDWHITE]  = CreatePen( PS_SOLID, 2, crWhite );\r
-            pens[PEN_BOLDBLACK]  = CreatePen( PS_SOLID, 2, crBlack );\r
-            hbrHist[0] = CreateBrush( BS_SOLID, crWhite );\r
-            hbrHist[1] = CreateBrush( BS_SOLID, crBlack );\r
-            hbrHist[2] = CreateBrush( BS_SOLID, GetSysColor( COLOR_3DFACE ) ); // background\r
-        }\r
-\r
-        if( hdcPB != NULL ) {\r
-            DeleteDC( hdcPB );\r
-            hdcPB = NULL;\r
-        }\r
-\r
-        if( hbmPB != NULL ) {\r
-            DeleteObject( hbmPB );\r
-            hbmPB = NULL;\r
-        }\r
-\r
-        hdcPB = CreateCompatibleDC( hDC );\r
-\r
-        nWidthPB = width;\r
-        nHeightPB = height;\r
-        hbmPB = CreateCompatibleBitmap( hDC, nWidthPB, nHeightPB );\r
-\r
-        SelectObject( hdcPB, hbmPB );\r
-    }\r
-\r
-    // back-end painting; calls back front-end primitives for lines, rectangles and text\r
-    PaintEvalGraph();\r
-    SetWindowText(hWnd, MakeEvalTitle(differentialView ? T_("Blunder Graph") : T_("Evaluation Graph")));\r
-\r
-    /* Copy bitmap into destination DC */\r
-    BitBlt( hDC, 0, 0, nWidthPB, nHeightPB, hdcPB, 0, 0, SRCCOPY );\r
-}\r
-\r
-// Note: Once the eval graph is opened, this window-proc lives forever; een closing the\r
-// eval-graph window merely hides it. On opening we re-initialize it, though, so it could\r
-// as well hae been destroyed. While it is open it processes the REFRESH_GRAPH commands.\r
-LRESULT CALLBACK EvalGraphProc( HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam )\r
-{\r
-    static SnapData sd;\r
-\r
-    PAINTSTRUCT stPS;\r
-    HDC hDC;\r
-\r
-    switch (message) {\r
-    case WM_INITDIALOG:\r
-        Translate(hDlg, DLG_EvalGraph);\r
-        if( evalGraphDialog == NULL ) {\r
-            evalGraphDialog = hDlg;\r
-\r
-            RestoreWindowPlacement( hDlg, &wpEvalGraph ); /* Restore window placement */\r
-        }\r
-\r
-        return FALSE;\r
-\r
-    case WM_COMMAND:\r
-        switch (LOWORD(wParam)) {\r
-        case IDOK:\r
-          EndDialog(hDlg, TRUE);\r
-          return TRUE;\r
-\r
-        case IDCANCEL:\r
-          EndDialog(hDlg, FALSE);\r
-          return TRUE;\r
-\r
-        default:\r
-          break;\r
-        }\r
-\r
-        break;\r
-\r
-    case WM_ERASEBKGND:\r
-        return TRUE;\r
-\r
-    case WM_PAINT:\r
-        hDC = BeginPaint( hDlg, &stPS );\r
-        DisplayEvalGraph( hDlg, hDC );\r
-        EndPaint( hDlg, &stPS );\r
-        break;\r
-\r
-    case WM_MOUSEWHEEL:\r
-        if((short)HIWORD(wParam) < 0) appData.zoom++;\r
-        if((short)HIWORD(wParam) > 0 && appData.zoom > 1)  appData.zoom--;\r
-        goto paint;\r
-    case WM_RBUTTONDOWN:\r
-        differentialView = !differentialView;\r
-    case WM_REFRESH_GRAPH:\r
-    paint:\r
-        hDC = GetDC( hDlg );\r
-        DisplayEvalGraph( hDlg, hDC );\r
-        ReleaseDC( hDlg, hDC );\r
-        break;\r
-\r
-    case WM_LBUTTONDOWN:\r
-        if( wParam == 0 || wParam == MK_LBUTTON ) {\r
-            int index = GetMoveIndexFromPoint( LOWORD(lParam), HIWORD(lParam) );\r
-\r
-            if( index >= 0 && index < currLast ) {\r
-                ToNrEvent( index + 1 );\r
-            }\r
-        }\r
-        return TRUE;\r
-\r
-    case WM_SIZE:\r
-        InvalidateRect( hDlg, NULL, FALSE );\r
-        break;\r
-\r
-    case WM_GETMINMAXINFO:\r
-        {\r
-            MINMAXINFO * mmi = (MINMAXINFO *) lParam;\r
-        \r
-            mmi->ptMinTrackSize.x = 100;\r
-            mmi->ptMinTrackSize.y = 100;\r
-        }\r
-        break;\r
-\r
-    /* Support for captionless window */\r
-    case WM_CLOSE:\r
-        EvalGraphPopDown();\r
-        break;\r
-\r
-    case WM_ENTERSIZEMOVE:\r
-        return OnEnterSizeMove( &sd, hDlg, wParam, lParam );\r
-\r
-    case WM_SIZING:\r
-        return OnSizing( &sd, hDlg, wParam, lParam );\r
-\r
-    case WM_MOVING:\r
-        return OnMoving( &sd, hDlg, wParam, lParam );\r
-\r
-    case WM_EXITSIZEMOVE:\r
-        return OnExitSizeMove( &sd, hDlg, wParam, lParam );\r
-    }\r
-\r
-    return FALSE;\r
-}\r
-\r
-// creates the eval graph, or unhides it.\r
-VOID EvalGraphPopUp()\r
-{\r
-  FARPROC lpProc;\r
-  \r
-  CheckMenuItem(GetMenu(hwndMain), IDM_ShowEvalGraph, MF_CHECKED);\r
-\r
-  if( evalGraphDialog ) {\r
-    SendMessage( evalGraphDialog, WM_INITDIALOG, 0, 0 );\r
-\r
-    if( ! evalGraphDialogUp ) {\r
-        ShowWindow(evalGraphDialog, SW_SHOW);\r
-    }\r
-  }\r
-  else {\r
-    crWhite = appData.evalHistColorWhite;\r
-    crBlack = appData.evalHistColorBlack;\r
-\r
-    lpProc = MakeProcInstance( (FARPROC) EvalGraphProc, hInst );\r
-\r
-    /* Note to self: dialog must have the WS_VISIBLE style set, otherwise it's not shown! */\r
-    CreateDialog( hInst, MAKEINTRESOURCE(DLG_EvalGraph), hwndMain, (DLGPROC)lpProc );\r
-\r
-    FreeProcInstance(lpProc);\r
-  }\r
-\r
-  evalGraphDialogUp = TRUE;\r
-}\r
-\r
-// Note that this hides the window. It could as well have destroyed it.\r
-VOID EvalGraphPopDown()\r
-{\r
-  CheckMenuItem(GetMenu(hwndMain), IDM_ShowEvalGraph, MF_UNCHECKED);\r
-\r
-  if( evalGraphDialog ) {\r
-      ShowWindow(evalGraphDialog, SW_HIDE);\r
-  }\r
-\r
-  evalGraphDialogUp = FALSE;\r
-}\r
-\r
-// This function is the interface to the back-end. It is currently called through the front-end,\r
-// though, where it shares the HistorySet() wrapper with MoveHistorySet(). Once all front-ends\r
-// support the eval graph, it would be more logical to call it directly from the back-end.\r
-VOID EvalGraphSet( int first, int last, int current, ChessProgramStats_Move * pvInfo )\r
-{\r
-    /* [AS] Danger! For now we rely on the pvInfo parameter being a static variable! */\r
-\r
-    currFirst = first;\r
-    currLast = last;\r
-    currCurrent = current;\r
-    currPvInfo = pvInfo;\r
-\r
-    if( evalGraphDialog ) {\r
-        SendMessage( evalGraphDialog, WM_REFRESH_GRAPH, 0, 0 );\r
-    }\r
-}\r
diff --git a/winboard/wgamelist.c b/winboard/wgamelist.c
deleted file mode 100644 (file)
index 19917e6..0000000
+++ /dev/null
@@ -1,529 +0,0 @@
-/*\r
- * wgamelist.c -- Game list window for WinBoard\r
- *\r
- * Copyright 1995, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free\r
- * Software Foundation, Inc.\r
- *\r
- * Enhancements Copyright 2005 Alessandro Scotti\r
- *\r
- * ------------------------------------------------------------------------\r
- *\r
- * GNU XBoard is free software: you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation, either version 3 of the License, or (at\r
- * your option) any later version.\r
- *\r
- * GNU XBoard is distributed in the hope that it will be useful, but\r
- * WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
- * General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program. If not, see http://www.gnu.org/licenses/.  *\r
- *\r
- *------------------------------------------------------------------------\r
- ** See the file ChangeLog for a revision history.  */\r
-\r
-#include "config.h"\r
-\r
-#include <windows.h> /* required for all Windows applications */\r
-#include <stdio.h>\r
-#include <stdlib.h>\r
-#include <malloc.h>\r
-#include <fcntl.h>\r
-#include <math.h>\r
-#include <commdlg.h>\r
-#include <dlgs.h>\r
-\r
-#include "common.h"\r
-#include "frontend.h"\r
-#include "backend.h"\r
-#include "winboard.h"\r
-\r
-#include "wsnap.h"\r
-\r
-#define _(s) T_(s)\r
-\r
-/* Module globals */\r
-static BOOLEAN gameListUp = FALSE;\r
-static FILE* gameFile;\r
-static char* gameFileName = NULL;\r
-\r
-/* [AS] Setup the game list according to the specified filter */\r
-int GameListToListBox( HWND hDlg, BOOL boReset, char * pszFilter, struct GameListStats * stats, BOOL byPos, BOOL narrow )\r
-{\r
-    ListGame * lg = (ListGame *) gameList.head;\r
-    int nItem;\r
-    char buf[MSG_SIZ];\r
-    BOOL hasFilter = FALSE;\r
-    int count = 0;\r
-    struct GameListStats dummy;\r
-\r
-    if(!hDlg) hDlg = gameListDialog; // [HGM] to allow calling from Game List Options dialog\r
-    if(!hDlg) return 0;\r
-\r
-    /* Initialize stats (use a dummy variable if caller not interested in them) */\r
-    if( stats == NULL ) {\r
-        stats = &dummy;\r
-    }\r
-\r
-    stats->white_wins = 0;\r
-    stats->black_wins = 0;\r
-    stats->drawn = 0;\r
-    stats->unfinished = 0;\r
-\r
-    if( boReset ) {\r
-        SendDlgItemMessage(hDlg, OPT_GameListText, LB_RESETCONTENT, 0, 0);\r
-    }\r
-\r
-    if( pszFilter != NULL ) {\r
-        if( strlen( pszFilter ) > 0 ) {\r
-            hasFilter = TRUE;\r
-        }\r
-    }\r
-\r
-    if(byPos) InitSearch();\r
-\r
-    for (nItem = 0; nItem < ((ListGame *) gameList.tailPred)->number; nItem++){\r
-        char * st = NULL;\r
-        BOOL skip = FALSE;\r
-       int pos = -1;\r
-\r
-        if(nItem % 2000 == 0) {\r
-          snprintf(buf, MSG_SIZ, _("Scanning through games (%d)"), nItem);\r
-          SetWindowText(hwndMain, buf); DoEvents();\r
-        }\r
-\r
-      if(!narrow || lg->position >= 0) {\r
-        if( hasFilter ) {\r
-            st = GameListLine(lg->number, &lg->gameInfo);\r
-           if( !SearchPattern( st, pszFilter) ) skip = TRUE;\r
-        }\r
-\r
-        if( !skip && byPos) {\r
-            if( (pos = GameContainsPosition(gameFile, lg)) < 0) skip = TRUE;\r
-        }\r
-\r
-        if( ! skip ) {\r
-            if(!st) st = GameListLine(lg->number, &lg->gameInfo);\r
-            SendDlgItemMessage(hDlg, OPT_GameListText, LB_ADDSTRING, 0, (LPARAM) st);\r
-            count++;\r
-\r
-            /* Update stats */\r
-            if( lg->gameInfo.result == WhiteWins )\r
-                stats->white_wins++;\r
-            else if( lg->gameInfo.result == BlackWins )\r
-                stats->black_wins++;\r
-            else if( lg->gameInfo.result == GameIsDrawn )\r
-                stats->drawn++;\r
-            else\r
-                stats->unfinished++;\r
-           if(!byPos) pos = 0;\r
-        }\r
-      }\r
-\r
-       lg->position = pos;\r
-\r
-        if(st) free(st);\r
-        lg = (ListGame *) lg->node.succ;\r
-    }\r
-\r
-    SendDlgItemMessage(hDlg, OPT_GameListText, LB_SETCURSEL, 0, 0);\r
-    SetWindowText(hwndMain, "WinBoard");\r
-\r
-    return count;\r
-}\r
-\r
-/* [AS] Show number of visible (filtered) games and total on window caption */\r
-static int GameListUpdateTitle( HWND hDlg, char * pszTitle, int item_count, int item_total, struct GameListStats * stats )\r
-{\r
-    char buf[256];\r
-\r
-    snprintf( buf, sizeof(buf)/sizeof(buf[0]),_("%s - %d/%d games"), pszTitle, item_count, item_total );\r
-\r
-    if( stats != 0 ) {\r
-        sprintf( buf+strlen(buf), " (%d-%d-%d)", stats->white_wins, stats->black_wins, stats->drawn );\r
-    }\r
-\r
-    SetWindowText( hDlg, buf );\r
-\r
-    return 0;\r
-}\r
-\r
-#define MAX_FILTER_LENGTH   128\r
-\r
-LRESULT CALLBACK\r
-GameListDialog(HWND hDlg, UINT message,        WPARAM wParam, LPARAM lParam)\r
-{\r
-  static char szDlgTitle[64];\r
-  static HANDLE hwndText;\r
-  int nItem;\r
-  RECT rect;\r
-  static int sizeX, sizeY;\r
-  int newSizeX, newSizeY;\r
-  MINMAXINFO *mmi;\r
-  static BOOL filterHasFocus = FALSE;\r
-  int count;\r
-  struct GameListStats stats;\r
-  static SnapData sd;\r
-\r
-  switch (message) {\r
-  case WM_INITDIALOG:\r
-    Translate(hDlg, DLG_GameList);\r
-    GetWindowText( hDlg, szDlgTitle, sizeof(szDlgTitle) );\r
-    szDlgTitle[ sizeof(szDlgTitle)-1 ] = '\0';\r
-\r
-    if (gameListDialog) {\r
-      SendDlgItemMessage(hDlg, OPT_GameListText, LB_RESETCONTENT, 0, 0);\r
-    }\r
-\r
-    /* Initialize the dialog items */\r
-    hwndText = GetDlgItem(hDlg, OPT_TagsText);\r
-\r
-    /* Set font */\r
-    SendDlgItemMessage( hDlg, OPT_GameListText, WM_SETFONT, (WPARAM)font[boardSize][GAMELIST_FONT]->hf, MAKELPARAM(TRUE, 0 ));\r
-\r
-    count = GameListToListBox( hDlg, gameListDialog ? TRUE : FALSE, NULL, &stats, FALSE, FALSE );\r
-\r
-    SendDlgItemMessage( hDlg, IDC_GameListFilter, WM_SETTEXT, 0, (LPARAM) "" );\r
-    SendDlgItemMessage( hDlg, IDC_GameListFilter, EM_SETLIMITTEXT, MAX_FILTER_LENGTH, 0 );\r
-\r
-    filterHasFocus = FALSE;\r
-\r
-    /* Size and position the dialog */\r
-    if (!gameListDialog) {\r
-      gameListDialog = hDlg;\r
-      GetClientRect(hDlg, &rect);\r
-      sizeX = rect.right;\r
-      sizeY = rect.bottom;\r
-      if (wpGameList.x != CW_USEDEFAULT && wpGameList.y != CW_USEDEFAULT &&\r
-         wpGameList.width != CW_USEDEFAULT && wpGameList.height != CW_USEDEFAULT) {\r
-       WINDOWPLACEMENT wp;\r
-       EnsureOnScreen(&wpGameList.x, &wpGameList.y, 0, 0);\r
-       wp.length = sizeof(WINDOWPLACEMENT);\r
-       wp.flags = 0;\r
-       wp.showCmd = SW_SHOW;\r
-       wp.ptMaxPosition.x = wp.ptMaxPosition.y = 0;\r
-       wp.rcNormalPosition.left = wpGameList.x;\r
-       wp.rcNormalPosition.right = wpGameList.x + wpGameList.width;\r
-       wp.rcNormalPosition.top = wpGameList.y;\r
-       wp.rcNormalPosition.bottom = wpGameList.y + wpGameList.height;\r
-       SetWindowPlacement(hDlg, &wp);\r
-\r
-       GetClientRect(hDlg, &rect);\r
-       newSizeX = rect.right;\r
-       newSizeY = rect.bottom;\r
-        ResizeEditPlusButtons(hDlg, hwndText, sizeX, sizeY,\r
-                             newSizeX, newSizeY);\r
-       sizeX = newSizeX;\r
-       sizeY = newSizeY;\r
-      } else\r
-        GetActualPlacement( gameListDialog, &wpGameList );\r
-\r
-    }\r
-      GameListUpdateTitle( hDlg, _("Game List"), count, ((ListGame *) gameList.tailPred)->number, &stats ); // [HGM] always update title\r
-    GameListHighlight(lastLoadGameNumber);\r
-    return FALSE;\r
-\r
-  case WM_SIZE:\r
-    newSizeX = LOWORD(lParam);\r
-    newSizeY = HIWORD(lParam);\r
-    ResizeEditPlusButtons(hDlg, GetDlgItem(hDlg, OPT_GameListText),\r
-      sizeX, sizeY, newSizeX, newSizeY);\r
-    sizeX = newSizeX;\r
-    sizeY = newSizeY;\r
-    break;\r
-\r
-  case WM_ENTERSIZEMOVE:\r
-    return OnEnterSizeMove( &sd, hDlg, wParam, lParam );\r
-\r
-  case WM_SIZING:\r
-    return OnSizing( &sd, hDlg, wParam, lParam );\r
-\r
-  case WM_MOVING:\r
-    return OnMoving( &sd, hDlg, wParam, lParam );\r
-\r
-  case WM_EXITSIZEMOVE:\r
-    return OnExitSizeMove( &sd, hDlg, wParam, lParam );\r
-\r
-  case WM_GETMINMAXINFO:\r
-    /* Prevent resizing window too small */\r
-    mmi = (MINMAXINFO *) lParam;\r
-    mmi->ptMinTrackSize.x = 100;\r
-    mmi->ptMinTrackSize.y = 100;\r
-    break;\r
-\r
-  case WM_COMMAND:\r
-      /*\r
-        [AS]\r
-        If <Enter> is pressed while editing the filter, it's better to apply\r
-        the filter rather than selecting the current game.\r
-      */\r
-      if( LOWORD(wParam) == IDC_GameListFilter ) {\r
-          switch( HIWORD(wParam) ) {\r
-          case EN_SETFOCUS:\r
-              filterHasFocus = TRUE;\r
-              break;\r
-          case EN_KILLFOCUS:\r
-              filterHasFocus = FALSE;\r
-              break;\r
-          }\r
-      }\r
-\r
-      if( filterHasFocus && (LOWORD(wParam) == IDOK) ) {\r
-          wParam = IDC_GameListDoFilter;\r
-      }\r
-      /* [AS] End command replacement */\r
-\r
-    switch (LOWORD(wParam)) {\r
-    case OPT_GameListLoad:\r
-      LoadOptionsPopup(hDlg);\r
-      return TRUE;\r
-    case IDOK:\r
-      nItem = SendDlgItemMessage(hDlg, OPT_GameListText, LB_GETCURSEL, 0, 0);\r
-      if (nItem < 0) {\r
-       /* is this possible? */\r
-       DisplayError(_("No game selected"), 0);\r
-       return TRUE;\r
-      }\r
-      break; /* load the game*/\r
-\r
-    case OPT_GameListNext:\r
-      nItem = SendDlgItemMessage(hDlg, OPT_GameListText, LB_GETCURSEL, 0, 0);\r
-      nItem++;\r
-      if (nItem >= ((ListGame *) gameList.tailPred)->number) {\r
-        /* [AS] Removed error message */\r
-       /* DisplayError(_("Can't go forward any further"), 0); */\r
-       return TRUE;\r
-      }\r
-      SendDlgItemMessage(hDlg, OPT_GameListText, LB_SETCURSEL, nItem, 0);\r
-      break; /* load the game*/\r
-\r
-    case OPT_GameListPrev:\r
-#if 0\r
-      nItem = SendDlgItemMessage(hDlg, OPT_GameListText, LB_GETCURSEL, 0, 0);\r
-      nItem--;\r
-      if (nItem < 0) {\r
-        /* [AS] Removed error message, added return */\r
-       /* DisplayError(_("Can't back up any further"), 0); */\r
-        return TRUE;\r
-      }\r
-      SendDlgItemMessage(hDlg, OPT_GameListText, LB_SETCURSEL, nItem, 0);\r
-      break; /* load the game*/\r
-#endif\r
-    /* [AS] */\r
-    case OPT_GameListFind:\r
-    case IDC_GameListDoFilter:\r
-        {\r
-            char filter[MAX_FILTER_LENGTH+1];\r
-\r
-            if( GetDlgItemText( hDlg, IDC_GameListFilter, filter, sizeof(filter) ) >= 0 ) {\r
-                filter[ sizeof(filter)-1 ] = '\0';\r
-                count = GameListToListBox( hDlg, TRUE, filter, &stats, LOWORD(wParam)!=IDC_GameListDoFilter, LOWORD(wParam)==OPT_GameListNarrow );\r
-                GameListUpdateTitle( hDlg, _("Game List"), count, ((ListGame *) gameList.tailPred)->number, &stats );\r
-            }\r
-        }\r
-        return FALSE;\r
-        break;\r
-\r
-    case IDCANCEL:\r
-    case OPT_GameListClose:\r
-      GameListPopDown();\r
-      return TRUE;\r
-\r
-    case OPT_GameListText:\r
-      switch (HIWORD(wParam)) {\r
-      case LBN_DBLCLK:\r
-       nItem = SendMessage((HWND) lParam, LB_GETCURSEL, 0, 0);\r
-       break; /* load the game*/\r
-\r
-      default:\r
-       return FALSE;\r
-      }\r
-      break;\r
-\r
-    default:\r
-      return FALSE;\r
-    }\r
-\r
-    /* Load the game */\r
-    {\r
-        /* [AS] Get index from the item itself, because filtering makes original order unuseable. */\r
-        int index = SendDlgItemMessage(hDlg, OPT_GameListText, LB_GETCURSEL, 0, 0);\r
-        char * text;\r
-        LRESULT res;\r
-\r
-        if( index < 0 ) {\r
-            return TRUE;\r
-        }\r
-\r
-        res = SendDlgItemMessage( hDlg, OPT_GameListText, LB_GETTEXTLEN, index, 0 );\r
-\r
-        if( res == LB_ERR ) {\r
-            return TRUE;\r
-        }\r
-\r
-        text = (char *) malloc( res+1 );\r
-\r
-        res = SendDlgItemMessage( hDlg, OPT_GameListText, LB_GETTEXT, index, (LPARAM)text );\r
-\r
-        index = atoi( text );\r
-\r
-        nItem = index - 1;\r
-\r
-        free( text );\r
-        /* [AS] End: nItem has been "patched" now! */\r
-\r
-        if (cmailMsgLoaded) {\r
-            CmailLoadGame(gameFile, nItem + 1, gameFileName, TRUE);\r
-        }\r
-        else {\r
-            LoadGame(gameFile, nItem + 1, gameFileName, TRUE);\r
-           SetFocus(hwndMain); // [HGM] automatic focus switch\r
-        }\r
-    }\r
-\r
-    return TRUE;\r
-\r
-  default:\r
-    break;\r
-  }\r
-  return FALSE;\r
-}\r
-\r
-\r
-VOID GameListPopUp(FILE *fp, char *filename)\r
-{\r
-  FARPROC lpProc;\r
-\r
-  gameFile = fp;\r
-  if (gameFileName != filename) {\r
-    if (gameFileName) free(gameFileName);\r
-    gameFileName = StrSave(filename);\r
-  }\r
-  CheckMenuItem(GetMenu(hwndMain), IDM_ShowGameList, MF_CHECKED);\r
-  EnableMenuItem(GetMenu(hwndMain), IDM_SaveSelected, MF_ENABLED);\r
-  if (gameListDialog) {\r
-    SendMessage(gameListDialog, WM_INITDIALOG, 0, 0);\r
-    if (!gameListUp) ShowWindow(gameListDialog, SW_SHOW);\r
-    else SetFocus(gameListDialog);\r
-  } else {\r
-    lpProc = MakeProcInstance((FARPROC)GameListDialog, hInst);\r
-    CreateDialog(hInst, MAKEINTRESOURCE(DLG_GameList),\r
-      hwndMain, (DLGPROC)lpProc);\r
-    FreeProcInstance(lpProc);\r
-  }\r
-  gameListUp = TRUE;\r
-}\r
-\r
-FILE *GameFile()\r
-{\r
-  return gameFile;\r
-}\r
-\r
-VOID GameListPopDown(void)\r
-{\r
-  CheckMenuItem(GetMenu(hwndMain), IDM_ShowGameList, MF_UNCHECKED);\r
-  EnableMenuItem(GetMenu(hwndMain), IDM_SaveSelected, MF_GRAYED);\r
-  if (gameListDialog) ShowWindow(gameListDialog, SW_HIDE);\r
-  gameListUp = FALSE;\r
-}\r
-\r
-\r
-VOID GameListHighlight(int index)\r
-{\r
-  char buf[MSG_SIZ];\r
-  int i, j, k, n, res = 0;\r
-  if (gameListDialog == NULL) return;\r
-  for(i=64; ; i+=i) {\r
-        res = SendDlgItemMessage( gameListDialog, OPT_GameListText, LB_GETTEXT, i, (LPARAM)buf );\r
-        if(res == LB_ERR || index < atoi( buf )) break;\r
-  }\r
-  j = i/2;\r
-  while(i-j > 1) {\r
-        n = (i + j) >> 1;\r
-        res = SendDlgItemMessage( gameListDialog, OPT_GameListText, LB_GETTEXT, n, (LPARAM)buf );\r
-        if(res == LB_ERR || index < (k = atoi( buf ))) i = n; else {\r
-            j = n;\r
-            if(index == k) break;\r
-        }\r
-  }\r
-  SendDlgItemMessage(gameListDialog, OPT_GameListText, LB_SETCURSEL, j, 0);\r
-}\r
-\r
-\r
-VOID GameListDestroy()\r
-{\r
-  GameListPopDown();\r
-  if (gameFileName) {\r
-    free(gameFileName);\r
-    gameFileName = NULL;\r
-  }\r
-}\r
-\r
-VOID ShowGameListProc()\r
-{\r
-  if (gameListUp) {\r
-    if(gameListDialog) SetFocus(gameListDialog);\r
-//    GameListPopDown();\r
-  } else {\r
-    if (gameFileName) {\r
-      GameListPopUp(gameFile, gameFileName);\r
-    } else {\r
-      DisplayError(_("No game list"), 0);\r
-    }\r
-  }\r
-}\r
-\r
-HGLOBAL ExportGameListAsText()\r
-{\r
-    HGLOBAL result = NULL;\r
-    LPVOID lpMem = NULL;\r
-    ListGame * lg = (ListGame *) gameList.head;\r
-    int nItem;\r
-    DWORD dwLen = 0;\r
-\r
-    if( ! gameFileName || ((ListGame *) gameList.tailPred)->number <= 0 ) {\r
-        DisplayError(_(_("Game list not loaded or empty")), 0);\r
-        return NULL;\r
-    }\r
-\r
-    /* Get list size */\r
-    for (nItem = 0; nItem < ((ListGame *) gameList.tailPred)->number; nItem++){\r
-        char * st = GameListLineFull(lg->number, &lg->gameInfo);\r
-\r
-        dwLen += strlen(st) + 2; /* Add extra characters for "\r\n" */\r
-\r
-        free(st);\r
-        lg = (ListGame *) lg->node.succ;\r
-    }\r
-\r
-    /* Allocate memory for the list */\r
-    result = GlobalAlloc(GHND, dwLen+1 );\r
-\r
-    if( result != NULL ) {\r
-        lpMem = GlobalLock(result);\r
-    }\r
-\r
-    /* Copy the list into the global memory block */\r
-    if( lpMem != NULL ) {\r
-        char * dst = (char *) lpMem;\r
-        size_t len;\r
-\r
-        lg = (ListGame *) gameList.head;\r
-\r
-        for (nItem = 0; nItem < ((ListGame *) gameList.tailPred)->number; nItem++){\r
-            char * st = GameListLineFull(lg->number, &lg->gameInfo);\r
-\r
-            len = sprintf( dst, "%s\r\n", st );\r
-            dst += len;\r
-\r
-            free(st);\r
-            lg = (ListGame *) lg->node.succ;\r
-        }\r
-\r
-        GlobalUnlock( result );\r
-    }\r
-\r
-    return result;\r
-}\r
diff --git a/winboard/whistory.c b/winboard/whistory.c
deleted file mode 100644 (file)
index 4d0080f..0000000
+++ /dev/null
@@ -1,309 +0,0 @@
-/*\r
- * Move history for WinBoard\r
- *\r
- * Author: Alessandro Scotti (Dec 2005)\r
- * front-end code split off by HGM\r
- *\r
- * Copyright 2005 Alessandro Scotti\r
- *\r
- * Enhancements Copyright 2009, 2010, 2014, 2015, 2016 Free Software\r
- * Foundation, Inc.\r
- *\r
- * ------------------------------------------------------------------------\r
- *\r
- * GNU XBoard is free software: you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation, either version 3 of the License, or (at\r
- * your option) any later version.\r
- *\r
- * GNU XBoard is distributed in the hope that it will be useful, but\r
- * WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
- * General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program. If not, see http://www.gnu.org/licenses/.\r
- *\r
- * ------------------------------------------------------------------------\r
- ** See the file ChangeLog for a revision history.  */\r
-\r
-#include "config.h"\r
-\r
-#include <stdio.h>\r
-#include <stdlib.h>\r
-#include <malloc.h>\r
-#include <windows.h> /* required for all Windows applications */\r
-#include <richedit.h>\r
-#include <commdlg.h>\r
-#include <dlgs.h>\r
-\r
-#include "common.h"\r
-#include "frontend.h"\r
-#include "backend.h"\r
-#include "winboard.h"\r
-#include "wsnap.h"\r
-\r
-// templates for calls into back-end\r
-void RefreshMemoContent P((void));\r
-void MemoContentUpdated P((void));\r
-void FindMoveByCharIndex P(( int char_index ));\r
-\r
-#define DEFAULT_COLOR       0xFFFFFFFF\r
-\r
-#define H_MARGIN            2\r
-#define V_MARGIN            2\r
-\r
-static BOOLEAN moveHistoryDialogUp = FALSE;\r
-\r
-// ------------- low-level front-end actions called by MoveHistory back-end -----------------\r
-\r
-// low-level front-end, after calculating from & to is left to caller\r
-// it task is to highlight the indicated characters. (In WinBoard it makes them bold and blue.)\r
-void HighlightMove( int from, int to, Boolean highlight )\r
-{\r
-        CHARFORMAT cf;\r
-        HWND hMemo = GetDlgItem( moveHistoryDialog, IDC_MoveHistory );\r
-\r
-        SendMessage( hMemo, EM_SETSEL, from, to);\r
-\r
-\r
-        /* Set style */\r
-        ZeroMemory( &cf, sizeof(cf) );\r
-\r
-        cf.cbSize = sizeof(cf);\r
-        cf.dwMask = CFM_BOLD | CFM_COLOR;\r
-\r
-        if( highlight ) {\r
-            cf.dwEffects |= CFE_BOLD;\r
-            cf.crTextColor = RGB( 0x00, 0x00, 0xFF );\r
-        }\r
-        else {\r
-            cf.dwEffects |= CFE_AUTOCOLOR;\r
-        }\r
-\r
-        SendMessage( hMemo, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM) &cf );\r
-}\r
-\r
-// low-level front-end, but replace Windows data types to make it callable from back-end\r
-// its task is to clear the contents of the move-history text edit\r
-void ClearHistoryMemo()\r
-{\r
-    SendDlgItemMessage( moveHistoryDialog, IDC_MoveHistory, WM_SETTEXT, 0, (LPARAM) "" );\r
-}\r
-\r
-// low-level front-end, made callable from back-end by passing flags and color numbers\r
-// its task is to append the given text to the text edit\r
-// the bold argument says 0 = normal, 1 = bold typeface\r
-// the colorNr argument says 0 = font-default, 1 = gray\r
-int AppendToHistoryMemo( char * text, int bold, int colorNr )\r
-{\r
-    CHARFORMAT cf;\r
-    DWORD flags = bold ? CFE_BOLD :0;\r
-    DWORD color = colorNr ? GetSysColor(COLOR_GRAYTEXT) : DEFAULT_COLOR;\r
-\r
-    HWND hMemo = GetDlgItem( moveHistoryDialog, IDC_MoveHistory );\r
-\r
-    /* Select end of text */\r
-    int cbTextLen = (int) SendMessage( hMemo, WM_GETTEXTLENGTH, 0, 0 );\r
-\r
-    SendMessage( hMemo, EM_SETSEL, cbTextLen, cbTextLen );\r
-\r
-    /* Set style */\r
-    ZeroMemory( &cf, sizeof(cf) );\r
-\r
-    cf.cbSize = sizeof(cf);\r
-    cf.dwMask = CFM_BOLD | CFM_ITALIC | CFM_COLOR | CFM_UNDERLINE;\r
-    cf.dwEffects = flags;\r
-\r
-    if( color != DEFAULT_COLOR ) {\r
-        cf.crTextColor = color;\r
-    }\r
-    else {\r
-        cf.dwEffects |= CFE_AUTOCOLOR;\r
-    }\r
-\r
-    SendMessage( hMemo, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM) &cf );\r
-\r
-    /* Append text */\r
-    SendMessage( hMemo, EM_REPLACESEL, (WPARAM) FALSE, (LPARAM) text );\r
-\r
-    /* Return offset of appended text */\r
-    return cbTextLen;\r
-}\r
-\r
-// low-level front-end; wrapper for the code to scroll the mentioned character in view (-1 = end)\r
-void ScrollToCurrent(int caretPos)\r
-{\r
-    if(caretPos < 0)\r
-        caretPos = (int) SendDlgItemMessage( moveHistoryDialog, IDC_MoveHistory, WM_GETTEXTLENGTH, 0, 0 );\r
-    SendDlgItemMessage( moveHistoryDialog, IDC_MoveHistory, EM_SETSEL, caretPos, caretPos );\r
-\r
-    SendDlgItemMessage( moveHistoryDialog, IDC_MoveHistory, EM_SCROLLCARET, 0, 0 );\r
-}\r
-\r
-\r
-// ------------------------------ call backs --------------------------\r
-\r
-// front-end. Universal call-back for any event. Recognized vents are dialog creation, OK and cancel button-press\r
-// (dead code, as these buttons do not exist?), mouse clicks on the text edit, and moving / sizing\r
-LRESULT CALLBACK HistoryDialogProc( HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam )\r
-{\r
-    static SnapData sd;\r
-\r
-    switch (message) {\r
-    case WM_INITDIALOG:\r
-        if( moveHistoryDialog == NULL ) {\r
-            moveHistoryDialog = hDlg;\r
-            Translate(hDlg, DLG_MoveHistory);\r
-\r
-            /* Enable word wrapping and notifications */\r
-            SendDlgItemMessage( moveHistoryDialog, IDC_MoveHistory, EM_SETTARGETDEVICE, 0, 0 );\r
-\r
-            SendDlgItemMessage( moveHistoryDialog, IDC_MoveHistory, EM_SETEVENTMASK, 0, ENM_MOUSEEVENTS );\r
-\r
-            /* Set font */\r
-           SendDlgItemMessage( moveHistoryDialog, IDC_MoveHistory, WM_SETFONT, (WPARAM)font[boardSize][MOVEHISTORY_FONT]->hf, MAKELPARAM(TRUE, 0 ));\r
-\r
-            /* Restore window placement */\r
-            RestoreWindowPlacement( hDlg, &wpMoveHistory );\r
-        }\r
-\r
-        /* Update memo */\r
-        RefreshMemoContent();\r
-\r
-        MemoContentUpdated();\r
-\r
-        return FALSE;\r
-\r
-    case WM_COMMAND:\r
-        switch (LOWORD(wParam)) {\r
-        case IDOK:\r
-          EndDialog(hDlg, TRUE);\r
-          return TRUE;\r
-\r
-        case IDCANCEL:\r
-          EndDialog(hDlg, FALSE);\r
-          return TRUE;\r
-\r
-        default:\r
-          break;\r
-        }\r
-\r
-        break;\r
-\r
-    case WM_NOTIFY:\r
-        if( wParam == IDC_MoveHistory ) {\r
-            MSGFILTER * lpMF = (MSGFILTER *) lParam;\r
-\r
-            if( lpMF->msg == WM_LBUTTONDBLCLK && (lpMF->wParam & (MK_CONTROL | MK_SHIFT)) == 0 ) {\r
-                POINTL pt;\r
-                LRESULT index;\r
-\r
-                pt.x = LOWORD( lpMF->lParam );\r
-                pt.y = HIWORD( lpMF->lParam );\r
-\r
-                index = SendDlgItemMessage( hDlg, IDC_MoveHistory, EM_CHARFROMPOS, 0, (LPARAM) &pt );\r
-\r
-                FindMoveByCharIndex( index ); // [HGM] also does the actual moving to it, now\r
-\r
-                /* Zap the message for good: apparently, returning non-zero is not enough */\r
-                lpMF->msg = WM_USER;\r
-\r
-                return TRUE;\r
-            }\r
-        }\r
-        break;\r
-\r
-    case WM_SIZE:\r
-        SetWindowPos( GetDlgItem( moveHistoryDialog, IDC_MoveHistory ),\r
-            HWND_TOP,\r
-            H_MARGIN, V_MARGIN,\r
-            LOWORD(lParam) - 2*H_MARGIN,\r
-            HIWORD(lParam) - 2*V_MARGIN,\r
-            SWP_NOZORDER );\r
-        break;\r
-\r
-    case WM_GETMINMAXINFO:\r
-        {\r
-            MINMAXINFO * mmi = (MINMAXINFO *) lParam;\r
-        \r
-            mmi->ptMinTrackSize.x = 100;\r
-            mmi->ptMinTrackSize.y = 100;\r
-        }\r
-        break;\r
-\r
-    case WM_CLOSE:\r
-        MoveHistoryPopDown();\r
-        break;\r
-\r
-    case WM_ENTERSIZEMOVE:\r
-        return OnEnterSizeMove( &sd, hDlg, wParam, lParam );\r
-\r
-    case WM_SIZING:\r
-        return OnSizing( &sd, hDlg, wParam, lParam );\r
-\r
-    case WM_MOVING:\r
-        return OnMoving( &sd, hDlg, wParam, lParam );\r
-\r
-    case WM_EXITSIZEMOVE:\r
-        return OnExitSizeMove( &sd, hDlg, wParam, lParam );\r
-    }\r
-\r
-    return FALSE;\r
-}\r
-\r
-// ------------ standard entry points into MoveHistory code -----------\r
-\r
-// front-end\r
-VOID MoveHistoryPopUp()\r
-{\r
-  FARPROC lpProc;\r
-  \r
-  CheckMenuItem(GetMenu(hwndMain), IDM_ShowMoveHistory, MF_CHECKED);\r
-\r
-  if( moveHistoryDialog ) {\r
-    SendMessage( moveHistoryDialog, WM_INITDIALOG, 0, 0 );\r
-\r
-    if( ! moveHistoryDialogUp ) {\r
-        ShowWindow(moveHistoryDialog, SW_SHOW);\r
-    }\r
-  }\r
-  else {\r
-    lpProc = MakeProcInstance( (FARPROC) HistoryDialogProc, hInst );\r
-\r
-    /* Note to self: dialog must have the WS_VISIBLE style set, otherwise it's not shown! */\r
-    CreateDialog( hInst, MAKEINTRESOURCE(DLG_MoveHistory), hwndMain, (DLGPROC)lpProc );\r
-\r
-    FreeProcInstance(lpProc);\r
-  }\r
-\r
-  moveHistoryDialogUp = TRUE;\r
-\r
-// Note that in WIndows creating the dialog causes its call-back to perform\r
-// RefreshMemoContent() and MemoContentUpdated() immediately after it is realized.\r
-// To port this to X we might have to do that from here.\r
-}\r
-\r
-// front-end\r
-VOID MoveHistoryPopDown()\r
-{\r
-  CheckMenuItem(GetMenu(hwndMain), IDM_ShowMoveHistory, MF_UNCHECKED);\r
-\r
-  if( moveHistoryDialog ) {\r
-      ShowWindow(moveHistoryDialog, SW_HIDE);\r
-  }\r
-\r
-  moveHistoryDialogUp = FALSE;\r
-}\r
-\r
-// front-end\r
-Boolean MoveHistoryIsUp()\r
-{\r
-    return moveHistoryDialogUp;\r
-}\r
-\r
-// front-end\r
-Boolean MoveHistoryDialogExists()\r
-{\r
-    return moveHistoryDialog != NULL;\r
-}\r
diff --git a/winboard/winboard.c b/winboard/winboard.c
deleted file mode 100644 (file)
index e4b8692..0000000
+++ /dev/null
@@ -1,10228 +0,0 @@
-/*\r
- * WinBoard.c -- Windows NT front end to XBoard\r
- *\r
- * Copyright 1991 by Digital Equipment Corporation, Maynard,\r
- * Massachusetts.\r
- *\r
- * Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006,\r
- * 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free\r
- * Software Foundation, Inc.\r
- *\r
- * Enhancements Copyright 2005 Alessandro Scotti\r
- *\r
- * XBoard borrows its colors and the bitmaps.xchess bitmap set from XChess,\r
- * which was written and is copyrighted by Wayne Christopher.\r
- *\r
- * The following terms apply to Digital Equipment Corporation's copyright\r
- * interest in XBoard:\r
- * ------------------------------------------------------------------------\r
- * All Rights Reserved\r
- *\r
- * Permission to use, copy, modify, and distribute this software and its\r
- * documentation for any purpose and without fee is hereby granted,\r
- * provided that the above copyright notice appear in all copies and that\r
- * both that copyright notice and this permission notice appear in\r
- * supporting documentation, and that the name of Digital not be\r
- * used in advertising or publicity pertaining to distribution of the\r
- * software without specific, written prior permission.\r
- *\r
- * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING\r
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL\r
- * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR\r
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,\r
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,\r
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS\r
- * SOFTWARE.\r
- * ------------------------------------------------------------------------\r
- *\r
- * The following terms apply to the enhanced version of XBoard\r
- * distributed by the Free Software Foundation:\r
- * ------------------------------------------------------------------------\r
- *\r
- * GNU XBoard is free software: you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation, either version 3 of the License, or (at\r
- * your option) any later version.\r
- *\r
- * GNU XBoard is distributed in the hope that it will be useful, but\r
- * WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
- * General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program. If not, see http://www.gnu.org/licenses/.  *\r
- *\r
- *------------------------------------------------------------------------\r
- ** See the file ChangeLog for a revision history.  */\r
-\r
-#include "config.h"\r
-\r
-#include <windows.h>\r
-#include <winuser.h>\r
-#include <winsock.h>\r
-#include <commctrl.h>\r
-\r
-#include <stdio.h>\r
-#include <stdlib.h>\r
-#include <time.h>\r
-#include <malloc.h>\r
-#include <sys/stat.h>\r
-#include <fcntl.h>\r
-#include <math.h>\r
-#include <commdlg.h>\r
-#include <dlgs.h>\r
-#include <richedit.h>\r
-#include <mmsystem.h>\r
-#include <ctype.h>\r
-#include <io.h>\r
-\r
-#if __GNUC__\r
-#include <errno.h>\r
-#include <string.h>\r
-#endif\r
-\r
-#include "common.h"\r
-#include "frontend.h"\r
-#include "backend.h"\r
-#include "winboard.h"\r
-#include "moves.h"\r
-#include "wclipbrd.h"\r
-#include "woptions.h"\r
-#include "wsockerr.h"\r
-#include "defaults.h"\r
-#include "help.h"\r
-#include "wsnap.h"\r
-\r
-#define SLASH '/'\r
-#define DATADIR "~~"\r
-\r
-//void InitEngineUCI( const char * iniDir, ChessProgramState * cps );\r
-\r
-  int myrandom(void);\r
-  void mysrandom(unsigned int seed);\r
-\r
-extern int whiteFlag, blackFlag;\r
-Boolean flipClock = FALSE;\r
-extern HANDLE chatHandle[];\r
-extern enum ICS_TYPE ics_type;\r
-\r
-int  MySearchPath P((char *installDir, char *name, char *fullname));\r
-int  MyGetFullPathName P((char *name, char *fullname));\r
-void DisplayHoldingsCount(HDC hdc, int x, int y, int align, int copyNumber);\r
-VOID NewVariantPopup(HWND hwnd);\r
-int FinishMove P((ChessMove moveType, int fromX, int fromY, int toX, int toY,\r
-                  /*char*/int promoChar));\r
-void DisplayMove P((int moveNumber));\r
-void ChatPopUp P((char *s));\r
-typedef struct {\r
-  ChessSquare piece;  \r
-  POINT pos;      /* window coordinates of current pos */\r
-  POINT lastpos;  /* window coordinates of last pos - used for clipping */\r
-  POINT from;     /* board coordinates of the piece's orig pos */\r
-  POINT to;       /* board coordinates of the piece's new pos */\r
-} AnimInfo;\r
-\r
-static AnimInfo animInfo = { EmptySquare, {-1,-1}, {-1,-1}, {-1,-1} };\r
-\r
-typedef struct {\r
-  POINT start;    /* window coordinates of start pos */\r
-  POINT pos;      /* window coordinates of current pos */\r
-  POINT lastpos;  /* window coordinates of last pos - used for clipping */\r
-  POINT from;     /* board coordinates of the piece's orig pos */\r
-  ChessSquare piece;\r
-} DragInfo;\r
-\r
-static DragInfo dragInfo = { {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, EmptySquare };\r
-\r
-typedef struct {\r
-  POINT sq[2];   /* board coordinates of from, to squares */\r
-} HighlightInfo;\r
-\r
-static HighlightInfo highlightInfo        = { {{-1, -1}, {-1, -1}} };\r
-static HighlightInfo premoveHighlightInfo = { {{-1, -1}, {-1, -1}} };\r
-static HighlightInfo partnerHighlightInfo = { {{-1, -1}, {-1, -1}} };\r
-static HighlightInfo oldPartnerHighlight  = { {{-1, -1}, {-1, -1}} };\r
-\r
-typedef struct { // [HGM] atomic\r
-  int fromX, fromY, toX, toY, radius;\r
-} ExplodeInfo;\r
-\r
-static ExplodeInfo explodeInfo;\r
-\r
-/* Window class names */\r
-char szAppName[] = "WinBoard";\r
-char szConsoleName[] = "WBConsole";\r
-\r
-/* Title bar text */\r
-char szTitle[] = "WinBoard";\r
-char szConsoleTitle[] = "I C S Interaction";\r
-\r
-char *programName;\r
-char *settingsFileName;\r
-Boolean saveSettingsOnExit;\r
-char installDir[MSG_SIZ];\r
-int errorExitStatus;\r
-\r
-BoardSize boardSize;\r
-Boolean chessProgram;\r
-//static int boardX, boardY;\r
-int  minX, minY; // [HGM] placement: volatile limits on upper-left corner\r
-int squareSize, lineGap, minorSize;\r
-static int winW, winH;\r
-static RECT messageRect, whiteRect, blackRect, leftLogoRect, rightLogoRect; // [HGM] logo\r
-static int logoHeight = 0;\r
-static char messageText[MESSAGE_TEXT_MAX];\r
-static int clockTimerEvent = 0;\r
-static int loadGameTimerEvent = 0;\r
-static int analysisTimerEvent = 0;\r
-static DelayedEventCallback delayedTimerCallback;\r
-static int delayedTimerEvent = 0;\r
-static int buttonCount = 2;\r
-char *icsTextMenuString;\r
-char *icsNames;\r
-char *firstChessProgramNames;\r
-char *secondChessProgramNames;\r
-\r
-#define PALETTESIZE 256\r
-\r
-HINSTANCE hInst;          /* current instance */\r
-Boolean alwaysOnTop = FALSE;\r
-RECT boardRect;\r
-COLORREF lightSquareColor, darkSquareColor, whitePieceColor, \r
-  blackPieceColor, highlightSquareColor, premoveHighlightColor;\r
-COLORREF markerColor[8] = { 0x00FFFF, 0x0000FF, 0x00FF00, 0xFF0000, 0xFFFF00, 0xFF00FF, 0xFFFFFF, 0x000000 };\r
-HPALETTE hPal;\r
-ColorClass currentColorClass;\r
-\r
-static HWND savedHwnd;\r
-HWND hCommPort = NULL;    /* currently open comm port */\r
-static HWND hwndPause;    /* pause button */\r
-static HBITMAP pieceBitmap[3][(int) BlackPawn]; /* [HGM] nr of bitmaps referred to bP in stead of wK */\r
-static HBRUSH lightSquareBrush, darkSquareBrush,\r
-  blackSquareBrush, /* [HGM] for band between board and holdings */\r
-  explodeBrush,     /* [HGM] atomic */\r
-  markerBrush[8],   /* [HGM] markers */\r
-  whitePieceBrush, blackPieceBrush, iconBkgndBrush /*, outlineBrush*/;\r
-static POINT gridEndpoints[(BOARD_RANKS + BOARD_FILES + 2) * 2];\r
-static DWORD gridVertexCounts[BOARD_RANKS + BOARD_FILES + 2];\r
-static HPEN gridPen = NULL;\r
-static HPEN highlightPen = NULL;\r
-static HPEN premovePen = NULL;\r
-static NPLOGPALETTE pLogPal;\r
-static BOOL paletteChanged = FALSE;\r
-static HICON iconWhite, iconBlack, iconCurrent;\r
-static int doingSizing = FALSE;\r
-static int lastSizing = 0;\r
-static int prevStderrPort;\r
-static HBITMAP userLogo;\r
-\r
-static HBITMAP liteBackTexture = NULL;\r
-static HBITMAP darkBackTexture = NULL;\r
-static int liteBackTextureMode = BACK_TEXTURE_MODE_PLAIN;\r
-static int darkBackTextureMode = BACK_TEXTURE_MODE_PLAIN;\r
-static int backTextureSquareSize = 0;\r
-static struct { int x; int y; int mode; } backTextureSquareInfo[BOARD_RANKS][BOARD_FILES];\r
-\r
-#if __GNUC__ && !defined(_winmajor)\r
-#define oldDialog 0 /* cygwin doesn't define _winmajor; mingw does */\r
-#else\r
-\r
-#if defined(_winmajor)\r
-#define oldDialog (_winmajor < 4)\r
-#else\r
-#define oldDialog 0\r
-#endif\r
-#endif\r
-\r
-#define INTERNATIONAL\r
-\r
-#ifdef INTERNATIONAL\r
-#  define _(s) T_(s)\r
-#  define N_(s) s\r
-#else\r
-#  define _(s) s\r
-#  define N_(s) s\r
-#  define T_(s) s\r
-#  define Translate(x, y)\r
-#  define LoadLanguageFile(s)\r
-#endif\r
-\r
-#ifdef INTERNATIONAL\r
-\r
-Boolean barbaric; // flag indicating if translation is needed\r
-\r
-// list of item numbers used in each dialog (used to alter language at run time)\r
-\r
-#define ABOUTBOX -1  /* not sure why these are needed */\r
-#define ABOUTBOX2 -1\r
-\r
-int dialogItems[][42] = {\r
-{ ABOUTBOX, IDOK, OPT_MESS, 400 }, \r
-{ DLG_TimeControl, IDC_Babble, OPT_TCUseMoves, OPT_TCUseInc, OPT_TCUseFixed, \r
-  OPT_TCtext1, OPT_TCtext2, OPT_TCitext1, OPT_TCitext2, OPT_TCftext, GPB_Factors,   IDC_Factor1, IDC_Factor2, IDOK, IDCANCEL }, \r
-{ DLG_LoadOptions, OPT_Autostep, OPT_AStext1, OPT_Exact, OPT_Subset, OPT_Struct, OPT_Material, OPT_Range, OPT_Difference,\r
-  OPT_elo1t, OPT_elo2t, OPT_datet, OPT_Stretch, OPT_Stretcht, OPT_Reversed, OPT_SearchMode, OPT_Mirror, OPT_thresholds,\r
-  OPT_Ranget, IDOK, IDCANCEL }, \r
-{ DLG_SaveOptions, OPT_Autosave, OPT_AVPrompt, OPT_AVToFile, OPT_AVBrowse,\r
-  801, OPT_PGN, OPT_Old, OPT_OutOfBookInfo, IDOK, IDCANCEL }, \r
-{ 1536, 1090, IDC_Directories, 1089, 1091, IDOK, IDCANCEL, 1038, IDC_IndexNr, 1037 }, \r
-{ DLG_CommPort, IDOK, IDCANCEL, IDC_Port, IDC_Rate, IDC_Bits, IDC_Parity,\r
-  IDC_Stop, IDC_Flow, OPT_SerialHelp }, \r
-{ DLG_EditComment, IDOK, OPT_CancelComment, OPT_ClearComment, OPT_EditComment }, \r
-{ DLG_PromotionKing, PB_Chancellor, PB_Archbishop, PB_Queen, PB_Rook, \r
-  PB_Bishop, PB_Knight, PB_King, IDCANCEL, IDC_Yes, IDC_No, IDC_Centaur }, \r
-{ ABOUTBOX2, IDC_ChessBoard }, \r
-{ DLG_GameList, OPT_GameListLoad, OPT_GameListPrev, OPT_GameListNext, \r
-  OPT_GameListClose, IDC_GameListDoFilter }, \r
-{ DLG_EditTags, IDOK, OPT_TagsCancel, OPT_EditTags }, \r
-{ DLG_Error, IDOK }, \r
-{ DLG_Colorize, IDOK, IDCANCEL, OPT_ChooseColor, OPT_Bold, OPT_Italic,\r
-  OPT_Underline, OPT_Strikeout, OPT_Sample }, \r
-{ DLG_Question, IDOK, IDCANCEL, OPT_QuestionText }, \r
-{ DLG_Startup, IDC_Welcome, OPT_ChessEngine, OPT_ChessServer, OPT_View,\r
-  IDC_SPECIFY_ENG_STATIC, IDC_SPECIFY_SERVER_STATIC, OPT_AnyAdditional,\r
-  IDOK, IDCANCEL, IDM_HELPCONTENTS }, \r
-{ DLG_IndexNumber, IDC_Index }, \r
-{ DLG_TypeInMove, IDOK, IDCANCEL }, \r
-{ DLG_TypeInName, IDOK, IDCANCEL }, \r
-{ DLG_Sound, IDC_Event, OPT_NoSound, OPT_DefaultBeep, OPT_BuiltInSound,\r
-  OPT_WavFile, OPT_BrowseSound, OPT_DefaultSounds, IDOK, IDCANCEL, OPT_PlaySound }, \r
-{ DLG_GeneralOptions, IDOK, IDCANCEL, OPT_AlwaysOnTop, OPT_HighlightLastMove,\r
-  OPT_AlwaysQueen, OPT_PeriodicUpdates, OPT_AnimateDragging, OPT_PonderNextMove,\r
-  OPT_AnimateMoving, OPT_PopupExitMessage, OPT_AutoFlag, OPT_PopupMoveErrors,\r
-  OPT_AutoFlipView, OPT_ShowButtonBar, OPT_AutoRaiseBoard, OPT_ShowCoordinates,\r
-  OPT_Blindfold, OPT_ShowThinking, OPT_HighlightDragging, OPT_TestLegality,\r
-  OPT_SaveExtPGN, OPT_HideThinkFromHuman, OPT_ExtraInfoInMoveHistory,\r
-  OPT_HighlightMoveArrow, OPT_AutoLogo ,OPT_SmartMove }, \r
-{ DLG_IcsOptions, IDOK, IDCANCEL, OPT_AutoComment, OPT_AutoKibitz, OPT_AutoObserve,\r
-  OPT_GetMoveList, OPT_LocalLineEditing, OPT_QuietPlay, OPT_SeekGraph, OPT_AutoRefresh,\r
-  OPT_BgObserve, OPT_DualBoard, OPT_Premove, OPT_PremoveWhite, OPT_PremoveBlack,\r
-  OPT_SmartMove, OPT_IcsAlarm, IDC_Sec, OPT_ChooseShoutColor, OPT_ChooseSShoutColor,\r
-  OPT_ChooseChannel1Color, OPT_ChooseChannelColor, OPT_ChooseKibitzColor,\r
-  OPT_ChooseTellColor, OPT_ChooseChallengeColor, OPT_ChooseRequestColor,\r
-  OPT_ChooseSeekColor, OPT_ChooseNormalColor, OPT_ChooseBackgroundColor,\r
-  OPT_DefaultColors, OPT_DontColorize, IDC_Boxes, GPB_Colors, GPB_Premove,\r
-  GPB_General, GPB_Alarm, OPT_AutoCreate }, \r
-{ DLG_BoardOptions, IDOK, IDCANCEL, OPT_SizeTiny, OPT_SizeTeeny, OPT_SizeDinky,\r
-  OPT_SizePetite, OPT_SizeSlim, OPT_SizeSmall, OPT_SizeMediocre, OPT_SizeMiddling,\r
-  OPT_SizeAverage, OPT_SizeModerate, OPT_SizeMedium, OPT_SizeBulky, OPT_SizeLarge,\r
-  OPT_SizeBig, OPT_SizeHuge, OPT_SizeGiant, OPT_SizeColossal, OPT_SizeTitanic,\r
-  OPT_ChooseLightSquareColor, OPT_ChooseDarkSquareColor, OPT_ChooseWhitePieceColor,\r
-  OPT_ChooseBlackPieceColor, OPT_ChooseHighlightSquareColor, OPT_ChoosePremoveHighlightColor,\r
-  OPT_Monochrome, OPT_AllWhite, OPT_UpsideDown, OPT_DefaultBoardColors, GPB_Colors,\r
-  IDC_Light, IDC_Dark, IDC_White, IDC_Black, IDC_High, IDC_PreHigh, GPB_Size, OPT_Bitmaps, OPT_PieceFont, OPT_Grid }, \r
-{ DLG_NewVariant, IDOK, IDCANCEL, OPT_VariantNormal, OPT_VariantFRC, OPT_VariantWildcastle,\r
-  OPT_VariantNocastle, OPT_VariantLosers, OPT_VariantGiveaway, OPT_VariantSuicide,\r
-  OPT_Variant3Check, OPT_VariantTwoKings, OPT_VariantAtomic, OPT_VariantCrazyhouse,\r
-  OPT_VariantBughouse, OPT_VariantTwilight, OPT_VariantShogi, OPT_VariantSuper,\r
-  OPT_VariantKnightmate, OPT_VariantBerolina, OPT_VariantCylinder, OPT_VariantFairy,\r
-  OPT_VariantMakruk, OPT_VariantGothic, OPT_VariantCapablanca, OPT_VariantJanus,\r
-  OPT_VariantCRC, OPT_VariantFalcon, OPT_VariantCourier, OPT_VariantGreat, OPT_VariantSChess,\r
-  OPT_VariantShatranj, OPT_VariantXiangqi, GPB_Variant, GPB_Board, IDC_Height,\r
-  IDC_Width, IDC_Hand, IDC_Pieces, IDC_Def }, \r
-{ DLG_Fonts, IDOK, IDCANCEL, OPT_ChooseClockFont, OPT_ChooseMessageFont,\r
-  OPT_ChooseCoordFont, OPT_ChooseTagFont, OPT_ChooseCommentsFont,  OPT_ChooseConsoleFont, OPT_ChooseMoveHistoryFont, OPT_DefaultFonts,\r
-  OPT_ClockFont, OPT_MessageFont, OPT_CoordFont, OPT_EditTagsFont, OPT_ChoosePieceFont, OPT_MessageFont8,\r
-  OPT_SampleGameListFont, OPT_ChooseGameListFont, OPT_MessageFont7, \r
-  OPT_CommentsFont, OPT_MessageFont5, GPB_Current, GPB_All, OPT_MessageFont6 }, \r
-{ DLG_NewGameFRC, IDC_NFG_Label, IDC_NFG_Random, IDOK, IDCANCEL }, \r
-{ DLG_GameListOptions, IDC_GLT, IDC_GLT_Up, IDC_GLT_Down, IDC_GLT_Restore,\r
-  IDC_GLT_Default, IDOK, IDCANCEL, IDC_GLT_RestoreTo }, \r
-{ DLG_MoveHistory }, \r
-{ DLG_EvalGraph }, \r
-{ DLG_EngineOutput, IDC_EngineLabel1, IDC_Engine1_NPS, IDC_EngineLabel2, IDC_Engine2_NPS }, \r
-{ DLG_Chat, IDC_Partner, IDC_Clear, IDC_Send,  }, \r
-{ DLG_EnginePlayOptions, IDC_EpPonder, IDC_EpShowThinking, IDC_EpHideThinkingHuman,\r
-  IDC_EpPeriodicUpdates, GPB_Adjudications, IDC_Draw, IDC_Moves, IDC_Threshold,\r
-  IDC_Centi, IDC_TestClaims, IDC_DetectMates, IDC_MaterialDraws, IDC_TrivialDraws,\r
-  GPB_Apply, IDC_Rule, IDC_Repeats, IDC_ScoreAbs1, IDC_ScoreAbs2, IDOK, IDCANCEL }, \r
-{ DLG_OptionsUCI, IDC_PolyDir, IDC_BrowseForPolyglotDir, IDC_Hash, IDC_Path,\r
-  IDC_BrowseForEGTB, IDC_Cache, IDC_UseBook, IDC_BrowseForBook, IDC_CPU, IDC_OwnBook1,\r
-  IDC_OwnBook2, IDC_Depth, IDC_Variation, IDC_DefGames, IDOK, IDCANCEL },\r
-{ 0 }\r
-};\r
-\r
-static char languageBuf[70000], *foreign[1000], *english[1000], *languageFile[MSG_SIZ];\r
-static int lastChecked;\r
-static char oldLanguage[MSG_SIZ], *menuText[10][30];\r
-extern int tinyLayout;\r
-extern char * menuBarText[][10];\r
-\r
-void\r
-LoadLanguageFile(char *name)\r
-{   //load the file with translations, and make a list of the strings to be translated, and their translations\r
-    FILE *f;\r
-    int i=0, j=0, n=0, k;\r
-    char buf[MSG_SIZ];\r
-\r
-    if(!name || name[0] == NULLCHAR) return;\r
-      snprintf(buf, MSG_SIZ, "%s%s", name, strchr(name, '.') ? "" : ".lng"); // auto-append lng extension\r
-    appData.language = oldLanguage;\r
-    if(!strcmp(buf, oldLanguage)) { barbaric = 1; return; } // this language already loaded; just switch on\r
-    if((f = fopen(buf, "r")) == NULL) return;\r
-    while((k = fgetc(f)) != EOF) {\r
-        if(i >= sizeof(languageBuf)) { DisplayError("Language file too big", 0); return; }\r
-        languageBuf[i] = k;\r
-        if(k == '\n') {\r
-            if(languageBuf[n] == '"' && languageBuf[i-1] == '"') {\r
-                char *p;\r
-                if(p = strstr(languageBuf + n + 1, "\" === \"")) {\r
-                    if(p > languageBuf+n+2 && p+8 < languageBuf+i) {\r
-                        if(j >= sizeof(english)) { DisplayError("Too many translated strings", 0); return; }\r
-                        english[j] = languageBuf + n + 1; *p = 0;\r
-                        foreign[j++] = p + 7; languageBuf[i-1] = 0;\r
-//if(appData.debugMode) fprintf(debugFP, "translation: replace '%s' by '%s'\n", english[j-1], foreign[j-1]);\r
-                    }\r
-                }\r
-            }\r
-            n = i + 1;\r
-        } else if(i > 0 && languageBuf[i-1] == '\\') {\r
-            switch(k) {\r
-              case 'n': k = '\n'; break;\r
-              case 'r': k = '\r'; break;\r
-              case 't': k = '\t'; break;\r
-            }\r
-            languageBuf[--i] = k;\r
-        }\r
-        i++;\r
-    }\r
-    fclose(f);\r
-    barbaric = (j != 0);\r
-    safeStrCpy(oldLanguage, buf, sizeof(oldLanguage)/sizeof(oldLanguage[0]) );\r
-}\r
-\r
-char *\r
-T_(char *s)\r
-{   // return the translation of the given string\r
-    // efficiency can be improved a lot...\r
-    int i=0;\r
-    static char buf[MSG_SIZ];\r
-//if(appData.debugMode) fprintf(debugFP, "T_(%s)\n", s);\r
-    if(!barbaric) return s;\r
-    if(!s) return ""; // sanity\r
-    while(english[i]) {\r
-        if(!strcmp(s, english[i])) return foreign[i];\r
-       if(english[i][0] == '%' && strstr(s, english[i]+1) == s) { // allow translation of strings with variable ending\r
-           snprintf(buf, MSG_SIZ, "%s%s", foreign[i], s + strlen(english[i]+1)); // keep unmatched portion\r
-           return buf;\r
-       }\r
-        i++;\r
-    }\r
-    return s;\r
-}\r
-\r
-void\r
-Translate(HWND hDlg, int dialogID)\r
-{   // translate all text items in the given dialog\r
-    int i=0, j, k;\r
-    char buf[MSG_SIZ], *s;\r
-    if(!barbaric) return;\r
-    while(dialogItems[i][0] && dialogItems[i][0] != dialogID) i++; // find the dialog description\r
-    if(dialogItems[i][0] != dialogID) return; // unknown dialog, should not happen\r
-    GetWindowText( hDlg, buf, MSG_SIZ );\r
-    s = T_(buf);\r
-    if(strcmp(buf, s)) SetWindowText(hDlg, s); // replace by translated string (if different)\r
-    for(j=1; k=dialogItems[i][j]; j++) { // translate all listed dialog items\r
-        GetDlgItemText(hDlg, k, buf, MSG_SIZ);\r
-        if(strlen(buf) == 0) continue;\r
-        s = T_(buf);\r
-        if(strcmp(buf, s)) SetDlgItemText(hDlg, k, s); // replace by translated string (if different)\r
-    }\r
-}\r
-\r
-HMENU\r
-TranslateOneMenu(int i, HMENU subMenu)\r
-{\r
-    int j;\r
-    static MENUITEMINFO info;\r
-\r
-    info.cbSize = sizeof(MENUITEMINFO);\r
-    info.fMask = MIIM_STATE | MIIM_TYPE;\r
-          for(j=GetMenuItemCount(subMenu)-1; j>=0; j--){\r
-            char buf[MSG_SIZ];\r
-            info.dwTypeData = buf;\r
-            info.cch = sizeof(buf);\r
-            GetMenuItemInfo(subMenu, j, TRUE, &info);\r
-            if(i < 10) {\r
-                if(menuText[i][j]) safeStrCpy(buf, menuText[i][j], sizeof(buf)/sizeof(buf[0]) );\r
-                else menuText[i][j] = strdup(buf); // remember original on first change\r
-            }\r
-            if(buf[0] == NULLCHAR) continue;\r
-            info.dwTypeData = T_(buf);\r
-            info.cch = strlen(buf)+1;\r
-            SetMenuItemInfo(subMenu, j, TRUE, &info);\r
-          }\r
-    return subMenu;\r
-}\r
-\r
-void\r
-TranslateMenus(int addLanguage)\r
-{\r
-    int i;\r
-    WIN32_FIND_DATA fileData;\r
-    HANDLE hFind;\r
-#define IDM_English 1970\r
-    if(1) {\r
-        HMENU mainMenu = GetMenu(hwndMain);\r
-        for (i=GetMenuItemCount(mainMenu)-1; i>=0; i--) {\r
-          HMENU subMenu = GetSubMenu(mainMenu, i);\r
-          ModifyMenu(mainMenu, i, MF_STRING|MF_BYPOSITION|MF_POPUP|EnableMenuItem(mainMenu, i, MF_BYPOSITION),\r
-                                                                  (UINT) subMenu, T_(menuBarText[tinyLayout][i]));\r
-          TranslateOneMenu(i, subMenu);\r
-        }\r
-        DrawMenuBar(hwndMain);\r
-    }\r
-\r
-    if(!addLanguage) return;\r
-    if((hFind = FindFirstFile("*.LNG", &fileData)) != INVALID_HANDLE_VALUE) {\r
-        HMENU mainMenu = GetMenu(hwndMain);\r
-        HMENU subMenu = GetSubMenu(mainMenu, GetMenuItemCount(mainMenu)-1);\r
-        AppendMenu(subMenu, MF_SEPARATOR, (UINT_PTR) 0, NULL);\r
-        AppendMenu(subMenu, MF_ENABLED|MF_STRING|(barbaric?MF_UNCHECKED:MF_CHECKED), (UINT_PTR) IDM_English, (LPCTSTR) "English");\r
-        i = 0; lastChecked = IDM_English;\r
-        do {\r
-            char *p, *q = fileData.cFileName;\r
-            int checkFlag = MF_UNCHECKED;\r
-            languageFile[i] = strdup(q);\r
-            if(barbaric && !strcmp(oldLanguage, q)) {\r
-                checkFlag = MF_CHECKED;\r
-                lastChecked = IDM_English + i + 1;\r
-                CheckMenuItem(mainMenu, IDM_English, MF_BYCOMMAND|MF_UNCHECKED);\r
-            }\r
-            *q = ToUpper(*q); while(*++q) *q = ToLower(*q);\r
-            p = strstr(fileData.cFileName, ".lng");\r
-            if(p) *p = 0;\r
-            AppendMenu(subMenu, MF_ENABLED|MF_STRING|checkFlag, (UINT_PTR) IDM_English + ++i, (LPCTSTR) fileData.cFileName);\r
-        } while(FindNextFile(hFind, &fileData));\r
-        FindClose(hFind);\r
-    }\r
-}\r
-\r
-#endif\r
-\r
-#define IDM_RecentEngines 3000\r
-\r
-void\r
-RecentEngineMenu (char *s)\r
-{\r
-    if(appData.icsActive) return;\r
-    if(appData.recentEngines > 0 && *s) { // feature is on, and list non-empty\r
-       HMENU mainMenu = GetMenu(hwndMain);\r
-       HMENU subMenu = GetSubMenu(mainMenu, 5); // Engine menu\r
-       int i=IDM_RecentEngines;\r
-       recentEngines = strdup(appData.recentEngineList); // remember them as they are in menu\r
-       AppendMenu(subMenu, MF_SEPARATOR, (UINT_PTR) 0, NULL);\r
-       while(*s) {\r
-         char *p = strchr(s, '\n');\r
-         if(p == NULL) return; // malformed!\r
-         *p = NULLCHAR;\r
-         AppendMenu(subMenu, MF_ENABLED|MF_STRING|MF_UNCHECKED, (UINT_PTR) i++, (LPCTSTR) s);\r
-         *p = '\n';\r
-         s = p+1;\r
-       }\r
-    }\r
-}\r
-\r
-\r
-typedef struct {\r
-  char *name;\r
-  int squareSize;\r
-  int lineGap;\r
-  int smallLayout;\r
-  int tinyLayout;\r
-  int cliWidth, cliHeight;\r
-} SizeInfo;\r
-\r
-SizeInfo sizeInfo[] = \r
-{\r
-  { "tiny",     21, 0, 1, 2, 0, 0 },\r
-  { "teeny",    25, 1, 1, 2, 0, 0 },\r
-  { "dinky",    29, 1, 1, 2, 0, 0 },\r
-  { "petite",   33, 1, 1, 2, 0, 0 },\r
-  { "slim",     37, 2, 1, 1, 0, 0 },\r
-  { "small",    40, 2, 1, 1, 0, 0 },\r
-  { "mediocre", 45, 2, 1, 0, 0, 0 },\r
-  { "middling", 49, 2, 0, 0, 0, 0 },\r
-  { "average",  54, 2, 0, 0, 0, 0 },\r
-  { "moderate", 58, 3, 0, 0, 0, 0 },\r
-  { "medium",   64, 3, 0, 0, 0, 0 },\r
-  { "bulky",    72, 3, 0, 0, 0, 0 },\r
-  { "large",    80, 3, 0, 0, 0, 0 },\r
-  { "big",      87, 3, 0, 0, 0, 0 },\r
-  { "huge",     95, 3, 0, 0, 0, 0 },\r
-  { "giant",    108, 3, 0, 0, 0, 0 },\r
-  { "colossal", 116, 4, 0, 0, 0, 0 },\r
-  { "titanic",  129, 4, 0, 0, 0, 0 },\r
-  { NULL, 0, 0, 0, 0, 0, 0 }\r
-};\r
-\r
-#define MF(x) {x, {{0,}, 0. }, {0, }, 0}\r
-MyFont fontRec[NUM_SIZES][NUM_FONTS] =\r
-{\r
-  { MF(CLOCK_FONT_TINY), MF(MESSAGE_FONT_TINY), MF(COORD_FONT_TINY), MF(CONSOLE_FONT_TINY), MF(COMMENT_FONT_TINY), MF(EDITTAGS_FONT_TINY), MF(MOVEHISTORY_FONT_ALL), MF(GAMELIST_FONT_ALL) },\r
-  { MF(CLOCK_FONT_TEENY), MF(MESSAGE_FONT_TEENY), MF(COORD_FONT_TEENY), MF(CONSOLE_FONT_TEENY), MF(COMMENT_FONT_TEENY), MF(EDITTAGS_FONT_TEENY), MF(MOVEHISTORY_FONT_ALL), MF(GAMELIST_FONT_ALL) },\r
-  { MF(CLOCK_FONT_DINKY), MF(MESSAGE_FONT_DINKY), MF(COORD_FONT_DINKY), MF(CONSOLE_FONT_DINKY), MF(COMMENT_FONT_DINKY), MF(EDITTAGS_FONT_DINKY), MF(MOVEHISTORY_FONT_ALL), MF(GAMELIST_FONT_ALL) },\r
-  { MF(CLOCK_FONT_PETITE), MF(MESSAGE_FONT_PETITE), MF(COORD_FONT_PETITE), MF(CONSOLE_FONT_PETITE), MF(COMMENT_FONT_PETITE), MF(EDITTAGS_FONT_PETITE), MF(MOVEHISTORY_FONT_ALL), MF(GAMELIST_FONT_ALL) },\r
-  { MF(CLOCK_FONT_SLIM), MF(MESSAGE_FONT_SLIM), MF(COORD_FONT_SLIM), MF(CONSOLE_FONT_SLIM), MF(COMMENT_FONT_SLIM), MF(EDITTAGS_FONT_SLIM), MF(MOVEHISTORY_FONT_ALL), MF(GAMELIST_FONT_ALL) },\r
-  { MF(CLOCK_FONT_SMALL), MF(MESSAGE_FONT_SMALL), MF(COORD_FONT_SMALL), MF(CONSOLE_FONT_SMALL), MF(COMMENT_FONT_SMALL), MF(EDITTAGS_FONT_SMALL), MF(MOVEHISTORY_FONT_ALL), MF(GAMELIST_FONT_ALL) },\r
-  { MF(CLOCK_FONT_MEDIOCRE), MF(MESSAGE_FONT_MEDIOCRE), MF(COORD_FONT_MEDIOCRE), MF(CONSOLE_FONT_MEDIOCRE), MF(COMMENT_FONT_MEDIOCRE), MF(EDITTAGS_FONT_MEDIOCRE), MF(MOVEHISTORY_FONT_ALL), MF(GAMELIST_FONT_ALL) },\r
-  { MF(CLOCK_FONT_MIDDLING), MF(MESSAGE_FONT_MIDDLING), MF(COORD_FONT_MIDDLING), MF(CONSOLE_FONT_MIDDLING), MF(COMMENT_FONT_MIDDLING), MF(EDITTAGS_FONT_MIDDLING), MF(MOVEHISTORY_FONT_ALL), MF(GAMELIST_FONT_ALL) },\r
-  { MF(CLOCK_FONT_AVERAGE), MF(MESSAGE_FONT_AVERAGE), MF(COORD_FONT_AVERAGE), MF(CONSOLE_FONT_AVERAGE), MF(COMMENT_FONT_AVERAGE), MF(EDITTAGS_FONT_AVERAGE), MF(MOVEHISTORY_FONT_ALL), MF(GAMELIST_FONT_ALL) },\r
-  { MF(CLOCK_FONT_MODERATE), MF(MESSAGE_FONT_MODERATE), MF(COORD_FONT_MODERATE), MF(CONSOLE_FONT_MODERATE), MF(COMMENT_FONT_MODERATE), MF(EDITTAGS_FONT_MODERATE), MF(MOVEHISTORY_FONT_ALL), MF(GAMELIST_FONT_ALL) },\r
-  { MF(CLOCK_FONT_MEDIUM), MF(MESSAGE_FONT_MEDIUM), MF(COORD_FONT_MEDIUM), MF(CONSOLE_FONT_MEDIUM), MF(COMMENT_FONT_MEDIUM), MF(EDITTAGS_FONT_MEDIUM), MF(MOVEHISTORY_FONT_ALL),  MF(GAMELIST_FONT_ALL) },\r
-  { MF(CLOCK_FONT_BULKY), MF(MESSAGE_FONT_BULKY), MF(COORD_FONT_BULKY), MF(CONSOLE_FONT_BULKY), MF(COMMENT_FONT_BULKY), MF(EDITTAGS_FONT_BULKY), MF(MOVEHISTORY_FONT_ALL),  MF(GAMELIST_FONT_ALL) },\r
-  { MF(CLOCK_FONT_LARGE), MF(MESSAGE_FONT_LARGE), MF(COORD_FONT_LARGE), MF(CONSOLE_FONT_LARGE), MF(COMMENT_FONT_LARGE), MF(EDITTAGS_FONT_LARGE), MF(MOVEHISTORY_FONT_ALL),  MF(GAMELIST_FONT_ALL) },\r
-  { MF(CLOCK_FONT_BIG), MF(MESSAGE_FONT_BIG), MF(COORD_FONT_BIG), MF(CONSOLE_FONT_BIG), MF(COMMENT_FONT_BIG), MF(EDITTAGS_FONT_BIG), MF(MOVEHISTORY_FONT_ALL),  MF(GAMELIST_FONT_ALL) },\r
-  { MF(CLOCK_FONT_HUGE), MF(MESSAGE_FONT_HUGE), MF(COORD_FONT_HUGE), MF(CONSOLE_FONT_HUGE), MF(COMMENT_FONT_HUGE), MF(EDITTAGS_FONT_HUGE), MF(MOVEHISTORY_FONT_ALL), MF(GAMELIST_FONT_ALL) },\r
-  { MF(CLOCK_FONT_GIANT), MF(MESSAGE_FONT_GIANT), MF(COORD_FONT_GIANT), MF(CONSOLE_FONT_GIANT), MF(COMMENT_FONT_GIANT), MF(EDITTAGS_FONT_GIANT), MF(MOVEHISTORY_FONT_ALL), MF(GAMELIST_FONT_ALL) },\r
-  { MF(CLOCK_FONT_COLOSSAL), MF(MESSAGE_FONT_COLOSSAL), MF(COORD_FONT_COLOSSAL), MF(CONSOLE_FONT_COLOSSAL), MF(COMMENT_FONT_COLOSSAL), MF(EDITTAGS_FONT_COLOSSAL), MF(MOVEHISTORY_FONT_ALL), MF (GAMELIST_FONT_ALL) },\r
-  { MF(CLOCK_FONT_TITANIC), MF(MESSAGE_FONT_TITANIC), MF(COORD_FONT_TITANIC), MF(CONSOLE_FONT_TITANIC), MF(COMMENT_FONT_TITANIC), MF(EDITTAGS_FONT_TITANIC), MF(MOVEHISTORY_FONT_ALL), MF(GAMELIST_FONT_ALL) },\r
-};\r
-\r
-MyFont *font[NUM_SIZES][NUM_FONTS];\r
-\r
-typedef struct {\r
-  char *label;\r
-  int id;\r
-  HWND hwnd;\r
-  WNDPROC wndproc;\r
-} MyButtonDesc;\r
-\r
-#define BUTTON_WIDTH (tinyLayout == 2 ? 16 : 32)\r
-#define N_BUTTONS 5\r
-\r
-MyButtonDesc buttonDesc[N_BUTTONS] =\r
-{\r
-  {"<<", IDM_ToStart, NULL, NULL},\r
-  {"<", IDM_Backward, NULL, NULL},\r
-  {"P", IDM_Pause, NULL, NULL},\r
-  {">", IDM_Forward, NULL, NULL},\r
-  {">>", IDM_ToEnd, NULL, NULL},\r
-};\r
-\r
-int tinyLayout = 0, smallLayout = 0;\r
-#define MENU_BAR_ITEMS 9\r
-char *menuBarText[3][MENU_BAR_ITEMS+1] = {\r
-  { N_("&File"), N_("&Edit"), N_("&View"), N_("&Mode"), N_("&Action"), N_("E&ngine"), N_("&Options"), N_("&Help"), NULL },\r
-  { N_("&Fil"), N_("&Ed"), N_("&Vw"), N_("&Mod"), N_("&Act"), N_("E&ng"), N_("&Opt"), N_("&Hlp"), NULL },\r
-  { N_("&F"), N_("&E"), N_("&V"), N_("&M"), N_("&A"), N_("&N"), N_("&O"), N_("&H"), NULL },\r
-};\r
-\r
-\r
-MySound sounds[(int)NSoundClasses];\r
-MyTextAttribs textAttribs[(int)NColorClasses];\r
-\r
-MyColorizeAttribs colorizeAttribs[] = {\r
-  { (COLORREF)0, 0, N_("Shout Text") },\r
-  { (COLORREF)0, 0, N_("SShout/CShout") },\r
-  { (COLORREF)0, 0, N_("Channel 1 Text") },\r
-  { (COLORREF)0, 0, N_("Channel Text") },\r
-  { (COLORREF)0, 0, N_("Kibitz Text") },\r
-  { (COLORREF)0, 0, N_("Tell Text") },\r
-  { (COLORREF)0, 0, N_("Challenge Text") },\r
-  { (COLORREF)0, 0, N_("Request Text") },\r
-  { (COLORREF)0, 0, N_("Seek Text") },\r
-  { (COLORREF)0, 0, N_("Normal Text") },\r
-  { (COLORREF)0, 0, N_("None") }\r
-};\r
-\r
-\r
-\r
-static char *commentTitle;\r
-static char *commentText;\r
-static int commentIndex;\r
-static Boolean editComment = FALSE;\r
-\r
-\r
-char errorTitle[MSG_SIZ];\r
-char errorMessage[2*MSG_SIZ];\r
-HWND errorDialog = NULL;\r
-BOOLEAN moveErrorMessageUp = FALSE;\r
-BOOLEAN consoleEcho = TRUE;\r
-CHARFORMAT consoleCF;\r
-COLORREF consoleBackgroundColor;\r
-\r
-char *programVersion;\r
-\r
-#define CPReal 1\r
-#define CPComm 2\r
-#define CPSock 3\r
-#define CPRcmd 4\r
-typedef int CPKind;\r
-\r
-typedef struct {\r
-  CPKind kind;\r
-  HANDLE hProcess;\r
-  DWORD pid;\r
-  HANDLE hTo;\r
-  HANDLE hFrom;\r
-  SOCKET sock;\r
-  SOCKET sock2;  /* stderr socket for OpenRcmd */\r
-} ChildProc;\r
-\r
-#define INPUT_SOURCE_BUF_SIZE 4096\r
-\r
-typedef struct _InputSource {\r
-  CPKind kind;\r
-  HANDLE hFile;\r
-  SOCKET sock;\r
-  int lineByLine;\r
-  HANDLE hThread;\r
-  DWORD id;\r
-  char buf[INPUT_SOURCE_BUF_SIZE];\r
-  char *next;\r
-  DWORD count;\r
-  int error;\r
-  InputCallback func;\r
-  struct _InputSource *second;  /* for stderr thread on CPRcmd */\r
-  VOIDSTAR closure;\r
-} InputSource;\r
-\r
-InputSource *consoleInputSource;\r
-\r
-DCB dcb;\r
-\r
-/* forward */\r
-VOID ConsoleOutput(char* data, int length, int forceVisible);\r
-VOID ConsoleCreate();\r
-LRESULT CALLBACK\r
-  ConsoleWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);\r
-VOID ColorizeTextPopup(HWND hwnd, ColorClass cc);\r
-VOID PrintCommSettings(FILE *f, char *name, DCB *dcb);\r
-VOID ParseCommSettings(char *arg, DCB *dcb);\r
-LRESULT CALLBACK\r
-  StartupDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);\r
-VOID APIENTRY MenuPopup(HWND hwnd, POINT pt, HMENU hmenu, UINT def);\r
-void ParseIcsTextMenu(char *icsTextMenuString);\r
-VOID PopUpNameDialog(char firstchar);\r
-VOID UpdateSampleText(HWND hDlg, int id, MyColorizeAttribs *mca);\r
-\r
-/* [AS] */\r
-int NewGameFRC();\r
-int GameListOptions();\r
-\r
-int dummy; // [HGM] for obsolete args\r
-\r
-HWND hwndMain = NULL;        /* root window*/\r
-HWND hwndConsole = NULL;\r
-HWND commentDialog = NULL;\r
-HWND moveHistoryDialog = NULL;\r
-HWND evalGraphDialog = NULL;\r
-HWND engineOutputDialog = NULL;\r
-HWND gameListDialog = NULL;\r
-HWND editTagsDialog = NULL;\r
-\r
-int commentUp = FALSE;\r
-\r
-WindowPlacement wpMain;\r
-WindowPlacement wpConsole;\r
-WindowPlacement wpComment;\r
-WindowPlacement wpMoveHistory;\r
-WindowPlacement wpEvalGraph;\r
-WindowPlacement wpEngineOutput;\r
-WindowPlacement wpGameList;\r
-WindowPlacement wpTags;\r
-\r
-VOID EngineOptionsPopup(); // [HGM] settings\r
-\r
-VOID GothicPopUp(char *title, VariantClass variant);\r
-/*\r
- * Setting "frozen" should disable all user input other than deleting\r
- * the window.  We do this while engines are initializing themselves.\r
- */\r
-static int frozen = 0;\r
-static int oldMenuItemState[MENU_BAR_ITEMS];\r
-void FreezeUI()\r
-{\r
-  HMENU hmenu;\r
-  int i;\r
-\r
-  if (frozen) return;\r
-  frozen = 1;\r
-  hmenu = GetMenu(hwndMain);\r
-  for (i=0; i<MENU_BAR_ITEMS; i++) {\r
-    oldMenuItemState[i] = EnableMenuItem(hmenu, i, MF_BYPOSITION|MF_GRAYED);\r
-  }\r
-  DrawMenuBar(hwndMain);\r
-}\r
-\r
-/* Undo a FreezeUI */\r
-void ThawUI()\r
-{\r
-  HMENU hmenu;\r
-  int i;\r
-\r
-  if (!frozen) return;\r
-  frozen = 0;\r
-  hmenu = GetMenu(hwndMain);\r
-  for (i=0; i<MENU_BAR_ITEMS; i++) {\r
-    EnableMenuItem(hmenu, i, MF_BYPOSITION|oldMenuItemState[i]);\r
-  }\r
-  DrawMenuBar(hwndMain);\r
-}\r
-\r
-/*static*/ int fromX = -1, fromY = -1, toX, toY; // [HGM] moved upstream, so JAWS can use them\r
-\r
-/* JAWS preparation patch (WinBoard for the sight impaired). Define required insertions as empty */\r
-#ifdef JAWS\r
-#include "jaws.c"\r
-#else\r
-#define JAWS_INIT\r
-#define JAWS_ARGS\r
-#define JAWS_ALT_INTERCEPT\r
-#define JAWS_KBUP_NAVIGATION\r
-#define JAWS_KBDOWN_NAVIGATION\r
-#define JAWS_MENU_ITEMS\r
-#define JAWS_SILENCE\r
-#define JAWS_REPLAY\r
-#define JAWS_ACCEL\r
-#define JAWS_COPYRIGHT\r
-#define JAWS_DELETE(X) X\r
-#define SAYMACHINEMOVE()\r
-#define SAY(X)\r
-#endif\r
-\r
-/*---------------------------------------------------------------------------*\\r
- *\r
- * WinMain\r
- *\r
-\*---------------------------------------------------------------------------*/\r
-\r
-static void HandleMessage P((MSG *message));\r
-static HANDLE hAccelMain, hAccelNoAlt, hAccelNoICS;\r
-\r
-int APIENTRY\r
-WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,\r
-       LPSTR lpCmdLine, int nCmdShow)\r
-{\r
-  MSG msg;\r
-//  INITCOMMONCONTROLSEX ex;\r
-\r
-  debugFP = stderr;\r
-\r
-  LoadLibrary("RICHED32.DLL");\r
-  consoleCF.cbSize = sizeof(CHARFORMAT);\r
-\r
-  if (!InitApplication(hInstance)) {\r
-    return (FALSE);\r
-  }\r
-  if (!InitInstance(hInstance, nCmdShow, lpCmdLine)) {\r
-    return (FALSE);\r
-  }\r
-\r
-  JAWS_INIT\r
-  TranslateMenus(1);\r
-\r
-//  InitCommonControlsEx(&ex);\r
-  InitCommonControls();\r
-\r
-  hAccelMain = LoadAccelerators (hInstance, szAppName);\r
-  hAccelNoAlt = LoadAccelerators (hInstance, "NO_ALT");\r
-  hAccelNoICS = LoadAccelerators( hInstance, "NO_ICS"); /* [AS] No Ctrl-V on ICS!!! */\r
-\r
-  /* Acquire and dispatch messages until a WM_QUIT message is received. */\r
-\r
-  while (GetMessage(&msg, /* message structure */\r
-                   NULL, /* handle of window receiving the message */\r
-                   0,    /* lowest message to examine */\r
-                   0))   /* highest message to examine */\r
-    {\r
-       HandleMessage(&msg);\r
-    }\r
-\r
-\r
-  return (msg.wParam); /* Returns the value from PostQuitMessage */\r
-}\r
-\r
-static void\r
-HandleMessage (MSG *message)\r
-{\r
-    MSG msg = *message;\r
-\r
-      if(msg.message == WM_CHAR && msg.wParam == '\t') {\r
-       // [HGM] navigate: switch between all windows with tab\r
-       HWND e1 = NULL, e2 = NULL, mh = NULL, hInput = NULL, hText = NULL;\r
-       int i, currentElement = 0;\r
-\r
-       // first determine what element of the chain we come from (if any)\r
-       if(appData.icsActive) {\r
-           hInput = GetDlgItem(hwndConsole, OPT_ConsoleInput);\r
-           hText  = GetDlgItem(hwndConsole, OPT_ConsoleText);\r
-       }\r
-       if(engineOutputDialog && EngineOutputIsUp()) {\r
-           e1 = GetDlgItem(engineOutputDialog, IDC_EngineMemo1);\r
-           e2 = GetDlgItem(engineOutputDialog, IDC_EngineMemo2);\r
-       }\r
-       if(moveHistoryDialog && MoveHistoryIsUp()) {\r
-           mh = GetDlgItem(moveHistoryDialog, IDC_MoveHistory);\r
-       }\r
-       if(msg.hwnd == hwndMain) currentElement = 7 ; else\r
-       if(msg.hwnd == engineOutputDialog) currentElement = 2; else\r
-       if(msg.hwnd == e1)                 currentElement = 2; else\r
-       if(msg.hwnd == e2)                 currentElement = 3; else\r
-       if(msg.hwnd == moveHistoryDialog) currentElement = 4; else\r
-       if(msg.hwnd == mh)                currentElement = 4; else\r
-       if(msg.hwnd == evalGraphDialog)    currentElement = 6; else\r
-       if(msg.hwnd == hText)  currentElement = 5; else\r
-       if(msg.hwnd == hInput) currentElement = 6; else\r
-       for (i = 0; i < N_BUTTONS; i++) {\r
-           if (buttonDesc[i].hwnd == msg.hwnd) { currentElement = 1; break; }\r
-       }\r
-\r
-       // determine where to go to\r
-       if(currentElement) { HWND h = NULL; int direction = GetKeyState(VK_SHIFT) < 0 ? -1 : 1;\r
-         do {\r
-           currentElement = (currentElement + direction) % 7;\r
-           switch(currentElement) {\r
-               case 0:\r
-                 h = hwndMain; break; // passing this case always makes the loop exit\r
-               case 1:\r
-                 h = buttonDesc[0].hwnd; break; // could be NULL\r
-               case 2:\r
-                 if(!EngineOutputIsUp()) continue; // skip closed auxiliary windows\r
-                 h = e1; break;\r
-               case 3:\r
-                 if(!EngineOutputIsUp()) continue;\r
-                 h = e2; break;\r
-               case 4:\r
-                 if(!MoveHistoryIsUp()) continue;\r
-                 h = mh; break;\r
-//             case 6: // input to eval graph does not seem to get here!\r
-//               if(!EvalGraphIsUp()) continue;\r
-//               h = evalGraphDialog; break;\r
-               case 5:\r
-                 if(!appData.icsActive) continue;\r
-                 SAY("display");\r
-                 h = hText; break;\r
-               case 6:\r
-                 if(!appData.icsActive) continue;\r
-                 SAY("input");\r
-                 h = hInput; break;\r
-           }\r
-         } while(h == 0);\r
-\r
-         if(currentElement > 4 && IsIconic(hwndConsole)) ShowWindow(hwndConsole, SW_RESTORE);\r
-         if(currentElement < 5 && IsIconic(hwndMain))    ShowWindow(hwndMain, SW_RESTORE); // all open together\r
-         SetFocus(h);\r
-\r
-         return; // this message now has been processed\r
-       }\r
-      }\r
-\r
-      if (!(commentDialog && IsDialogMessage(commentDialog, &msg)) &&\r
-          !(moveHistoryDialog && IsDialogMessage(moveHistoryDialog, &msg)) &&\r
-          !(evalGraphDialog && IsDialogMessage(evalGraphDialog, &msg)) &&\r
-          !(engineOutputDialog && IsDialogMessage(engineOutputDialog, &msg)) &&\r
-         !(editTagsDialog && IsDialogMessage(editTagsDialog, &msg)) &&\r
-         !(gameListDialog && IsDialogMessage(gameListDialog, &msg)) &&\r
-         !(errorDialog && IsDialogMessage(errorDialog, &msg)) &&\r
-         !(!frozen && TranslateAccelerator(hwndMain, hAccelMain, &msg)) && JAWS_ACCEL\r
-          !(!hwndConsole && TranslateAccelerator(hwndMain, hAccelNoICS, &msg)) &&\r
-         !(!hwndConsole && TranslateAccelerator(hwndMain, hAccelNoAlt, &msg))) {\r
-       int done = 0, i; // [HGM] chat: dispatch cat-box messages\r
-       for(i=0; i<MAX_CHAT; i++) \r
-           if(chatHandle[i] && IsDialogMessage(chatHandle[i], &msg)) {\r
-               done = 1; break;\r
-       }\r
-       if(done) return; // [HGM] chat: end patch\r
-       TranslateMessage(&msg); /* Translates virtual key codes */\r
-       DispatchMessage(&msg);  /* Dispatches message to window */\r
-      }\r
-}\r
-\r
-void\r
-DoEvents ()\r
-{ /* Dispatch pending messages */\r
-  MSG msg;\r
-  while (PeekMessage(&msg, /* message structure */\r
-                    NULL, /* handle of window receiving the message */\r
-                    0,    /* lowest message to examine */\r
-                    0,    /* highest message to examine */\r
-                    PM_REMOVE))\r
-    {\r
-       HandleMessage(&msg);\r
-    }\r
-}\r
-\r
-/*---------------------------------------------------------------------------*\\r
- *\r
- * Initialization functions\r
- *\r
-\*---------------------------------------------------------------------------*/\r
-\r
-void\r
-SetUserLogo()\r
-{   // update user logo if necessary\r
-    static char oldUserName[MSG_SIZ], dir[MSG_SIZ], *curName;\r
-\r
-    if(appData.autoLogo) {\r
-         curName = UserName();\r
-         if(strcmp(curName, oldUserName)) {\r
-               GetCurrentDirectory(MSG_SIZ, dir);\r
-               SetCurrentDirectory(installDir);\r
-               snprintf(oldUserName, MSG_SIZ, "logos\\%s.bmp", curName);\r
-               userLogo = LoadImage( 0, oldUserName, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE );    \r
-               safeStrCpy(oldUserName, curName, sizeof(oldUserName)/sizeof(oldUserName[0]) );\r
-               if(userLogo == NULL)\r
-                   userLogo = LoadImage( 0, "logos\\dummy.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE ); \r
-               SetCurrentDirectory(dir); /* return to prev directory */\r
-         }\r
-    }\r
-}\r
-\r
-BOOL\r
-InitApplication(HINSTANCE hInstance)\r
-{\r
-  WNDCLASS wc;\r
-\r
-  /* Fill in window class structure with parameters that describe the */\r
-  /* main window. */\r
-\r
-  wc.style         = CS_HREDRAW | CS_VREDRAW; /* Class style(s). */\r
-  wc.lpfnWndProc   = (WNDPROC)WndProc; /* Window Procedure */\r
-  wc.cbClsExtra    = 0;                        /* No per-class extra data. */\r
-  wc.cbWndExtra    = 0;                        /* No per-window extra data. */\r
-  wc.hInstance     = hInstance;                /* Owner of this class */\r
-  wc.hIcon         = LoadIcon(hInstance, "icon_white");\r
-  wc.hCursor       = LoadCursor(NULL, IDC_ARROW);      /* Cursor */\r
-  wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); /* Default color */\r
-  wc.lpszMenuName  = szAppName;                        /* Menu name from .RC */\r
-  wc.lpszClassName = szAppName;                        /* Name to register as */\r
-\r
-  /* Register the window class and return success/failure code. */\r
-  if (!RegisterClass(&wc)) return FALSE;\r
-\r
-  wc.style         = CS_HREDRAW | CS_VREDRAW;\r
-  wc.lpfnWndProc   = (WNDPROC)ConsoleWndProc;\r
-  wc.cbClsExtra    = 0;\r
-  wc.cbWndExtra    = DLGWINDOWEXTRA;\r
-  wc.hInstance     = hInstance;\r
-  wc.hIcon         = LoadIcon(hInstance, "icon_white");\r
-  wc.hCursor       = LoadCursor(NULL, IDC_ARROW);\r
-  wc.hbrBackground = (HBRUSH)(COLOR_MENU+1);\r
-  wc.lpszMenuName  = NULL;\r
-  wc.lpszClassName = szConsoleName;\r
-\r
-  if (!RegisterClass(&wc)) return FALSE;\r
-  return TRUE;\r
-}\r
-\r
-\r
-/* Set by InitInstance, used by EnsureOnScreen */\r
-int screenHeight, screenWidth;\r
-RECT screenGeometry;\r
-\r
-void\r
-EnsureOnScreen(int *x, int *y, int minX, int minY)\r
-{\r
-//  int gap = GetSystemMetrics(SM_CYFRAME) + GetSystemMetrics(SM_CYCAPTION);\r
-  /* Be sure window at (x,y) is not off screen (or even mostly off screen) */\r
-  if (*x > screenGeometry.right - 32) *x = screenGeometry.left;\r
-  if (*y > screenGeometry.bottom - 32) *y = screenGeometry.top;\r
-  if (*x < screenGeometry.left + minX) *x = screenGeometry.left + minX;\r
-  if (*y < screenGeometry.top + minY) *y = screenGeometry.top + minY;\r
-}\r
-\r
-VOID\r
-LoadLogo(ChessProgramState *cps, int n, Boolean ics)\r
-{\r
-  char buf[MSG_SIZ], dir[MSG_SIZ];\r
-  GetCurrentDirectory(MSG_SIZ, dir);\r
-  SetCurrentDirectory(installDir);\r
-  if( appData.logo[n] && appData.logo[n][0] != NULLCHAR) {\r
-      cps->programLogo = LoadImage( 0, appData.logo[n], IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE );\r
-\r
-      if (cps->programLogo == NULL && appData.debugMode) {\r
-          fprintf( debugFP, "Unable to load logo bitmap '%s'\n", appData.logo[n] );\r
-      }\r
-  } else if(appData.autoLogo) {\r
-      if(ics) { // [HGM] logo: in ICS mode second can be used for ICS\r
-       char *opponent = "";\r
-       if(gameMode == IcsPlayingWhite) opponent = gameInfo.black;\r
-       if(gameMode == IcsPlayingBlack) opponent = gameInfo.white;\r
-       sprintf(buf, "logos\\%s\\%s.bmp", appData.icsHost, opponent);\r
-       if(!*opponent || !(cps->programLogo = LoadImage( 0, buf, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE ))) {\r
-           sprintf(buf, "logos\\%s.bmp", appData.icsHost);\r
-           cps->programLogo = LoadImage( 0, buf, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE );\r
-       }\r
-      } else\r
-      if(appData.directory[n] && appData.directory[n][0]) {\r
-        SetCurrentDirectory(appData.directory[n]);\r
-       cps->programLogo = LoadImage( 0, "logo.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE );     \r
-      }\r
-  }\r
-  SetCurrentDirectory(dir); /* return to prev directory */\r
-}\r
-\r
-VOID\r
-InitTextures()\r
-{\r
-  ZeroMemory( &backTextureSquareInfo, sizeof(backTextureSquareInfo) );\r
-  backTextureSquareSize = 0; // kludge to force recalculation of texturemode\r
-  \r
-  if( appData.liteBackTextureFile && appData.liteBackTextureFile[0] != NULLCHAR && appData.liteBackTextureFile[0] != '*' ) {\r
-      if(liteBackTexture) DeleteObject(liteBackTexture);\r
-      liteBackTexture = LoadImage( 0, appData.liteBackTextureFile, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE );\r
-      liteBackTextureMode = appData.liteBackTextureMode;\r
-\r
-      if (liteBackTexture == NULL && appData.debugMode) {\r
-          fprintf( debugFP, "Unable to load lite texture bitmap '%s'\n", appData.liteBackTextureFile );\r
-      }\r
-  }\r
-  \r
-  if( appData.darkBackTextureFile && appData.darkBackTextureFile[0] != NULLCHAR && appData.darkBackTextureFile[0] != '*' ) {\r
-      if(darkBackTexture) DeleteObject(darkBackTexture);\r
-      darkBackTexture = LoadImage( 0, appData.darkBackTextureFile, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE );\r
-      darkBackTextureMode = appData.darkBackTextureMode;\r
-\r
-      if (darkBackTexture == NULL && appData.debugMode) {\r
-          fprintf( debugFP, "Unable to load dark texture bitmap '%s'\n", appData.darkBackTextureFile );\r
-      }\r
-  }\r
-}\r
-\r
-#ifndef SM_CXVIRTUALSCREEN\r
-#define SM_CXVIRTUALSCREEN 78\r
-#endif\r
-#ifndef SM_CYVIRTUALSCREEN\r
-#define SM_CYVIRTUALSCREEN 79\r
-#endif\r
-#ifndef SM_XVIRTUALSCREEN \r
-#define SM_XVIRTUALSCREEN 76\r
-#endif\r
-#ifndef SM_YVIRTUALSCREEN \r
-#define SM_YVIRTUALSCREEN 77\r
-#endif\r
-\r
-VOID\r
-InitGeometry()\r
-{\r
-  screenHeight = GetSystemMetrics(SM_CYVIRTUALSCREEN);\r
-  if( !screenHeight ) screenHeight = GetSystemMetrics(SM_CYSCREEN);\r
-  screenWidth = GetSystemMetrics(SM_CXVIRTUALSCREEN);\r
-  if( !screenWidth ) screenWidth = GetSystemMetrics(SM_CXSCREEN);\r
-  screenGeometry.left = GetSystemMetrics(SM_XVIRTUALSCREEN);\r
-  screenGeometry.top = GetSystemMetrics(SM_YVIRTUALSCREEN);\r
-  screenGeometry.right = screenGeometry.left + screenWidth;\r
-  screenGeometry.bottom = screenGeometry.top + screenHeight;\r
-}\r
-\r
-ChessProgramState broadcast;\r
-\r
-BOOL\r
-InitInstance(HINSTANCE hInstance, int nCmdShow, LPSTR lpCmdLine)\r
-{\r
-  HWND hwnd; /* Main window handle. */\r
-  int ibs;\r
-  WINDOWPLACEMENT wp;\r
-  char *filepart;\r
-\r
-  hInst = hInstance;   /* Store instance handle in our global variable */\r
-  programName = szAppName;\r
-\r
-  if (SearchPath(NULL, "WinBoard.exe", NULL, MSG_SIZ, installDir, &filepart)) {\r
-    *filepart = NULLCHAR;\r
-    SetCurrentDirectory(installDir);\r
-  } else {\r
-    GetCurrentDirectory(MSG_SIZ, installDir);\r
-  }\r
-  gameInfo.boardWidth = gameInfo.boardHeight = 8; // [HGM] won't have open window otherwise\r
-  InitGeometry();\r
-  InitAppData(lpCmdLine);      /* Get run-time parameters */\r
-  /* xboard, and older WinBoards, controlled the move sound with the\r
-     appData.ringBellAfterMoves option.  In the current WinBoard, we\r
-     always turn the option on (so that the backend will call us),\r
-     then let the user turn the sound off by setting it to silence if\r
-     desired.  To accommodate old winboard.ini files saved by old\r
-     versions of WinBoard, we also turn off the sound if the option\r
-     was initially set to false. [HGM] taken out of InitAppData */\r
-  if (!appData.ringBellAfterMoves) {\r
-    sounds[(int)SoundMove].name = strdup("");\r
-    appData.ringBellAfterMoves = TRUE;\r
-  }\r
-  if (appData.debugMode) {\r
-    char *c = appData.nameOfDebugFile;\r
-    if(strstr(c, "///") == c) {\r
-      broadcast.which = "broadcaster";\r
-      broadcast.pr   = NoProc;\r
-      broadcast.isr  = NULL;\r
-      broadcast.program = c + 3;\r
-      broadcast.dir  = ".";\r
-      broadcast.host = "localhost";\r
-      StartChessProgram(&broadcast);\r
-      debugFP = (FILE*) _fdopen(_open_osfhandle((long)(((ChildProc*)(broadcast.pr))->hTo), _O_WRONLY), "w");\r
-    } else\r
-    debugFP = fopen(c, "w");\r
-    setbuf(debugFP, NULL);\r
-  }\r
-\r
-  LoadLanguageFile(appData.language);\r
-\r
-  InitBackEnd1();\r
-\r
-//  InitEngineUCI( installDir, &first ); // [HGM] incorporated in InitBackEnd1()\r
-//  InitEngineUCI( installDir, &second );\r
-\r
-  /* Create a main window for this application instance. */\r
-  hwnd = CreateWindow(szAppName, szTitle,\r
-                     (WS_OVERLAPPEDWINDOW & ~WS_MAXIMIZEBOX),\r
-                     CW_USEDEFAULT, 0, CW_USEDEFAULT, 0,\r
-                     NULL, NULL, hInstance, NULL);\r
-  hwndMain = hwnd;\r
-\r
-  /* If window could not be created, return "failure" */\r
-  if (!hwnd) {\r
-    return (FALSE);\r
-  }\r
-\r
-  /* [HGM] logo: Load logos if specified (must be done before InitDrawingSizes) */\r
-  LoadLogo(&first, 0, FALSE);\r
-  LoadLogo(&second, 1, appData.icsActive);\r
-\r
-  SetUserLogo();\r
-\r
-  iconWhite = LoadIcon(hInstance, "icon_white");\r
-  iconBlack = LoadIcon(hInstance, "icon_black");\r
-  iconCurrent = iconWhite;\r
-  InitDrawingColors();\r
-\r
-  InitPosition(0); // to set nr of ranks and files, which might be non-default through command-line args\r
-  for (ibs = (int) NUM_SIZES - 1; ibs >= 0; ibs--) {\r
-    /* Compute window size for each board size, and use the largest\r
-       size that fits on this screen as the default. */\r
-    InitDrawingSizes((BoardSize)(ibs+1000), 0);\r
-    if (boardSize == (BoardSize)-1 &&\r
-        winH <= screenHeight\r
-           - GetSystemMetrics(SM_CYFRAME) - GetSystemMetrics(SM_CYCAPTION) - 10\r
-        && winW <= screenWidth) {\r
-      boardSize = (BoardSize)ibs;\r
-    }\r
-  }\r
-\r
-  InitDrawingSizes(boardSize, 0);\r
-  RecentEngineMenu(appData.recentEngineList);\r
-  InitMenuChecks();\r
-  buttonCount = GetSystemMetrics(SM_CMOUSEBUTTONS);\r
-\r
-  /* [AS] Load textures if specified */\r
-  InitTextures();\r
-\r
-  mysrandom( (unsigned) time(NULL) );\r
-\r
-  /* [AS] Restore layout */\r
-  if( wpMoveHistory.visible ) {\r
-      MoveHistoryPopUp();\r
-  }\r
-\r
-  if( wpEvalGraph.visible ) {\r
-      EvalGraphPopUp();\r
-  }\r
-\r
-  if( wpEngineOutput.visible ) {\r
-      EngineOutputPopUp();\r
-  }\r
-\r
-  /* Make the window visible; update its client area; and return "success" */\r
-  EnsureOnScreen(&wpMain.x, &wpMain.y, minX, minY);\r
-  wp.length = sizeof(WINDOWPLACEMENT);\r
-  wp.flags = 0;\r
-  wp.showCmd = nCmdShow;\r
-  wp.ptMaxPosition.x = wp.ptMaxPosition.y = 0;\r
-  wp.rcNormalPosition.left = wpMain.x;\r
-  wp.rcNormalPosition.right = wpMain.x + wpMain.width;\r
-  wp.rcNormalPosition.top = wpMain.y;\r
-  wp.rcNormalPosition.bottom = wpMain.y + wpMain.height;\r
-  SetWindowPlacement(hwndMain, &wp);\r
-\r
-  InitBackEnd2(); // [HGM] moved until after all windows placed, to save correct position if fatal error on engine start\r
-\r
-  if(!appData.noGUI) SetWindowPos(hwndMain, alwaysOnTop ? HWND_TOPMOST : HWND_NOTOPMOST,\r
-               0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);\r
-\r
-  if (hwndConsole) {\r
-#if AOT_CONSOLE\r
-    SetWindowPos(hwndConsole, alwaysOnTop ? HWND_TOPMOST : HWND_NOTOPMOST,\r
-                 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);\r
-#endif\r
-    ShowWindow(hwndConsole, nCmdShow);\r
-    SetActiveWindow(hwndConsole);\r
-  }\r
-  if(!appData.noGUI)   UpdateWindow(hwnd);  else ShowWindow(hwnd, SW_MINIMIZE);\r
-  if(gameListDialog) SetFocus(gameListDialog); // [HGM] jaws: for if we clicked multi-game game file\r
-\r
-  return TRUE;\r
-\r
-}\r
-\r
-VOID\r
-InitMenuChecks()\r
-{\r
-  HMENU hmenu = GetMenu(hwndMain);\r
-\r
-  (void) EnableMenuItem(hmenu, IDM_CommPort,\r
-                       MF_BYCOMMAND|((appData.icsActive &&\r
-                                      *appData.icsCommPort != NULLCHAR) ?\r
-                                     MF_ENABLED : MF_GRAYED));\r
-  (void) CheckMenuItem(hmenu, IDM_SaveSettingsOnExit,\r
-                      MF_BYCOMMAND|(saveSettingsOnExit ?\r
-                                    MF_CHECKED : MF_UNCHECKED));\r
-  EnableMenuItem(hmenu, IDM_SaveSelected, MF_GRAYED);\r
-}\r
-\r
-//---------------------------------------------------------------------------------------------------------\r
-\r
-#define ICS_TEXT_MENU_SIZE (IDM_CommandXLast - IDM_CommandX + 1)\r
-#define XBOARD FALSE\r
-\r
-#define OPTCHAR "/"\r
-#define SEPCHAR "="\r
-#define TOPLEVEL 0\r
-\r
-#include "args.h"\r
-\r
-// front-end part of option handling\r
-\r
-VOID\r
-LFfromMFP(LOGFONT* lf, MyFontParams *mfp)\r
-{\r
-  HDC hdc = CreateDC("DISPLAY", NULL, NULL, NULL);\r
-  lf->lfHeight = -(int)(mfp->pointSize * GetDeviceCaps(hdc, LOGPIXELSY) / 72.0 + 0.5);\r
-  DeleteDC(hdc);\r
-  lf->lfWidth = 0;\r
-  lf->lfEscapement = 0;\r
-  lf->lfOrientation = 0;\r
-  lf->lfWeight = mfp->bold ? FW_BOLD : FW_NORMAL;\r
-  lf->lfItalic = mfp->italic;\r
-  lf->lfUnderline = mfp->underline;\r
-  lf->lfStrikeOut = mfp->strikeout;\r
-  lf->lfCharSet = mfp->charset;\r
-  lf->lfOutPrecision = OUT_DEFAULT_PRECIS;\r
-\r
-\r
-\r
-  lf->lfClipPrecision = CLIP_DEFAULT_PRECIS;\r
-  lf->lfQuality = DEFAULT_QUALITY;\r
-  lf->lfPitchAndFamily = DEFAULT_PITCH|FF_DONTCARE;\r
-    safeStrCpy(lf->lfFaceName, mfp->faceName, sizeof(lf->lfFaceName)/sizeof(lf->lfFaceName[0]) );\r
-}\r
-\r
-void\r
-CreateFontInMF(MyFont *mf)\r
-{ \r
-  LFfromMFP(&mf->lf, &mf->mfp);\r
-  if (mf->hf) DeleteObject(mf->hf);\r
-  mf->hf = CreateFontIndirect(&mf->lf);\r
-}\r
-\r
-// [HGM] This platform-dependent table provides the location for storing the color info\r
-void *\r
-colorVariable[] = {\r
-  &whitePieceColor, \r
-  &blackPieceColor, \r
-  &lightSquareColor,\r
-  &darkSquareColor, \r
-  &highlightSquareColor,\r
-  &premoveHighlightColor,\r
-  NULL,\r
-  &consoleBackgroundColor,\r
-  &appData.fontForeColorWhite,\r
-  &appData.fontBackColorWhite,\r
-  &appData.fontForeColorBlack,\r
-  &appData.fontBackColorBlack,\r
-  &appData.evalHistColorWhite,\r
-  &appData.evalHistColorBlack,\r
-  &appData.highlightArrowColor,\r
-};\r
-\r
-/* Command line font name parser.  NULL name means do nothing.\r
-   Syntax like "Courier New:10.0 bi" or "Arial:10" or "Arial:10b"\r
-   For backward compatibility, syntax without the colon is also\r
-   accepted, but font names with digits in them won't work in that case.\r
-*/\r
-VOID\r
-ParseFontName(char *name, MyFontParams *mfp)\r
-{\r
-  char *p, *q;\r
-  if (name == NULL) return;\r
-  p = name;\r
-  q = strchr(p, ':');\r
-  if (q) {\r
-    if (q - p >= sizeof(mfp->faceName))\r
-      ExitArgError(_("Font name too long:"), name, TRUE);\r
-    memcpy(mfp->faceName, p, q - p);\r
-    mfp->faceName[q - p] = NULLCHAR;\r
-    p = q + 1;\r
-  } else {\r
-    q = mfp->faceName;\r
-\r
-    while (*p && !isdigit(*p)) {\r
-      *q++ = *p++;\r
-      if (q - mfp->faceName >= sizeof(mfp->faceName))\r
-       ExitArgError(_("Font name too long:"), name, TRUE);\r
-    }\r
-    while (q > mfp->faceName && q[-1] == ' ') q--;\r
-    *q = NULLCHAR;\r
-  }\r
-  if (!*p) ExitArgError(_("Font point size missing:"), name, TRUE);\r
-  mfp->pointSize = (float) atof(p);\r
-  mfp->bold = (strchr(p, 'b') != NULL);\r
-  mfp->italic = (strchr(p, 'i') != NULL);\r
-  mfp->underline = (strchr(p, 'u') != NULL);\r
-  mfp->strikeout = (strchr(p, 's') != NULL);\r
-  mfp->charset = DEFAULT_CHARSET;\r
-  q = strchr(p, 'c');\r
-  if (q)\r
-    mfp->charset = (BYTE) atoi(q+1);\r
-}\r
-\r
-void\r
-ParseFont(char *name, int number)\r
-{ // wrapper to shield back-end from 'font'\r
-  ParseFontName(name, &font[boardSize][number]->mfp);\r
-}\r
-\r
-void\r
-SetFontDefaults()\r
-{ // in WB  we have a 2D array of fonts; this initializes their description\r
-  int i, j;\r
-  /* Point font array elements to structures and\r
-     parse default font names */\r
-  for (i=0; i<NUM_FONTS; i++) {\r
-    for (j=0; j<NUM_SIZES; j++) {\r
-      font[j][i] = &fontRec[j][i];\r
-      ParseFontName(font[j][i]->def, &font[j][i]->mfp);\r
-    }\r
-  }\r
-}\r
-\r
-void\r
-CreateFonts()\r
-{ // here we create the actual fonts from the selected descriptions\r
-  int i, j;\r
-  for (i=0; i<NUM_FONTS; i++) {\r
-    for (j=0; j<NUM_SIZES; j++) {\r
-      CreateFontInMF(font[j][i]);\r
-    }\r
-  }\r
-}\r
-/* Color name parser.\r
-   X version accepts X color names, but this one\r
-   handles only the #rrggbb form (hex) or rrr,ggg,bbb (decimal) */\r
-COLORREF\r
-ParseColorName(char *name)\r
-{\r
-  int red, green, blue, count;\r
-  char buf[MSG_SIZ];\r
-\r
-  count = sscanf(name, "#%2x%2x%2x", &red, &green, &blue);\r
-  if (count != 3) {\r
-    count = sscanf(name, "%3d%*[^0-9]%3d%*[^0-9]%3d", \r
-      &red, &green, &blue);\r
-  }\r
-  if (count != 3) {\r
-    snprintf(buf, MSG_SIZ, _("Can't parse color name %s"), name);\r
-    DisplayError(buf, 0);\r
-    return RGB(0, 0, 0);\r
-  }\r
-  return PALETTERGB(red, green, blue);\r
-}\r
-\r
-void\r
-ParseColor(int n, char *name)\r
-{ // for WinBoard the color is an int, which needs to be derived from the string\r
-  if(colorVariable[n]) *(int*)colorVariable[n] = ParseColorName(name);\r
-}\r
-\r
-void\r
-ParseAttribs(COLORREF *color, int *effects, char* argValue)\r
-{\r
-  char *e = argValue;\r
-  int eff = 0;\r
-\r
-  while (*e) {\r
-    if (*e == 'b')      eff |= CFE_BOLD;\r
-    else if (*e == 'i') eff |= CFE_ITALIC;\r
-    else if (*e == 'u') eff |= CFE_UNDERLINE;\r
-    else if (*e == 's') eff |= CFE_STRIKEOUT;\r
-    else if (*e == '#' || isdigit(*e)) break;\r
-    e++;\r
-  }\r
-  *effects = eff;\r
-  *color   = ParseColorName(e);\r
-}\r
-\r
-void\r
-ParseTextAttribs(ColorClass cc, char *s)\r
-{   // [HGM] front-end wrapper that does the platform-dependent call\r
-    // for XBoard we would set (&appData.colorShout)[cc] = strdup(s);\r
-    ParseAttribs(&textAttribs[cc].color, &textAttribs[cc].effects, s);\r
-}\r
-\r
-void\r
-ParseBoardSize(void *addr, char *name)\r
-{ // [HGM] rewritten with return-value ptr to shield back-end from BoardSize\r
-  BoardSize bs = SizeTiny;\r
-  while (sizeInfo[bs].name != NULL) {\r
-    if (StrCaseCmp(name, sizeInfo[bs].name) == 0) {\r
-       *(BoardSize *)addr = bs;\r
-       return;\r
-    }\r
-    bs++;\r
-  }\r
-  ExitArgError(_("Unrecognized board size value"), name, TRUE);\r
-}\r
-\r
-void\r
-LoadAllSounds()\r
-{ // [HGM] import name from appData first\r
-  ColorClass cc;\r
-  SoundClass sc;\r
-  for (cc = (ColorClass)0; cc < ColorNormal; cc++) {\r
-    textAttribs[cc].sound.name = strdup((&appData.soundShout)[cc]);\r
-    textAttribs[cc].sound.data = NULL;\r
-    MyLoadSound(&textAttribs[cc].sound);\r
-  }\r
-  for (cc = ColorNormal; cc < NColorClasses; cc++) {\r
-    textAttribs[cc].sound.name = strdup("");\r
-    textAttribs[cc].sound.data = NULL;\r
-  }\r
-  for (sc = (SoundClass)0; sc < NSoundClasses; sc++) {\r
-    sounds[sc].name = strdup((&appData.soundMove)[sc]);\r
-    sounds[sc].data = NULL;\r
-    MyLoadSound(&sounds[sc]);\r
-  }\r
-}\r
-\r
-void\r
-SetCommPortDefaults()\r
-{\r
-   memset(&dcb, 0, sizeof(DCB)); // required by VS 2002 +\r
-  dcb.DCBlength = sizeof(DCB);\r
-  dcb.BaudRate = 9600;\r
-  dcb.fBinary = TRUE;\r
-  dcb.fParity = FALSE;\r
-  dcb.fOutxCtsFlow = FALSE;\r
-  dcb.fOutxDsrFlow = FALSE;\r
-  dcb.fDtrControl = DTR_CONTROL_ENABLE;\r
-  dcb.fDsrSensitivity = FALSE;\r
-  dcb.fTXContinueOnXoff = TRUE;\r
-  dcb.fOutX = FALSE;\r
-  dcb.fInX = FALSE;\r
-  dcb.fNull = FALSE;\r
-  dcb.fRtsControl = RTS_CONTROL_ENABLE;\r
-  dcb.fAbortOnError = FALSE;\r
-  dcb.ByteSize = 7;\r
-  dcb.Parity = SPACEPARITY;\r
-  dcb.StopBits = ONESTOPBIT;\r
-}\r
-\r
-// [HGM] args: these three cases taken out to stay in front-end\r
-void\r
-SaveFontArg(FILE *f, ArgDescriptor *ad)\r
-{      // in WinBoard every board size has its own font, and the "argLoc" identifies the table,\r
-       // while the curent board size determines the element. This system should be ported to XBoard.\r
-       // What the table contains pointers to, and how to print the font description, remains platform-dependent\r
-        int bs;\r
-       for (bs=0; bs<NUM_SIZES; bs++) {\r
-         MyFontParams *mfp = &font[bs][(int) ad->argLoc]->mfp;\r
-          fprintf(f, "/size=%s ", sizeInfo[bs].name);\r
-         fprintf(f, "/%s=\"%s:%g%s%s%s%s%sc%d\"\n",\r
-           ad->argName, mfp->faceName, mfp->pointSize,\r
-            mfp->bold || mfp->italic || mfp->underline || mfp->strikeout ? " " : "",\r
-           mfp->bold ? "b" : "",\r
-           mfp->italic ? "i" : "",\r
-           mfp->underline ? "u" : "",\r
-           mfp->strikeout ? "s" : "",\r
-            (int)mfp->charset);\r
-       }\r
-      }\r
-\r
-void\r
-ExportSounds()\r
-{ // [HGM] copy the names from the internal WB variables to appData\r
-  ColorClass cc;\r
-  SoundClass sc;\r
-  for (cc = (ColorClass)0; cc < ColorNormal; cc++)\r
-    (&appData.soundShout)[cc] = textAttribs[cc].sound.name;\r
-  for (sc = (SoundClass)0; sc < NSoundClasses; sc++)\r
-    (&appData.soundMove)[sc] = sounds[sc].name;\r
-}\r
-\r
-void\r
-SaveAttribsArg(FILE *f, ArgDescriptor *ad)\r
-{      // here the "argLoc" defines a table index. It could have contained the 'ta' pointer itself, though\r
-       MyTextAttribs* ta = &textAttribs[(ColorClass)ad->argLoc];\r
-       fprintf(f, "/%s=\"%s%s%s%s%s#%02lx%02lx%02lx\"\n", ad->argName,\r
-          (ta->effects & CFE_BOLD) ? "b" : "",\r
-          (ta->effects & CFE_ITALIC) ? "i" : "",\r
-          (ta->effects & CFE_UNDERLINE) ? "u" : "",\r
-          (ta->effects & CFE_STRIKEOUT) ? "s" : "",\r
-          (ta->effects) ? " " : "",\r
-         ta->color&0xff, (ta->color >> 8)&0xff, (ta->color >> 16)&0xff);\r
-      }\r
-\r
-void\r
-SaveColor(FILE *f, ArgDescriptor *ad)\r
-{      // in WinBoard the color is an int and has to be converted to text. In X it would be a string already?\r
-       COLORREF color = *(COLORREF *)colorVariable[(int)ad->argLoc];\r
-       fprintf(f, "/%s=#%02lx%02lx%02lx\n", ad->argName, \r
-         color&0xff, (color>>8)&0xff, (color>>16)&0xff);\r
-}\r
-\r
-void\r
-SaveBoardSize(FILE *f, char *name, void *addr)\r
-{ // wrapper to shield back-end from BoardSize & sizeInfo\r
-  fprintf(f, "/%s=%s\n", name, sizeInfo[*(BoardSize *)addr].name);\r
-}\r
-\r
-void\r
-ParseCommPortSettings(char *s)\r
-{ // wrapper to keep dcb from back-end\r
-  ParseCommSettings(s, &dcb);\r
-}\r
-\r
-void\r
-GetWindowCoords()\r
-{ // wrapper to shield use of window handles from back-end (make addressible by number?)\r
-  GetActualPlacement(hwndMain, &wpMain);\r
-  GetActualPlacement(hwndConsole, &wpConsole);\r
-  GetActualPlacement(commentDialog, &wpComment);\r
-  GetActualPlacement(editTagsDialog, &wpTags);\r
-  GetActualPlacement(gameListDialog, &wpGameList);\r
-  GetActualPlacement(moveHistoryDialog, &wpMoveHistory);\r
-  GetActualPlacement(evalGraphDialog, &wpEvalGraph);\r
-  GetActualPlacement(engineOutputDialog, &wpEngineOutput);\r
-}\r
-\r
-void\r
-PrintCommPortSettings(FILE *f, char *name)\r
-{ // wrapper to shield back-end from DCB\r
-      PrintCommSettings(f, name, &dcb);\r
-}\r
-\r
-int\r
-MySearchPath(char *installDir, char *name, char *fullname)\r
-{\r
-  char *dummy, buf[MSG_SIZ], *p = name, *q;\r
-  if(name[0]== '%') {\r
-    fullname[0] = 0; // [HGM] first expand any environment variables in the given name\r
-    while(*p == '%' && (q = strchr(p+1, '%'))) { // [HGM] recognize %*% as environment variable\r
-      safeStrCpy(buf, p+1, sizeof(buf)/sizeof(buf[0]) );\r
-      *strchr(buf, '%') = 0;\r
-      strcat(fullname, getenv(buf));\r
-      p = q+1; while(*p == '\\') { strcat(fullname, "\\"); p++; }\r
-    }\r
-    strcat(fullname, p); // after environment variables (if any), take the remainder of the given name\r
-    if(appData.debugMode) fprintf(debugFP, "name = '%s', expanded name = '%s'\n", name, fullname);\r
-    return (int) strlen(fullname);\r
-  }\r
-  return (int) SearchPath(installDir, name, NULL, MSG_SIZ, fullname, &dummy);\r
-}\r
-\r
-int\r
-MyGetFullPathName(char *name, char *fullname)\r
-{\r
-  char *dummy;\r
-  return (int) GetFullPathName(name, MSG_SIZ, fullname, &dummy);\r
-}\r
-\r
-int\r
-MainWindowUp()\r
-{ // [HGM] args: allows testing if main window is realized from back-end\r
-  return hwndMain != NULL;\r
-}\r
-\r
-void\r
-PopUpStartupDialog()\r
-{\r
-    FARPROC lpProc;\r
-    \r
-    LoadLanguageFile(appData.language);\r
-    lpProc = MakeProcInstance((FARPROC)StartupDialog, hInst);\r
-    DialogBox(hInst, MAKEINTRESOURCE(DLG_Startup), NULL, (DLGPROC)lpProc);\r
-    FreeProcInstance(lpProc);\r
-}\r
-\r
-/*---------------------------------------------------------------------------*\\r
- *\r
- * GDI board drawing routines\r
- *\r
-\*---------------------------------------------------------------------------*/\r
-\r
-/* [AS] Draw square using background texture */\r
-static void DrawTile( int dx, int dy, int dw, int dh, HDC dst, HDC src, int mode, int sx, int sy )\r
-{\r
-    XFORM   x;\r
-\r
-    if( mode == 0 ) {\r
-        return; /* Should never happen! */\r
-    }\r
-\r
-    SetGraphicsMode( dst, GM_ADVANCED );\r
-\r
-    switch( mode ) {\r
-    case 1:\r
-        /* Identity */\r
-        break;\r
-    case 2:\r
-        /* X reflection */\r
-        x.eM11 = -1.0;\r
-        x.eM12 = 0;\r
-        x.eM21 = 0;\r
-        x.eM22 = 1.0;\r
-        x.eDx = (FLOAT) dw + dx - 1;\r
-        x.eDy = 0;\r
-        dx = 0;\r
-        SetWorldTransform( dst, &x );\r
-        break;\r
-    case 3:\r
-        /* Y reflection */\r
-        x.eM11 = 1.0;\r
-        x.eM12 = 0;\r
-        x.eM21 = 0;\r
-        x.eM22 = -1.0;\r
-        x.eDx = 0;\r
-        x.eDy = (FLOAT) dh + dy - 1;\r
-        dy = 0;\r
-        SetWorldTransform( dst, &x );\r
-        break;\r
-    case 4:\r
-        /* X/Y flip */\r
-        x.eM11 = 0;\r
-        x.eM12 = 1.0;\r
-        x.eM21 = 1.0;\r
-        x.eM22 = 0;\r
-        x.eDx = (FLOAT) dx;\r
-        x.eDy = (FLOAT) dy;\r
-        dx = 0;\r
-        dy = 0;\r
-        SetWorldTransform( dst, &x );\r
-        break;\r
-    }\r
-\r
-    BitBlt( dst, dx, dy, dw, dh, src, sx, sy, SRCCOPY );\r
-\r
-    x.eM11 = 1.0;\r
-    x.eM12 = 0;\r
-    x.eM21 = 0;\r
-    x.eM22 = 1.0;\r
-    x.eDx = 0;\r
-    x.eDy = 0;\r
-    SetWorldTransform( dst, &x );\r
-\r
-    ModifyWorldTransform( dst, 0, MWT_IDENTITY );\r
-}\r
-\r
-/* [AS] [HGM] Make room for more piece types, so all pieces can be different */\r
-enum {\r
-    PM_WP = (int) WhitePawn, \r
-    PM_WN = (int) WhiteKnight, \r
-    PM_WB = (int) WhiteBishop, \r
-    PM_WR = (int) WhiteRook, \r
-    PM_WQ = (int) WhiteQueen, \r
-    PM_WF = (int) WhiteFerz, \r
-    PM_WW = (int) WhiteWazir, \r
-    PM_WE = (int) WhiteAlfil, \r
-    PM_WM = (int) WhiteMan, \r
-    PM_WO = (int) WhiteCannon, \r
-    PM_WU = (int) WhiteUnicorn, \r
-    PM_WH = (int) WhiteNightrider, \r
-    PM_WA = (int) WhiteAngel, \r
-    PM_WC = (int) WhiteMarshall, \r
-    PM_WAB = (int) WhiteCardinal, \r
-    PM_WD = (int) WhiteDragon, \r
-    PM_WL = (int) WhiteLance, \r
-    PM_WS = (int) WhiteCobra, \r
-    PM_WV = (int) WhiteFalcon, \r
-    PM_WSG = (int) WhiteSilver, \r
-    PM_WG = (int) WhiteGrasshopper, \r
-    PM_WK = (int) WhiteKing,\r
-    PM_BP = (int) BlackPawn, \r
-    PM_BN = (int) BlackKnight, \r
-    PM_BB = (int) BlackBishop, \r
-    PM_BR = (int) BlackRook, \r
-    PM_BQ = (int) BlackQueen, \r
-    PM_BF = (int) BlackFerz, \r
-    PM_BW = (int) BlackWazir, \r
-    PM_BE = (int) BlackAlfil, \r
-    PM_BM = (int) BlackMan,\r
-    PM_BO = (int) BlackCannon, \r
-    PM_BU = (int) BlackUnicorn, \r
-    PM_BH = (int) BlackNightrider, \r
-    PM_BA = (int) BlackAngel, \r
-    PM_BC = (int) BlackMarshall, \r
-    PM_BG = (int) BlackGrasshopper, \r
-    PM_BAB = (int) BlackCardinal,\r
-    PM_BD = (int) BlackDragon,\r
-    PM_BL = (int) BlackLance,\r
-    PM_BS = (int) BlackCobra,\r
-    PM_BV = (int) BlackFalcon,\r
-    PM_BSG = (int) BlackSilver,\r
-    PM_BK = (int) BlackKing\r
-};\r
-\r
-static HFONT hPieceFont = NULL;\r
-static HBITMAP hPieceMask[(int) EmptySquare];\r
-static HBITMAP hPieceFace[(int) EmptySquare];\r
-static int fontBitmapSquareSize = 0;\r
-static char pieceToFontChar[(int) EmptySquare] =\r
-                              { 'p', 'n', 'b', 'r', 'q', \r
-                      'n', 'b', 'p', 'n', 'b', 'r', 'b', 'r', 'q', 'k',\r
-                      'k', 'o', 'm', 'v', 't', 'w', \r
-                      'v', 't', 'o', 'm', 'v', 't', 'v', 't', 'w', 'l',\r
-                                                              'l' };\r
-\r
-extern BOOL SetCharTable( char *table, const char * map );\r
-/* [HGM] moved to backend.c */\r
-\r
-static void SetPieceBackground( HDC hdc, COLORREF color, int mode )\r
-{\r
-    HBRUSH hbrush;\r
-    BYTE r1 = GetRValue( color );\r
-    BYTE g1 = GetGValue( color );\r
-    BYTE b1 = GetBValue( color );\r
-    BYTE r2 = r1 / 2;\r
-    BYTE g2 = g1 / 2;\r
-    BYTE b2 = b1 / 2;\r
-    RECT rc;\r
-\r
-    /* Create a uniform background first */\r
-    hbrush = CreateSolidBrush( color );\r
-    SetRect( &rc, 0, 0, squareSize, squareSize );\r
-    FillRect( hdc, &rc, hbrush );\r
-    DeleteObject( hbrush );\r
-    \r
-    if( mode == 1 ) {\r
-        /* Vertical gradient, good for pawn, knight and rook, less for queen and king */\r
-        int steps = squareSize / 2;\r
-        int i;\r
-\r
-        for( i=0; i<steps; i++ ) {\r
-            BYTE r = r1 - (r1-r2) * i / steps;\r
-            BYTE g = g1 - (g1-g2) * i / steps;\r
-            BYTE b = b1 - (b1-b2) * i / steps;\r
-\r
-            hbrush = CreateSolidBrush( RGB(r,g,b) );\r
-            SetRect( &rc, i + squareSize - steps, 0, i + squareSize - steps + 1, squareSize );\r
-            FillRect( hdc, &rc, hbrush );\r
-            DeleteObject(hbrush);\r
-        }\r
-    }\r
-    else if( mode == 2 ) {\r
-        /* Diagonal gradient, good more or less for every piece */\r
-        POINT triangle[3];\r
-        HPEN hpen = SelectObject( hdc, GetStockObject(NULL_PEN) );\r
-        HBRUSH hbrush_old;\r
-        int steps = squareSize;\r
-        int i;\r
-\r
-        triangle[0].x = squareSize - steps;\r
-        triangle[0].y = squareSize;\r
-        triangle[1].x = squareSize;\r
-        triangle[1].y = squareSize;\r
-        triangle[2].x = squareSize;\r
-        triangle[2].y = squareSize - steps;\r
-\r
-        for( i=0; i<steps; i++ ) {\r
-            BYTE r = r1 - (r1-r2) * i / steps;\r
-            BYTE g = g1 - (g1-g2) * i / steps;\r
-            BYTE b = b1 - (b1-b2) * i / steps;\r
-\r
-            hbrush = CreateSolidBrush( RGB(r,g,b) );\r
-            hbrush_old = SelectObject( hdc, hbrush );\r
-            Polygon( hdc, triangle, 3 );\r
-            SelectObject( hdc, hbrush_old );\r
-            DeleteObject(hbrush);\r
-            triangle[0].x++;\r
-            triangle[2].y++;\r
-        }\r
-\r
-        SelectObject( hdc, hpen );\r
-    }\r
-}\r
-\r
-/*\r
-    [AS] The method I use to create the bitmaps it a bit tricky, but it\r
-    seems to work ok. The main problem here is to find the "inside" of a chess\r
-    piece: follow the steps as explained below.\r
-*/\r
-static void CreatePieceMaskFromFont( HDC hdc_window, HDC hdc, int index )\r
-{\r
-    HBITMAP hbm;\r
-    HBITMAP hbm_old;\r
-    COLORREF chroma = RGB(0xFF,0x00,0xFF);\r
-    RECT rc;\r
-    SIZE sz;\r
-\r
-\r
-    POINT pt;\r
-    int backColor = whitePieceColor; \r
-    int foreColor = blackPieceColor;\r
-    \r
-    if( index < (int)BlackPawn && appData.fontBackColorWhite != appData.fontForeColorWhite ) {\r
-        backColor = appData.fontBackColorWhite;\r
-        foreColor = appData.fontForeColorWhite;\r
-    }\r
-    else if( index >= (int)BlackPawn && appData.fontBackColorBlack != appData.fontForeColorBlack ) {\r
-        backColor = appData.fontBackColorBlack;\r
-        foreColor = appData.fontForeColorBlack;\r
-    }\r
-\r
-    /* Mask */\r
-    hbm = CreateCompatibleBitmap( hdc_window, squareSize, squareSize );\r
-\r
-    hbm_old = SelectObject( hdc, hbm );\r
-\r
-    rc.left = 0;\r
-    rc.top = 0;\r
-    rc.right = squareSize;\r
-    rc.bottom = squareSize;\r
-\r
-    /* Step 1: background is now black */\r
-    FillRect( hdc, &rc, GetStockObject(BLACK_BRUSH) );\r
-\r
-    GetTextExtentPoint32( hdc, &pieceToFontChar[index], 1, &sz );\r
-\r
-    pt.x = (squareSize - sz.cx) / 2;\r
-    pt.y = (squareSize - sz.cy) / 2;\r
-\r
-    SetBkMode( hdc, TRANSPARENT );\r
-    SetTextColor( hdc, chroma );\r
-    /* Step 2: the piece has been drawn in purple, there are now black and purple in this bitmap */\r
-    TextOut( hdc, pt.x, pt.y, &pieceToFontChar[appData.allWhite && index >= (int)BlackPawn ? index - (int)BlackPawn : index], 1 );\r
-\r
-    SelectObject( hdc, GetStockObject(WHITE_BRUSH) );\r
-    /* Step 3: the area outside the piece is filled with white */\r
-//    FloodFill( hdc, 0, 0, chroma );\r
-    ExtFloodFill( hdc, 0, 0, 0, FLOODFILLSURFACE );\r
-    ExtFloodFill( hdc, 0, squareSize-1, 0, FLOODFILLSURFACE ); // [HGM] fill from all 4 corners, for if piece too big\r
-    ExtFloodFill( hdc, squareSize-1, 0, 0, FLOODFILLSURFACE );\r
-    ExtFloodFill( hdc, squareSize-1, squareSize-1, 0, FLOODFILLSURFACE );\r
-    SelectObject( hdc, GetStockObject(BLACK_BRUSH) );\r
-    /* \r
-        Step 4: this is the tricky part, the area inside the piece is filled with black,\r
-        but if the start point is not inside the piece we're lost!\r
-        There should be a better way to do this... if we could create a region or path\r
-        from the fill operation we would be fine for example.\r
-    */\r
-//    FloodFill( hdc, squareSize / 2, squareSize / 2, RGB(0xFF,0xFF,0xFF) );\r
-    ExtFloodFill( hdc, squareSize / 2, squareSize / 2, RGB(0xFF,0xFF,0xFF), FLOODFILLBORDER );\r
-\r
-    {   /* [HGM] shave off edges of mask, in an attempt to correct for the fact that FloodFill does not work correctly under Win XP */\r
-        HDC dc2 = CreateCompatibleDC( hdc_window );\r
-        HBITMAP bm2 = CreateCompatibleBitmap( hdc_window, squareSize, squareSize );\r
-\r
-        SelectObject( dc2, bm2 );\r
-        BitBlt( dc2, 0, 0, squareSize, squareSize, hdc, 0, 0, SRCCOPY ); // make copy\r
-        BitBlt( hdc, 0, 1, squareSize-2, squareSize-2, dc2, 1, 1, SRCPAINT );\r
-        BitBlt( hdc, 2, 1, squareSize-2, squareSize-2, dc2, 1, 1, SRCPAINT );\r
-        BitBlt( hdc, 1, 0, squareSize-2, squareSize-2, dc2, 1, 1, SRCPAINT );\r
-        BitBlt( hdc, 1, 2, squareSize-2, squareSize-2, dc2, 1, 1, SRCPAINT );\r
-\r
-        DeleteDC( dc2 );\r
-        DeleteObject( bm2 );\r
-    }\r
-\r
-    SetTextColor( hdc, 0 );\r
-    /* \r
-        Step 5: some fonts have "disconnected" areas that are skipped by the fill:\r
-        draw the piece again in black for safety.\r
-    */\r
-    TextOut( hdc, pt.x, pt.y, &pieceToFontChar[appData.allWhite && index >= (int)BlackPawn ? index - (int)BlackPawn : index], 1 );\r
-\r
-    SelectObject( hdc, hbm_old );\r
-\r
-    if( hPieceMask[index] != NULL ) {\r
-        DeleteObject( hPieceMask[index] );\r
-    }\r
-\r
-    hPieceMask[index] = hbm;\r
-\r
-    /* Face */\r
-    hbm = CreateCompatibleBitmap( hdc_window, squareSize, squareSize );\r
-\r
-    SelectObject( hdc, hbm );\r
-\r
-    {\r
-        HDC dc1 = CreateCompatibleDC( hdc_window );\r
-        HDC dc2 = CreateCompatibleDC( hdc_window );\r
-        HBITMAP bm2 = CreateCompatibleBitmap( hdc_window, squareSize, squareSize );\r
-\r
-        SelectObject( dc1, hPieceMask[index] );\r
-        SelectObject( dc2, bm2 );\r
-        FillRect( dc2, &rc, GetStockObject(WHITE_BRUSH) );\r
-        BitBlt( dc2, 0, 0, squareSize, squareSize, dc1, 0, 0, SRCINVERT );\r
-        \r
-        /* \r
-            Now dc2 contains the inverse of the piece mask, i.e. a mask that preserves\r
-            the piece background and deletes (makes transparent) the rest.\r
-            Thanks to that mask, we are free to paint the background with the greates\r
-            freedom, as we'll be able to mask off the unwanted parts when finished.\r
-            We use this, to make gradients and give the pieces a "roundish" look.\r
-        */\r
-        SetPieceBackground( hdc, backColor, 2 );\r
-        BitBlt( hdc, 0, 0, squareSize, squareSize, dc2, 0, 0, SRCAND );\r
-\r
-        DeleteDC( dc2 );\r
-        DeleteDC( dc1 );\r
-        DeleteObject( bm2 );\r
-    }\r
-\r
-    SetTextColor( hdc, foreColor );\r
-    TextOut( hdc, pt.x, pt.y, &pieceToFontChar[appData.allWhite && index >= (int)BlackPawn ? index - (int)BlackPawn : index], 1 );\r
-\r
-    SelectObject( hdc, hbm_old );\r
-\r
-    if( hPieceFace[index] != NULL ) {\r
-        DeleteObject( hPieceFace[index] );\r
-    }\r
-\r
-    hPieceFace[index] = hbm;\r
-}\r
-\r
-static int TranslatePieceToFontPiece( int piece )\r
-{\r
-    switch( piece ) {\r
-    case BlackPawn:\r
-        return PM_BP;\r
-    case BlackKnight:\r
-        return PM_BN;\r
-    case BlackBishop:\r
-        return PM_BB;\r
-    case BlackRook:\r
-        return PM_BR;\r
-    case BlackQueen:\r
-        return PM_BQ;\r
-    case BlackKing:\r
-        return PM_BK;\r
-    case WhitePawn:\r
-        return PM_WP;\r
-    case WhiteKnight:\r
-        return PM_WN;\r
-    case WhiteBishop:\r
-        return PM_WB;\r
-    case WhiteRook:\r
-        return PM_WR;\r
-    case WhiteQueen:\r
-        return PM_WQ;\r
-    case WhiteKing:\r
-        return PM_WK;\r
-\r
-    case BlackAngel:\r
-        return PM_BA;\r
-    case BlackMarshall:\r
-        return PM_BC;\r
-    case BlackFerz:\r
-        return PM_BF;\r
-    case BlackNightrider:\r
-        return PM_BH;\r
-    case BlackAlfil:\r
-        return PM_BE;\r
-    case BlackWazir:\r
-        return PM_BW;\r
-    case BlackUnicorn:\r
-        return PM_BU;\r
-    case BlackCannon:\r
-        return PM_BO;\r
-    case BlackGrasshopper:\r
-        return PM_BG;\r
-    case BlackMan:\r
-        return PM_BM;\r
-    case BlackSilver:\r
-        return PM_BSG;\r
-    case BlackLance:\r
-        return PM_BL;\r
-    case BlackFalcon:\r
-        return PM_BV;\r
-    case BlackCobra:\r
-        return PM_BS;\r
-    case BlackCardinal:\r
-        return PM_BAB;\r
-    case BlackDragon:\r
-        return PM_BD;\r
-\r
-    case WhiteAngel:\r
-        return PM_WA;\r
-    case WhiteMarshall:\r
-        return PM_WC;\r
-    case WhiteFerz:\r
-        return PM_WF;\r
-    case WhiteNightrider:\r
-        return PM_WH;\r
-    case WhiteAlfil:\r
-        return PM_WE;\r
-    case WhiteWazir:\r
-        return PM_WW;\r
-    case WhiteUnicorn:\r
-        return PM_WU;\r
-    case WhiteCannon:\r
-        return PM_WO;\r
-    case WhiteGrasshopper:\r
-        return PM_WG;\r
-    case WhiteMan:\r
-        return PM_WM;\r
-    case WhiteSilver:\r
-        return PM_WSG;\r
-    case WhiteLance:\r
-        return PM_WL;\r
-    case WhiteFalcon:\r
-        return PM_WV;\r
-    case WhiteCobra:\r
-        return PM_WS;\r
-    case WhiteCardinal:\r
-        return PM_WAB;\r
-    case WhiteDragon:\r
-        return PM_WD;\r
-    }\r
-\r
-    return 0;\r
-}\r
-\r
-void CreatePiecesFromFont()\r
-{\r
-    LOGFONT lf;\r
-    HDC hdc_window = NULL;\r
-    HDC hdc = NULL;\r
-    HFONT hfont_old;\r
-    int fontHeight;\r
-    int i;\r
-\r
-    if( fontBitmapSquareSize < 0 ) {\r
-        /* Something went seriously wrong in the past: do not try to recreate fonts! */\r
-        return;\r
-    }\r
-\r
-    if( !appData.useFont || appData.renderPiecesWithFont == NULL ||\r
-            appData.renderPiecesWithFont[0] == NULLCHAR || appData.renderPiecesWithFont[0] == '*' ) {\r
-        fontBitmapSquareSize = -1;\r
-        return;\r
-    }\r
-\r
-    if( fontBitmapSquareSize != squareSize ) {\r
-        hdc_window = GetDC( hwndMain );\r
-        hdc = CreateCompatibleDC( hdc_window );\r
-\r
-        if( hPieceFont != NULL ) {\r
-            DeleteObject( hPieceFont );\r
-        }\r
-        else {\r
-            for( i=0; i<=(int)BlackKing; i++ ) {\r
-                hPieceMask[i] = NULL;\r
-                hPieceFace[i] = NULL;\r
-            }\r
-        }\r
-\r
-        fontHeight = 75;\r
-\r
-        if( appData.fontPieceSize >= 50 && appData.fontPieceSize <= 150 ) {\r
-            fontHeight = appData.fontPieceSize;\r
-        }\r
-\r
-        fontHeight = (fontHeight * squareSize) / 100;\r
-\r
-        lf.lfHeight = -MulDiv( fontHeight, GetDeviceCaps(hdc, LOGPIXELSY), 72 );\r
-        lf.lfWidth = 0;\r
-        lf.lfEscapement = 0;\r
-        lf.lfOrientation = 0;\r
-        lf.lfWeight = FW_NORMAL;\r
-        lf.lfItalic = 0;\r
-        lf.lfUnderline = 0;\r
-        lf.lfStrikeOut = 0;\r
-        lf.lfCharSet = DEFAULT_CHARSET;\r
-        lf.lfOutPrecision = OUT_DEFAULT_PRECIS;\r
-        lf.lfClipPrecision = CLIP_DEFAULT_PRECIS;\r
-        lf.lfQuality = PROOF_QUALITY;\r
-        lf.lfPitchAndFamily = DEFAULT_PITCH | FF_DONTCARE;\r
-        strncpy( lf.lfFaceName, appData.renderPiecesWithFont, sizeof(lf.lfFaceName) );\r
-        lf.lfFaceName[ sizeof(lf.lfFaceName) - 1 ] = '\0';\r
-\r
-        hPieceFont = CreateFontIndirect( &lf );\r
-\r
-        if( hPieceFont == NULL ) {\r
-            fontBitmapSquareSize = -2;\r
-        }\r
-        else {\r
-            /* Setup font-to-piece character table */\r
-            if( ! SetCharTable(pieceToFontChar, appData.fontToPieceTable) ) {\r
-                /* No (or wrong) global settings, try to detect the font */\r
-                if( strstr(lf.lfFaceName,"Alpha") != NULL ) {\r
-                    /* Alpha */\r
-                    SetCharTable(pieceToFontChar, "phbrqkojntwl");\r
-                }\r
-                else if( strstr(lf.lfFaceName,"DiagramTT") != NULL ) {\r
-                    /* DiagramTT* family */\r
-                    SetCharTable(pieceToFontChar, "PNLRQKpnlrqk");\r
-                }\r
-                else if( strstr(lf.lfFaceName,"WinboardF") != NULL ) {\r
-                    /* Fairy symbols */\r
-                     SetCharTable(pieceToFontChar, "PNBRQFEACWMOHIJGDVSLUKpnbrqfeacwmohijgdvsluk");\r
-                }\r
-                else if( strstr(lf.lfFaceName,"GC2004D") != NULL ) {\r
-                    /* Good Companion (Some characters get warped as literal :-( */\r
-                    char s[] = "1cmWG0??S??oYI23wgQU";\r
-                    s[0]=0xB9; s[1]=0xA9; s[6]=0xB1; s[11]=0xBB; s[12]=0xAB; s[17]=0xB3;\r
-                    SetCharTable(pieceToFontChar, s);\r
-                }\r
-                else {\r
-                    /* Cases, Condal, Leipzig, Lucena, Marroquin, Merida, Usual */\r
-                    SetCharTable(pieceToFontChar, "pnbrqkomvtwl");\r
-                }\r
-            }\r
-\r
-            /* Create bitmaps */\r
-            hfont_old = SelectObject( hdc, hPieceFont );\r
-           for(i=(int)WhitePawn; i<(int)EmptySquare; i++) /* [HGM] made a loop for this */\r
-               if(PieceToChar((ChessSquare)i) != '.')     /* skip unused pieces         */\r
-                   CreatePieceMaskFromFont( hdc_window, hdc, i );\r
-\r
-            SelectObject( hdc, hfont_old );\r
-\r
-            fontBitmapSquareSize = squareSize;\r
-        }\r
-    }\r
-\r
-    if( hdc != NULL ) {\r
-        DeleteDC( hdc );\r
-    }\r
-\r
-    if( hdc_window != NULL ) {\r
-        ReleaseDC( hwndMain, hdc_window );\r
-    }\r
-}\r
-\r
-HBITMAP\r
-DoLoadBitmap(HINSTANCE hinst, char *piece, int squareSize, char *suffix)\r
-{\r
-  char name[128], buf[MSG_SIZ];\r
-\r
-    snprintf(name, sizeof(name)/sizeof(name[0]), "%s%d%s", piece, squareSize, suffix);\r
-  if(appData.pieceDirectory[0]) {\r
-    HBITMAP res;\r
-    snprintf(buf, MSG_SIZ, "%s\\%s.bmp", appData.pieceDirectory, name);\r
-    res = LoadImage( 0, buf, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE );\r
-    if(res) return res;\r
-  }\r
-  if (gameInfo.event &&\r
-      strcmp(gameInfo.event, "Easter Egg Hunt") == 0 &&\r
-      strcmp(name, "k80s") == 0) {\r
-    safeStrCpy(name, "tim", sizeof(name)/sizeof(name[0]) );\r
-  }\r
-  return LoadBitmap(hinst, name);\r
-}\r
-\r
-\r
-/* Insert a color into the program's logical palette\r
-   structure.  This code assumes the given color is\r
-   the result of the RGB or PALETTERGB macro, and it\r
-   knows how those macros work (which is documented).\r
-*/\r
-VOID\r
-InsertInPalette(COLORREF color)\r
-{\r
-  LPPALETTEENTRY pe = &(pLogPal->palPalEntry[pLogPal->palNumEntries]);\r
-\r
-  if (pLogPal->palNumEntries++ >= PALETTESIZE) {\r
-    DisplayFatalError(_("Too many colors"), 0, 1);\r
-    pLogPal->palNumEntries--;\r
-    return;\r
-  }\r
-\r
-  pe->peFlags = (char) 0;\r
-  pe->peRed = (char) (0xFF & color);\r
-  pe->peGreen = (char) (0xFF & (color >> 8));\r
-  pe->peBlue = (char) (0xFF & (color >> 16));\r
-  return;\r
-}\r
-\r
-\r
-VOID\r
-InitDrawingColors()\r
-{\r
-  int i;\r
-  if (pLogPal == NULL) {\r
-    /* Allocate enough memory for a logical palette with\r
-     * PALETTESIZE entries and set the size and version fields\r
-     * of the logical palette structure.\r
-     */\r
-    pLogPal = (NPLOGPALETTE)\r
-      LocalAlloc(LMEM_FIXED, (sizeof(LOGPALETTE) +\r
-                             (sizeof(PALETTEENTRY) * (PALETTESIZE))));\r
-    pLogPal->palVersion    = 0x300;\r
-  }\r
-  pLogPal->palNumEntries = 0;\r
-\r
-  InsertInPalette(lightSquareColor);\r
-  InsertInPalette(darkSquareColor);\r
-  InsertInPalette(whitePieceColor);\r
-  InsertInPalette(blackPieceColor);\r
-  InsertInPalette(highlightSquareColor);\r
-  InsertInPalette(premoveHighlightColor);\r
-\r
-  /*  create a logical color palette according the information\r
-   *  in the LOGPALETTE structure.\r
-   */\r
-  hPal = CreatePalette((LPLOGPALETTE) pLogPal);\r
-\r
-  lightSquareBrush = CreateSolidBrush(lightSquareColor);\r
-  blackSquareBrush = CreateSolidBrush(blackPieceColor);\r
-  darkSquareBrush = CreateSolidBrush(darkSquareColor);\r
-  whitePieceBrush = CreateSolidBrush(whitePieceColor);\r
-  blackPieceBrush = CreateSolidBrush(blackPieceColor);\r
-  iconBkgndBrush = CreateSolidBrush(GetSysColor(COLOR_BACKGROUND));\r
-  explodeBrush = CreateSolidBrush(highlightSquareColor); // [HGM] atomic\r
-    for(i=0; i<8;i++) markerBrush[i] = CreateSolidBrush(markerColor[i]); // [HGM] markers\r
-\r
-   /* [AS] Force rendering of the font-based pieces */\r
-  if( fontBitmapSquareSize > 0 ) {\r
-    fontBitmapSquareSize = 0;\r
-  }\r
-}\r
-\r
-\r
-int\r
-BoardWidth(int boardSize, int n)\r
-{ /* [HGM] argument n added to allow different width and height */\r
-  int lineGap = sizeInfo[boardSize].lineGap;\r
-\r
-  if( appData.overrideLineGap >= 0 && appData.overrideLineGap <= 5 ) {\r
-      lineGap = appData.overrideLineGap;\r
-  }\r
-\r
-  return (n + 1) * lineGap +\r
-          n * sizeInfo[boardSize].squareSize;\r
-}\r
-\r
-/* Respond to board resize by dragging edge */\r
-VOID\r
-ResizeBoard(int newSizeX, int newSizeY, int flags)\r
-{\r
-  BoardSize newSize = NUM_SIZES - 1;\r
-  static int recurse = 0;\r
-  if (IsIconic(hwndMain)) return;\r
-  if (recurse > 0) return;\r
-  recurse++;\r
-  while (newSize > 0) {\r
-       InitDrawingSizes(newSize+1000, 0); // [HGM] kludge to update sizeInfo without visible effects\r
-       if(newSizeX >= sizeInfo[newSize].cliWidth &&\r
-          newSizeY >= sizeInfo[newSize].cliHeight) break;\r
-    newSize--;\r
-  } \r
-  boardSize = newSize;\r
-  InitDrawingSizes(boardSize, flags);\r
-  recurse--;\r
-}\r
-\r
-\r
-extern Boolean twoBoards, partnerUp; // [HGM] dual\r
-\r
-VOID\r
-InitDrawingSizes(BoardSize boardSize, int flags)\r
-{\r
-  int i, boardWidth, boardHeight; /* [HGM] height treated separately */\r
-  ChessSquare piece;\r
-  static int oldBoardSize = -1, oldTinyLayout = 0;\r
-  HDC hdc;\r
-  SIZE clockSize, messageSize;\r
-  HFONT oldFont;\r
-  char buf[MSG_SIZ];\r
-  char *str;\r
-  HMENU hmenu = GetMenu(hwndMain);\r
-  RECT crect, wrect, oldRect;\r
-  int offby;\r
-  LOGBRUSH logbrush;\r
-  VariantClass v = gameInfo.variant;\r
-\r
-  int suppressVisibleEffects = 0; // [HGM] kludge to request updating sizeInfo only\r
-  if((int)boardSize >= 1000 ) { boardSize -= 1000; suppressVisibleEffects = 1; }\r
-\r
-  /* [HGM] call with -2 uses old size (for if nr of files, ranks changes) */\r
-  if(boardSize == (BoardSize)(-2) ) boardSize = oldBoardSize;\r
-  if(boardSize == -1) return;     // no size defined yet; abort (to allow early call of InitPosition)\r
-  oldBoardSize = boardSize;\r
-\r
-  if(boardSize != SizeMiddling && boardSize != SizePetite && boardSize != SizeBulky && !appData.useFont)\r
-  { // correct board size to one where built-in pieces exist\r
-    if((v == VariantCapablanca || v == VariantGothic || v == VariantGrand || v == VariantCapaRandom || v == VariantJanus || v == VariantSuper)\r
-       && (boardSize < SizePetite || boardSize > SizeBulky) // Archbishop and Chancellor available in entire middle range\r
-\r
-      || (v == VariantShogi && boardSize != SizeModerate)   // Japanese-style Shogi\r
-      ||  v == VariantKnightmate || v == VariantSChess || v == VariantXiangqi || v == VariantSpartan\r
-      ||  v == VariantShatranj || v == VariantMakruk || v == VariantGreat || v == VariantFairy || v == VariantLion ) {\r
-      if(boardSize < SizeMediocre) boardSize = SizePetite; else\r
-      if(boardSize > SizeModerate) boardSize = SizeBulky;  else\r
-                                   boardSize = SizeMiddling;\r
-    }\r
-  }\r
-  if(!appData.useFont && boardSize == SizePetite && (v == VariantKnightmate)) boardSize = SizeMiddling; // no Unicorn in Petite\r
-\r
-  oldRect.left = wpMain.x; //[HGM] placement: remember previous window params\r
-  oldRect.top = wpMain.y;\r
-  oldRect.right = wpMain.x + wpMain.width;\r
-  oldRect.bottom = wpMain.y + wpMain.height;\r
-\r
-  tinyLayout = sizeInfo[boardSize].tinyLayout;\r
-  smallLayout = sizeInfo[boardSize].smallLayout;\r
-  squareSize = sizeInfo[boardSize].squareSize;\r
-  lineGap = sizeInfo[boardSize].lineGap;\r
-  minorSize = 0; /* [HGM] Kludge to see if demagnified pieces need to be shifted  */\r
-  border = appData.useBorder && appData.border[0] ? squareSize/2 : 0;\r
-\r
-  // [HGM] decide on tininess based on total board width rather than square size\r
-  tinyLayout = squareSize * (BOARD_WIDTH);\r
-  tinyLayout = tinyLayout < 35*8 ? 2 : tinyLayout < 43*8 ? 1 : 0;\r
-\r
-  if( appData.overrideLineGap >= 0 && appData.overrideLineGap <= 5 ) {\r
-      lineGap = appData.overrideLineGap;\r
-  }\r
-\r
-  if (tinyLayout != oldTinyLayout) {\r
-    long style = GetWindowLongPtr(hwndMain, GWL_STYLE);\r
-    if (tinyLayout == 2) {\r
-      style &= ~WS_SYSMENU;\r
-      InsertMenu(hmenu, IDM_Exit, MF_BYCOMMAND, IDM_Minimize,\r
-                "&Minimize\tCtrl+F4");\r
-    } else {\r
-      style |= WS_SYSMENU;\r
-      RemoveMenu(hmenu, IDM_Minimize, MF_BYCOMMAND);\r
-    }\r
-    SetWindowLongPtr(hwndMain, GWL_STYLE, style);\r
-\r
-    for (i=0; menuBarText[tinyLayout][i]; i++) {\r
-      ModifyMenu(hmenu, i, MF_STRING|MF_BYPOSITION|MF_POPUP, \r
-       (UINT)GetSubMenu(hmenu, i), T_(menuBarText[tinyLayout][i]));\r
-    }\r
-    DrawMenuBar(hwndMain);\r
-  }\r
-\r
-  boardWidth  = BoardWidth(boardSize, BOARD_WIDTH) + 2*border;\r
-  boardHeight = BoardWidth(boardSize, BOARD_HEIGHT) + 2*border;\r
-\r
-  /* Get text area sizes */\r
-  hdc = GetDC(hwndMain);\r
-  if (appData.clockMode) {\r
-    snprintf(buf, MSG_SIZ, _("White: %s"), TimeString(23*60*60*1000L));\r
-  } else {\r
-    snprintf(buf, MSG_SIZ, _("White"));\r
-  }\r
-  oldFont = SelectObject(hdc, font[boardSize][CLOCK_FONT]->hf);\r
-  GetTextExtentPoint(hdc, buf, strlen(buf), &clockSize);\r
-  SelectObject(hdc, font[boardSize][MESSAGE_FONT]->hf);\r
-  str = _("We only care about the height here");\r
-  GetTextExtentPoint(hdc, str, strlen(str), &messageSize);\r
-  SelectObject(hdc, oldFont);\r
-  ReleaseDC(hwndMain, hdc);\r
-\r
-  /* Compute where everything goes */\r
-  if((first.programLogo || second.programLogo) && tinyLayout != 2) {\r
-        /* [HGM] logo: if either logo is on, reserve space for it */\r
-       logoHeight =  2*clockSize.cy;\r
-       leftLogoRect.left   = OUTER_MARGIN;\r
-       leftLogoRect.right  = leftLogoRect.left + 4*clockSize.cy;\r
-       leftLogoRect.top    = OUTER_MARGIN;\r
-       leftLogoRect.bottom = OUTER_MARGIN + logoHeight;\r
-\r
-       rightLogoRect.right  = OUTER_MARGIN + boardWidth;\r
-       rightLogoRect.left   = rightLogoRect.right - 4*clockSize.cy;\r
-       rightLogoRect.top    = OUTER_MARGIN;\r
-       rightLogoRect.bottom = OUTER_MARGIN + logoHeight;\r
-\r
-\r
-    whiteRect.left = leftLogoRect.right;\r
-    whiteRect.right = OUTER_MARGIN + boardWidth/2 - INNER_MARGIN/2;\r
-    whiteRect.top = OUTER_MARGIN;\r
-    whiteRect.bottom = whiteRect.top + logoHeight;\r
-\r
-    blackRect.right = rightLogoRect.left;\r
-    blackRect.left = whiteRect.right + INNER_MARGIN;\r
-    blackRect.top = whiteRect.top;\r
-    blackRect.bottom = whiteRect.bottom;\r
-  } else {\r
-    whiteRect.left = OUTER_MARGIN;\r
-    whiteRect.right = whiteRect.left + boardWidth/2 - INNER_MARGIN/2;\r
-    whiteRect.top = OUTER_MARGIN;\r
-    whiteRect.bottom = whiteRect.top + clockSize.cy;\r
-\r
-    blackRect.left = whiteRect.right + INNER_MARGIN;\r
-    blackRect.right = blackRect.left + boardWidth/2 - 1;\r
-    blackRect.top = whiteRect.top;\r
-    blackRect.bottom = whiteRect.bottom;\r
-\r
-    logoHeight = 0; // [HGM] logo: suppress logo after change to tiny layout!\r
-  }\r
-\r
-  messageRect.left = OUTER_MARGIN + MESSAGE_LINE_LEFTMARGIN;\r
-  if (appData.showButtonBar) {\r
-    messageRect.right = OUTER_MARGIN + boardWidth         // [HGM] logo: expressed independent of clock placement\r
-      - N_BUTTONS*BUTTON_WIDTH - MESSAGE_LINE_LEFTMARGIN;\r
-  } else {\r
-    messageRect.right = OUTER_MARGIN + boardWidth;\r
-  }\r
-  messageRect.top = whiteRect.bottom + INNER_MARGIN;\r
-  messageRect.bottom = messageRect.top + messageSize.cy;\r
-\r
-  boardRect.left = OUTER_MARGIN;\r
-  boardRect.right = boardRect.left + boardWidth;\r
-  boardRect.top = messageRect.bottom + INNER_MARGIN;\r
-  boardRect.bottom = boardRect.top + boardHeight;\r
-\r
-  sizeInfo[boardSize].cliWidth = boardRect.right + OUTER_MARGIN;\r
-  sizeInfo[boardSize].cliHeight = boardRect.bottom + OUTER_MARGIN;\r
-  oldTinyLayout = tinyLayout;\r
-  winW = 2 * GetSystemMetrics(SM_CXFRAME) + boardRect.right + OUTER_MARGIN;\r
-  winH = 2 * GetSystemMetrics(SM_CYFRAME) + GetSystemMetrics(SM_CYMENU) +\r
-    GetSystemMetrics(SM_CYCAPTION) + boardRect.bottom + OUTER_MARGIN;\r
-  winW *= 1 + twoBoards;\r
-  if(suppressVisibleEffects) return; // [HGM] when called for filling sizeInfo only\r
-  wpMain.width = winW;  // [HGM] placement: set through temporary which can used by initial sizing choice\r
-  wpMain.height = winH; //       without disturbing window attachments\r
-  GetWindowRect(hwndMain, &wrect);\r
-  SetWindowPos(hwndMain, NULL, 0, 0, wpMain.width, wpMain.height,\r
-              SWP_NOCOPYBITS|SWP_NOZORDER|SWP_NOMOVE);\r
-\r
-  // [HGM] placement: let attached windows follow size change.\r
-  ReattachAfterSize( &oldRect, wpMain.width, wpMain.height, moveHistoryDialog, &wpMoveHistory );\r
-  ReattachAfterSize( &oldRect, wpMain.width, wpMain.height, evalGraphDialog, &wpEvalGraph );\r
-  ReattachAfterSize( &oldRect, wpMain.width, wpMain.height, engineOutputDialog, &wpEngineOutput );\r
-  ReattachAfterSize( &oldRect, wpMain.width, wpMain.height, gameListDialog, &wpGameList );\r
-  ReattachAfterSize( &oldRect, wpMain.width, wpMain.height, hwndConsole, &wpConsole );\r
-\r
-  /* compensate if menu bar wrapped */\r
-  GetClientRect(hwndMain, &crect);\r
-  offby = boardRect.bottom + OUTER_MARGIN - crect.bottom;\r
-  wpMain.height += offby;\r
-  switch (flags) {\r
-  case WMSZ_TOPLEFT:\r
-    SetWindowPos(hwndMain, NULL, \r
-                 wrect.right - wpMain.width, wrect.bottom - wpMain.height, \r
-                 wpMain.width, wpMain.height, SWP_NOCOPYBITS|SWP_NOZORDER);\r
-    break;\r
-\r
-  case WMSZ_TOPRIGHT:\r
-  case WMSZ_TOP:\r
-    SetWindowPos(hwndMain, NULL, \r
-                 wrect.left, wrect.bottom - wpMain.height, \r
-                 wpMain.width, wpMain.height, SWP_NOCOPYBITS|SWP_NOZORDER);\r
-    break;\r
-\r
-  case WMSZ_BOTTOMLEFT:\r
-  case WMSZ_LEFT:\r
-    SetWindowPos(hwndMain, NULL, \r
-                 wrect.right - wpMain.width, wrect.top, \r
-                 wpMain.width, wpMain.height, SWP_NOCOPYBITS|SWP_NOZORDER);\r
-    break;\r
-\r
-  case WMSZ_BOTTOMRIGHT:\r
-  case WMSZ_BOTTOM:\r
-  case WMSZ_RIGHT:\r
-  default:\r
-    SetWindowPos(hwndMain, NULL, 0, 0, wpMain.width, wpMain.height,\r
-               SWP_NOCOPYBITS|SWP_NOZORDER|SWP_NOMOVE);\r
-    break;\r
-  }\r
-\r
-  hwndPause = NULL;\r
-  for (i = 0; i < N_BUTTONS; i++) {\r
-    if (buttonDesc[i].hwnd != NULL) {\r
-      DestroyWindow(buttonDesc[i].hwnd);\r
-      buttonDesc[i].hwnd = NULL;\r
-    }\r
-    if (appData.showButtonBar) {\r
-      buttonDesc[i].hwnd =\r
-       CreateWindow("BUTTON", buttonDesc[i].label,\r
-                    WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON,\r
-                    boardRect.right - BUTTON_WIDTH*(N_BUTTONS-i),\r
-                    messageRect.top, BUTTON_WIDTH, messageSize.cy, hwndMain,\r
-                    (HMENU) buttonDesc[i].id,\r
-                    (HINSTANCE) GetWindowLongPtr(hwndMain, GWLP_HINSTANCE), NULL);\r
-      if (tinyLayout == 2) {\r
-       SendMessage(buttonDesc[i].hwnd, WM_SETFONT, \r
-                   (WPARAM)font[boardSize][MESSAGE_FONT]->hf,\r
-                   MAKELPARAM(FALSE, 0));\r
-      }\r
-      if (buttonDesc[i].id == IDM_Pause)\r
-       hwndPause = buttonDesc[i].hwnd;\r
-      buttonDesc[i].wndproc = (WNDPROC)\r
-       SetWindowLongPtr(buttonDesc[i].hwnd, GWLP_WNDPROC, (LONG_PTR) ButtonProc);\r
-    }\r
-  }\r
-  if (gridPen != NULL) DeleteObject(gridPen);\r
-  if (highlightPen != NULL) DeleteObject(highlightPen);\r
-  if (premovePen != NULL) DeleteObject(premovePen);\r
-  if (lineGap != 0) {\r
-    logbrush.lbStyle = BS_SOLID;\r
-    logbrush.lbColor = RGB(0, 0, 0); /* grid pen color = black */\r
-    gridPen =\r
-      ExtCreatePen(PS_GEOMETRIC|PS_SOLID|PS_ENDCAP_FLAT|PS_JOIN_MITER,\r
-                   lineGap, &logbrush, 0, NULL);\r
-    logbrush.lbColor = highlightSquareColor;\r
-    highlightPen =\r
-      ExtCreatePen(PS_GEOMETRIC|PS_SOLID|PS_ENDCAP_FLAT|PS_JOIN_MITER,\r
-                   lineGap, &logbrush, 0, NULL);\r
-\r
-    logbrush.lbColor = premoveHighlightColor; \r
-    premovePen =\r
-      ExtCreatePen(PS_GEOMETRIC|PS_SOLID|PS_ENDCAP_FLAT|PS_JOIN_MITER,\r
-                   lineGap, &logbrush, 0, NULL);\r
-\r
-    /* [HGM] Loop had to be split in part for vert. and hor. lines */\r
-    for (i = 0; i < BOARD_HEIGHT + 1; i++) {\r
-      gridEndpoints[i*2].x = boardRect.left + lineGap / 2 + border;\r
-      gridEndpoints[i*2].y = gridEndpoints[i*2 + 1].y =\r
-       boardRect.top + lineGap / 2 + (i * (squareSize + lineGap)) + border;\r
-      gridEndpoints[i*2 + 1].x = boardRect.left + lineGap / 2 +\r
-        BOARD_WIDTH * (squareSize + lineGap) + border;\r
-      gridVertexCounts[i*2] = gridVertexCounts[i*2 + 1] = 2;\r
-    }\r
-    for (i = 0; i < BOARD_WIDTH + 1; i++) {\r
-      gridEndpoints[i*2 + BOARD_HEIGHT*2 + 2].y = boardRect.top + lineGap / 2 + border;\r
-      gridEndpoints[i*2 + BOARD_HEIGHT*2 + 2].x =\r
-        gridEndpoints[i*2 + 1 + BOARD_HEIGHT*2 + 2].x = boardRect.left +\r
-       lineGap / 2 + (i * (squareSize + lineGap)) + border;\r
-      gridEndpoints[i*2 + 1 + BOARD_HEIGHT*2 + 2].y =\r
-        boardRect.top + BOARD_HEIGHT * (squareSize + lineGap) + border;\r
-      gridVertexCounts[i*2] = gridVertexCounts[i*2 + 1] = 2;\r
-    }\r
-  }\r
-\r
-  /* [HGM] Licensing requirement */\r
-#ifdef GOTHIC\r
-  if(gameInfo.variant == VariantGothic) GothicPopUp( GOTHIC, VariantGothic); else\r
-#endif\r
-#ifdef FALCON\r
-  if(gameInfo.variant == VariantFalcon) GothicPopUp( FALCON, VariantFalcon); else\r
-#endif\r
-  GothicPopUp( "", VariantNormal);\r
-\r
-\r
-/*  if (boardSize == oldBoardSize) return; [HGM] variant might have changed */\r
-\r
-  /* Load piece bitmaps for this board size */\r
-  for (i=0; i<=2; i++) {\r
-    for (piece = WhitePawn;\r
-         (int) piece < (int) BlackPawn;\r
-        piece = (ChessSquare) ((int) piece + 1)) {\r
-      if (pieceBitmap[i][piece] != NULL)\r
-       DeleteObject(pieceBitmap[i][piece]);\r
-      pieceBitmap[i][piece] = NULL;\r
-    }\r
-  }\r
-\r
-  fontBitmapSquareSize = 0; /* [HGM] render: make sure pieces will be recreated, as we might need others now */\r
-\r
-  // Orthodox Chess pieces\r
-  pieceBitmap[0][WhitePawn] = DoLoadBitmap(hInst, "p", squareSize, "s");\r
-  pieceBitmap[0][WhiteKnight] = DoLoadBitmap(hInst, "n", squareSize, "s");\r
-  pieceBitmap[0][WhiteBishop] = DoLoadBitmap(hInst, "b", squareSize, "s");\r
-  pieceBitmap[0][WhiteRook] = DoLoadBitmap(hInst, "r", squareSize, "s");\r
-  pieceBitmap[0][WhiteKing] = DoLoadBitmap(hInst, "k", squareSize, "s");\r
-  pieceBitmap[1][WhitePawn] = DoLoadBitmap(hInst, "p", squareSize, "o");\r
-  pieceBitmap[1][WhiteKnight] = DoLoadBitmap(hInst, "n", squareSize, "o");\r
-  pieceBitmap[1][WhiteBishop] = DoLoadBitmap(hInst, "b", squareSize, "o");\r
-  pieceBitmap[1][WhiteRook] = DoLoadBitmap(hInst, "r", squareSize, "o");\r
-  pieceBitmap[1][WhiteKing] = DoLoadBitmap(hInst, "k", squareSize, "o");\r
-  pieceBitmap[2][WhitePawn] = DoLoadBitmap(hInst, "p", squareSize, "w");\r
-  pieceBitmap[2][WhiteKnight] = DoLoadBitmap(hInst, "n", squareSize, "w");\r
-  pieceBitmap[2][WhiteBishop] = DoLoadBitmap(hInst, "b", squareSize, "w");\r
-  pieceBitmap[2][WhiteRook] = DoLoadBitmap(hInst, "r", squareSize, "w");\r
-  pieceBitmap[2][WhiteKing] = DoLoadBitmap(hInst, "k", squareSize, "w");\r
-  if( gameInfo.variant == VariantShogi && squareSize <= 72 && squareSize >= 33) {\r
-    // in Shogi, Hijack the unused Queen for Lance\r
-    pieceBitmap[0][WhiteQueen] = DoLoadBitmap(hInst, "l", squareSize, "s");\r
-    pieceBitmap[1][WhiteQueen] = DoLoadBitmap(hInst, "l", squareSize, "o");\r
-    pieceBitmap[2][WhiteQueen] = DoLoadBitmap(hInst, "l", squareSize, "w");\r
-  } else {\r
-    pieceBitmap[0][WhiteQueen] = DoLoadBitmap(hInst, "q", squareSize, "s");\r
-    pieceBitmap[1][WhiteQueen] = DoLoadBitmap(hInst, "q", squareSize, "o");\r
-    pieceBitmap[2][WhiteQueen] = DoLoadBitmap(hInst, "q", squareSize, "w");\r
-  }\r
-\r
-  if(squareSize <= 72 && squareSize >= 33) { \r
-    /* A & C are available in most sizes now */\r
-    if(squareSize != 49 && squareSize != 72 && squareSize != 33) { // Vortex-like\r
-      pieceBitmap[0][WhiteAngel] = DoLoadBitmap(hInst, "a", squareSize, "s");\r
-      pieceBitmap[1][WhiteAngel] = DoLoadBitmap(hInst, "a", squareSize, "o");\r
-      pieceBitmap[2][WhiteAngel] = DoLoadBitmap(hInst, "a", squareSize, "w");\r
-      pieceBitmap[0][WhiteSilver] = DoLoadBitmap(hInst, "cv", squareSize, "s");\r
-      pieceBitmap[1][WhiteSilver] = DoLoadBitmap(hInst, "cv", squareSize, "o");\r
-      pieceBitmap[2][WhiteSilver] = DoLoadBitmap(hInst, "cv", squareSize, "w");\r
-      pieceBitmap[0][WhiteCobra] = DoLoadBitmap(hInst, "cv", squareSize, "s");\r
-      pieceBitmap[1][WhiteCobra] = DoLoadBitmap(hInst, "cv", squareSize, "o");\r
-      pieceBitmap[2][WhiteCobra] = DoLoadBitmap(hInst, "cv", squareSize, "w");\r
-      pieceBitmap[0][WhiteLance] = DoLoadBitmap(hInst, "l", squareSize, "s");\r
-      pieceBitmap[1][WhiteLance] = DoLoadBitmap(hInst, "l", squareSize, "o");\r
-      pieceBitmap[2][WhiteLance] = DoLoadBitmap(hInst, "l", squareSize, "w");\r
-    } else { // Smirf-like\r
-      if(gameInfo.variant == VariantSChess) {\r
-        pieceBitmap[0][WhiteAngel] = DoLoadBitmap(hInst, "v", squareSize, "s");\r
-        pieceBitmap[1][WhiteAngel] = DoLoadBitmap(hInst, "v", squareSize, "o");\r
-        pieceBitmap[2][WhiteAngel] = DoLoadBitmap(hInst, "v", squareSize, "w");\r
-      } else {\r
-        pieceBitmap[0][WhiteAngel] = DoLoadBitmap(hInst, "aa", squareSize, "s");\r
-        pieceBitmap[1][WhiteAngel] = DoLoadBitmap(hInst, "aa", squareSize, "o");\r
-        pieceBitmap[2][WhiteAngel] = DoLoadBitmap(hInst, "aa", squareSize, "w");\r
-      }\r
-    }\r
-    if(gameInfo.variant == VariantGothic) { // Vortex-like\r
-      pieceBitmap[0][WhiteMarshall] = DoLoadBitmap(hInst, "cv", squareSize, "s");\r
-      pieceBitmap[1][WhiteMarshall] = DoLoadBitmap(hInst, "cv", squareSize, "o");\r
-      pieceBitmap[2][WhiteMarshall] = DoLoadBitmap(hInst, "cv", squareSize, "w");\r
-    } else if(gameInfo.variant == VariantSChess && (squareSize == 49 || squareSize == 72)) {\r
-      pieceBitmap[0][WhiteMarshall] = DoLoadBitmap(hInst, "e", squareSize, "s");\r
-      pieceBitmap[1][WhiteMarshall] = DoLoadBitmap(hInst, "e", squareSize, "o");\r
-      pieceBitmap[2][WhiteMarshall] = DoLoadBitmap(hInst, "e", squareSize, "w");\r
-    } else { // WinBoard standard\r
-      pieceBitmap[0][WhiteMarshall] = DoLoadBitmap(hInst, "c", squareSize, "s");\r
-      pieceBitmap[1][WhiteMarshall] = DoLoadBitmap(hInst, "c", squareSize, "o");\r
-      pieceBitmap[2][WhiteMarshall] = DoLoadBitmap(hInst, "c", squareSize, "w");\r
-    }\r
-  }\r
-\r
-\r
-  if(squareSize==72 || squareSize==49 || squareSize==33) { /* experiment with some home-made bitmaps */\r
-    pieceBitmap[0][WhiteFerz] = DoLoadBitmap(hInst, "f", squareSize, "s");\r
-    pieceBitmap[1][WhiteFerz] = DoLoadBitmap(hInst, "f", squareSize, "o");\r
-    pieceBitmap[2][WhiteFerz] = DoLoadBitmap(hInst, "f", squareSize, "w");\r
-    pieceBitmap[0][WhiteWazir] = DoLoadBitmap(hInst, "w", squareSize, "s");\r
-    pieceBitmap[1][WhiteWazir] = DoLoadBitmap(hInst, "w", squareSize, "o");\r
-    pieceBitmap[2][WhiteWazir] = DoLoadBitmap(hInst, "w", squareSize, "w");\r
-    pieceBitmap[0][WhiteAlfil] = DoLoadBitmap(hInst, "e", squareSize, "s");\r
-    pieceBitmap[1][WhiteAlfil] = DoLoadBitmap(hInst, "e", squareSize, "o");\r
-    pieceBitmap[2][WhiteAlfil] = DoLoadBitmap(hInst, "e", squareSize, "w");\r
-    pieceBitmap[0][WhiteMan] = DoLoadBitmap(hInst, "m", squareSize, "s");\r
-    pieceBitmap[1][WhiteMan] = DoLoadBitmap(hInst, "m", squareSize, "o");\r
-    pieceBitmap[2][WhiteMan] = DoLoadBitmap(hInst, "m", squareSize, "w");\r
-    pieceBitmap[0][WhiteCardinal] = DoLoadBitmap(hInst, "a", squareSize, "s");\r
-    pieceBitmap[1][WhiteCardinal] = DoLoadBitmap(hInst, "a", squareSize, "o");\r
-    pieceBitmap[2][WhiteCardinal] = DoLoadBitmap(hInst, "a", squareSize, "w");\r
-    pieceBitmap[0][WhiteDragon] = DoLoadBitmap(hInst, "dk", squareSize, "s");\r
-    pieceBitmap[1][WhiteDragon] = DoLoadBitmap(hInst, "dk", squareSize, "o");\r
-    pieceBitmap[2][WhiteDragon] = DoLoadBitmap(hInst, "dk", squareSize, "w");\r
-    pieceBitmap[0][WhiteFalcon] = DoLoadBitmap(hInst, "v", squareSize, "s");\r
-    pieceBitmap[1][WhiteFalcon] = DoLoadBitmap(hInst, "v", squareSize, "o");\r
-    pieceBitmap[2][WhiteFalcon] = DoLoadBitmap(hInst, "v", squareSize, "w");\r
-    pieceBitmap[0][WhiteCobra] = DoLoadBitmap(hInst, "s", squareSize, "s");\r
-    pieceBitmap[1][WhiteCobra] = DoLoadBitmap(hInst, "s", squareSize, "o");\r
-    pieceBitmap[2][WhiteCobra] = DoLoadBitmap(hInst, "s", squareSize, "w");\r
-    pieceBitmap[0][WhiteLance] = DoLoadBitmap(hInst, "l", squareSize, "s");\r
-    pieceBitmap[1][WhiteLance] = DoLoadBitmap(hInst, "l", squareSize, "o");\r
-    pieceBitmap[2][WhiteLance] = DoLoadBitmap(hInst, "l", squareSize, "w");\r
-    pieceBitmap[0][WhiteAmazon] = DoLoadBitmap(hInst, "l", squareSize, "s");\r
-    pieceBitmap[1][WhiteAmazon] = DoLoadBitmap(hInst, "l", squareSize, "o");\r
-    pieceBitmap[2][WhiteAmazon] = DoLoadBitmap(hInst, "l", squareSize, "w");\r
-    pieceBitmap[0][WhiteUnicorn] = DoLoadBitmap(hInst, "u", squareSize, "s");\r
-    pieceBitmap[1][WhiteUnicorn] = DoLoadBitmap(hInst, "u", squareSize, "o");\r
-    pieceBitmap[2][WhiteUnicorn] = DoLoadBitmap(hInst, "u", squareSize, "w");\r
-    pieceBitmap[0][WhiteLion] = DoLoadBitmap(hInst, "ln", squareSize, "s");\r
-    pieceBitmap[1][WhiteLion] = DoLoadBitmap(hInst, "ln", squareSize, "o");\r
-    pieceBitmap[2][WhiteLion] = DoLoadBitmap(hInst, "ln", squareSize, "w");\r
-    pieceBitmap[0][WhiteCub] = DoLoadBitmap(hInst, "ln", squareSize, "s");\r
-    pieceBitmap[1][WhiteCub] = DoLoadBitmap(hInst, "ln", squareSize, "o");\r
-    pieceBitmap[2][WhiteCub] = DoLoadBitmap(hInst, "ln", squareSize, "w");\r
-    pieceBitmap[0][WhiteWolf] = DoLoadBitmap(hInst, "wolf", squareSize, "s");\r
-    pieceBitmap[1][WhiteWolf] = DoLoadBitmap(hInst, "wolf", squareSize, "o");\r
-    pieceBitmap[2][WhiteWolf] = DoLoadBitmap(hInst, "wolf", squareSize, "w");\r
-    pieceBitmap[0][WhiteCamel] = DoLoadBitmap(hInst, "camel", squareSize, "s");\r
-    pieceBitmap[1][WhiteCamel] = DoLoadBitmap(hInst, "camel", squareSize, "o");\r
-    pieceBitmap[2][WhiteCamel] = DoLoadBitmap(hInst, "camel", squareSize, "w");\r
-    pieceBitmap[0][WhiteZebra] = DoLoadBitmap(hInst, "zebra", squareSize, "s");\r
-    pieceBitmap[1][WhiteZebra] = DoLoadBitmap(hInst, "zebra", squareSize, "o");\r
-    pieceBitmap[2][WhiteZebra] = DoLoadBitmap(hInst, "n", squareSize, "w");\r
-\r
-    if(gameInfo.variant == VariantShogi && BOARD_HEIGHT != 7) { /* promoted Gold representations (but not in Tori!)*/\r
-      pieceBitmap[0][WhiteCannon] = DoLoadBitmap(hInst, "wp", squareSize, "s");\r
-      pieceBitmap[1][WhiteCannon] = DoLoadBitmap(hInst, "wp", squareSize, "o");\r
-      pieceBitmap[2][WhiteCannon] = DoLoadBitmap(hInst, "w", squareSize, "w");\r
-      pieceBitmap[0][WhiteNightrider] = DoLoadBitmap(hInst, "wn", squareSize, "s");\r
-      pieceBitmap[1][WhiteNightrider] = DoLoadBitmap(hInst, "wn", squareSize, "o");\r
-      pieceBitmap[2][WhiteNightrider] = DoLoadBitmap(hInst, "w", squareSize, "w");\r
-      pieceBitmap[0][WhiteSilver] = DoLoadBitmap(hInst, "ws", squareSize, "s");\r
-      pieceBitmap[1][WhiteSilver] = DoLoadBitmap(hInst, "ws", squareSize, "o");\r
-      pieceBitmap[2][WhiteSilver] = DoLoadBitmap(hInst, "w", squareSize, "w");\r
-      pieceBitmap[0][WhiteGrasshopper] = DoLoadBitmap(hInst, "wl", squareSize, "s");\r
-      pieceBitmap[1][WhiteGrasshopper] = DoLoadBitmap(hInst, "wl", squareSize, "o");\r
-      pieceBitmap[2][WhiteGrasshopper] = DoLoadBitmap(hInst, "w", squareSize, "w");\r
-    } else {\r
-      pieceBitmap[0][WhiteCannon] = DoLoadBitmap(hInst, "o", squareSize, "s");\r
-      pieceBitmap[1][WhiteCannon] = DoLoadBitmap(hInst, "o", squareSize, "o");\r
-      pieceBitmap[2][WhiteCannon] = DoLoadBitmap(hInst, "o", squareSize, "w");\r
-      pieceBitmap[0][WhiteNightrider] = DoLoadBitmap(hInst, "h", squareSize, "s");\r
-      pieceBitmap[1][WhiteNightrider] = DoLoadBitmap(hInst, "h", squareSize, "o");\r
-      pieceBitmap[2][WhiteNightrider] = DoLoadBitmap(hInst, "h", squareSize, "w");\r
-      pieceBitmap[0][WhiteSilver] = DoLoadBitmap(hInst, "cv", squareSize, "s");\r
-      pieceBitmap[1][WhiteSilver] = DoLoadBitmap(hInst, "cv", squareSize, "o");\r
-      pieceBitmap[2][WhiteSilver] = DoLoadBitmap(hInst, "cv", squareSize, "w");\r
-      pieceBitmap[0][WhiteGrasshopper] = DoLoadBitmap(hInst, "g", squareSize, "s");\r
-      pieceBitmap[1][WhiteGrasshopper] = DoLoadBitmap(hInst, "g", squareSize, "o");\r
-      pieceBitmap[2][WhiteGrasshopper] = DoLoadBitmap(hInst, "g", squareSize, "w");\r
-    }\r
-\r
-  } else { /* other size, no special bitmaps available. Use smaller symbols */\r
-    if((int)boardSize < 2) minorSize = sizeInfo[0].squareSize;\r
-    else  minorSize = sizeInfo[(int)boardSize - 2].squareSize;\r
-    pieceBitmap[0][WhiteNightrider] = DoLoadBitmap(hInst, "n", minorSize, "s");\r
-    pieceBitmap[1][WhiteNightrider] = DoLoadBitmap(hInst, "n", minorSize, "o");\r
-    pieceBitmap[2][WhiteNightrider] = DoLoadBitmap(hInst, "n", minorSize, "w");\r
-    pieceBitmap[0][WhiteCardinal]   = DoLoadBitmap(hInst, "b", minorSize, "s");\r
-    pieceBitmap[1][WhiteCardinal]   = DoLoadBitmap(hInst, "b", minorSize, "o");\r
-    pieceBitmap[2][WhiteCardinal]   = DoLoadBitmap(hInst, "b", minorSize, "w");\r
-    pieceBitmap[0][WhiteDragon]   = DoLoadBitmap(hInst, "r", minorSize, "s");\r
-    pieceBitmap[1][WhiteDragon]   = DoLoadBitmap(hInst, "r", minorSize, "o");\r
-    pieceBitmap[2][WhiteDragon]   = DoLoadBitmap(hInst, "r", minorSize, "w");\r
-    pieceBitmap[0][WhiteGrasshopper] = DoLoadBitmap(hInst, "q", minorSize, "s");\r
-    pieceBitmap[1][WhiteGrasshopper] = DoLoadBitmap(hInst, "q", minorSize, "o");\r
-    pieceBitmap[2][WhiteGrasshopper] = DoLoadBitmap(hInst, "q", minorSize, "w");\r
-  }\r
-\r
-\r
-  if(gameInfo.variant == VariantShogi && squareSize == 58)\r
-  /* special Shogi support in this size */\r
-  { for (i=0; i<=2; i++) { /* replace all bitmaps */\r
-      for (piece = WhitePawn;\r
-           (int) piece < (int) BlackPawn;\r
-           piece = (ChessSquare) ((int) piece + 1)) {\r
-        if (pieceBitmap[i][piece] != NULL)\r
-          DeleteObject(pieceBitmap[i][piece]);\r
-      }\r
-    }\r
-  pieceBitmap[0][WhitePawn] = DoLoadBitmap(hInst, "sp", squareSize, "o");\r
-  pieceBitmap[0][WhiteKnight] = DoLoadBitmap(hInst, "sn", squareSize, "o");\r
-  pieceBitmap[0][WhiteBishop] = DoLoadBitmap(hInst, "sb", squareSize, "o");\r
-  pieceBitmap[0][WhiteRook] = DoLoadBitmap(hInst, "sr", squareSize, "o");\r
-  pieceBitmap[0][WhiteQueen] = DoLoadBitmap(hInst, "sl", squareSize, "o");\r
-  pieceBitmap[0][WhiteKing] = DoLoadBitmap(hInst, "sk", squareSize, "o");\r
-  pieceBitmap[0][WhiteFerz] = DoLoadBitmap(hInst, "sf", squareSize, "o");\r
-  pieceBitmap[0][WhiteWazir] = DoLoadBitmap(hInst, "sw", squareSize, "o");\r
-  pieceBitmap[0][WhiteCannon] = DoLoadBitmap(hInst, "su", squareSize, "o");\r
-  pieceBitmap[0][WhiteNightrider] = DoLoadBitmap(hInst, "sh", squareSize, "o");\r
-  pieceBitmap[0][WhiteCardinal] = DoLoadBitmap(hInst, "sa", squareSize, "o");\r
-  pieceBitmap[0][WhiteDragon] = DoLoadBitmap(hInst, "sc", squareSize, "o");\r
-  pieceBitmap[0][WhiteGrasshopper] = DoLoadBitmap(hInst, "sg", squareSize, "o");\r
-  pieceBitmap[0][WhiteSilver] = DoLoadBitmap(hInst, "ss", squareSize, "o");\r
-  pieceBitmap[1][WhitePawn] = DoLoadBitmap(hInst, "sp", squareSize, "o");\r
-  pieceBitmap[1][WhiteKnight] = DoLoadBitmap(hInst, "sn", squareSize, "o");\r
-  pieceBitmap[1][WhiteBishop] = DoLoadBitmap(hInst, "sb", squareSize, "o");\r
-  pieceBitmap[1][WhiteRook] = DoLoadBitmap(hInst, "sr", squareSize, "o");\r
-  pieceBitmap[1][WhiteQueen] = DoLoadBitmap(hInst, "sl", squareSize, "o");\r
-  pieceBitmap[1][WhiteKing] = DoLoadBitmap(hInst, "sk", squareSize, "o");\r
-  pieceBitmap[1][WhiteFerz] = DoLoadBitmap(hInst, "sf", squareSize, "o");\r
-  pieceBitmap[1][WhiteWazir] = DoLoadBitmap(hInst, "sw", squareSize, "o");\r
-  pieceBitmap[1][WhiteCannon] = DoLoadBitmap(hInst, "su", squareSize, "o");\r
-  pieceBitmap[1][WhiteNightrider] = DoLoadBitmap(hInst, "sh", squareSize, "o");\r
-  pieceBitmap[1][WhiteCardinal] = DoLoadBitmap(hInst, "sa", squareSize, "o");\r
-  pieceBitmap[1][WhiteDragon] = DoLoadBitmap(hInst, "sc", squareSize, "o");\r
-  pieceBitmap[1][WhiteGrasshopper] = DoLoadBitmap(hInst, "sg", squareSize, "o");\r
-  pieceBitmap[1][WhiteSilver] = DoLoadBitmap(hInst, "ss", squareSize, "o");\r
-  pieceBitmap[2][WhitePawn] = DoLoadBitmap(hInst, "sp", squareSize, "w");\r
-  pieceBitmap[2][WhiteKnight] = DoLoadBitmap(hInst, "sn", squareSize, "w");\r
-  pieceBitmap[2][WhiteBishop] = DoLoadBitmap(hInst, "sr", squareSize, "w");\r
-  pieceBitmap[2][WhiteRook] = DoLoadBitmap(hInst, "sr", squareSize, "w");\r
-  pieceBitmap[2][WhiteQueen] = DoLoadBitmap(hInst, "sl", squareSize, "w");\r
-  pieceBitmap[2][WhiteKing] = DoLoadBitmap(hInst, "sk", squareSize, "w");\r
-  pieceBitmap[2][WhiteFerz] = DoLoadBitmap(hInst, "sw", squareSize, "w");\r
-  pieceBitmap[2][WhiteWazir] = DoLoadBitmap(hInst, "sw", squareSize, "w");\r
-  pieceBitmap[2][WhiteCannon] = DoLoadBitmap(hInst, "sp", squareSize, "w");\r
-  pieceBitmap[2][WhiteNightrider] = DoLoadBitmap(hInst, "sn", squareSize, "w");\r
-  pieceBitmap[2][WhiteCardinal] = DoLoadBitmap(hInst, "sr", squareSize, "w");\r
-  pieceBitmap[2][WhiteDragon] = DoLoadBitmap(hInst, "sr", squareSize, "w");\r
-  pieceBitmap[2][WhiteGrasshopper] = DoLoadBitmap(hInst, "sl", squareSize, "w");\r
-  pieceBitmap[2][WhiteSilver] = DoLoadBitmap(hInst, "sw", squareSize, "w");\r
-  minorSize = 0;\r
-  }\r
-\r
-  if(appData.pieceDirectory[0]) for(i=WhitePawn; i<BlackPawn; i++) { // try for all missing pieces with new naming convention\r
-    char buf[MSG_SIZ];\r
-    if(pieceBitmap[0][i]) continue;\r
-    snprintf(buf, MSG_SIZ, "piece%d_", i);\r
-    pieceBitmap[0][i] = DoLoadBitmap(hInst, buf, squareSize, "s");\r
-    pieceBitmap[1][i] = DoLoadBitmap(hInst, buf, squareSize, "o");\r
-    pieceBitmap[2][i] = DoLoadBitmap(hInst, buf, squareSize, "w");\r
-  }\r
-}\r
-\r
-HBITMAP\r
-PieceBitmap(ChessSquare p, int kind)\r
-{\r
-  if ((int) p >= (int) BlackPawn)\r
-    p = (ChessSquare) ((int) p - (int) BlackPawn + (int) WhitePawn);\r
-\r
-  return pieceBitmap[kind][(int) p];\r
-}\r
-\r
-/***************************************************************/\r
-\r
-#define MIN(a,b) (((a) < (b)) ? (a) : (b))\r
-#define MAX(a,b) (((a) > (b)) ? (a) : (b))\r
-/*\r
-#define MIN3(a,b,c) (((a) < (b) && (a) < (c)) ? (a) : (((b) < (a) && (b) < (c)) ? (b) : (c)))\r
-#define MAX3(a,b,c) (((a) > (b) && (a) > (c)) ? (a) : (((b) > (a) && (b) > (c)) ? (b) : (c)))\r
-*/\r
-\r
-VOID\r
-SquareToPos(int row, int column, int * x, int * y)\r
-{\r
-  if (flipView) {\r
-    *x = boardRect.left + lineGap + ((BOARD_WIDTH-1)-column) * (squareSize + lineGap) + border;\r
-    *y = boardRect.top + lineGap + row * (squareSize + lineGap) + border;\r
-  } else {\r
-    *x = boardRect.left + lineGap + column * (squareSize + lineGap) + border;\r
-    *y = boardRect.top + lineGap + ((BOARD_HEIGHT-1)-row) * (squareSize + lineGap) + border;\r
-  }\r
-}\r
-\r
-VOID\r
-DrawCoordsOnDC(HDC hdc)\r
-{\r
-  static char files[] = "0123456789012345678901221098765432109876543210";\r
-  static char ranks[] = "wvutsrqponmlkjihgfedcbaabcdefghijklmnopqrstuvw";\r
-  char str[2] = { NULLCHAR, NULLCHAR };\r
-  int oldMode, oldAlign, x, y, start, i;\r
-  HFONT oldFont;\r
-  HBRUSH oldBrush;\r
-\r
-  if (!appData.showCoords)\r
-    return;\r
-\r
-  start = flipView ? 1-(ONE!='1') : 45+(ONE!='1')-BOARD_HEIGHT;\r
-\r
-  oldBrush = SelectObject(hdc, GetStockObject(BLACK_BRUSH));\r
-  oldMode = SetBkMode(hdc, (appData.monoMode ? OPAQUE : TRANSPARENT));\r
-  oldAlign = GetTextAlign(hdc);\r
-  oldFont = SelectObject(hdc, font[boardSize][COORD_FONT]->hf);\r
-\r
-  y = boardRect.top + lineGap;\r
-  x = boardRect.left + lineGap + gameInfo.holdingsWidth*(squareSize + lineGap);\r
-\r
-  if(border) {\r
-    SetTextAlign(hdc, TA_RIGHT|TA_TOP);\r
-    x += border - lineGap - 4; y += squareSize - 6;\r
-  } else\r
-  SetTextAlign(hdc, TA_LEFT|TA_TOP);\r
-  for (i = 0; i < BOARD_HEIGHT; i++) {\r
-    str[0] = files[start + i];\r
-    ExtTextOut(hdc, x + 2 - (border ? gameInfo.holdingsWidth * (squareSize + lineGap) : 0), y + 1, 0, NULL, str, 1, NULL);\r
-    y += squareSize + lineGap;\r
-  }\r
-\r
-  start = flipView ? 23-(BOARD_RGHT-BOARD_LEFT) : 23;\r
-\r
-  if(border) {\r
-    SetTextAlign(hdc, TA_LEFT|TA_TOP);\r
-    x += -border + 4; y += border - squareSize + 6;\r
-  } else\r
-  SetTextAlign(hdc, TA_RIGHT|TA_BOTTOM);\r
-  for (i = 0; i < BOARD_RGHT - BOARD_LEFT; i++) {\r
-    str[0] = ranks[start + i];\r
-    ExtTextOut(hdc, x + squareSize - 2, y - 1, 0, NULL, str, 1, NULL);\r
-    x += squareSize + lineGap;\r
-  }    \r
-\r
-  SelectObject(hdc, oldBrush);\r
-  SetBkMode(hdc, oldMode);\r
-  SetTextAlign(hdc, oldAlign);\r
-  SelectObject(hdc, oldFont);\r
-}\r
-\r
-VOID\r
-DrawGridOnDC(HDC hdc)\r
-{\r
-  HPEN oldPen;\r
\r
-  if (lineGap != 0) {\r
-    oldPen = SelectObject(hdc, gridPen);\r
-    PolyPolyline(hdc, gridEndpoints, gridVertexCounts, BOARD_WIDTH+BOARD_HEIGHT + 2);\r
-    SelectObject(hdc, oldPen);\r
-  }\r
-}\r
-\r
-#define HIGHLIGHT_PEN 0\r
-#define PREMOVE_PEN   1\r
-\r
-VOID\r
-DrawHighlightOnDC(HDC hdc, BOOLEAN on, int x, int y, int pen)\r
-{\r
-  int x1, y1;\r
-  HPEN oldPen, hPen;\r
-  if (lineGap == 0) return;\r
-  if (flipView) {\r
-    x1 = boardRect.left +\r
-      lineGap/2 + ((BOARD_WIDTH-1)-x) * (squareSize + lineGap) + border;\r
-    y1 = boardRect.top +\r
-      lineGap/2 + y * (squareSize + lineGap) + border;\r
-  } else {\r
-    x1 = boardRect.left +\r
-      lineGap/2 + x * (squareSize + lineGap) + border;\r
-    y1 = boardRect.top +\r
-      lineGap/2 + ((BOARD_HEIGHT-1)-y) * (squareSize + lineGap) + border;\r
-  }\r
-  hPen = pen ? premovePen : highlightPen;\r
-  oldPen = SelectObject(hdc, on ? hPen : gridPen);\r
-  MoveToEx(hdc, x1, y1, NULL);\r
-  LineTo(hdc, x1 + squareSize + lineGap, y1);\r
-  LineTo(hdc, x1 + squareSize + lineGap, y1 + squareSize + lineGap);\r
-  LineTo(hdc, x1, y1 + squareSize + lineGap);\r
-  LineTo(hdc, x1, y1);\r
-  SelectObject(hdc, oldPen);\r
-}\r
-\r
-VOID\r
-DrawHighlightsOnDC(HDC hdc, HighlightInfo *h, int pen)\r
-{\r
-  int i;\r
-  for (i=0; i<2; i++) {\r
-    if (h->sq[i].x >= 0 && h->sq[i].y >= 0) \r
-      DrawHighlightOnDC(hdc, TRUE,\r
-                       h->sq[i].x, h->sq[i].y,\r
-                       pen);\r
-  }\r
-}\r
-\r
-/* Note: sqcolor is used only in monoMode */\r
-/* Note that this code is largely duplicated in woptions.c,\r
-   function DrawSampleSquare, so that needs to be updated too */\r
-VOID\r
-DrawPieceOnDC(HDC hdc, ChessSquare piece, int color, int sqcolor, int x, int y, HDC tmphdc)\r
-{\r
-  HBITMAP oldBitmap;\r
-  HBRUSH oldBrush;\r
-  int tmpSize;\r
-\r
-  if (appData.blindfold) return;\r
-\r
-  /* [AS] Use font-based pieces if needed */\r
-  if( fontBitmapSquareSize >= 0 && (squareSize > 32 || gameInfo.variant >= VariantShogi)) {\r
-    /* Create piece bitmaps, or do nothing if piece set is up to date */\r
-    CreatePiecesFromFont();\r
-\r
-    if( fontBitmapSquareSize == squareSize ) {\r
-        int index = TranslatePieceToFontPiece(piece);\r
-\r
-        SelectObject( tmphdc, hPieceMask[ index ] );\r
-\r
-      if(appData.upsideDown ? color==flipView : (flipView && gameInfo.variant == VariantShogi))\r
-        StretchBlt(hdc, x+squareSize, y+squareSize, -squareSize, -squareSize, tmphdc, 0, 0, squareSize, squareSize, SRCAND);\r
-      else\r
-        BitBlt( hdc,\r
-            x, y,\r
-            squareSize, squareSize,\r
-            tmphdc,\r
-            0, 0,\r
-            SRCAND );\r
-\r
-        SelectObject( tmphdc, hPieceFace[ index ] );\r
-\r
-      if(appData.upsideDown ? color==flipView : (flipView && gameInfo.variant == VariantShogi))\r
-        StretchBlt(hdc, x+squareSize, y+squareSize, -squareSize, -squareSize, tmphdc, 0, 0, squareSize, squareSize, SRCPAINT);\r
-      else\r
-        BitBlt( hdc,\r
-            x, y,\r
-            squareSize, squareSize,\r
-            tmphdc,\r
-            0, 0,\r
-            SRCPAINT );\r
-\r
-        return;\r
-    }\r
-  }\r
-\r
-  if (appData.monoMode) {\r
-    SelectObject(tmphdc, PieceBitmap(piece, \r
-      color == sqcolor ? OUTLINE_PIECE : SOLID_PIECE));\r
-    BitBlt(hdc, x, y, squareSize, squareSize, tmphdc, 0, 0,\r
-          sqcolor ? SRCCOPY : NOTSRCCOPY);\r
-  } else {\r
-    HBRUSH xBrush = whitePieceBrush;\r
-    tmpSize = squareSize;\r
-    if(appData.pieceDirectory[0]) xBrush = GetStockObject(WHITE_BRUSH);\r
-    if(minorSize &&\r
-        ((piece >= (int)WhiteNightrider && piece <= WhiteGrasshopper) ||\r
-         (piece >= (int)BlackNightrider && piece <= BlackGrasshopper))  ) {\r
-      /* [HGM] no bitmap available for promoted pieces in Crazyhouse        */\r
-      /* Bitmaps of smaller size are substituted, but we have to align them */\r
-      x += (squareSize - minorSize)>>1;\r
-      y += squareSize - minorSize - 2;\r
-      tmpSize = minorSize;\r
-    }\r
-    if (color || appData.allWhite ) {\r
-      oldBitmap = SelectObject(tmphdc, PieceBitmap(piece, WHITE_PIECE));\r
-      if( color )\r
-              oldBrush = SelectObject(hdc, xBrush);\r
-      else    oldBrush = SelectObject(hdc, blackPieceBrush);\r
-      if(appData.upsideDown && color==flipView)\r
-        StretchBlt(hdc, x+tmpSize, y+tmpSize, -tmpSize, -tmpSize, tmphdc, 0, 0, tmpSize, tmpSize, 0x00B8074A);\r
-      else\r
-        BitBlt(hdc, x, y, tmpSize, tmpSize, tmphdc, 0, 0, 0x00B8074A);\r
-      /* Use black for outline of white pieces */\r
-      SelectObject(tmphdc, PieceBitmap(piece, OUTLINE_PIECE));\r
-      if(appData.upsideDown && color==flipView)\r
-        StretchBlt(hdc, x+tmpSize, y+tmpSize, -tmpSize, -tmpSize, tmphdc, 0, 0, tmpSize, tmpSize, SRCAND);\r
-      else\r
-        BitBlt(hdc, x, y, tmpSize, tmpSize, tmphdc, 0, 0, SRCAND);\r
-    } else if(appData.pieceDirectory[0]) {\r
-      oldBitmap = SelectObject(tmphdc, PieceBitmap(piece, WHITE_PIECE));\r
-      oldBrush = SelectObject(hdc, xBrush);\r
-      if(appData.upsideDown && color==flipView)\r
-        StretchBlt(hdc, x+tmpSize, y+tmpSize, -tmpSize, -tmpSize, tmphdc, 0, 0, tmpSize, tmpSize, 0x00B8074A);\r
-      else\r
-        BitBlt(hdc, x, y, tmpSize, tmpSize, tmphdc, 0, 0, 0x00B8074A);\r
-      SelectObject(tmphdc, PieceBitmap(piece, SOLID_PIECE));\r
-      if(appData.upsideDown && color==flipView)\r
-        StretchBlt(hdc, x+tmpSize, y+tmpSize, -tmpSize, -tmpSize, tmphdc, 0, 0, tmpSize, tmpSize, SRCAND);\r
-      else\r
-        BitBlt(hdc, x, y, tmpSize, tmpSize, tmphdc, 0, 0, SRCAND);\r
-    } else {\r
-      /* Use square color for details of black pieces */\r
-      oldBitmap = SelectObject(tmphdc, PieceBitmap(piece, SOLID_PIECE));\r
-      oldBrush = SelectObject(hdc, blackPieceBrush);\r
-      if(appData.upsideDown && !flipView)\r
-        StretchBlt(hdc, x+tmpSize, y+tmpSize, -tmpSize, -tmpSize, tmphdc, 0, 0, tmpSize, tmpSize, 0x00B8074A);\r
-      else\r
-        BitBlt(hdc, x, y, tmpSize, tmpSize, tmphdc, 0, 0, 0x00B8074A);\r
-    }\r
-    SelectObject(hdc, oldBrush);\r
-    SelectObject(tmphdc, oldBitmap);\r
-  }\r
-}\r
-\r
-/* [AS] Compute a drawing mode for a square, based on specified settings (see DrawTile) */\r
-int GetBackTextureMode( int algo )\r
-{\r
-    int result = BACK_TEXTURE_MODE_DISABLED;\r
-\r
-    switch( algo ) \r
-    {\r
-        case BACK_TEXTURE_MODE_PLAIN:\r
-            result = 1; /* Always use identity map */\r
-            break;\r
-        case BACK_TEXTURE_MODE_FULL_RANDOM:\r
-            result = 1 + (myrandom() % 3); /* Pick a transformation at random */\r
-            break;\r
-    }\r
-\r
-    return result;\r
-}\r
-\r
-/* \r
-    [AS] Compute and save texture drawing info, otherwise we may not be able\r
-    to handle redraws cleanly (as random numbers would always be different).\r
-*/\r
-VOID RebuildTextureSquareInfo()\r
-{\r
-    BITMAP bi;\r
-    int lite_w = 0;\r
-    int lite_h = 0;\r
-    int dark_w = 0;\r
-    int dark_h = 0;\r
-    int row;\r
-    int col;\r
-\r
-    ZeroMemory( &backTextureSquareInfo, sizeof(backTextureSquareInfo) );\r
-\r
-    if( liteBackTexture != NULL ) {\r
-        if( GetObject( liteBackTexture, sizeof(bi), &bi ) > 0 ) {\r
-            lite_w = bi.bmWidth;\r
-            lite_h = bi.bmHeight;\r
-        }\r
-    }\r
-\r
-    if( darkBackTexture != NULL ) {\r
-        if( GetObject( darkBackTexture, sizeof(bi), &bi ) > 0 ) {\r
-            dark_w = bi.bmWidth;\r
-            dark_h = bi.bmHeight;\r
-        }\r
-    }\r
-\r
-    for( row=0; row<BOARD_HEIGHT; row++ ) {\r
-        for( col=0; col<BOARD_WIDTH; col++ ) {\r
-            if( (col + row) & 1 ) {\r
-                /* Lite square */\r
-                if( lite_w >= squareSize && lite_h >= squareSize ) {\r
-                  if( lite_w >= squareSize*BOARD_WIDTH )\r
-                    backTextureSquareInfo[row][col].x = (2*col+1)*lite_w/(2*BOARD_WIDTH) - squareSize/2;  /* [HGM] cut out of center of virtual square */\r
-                  else\r
-                    backTextureSquareInfo[row][col].x = col * (lite_w - squareSize) / (BOARD_WIDTH-1);  /* [HGM] divide by size-1 in stead of size! */\r
-                  if( lite_h >= squareSize*BOARD_HEIGHT )\r
-                    backTextureSquareInfo[row][col].y = (2*(BOARD_HEIGHT-row)-1)*lite_h/(2*BOARD_HEIGHT) - squareSize/2;\r
-                  else\r
-                    backTextureSquareInfo[row][col].y = (BOARD_HEIGHT-1-row) * (lite_h - squareSize) / (BOARD_HEIGHT-1);\r
-                    backTextureSquareInfo[row][col].mode = GetBackTextureMode(liteBackTextureMode);\r
-                }\r
-            }\r
-            else {\r
-                /* Dark square */\r
-                if( dark_w >= squareSize && dark_h >= squareSize ) {\r
-                  if( dark_w >= squareSize*BOARD_WIDTH )\r
-                    backTextureSquareInfo[row][col].x = (2*col+1) * dark_w / (2*BOARD_WIDTH) - squareSize/2;\r
-                  else\r
-                    backTextureSquareInfo[row][col].x = col * (dark_w - squareSize) / (BOARD_WIDTH-1);\r
-                  if( dark_h >= squareSize*BOARD_HEIGHT )\r
-                    backTextureSquareInfo[row][col].y = (2*(BOARD_HEIGHT-row)-1) * dark_h / (2*BOARD_HEIGHT) - squareSize/2;\r
-                  else\r
-                    backTextureSquareInfo[row][col].y = (BOARD_HEIGHT-1-row) * (dark_h - squareSize) / (BOARD_HEIGHT-1);\r
-                    backTextureSquareInfo[row][col].mode = GetBackTextureMode(darkBackTextureMode);\r
-                }\r
-            }\r
-        }\r
-    }\r
-}\r
-\r
-/* [AS] Arrow highlighting support */\r
-\r
-static double A_WIDTH = 5; /* Width of arrow body */\r
-\r
-#define A_HEIGHT_FACTOR 6   /* Length of arrow "point", relative to body width */\r
-#define A_WIDTH_FACTOR  3   /* Width of arrow "point", relative to body width */\r
-\r
-static double Sqr( double x )\r
-{\r
-    return x*x;\r
-}\r
-\r
-static int Round( double x )\r
-{\r
-    return (int) (x + 0.5);\r
-}\r
-\r
-/* Draw an arrow between two points using current settings */\r
-VOID DrawArrowBetweenPoints( HDC hdc, int s_x, int s_y, int d_x, int d_y )\r
-{\r
-    POINT arrow[7];\r
-    double dx, dy, j, k, x, y;\r
-\r
-    if( d_x == s_x ) {\r
-        int h = (d_y > s_y) ? +A_WIDTH*A_HEIGHT_FACTOR : -A_WIDTH*A_HEIGHT_FACTOR;\r
-\r
-        arrow[0].x = s_x + A_WIDTH + 0.5;\r
-        arrow[0].y = s_y;\r
-\r
-        arrow[1].x = s_x + A_WIDTH + 0.5;\r
-        arrow[1].y = d_y - h;\r
-\r
-        arrow[2].x = arrow[1].x + A_WIDTH*(A_WIDTH_FACTOR-1) + 0.5;\r
-        arrow[2].y = d_y - h;\r
-\r
-        arrow[3].x = d_x;\r
-        arrow[3].y = d_y;\r
-\r
-        arrow[5].x = arrow[1].x - 2*A_WIDTH + 0.5;\r
-        arrow[5].y = d_y - h;\r
-\r
-        arrow[4].x = arrow[5].x - A_WIDTH*(A_WIDTH_FACTOR-1) + 0.5;\r
-        arrow[4].y = d_y - h;\r
-\r
-        arrow[6].x = arrow[1].x - 2*A_WIDTH + 0.5;\r
-        arrow[6].y = s_y;\r
-    }\r
-    else if( d_y == s_y ) {\r
-        int w = (d_x > s_x) ? +A_WIDTH*A_HEIGHT_FACTOR : -A_WIDTH*A_HEIGHT_FACTOR;\r
-\r
-        arrow[0].x = s_x;\r
-        arrow[0].y = s_y + A_WIDTH + 0.5;\r
-\r
-        arrow[1].x = d_x - w;\r
-        arrow[1].y = s_y + A_WIDTH + 0.5;\r
-\r
-        arrow[2].x = d_x - w;\r
-        arrow[2].y = arrow[1].y + A_WIDTH*(A_WIDTH_FACTOR-1) + 0.5;\r
-\r
-        arrow[3].x = d_x;\r
-        arrow[3].y = d_y;\r
-\r
-        arrow[5].x = d_x - w;\r
-        arrow[5].y = arrow[1].y - 2*A_WIDTH + 0.5;\r
-\r
-        arrow[4].x = d_x - w;\r
-        arrow[4].y = arrow[5].y - A_WIDTH*(A_WIDTH_FACTOR-1) + 0.5;\r
-\r
-        arrow[6].x = s_x;\r
-        arrow[6].y = arrow[1].y - 2*A_WIDTH + 0.5;\r
-    }\r
-    else {\r
-        /* [AS] Needed a lot of paper for this! :-) */\r
-        dy = (double) (d_y - s_y) / (double) (d_x - s_x);\r
-        dx = (double) (s_x - d_x) / (double) (s_y - d_y);\r
-  \r
-        j = sqrt( Sqr(A_WIDTH) / (1.0 + Sqr(dx)) );\r
-\r
-        k = sqrt( Sqr(A_WIDTH*A_HEIGHT_FACTOR) / (1.0 + Sqr(dy)) );\r
-\r
-        x = s_x;\r
-        y = s_y;\r
-\r
-        arrow[0].x = Round(x - j);\r
-        arrow[0].y = Round(y + j*dx);\r
-\r
-        arrow[1].x = Round(arrow[0].x + 2*j);   // [HGM] prevent width to be affected by rounding twice\r
-        arrow[1].y = Round(arrow[0].y - 2*j*dx);\r
-\r
-        if( d_x > s_x ) {\r
-            x = (double) d_x - k;\r
-            y = (double) d_y - k*dy;\r
-        }\r
-        else {\r
-            x = (double) d_x + k;\r
-            y = (double) d_y + k*dy;\r
-        }\r
-\r
-        x = Round(x); y = Round(y); // [HGM] make sure width of shaft is rounded the same way on both ends\r
-\r
-        arrow[6].x = Round(x - j);\r
-        arrow[6].y = Round(y + j*dx);\r
-\r
-        arrow[2].x = Round(arrow[6].x + 2*j);\r
-        arrow[2].y = Round(arrow[6].y - 2*j*dx);\r
-\r
-        arrow[3].x = Round(arrow[2].x + j*(A_WIDTH_FACTOR-1));\r
-        arrow[3].y = Round(arrow[2].y - j*(A_WIDTH_FACTOR-1)*dx);\r
-\r
-        arrow[4].x = d_x;\r
-        arrow[4].y = d_y;\r
-\r
-        arrow[5].x = Round(arrow[6].x - j*(A_WIDTH_FACTOR-1));\r
-        arrow[5].y = Round(arrow[6].y + j*(A_WIDTH_FACTOR-1)*dx);\r
-    }\r
-\r
-    Polygon( hdc, arrow, 7 );\r
-}\r
-\r
-/* [AS] Draw an arrow between two squares */\r
-VOID DrawArrowBetweenSquares( HDC hdc, int s_col, int s_row, int d_col, int d_row )\r
-{\r
-    int s_x, s_y, d_x, d_y;\r
-    HPEN hpen;\r
-    HPEN holdpen;\r
-    HBRUSH hbrush;\r
-    HBRUSH holdbrush;\r
-    LOGBRUSH stLB;\r
-\r
-    if( s_col == d_col && s_row == d_row ) {\r
-        return;\r
-    }\r
-\r
-    /* Get source and destination points */\r
-    SquareToPos( s_row, s_col, &s_x, &s_y);\r
-    SquareToPos( d_row, d_col, &d_x, &d_y);\r
-\r
-    if( d_y > s_y ) {\r
-        d_y += squareSize / 2 - squareSize / 4; // [HGM] round towards same centers on all sides!\r
-    }\r
-    else if( d_y < s_y ) {\r
-        d_y += squareSize / 2 + squareSize / 4;\r
-    }\r
-    else {\r
-        d_y += squareSize / 2;\r
-    }\r
-\r
-    if( d_x > s_x ) {\r
-        d_x += squareSize / 2 - squareSize / 4;\r
-    }\r
-    else if( d_x < s_x ) {\r
-        d_x += squareSize / 2 + squareSize / 4;\r
-    }\r
-    else {\r
-        d_x += squareSize / 2;\r
-    }\r
-\r
-    s_x += squareSize / 2;\r
-    s_y += squareSize / 2;\r
-\r
-    /* Adjust width */\r
-    A_WIDTH = squareSize / 14.; //[HGM] make float\r
-\r
-    /* Draw */\r
-    stLB.lbStyle = BS_SOLID;\r
-    stLB.lbColor = appData.highlightArrowColor;\r
-    stLB.lbHatch = 0;\r
-\r
-    hpen = CreatePen( PS_SOLID, 2, RGB(0x00,0x00,0x00) );\r
-    holdpen = SelectObject( hdc, hpen );\r
-    hbrush = CreateBrushIndirect( &stLB );\r
-    holdbrush = SelectObject( hdc, hbrush );\r
-\r
-    DrawArrowBetweenPoints( hdc, s_x, s_y, d_x, d_y );\r
-\r
-    SelectObject( hdc, holdpen );\r
-    SelectObject( hdc, holdbrush );\r
-    DeleteObject( hpen );\r
-    DeleteObject( hbrush );\r
-}\r
-\r
-BOOL HasHighlightInfo()\r
-{\r
-    BOOL result = FALSE;\r
-\r
-    if( highlightInfo.sq[0].x >= 0 && highlightInfo.sq[0].y >= 0 &&\r
-        highlightInfo.sq[1].x >= 0 && highlightInfo.sq[1].y >= 0 )\r
-    {\r
-        result = TRUE;\r
-    }\r
-\r
-    return result;\r
-\r
-\r
-\r
-}\r
-\r
-BOOL IsDrawArrowEnabled()\r
-{\r
-    BOOL result = FALSE;\r
-\r
-    if( appData.highlightMoveWithArrow && squareSize >= 32 ) {\r
-        result = TRUE;\r
-    }\r
-\r
-    return result;\r
-}\r
-\r
-VOID DrawArrowHighlight( HDC hdc )\r
-{\r
-    if( IsDrawArrowEnabled() && HasHighlightInfo() ) {\r
-        DrawArrowBetweenSquares( hdc,\r
-            highlightInfo.sq[0].x, highlightInfo.sq[0].y,\r
-            highlightInfo.sq[1].x, highlightInfo.sq[1].y );\r
-    }\r
-}\r
-\r
-HRGN GetArrowHighlightClipRegion( HDC hdc )\r
-{\r
-    HRGN result = NULL;\r
-\r
-    if( HasHighlightInfo() ) {\r
-        int x1, y1, x2, y2;\r
-        int sx, sy, dx, dy;\r
-\r
-        SquareToPos(highlightInfo.sq[0].y, highlightInfo.sq[0].x, &x1, &y1 );\r
-        SquareToPos(highlightInfo.sq[1].y, highlightInfo.sq[1].x, &x2, &y2 );\r
-\r
-        sx = MIN( x1, x2 );\r
-        sy = MIN( y1, y2 );\r
-        dx = MAX( x1, x2 ) + squareSize;\r
-        dy = MAX( y1, y2 ) + squareSize;\r
-\r
-        result = CreateRectRgn( sx, sy, dx, dy );\r
-    }\r
-\r
-    return result;\r
-}\r
-\r
-/*\r
-    Warning: this function modifies the behavior of several other functions. \r
-    \r
-    Basically, Winboard is optimized to avoid drawing the whole board if not strictly\r
-    needed. Unfortunately, the decision whether or not to perform a full or partial\r
-    repaint is scattered all over the place, which is not good for features such as\r
-    "arrow highlighting" that require a full repaint of the board.\r
-\r
-    So, I've tried to patch the code where I thought it made sense (e.g. after or during\r
-    user interaction, when speed is not so important) but especially to avoid errors\r
-    in the displayed graphics.\r
-\r
-    In such patched places, I always try refer to this function so there is a single\r
-    place to maintain knowledge.\r
-    \r
-    To restore the original behavior, just return FALSE unconditionally.\r
-*/\r
-BOOL IsFullRepaintPreferrable()\r
-{\r
-    BOOL result = FALSE;\r
-\r
-    if( (appData.highlightLastMove || appData.highlightDragging) && IsDrawArrowEnabled() ) {\r
-        /* Arrow may appear on the board */\r
-        result = TRUE;\r
-    }\r
-\r
-    return result;\r
-}\r
-\r
-/* \r
-    This function is called by DrawPosition to know whether a full repaint must\r
-    be forced or not.\r
-\r
-    Only DrawPosition may directly call this function, which makes use of \r
-    some state information. Other function should call DrawPosition specifying \r
-    the repaint flag, and can use IsFullRepaintPreferrable if needed.\r
-*/\r
-BOOL DrawPositionNeedsFullRepaint()\r
-{\r
-    BOOL result = FALSE;\r
-\r
-    /* \r
-        Probably a slightly better policy would be to trigger a full repaint\r
-        when animInfo.piece changes state (i.e. empty -> non-empty and viceversa),\r
-        but animation is fast enough that it's difficult to notice.\r
-    */\r
-    if( animInfo.piece == EmptySquare ) {\r
-        if( (appData.highlightLastMove || appData.highlightDragging) && IsDrawArrowEnabled() /*&& HasHighlightInfo()*/ ) {\r
-            result = TRUE;\r
-        }\r
-    }\r
-\r
-    return result;\r
-}\r
-\r
-static HBITMAP borderBitmap;\r
-\r
-VOID\r
-DrawBackgroundOnDC(HDC hdc)\r
-{\r
-  \r
-  BITMAP bi;\r
-  HDC tmphdc;\r
-  HBITMAP hbm;\r
-  static char oldBorder[MSG_SIZ];\r
-  int w = 600, h = 600, mode;\r
-\r
-  if(strcmp(appData.border, oldBorder)) { // load new one when old one no longer valid\r
-    strncpy(oldBorder, appData.border, MSG_SIZ-1);\r
-    borderBitmap = LoadImage( 0, appData.border, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE );        \r
-  }\r
-  if(borderBitmap == NULL) { // loading failed, use white\r
-    FillRect( hdc, &boardRect, whitePieceBrush );\r
-    return;\r
-  }\r
-  tmphdc = CreateCompatibleDC(hdc);\r
-  hbm = SelectObject(tmphdc, borderBitmap);\r
-  if( GetObject( borderBitmap, sizeof(bi), &bi ) > 0 ) {\r
-            w = bi.bmWidth;\r
-            h = bi.bmHeight;\r
-  }\r
-  mode = SetStretchBltMode(hdc, COLORONCOLOR);\r
-  StretchBlt(hdc, boardRect.left, boardRect.top, boardRect.right - boardRect.left, \r
-                  boardRect.bottom - boardRect.top, tmphdc, 0, 0, w, h, SRCCOPY);\r
-  SetStretchBltMode(hdc, mode);\r
-  SelectObject(tmphdc, hbm);\r
-  DeleteDC(tmphdc);\r
-}\r
-\r
-VOID\r
-DrawBoardOnDC(HDC hdc, Board board, HDC tmphdc)\r
-{\r
-  int row, column, x, y, square_color, piece_color;\r
-  ChessSquare piece;\r
-  HBRUSH oldBrush;\r
-  HDC texture_hdc = NULL;\r
-\r
-  /* [AS] Initialize background textures if needed */\r
-  if( liteBackTexture != NULL || darkBackTexture != NULL ) {\r
-      static int backTextureBoardSize; /* [HGM] boardsize: also new texture if board format changed */\r
-      if( backTextureSquareSize != squareSize \r
-       || backTextureBoardSize != BOARD_WIDTH+BOARD_FILES*BOARD_HEIGHT) {\r
-         backTextureBoardSize = BOARD_WIDTH+BOARD_FILES*BOARD_HEIGHT;\r
-          backTextureSquareSize = squareSize;\r
-          RebuildTextureSquareInfo();\r
-      }\r
-\r
-      texture_hdc = CreateCompatibleDC( hdc );\r
-  }\r
-\r
-  for (row = 0; row < BOARD_HEIGHT; row++) {\r
-    for (column = 0; column < BOARD_WIDTH; column++) {\r
-  \r
-      SquareToPos(row, column, &x, &y);\r
-\r
-      piece = board[row][column];\r
-\r
-      square_color = ((column + row) % 2) == 1;\r
-      if( gameInfo.variant == VariantXiangqi ) {\r
-          square_color = !InPalace(row, column);\r
-          if(BOARD_HEIGHT&1) { if(row==BOARD_HEIGHT/2) square_color ^= 1; }\r
-          else if(row < BOARD_HEIGHT/2) square_color ^= 1;\r
-      }\r
-      piece_color = (int) piece < (int) BlackPawn;\r
-\r
-\r
-      /* [HGM] holdings file: light square or black */\r
-      if(column == BOARD_LEFT-2) {\r
-            if( row > BOARD_HEIGHT - gameInfo.holdingsSize - 1 )\r
-                square_color = 1;\r
-            else {\r
-                DisplayHoldingsCount(hdc, x, y, 0, 0); /* black out */\r
-                continue;\r
-            }\r
-      } else\r
-      if(column == BOARD_RGHT + 1 ) {\r
-            if( row < gameInfo.holdingsSize )\r
-                square_color = 1;\r
-            else {\r
-                DisplayHoldingsCount(hdc, x, y, 0, 0); \r
-                continue;\r
-            }\r
-      }\r
-      if(column == BOARD_LEFT-1 ) /* left align */\r
-            DisplayHoldingsCount(hdc, x, y, flipView, (int) board[row][column]);\r
-      else if( column == BOARD_RGHT) /* right align */\r
-            DisplayHoldingsCount(hdc, x, y, !flipView, (int) board[row][column]);\r
-      else if( piece == DarkSquare) DisplayHoldingsCount(hdc, x, y, 0, 0);\r
-      else\r
-      if (appData.monoMode) {\r
-        if (piece == EmptySquare) {\r
-          BitBlt(hdc, x, y, squareSize, squareSize, 0, 0, 0,\r
-                square_color ? WHITENESS : BLACKNESS);\r
-        } else {\r
-          DrawPieceOnDC(hdc, piece, piece_color, square_color, x, y, tmphdc);\r
-        }\r
-      } \r
-      else if( appData.useBitmaps && backTextureSquareInfo[row][column].mode > 0 ) {\r
-          /* [AS] Draw the square using a texture bitmap */\r
-          HBITMAP hbm = SelectObject( texture_hdc, square_color ? liteBackTexture : darkBackTexture );\r
-         int r = row, c = column; // [HGM] do not flip board in flipView\r
-         if(flipView) { r = BOARD_HEIGHT-1 - r; c = BOARD_WIDTH-1 - c; }\r
-\r
-          DrawTile( x, y, \r
-              squareSize, squareSize, \r
-              hdc, \r
-              texture_hdc,\r
-              backTextureSquareInfo[r][c].mode,\r
-              backTextureSquareInfo[r][c].x,\r
-              backTextureSquareInfo[r][c].y );\r
-\r
-          SelectObject( texture_hdc, hbm );\r
-\r
-          if (piece != EmptySquare) {\r
-              DrawPieceOnDC(hdc, piece, piece_color, -1, x, y, tmphdc);\r
-          }\r
-      }\r
-      else {\r
-        HBRUSH brush = square_color ? lightSquareBrush : darkSquareBrush;\r
-\r
-        oldBrush = SelectObject(hdc, brush );\r
-        BitBlt(hdc, x, y, squareSize, squareSize, 0, 0, 0, PATCOPY);\r
-        SelectObject(hdc, oldBrush);\r
-        if (piece != EmptySquare)\r
-          DrawPieceOnDC(hdc, piece, piece_color, -1, x, y, tmphdc);\r
-      }\r
-    }\r
-  }\r
-\r
-  if( texture_hdc != NULL ) {\r
-    DeleteDC( texture_hdc );\r
-  }\r
-}\r
-\r
-int saveDiagFlag = 0; FILE *diagFile; // [HGM] diag\r
-void fputDW(FILE *f, int x)\r
-{\r
-       fputc(x     & 255, f);\r
-       fputc(x>>8  & 255, f);\r
-       fputc(x>>16 & 255, f);\r
-       fputc(x>>24 & 255, f);\r
-}\r
-\r
-#define MAX_CLIPS 200   /* more than enough */\r
-\r
-VOID\r
-DrawLogoOnDC(HDC hdc, RECT logoRect, HBITMAP logo)\r
-{\r
-//  HBITMAP bufferBitmap;\r
-  BITMAP bi;\r
-//  RECT Rect;\r
-  HDC tmphdc;\r
-  HBITMAP hbm;\r
-  int w = 100, h = 50;\r
-\r
-  if(logo == NULL) {\r
-    if(!logoHeight) return;\r
-    FillRect( hdc, &logoRect, whitePieceBrush );\r
-  }\r
-//  GetClientRect(hwndMain, &Rect);\r
-//  bufferBitmap = CreateCompatibleBitmap(hdc, Rect.right-Rect.left+1,\r
-//                                     Rect.bottom-Rect.top+1);\r
-  tmphdc = CreateCompatibleDC(hdc);\r
-  hbm = SelectObject(tmphdc, logo);\r
-  if( GetObject( logo, sizeof(bi), &bi ) > 0 ) {\r
-            w = bi.bmWidth;\r
-            h = bi.bmHeight;\r
-  }\r
-  StretchBlt(hdc, logoRect.left, logoRect.top, logoRect.right - logoRect.left, \r
-                  logoRect.bottom - logoRect.top, tmphdc, 0, 0, w, h, SRCCOPY);\r
-  SelectObject(tmphdc, hbm);\r
-  DeleteDC(tmphdc);\r
-}\r
-\r
-VOID\r
-DisplayLogos()\r
-{\r
-  if(logoHeight) {\r
-       HDC hdc = GetDC(hwndMain);\r
-       HBITMAP whiteLogo = (HBITMAP) first.programLogo, blackLogo = (HBITMAP) second.programLogo;\r
-       if(appData.autoLogo) {\r
-         \r
-         switch(gameMode) { // pick logos based on game mode\r
-           case IcsObserving:\r
-               whiteLogo = second.programLogo; // ICS logo\r
-               blackLogo = second.programLogo;\r
-           default:\r
-               break;\r
-           case IcsPlayingWhite:\r
-               if(!appData.zippyPlay) whiteLogo = userLogo;\r
-               blackLogo = second.programLogo; // ICS logo\r
-               break;\r
-           case IcsPlayingBlack:\r
-               whiteLogo = second.programLogo; // ICS logo\r
-               blackLogo = appData.zippyPlay ? first.programLogo : userLogo;\r
-               break;\r
-           case TwoMachinesPlay:\r
-               if(first.twoMachinesColor[0] == 'b') {\r
-                   whiteLogo = second.programLogo;\r
-                   blackLogo = first.programLogo;\r
-               }\r
-               break;\r
-           case MachinePlaysWhite:\r
-               blackLogo = userLogo;\r
-               break;\r
-           case MachinePlaysBlack:\r
-               whiteLogo = userLogo;\r
-               blackLogo = first.programLogo;\r
-         }\r
-       }\r
-       DrawLogoOnDC(hdc, leftLogoRect, flipClock ? blackLogo : whiteLogo);\r
-       DrawLogoOnDC(hdc, rightLogoRect, flipClock ? whiteLogo : blackLogo);\r
-       ReleaseDC(hwndMain, hdc);\r
-  }\r
-}\r
-\r
-void\r
-UpdateLogos(int display)\r
-{ // called after loading new engine(s), in tourney or from menu\r
-  LoadLogo(&first, 0, FALSE);\r
-  LoadLogo(&second, 1, appData.icsActive);\r
-  InitDrawingSizes(-2, 0); // adapt layout of board window to presence/absence of logos\r
-  if(display) DisplayLogos();\r
-}\r
-\r
-static HDC hdcSeek;\r
-\r
-// [HGM] seekgraph\r
-void DrawSeekAxis( int x, int y, int xTo, int yTo )\r
-{\r
-    POINT stPt;\r
-    HPEN hp = SelectObject( hdcSeek, gridPen );\r
-    MoveToEx( hdcSeek, boardRect.left+x, boardRect.top+y, &stPt );\r
-    LineTo( hdcSeek, boardRect.left+xTo, boardRect.top+yTo );\r
-    SelectObject( hdcSeek, hp );\r
-}\r
-\r
-// front-end wrapper for drawing functions to do rectangles\r
-void DrawSeekBackground( int left, int top, int right, int bottom )\r
-{\r
-    HPEN hp;\r
-    RECT rc;\r
-\r
-    if (hdcSeek == NULL) {\r
-    hdcSeek = GetDC(hwndMain);\r
-      if (!appData.monoMode) {\r
-        SelectPalette(hdcSeek, hPal, FALSE);\r
-        RealizePalette(hdcSeek);\r
-      }\r
-    }\r
-    hp = SelectObject( hdcSeek, gridPen );\r
-    rc.top = boardRect.top+top; rc.left = boardRect.left+left; \r
-    rc.bottom = boardRect.top+bottom; rc.right = boardRect.left+right;\r
-    FillRect( hdcSeek, &rc, lightSquareBrush );\r
-    SelectObject( hdcSeek, hp );\r
-}\r
-\r
-// front-end wrapper for putting text in graph\r
-void DrawSeekText(char *buf, int x, int y)\r
-{\r
-        SIZE stSize;\r
-       SetBkMode( hdcSeek, TRANSPARENT );\r
-        GetTextExtentPoint32( hdcSeek, buf, strlen(buf), &stSize );\r
-        TextOut( hdcSeek, boardRect.left+x-3, boardRect.top+y-stSize.cy/2, buf, strlen(buf) );\r
-}\r
-\r
-void DrawSeekDot(int x, int y, int color)\r
-{\r
-       int square = color & 0x80;\r
-       HBRUSH oldBrush = SelectObject(hdcSeek, \r
-                       color == 0 ? markerBrush[1] : color == 1 ? darkSquareBrush : explodeBrush);\r
-       color &= 0x7F;\r
-       if(square)\r
-           Rectangle(hdcSeek, boardRect.left+x - squareSize/9, boardRect.top+y - squareSize/9,\r
-                              boardRect.left+x + squareSize/9, boardRect.top+y + squareSize/9);\r
-       else\r
-           Ellipse(hdcSeek, boardRect.left+x - squareSize/8, boardRect.top+y - squareSize/8,\r
-                            boardRect.left+x + squareSize/8, boardRect.top+y + squareSize/8);\r
-           SelectObject(hdcSeek, oldBrush);\r
-}\r
-\r
-void DrawSeekOpen()\r
-{\r
-}\r
-\r
-void DrawSeekClose()\r
-{\r
-}\r
-\r
-\r
-\r
-VOID\r
-HDCDrawPosition(HDC hdc, BOOLEAN repaint, Board board)\r
-{\r
-  static Board lastReq[2], lastDrawn[2];\r
-  static HighlightInfo lastDrawnHighlight, lastDrawnPremove;\r
-  static int lastDrawnFlipView = 0;\r
-  static int lastReqValid[2] = {0, 0}, lastDrawnValid[2] = {0, 0};\r
-  int releaseDC, x, y, x2, y2, row, column, num_clips = 0, i;\r
-  HDC tmphdc;\r
-  HDC hdcmem;\r
-  HBITMAP bufferBitmap;\r
-  HBITMAP oldBitmap;\r
-  RECT Rect;\r
-  HRGN clips[MAX_CLIPS];\r
-  ChessSquare dragged_piece = EmptySquare;\r
-  int nr = twoBoards*partnerUp;\r
-\r
-  /* I'm undecided on this - this function figures out whether a full\r
-   * repaint is necessary on its own, so there's no real reason to have the\r
-   * caller tell it that.  I think this can safely be set to FALSE - but\r
-   * if we trust the callers not to request full repaints unnessesarily, then\r
-   * we could skip some clipping work.  In other words, only request a full\r
-   * redraw when the majority of pieces have changed positions (ie. flip, \r
-   * gamestart and similar)  --Hawk\r
-   */\r
-  Boolean fullrepaint = repaint;\r
-\r
-  if(DrawSeekGraph()) return; // [HG} seekgraph: suppress printing board if seek graph up\r
-\r
-  if( DrawPositionNeedsFullRepaint() ) {\r
-      fullrepaint = TRUE;\r
-  }\r
-\r
-  if (board == NULL) {\r
-    if (!lastReqValid[nr]) {\r
-      return;\r
-    }\r
-    board = lastReq[nr];\r
-  } else {\r
-    CopyBoard(lastReq[nr], board);\r
-    lastReqValid[nr] = 1;\r
-  }\r
-\r
-  if (doingSizing) {\r
-    return;\r
-  }\r
-\r
-  if (IsIconic(hwndMain)) {\r
-    return;\r
-  }\r
-\r
-  if (hdc == NULL) {\r
-    hdc = GetDC(hwndMain);\r
-    if (!appData.monoMode) {\r
-      SelectPalette(hdc, hPal, FALSE);\r
-      RealizePalette(hdc);\r
-    }\r
-    releaseDC = TRUE;\r
-  } else {\r
-    releaseDC = FALSE;\r
-  }\r
-\r
-  /* Create some work-DCs */\r
-  hdcmem = CreateCompatibleDC(hdc);\r
-  tmphdc = CreateCompatibleDC(hdc);\r
-\r
-  /* If dragging is in progress, we temporarely remove the piece */\r
-  /* [HGM] or temporarily decrease count if stacked              */\r
-  /*       !! Moved to before board compare !!                   */\r
-  if (dragInfo.from.x >= 0 && dragInfo.pos.x >= 0) {\r
-    dragged_piece = board[dragInfo.from.y][dragInfo.from.x];\r
-    if(dragInfo.from.x == BOARD_LEFT-2 ) {\r
-            if(--board[dragInfo.from.y][dragInfo.from.x+1] == 0 )\r
-        board[dragInfo.from.y][dragInfo.from.x] = EmptySquare;\r
-    } else \r
-    if(dragInfo.from.x == BOARD_RGHT+1) {\r
-            if(--board[dragInfo.from.y][dragInfo.from.x-1] == 0 )\r
-        board[dragInfo.from.y][dragInfo.from.x] = EmptySquare;\r
-    } else \r
-        board[dragInfo.from.y][dragInfo.from.x] = gatingPiece;\r
-  }\r
-\r
-  /* Figure out which squares need updating by comparing the \r
-   * newest board with the last drawn board and checking if\r
-   * flipping has changed.\r
-   */\r
-  if (!fullrepaint && lastDrawnValid[nr] && (nr == 1 || lastDrawnFlipView == flipView)) {\r
-    for (row = 0; row < BOARD_HEIGHT; row++) { /* [HGM] true size, not 8 */\r
-      for (column = 0; column < BOARD_WIDTH; column++) {\r
-       if (lastDrawn[nr][row][column] != board[row][column]) {\r
-         SquareToPos(row, column, &x, &y);\r
-         clips[num_clips++] =\r
-           CreateRectRgn(x, y, x + squareSize, y + squareSize);\r
-       }\r
-      }\r
-    }\r
-   if(nr == 0) { // [HGM] dual: no highlights on second board\r
-    for (i=0; i<2; i++) {\r
-      if (lastDrawnHighlight.sq[i].x != highlightInfo.sq[i].x ||\r
-         lastDrawnHighlight.sq[i].y != highlightInfo.sq[i].y) {\r
-       if (lastDrawnHighlight.sq[i].x >= 0 &&\r
-           lastDrawnHighlight.sq[i].y >= 0) {\r
-         SquareToPos(lastDrawnHighlight.sq[i].y,\r
-                     lastDrawnHighlight.sq[i].x, &x, &y);\r
-         clips[num_clips++] =\r
-           CreateRectRgn(x - lineGap, y - lineGap, \r
-                         x + squareSize + lineGap, y + squareSize + lineGap);\r
-       }\r
-       if (highlightInfo.sq[i].x >= 0 && highlightInfo.sq[i].y >= 0) {\r
-         SquareToPos(highlightInfo.sq[i].y, highlightInfo.sq[i].x, &x, &y);\r
-         clips[num_clips++] =\r
-           CreateRectRgn(x - lineGap, y - lineGap, \r
-                         x + squareSize + lineGap, y + squareSize + lineGap);\r
-       }\r
-      }\r
-    }\r
-    for (i=0; i<2; i++) {\r
-      if (lastDrawnPremove.sq[i].x != premoveHighlightInfo.sq[i].x ||\r
-         lastDrawnPremove.sq[i].y != premoveHighlightInfo.sq[i].y) {\r
-       if (lastDrawnPremove.sq[i].x >= 0 &&\r
-           lastDrawnPremove.sq[i].y >= 0) {\r
-         SquareToPos(lastDrawnPremove.sq[i].y,\r
-                     lastDrawnPremove.sq[i].x, &x, &y);\r
-         clips[num_clips++] =\r
-           CreateRectRgn(x - lineGap, y - lineGap, \r
-                         x + squareSize + lineGap, y + squareSize + lineGap);\r
-       }\r
-       if (premoveHighlightInfo.sq[i].x >= 0 && \r
-           premoveHighlightInfo.sq[i].y >= 0) {\r
-         SquareToPos(premoveHighlightInfo.sq[i].y, \r
-                     premoveHighlightInfo.sq[i].x, &x, &y);\r
-         clips[num_clips++] =\r
-           CreateRectRgn(x - lineGap, y - lineGap, \r
-                         x + squareSize + lineGap, y + squareSize + lineGap);\r
-       }\r
-      }\r
-    }\r
-   } else { // nr == 1\r
-       partnerHighlightInfo.sq[0].y = board[EP_STATUS-4];\r
-       partnerHighlightInfo.sq[0].x = board[EP_STATUS-3];\r
-       partnerHighlightInfo.sq[1].y = board[EP_STATUS-2];\r
-       partnerHighlightInfo.sq[1].x = board[EP_STATUS-1];\r
-      for (i=0; i<2; i++) {\r
-       if (partnerHighlightInfo.sq[i].x >= 0 &&\r
-           partnerHighlightInfo.sq[i].y >= 0) {\r
-         SquareToPos(partnerHighlightInfo.sq[i].y,\r
-                     partnerHighlightInfo.sq[i].x, &x, &y);\r
-         clips[num_clips++] =\r
-           CreateRectRgn(x - lineGap, y - lineGap, \r
-                         x + squareSize + lineGap, y + squareSize + lineGap);\r
-       }\r
-       if (oldPartnerHighlight.sq[i].x >= 0 && \r
-           oldPartnerHighlight.sq[i].y >= 0) {\r
-         SquareToPos(oldPartnerHighlight.sq[i].y, \r
-                     oldPartnerHighlight.sq[i].x, &x, &y);\r
-         clips[num_clips++] =\r
-           CreateRectRgn(x - lineGap, y - lineGap, \r
-                         x + squareSize + lineGap, y + squareSize + lineGap);\r
-       }\r
-      }\r
-   }\r
-  } else {\r
-    fullrepaint = TRUE;\r
-  }\r
-\r
-  /* Create a buffer bitmap - this is the actual bitmap\r
-   * being written to.  When all the work is done, we can\r
-   * copy it to the real DC (the screen).  This avoids\r
-   * the problems with flickering.\r
-   */\r
-  GetClientRect(hwndMain, &Rect);\r
-  bufferBitmap = CreateCompatibleBitmap(hdc, Rect.right-Rect.left+1,\r
-                                       Rect.bottom-Rect.top+1);\r
-  oldBitmap = SelectObject(hdcmem, bufferBitmap);\r
-  if (!appData.monoMode) {\r
-    SelectPalette(hdcmem, hPal, FALSE);\r
-  }\r
-\r
-  /* Create clips for dragging */\r
-  if (!fullrepaint) {\r
-    if (dragInfo.from.x >= 0) {\r
-      SquareToPos(dragInfo.from.y, dragInfo.from.x, &x, &y);\r
-      clips[num_clips++] = CreateRectRgn(x, y, x+squareSize, y+squareSize);\r
-    }\r
-    if (dragInfo.start.x >= 0) {\r
-      SquareToPos(dragInfo.start.y, dragInfo.start.x, &x, &y);\r
-      clips[num_clips++] = CreateRectRgn(x, y, x+squareSize, y+squareSize);\r
-    }\r
-    if (dragInfo.pos.x >= 0) {\r
-      x = dragInfo.pos.x - squareSize / 2;\r
-      y = dragInfo.pos.y - squareSize / 2;\r
-      clips[num_clips++] = CreateRectRgn(x, y, x+squareSize, y+squareSize);\r
-    }\r
-    if (dragInfo.lastpos.x >= 0) {\r
-      x = dragInfo.lastpos.x - squareSize / 2;\r
-      y = dragInfo.lastpos.y - squareSize / 2;\r
-      clips[num_clips++] = CreateRectRgn(x, y, x+squareSize, y+squareSize);\r
-    }\r
-  }\r
-\r
-  /* Are we animating a move?  \r
-   * If so, \r
-   *   - remove the piece from the board (temporarely)\r
-   *   - calculate the clipping region\r
-   */\r
-  if (!fullrepaint) {\r
-    if (animInfo.piece != EmptySquare) {\r
-      board[animInfo.from.y][animInfo.from.x] = EmptySquare;\r
-      x = boardRect.left + animInfo.lastpos.x;\r
-      y = boardRect.top + animInfo.lastpos.y;\r
-      x2 = boardRect.left + animInfo.pos.x;\r
-      y2 = boardRect.top + animInfo.pos.y;\r
-      clips[num_clips++] = CreateRectRgn(MIN(x,x2), MIN(y,y2), MAX(x,x2)+squareSize, MAX(y,y2)+squareSize);\r
-      /* Slight kludge.  The real problem is that after AnimateMove is\r
-        done, the position on the screen does not match lastDrawn.\r
-        This currently causes trouble only on e.p. captures in\r
-        atomic, where the piece moves to an empty square and then\r
-        explodes.  The old and new positions both had an empty square\r
-        at the destination, but animation has drawn a piece there and\r
-        we have to remember to erase it. [HGM] moved until after setting lastDrawn */\r
-\r
-      lastDrawn[0][animInfo.to.y][animInfo.to.x] = animInfo.piece;\r
-    }\r
-  }\r
-\r
-  /* No clips?  Make sure we have fullrepaint set to TRUE */\r
-  if (num_clips == 0)\r
-    fullrepaint = TRUE;\r
-\r
-  /* Set clipping on the memory DC */\r
-  if (!fullrepaint) {\r
-    SelectClipRgn(hdcmem, clips[0]);\r
-    for (x = 1; x < num_clips; x++) {\r
-      if (ExtSelectClipRgn(hdcmem, clips[x], RGN_OR) == ERROR)\r
-        abort();  // this should never ever happen!\r
-    }\r
-  }\r
-\r
-  /* Do all the drawing to the memory DC */\r
-  if(explodeInfo.radius) { // [HGM] atomic\r
-       HBRUSH oldBrush;\r
-       int x, y, r=(explodeInfo.radius * squareSize)/100;\r
-        ChessSquare piece = board[explodeInfo.fromY][explodeInfo.fromX];\r
-        board[explodeInfo.fromY][explodeInfo.fromX] = EmptySquare; // suppress display of capturer\r
-       SquareToPos(explodeInfo.toY, explodeInfo.toX, &x, &y);\r
-       x += squareSize/2;\r
-       y += squareSize/2;\r
-        if(!fullrepaint) {\r
-         clips[num_clips] = CreateRectRgn(x-r, y-r, x+r, y+r);\r
-         ExtSelectClipRgn(hdcmem, clips[num_clips++], RGN_OR);\r
-       }\r
-       DrawGridOnDC(hdcmem);\r
-       DrawHighlightsOnDC(hdcmem, &highlightInfo, HIGHLIGHT_PEN);\r
-       DrawHighlightsOnDC(hdcmem, &premoveHighlightInfo, PREMOVE_PEN);\r
-       DrawBoardOnDC(hdcmem, board, tmphdc);\r
-        board[explodeInfo.fromY][explodeInfo.fromX] = piece;\r
-       oldBrush = SelectObject(hdcmem, explodeBrush);\r
-       Ellipse(hdcmem, x-r, y-r, x+r, y+r);\r
-       SelectObject(hdcmem, oldBrush);\r
-  } else {\r
-    if(border) DrawBackgroundOnDC(hdcmem);\r
-    DrawGridOnDC(hdcmem);\r
-    if(nr == 0) { // [HGM] dual: decide which highlights to draw\r
-       DrawHighlightsOnDC(hdcmem, &highlightInfo, HIGHLIGHT_PEN);\r
-       DrawHighlightsOnDC(hdcmem, &premoveHighlightInfo, PREMOVE_PEN);\r
-    } else {\r
-       DrawHighlightsOnDC(hdcmem, &partnerHighlightInfo, HIGHLIGHT_PEN);\r
-       oldPartnerHighlight = partnerHighlightInfo;\r
-    }\r
-    DrawBoardOnDC(hdcmem, board, tmphdc);\r
-  }\r
-  if(nr == 0) // [HGM] dual: markers only on left board\r
-  for (row = 0; row < BOARD_HEIGHT; row++) {\r
-    for (column = 0; column < BOARD_WIDTH; column++) {\r
-       if (marker[row][column]) { // marker changes only occur with full repaint!\r
-           HBRUSH oldBrush = SelectObject(hdcmem, markerBrush[marker[row][column]-1]);\r
-           SquareToPos(row, column, &x, &y);\r
-           Ellipse(hdcmem, x + squareSize/4, y + squareSize/4,\r
-                         x + 3*squareSize/4, y + 3*squareSize/4);\r
-           SelectObject(hdcmem, oldBrush);\r
-       }\r
-    }\r
-  }\r
-\r
-  if( appData.highlightMoveWithArrow ) {\r
-\r
-    DrawArrowHighlight(hdcmem);\r
-  }\r
-\r
-  DrawCoordsOnDC(hdcmem);\r
-\r
-  CopyBoard(lastDrawn[nr], board); /* [HGM] Moved to here from end of routine, */\r
-                 /* to make sure lastDrawn contains what is actually drawn */\r
-\r
-  /* Put the dragged piece back into place and draw it (out of place!) */\r
-    if (dragged_piece != EmptySquare) {\r
-    /* [HGM] or restack */\r
-    if(dragInfo.from.x == BOARD_LEFT-2 )\r
-                 board[dragInfo.from.y][dragInfo.from.x+1]++;\r
-    else\r
-    if(dragInfo.from.x == BOARD_RGHT+1 )\r
-                 board[dragInfo.from.y][dragInfo.from.x-1]++;\r
-\r
-    board[dragInfo.from.y][dragInfo.from.x] = dragged_piece;\r
-    x = dragInfo.pos.x - squareSize / 2;\r
-    y = dragInfo.pos.y - squareSize / 2;\r
-    DrawPieceOnDC(hdcmem, dragInfo.piece,\r
-                 ((int) dragInfo.piece < (int) BlackPawn), \r
-                  (dragInfo.from.y + dragInfo.from.x) % 2, x, y, tmphdc);\r
-  }   \r
-  \r
-  /* Put the animated piece back into place and draw it */\r
-  if (animInfo.piece != EmptySquare) {\r
-    board[animInfo.from.y][animInfo.from.x]  = animInfo.piece;\r
-    x = boardRect.left + animInfo.pos.x;\r
-    y = boardRect.top + animInfo.pos.y;\r
-    DrawPieceOnDC(hdcmem, animInfo.piece,\r
-                 ((int) animInfo.piece < (int) BlackPawn),\r
-                  (animInfo.from.y + animInfo.from.x) % 2, x, y, tmphdc);\r
-  }\r
-\r
-  /* Release the bufferBitmap by selecting in the old bitmap \r
-   * and delete the memory DC\r
-   */\r
-  SelectObject(hdcmem, oldBitmap);\r
-  DeleteDC(hdcmem);\r
-\r
-  /* Set clipping on the target DC */\r
-  if (!fullrepaint) {\r
-    if(nr == 1) for (x = 0; x < num_clips; x++) { // [HGM] dual: translate clips\r
-       RECT rect;\r
-       GetRgnBox(clips[x], &rect);\r
-       DeleteObject(clips[x]);\r
-       clips[x] = CreateRectRgn(rect.left + wpMain.width/2, rect.top, \r
-                         rect.right + wpMain.width/2, rect.bottom);\r
-    }\r
-    SelectClipRgn(hdc, clips[0]);\r
-    for (x = 1; x < num_clips; x++) {\r
-      if (ExtSelectClipRgn(hdc, clips[x], RGN_OR) == ERROR)\r
-        abort();   // this should never ever happen!\r
-    } \r
-  }\r
-\r
-  /* Copy the new bitmap onto the screen in one go.\r
-   * This way we avoid any flickering\r
-   */\r
-  oldBitmap = SelectObject(tmphdc, bufferBitmap);\r
-  BitBlt(hdc, boardRect.left + twoBoards*partnerUp*wpMain.width/2, boardRect.top, // [HGM] dual\r
-        boardRect.right - boardRect.left,\r
-        boardRect.bottom - boardRect.top,\r
-        tmphdc, boardRect.left, boardRect.top, SRCCOPY);\r
-  if(saveDiagFlag) { \r
-    BITMAP b; int i, j=0, m, w, wb, fac=0; char *pData; \r
-    BITMAPINFOHEADER bih; int color[16], nrColors=0;\r
-    HBITMAP src = bufferBitmap, obmp; HDC tmp = CreateCompatibleDC(hdc);\r
-\r
-    bufferBitmap = CreateCompatibleBitmap(hdc, boardRect.right-boardRect.left, Rect.bottom-Rect.top-2*OUTER_MARGIN);\r
-    obmp = SelectObject(tmp, bufferBitmap);\r
-    BitBlt(tmp, 0, 0, boardRect.right - boardRect.left, Rect.bottom - Rect.top - 2*OUTER_MARGIN,\r
-           tmphdc, boardRect.left, OUTER_MARGIN, SRCCOPY);\r
-    GetObject(bufferBitmap, sizeof(b), &b);\r
-    if(pData = malloc(b.bmWidthBytes*b.bmHeight + 10000)) {\r
-       bih.biSize = sizeof(BITMAPINFOHEADER);\r
-       bih.biWidth = b.bmWidth;\r
-       bih.biHeight = b.bmHeight;\r
-       bih.biPlanes = 1;\r
-       bih.biBitCount = b.bmBitsPixel;\r
-       bih.biCompression = 0;\r
-       bih.biSizeImage = b.bmWidthBytes*b.bmHeight;\r
-       bih.biXPelsPerMeter = 0;\r
-       bih.biYPelsPerMeter = 0;\r
-       bih.biClrUsed = 0;\r
-       bih.biClrImportant = 0;\r
-//     fprintf(diagFile, "t=%d\nw=%d\nh=%d\nB=%d\nP=%d\nX=%d\n", \r
-//             b.bmType,  b.bmWidth,  b.bmHeight, b.bmWidthBytes,  b.bmPlanes,  b.bmBitsPixel);\r
-       GetDIBits(tmphdc,bufferBitmap,0,b.bmHeight,pData,(BITMAPINFO*)&bih,DIB_RGB_COLORS);\r
-//     fprintf(diagFile, "%8x\n", (int) pData);\r
-\r
-       wb = b.bmWidthBytes;\r
-       // count colors\r
-       for(i=0; i<wb*(b.bmHeight - boardRect.top + OUTER_MARGIN)>>2; i++) {\r
-               int k = ((int*) pData)[i];\r
-               for(j=0; j<nrColors; j++) if(color[j] == k) break;\r
-               if(j >= 16) break;\r
-               color[j] = k;\r
-               if(j >= nrColors) nrColors = j+1;\r
-       }\r
-       if(j<16) { // 16 colors is enough. Compress to 4 bits per pixel\r
-               INT p = 0;\r
-               for(i=0; i<b.bmHeight - boardRect.top + OUTER_MARGIN; i++) {\r
-                   for(w=0; w<(wb>>2); w+=2) {\r
-                       int k = ((int*) pData)[(wb*i>>2) + w];\r
-                       for(j=0; j<nrColors; j++) if(color[j] == k) break;\r
-                       k = ((int*) pData)[(wb*i>>2) + w + 1];\r
-                       for(m=0; m<nrColors; m++) if(color[m] == k) break;\r
-                       pData[p++] = m | j<<4;\r
-                   }\r
-                   while(p&3) pData[p++] = 0;\r
-               }\r
-               fac = 3;\r
-               wb = ((wb+31)>>5)<<2;\r
-       }\r
-       // write BITMAPFILEHEADER\r
-       fprintf(diagFile, "BM");\r
-        fputDW(diagFile, wb*(b.bmHeight - boardRect.top + OUTER_MARGIN)+0x36 + (fac?64:0));\r
-        fputDW(diagFile, 0);\r
-        fputDW(diagFile, 0x36 + (fac?64:0));\r
-       // write BITMAPINFOHEADER\r
-        fputDW(diagFile, 40);\r
-        fputDW(diagFile, b.bmWidth);\r
-        fputDW(diagFile, b.bmHeight - boardRect.top + OUTER_MARGIN);\r
-       if(fac) fputDW(diagFile, 0x040001);   // planes and bits/pixel\r
-        else    fputDW(diagFile, 0x200001);   // planes and bits/pixel\r
-        fputDW(diagFile, 0);\r
-        fputDW(diagFile, 0);\r
-        fputDW(diagFile, 0);\r
-        fputDW(diagFile, 0);\r
-        fputDW(diagFile, 0);\r
-        fputDW(diagFile, 0);\r
-       // write color table\r
-       if(fac)\r
-       for(i=0; i<16; i++) fputDW(diagFile, color[i]);\r
-       // write bitmap data\r
-       for(i=0; i<wb*(b.bmHeight - boardRect.top + OUTER_MARGIN); i++) \r
-               fputc(pData[i], diagFile);\r
-       free(pData);\r
-     }\r
-     DeleteObject(bufferBitmap); bufferBitmap = src;\r
-     SelectObject(tmp, obmp);\r
-     DeleteDC(tmp);\r
-  }\r
-\r
-  SelectObject(tmphdc, oldBitmap);\r
-\r
-  /* Massive cleanup */\r
-  for (x = 0; x < num_clips; x++)\r
-    DeleteObject(clips[x]);\r
-\r
-  DeleteDC(tmphdc);\r
-  DeleteObject(bufferBitmap);\r
-\r
-  if (releaseDC) \r
-    ReleaseDC(hwndMain, hdc);\r
-  \r
-  if (lastDrawnFlipView != flipView && nr == 0) {\r
-    if (flipView)\r
-      CheckMenuItem(GetMenu(hwndMain),IDM_FlipView, MF_BYCOMMAND|MF_CHECKED);\r
-    else\r
-      CheckMenuItem(GetMenu(hwndMain),IDM_FlipView, MF_BYCOMMAND|MF_UNCHECKED);\r
-  }\r
-\r
-/*  CopyBoard(lastDrawn, board);*/\r
-  lastDrawnHighlight = highlightInfo;\r
-  lastDrawnPremove   = premoveHighlightInfo;\r
-  lastDrawnFlipView = flipView;\r
-  lastDrawnValid[nr] = 1;\r
-}\r
-\r
-/* [HGM] diag: Save the current board display to the given open file and close the file */\r
-int\r
-SaveDiagram(f)\r
-     FILE *f;\r
-{\r
-    saveDiagFlag = 1; diagFile = f;\r
-    HDCDrawPosition(NULL, TRUE, NULL);\r
-    saveDiagFlag = 0;\r
-\r
-    fclose(f);\r
-    return TRUE;\r
-}\r
-\r
-\r
-/*---------------------------------------------------------------------------*\\r
-| CLIENT PAINT PROCEDURE\r
-|   This is the main event-handler for the WM_PAINT message.\r
-|\r
-\*---------------------------------------------------------------------------*/\r
-VOID\r
-PaintProc(HWND hwnd)\r
-{\r
-  HDC         hdc;\r
-  PAINTSTRUCT ps;\r
-  HFONT       oldFont;\r
-\r
-  if((hdc = BeginPaint(hwnd, &ps))) {\r
-    if (IsIconic(hwnd)) {\r
-      DrawIcon(hdc, 2, 2, iconCurrent);\r
-    } else {\r
-      if (!appData.monoMode) {\r
-       SelectPalette(hdc, hPal, FALSE);\r
-       RealizePalette(hdc);\r
-      }\r
-      HDCDrawPosition(hdc, 1, NULL);\r
-      if(twoBoards) { // [HGM] dual: also redraw other board in other orientation\r
-       flipView = !flipView; partnerUp = !partnerUp;\r
-       HDCDrawPosition(hdc, 1, NULL);\r
-       flipView = !flipView; partnerUp = !partnerUp;\r
-      }\r
-      oldFont =\r
-       SelectObject(hdc, font[boardSize][MESSAGE_FONT]->hf);\r
-      ExtTextOut(hdc, messageRect.left, messageRect.top,\r
-                ETO_CLIPPED|ETO_OPAQUE,\r
-                &messageRect, messageText, strlen(messageText), NULL);\r
-      SelectObject(hdc, oldFont);\r
-      DisplayBothClocks();\r
-      DisplayLogos();\r
-    }\r
-    EndPaint(hwnd,&ps);\r
-  }\r
-\r
-  return;\r
-}\r
-\r
-\r
-/*\r
- * If the user selects on a border boundary, return -1; if off the board,\r
- *   return -2.  Otherwise map the event coordinate to the square.\r
- * The offset boardRect.left or boardRect.top must already have been\r
- *   subtracted from x.\r
- */\r
-int EventToSquare(x, limit)\r
-     int x, limit;\r
-{\r
-  if (x <= border)\r
-    return -2;\r
-  if (x < lineGap + border)\r
-    return -1;\r
-  x -= lineGap + border;\r
-  if ((x % (squareSize + lineGap)) >= squareSize)\r
-    return -1;\r
-  x /= (squareSize + lineGap);\r
-    if (x >= limit)\r
-    return -2;\r
-  return x;\r
-}\r
-\r
-typedef struct {\r
-  char piece;\r
-  int command;\r
-  char* name;\r
-} DropEnable;\r
-\r
-DropEnable dropEnables[] = {\r
-  { 'P', DP_Pawn, N_("Pawn") },\r
-  { 'N', DP_Knight, N_("Knight") },\r
-  { 'B', DP_Bishop, N_("Bishop") },\r
-  { 'R', DP_Rook, N_("Rook") },\r
-  { 'Q', DP_Queen, N_("Queen") },\r
-};\r
-\r
-VOID\r
-SetupDropMenu(HMENU hmenu)\r
-{\r
-  int i, count, enable;\r
-  char *p;\r
-  extern char white_holding[], black_holding[];\r
-  char item[MSG_SIZ];\r
-\r
-  for (i=0; i<sizeof(dropEnables)/sizeof(DropEnable); i++) {\r
-    p = strchr(gameMode == IcsPlayingWhite ? white_holding : black_holding,\r
-              dropEnables[i].piece);\r
-    count = 0;\r
-    while (p && *p++ == dropEnables[i].piece) count++;\r
-      snprintf(item, MSG_SIZ, "%s  %d", T_(dropEnables[i].name), count);\r
-    enable = count > 0 || !appData.testLegality\r
-      /*!!temp:*/ || (gameInfo.variant == VariantCrazyhouse\r
-                     && !appData.icsActive);\r
-    ModifyMenu(hmenu, dropEnables[i].command,\r
-              MF_BYCOMMAND | (enable ? MF_ENABLED : MF_GRAYED) | MF_STRING,\r
-              dropEnables[i].command, item);\r
-  }\r
-}\r
-\r
-void DragPieceBegin(int x, int y, Boolean instantly)\r
-{\r
-      dragInfo.lastpos.x = boardRect.left + x;\r
-      dragInfo.lastpos.y = boardRect.top + y;\r
-      if(instantly) dragInfo.pos = dragInfo.lastpos;\r
-      dragInfo.from.x = fromX;\r
-      dragInfo.from.y = fromY;\r
-      dragInfo.piece = boards[currentMove][fromY][fromX];\r
-      dragInfo.start = dragInfo.from;\r
-      SetCapture(hwndMain);\r
-}\r
-\r
-void DragPieceEnd(int x, int y)\r
-{\r
-    ReleaseCapture();\r
-    dragInfo.start.x = dragInfo.start.y = -1;\r
-    dragInfo.from = dragInfo.start;\r
-    dragInfo.pos = dragInfo.lastpos = dragInfo.start;\r
-}\r
-\r
-void ChangeDragPiece(ChessSquare piece)\r
-{\r
-    dragInfo.piece = piece;\r
-}\r
-\r
-/* Event handler for mouse messages */\r
-VOID\r
-MouseEvent(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)\r
-{\r
-  int x, y, menuNr;\r
-  POINT pt;\r
-  static int recursive = 0;\r
-  HMENU hmenu;\r
-  BOOLEAN forceFullRepaint = IsFullRepaintPreferrable(); /* [AS] */\r
-\r
-  if (recursive) {\r
-    if (message == WM_MBUTTONUP) {\r
-      /* Hideous kludge to fool TrackPopupMenu into paying attention\r
-        to the middle button: we simulate pressing the left button too!\r
-        */\r
-      PostMessage(hwnd, WM_LBUTTONDOWN, wParam, lParam);\r
-      PostMessage(hwnd, WM_LBUTTONUP, wParam, lParam);\r
-    }\r
-    return;\r
-  }\r
-  recursive++;\r
-  \r
-  pt.x = LOWORD(lParam);\r
-  pt.y = HIWORD(lParam);\r
-  x = EventToSquare(pt.x - boardRect.left, BOARD_WIDTH);\r
-  y = EventToSquare(pt.y - boardRect.top, BOARD_HEIGHT);\r
-  if (!flipView && y >= 0) {\r
-    y = BOARD_HEIGHT - 1 - y;\r
-  }\r
-  if (flipView && x >= 0) {\r
-    x = BOARD_WIDTH - 1 - x;\r
-  }\r
-\r
-  shiftKey = GetKeyState(VK_SHIFT) < 0; // [HGM] remember last shift status\r
-  controlKey = GetKeyState(VK_CONTROL) < 0; // [HGM] remember last shift status\r
-\r
-  switch (message) {\r
-  case WM_LBUTTONDOWN:\r
-      if (PtInRect((LPRECT) &whiteRect, pt)) {\r
-        ClockClick(flipClock); break;\r
-      } else if (PtInRect((LPRECT) &blackRect, pt)) {\r
-       ClockClick(!flipClock); break;\r
-      }\r
-    if(dragging) { // [HGM] lion: don't destroy dragging info if we are already dragging\r
-      dragInfo.start.x = dragInfo.start.y = -1;\r
-      dragInfo.from = dragInfo.start;\r
-    }\r
-    if(fromX == -1 && frozen) { // not sure where this is for\r
-               fromX = fromY = -1; \r
-      DrawPosition(forceFullRepaint || FALSE, NULL); /* [AS] */\r
-      break;\r
-    }\r
-      LeftClick(Press, pt.x - boardRect.left, pt.y - boardRect.top);\r
-      DrawPosition(TRUE, NULL);\r
-    break;\r
-\r
-  case WM_LBUTTONUP:\r
-      LeftClick(Release, pt.x - boardRect.left, pt.y - boardRect.top);\r
-      DrawPosition(TRUE, NULL);\r
-    break;\r
-\r
-  case WM_MOUSEMOVE:\r
-    if(SeekGraphClick(Press, pt.x - boardRect.left, pt.y - boardRect.top, 1)) break;\r
-    if(PromoScroll(pt.x - boardRect.left, pt.y - boardRect.top)) break;\r
-    MovePV(pt.x - boardRect.left, pt.y - boardRect.top, boardRect.bottom - boardRect.top);\r
-    if ((appData.animateDragging || appData.highlightDragging)\r
-       && (wParam & MK_LBUTTON || dragging == 2)\r
-       && dragInfo.from.x >= 0) \r
-    {\r
-      BOOL full_repaint = FALSE;\r
-\r
-      if (appData.animateDragging) {\r
-       dragInfo.pos = pt;\r
-      }\r
-      if (appData.highlightDragging) {\r
-       HoverEvent(highlightInfo.sq[1].x, highlightInfo.sq[1].y, x, y);\r
-        if( IsDrawArrowEnabled() && (x < 0 || x >= BOARD_WIDTH || y < 0 || y >= BOARD_HEIGHT) ) {\r
-            full_repaint = TRUE;\r
-        }\r
-      }\r
-      \r
-      DrawPosition( full_repaint, NULL);\r
-      \r
-      dragInfo.lastpos = dragInfo.pos;\r
-    }\r
-    break;\r
-\r
-  case WM_MOUSEWHEEL: // [DM]\r
-    {  static int lastDir = 0; // [HGM] build in some hysteresis to avoid spurious events\r
-       /* Mouse Wheel is being rolled forward\r
-        * Play moves forward\r
-        */\r
-       if((short)HIWORD(wParam) < 0 && currentMove < forwardMostMove) \r
-               { if(lastDir == 1) ForwardEvent(); else lastDir = 1; } // [HGM] suppress first event in direction\r
-       /* Mouse Wheel is being rolled backward\r
-        * Play moves backward\r
-        */\r
-       if((short)HIWORD(wParam) > 0 && currentMove > backwardMostMove) \r
-               { if(lastDir == -1) BackwardEvent(); else lastDir = -1; }\r
-    }\r
-    break;\r
-\r
-  case WM_MBUTTONUP:\r
-  case WM_RBUTTONUP:\r
-    ReleaseCapture();\r
-    RightClick(Release, pt.x - boardRect.left, pt.y - boardRect.top, &fromX, &fromY);\r
-    break;\r
\r
-  case WM_MBUTTONDOWN:\r
-  case WM_RBUTTONDOWN:\r
-    ErrorPopDown();\r
-    ReleaseCapture();\r
-    fromX = fromY = -1;\r
-    dragInfo.pos.x = dragInfo.pos.y = -1;\r
-    dragInfo.start.x = dragInfo.start.y = -1;\r
-    dragInfo.from = dragInfo.start;\r
-    dragInfo.lastpos = dragInfo.pos;\r
-    if (appData.highlightDragging) {\r
-      ClearHighlights();\r
-    }\r
-    if(y == -2) {\r
-      /* [HGM] right mouse button in clock area edit-game mode ups clock */\r
-      if (PtInRect((LPRECT) &whiteRect, pt)) {\r
-          if (GetKeyState(VK_SHIFT) < 0) AdjustClock(flipClock, 1);\r
-      } else if (PtInRect((LPRECT) &blackRect, pt)) {\r
-          if (GetKeyState(VK_SHIFT) < 0) AdjustClock(!flipClock, 1);\r
-      }\r
-      break;\r
-    }\r
-    DrawPosition(TRUE, NULL);\r
-\r
-    menuNr = RightClick(Press, pt.x - boardRect.left, pt.y - boardRect.top, &fromX, &fromY);\r
-    switch (menuNr) {\r
-    case 0:\r
-      if (message == WM_MBUTTONDOWN) {\r
-       buttonCount = 3;  /* even if system didn't think so */\r
-       if (wParam & MK_SHIFT) \r
-         MenuPopup(hwnd, pt, LoadMenu(hInst, "BlackPieceMenu"), -1);\r
-       else\r
-         MenuPopup(hwnd, pt, LoadMenu(hInst, "WhitePieceMenu"), -1);\r
-      } else { /* message == WM_RBUTTONDOWN */\r
-       /* Just have one menu, on the right button.  Windows users don't\r
-          think to try the middle one, and sometimes other software steals\r
-          it, or it doesn't really exist. */\r
-        if(gameInfo.variant != VariantShogi)\r
-            MenuPopup(hwnd, pt, LoadMenu(hInst, "PieceMenu"), -1);\r
-        else\r
-            MenuPopup(hwnd, pt, LoadMenu(hInst, "ShogiPieceMenu"), -1);\r
-      }\r
-      break;\r
-    case 2:\r
-      SetCapture(hwndMain);\r
-      break;\r
-    case 1:\r
-      hmenu = LoadMenu(hInst, "DropPieceMenu");\r
-      SetupDropMenu(hmenu);\r
-      MenuPopup(hwnd, pt, hmenu, -1);\r
-    default:\r
-      break;\r
-    }\r
-    break;\r
-  }\r
-\r
-  recursive--;\r
-}\r
-\r
-/* Preprocess messages for buttons in main window */\r
-LRESULT CALLBACK\r
-ButtonProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)\r
-{\r
-  int id = GetWindowLongPtr(hwnd, GWLP_ID);\r
-  int i, dir;\r
-\r
-  for (i=0; i<N_BUTTONS; i++) {\r
-    if (buttonDesc[i].id == id) break;\r
-  }\r
-  if (i == N_BUTTONS) return 0;\r
-  switch (message) {\r
-  case WM_KEYDOWN:\r
-    switch (wParam) {\r
-    case VK_LEFT:\r
-    case VK_RIGHT:\r
-      dir = (wParam == VK_LEFT) ? -1 : 1;\r
-      SetFocus(buttonDesc[(i + dir + N_BUTTONS) % N_BUTTONS].hwnd);\r
-      return TRUE;\r
-    }\r
-    break;\r
-  case WM_CHAR:\r
-    switch (wParam) {\r
-    case '\r':\r
-      SendMessage(hwndMain, WM_COMMAND, MAKEWPARAM(buttonDesc[i].id, 0), 0);\r
-      return TRUE;\r
-    default:\r
-      if (appData.icsActive && (isalpha((char)wParam) || wParam == '0')) {\r
-       // [HGM] movenum: only letters or leading zero should go to ICS input\r
-        HWND h = GetDlgItem(hwndConsole, OPT_ConsoleInput);\r
-       if (IsIconic(hwndConsole)) ShowWindow(hwndConsole, SW_RESTORE);\r
-       SetFocus(h);\r
-       SendMessage(h, WM_CHAR, wParam, lParam);\r
-       return TRUE;\r
-      } else if (isalpha((char)wParam) || isdigit((char)wParam)){\r
-       TypeInEvent((char)wParam);\r
-      }\r
-      break;\r
-    }\r
-    break;\r
-  }\r
-  return CallWindowProc(buttonDesc[i].wndproc, hwnd, message, wParam, lParam);\r
-}\r
-\r
-static int promoStyle;\r
-\r
-/* Process messages for Promotion dialog box */\r
-LRESULT CALLBACK\r
-Promotion(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
-{\r
-\r
-  char promoChar;\r
-\r
-  switch (message) {\r
-\r
-  case WM_INITDIALOG: /* message: initialize dialog box */\r
-    /* Center the dialog over the application window */\r
-    CenterWindow(hDlg, GetWindow(hDlg, GW_OWNER));\r
-    Translate(hDlg, DLG_PromotionKing);\r
-    ShowWindow(GetDlgItem(hDlg, PB_King), \r
-      (!appData.testLegality || gameInfo.variant == VariantSuicide ||\r
-       gameInfo.variant == VariantSpartan && !WhiteOnMove(currentMove) ||\r
-       gameInfo.variant == VariantGiveaway || gameInfo.variant == VariantSuper ) ?\r
-              SW_SHOW : SW_HIDE);\r
-    /* [HGM] Only allow C & A promotions if these pieces are defined */\r
-    ShowWindow(GetDlgItem(hDlg, PB_Archbishop),\r
-       ((PieceToChar(WhiteAngel) >= 'A' && WhiteOnMove(currentMove) &&\r
-         PieceToChar(WhiteAngel) != '~') ||\r
-        (PieceToChar(BlackAngel) >= 'A' && !WhiteOnMove(currentMove) &&\r
-         PieceToChar(BlackAngel) != '~')   ) ?\r
-              SW_SHOW : SW_HIDE);\r
-    ShowWindow(GetDlgItem(hDlg, PB_Chancellor), \r
-       ((PieceToChar(WhiteMarshall) >= 'A' && WhiteOnMove(currentMove) &&\r
-         PieceToChar(WhiteMarshall) != '~') ||\r
-        (PieceToChar(BlackMarshall) >= 'A' && !WhiteOnMove(currentMove) &&\r
-         PieceToChar(BlackMarshall) != '~')   ) ?\r
-              SW_SHOW : SW_HIDE);\r
-    /* [HGM] Hide B & R button in Shogi, use Q as promote, N as defer */\r
-    ShowWindow(GetDlgItem(hDlg, PB_Rook),   !promoStyle ? SW_SHOW : SW_HIDE);\r
-    ShowWindow(GetDlgItem(hDlg, PB_Bishop), !promoStyle ? SW_SHOW : SW_HIDE);\r
-    if(promoStyle) {\r
-        SetDlgItemText(hDlg, PB_Queen, "YES");\r
-        SetDlgItemText(hDlg, PB_Knight, "NO");\r
-        SetWindowText(hDlg, "Promote?");\r
-    }\r
-    ShowWindow(GetDlgItem(hDlg, IDC_Centaur), \r
-       gameInfo.variant == VariantSuper ?\r
-              SW_SHOW : SW_HIDE);\r
-    return TRUE;\r
-\r
-  case WM_COMMAND: /* message: received a command */\r
-    switch (LOWORD(wParam)) {\r
-    case IDCANCEL:\r
-      EndDialog(hDlg, TRUE); /* Exit the dialog */\r
-      ClearHighlights();\r
-      DrawPosition(FALSE, NULL);\r
-      return TRUE;\r
-    case PB_King:\r
-      promoChar = gameInfo.variant == VariantSuper ? PieceToChar(BlackSilver) : PieceToChar(BlackKing);\r
-      break;\r
-    case PB_Queen:\r
-      promoChar = promoStyle ? '+' : ToLower(PieceToChar(WhiteOnMove(currentMove) ? WhiteQueen : BlackQueen));\r
-      break;\r
-    case PB_Rook:\r
-      promoChar = ToLower(PieceToChar(WhiteOnMove(currentMove) ? WhiteRook : BlackRook));\r
-      if(gameInfo.variant == VariantSpartan && !WhiteOnMove(currentMove)) promoChar = PieceToChar(BlackDragon);\r
-      break;\r
-    case PB_Bishop:\r
-      promoChar = ToLower(PieceToChar(WhiteOnMove(currentMove) ? WhiteBishop : BlackBishop));\r
-      if(gameInfo.variant == VariantSpartan && !WhiteOnMove(currentMove)) promoChar = PieceToChar(BlackAlfil);\r
-      break;\r
-    case PB_Chancellor:\r
-      promoChar = ToLower(PieceToChar(WhiteOnMove(currentMove) ? WhiteMarshall : BlackMarshall));\r
-      break;\r
-    case PB_Archbishop:\r
-      promoChar = ToLower(PieceToChar(WhiteOnMove(currentMove) ? WhiteAngel : BlackAngel));\r
-      break;\r
-    case PB_Knight:\r
-      promoChar = gameInfo.variant == VariantShogi ? '=' : promoStyle ? NULLCHAR : \r
-                  ToLower(PieceToChar(WhiteOnMove(currentMove) ? WhiteKnight : BlackKnight));\r
-      break;\r
-    default:\r
-      return FALSE;\r
-    }\r
-    if(promoChar == '.') return FALSE; // invalid piece chosen \r
-    EndDialog(hDlg, TRUE); /* Exit the dialog */\r
-    UserMoveEvent(fromX, fromY, toX, toY, promoChar);\r
-    fromX = fromY = -1;\r
-    if (!appData.highlightLastMove) {\r
-      ClearHighlights();\r
-      DrawPosition(FALSE, NULL);\r
-    }\r
-    return TRUE;\r
-  }\r
-  return FALSE;\r
-}\r
-\r
-/* Pop up promotion dialog */\r
-VOID\r
-PromotionPopup(HWND hwnd)\r
-{\r
-  FARPROC lpProc;\r
-\r
-  lpProc = MakeProcInstance((FARPROC)Promotion, hInst);\r
-  DialogBox(hInst, MAKEINTRESOURCE(DLG_PromotionKing),\r
-    hwnd, (DLGPROC)lpProc);\r
-  FreeProcInstance(lpProc);\r
-}\r
-\r
-void\r
-PromotionPopUp(char choice)\r
-{\r
-  promoStyle = (choice == '+' || IS_SHOGI(gameInfo.variant));\r
-  DrawPosition(TRUE, NULL);\r
-  PromotionPopup(hwndMain);\r
-}\r
-\r
-VOID\r
-LoadGameDialog(HWND hwnd, char* title)\r
-{\r
-  UINT number = 0;\r
-  FILE *f;\r
-  char fileTitle[MSG_SIZ];\r
-  f = OpenFileDialog(hwnd, "rb", "",\r
-                    appData.oldSaveStyle ? "gam" : "pgn",\r
-                    GAME_FILT,\r
-                    title, &number, fileTitle, NULL);\r
-  if (f != NULL) {\r
-    cmailMsgLoaded = FALSE;\r
-    if (number == 0) {\r
-      int error = GameListBuild(f);\r
-      if (error) {\r
-        DisplayError(_("Cannot build game list"), error);\r
-      } else if (!ListEmpty(&gameList) &&\r
-                 ((ListGame *) gameList.tailPred)->number > 1) {\r
-       GameListPopUp(f, fileTitle);\r
-        return;\r
-      }\r
-      GameListDestroy();\r
-      number = 1;\r
-    }\r
-    LoadGame(f, number, fileTitle, FALSE);\r
-  }\r
-}\r
-\r
-int get_term_width()\r
-{\r
-    HDC hdc;\r
-    TEXTMETRIC tm;\r
-    RECT rc;\r
-    HFONT hfont, hold_font;\r
-    LOGFONT lf;\r
-    HWND hText;\r
-\r
-    if (hwndConsole)\r
-        hText = GetDlgItem(hwndConsole, OPT_ConsoleText);\r
-    else\r
-        return 79;\r
-\r
-    // get the text metrics\r
-    hdc = GetDC(hText);\r
-    lf = font[boardSize][CONSOLE_FONT]->lf;\r
-    if (consoleCF.dwEffects & CFE_BOLD)\r
-        lf.lfWeight = FW_BOLD;\r
-    if (consoleCF.dwEffects & CFE_ITALIC)\r
-        lf.lfItalic = TRUE;\r
-    if (consoleCF.dwEffects & CFE_STRIKEOUT)\r
-        lf.lfStrikeOut = TRUE;\r
-    if (consoleCF.dwEffects & CFE_UNDERLINE)\r
-        lf.lfUnderline = TRUE;\r
-    hfont = CreateFontIndirect(&lf);\r
-    hold_font = SelectObject(hdc, hfont);\r
-    GetTextMetrics(hdc, &tm);\r
-    SelectObject(hdc, hold_font);\r
-    DeleteObject(hfont);\r
-    ReleaseDC(hText, hdc);\r
-\r
-    // get the rectangle\r
-    SendMessage(hText, EM_GETRECT, 0, (LPARAM)&rc);\r
-\r
-    return (rc.right-rc.left) / tm.tmAveCharWidth;\r
-}\r
-\r
-void UpdateICSWidth(HWND hText)\r
-{\r
-    LONG old_width, new_width;\r
-\r
-    new_width = get_term_width(hText, FALSE);\r
-    old_width = GetWindowLongPtr(hText, GWLP_USERDATA);\r
-    if (new_width != old_width)\r
-    {\r
-        ics_update_width(new_width);\r
-        SetWindowLongPtr(hText, GWLP_USERDATA, new_width);\r
-    }\r
-}\r
-\r
-VOID\r
-ChangedConsoleFont()\r
-{\r
-  CHARFORMAT cfmt;\r
-  CHARRANGE tmpsel, sel;\r
-  MyFont *f = font[boardSize][CONSOLE_FONT];\r
-  HWND hText = GetDlgItem(hwndConsole, OPT_ConsoleText);\r
-  HWND hInput = GetDlgItem(hwndConsole, OPT_ConsoleInput);\r
-  PARAFORMAT paraf;\r
-\r
-  cfmt.cbSize = sizeof(CHARFORMAT);\r
-  cfmt.dwMask = CFM_FACE|CFM_SIZE|CFM_CHARSET;\r
-    safeStrCpy(cfmt.szFaceName, font[boardSize][CONSOLE_FONT]->mfp.faceName,\r
-              sizeof(cfmt.szFaceName)/sizeof(cfmt.szFaceName[0]) );\r
-  /* yHeight is expressed in twips.  A twip is 1/20 of a font's point\r
-   * size.  This was undocumented in the version of MSVC++ that I had\r
-   * when I wrote the code, but is apparently documented now.\r
-   */\r
-  cfmt.yHeight = (int)(f->mfp.pointSize * 20.0 + 0.5);\r
-  cfmt.bCharSet = f->lf.lfCharSet;\r
-  cfmt.bPitchAndFamily = f->lf.lfPitchAndFamily;\r
-  SendMessage(hText, EM_SETCHARFORMAT, SCF_ALL, (LPARAM) &cfmt); \r
-  SendMessage(hInput, EM_SETCHARFORMAT, SCF_ALL, (LPARAM) &cfmt); \r
-  /* Why are the following seemingly needed too? */\r
-  SendMessage(hText, EM_SETCHARFORMAT, SCF_DEFAULT, (LPARAM) &cfmt); \r
-  SendMessage(hInput, EM_SETCHARFORMAT, SCF_DEFAULT, (LPARAM) &cfmt); \r
-  SendMessage(hText, EM_EXGETSEL, 0, (LPARAM)&sel);\r
-  tmpsel.cpMin = 0;\r
-  tmpsel.cpMax = -1; /*999999?*/\r
-  SendMessage(hText, EM_EXSETSEL, 0, (LPARAM)&tmpsel);\r
-  SendMessage(hText, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM) &cfmt); \r
-  /* Trying putting this here too.  It still seems to tickle a RichEdit\r
-   *  bug: sometimes RichEdit indents the first line of a paragraph too.\r
-   */\r
-  paraf.cbSize = sizeof(paraf);\r
-  paraf.dwMask = PFM_OFFSET | PFM_STARTINDENT;\r
-  paraf.dxStartIndent = 0;\r
-  paraf.dxOffset = WRAP_INDENT;\r
-  SendMessage(hText, EM_SETPARAFORMAT, 0, (LPARAM) &paraf);\r
-  SendMessage(hText, EM_EXSETSEL, 0, (LPARAM)&sel);\r
-  UpdateICSWidth(hText);\r
-}\r
-\r
-/*---------------------------------------------------------------------------*\\r
- *\r
- * Window Proc for main window\r
- *\r
-\*---------------------------------------------------------------------------*/\r
-\r
-/* Process messages for main window, etc. */\r
-LRESULT CALLBACK\r
-WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)\r
-{\r
-  FARPROC lpProc;\r
-  int wmId;\r
-  char *defName;\r
-  FILE *f;\r
-  UINT number;\r
-  char fileTitle[MSG_SIZ];\r
-  static SnapData sd;\r
-  static int peek=0;\r
-\r
-  switch (message) {\r
-\r
-  case WM_PAINT: /* message: repaint portion of window */\r
-    PaintProc(hwnd);\r
-    break;\r
-\r
-  case WM_ERASEBKGND:\r
-    if (IsIconic(hwnd)) {\r
-      /* Cheat; change the message */\r
-      return (DefWindowProc(hwnd, WM_ICONERASEBKGND, wParam, lParam));\r
-    } else {\r
-      return (DefWindowProc(hwnd, message, wParam, lParam));\r
-    }\r
-    break;\r
-\r
-  case WM_LBUTTONDOWN:\r
-  case WM_MBUTTONDOWN:\r
-  case WM_RBUTTONDOWN:\r
-  case WM_LBUTTONUP:\r
-  case WM_MBUTTONUP:\r
-  case WM_RBUTTONUP:\r
-  case WM_MOUSEMOVE:\r
-  case WM_MOUSEWHEEL:\r
-    MouseEvent(hwnd, message, wParam, lParam);\r
-    break;\r
-\r
-  case WM_KEYUP:\r
-    if((char)wParam == '\b') {\r
-      ForwardEvent(); peek = 0;\r
-    }\r
-\r
-    JAWS_KBUP_NAVIGATION\r
-\r
-    break;\r
-\r
-  case WM_KEYDOWN:\r
-    if((char)wParam == '\b') {\r
-      if(!peek) BackwardEvent(), peek = 1;\r
-    }\r
-\r
-    JAWS_KBDOWN_NAVIGATION\r
-\r
-    break;\r
-\r
-  case WM_CHAR:\r
-    \r
-    JAWS_ALT_INTERCEPT\r
-\r
-    if (appData.icsActive && ((char)wParam == '\r' || (char)wParam > ' ' && !((char)wParam >= '1' && (char)wParam <= '9'))) { \r
-       // [HGM] movenum: for non-zero digits we always do type-in dialog\r
-       HWND h = GetDlgItem(hwndConsole, OPT_ConsoleInput);\r
-       if (IsIconic(hwndConsole)) ShowWindow(hwndConsole, SW_RESTORE);\r
-       SetFocus(h);\r
-       SendMessage(h, message, wParam, lParam);\r
-    } else if(lParam != KF_REPEAT) {\r
-       if (isalpha((char)wParam) || isdigit((char)wParam)) {\r
-               TypeInEvent((char)wParam);\r
-       } else if((char)wParam == 003) CopyGameToClipboard();\r
-        else if((char)wParam == 026) PasteGameOrFENFromClipboard();\r
-    }\r
-\r
-    break;\r
-\r
-  case WM_PALETTECHANGED:\r
-    if (hwnd != (HWND)wParam && !appData.monoMode) {\r
-      int nnew;\r
-      HDC hdc = GetDC(hwndMain);\r
-      SelectPalette(hdc, hPal, TRUE);\r
-      nnew = RealizePalette(hdc);\r
-      if (nnew > 0) {\r
-       paletteChanged = TRUE;\r
-\r
-        InvalidateRect(hwnd, &boardRect, FALSE);\r
-      }\r
-      ReleaseDC(hwnd, hdc);\r
-    }\r
-    break;\r
-\r
-  case WM_QUERYNEWPALETTE:\r
-    if (!appData.monoMode /*&& paletteChanged*/) {\r
-      int nnew;\r
-      HDC hdc = GetDC(hwndMain);\r
-      paletteChanged = FALSE;\r
-      SelectPalette(hdc, hPal, FALSE);\r
-      nnew = RealizePalette(hdc);\r
-      if (nnew > 0) {\r
-       InvalidateRect(hwnd, &boardRect, FALSE);\r
-      }\r
-      ReleaseDC(hwnd, hdc);\r
-      return TRUE;\r
-    }\r
-    return FALSE;\r
-\r
-  case WM_COMMAND: /* message: command from application menu */\r
-    wmId    = LOWORD(wParam);\r
-\r
-    switch (wmId) {\r
-    case IDM_NewGame:\r
-      ResetGameEvent();\r
-      SAY("new game enter a move to play against the computer with white");\r
-      break;\r
-\r
-    case IDM_NewGameFRC:\r
-      if( NewGameFRC() == 0 ) {\r
-        ResetGameEvent();\r
-      }\r
-      break;\r
-\r
-    case IDM_NewVariant:\r
-      NewVariantPopup(hwnd);\r
-      break;\r
-\r
-    case IDM_LoadGame:\r
-      LoadGameDialog(hwnd, _("Load Game from File"));\r
-      break;\r
-\r
-    case IDM_LoadNextGame:\r
-      ReloadGame(1);\r
-      break;\r
-\r
-    case IDM_LoadPrevGame:\r
-      ReloadGame(-1);\r
-      break;\r
-\r
-    case IDM_ReloadGame:\r
-      ReloadGame(0);\r
-      break;\r
-\r
-    case IDM_LoadPosition:\r
-      if (gameMode == AnalyzeMode || gameMode == AnalyzeFile) {\r
-        Reset(FALSE, TRUE);\r
-      }\r
-      number = 1;\r
-      f = OpenFileDialog(hwnd, "rb", "",\r
-                        appData.oldSaveStyle ? "pos" : "fen",\r
-                        POSITION_FILT,\r
-                        _("Load Position from File"), &number, fileTitle, NULL);\r
-      if (f != NULL) {\r
-       LoadPosition(f, number, fileTitle);\r
-      }\r
-      break;\r
-\r
-    case IDM_LoadNextPosition:\r
-      ReloadPosition(1);\r
-      break;\r
-\r
-    case IDM_LoadPrevPosition:\r
-      ReloadPosition(-1);\r
-      break;\r
-\r
-    case IDM_ReloadPosition:\r
-      ReloadPosition(0);\r
-      break;\r
-\r
-    case IDM_SaveGame:\r
-      defName = DefaultFileName(appData.oldSaveStyle ? "gam" : "pgn");\r
-      f = OpenFileDialog(hwnd, "a", defName,\r
-                        appData.oldSaveStyle ? "gam" : "pgn",\r
-                        GAME_FILT,\r
-                        _("Save Game to File"), NULL, fileTitle, NULL);\r
-      if (f != NULL) {\r
-       SaveGame(f, 0, "");\r
-      }\r
-      break;\r
-\r
-    case IDM_SavePosition:\r
-      defName = DefaultFileName(appData.oldSaveStyle ? "pos" : "fen");\r
-      f = OpenFileDialog(hwnd, "a", defName,\r
-                        appData.oldSaveStyle ? "pos" : "fen",\r
-                        POSITION_FILT,\r
-                        _("Save Position to File"), NULL, fileTitle, NULL);\r
-      if (f != NULL) {\r
-       SavePosition(f, 0, "");\r
-      }\r
-      break;\r
-\r
-    case IDM_SaveDiagram:\r
-      defName = "diagram";\r
-      f = OpenFileDialog(hwnd, "wb", defName,\r
-                        "bmp",\r
-                        DIAGRAM_FILT,\r
-                        _("Save Diagram to File"), NULL, fileTitle, NULL);\r
-      if (f != NULL) {\r
-       SaveDiagram(f);\r
-      }\r
-      break;\r
-\r
-    case IDM_SaveSelected:\r
-      f = OpenFileDialog(hwnd, "a", "",\r
-                        "pgn",\r
-                        GAME_FILT,\r
-                        _("Save Game to File"), NULL, fileTitle, NULL);\r
-      if (f != NULL) {\r
-       SaveSelected(f, 0, "");\r
-      }\r
-      break;\r
-\r
-    case IDM_CreateBook:\r
-      CreateBookEvent();\r
-      break;\r
-\r
-    case IDM_CopyGame:\r
-      CopyGameToClipboard();\r
-      break;\r
-\r
-    case IDM_PasteGame:\r
-      PasteGameFromClipboard();\r
-      break;\r
-\r
-    case IDM_CopyGameListToClipboard:\r
-      CopyGameListToClipboard();\r
-      break;\r
-\r
-    /* [AS] Autodetect FEN or PGN data */\r
-    case IDM_PasteAny:\r
-      PasteGameOrFENFromClipboard();\r
-      break;\r
-\r
-    /* [AS] Move history */\r
-    case IDM_ShowMoveHistory:\r
-        if( MoveHistoryIsUp() ) {\r
-            MoveHistoryPopDown();\r
-        }\r
-        else {\r
-            MoveHistoryPopUp();\r
-        }\r
-        break;\r
-\r
-    /* [AS] Eval graph */\r
-    case IDM_ShowEvalGraph:\r
-        if( EvalGraphIsUp() ) {\r
-            EvalGraphPopDown();\r
-        }\r
-        else {\r
-            EvalGraphPopUp();\r
-           SetFocus(hwndMain);\r
-        }\r
-        break;\r
-\r
-    /* [AS] Engine output */\r
-    case IDM_ShowEngineOutput:\r
-        if( EngineOutputIsUp() ) {\r
-            EngineOutputPopDown();\r
-        }\r
-        else {\r
-            EngineOutputPopUp();\r
-        }\r
-        break;\r
-\r
-    /* [AS] User adjudication */\r
-    case IDM_UserAdjudication_White:\r
-        UserAdjudicationEvent( +1 );\r
-        break;\r
-\r
-    case IDM_UserAdjudication_Black:\r
-        UserAdjudicationEvent( -1 );\r
-        break;\r
-\r
-    case IDM_UserAdjudication_Draw:\r
-        UserAdjudicationEvent( 0 );\r
-        break;\r
-\r
-    /* [AS] Game list options dialog */\r
-    case IDM_GameListOptions:\r
-      GameListOptions();\r
-      break;\r
-\r
-    case IDM_NewChat:\r
-      ChatPopUp(NULL);\r
-      break;\r
-\r
-    case IDM_CopyPosition:\r
-      CopyFENToClipboard();\r
-      break;\r
-\r
-    case IDM_PastePosition:\r
-      PasteFENFromClipboard();\r
-      break;\r
-\r
-    case IDM_MailMove:\r
-      MailMoveEvent();\r
-      break;\r
-\r
-    case IDM_ReloadCMailMsg:\r
-      Reset(TRUE, TRUE);\r
-      ReloadCmailMsgEvent(FALSE);\r
-      break;\r
-\r
-    case IDM_Minimize:\r
-      ShowWindow(hwnd, SW_MINIMIZE);\r
-      break;\r
-\r
-    case IDM_Exit:\r
-      ExitEvent(0);\r
-      break;\r
-\r
-    case IDM_MachineWhite:\r
-      MachineWhiteEvent();\r
-      /*\r
-       * refresh the tags dialog only if it's visible\r
-       */\r
-      if (gameMode == MachinePlaysWhite && IsWindowVisible(editTagsDialog)) {\r
-         char *tags;\r
-         tags = PGNTags(&gameInfo);\r
-         TagsPopUp(tags, CmailMsg());\r
-         free(tags);\r
-      }\r
-      SAY("computer starts playing white");\r
-      break;\r
-\r
-    case IDM_MachineBlack:\r
-      MachineBlackEvent();\r
-      /*\r
-       * refresh the tags dialog only if it's visible\r
-       */\r
-      if (gameMode == MachinePlaysBlack && IsWindowVisible(editTagsDialog)) {\r
-         char *tags;\r
-         tags = PGNTags(&gameInfo);\r
-         TagsPopUp(tags, CmailMsg());\r
-         free(tags);\r
-      }\r
-      SAY("computer starts playing black");\r
-      break;\r
-\r
-    case IDM_Match: // [HGM] match: flows into next case, after setting Match Mode and nr of Games\r
-      if(matchMode) EnableMenuItem(GetMenu(hwndMain), IDM_Match, MF_BYCOMMAND|MF_GRAYED);\r
-      MatchEvent(2); // distinguish from command-line-triggered case (matchMode=1)\r
-      break;\r
-\r
-    case IDM_TwoMachines:\r
-      TwoMachinesEvent();\r
-      /*\r
-\r
-       * refresh the tags dialog only if it's visible\r
-       */\r
-      if (gameMode == TwoMachinesPlay && IsWindowVisible(editTagsDialog)) {\r
-         char *tags;\r
-         tags = PGNTags(&gameInfo);\r
-         TagsPopUp(tags, CmailMsg());\r
-         free(tags);\r
-      }\r
-      SAY("computer starts playing both sides");\r
-      break;\r
-\r
-    case IDM_AnalysisMode:\r
-      if(AnalyzeModeEvent()) {\r
-       SAY("analyzing current position");\r
-      }\r
-      break;\r
-\r
-    case IDM_AnalyzeFile:\r
-      AnalyzeFileEvent();\r
-      break;\r
-\r
-    case IDM_IcsClient:\r
-      IcsClientEvent();\r
-      break;\r
-\r
-    case IDM_EditGame:\r
-    case IDM_EditGame2:\r
-      EditGameEvent();\r
-      SAY("edit game");\r
-      break;\r
-\r
-    case IDM_EditPosition:\r
-    case IDM_EditPosition2:\r
-      EditPositionEvent();\r
-      SAY("enter a FEN string or setup a position on the board using the control R pop up menu");\r
-      break;\r
-\r
-    case IDM_Training:\r
-      TrainingEvent();\r
-      break;\r
-\r
-    case IDM_ShowGameList:\r
-      ShowGameListProc();\r
-      break;\r
-\r
-    case IDM_EditProgs1:\r
-      EditTagsPopUp(firstChessProgramNames, &firstChessProgramNames);\r
-      break;\r
-\r
-    case IDM_LoadProg1:\r
-     LoadEnginePopUp(hwndMain, 0);\r
-      break;\r
-\r
-    case IDM_LoadProg2:\r
-     LoadEnginePopUp(hwndMain, 1);\r
-      break;\r
-\r
-    case IDM_EditServers:\r
-      EditTagsPopUp(icsNames, &icsNames);\r
-      break;\r
-\r
-    case IDM_EditTags:\r
-    case IDM_Tags:\r
-      EditTagsProc();\r
-      break;\r
-\r
-    case IDM_EditBook:\r
-      EditBookEvent();\r
-      break;\r
-\r
-    case IDM_EditComment:\r
-    case IDM_Comment:\r
-      if (commentUp && editComment) {\r
-       CommentPopDown();\r
-      } else {\r
-       EditCommentEvent();\r
-      }\r
-      break;\r
-\r
-    case IDM_Pause:\r
-      PauseEvent();\r
-      break;\r
-\r
-    case IDM_Accept:\r
-      AcceptEvent();\r
-      break;\r
-\r
-    case IDM_Decline:\r
-      DeclineEvent();\r
-      break;\r
-\r
-    case IDM_Rematch:\r
-\r
-      RematchEvent();\r
-      break;\r
-\r
-    case IDM_CallFlag:\r
-      CallFlagEvent();\r
-      break;\r
-\r
-    case IDM_Draw:\r
-      DrawEvent();\r
-      break;\r
-\r
-    case IDM_Adjourn:\r
-      AdjournEvent();\r
-      break;\r
-\r
-    case IDM_Abort:\r
-      AbortEvent();\r
-      break;\r
-\r
-    case IDM_Resign:\r
-      ResignEvent();\r
-      break;\r
-\r
-    case IDM_StopObserving:\r
-      StopObservingEvent();\r
-      break;\r
-\r
-    case IDM_StopExamining:\r
-      StopExaminingEvent();\r
-      break;\r
-\r
-    case IDM_Upload:\r
-      UploadGameEvent();\r
-      break;\r
-\r
-    case IDM_TypeInMove:\r
-      TypeInEvent('\000');\r
-      break;\r
-\r
-    case IDM_TypeInName:\r
-      PopUpNameDialog('\000');\r
-      break;\r
-\r
-    case IDM_Backward:\r
-      BackwardEvent();\r
-      SetFocus(hwndMain);\r
-      break;\r
-\r
-    JAWS_MENU_ITEMS\r
-\r
-    case IDM_Forward:\r
-      ForwardEvent();\r
-      SetFocus(hwndMain);\r
-      break;\r
-\r
-    case IDM_ToStart:\r
-      ToStartEvent();\r
-      SetFocus(hwndMain);\r
-      break;\r
-\r
-    case IDM_ToEnd:\r
-      ToEndEvent();\r
-      SetFocus(hwndMain);\r
-      break;\r
-\r
-    case OPT_GameListNext: // [HGM] forward these two accelerators to Game List\r
-    case OPT_GameListPrev:\r
-      if(gameListDialog) SendMessage(gameListDialog, WM_COMMAND, wmId, 0);\r
-      break;\r
-\r
-    case IDM_Revert:\r
-      RevertEvent(FALSE);\r
-      break;\r
-\r
-    case IDM_Annotate: // [HGM] vari: revert with annotation\r
-      RevertEvent(TRUE);\r
-      break;\r
-\r
-    case IDM_TruncateGame:\r
-      TruncateGameEvent();\r
-      break;\r
-\r
-    case IDM_MoveNow:\r
-      MoveNowEvent();\r
-      break;\r
-\r
-    case IDM_RetractMove:\r
-      RetractMoveEvent();\r
-      break;\r
-\r
-    case IDM_FlipView:\r
-      flipView = !flipView;\r
-      DrawPosition(FALSE, NULL);\r
-      break;\r
-\r
-    case IDM_FlipClock:\r
-      flipClock = !flipClock;\r
-      DisplayBothClocks();\r
-      DisplayLogos();\r
-      break;\r
-\r
-    case IDM_MuteSounds:\r
-      mute = !mute; // [HGM] mute: keep track of global muting variable\r
-      CheckMenuItem(GetMenu(hwndMain),IDM_MuteSounds, \r
-                               MF_BYCOMMAND|(mute?MF_CHECKED:MF_UNCHECKED));\r
-      break;\r
-\r
-    case IDM_GeneralOptions:\r
-      GeneralOptionsPopup(hwnd);\r
-      DrawPosition(TRUE, NULL);\r
-      break;\r
-\r
-    case IDM_BoardOptions:\r
-      BoardOptionsPopup(hwnd);\r
-      break;\r
-\r
-    case IDM_ThemeOptions:\r
-      ThemeOptionsPopup(hwnd);\r
-      break;\r
-\r
-    case IDM_EnginePlayOptions:\r
-      EnginePlayOptionsPopup(hwnd);\r
-      break;\r
-\r
-    case IDM_Engine1Options:\r
-      EngineOptionsPopup(hwnd, &first);\r
-      break;\r
-\r
-    case IDM_Engine2Options:\r
-      savedHwnd = hwnd;\r
-      if(WaitForEngine(&second, SettingsMenuIfReady)) break;\r
-      EngineOptionsPopup(hwnd, &second);\r
-      break;\r
-\r
-    case IDM_OptionsUCI:\r
-      UciOptionsPopup(hwnd);\r
-      break;\r
-\r
-    case IDM_Tourney:\r
-      TourneyPopup(hwnd);\r
-      break;\r
-\r
-    case IDM_IcsOptions:\r
-      IcsOptionsPopup(hwnd);\r
-      break;\r
-\r
-    case IDM_Fonts:\r
-      FontsOptionsPopup(hwnd);\r
-      break;\r
-\r
-    case IDM_Sounds:\r
-      SoundOptionsPopup(hwnd);\r
-      break;\r
-\r
-    case IDM_CommPort:\r
-      CommPortOptionsPopup(hwnd);\r
-      break;\r
-\r
-    case IDM_LoadOptions:\r
-      LoadOptionsPopup(hwnd);\r
-      break;\r
-\r
-    case IDM_SaveOptions:\r
-      SaveOptionsPopup(hwnd);\r
-      break;\r
-\r
-    case IDM_TimeControl:\r
-      TimeControlOptionsPopup(hwnd);\r
-      break;\r
-\r
-    case IDM_SaveSettings:\r
-      SaveSettings(settingsFileName);\r
-      break;\r
-\r
-    case IDM_SaveSettingsOnExit:\r
-      saveSettingsOnExit = !saveSettingsOnExit;\r
-      (void) CheckMenuItem(GetMenu(hwndMain), IDM_SaveSettingsOnExit,\r
-                          MF_BYCOMMAND|(saveSettingsOnExit ?\r
-                                        MF_CHECKED : MF_UNCHECKED));\r
-      break;\r
-\r
-    case IDM_Hint:\r
-      HintEvent();\r
-      break;\r
-\r
-    case IDM_Book:\r
-      BookEvent();\r
-      break;\r
-\r
-    case IDM_AboutGame:\r
-      AboutGameEvent();\r
-      break;\r
-\r
-    case IDM_Debug:\r
-      appData.debugMode = !appData.debugMode;\r
-      if (appData.debugMode) {\r
-       char dir[MSG_SIZ];\r
-       GetCurrentDirectory(MSG_SIZ, dir);\r
-       SetCurrentDirectory(installDir);\r
-       debugFP = fopen(appData.nameOfDebugFile, "w");\r
-        SetCurrentDirectory(dir);\r
-        setbuf(debugFP, NULL);\r
-      } else {\r
-       fclose(debugFP);\r
-        debugFP = NULL;\r
-      }\r
-      break;\r
-\r
-    case IDM_HELPCONTENTS:\r
-      if (!MyHelp (hwnd, "winboard.hlp", HELP_KEY,(DWORD)(LPSTR)"CONTENTS") &&\r
-         !HtmlHelp(hwnd, "winboard.chm", 0, 0) ) {\r
-         MessageBox (GetFocus(),\r
-                   _("Unable to activate help"),\r
-                   szAppName, MB_SYSTEMMODAL|MB_OK|MB_ICONHAND);\r
-      }\r
-      break;\r
-\r
-    case IDM_HELPSEARCH:\r
-        if (!MyHelp (hwnd, "winboard.hlp", HELP_PARTIALKEY, (DWORD)(LPSTR)"") &&\r
-           !HtmlHelp(hwnd, "winboard.chm", 0, 0)       ) {\r
-       MessageBox (GetFocus(),\r
-                   _("Unable to activate help"),\r
-                   szAppName, MB_SYSTEMMODAL|MB_OK|MB_ICONHAND);\r
-      }\r
-      break;\r
-\r
-    case IDM_HELPHELP:\r
-      if(!WinHelp(hwnd, (LPSTR)NULL, HELP_HELPONHELP, 0)) {\r
-       MessageBox (GetFocus(),\r
-                   _("Unable to activate help"),\r
-                   szAppName, MB_SYSTEMMODAL|MB_OK|MB_ICONHAND);\r
-      }\r
-      break;\r
-\r
-    case IDM_ABOUT:\r
-      lpProc = MakeProcInstance((FARPROC)About, hInst);\r
-      DialogBox(hInst, \r
-       (gameInfo.event && strcmp(gameInfo.event, "Easter Egg Hunt") == 0) ?\r
-       "AboutBox2" : "AboutBox", hwnd, (DLGPROC)lpProc);\r
-      FreeProcInstance(lpProc);\r
-      break;\r
-\r
-    case IDM_DirectCommand1:\r
-      AskQuestionEvent(_("Direct Command"),\r
-                      _("Send to chess program:"), "", "1");\r
-      break;\r
-    case IDM_DirectCommand2:\r
-      AskQuestionEvent(_("Direct Command"),\r
-                      _("Send to second chess program:"), "", "2");\r
-      break;\r
-\r
-    case EP_WhitePawn:\r
-      EditPositionMenuEvent(WhitePawn, fromX, fromY);\r
-      fromX = fromY = -1;\r
-      break;\r
-\r
-    case EP_WhiteKnight:\r
-      EditPositionMenuEvent(WhiteKnight, fromX, fromY);\r
-      fromX = fromY = -1;\r
-      break;\r
-\r
-    case EP_WhiteBishop:\r
-      EditPositionMenuEvent(WhiteBishop, fromX, fromY);\r
-      fromX = fromY = -1;\r
-      break;\r
-\r
-    case EP_WhiteRook:\r
-      EditPositionMenuEvent(WhiteRook, fromX, fromY);\r
-      fromX = fromY = -1;\r
-      break;\r
-\r
-    case EP_WhiteQueen:\r
-      EditPositionMenuEvent(WhiteQueen, fromX, fromY);\r
-      fromX = fromY = -1;\r
-      break;\r
-\r
-    case EP_WhiteFerz:\r
-      EditPositionMenuEvent(WhiteFerz, fromX, fromY);\r
-      fromX = fromY = -1;\r
-      break;\r
-\r
-    case EP_WhiteWazir:\r
-      EditPositionMenuEvent(WhiteWazir, fromX, fromY);\r
-      fromX = fromY = -1;\r
-      break;\r
-\r
-    case EP_WhiteAlfil:\r
-      EditPositionMenuEvent(WhiteAlfil, fromX, fromY);\r
-      fromX = fromY = -1;\r
-      break;\r
-\r
-    case EP_WhiteCannon:\r
-      EditPositionMenuEvent(WhiteCannon, fromX, fromY);\r
-      fromX = fromY = -1;\r
-      break;\r
-\r
-    case EP_WhiteCardinal:\r
-      EditPositionMenuEvent(WhiteAngel, fromX, fromY);\r
-      fromX = fromY = -1;\r
-      break;\r
-\r
-    case EP_WhiteMarshall:\r
-      EditPositionMenuEvent(WhiteMarshall, fromX, fromY);\r
-      fromX = fromY = -1;\r
-      break;\r
-\r
-    case EP_WhiteKing:\r
-      EditPositionMenuEvent(WhiteKing, fromX, fromY);\r
-      fromX = fromY = -1;\r
-      break;\r
-\r
-    case EP_BlackPawn:\r
-      EditPositionMenuEvent(BlackPawn, fromX, fromY);\r
-      fromX = fromY = -1;\r
-      break;\r
-\r
-    case EP_BlackKnight:\r
-      EditPositionMenuEvent(BlackKnight, fromX, fromY);\r
-      fromX = fromY = -1;\r
-      break;\r
-\r
-    case EP_BlackBishop:\r
-      EditPositionMenuEvent(BlackBishop, fromX, fromY);\r
-      fromX = fromY = -1;\r
-      break;\r
-\r
-    case EP_BlackRook:\r
-      EditPositionMenuEvent(BlackRook, fromX, fromY);\r
-      fromX = fromY = -1;\r
-      break;\r
-\r
-    case EP_BlackQueen:\r
-      EditPositionMenuEvent(BlackQueen, fromX, fromY);\r
-      fromX = fromY = -1;\r
-      break;\r
-\r
-    case EP_BlackFerz:\r
-      EditPositionMenuEvent(BlackFerz, fromX, fromY);\r
-      fromX = fromY = -1;\r
-      break;\r
-\r
-    case EP_BlackWazir:\r
-      EditPositionMenuEvent(BlackWazir, fromX, fromY);\r
-      fromX = fromY = -1;\r
-      break;\r
-\r
-    case EP_BlackAlfil:\r
-      EditPositionMenuEvent(BlackAlfil, fromX, fromY);\r
-      fromX = fromY = -1;\r
-      break;\r
-\r
-    case EP_BlackCannon:\r
-      EditPositionMenuEvent(BlackCannon, fromX, fromY);\r
-      fromX = fromY = -1;\r
-      break;\r
-\r
-    case EP_BlackCardinal:\r
-      EditPositionMenuEvent(BlackAngel, fromX, fromY);\r
-      fromX = fromY = -1;\r
-      break;\r
-\r
-    case EP_BlackMarshall:\r
-      EditPositionMenuEvent(BlackMarshall, fromX, fromY);\r
-      fromX = fromY = -1;\r
-      break;\r
-\r
-    case EP_BlackKing:\r
-      EditPositionMenuEvent(BlackKing, fromX, fromY);\r
-      fromX = fromY = -1;\r
-      break;\r
-\r
-    case EP_EmptySquare:\r
-      EditPositionMenuEvent(EmptySquare, fromX, fromY);\r
-      fromX = fromY = -1;\r
-      break;\r
-\r
-    case EP_ClearBoard:\r
-      EditPositionMenuEvent(ClearBoard, fromX, fromY);\r
-      fromX = fromY = -1;\r
-      break;\r
-\r
-    case EP_White:\r
-      EditPositionMenuEvent(WhitePlay, fromX, fromY);\r
-      fromX = fromY = -1;\r
-      break;\r
-\r
-    case EP_Black:\r
-      EditPositionMenuEvent(BlackPlay, fromX, fromY);\r
-      fromX = fromY = -1;\r
-      break;\r
-\r
-    case EP_Promote:\r
-      EditPositionMenuEvent(PromotePiece, fromX, fromY);\r
-      fromX = fromY = -1;\r
-      break;\r
-\r
-    case EP_Demote:\r
-      EditPositionMenuEvent(DemotePiece, fromX, fromY);\r
-      fromX = fromY = -1;\r
-      break;\r
-\r
-    case DP_Pawn:\r
-      DropMenuEvent(WhitePawn, fromX, fromY);\r
-      fromX = fromY = -1;\r
-      break;\r
-\r
-    case DP_Knight:\r
-      DropMenuEvent(WhiteKnight, fromX, fromY);\r
-      fromX = fromY = -1;\r
-      break;\r
-\r
-    case DP_Bishop:\r
-      DropMenuEvent(WhiteBishop, fromX, fromY);\r
-      fromX = fromY = -1;\r
-      break;\r
-\r
-    case DP_Rook:\r
-      DropMenuEvent(WhiteRook, fromX, fromY);\r
-      fromX = fromY = -1;\r
-      break;\r
-\r
-    case DP_Queen:\r
-      DropMenuEvent(WhiteQueen, fromX, fromY);\r
-      fromX = fromY = -1;\r
-      break;\r
-\r
-    case IDM_English:\r
-      barbaric = 0; appData.language = "";\r
-      TranslateMenus(0);\r
-      CheckMenuItem(GetMenu(hwndMain), lastChecked, MF_BYCOMMAND|MF_UNCHECKED);\r
-      CheckMenuItem(GetMenu(hwndMain), IDM_English, MF_BYCOMMAND|MF_CHECKED);\r
-      lastChecked = wmId;\r
-      break;\r
-\r
-    default:\r
-      if(wmId >= IDM_RecentEngines && wmId < IDM_RecentEngines + appData.recentEngines)\r
-          RecentEngineEvent(wmId - IDM_RecentEngines);\r
-      else\r
-      if(wmId > IDM_English && wmId < IDM_English+20) {\r
-          LoadLanguageFile(languageFile[wmId - IDM_English - 1]);\r
-          TranslateMenus(0);\r
-          CheckMenuItem(GetMenu(hwndMain), lastChecked, MF_BYCOMMAND|MF_UNCHECKED);\r
-          CheckMenuItem(GetMenu(hwndMain), wmId, MF_BYCOMMAND|MF_CHECKED);\r
-          lastChecked = wmId;\r
-          break;\r
-      }\r
-      return (DefWindowProc(hwnd, message, wParam, lParam));\r
-    }\r
-    break;\r
-\r
-  case WM_TIMER:\r
-    switch (wParam) {\r
-    case CLOCK_TIMER_ID:\r
-      KillTimer(hwnd, clockTimerEvent);  /* Simulate one-shot timer as in X */\r
-      clockTimerEvent = 0;\r
-      DecrementClocks(); /* call into back end */\r
-      break;\r
-    case LOAD_GAME_TIMER_ID:\r
-      KillTimer(hwnd, loadGameTimerEvent); /* Simulate one-shot timer as in X*/\r
-      loadGameTimerEvent = 0;\r
-      AutoPlayGameLoop(); /* call into back end */\r
-      break;\r
-    case ANALYSIS_TIMER_ID:\r
-      if ((gameMode == AnalyzeMode || gameMode == AnalyzeFile\r
-                 || appData.icsEngineAnalyze) && appData.periodicUpdates) {\r
-       AnalysisPeriodicEvent(0);\r
-      } else {\r
-       KillTimer(hwnd, analysisTimerEvent);\r
-       analysisTimerEvent = 0;\r
-      }\r
-      break;\r
-    case DELAYED_TIMER_ID:\r
-      KillTimer(hwnd, delayedTimerEvent);\r
-      delayedTimerEvent = 0;\r
-      delayedTimerCallback();\r
-      break;\r
-    }\r
-    break;\r
-\r
-  case WM_USER_Input:\r
-    InputEvent(hwnd, message, wParam, lParam);\r
-    break;\r
-\r
-  /* [AS] Also move "attached" child windows */\r
-  case WM_WINDOWPOSCHANGING:\r
-\r
-    if( hwnd == hwndMain && appData.useStickyWindows ) {\r
-        LPWINDOWPOS lpwp = (LPWINDOWPOS) lParam;\r
-\r
-        if( ((lpwp->flags & SWP_NOMOVE) == 0) /*&& ((lpwp->flags & SWP_NOSIZE) != 0)*/ ) { // [HGM] in Win8 size always accompanies move?\r
-            /* Window is moving */\r
-            RECT rcMain;\r
-\r
-//            GetWindowRect( hwnd, &rcMain ); //[HGM] sticky: in XP this returned new position, not old\r
-           rcMain.left   = wpMain.x;           //              replace by these 4 lines to reconstruct old rect\r
-           rcMain.right  = wpMain.x + wpMain.width;\r
-           rcMain.top    = wpMain.y;\r
-           rcMain.bottom = wpMain.y + wpMain.height;\r
-            \r
-            ReattachAfterMove( &rcMain, lpwp->x, lpwp->y, moveHistoryDialog, &wpMoveHistory );\r
-            ReattachAfterMove( &rcMain, lpwp->x, lpwp->y, evalGraphDialog, &wpEvalGraph );\r
-            ReattachAfterMove( &rcMain, lpwp->x, lpwp->y, engineOutputDialog, &wpEngineOutput );\r
-            ReattachAfterMove( &rcMain, lpwp->x, lpwp->y, gameListDialog, &wpGameList );\r
-            ReattachAfterMove( &rcMain, lpwp->x, lpwp->y, hwndConsole, &wpConsole );\r
-           wpMain.x = lpwp->x;\r
-            wpMain.y = lpwp->y;\r
-\r
-        }\r
-    }\r
-    break;\r
-\r
-  /* [AS] Snapping */\r
-  case WM_ENTERSIZEMOVE:\r
-    if(appData.debugMode) { fprintf(debugFP, "size-move\n"); }\r
-    if (hwnd == hwndMain) {\r
-      doingSizing = TRUE;\r
-      lastSizing = 0;\r
-    }\r
-    return OnEnterSizeMove( &sd, hwnd, wParam, lParam );\r
-    break;\r
-\r
-  case WM_SIZING:\r
-    if(appData.debugMode) { fprintf(debugFP, "sizing\n"); }\r
-    if (hwnd == hwndMain) {\r
-      lastSizing = wParam;\r
-    }\r
-    break;\r
-\r
-  case WM_MOVING:\r
-    if(appData.debugMode) { fprintf(debugFP, "moving\n"); }\r
-      return OnMoving( &sd, hwnd, wParam, lParam );\r
-\r
-  case WM_EXITSIZEMOVE:\r
-    if(appData.debugMode) { fprintf(debugFP, "exit size-move, size = %d\n", squareSize); }\r
-    if (hwnd == hwndMain) {\r
-      RECT client;\r
-      doingSizing = FALSE;\r
-      InvalidateRect(hwnd, &boardRect, FALSE);\r
-      GetClientRect(hwnd, &client);\r
-      ResizeBoard(client.right, client.bottom, lastSizing);\r
-      lastSizing = 0;\r
-      if(appData.debugMode) { fprintf(debugFP, "square size = %d\n", squareSize); }\r
-    }\r
-    return OnExitSizeMove( &sd, hwnd, wParam, lParam );\r
-    break;\r
-\r
-  case WM_DESTROY: /* message: window being destroyed */\r
-    PostQuitMessage(0);\r
-    break;\r
-\r
-  case WM_CLOSE:\r
-    if (hwnd == hwndMain) {\r
-      ExitEvent(0);\r
-    }\r
-    break;\r
-\r
-  default:     /* Passes it on if unprocessed */\r
-    return (DefWindowProc(hwnd, message, wParam, lParam));\r
-  }\r
-\r
-\r
-  return 0;\r
-}\r
-\r
-/*---------------------------------------------------------------------------*\\r
- *\r
- * Misc utility routines\r
- *\r
-\*---------------------------------------------------------------------------*/\r
-\r
-/*\r
- * Decent random number generator, at least not as bad as Windows\r
- * standard rand, which returns a value in the range 0 to 0x7fff.\r
- */\r
-unsigned int randstate;\r
-\r
-int\r
-myrandom(void)\r
-{\r
-  randstate = randstate * 1664525 + 1013904223;\r
-  return (int) randstate & 0x7fffffff;\r
-}\r
-\r
-void\r
-mysrandom(unsigned int seed)\r
-{\r
-  randstate = seed;\r
-}\r
-\r
-\r
-/* \r
- * returns TRUE if user selects a different color, FALSE otherwise \r
- */\r
-\r
-BOOL\r
-ChangeColor(HWND hwnd, COLORREF *which)\r
-{\r
-  static BOOL firstTime = TRUE;\r
-  static DWORD customColors[16];\r
-  CHOOSECOLOR cc;\r
-  COLORREF newcolor;\r
-  int i;\r
-  ColorClass ccl;\r
-\r
-  if (firstTime) {\r
-    /* Make initial colors in use available as custom colors */\r
-    /* Should we put the compiled-in defaults here instead? */\r
-    i = 0;\r
-    customColors[i++] = lightSquareColor & 0xffffff;\r
-    customColors[i++] = darkSquareColor & 0xffffff;\r
-    customColors[i++] = whitePieceColor & 0xffffff;\r
-    customColors[i++] = blackPieceColor & 0xffffff;\r
-    customColors[i++] = highlightSquareColor & 0xffffff;\r
-    customColors[i++] = premoveHighlightColor & 0xffffff;\r
-\r
-    for (ccl = (ColorClass) 0; ccl < NColorClasses && i < 16; ccl++) {\r
-      customColors[i++] = textAttribs[ccl].color;\r
-    }\r
-    while (i < 16) customColors[i++] = RGB(255, 255, 255);\r
-    firstTime = FALSE;\r
-  }\r
-\r
-  cc.lStructSize = sizeof(cc);\r
-  cc.hwndOwner = hwnd;\r
-  cc.hInstance = NULL;\r
-  cc.rgbResult = (DWORD) (*which & 0xffffff);\r
-  cc.lpCustColors = (LPDWORD) customColors;\r
-  cc.Flags = CC_RGBINIT|CC_FULLOPEN;\r
-\r
-  if (!ChooseColor(&cc)) return FALSE;\r
-\r
-  newcolor = (COLORREF) (0x2000000 | cc.rgbResult);\r
-  if (newcolor == *which) return FALSE;\r
-  *which = newcolor;\r
-  return TRUE;\r
-\r
-  /*\r
-  InitDrawingColors();\r
-  InvalidateRect(hwnd, &boardRect, FALSE);\r
-  */\r
-}\r
-\r
-BOOLEAN\r
-MyLoadSound(MySound *ms)\r
-{\r
-  BOOL ok = FALSE;\r
-  struct stat st;\r
-  FILE *f;\r
-\r
-  if (ms->data && ms->flag) free(ms->data);\r
-  ms->data = NULL;\r
-\r
-  switch (ms->name[0]) {\r
-  case NULLCHAR:\r
-    /* Silence */\r
-    ok = TRUE;\r
-    break;\r
-  case '$':\r
-    /* System sound from Control Panel.  Don't preload here. */\r
-    ok = TRUE;\r
-    break;\r
-  case '!':\r
-    if (ms->name[1] == NULLCHAR) {\r
-      /* "!" alone = silence */\r
-      ok = TRUE;\r
-    } else {\r
-      /* Builtin wave resource.  Error if not found. */\r
-      HANDLE h = FindResource(hInst, ms->name + 1, "WAVE");\r
-      if (h == NULL) break;\r
-      ms->data = (void *)LoadResource(hInst, h);\r
-      ms->flag = 0; // not maloced, so cannot be freed!\r
-      if (h == NULL) break;\r
-      ok = TRUE;\r
-    }\r
-    break;\r
-  default:\r
-    /* .wav file.  Error if not found. */\r
-    f = fopen(ms->name, "rb");\r
-    if (f == NULL) break;\r
-    if (fstat(fileno(f), &st) < 0) break;\r
-    ms->data = malloc(st.st_size);\r
-    ms->flag = 1;\r
-    if (fread(ms->data, st.st_size, 1, f) < 1) break;\r
-    fclose(f);\r
-    ok = TRUE;\r
-    break;\r
-  }\r
-  if (!ok) {\r
-    char buf[MSG_SIZ];\r
-      snprintf(buf, MSG_SIZ, _("Error loading sound %s"), ms->name);\r
-    DisplayError(buf, GetLastError());\r
-  }\r
-  return ok;\r
-}\r
-\r
-BOOLEAN\r
-MyPlaySound(MySound *ms)\r
-{\r
-  BOOLEAN ok = FALSE;\r
-\r
-  if(mute) return TRUE; // [HGM] mute: suppress all sound play when muted\r
-  switch (ms->name[0]) {\r
-  case NULLCHAR:\r
-       if(appData.debugMode) fprintf(debugFP, "silence\n");\r
-    /* Silence */\r
-    ok = TRUE;\r
-    break;\r
-  case '$':\r
-    /* System sound from Control Panel (deprecated feature).\r
-       "$" alone or an unset sound name gets default beep (still in use). */\r
-    if (ms->name[1]) {\r
-      ok = PlaySound(ms->name + 1, NULL, SND_ALIAS|SND_ASYNC);\r
-    }\r
-    if (!ok) ok = MessageBeep(MB_OK);\r
-    break; \r
-  case '!':\r
-    /* Builtin wave resource, or "!" alone for silence */\r
-    if (ms->name[1]) {\r
-      if (ms->data == NULL) return FALSE;\r
-      ok = PlaySound(ms->data, NULL, SND_MEMORY|SND_ASYNC);\r
-    } else {\r
-      ok = TRUE;\r
-    }\r
-    break;\r
-  default:\r
-    /* .wav file.  Error if not found. */\r
-    if (ms->data == NULL) return FALSE;\r
-    ok = PlaySound(ms->data, NULL, SND_MEMORY|SND_ASYNC);\r
-    break;\r
-  }\r
-  /* Don't print an error: this can happen innocently if the sound driver\r
-     is busy; for instance, if another instance of WinBoard is playing\r
-     a sound at about the same time. */\r
-  return ok;\r
-}\r
-\r
-\r
-LRESULT CALLBACK\r
-OldOpenFileHook(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
-{\r
-  BOOL ok;\r
-  OPENFILENAME *ofn;\r
-  static UINT *number; /* gross that this is static */\r
-\r
-  switch (message) {\r
-  case WM_INITDIALOG: /* message: initialize dialog box */\r
-    /* Center the dialog over the application window */\r
-    ofn = (OPENFILENAME *) lParam;\r
-    if (ofn->Flags & OFN_ENABLETEMPLATE) {\r
-      number = (UINT *) ofn->lCustData;\r
-      SendMessage(GetDlgItem(hDlg, edt2), WM_SETTEXT, 0, (LPARAM) "");\r
-    } else {\r
-      number = NULL;\r
-    }\r
-    CenterWindow (hDlg, GetWindow (hDlg, GW_OWNER));\r
-    Translate(hDlg, 1536);\r
-    return FALSE;  /* Allow for further processing */\r
-\r
-  case WM_COMMAND:\r
-    if ((LOWORD(wParam) == IDOK) && (number != NULL)) {\r
-      *number = GetDlgItemInt(hDlg, OPT_IndexNumberOld, &ok, FALSE);\r
-    }\r
-    return FALSE;  /* Allow for further processing */\r
-  }\r
-  return FALSE;\r
-}\r
-\r
-UINT APIENTRY\r
-OpenFileHook(HWND hdlg, UINT uiMsg, WPARAM wParam, LPARAM lParam)\r
-{\r
-  static UINT *number;\r
-  OPENFILENAME *ofname;\r
-  OFNOTIFY *ofnot;\r
-  switch (uiMsg) {\r
-  case WM_INITDIALOG:\r
-    Translate(hdlg, DLG_IndexNumber);\r
-    ofname = (OPENFILENAME *)lParam;\r
-    number = (UINT *)(ofname->lCustData);\r
-    break;\r
-  case WM_NOTIFY:\r
-    ofnot = (OFNOTIFY *)lParam;\r
-    if (ofnot->hdr.code == CDN_FILEOK) {\r
-      *number = GetDlgItemInt(hdlg, OPT_IndexNumber, NULL, FALSE);\r
-    }\r
-    break;\r
-  }\r
-  return 0;\r
-}\r
-\r
-\r
-FILE *\r
-OpenFileDialog(HWND hwnd, char *write, char *defName, char *defExt, // [HGM] diag: type of 'write' now string\r
-              char *nameFilt, char *dlgTitle, UINT *number,\r
-              char fileTitle[MSG_SIZ], char fileName[MSG_SIZ])\r
-{\r
-  OPENFILENAME openFileName;\r
-  char buf1[MSG_SIZ];\r
-  FILE *f;\r
-\r
-  if (fileName == NULL) fileName = buf1;\r
-  if (defName == NULL) {\r
-    safeStrCpy(fileName, "*.", 3 );\r
-    strcat(fileName, defExt);\r
-  } else {\r
-    safeStrCpy(fileName, defName, MSG_SIZ );\r
-  }\r
-    if (fileTitle) safeStrCpy(fileTitle, "", MSG_SIZ );\r
-  if (number) *number = 0;\r
-\r
-  openFileName.lStructSize       = sizeof(OPENFILENAME);\r
-  openFileName.hwndOwner         = hwnd;\r
-  openFileName.hInstance         = (HANDLE) hInst;\r
-  openFileName.lpstrFilter       = nameFilt;\r
-  openFileName.lpstrCustomFilter = (LPSTR) NULL;\r
-  openFileName.nMaxCustFilter    = 0L;\r
-  openFileName.nFilterIndex      = 1L;\r
-  openFileName.lpstrFile         = fileName;\r
-  openFileName.nMaxFile          = MSG_SIZ;\r
-  openFileName.lpstrFileTitle    = fileTitle;\r
-  openFileName.nMaxFileTitle     = fileTitle ? MSG_SIZ : 0;\r
-  openFileName.lpstrInitialDir   = NULL;\r
-  openFileName.lpstrTitle        = dlgTitle;\r
-  openFileName.Flags = OFN_PATHMUSTEXIST | OFN_HIDEREADONLY \r
-    | (write[0] != 'r' ? 0 : OFN_FILEMUSTEXIST) \r
-    | (number ? OFN_ENABLETEMPLATE | OFN_ENABLEHOOK: 0)\r
-    | (oldDialog ? 0 : OFN_EXPLORER);\r
-  openFileName.nFileOffset       = 0;\r
-  openFileName.nFileExtension    = 0;\r
-  openFileName.lpstrDefExt       = defExt;\r
-  openFileName.lCustData         = (LONG) number;\r
-  openFileName.lpfnHook          = oldDialog ?\r
-    (LPOFNHOOKPROC) OldOpenFileHook : (LPOFNHOOKPROC) OpenFileHook;\r
-  openFileName.lpTemplateName    = (LPSTR)(oldDialog ? 1536 : DLG_IndexNumber);\r
-\r
-  if (write[0] != 'r' ? GetSaveFileName(&openFileName) : \r
-                        GetOpenFileName(&openFileName)) {\r
-    /* open the file */\r
-    f = fopen(openFileName.lpstrFile, write);\r
-    if (f == NULL) {\r
-      MessageBox(hwnd, _("File open failed"), NULL,\r
-                MB_OK|MB_ICONEXCLAMATION);\r
-      return NULL;\r
-    }\r
-  } else {\r
-    int err = CommDlgExtendedError();\r
-    if (err != 0) DisplayError(_("Internal error in file dialog box"), err);\r
-    return FALSE;\r
-  }\r
-  return f;\r
-}\r
-\r
-\r
-\r
-VOID APIENTRY\r
-MenuPopup(HWND hwnd, POINT pt, HMENU hmenu, UINT def)\r
-{\r
-  HMENU hmenuTrackPopup;       /* floating pop-up menu  */\r
-\r
-  /*\r
-   * Get the first pop-up menu in the menu template. This is the\r
-   * menu that TrackPopupMenu displays.\r
-   */\r
-  hmenuTrackPopup = GetSubMenu(hmenu, 0);\r
-  TranslateOneMenu(10, hmenuTrackPopup);\r
-\r
-  SetMenuDefaultItem(hmenuTrackPopup, def, FALSE);\r
-\r
-  /*\r
-   * TrackPopup uses screen coordinates, so convert the\r
-   * coordinates of the mouse click to screen coordinates.\r
-   */\r
-  ClientToScreen(hwnd, (LPPOINT) &pt);\r
-\r
-  /* Draw and track the floating pop-up menu. */\r
-  TrackPopupMenu(hmenuTrackPopup, TPM_CENTERALIGN | TPM_RIGHTBUTTON,\r
-                pt.x, pt.y, 0, hwnd, NULL);\r
-\r
-  /* Destroy the menu.*/\r
-  DestroyMenu(hmenu);\r
-}\r
-   \r
-typedef struct {\r
-  HWND hDlg, hText;\r
-  int sizeX, sizeY, newSizeX, newSizeY;\r
-  HDWP hdwp;\r
-} ResizeEditPlusButtonsClosure;\r
-\r
-BOOL CALLBACK\r
-ResizeEditPlusButtonsCallback(HWND hChild, LPARAM lparam)\r
-{\r
-  ResizeEditPlusButtonsClosure *cl = (ResizeEditPlusButtonsClosure *)lparam;\r
-  RECT rect;\r
-  POINT pt;\r
-\r
-  if (hChild == cl->hText) return TRUE;\r
-  GetWindowRect(hChild, &rect); /* gives screen coords */\r
-  pt.x = rect.left + (cl->newSizeX - cl->sizeX)/2;\r
-  pt.y = rect.top + cl->newSizeY - cl->sizeY;\r
-  ScreenToClient(cl->hDlg, &pt);\r
-  cl->hdwp = DeferWindowPos(cl->hdwp, hChild, NULL, \r
-    pt.x, pt.y, rect.right - rect.left, rect.bottom - rect.top, SWP_NOZORDER);\r
-  return TRUE;\r
-}\r
-\r
-/* Resize a dialog that has a (rich) edit field filling most of\r
-   the top, with a row of buttons below */\r
-VOID\r
-ResizeEditPlusButtons(HWND hDlg, HWND hText, int sizeX, int sizeY, int newSizeX, int newSizeY)\r
-{\r
-  RECT rectText;\r
-  int newTextHeight, newTextWidth;\r
-  ResizeEditPlusButtonsClosure cl;\r
-  \r
-  /*if (IsIconic(hDlg)) return;*/\r
-  if (newSizeX == sizeX && newSizeY == sizeY) return;\r
-  \r
-  cl.hdwp = BeginDeferWindowPos(8);\r
-\r
-  GetWindowRect(hText, &rectText); /* gives screen coords */\r
-  newTextWidth = rectText.right - rectText.left + newSizeX - sizeX;\r
-  newTextHeight = rectText.bottom - rectText.top + newSizeY - sizeY;\r
-  if (newTextHeight < 0) {\r
-    newSizeY += -newTextHeight;\r
-    newTextHeight = 0;\r
-  }\r
-  cl.hdwp = DeferWindowPos(cl.hdwp, hText, NULL, 0, 0, \r
-    newTextWidth, newTextHeight, SWP_NOZORDER|SWP_NOMOVE);\r
-\r
-  cl.hDlg = hDlg;\r
-  cl.hText = hText;\r
-  cl.sizeX = sizeX;\r
-  cl.sizeY = sizeY;\r
-  cl.newSizeX = newSizeX;\r
-  cl.newSizeY = newSizeY;\r
-  EnumChildWindows(hDlg, ResizeEditPlusButtonsCallback, (LPARAM)&cl);\r
-\r
-  EndDeferWindowPos(cl.hdwp);\r
-}\r
-\r
-BOOL CenterWindowEx(HWND hwndChild, HWND hwndParent, int mode)\r
-{\r
-    RECT    rChild, rParent;\r
-    int     wChild, hChild, wParent, hParent;\r
-    int     wScreen, hScreen, xNew, yNew;\r
-    HDC     hdc;\r
-\r
-    /* Get the Height and Width of the child window */\r
-    GetWindowRect (hwndChild, &rChild);\r
-    wChild = rChild.right - rChild.left;\r
-    hChild = rChild.bottom - rChild.top;\r
-\r
-    /* Get the Height and Width of the parent window */\r
-    GetWindowRect (hwndParent, &rParent);\r
-    wParent = rParent.right - rParent.left;\r
-    hParent = rParent.bottom - rParent.top;\r
-\r
-    /* Get the display limits */\r
-    hdc = GetDC (hwndChild);\r
-    wScreen = GetDeviceCaps (hdc, HORZRES);\r
-    hScreen = GetDeviceCaps (hdc, VERTRES);\r
-    ReleaseDC(hwndChild, hdc);\r
-\r
-    /* Calculate new X position, then adjust for screen */\r
-    xNew = rParent.left + ((wParent - wChild) /2);\r
-    if (xNew < 0) {\r
-       xNew = 0;\r
-    } else if ((xNew+wChild) > wScreen) {\r
-       xNew = wScreen - wChild;\r
-    }\r
-\r
-    /* Calculate new Y position, then adjust for screen */\r
-    if( mode == 0 ) {\r
-        yNew = rParent.top  + ((hParent - hChild) /2);\r
-    }\r
-    else {\r
-        yNew = rParent.top + GetSystemMetrics( SM_CYCAPTION ) * 2 / 3;\r
-    }\r
-\r
-    if (yNew < 0) {\r
-       yNew = 0;\r
-    } else if ((yNew+hChild) > hScreen) {\r
-       yNew = hScreen - hChild;\r
-    }\r
-\r
-    /* Set it, and return */\r
-    return SetWindowPos (hwndChild, NULL,\r
-                        xNew, yNew, 0, 0, SWP_NOSIZE | SWP_NOZORDER);\r
-}\r
-\r
-/* Center one window over another */\r
-BOOL CenterWindow (HWND hwndChild, HWND hwndParent)\r
-{\r
-    return CenterWindowEx( hwndChild, hwndParent, 0 );\r
-}\r
-\r
-/*---------------------------------------------------------------------------*\\r
- *\r
- * Startup Dialog functions\r
- *\r
-\*---------------------------------------------------------------------------*/\r
-void\r
-InitComboStrings(HANDLE hwndCombo, char **cd)\r
-{\r
-  SendMessage(hwndCombo, CB_RESETCONTENT, 0, 0);\r
-\r
-  while (*cd != NULL) {\r
-    SendMessage(hwndCombo, CB_ADDSTRING, 0, (LPARAM) T_(*cd));\r
-    cd++;\r
-  }\r
-}\r
-\r
-void\r
-InitComboStringsFromOption(HANDLE hwndCombo, char *str)\r
-{\r
-  char buf1[MAX_ARG_LEN];\r
-  int len;\r
-\r
-  if (str[0] == '@') {\r
-    FILE* f = fopen(str + 1, "r");\r
-    if (f == NULL) {\r
-      DisplayFatalError(str + 1, errno, 2);\r
-      return;\r
-    }\r
-    len = fread(buf1, 1, sizeof(buf1)-1, f);\r
-    fclose(f);\r
-    buf1[len] = NULLCHAR;\r
-    str = buf1;\r
-  }\r
-\r
-  SendMessage(hwndCombo, CB_RESETCONTENT, 0, 0);\r
-\r
-  for (;;) {\r
-    char buf[MSG_SIZ];\r
-    char *end = strchr(str, '\n');\r
-    if (end == NULL) return;\r
-    memcpy(buf, str, end - str);\r
-    buf[end - str] = NULLCHAR;\r
-    SendMessage(hwndCombo, CB_ADDSTRING, 0, (LPARAM) buf);\r
-    str = end + 1;\r
-  }\r
-}\r
-\r
-void\r
-SetStartupDialogEnables(HWND hDlg)\r
-{\r
-  EnableWindow(GetDlgItem(hDlg, OPT_ChessEngineName),\r
-    IsDlgButtonChecked(hDlg, OPT_ChessEngine) ||\r
-    (appData.zippyPlay && IsDlgButtonChecked(hDlg, OPT_ChessServer)));\r
-  EnableWindow(GetDlgItem(hDlg, OPT_SecondChessEngineName),\r
-    IsDlgButtonChecked(hDlg, OPT_ChessEngine));\r
-  EnableWindow(GetDlgItem(hDlg, OPT_ChessServerName),\r
-    IsDlgButtonChecked(hDlg, OPT_ChessServer));\r
-  EnableWindow(GetDlgItem(hDlg, OPT_AdditionalOptions),\r
-    IsDlgButtonChecked(hDlg, OPT_AnyAdditional));\r
-  EnableWindow(GetDlgItem(hDlg, IDOK),\r
-    IsDlgButtonChecked(hDlg, OPT_ChessEngine) ||\r
-    IsDlgButtonChecked(hDlg, OPT_ChessServer) ||\r
-    IsDlgButtonChecked(hDlg, OPT_View));\r
-}\r
-\r
-char *\r
-QuoteForFilename(char *filename)\r
-{\r
-  int dquote, space;\r
-  dquote = strchr(filename, '"') != NULL;\r
-  space = strchr(filename, ' ') != NULL;\r
-  if (dquote || space) {\r
-    if (dquote) {\r
-      return "'";\r
-    } else {\r
-      return "\"";\r
-    }\r
-  } else {\r
-    return "";\r
-  }\r
-}\r
-\r
-VOID\r
-InitEngineBox(HWND hDlg, HWND hwndCombo, char* nthcp, char* nthd, char* nthdir, char *nthnames)\r
-{\r
-  char buf[MSG_SIZ];\r
-  char *q;\r
-\r
-  InitComboStringsFromOption(hwndCombo, nthnames);\r
-  q = QuoteForFilename(nthcp);\r
-    snprintf(buf, MSG_SIZ, "%s%s%s", q, nthcp, q);\r
-  if (*nthdir != NULLCHAR) {\r
-    q = QuoteForFilename(nthdir);\r
-      snprintf(buf + strlen(buf), MSG_SIZ, " /%s=%s%s%s", nthd, q, nthdir, q);\r
-  }\r
-  if (*nthcp == NULLCHAR) {\r
-    SendMessage(hwndCombo, CB_SETCURSEL, (WPARAM) 0, (LPARAM) 0);\r
-  } else if (SendMessage(hwndCombo, CB_SELECTSTRING, (WPARAM) -1, (LPARAM) buf) == CB_ERR) {\r
-    SendMessage(hwndCombo, CB_SETCURSEL, (WPARAM) -1, (LPARAM) 0);\r
-    SendMessage(hwndCombo, WM_SETTEXT, (WPARAM) 0, (LPARAM) buf);\r
-  }\r
-}\r
-\r
-LRESULT CALLBACK\r
-StartupDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
-{\r
-  char buf[MSG_SIZ];\r
-  HANDLE hwndCombo;\r
-  char *p;\r
-\r
-  switch (message) {\r
-  case WM_INITDIALOG:\r
-    /* Center the dialog */\r
-    CenterWindow (hDlg, GetDesktopWindow());\r
-    Translate(hDlg, DLG_Startup);\r
-    /* Initialize the dialog items */\r
-    InitEngineBox(hDlg, GetDlgItem(hDlg, OPT_ChessEngineName),\r
-                 appData.firstChessProgram, "fd", appData.firstDirectory,\r
-                 firstChessProgramNames);\r
-    InitEngineBox(hDlg, GetDlgItem(hDlg, OPT_SecondChessEngineName),\r
-                 appData.secondChessProgram, singleList ? "fd" : "sd", appData.secondDirectory,\r
-                 singleList ? firstChessProgramNames : secondChessProgramNames); //[HGM] single: use first list in second combo\r
-    hwndCombo = GetDlgItem(hDlg, OPT_ChessServerName);\r
-    InitComboStringsFromOption(hwndCombo, icsNames);    \r
-      snprintf(buf, MSG_SIZ, "%s /icsport=%s", appData.icsHost, appData.icsPort);\r
-    if (*appData.icsHelper != NULLCHAR) {\r
-      char *q = QuoteForFilename(appData.icsHelper);\r
-      sprintf(buf + strlen(buf), " /icshelper=%s%s%s", q, appData.icsHelper, q);\r
-    }\r
-    if (*appData.icsHost == NULLCHAR) {\r
-      SendMessage(hwndCombo, CB_SETCURSEL, (WPARAM) 0, (LPARAM) 0);\r
-      /*SendMessage(hwndCombo, CB_SHOWDROPDOWN, (WPARAM) TRUE, (LPARAM) 0); !!too soon */\r
-    } else if (SendMessage(hwndCombo, CB_SELECTSTRING, (WPARAM) -1, (LPARAM) buf) == CB_ERR) {\r
-      SendMessage(hwndCombo, CB_SETCURSEL, (WPARAM) -1, (LPARAM) 0);\r
-      SendMessage(hwndCombo, WM_SETTEXT, (WPARAM) 0, (LPARAM) buf);\r
-    }\r
-\r
-    if (appData.icsActive) {\r
-      CheckDlgButton(hDlg, OPT_ChessServer, BST_CHECKED);\r
-    }\r
-    else if (appData.noChessProgram) {\r
-      CheckDlgButton(hDlg, OPT_View, BST_CHECKED);\r
-    }\r
-    else {\r
-      CheckDlgButton(hDlg, OPT_ChessEngine, BST_CHECKED);\r
-    }\r
-\r
-    SetStartupDialogEnables(hDlg);\r
-    return TRUE;\r
-\r
-  case WM_COMMAND:\r
-    switch (LOWORD(wParam)) {\r
-    case IDOK:\r
-      if (IsDlgButtonChecked(hDlg, OPT_ChessEngine)) {\r
-        safeStrCpy(buf, "/fcp=", sizeof(buf)/sizeof(buf[0]) );\r
-       GetDlgItemText(hDlg, OPT_ChessEngineName, buf + strlen(buf), sizeof(buf) - strlen(buf));\r
-        p = buf;\r
-       comboLine = strdup(p+5); // [HGM] recent: remember complete line of first combobox\r
-       ParseArgs(StringGet, &p);\r
-       safeStrCpy(buf, singleList ? "/fcp=" : "/scp=", sizeof(buf)/sizeof(buf[0]) );\r
-       GetDlgItemText(hDlg, OPT_SecondChessEngineName, buf + strlen(buf), sizeof(buf) - strlen(buf));\r
-        p = buf;\r
-       SwapEngines(singleList); // temporarily swap first and second, to load a second 'first', ...\r
-       ParseArgs(StringGet, &p);\r
-       SwapEngines(singleList); // ... and then make it 'second'\r
-\r
-       appData.noChessProgram = FALSE;\r
-       appData.icsActive = FALSE;\r
-      } else if (IsDlgButtonChecked(hDlg, OPT_ChessServer)) {\r
-        safeStrCpy(buf, "/ics /icshost=", sizeof(buf)/sizeof(buf[0]) );\r
-       GetDlgItemText(hDlg, OPT_ChessServerName, buf + strlen(buf), sizeof(buf) - strlen(buf));\r
-        p = buf;\r
-       ParseArgs(StringGet, &p);\r
-       if (appData.zippyPlay) {\r
-         safeStrCpy(buf, "/fcp=", sizeof(buf)/sizeof(buf[0]) );\r
-         GetDlgItemText(hDlg, OPT_ChessEngineName, buf + strlen(buf), sizeof(buf) - strlen(buf));\r
-         p = buf;\r
-         ParseArgs(StringGet, &p);\r
-       }\r
-      } else if (IsDlgButtonChecked(hDlg, OPT_View)) {\r
-       appData.noChessProgram = TRUE;\r
-       appData.icsActive = FALSE;\r
-      } else {\r
-       MessageBox(hDlg, _("Choose an option, or cancel to exit"),\r
-                  _("Option Error"), MB_OK|MB_ICONEXCLAMATION);\r
-       return TRUE;\r
-      }\r
-      if (IsDlgButtonChecked(hDlg, OPT_AnyAdditional)) {\r
-       GetDlgItemText(hDlg, OPT_AdditionalOptions, buf, sizeof(buf));\r
-       p = buf;\r
-       ParseArgs(StringGet, &p);\r
-      }\r
-      EndDialog(hDlg, TRUE);\r
-      return TRUE;\r
-\r
-    case IDCANCEL:\r
-      ExitEvent(0);\r
-      return TRUE;\r
-\r
-    case IDM_HELPCONTENTS:\r
-      if (!WinHelp (hDlg, "winboard.hlp", HELP_KEY,(DWORD)(LPSTR)"CONTENTS")) {\r
-       MessageBox (GetFocus(),\r
-                   _("Unable to activate help"),\r
-                   szAppName, MB_SYSTEMMODAL|MB_OK|MB_ICONHAND);\r
-      }\r
-      break;\r
-\r
-    default:\r
-      SetStartupDialogEnables(hDlg);\r
-      break;\r
-    }\r
-    break;\r
-  }\r
-  return FALSE;\r
-}\r
-\r
-/*---------------------------------------------------------------------------*\\r
- *\r
- * About box dialog functions\r
- *\r
-\*---------------------------------------------------------------------------*/\r
-\r
-/* Process messages for "About" dialog box */\r
-LRESULT CALLBACK\r
-About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
-{\r
-  switch (message) {\r
-  case WM_INITDIALOG: /* message: initialize dialog box */\r
-    /* Center the dialog over the application window */\r
-    CenterWindow (hDlg, GetWindow (hDlg, GW_OWNER));\r
-    SetDlgItemText(hDlg, ABOUTBOX_Version, programVersion);\r
-    Translate(hDlg, ABOUTBOX);\r
-    JAWS_COPYRIGHT\r
-    return (TRUE);\r
-\r
-  case WM_COMMAND: /* message: received a command */\r
-    if (LOWORD(wParam) == IDOK /* "OK" box selected? */\r
-       || LOWORD(wParam) == IDCANCEL) { /* System menu close command? */\r
-      EndDialog(hDlg, TRUE); /* Exit the dialog */\r
-      return (TRUE);\r
-    }\r
-    break;\r
-  }\r
-  return (FALSE);\r
-}\r
-\r
-/*---------------------------------------------------------------------------*\\r
- *\r
- * Comment Dialog functions\r
- *\r
-\*---------------------------------------------------------------------------*/\r
-\r
-LRESULT CALLBACK\r
-CommentDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
-{\r
-  static HANDLE hwndText = NULL;\r
-  int len, newSizeX, newSizeY;\r
-  static int sizeX, sizeY;\r
-  char *str;\r
-  RECT rect;\r
-  MINMAXINFO *mmi;\r
-\r
-  switch (message) {\r
-  case WM_INITDIALOG: /* message: initialize dialog box */\r
-    /* Initialize the dialog items */\r
-    Translate(hDlg, DLG_EditComment);\r
-    hwndText = GetDlgItem(hDlg, OPT_CommentText);\r
-    SetDlgItemText(hDlg, OPT_CommentText, commentText);\r
-    EnableWindow(GetDlgItem(hDlg, OPT_CancelComment), editComment);\r
-    EnableWindow(GetDlgItem(hDlg, OPT_ClearComment), editComment);\r
-    EnableWindow(GetDlgItem(hDlg, OPT_EditComment), !editComment);\r
-    SendMessage(hwndText, EM_SETREADONLY, !editComment, 0);\r
-    SetWindowText(hDlg, commentTitle);\r
-    if (editComment) {\r
-      SetFocus(hwndText);\r
-    } else {\r
-      SetFocus(GetDlgItem(hDlg, IDOK));\r
-    }\r
-    SendMessage(GetDlgItem(hDlg, OPT_CommentText),\r
-               WM_SETFONT, (WPARAM)font[boardSize][COMMENT_FONT]->hf,\r
-               MAKELPARAM(FALSE, 0));\r
-    /* Size and position the dialog */\r
-    if (!commentDialog) {\r
-      commentDialog = hDlg;\r
-      GetClientRect(hDlg, &rect);\r
-      sizeX = rect.right;\r
-      sizeY = rect.bottom;\r
-      if (wpComment.x != CW_USEDEFAULT && wpComment.y != CW_USEDEFAULT &&\r
-         wpComment.width != CW_USEDEFAULT && wpComment.height != CW_USEDEFAULT) {\r
-       WINDOWPLACEMENT wp;\r
-       EnsureOnScreen(&wpComment.x, &wpComment.y, 0, 0);\r
-       wp.length = sizeof(WINDOWPLACEMENT);\r
-       wp.flags = 0;\r
-       wp.showCmd = SW_SHOW;\r
-       wp.ptMaxPosition.x = wp.ptMaxPosition.y = 0;\r
-       wp.rcNormalPosition.left = wpComment.x;\r
-       wp.rcNormalPosition.right = wpComment.x + wpComment.width;\r
-       wp.rcNormalPosition.top = wpComment.y;\r
-       wp.rcNormalPosition.bottom = wpComment.y + wpComment.height;\r
-       SetWindowPlacement(hDlg, &wp);\r
-\r
-       GetClientRect(hDlg, &rect);\r
-       newSizeX = rect.right;\r
-       newSizeY = rect.bottom;\r
-        ResizeEditPlusButtons(hDlg, hwndText, sizeX, sizeY,\r
-                             newSizeX, newSizeY);\r
-       sizeX = newSizeX;\r
-       sizeY = newSizeY;\r
-      }\r
-    }\r
-    SendDlgItemMessage( hDlg, OPT_CommentText, EM_SETEVENTMASK, 0, ENM_MOUSEEVENTS | ENM_KEYEVENTS );\r
-    return FALSE;\r
-\r
-  case WM_COMMAND: /* message: received a command */\r
-    switch (LOWORD(wParam)) {\r
-    case IDOK:\r
-      if (editComment) {\r
-       char *p, *q;\r
-       /* Read changed options from the dialog box */\r
-       hwndText = GetDlgItem(hDlg, OPT_CommentText);\r
-       len = GetWindowTextLength(hwndText);\r
-       str = (char *) malloc(len + 1);\r
-       GetWindowText(hwndText, str, len + 1);\r
-       p = q = str;\r
-       while (*q) {\r
-         if (*q == '\r')\r
-           q++;\r
-         else\r
-           *p++ = *q++;\r
-       }\r
-       *p = NULLCHAR;\r
-       ReplaceComment(commentIndex, str);\r
-       free(str);\r
-      }\r
-      CommentPopDown();\r
-      return TRUE;\r
-\r
-    case IDCANCEL:\r
-    case OPT_CancelComment:\r
-      CommentPopDown();\r
-      return TRUE;\r
-\r
-    case OPT_ClearComment:\r
-      SetDlgItemText(hDlg, OPT_CommentText, "");\r
-      break;\r
-\r
-    case OPT_EditComment:\r
-      EditCommentEvent();\r
-      return TRUE;\r
-\r
-    default:\r
-      break;\r
-    }\r
-    break;\r
-\r
-  case WM_NOTIFY: // [HGM] vari: cloned from whistory.c\r
-        if( wParam == OPT_CommentText ) {\r
-            MSGFILTER * lpMF = (MSGFILTER *) lParam;\r
-\r
-            if( lpMF->msg == WM_RBUTTONDOWN && (lpMF->wParam & (MK_CONTROL | MK_SHIFT)) == 0 ||\r
-                lpMF->msg == WM_CHAR && lpMF->wParam == '\022' ) {\r
-                POINTL pt;\r
-                LRESULT index;\r
-\r
-                pt.x = LOWORD( lpMF->lParam );\r
-                pt.y = HIWORD( lpMF->lParam );\r
-\r
-                if(lpMF->msg == WM_CHAR) {\r
-                        CHARRANGE sel;\r
-                        SendDlgItemMessage( hDlg, OPT_CommentText, EM_EXGETSEL, 0, (LPARAM) &sel );\r
-                        index = sel.cpMin;\r
-                } else\r
-                index = SendDlgItemMessage( hDlg, OPT_CommentText, EM_CHARFROMPOS, 0, (LPARAM) &pt );\r
-\r
-               hwndText = GetDlgItem(hDlg, OPT_CommentText); // cloned from above\r
-               len = GetWindowTextLength(hwndText);\r
-               str = (char *) malloc(len + 1);\r
-               GetWindowText(hwndText, str, len + 1);\r
-               ReplaceComment(commentIndex, str);\r
-               if(commentIndex != currentMove) ToNrEvent(commentIndex);\r
-                LoadVariation( index, str ); // [HGM] also does the actual moving to it, now\r
-               free(str);\r
-\r
-                /* Zap the message for good: apparently, returning non-zero is not enough */\r
-                lpMF->msg = WM_USER;\r
-\r
-                return TRUE;\r
-            }\r
-        }\r
-        break;\r
-\r
-  case WM_SIZE:\r
-    newSizeX = LOWORD(lParam);\r
-    newSizeY = HIWORD(lParam);\r
-    ResizeEditPlusButtons(hDlg, hwndText, sizeX, sizeY, newSizeX, newSizeY);\r
-    sizeX = newSizeX;\r
-    sizeY = newSizeY;\r
-    break;\r
-\r
-  case WM_GETMINMAXINFO:\r
-    /* Prevent resizing window too small */\r
-    mmi = (MINMAXINFO *) lParam;\r
-    mmi->ptMinTrackSize.x = 100;\r
-    mmi->ptMinTrackSize.y = 100;\r
-    break;\r
-  }\r
-  return FALSE;\r
-}\r
-\r
-VOID\r
-EitherCommentPopUp(int index, char *title, char *str, BOOLEAN edit)\r
-{\r
-  FARPROC lpProc;\r
-  char *p, *q;\r
-\r
-  CheckMenuItem(GetMenu(hwndMain), IDM_Comment, edit ? MF_CHECKED : MF_UNCHECKED);\r
-\r
-  if (str == NULL) str = "";\r
-  p = (char *) malloc(2 * strlen(str) + 2);\r
-  q = p;\r
-  while (*str) {\r
-    if (*str == '\n') *q++ = '\r';\r
-    *q++ = *str++;\r
-  }\r
-  *q = NULLCHAR;\r
-  if (commentText != NULL) free(commentText);\r
-\r
-  commentIndex = index;\r
-  commentTitle = title;\r
-  commentText = p;\r
-  editComment = edit;\r
-\r
-  if (commentDialog) {\r
-    SendMessage(commentDialog, WM_INITDIALOG, 0, 0);\r
-    if (!commentUp) ShowWindow(commentDialog, SW_SHOW);\r
-  } else {\r
-    lpProc = MakeProcInstance((FARPROC)CommentDialog, hInst);\r
-    CreateDialog(hInst, MAKEINTRESOURCE(DLG_EditComment),\r
-                hwndMain, (DLGPROC)lpProc);\r
-    FreeProcInstance(lpProc);\r
-  }\r
-  commentUp = TRUE;\r
-}\r
-\r
-\r
-/*---------------------------------------------------------------------------*\\r
- *\r
- * Type-in move dialog functions\r
- * \r
-\*---------------------------------------------------------------------------*/\r
-\r
-LRESULT CALLBACK\r
-TypeInMoveDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
-{\r
-  char move[MSG_SIZ];\r
-  HWND hInput;\r
-\r
-  switch (message) {\r
-  case WM_INITDIALOG:\r
-    move[0] = (char) lParam;\r
-    move[1] = NULLCHAR;\r
-    CenterWindowEx(hDlg, GetWindow(hDlg, GW_OWNER), 1 );\r
-    Translate(hDlg, DLG_TypeInMove);\r
-    hInput = GetDlgItem(hDlg, OPT_Move);\r
-    SetWindowText(hInput, move);\r
-    SetFocus(hInput);\r
-    SendMessage(hInput, EM_SETSEL, (WPARAM)9999, (LPARAM)9999);\r
-    return FALSE;\r
-\r
-  case WM_COMMAND:\r
-    switch (LOWORD(wParam)) {\r
-    case IDOK:\r
-\r
-      shiftKey = GetKeyState(VK_SHIFT) < 0; // [HGM] remember last shift status\r
-      GetDlgItemText(hDlg, OPT_Move, move, sizeof(move));\r
-      TypeInDoneEvent(move);\r
-      EndDialog(hDlg, TRUE);\r
-      return TRUE;\r
-    case IDCANCEL:\r
-      EndDialog(hDlg, FALSE);\r
-      return TRUE;\r
-    default:\r
-      break;\r
-    }\r
-    break;\r
-  }\r
-  return FALSE;\r
-}\r
-\r
-VOID\r
-PopUpMoveDialog(char firstchar)\r
-{\r
-    FARPROC lpProc;\r
-\r
-      lpProc = MakeProcInstance((FARPROC)TypeInMoveDialog, hInst);\r
-      DialogBoxParam(hInst, MAKEINTRESOURCE(DLG_TypeInMove),\r
-       hwndMain, (DLGPROC)lpProc, (LPARAM)firstchar);\r
-      FreeProcInstance(lpProc);\r
-}\r
-\r
-/*---------------------------------------------------------------------------*\\r
- *\r
- * Type-in name dialog functions\r
- * \r
-\*---------------------------------------------------------------------------*/\r
-\r
-LRESULT CALLBACK\r
-TypeInNameDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
-{\r
-  char move[MSG_SIZ];\r
-  HWND hInput;\r
-\r
-  switch (message) {\r
-  case WM_INITDIALOG:\r
-    move[0] = (char) lParam;\r
-    move[1] = NULLCHAR;\r
-    CenterWindowEx(hDlg, GetWindow(hDlg, GW_OWNER), 1 );\r
-    Translate(hDlg, DLG_TypeInName);\r
-    hInput = GetDlgItem(hDlg, OPT_Name);\r
-    SetWindowText(hInput, move);\r
-    SetFocus(hInput);\r
-    SendMessage(hInput, EM_SETSEL, (WPARAM)9999, (LPARAM)9999);\r
-    return FALSE;\r
-\r
-  case WM_COMMAND:\r
-    switch (LOWORD(wParam)) {\r
-    case IDOK:\r
-      GetDlgItemText(hDlg, OPT_Name, move, sizeof(move));\r
-      appData.userName = strdup(move);\r
-      SetUserLogo(); DisplayLogos();\r
-      SetGameInfo();\r
-      if(gameMode == MachinePlaysWhite || gameMode == MachinePlaysBlack) {\r
-       snprintf(move, MSG_SIZ, "%s vs. %s", gameInfo.white, gameInfo.black);\r
-       DisplayTitle(move);\r
-      }\r
-\r
-\r
-      EndDialog(hDlg, TRUE);\r
-      return TRUE;\r
-    case IDCANCEL:\r
-      EndDialog(hDlg, FALSE);\r
-      return TRUE;\r
-    default:\r
-      break;\r
-    }\r
-    break;\r
-  }\r
-  return FALSE;\r
-}\r
-\r
-VOID\r
-PopUpNameDialog(char firstchar)\r
-{\r
-    FARPROC lpProc;\r
-    \r
-      lpProc = MakeProcInstance((FARPROC)TypeInNameDialog, hInst);\r
-      DialogBoxParam(hInst, MAKEINTRESOURCE(DLG_TypeInName),\r
-       hwndMain, (DLGPROC)lpProc, (LPARAM)firstchar);\r
-      FreeProcInstance(lpProc);\r
-}\r
-\r
-/*---------------------------------------------------------------------------*\\r
- *\r
- *  Error dialogs\r
- * \r
-\*---------------------------------------------------------------------------*/\r
-\r
-/* Nonmodal error box */\r
-LRESULT CALLBACK ErrorDialog(HWND hDlg, UINT message,\r
-                            WPARAM wParam, LPARAM lParam);\r
-\r
-VOID\r
-ErrorPopUp(char *title, char *content)\r
-{\r
-  FARPROC lpProc;\r
-  char *p, *q;\r
-  BOOLEAN modal = hwndMain == NULL;\r
-\r
-  p = content;\r
-  q = errorMessage;\r
-  while (*p) {\r
-    if (*p == '\n') {\r
-      if (modal) {\r
-       *q++ = ' ';\r
-       p++;\r
-      } else {\r
-       *q++ = '\r';\r
-       *q++ = *p++;\r
-      }\r
-    } else {\r
-      *q++ = *p++;\r
-    }\r
-  }\r
-  *q = NULLCHAR;\r
-  strncpy(errorTitle, title, sizeof(errorTitle));\r
-  errorTitle[sizeof(errorTitle) - 1] = '\0';\r
-  \r
-  if (modal) {\r
-    MessageBox(NULL, errorMessage, errorTitle, MB_OK|MB_ICONEXCLAMATION);\r
-  } else {\r
-    lpProc = MakeProcInstance((FARPROC)ErrorDialog, hInst);\r
-    CreateDialog(hInst, MAKEINTRESOURCE(DLG_Error),\r
-                hwndMain, (DLGPROC)lpProc);\r
-    FreeProcInstance(lpProc);\r
-  }\r
-}\r
-\r
-VOID\r
-ErrorPopDown()\r
-{\r
-  if (!appData.popupMoveErrors && moveErrorMessageUp) DisplayMessage("", "");\r
-  if (errorDialog == NULL) return;\r
-  DestroyWindow(errorDialog);\r
-  errorDialog = NULL;\r
-  if(errorExitStatus) ExitEvent(errorExitStatus);\r
-}\r
-\r
-LRESULT CALLBACK\r
-ErrorDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
-{\r
-  RECT rChild;\r
-\r
-  switch (message) {\r
-  case WM_INITDIALOG:\r
-    GetWindowRect(hDlg, &rChild);\r
-\r
-    /*\r
-    SetWindowPos(hDlg, NULL, rChild.left,\r
-      rChild.top + boardRect.top - (rChild.bottom - rChild.top), \r
-      0, 0, SWP_NOZORDER|SWP_NOSIZE);\r
-    */\r
-\r
-    /* \r
-        [AS] It seems that the above code wants to move the dialog up in the "caption\r
-        area" of the main window, but it uses the dialog height as an hard-coded constant,\r
-        and it doesn't work when you resize the dialog.\r
-        For now, just give it a default position.\r
-    */\r
-    SetWindowPos(hDlg, NULL, boardRect.left+8, boardRect.top+8, 0, 0, SWP_NOZORDER|SWP_NOSIZE);\r
-    Translate(hDlg, DLG_Error);\r
-\r
-    errorDialog = hDlg;\r
-    SetWindowText(hDlg, errorTitle);\r
-    SetDlgItemText(hDlg, OPT_ErrorText, errorMessage);\r
-    return FALSE;\r
-\r
-  case WM_COMMAND:\r
-    switch (LOWORD(wParam)) {\r
-    case IDOK:\r
-    case IDCANCEL:\r
-      if (errorDialog == hDlg) errorDialog = NULL;\r
-      DestroyWindow(hDlg);\r
-      return TRUE;\r
-\r
-    default:\r
-      break;\r
-    }\r
-    break;\r
-  }\r
-  return FALSE;\r
-}\r
-\r
-#ifdef GOTHIC\r
-HWND gothicDialog = NULL;\r
-\r
-LRESULT CALLBACK\r
-GothicDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
-{\r
-  RECT rChild;\r
-  int height = GetSystemMetrics(SM_CYCAPTION)+GetSystemMetrics(SM_CYFRAME);\r
-\r
-  switch (message) {\r
-  case WM_INITDIALOG:\r
-    GetWindowRect(hDlg, &rChild);\r
-\r
-    SetWindowPos(hDlg, NULL, wpMain.x, wpMain.y-height, wpMain.width, height,\r
-                                                             SWP_NOZORDER);\r
-\r
-    /* \r
-        [AS] It seems that the above code wants to move the dialog up in the "caption\r
-        area" of the main window, but it uses the dialog height as an hard-coded constant,\r
-        and it doesn't work when you resize the dialog.\r
-        For now, just give it a default position.\r
-    */\r
-    gothicDialog = hDlg;\r
-    SetWindowText(hDlg, errorTitle);\r
-    SetDlgItemText(hDlg, OPT_ErrorText, errorMessage);\r
-    return FALSE;\r
-\r
-  case WM_COMMAND:\r
-    switch (LOWORD(wParam)) {\r
-    case IDOK:\r
-    case IDCANCEL:\r
-      if (errorDialog == hDlg) errorDialog = NULL;\r
-      DestroyWindow(hDlg);\r
-      return TRUE;\r
-\r
-    default:\r
-      break;\r
-    }\r
-    break;\r
-  }\r
-  return FALSE;\r
-}\r
-\r
-VOID\r
-GothicPopUp(char *title, VariantClass variant)\r
-{\r
-  FARPROC lpProc;\r
-  static char *lastTitle;\r
-\r
-  strncpy(errorTitle, title, sizeof(errorTitle));\r
-  errorTitle[sizeof(errorTitle) - 1] = '\0';\r
-\r
-  if(lastTitle != title && gothicDialog != NULL) {\r
-    DestroyWindow(gothicDialog);\r
-    gothicDialog = NULL;\r
-  }\r
-  if(variant != VariantNormal && gothicDialog == NULL) {\r
-    title = lastTitle;\r
-    lpProc = MakeProcInstance((FARPROC)GothicDialog, hInst);\r
-    CreateDialog(hInst, MAKEINTRESOURCE(DLG_Error),\r
-                hwndMain, (DLGPROC)lpProc);\r
-    FreeProcInstance(lpProc);\r
-  }\r
-}\r
-#endif\r
-\r
-/*---------------------------------------------------------------------------*\\r
- *\r
- *  Ics Interaction console functions\r
- *\r
-\*---------------------------------------------------------------------------*/\r
-\r
-#define HISTORY_SIZE 64\r
-static char *history[HISTORY_SIZE];\r
-int histIn = 0, histP = 0;\r
-\r
-\r
-VOID\r
-SaveInHistory(char *cmd)\r
-{\r
-  if (history[histIn] != NULL) {\r
-    free(history[histIn]);\r
-    history[histIn] = NULL;\r
-  }\r
-  if (*cmd == NULLCHAR) return;\r
-  history[histIn] = StrSave(cmd);\r
-  histIn = (histIn + 1) % HISTORY_SIZE;\r
-  if (history[histIn] != NULL) {\r
-    free(history[histIn]);\r
-\r
-    history[histIn] = NULL;\r
-  }\r
-  histP = histIn;\r
-}\r
-\r
-char *\r
-PrevInHistory(char *cmd)\r
-{\r
-  int newhp;\r
-  if (histP == histIn) {\r
-    if (history[histIn] != NULL) free(history[histIn]);\r
-    history[histIn] = StrSave(cmd);\r
-  }\r
-  newhp = (histP - 1 + HISTORY_SIZE) % HISTORY_SIZE;\r
-  if (newhp == histIn || history[newhp] == NULL) return NULL;\r
-  histP = newhp;\r
-  return history[histP];\r
-}\r
-\r
-char *\r
-NextInHistory()\r
-{\r
-  if (histP == histIn) return NULL;\r
-  histP = (histP + 1) % HISTORY_SIZE;\r
-  return history[histP];   \r
-}\r
-\r
-HMENU\r
-LoadIcsTextMenu(IcsTextMenuEntry *e)\r
-{\r
-  HMENU hmenu, h;\r
-  int i = 0;\r
-  hmenu = LoadMenu(hInst, "TextMenu");\r
-  h = GetSubMenu(hmenu, 0);\r
-  while (e->item) {\r
-    if (strcmp(e->item, "-") == 0) {\r
-      AppendMenu(h, MF_SEPARATOR, 0, 0);\r
-    } else { // [HGM] re-written a bit to use only one AppendMenu call for both cases (| or no |)\r
-      int flags = MF_STRING, j = 0;\r
-      if (e->item[0] == '|') {\r
-       flags |= MF_MENUBARBREAK;\r
-        j++;\r
-      }\r
-      if(!strcmp(e->command, "none")) flags |= MF_GRAYED; // [HGM] chatclick: provide inactive dummy\r
-      AppendMenu(h, flags, IDM_CommandX + i, e->item + j);\r
-    }\r
-    e++;\r
-    i++;\r
-  } \r
-  return hmenu;\r
-}\r
-\r
-WNDPROC consoleTextWindowProc;\r
-\r
-void\r
-CommandX(HWND hwnd, char *command, BOOLEAN getname, BOOLEAN immediate)\r
-{\r
-  char buf[MSG_SIZ], name[MSG_SIZ];\r
-  HWND hInput = GetDlgItem(hwndConsole, OPT_ConsoleInput);\r
-  CHARRANGE sel;\r
-\r
-  if (!getname) {\r
-    SetWindowText(hInput, command);\r
-    if (immediate) {\r
-      SendMessage(hInput, WM_CHAR, '\r', 0);\r
-    } else {\r
-      sel.cpMin = 999999;\r
-      sel.cpMax = 999999;\r
-      SendMessage(hInput, EM_EXSETSEL, 0, (LPARAM)&sel);\r
-      SetFocus(hInput);\r
-    }\r
-    return;\r
-  }    \r
-  SendMessage(hwnd, EM_EXGETSEL, 0, (LPARAM)&sel);\r
-  if (sel.cpMin == sel.cpMax) {\r
-    /* Expand to surrounding word */\r
-    TEXTRANGE tr;\r
-    do {\r
-      tr.chrg.cpMax = sel.cpMin;\r
-      tr.chrg.cpMin = --sel.cpMin;\r
-      if (sel.cpMin < 0) break;\r
-      tr.lpstrText = name;\r
-      SendMessage(hwnd, EM_GETTEXTRANGE, 0, (LPARAM) &tr);\r
-    } while (isalpha(name[0]) || isdigit(name[0]) || name[0] == '-');\r
-    sel.cpMin++;\r
-\r
-    do {\r
-      tr.chrg.cpMin = sel.cpMax;\r
-      tr.chrg.cpMax = ++sel.cpMax;\r
-      tr.lpstrText = name;\r
-      if (SendMessage(hwnd, EM_GETTEXTRANGE, 0, (LPARAM) &tr) < 1) break;\r
-    } while (isalpha(name[0]) || isdigit(name[0]) || name[0] == '-');\r
-    sel.cpMax--;\r
-\r
-    if (sel.cpMax == sel.cpMin || sel.cpMax - sel.cpMin > MSG_SIZ/2) {\r
-      MessageBeep(MB_ICONEXCLAMATION);\r
-      return;\r
-    }\r
-    tr.chrg = sel;\r
-    tr.lpstrText = name;\r
-    SendMessage(hwnd, EM_GETTEXTRANGE, 0, (LPARAM) &tr);\r
-  } else {\r
-    if (sel.cpMax - sel.cpMin > MSG_SIZ/2) {\r
-      MessageBeep(MB_ICONEXCLAMATION);\r
-      return;\r
-    }\r
-    SendMessage(hwnd, EM_GETSELTEXT, 0, (LPARAM) name);\r
-  }\r
-  if (immediate) {\r
-    if(strstr(command, "%s")) snprintf(buf, MSG_SIZ, command, name); else\r
-    snprintf(buf, MSG_SIZ, "%s %s", command, name);\r
-    SetWindowText(hInput, buf);\r
-    SendMessage(hInput, WM_CHAR, '\r', 0);\r
-  } else {\r
-    if(!strcmp(command, "chat")) { ChatPopUp(name); return; }\r
-      snprintf(buf, MSG_SIZ, "%s %s ", command, name); /* trailing space */\r
-    SetWindowText(hInput, buf);\r
-    sel.cpMin = 999999;\r
-    sel.cpMax = 999999;\r
-    SendMessage(hInput, EM_EXSETSEL, 0, (LPARAM)&sel);\r
-    SetFocus(hInput);\r
-  }\r
-}\r
-\r
-LRESULT CALLBACK \r
-ConsoleTextSubclass(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)\r
-{\r
-  HWND hInput;\r
-  CHARRANGE sel;\r
-\r
-  switch (message) {\r
-  case WM_KEYDOWN:\r
-    if (!(GetKeyState(VK_CONTROL) & ~1)) break;\r
-    if(wParam=='R') return 0;\r
-    switch (wParam) {\r
-    case VK_PRIOR:\r
-      SendMessage(hwnd, EM_LINESCROLL, 0, -999999);\r
-      return 0;\r
-    case VK_NEXT:\r
-      sel.cpMin = 999999;\r
-      sel.cpMax = 999999;\r
-      SendMessage(hwnd, EM_EXSETSEL, 0, (LPARAM)&sel);\r
-      SendMessage(hwnd, EM_SCROLLCARET, 0, 0);\r
-      return 0;\r
-    }\r
-    break;\r
-  case WM_CHAR:\r
-   if(wParam != '\022') {\r
-    if (wParam == '\t') {\r
-      if (GetKeyState(VK_SHIFT) < 0) {\r
-       /* shifted */\r
-       if (IsIconic(hwndMain)) ShowWindow(hwndMain, SW_RESTORE);\r
-       if (buttonDesc[0].hwnd) {\r
-         SetFocus(buttonDesc[0].hwnd);\r
-       } else {\r
-         SetFocus(hwndMain);\r
-       }\r
-      } else {\r
-       /* unshifted */\r
-       SetFocus(GetDlgItem(hwndConsole, OPT_ConsoleInput));\r
-      }\r
-    } else {\r
-      hInput = GetDlgItem(hwndConsole, OPT_ConsoleInput);\r
-      JAWS_DELETE( SetFocus(hInput); )\r
-      SendMessage(hInput, message, wParam, lParam);\r
-    }\r
-    return 0;\r
-   } // [HGM] navigate: for Ctrl+R, flow into next case (moved up here) to summon up menu\r
-   lParam = -1;\r
-  case WM_RBUTTONDOWN:\r
-    if (!(GetKeyState(VK_SHIFT) & ~1)) {\r
-      /* Move selection here if it was empty */\r
-      POINT pt;\r
-      pt.x = LOWORD(lParam);\r
-      pt.y = HIWORD(lParam);\r
-      SendMessage(hwnd, EM_EXGETSEL, 0, (LPARAM)&sel);\r
-      if (sel.cpMin == sel.cpMax) {\r
-        if(lParam != -1) sel.cpMin = SendMessage(hwnd, EM_CHARFROMPOS, 0, (LPARAM)&pt); /*doc is wrong*/\r
-       sel.cpMax = sel.cpMin;\r
-       SendMessage(hwnd, EM_EXSETSEL, 0, (LPARAM)&sel);\r
-      }\r
-      SendMessage(hwnd, EM_HIDESELECTION, FALSE, FALSE);\r
-{ // [HGM] chatclick: code moved here from WM_RBUTTONUP case, to have menu appear on down-click\r
-      POINT pt;\r
-      HMENU hmenu = LoadIcsTextMenu(icsTextMenuEntry);\r
-      SendMessage(hwnd, EM_EXGETSEL, 0, (LPARAM)&sel);\r
-      if (sel.cpMin == sel.cpMax) {\r
-        EnableMenuItem(hmenu, IDM_Copy, MF_BYCOMMAND|MF_GRAYED);\r
-        EnableMenuItem(hmenu, IDM_QuickPaste, MF_BYCOMMAND|MF_GRAYED);\r
-      }\r
-      if (!IsClipboardFormatAvailable(CF_TEXT)) {\r
-        EnableMenuItem(hmenu, IDM_Paste, MF_BYCOMMAND|MF_GRAYED);\r
-      }\r
-      pt.x = LOWORD(lParam)-30; // [HGM] chatclick: make menu pop up with pointer above upper-right item\r
-      pt.y = HIWORD(lParam)-10; //       make it appear as if mouse moved there, so it will be selected on up-click\r
-      PostMessage(hwnd, WM_MOUSEMOVE, wParam, lParam+5);\r
-      MenuPopup(hwnd, pt, hmenu, -1);\r
-}\r
-    }\r
-    return 0;\r
-  case WM_RBUTTONUP:\r
-    if (GetKeyState(VK_SHIFT) & ~1) {\r
-      SendDlgItemMessage(hwndConsole, OPT_ConsoleText, \r
-        WM_COMMAND, MAKEWPARAM(IDM_QuickPaste, 0), 0);\r
-    }\r
-    return 0;\r
-  case WM_PASTE:\r
-    hInput = GetDlgItem(hwndConsole, OPT_ConsoleInput);\r
-    SetFocus(hInput);\r
-    return SendMessage(hInput, message, wParam, lParam);\r
-  case WM_MBUTTONDOWN:\r
-    return SendMessage(hwnd, WM_COMMAND, MAKEWPARAM(IDM_QuickPaste, 0), 0);\r
-  case WM_COMMAND:\r
-    switch (LOWORD(wParam)) {\r
-    case IDM_QuickPaste:\r
-      {\r
-        SendMessage(hwnd, EM_EXGETSEL, 0, (LPARAM)&sel);\r
-       if (sel.cpMin == sel.cpMax) {\r
-         MessageBeep(MB_ICONEXCLAMATION);\r
-          return 0;\r
-       }\r
-       SendMessage(hwnd, WM_COPY, 0, 0);\r
-       hInput = GetDlgItem(hwndConsole, OPT_ConsoleInput);\r
-        SendMessage(hInput, WM_PASTE, 0, 0);\r
-        SetFocus(hInput);\r
-        return 0;\r
-      }\r
-    case IDM_Cut:\r
-      SendMessage(hwnd, WM_CUT, 0, 0);\r
-      return 0;\r
-    case IDM_Paste:\r
-      SendMessage(hwnd, WM_PASTE, 0, 0);\r
-      return 0;\r
-    case IDM_Copy:\r
-      SendMessage(hwnd, WM_COPY, 0, 0);\r
-      return 0;\r
-    default:\r
-      {\r
-       int i = LOWORD(wParam) - IDM_CommandX;\r
-       if (i >= 0 && i < ICS_TEXT_MENU_SIZE &&\r
-           icsTextMenuEntry[i].command != NULL) {\r
-         CommandX(hwnd, icsTextMenuEntry[i].command,\r
-                  icsTextMenuEntry[i].getname,\r
-                  icsTextMenuEntry[i].immediate);\r
-         return 0;\r
-       }\r
-      }\r
-      break;\r
-    }\r
-    break;\r
-  }\r
-  return (*consoleTextWindowProc)(hwnd, message, wParam, lParam);\r
-}\r
-\r
-WNDPROC consoleInputWindowProc;\r
-\r
-LRESULT CALLBACK\r
-ConsoleInputSubclass(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)\r
-{\r
-  char buf[MSG_SIZ];\r
-  char *p;\r
-  static BOOL sendNextChar = FALSE;\r
-  static BOOL quoteNextChar = FALSE;\r
-  InputSource *is = consoleInputSource;\r
-  CHARFORMAT cf;\r
-  CHARRANGE sel;\r
-\r
-  switch (message) {\r
-  case WM_CHAR:\r
-    if (!appData.localLineEditing || sendNextChar) {\r
-      is->buf[0] = (CHAR) wParam;\r
-      is->count = 1;\r
-      SendMessage(hwndMain, WM_USER_Input, 0, (LPARAM) is);\r
-      sendNextChar = FALSE;\r
-      return 0;\r
-    }\r
-    if (quoteNextChar) {\r
-      buf[0] = (char) wParam;\r
-      buf[1] = NULLCHAR;\r
-      SendMessage(hwnd, EM_REPLACESEL, TRUE, (LPARAM) buf);\r
-      quoteNextChar = FALSE;\r
-      return 0;\r
-    }\r
-    switch (wParam) {\r
-    case '\r':   /* Enter key */\r
-      is->count = GetWindowText(hwnd, is->buf, INPUT_SOURCE_BUF_SIZE-1);     \r
-      if (consoleEcho) SaveInHistory(is->buf);\r
-      is->buf[is->count++] = '\n';\r
-      is->buf[is->count] = NULLCHAR;\r
-      SendMessage(hwndMain, WM_USER_Input, 0, (LPARAM) is);\r
-      if (consoleEcho) {\r
-       ConsoleOutput(is->buf, is->count, TRUE);\r
-      } else if (appData.localLineEditing) {\r
-       ConsoleOutput("\n", 1, TRUE);\r
-      }\r
-      /* fall thru */\r
-    case '\033': /* Escape key */\r
-      SetWindowText(hwnd, "");\r
-      cf.cbSize = sizeof(CHARFORMAT);\r
-      cf.dwMask = CFM_COLOR|CFM_BOLD|CFM_ITALIC|CFM_UNDERLINE|CFM_STRIKEOUT;\r
-      if (consoleEcho) {\r
-        cf.crTextColor = textAttribs[ColorNormal].color;\r
-      } else {\r
-       cf.crTextColor = COLOR_ECHOOFF;\r
-      }\r
-      cf.dwEffects = textAttribs[ColorNormal].effects;\r
-      SendMessage(hwnd, EM_SETCHARFORMAT, SCF_ALL, (LPARAM)&cf);\r
-      return 0;\r
-    case '\t':   /* Tab key */\r
-      if (GetKeyState(VK_SHIFT) < 0) {\r
-       /* shifted */\r
-       SetFocus(GetDlgItem(hwndConsole, OPT_ConsoleText));\r
-      } else {\r
-       /* unshifted */\r
-       if (IsIconic(hwndMain)) ShowWindow(hwndMain, SW_RESTORE);\r
-       if (buttonDesc[0].hwnd) {\r
-         SetFocus(buttonDesc[0].hwnd);\r
-       } else {\r
-         SetFocus(hwndMain);\r
-       }\r
-      }\r
-      return 0;\r
-    case '\023': /* Ctrl+S */\r
-      sendNextChar = TRUE;\r
-      return 0;\r
-    case '\021': /* Ctrl+Q */\r
-      quoteNextChar = TRUE;\r
-      return 0;\r
-    JAWS_REPLAY\r
-    default:\r
-      break;\r
-    }\r
-    break;\r
-  case WM_KEYDOWN:\r
-    switch (wParam) {\r
-    case VK_UP:\r
-      GetWindowText(hwnd, buf, MSG_SIZ);\r
-      p = PrevInHistory(buf);\r
-      if (p != NULL) {\r
-       SetWindowText(hwnd, p);\r
-       sel.cpMin = 999999;\r
-       sel.cpMax = 999999;\r
-       SendMessage(hwnd, EM_EXSETSEL, 0, (LPARAM)&sel);\r
-        return 0;\r
-      }\r
-      break;\r
-    case VK_DOWN:\r
-      p = NextInHistory();\r
-      if (p != NULL) {\r
-       SetWindowText(hwnd, p);\r
-       sel.cpMin = 999999;\r
-       sel.cpMax = 999999;\r
-       SendMessage(hwnd, EM_EXSETSEL, 0, (LPARAM)&sel);\r
-        return 0;\r
-      }\r
-      break;\r
-    case VK_HOME:\r
-    case VK_END:\r
-      if (!(GetKeyState(VK_CONTROL) & ~1)) break;\r
-      /* fall thru */\r
-    case VK_PRIOR:\r
-    case VK_NEXT:\r
-      SendDlgItemMessage(hwndConsole, OPT_ConsoleText, message, wParam, lParam);\r
-      return 0;\r
-    }\r
-    break;\r
-  case WM_MBUTTONDOWN:\r
-    SendDlgItemMessage(hwndConsole, OPT_ConsoleText, \r
-      WM_COMMAND, MAKEWPARAM(IDM_QuickPaste, 0), 0);\r
-    break;\r
-  case WM_RBUTTONUP:\r
-    if (GetKeyState(VK_SHIFT) & ~1) {\r
-      SendDlgItemMessage(hwndConsole, OPT_ConsoleText, \r
-        WM_COMMAND, MAKEWPARAM(IDM_QuickPaste, 0), 0);\r
-    } else {\r
-      POINT pt;\r
-      HMENU hmenu;\r
-      hmenu = LoadMenu(hInst, "InputMenu");\r
-      SendMessage(hwnd, EM_EXGETSEL, 0, (LPARAM)&sel);\r
-      if (sel.cpMin == sel.cpMax) {\r
-        EnableMenuItem(hmenu, IDM_Copy, MF_BYCOMMAND|MF_GRAYED);\r
-        EnableMenuItem(hmenu, IDM_Cut, MF_BYCOMMAND|MF_GRAYED);\r
-      }\r
-      if (!IsClipboardFormatAvailable(CF_TEXT)) {\r
-        EnableMenuItem(hmenu, IDM_Paste, MF_BYCOMMAND|MF_GRAYED);\r
-      }\r
-      pt.x = LOWORD(lParam);\r
-      pt.y = HIWORD(lParam);\r
-      MenuPopup(hwnd, pt, hmenu, -1);\r
-    }\r
-    return 0;\r
-  case WM_COMMAND:\r
-    switch (LOWORD(wParam)) { \r
-    case IDM_Undo:\r
-      SendMessage(hwnd, EM_UNDO, 0, 0);\r
-      return 0;\r
-    case IDM_SelectAll:\r
-      sel.cpMin = 0;\r
-      sel.cpMax = -1; /*999999?*/\r
-      SendMessage(hwnd, EM_EXSETSEL, 0, (LPARAM)&sel);\r
-      return 0;\r
-    case IDM_Cut:\r
-      SendMessage(hwnd, WM_CUT, 0, 0);\r
-      return 0;\r
-    case IDM_Paste:\r
-      SendMessage(hwnd, WM_PASTE, 0, 0);\r
-      return 0;\r
-    case IDM_Copy:\r
-      SendMessage(hwnd, WM_COPY, 0, 0);\r
-      return 0;\r
-    }\r
-    break;\r
-  }\r
-  return (*consoleInputWindowProc)(hwnd, message, wParam, lParam);\r
-}\r
-\r
-#define CO_MAX  100000\r
-#define CO_TRIM   1000\r
-\r
-LRESULT CALLBACK\r
-ConsoleWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
-{\r
-  static SnapData sd;\r
-  HWND hText, hInput;\r
-  RECT rect;\r
-  static int sizeX, sizeY;\r
-  int newSizeX, newSizeY;\r
-  MINMAXINFO *mmi;\r
-  WORD wMask;\r
-\r
-  hText = GetDlgItem(hDlg, OPT_ConsoleText);\r
-  hInput = GetDlgItem(hDlg, OPT_ConsoleInput);\r
-\r
-  switch (message) {\r
-  case WM_NOTIFY:\r
-    if (((NMHDR*)lParam)->code == EN_LINK)\r
-    {\r
-      ENLINK *pLink = (ENLINK*)lParam;\r
-      if (pLink->msg == WM_LBUTTONUP)\r
-      {\r
-        TEXTRANGE tr;\r
-\r
-        tr.chrg = pLink->chrg;\r
-        tr.lpstrText = malloc(1+tr.chrg.cpMax-tr.chrg.cpMin);\r
-        SendMessage(hText, EM_GETTEXTRANGE, 0, (LPARAM)&tr);\r
-        ShellExecute(NULL, "open", tr.lpstrText, NULL, NULL, SW_SHOW);\r
-        free(tr.lpstrText);\r
-      }\r
-    }\r
-    break;\r
-  case WM_INITDIALOG: /* message: initialize dialog box */\r
-    hwndConsole = hDlg;\r
-    SetFocus(hInput);\r
-    consoleTextWindowProc = (WNDPROC)\r
-      SetWindowLongPtr(hText, GWLP_WNDPROC, (LONG_PTR) ConsoleTextSubclass);\r
-    SendMessage(hText, EM_SETBKGNDCOLOR, FALSE, consoleBackgroundColor);\r
-    consoleInputWindowProc = (WNDPROC)\r
-      SetWindowLongPtr(hInput, GWLP_WNDPROC, (LONG_PTR) ConsoleInputSubclass);\r
-    SendMessage(hInput, EM_SETBKGNDCOLOR, FALSE, consoleBackgroundColor);\r
-    Colorize(ColorNormal, TRUE);\r
-    SendMessage(hInput, EM_SETCHARFORMAT, SCF_ALL, (LPARAM) &consoleCF);\r
-    ChangedConsoleFont();\r
-    GetClientRect(hDlg, &rect);\r
-    sizeX = rect.right;\r
-    sizeY = rect.bottom;\r
-    if (wpConsole.x != CW_USEDEFAULT && wpConsole.y != CW_USEDEFAULT &&\r
-       wpConsole.width != CW_USEDEFAULT && wpConsole.height != CW_USEDEFAULT) {\r
-      WINDOWPLACEMENT wp;\r
-      EnsureOnScreen(&wpConsole.x, &wpConsole.y, 0, 0);\r
-      wp.length = sizeof(WINDOWPLACEMENT);\r
-      wp.flags = 0;\r
-      wp.showCmd = SW_SHOW;\r
-      wp.ptMaxPosition.x = wp.ptMaxPosition.y = 0;\r
-      wp.rcNormalPosition.left = wpConsole.x;\r
-      wp.rcNormalPosition.right = wpConsole.x + wpConsole.width;\r
-      wp.rcNormalPosition.top = wpConsole.y;\r
-      wp.rcNormalPosition.bottom = wpConsole.y + wpConsole.height;\r
-      SetWindowPlacement(hDlg, &wp);\r
-    }\r
-\r
-   // [HGM] Chessknight's change 2004-07-13\r
-   else { /* Determine Defaults */\r
-       WINDOWPLACEMENT wp;\r
-       wpConsole.x = wpMain.width + 1;\r
-       wpConsole.y = wpMain.y;\r
-       wpConsole.width = screenWidth -  wpMain.width;\r
-       wpConsole.height = wpMain.height;\r
-       EnsureOnScreen(&wpConsole.x, &wpConsole.y, 0, 0);\r
-       wp.length = sizeof(WINDOWPLACEMENT);\r
-       wp.flags = 0;\r
-       wp.showCmd = SW_SHOW;\r
-       wp.ptMaxPosition.x = wp.ptMaxPosition.y = 0;\r
-       wp.rcNormalPosition.left = wpConsole.x;\r
-       wp.rcNormalPosition.right = wpConsole.x + wpConsole.width;\r
-       wp.rcNormalPosition.top = wpConsole.y;\r
-       wp.rcNormalPosition.bottom = wpConsole.y + wpConsole.height;\r
-       SetWindowPlacement(hDlg, &wp);\r
-    }\r
-\r
-   // Allow hText to highlight URLs and send notifications on them\r
-   wMask = (WORD) SendMessage(hText, EM_GETEVENTMASK, 0, 0L);\r
-   SendMessage(hText, EM_SETEVENTMASK, 0, wMask | ENM_LINK);\r
-   SendMessage(hText, EM_AUTOURLDETECT, TRUE, 0L);\r
-   SetWindowLongPtr(hText, GWLP_USERDATA, 79); // initialize the text window's width\r
-\r
-    return FALSE;\r
-\r
-  case WM_SETFOCUS:\r
-    SetFocus(hInput);\r
-    return 0;\r
-\r
-  case WM_CLOSE:\r
-    ExitEvent(0);\r
-    /* not reached */\r
-    break;\r
-\r
-  case WM_SIZE:\r
-    if (IsIconic(hDlg)) break;\r
-    newSizeX = LOWORD(lParam);\r
-    newSizeY = HIWORD(lParam);\r
-    if (sizeX != newSizeX || sizeY != newSizeY) {\r
-      RECT rectText, rectInput;\r
-      POINT pt;\r
-      int newTextHeight, newTextWidth;\r
-      GetWindowRect(hText, &rectText);\r
-      newTextWidth = rectText.right - rectText.left + newSizeX - sizeX;\r
-      newTextHeight = rectText.bottom - rectText.top + newSizeY - sizeY;\r
-      if (newTextHeight < 0) {\r
-       newSizeY += -newTextHeight;\r
-        newTextHeight = 0;\r
-      }\r
-      SetWindowPos(hText, NULL, 0, 0,\r
-       newTextWidth, newTextHeight, SWP_NOZORDER|SWP_NOMOVE);\r
-      GetWindowRect(hInput, &rectInput); /* gives screen coords */\r
-      pt.x = rectInput.left;\r
-      pt.y = rectInput.top + newSizeY - sizeY;\r
-      ScreenToClient(hDlg, &pt);\r
-      SetWindowPos(hInput, NULL, \r
-       pt.x, pt.y, /* needs client coords */   \r
-       rectInput.right - rectInput.left + newSizeX - sizeX,\r
-       rectInput.bottom - rectInput.top, SWP_NOZORDER);\r
-    }\r
-    sizeX = newSizeX;\r
-    sizeY = newSizeY;\r
-    break;\r
-\r
-  case WM_GETMINMAXINFO:\r
-    /* Prevent resizing window too small */\r
-    mmi = (MINMAXINFO *) lParam;\r
-    mmi->ptMinTrackSize.x = 100;\r
-    mmi->ptMinTrackSize.y = 100;\r
-    break;\r
-\r
-  /* [AS] Snapping */\r
-  case WM_ENTERSIZEMOVE:\r
-    return OnEnterSizeMove( &sd, hDlg, wParam, lParam );\r
-\r
-  case WM_SIZING:\r
-    return OnSizing( &sd, hDlg, wParam, lParam );\r
-\r
-  case WM_MOVING:\r
-    return OnMoving( &sd, hDlg, wParam, lParam );\r
-\r
-  case WM_EXITSIZEMOVE:\r
-       UpdateICSWidth(hText);\r
-    return OnExitSizeMove( &sd, hDlg, wParam, lParam );\r
-  }\r
-\r
-  return DefWindowProc(hDlg, message, wParam, lParam);\r
-}\r
-\r
-\r
-VOID\r
-ConsoleCreate()\r
-{\r
-  HWND hCons;\r
-  if (hwndConsole) return;\r
-  hCons = CreateDialog(hInst, szConsoleName, 0, NULL);\r
-  SendMessage(hCons, WM_INITDIALOG, 0, 0);\r
-}\r
-\r
-\r
-VOID\r
-ConsoleOutput(char* data, int length, int forceVisible)\r
-{\r
-  HWND hText;\r
-  int trim, exlen;\r
-  char *p, *q;\r
-  char buf[CO_MAX+1];\r
-  POINT pEnd;\r
-  RECT rect;\r
-  static int delayLF = 0;\r
-  CHARRANGE savesel, sel;\r
-\r
-  if (hwndConsole == NULL || length > CO_MAX-100 || length == 0) return;\r
-  p = data;\r
-  q = buf;\r
-  if (delayLF) {\r
-    *q++ = '\r';\r
-    *q++ = '\n';\r
-    delayLF = 0;\r
-  }\r
-  while (length--) {\r
-    if (*p == '\n') {\r
-      if (*++p) {\r
-       *q++ = '\r';\r
-       *q++ = '\n';\r
-      } else {\r
-       delayLF = 1;\r
-      }\r
-    } else if (*p == '\007') {\r
-       MyPlaySound(&sounds[(int)SoundBell]);\r
-       p++;\r
-    } else {\r
-      *q++ = *p++;\r
-    }\r
-  }\r
-  *q = NULLCHAR;\r
-  hText = GetDlgItem(hwndConsole, OPT_ConsoleText);\r
-  SendMessage(hText, EM_HIDESELECTION, TRUE, FALSE);\r
-  /* Save current selection */\r
-  SendMessage(hText, EM_EXGETSEL, 0, (LPARAM)&savesel);\r
-  exlen = GetWindowTextLength(hText);\r
-  /* Find out whether current end of text is visible */\r
-  SendMessage(hText, EM_GETRECT, 0, (LPARAM) &rect);\r
-  SendMessage(hText, EM_POSFROMCHAR, (WPARAM) &pEnd, exlen);\r
-  /* Trim existing text if it's too long */\r
-  if (exlen + (q - buf) > CO_MAX) {\r
-    trim = (CO_TRIM > (q - buf)) ? CO_TRIM : (q - buf);\r
-    sel.cpMin = 0;\r
-    sel.cpMax = trim;\r
-    SendMessage(hText, EM_EXSETSEL, 0, (LPARAM)&sel);\r
-    SendMessage(hText, EM_REPLACESEL, 0, (LPARAM)"");\r
-    exlen -= trim;\r
-    savesel.cpMin -= trim;\r
-    savesel.cpMax -= trim;\r
-    if (exlen < 0) exlen = 0;\r
-    if (savesel.cpMin < 0) savesel.cpMin = 0;\r
-    if (savesel.cpMax < savesel.cpMin) savesel.cpMax = savesel.cpMin;\r
-  }\r
-  /* Append the new text */\r
-  sel.cpMin = exlen;\r
-  sel.cpMax = exlen;\r
-  SendMessage(hText, EM_EXSETSEL, 0, (LPARAM)&sel);\r
-  SendMessage(hText, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&consoleCF);\r
-  SendMessage(hText, EM_REPLACESEL, 0, (LPARAM) buf);\r
-  if (forceVisible || exlen == 0 ||\r
-      (rect.left <= pEnd.x && pEnd.x < rect.right &&\r
-       rect.top <= pEnd.y && pEnd.y < rect.bottom)) {\r
-    /* Scroll to make new end of text visible if old end of text\r
-       was visible or new text is an echo of user typein */\r
-    sel.cpMin = 9999999;\r
-    sel.cpMax = 9999999;\r
-    SendMessage(hText, EM_EXSETSEL, 0, (LPARAM)&sel);\r
-    SendMessage(hText, EM_HIDESELECTION, FALSE, FALSE);\r
-    SendMessage(hText, EM_SCROLLCARET, 0, 0);\r
-    SendMessage(hText, EM_HIDESELECTION, TRUE, FALSE);\r
-  }\r
-  if (savesel.cpMax == exlen || forceVisible) {\r
-    /* Move insert point to new end of text if it was at the old\r
-       end of text or if the new text is an echo of user typein */\r
-    sel.cpMin = 9999999;\r
-    sel.cpMax = 9999999;\r
-    SendMessage(hText, EM_EXSETSEL, 0, (LPARAM)&sel);\r
-  } else {\r
-    /* Restore previous selection */\r
-    SendMessage(hText, EM_EXSETSEL, 0, (LPARAM)&savesel);\r
-  }\r
-  SendMessage(hText, EM_HIDESELECTION, FALSE, FALSE);\r
-}\r
-\r
-/*---------*/\r
-\r
-\r
-void\r
-DisplayHoldingsCount(HDC hdc, int x, int y, int rightAlign, int copyNumber)\r
-{\r
-  char buf[100];\r
-  char *str;\r
-  COLORREF oldFg, oldBg;\r
-  HFONT oldFont;\r
-  RECT rect;\r
-\r
-  if(copyNumber > 1)\r
-    snprintf(buf, sizeof(buf)/sizeof(buf[0]),"%d", copyNumber); else buf[0] = 0;\r
-\r
-  oldFg = SetTextColor(hdc, RGB(255, 255, 255)); /* white */\r
-  oldBg = SetBkColor(hdc, RGB(0, 0, 0)); /* black */\r
-  oldFont = SelectObject(hdc, font[boardSize][CLOCK_FONT]->hf);\r
-\r
-  rect.left = x;\r
-  rect.right = x + squareSize;\r
-  rect.top  = y;\r
-  rect.bottom = y + squareSize;\r
-  str = buf;\r
-\r
-  ExtTextOut(hdc, x + MESSAGE_LINE_LEFTMARGIN\r
-                    + (rightAlign ? (squareSize*2)/3 : 0),\r
-             y, ETO_CLIPPED|ETO_OPAQUE,\r
-             &rect, str, strlen(str), NULL);\r
-\r
-  (void) SetTextColor(hdc, oldFg);\r
-  (void) SetBkColor(hdc, oldBg);\r
-  (void) SelectObject(hdc, oldFont);\r
-}\r
-\r
-void\r
-DisplayAClock(HDC hdc, int timeRemaining, int highlight,\r
-              RECT *rect, char *color, char *flagFell)\r
-{\r
-  char buf[100];\r
-  char *str;\r
-  COLORREF oldFg, oldBg;\r
-  HFONT oldFont;\r
-\r
-  if (twoBoards && partnerUp) return;\r
-  if (appData.clockMode) {\r
-    if (tinyLayout == 2)\r
-      snprintf(buf, sizeof(buf)/sizeof(buf[0]), "%c %s %s", color[0], TimeString(timeRemaining), flagFell);\r
-    else\r
-      snprintf(buf, sizeof(buf)/sizeof(buf[0]), "%s:%c%s %s", color, (logoHeight>0 ? 0 : ' '), TimeString(timeRemaining), flagFell);\r
-    str = buf;\r
-  } else {\r
-    str = color;\r
-  }\r
-\r
-  if (highlight) {\r
-    oldFg = SetTextColor(hdc, RGB(255, 255, 255)); /* white */\r
-    oldBg = SetBkColor(hdc, RGB(0, 0, 0)); /* black */\r
-  } else {\r
-    oldFg = SetTextColor(hdc, RGB(0, 0, 0)); /* black */\r
-    oldBg = SetBkColor(hdc, RGB(255, 255, 255)); /* white */\r
-  }\r
-\r
-  oldFont = SelectObject(hdc, font[boardSize][CLOCK_FONT]->hf);\r
-\r
-  JAWS_SILENCE\r
-\r
-  ExtTextOut(hdc, rect->left + MESSAGE_LINE_LEFTMARGIN,\r
-            rect->top, ETO_CLIPPED|ETO_OPAQUE,\r
-            rect, str, strlen(str), NULL);\r
-  if(logoHeight > 0 && appData.clockMode) {\r
-      RECT r;\r
-      str += strlen(color)+2;\r
-      r.top = rect->top + logoHeight/2;\r
-      r.left = rect->left;\r
-      r.right = rect->right;\r
-      r.bottom = rect->bottom;\r
-      ExtTextOut(hdc, rect->left + MESSAGE_LINE_LEFTMARGIN,\r
-                r.top, ETO_CLIPPED|ETO_OPAQUE,\r
-                &r, str, strlen(str), NULL);\r
-  }\r
-  (void) SetTextColor(hdc, oldFg);\r
-  (void) SetBkColor(hdc, oldBg);\r
-  (void) SelectObject(hdc, oldFont);\r
-}\r
-\r
-\r
-int\r
-DoReadFile(HANDLE hFile, char *buf, int count, DWORD *outCount,\r
-          OVERLAPPED *ovl)\r
-{\r
-  int ok, err;\r
-\r
-  /* [AS]  */\r
-  if( count <= 0 ) {\r
-    if (appData.debugMode) {\r
-      fprintf( debugFP, "DoReadFile: trying to read past end of buffer, overflow = %d\n", count );\r
-    }\r
-\r
-    return ERROR_INVALID_USER_BUFFER;\r
-  }\r
-\r
-  ResetEvent(ovl->hEvent);\r
-  ovl->Offset = ovl->OffsetHigh = 0;\r
-  ok = ReadFile(hFile, buf, count, outCount, ovl);\r
-  if (ok) {\r
-    err = NO_ERROR;\r
-  } else {\r
-    err = GetLastError();\r
-    if (err == ERROR_IO_PENDING) {\r
-      ok = GetOverlappedResult(hFile, ovl, outCount, TRUE);\r
-      if (ok)\r
-       err = NO_ERROR;\r
-      else\r
-       err = GetLastError();\r
-    }\r
-  }\r
-  return err;\r
-}\r
-\r
-int\r
-DoWriteFile(HANDLE hFile, char *buf, int count, DWORD *outCount,\r
-           OVERLAPPED *ovl)\r
-{\r
-  int ok, err;\r
-\r
-  ResetEvent(ovl->hEvent);\r
-  ovl->Offset = ovl->OffsetHigh = 0;\r
-  ok = WriteFile(hFile, buf, count, outCount, ovl);\r
-  if (ok) {\r
-    err = NO_ERROR;\r
-  } else {\r
-    err = GetLastError();\r
-    if (err == ERROR_IO_PENDING) {\r
-      ok = GetOverlappedResult(hFile, ovl, outCount, TRUE);\r
-      if (ok)\r
-       err = NO_ERROR;\r
-      else\r
-       err = GetLastError();\r
-    }\r
-\r
-  }\r
-  return err;\r
-}\r
-\r
-/* [AS] If input is line by line and a line exceed the buffer size, force an error */\r
-void CheckForInputBufferFull( InputSource * is )\r
-{\r
-    if( is->lineByLine && (is->next - is->buf) >= INPUT_SOURCE_BUF_SIZE ) {\r
-        /* Look for end of line */\r
-        char * p = is->buf;\r
-        \r
-        while( p < is->next && *p != '\n' ) {\r
-            p++;\r
-        }\r
-\r
-        if( p >= is->next ) {\r
-            if (appData.debugMode) {\r
-                fprintf( debugFP, "Input line exceeded buffer size (source id=%lu)\n", is->id );\r
-            }\r
-\r
-            is->error = ERROR_BROKEN_PIPE; /* [AS] Just any non-successful code! */\r
-            is->count = (DWORD) -1;\r
-            is->next = is->buf;\r
-        }\r
-    }\r
-}\r
-\r
-DWORD\r
-InputThread(LPVOID arg)\r
-{\r
-  InputSource *is;\r
-  OVERLAPPED ovl;\r
-\r
-  is = (InputSource *) arg;\r
-  ovl.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);\r
-  ovl.Internal = ovl.InternalHigh = ovl.Offset = ovl.OffsetHigh = 0;\r
-  while (is->hThread != NULL) {\r
-    is->error = DoReadFile(is->hFile, is->next,\r
-                          INPUT_SOURCE_BUF_SIZE - (is->next - is->buf),\r
-                          &is->count, &ovl);\r
-    if (is->error == NO_ERROR) {\r
-      is->next += is->count;\r
-    } else {\r
-      if (is->error == ERROR_BROKEN_PIPE) {\r
-       /* Correct for MS brain damage.  EOF reading a pipe is not an error. */\r
-       is->count = 0;\r
-      } else {\r
-       is->count = (DWORD) -1;\r
-        /* [AS] The (is->count <= 0) check below is not useful for unsigned values! */\r
-        break; \r
-      }\r
-    }\r
-\r
-    CheckForInputBufferFull( is );\r
-\r
-    SendMessage(hwndMain, WM_USER_Input, 0, (LPARAM) is);\r
-\r
-    if( is->count == ((DWORD) -1) ) break; /* [AS] */\r
-\r
-    if (is->count <= 0) break;  /* Quit on EOF or error */\r
-  }\r
-\r
-  CloseHandle(ovl.hEvent);\r
-  CloseHandle(is->hFile);\r
-\r
-  if (appData.debugMode) {\r
-    fprintf( debugFP, "Input thread terminated (id=%lu, error=%d, count=%ld)\n", is->id, is->error, is->count );\r
-  }\r
-\r
-  return 0;\r
-}\r
-\r
-\r
-/* Windows 95 beta 2 won't let you do overlapped i/o on a console or pipe */\r
-DWORD\r
-NonOvlInputThread(LPVOID arg)\r
-{\r
-  InputSource *is;\r
-  char *p, *q;\r
-  int i;\r
-  char prev;\r
-\r
-  is = (InputSource *) arg;\r
-  while (is->hThread != NULL) {\r
-    is->error = ReadFile(is->hFile, is->next,\r
-                        INPUT_SOURCE_BUF_SIZE - (is->next - is->buf),\r
-                        &is->count, NULL) ? NO_ERROR : GetLastError();\r
-    if (is->error == NO_ERROR) {\r
-      /* Change CRLF to LF */\r
-      if (is->next > is->buf) {\r
-       p = is->next - 1;\r
-       i = is->count + 1;\r
-      } else {\r
-       p = is->next;\r
-       i = is->count;\r
-      }\r
-      q = p;\r
-      prev = NULLCHAR;\r
-      while (i > 0) {\r
-       if (prev == '\r' && *p == '\n') {\r
-         *(q-1) = '\n';\r
-         is->count--;\r
-       } else { \r
-         *q++ = *p;\r
-       }\r
-       prev = *p++;\r
-       i--;\r
-      }\r
-      *q = NULLCHAR;\r
-      is->next = q;\r
-    } else {\r
-      if (is->error == ERROR_BROKEN_PIPE) {\r
-       /* Correct for MS brain damage.  EOF reading a pipe is not an error. */\r
-       is->count = 0; \r
-      } else {\r
-       is->count = (DWORD) -1;\r
-      }\r
-    }\r
-\r
-    CheckForInputBufferFull( is );\r
-\r
-    SendMessage(hwndMain, WM_USER_Input, 0, (LPARAM) is);\r
-\r
-    if( is->count == ((DWORD) -1) ) break; /* [AS] */\r
-\r
-    if (is->count < 0) break;  /* Quit on error */\r
-  }\r
-  CloseHandle(is->hFile);\r
-  return 0;\r
-}\r
-\r
-DWORD\r
-SocketInputThread(LPVOID arg)\r
-{\r
-  InputSource *is;\r
-\r
-  is = (InputSource *) arg;\r
-  while (is->hThread != NULL) {\r
-    is->count = recv(is->sock, is->buf, INPUT_SOURCE_BUF_SIZE, 0);\r
-    if ((int)is->count == SOCKET_ERROR) {\r
-      is->count = (DWORD) -1;\r
-      is->error = WSAGetLastError();\r
-    } else {\r
-      is->error = NO_ERROR;\r
-      is->next += is->count;\r
-      if (is->count == 0 && is->second == is) {\r
-       /* End of file on stderr; quit with no message */\r
-       break;\r
-      }\r
-    }\r
-    SendMessage(hwndMain, WM_USER_Input, 0, (LPARAM) is);\r
-\r
-    if( is->count == ((DWORD) -1) ) break; /* [AS] */\r
-\r
-    if (is->count <= 0) break;  /* Quit on EOF or error */\r
-  }\r
-  return 0;\r
-}\r
-\r
-VOID\r
-InputEvent(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)\r
-{\r
-  InputSource *is;\r
-\r
-  is = (InputSource *) lParam;\r
-  if (is->lineByLine) {\r
-    /* Feed in lines one by one */\r
-    char *p = is->buf;\r
-    char *q = p;\r
-    while (q < is->next) {\r
-      if (*q++ == '\n') {\r
-       (is->func)(is, is->closure, p, q - p, NO_ERROR);\r
-       p = q;\r
-      }\r
-    }\r
-    \r
-    /* Move any partial line to the start of the buffer */\r
-    q = is->buf;\r
-    while (p < is->next) {\r
-      *q++ = *p++;\r
-    }\r
-    is->next = q;\r
-\r
-    if (is->error != NO_ERROR || is->count == 0) {\r
-      /* Notify backend of the error.  Note: If there was a partial\r
-        line at the end, it is not flushed through. */\r
-      (is->func)(is, is->closure, is->buf, is->count, is->error);   \r
-    }\r
-  } else {\r
-    /* Feed in the whole chunk of input at once */\r
-    (is->func)(is, is->closure, is->buf, is->count, is->error);\r
-    is->next = is->buf;\r
-  }\r
-}\r
-\r
-/*---------------------------------------------------------------------------*\\r
- *\r
- *  Menu enables. Used when setting various modes.\r
- *\r
-\*---------------------------------------------------------------------------*/\r
-\r
-typedef struct {\r
-  int item;\r
-  int flags;\r
-} Enables;\r
-\r
-VOID\r
-GreyRevert(Boolean grey)\r
-{ // [HGM] vari: for retracting variations in local mode\r
-  HMENU hmenu = GetMenu(hwndMain);\r
-  EnableMenuItem(hmenu, IDM_Revert, MF_BYCOMMAND|(grey ? MF_GRAYED : MF_ENABLED));\r
-  EnableMenuItem(hmenu, IDM_Annotate, MF_BYCOMMAND|(grey ? MF_GRAYED : MF_ENABLED));\r
-}\r
-\r
-VOID\r
-SetMenuEnables(HMENU hmenu, Enables *enab)\r
-{\r
-  while (enab->item > 0) {\r
-    (void) EnableMenuItem(hmenu, enab->item, enab->flags);\r
-    enab++;\r
-  }\r
-}\r
-\r
-Enables gnuEnables[] = {\r
-  { IDM_MailMove, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_ReloadCMailMsg, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_IcsClient, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_Accept, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_Decline, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_Rematch, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_Adjourn, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_StopExamining, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_StopObserving, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_Upload, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_Revert, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_Annotate, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_NewChat, MF_BYCOMMAND|MF_GRAYED },\r
-\r
-\r
-  // Needed to switch from ncp to GNU mode on Engine Load\r
-  { ACTION_POS, MF_BYPOSITION|MF_ENABLED },\r
-  { IDM_MachineWhite, MF_BYCOMMAND|MF_ENABLED },\r
-  { IDM_MachineBlack, MF_BYCOMMAND|MF_ENABLED },\r
-  { IDM_TwoMachines, MF_BYCOMMAND|MF_ENABLED },\r
-  { IDM_Match, MF_BYCOMMAND|MF_ENABLED },\r
-  { IDM_AnalysisMode, MF_BYCOMMAND|MF_ENABLED },\r
-  { IDM_AnalyzeFile, MF_BYCOMMAND|MF_ENABLED },\r
-  { IDM_Engine1Options, MF_BYCOMMAND|MF_ENABLED },\r
-  { IDM_Engine2Options, MF_BYCOMMAND|MF_ENABLED },\r
-  { IDM_TimeControl, MF_BYCOMMAND|MF_ENABLED },\r
-  { IDM_RetractMove, MF_BYCOMMAND|MF_ENABLED },\r
-  { IDM_MoveNow, MF_BYCOMMAND|MF_ENABLED },\r
-  { IDM_Hint, MF_BYCOMMAND|MF_ENABLED },\r
-  { IDM_Book, MF_BYCOMMAND|MF_ENABLED },\r
-  { -1, -1 }\r
-};\r
-\r
-Enables icsEnables[] = {\r
-  { IDM_MailMove, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_ReloadCMailMsg, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_MachineWhite, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_MachineBlack, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_TwoMachines, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_Match, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_MachineBoth, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_AnalysisMode, MF_BYCOMMAND|MF_ENABLED },\r
-  { IDM_AnalyzeFile, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_TimeControl, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_MoveNow, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_Hint, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_Book, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_LoadProg1, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_LoadProg2, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_IcsOptions, MF_BYCOMMAND|MF_ENABLED },\r
-  { IDM_Engine1Options, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_Engine2Options, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_Annotate, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_Tourney, MF_BYCOMMAND|MF_GRAYED },\r
-  { -1, -1 }\r
-};\r
-\r
-#if ZIPPY\r
-Enables zippyEnables[] = {\r
-  { IDM_MoveNow, MF_BYCOMMAND|MF_ENABLED },\r
-  { IDM_Hint, MF_BYCOMMAND|MF_ENABLED },\r
-  { IDM_Book, MF_BYCOMMAND|MF_ENABLED },\r
-  { IDM_Engine1Options, MF_BYCOMMAND|MF_ENABLED },\r
-  { -1, -1 }\r
-};\r
-#endif\r
-\r
-Enables ncpEnables[] = {\r
-  { IDM_MailMove, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_ReloadCMailMsg, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_MachineWhite, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_MachineBlack, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_TwoMachines, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_Match, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_AnalysisMode, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_AnalyzeFile, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_IcsClient, MF_BYCOMMAND|MF_GRAYED },\r
-  { ACTION_POS, MF_BYPOSITION|MF_GRAYED },\r
-  { IDM_Revert, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_Annotate, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_MoveNow, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_RetractMove, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_TimeControl, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_Hint, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_Book, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_MachineBoth, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_NewChat, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_Engine1Options, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_Engine2Options, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_Sounds, MF_BYCOMMAND|MF_GRAYED },\r
-  { -1, -1 }\r
-};\r
-\r
-Enables trainingOnEnables[] = {\r
-  { IDM_EditComment, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_Comment, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_Pause, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_Forward, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_Backward, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_ToEnd, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_ToStart, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_MoveNow, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_TruncateGame, MF_BYCOMMAND|MF_GRAYED },\r
-  { -1, -1 }\r
-};\r
-\r
-Enables trainingOffEnables[] = {\r
-  { IDM_EditComment, MF_BYCOMMAND|MF_ENABLED },\r
-  { IDM_Comment, MF_BYCOMMAND|MF_ENABLED },\r
-  { IDM_Pause, MF_BYCOMMAND|MF_ENABLED },\r
-  { IDM_Forward, MF_BYCOMMAND|MF_ENABLED },\r
-  { IDM_Backward, MF_BYCOMMAND|MF_ENABLED },\r
-  { IDM_ToEnd, MF_BYCOMMAND|MF_ENABLED },\r
-  { IDM_ToStart, MF_BYCOMMAND|MF_ENABLED },\r
-  { IDM_MoveNow, MF_BYCOMMAND|MF_ENABLED },\r
-  { IDM_TruncateGame, MF_BYCOMMAND|MF_ENABLED },\r
-  { -1, -1 }\r
-};\r
-\r
-/* These modify either ncpEnables or gnuEnables */\r
-Enables cmailEnables[] = {\r
-  { IDM_MailMove, MF_BYCOMMAND|MF_ENABLED },\r
-  { IDM_ReloadCMailMsg, MF_BYCOMMAND|MF_ENABLED },\r
-  { ACTION_POS, MF_BYPOSITION|MF_ENABLED },\r
-  { IDM_CallFlag, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_Draw, MF_BYCOMMAND|MF_ENABLED },\r
-  { IDM_Adjourn, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_Abort, MF_BYCOMMAND|MF_GRAYED },\r
-  { -1, -1 }\r
-};\r
-\r
-Enables machineThinkingEnables[] = {\r
-  { IDM_LoadGame, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_LoadNextGame, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_LoadPrevGame, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_ReloadGame, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_PasteGame, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_LoadPosition, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_LoadNextPosition, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_LoadPrevPosition, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_ReloadPosition, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_PastePosition, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_MachineWhite, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_MachineBlack, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_TwoMachines, MF_BYCOMMAND|MF_GRAYED },\r
-//  { IDM_Match, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_TypeInMove, MF_BYCOMMAND|MF_GRAYED },\r
-  { IDM_RetractMove, MF_BYCOMMAND|MF_GRAYED },\r
-  { -1, -1 }\r
-};\r
-\r
-Enables userThinkingEnables[] = {\r
-  { IDM_LoadGame, MF_BYCOMMAND|MF_ENABLED },\r
-  { IDM_LoadNextGame, MF_BYCOMMAND|MF_ENABLED },\r
-  { IDM_LoadPrevGame, MF_BYCOMMAND|MF_ENABLED },\r
-  { IDM_ReloadGame, MF_BYCOMMAND|MF_ENABLED },\r
-  { IDM_PasteGame, MF_BYCOMMAND|MF_ENABLED },\r
-  { IDM_LoadPosition, MF_BYCOMMAND|MF_ENABLED },\r
-  { IDM_LoadNextPosition, MF_BYCOMMAND|MF_ENABLED },\r
-  { IDM_LoadPrevPosition, MF_BYCOMMAND|MF_ENABLED },\r
-  { IDM_ReloadPosition, MF_BYCOMMAND|MF_ENABLED },\r
-  { IDM_PastePosition, MF_BYCOMMAND|MF_ENABLED },\r
-  { IDM_MachineWhite, MF_BYCOMMAND|MF_ENABLED },\r
-  { IDM_MachineBlack, MF_BYCOMMAND|MF_ENABLED },\r
-  { IDM_TwoMachines, MF_BYCOMMAND|MF_ENABLED },\r
-//  { IDM_Match, MF_BYCOMMAND|MF_ENABLED },\r
-  { IDM_TypeInMove, MF_BYCOMMAND|MF_ENABLED },\r
-  { IDM_RetractMove, MF_BYCOMMAND|MF_ENABLED },\r
-  { -1, -1 }\r
-};\r
-\r
-/*---------------------------------------------------------------------------*\\r
- *\r
- *  Front-end interface functions exported by XBoard.\r
- *  Functions appear in same order as prototypes in frontend.h.\r
- * \r
-\*---------------------------------------------------------------------------*/\r
-VOID\r
-CheckMark(UINT item, int state)\r
-{\r
-    if(item) CheckMenuItem(GetMenu(hwndMain), item, MF_BYCOMMAND|state);\r
-}\r
-\r
-VOID\r
-ModeHighlight()\r
-{\r
-  static UINT prevChecked = 0;\r
-  static int prevPausing = 0;\r
-  UINT nowChecked;\r
-\r
-  if (pausing != prevPausing) {\r
-    prevPausing = pausing;\r
-    (void) CheckMenuItem(GetMenu(hwndMain), IDM_Pause,\r
-                        MF_BYCOMMAND|(pausing ? MF_CHECKED : MF_UNCHECKED));\r
-    if (hwndPause) SetWindowText(hwndPause, pausing ? "C" : "P");\r
-  }\r
-\r
-  switch (gameMode) {\r
-  case BeginningOfGame:\r
-    if (appData.icsActive)\r
-      nowChecked = IDM_IcsClient;\r
-    else if (appData.noChessProgram)\r
-      nowChecked = IDM_EditGame;\r
-    else\r
-      nowChecked = IDM_MachineBlack;\r
-    break;\r
-  case MachinePlaysBlack:\r
-    nowChecked = IDM_MachineBlack;\r
-    break;\r
-  case MachinePlaysWhite:\r
-    nowChecked = IDM_MachineWhite;\r
-    break;\r
-  case TwoMachinesPlay:\r
-    nowChecked = IDM_TwoMachines;\r
-    break;\r
-  case AnalyzeMode:\r
-    nowChecked = IDM_AnalysisMode;\r
-    break;\r
-  case AnalyzeFile:\r
-    nowChecked = IDM_AnalyzeFile;\r
-    break;\r
-  case EditGame:\r
-    nowChecked = IDM_EditGame;\r
-    break;\r
-  case PlayFromGameFile:\r
-    nowChecked = IDM_LoadGame;\r
-    break;\r
-  case EditPosition:\r
-    nowChecked = IDM_EditPosition;\r
-    break;\r
-  case Training:\r
-    nowChecked = IDM_Training;\r
-    break;\r
-  case IcsPlayingWhite:\r
-  case IcsPlayingBlack:\r
-  case IcsObserving:\r
-  case IcsIdle:\r
-    nowChecked = IDM_IcsClient;\r
-    break;\r
-  default:\r
-  case EndOfGame:\r
-    nowChecked = 0;\r
-    break;\r
-  }\r
-  if(prevChecked == IDM_TwoMachines) // [HGM] 'Machine Match' might have gotten disabled when stopping match\r
-    EnableMenuItem(GetMenu(hwndMain), IDM_Match, MF_BYCOMMAND|MF_ENABLED);\r
-  CheckMark(prevChecked, MF_UNCHECKED);\r
-  CheckMark(nowChecked, MF_CHECKED);\r
-  CheckMark(IDM_Match, matchMode && matchGame < appData.matchGames ? MF_CHECKED : MF_UNCHECKED);\r
-\r
-  if (nowChecked == IDM_LoadGame || nowChecked == IDM_Training) {\r
-    (void) EnableMenuItem(GetMenu(hwndMain), IDM_Training, \r
-                         MF_BYCOMMAND|MF_ENABLED);\r
-  } else {\r
-    (void) EnableMenuItem(GetMenu(hwndMain), \r
-                         IDM_Training, MF_BYCOMMAND|MF_GRAYED);\r
-  }\r
-\r
-  prevChecked = nowChecked;\r
-\r
-  /* [DM] icsEngineAnalyze - Do a sceure check too */\r
-  if (appData.icsActive) {\r
-       if (appData.icsEngineAnalyze) {\r
-               CheckMark(IDM_AnalysisMode, MF_CHECKED);\r
-       } else {\r
-               CheckMark(IDM_AnalysisMode, MF_UNCHECKED);\r
-       }\r
-  }\r
-  DisplayLogos(); // [HGM] logos: mode change could have altered logos\r
-}\r
-\r
-VOID\r
-SetICSMode()\r
-{\r
-  HMENU hmenu = GetMenu(hwndMain);\r
-  SetMenuEnables(hmenu, icsEnables);\r
-  EnableMenuItem(GetSubMenu(hmenu, OPTIONS_POS), IDM_IcsOptions,\r
-    MF_BYCOMMAND|MF_ENABLED);\r
-#if ZIPPY\r
-  if (appData.zippyPlay) {\r
-    SetMenuEnables(hmenu, zippyEnables);\r
-    if (!appData.noChessProgram)     /* [DM] icsEngineAnalyze */\r
-         (void) EnableMenuItem(GetMenu(hwndMain), IDM_AnalysisMode,\r
-          MF_BYCOMMAND|MF_ENABLED);\r
-  }\r
-#endif\r
-}\r
-\r
-VOID\r
-SetGNUMode()\r
-{\r
-  SetMenuEnables(GetMenu(hwndMain), gnuEnables);\r
-}\r
-\r
-VOID\r
-SetNCPMode()\r
-{\r
-  HMENU hmenu = GetMenu(hwndMain);\r
-  SetMenuEnables(hmenu, ncpEnables);\r
-    DrawMenuBar(hwndMain);\r
-}\r
-\r
-VOID\r
-SetCmailMode()\r
-{\r
-  SetMenuEnables(GetMenu(hwndMain), cmailEnables);\r
-}\r
-\r
-VOID \r
-SetTrainingModeOn()\r
-{\r
-  int i;\r
-  SetMenuEnables(GetMenu(hwndMain), trainingOnEnables);\r
-  for (i = 0; i < N_BUTTONS; i++) {\r
-    if (buttonDesc[i].hwnd != NULL)\r
-      EnableWindow(buttonDesc[i].hwnd, FALSE);\r
-  }\r
-  CommentPopDown();\r
-}\r
-\r
-VOID SetTrainingModeOff()\r
-{\r
-  int i;\r
-  SetMenuEnables(GetMenu(hwndMain), trainingOffEnables);\r
-  for (i = 0; i < N_BUTTONS; i++) {\r
-    if (buttonDesc[i].hwnd != NULL)\r
-      EnableWindow(buttonDesc[i].hwnd, TRUE);\r
-  }\r
-}\r
-\r
-\r
-VOID\r
-SetUserThinkingEnables()\r
-{\r
-  SetMenuEnables(GetMenu(hwndMain), userThinkingEnables);\r
-}\r
-\r
-VOID\r
-SetMachineThinkingEnables()\r
-{\r
-  HMENU hMenu = GetMenu(hwndMain);\r
-  int flags = MF_BYCOMMAND|MF_ENABLED;\r
-\r
-  SetMenuEnables(hMenu, machineThinkingEnables);\r
-\r
-  if (gameMode == MachinePlaysBlack) {\r
-    (void)EnableMenuItem(hMenu, IDM_MachineBlack, flags);\r
-  } else if (gameMode == MachinePlaysWhite) {\r
-    (void)EnableMenuItem(hMenu, IDM_MachineWhite, flags);\r
-  } else if (gameMode == TwoMachinesPlay) {\r
-    (void)EnableMenuItem(hMenu, matchMode ? IDM_Match : IDM_TwoMachines, flags); // [HGM] match\r
-  }\r
-}\r
-\r
-\r
-VOID\r
-DisplayTitle(char *str)\r
-{\r
-  char title[MSG_SIZ], *host;\r
-  if (str[0] != NULLCHAR) {\r
-    safeStrCpy(title, str, sizeof(title)/sizeof(title[0]) );\r
-  } else if (appData.icsActive) {\r
-    if (appData.icsCommPort[0] != NULLCHAR)\r
-      host = "ICS";\r
-    else \r
-      host = appData.icsHost;\r
-      snprintf(title, MSG_SIZ, "%s: %s", szTitle, host);\r
-  } else if (appData.noChessProgram) {\r
-    safeStrCpy(title, szTitle, sizeof(title)/sizeof(title[0]) );\r
-  } else {\r
-    safeStrCpy(title, szTitle, sizeof(title)/sizeof(title[0]) );\r
-    strcat(title, ": ");\r
-    strcat(title, first.tidy);\r
-  }\r
-  SetWindowText(hwndMain, title);\r
-}\r
-\r
-\r
-VOID\r
-DisplayMessage(char *str1, char *str2)\r
-{\r
-  HDC hdc;\r
-  HFONT oldFont;\r
-  int remain = MESSAGE_TEXT_MAX - 1;\r
-  int len;\r
-\r
-  moveErrorMessageUp = FALSE; /* turned on later by caller if needed */\r
-  messageText[0] = NULLCHAR;\r
-  if (*str1) {\r
-    len = strlen(str1);\r
-    if (len > remain) len = remain;\r
-    strncpy(messageText, str1, len);\r
-    messageText[len] = NULLCHAR;\r
-    remain -= len;\r
-  }\r
-  if (*str2 && remain >= 2) {\r
-    if (*str1) {\r
-      strcat(messageText, "  ");\r
-      remain -= 2;\r
-    }\r
-    len = strlen(str2);\r
-    if (len > remain) len = remain;\r
-    strncat(messageText, str2, len);\r
-  }\r
-  messageText[MESSAGE_TEXT_MAX - 1] = NULLCHAR;\r
-  safeStrCpy(lastMsg, messageText, MSG_SIZ);\r
-\r
-  if (hwndMain == NULL || IsIconic(hwndMain)) return;\r
-\r
-  SAYMACHINEMOVE();\r
-\r
-  hdc = GetDC(hwndMain);\r
-  oldFont = SelectObject(hdc, font[boardSize][MESSAGE_FONT]->hf);\r
-  ExtTextOut(hdc, messageRect.left, messageRect.top, ETO_CLIPPED|ETO_OPAQUE,\r
-            &messageRect, messageText, strlen(messageText), NULL);\r
-  (void) SelectObject(hdc, oldFont);\r
-  (void) ReleaseDC(hwndMain, hdc);\r
-}\r
-\r
-VOID\r
-DisplayError(char *str, int error)\r
-{\r
-  char buf[MSG_SIZ*2], buf2[MSG_SIZ];\r
-  int len;\r
-\r
-  if (error == 0) {\r
-    safeStrCpy(buf, str, sizeof(buf)/sizeof(buf[0]) );\r
-  } else {\r
-    len = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,\r
-                       NULL, error, LANG_NEUTRAL,\r
-                       (LPSTR) buf2, MSG_SIZ, NULL);\r
-    if (len > 0) {\r
-      snprintf(buf, 2*MSG_SIZ, "%s:\n%s", str, buf2);\r
-    } else {\r
-      ErrorMap *em = errmap;\r
-      while (em->err != 0 && em->err != error) em++;\r
-      if (em->err != 0) {\r
-       snprintf(buf, 2*MSG_SIZ, "%s:\n%s", str, em->msg);\r
-      } else {\r
-       snprintf(buf, 2*MSG_SIZ, "%s:\nError code %d", str, error);\r
-      }\r
-    }\r
-  }\r
-  \r
-  ErrorPopUp(_("Error"), buf);\r
-}\r
-\r
-\r
-VOID\r
-DisplayMoveError(char *str)\r
-{\r
-  fromX = fromY = -1;\r
-  ClearHighlights();\r
-  DrawPosition(FALSE, NULL);\r
-  if (appData.popupMoveErrors) {\r
-    ErrorPopUp(_("Error"), str);\r
-  } else {\r
-    DisplayMessage(str, "");\r
-    moveErrorMessageUp = TRUE;\r
-  }\r
-}\r
-\r
-VOID\r
-DisplayFatalError(char *str, int error, int exitStatus)\r
-{\r
-  char buf[2*MSG_SIZ], buf2[MSG_SIZ];\r
-  int len;\r
-  char *label = exitStatus ? _("Fatal Error") : _("Exiting");\r
-\r
-  if (error != 0) {\r
-    len = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,\r
-                       NULL, error, LANG_NEUTRAL,\r
-                       (LPSTR) buf2, MSG_SIZ, NULL);\r
-    if (len > 0) {\r
-      snprintf(buf, 2*MSG_SIZ, "%s:\n%s", str, buf2);\r
-    } else {\r
-      ErrorMap *em = errmap;\r
-      while (em->err != 0 && em->err != error) em++;\r
-      if (em->err != 0) {\r
-       snprintf(buf, 2*MSG_SIZ, "%s:\n%s", str, em->msg);\r
-      } else {\r
-       snprintf(buf, 2*MSG_SIZ, "%s:\nError code %d", str, error);\r
-      }\r
-    }\r
-    str = buf;\r
-  }\r
-  if (appData.debugMode) {\r
-    fprintf(debugFP, "%s: %s\n", label, str);\r
-  }\r
-  if (appData.popupExitMessage) {\r
-    if(appData.icsActive) SendToICS("logout\n"); // [HGM] make sure no new games will be started!\r
-    (void) MessageBox(hwndMain, str, label, MB_OK|\r
-                     (exitStatus ? MB_ICONSTOP : MB_ICONINFORMATION));\r
-  }\r
-  ExitEvent(exitStatus);\r
-}\r
-\r
-\r
-VOID\r
-DisplayInformation(char *str)\r
-{\r
-  (void) MessageBox(hwndMain, str, _("Information"), MB_OK|MB_ICONINFORMATION);\r
-}\r
-\r
-\r
-VOID\r
-DisplayNote(char *str)\r
-{\r
-  ErrorPopUp(_("Note"), str);\r
-}\r
-\r
-\r
-typedef struct {\r
-  char *title, *question, *replyPrefix;\r
-  ProcRef pr;\r
-} QuestionParams;\r
-\r
-LRESULT CALLBACK\r
-QuestionDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
-{\r
-  static QuestionParams *qp;\r
-  char reply[MSG_SIZ];\r
-  int len, err;\r
-\r
-  switch (message) {\r
-  case WM_INITDIALOG:\r
-    qp = (QuestionParams *) lParam;\r
-    CenterWindow(hDlg, GetWindow(hDlg, GW_OWNER));\r
-    Translate(hDlg, DLG_Question);\r
-    SetWindowText(hDlg, qp->title);\r
-    SetDlgItemText(hDlg, OPT_QuestionText, qp->question);\r
-    SetFocus(GetDlgItem(hDlg, OPT_QuestionInput));\r
-    return FALSE;\r
-\r
-  case WM_COMMAND:\r
-    switch (LOWORD(wParam)) {\r
-    case IDOK:\r
-      safeStrCpy(reply, qp->replyPrefix, sizeof(reply)/sizeof(reply[0]) );\r
-      if (*reply) strcat(reply, " ");\r
-      len = strlen(reply);\r
-      GetDlgItemText(hDlg, OPT_QuestionInput, reply + len, sizeof(reply) - len);\r
-      strcat(reply, "\n");\r
-      OutputToProcess(qp->pr, reply, strlen(reply), &err);\r
-      EndDialog(hDlg, TRUE);\r
-      if (err) DisplayFatalError(_("Error writing to chess program"), err, 1);\r
-      return TRUE;\r
-    case IDCANCEL:\r
-      EndDialog(hDlg, FALSE);\r
-      return TRUE;\r
-    default:\r
-      break;\r
-    }\r
-    break;\r
-  }\r
-  return FALSE;\r
-}\r
-\r
-VOID\r
-AskQuestion(char* title, char *question, char *replyPrefix, ProcRef pr)\r
-{\r
-    QuestionParams qp;\r
-    FARPROC lpProc;\r
-    \r
-    qp.title = title;\r
-    qp.question = question;\r
-    qp.replyPrefix = replyPrefix;\r
-    qp.pr = pr;\r
-    lpProc = MakeProcInstance((FARPROC)QuestionDialog, hInst);\r
-    DialogBoxParam(hInst, MAKEINTRESOURCE(DLG_Question),\r
-      hwndMain, (DLGPROC)lpProc, (LPARAM)&qp);\r
-    FreeProcInstance(lpProc);\r
-}\r
-\r
-/* [AS] Pick FRC position */\r
-LRESULT CALLBACK NewGameFRC_Proc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
-{\r
-    static int * lpIndexFRC;\r
-    BOOL index_is_ok;\r
-    char buf[16];\r
-\r
-    switch( message )\r
-    {\r
-    case WM_INITDIALOG:\r
-        lpIndexFRC = (int *) lParam;\r
-\r
-        CenterWindow(hDlg, GetWindow(hDlg, GW_OWNER));\r
-        Translate(hDlg, DLG_NewGameFRC);\r
-\r
-        SendDlgItemMessage( hDlg, IDC_NFG_Edit, EM_SETLIMITTEXT, sizeof(buf)-1, 0 );\r
-        SetDlgItemInt( hDlg, IDC_NFG_Edit, *lpIndexFRC, TRUE );\r
-        SendDlgItemMessage( hDlg, IDC_NFG_Edit, EM_SETSEL, 0, -1 );\r
-        SetFocus(GetDlgItem(hDlg, IDC_NFG_Edit));\r
-\r
-        break;\r
-\r
-    case WM_COMMAND:\r
-        switch( LOWORD(wParam) ) {\r
-        case IDOK:\r
-            *lpIndexFRC = GetDlgItemInt(hDlg, IDC_NFG_Edit, &index_is_ok, TRUE );\r
-            EndDialog( hDlg, 0 );\r
-           shuffleOpenings = TRUE; /* [HGM] shuffle: switch shuffling on for as long as we stay in current variant */\r
-            return TRUE;\r
-        case IDCANCEL:\r
-            EndDialog( hDlg, 1 );   \r
-            return TRUE;\r
-        case IDC_NFG_Edit:\r
-            if( HIWORD(wParam) == EN_CHANGE ) {\r
-                GetDlgItemInt(hDlg, IDC_NFG_Edit, &index_is_ok, TRUE );\r
-\r
-                EnableWindow( GetDlgItem(hDlg, IDOK), index_is_ok );\r
-            }\r
-            return TRUE;\r
-        case IDC_NFG_Random:\r
-         snprintf( buf, sizeof(buf)/sizeof(buf[0]), "%d", myrandom() ); /* [HGM] shuffle: no longer limit to 960 */\r
-            SetDlgItemText(hDlg, IDC_NFG_Edit, buf );\r
-            return TRUE;\r
-        }\r
-\r
-        break;\r
-    }\r
-\r
-    return FALSE;\r
-}\r
-\r
-int NewGameFRC()\r
-{\r
-    int result;\r
-    int index = appData.defaultFrcPosition;\r
-    FARPROC lpProc = MakeProcInstance( (FARPROC) NewGameFRC_Proc, hInst );\r
-\r
-    result = DialogBoxParam( hInst, MAKEINTRESOURCE(DLG_NewGameFRC), hwndMain, (DLGPROC)lpProc, (LPARAM)&index );\r
-\r
-    if( result == 0 ) {\r
-        appData.defaultFrcPosition = index;\r
-    }\r
-\r
-    return result;\r
-}\r
-\r
-/* [AS] Game list options. Refactored by HGM */\r
-\r
-HWND gameListOptionsDialog;\r
-\r
-// low-level front-end: clear text edit / list widget\r
-void\r
-\r
-GLT_ClearList()\r
-{\r
-    SendDlgItemMessage( gameListOptionsDialog, IDC_GameListTags, LB_RESETCONTENT, 0, 0 );\r
-}\r
-\r
-// low-level front-end: clear text edit / list widget\r
-void\r
-GLT_DeSelectList()\r
-{\r
-    SendDlgItemMessage( gameListOptionsDialog, IDC_GameListTags, LB_SETCURSEL, 0, 0 );\r
-}\r
-\r
-// low-level front-end: append line to text edit / list widget\r
-void\r
-GLT_AddToList( char *name )\r
-{\r
-    if( name != 0 ) {\r
-            SendDlgItemMessage( gameListOptionsDialog, IDC_GameListTags, LB_ADDSTRING, 0, (LPARAM) name );\r
-    }\r
-}\r
-\r
-// low-level front-end: get line from text edit / list widget\r
-Boolean\r
-GLT_GetFromList( int index, char *name )\r
-{\r
-    if( name != 0 ) {\r
-           if( SendDlgItemMessage( gameListOptionsDialog, IDC_GameListTags, LB_GETTEXT, index, (LPARAM) name ) != LB_ERR )\r
-               return TRUE;\r
-    }\r
-    return FALSE;\r
-}\r
-\r
-void GLT_MoveSelection( HWND hDlg, int delta )\r
-{\r
-    int idx1 = (int) SendDlgItemMessage( hDlg, IDC_GameListTags, LB_GETCURSEL, 0, 0 );\r
-    int idx2 = idx1 + delta;\r
-    int count = (int) SendDlgItemMessage( hDlg, IDC_GameListTags, LB_GETCOUNT, 0, 0 );\r
-\r
-    if( idx1 >=0 && idx1 < count && idx2 >= 0 && idx2 < count ) {\r
-        char buf[128];\r
-\r
-        SendDlgItemMessage( hDlg, IDC_GameListTags, LB_GETTEXT, idx1, (LPARAM) buf );\r
-        SendDlgItemMessage( hDlg, IDC_GameListTags, LB_DELETESTRING, idx1, 0 );\r
-        SendDlgItemMessage( hDlg, IDC_GameListTags, LB_INSERTSTRING, idx2, (LPARAM) buf );\r
-        SendDlgItemMessage( hDlg, IDC_GameListTags, LB_SETCURSEL, idx2, 0 );\r
-    }\r
-}\r
-\r
-LRESULT CALLBACK GameListOptions_Proc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
-{\r
-    switch( message )\r
-    {\r
-    case WM_INITDIALOG:\r
-       gameListOptionsDialog = hDlg; // [HGM] pass through global to keep out off back-end\r
-        \r
-        CenterWindow(hDlg, GetWindow(hDlg, GW_OWNER));\r
-        Translate(hDlg, DLG_GameListOptions);\r
-\r
-        /* Initialize list */\r
-        GLT_TagsToList( lpUserGLT );\r
-\r
-        SetFocus( GetDlgItem(hDlg, IDC_GameListTags) );\r
-\r
-        break;\r
-\r
-    case WM_COMMAND:\r
-        switch( LOWORD(wParam) ) {\r
-        case IDOK:\r
-           GLT_ParseList();\r
-            EndDialog( hDlg, 0 );\r
-            return TRUE;\r
-        case IDCANCEL:\r
-            EndDialog( hDlg, 1 );\r
-            return TRUE;\r
-\r
-        case IDC_GLT_Default:\r
-            GLT_TagsToList( GLT_DEFAULT_TAGS );\r
-            return TRUE;\r
-\r
-        case IDC_GLT_Restore:\r
-            GLT_TagsToList( appData.gameListTags );\r
-            return TRUE;\r
-\r
-        case IDC_GLT_Up:\r
-            GLT_MoveSelection( hDlg, -1 );\r
-            return TRUE;\r
-\r
-        case IDC_GLT_Down:\r
-            GLT_MoveSelection( hDlg, +1 );\r
-            return TRUE;\r
-        }\r
-\r
-        break;\r
-    }\r
-\r
-    return FALSE;\r
-}\r
-\r
-int GameListOptions()\r
-{\r
-    int result;\r
-    FARPROC lpProc = MakeProcInstance( (FARPROC) GameListOptions_Proc, hInst );\r
-\r
-      safeStrCpy( lpUserGLT, appData.gameListTags ,LPUSERGLT_SIZE ); \r
-\r
-    result = DialogBoxParam( hInst, MAKEINTRESOURCE(DLG_GameListOptions), hwndMain, (DLGPROC)lpProc, (LPARAM)lpUserGLT );\r
-\r
-    if( result == 0 ) {\r
-        char *oldTags = appData.gameListTags;\r
-        /* [AS] Memory leak here! */\r
-        appData.gameListTags = strdup( lpUserGLT ); \r
-        if(strcmp(oldTags, appData.gameListTags)) // [HGM] redo Game List when we changed something\r
-            GameListToListBox(NULL, TRUE, ".", NULL, FALSE, FALSE); // "." as filter is kludge to select all\r
-    }\r
-\r
-    return result;\r
-}\r
-\r
-VOID\r
-DisplayIcsInteractionTitle(char *str)\r
-{\r
-  char consoleTitle[MSG_SIZ];\r
-\r
-    snprintf(consoleTitle, MSG_SIZ, "%s: %s", szConsoleTitle, str);\r
-    SetWindowText(hwndConsole, consoleTitle);\r
-\r
-    if(appData.chatBoxes) { // [HGM] chat: open chat boxes\r
-      char buf[MSG_SIZ], *p = buf, *q;\r
-       safeStrCpy(buf, appData.chatBoxes, sizeof(buf)/sizeof(buf[0]) );\r
-      do {\r
-       q = strchr(p, ';');\r
-       if(q) *q++ = 0;\r
-       if(*p) ChatPopUp(p);\r
-      } while(p=q);\r
-    }\r
-\r
-    SetActiveWindow(hwndMain);\r
-}\r
-\r
-void\r
-DrawPosition(int fullRedraw, Board board)\r
-{\r
-  HDCDrawPosition(NULL, (BOOLEAN) fullRedraw, board); \r
-}\r
-\r
-void NotifyFrontendLogin()\r
-{\r
-       if (hwndConsole)\r
-               UpdateICSWidth(GetDlgItem(hwndConsole, OPT_ConsoleText));\r
-}\r
-\r
-VOID\r
-ResetFrontEnd()\r
-{\r
-  fromX = fromY = -1;\r
-  if (dragInfo.pos.x != -1 || dragInfo.pos.y != -1) {\r
-    dragInfo.pos.x = dragInfo.pos.y = -1;\r
-    dragInfo.pos.x = dragInfo.pos.y = -1;\r
-    dragInfo.lastpos = dragInfo.pos;\r
-    dragInfo.start.x = dragInfo.start.y = -1;\r
-    dragInfo.from = dragInfo.start;\r
-    ReleaseCapture();\r
-    DrawPosition(TRUE, NULL);\r
-  }\r
-  TagsPopDown();\r
-}\r
-\r
-\r
-VOID\r
-CommentPopUp(char *title, char *str)\r
-{\r
-  HWND hwnd = GetActiveWindow();\r
-  EitherCommentPopUp(currentMove, title, str, FALSE); // [HGM] vari: fake move index, rather than 0\r
-  SAY(str);\r
-  SetActiveWindow(hwnd);\r
-}\r
-\r
-VOID\r
-CommentPopDown(void)\r
-{\r
-  CheckMenuItem(GetMenu(hwndMain), IDM_Comment, MF_UNCHECKED);\r
-  if (commentDialog) {\r
-    ShowWindow(commentDialog, SW_HIDE);\r
-  }\r
-  commentUp = FALSE;\r
-}\r
-\r
-VOID\r
-EditCommentPopUp(int index, char *title, char *str)\r
-{\r
-  EitherCommentPopUp(index, title, str, TRUE);\r
-}\r
-\r
-\r
-int\r
-Roar()\r
-{\r
-  MyPlaySound(&sounds[(int)SoundRoar]);\r
-  return 1;\r
-}\r
-\r
-VOID\r
-RingBell()\r
-{\r
-  MyPlaySound(&sounds[(int)SoundMove]);\r
-}\r
-\r
-VOID PlayIcsWinSound()\r
-{\r
-  MyPlaySound(&sounds[(int)SoundIcsWin]);\r
-}\r
-\r
-VOID PlayIcsLossSound()\r
-{\r
-  MyPlaySound(&sounds[(int)SoundIcsLoss]);\r
-}\r
-\r
-VOID PlayIcsDrawSound()\r
-{\r
-  MyPlaySound(&sounds[(int)SoundIcsDraw]);\r
-}\r
-\r
-VOID PlayIcsUnfinishedSound()\r
-{\r
-  MyPlaySound(&sounds[(int)SoundIcsUnfinished]);\r
-}\r
-\r
-VOID\r
-PlayAlarmSound()\r
-{\r
-  MyPlaySound(&sounds[(int)SoundAlarm]);\r
-}\r
-\r
-VOID\r
-PlayTellSound()\r
-{\r
-  MyPlaySound(&textAttribs[ColorTell].sound);\r
-}\r
-\r
-\r
-VOID\r
-EchoOn()\r
-{\r
-  HWND hInput;\r
-  consoleEcho = TRUE;\r
-  hInput = GetDlgItem(hwndConsole, OPT_ConsoleInput);\r
-  SendMessage(hInput, EM_SETCHARFORMAT, SCF_ALL, (LPARAM)&consoleCF);\r
-  SendMessage(hInput, EM_SETBKGNDCOLOR, FALSE, consoleBackgroundColor);\r
-}\r
-\r
-\r
-VOID\r
-EchoOff()\r
-{\r
-  CHARFORMAT cf;\r
-  HWND hInput;\r
-  consoleEcho = FALSE;\r
-  hInput = GetDlgItem(hwndConsole, OPT_ConsoleInput);\r
-  /* This works OK: set text and background both to the same color */\r
-  cf = consoleCF;\r
-  cf.crTextColor = COLOR_ECHOOFF;\r
-  SendMessage(hInput, EM_SETCHARFORMAT, SCF_ALL, (LPARAM)&cf);\r
-  SendMessage(hInput, EM_SETBKGNDCOLOR, FALSE, cf.crTextColor);\r
-}\r
-\r
-/* No Raw()...? */\r
-\r
-void Colorize(ColorClass cc, int continuation)\r
-{\r
-  currentColorClass = cc;\r
-  consoleCF.dwMask = CFM_COLOR|CFM_BOLD|CFM_ITALIC|CFM_UNDERLINE|CFM_STRIKEOUT;\r
-  consoleCF.crTextColor = textAttribs[cc].color;\r
-  consoleCF.dwEffects = textAttribs[cc].effects;\r
-  if (!continuation) MyPlaySound(&textAttribs[cc].sound);\r
-}\r
-\r
-char *\r
-UserName()\r
-{\r
-  static char buf[MSG_SIZ];\r
-  DWORD bufsiz = MSG_SIZ;\r
-\r
-  if(appData.userName != NULL && appData.userName[0] != 0) { \r
-       return appData.userName; /* [HGM] username: prefer name selected by user over his system login */\r
-  }\r
-  if (!GetUserName(buf, &bufsiz)) {\r
-    /*DisplayError("Error getting user name", GetLastError());*/\r
-    safeStrCpy(buf, _("User"), sizeof(buf)/sizeof(buf[0]) );\r
-  }\r
-  return buf;\r
-}\r
-\r
-char *\r
-HostName()\r
-{\r
-  static char buf[MSG_SIZ];\r
-  DWORD bufsiz = MSG_SIZ;\r
-\r
-  if (!GetComputerName(buf, &bufsiz)) {\r
-    /*DisplayError("Error getting host name", GetLastError());*/\r
-    safeStrCpy(buf, _("Unknown"), sizeof(buf)/sizeof(buf[0]) );\r
-  }\r
-  return buf;\r
-}\r
-\r
-\r
-int\r
-ClockTimerRunning()\r
-{\r
-  return clockTimerEvent != 0;\r
-}\r
-\r
-int\r
-StopClockTimer()\r
-{\r
-  if (clockTimerEvent == 0) return FALSE;\r
-  KillTimer(hwndMain, clockTimerEvent);\r
-  clockTimerEvent = 0;\r
-  return TRUE;\r
-}\r
-\r
-void\r
-StartClockTimer(long millisec)\r
-{\r
-  clockTimerEvent = SetTimer(hwndMain, (UINT) CLOCK_TIMER_ID,\r
-                            (UINT) millisec, NULL);\r
-}\r
-\r
-void\r
-DisplayWhiteClock(long timeRemaining, int highlight)\r
-{\r
-  HDC hdc;\r
-  char *flag = whiteFlag && gameMode == TwoMachinesPlay ? "(!)" : "";\r
-\r
-  if(appData.noGUI) return;\r
-  hdc = GetDC(hwndMain);\r
-  if (!IsIconic(hwndMain)) {\r
-    DisplayAClock(hdc, timeRemaining, highlight, \r
-                       flipClock ? &blackRect : &whiteRect, _("White"), flag);\r
-  }\r
-  if (highlight && iconCurrent == iconBlack) {\r
-    iconCurrent = iconWhite;\r
-    PostMessage(hwndMain, WM_SETICON, (WPARAM) TRUE, (LPARAM) iconCurrent);\r
-    if (IsIconic(hwndMain)) {\r
-      DrawIcon(hdc, 2, 2, iconCurrent);\r
-    }\r
-  }\r
-  (void) ReleaseDC(hwndMain, hdc);\r
-  if (hwndConsole)\r
-    PostMessage(hwndConsole, WM_SETICON, (WPARAM) TRUE, (LPARAM) iconCurrent);\r
-}\r
-\r
-void\r
-DisplayBlackClock(long timeRemaining, int highlight)\r
-{\r
-  HDC hdc;\r
-  char *flag = blackFlag && gameMode == TwoMachinesPlay ? "(!)" : "";\r
-\r
-\r
-  if(appData.noGUI) return;\r
-  hdc = GetDC(hwndMain);\r
-  if (!IsIconic(hwndMain)) {\r
-    DisplayAClock(hdc, timeRemaining, highlight, \r
-                       flipClock ? &whiteRect : &blackRect, _("Black"), flag);\r
-  }\r
-  if (highlight && iconCurrent == iconWhite) {\r
-    iconCurrent = iconBlack;\r
-    PostMessage(hwndMain, WM_SETICON, (WPARAM) TRUE, (LPARAM) iconCurrent);\r
-    if (IsIconic(hwndMain)) {\r
-      DrawIcon(hdc, 2, 2, iconCurrent);\r
-    }\r
-  }\r
-  (void) ReleaseDC(hwndMain, hdc);\r
-  if (hwndConsole)\r
-    PostMessage(hwndConsole, WM_SETICON, (WPARAM) TRUE, (LPARAM) iconCurrent);\r
-}\r
-\r
-\r
-int\r
-LoadGameTimerRunning()\r
-{\r
-  return loadGameTimerEvent != 0;\r
-}\r
-\r
-int\r
-StopLoadGameTimer()\r
-{\r
-  if (loadGameTimerEvent == 0) return FALSE;\r
-  KillTimer(hwndMain, loadGameTimerEvent);\r
-  loadGameTimerEvent = 0;\r
-  return TRUE;\r
-}\r
-\r
-void\r
-StartLoadGameTimer(long millisec)\r
-{\r
-  loadGameTimerEvent = SetTimer(hwndMain, (UINT) LOAD_GAME_TIMER_ID,\r
-                               (UINT) millisec, NULL);\r
-}\r
-\r
-void\r
-AutoSaveGame()\r
-{\r
-  char *defName;\r
-  FILE *f;\r
-  char fileTitle[MSG_SIZ];\r
-\r
-  defName = DefaultFileName(appData.oldSaveStyle ? "gam" : "pgn");\r
-  f = OpenFileDialog(hwndMain, "a", defName,\r
-                    appData.oldSaveStyle ? "gam" : "pgn",\r
-                    GAME_FILT, \r
-                    _("Save Game to File"), NULL, fileTitle, NULL);\r
-  if (f != NULL) {\r
-    SaveGame(f, 0, "");\r
-    fclose(f);\r
-  }\r
-}\r
-\r
-\r
-void\r
-ScheduleDelayedEvent(DelayedEventCallback cb, long millisec)\r
-{\r
-  if (delayedTimerEvent != 0) {\r
-    if (appData.debugMode && cb != delayedTimerCallback) { // [HGM] alive: not too much debug\r
-      fprintf(debugFP, "ScheduleDelayedEvent: event already scheduled\n");\r
-    }\r
-    KillTimer(hwndMain, delayedTimerEvent);\r
-    delayedTimerEvent = 0;\r
-    if(delayedTimerCallback != cb) // [HGM] alive: do not "flush" same event, just postpone it\r
-    delayedTimerCallback();\r
-  }\r
-  delayedTimerCallback = cb;\r
-  delayedTimerEvent = SetTimer(hwndMain, (UINT) DELAYED_TIMER_ID,\r
-                               (UINT) millisec, NULL);\r
-}\r
-\r
-DelayedEventCallback\r
-GetDelayedEvent()\r
-{\r
-  if (delayedTimerEvent) {\r
-    return delayedTimerCallback;\r
-  } else {\r
-    return NULL;\r
-  }\r
-}\r
-\r
-void\r
-CancelDelayedEvent()\r
-{\r
-  if (delayedTimerEvent) {\r
-    KillTimer(hwndMain, delayedTimerEvent);\r
-    delayedTimerEvent = 0;\r
-  }\r
-}\r
-\r
-DWORD GetWin32Priority(int nice)\r
-{ // [HGM] nice: translate Unix nice() value to indows priority class. (Code stolen from Polyglot 1.4w11)\r
-/*\r
-REALTIME_PRIORITY_CLASS     0x00000100\r
-HIGH_PRIORITY_CLASS         0x00000080\r
-ABOVE_NORMAL_PRIORITY_CLASS 0x00008000\r
-NORMAL_PRIORITY_CLASS       0x00000020\r
-BELOW_NORMAL_PRIORITY_CLASS 0x00004000\r
-IDLE_PRIORITY_CLASS         0x00000040\r
-*/\r
-        if (nice < -15) return 0x00000080;\r
-        if (nice < 0)   return 0x00008000;\r
-\r
-        if (nice == 0)  return 0x00000020;\r
-        if (nice < 15)  return 0x00004000;\r
-        return 0x00000040;\r
-}\r
-\r
-void RunCommand(char *cmdLine)\r
-{\r
-  /* Now create the child process. */\r
-  STARTUPINFO siStartInfo;\r
-  PROCESS_INFORMATION piProcInfo;\r
-\r
-  siStartInfo.cb = sizeof(STARTUPINFO);\r
-  siStartInfo.lpReserved = NULL;\r
-  siStartInfo.lpDesktop = NULL;\r
-  siStartInfo.lpTitle = NULL;\r
-  siStartInfo.dwFlags = STARTF_USESTDHANDLES;\r
-  siStartInfo.cbReserved2 = 0;\r
-  siStartInfo.lpReserved2 = NULL;\r
-  siStartInfo.hStdInput = NULL;\r
-  siStartInfo.hStdOutput = NULL;\r
-  siStartInfo.hStdError = NULL;\r
-\r
-  CreateProcess(NULL,\r
-               cmdLine,           /* command line */\r
-               NULL,      /* process security attributes */\r
-               NULL,      /* primary thread security attrs */\r
-               TRUE,      /* handles are inherited */\r
-               DETACHED_PROCESS|CREATE_NEW_PROCESS_GROUP,\r
-               NULL,      /* use parent's environment */\r
-               NULL,\r
-               &siStartInfo, /* STARTUPINFO pointer */\r
-               &piProcInfo); /* receives PROCESS_INFORMATION */\r
-\r
-  CloseHandle(piProcInfo.hThread);\r
-}\r
-\r
-/* Start a child process running the given program.\r
-   The process's standard output can be read from "from", and its\r
-   standard input can be written to "to".\r
-   Exit with fatal error if anything goes wrong.\r
-   Returns an opaque pointer that can be used to destroy the process\r
-   later.\r
-*/\r
-int\r
-StartChildProcess(char *cmdLine, char *dir, ProcRef *pr)\r
-{\r
-#define BUFSIZE 4096\r
-\r
-  HANDLE hChildStdinRd, hChildStdinWr,\r
-    hChildStdoutRd, hChildStdoutWr;\r
-  HANDLE hChildStdinWrDup, hChildStdoutRdDup;\r
-  SECURITY_ATTRIBUTES saAttr;\r
-  BOOL fSuccess;\r
-  PROCESS_INFORMATION piProcInfo;\r
-  STARTUPINFO siStartInfo;\r
-  ChildProc *cp;\r
-  char buf[MSG_SIZ];\r
-  DWORD err;\r
-\r
-  if (appData.debugMode) {\r
-    fprintf(debugFP, "StartChildProcess (dir=\"%s\") %s\n", dir, cmdLine);\r
-  }\r
-\r
-  *pr = NoProc;\r
-\r
-  /* Set the bInheritHandle flag so pipe handles are inherited. */\r
-  saAttr.nLength = sizeof(SECURITY_ATTRIBUTES);\r
-  saAttr.bInheritHandle = TRUE;\r
-  saAttr.lpSecurityDescriptor = NULL;\r
-\r
-  /*\r
-   * The steps for redirecting child's STDOUT:\r
-   *     1. Create anonymous pipe to be STDOUT for child.\r
-   *     2. Create a noninheritable duplicate of read handle,\r
-   *         and close the inheritable read handle.\r
-   */\r
-\r
-  /* Create a pipe for the child's STDOUT. */\r
-  if (! CreatePipe(&hChildStdoutRd, &hChildStdoutWr, &saAttr, 0)) {\r
-    return GetLastError();\r
-  }\r
-\r
-  /* Duplicate the read handle to the pipe, so it is not inherited. */\r
-  fSuccess = DuplicateHandle(GetCurrentProcess(), hChildStdoutRd,\r
-                            GetCurrentProcess(), &hChildStdoutRdDup, 0,\r
-                            FALSE,     /* not inherited */\r
-                            DUPLICATE_SAME_ACCESS);\r
-  if (! fSuccess) {\r
-    return GetLastError();\r
-  }\r
-  CloseHandle(hChildStdoutRd);\r
-\r
-  /*\r
-   * The steps for redirecting child's STDIN:\r
-   *     1. Create anonymous pipe to be STDIN for child.\r
-   *     2. Create a noninheritable duplicate of write handle,\r
-   *         and close the inheritable write handle.\r
-   */\r
-\r
-  /* Create a pipe for the child's STDIN. */\r
-  if (! CreatePipe(&hChildStdinRd, &hChildStdinWr, &saAttr, 0)) {\r
-    return GetLastError();\r
-  }\r
-\r
-  /* Duplicate the write handle to the pipe, so it is not inherited. */\r
-  fSuccess = DuplicateHandle(GetCurrentProcess(), hChildStdinWr,\r
-                            GetCurrentProcess(), &hChildStdinWrDup, 0,\r
-                            FALSE,     /* not inherited */\r
-                            DUPLICATE_SAME_ACCESS);\r
-  if (! fSuccess) {\r
-    return GetLastError();\r
-  }\r
-  CloseHandle(hChildStdinWr);\r
-\r
-  /* Arrange to (1) look in dir for the child .exe file, and\r
-   * (2) have dir be the child's working directory.  Interpret\r
-   * dir relative to the directory WinBoard loaded from. */\r
-  GetCurrentDirectory(MSG_SIZ, buf);\r
-  SetCurrentDirectory(installDir);\r
-  SetCurrentDirectory(dir);\r
-\r
-  /* Now create the child process. */\r
-\r
-  siStartInfo.cb = sizeof(STARTUPINFO);\r
-  siStartInfo.lpReserved = NULL;\r
-  siStartInfo.lpDesktop = NULL;\r
-  siStartInfo.lpTitle = NULL;\r
-  siStartInfo.dwFlags = STARTF_USESTDHANDLES;\r
-  siStartInfo.cbReserved2 = 0;\r
-  siStartInfo.lpReserved2 = NULL;\r
-  siStartInfo.hStdInput = hChildStdinRd;\r
-  siStartInfo.hStdOutput = hChildStdoutWr;\r
-  siStartInfo.hStdError = hChildStdoutWr;\r
-\r
-  fSuccess = CreateProcess(NULL,\r
-                          cmdLine,        /* command line */\r
-                          NULL,           /* process security attributes */\r
-                          NULL,           /* primary thread security attrs */\r
-                          TRUE,           /* handles are inherited */\r
-                          DETACHED_PROCESS|CREATE_NEW_PROCESS_GROUP,\r
-                          NULL,           /* use parent's environment */\r
-                          NULL,\r
-                          &siStartInfo, /* STARTUPINFO pointer */\r
-                          &piProcInfo); /* receives PROCESS_INFORMATION */\r
-\r
-  err = GetLastError();\r
-  SetCurrentDirectory(buf); /* return to prev directory */\r
-  if (! fSuccess) {\r
-    return err;\r
-  }\r
-\r
-  if (appData.niceEngines){ // [HGM] nice: adjust engine proc priority\r
-    if(appData.debugMode) fprintf(debugFP, "nice engine proc to %d\n", appData.niceEngines);\r
-    SetPriorityClass(piProcInfo.hProcess, GetWin32Priority(appData.niceEngines));\r
-  }\r
-\r
-  /* Close the handles we don't need in the parent */\r
-  CloseHandle(piProcInfo.hThread);\r
-  CloseHandle(hChildStdinRd);\r
-  CloseHandle(hChildStdoutWr);\r
-\r
-  /* Prepare return value */\r
-  cp = (ChildProc *) calloc(1, sizeof(ChildProc));\r
-  cp->kind = CPReal;\r
-  cp->hProcess = piProcInfo.hProcess;\r
-  cp->pid = piProcInfo.dwProcessId;\r
-  cp->hFrom = hChildStdoutRdDup;\r
-  cp->hTo = hChildStdinWrDup;\r
-\r
-  *pr = (void *) cp;\r
-\r
-  /* Klaus Friedel says that this Sleep solves a problem under Windows\r
-     2000 where engines sometimes don't see the initial command(s)\r
-     from WinBoard and hang.  I don't understand how that can happen,\r
-     but the Sleep is harmless, so I've put it in.  Others have also\r
-     reported what may be the same problem, so hopefully this will fix\r
-     it for them too.  */\r
-  Sleep(500);\r
-\r
-  return NO_ERROR;\r
-}\r
-\r
-\r
-void\r
-DestroyChildProcess(ProcRef pr, int/*boolean*/ signal)\r
-{\r
-  ChildProc *cp; int result;\r
-\r
-  cp = (ChildProc *) pr;\r
-  if (cp == NULL) return;\r
-\r
-  switch (cp->kind) {\r
-  case CPReal:\r
-    /* TerminateProcess is considered harmful, so... */\r
-    CloseHandle(cp->hTo); /* Closing this will give the child an EOF and hopefully kill it */\r
-    if (cp->hFrom) CloseHandle(cp->hFrom);  /* if NULL, InputThread will close it */\r
-    /* The following doesn't work because the chess program\r
-       doesn't "have the same console" as WinBoard.  Maybe\r
-       we could arrange for this even though neither WinBoard\r
-       nor the chess program uses a console for stdio? */\r
-    /*!!if (signal) GenerateConsoleCtrlEvent(CTRL_BREAK_EVENT, cp->pid);*/\r
-\r
-    /* [AS] Special termination modes for misbehaving programs... */\r
-    if( signal & 8 ) { \r
-        result = TerminateProcess( cp->hProcess, 0 );\r
-\r
-        if ( appData.debugMode) {\r
-            fprintf( debugFP, "Terminating process %lu, result=%d\n", cp->pid, result );\r
-        }\r
-    }\r
-    else if( signal & 4 ) {\r
-        DWORD dw = WaitForSingleObject( cp->hProcess, appData.delayAfterQuit*1000 + 50 ); // Wait 3 seconds at most\r
-\r
-        if( dw != WAIT_OBJECT_0 ) {\r
-            result = TerminateProcess( cp->hProcess, 0 );\r
-\r
-            if ( appData.debugMode) {\r
-                fprintf( debugFP, "Process %lu still alive after timeout, killing... result=%d\n", cp->pid, result );\r
-            }\r
-\r
-        }\r
-    }\r
-\r
-    CloseHandle(cp->hProcess);\r
-    break;\r
-\r
-  case CPComm:\r
-    if (cp->hFrom) CloseHandle(cp->hFrom);\r
-    break;\r
-\r
-  case CPSock:\r
-    closesocket(cp->sock);\r
-    WSACleanup();\r
-    break;\r
-\r
-  case CPRcmd:\r
-    if (signal) send(cp->sock2, "\017", 1, 0);  /* 017 = 15 = SIGTERM */\r
-    closesocket(cp->sock);\r
-    closesocket(cp->sock2);\r
-    WSACleanup();\r
-    break;\r
-  }\r
-  free(cp);\r
-}\r
-\r
-void\r
-InterruptChildProcess(ProcRef pr)\r
-{\r
-  ChildProc *cp;\r
-\r
-  cp = (ChildProc *) pr;\r
-  if (cp == NULL) return;\r
-  switch (cp->kind) {\r
-  case CPReal:\r
-    /* The following doesn't work because the chess program\r
-       doesn't "have the same console" as WinBoard.  Maybe\r
-       we could arrange for this even though neither WinBoard\r
-       nor the chess program uses a console for stdio */\r
-    /*!!GenerateConsoleCtrlEvent(CTRL_C_EVENT, cp->pid);*/\r
-    break;\r
-\r
-  case CPComm:\r
-  case CPSock:\r
-    /* Can't interrupt */\r
-    break;\r
-\r
-  case CPRcmd:\r
-    send(cp->sock2, "\002", 1, 0);  /* 2 = SIGINT */\r
-    break;\r
-  }\r
-}\r
-\r
-\r
-int\r
-OpenTelnet(char *host, char *port, ProcRef *pr)\r
-{\r
-  char cmdLine[MSG_SIZ];\r
-\r
-  if (port[0] == NULLCHAR) {\r
-    snprintf(cmdLine, MSG_SIZ, "%s %s", appData.telnetProgram, host);\r
-  } else {\r
-    snprintf(cmdLine, MSG_SIZ, "%s %s %s", appData.telnetProgram, host, port);\r
-  }\r
-  return StartChildProcess(cmdLine, "", pr);\r
-}\r
-\r
-\r
-/* Code to open TCP sockets */\r
-\r
-int\r
-OpenTCP(char *host, char *port, ProcRef *pr)\r
-{\r
-  ChildProc *cp;\r
-  int err;\r
-  SOCKET s;\r
-\r
-  struct sockaddr_in sa, mysa;\r
-  struct hostent FAR *hp;\r
-  unsigned short uport;\r
-  WORD wVersionRequested;\r
-  WSADATA wsaData;\r
-\r
-  /* Initialize socket DLL */\r
-  wVersionRequested = MAKEWORD(1, 1);\r
-  err = WSAStartup(wVersionRequested, &wsaData);\r
-  if (err != 0) return err;\r
-\r
-  /* Make socket */\r
-  if ((s = socket(PF_INET, SOCK_STREAM, 0)) == INVALID_SOCKET) {\r
-    err = WSAGetLastError();\r
-    WSACleanup();\r
-    return err;\r
-  }\r
-\r
-  /* Bind local address using (mostly) don't-care values.\r
-   */\r
-  memset((char *) &mysa, 0, sizeof(struct sockaddr_in));\r
-  mysa.sin_family = AF_INET;\r
-  mysa.sin_addr.s_addr = INADDR_ANY;\r
-  uport = (unsigned short) 0;\r
-  mysa.sin_port = htons(uport);\r
-  if (bind(s, (struct sockaddr *) &mysa, sizeof(struct sockaddr_in))\r
-      == SOCKET_ERROR) {\r
-    err = WSAGetLastError();\r
-    WSACleanup();\r
-    return err;\r
-  }\r
-\r
-  /* Resolve remote host name */\r
-  memset((char *) &sa, 0, sizeof(struct sockaddr_in));\r
-  if (!(hp = gethostbyname(host))) {\r
-    unsigned int b0, b1, b2, b3;\r
-\r
-    err = WSAGetLastError();\r
-\r
-    if (sscanf(host, "%u.%u.%u.%u", &b0, &b1, &b2, &b3) == 4) {\r
-      hp = (struct hostent *) calloc(1, sizeof(struct hostent));\r
-      hp->h_addrtype = AF_INET;\r
-      hp->h_length = 4;\r
-      hp->h_addr_list = (char **) calloc(2, sizeof(char *));\r
-      hp->h_addr_list[0] = (char *) malloc(4);\r
-      hp->h_addr_list[0][0] = (char) b0;\r
-      hp->h_addr_list[0][1] = (char) b1;\r
-      hp->h_addr_list[0][2] = (char) b2;\r
-      hp->h_addr_list[0][3] = (char) b3;\r
-    } else {\r
-      WSACleanup();\r
-      return err;\r
-    }\r
-  }\r
-  sa.sin_family = hp->h_addrtype;\r
-  uport = (unsigned short) atoi(port);\r
-  sa.sin_port = htons(uport);\r
-  memcpy((char *) &sa.sin_addr, hp->h_addr, hp->h_length);\r
-\r
-  /* Make connection */\r
-  if (connect(s, (struct sockaddr *) &sa,\r
-             sizeof(struct sockaddr_in)) == SOCKET_ERROR) {\r
-    err = WSAGetLastError();\r
-    WSACleanup();\r
-    return err;\r
-  }\r
-\r
-  /* Prepare return value */\r
-  cp = (ChildProc *) calloc(1, sizeof(ChildProc));\r
-  cp->kind = CPSock;\r
-  cp->sock = s;\r
-  *pr = (ProcRef *) cp;\r
-\r
-  return NO_ERROR;\r
-}\r
-\r
-int\r
-OpenCommPort(char *name, ProcRef *pr)\r
-{\r
-  HANDLE h;\r
-  COMMTIMEOUTS ct;\r
-  ChildProc *cp;\r
-  char fullname[MSG_SIZ];\r
-\r
-  if (*name != '\\')\r
-    snprintf(fullname, MSG_SIZ, "\\\\.\\%s", name);\r
-  else\r
-    safeStrCpy(fullname, name, sizeof(fullname)/sizeof(fullname[0]) );\r
-\r
-  h = CreateFile(name, GENERIC_READ | GENERIC_WRITE,\r
-                0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL);\r
-  if (h == (HANDLE) -1) {\r
-    return GetLastError();\r
-  }\r
-  hCommPort = h;\r
-\r
-  if (!SetCommState(h, (LPDCB) &dcb)) return GetLastError();\r
-\r
-  /* Accumulate characters until a 100ms pause, then parse */\r
-  ct.ReadIntervalTimeout = 100;\r
-  ct.ReadTotalTimeoutMultiplier = 0;\r
-  ct.ReadTotalTimeoutConstant = 0;\r
-  ct.WriteTotalTimeoutMultiplier = 0;\r
-  ct.WriteTotalTimeoutConstant = 0;\r
-  if (!SetCommTimeouts(h, (LPCOMMTIMEOUTS) &ct)) return GetLastError();\r
-\r
-  /* Prepare return value */\r
-  cp = (ChildProc *) calloc(1, sizeof(ChildProc));\r
-  cp->kind = CPComm;\r
-  cp->hFrom = h;\r
-  cp->hTo = h;\r
-  *pr = (ProcRef *) cp;\r
-\r
-  return NO_ERROR;\r
-}\r
-\r
-int\r
-OpenLoopback(ProcRef *pr)\r
-{\r
-  DisplayFatalError(_("Not implemented"), 0, 1);\r
-  return NO_ERROR;\r
-}\r
-\r
-\r
-int\r
-OpenRcmd(char* host, char* user, char* cmd, ProcRef* pr)\r
-{\r
-  ChildProc *cp;\r
-  int err;\r
-  SOCKET s, s2, s3;\r
-  struct sockaddr_in sa, mysa;\r
-  struct hostent FAR *hp;\r
-  unsigned short uport;\r
-  WORD wVersionRequested;\r
-  WSADATA wsaData;\r
-  int fromPort;\r
-  char stderrPortStr[MSG_SIZ];\r
-\r
-  /* Initialize socket DLL */\r
-  wVersionRequested = MAKEWORD(1, 1);\r
-  err = WSAStartup(wVersionRequested, &wsaData);\r
-  if (err != 0) return err;\r
-\r
-  /* Resolve remote host name */\r
-  memset((char *) &sa, 0, sizeof(struct sockaddr_in));\r
-  if (!(hp = gethostbyname(host))) {\r
-    unsigned int b0, b1, b2, b3;\r
-\r
-    err = WSAGetLastError();\r
-\r
-    if (sscanf(host, "%u.%u.%u.%u", &b0, &b1, &b2, &b3) == 4) {\r
-      hp = (struct hostent *) calloc(1, sizeof(struct hostent));\r
-      hp->h_addrtype = AF_INET;\r
-      hp->h_length = 4;\r
-      hp->h_addr_list = (char **) calloc(2, sizeof(char *));\r
-      hp->h_addr_list[0] = (char *) malloc(4);\r
-      hp->h_addr_list[0][0] = (char) b0;\r
-      hp->h_addr_list[0][1] = (char) b1;\r
-      hp->h_addr_list[0][2] = (char) b2;\r
-      hp->h_addr_list[0][3] = (char) b3;\r
-    } else {\r
-      WSACleanup();\r
-      return err;\r
-    }\r
-  }\r
-  sa.sin_family = hp->h_addrtype;\r
-  uport = (unsigned short) 514;\r
-  sa.sin_port = htons(uport);\r
-  memcpy((char *) &sa.sin_addr, hp->h_addr, hp->h_length);\r
-\r
-  /* Bind local socket to unused "privileged" port address\r
-   */\r
-  s = INVALID_SOCKET;\r
-  memset((char *) &mysa, 0, sizeof(struct sockaddr_in));\r
-  mysa.sin_family = AF_INET;\r
-  mysa.sin_addr.s_addr = INADDR_ANY;\r
-  for (fromPort = 1023;; fromPort--) {\r
-    if (fromPort < 0) {\r
-      WSACleanup();\r
-      return WSAEADDRINUSE;\r
-    }\r
-    if (s == INVALID_SOCKET) {\r
-      if ((s = socket(PF_INET, SOCK_STREAM, 0)) == INVALID_SOCKET) {\r
-       err = WSAGetLastError();\r
-       WSACleanup();\r
-       return err;\r
-      }\r
-    }\r
-    uport = (unsigned short) fromPort;\r
-    mysa.sin_port = htons(uport);\r
-    if (bind(s, (struct sockaddr *) &mysa, sizeof(struct sockaddr_in))\r
-       == SOCKET_ERROR) {\r
-      err = WSAGetLastError();\r
-      if (err == WSAEADDRINUSE) continue;\r
-      WSACleanup();\r
-      return err;\r
-    }\r
-    if (connect(s, (struct sockaddr *) &sa,\r
-      sizeof(struct sockaddr_in)) == SOCKET_ERROR) {\r
-      err = WSAGetLastError();\r
-      if (err == WSAEADDRINUSE) {\r
-       closesocket(s);\r
-        s = -1;\r
-       continue;\r
-      }\r
-      WSACleanup();\r
-      return err;\r
-    }\r
-    break;\r
-  }\r
-\r
-  /* Bind stderr local socket to unused "privileged" port address\r
-   */\r
-  s2 = INVALID_SOCKET;\r
-  memset((char *) &mysa, 0, sizeof(struct sockaddr_in));\r
-  mysa.sin_family = AF_INET;\r
-  mysa.sin_addr.s_addr = INADDR_ANY;\r
-  for (fromPort = 1023;; fromPort--) {\r
-    if (fromPort == prevStderrPort) continue; // don't reuse port\r
-    if (fromPort < 0) {\r
-      (void) closesocket(s);\r
-      WSACleanup();\r
-      return WSAEADDRINUSE;\r
-    }\r
-    if (s2 == INVALID_SOCKET) {\r
-      if ((s2 = socket(PF_INET, SOCK_STREAM, 0)) == INVALID_SOCKET) {\r
-       err = WSAGetLastError();\r
-       closesocket(s);\r
-       WSACleanup();\r
-       return err;\r
-      }\r
-    }\r
-    uport = (unsigned short) fromPort;\r
-    mysa.sin_port = htons(uport);\r
-    if (bind(s2, (struct sockaddr *) &mysa, sizeof(struct sockaddr_in))\r
-       == SOCKET_ERROR) {\r
-      err = WSAGetLastError();\r
-      if (err == WSAEADDRINUSE) continue;\r
-      (void) closesocket(s);\r
-      WSACleanup();\r
-      return err;\r
-    }\r
-    if (listen(s2, 1) == SOCKET_ERROR) {\r
-      err = WSAGetLastError();\r
-      if (err == WSAEADDRINUSE) {\r
-       closesocket(s2);\r
-       s2 = INVALID_SOCKET;\r
-       continue;\r
-      }\r
-      (void) closesocket(s);\r
-      (void) closesocket(s2);\r
-      WSACleanup();\r
-      return err;\r
-    }\r
-    break;\r
-  }\r
-  prevStderrPort = fromPort; // remember port used\r
-  snprintf(stderrPortStr, MSG_SIZ, "%d", fromPort);\r
-\r
-  if (send(s, stderrPortStr, strlen(stderrPortStr) + 1, 0) == SOCKET_ERROR) {\r
-    err = WSAGetLastError();\r
-    (void) closesocket(s);\r
-    (void) closesocket(s2);\r
-    WSACleanup();\r
-    return err;\r
-  }\r
-\r
-  if (send(s, UserName(), strlen(UserName()) + 1, 0) == SOCKET_ERROR) {\r
-    err = WSAGetLastError();\r
-    (void) closesocket(s);\r
-    (void) closesocket(s2);\r
-    WSACleanup();\r
-    return err;\r
-  }\r
-  if (*user == NULLCHAR) user = UserName();\r
-  if (send(s, user, strlen(user) + 1, 0) == SOCKET_ERROR) {\r
-    err = WSAGetLastError();\r
-    (void) closesocket(s);\r
-    (void) closesocket(s2);\r
-    WSACleanup();\r
-    return err;\r
-  }\r
-  if (send(s, cmd, strlen(cmd) + 1, 0) == SOCKET_ERROR) {\r
-    err = WSAGetLastError();\r
-    (void) closesocket(s);\r
-    (void) closesocket(s2);\r
-    WSACleanup();\r
-    return err;\r
-  }\r
-\r
-  if ((s3 = accept(s2, NULL, NULL)) == INVALID_SOCKET) {\r
-    err = WSAGetLastError();\r
-    (void) closesocket(s);\r
-    (void) closesocket(s2);\r
-    WSACleanup();\r
-    return err;\r
-  }\r
-  (void) closesocket(s2);  /* Stop listening */\r
-\r
-  /* Prepare return value */\r
-  cp = (ChildProc *) calloc(1, sizeof(ChildProc));\r
-  cp->kind = CPRcmd;\r
-  cp->sock = s;\r
-  cp->sock2 = s3;\r
-  *pr = (ProcRef *) cp;\r
-\r
-  return NO_ERROR;\r
-}\r
-\r
-\r
-InputSourceRef\r
-AddInputSource(ProcRef pr, int lineByLine,\r
-              InputCallback func, VOIDSTAR closure)\r
-{\r
-  InputSource *is, *is2 = NULL;\r
-  ChildProc *cp = (ChildProc *) pr;\r
-\r
-  is = (InputSource *) calloc(1, sizeof(InputSource));\r
-  is->lineByLine = lineByLine;\r
-  is->func = func;\r
-  is->closure = closure;\r
-  is->second = NULL;\r
-  is->next = is->buf;\r
-  if (pr == NoProc) {\r
-    is->kind = CPReal;\r
-    consoleInputSource = is;\r
-  } else {\r
-    is->kind = cp->kind;\r
-    /* \r
-        [AS] Try to avoid a race condition if the thread is given control too early:\r
-        we create all threads suspended so that the is->hThread variable can be\r
-        safely assigned, then let the threads start with ResumeThread.\r
-    */\r
-    switch (cp->kind) {\r
-    case CPReal:\r
-      is->hFile = cp->hFrom;\r
-      cp->hFrom = NULL; /* now owned by InputThread */\r
-      is->hThread =\r
-       CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) NonOvlInputThread,\r
-                    (LPVOID) is, CREATE_SUSPENDED, &is->id);\r
-      break;\r
-\r
-    case CPComm:\r
-      is->hFile = cp->hFrom;\r
-      cp->hFrom = NULL; /* now owned by InputThread */\r
-      is->hThread =\r
-       CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) InputThread,\r
-                    (LPVOID) is, CREATE_SUSPENDED, &is->id);\r
-      break;\r
-\r
-    case CPSock:\r
-      is->sock = cp->sock;\r
-      is->hThread =\r
-       CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) SocketInputThread,\r
-                    (LPVOID) is, CREATE_SUSPENDED, &is->id);\r
-      break;\r
-\r
-    case CPRcmd:\r
-      is2 = (InputSource *) calloc(1, sizeof(InputSource));\r
-      *is2 = *is;\r
-      is->sock = cp->sock;\r
-      is->second = is2;\r
-      is2->sock = cp->sock2;\r
-      is2->second = is2;\r
-      is->hThread =\r
-       CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) SocketInputThread,\r
-                    (LPVOID) is, CREATE_SUSPENDED, &is->id);\r
-      is2->hThread =\r
-       CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) SocketInputThread,\r
-                    (LPVOID) is2, CREATE_SUSPENDED, &is2->id);\r
-      break;\r
-    }\r
-\r
-    if( is->hThread != NULL ) {\r
-        ResumeThread( is->hThread );\r
-    }\r
-\r
-    if( is2 != NULL && is2->hThread != NULL ) {\r
-        ResumeThread( is2->hThread );\r
-    }\r
-  }\r
-\r
-  return (InputSourceRef) is;\r
-}\r
-\r
-void\r
-RemoveInputSource(InputSourceRef isr)\r
-{\r
-  InputSource *is;\r
-\r
-  is = (InputSource *) isr;\r
-  is->hThread = NULL;  /* tell thread to stop */\r
-  CloseHandle(is->hThread);\r
-  if (is->second != NULL) {\r
-    is->second->hThread = NULL;\r
-    CloseHandle(is->second->hThread);\r
-  }\r
-}\r
-\r
-int no_wrap(char *message, int count)\r
-{\r
-    ConsoleOutput(message, count, FALSE);\r
-    return count;\r
-}\r
-\r
-int\r
-OutputToProcess(ProcRef pr, char *message, int count, int *outError)\r
-{\r
-  DWORD dOutCount;\r
-  int outCount = SOCKET_ERROR;\r
-  ChildProc *cp = (ChildProc *) pr;\r
-  static OVERLAPPED ovl;\r
-\r
-  static int line = 0;\r
-\r
-  if (pr == NoProc)\r
-  {\r
-    if (appData.noJoin || !appData.useInternalWrap)\r
-      return no_wrap(message, count);\r
-    else\r
-    {\r
-      int width = get_term_width();\r
-      int len = wrap(NULL, message, count, width, &line);\r
-      char *msg = malloc(len);\r
-      int dbgchk;\r
-\r
-      if (!msg)\r
-        return no_wrap(message, count);\r
-      else\r
-      {\r
-        dbgchk = wrap(msg, message, count, width, &line);\r
-        if (dbgchk != len && appData.debugMode)\r
-            fprintf(debugFP, "wrap(): dbgchk(%d) != len(%d)\n", dbgchk, len);\r
-        ConsoleOutput(msg, len, FALSE);\r
-        free(msg);\r
-        return len;\r
-      }\r
-    }\r
-  }\r
-\r
-  if (ovl.hEvent == NULL) {\r
-    ovl.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);\r
-  }\r
-  ovl.Internal = ovl.InternalHigh = ovl.Offset = ovl.OffsetHigh = 0;\r
-\r
-  switch (cp->kind) {\r
-  case CPSock:\r
-  case CPRcmd:\r
-    outCount = send(cp->sock, message, count, 0);\r
-    if (outCount == SOCKET_ERROR) {\r
-      *outError = WSAGetLastError();\r
-    } else {\r
-      *outError = NO_ERROR;\r
-    }\r
-    break;\r
-\r
-  case CPReal:\r
-    if (WriteFile(((ChildProc *)pr)->hTo, message, count,\r
-                 &dOutCount, NULL)) {\r
-      *outError = NO_ERROR;\r
-      outCount = (int) dOutCount;\r
-    } else {\r
-      *outError = GetLastError();\r
-    }\r
-    break;\r
-\r
-  case CPComm:\r
-    *outError = DoWriteFile(((ChildProc *)pr)->hTo, message, count,\r
-                           &dOutCount, &ovl);\r
-    if (*outError == NO_ERROR) {\r
-      outCount = (int) dOutCount;\r
-    }\r
-    break;\r
-  }\r
-  return outCount;\r
-}\r
-\r
-void\r
-DoSleep(int n)\r
-{\r
-    if(n != 0) Sleep(n);\r
-}\r
-\r
-int\r
-OutputToProcessDelayed(ProcRef pr, char *message, int count, int *outError,\r
-                      long msdelay)\r
-{\r
-  /* Ignore delay, not implemented for WinBoard */\r
-  return OutputToProcess(pr, message, count, outError);\r
-}\r
-\r
-\r
-void\r
-CmailSigHandlerCallBack(InputSourceRef isr, VOIDSTAR closure,\r
-                       char *buf, int count, int error)\r
-{\r
-  DisplayFatalError(_("Not implemented"), 0, 1);\r
-}\r
-\r
-/* see wgamelist.c for Game List functions */\r
-/* see wedittags.c for Edit Tags functions */\r
-\r
-\r
-int\r
-ICSInitScript()\r
-{\r
-  FILE *f;\r
-  char buf[MSG_SIZ];\r
-  char *dummy;\r
-\r
-  if (SearchPath(installDir, appData.icsLogon, NULL, MSG_SIZ, buf, &dummy)) {\r
-    f = fopen(buf, "r");\r
-    if (f != NULL) {\r
-      ProcessICSInitScript(f);\r
-      fclose(f);\r
-      return TRUE;\r
-    }\r
-  }\r
-  return FALSE;\r
-}\r
-\r
-\r
-VOID\r
-StartAnalysisClock()\r
-{\r
-  if (analysisTimerEvent) return;\r
-  analysisTimerEvent = SetTimer(hwndMain, (UINT) ANALYSIS_TIMER_ID,\r
-                                       (UINT) 2000, NULL);\r
-}\r
-\r
-VOID\r
-SetHighlights(int fromX, int fromY, int toX, int toY)\r
-{\r
-  highlightInfo.sq[0].x = fromX;\r
-  highlightInfo.sq[0].y = fromY;\r
-  highlightInfo.sq[1].x = toX;\r
-  highlightInfo.sq[1].y = toY;\r
-}\r
-\r
-VOID\r
-ClearHighlights()\r
-{\r
-  highlightInfo.sq[0].x = highlightInfo.sq[0].y = \r
-    highlightInfo.sq[1].x = highlightInfo.sq[1].y = -1;\r
-}\r
-\r
-VOID\r
-SetPremoveHighlights(int fromX, int fromY, int toX, int toY)\r
-{\r
-  premoveHighlightInfo.sq[0].x = fromX;\r
-  premoveHighlightInfo.sq[0].y = fromY;\r
-  premoveHighlightInfo.sq[1].x = toX;\r
-  premoveHighlightInfo.sq[1].y = toY;\r
-}\r
-\r
-VOID\r
-ClearPremoveHighlights()\r
-{\r
-  premoveHighlightInfo.sq[0].x = premoveHighlightInfo.sq[0].y = \r
-    premoveHighlightInfo.sq[1].x = premoveHighlightInfo.sq[1].y = -1;\r
-}\r
-\r
-VOID\r
-ShutDownFrontEnd()\r
-{\r
-  if (saveSettingsOnExit) SaveSettings(settingsFileName);\r
-  DeleteClipboardTempFiles();\r
-}\r
-\r
-void\r
-BoardToTop()\r
-{\r
-    if (IsIconic(hwndMain))\r
-      ShowWindow(hwndMain, SW_RESTORE);\r
-\r
-    SetActiveWindow(hwndMain);\r
-}\r
-\r
-/*\r
- * Prototypes for animation support routines\r
- */\r
-static void ScreenSquare(int column, int row, POINT * pt);\r
-static void Tween( POINT * start, POINT * mid, POINT * finish, int factor,\r
-     POINT frames[], int * nFrames);\r
-\r
-\r
-#define kFactor 4\r
-\r
-void\r
-AnimateAtomicCapture(Board board, int fromX, int fromY, int toX, int toY)\r
-{      // [HGM] atomic: animate blast wave\r
-       int i;\r
-\r
-       explodeInfo.fromX = fromX;\r
-       explodeInfo.fromY = fromY;\r
-       explodeInfo.toX = toX;\r
-       explodeInfo.toY = toY;\r
-       for(i=1; i<4*kFactor; i++) {\r
-           explodeInfo.radius = (i*180)/(4*kFactor-1);\r
-           DrawPosition(FALSE, board);\r
-           Sleep(appData.animSpeed);\r
-       }\r
-       explodeInfo.radius = 0;\r
-       DrawPosition(TRUE, board);\r
-}\r
-\r
-void\r
-AnimateMove(board, fromX, fromY, toX, toY)\r
-     Board board;\r
-     int fromX;\r
-     int fromY;\r
-     int toX;\r
-     int toY;\r
-{\r
-  ChessSquare piece, victim = EmptySquare, victim2 = EmptySquare;\r
-  int x = toX, y = toY, x2 = kill2X;\r
-  POINT start, finish, mid;\r
-  POINT frames[kFactor * 2 + 1];\r
-  int nFrames, n;\r
-\r
-  if(killX >= 0 && IS_LION(board[fromY][fromX])) Roar();\r
-\r
-  if (!appData.animate) return;\r
-  if (doingSizing) return;\r
-  if (fromY < 0 || fromX < 0) return;\r
-  piece = board[fromY][fromX];\r
-  if (piece >= EmptySquare) return;\r
-\r
-  if(x2 >= 0) toX = kill2X, toY = kill2Y,  victim = board[killY][killX], victim2 = board[kill2Y][kill2X]; else\r
-  if(killX >= 0) toX = killX, toY = killY, victim = board[killY][killX]; // [HGM] lion: first to kill square\r
-\r
-  animInfo.from.x = fromX;\r
-  animInfo.from.y = fromY;\r
-\r
-again:\r
-\r
-  ScreenSquare(fromX, fromY, &start);\r
-  ScreenSquare(toX, toY, &finish);\r
-\r
-  /* All moves except knight jumps move in straight line */\r
-  if (!(abs(fromX-toX) == 1 && abs(fromY-toY) == 2 || abs(fromX-toX) == 2 && abs(fromY-toY) == 1)) {\r
-    mid.x = start.x + (finish.x - start.x) / 2;\r
-    mid.y = start.y + (finish.y - start.y) / 2;\r
-  } else {\r
-    /* Knight: make straight movement then diagonal */\r
-    if (abs(toY - fromY) < abs(toX - fromX)) {\r
-       mid.x = start.x + (finish.x - start.x) / 2;\r
-       mid.y = start.y;\r
-     } else {\r
-       mid.x = start.x;\r
-       mid.y = start.y + (finish.y - start.y) / 2;\r
-     }\r
-  }\r
-  \r
-  /* Don't use as many frames for very short moves */\r
-  if (abs(toY - fromY) + abs(toX - fromX) <= 2)\r
-    Tween(&start, &mid, &finish, kFactor - 1, frames, &nFrames);\r
-  else\r
-    Tween(&start, &mid, &finish, kFactor, frames, &nFrames);\r
-\r
-  animInfo.to.x = toX;\r
-  animInfo.to.y = toY;\r
-  animInfo.lastpos = start;\r
-  animInfo.piece = piece;\r
-  for (n = 0; n < nFrames; n++) {\r
-    animInfo.pos = frames[n];\r
-    DrawPosition(FALSE, board);\r
-    animInfo.lastpos = animInfo.pos;\r
-    Sleep(appData.animSpeed);\r
-  }\r
-  animInfo.pos = finish;\r
-  DrawPosition(FALSE, board);\r
-\r
-  if(toX == x2 && toY == kill2Y) {\r
-    fromX = toX; fromY = toY; toX = killX; toY = killY; x2 = -1;\r
-    board[kill2Y][kill2X] = EmptySquare; goto again;\r
-  } // second leg\r
-  if(toX != x || toY != y) {\r
-    fromX = toX; fromY = toY; toX = x; toY = y;\r
-    board[killY][killX] = EmptySquare; goto again;\r
-  } // second leg\r
-\r
-if(victim2 != EmptySquare) board[kill2Y][kill2X] = victim2;\r
-if(victim  != EmptySquare) board[killY][killX] = victim;\r
-\r
-  animInfo.piece = EmptySquare;\r
-  Explode(board, fromX, fromY, toX, toY);\r
-}\r
-\r
-/*      Convert board position to corner of screen rect and color       */\r
-\r
-static void\r
-ScreenSquare(column, row, pt)\r
-     int column; int row; POINT * pt;\r
-{\r
-  if (flipView) {\r
-    pt->x = lineGap + ((BOARD_WIDTH-1)-column) * (squareSize + lineGap) + border;\r
-    pt->y = lineGap + row * (squareSize + lineGap) + border;\r
-  } else {\r
-    pt->x = lineGap + column * (squareSize + lineGap) + border;\r
-    pt->y = lineGap + ((BOARD_HEIGHT-1)-row) * (squareSize + lineGap) + border;\r
-  }\r
-}\r
-\r
-/*      Generate a series of frame coords from start->mid->finish.\r
-        The movement rate doubles until the half way point is\r
-        reached, then halves back down to the final destination,\r
-        which gives a nice slow in/out effect. The algorithmn\r
-        may seem to generate too many intermediates for short\r
-        moves, but remember that the purpose is to attract the\r
-        viewers attention to the piece about to be moved and\r
-        then to where it ends up. Too few frames would be less\r
-        noticeable.                                             */\r
-\r
-static void\r
-Tween(start, mid, finish, factor, frames, nFrames)\r
-     POINT * start; POINT * mid;\r
-     POINT * finish; int factor;\r
-     POINT frames[]; int * nFrames;\r
-{\r
-  int n, fraction = 1, count = 0;\r
-\r
-  /* Slow in, stepping 1/16th, then 1/8th, ... */\r
-  for (n = 0; n < factor; n++)\r
-    fraction *= 2;\r
-  for (n = 0; n < factor; n++) {\r
-    frames[count].x = start->x + (mid->x - start->x) / fraction;\r
-    frames[count].y = start->y + (mid->y - start->y) / fraction;\r
-    count ++;\r
-    fraction = fraction / 2;\r
-  }\r
-  \r
-  /* Midpoint */\r
-  frames[count] = *mid;\r
-  count ++;\r
-  \r
-  /* Slow out, stepping 1/2, then 1/4, ... */\r
-  fraction = 2;\r
-  for (n = 0; n < factor; n++) {\r
-    frames[count].x = finish->x - (finish->x - mid->x) / fraction;\r
-    frames[count].y = finish->y - (finish->y - mid->y) / fraction;\r
-    count ++;\r
-    fraction = fraction * 2;\r
-  }\r
-  *nFrames = count;\r
-}\r
-\r
-void\r
-SettingsPopUp(ChessProgramState *cps)\r
-{     // [HGM] wrapper needed because handles must not be passed through back-end\r
-      EngineOptionsPopup(savedHwnd, cps);\r
-}\r
-\r
-int flock(int fid, int code)\r
-{\r
-    HANDLE hFile = (HANDLE) _get_osfhandle(fid);\r
-    OVERLAPPED ov;\r
-    ov.hEvent = NULL;\r
-    ov.Offset = 0;\r
-    ov.OffsetHigh = 0;\r
-    switch(code) {\r
-      case 1: LockFileEx(hFile, LOCKFILE_EXCLUSIVE_LOCK, 0, 1024, 0, &ov); break;   // LOCK_SH\r
-\r
-      case 2: LockFileEx(hFile, LOCKFILE_EXCLUSIVE_LOCK, 0, 1024, 0, &ov); break;   // LOCK_EX\r
-      case 3: UnlockFileEx(hFile, 0, 1024, 0, &ov); break; // LOCK_UN\r
-      default: return -1;\r
-    }\r
-    return 0;\r
-}\r
-\r
-char *\r
-Col2Text (int n)\r
-{\r
-    static int i=0;\r
-    static char col[8][20];\r
-    COLORREF color = *(COLORREF *) colorVariable[n];\r
-    i = i+1 & 7;\r
-    snprintf(col[i], 20, "#%02lx%02lx%02lx", color&0xff, (color>>8)&0xff, (color>>16)&0xff);\r
-    return col[i];\r
-}\r
-\r
-void\r
-ActivateTheme (int new)\r
-{   // Redo initialization of features depending on options that can occur in themes\r
-   InitTextures();\r
-   if(new) InitDrawingColors();\r
-   fontBitmapSquareSize = 0; // request creation of new font pieces\r
-   InitDrawingSizes(boardSize, 0);\r
-   InvalidateRect(hwndMain, NULL, TRUE);\r
-}\r
diff --git a/winboard/winboard.dsp b/winboard/winboard.dsp
deleted file mode 100755 (executable)
index 1fc2d6e..0000000
+++ /dev/null
@@ -1,288 +0,0 @@
-# Microsoft Developer Studio Project File - Name="winboard" - Package Owner=<4>\r
-# Microsoft Developer Studio Generated Build File, Format Version 6.00\r
-# ** DO NOT EDIT **\r
-\r
-# TARGTYPE "Win32 (x86) Application" 0x0101\r
-\r
-CFG=winboard - Win32 Jaws Debug\r
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,\r
-!MESSAGE use the Export Makefile command and run\r
-!MESSAGE \r
-!MESSAGE NMAKE /f "winboard.mak".\r
-!MESSAGE \r
-!MESSAGE You can specify a configuration when running NMAKE\r
-!MESSAGE by defining the macro CFG on the command line. For example:\r
-!MESSAGE \r
-!MESSAGE NMAKE /f "winboard.mak" CFG="winboard - Win32 Jaws Debug"\r
-!MESSAGE \r
-!MESSAGE Possible choices for configuration are:\r
-!MESSAGE \r
-!MESSAGE "winboard - Win32 Release" (based on "Win32 (x86) Application")\r
-!MESSAGE "winboard - Win32 Debug" (based on "Win32 (x86) Application")\r
-!MESSAGE "winboard - Win32 Jaws Debug" (based on "Win32 (x86) Application")\r
-!MESSAGE "winboard - Win32 Jaws Release" (based on "Win32 (x86) Application")\r
-!MESSAGE \r
-\r
-# Begin Project\r
-# PROP AllowPerConfigDependencies 0\r
-# PROP Scc_ProjName ""\r
-# PROP Scc_LocalPath ""\r
-CPP=cl.exe\r
-MTL=midl.exe\r
-RSC=rc.exe\r
-\r
-!IF  "$(CFG)" == "winboard - Win32 Release"\r
-\r
-# PROP BASE Use_MFC 0\r
-# PROP BASE Use_Debug_Libraries 0\r
-# PROP BASE Output_Dir "Release"\r
-# PROP BASE Intermediate_Dir "Release"\r
-# PROP BASE Target_Dir ""\r
-# PROP Use_MFC 0\r
-# PROP Use_Debug_Libraries 0\r
-# PROP Output_Dir "Release"\r
-# PROP Intermediate_Dir "Release"\r
-# PROP Ignore_Export_Lib 0\r
-# PROP Target_Dir ""\r
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c\r
-# ADD CPP /nologo /MD /W3 /GX /Og /Os /Oy /Gf /I "." /I ".." /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D _WIN32_IE=0x300 /D WINVER=0x400 /D _WIN32_WINDOWS=0x500 /D "YY_NO_UNISTD_H" /YX /Zl /FD /Gs /GA /c\r
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32\r
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32\r
-# ADD BASE RSC /l 0x409 /d "NDEBUG"\r
-# ADD RSC /l 0x409 /i ".." /d "NDEBUG"\r
-BSC32=bscmake.exe\r
-# ADD BASE BSC32 /nologo\r
-# ADD BSC32 /nologo\r
-LINK32=link.exe\r
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386\r
-# ADD LINK32 wsock32.lib comctl32.lib winmm.lib shell32.lib oldnames.lib kernel32.lib advapi32.lib user32.lib gdi32.lib comdlg32.lib msvcrt.lib /nologo /subsystem:windows /pdb:none /machine:I386\r
-\r
-!ELSEIF  "$(CFG)" == "winboard - Win32 Debug"\r
-\r
-# PROP BASE Use_MFC 0\r
-# PROP BASE Use_Debug_Libraries 1\r
-# PROP BASE Output_Dir "Debug"\r
-# PROP BASE Intermediate_Dir "Debug"\r
-# PROP BASE Target_Dir ""\r
-# PROP Use_MFC 0\r
-# PROP Use_Debug_Libraries 1\r
-# PROP Output_Dir "Debug"\r
-# PROP Intermediate_Dir "Debug"\r
-# PROP Ignore_Export_Lib 0\r
-# PROP Target_Dir ""\r
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c\r
-# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "." /I ".." /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D _WIN32_IE=0x300 /D WINVER=0x400 /D _WIN32_WINDOWS=0x500 /D "YY_NO_UNISTD_H" /YX /FD /GZ /c\r
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32\r
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32\r
-# ADD BASE RSC /l 0x409 /d "_DEBUG"\r
-# ADD RSC /l 0x409 /i ".." /d "_DEBUG"\r
-BSC32=bscmake.exe\r
-# ADD BASE BSC32 /nologo\r
-# ADD BSC32 /nologo\r
-LINK32=link.exe\r
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept\r
-# ADD LINK32 wsock32.lib comctl32.lib winmm.lib shell32.lib oldnames.lib kernel32.lib advapi32.lib user32.lib gdi32.lib comdlg32.lib msvcrtd.lib /nologo /subsystem:windows /map /debug /machine:I386 /pdbtype:sept\r
-\r
-!ELSEIF  "$(CFG)" == "winboard - Win32 Jaws Debug"\r
-\r
-# PROP BASE Use_MFC 0\r
-# PROP BASE Use_Debug_Libraries 1\r
-# PROP BASE Output_Dir "winboard___Win32_Jaws_Debug"\r
-# PROP BASE Intermediate_Dir "winboard___Win32_Jaws_Debug"\r
-# PROP BASE Ignore_Export_Lib 0\r
-# PROP BASE Target_Dir ""\r
-# PROP Use_MFC 0\r
-# PROP Use_Debug_Libraries 1\r
-# PROP Output_Dir "Jaws-Debug"\r
-# PROP Intermediate_Dir "Jaws-Debug"\r
-# PROP Ignore_Export_Lib 0\r
-# PROP Target_Dir ""\r
-# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "." /I ".." /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D _WIN32_IE=0x300 /D WINVER=0x400 /D _WIN32_WINDOWS=0x500 /YX /FD /GZ /c\r
-# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "." /I ".." /D "_DEBUG" /D "JAWS" /D "WIN32" /D "_WINDOWS" /D _WIN32_IE=0x300 /D WINVER=0x400 /D _WIN32_WINDOWS=0x500 /D "YY_NO_UNISTD_H" /YX /FD /GZ /c\r
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32\r
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32\r
-# ADD BASE RSC /l 0x409 /i ".." /d "_DEBUG"\r
-# ADD RSC /l 0x409 /i ".." /d "_DEBUG" /d "JAWS"\r
-BSC32=bscmake.exe\r
-# ADD BASE BSC32 /nologo\r
-# ADD BSC32 /nologo\r
-LINK32=link.exe\r
-# ADD BASE LINK32 wsock32.lib comctl32.lib winmm.lib shell32.lib oldnames.lib kernel32.lib advapi32.lib user32.lib gdi32.lib comdlg32.lib msvcrtd.lib /nologo /subsystem:windows /map /debug /machine:I386 /pdbtype:sept\r
-# ADD LINK32 wsock32.lib comctl32.lib winmm.lib shell32.lib oldnames.lib kernel32.lib advapi32.lib user32.lib gdi32.lib comdlg32.lib msvcrtd.lib /nologo /subsystem:windows /map /debug /machine:I386 /pdbtype:sept\r
-\r
-!ELSEIF  "$(CFG)" == "winboard - Win32 Jaws Release"\r
-\r
-# PROP BASE Use_MFC 0\r
-# PROP BASE Use_Debug_Libraries 0\r
-# PROP BASE Output_Dir "winboard___Win32_Jaws_Release"\r
-# PROP BASE Intermediate_Dir "winboard___Win32_Jaws_Release"\r
-# PROP BASE Ignore_Export_Lib 0\r
-# PROP BASE Target_Dir ""\r
-# PROP Use_MFC 0\r
-# PROP Use_Debug_Libraries 0\r
-# PROP Output_Dir "Jaws-Release"\r
-# PROP Intermediate_Dir "Jaws-Release"\r
-# PROP Ignore_Export_Lib 0\r
-# PROP Target_Dir ""\r
-# ADD BASE CPP /nologo /MD /W3 /GX /Og /Os /Oy /Gf /I "." /I ".." /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D _WIN32_IE=0x300 /D WINVER=0x400 /D _WIN32_WINDOWS=0x500 /YX /Zl /FD /Gs /GA /c\r
-# ADD CPP /nologo /MD /W3 /GX /Og /Os /Oy /Gf /I "." /I ".." /D "NDEBUG" /D "JAWS" /D "WIN32" /D "_WINDOWS" /D _WIN32_IE=0x300 /D WINVER=0x400 /D _WIN32_WINDOWS=0x500 /D "YY_NO_UNISTD_H" /YX /Zl /FD /Gs /GA /c\r
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32\r
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32\r
-# ADD BASE RSC /l 0x409 /i ".." /d "NDEBUG"\r
-# ADD RSC /l 0x409 /i ".." /d "NDEBUG" /d "JAWS"\r
-BSC32=bscmake.exe\r
-# ADD BASE BSC32 /nologo\r
-# ADD BSC32 /nologo\r
-LINK32=link.exe\r
-# ADD BASE LINK32 wsock32.lib comctl32.lib winmm.lib shell32.lib oldnames.lib kernel32.lib advapi32.lib user32.lib gdi32.lib comdlg32.lib msvcrt.lib /nologo /subsystem:windows /pdb:none /machine:I386\r
-# ADD LINK32 wsock32.lib comctl32.lib winmm.lib shell32.lib oldnames.lib kernel32.lib advapi32.lib user32.lib gdi32.lib comdlg32.lib msvcrt.lib /nologo /subsystem:windows /pdb:none /machine:I386\r
-\r
-!ENDIF \r
-\r
-# Begin Target\r
-\r
-# Name "winboard - Win32 Release"\r
-# Name "winboard - Win32 Debug"\r
-# Name "winboard - Win32 Jaws Debug"\r
-# Name "winboard - Win32 Jaws Release"\r
-# Begin Group "Source Files"\r
-\r
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"\r
-# Begin Source File\r
-\r
-SOURCE=..\backend.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\book.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\engineoutput.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\evalgraph.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\gamelist.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\help.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\history.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\lists.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\moves.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\parser.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\pgntags.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\uci.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\wchat.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\wclipbrd.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\wedittags.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\wengineoutput.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\wevalgraph.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\wgamelist.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\whistory.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\winboard.c\r
-\r
-!IF  "$(CFG)" == "winboard - Win32 Release"\r
-\r
-!ELSEIF  "$(CFG)" == "winboard - Win32 Debug"\r
-\r
-!ELSEIF  "$(CFG)" == "winboard - Win32 Jaws Debug"\r
-\r
-# ADD CPP /D WINVER=0x500\r
-# SUBTRACT CPP /D WINVER=0x400\r
-\r
-!ELSEIF  "$(CFG)" == "winboard - Win32 Jaws Release"\r
-\r
-# ADD CPP /D WINVER=0x500\r
-# SUBTRACT CPP /D WINVER=0x400\r
-\r
-!ENDIF \r
-\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\winboard.rc\r
-# ADD BASE RSC /l 0x409\r
-# ADD RSC /l 0x409\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\wlayout.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\woptions.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\wsettings.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\wsnap.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=.\wsockerr.c\r
-# End Source File\r
-# Begin Source File\r
-\r
-SOURCE=..\zippy.c\r
-# End Source File\r
-# End Group\r
-# Begin Group "Header Files"\r
-\r
-# PROP Default_Filter "h;hpp;hxx;hm;inl"\r
-# End Group\r
-# Begin Group "Resource Files"\r
-\r
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"\r
-# End Group\r
-# End Target\r
-# End Project\r
diff --git a/winboard/winboard.dsw b/winboard/winboard.dsw
deleted file mode 100644 (file)
index e0bf89c..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00\r
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!\r
-\r
-###############################################################################\r
-\r
-Project: "winboard"=".\winboard.dsp" - Package Owner=<4>\r
-\r
-Package=<5>\r
-{{{\r
-}}}\r
-\r
-Package=<4>\r
-{{{\r
-}}}\r
-\r
-###############################################################################\r
-\r
-Global:\r
-\r
-Package=<5>\r
-{{{\r
-}}}\r
-\r
-Package=<3>\r
-{{{\r
-}}}\r
-\r
-###############################################################################\r
-\r
diff --git a/winboard/winboard.h b/winboard/winboard.h
deleted file mode 100644 (file)
index 40a425e..0000000
+++ /dev/null
@@ -1,231 +0,0 @@
-/*\r
- * WinBoard.h -- Definitions for Windows NT front end to XBoard\r
- *\r
- * Copyright 1991 by Digital Equipment Corporation, Maynard,\r
- * Massachusetts.\r
- *\r
- * Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006,\r
- * 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free\r
- * Software Foundation, Inc.\r
- *\r
- * Enhancements Copyright 2005 Alessandro Scotti\r
- *\r
- * The following terms apply to Digital Equipment Corporation's copyright\r
- * interest in XBoard:\r
- * ------------------------------------------------------------------------\r
- * All Rights Reserved\r
- *\r
- * Permission to use, copy, modify, and distribute this software and its\r
- * documentation for any purpose and without fee is hereby granted,\r
- * provided that the above copyright notice appear in all copies and that\r
- * both that copyright notice and this permission notice appear in\r
- * supporting documentation, and that the name of Digital not be\r
- * used in advertising or publicity pertaining to distribution of the\r
- * software without specific, written prior permission.\r
- *\r
- * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING\r
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL\r
- * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR\r
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,\r
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,\r
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS\r
- * SOFTWARE.\r
- * ------------------------------------------------------------------------\r
- *\r
- * The following terms apply to the enhanced version of XBoard\r
- * distributed by the Free Software Foundation:\r
- * ------------------------------------------------------------------------\r
- *\r
- * GNU XBoard is free software: you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation, either version 3 of the License, or (at\r
- * your option) any later version.\r
- *\r
- * GNU XBoard is distributed in the hope that it will be useful, but\r
- * WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
- * General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program. If not, see http://www.gnu.org/licenses/.  *\r
- *\r
- *------------------------------------------------------------------------\r
- ** See the file ChangeLog for a revision history.  */\r
-\r
-#include "resource.h"\r
-#include <dlgs.h>\r
-\r
-/* Types */\r
-typedef struct {\r
-  char faceName[LF_FACESIZE];\r
-  float pointSize;\r
-  BYTE bold, italic, underline, strikeout;\r
-  BYTE charset;\r
-} MyFontParams;\r
-\r
-typedef struct {\r
-  char *def;\r
-  MyFontParams mfp;\r
-  LOGFONT lf;\r
-  HFONT hf;\r
-} MyFont;\r
-\r
-typedef enum { \r
-  SizeTiny, SizeTeeny, SizeDinky, SizePetite, SizeSlim, SizeSmall,\r
-  SizeMediocre, SizeMiddling, SizeAverage, SizeModerate, SizeMedium,\r
-  SizeBulky, SizeLarge, SizeBig, SizeHuge, SizeGiant, SizeColossal,\r
-  SizeTitanic, NUM_SIZES \r
-} BoardSize;\r
-\r
-typedef struct {\r
-    COLORREF color;\r
-    int effects;\r
-    char *name;\r
-} MyColorizeAttribs;\r
-\r
-typedef struct {\r
-  char* name;\r
-  void* data;\r
-  int flag; // [HGM] needed to indicate if data was malloc'ed or not\r
-} MySound;\r
-\r
-typedef struct {\r
-    COLORREF color;\r
-    int effects;\r
-    MySound sound;\r
-} MyTextAttribs;\r
-\r
-/* Functions */\r
-\r
-BOOL InitApplication(HINSTANCE);\r
-BOOL InitInstance(HINSTANCE, int, LPSTR);\r
-LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);\r
-LRESULT CALLBACK About(HWND, UINT, WPARAM, LPARAM);\r
-LRESULT CALLBACK BoardSizeDlg(HWND, UINT, WPARAM, LPARAM);\r
-LRESULT CALLBACK ButtonProc(HWND, UINT, WPARAM, LPARAM);\r
-VOID InitAppData(LPSTR);\r
-VOID InitDrawingColors(VOID);\r
-VOID InitDrawingSizes(BoardSize boardSize, int flags);\r
-VOID InitMenuChecks(VOID);\r
-int  ICSInitScript(VOID);\r
-BOOL CenterWindow(HWND hwndChild, HWND hwndParent);\r
-VOID ResizeEditPlusButtons(HWND hDlg, HWND hText, int sizeX, int sizeY, int newSizeX, int newSizeY);\r
-VOID PromotionPopup(HWND hwnd);\r
-FILE *OpenFileDialog(HWND hWnd, char *write, char *defName, char *defExt, \r
-                    char *nameFilt, char *dlgTitle, UINT *number,\r
-                    char fileTitle[MSG_SIZ], char fileName[MSG_SIZ]);\r
-VOID InputEvent(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);\r
-DWORD InputThread(LPVOID arg);\r
-DWORD NonOvlInputThread(LPVOID arg);\r
-DWORD SocketInputThread(LPVOID arg);\r
-BOOL ChangeColor(HWND hwnd, COLORREF *which);\r
-VOID ChangeBoardSize(BoardSize newSize);\r
-BOOL APIENTRY MyCreateFont(HWND hwnd, MyFont *font);\r
-VOID ErrorPopDown(VOID);\r
-VOID EnsureOnScreen(int *x, int *y, int minX, int minY);\r
-HBITMAP \r
-DoLoadBitmap(HINSTANCE hinst, char *piece, int squareSize, char *suffix);\r
-COLORREF ParseColorName(char *name);\r
-void ParseAttribs(COLORREF *color, int *effects, char* argValue);\r
-VOID CreateFontInMF(MyFont *mf);\r
-VOID ChangedConsoleFont();\r
-VOID ParseFontName(char *name, MyFontParams *mfp);\r
-void InitComboStrings(HANDLE hwndCombo, char **cd);\r
-BOOLEAN MyLoadSound(MySound *ms);\r
-BOOLEAN MyPlaySound(MySound *ms);\r
-VOID ExitArgError(char *msg, char *badArg, Boolean quit);\r
-void SaveSettings(char* name);\r
-BOOL BrowseForFolder( const char * title, char * path );\r
-VOID TourneyPopup();\r
-VOID LoadEnginePopUp();\r
-VOID LoadOptionsPopup(HWND hDlg);\r
-VOID InitTextures();\r
-void ThemeOptionsPopup(HWND hwnd);\r
-\r
-/* Constants */\r
-\r
-#define CLOCK_FONT 0\r
-#define MESSAGE_FONT 1\r
-#define COORD_FONT 2\r
-#define CONSOLE_FONT 3\r
-#define COMMENT_FONT 4\r
-#define EDITTAGS_FONT 5\r
-#define MOVEHISTORY_FONT 6\r
-#define GAMELIST_FONT 7\r
-#define NUM_FONTS 8\r
-\r
-/* Positions of some menu items.  Origin is zero and separator lines count. */\r
-/* It's gross that these are needed. */\r
-#define ACTION_POS 4    /* Posn of "Action" on menu bar */\r
-#define OPTIONS_POS 6   /* Posn of "Options" on menu bar */\r
-/* end grossness */\r
-\r
-extern MyFont *font[NUM_SIZES][NUM_FONTS];\r
-\r
-#define WM_USER_Input                 (WM_USER + 4242)\r
-#define WM_USER_Mouseleave            (WM_USER + 4243)\r
-#define WM_USER_GetConsoleBackground  (WM_USER + 4244)\r
-\r
-#define CLOCK_TIMER_ID        51\r
-#define LOAD_GAME_TIMER_ID    52\r
-#define ANALYSIS_TIMER_ID     53\r
-#define MOUSE_TIMER_ID        54\r
-#define DELAYED_TIMER_ID      55\r
-\r
-#define SOLID_PIECE           0\r
-#define OUTLINE_PIECE         1\r
-#define WHITE_PIECE           2\r
-\r
-#define COPY_TMP "wbcopy.tmp"\r
-#define PASTE_TMP "wbpaste.tmp"\r
-\r
-/* variables */\r
-extern HINSTANCE hInst;\r
-extern HWND hwndMain;\r
-extern BoardSize boardSize;\r
-\r
-// [HGM] Some stuff to allo a platform-independent reference to windows\r
-// This should be moved to frontend.h in due time\r
-\r
-typedef enum {\r
-  W_Main, W_Console, W_Comment, W_Tags, W_GameList, \r
-  W_MoveHist, W_EngineOut, NUM_WINDOWS\r
-} WindowID;\r
-\r
-extern WindowPlacement placementTab[NUM_WINDOWS];\r
-extern HWND hwndTab[NUM_WINDOWS]; // this remains pure front-end.\r
-\r
-void Translate( HWND hDlg, int id);\r
-VOID InitWindowPlacement( WindowPlacement * wp );\r
-VOID RestoreWindowPlacement( HWND hWnd, WindowPlacement * wp );\r
-VOID ReattachAfterMove( LPRECT lprcOldPos, int new_x, int new_y, HWND hWndChild, WindowPlacement * pwpChild );\r
-VOID ReattachAfterSize( LPRECT lprcOldPos, int new_w, int new_h, HWND hWndChild, WindowPlacement * pwpChild );\r
-BOOL GetActualPlacement( HWND hWnd, WindowPlacement * wp );\r
-\r
-VOID MoveHistoryPopUp();\r
-VOID MoveHistoryPopDown();\r
-extern HWND moveHistoryDialog;\r
-\r
-VOID EvalGraphPopUp();\r
-VOID EvalGraphPopDown();\r
-extern HWND evalGraphDialog;\r
-\r
-extern HWND engineOutputDialog;\r
-\r
-struct GameListStats\r
-{\r
-    int white_wins;\r
-    int black_wins;\r
-    int drawn;\r
-    int unfinished;\r
-};\r
-\r
-int GameListToListBox( HWND hDlg, BOOL boReset, char * pszFilter, struct GameListStats * stats, BOOL byPos, BOOL narrow );\r
-VOID ShowGameListProc(void);\r
-extern HWND gameListDialog;\r
-\r
-VOID EditTagsProc(void);\r
-extern HWND editTagsDialog;\r
-extern int screenWidth, screenHeight;\r
-extern RECT screenGeometry; // Top-left coordiate of the screen can be different from (0,0)\r
-\r
diff --git a/winboard/winboard.hpj b/winboard/winboard.hpj
deleted file mode 100644 (file)
index ea47092..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-; This file is maintained by HCW. Do not modify this file directly.\r
-\r
-; This help project requires hc 3.1\r
-[OPTIONS]\r
-ERRORLOG=winboard.err\r
-LCID=0x409 0x0 0x0 ; English (United States)\r
-REPORT=Yes\r
-TITLE=WinBoard Help\r
-BMROOT=bitmaps\r
-HLP=.\winboard.hlp\r
-\r
-[FILES]\r
-winboard.rtf\r
-\r
-[WINDOWS]\r
-main="WinBoard Help",,60676,,(r12632256),f2\r
-\r
-[CONFIG]\r
-BrowseButtons()\r
diff --git a/winboard/winboard.rc b/winboard/winboard.rc
deleted file mode 100644 (file)
index c55c6da..0000000
+++ /dev/null
@@ -1,2323 +0,0 @@
-//Microsoft Developer Studio generated resource script.\r
-//\r
-#include "resource.h"\r
-#include "config.h"\r
-\r
-#define APSTUDIO_READONLY_SYMBOLS\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Generated from the TEXTINCLUDE 2 resource.\r
-//\r
-#define APSTUDIO_HIDDEN_SYMBOLS\r
-#include "windows.h"\r
-#undef APSTUDIO_HIDDEN_SYMBOLS\r
-#include "dlgs.h"\r
-\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-#undef APSTUDIO_READONLY_SYMBOLS\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-// English (U.S.) resources\r
-\r
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r
-#ifdef _WIN32\r
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US\r
-#pragma code_page(1252)\r
-#endif //_WIN32\r
-\r
-// moved to "res" subdir to make testing easier-- don't want it in the root\r
-MANIFEST_RESOURCE_ID    24      MOVEABLE PURE   "res\\winboard.exe.manifest"\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Dialog\r
-//\r
-\r
-ABOUTBOX DIALOG DISCARDABLE  22, 17, 180, 108\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
-CAPTION "About WinBoard"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
-    DEFPUSHBUTTON   "OK",IDOK,126,89,50,14,WS_GROUP\r
-    ICON            "icon_white",IDC_STATIC,3,6,20,20\r
-    LTEXT           "Chessboard for Windows",400,25,15,121,8\r
-    LTEXT           "Copyright 1991 Digital Equipment Corporation",201,6,34,\r
-                    149,8\r
-    LTEXT           "Enhancements Copyright 1992-2015  Free Software Foundation",\r
-                    OPT_TCtext1,6,45,121,17\r
-    CONTROL         "",OPT_TCTime,"Static",SS_BLACKRECT,4,28,159,1\r
-    LTEXT           "WinBoard 0.0.0",ABOUTBOX_Version,25,5,160,8\r
-    LTEXT           "Enhancements Copyright 2005\r\nAlessandro Scotti",\r
-                    IDC_STATIC,6,65,120,24\r
-    LTEXT           "      ", OPT_MESS,6,85,120,16\r
-END\r
-\r
-DLG_TimeControl DIALOG DISCARDABLE  6, 18, 263, 212\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\r
-CAPTION "Time Control"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
-    LTEXT           "Use arrow keys to specify which clock setting type, then press tab to alter values.",\r
-                    IDC_Babble,9,9,231,20\r
-    CONTROL         "Conventional chess clock",OPT_TCUseMoves,"Button",\r
-                    BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,7,36,113,10\r
-    CONTROL         "Incremental clock",OPT_TCUseInc,"Button",\r
-                    BS_AUTORADIOBUTTON | WS_TABSTOP,7,73,107,10\r
-    CONTROL         "Fixed time per move",OPT_TCUseFixed,"Button",\r
-                    BS_AUTORADIOBUTTON | WS_TABSTOP,7,124,107,10\r
-    LTEXT           "Number of moves:",OPT_TCtext1,15,52,58,8,NOT WS_GROUP\r
-    EDITTEXT        OPT_TCMoves,77,52,22,12,ES_AUTOHSCROLL | WS_GROUP\r
-    LTEXT           "Within number of minutes:",OPT_TCtext2,113,54,81,8,NOT \r
-                    WS_GROUP\r
-    EDITTEXT        OPT_TCTime,197,52,32,12,ES_AUTOHSCROLL\r
-    LTEXT           "Initial number of minutes:",OPT_TCitext1,15,89,126,8,NOT \r
-                    WS_GROUP\r
-    EDITTEXT        OPT_TCTime2,147,87,32,12,ES_AUTOHSCROLL | WS_GROUP\r
-    LTEXT           "Plus number of seconds per move:",OPT_TCitext2,15,105,129,8,NOT \r
-                    WS_GROUP\r
-    EDITTEXT        OPT_TCInc,147,103,32,12,ES_AUTOHSCROLL\r
-    LTEXT           "Maximum seconds per move:",OPT_TCftext,15,142,129,8,NOT \r
-                    WS_GROUP\r
-    EDITTEXT        OPT_TCFixed,147,140,32,12,ES_AUTOHSCROLL\r
-    LTEXT           "",OPT_TCitext3,185,148,67,8,NOT WS_GROUP\r
-    LTEXT           "Time-Odds Factors:",GPB_Factors,6,158,150,8,NOT WS_GROUP | WS_TABSTOP\r
-    LTEXT           "Engine #1:",IDC_Factor1,6,173,60,8,NOT WS_GROUP\r
-    EDITTEXT        OPT_TCOdds1,67,171,32,12,ES_AUTOHSCROLL | WS_GROUP\r
-    LTEXT           "Engine #2:",IDC_Factor2,106,173,60,8,NOT WS_GROUP\r
-    EDITTEXT        OPT_TCOdds2,167,171,32,12,ES_AUTOHSCROLL\r
-    PUSHBUTTON      "OK",IDOK,139,190,40,14,WS_GROUP\r
-    PUSHBUTTON      "Cancel",IDCANCEL,195,190,40,14\r
-END\r
-\r
-DLG_LoadOptions DIALOG DISCARDABLE  10, 18, 170, 281\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\r
-CAPTION "Load Game Options"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
-    CONTROL         "Load games with &automatic stepping",OPT_Autostep,"Button",\r
-                    BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,4,4,160,10\r
-    LTEXT           "&seconds per move",OPT_AStext1,46,20,90,8,NOT WS_GROUP\r
-    EDITTEXT        OPT_ASTimeDelay,16,16,28,14,ES_AUTOHSCROLL\r
-    LTEXT           "when filtering game list on position, use thresholds:",OPT_thresholds,4,36,160,8,NOT WS_GROUP\r
-    LTEXT           "minimum Elo for &best player",OPT_elo1t,46,54,90,8,NOT WS_GROUP\r
-    EDITTEXT        OPT_elo1,16,50,28,14,ES_AUTOHSCROLL\r
-    LTEXT           "minimum Elo for &weakest players",OPT_elo2t,46,74,90,8,NOT WS_GROUP\r
-    EDITTEXT        OPT_elo2,16,70,28,14,ES_AUTOHSCROLL\r
-    LTEXT           "or later &year",OPT_datet,46,94,94,8,NOT WS_GROUP\r
-    EDITTEXT        OPT_date,16,90,28,14,ES_AUTOHSCROLL\r
-    LTEXT           "co&nsecutive positions",OPT_Stretcht,46,114,94,8,NOT WS_GROUP\r
-    EDITTEXT        OPT_Stretch,16,110,28,14,ES_AUTOHSCROLL\r
-    LTEXT           "final piece count",OPT_Ranget,46,134,94,8,NOT WS_GROUP\r
-    EDITTEXT        OPT_Counts,16,130,28,14,ES_AUTOHSCROLL\r
-    CONTROL         "Match exact &position",OPT_Exact,"Button",\r
-                    BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,6,156,159,10\r
-    CONTROL         "Match if position is s&ubset",OPT_Subset,"Button",\r
-                    BS_AUTORADIOBUTTON | WS_TABSTOP,6,169,159,10\r
-    CONTROL         "Match material with e&xact pawn structure",OPT_Struct,"Button",\r
-                    BS_AUTORADIOBUTTON | WS_TABSTOP,6,182,159,10\r
-    CONTROL         "Match &material",OPT_Material,"Button",\r
-                    BS_AUTORADIOBUTTON | WS_TABSTOP,6,195,159,10\r
-    CONTROL         "Material &range (upper board-half is optional)",OPT_Range,"Button",\r
-                    BS_AUTORADIOBUTTON | WS_TABSTOP,6,208,159,10\r
-    CONTROL         "Material &difference (optional material balanced)",OPT_Difference,"Button",\r
-                    BS_AUTORADIOBUTTON | WS_TABSTOP,6,221,159,10\r
-    GROUPBOX        "Search Mode: ",OPT_SearchMode,3,146,164,87,WS_GROUP\r
-    CONTROL         "Also match reversed &colors",OPT_Reversed,"Button",\r
-                    BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,4,234,160,10\r
-    CONTROL         "Also match &left-right mirror image",OPT_Mirror,"Button",\r
-                    BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,4,247,160,10\r
-    PUSHBUTTON      "OK",IDOK,56,262,50,14,WS_GROUP\r
-    PUSHBUTTON      "Cancel",IDCANCEL,112,262,50,14\r
-END\r
-\r
-DLG_SaveOptions DIALOG DISCARDABLE  6, 17, 218, 119\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\r
-CAPTION "Save Game Options"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
-    CONTROL         "Save games automatically",OPT_Autosave,"Button",\r
-                    BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,4,4,157,10\r
-    CONTROL         "Prompt for filename",OPT_AVPrompt,"Button",\r
-                    BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,16,18,150,10\r
-    CONTROL         "To file:",OPT_AVToFile,"Button",BS_AUTORADIOBUTTON,16,\r
-                    32,56,10\r
-    EDITTEXT        OPT_AVFilename,74,30,117,14,ES_AUTOHSCROLL\r
-    PUSHBUTTON      "...",OPT_AVBrowse,196,30,18,14\r
-    GROUPBOX        "Save As: ",801,4,48,210,28,WS_GROUP\r
-    CONTROL         "PGN",OPT_PGN,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,8,\r
-                    60,59,10\r
-    CONTROL         "Old",OPT_Old,"Button",BS_AUTORADIOBUTTON,74,60,114,10\r
-    CONTROL         "Save out of book info in PGN",OPT_OutOfBookInfo,"Button",\r
-                    BS_AUTOCHECKBOX | WS_TABSTOP,4,82,169,10\r
-    PUSHBUTTON      "OK",IDOK,108,100,50,14,WS_GROUP\r
-    PUSHBUTTON      "Cancel",IDCANCEL,164,100,50,14\r
-END\r
-\r
-1536 DIALOG DISCARDABLE  36, 24, 264, 134\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
-CAPTION "Open"\r
-FONT 8, "Helv"\r
-BEGIN\r
-    LTEXT           "File &Name:",1090,6,6,76,9\r
-    EDITTEXT        1152,6,16,90,12,ES_AUTOHSCROLL | ES_OEMCONVERT\r
-    LISTBOX         1120,6,32,90,68,LBS_SORT | LBS_OWNERDRAWFIXED | \r
-                    LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_VSCROLL | \r
-                    WS_TABSTOP\r
-    LTEXT           "&Directories:",IDC_Directories,110,6,92,9\r
-    LTEXT           "",1088,110,18,92,9,SS_NOPREFIX | NOT WS_GROUP\r
-    LISTBOX         1121,110,32,92,68,LBS_SORT | LBS_OWNERDRAWFIXED | \r
-                    LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_VSCROLL | \r
-                    WS_TABSTOP\r
-    LTEXT           "List Files of &Type:",1089,6,104,90,9\r
-    COMBOBOX        1136,6,114,90,36,CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | \r
-                    WS_BORDER | WS_VSCROLL | WS_TABSTOP\r
-    LTEXT           "Dri&ves:",1091,110,104,92,9\r
-    COMBOBOX        1137,110,114,92,68,CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | \r
-                    CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | \r
-                    WS_VSCROLL | WS_TABSTOP\r
-    DEFPUSHBUTTON   "OK",IDOK,208,6,50,14,WS_GROUP\r
-    PUSHBUTTON      "Cancel",IDCANCEL,208,24,50,14,WS_GROUP\r
-    PUSHBUTTON      "&Help",1038,208,46,50,14,NOT WS_VISIBLE | WS_GROUP\r
-    LTEXT           "&Index number:",IDC_IndexNr,208,74,48,8\r
-    EDITTEXT        OPT_IndexNumberOld,208,84,50,12,ES_AUTOHSCROLL\r
-    PUSHBUTTON      "Net&work...",1037,208,113,50,14,WS_GROUP\r
-END\r
-\r
-DLG_CommPort DIALOG DISCARDABLE  25, 30, 220, 79\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
-CAPTION "Communication Port Settings"\r
-FONT 8, "Helv"\r
-BEGIN\r
-    PUSHBUTTON      "OK",IDOK,106,60,50,14\r
-    PUSHBUTTON      "Cancel",IDCANCEL,164,60,50,14\r
-    RTEXT           "&Port:",IDC_Port,4,6,40,10\r
-    COMBOBOX        OPT_Port,49,4,55,60,CBS_DROPDOWN | WS_VSCROLL | \r
-                    WS_TABSTOP\r
-    RTEXT           "Data &Rate:",IDC_Rate,114,6,40,10,NOT WS_GROUP\r
-    COMBOBOX        OPT_DataRate,159,4,55,100,CBS_DROPDOWN | WS_VSCROLL | \r
-                    WS_TABSTOP\r
-    RTEXT           "Data &Bits:",IDC_Bits,4,25,40,10,NOT WS_GROUP\r
-    COMBOBOX        OPT_Bits,49,22,55,60,CBS_DROPDOWNLIST | CBS_HASSTRINGS | \r
-                    WS_VSCROLL | WS_TABSTOP\r
-    RTEXT           "P&arity:",IDC_Parity,114,24,40,10,NOT WS_GROUP\r
-    COMBOBOX        OPT_Parity,159,22,55,60,CBS_DROPDOWNLIST | \r
-                    CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
-    RTEXT           "&Stop Bits:",IDC_Stop,4,42,40,10,NOT WS_GROUP\r
-    COMBOBOX        OPT_StopBits,49,40,55,60,CBS_DROPDOWNLIST | \r
-                    CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP\r
-    RTEXT           "F&low:",IDC_Flow,114,42,40,10,NOT WS_GROUP\r
-    COMBOBOX        OPT_Flow,159,40,55,60,CBS_DROPDOWNLIST | CBS_HASSTRINGS | \r
-                    WS_VSCROLL | WS_TABSTOP\r
-    PUSHBUTTON      "Help",OPT_SerialHelp,4,60,50,14,NOT WS_VISIBLE\r
-END\r
-\r
-DLG_EditComment DIALOG DISCARDABLE  6, 18, 302, 102\r
-STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME\r
-CAPTION "Edit Comment"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
-    PUSHBUTTON      "OK",IDOK,194,84,50,14\r
-    PUSHBUTTON      "Cancel",OPT_CancelComment,250,84,50,14\r
-    CONTROL         "",OPT_CommentText,"RICHEDIT",ES_MULTILINE | \r
-                    ES_AUTOHSCROLL | ES_WANTRETURN | WS_BORDER | WS_VSCROLL | \r
-                    WS_HSCROLL | WS_TABSTOP,2,2,298,78\r
-    PUSHBUTTON      "&Clear",OPT_ClearComment,2,84,50,14\r
-    PUSHBUTTON      "&Edit",OPT_EditComment,58,84,50,14\r
-END\r
-\r
-DLG_PromotionKing DIALOG DISCARDABLE  98, 90, 183, 41\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\r
-CAPTION "Promote to:"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
-    PUSHBUTTON      "Chance&llor",PB_Chancellor,49,4,40,14,NOT WS_TABSTOP\r
-    PUSHBUTTON      "&Archbishop",PB_Archbishop,94,4,40,14,NOT WS_TABSTOP\r
-    PUSHBUTTON      "&Queen",PB_Queen,4,23,40,14,WS_GROUP\r
-    PUSHBUTTON      "&Rook",PB_Rook,49,23,40,14,NOT WS_TABSTOP\r
-    PUSHBUTTON      "&Bishop",PB_Bishop,94,23,40,14,NOT WS_TABSTOP\r
-    PUSHBUTTON      "K&night",PB_Knight,139,23,40,14,NOT WS_TABSTOP\r
-    PUSHBUTTON      "&King",PB_King,4,4,40,14,NOT WS_TABSTOP\r
-    PUSHBUTTON      "&Cancel",IDCANCEL,139,4,40,14,WS_GROUP\r
-    LTEXT           "C&entaur",IDC_Centaur,12,6,25,10\r
-END\r
-\r
-ABOUTBOX2 DIALOG DISCARDABLE  22, 17, 281, 223\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
-CAPTION "About WinBoard"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
-    RTEXT           "Chessboard for Windows",IDC_ChessBoard,196,154,80,8\r
-    LTEXT           "Copyright 1991 Digital Equipment Corporation",201,4,168,\r
-                    151,8\r
-    LTEXT           "Enhancements Copyright 1992-2014   Free Software Foundation",\r
-                    OPT_TCtext1,4,179,126,17\r
-    CONTROL         "",OPT_TCTime,"Static",SS_BLACKRECT,4,164,272,1\r
-    LTEXT           "WinBoard 0.0.0",ABOUTBOX_Version,4,154,64,8\r
-    CONTROL         "galactic",IDC_STATIC,"Static",SS_BITMAP,4,4,15,13\r
-    DEFPUSHBUTTON   "OK",IDOK,226,204,50,14\r
-    LTEXT           "Enhancements Copyright 2005\r\nAlessandro Scotti",\r
-                    IDC_STATIC,4,199,183,20\r
-    LTEXT           "(unofficial version ""X"")",IDC_STATIC,68,154,71,8\r
-END\r
-\r
-DLG_GameList DIALOG DISCARDABLE  6, 18, 282, 153\r
-STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME\r
-CAPTION "Game List"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
-    LISTBOX         OPT_GameListText,2,2,277,130,LBS_NOINTEGRALHEIGHT | \r
-                    WS_VSCROLL | WS_HSCROLL | WS_TABSTOP\r
-    PUSHBUTTON      "&Thresholds",OPT_GameListLoad,2,136,40,15\r
-    PUSHBUTTON      "&Find Position",OPT_GameListFind,45,136,48,15\r
-    PUSHBUTTON      "&Narrow",OPT_GameListNarrow,96,136,30,15\r
-    PUSHBUTTON      "&Close",OPT_GameListClose,129,136,20,15\r
-    PUSHBUTTON      ">",OPT_GameListNext,152,136,17,15\r
-    PUSHBUTTON      "&Filter",IDC_GameListDoFilter,172,136,25,14\r
-    EDITTEXT        IDC_GameListFilter,201,136,78,14,ES_AUTOHSCROLL\r
-END\r
-\r
-DLG_EditTags DIALOG DISCARDABLE  6, 18, 223, 140\r
-STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME\r
-CAPTION "Edit Tags"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
-    PUSHBUTTON      "OK",IDOK,114,122,50,14\r
-    PUSHBUTTON      "Cancel",OPT_TagsCancel,170,122,50,14\r
-    PUSHBUTTON      "Save",OPT_TagsSave,58,122,50,14\r
-    CONTROL         "",OPT_TagsText,"RICHEDIT",ES_MULTILINE | ES_AUTOVSCROLL | \r
-                    ES_AUTOHSCROLL | ES_WANTRETURN | WS_BORDER | WS_VSCROLL | \r
-                    WS_HSCROLL | WS_TABSTOP,2,2,218,115\r
-    PUSHBUTTON      "&Edit",OPT_EditTags,2,122,50,14\r
-END\r
-\r
-WBCONSOLE DIALOG DISCARDABLE  0, 0, 335, 133\r
-STYLE WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_CAPTION | WS_SYSMENU | \r
-    WS_THICKFRAME\r
-CAPTION "I C S"\r
-CLASS "WBConsole"\r
-FONT 8, "Courier New"\r
-BEGIN\r
-    CONTROL         "",OPT_ConsoleText,"RICHEDIT",ES_MULTILINE | \r
-                    ES_AUTOVSCROLL | ES_NOHIDESEL | ES_READONLY | ES_NUMBER | \r
-                    WS_BORDER | WS_VSCROLL | WS_TABSTOP,0,0,335,119\r
-    CONTROL         "",OPT_ConsoleInput,"RICHEDIT",ES_MULTILINE | \r
-                    ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_NOHIDESEL | \r
-                    ES_NUMBER | WS_BORDER | WS_TABSTOP,0,120,335,13,\r
-                    WS_EX_TRANSPARENT\r
-END\r
-\r
-DLG_Analysis DIALOG DISCARDABLE  0, 0, 294, 62\r
-STYLE WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | \r
-    WS_THICKFRAME\r
-CAPTION "Dialog"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
-    CONTROL         "",OPT_AnalysisText,"RICHEDIT",ES_MULTILINE | \r
-                    ES_READONLY | ES_WANTRETURN | WS_BORDER | WS_VSCROLL | \r
-                    WS_HSCROLL | WS_TABSTOP,4,4,286,54\r
-END\r
-\r
-DLG_Error DIALOG DISCARDABLE  0, 0, 220, 66\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\r
-CAPTION "Error"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
-    ICON            32515,IDC_STATIC,4,4,21,20\r
-    LTEXT           "Sorry Charlie",OPT_ErrorText,28,4,188,36\r
-    DEFPUSHBUTTON   "OK",IDOK,84,48,50,14\r
-END\r
-\r
-DLG_Colorize DIALOGEX 0, 0, 174, 61\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
-CAPTION "I C S Interaction Colors"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
-    DEFPUSHBUTTON   "OK",IDOK,64,42,50,14,WS_GROUP\r
-    PUSHBUTTON      "Cancel",IDCANCEL,120,42,50,14\r
-    PUSHBUTTON      "&Color...",OPT_ChooseColor,119,4,51,14,WS_GROUP\r
-    CONTROL         "&Bold",OPT_Bold,"Button",BS_AUTOCHECKBOX | WS_GROUP | \r
-                    WS_TABSTOP,4,24,30,10\r
-    CONTROL         "&Italic",OPT_Italic,"Button",BS_AUTOCHECKBOX,40,24,30,\r
-                    10\r
-    CONTROL         "&Underline",OPT_Underline,"Button",BS_AUTOCHECKBOX,76,\r
-                    24,45,10\r
-    CONTROL         "&Strikeout",OPT_Strikeout,"Button",BS_AUTOCHECKBOX,128,\r
-                    24,42,10\r
-    CONTROL         "",OPT_Sample,"RICHEDIT",ES_CENTER | ES_MULTILINE | \r
-                    ES_READONLY | WS_GROUP,4,4,106,15,WS_EX_CLIENTEDGE\r
-END\r
-\r
-DLG_Question DIALOG DISCARDABLE  0, 0, 187, 77\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
-CAPTION "Question"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
-    EDITTEXT        OPT_QuestionInput,4,36,179,14,ES_AUTOHSCROLL\r
-    DEFPUSHBUTTON   "OK",IDOK,78,58,50,14,WS_GROUP\r
-    PUSHBUTTON      "Cancel",IDCANCEL,134,58,50,14\r
-    LTEXT           "Enter a chess engine command or just type something stupid that will completely screw things up.",\r
-                    OPT_QuestionText,30,2,153,28\r
-    ICON            32514,IDC_STATIC,4,4,20,20\r
-END\r
-\r
-DLG_Startup DIALOG DISCARDABLE  0, 0, 326, 159\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
-CAPTION "WinBoard Startup"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
-    GROUPBOX        "What would you like to do?",IDC_Welcome,4,4,318,56\r
-    CONTROL         "&Play against a chess engine or match two engines",\r
-                    OPT_ChessEngine,"Button",BS_AUTORADIOBUTTON | WS_GROUP | \r
-                    WS_TABSTOP,8,17,310,10\r
-    CONTROL         "&Use an Internet Chess Server",OPT_ChessServer,"Button",\r
-                    BS_AUTORADIOBUTTON | WS_TABSTOP,8,30,310,10\r
-    CONTROL         "Just &view or edit game files",OPT_View,"Button",\r
-                    BS_AUTORADIOBUTTON | WS_TABSTOP,8,43,310,10\r
-    LTEXT           "Specify Chess &Engines:",IDC_SPECIFY_ENG_STATIC,11,63,\r
-                    200,10\r
-    COMBOBOX        OPT_ChessEngineName,17,74,244,129,CBS_DROPDOWN | \r
-                    CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP\r
-    COMBOBOX        OPT_SecondChessEngineName,17,92,244,129,CBS_DROPDOWN | \r
-                    CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP\r
-    LTEXT           "Specify Chess &Server:",IDC_SPECIFY_SERVER_STATIC,11,\r
-                    108,200,10\r
-    COMBOBOX        OPT_ChessServerName,17,122,244,129,CBS_DROPDOWN | \r
-                    CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP\r
-    CONTROL         "&Additional options",OPT_AnyAdditional,"Button",\r
-                    BS_AUTOCHECKBOX | WS_TABSTOP,11,142,91,10\r
-    EDITTEXT        OPT_AdditionalOptions,105,142,215,13,ES_AUTOHSCROLL\r
-    DEFPUSHBUTTON   "OK",IDOK,272,73,50,14\r
-    PUSHBUTTON      "Cancel",IDCANCEL,272,91,50,14\r
-    PUSHBUTTON      "&Help",IDM_HELPCONTENTS,272,109,50,14\r
-END\r
-\r
-DLG_IndexNumber DIALOG DISCARDABLE  0, 0, 236, 18\r
-STYLE DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_CLIPSIBLINGS\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
-    LTEXT           "Inde&x number:",IDC_Index,5,2,46,8\r
-    EDITTEXT        OPT_IndexNumber,54,0,155,13,ES_AUTOHSCROLL\r
-END\r
-\r
-DLG_TypeInMove DIALOG DISCARDABLE  0, 0, 206, 23\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
-CAPTION "Type in a move"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
-    DEFPUSHBUTTON   "OK",IDOK,96,4,50,14\r
-    PUSHBUTTON      "Cancel",IDCANCEL,152,4,50,14\r
-    EDITTEXT        OPT_Move,4,4,86,13,ES_AUTOHSCROLL\r
-END\r
-\r
-DLG_TypeInName DIALOG DISCARDABLE  0, 0, 206, 23\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
-CAPTION "Type in your name"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
-    DEFPUSHBUTTON   "OK",IDOK,96,4,50,14\r
-    PUSHBUTTON      "Cancel",IDCANCEL,152,4,50,14\r
-    EDITTEXT        OPT_Name,4,4,86,13,ES_AUTOHSCROLL\r
-END\r
-\r
-DLG_Sound DIALOG DISCARDABLE  0, 0, 262, 105\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
-CAPTION "Sounds"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
-    LTEXT           "&Event:",IDC_Event,4,7,46,9\r
-    COMBOBOX        CBO_Sounds,50,4,208,110,CBS_DROPDOWNLIST | WS_VSCROLL | \r
-                    WS_TABSTOP\r
-//    GROUPBOX        "sound type",IDC_STATIC,8,18,66,62\r
-    CONTROL         "&No sound",OPT_NoSound,"Button",BS_AUTORADIOBUTTON | \r
-                    WS_GROUP | WS_TABSTOP,12,22,47,10\r
-    CONTROL         "&Default beep",OPT_DefaultBeep,"Button",\r
-                    BS_AUTORADIOBUTTON | WS_TABSTOP,12,36,83,10\r
-    CONTROL         "&Built-in sound:",OPT_BuiltInSound,"Button",\r
-                    BS_AUTORADIOBUTTON | WS_TABSTOP,12,51,83,10\r
-    CONTROL         "&WAV file:",OPT_WavFile,"Button",BS_AUTORADIOBUTTON | \r
-                    WS_TABSTOP,12,66,83,10\r
-    COMBOBOX        OPT_BuiltInSoundName,96,48,103,109,CBS_DROPDOWNLIST | \r
-                    CBS_SORT | WS_VSCROLL | WS_TABSTOP | WS_GROUP\r
-    EDITTEXT        OPT_WavFileName,96,65,103,12,ES_AUTOHSCROLL\r
-    PUSHBUTTON      "B&rowse...",OPT_BrowseSound,208,64,50,14\r
-    PUSHBUTTON      "&Play",OPT_PlaySound,208,47,50,14\r
-    PUSHBUTTON      "Defaults",OPT_DefaultSounds,6,86,50,14\r
-    DEFPUSHBUTTON   "OK",IDOK,152,86,50,14\r
-    PUSHBUTTON      "Cancel",IDCANCEL,208,86,50,14\r
-END\r
-\r
-DLG_GeneralOptions DIALOG DISCARDABLE  0, 0, 300, 225\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
-CAPTION "General Options"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
-    CONTROL         "Always on &Top",OPT_AlwaysOnTop,"Button",\r
-                    BS_AUTOCHECKBOX | WS_TABSTOP,4,6,151,10\r
-    CONTROL         "Highlight Last &Move",OPT_HighlightLastMove,"Button",\r
-                    BS_AUTOCHECKBOX | WS_TABSTOP,156,6,151,10\r
-    CONTROL         "Always &Queen            Ctrl+Shift+Q",OPT_AlwaysQueen,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,4,20,151,10\r
-    CONTROL         "Periodic &Updates",OPT_PeriodicUpdates,"Button",\r
-                    BS_AUTOCHECKBOX | WS_TABSTOP,156,20,151,10\r
-    CONTROL         "Animate &Dragging",OPT_AnimateDragging,"Button",\r
-                    BS_AUTOCHECKBOX | WS_TABSTOP,4,34,151,10\r
-    CONTROL         "Ponder &Next Move  Ctrl+Shift+P",OPT_PonderNextMove,"Button",\r
-                    BS_AUTOCHECKBOX | WS_TABSTOP,156,34,151,10\r
-    CONTROL         "&Animate Moving         Ctrl+Shift+A",OPT_AnimateMoving,"Button",\r
-                    BS_AUTOCHECKBOX | WS_TABSTOP,4,48,151,10\r
-    CONTROL         "&Popup Exit Message",OPT_PopupExitMessage,"Button",\r
-                    BS_AUTOCHECKBOX | WS_TABSTOP,156,48,151,10\r
-    CONTROL         "Auto &Flag                   Ctrl+Shift+F",OPT_AutoFlag,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,4,62,151,10\r
-    CONTROL         "Popup Move &Errors",OPT_PopupMoveErrors,"Button",\r
-                    BS_AUTOCHECKBOX | WS_TABSTOP,156,62,151,10\r
-    CONTROL         "Auto Flip &View",OPT_AutoFlipView,"Button",\r
-                    BS_AUTOCHECKBOX | WS_TABSTOP,4,76,151,10\r
-    CONTROL         "Show Butt&on Bar",OPT_ShowButtonBar,"Button",\r
-                    BS_AUTOCHECKBOX | WS_TABSTOP,156,76,151,10\r
-    CONTROL         "Auto &Raise Board",OPT_AutoRaiseBoard,"Button",\r
-                    BS_AUTOCHECKBOX | WS_TABSTOP,4,90,151,10\r
-    CONTROL         "Show &Coordinates",OPT_ShowCoordinates,"Button",\r
-                    BS_AUTOCHECKBOX | WS_TABSTOP,156,90,151,10\r
-    CONTROL         "&Blindfold",OPT_Blindfold,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,4,104,151,10\r
-    CONTROL         "&Send Engine Think",OPT_ShowThinking,"Button",\r
-                    BS_AUTOCHECKBOX | WS_TABSTOP,156,104,151,10\r
-    CONTROL         "Highlight Dra&gging",OPT_HighlightDragging,"Button",\r
-                    BS_AUTOCHECKBOX | WS_TABSTOP,4,118,151,10\r
-    CONTROL         "Test &Legality            Ctrl+Shift+L",OPT_TestLegality,"Button",\r
-                    BS_AUTOCHECKBOX | WS_TABSTOP,156,118,151,10\r
-    CONTROL         "E&xtended PGN Info    Ctrl+Shift+X",OPT_SaveExtPGN,"Button",\r
-                    BS_AUTOCHECKBOX | WS_TABSTOP,4,132,151,10\r
-    CONTROL         "&Hide Thinking          Ctrl+Shift+H",OPT_HideThinkFromHuman,"Button",\r
-                    BS_AUTOCHECKBOX | WS_TABSTOP,156,132,151,10\r
-    CONTROL         "&Info in Move History   Ctrl+Shift+I",OPT_ExtraInfoInMoveHistory,\r
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,4,146,151,10\r
-    CONTROL         "Highlight with Arro&w",OPT_HighlightMoveArrow,\r
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,156,146,151,10\r
-    CONTROL         "Displa&y Logos",OPT_AutoLogo,\r
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,4,160,151,10\r
-    CONTROL         "One-Click Move",OPT_SmartMove,\r
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,156,160,151,10\r
-    CONTROL         "auto-Display Tags",OPT_AutoTags,\r
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,4,174,151,10\r
-    CONTROL         "auto-Display Comment",OPT_AutoComment,\r
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,156,174,151,10\r
-    CONTROL         "Headers in Engine Output",OPT_Headers,\r
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,4,188,151,10\r
-    CONTROL         "Enable Variation Trees",OPT_Variations,\r
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,156,188,151,10\r
-    CONTROL         "Play Analysis PV on Click",OPT_AutoExtend,\r
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,4,202,151,10\r
-    DEFPUSHBUTTON   "OK",IDOK,180,206,50,14\r
-    PUSHBUTTON      "Cancel",IDCANCEL,236,206,50,14\r
-END\r
-\r
-DLG_IcsOptions DIALOGEX 0, 0, 302, 268\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
-CAPTION "ICS Options"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
-    DEFPUSHBUTTON   "OK",IDOK,194,250,50,15\r
-    PUSHBUTTON      "Cancel",IDCANCEL,248,250,50,15\r
-    CONTROL         "&Auto Comment",OPT_AutoComment,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,10,12,73,8\r
-    CONTROL         "&Auto Kibitz",OPT_AutoKibitz,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,94,12,73,8\r
-    CONTROL         "Auto &Observe",OPT_AutoObserve,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,10,25,73,8\r
-    CONTROL         "Auto &Create Logon",OPT_AutoCreate,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,94,25,73,8\r
-    CONTROL         "&Get Move List",OPT_GetMoveList,"Button",\r
-                    BS_AUTOCHECKBOX | WS_TABSTOP,10,38,150,8\r
-    CONTROL         "&Local Line Editing",OPT_LocalLineEditing,"Button",\r
-                    BS_AUTOCHECKBOX | WS_TABSTOP,10,51,150,8\r
-    CONTROL         "&Quiet Play",OPT_QuietPlay,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,10,64,150,8\r
-    CONTROL         "See&k Graph",OPT_SeekGraph,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,10,77,73,8\r
-    CONTROL         "auto-&Refresh",OPT_AutoRefresh,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,94,77,73,8\r
-    CONTROL         "Bckgnd Obser&ve",OPT_BgObserve,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,10,90,73,8\r
-    CONTROL         "&Dual Board",OPT_DualBoard,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,94,90,73,8\r
-    CONTROL         "&Premove",OPT_Premove,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,180,12,117,10\r
-    CONTROL         "&White first move",OPT_PremoveWhite,"Button",\r
-                    BS_AUTOCHECKBOX | WS_TABSTOP,180,26,67,10\r
-    EDITTEXT        OPT_PremoveWhiteText,256,22,25,14,ES_AUTOHSCROLL\r
-    CONTROL         "&Black first move",OPT_PremoveBlack,"Button",\r
-                    BS_AUTOCHECKBOX | WS_TABSTOP,180,40,66,10\r
-    EDITTEXT        OPT_PremoveBlackText,256,38,25,14,ES_AUTOHSCROLL\r
-    CONTROL         "One-Click &Move",OPT_SmartMove,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,180,54,117,10\r
-    CONTROL         "&Sound alarm at",OPT_IcsAlarm,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,180,85,63,10\r
-    EDITTEXT        OPT_IcsAlarmTime,244,81,18,14,ES_AUTOHSCROLL\r
-    LTEXT           "seconds",IDC_Sec,264,85,33,8\r
-    PUSHBUTTON      "Choose...",OPT_ChooseShoutColor,97,114,45,15\r
-    PUSHBUTTON      "Choose...",OPT_ChooseSShoutColor,97,134,45,15\r
-    PUSHBUTTON      "Choose...",OPT_ChooseChannel1Color,97,154,45,15\r
-    PUSHBUTTON      "Choose...",OPT_ChooseChannelColor,97,174,45,15\r
-    PUSHBUTTON      "Choose...",OPT_ChooseKibitzColor,97,194,45,15\r
-    PUSHBUTTON      "Choose...",OPT_ChooseTellColor,246,114,45,15\r
-    PUSHBUTTON      "Choose...",OPT_ChooseChallengeColor,246,134,45,15\r
-    PUSHBUTTON      "Choose...",OPT_ChooseRequestColor,246,154,45,15\r
-    PUSHBUTTON      "Choose...",OPT_ChooseSeekColor,246,174,45,15\r
-    PUSHBUTTON      "Choose...",OPT_ChooseNormalColor,246,194,45,15\r
-    PUSHBUTTON      "Background...",OPT_ChooseBackgroundColor,10,221,50,16\r
-    PUSHBUTTON      "&Defaults...",OPT_DefaultColors,68,221,50,16\r
-    CONTROL         "Do &not colorize messages",OPT_DontColorize,"Button",\r
-                    BS_AUTOCHECKBOX | WS_TABSTOP,192,225,97,10\r
-    CONTROL         "",OPT_SampleShout,"RICHEDIT",ES_CENTER | ES_MULTILINE | \r
-                    ES_READONLY | WS_DISABLED | WS_GROUP,10,114,75,15,\r
-                    WS_EX_CLIENTEDGE\r
-    CONTROL         "",OPT_SampleSShout,"RICHEDIT",ES_CENTER | ES_MULTILINE | \r
-                    ES_READONLY | WS_DISABLED | WS_GROUP,10,134,75,15,\r
-                    WS_EX_CLIENTEDGE\r
-    CONTROL         "",OPT_SampleChannel1,"RICHEDIT",ES_CENTER | \r
-                    ES_MULTILINE | ES_READONLY | WS_DISABLED | WS_GROUP,10,\r
-                    154,75,15,WS_EX_CLIENTEDGE\r
-    CONTROL         "",OPT_SampleChannel,"RICHEDIT",ES_CENTER | ES_MULTILINE | \r
-                    ES_READONLY | WS_DISABLED | WS_GROUP,10,174,75,15,\r
-                    WS_EX_CLIENTEDGE\r
-    CONTROL         "",OPT_SampleKibitz,"RICHEDIT",ES_CENTER | ES_MULTILINE | \r
-                    ES_READONLY | WS_GROUP,10,194,75,15,WS_EX_CLIENTEDGE\r
-    CONTROL         "",OPT_SampleTell,"RICHEDIT",ES_CENTER | ES_MULTILINE | \r
-                    ES_READONLY | WS_DISABLED | WS_GROUP,159,114,75,15,\r
-                    WS_EX_CLIENTEDGE\r
-    CONTROL         "",OPT_SampleChallenge,"RICHEDIT",ES_CENTER | \r
-                    ES_MULTILINE | ES_READONLY | WS_DISABLED | WS_GROUP,159,\r
-                    134,75,15,WS_EX_CLIENTEDGE\r
-    CONTROL         "",OPT_SampleRequest,"RICHEDIT",ES_CENTER | ES_MULTILINE | \r
-                    ES_READONLY | WS_DISABLED | WS_GROUP,159,154,75,15,\r
-                    WS_EX_CLIENTEDGE\r
-    CONTROL         "",OPT_SampleSeek,"RICHEDIT",ES_CENTER | ES_MULTILINE | \r
-                    ES_READONLY | WS_DISABLED | WS_GROUP,159,174,75,15,\r
-                    WS_EX_CLIENTEDGE\r
-    CONTROL         "",OPT_SampleNormal,"RICHEDIT",ES_CENTER | ES_MULTILINE | \r
-                    ES_READONLY | WS_DISABLED | WS_GROUP,159,194,75,15,\r
-                    WS_EX_CLIENTEDGE\r
-    LTEXT           "Startup &Chat Boxes:",IDC_Boxes,4,251,65,8\r
-    EDITTEXT        OPT_StartupChatBoxes,72,249,90,14,ES_AUTOHSCROLL\r
-    GROUPBOX        "Interaction Colors",GPB_Colors,4,103,294,140\r
-    GROUPBOX        "Premove",GPB_Premove,174,0,124,69\r
-    GROUPBOX        "General",GPB_General,4,0,166,101\r
-    GROUPBOX        "Alarm",GPB_Alarm,174,71,124,30\r
-END\r
-\r
-DLG_BoardOptions DIALOG DISCARDABLE  0, 0, 224, 262\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
-CAPTION "Board Options"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
-    CONTROL         "&Tiny",OPT_SizeTiny,"Button",BS_AUTORADIOBUTTON | \r
-                    WS_GROUP,9,14,50,10\r
-    CONTROL         "T&eeny",OPT_SizeTeeny,"Button",BS_AUTORADIOBUTTON,9,24,\r
-                    60,10\r
-    CONTROL         "&Dinky",OPT_SizeDinky,"Button",BS_AUTORADIOBUTTON,9,34,\r
-                    60,10\r
-    CONTROL         "&Petite",OPT_SizePetite,"Button",BS_AUTORADIOBUTTON,9,\r
-                    44,60,10\r
-    CONTROL         "Sl&im",OPT_SizeSlim,"Button",BS_AUTORADIOBUTTON,9,54,60,\r
-                    10\r
-    CONTROL         "&Small",OPT_SizeSmall,"Button",BS_AUTORADIOBUTTON,9,64,\r
-                    60,10\r
-    CONTROL         "Medi&ocre",OPT_SizeMediocre,"Button",BS_AUTORADIOBUTTON,\r
-                    80,14,60,10\r
-    CONTROL         "&Middling",OPT_SizeMiddling,"Button",BS_AUTORADIOBUTTON,\r
-                    80,24,60,10\r
-    CONTROL         "&Average",OPT_SizeAverage,"Button",BS_AUTORADIOBUTTON,\r
-                    80,34,60,10\r
-    CONTROL         "Mode&rate",OPT_SizeModerate,"Button",BS_AUTORADIOBUTTON,\r
-                    80,44,60,10\r
-    CONTROL         "Medi&um",OPT_SizeMedium,"Button",BS_AUTORADIOBUTTON,80,\r
-                    54,60,10\r
-    CONTROL         "Bul&ky",OPT_SizeBulky,"Button",BS_AUTORADIOBUTTON,80,64,\r
-                    60,10\r
-    CONTROL         "&Large",OPT_SizeLarge,"Button",BS_AUTORADIOBUTTON,154,\r
-                    14,60,10\r
-    CONTROL         "&Big",OPT_SizeBig,"Button",BS_AUTORADIOBUTTON,154,24,60,\r
-                    10\r
-    CONTROL         "&Huge",OPT_SizeHuge,"Button",BS_AUTORADIOBUTTON,154,34,\r
-                    60,10\r
-    CONTROL         "&Giant",OPT_SizeGiant,"Button",BS_AUTORADIOBUTTON,154,\r
-                    44,60,10\r
-    CONTROL         "&Colossal",OPT_SizeColossal,"Button",BS_AUTORADIOBUTTON,\r
-                    154,54,60,10\r
-    CONTROL         "Tita&nic",OPT_SizeTitanic,"Button",BS_AUTORADIOBUTTON,\r
-                    154,64,60,10\r
-    PUSHBUTTON      "...",OPT_ChooseLightSquareColor,110,94,20,15\r
-    PUSHBUTTON      "...",OPT_ChooseDarkSquareColor,110,112,20,15\r
-    PUSHBUTTON      "...",OPT_ChooseWhitePieceColor,110,130,20,15\r
-    PUSHBUTTON      "...",OPT_ChooseBlackPieceColor,110,148,20,15\r
-    PUSHBUTTON      "...",OPT_ChooseHighlightSquareColor,110,166,20,15\r
-    PUSHBUTTON      "...",OPT_ChoosePremoveHighlightColor,110,184,20,15\r
-    CONTROL         "Monochrome",OPT_Monochrome,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,10,210,64,10\r
-    CONTROL         "All White",OPT_AllWhite,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,140,179,73,10\r
-    CONTROL         "Flip Black",OPT_UpsideDown,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,140,191,73,10\r
-    CONTROL         "Use Board Textures",OPT_Bitmaps,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,140,203,73,10\r
-    CONTROL         "Use Piece Font",OPT_PieceFont,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,140,215,73,10\r
-    CONTROL         "Suppress Grid",OPT_Grid,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,140,227,73,10\r
-    PUSHBUTTON      "Defaults",OPT_DefaultBoardColors,80,206,50,15\r
-    EDITTEXT        OPT_DarkSquareColor,80,112,25,15,ES_READONLY | \r
-                    WS_DISABLED | NOT WS_BORDER | NOT WS_TABSTOP\r
-    EDITTEXT        OPT_LightSquareColor,80,94,25,15,ES_READONLY | \r
-                    WS_DISABLED | NOT WS_BORDER | NOT WS_TABSTOP\r
-    EDITTEXT        OPT_WhitePieceColor,80,130,25,15,ES_READONLY | \r
-                    WS_DISABLED | NOT WS_BORDER | NOT WS_TABSTOP\r
-    EDITTEXT        OPT_BlackPieceColor,80,148,25,15,ES_READONLY | \r
-                    WS_DISABLED | NOT WS_BORDER | NOT WS_TABSTOP\r
-    EDITTEXT        OPT_HighlightSquareColor,80,166,25,15,ES_READONLY | \r
-                    WS_DISABLED | NOT WS_BORDER | NOT WS_TABSTOP\r
-    GROUPBOX        "Colors",GPB_Colors,4,84,215,154\r
-    EDITTEXT        OPT_PremoveHighlightColor,80,184,25,15,ES_READONLY | \r
-                    WS_DISABLED | NOT WS_BORDER | NOT WS_TABSTOP\r
-    LTEXT           "Light Squares",IDC_Light,10,98,60,10\r
-    LTEXT           "Dark Squares",IDC_Dark,10,116,60,10\r
-    LTEXT           "White Pieces",IDC_White,10,134,60,10\r
-    LTEXT           "Black Pieces",IDC_Black,10,152,60,10\r
-    LTEXT           "Square Highlights",IDC_High,10,170,60,10\r
-    LTEXT           "Premove Highlights",IDC_PreHigh,10,188,70,10\r
-    GROUPBOX        "Size",GPB_Size,4,4,215,75\r
-    EDITTEXT        OPT_SampleLightSquare,144,96,39,36,ES_READONLY | \r
-                    WS_DISABLED | NOT WS_BORDER | NOT WS_TABSTOP\r
-    EDITTEXT        OPT_SampleDarkSquare,144,138,39,36,ES_READONLY | \r
-                    WS_DISABLED | NOT WS_BORDER | NOT WS_TABSTOP\r
-    DEFPUSHBUTTON   "OK",IDOK,84,244,50,14\r
-    PUSHBUTTON      "Cancel",IDCANCEL,140,244,50,14\r
-END\r
-\r
-DLG_NewVariant DIALOG DISCARDABLE  0, 0, 224, 270\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
-CAPTION "Variants"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
-    CONTROL         "&normal",OPT_VariantNormal,"Button",BS_AUTORADIOBUTTON | \r
-                    WS_GROUP,9,14,70,10\r
-    CONTROL         "&FRC",OPT_VariantFRC,"Button",BS_AUTORADIOBUTTON,9,\r
-                    24,70,10\r
-    CONTROL         "&wildcastle",OPT_VariantWildcastle,"Button",BS_AUTORADIOBUTTON,9,34,\r
-                    50,10\r
-    CONTROL         "&nocastle",OPT_VariantNocastle,"Button",BS_AUTORADIOBUTTON,9,\r
-                    44,70,10\r
-    CONTROL         "&losers",OPT_VariantLosers,"Button",BS_AUTORADIOBUTTON,\r
-                    9,54,70,10\r
-    CONTROL         "&giveaway",OPT_VariantGiveaway,"Button",BS_AUTORADIOBUTTON,\r
-                    9,64,70,10\r
-    CONTROL         "s&uicide",OPT_VariantSuicide,"Button",BS_AUTORADIOBUTTON,\r
-                    9,74,70,10\r
-    CONTROL         "&3Check",OPT_Variant3Check,"Button",BS_AUTORADIOBUTTON,9,84,\r
-                    70,10\r
-    CONTROL         "&twokings",OPT_VariantTwoKings,"Button",BS_AUTORADIOBUTTON,9,94,\r
-                    70,10\r
-    CONTROL         "&atomic",OPT_VariantAtomic,"Button",BS_AUTORADIOBUTTON,\r
-                    9,104,70,10\r
-    CONTROL         "&Mighty Lion",OPT_VariantLion,"Button",BS_AUTORADIOBUTTON,\r
-                    9,114,70,10\r
-    CONTROL         "cra&zyhouse",OPT_VariantCrazyhouse,"Button",BS_AUTORADIOBUTTON,80,14,\r
-                    70,10\r
-    CONTROL         "&bughouse",OPT_VariantBughouse,"Button",BS_AUTORADIOBUTTON,80,24,70,\r
-                    10\r
-    CONTROL         "Sp&artan",OPT_VariantSpartan,"Button",BS_AUTORADIOBUTTON,80,34,70,\r
-                    10\r
-    CONTROL         "&shogi",OPT_VariantShogi,"Button",BS_AUTORADIOBUTTON,80,\r
-                    44,70,10\r
-    CONTROL         "su&per",OPT_VariantSuper,"Button",BS_AUTORADIOBUTTON,80,\r
-                    54,70,10\r
-    CONTROL         "&knightmate",OPT_VariantKnightmate,"Button",BS_AUTORADIOBUTTON,\r
-                    80,64,70,10\r
-    CONTROL         "&Berolina",OPT_VariantBerolina,"Button",BS_AUTORADIOBUTTON,80,74,\r
-                    70,10\r
-    CONTROL         "c&ylinder",OPT_VariantCylinder,"Button",BS_AUTORADIOBUTTON,80,\r
-                    84,70,10\r
-    CONTROL         "&fairy",OPT_VariantFairy,"Button",BS_AUTORADIOBUTTON,80,\r
-                    94,70,10\r
-    CONTROL         "&makruk",OPT_VariantMakruk,"Button",BS_AUTORADIOBUTTON,80,\r
-                    104,70,10\r
-    CONTROL         "&ASEAN",OPT_VariantASEAN,"Button",BS_AUTORADIOBUTTON,80,\r
-                    114,70,10\r
-    CONTROL         "&gothic",OPT_VariantGothic,"Button",BS_AUTORADIOBUTTON,154,14,\r
-                    70,10\r
-    CONTROL         "&capablanca",OPT_VariantCapablanca,"Button",BS_AUTORADIOBUTTON,154,\r
-                    24,70,10\r
-    CONTROL         "&Janus",OPT_VariantJanus,"Button",BS_AUTORADIOBUTTON,154,34,\r
-                    70,10\r
-    CONTROL         "&CRC",OPT_VariantCRC,"Button",BS_AUTORADIOBUTTON,154,44,\r
-                    70,10\r
-    CONTROL         "&Falcon",OPT_VariantFalcon,"Button",BS_AUTORADIOBUTTON,154,\r
-                    54,70,10\r
-    CONTROL         "cou&rier",OPT_VariantCourier,"Button",BS_AUTORADIOBUTTON,154,64,\r
-                    70,10\r
-    CONTROL         "&Great",OPT_VariantGreat,"Button",BS_AUTORADIOBUTTON,154,74,\r
-                    70,10\r
-    CONTROL         "&Shatranj",OPT_VariantShatranj,"Button",BS_AUTORADIOBUTTON,154,\r
-                    84,70,10\r
-    CONTROL         "Seira&wan",OPT_VariantSChess,"Button",BS_AUTORADIOBUTTON,154,94,70,\r
-                    10\r
-    CONTROL         "&Grand",OPT_VariantGrand,"Button",BS_AUTORADIOBUTTON,154,104,70,\r
-                    10\r
-    CONTROL         "&xiangqi",OPT_VariantXiangqi,"Button",BS_AUTORADIOBUTTON,154,114,70,\r
-                    10\r
-    CONTROL         "",OPT_EngineVariant+0,"Button",BS_AUTORADIOBUTTON,9,134,70,10\r
-    CONTROL         "",OPT_EngineVariant+1,"Button",BS_AUTORADIOBUTTON,80,134,70,10\r
-    CONTROL         "",OPT_EngineVariant+2,"Button",BS_AUTORADIOBUTTON,154,134,70,10\r
-    CONTROL         "",OPT_EngineVariant+3,"Button",BS_AUTORADIOBUTTON,9,144,70,10\r
-    CONTROL         "",OPT_EngineVariant+4,"Button",BS_AUTORADIOBUTTON,80,144,70,10\r
-    CONTROL         "",OPT_EngineVariant+5,"Button",BS_AUTORADIOBUTTON,154,144,70,10\r
-    CONTROL         "",OPT_EngineVariant+6,"Button",BS_AUTORADIOBUTTON,9,154,70,10\r
-\r
-    CONTROL         "",OPT_EngineVariant+7,"Button",BS_AUTORADIOBUTTON,80,154,70,10\r
-    CONTROL         "",OPT_EngineVariant+8,"Button",BS_AUTORADIOBUTTON,154,154,70,10\r
-    CONTROL         "",OPT_EngineVariant+9,"Button",BS_AUTORADIOBUTTON,9,164,70,10\r
-    CONTROL         "",OPT_EngineVariant+10,"Button",BS_AUTORADIOBUTTON,80,164,70,10\r
-    CONTROL         "",OPT_EngineVariant+11,"Button",BS_AUTORADIOBUTTON,154,164,70,10\r
-    CONTROL         "",OPT_EngineVariant+12,"Button",BS_AUTORADIOBUTTON,9,174,70,10\r
-    CONTROL         "",OPT_EngineVariant+13,"Button",BS_AUTORADIOBUTTON,80,174,70,10\r
-    CONTROL         "",OPT_EngineVariant+14,"Button",BS_AUTORADIOBUTTON,154,174,70,10\r
-    GROUPBOX        "Variant",GPB_Variant,4,4,215,185\r
-    LTEXT           "Board size:",GPB_Board,10,203,40,8,WS_TABSTOP\r
-    LTEXT           "ranks",IDC_Height,77,203,38,8\r
-    EDITTEXT        IDC_Ranks,60,199,14,14,ES_AUTOHSCROLL\r
-    LTEXT           "files",IDC_Width,133,203,80,8\r
-    EDITTEXT        IDC_Files,116,199,14,14,ES_AUTOHSCROLL\r
-    LTEXT           "Holdings with room for:",IDC_Hand,10,221,90,8\r
-    EDITTEXT        IDC_Holdings,93,217,14,14,ES_AUTOHSCROLL\r
-    LTEXT           "pieces",IDC_Pieces,110,221,100,8\r
-    LTEXT           "('-1' means defaults for selected variant)",IDC_Def,10,237,210,8\r
-    DEFPUSHBUTTON   "OK",IDOK,114,252,50,14\r
-    PUSHBUTTON      "Cancel",IDCANCEL,170,252,50,14\r
-END\r
-\r
-DLG_Fonts DIALOG DISCARDABLE  0, 0, 266, 274\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
-CAPTION "Fonts"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
-    DEFPUSHBUTTON   "OK",IDOK,156,256,50,14\r
-    PUSHBUTTON      "Cancel",IDCANCEL,212,256,50,14\r
-    PUSHBUTTON      "Choose...",OPT_ChooseClockFont,212,15,45,15\r
-    PUSHBUTTON      "Choose...",OPT_ChooseMessageFont,212,39,45,15\r
-    PUSHBUTTON      "Choose...",OPT_ChooseCoordFont,212,63,45,15\r
-    PUSHBUTTON      "Choose...",OPT_ChooseTagFont,212,101,45,15\r
-    PUSHBUTTON      "Choose...",OPT_ChooseCommentsFont,212,125,45,15\r
-    PUSHBUTTON      "Choose...",OPT_ChooseConsoleFont,212,149,45,15\r
-    PUSHBUTTON      "Choose...",OPT_ChooseMoveHistoryFont,212,174,45,15\r
-    PUSHBUTTON      "Choose...",OPT_ChooseGameListFont,212,198,45,15\r
-    PUSHBUTTON      "Choose...",OPT_ChoosePieceFont,212,222,45,15\r
-    PUSHBUTTON      "&Defaults",OPT_DefaultFonts,3,256,50,15\r
-    CONTROL         "",OPT_SampleCoordFont,"RICHEDIT",ES_READONLY | \r
-                    WS_DISABLED | WS_BORDER,77,59,130,20\r
-    CONTROL         "",OPT_SampleTagFont,"RICHEDIT",ES_READONLY | \r
-                    WS_DISABLED | WS_BORDER,77,97,130,20\r
-    CONTROL         "",OPT_SampleCommentsFont,"RICHEDIT",ES_READONLY | \r
-                    WS_DISABLED | WS_BORDER,77,121,130,20\r
-    CONTROL         "",OPT_SampleConsoleFont,"RICHEDIT",ES_READONLY | \r
-                    WS_DISABLED | WS_BORDER,77,145,130,20\r
-    LTEXT           "Clocks",OPT_ClockFont,13,16,63,10,NOT WS_GROUP\r
-    LTEXT           "Messages",OPT_MessageFont,13,40,63,10,NOT WS_GROUP\r
-    LTEXT           "Coordinates",OPT_CoordFont,13,64,63,10,NOT WS_GROUP\r
-    LTEXT           "Tags",OPT_EditTagsFont,13,102,63,10,NOT WS_GROUP\r
-    LTEXT           "Comments",OPT_CommentsFont,13,126,63,10,NOT WS_GROUP\r
-    LTEXT           "I C S Interaction",OPT_MessageFont5,13,150,63,10,NOT \r
-                    WS_GROUP\r
-    CONTROL         "",OPT_SampleClockFont,"RICHEDIT",ES_READONLY | \r
-                    WS_DISABLED | WS_BORDER,77,11,130,20\r
-    CONTROL         "",OPT_SampleMessageFont,"RICHEDIT",ES_READONLY | \r
-                    WS_DISABLED | WS_BORDER,77,35,130,20\r
-    GROUPBOX        "Current Board Size",GPB_Current,3,1,259,83\r
-    GROUPBOX        "All Board Sizes",GPB_All,3,87,259,157\r
-    CONTROL         "",OPT_SampleMoveHistoryFont,"RICHEDIT",ES_READONLY | \r
-                    WS_DISABLED | WS_BORDER,77,170,130,20\r
-    LTEXT           "Move History, Engine Output",OPT_MessageFont6,13,171,63,20,NOT \r
-                    WS_GROUP\r
-    CONTROL         "",OPT_SampleGameListFont,"RICHEDIT",ES_READONLY | \r
-                    WS_DISABLED | WS_BORDER,77,194,130,20\r
-    LTEXT           "Game List",OPT_MessageFont7,13,199,63,20,NOT \r
-                    WS_GROUP\r
-    CONTROL         "",OPT_SamplePieceFont,"RICHEDIT", ES_AUTOHSCROLL | \r
-                    WS_BORDER,77,218,130,20\r
-    LTEXT           "Piece Font",OPT_MessageFont8,13,223,63,20,NOT \r
-                    WS_GROUP\r
-END\r
-\r
-DLG_NewGameFRC DIALOG DISCARDABLE  0, 0, 176, 47\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
-CAPTION "New Shuffle Game"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
-    LTEXT           "&Start Position Number:",IDC_NFG_Label,4,7,71,8\r
-    EDITTEXT        IDC_NFG_Edit,76,4,42,14,ES_AUTOHSCROLL\r
-    PUSHBUTTON      "Random",IDC_NFG_Random,122,4,50,14\r
-    DEFPUSHBUTTON   "OK",IDOK,64,28,50,14\r
-    PUSHBUTTON      "Cancel",IDCANCEL,122,28,50,14\r
-END\r
-\r
-DLG_GameListOptions DIALOG DISCARDABLE  0, 0, 218, 150\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
-CAPTION "Game List Options"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
-    LTEXT           "PGN &Tags:",IDC_GLT,2,2,158,8\r
-    LISTBOX         IDC_GameListTags,2,12,153,112,LBS_USETABSTOPS | \r
-                    LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP\r
-    PUSHBUTTON      "&Up",IDC_GLT_Up,164,12,50,14\r
-    PUSHBUTTON      "&Down",IDC_GLT_Down,164,30,50,14\r
-    PUSHBUTTON      "Default",IDC_GLT_Restore,164,92,50,14\r
-    PUSHBUTTON      "Factory",IDC_GLT_Default,164,110,50,14\r
-    DEFPUSHBUTTON   "OK",IDOK,108,132,50,14\r
-    PUSHBUTTON      "Cancel",IDCANCEL,164,132,50,14\r
-    LTEXT           "Restore to:",IDC_GLT_RestoreTo,159,80,58,8\r
-END\r
-\r
-DLG_MoveHistory DIALOGEX 0, 0, 225, 130\r
-STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME\r
-EXSTYLE WS_EX_TOOLWINDOW\r
-CAPTION "Move History"\r
-FONT 8, "MS Sans Serif", 0, 0, 0x1\r
-BEGIN\r
-    CONTROL         "",IDC_MoveHistory,"RICHEDIT",ES_MULTILINE | ES_READONLY | \r
-                    WS_BORDER | WS_VSCROLL | WS_TABSTOP,2,2,222,128\r
-END\r
-\r
-DLG_EvalGraph DIALOGEX 0, 0, 216, 75\r
-STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME\r
-EXSTYLE WS_EX_TOOLWINDOW\r
-CAPTION "Evaluation Graph"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
-END\r
-\r
-DLG_EngineOutput DIALOGEX 0, 0, 266, 167\r
-STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME\r
-EXSTYLE WS_EX_TOOLWINDOW\r
-CAPTION "Engine output"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
-    RTEXT           "NPS",IDC_Engine1_NPS,206,2,57,8\r
-    LTEXT           "Engine #1",IDC_EngineLabel1,14,2,84,8\r
-    CONTROL         "",IDC_EngineMemo1,"RICHEDIT",ES_MULTILINE | \r
-                    ES_AUTOVSCROLL | ES_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | \r
-                    WS_HSCROLL | WS_TABSTOP,0,10,262,72\r
-    LTEXT           "Engine #2",IDC_EngineLabel2,15,84,103,8\r
-    CONTROL         "",IDC_EngineMemo2,"RICHEDIT",ES_MULTILINE | \r
-                    ES_AUTOVSCROLL | ES_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | \r
-                    WS_HSCROLL | WS_TABSTOP,2,92,262,74\r
-    RTEXT           "NPS",IDC_Engine2_NPS,210,84,55,8\r
-    ICON            IDI_UNKNOWN_14,IDC_Color1,2,4,20,20,SS_REALSIZEIMAGE\r
-    ICON            IDI_UNKNOWN_14,IDC_Color2,4,84,20,20\r
-    LTEXT           "Static",IDC_StateData1,120,2,83,8\r
-    ICON            IDI_TRANS_14,IDC_StateIcon1,98,0,21,20\r
-    LTEXT           "Static",IDC_StateData2,186,84,19,8\r
-    ICON            IDI_TRANS_14,IDC_StateIcon2,164,84,20,20\r
-END\r
-\r
-DLG_Chat DIALOGEX 0, 0, 290, 106\r
-STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME\r
-EXSTYLE WS_EX_TOOLWINDOW\r
-CAPTION "Chat Window"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
-    LTEXT           "Chat partner:",IDC_Partner,5,5,45,10\r
-    EDITTEXT        IDC_ChatPartner,50,3,45,13,ES_AUTOHSCROLL\r
-    PUSHBUTTON      "",IDC_Focus1,100,3,30,13\r
-    PUSHBUTTON      "",IDC_Focus2,133,3,30,13\r
-    PUSHBUTTON      "",IDC_Focus3,166,3,30,13\r
-    PUSHBUTTON      "",IDC_Focus4,199,3,30,13\r
-    PUSHBUTTON      "Clear",IDC_Clear,232,3,25,13\r
-    DEFPUSHBUTTON   "Send",IDC_Send,262,3,25,13\r
-    CONTROL         "",IDC_ChatMemo,"RICHEDIT",ES_MULTILINE | ES_READONLY |\r
-                    ES_AUTOVSCROLL | WS_BORDER | WS_VSCROLL | \r
-                    WS_HSCROLL | WS_TABSTOP,3,17,284,70\r
-    CONTROL         "",OPT_ChatInput,"RICHEDIT",ES_AUTOHSCROLL | ES_NOHIDESEL | \r
-                    WS_BORDER | WS_TABSTOP,3,90,284,13\r
-END\r
-\r
-DLG_EnginePlayOptions DIALOG DISCARDABLE  0, 0, 248, 202\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
-CAPTION "Adjudications"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
-    CONTROL         "Ponder Next Move",IDC_EpPonder,"Button",BS_AUTOCHECKBOX |\r
-                    WS_TABSTOP,4,4,240,10\r
-    CONTROL         "Enable and Show Thinking (recommended)",\r
-                    IDC_EpShowThinking,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,\r
-                    4,16,240,10\r
-    CONTROL         "Hide Thinking when Playing against Human",\r
-                    IDC_EpHideThinkingHuman,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,4,28,240,10\r
-    CONTROL         "Periodic Updates (for Analysis Mode)",\r
-                    IDC_EpPeriodicUpdates,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,4,40,240,10\r
-    GROUPBOX        "Adjudications in non-ICS games",GPB_Adjudications,4,56,240,98\r
-    LTEXT           "Adjudicate draw after:",IDC_Draw,10,72,124,8\r
-    EDITTEXT        IDC_EpDrawMoveCount,136,68,40,14,ES_AUTOHSCROLL\r
-    LTEXT           "moves",IDC_Moves,178,72,22,8\r
-    LTEXT           "Win/loss adjudication threshold:",IDC_Threshold,10,90,124,\r
-                    8\r
-    EDITTEXT        IDC_EpAdjudicationThreshold,136,86,40,14,ES_AUTOHSCROLL\r
-    LTEXT           "centipawns",IDC_Centi,178,90,65,8\r
-    CONTROL         "&Verify Engine Claims",IDC_TestClaims,"Button",BS_AUTOCHECKBOX |\r
-                    WS_TABSTOP,10,108,119,10\r
-    CONTROL         "Detect &Mates",\r
-                    IDC_DetectMates,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,\r
-                    10,118,119,10\r
-    CONTROL         "Draw if &Insufficient Material",\r
-                    IDC_MaterialDraws,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,10,128,119,10\r
-    CONTROL         "Adjudicate &Trivial Draws",\r
-                    IDC_TrivialDraws,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,10,138,119,10\r
-    GROUPBOX        "Apply",GPB_Apply,130,102,106,47\r
-    EDITTEXT        IDC_RuleMoves,135,113,20,14,ES_AUTOHSCROLL\r
-    LTEXT           "-move rule",IDC_Rule,157,117,75,8\r
-    EDITTEXT        IDC_DrawRepeats,135,130,20,14,ES_AUTOHSCROLL\r
-    LTEXT           "-fold repeats",IDC_Repeats,157,134,75,8\r
-    CONTROL         "Engine #1 Score is Absolute",\r
-                    IDC_ScoreAbs1,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,10,156,140,10\r
-    CONTROL         "Engine #2 Score is Absolute",\r
-                    IDC_ScoreAbs2,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,10,168,140,10\r
-    DEFPUSHBUTTON   "OK",IDOK,138,185,50,14\r
-    PUSHBUTTON      "Cancel",IDCANCEL,194,185,50,14\r
-END\r
-\r
-DLG_OptionsUCI DIALOG DISCARDABLE  0, 0, 248, 160\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
-CAPTION "Common Engine Settings"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
-    LTEXT           "Polyglot Directory:",IDC_PolyDir,2,8,78,8\r
-    EDITTEXT        IDC_PolyglotDir,82,4,140,14,ES_AUTOHSCROLL\r
-    PUSHBUTTON      "...",IDC_BrowseForPolyglotDir,226,4,17,14\r
-    LTEXT           "Hash Size (MB):",IDC_Hash,2,26,78,8\r
-    EDITTEXT        IDC_HashSize,82,22,40,14,ES_AUTOHSCROLL\r
-    LTEXT           "Max nr of CPUs:",IDC_CPU,126,26,60,8\r
-    EDITTEXT        IDC_Cores,187,22,35,14,ES_AUTOHSCROLL\r
-    LTEXT           "EGTB Path:",IDC_Path,2,44,78,8\r
-    EDITTEXT        IDC_PathToEGTB,82,40,140,14,ES_AUTOHSCROLL\r
-    PUSHBUTTON      "...",IDC_BrowseForEGTB,226,40,17,14\r
-    LTEXT           "EGTB Size (MB):",IDC_Cache,2,62,78,8\r
-    EDITTEXT        IDC_SizeOfEGTB,82,58,40,14,ES_AUTOHSCROLL\r
-    CONTROL         "Ponder Next Move",OPT_PonderNextMove,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,136,62,100,10\r
-    CONTROL         "Use Book:",IDC_UseBook,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,2,80,78,10\r
-    EDITTEXT        IDC_BookFile,82,76,140,14,ES_AUTOHSCROLL\r
-    PUSHBUTTON      "...",IDC_BrowseForBook,226,76,17,14\r
-    CONTROL         "First has Own Book",IDC_OwnBook1,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,2,94,100,10\r
-    CONTROL         "Second has Own Book",IDC_OwnBook2,"Button",BS_AUTOCHECKBOX | \r
-                    WS_TABSTOP,2,107,100,10\r
-    LTEXT           "Book Depth:",IDC_Depth,126,98,60,8\r
-    EDITTEXT        IDC_BookDep,187,94,35,14,ES_AUTOHSCROLL\r
-    LTEXT           "Book Variation:",IDC_Variation,126,116,60,8\r
-    EDITTEXT        IDC_BookStr,187,112,35,14,ES_AUTOHSCROLL\r
-    LTEXT           "Default Match Games:",IDC_DefGames,2,135,72,8\r
-    EDITTEXT        IDC_Games,82,131,28,14,ES_AUTOHSCROLL\r
-    DEFPUSHBUTTON   "OK",IDOK,128,142,50,14\r
-    PUSHBUTTON      "Cancel",IDCANCEL,194,142,50,14\r
-END\r
-\r
-DLG_Null DIALOG DISCARDABLE  0, 0, 186, 50\r
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
-CAPTION "Null"\r
-FONT 8, "MS Sans Serif"\r
-BEGIN\r
-END\r
-\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// DESIGNINFO\r
-//\r
-\r
-#ifdef APSTUDIO_INVOKED\r
-GUIDELINES DESIGNINFO DISCARDABLE \r
-BEGIN\r
-    DLG_GameList, DIALOG\r
-    BEGIN\r
-        RIGHTMARGIN, 258\r
-    END\r
-\r
-    DLG_Colorize, DIALOG\r
-    BEGIN\r
-        BOTTOMMARGIN, 32\r
-    END\r
-\r
-    DLG_GeneralOptions, DIALOG\r
-    BEGIN\r
-        LEFTMARGIN, 7\r
-        RIGHTMARGIN, 213\r
-        TOPMARGIN, 7\r
-        BOTTOMMARGIN, 176\r
-    END\r
-\r
-    DLG_IcsOptions, DIALOG\r
-    BEGIN\r
-        LEFTMARGIN, 7\r
-        RIGHTMARGIN, 295\r
-        TOPMARGIN, 7\r
-        BOTTOMMARGIN, 248\r
-    END\r
-\r
-    DLG_BoardOptions, DIALOG\r
-    BEGIN\r
-        LEFTMARGIN, 7\r
-        RIGHTMARGIN, 187\r
-        TOPMARGIN, 7\r
-        BOTTOMMARGIN, 243\r
-    END\r
-\r
-    DLG_Fonts, DIALOG\r
-    BEGIN\r
-        LEFTMARGIN, 7\r
-        RIGHTMARGIN, 259\r
-        TOPMARGIN, 7\r
-        BOTTOMMARGIN, 219\r
-    END\r
-\r
-    DLG_NewGameFRC, DIALOG\r
-    BEGIN\r
-        LEFTMARGIN, 7\r
-        RIGHTMARGIN, 169\r
-        TOPMARGIN, 7\r
-        BOTTOMMARGIN, 40\r
-    END\r
-\r
-    DLG_GameListOptions, DIALOG\r
-    BEGIN\r
-        LEFTMARGIN, 7\r
-        RIGHTMARGIN, 199\r
-        TOPMARGIN, 7\r
-        BOTTOMMARGIN, 133\r
-    END\r
-\r
-    DLG_MoveHistory, DIALOG\r
-    BEGIN\r
-        LEFTMARGIN, 7\r
-        RIGHTMARGIN, 218\r
-        TOPMARGIN, 7\r
-        BOTTOMMARGIN, 123\r
-    END\r
-\r
-    DLG_EvalGraph, DIALOG\r
-    BEGIN\r
-        LEFTMARGIN, 7\r
-        RIGHTMARGIN, 209\r
-        TOPMARGIN, 7\r
-        BOTTOMMARGIN, 68\r
-    END\r
-\r
-    DLG_EngineOutput, DIALOG\r
-    BEGIN\r
-        LEFTMARGIN, 7\r
-        RIGHTMARGIN, 259\r
-        TOPMARGIN, 7\r
-        BOTTOMMARGIN, 160\r
-    END\r
-\r
-    DLG_EnginePlayOptions, DIALOG\r
-    BEGIN\r
-        LEFTMARGIN, 7\r
-        RIGHTMARGIN, 201\r
-        TOPMARGIN, 7\r
-        BOTTOMMARGIN, 122\r
-    END\r
-\r
-    DLG_OptionsUCI, DIALOG\r
-    BEGIN\r
-        LEFTMARGIN, 7\r
-        RIGHTMARGIN, 221\r
-        TOPMARGIN, 7\r
-        BOTTOMMARGIN, 117\r
-    END\r
-\r
-    DLG_Null, DIALOG\r
-    BEGIN\r
-        LEFTMARGIN, 7\r
-        RIGHTMARGIN, 179\r
-        TOPMARGIN, 7\r
-        BOTTOMMARGIN, 43\r
-    END\r
-END\r
-#endif    // APSTUDIO_INVOKED\r
-\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Icon\r
-//\r
-\r
-// Icon with lowest ID value placed first to ensure application icon\r
-// remains consistent on all systems.\r
-IDI_WHITE_14            ICON    DISCARDABLE     "bitmaps/white_14.ico"\r
-ICON_BLACK              ICON    DISCARDABLE     "bitmaps/icon_ob.ico"\r
-ICON_BOARD              ICON    DISCARDABLE     "bitmaps/board.ico"\r
-ICON_WHITE              ICON    DISCARDABLE     "bitmaps/icon_whi.ico"\r
-ICON_XTOURNEY           ICON    DISCARDABLE     "bitmaps/cross.ico"\r
-IDI_BLACK_14            ICON    DISCARDABLE     "bitmaps/black_14.ico"\r
-IDI_PONDER_14           ICON    DISCARDABLE     "bitmaps/ponder_14.ico"\r
-IDI_TRANS_14            ICON    DISCARDABLE     "bitmaps/trans_14.ico"\r
-IDI_CLOCK_14            ICON    DISCARDABLE     "bitmaps/clock_14.ico"\r
-IDI_UNKNOWN_14          ICON    DISCARDABLE     "bitmaps/unknown_14.ico"\r
-IDI_BALOON_14           ICON    DISCARDABLE     "bitmaps/baloon_14.ico"\r
-IDI_ANALYZE_14          ICON    DISCARDABLE     "bitmaps/analyze_14.ico"\r
-IDI_ANALYZE2_14         ICON    DISCARDABLE     "bitmaps/analyze2_14.ico"\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Menu\r
-//\r
-\r
-WINBOARD MENU DISCARDABLE \r
-BEGIN\r
-    POPUP "&File"\r
-    BEGIN\r
-        MENUITEM "&New Game\tCtrl-N",           IDM_NewGame\r
-        MENUITEM "New Sh&uffle Game...",        IDM_NewGameFRC\r
-        MENUITEM "New &Variant...\tAlt+Shift+V",IDM_NewVariant\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "&Load Game...\tCtrl-O",       IDM_LoadGame\r
-        MENUITEM "L&oad Position...\tCtrl+Shift+O", IDM_LoadPosition\r
-//        MENUITEM "Load &Next Game\tAlt+PgDn",   IDM_LoadNextGame\r
-//        MENUITEM "Load &Previous Game\tAlt+PgUp", IDM_LoadPrevGame\r
-//        MENUITEM "&Reload Same Game",           IDM_ReloadGame\r
-        MENUITEM "Load N&ext Position\tAlt+Shift+PgDn", IDM_LoadNextPosition\r
-        MENUITEM "Load Pre&vious Position\tAlt+Shift+PgUp", \r
-                                                IDM_LoadPrevPosition\r
-//        MENUITEM "Reload Sa&me Position",       IDM_ReloadPosition\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "&Save Game...\tCtrl-S",       IDM_SaveGame\r
-        MENUITEM "S&ave Position...\tCtrl+Shift+S",IDM_SavePosition\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "Save as &Diagram...",         IDM_SaveDiagram\r
-        MENUITEM "Save Selected Games...",      IDM_SaveSelected\r
-        MENUITEM "Save Games to &Book",         IDM_CreateBook\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "&Quit",                       IDM_Exit\r
-    END\r
-    POPUP "&Edit"\r
-    BEGIN\r
-        MENUITEM "&Copy Game To Clipboard\tCtrl+C", IDM_CopyGame\r
-        MENUITEM "C&opy Position To Clipboard\tCtrl+Shift+C", \r
-                                                IDM_CopyPosition\r
-        MENUITEM "Copy Game List to Clipboard", IDM_CopyGameListToClipboard\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "&Paste Game From Clipboard\tCtrl+V", IDM_PasteGame\r
-        MENUITEM "P&aste Position From Clipboard\tCtrl+Shift+V", \r
-                                                IDM_PasteAny\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "&Edit Game\tCtrl+E",          IDM_EditGame2\r
-        MENUITEM "E&dit Position\tCtrl+Shift+E",IDM_EditPosition2\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "Edit Ta&gs...",               IDM_EditTags\r
-        MENUITEM "Edit Co&mment...",            IDM_EditComment\r
-        MENUITEM "Edit Boo&k...",               IDM_EditBook\r
-        MENUITEM "Enter &Username...",          IDM_TypeInName\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "&Revert\tHome",               IDM_Revert\r
-        MENUITEM "&Annotate",                   IDM_Annotate\r
-        MENUITEM "&Truncate Game\tEnd",         IDM_TruncateGame\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "&Backward\tAlt+Left",         IDM_Backward\r
-        MENUITEM "&Forward\tAlt+Right",         IDM_Forward\r
-        MENUITEM "Back to &Start\tAlt+Home",    IDM_ToStart\r
-        MENUITEM "For&ward to End\tAlt+End",    IDM_ToEnd\r
-    END\r
-    POPUP "&View"\r
-    BEGIN\r
-        MENUITEM "Flip &View\tF2",              IDM_FlipView\r
-        MENUITEM "&Swap Clocks",                IDM_FlipClock\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "Engine &Output\tAlt+Shift+O", IDM_ShowEngineOutput\r
-        MENUITEM "Move &History\tAlt+Shift+H",  IDM_ShowMoveHistory\r
-        MENUITEM "Evaluation &Graph\tAlt+Shift+E",IDM_ShowEvalGraph\r
-        MENUITEM "Game &List\tAlt+Shift+G",     IDM_ShowGameList\r
-        MENUITEM "Open &New Chat Window",       IDM_NewChat\r
-        MENUITEM "Type In &Move...\tAlt+I",     IDM_TypeInMove\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "&Tags",                       IDM_Tags\r
-        MENUITEM "&Comments",                   IDM_Comment\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "&Game List Tags...",          IDM_GameListOptions\r
-        MENUITEM "Colo&rs...",                  IDM_BoardOptions\r
-        MENUITEM "&Board Themes...",            IDM_ThemeOptions\r
-        MENUITEM "&Fonts...",                   IDM_Fonts\r
-    END\r
-    POPUP "&Mode"\r
-    BEGIN\r
-        MENUITEM "Machine &White\tCtrl+W",      IDM_MachineWhite\r
-        MENUITEM "Machine &Black\tCtrl+B",      IDM_MachineBlack\r
-        MENUITEM "&Two Machines\tCtrl+T",       IDM_TwoMachines\r
-//        MENUITEM "Machine Both",                IDM_MachineBoth\r
-        MENUITEM "&Analysis Mode\tCtrl+A",      IDM_AnalysisMode\r
-        MENUITEM "Analyze &Game\tCtrl+G",       IDM_AnalyzeFile\r
-        MENUITEM "&Edit Game\tCtrl+E",          IDM_EditGame\r
-        MENUITEM "E&dit Position\tCtrl+Shift+E",IDM_EditPosition\r
-        MENUITEM "Trai&ning",                   IDM_Training, GRAYED\r
-        MENUITEM "&ICS Client",                 IDM_IcsClient\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "&Machine Match",              IDM_Match\r
-        MENUITEM "&Pause\tPause",               IDM_Pause\r
-    END\r
-    POPUP "&Action"\r
-    BEGIN\r
-        MENUITEM "&Accept\tF3",                 IDM_Accept\r
-        MENUITEM "D&ecline\tF4",                IDM_Decline\r
-        MENUITEM "Re&match\tF12",               IDM_Rematch\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "Call &Flag\tF5",              IDM_CallFlag\r
-        MENUITEM "&Draw\tF6",                   IDM_Draw\r
-        MENUITEM "Ad&journ\tF7",                IDM_Adjourn\r
-        MENUITEM "A&bort\tF8",                  IDM_Abort\r
-        MENUITEM "&Resign\tF9",                 IDM_Resign\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "Stop &Observing\tF10",        IDM_StopObserving\r
-        MENUITEM "Stop E&xamining\tF11",        IDM_StopExamining\r
-        MENUITEM "&Upload to Examine",          IDM_Upload\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "Adjudicate to &White",        IDM_UserAdjudication_White\r
-        MENUITEM "Adjudicate to &Black",        IDM_UserAdjudication_Black\r
-        MENUITEM "Adjudicate &Draw",            IDM_UserAdjudication_Draw\r
-    END\r
-    POPUP "E&ngine"\r
-    BEGIN\r
-        MENUITEM "&Edit Engine List...",        IDM_EditProgs1\r
-        MENUITEM "Load &First Engine...",       IDM_LoadProg1\r
-        MENUITEM "Load &Second Engine...",      IDM_LoadProg2\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "&Common Settings...\tAlt+Shift+U",IDM_OptionsUCI\r
-        MENUITEM "Engine #&1 Settings...",      IDM_Engine1Options\r
-        MENUITEM "Engine #&2 Settings...",      IDM_Engine2Options\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "&Hint...",                    IDM_Hint\r
-        MENUITEM "&Book...",                    IDM_Book\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "&Move Now\tCtrl+M",           IDM_MoveNow\r
-        MENUITEM "&Retract Move\tCtrl+X",       IDM_RetractMove\r
-    END\r
-    POPUP "&Options"\r
-    BEGIN\r
-        MENUITEM "&Mute all Sounds",            IDM_MuteSounds\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "&General...",                 IDM_GeneralOptions\r
-        MENUITEM "&Time Control...\tAlt+Shift+T",IDM_TimeControl\r
-        MENUITEM "Ad&judications...\tAlt+Shift+J",IDM_EnginePlayOptions\r
-        MENUITEM "Tournament...",               IDM_Tourney\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "&Load Game...\tAlt+Shift+L",  IDM_LoadOptions\r
-        MENUITEM "&Save Game...\tAlt+Shift+S",  IDM_SaveOptions\r
-        MENUITEM "G&ame List...",               IDM_GameListOptions\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "Soun&ds...",                  IDM_Sounds\r
-        MENUITEM "&ICS...",                     IDM_IcsOptions, GRAYED\r
-        MENUITEM "Add ICS...",                  IDM_EditServers\r
-        MENUITEM "Comm&unications...",          IDM_CommPort\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "Save Settings &Now",          IDM_SaveSettings\r
-        MENUITEM "Save Settings on E&xit",      IDM_SaveSettingsOnExit\r
-    END\r
-    POPUP "&Help"\r
-    BEGIN\r
-        MENUITEM "Help &Contents\tF1",          IDM_HELPCONTENTS\r
-        MENUITEM "Help &Index",                 IDM_HELPSEARCH\r
-        MENUITEM "How to &Use Help",            IDM_HELPHELP\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "&About WinBoard",             IDM_ABOUT\r
-    END\r
-END\r
-\r
-PIECEMENU MENU DISCARDABLE \r
-BEGIN\r
-    POPUP ""\r
-    BEGIN\r
-        MENUITEM "White",                       EP_White\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "Promote",                     EP_Promote\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "Pawn",                        EP_WhitePawn\r
-        MENUITEM "Knight",                      EP_WhiteKnight\r
-        MENUITEM "Bishop",                      EP_WhiteBishop\r
-        MENUITEM "Rook",                        EP_WhiteRook\r
-        MENUITEM "Queen",                       EP_WhiteQueen\r
-        MENUITEM "King",                        EP_WhiteKing\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "Archbishop",                  EP_WhiteCardinal\r
-        MENUITEM "Chancellor",                  EP_WhiteMarshall\r
-        MENUITEM "Elephant",                    EP_WhiteAlfil\r
-        MENUITEM "Cannon",                      EP_WhiteCannon\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "Empty Square",                EP_EmptySquare\r
-        MENUITEM "Black",                       EP_Black, MENUBARBREAK\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "Demote",                      EP_Demote\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "Pawn",                        EP_BlackPawn\r
-        MENUITEM "Knight",                      EP_BlackKnight\r
-        MENUITEM "Bishop",                      EP_BlackBishop\r
-        MENUITEM "Rook",                        EP_BlackRook\r
-        MENUITEM "Queen",                       EP_BlackQueen\r
-        MENUITEM "King",                        EP_BlackKing\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "Archbishop",                  EP_BlackCardinal\r
-        MENUITEM "Chancellor",                  EP_BlackMarshall\r
-        MENUITEM "Elephant",                    EP_BlackAlfil\r
-        MENUITEM "Cannon",                      EP_BlackCannon\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "Clear Board    ",             EP_ClearBoard\r
-    END\r
-END\r
-\r
-SHOGIPIECEMENU MENU DISCARDABLE \r
-BEGIN\r
-    POPUP ""\r
-    BEGIN\r
-        MENUITEM "White",                       EP_White\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "Pawn",                        EP_WhitePawn\r
-        MENUITEM "Knight",                      EP_WhiteKnight\r
-        MENUITEM "Bishop",                      EP_WhiteBishop\r
-        MENUITEM "Rook",                        EP_WhiteRook\r
-        MENUITEM "Lance",                       EP_WhiteQueen\r
-        MENUITEM "Silver",                      EP_WhiteFerz\r
-        MENUITEM "Gold",                        EP_WhiteWazir\r
-        MENUITEM "King",                        EP_WhiteKing\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "Promote",                     EP_Promote\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "Empty Square",                EP_EmptySquare\r
-        MENUITEM "Black",                       EP_Black, MENUBARBREAK\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "Pawn",                        EP_BlackPawn\r
-        MENUITEM "Knight",                      EP_BlackKnight\r
-        MENUITEM "Bishop",                      EP_BlackBishop\r
-        MENUITEM "Rook",                        EP_BlackRook\r
-        MENUITEM "Lance",                       EP_BlackQueen\r
-        MENUITEM "Silver",                      EP_BlackFerz\r
-        MENUITEM "Gold",                        EP_BlackWazir\r
-        MENUITEM "King",                        EP_BlackKing\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "Demote",                      EP_Demote\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "Clear Board    ",             EP_ClearBoard\r
-    END\r
-END\r
-\r
-WHITEPIECEMENU MENU DISCARDABLE \r
-BEGIN\r
-    POPUP ""\r
-    BEGIN\r
-        MENUITEM "White",                       EP_White\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "Pawn",                        EP_WhitePawn\r
-        MENUITEM "Knight",                      EP_WhiteKnight\r
-        MENUITEM "Bishop",                      EP_WhiteBishop\r
-        MENUITEM "Rook",                        EP_WhiteRook\r
-        MENUITEM "Queen",                       EP_WhiteQueen\r
-        MENUITEM "King",                        EP_WhiteKing\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "Empty Square",                EP_EmptySquare\r
-        MENUITEM "Clear Board",                 EP_ClearBoard\r
-    END\r
-END\r
-\r
-BLACKPIECEMENU MENU DISCARDABLE \r
-BEGIN\r
-    POPUP ""\r
-    BEGIN\r
-        MENUITEM "Black",                       EP_Black\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "Pawn",                        EP_BlackPawn\r
-        MENUITEM "Knight",                      EP_BlackKnight\r
-        MENUITEM "Bishop",                      EP_BlackBishop\r
-        MENUITEM "Rook",                        EP_BlackRook\r
-        MENUITEM "Queen",                       EP_BlackQueen\r
-        MENUITEM "King",                        EP_BlackKing\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "Empty Square",                EP_EmptySquare\r
-        MENUITEM "Clear Board",                 EP_ClearBoard\r
-    END\r
-END\r
-\r
-DROPPIECEMENU MENU DISCARDABLE \r
-BEGIN\r
-    POPUP ""\r
-    BEGIN\r
-        MENUITEM "Drop",                        0, INACTIVE\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "Pawn",                        DP_Pawn\r
-        MENUITEM "Knight",                      DP_Knight\r
-        MENUITEM "Bishop",                      DP_Bishop\r
-        MENUITEM "Rook",                        DP_Rook\r
-        MENUITEM "Queen",                       DP_Queen\r
-    END\r
-END\r
-\r
-TEXTMENU MENU DISCARDABLE \r
-BEGIN\r
-    POPUP ""\r
-    BEGIN\r
-        MENUITEM "Cop&y and Paste",             IDM_QuickPaste\r
-        MENUITEM "&Copy",                       IDM_Copy\r
-        MENUITEM "&Paste",                      IDM_Paste\r
-    END\r
-END\r
-\r
-INPUTMENU MENU DISCARDABLE \r
-BEGIN\r
-    POPUP ""\r
-    BEGIN\r
-        MENUITEM "&Undo",                       IDM_Undo\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "Cu&t",                        IDM_Cut\r
-        MENUITEM "&Copy",                       IDM_Copy\r
-        MENUITEM "&Paste",                      IDM_Paste\r
-        MENUITEM SEPARATOR\r
-        MENUITEM "Select &All",                 IDM_SelectAll\r
-    END\r
-END\r
-\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Accelerator\r
-//\r
-\r
-WINBOARD ACCELERATORS MOVEABLE PURE \r
-BEGIN\r
-    "1",            IDM_DirectCommand1,     VIRTKEY, ALT, NOINVERT\r
-    "2",            IDM_DirectCommand2,     VIRTKEY, ALT, NOINVERT\r
-    "I",            IDM_TypeInMove,         VIRTKEY, ALT, NOINVERT\r
-    "N",            IDM_NewGame,            VIRTKEY, CONTROL, NOINVERT\r
-    "O",            IDM_LoadGame,           VIRTKEY, CONTROL, NOINVERT\r
-    "S",            IDM_SaveGame,           VIRTKEY, CONTROL, NOINVERT\r
-    "O",            IDM_LoadPosition,       VIRTKEY, SHIFT, CONTROL, NOINVERT\r
-    "S",            IDM_SavePosition,       VIRTKEY, SHIFT, CONTROL, NOINVERT\r
-    "C",            IDM_CopyPosition,       VIRTKEY, SHIFT, CONTROL, NOINVERT\r
-    "V",            IDM_PasteAny,           VIRTKEY, SHIFT, CONTROL, NOINVERT\r
-    "O",            IDM_ShowEngineOutput,   VIRTKEY, ALT, SHIFT, NOINVERT\r
-    "H",            IDM_ShowMoveHistory,    VIRTKEY, ALT, SHIFT, NOINVERT\r
-    "E",            IDM_ShowEvalGraph,      VIRTKEY, ALT, SHIFT, NOINVERT\r
-    "G",            IDM_ShowGameList,       VIRTKEY, ALT, SHIFT, NOINVERT\r
-    "B",            IDM_BoardOptions,       VIRTKEY, ALT, SHIFT, NOINVERT\r
-    "T",            IDM_TimeControl,        VIRTKEY, ALT, SHIFT, NOINVERT\r
-    "L",            IDM_LoadOptions,        VIRTKEY, ALT, SHIFT, NOINVERT\r
-    "S",            IDM_SaveOptions,        VIRTKEY, ALT, SHIFT, NOINVERT\r
-    "J",            IDM_EnginePlayOptions,  VIRTKEY, ALT, SHIFT, NOINVERT\r
-    "U",            IDM_OptionsUCI,         VIRTKEY, ALT, SHIFT, NOINVERT\r
-    "V",            IDM_NewVariant,         VIRTKEY, ALT, SHIFT, NOINVERT\r
-    "P",            OPT_PonderNextMove,     VIRTKEY, SHIFT, CONTROL, NOINVERT\r
-    "X",            OPT_SaveExtPGN,         VIRTKEY, SHIFT, CONTROL, NOINVERT\r
-    "L",            OPT_TestLegality,       VIRTKEY, SHIFT, CONTROL, NOINVERT\r
-    "A",            OPT_AnimateMoving,      VIRTKEY, SHIFT, CONTROL, NOINVERT\r
-    "Q",            OPT_AlwaysQueen,        VIRTKEY, SHIFT, CONTROL, NOINVERT\r
-    "F",            OPT_AutoFlag,           VIRTKEY, SHIFT, CONTROL, NOINVERT\r
-    "H",            OPT_HideThinkFromHuman, VIRTKEY, SHIFT, CONTROL, NOINVERT\r
-    "I",            OPT_ExtraInfoInMoveHistory, VIRTKEY, SHIFT, CONTROL, NOINVERT\r
-    "W",            IDM_MachineWhite,       VIRTKEY, CONTROL, NOINVERT\r
-    "B",            IDM_MachineBlack,       VIRTKEY, CONTROL, NOINVERT\r
-    "T",            IDM_TwoMachines,        VIRTKEY, CONTROL, NOINVERT\r
-    "E",            IDM_EditGame,           VIRTKEY, CONTROL, NOINVERT\r
-    "E",            IDM_EditPosition,       VIRTKEY, SHIFT, CONTROL, NOINVERT\r
-    "D",            IDM_Debug,              VIRTKEY, CONTROL, NOINVERT\r
-    "G",            IDM_AnalyzeFile,        VIRTKEY, CONTROL, NOINVERT\r
-    "M",            IDM_MoveNow,            VIRTKEY, CONTROL, NOINVERT\r
-    "X",            IDM_RetractMove,        VIRTKEY, CONTROL, NOINVERT\r
-    VK_DOWN,        IDM_ToEnd,              VIRTKEY, ALT, NOINVERT\r
-    VK_END,         IDM_ToEnd,              VIRTKEY, ALT, NOINVERT\r
-    VK_F1,          IDM_HELPCONTENTS,       VIRTKEY, NOINVERT\r
-    VK_F10,         IDM_StopObserving,      VIRTKEY, NOINVERT\r
-    VK_F11,         IDM_StopExamining,      VIRTKEY, NOINVERT\r
-    VK_F12,         IDM_Rematch,            VIRTKEY, NOINVERT\r
-    VK_F12,         IDM_Debug,              VIRTKEY, CONTROL, ALT, NOINVERT\r
-    VK_F2,          IDM_FlipView,           VIRTKEY, NOINVERT\r
-    VK_F3,          IDM_Accept,             VIRTKEY, NOINVERT\r
-    VK_F4,          IDM_Decline,            VIRTKEY, NOINVERT\r
-    VK_F4,          IDM_Minimize,           VIRTKEY, CONTROL, NOINVERT\r
-    VK_F5,          IDM_CallFlag,           VIRTKEY, NOINVERT\r
-    VK_F6,          IDM_Draw,               VIRTKEY, NOINVERT\r
-    VK_F7,          IDM_Adjourn,            VIRTKEY, NOINVERT\r
-    VK_F8,          IDM_Abort,              VIRTKEY, NOINVERT\r
-    VK_F9,          IDM_Resign,             VIRTKEY, NOINVERT\r
-    VK_HOME,        IDM_ToStart,            VIRTKEY, ALT, NOINVERT\r
-    VK_INSERT,      IDM_MoveNow,            VIRTKEY, ALT, NOINVERT\r
-    VK_NEXT,        IDM_LoadNextGame,       VIRTKEY, ALT, NOINVERT\r
-    VK_NEXT,        IDM_LoadNextPosition,   VIRTKEY, SHIFT, ALT, NOINVERT\r
-    VK_PAUSE,       IDM_Pause,              VIRTKEY, NOINVERT\r
-    VK_PAUSE,       IDM_Pause,              VIRTKEY, ALT, NOINVERT\r
-    VK_PRIOR,       IDM_LoadPrevGame,       VIRTKEY, ALT, NOINVERT\r
-    VK_PRIOR,       IDM_LoadPrevPosition,   VIRTKEY, SHIFT, ALT, NOINVERT\r
-    VK_LEFT,        IDM_Backward,           VIRTKEY, ALT, NOINVERT\r
-    VK_RIGHT,       IDM_Forward,            VIRTKEY, ALT, NOINVERT\r
-END\r
-\r
-NO_ALT ACCELERATORS MOVEABLE PURE \r
-BEGIN\r
-    VK_DELETE,      IDM_RetractMove,        VIRTKEY, NOINVERT\r
-    VK_INSERT,      IDM_MoveNow,            VIRTKEY, NOINVERT\r
-#ifndef JAWS\r
-    VK_END,         IDM_TruncateGame,       VIRTKEY, NOINVERT\r
-    VK_HOME,        IDM_Revert,             VIRTKEY, NOINVERT\r
-    VK_NEXT,        IDM_LoadNextGame,       VIRTKEY, NOINVERT\r
-    VK_NEXT,        IDM_LoadNextPosition,   VIRTKEY, SHIFT, NOINVERT\r
-    VK_PRIOR,       IDM_LoadPrevGame,       VIRTKEY, NOINVERT\r
-    VK_PRIOR,       IDM_LoadPrevPosition,   VIRTKEY, SHIFT, NOINVERT\r
-    VK_LEFT,        IDM_Backward,           VIRTKEY, NOINVERT\r
-    VK_RIGHT,       IDM_Forward,            VIRTKEY, NOINVERT\r
-    VK_DOWN,        IDM_ToEnd,              VIRTKEY, NOINVERT\r
-    VK_UP,          IDM_ToStart,            VIRTKEY, NOINVERT\r
-    VK_DOWN,        OPT_GameListNext,       VIRTKEY, CONTROL, NOINVERT\r
-    VK_UP,          OPT_GameListPrev,       VIRTKEY, CONTROL, NOINVERT\r
-#endif\r
-END\r
-\r
-NO_ICS ACCELERATORS DISCARDABLE \r
-BEGIN\r
-    "A",            IDM_AnalysisMode,       VIRTKEY, CONTROL, NOINVERT\r
-    "V",            IDM_PasteAny,           VIRTKEY, CONTROL, NOINVERT\r
-END\r
-\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Bitmap\r
-//\r
-\r
-P21O                    BITMAP  MOVEABLE PURE   "bitmaps/p21o.bmp"\r
-N21O                    BITMAP  MOVEABLE PURE   "bitmaps/n21o.bmp"\r
-B21O                    BITMAP  MOVEABLE PURE   "bitmaps/b21o.bmp"\r
-R21O                    BITMAP  MOVEABLE PURE   "bitmaps/r21o.bmp"\r
-K21O                    BITMAP  MOVEABLE PURE   "bitmaps/k21o.bmp"\r
-Q21O                    BITMAP  MOVEABLE PURE   "bitmaps/q21o.bmp"\r
-P21S                    BITMAP  MOVEABLE PURE   "bitmaps/p21s.bmp"\r
-N21S                    BITMAP  MOVEABLE PURE   "bitmaps/n21s.bmp"\r
-B21S                    BITMAP  MOVEABLE PURE   "bitmaps/b21s.bmp"\r
-R21S                    BITMAP  MOVEABLE PURE   "bitmaps/r21s.bmp"\r
-Q21S                    BITMAP  MOVEABLE PURE   "bitmaps/q21s.bmp"\r
-K21S                    BITMAP  MOVEABLE PURE   "bitmaps/k21s.bmp"\r
-P21W                    BITMAP  MOVEABLE PURE   "bitmaps/p21w.bmp"\r
-N21W                    BITMAP  MOVEABLE PURE   "bitmaps/n21w.bmp"\r
-B21W                    BITMAP  MOVEABLE PURE   "bitmaps/b21w.bmp"\r
-R21W                    BITMAP  MOVEABLE PURE   "bitmaps/r21w.bmp"\r
-Q21W                    BITMAP  MOVEABLE PURE   "bitmaps/q21w.bmp"\r
-K21W                    BITMAP  MOVEABLE PURE   "bitmaps/k21w.bmp"\r
-P25O                    BITMAP  MOVEABLE PURE   "bitmaps/p25o.bmp"\r
-N25O                    BITMAP  MOVEABLE PURE   "bitmaps/n25o.bmp"\r
-B25O                    BITMAP  MOVEABLE PURE   "bitmaps/b25o.bmp"\r
-R25O                    BITMAP  MOVEABLE PURE   "bitmaps/r25o.bmp"\r
-Q25O                    BITMAP  MOVEABLE PURE   "bitmaps/q25o.bmp"\r
-K25O                    BITMAP  MOVEABLE PURE   "bitmaps/k25o.bmp"\r
-P25S                    BITMAP  MOVEABLE PURE   "bitmaps/p25s.bmp"\r
-N25S                    BITMAP  MOVEABLE PURE   "bitmaps/n25s.bmp"\r
-B25S                    BITMAP  MOVEABLE PURE   "bitmaps/b25s.bmp"\r
-R25S                    BITMAP  MOVEABLE PURE   "bitmaps/r25s.bmp"\r
-Q25S                    BITMAP  MOVEABLE PURE   "bitmaps/q25s.bmp"\r
-K25S                    BITMAP  MOVEABLE PURE   "bitmaps/k25s.bmp"\r
-P25W                    BITMAP  MOVEABLE PURE   "bitmaps/p25w.bmp"\r
-N25W                    BITMAP  MOVEABLE PURE   "bitmaps/n25w.bmp"\r
-B25W                    BITMAP  MOVEABLE PURE   "bitmaps/b25w.bmp"\r
-R25W                    BITMAP  MOVEABLE PURE   "bitmaps/r25w.bmp"\r
-Q25W                    BITMAP  MOVEABLE PURE   "bitmaps/q25w.bmp"\r
-K25W                    BITMAP  MOVEABLE PURE   "bitmaps/k25w.bmp"\r
-P29O                    BITMAP  MOVEABLE PURE   "bitmaps/p29o.bmp"\r
-N29O                    BITMAP  MOVEABLE PURE   "bitmaps/n29o.bmp"\r
-B29O                    BITMAP  MOVEABLE PURE   "bitmaps/b29o.bmp"\r
-R29O                    BITMAP  MOVEABLE PURE   "bitmaps/r29o.bmp"\r
-Q29O                    BITMAP  MOVEABLE PURE   "bitmaps/q29o.bmp"\r
-K29O                    BITMAP  MOVEABLE PURE   "bitmaps/k29o.bmp"\r
-P29S                    BITMAP  MOVEABLE PURE   "bitmaps/p29s.bmp"\r
-N29S                    BITMAP  MOVEABLE PURE   "bitmaps/n29s.bmp"\r
-B29S                    BITMAP  MOVEABLE PURE   "bitmaps/b29s.bmp"\r
-R29S                    BITMAP  MOVEABLE PURE   "bitmaps/r29s.bmp"\r
-Q29S                    BITMAP  MOVEABLE PURE   "bitmaps/q29s.bmp"\r
-K29S                    BITMAP  MOVEABLE PURE   "bitmaps/k29s.bmp"\r
-P29W                    BITMAP  MOVEABLE PURE   "bitmaps/p29w.bmp"\r
-N29W                    BITMAP  MOVEABLE PURE   "bitmaps/n29w.bmp"\r
-B29W                    BITMAP  MOVEABLE PURE   "bitmaps/b29w.bmp"\r
-R29W                    BITMAP  MOVEABLE PURE   "bitmaps/r29w.bmp"\r
-Q29W                    BITMAP  MOVEABLE PURE   "bitmaps/q29w.bmp"\r
-K29W                    BITMAP  MOVEABLE PURE   "bitmaps/k29w.bmp"\r
-P33O                    BITMAP  MOVEABLE PURE   "bitmaps/p33o.bmp"\r
-N33O                    BITMAP  MOVEABLE PURE   "bitmaps/n33o.bmp"\r
-B33O                    BITMAP  MOVEABLE PURE   "bitmaps/b33o.bmp"\r
-R33O                    BITMAP  MOVEABLE PURE   "bitmaps/r33o.bmp"\r
-Q33O                    BITMAP  MOVEABLE PURE   "bitmaps/q33o.bmp"\r
-K33O                    BITMAP  MOVEABLE PURE   "bitmaps/k33o.bmp"\r
-P33S                    BITMAP  MOVEABLE PURE   "bitmaps/p33s.bmp"\r
-N33S                    BITMAP  MOVEABLE PURE   "bitmaps/n33s.bmp"\r
-B33S                    BITMAP  MOVEABLE PURE   "bitmaps/b33s.bmp"\r
-R33S                    BITMAP  MOVEABLE PURE   "bitmaps/r33s.bmp"\r
-Q33S                    BITMAP  MOVEABLE PURE   "bitmaps/q33s.bmp"\r
-K33S                    BITMAP  MOVEABLE PURE   "bitmaps/k33s.bmp"\r
-P33W                    BITMAP  MOVEABLE PURE   "bitmaps/p33w.bmp"\r
-N33W                    BITMAP  MOVEABLE PURE   "bitmaps/n33w.bmp"\r
-B33W                    BITMAP  MOVEABLE PURE   "bitmaps/b33w.bmp"\r
-R33W                    BITMAP  MOVEABLE PURE   "bitmaps/r33w.bmp"\r
-Q33W                    BITMAP  MOVEABLE PURE   "bitmaps/q33w.bmp"\r
-K33W                    BITMAP  MOVEABLE PURE   "bitmaps/k33w.bmp"\r
-P37O                    BITMAP  MOVEABLE PURE   "bitmaps/p37o.bmp"\r
-N37O                    BITMAP  MOVEABLE PURE   "bitmaps/n37o.bmp"\r
-B37O                    BITMAP  MOVEABLE PURE   "bitmaps/b37o.bmp"\r
-R37O                    BITMAP  MOVEABLE PURE   "bitmaps/r37o.bmp"\r
-Q37O                    BITMAP  MOVEABLE PURE   "bitmaps/q37o.bmp"\r
-K37O                    BITMAP  MOVEABLE PURE   "bitmaps/k37o.bmp"\r
-P37S                    BITMAP  MOVEABLE PURE   "bitmaps/p37s.bmp"\r
-N37S                    BITMAP  MOVEABLE PURE   "bitmaps/n37s.bmp"\r
-B37S                    BITMAP  MOVEABLE PURE   "bitmaps/b37s.bmp"\r
-R37S                    BITMAP  MOVEABLE PURE   "bitmaps/r37s.bmp"\r
-Q37S                    BITMAP  MOVEABLE PURE   "bitmaps/q37s.bmp"\r
-K37S                    BITMAP  MOVEABLE PURE   "bitmaps/k37s.bmp"\r
-P37W                    BITMAP  MOVEABLE PURE   "bitmaps/p37w.bmp"\r
-N37W                    BITMAP  MOVEABLE PURE   "bitmaps/n37w.bmp"\r
-B37W                    BITMAP  MOVEABLE PURE   "bitmaps/b37w.bmp"\r
-R37W                    BITMAP  MOVEABLE PURE   "bitmaps/r37w.bmp"\r
-Q37W                    BITMAP  MOVEABLE PURE   "bitmaps/q37w.bmp"\r
-K37W                    BITMAP  MOVEABLE PURE   "bitmaps/k37w.bmp"\r
-P40O                    BITMAP  MOVEABLE PURE   "bitmaps/p40o.bmp"\r
-N40O                    BITMAP  MOVEABLE PURE   "bitmaps/n40o.bmp"\r
-B40O                    BITMAP  MOVEABLE PURE   "bitmaps/b40o.bmp"\r
-R40O                    BITMAP  MOVEABLE PURE   "bitmaps/r40o.bmp"\r
-Q40O                    BITMAP  MOVEABLE PURE   "bitmaps/q40o.bmp"\r
-K40O                    BITMAP  MOVEABLE PURE   "bitmaps/k40o.bmp"\r
-P40S                    BITMAP  MOVEABLE PURE   "bitmaps/p40s.bmp"\r
-N40S                    BITMAP  MOVEABLE PURE   "bitmaps/n40s.bmp"\r
-B40S                    BITMAP  MOVEABLE PURE   "bitmaps/b40s.bmp"\r
-R40S                    BITMAP  MOVEABLE PURE   "bitmaps/r40s.bmp"\r
-Q40S                    BITMAP  MOVEABLE PURE   "bitmaps/q40s.bmp"\r
-K40S                    BITMAP  MOVEABLE PURE   "bitmaps/k40s.bmp"\r
-P40W                    BITMAP  MOVEABLE PURE   "bitmaps/p40w.bmp"\r
-N40W                    BITMAP  MOVEABLE PURE   "bitmaps/n40w.bmp"\r
-B40W                    BITMAP  MOVEABLE PURE   "bitmaps/b40w.bmp"\r
-R40W                    BITMAP  MOVEABLE PURE   "bitmaps/r40w.bmp"\r
-Q40W                    BITMAP  MOVEABLE PURE   "bitmaps/q40w.bmp"\r
-K40W                    BITMAP  MOVEABLE PURE   "bitmaps/k40w.bmp"\r
-P45O                    BITMAP  MOVEABLE PURE   "bitmaps/p45o.bmp"\r
-N45O                    BITMAP  MOVEABLE PURE   "bitmaps/n45o.bmp"\r
-B45O                    BITMAP  MOVEABLE PURE   "bitmaps/b45o.bmp"\r
-R45O                    BITMAP  MOVEABLE PURE   "bitmaps/r45o.bmp"\r
-Q45O                    BITMAP  MOVEABLE PURE   "bitmaps/q45o.bmp"\r
-K45O                    BITMAP  MOVEABLE PURE   "bitmaps/k45o.bmp"\r
-P45S                    BITMAP  MOVEABLE PURE   "bitmaps/p45s.bmp"\r
-N45S                    BITMAP  MOVEABLE PURE   "bitmaps/n45s.bmp"\r
-B45S                    BITMAP  MOVEABLE PURE   "bitmaps/b45s.bmp"\r
-R45S                    BITMAP  MOVEABLE PURE   "bitmaps/r45s.bmp"\r
-Q45S                    BITMAP  MOVEABLE PURE   "bitmaps/q45s.bmp"\r
-K45S                    BITMAP  MOVEABLE PURE   "bitmaps/k45s.bmp"\r
-P45W                    BITMAP  MOVEABLE PURE   "bitmaps/p45w.bmp"\r
-N45W                    BITMAP  MOVEABLE PURE   "bitmaps/n45w.bmp"\r
-B45W                    BITMAP  MOVEABLE PURE   "bitmaps/b45w.bmp"\r
-R45W                    BITMAP  MOVEABLE PURE   "bitmaps/r45w.bmp"\r
-Q45W                    BITMAP  MOVEABLE PURE   "bitmaps/q45w.bmp"\r
-K45W                    BITMAP  MOVEABLE PURE   "bitmaps/k45w.bmp"\r
-P49O                    BITMAP  MOVEABLE PURE   "bitmaps/p49o.bmp"\r
-N49O                    BITMAP  MOVEABLE PURE   "bitmaps/n49o.bmp"\r
-B49O                    BITMAP  MOVEABLE PURE   "bitmaps/b49o.bmp"\r
-R49O                    BITMAP  MOVEABLE PURE   "bitmaps/r49o.bmp"\r
-Q49O                    BITMAP  MOVEABLE PURE   "bitmaps/q49o.bmp"\r
-K49O                    BITMAP  MOVEABLE PURE   "bitmaps/k49o.bmp"\r
-P49S                    BITMAP  MOVEABLE PURE   "bitmaps/p49s.bmp"\r
-N49S                    BITMAP  MOVEABLE PURE   "bitmaps/n49s.bmp"\r
-B49S                    BITMAP  MOVEABLE PURE   "bitmaps/b49s.bmp"\r
-R49S                    BITMAP  MOVEABLE PURE   "bitmaps/r49s.bmp"\r
-Q49S                    BITMAP  MOVEABLE PURE   "bitmaps/q49s.bmp"\r
-K49S                    BITMAP  MOVEABLE PURE   "bitmaps/k49s.bmp"\r
-P49W                    BITMAP  MOVEABLE PURE   "bitmaps/p49w.bmp"\r
-N49W                    BITMAP  MOVEABLE PURE   "bitmaps/n49w.bmp"\r
-B49W                    BITMAP  MOVEABLE PURE   "bitmaps/b49w.bmp"\r
-R49W                    BITMAP  MOVEABLE PURE   "bitmaps/r49w.bmp"\r
-Q49W                    BITMAP  MOVEABLE PURE   "bitmaps/q49w.bmp"\r
-K49W                    BITMAP  MOVEABLE PURE   "bitmaps/k49w.bmp"\r
-P54O                    BITMAP  MOVEABLE PURE   "bitmaps/p54o.bmp"\r
-N54O                    BITMAP  MOVEABLE PURE   "bitmaps/n54o.bmp"\r
-B54O                    BITMAP  MOVEABLE PURE   "bitmaps/b54o.bmp"\r
-R54O                    BITMAP  MOVEABLE PURE   "bitmaps/r54o.bmp"\r
-Q54O                    BITMAP  MOVEABLE PURE   "bitmaps/q54o.bmp"\r
-K54O                    BITMAP  MOVEABLE PURE   "bitmaps/k54o.bmp"\r
-P54S                    BITMAP  MOVEABLE PURE   "bitmaps/p54s.bmp"\r
-N54S                    BITMAP  MOVEABLE PURE   "bitmaps/n54s.bmp"\r
-B54S                    BITMAP  MOVEABLE PURE   "bitmaps/b54s.bmp"\r
-R54S                    BITMAP  MOVEABLE PURE   "bitmaps/r54s.bmp"\r
-Q54S                    BITMAP  MOVEABLE PURE   "bitmaps/q54s.bmp"\r
-K54S                    BITMAP  MOVEABLE PURE   "bitmaps/k54s.bmp"\r
-P54W                    BITMAP  MOVEABLE PURE   "bitmaps/p54w.bmp"\r
-N54W                    BITMAP  MOVEABLE PURE   "bitmaps/n54w.bmp"\r
-B54W                    BITMAP  MOVEABLE PURE   "bitmaps/b54w.bmp"\r
-R54W                    BITMAP  MOVEABLE PURE   "bitmaps/r54w.bmp"\r
-Q54W                    BITMAP  MOVEABLE PURE   "bitmaps/q54w.bmp"\r
-K54W                    BITMAP  MOVEABLE PURE   "bitmaps/k54w.bmp"\r
-P58O                    BITMAP  MOVEABLE PURE   "bitmaps/p58o.bmp"\r
-N58O                    BITMAP  MOVEABLE PURE   "bitmaps/n58o.bmp"\r
-B58O                    BITMAP  MOVEABLE PURE   "bitmaps/b58o.bmp"\r
-R58O                    BITMAP  MOVEABLE PURE   "bitmaps/r58o.bmp"\r
-Q58O                    BITMAP  MOVEABLE PURE   "bitmaps/q58o.bmp"\r
-K58O                    BITMAP  MOVEABLE PURE   "bitmaps/k58o.bmp"\r
-P58S                    BITMAP  MOVEABLE PURE   "bitmaps/p58s.bmp"\r
-N58S                    BITMAP  MOVEABLE PURE   "bitmaps/n58s.bmp"\r
-B58S                    BITMAP  MOVEABLE PURE   "bitmaps/b58s.bmp"\r
-R58S                    BITMAP  MOVEABLE PURE   "bitmaps/r58s.bmp"\r
-Q58S                    BITMAP  MOVEABLE PURE   "bitmaps/q58s.bmp"\r
-K58S                    BITMAP  MOVEABLE PURE   "bitmaps/k58s.bmp"\r
-P58W                    BITMAP  MOVEABLE PURE   "bitmaps/p58w.bmp"\r
-N58W                    BITMAP  MOVEABLE PURE   "bitmaps/n58w.bmp"\r
-B58W                    BITMAP  MOVEABLE PURE   "bitmaps/b58w.bmp"\r
-R58W                    BITMAP  MOVEABLE PURE   "bitmaps/r58w.bmp"\r
-Q58W                    BITMAP  MOVEABLE PURE   "bitmaps/q58w.bmp"\r
-K58W                    BITMAP  MOVEABLE PURE   "bitmaps/k58w.bmp"\r
-P64O                    BITMAP  MOVEABLE PURE   "bitmaps/p64o.bmp"\r
-N64O                    BITMAP  MOVEABLE PURE   "bitmaps/n64o.bmp"\r
-B64O                    BITMAP  MOVEABLE PURE   "bitmaps/b64o.bmp"\r
-R64O                    BITMAP  MOVEABLE PURE   "bitmaps/r64o.bmp"\r
-Q64O                    BITMAP  MOVEABLE PURE   "bitmaps/q64o.bmp"\r
-K64O                    BITMAP  MOVEABLE PURE   "bitmaps/k64o.bmp"\r
-P64S                    BITMAP  MOVEABLE PURE   "bitmaps/p64s.bmp"\r
-N64S                    BITMAP  MOVEABLE PURE   "bitmaps/n64s.bmp"\r
-B64S                    BITMAP  MOVEABLE PURE   "bitmaps/b64s.bmp"\r
-R64S                    BITMAP  MOVEABLE PURE   "bitmaps/r64s.bmp"\r
-Q64S                    BITMAP  MOVEABLE PURE   "bitmaps/q64s.bmp"\r
-K64S                    BITMAP  MOVEABLE PURE   "bitmaps/k64s.bmp"\r
-P64W                    BITMAP  MOVEABLE PURE   "bitmaps/p64w.bmp"\r
-N64W                    BITMAP  MOVEABLE PURE   "bitmaps/n64w.bmp"\r
-B64W                    BITMAP  MOVEABLE PURE   "bitmaps/b64w.bmp"\r
-R64W                    BITMAP  MOVEABLE PURE   "bitmaps/r64w.bmp"\r
-Q64W                    BITMAP  MOVEABLE PURE   "bitmaps/q64w.bmp"\r
-K64W                    BITMAP  MOVEABLE PURE   "bitmaps/k64w.bmp"\r
-P72O                    BITMAP  MOVEABLE PURE   "bitmaps/p72o.bmp"\r
-N72O                    BITMAP  MOVEABLE PURE   "bitmaps/n72o.bmp"\r
-B72O                    BITMAP  MOVEABLE PURE   "bitmaps/b72o.bmp"\r
-R72O                    BITMAP  MOVEABLE PURE   "bitmaps/r72o.bmp"\r
-Q72O                    BITMAP  MOVEABLE PURE   "bitmaps/q72o.bmp"\r
-K72O                    BITMAP  MOVEABLE PURE   "bitmaps/k72o.bmp"\r
-P72S                    BITMAP  MOVEABLE PURE   "bitmaps/p72s.bmp"\r
-N72S                    BITMAP  MOVEABLE PURE   "bitmaps/n72s.bmp"\r
-B72S                    BITMAP  MOVEABLE PURE   "bitmaps/b72s.bmp"\r
-R72S                    BITMAP  MOVEABLE PURE   "bitmaps/r72s.bmp"\r
-Q72S                    BITMAP  MOVEABLE PURE   "bitmaps/q72s.bmp"\r
-K72S                    BITMAP  MOVEABLE PURE   "bitmaps/k72s.bmp"\r
-P72W                    BITMAP  MOVEABLE PURE   "bitmaps/p72w.bmp"\r
-N72W                    BITMAP  MOVEABLE PURE   "bitmaps/n72w.bmp"\r
-B72W                    BITMAP  MOVEABLE PURE   "bitmaps/b72w.bmp"\r
-R72W                    BITMAP  MOVEABLE PURE   "bitmaps/r72w.bmp"\r
-Q72W                    BITMAP  MOVEABLE PURE   "bitmaps/q72w.bmp"\r
-K72W                    BITMAP  MOVEABLE PURE   "bitmaps/k72w.bmp"\r
-P80O                    BITMAP  MOVEABLE PURE   "bitmaps/p80o.bmp"\r
-N80O                    BITMAP  MOVEABLE PURE   "bitmaps/n80o.bmp"\r
-B80O                    BITMAP  MOVEABLE PURE   "bitmaps/b80o.bmp"\r
-R80O                    BITMAP  MOVEABLE PURE   "bitmaps/r80o.bmp"\r
-Q80O                    BITMAP  MOVEABLE PURE   "bitmaps/q80o.bmp"\r
-K80O                    BITMAP  MOVEABLE PURE   "bitmaps/k80o.bmp"\r
-P80S                    BITMAP  MOVEABLE PURE   "bitmaps/p80s.bmp"\r
-N80S                    BITMAP  MOVEABLE PURE   "bitmaps/n80s.bmp"\r
-B80S                    BITMAP  MOVEABLE PURE   "bitmaps/b80s.bmp"\r
-R80S                    BITMAP  MOVEABLE PURE   "bitmaps/r80s.bmp"\r
-Q80S                    BITMAP  MOVEABLE PURE   "bitmaps/q80s.bmp"\r
-K80S                    BITMAP  MOVEABLE PURE   "bitmaps/k80s.bmp"\r
-P80W                    BITMAP  MOVEABLE PURE   "bitmaps/p80w.bmp"\r
-N80W                    BITMAP  MOVEABLE PURE   "bitmaps/n80w.bmp"\r
-B80W                    BITMAP  MOVEABLE PURE   "bitmaps/b80w.bmp"\r
-R80W                    BITMAP  MOVEABLE PURE   "bitmaps/r80w.bmp"\r
-Q80W                    BITMAP  MOVEABLE PURE   "bitmaps/q80w.bmp"\r
-K80W                    BITMAP  MOVEABLE PURE   "bitmaps/k80w.bmp"\r
-P87O                    BITMAP  MOVEABLE PURE   "bitmaps/p87o.bmp"\r
-N87O                    BITMAP  MOVEABLE PURE   "bitmaps/n87o.bmp"\r
-B87O                    BITMAP  MOVEABLE PURE   "bitmaps/b87o.bmp"\r
-R87O                    BITMAP  MOVEABLE PURE   "bitmaps/r87o.bmp"\r
-Q87O                    BITMAP  MOVEABLE PURE   "bitmaps/q87o.bmp"\r
-K87O                    BITMAP  MOVEABLE PURE   "bitmaps/k87o.bmp"\r
-P87S                    BITMAP  MOVEABLE PURE   "bitmaps/p87s.bmp"\r
-N87S                    BITMAP  MOVEABLE PURE   "bitmaps/n87s.bmp"\r
-B87S                    BITMAP  MOVEABLE PURE   "bitmaps/b87s.bmp"\r
-R87S                    BITMAP  MOVEABLE PURE   "bitmaps/r87s.bmp"\r
-Q87S                    BITMAP  MOVEABLE PURE   "bitmaps/q87s.bmp"\r
-K87S                    BITMAP  MOVEABLE PURE   "bitmaps/k87s.bmp"\r
-P87W                    BITMAP  MOVEABLE PURE   "bitmaps/p87w.bmp"\r
-N87W                    BITMAP  MOVEABLE PURE   "bitmaps/n87w.bmp"\r
-B87W                    BITMAP  MOVEABLE PURE   "bitmaps/b87w.bmp"\r
-R87W                    BITMAP  MOVEABLE PURE   "bitmaps/r87w.bmp"\r
-Q87W                    BITMAP  MOVEABLE PURE   "bitmaps/q87w.bmp"\r
-K87W                    BITMAP  MOVEABLE PURE   "bitmaps/k87w.bmp"\r
-P95O                    BITMAP  MOVEABLE PURE   "bitmaps/p95o.bmp"\r
-N95O                    BITMAP  MOVEABLE PURE   "bitmaps/n95o.bmp"\r
-B95O                    BITMAP  MOVEABLE PURE   "bitmaps/b95o.bmp"\r
-R95O                    BITMAP  MOVEABLE PURE   "bitmaps/r95o.bmp"\r
-Q95O                    BITMAP  MOVEABLE PURE   "bitmaps/q95o.bmp"\r
-K95O                    BITMAP  MOVEABLE PURE   "bitmaps/k95o.bmp"\r
-P95S                    BITMAP  MOVEABLE PURE   "bitmaps/p95s.bmp"\r
-N95S                    BITMAP  MOVEABLE PURE   "bitmaps/n95s.bmp"\r
-B95S                    BITMAP  MOVEABLE PURE   "bitmaps/b95s.bmp"\r
-R95S                    BITMAP  MOVEABLE PURE   "bitmaps/r95s.bmp"\r
-Q95S                    BITMAP  MOVEABLE PURE   "bitmaps/q95s.bmp"\r
-K95S                    BITMAP  MOVEABLE PURE   "bitmaps/k95s.bmp"\r
-P95W                    BITMAP  MOVEABLE PURE   "bitmaps/p95w.bmp"\r
-N95W                    BITMAP  MOVEABLE PURE   "bitmaps/n95w.bmp"\r
-B95W                    BITMAP  MOVEABLE PURE   "bitmaps/b95w.bmp"\r
-R95W                    BITMAP  MOVEABLE PURE   "bitmaps/r95w.bmp"\r
-Q95W                    BITMAP  MOVEABLE PURE   "bitmaps/q95w.bmp"\r
-K95W                    BITMAP  MOVEABLE PURE   "bitmaps/k95w.bmp"\r
-P108O                   BITMAP  MOVEABLE PURE   "bitmaps/p108o.bmp"\r
-N108O                   BITMAP  MOVEABLE PURE   "bitmaps/n108o.bmp"\r
-B108O                   BITMAP  MOVEABLE PURE   "bitmaps/b108o.bmp"\r
-R108O                   BITMAP  MOVEABLE PURE   "bitmaps/r108o.bmp"\r
-Q108O                   BITMAP  MOVEABLE PURE   "bitmaps/q108o.bmp"\r
-K108O                   BITMAP  MOVEABLE PURE   "bitmaps/k108o.bmp"\r
-P108S                   BITMAP  MOVEABLE PURE   "bitmaps/p108s.bmp"\r
-N108S                   BITMAP  MOVEABLE PURE   "bitmaps/n108s.bmp"\r
-B108S                   BITMAP  MOVEABLE PURE   "bitmaps/b108s.bmp"\r
-R108S                   BITMAP  MOVEABLE PURE   "bitmaps/r108s.bmp"\r
-Q108S                   BITMAP  MOVEABLE PURE   "bitmaps/q108s.bmp"\r
-K108S                   BITMAP  MOVEABLE PURE   "bitmaps/k108s.bmp"\r
-P108W                   BITMAP  MOVEABLE PURE   "bitmaps/p108w.bmp"\r
-N108W                   BITMAP  MOVEABLE PURE   "bitmaps/n108w.bmp"\r
-B108W                   BITMAP  MOVEABLE PURE   "bitmaps/b108w.bmp"\r
-R108W                   BITMAP  MOVEABLE PURE   "bitmaps/r108w.bmp"\r
-Q108W                   BITMAP  MOVEABLE PURE   "bitmaps/q108w.bmp"\r
-K108W                   BITMAP  MOVEABLE PURE   "bitmaps/k108w.bmp"\r
-P116O                   BITMAP  MOVEABLE PURE   "bitmaps/p116o.bmp"\r
-N116O                   BITMAP  MOVEABLE PURE   "bitmaps/n116o.bmp"\r
-B116O                   BITMAP  MOVEABLE PURE   "bitmaps/b116o.bmp"\r
-R116O                   BITMAP  MOVEABLE PURE   "bitmaps/r116o.bmp"\r
-Q116O                   BITMAP  MOVEABLE PURE   "bitmaps/q116o.bmp"\r
-K116O                   BITMAP  MOVEABLE PURE   "bitmaps/k116o.bmp"\r
-P116S                   BITMAP  MOVEABLE PURE   "bitmaps/p116s.bmp"\r
-N116S                   BITMAP  MOVEABLE PURE   "bitmaps/n116s.bmp"\r
-B116S                   BITMAP  MOVEABLE PURE   "bitmaps/b116s.bmp"\r
-R116S                   BITMAP  MOVEABLE PURE   "bitmaps/r116s.bmp"\r
-Q116S                   BITMAP  MOVEABLE PURE   "bitmaps/q116s.bmp"\r
-K116S                   BITMAP  MOVEABLE PURE   "bitmaps/k116s.bmp"\r
-P116W                   BITMAP  MOVEABLE PURE   "bitmaps/p116w.bmp"\r
-N116W                   BITMAP  MOVEABLE PURE   "bitmaps/n116w.bmp"\r
-B116W                   BITMAP  MOVEABLE PURE   "bitmaps/b116w.bmp"\r
-R116W                   BITMAP  MOVEABLE PURE   "bitmaps/r116w.bmp"\r
-Q116W                   BITMAP  MOVEABLE PURE   "bitmaps/q116w.bmp"\r
-K116W                   BITMAP  MOVEABLE PURE   "bitmaps/k116w.bmp"\r
-P129O                   BITMAP  MOVEABLE PURE   "bitmaps/p129o.bmp"\r
-N129O                   BITMAP  MOVEABLE PURE   "bitmaps/n129o.bmp"\r
-B129O                   BITMAP  MOVEABLE PURE   "bitmaps/b129o.bmp"\r
-R129O                   BITMAP  MOVEABLE PURE   "bitmaps/r129o.bmp"\r
-Q129O                   BITMAP  MOVEABLE PURE   "bitmaps/q129o.bmp"\r
-K129O                   BITMAP  MOVEABLE PURE   "bitmaps/k129o.bmp"\r
-P129S                   BITMAP  MOVEABLE PURE   "bitmaps/p129s.bmp"\r
-N129S                   BITMAP  MOVEABLE PURE   "bitmaps/n129s.bmp"\r
-B129S                   BITMAP  MOVEABLE PURE   "bitmaps/b129s.bmp"\r
-R129S                   BITMAP  MOVEABLE PURE   "bitmaps/r129s.bmp"\r
-Q129S                   BITMAP  MOVEABLE PURE   "bitmaps/q129s.bmp"\r
-K129S                   BITMAP  MOVEABLE PURE   "bitmaps/k129s.bmp"\r
-P129W                   BITMAP  MOVEABLE PURE   "bitmaps/p129w.bmp"\r
-N129W                   BITMAP  MOVEABLE PURE   "bitmaps/n129w.bmp"\r
-B129W                   BITMAP  MOVEABLE PURE   "bitmaps/b129w.bmp"\r
-R129W                   BITMAP  MOVEABLE PURE   "bitmaps/r129w.bmp"\r
-Q129W                   BITMAP  MOVEABLE PURE   "bitmaps/q129w.bmp"\r
-K129W                   BITMAP  MOVEABLE PURE   "bitmaps/k129w.bmp"\r
-GALACTIC                BITMAP  MOVEABLE PURE   "bitmaps/galactic.bmp"\r
-TIM                     BITMAP  MOVEABLE PURE   "bitmaps/tim.bmp"\r
-// [HGM] Some fairy symbols:\r
-E72O                    BITMAP  MOVEABLE PURE   "bitmaps/e72o.bmp"\r
-A72O                    BITMAP  MOVEABLE PURE   "bitmaps/a72o.bmp"\r
-AA72O                   BITMAP  MOVEABLE PURE   "bitmaps/as72o.bmp"\r
-C72O                    BITMAP  MOVEABLE PURE   "bitmaps/c72o.bmp"\r
-CV72O                   BITMAP  MOVEABLE PURE   "bitmaps/cv72o.bmp"\r
-F72O                    BITMAP  MOVEABLE PURE   "bitmaps/f72o.bmp"\r
-M72O                    BITMAP  MOVEABLE PURE   "bitmaps/m72o.bmp"\r
-W72O                    BITMAP  MOVEABLE PURE   "bitmaps/w72o.bmp"\r
-O72O                    BITMAP  MOVEABLE PURE   "bitmaps/o72o.bmp"\r
-U72O                    BITMAP  MOVEABLE PURE   "bitmaps/u72o.bmp"\r
-H72O                    BITMAP  MOVEABLE PURE   "bitmaps/h72o.bmp"\r
-G72O                    BITMAP  MOVEABLE PURE   "bitmaps/g72o.bmp"\r
-V72O                    BITMAP  MOVEABLE PURE   "bitmaps/v72o.bmp"\r
-S72O                    BITMAP  MOVEABLE PURE   "bitmaps/s72o.bmp"\r
-L72O                    BITMAP  MOVEABLE PURE   "bitmaps/l72o.bmp"\r
-DK72O                   BITMAP  MOVEABLE PURE   "bitmaps/dk72o.bmp"\r
-LN72O                   BITMAP  MOVEABLE PURE   "bitmaps/ln72o.bmp"\r
-WOLF72O                 BITMAP  MOVEABLE PURE   "bitmaps/wolf72o.bmp"\r
-CAMEL72O                BITMAP  MOVEABLE PURE   "bitmaps/camel72o.bmp"\r
-ZEBRA72O                BITMAP  MOVEABLE PURE   "bitmaps/zebra72o.bmp"\r
-WP72O                   BITMAP  MOVEABLE PURE   "bitmaps/wp72o.bmp"\r
-WN72O                   BITMAP  MOVEABLE PURE   "bitmaps/wn72o.bmp"\r
-WL72O                   BITMAP  MOVEABLE PURE   "bitmaps/wl72o.bmp"\r
-WS72O                   BITMAP  MOVEABLE PURE   "bitmaps/ws72o.bmp"\r
-E72S                    BITMAP  MOVEABLE PURE   "bitmaps/e72s.bmp"\r
-A72S                    BITMAP  MOVEABLE PURE   "bitmaps/a72s.bmp"\r
-AA72S                   BITMAP  MOVEABLE PURE   "bitmaps/as72s.bmp"\r
-C72S                    BITMAP  MOVEABLE PURE   "bitmaps/c72s.bmp"\r
-CV72S                   BITMAP  MOVEABLE PURE   "bitmaps/cv72s.bmp"\r
-F72S                    BITMAP  MOVEABLE PURE   "bitmaps/f72s.bmp"\r
-M72S                    BITMAP  MOVEABLE PURE   "bitmaps/m72s.bmp"\r
-W72S                    BITMAP  MOVEABLE PURE   "bitmaps/w72s.bmp"\r
-O72S                    BITMAP  MOVEABLE PURE   "bitmaps/o72s.bmp"\r
-U72S                    BITMAP  MOVEABLE PURE   "bitmaps/u72s.bmp"\r
-H72S                    BITMAP  MOVEABLE PURE   "bitmaps/h72s.bmp"\r
-G72S                    BITMAP  MOVEABLE PURE   "bitmaps/g72s.bmp"\r
-V72S                    BITMAP  MOVEABLE PURE   "bitmaps/v72s.bmp"\r
-S72S                    BITMAP  MOVEABLE PURE   "bitmaps/s72s.bmp"\r
-L72S                    BITMAP  MOVEABLE PURE   "bitmaps/l72s.bmp"\r
-DK72S                   BITMAP  MOVEABLE PURE   "bitmaps/dk72s.bmp"\r
-LN72S                   BITMAP  MOVEABLE PURE   "bitmaps/ln72s.bmp"\r
-WOLF72S                 BITMAP  MOVEABLE PURE   "bitmaps/wolf72s.bmp"\r
-CAMEL72S                BITMAP  MOVEABLE PURE   "bitmaps/camel72s.bmp"\r
-ZEBRA72S                BITMAP  MOVEABLE PURE   "bitmaps/zebra72s.bmp"\r
-WP72S                   BITMAP  MOVEABLE PURE   "bitmaps/wp72s.bmp"\r
-WN72S                   BITMAP  MOVEABLE PURE   "bitmaps/wn72s.bmp"\r
-WL72S                   BITMAP  MOVEABLE PURE   "bitmaps/wl72s.bmp"\r
-WS72S                   BITMAP  MOVEABLE PURE   "bitmaps/ws72s.bmp"\r
-E72W                    BITMAP  MOVEABLE PURE   "bitmaps/e72w.bmp"\r
-A72W                    BITMAP  MOVEABLE PURE   "bitmaps/a72w.bmp"\r
-AA72W                   BITMAP  MOVEABLE PURE   "bitmaps/as72w.bmp"\r
-C72W                    BITMAP  MOVEABLE PURE   "bitmaps/c72w.bmp"\r
-CV72W                   BITMAP  MOVEABLE PURE   "bitmaps/cv72w.bmp"\r
-F72W                    BITMAP  MOVEABLE PURE   "bitmaps/f72w.bmp"\r
-M72W                    BITMAP  MOVEABLE PURE   "bitmaps/m72w.bmp"\r
-W72W                    BITMAP  MOVEABLE PURE   "bitmaps/w72w.bmp"\r
-O72W                    BITMAP  MOVEABLE PURE   "bitmaps/o72w.bmp"\r
-U72W                    BITMAP  MOVEABLE PURE   "bitmaps/u72w.bmp"\r
-H72W                    BITMAP  MOVEABLE PURE   "bitmaps/h72w.bmp"\r
-G72W                    BITMAP  MOVEABLE PURE   "bitmaps/g72w.bmp"\r
-V72W                    BITMAP  MOVEABLE PURE   "bitmaps/v72w.bmp"\r
-S72W                    BITMAP  MOVEABLE PURE   "bitmaps/s72w.bmp"\r
-L72W                    BITMAP  MOVEABLE PURE   "bitmaps/l72w.bmp"\r
-DK72W                   BITMAP  MOVEABLE PURE   "bitmaps/dk72w.bmp"\r
-LN72W                   BITMAP  MOVEABLE PURE   "bitmaps/ln72w.bmp"\r
-WOLF72W                 BITMAP  MOVEABLE PURE   "bitmaps/wolf72w.bmp"\r
-CAMEL72W                BITMAP  MOVEABLE PURE   "bitmaps/camel72w.bmp"\r
-E49O                    BITMAP  MOVEABLE PURE   "bitmaps/e49o.bmp"\r
-A49O                    BITMAP  MOVEABLE PURE   "bitmaps/a49o.bmp"\r
-AA49O                   BITMAP  MOVEABLE PURE   "bitmaps/as49o.bmp"\r
-C49O                    BITMAP  MOVEABLE PURE   "bitmaps/c49o.bmp"\r
-CV49O                   BITMAP  MOVEABLE PURE   "bitmaps/cv49o.bmp"\r
-F49O                    BITMAP  MOVEABLE PURE   "bitmaps/f49o.bmp"\r
-M49O                    BITMAP  MOVEABLE PURE   "bitmaps/m49o.bmp"\r
-W49O                    BITMAP  MOVEABLE PURE   "bitmaps/w49o.bmp"\r
-O49O                    BITMAP  MOVEABLE PURE   "bitmaps/o49o.bmp"\r
-U49O                    BITMAP  MOVEABLE PURE   "bitmaps/u49o.bmp"\r
-H49O                    BITMAP  MOVEABLE PURE   "bitmaps/h49o.bmp"\r
-G49O                    BITMAP  MOVEABLE PURE   "bitmaps/g49o.bmp"\r
-V49O                    BITMAP  MOVEABLE PURE   "bitmaps/v49o.bmp"\r
-S49O                    BITMAP  MOVEABLE PURE   "bitmaps/s49o.bmp"\r
-L49O                    BITMAP  MOVEABLE PURE   "bitmaps/l49o.bmp"\r
-DK49O                   BITMAP  MOVEABLE PURE   "bitmaps/dk49o.bmp"\r
-LN49O                   BITMAP  MOVEABLE PURE   "bitmaps/ln49o.bmp"\r
-WOLF49O                 BITMAP  MOVEABLE PURE   "bitmaps/wolf49o.bmp"\r
-CAMEL49O                BITMAP  MOVEABLE PURE   "bitmaps/camel49o.bmp"\r
-ZEBRA49O                BITMAP  MOVEABLE PURE   "bitmaps/zebra49o.bmp"\r
-WP49O                   BITMAP  MOVEABLE PURE   "bitmaps/wp49o.bmp"\r
-WN49O                   BITMAP  MOVEABLE PURE   "bitmaps/wn49o.bmp"\r
-WL49O                   BITMAP  MOVEABLE PURE   "bitmaps/wl49o.bmp"\r
-WS49O                   BITMAP  MOVEABLE PURE   "bitmaps/ws49o.bmp"\r
-E49S                    BITMAP  MOVEABLE PURE   "bitmaps/e49s.bmp"\r
-A49S                    BITMAP  MOVEABLE PURE   "bitmaps/a49s.bmp"\r
-AA49S                   BITMAP  MOVEABLE PURE   "bitmaps/as49s.bmp"\r
-C49S                    BITMAP  MOVEABLE PURE   "bitmaps/c49s.bmp"\r
-CV49S                   BITMAP  MOVEABLE PURE   "bitmaps/cv49s.bmp"\r
-F49S                    BITMAP  MOVEABLE PURE   "bitmaps/f49s.bmp"\r
-\r
-M49S                    BITMAP  MOVEABLE PURE   "bitmaps/m49s.bmp"\r
-W49S                    BITMAP  MOVEABLE PURE   "bitmaps/w49s.bmp"\r
-O49S                    BITMAP  MOVEABLE PURE   "bitmaps/o49s.bmp"\r
-U49S                    BITMAP  MOVEABLE PURE   "bitmaps/u49s.bmp"\r
-H49S                    BITMAP  MOVEABLE PURE   "bitmaps/h49s.bmp"\r
-G49S                    BITMAP  MOVEABLE PURE   "bitmaps/g49s.bmp"\r
-V49S                    BITMAP  MOVEABLE PURE   "bitmaps/v49s.bmp"\r
-S49S                    BITMAP  MOVEABLE PURE   "bitmaps/s49s.bmp"\r
-L49S                    BITMAP  MOVEABLE PURE   "bitmaps/l49s.bmp"\r
-DK49S                   BITMAP  MOVEABLE PURE   "bitmaps/dk49s.bmp"\r
-LN49S                   BITMAP  MOVEABLE PURE   "bitmaps/ln49s.bmp"\r
-WOLF49S                 BITMAP  MOVEABLE PURE   "bitmaps/wolf49s.bmp"\r
-CAMEL49S                BITMAP  MOVEABLE PURE   "bitmaps/camel49s.bmp"\r
-ZEBRA49S                BITMAP  MOVEABLE PURE   "bitmaps/zebra49s.bmp"\r
-WP49S                   BITMAP  MOVEABLE PURE   "bitmaps/wp49s.bmp"\r
-WN49S                   BITMAP  MOVEABLE PURE   "bitmaps/wn49s.bmp"\r
-WL49S                   BITMAP  MOVEABLE PURE   "bitmaps/wl49s.bmp"\r
-WS49S                   BITMAP  MOVEABLE PURE   "bitmaps/ws49s.bmp"\r
-E49W                    BITMAP  MOVEABLE PURE   "bitmaps/e49w.bmp"\r
-A49W                    BITMAP  MOVEABLE PURE   "bitmaps/a49w.bmp"\r
-AA49W                   BITMAP  MOVEABLE PURE   "bitmaps/as49w.bmp"\r
-C49W                    BITMAP  MOVEABLE PURE   "bitmaps/c49w.bmp"\r
-CV49W                   BITMAP  MOVEABLE PURE   "bitmaps/cv49w.bmp"\r
-F49W                    BITMAP  MOVEABLE PURE   "bitmaps/f49w.bmp"\r
-M49W                    BITMAP  MOVEABLE PURE   "bitmaps/m49w.bmp"\r
-W49W                    BITMAP  MOVEABLE PURE   "bitmaps/w49w.bmp"\r
-O49W                    BITMAP  MOVEABLE PURE   "bitmaps/o49w.bmp"\r
-U49W                    BITMAP  MOVEABLE PURE   "bitmaps/u49w.bmp"\r
-H49W                    BITMAP  MOVEABLE PURE   "bitmaps/h49w.bmp"\r
-G49W                    BITMAP  MOVEABLE PURE   "bitmaps/g49w.bmp"\r
-V49W                    BITMAP  MOVEABLE PURE   "bitmaps/v49w.bmp"\r
-S49W                    BITMAP  MOVEABLE PURE   "bitmaps/s49w.bmp"\r
-L49W                    BITMAP  MOVEABLE PURE   "bitmaps/l49w.bmp"\r
-DK49W                   BITMAP  MOVEABLE PURE   "bitmaps/dk49w.bmp"\r
-LN49W                   BITMAP  MOVEABLE PURE   "bitmaps/ln49w.bmp"\r
-WOLF49W                 BITMAP  MOVEABLE PURE   "bitmaps/wolf49w.bmp"\r
-CAMEL49W                BITMAP  MOVEABLE PURE   "bitmaps/camel49w.bmp"\r
-A33O                    BITMAP  MOVEABLE PURE   "bitmaps/a33o.bmp"\r
-AA33O                   BITMAP  MOVEABLE PURE   "bitmaps/as33o.bmp"\r
-C33O                    BITMAP  MOVEABLE PURE   "bitmaps/c33o.bmp"\r
-CV33O                   BITMAP  MOVEABLE PURE   "bitmaps/cv33o.bmp"\r
-V33O                    BITMAP  MOVEABLE PURE   "bitmaps/v33o.bmp"\r
-E33O                    BITMAP  MOVEABLE PURE   "bitmaps/e33o.bmp"\r
-F33O                    BITMAP  MOVEABLE PURE   "bitmaps/f33o.bmp"\r
-H33O                    BITMAP  MOVEABLE PURE   "bitmaps/h33o.bmp"\r
-G33O                    BITMAP  MOVEABLE PURE   "bitmaps/g33o.bmp"\r
-L33O                    BITMAP  MOVEABLE PURE   "bitmaps/l33o.bmp"\r
-W33O                    BITMAP  MOVEABLE PURE   "bitmaps/w33o.bmp"\r
-M33O                    BITMAP  MOVEABLE PURE   "bitmaps/m33o.bmp"\r
-O33O                    BITMAP  MOVEABLE PURE   "bitmaps/o33o.bmp"\r
-DK33O                   BITMAP  MOVEABLE PURE   "bitmaps/dk33o.bmp"\r
-LN33O                   BITMAP  MOVEABLE PURE   "bitmaps/ln33o.bmp"\r
-WP33O                   BITMAP  MOVEABLE PURE   "bitmaps/wp33o.bmp"\r
-WN33O                   BITMAP  MOVEABLE PURE   "bitmaps/wn33o.bmp"\r
-WL33O                   BITMAP  MOVEABLE PURE   "bitmaps/wl33o.bmp"\r
-WS33O                   BITMAP  MOVEABLE PURE   "bitmaps/ws33o.bmp"\r
-A33W                    BITMAP  MOVEABLE PURE   "bitmaps/a33w.bmp"\r
-AA33W                   BITMAP  MOVEABLE PURE   "bitmaps/as33w.bmp"\r
-C33W                    BITMAP  MOVEABLE PURE   "bitmaps/c33w.bmp"\r
-CV33W                   BITMAP  MOVEABLE PURE   "bitmaps/cv33w.bmp"\r
-V33W                    BITMAP  MOVEABLE PURE   "bitmaps/v33w.bmp"\r
-E33W                    BITMAP  MOVEABLE PURE   "bitmaps/e33w.bmp"\r
-F33W                    BITMAP  MOVEABLE PURE   "bitmaps/f33w.bmp"\r
-H33W                    BITMAP  MOVEABLE PURE   "bitmaps/h33w.bmp"\r
-G33W                    BITMAP  MOVEABLE PURE   "bitmaps/g33w.bmp"\r
-L33W                    BITMAP  MOVEABLE PURE   "bitmaps/l33w.bmp"\r
-W33W                    BITMAP  MOVEABLE PURE   "bitmaps/w33w.bmp"\r
-M33W                    BITMAP  MOVEABLE PURE   "bitmaps/m33w.bmp"\r
-O33W                    BITMAP  MOVEABLE PURE   "bitmaps/o33w.bmp"\r
-DK33W                   BITMAP  MOVEABLE PURE   "bitmaps/dk33w.bmp"\r
-LN33W                   BITMAP  MOVEABLE PURE   "bitmaps/ln33w.bmp"\r
-A33S                    BITMAP  MOVEABLE PURE   "bitmaps/a33s.bmp"\r
-AA33S                   BITMAP  MOVEABLE PURE   "bitmaps/as33s.bmp"\r
-C33S                    BITMAP  MOVEABLE PURE   "bitmaps/c33s.bmp"\r
-CV33S                   BITMAP  MOVEABLE PURE   "bitmaps/cv33s.bmp"\r
-V33S                    BITMAP  MOVEABLE PURE   "bitmaps/v33s.bmp"\r
-E33S                    BITMAP  MOVEABLE PURE   "bitmaps/e33s.bmp"\r
-F33S                    BITMAP  MOVEABLE PURE   "bitmaps/f33s.bmp"\r
-H33S                    BITMAP  MOVEABLE PURE   "bitmaps/h33s.bmp"\r
-G33S                    BITMAP  MOVEABLE PURE   "bitmaps/g33s.bmp"\r
-L33S                    BITMAP  MOVEABLE PURE   "bitmaps/l33s.bmp"\r
-W33S                    BITMAP  MOVEABLE PURE   "bitmaps/w33s.bmp"\r
-M33S                    BITMAP  MOVEABLE PURE   "bitmaps/m33s.bmp"\r
-O33S                    BITMAP  MOVEABLE PURE   "bitmaps/o33s.bmp"\r
-DK33S                   BITMAP  MOVEABLE PURE   "bitmaps/dk33s.bmp"\r
-LN33S                   BITMAP  MOVEABLE PURE   "bitmaps/ln33s.bmp"\r
-WP33S                   BITMAP  MOVEABLE PURE   "bitmaps/wp33s.bmp"\r
-WN33S                   BITMAP  MOVEABLE PURE   "bitmaps/wn33s.bmp"\r
-WL33S                   BITMAP  MOVEABLE PURE   "bitmaps/wl33s.bmp"\r
-WS33S                   BITMAP  MOVEABLE PURE   "bitmaps/ws33s.bmp"\r
-\r
-A37O                    BITMAP  MOVEABLE PURE   "bitmaps/a37o.bmp"\r
-L37O                    BITMAP  MOVEABLE PURE   "bitmaps/l37o.bmp"\r
-C37O                    BITMAP  MOVEABLE PURE   "bitmaps/c37o.bmp"\r
-CV37O                   BITMAP  MOVEABLE PURE   "bitmaps/cv37o.bmp"\r
-A40O                    BITMAP  MOVEABLE PURE   "bitmaps/a40o.bmp"\r
-L40O                    BITMAP  MOVEABLE PURE   "bitmaps/l40o.bmp"\r
-C40O                    BITMAP  MOVEABLE PURE   "bitmaps/c40o.bmp"\r
-CV40O                   BITMAP  MOVEABLE PURE   "bitmaps/cv40o.bmp"\r
-A45O                    BITMAP  MOVEABLE PURE   "bitmaps/a45o.bmp"\r
-L45O                    BITMAP  MOVEABLE PURE   "bitmaps/l45o.bmp"\r
-C45O                    BITMAP  MOVEABLE PURE   "bitmaps/c45o.bmp"\r
-CV45O                   BITMAP  MOVEABLE PURE   "bitmaps/cv45o.bmp"\r
-A54O                    BITMAP  MOVEABLE PURE   "bitmaps/a54o.bmp"\r
-L54O                    BITMAP  MOVEABLE PURE   "bitmaps/l54o.bmp"\r
-C54O                    BITMAP  MOVEABLE PURE   "bitmaps/c54o.bmp"\r
-CV54O                   BITMAP  MOVEABLE PURE   "bitmaps/cv54o.bmp"\r
-A58O                    BITMAP  MOVEABLE PURE   "bitmaps/a58o.bmp"\r
-L58O                    BITMAP  MOVEABLE PURE   "bitmaps/l58o.bmp"\r
-C58O                    BITMAP  MOVEABLE PURE   "bitmaps/c58o.bmp"\r
-CV58O                   BITMAP  MOVEABLE PURE   "bitmaps/cv58o.bmp"\r
-A64O                    BITMAP  MOVEABLE PURE   "bitmaps/a64o.bmp"\r
-L64O                    BITMAP  MOVEABLE PURE   "bitmaps/l64o.bmp"\r
-C64O                    BITMAP  MOVEABLE PURE   "bitmaps/c64o.bmp"\r
-CV64O                   BITMAP  MOVEABLE PURE   "bitmaps/cv64o.bmp"\r
-A37W                    BITMAP  MOVEABLE PURE   "bitmaps/a37w.bmp"\r
-L37W                    BITMAP  MOVEABLE PURE   "bitmaps/l37w.bmp"\r
-C37W                    BITMAP  MOVEABLE PURE   "bitmaps/c37w.bmp"\r
-CV37W                   BITMAP  MOVEABLE PURE   "bitmaps/cv37w.bmp"\r
-A40W                    BITMAP  MOVEABLE PURE   "bitmaps/a40w.bmp"\r
-L40W                    BITMAP  MOVEABLE PURE   "bitmaps/l40w.bmp"\r
-C40W                    BITMAP  MOVEABLE PURE   "bitmaps/c40w.bmp"\r
-CV40W                   BITMAP  MOVEABLE PURE   "bitmaps/cv40w.bmp"\r
-A45W                    BITMAP  MOVEABLE PURE   "bitmaps/a45w.bmp"\r
-L45W                    BITMAP  MOVEABLE PURE   "bitmaps/l45w.bmp"\r
-C45W                    BITMAP  MOVEABLE PURE   "bitmaps/c45w.bmp"\r
-CV45W                   BITMAP  MOVEABLE PURE   "bitmaps/cv45w.bmp"\r
-A54W                    BITMAP  MOVEABLE PURE   "bitmaps/a54w.bmp"\r
-L54W                    BITMAP  MOVEABLE PURE   "bitmaps/l54w.bmp"\r
-C54W                    BITMAP  MOVEABLE PURE   "bitmaps/c54w.bmp"\r
-CV54W                   BITMAP  MOVEABLE PURE   "bitmaps/cv54w.bmp"\r
-A58W                    BITMAP  MOVEABLE PURE   "bitmaps/a58w.bmp"\r
-L58W                    BITMAP  MOVEABLE PURE   "bitmaps/l58w.bmp"\r
-C58W                    BITMAP  MOVEABLE PURE   "bitmaps/c58w.bmp"\r
-CV58W                   BITMAP  MOVEABLE PURE   "bitmaps/cv58w.bmp"\r
-A64W                    BITMAP  MOVEABLE PURE   "bitmaps/a64w.bmp"\r
-L64W                    BITMAP  MOVEABLE PURE   "bitmaps/l64w.bmp"\r
-C64W                    BITMAP  MOVEABLE PURE   "bitmaps/c64w.bmp"\r
-CV64W                   BITMAP  MOVEABLE PURE   "bitmaps/cv64w.bmp"\r
-A37S                    BITMAP  MOVEABLE PURE   "bitmaps/a37s.bmp"\r
-L37S                    BITMAP  MOVEABLE PURE   "bitmaps/l37s.bmp"\r
-C37S                    BITMAP  MOVEABLE PURE   "bitmaps/c37s.bmp"\r
-CV37S                   BITMAP  MOVEABLE PURE   "bitmaps/cv37s.bmp"\r
-A40S                    BITMAP  MOVEABLE PURE   "bitmaps/a40s.bmp"\r
-L40S                    BITMAP  MOVEABLE PURE   "bitmaps/l40s.bmp"\r
-C40S                    BITMAP  MOVEABLE PURE   "bitmaps/c40s.bmp"\r
-CV40S                   BITMAP  MOVEABLE PURE   "bitmaps/cv40s.bmp"\r
-A45S                    BITMAP  MOVEABLE PURE   "bitmaps/a45s.bmp"\r
-L45S                    BITMAP  MOVEABLE PURE   "bitmaps/l45s.bmp"\r
-C45S                    BITMAP  MOVEABLE PURE   "bitmaps/c45s.bmp"\r
-CV45S                   BITMAP  MOVEABLE PURE   "bitmaps/cv45s.bmp"\r
-A54S                    BITMAP  MOVEABLE PURE   "bitmaps/a54s.bmp"\r
-L54S                    BITMAP  MOVEABLE PURE   "bitmaps/l54s.bmp"\r
-C54S                    BITMAP  MOVEABLE PURE   "bitmaps/c54s.bmp"\r
-CV54S                   BITMAP  MOVEABLE PURE   "bitmaps/cv54s.bmp"\r
-A58S                    BITMAP  MOVEABLE PURE   "bitmaps/a58s.bmp"\r
-L58S                    BITMAP  MOVEABLE PURE   "bitmaps/l58s.bmp"\r
-C58S                    BITMAP  MOVEABLE PURE   "bitmaps/c58s.bmp"\r
-CV58S                   BITMAP  MOVEABLE PURE   "bitmaps/cv58s.bmp"\r
-A64S                    BITMAP  MOVEABLE PURE   "bitmaps/a64s.bmp"\r
-L64S                    BITMAP  MOVEABLE PURE   "bitmaps/l64s.bmp"\r
-C64S                    BITMAP  MOVEABLE PURE   "bitmaps/c64s.bmp"\r
-CV64S                   BITMAP  MOVEABLE PURE   "bitmaps/cv64s.bmp"\r
-\r
-SP58O                   BITMAP  MOVEABLE PURE   "shogibitmaps/sp58o.bmp"\r
-SN58O                   BITMAP  MOVEABLE PURE   "shogibitmaps/sn58o.bmp"\r
-SB58O                   BITMAP  MOVEABLE PURE   "shogibitmaps/sb58o.bmp"\r
-SR58O                   BITMAP  MOVEABLE PURE   "shogibitmaps/sr58o.bmp"\r
-SL58O                   BITMAP  MOVEABLE PURE   "shogibitmaps/sl58o.bmp"\r
-SK58O                   BITMAP  MOVEABLE PURE   "shogibitmaps/sk58o.bmp"\r
-SF58O                   BITMAP  MOVEABLE PURE   "shogibitmaps/sf58o.bmp"\r
-SW58O                   BITMAP  MOVEABLE PURE   "shogibitmaps/sw58o.bmp"\r
-SU58O                   BITMAP  MOVEABLE PURE   "shogibitmaps/su58o.bmp"\r
-SH58O                   BITMAP  MOVEABLE PURE   "shogibitmaps/sh58o.bmp"\r
-SA58O                   BITMAP  MOVEABLE PURE   "shogibitmaps/sa58o.bmp"\r
-SC58O                   BITMAP  MOVEABLE PURE   "shogibitmaps/sc58o.bmp"\r
-SG58O                   BITMAP  MOVEABLE PURE   "shogibitmaps/sg58o.bmp"\r
-SS58O                   BITMAP  MOVEABLE PURE   "shogibitmaps/ss58o.bmp"\r
-SP58W                   BITMAP  MOVEABLE PURE   "shogibitmaps/sp58w.bmp"\r
-SN58W                   BITMAP  MOVEABLE PURE   "shogibitmaps/sn58w.bmp"\r
-SR58W                   BITMAP  MOVEABLE PURE   "shogibitmaps/sr58w.bmp"\r
-SL58W                   BITMAP  MOVEABLE PURE   "shogibitmaps/sl58w.bmp"\r
-SK58W                   BITMAP  MOVEABLE PURE   "shogibitmaps/sk58w.bmp"\r
-SW58W                   BITMAP  MOVEABLE PURE   "shogibitmaps/sw58w.bmp"\r
-\r
-#ifdef APSTUDIO_INVOKED\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// TEXTINCLUDE\r
-//\r
-\r
-1 TEXTINCLUDE DISCARDABLE \r
-BEGIN\r
-    "resource.h\0"\r
-END\r
-\r
-2 TEXTINCLUDE DISCARDABLE \r
-BEGIN\r
-    "#define APSTUDIO_HIDDEN_SYMBOLS\r\n"\r
-    "#include ""windows.h""\r\n"\r
-    "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"\r
-    "#include ""dlgs.h""\r\n"\r
-    "\r\n"\r
-    "\0"\r
-END\r
-\r
-3 TEXTINCLUDE DISCARDABLE \r
-BEGIN\r
-    "\r\n"\r
-    "\0"\r
-END\r
-\r
-#endif    // APSTUDIO_INVOKED\r
-\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// WAVE\r
-//\r
-\r
-DING                    WAVE    DISCARDABLE     "sounds/ding1.wav"\r
-CHING                   WAVE    DISCARDABLE     "sounds/ching.wav"\r
-CLICK                   WAVE    DISCARDABLE     "sounds/click.wav"\r
-CYMBAL                  WAVE    DISCARDABLE     "sounds/cymbal.wav"\r
-DRIP                    WAVE    DISCARDABLE     "sounds/drip.wav"\r
-GONG                    WAVE    DISCARDABLE     "sounds/gong.wav"\r
-BEEPBEEP                WAVE    DISCARDABLE     "sounds/honkhonk.wav"\r
-LASER                   WAVE    DISCARDABLE     "sounds/laser.wav"\r
-PENALTY                 WAVE    DISCARDABLE     "sounds/penalty.wav"\r
-PHONE                   WAVE    DISCARDABLE     "sounds/phone.wav"\r
-POP                     WAVE    DISCARDABLE     "sounds/pop.wav"\r
-POP2                    WAVE    DISCARDABLE     "sounds/pop2.wav"\r
-SLAP                    WAVE    DISCARDABLE     "sounds/slap.wav"\r
-SQUEAK                  WAVE    DISCARDABLE     "sounds/squeak.wav"\r
-SWISH                   WAVE    DISCARDABLE     "sounds/swish.wav"\r
-THUD                    WAVE    DISCARDABLE     "sounds/thud.wav"\r
-WHIPCRACK               WAVE    DISCARDABLE     "sounds/whipcrak.wav"\r
-MOVE                    WAVE    DISCARDABLE     "sounds/move.wav"\r
-ALARM                   WAVE    DISCARDABLE     "sounds/alarm.wav"\r
-CHALLENGE               WAVE    DISCARDABLE     "sounds/challenge.wav"\r
-CHANNEL                 WAVE    DISCARDABLE     "sounds/channel.wav"\r
-CHANNEL1                WAVE    DISCARDABLE     "sounds/channel1.wav"\r
-DRAW                    WAVE    DISCARDABLE     "sounds/draw.wav"\r
-KIBITZ                  WAVE    DISCARDABLE     "sounds/kibitz.wav"\r
-LOSE                    WAVE    DISCARDABLE     "sounds/lose.wav"\r
-REQUEST                 WAVE    DISCARDABLE     "sounds/request.wav"\r
-SEEK                    WAVE    DISCARDABLE     "sounds/seek.wav"\r
-SHOUT                   WAVE    DISCARDABLE     "sounds/shout.wav"\r
-SSHOUT                  WAVE    DISCARDABLE     "sounds/sshout.wav"\r
-TELL                    WAVE    DISCARDABLE     "sounds/tell.wav"\r
-UNFINISHED              WAVE    DISCARDABLE     "sounds/unfinished.wav"\r
-WIN                     WAVE    DISCARDABLE     "sounds/win.wav"\r
-ROAR                    WAVE    DISCARDABLE     "sounds/roar.wav"\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Version\r
-//\r
-1 VERSIONINFO\r
-FILEVERSION PACKAGE_FILEVERSION\r
-PRODUCTVERSION PACKAGE_FILEVERSION\r
-FILETYPE VFT_APP\r
-{\r
-  BLOCK "StringFileInfo"\r
-        {\r
-                BLOCK "040904b0"\r
-                {\r
-#ifdef JAWS\r
-                        VALUE "Comments", "Includes support for JAWS screen reader"\r
-#endif\r
-                        VALUE "CompanyName", "GNU Project"\r
-                        VALUE "FileVersion", PACKAGE_VERSION\r
-                        VALUE "FileDescription", "Winboard 32-bit GUI for chess"\r
-                        VALUE "InternalName", "Winboard"\r
-                        VALUE "LegalCopyright", "GPLv3 Copyright © 2009"\r
-                        VALUE "OriginalFilename", "winboard.exe"\r
-                        VALUE "ProductName", "Winboard"\r
-                        VALUE "ProductVersion", PACKAGE_VERSION\r
-#ifdef JAWS\r
-                        VALUE "SpecialBuild", "JAWS (Job Access With Speech) accessiblity build\0"\r
-#endif\r
-                }\r
-        }\r
-  BLOCK "VarFileInfo"\r
-        {\r
-                VALUE "Translation", 0x0409, 1252\r
-        }\r
-}\r
-#endif    // English (U.S.) resources\r
-/////////////////////////////////////////////////////////////////////////////\r
-\r
-\r
-\r
-#ifndef APSTUDIO_INVOKED\r
-/////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Generated from the TEXTINCLUDE 3 resource.\r
-//\r
-\r
-\r
-/////////////////////////////////////////////////////////////////////////////\r
-#endif    // not APSTUDIO_INVOKED\r
-\r
diff --git a/winboard/winboard.rtf b/winboard/winboard.rtf
deleted file mode 100644 (file)
index 1549280..0000000
+++ /dev/null
@@ -1,2583 +0,0 @@
-{\rtf1\ansi\ansicpg1252\uc1 \deff5\deflang1033\deflangfe1043{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;}\r
-{\f2\fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}{\f3\froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}{\f4\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times;}\r
-{\f5\fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Helvetica{\*\falt Arial};}{\f6\fmodern\fcharset0\fprq1{\*\panose 00000000000000000000}Courier{\*\falt Courier New};}{\f7\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Geneva;}\r
-{\f8\froman\fcharset0\fprq2{\*\panose 00000000000000000000}Tms Rmn;}{\f9\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Helv;}{\f10\froman\fcharset0\fprq2{\*\panose 00000000000000000000}MS Serif;}\r
-{\f11\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}MS Sans Serif;}{\f12\froman\fcharset0\fprq2{\*\panose 00000000000000000000}New York{\*\falt Times New Roman};}{\f13\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}System;}\r
-{\f14\fnil\fcharset2\fprq2{\*\panose 05000000000000000000}Wingdings;}{\f15\fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Tahoma;}{\f16\fnil\fcharset134\fprq2{\*\panose 02010600030101010101}SimSun;}\r
-{\f17\froman\fcharset0\fprq0{\*\panose 00000000000000000000}??;}{\f18\fswiss\fcharset0\fprq0{\*\panose 00000000000000000000}BookAntiqua-Bold;}{\f19\fswiss\fcharset0\fprq0{\*\panose 00000000000000000000}BookAntiqua;}\r
-{\f20\froman\fcharset0\fprq0{\*\panose 00000000000000000000}Minion-Regular;}{\f21\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Calibri;}{\f22\froman\fcharset0\fprq0{\*\panose 00000000000000000000}TimesNewRoman;}\r
-{\f23\froman\fcharset0\fprq0{\*\panose 00000000000000000000}TimesNewRoman,Italic;}{\f24\froman\fcharset0\fprq2{\*\panose 00000000000000000000}Cambria Math;}{\f25\fnil\fcharset129\fprq1{\*\panose 00000000000000000000}Terminal;}\r
-{\f26\fmodern\fcharset0\fprq1{\*\panose 00000000000000000000}Fixedsys;}{\f27\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Small Fonts;}{\f28\fdecor\fcharset2\fprq1{\*\panose 00000000000000000000}WST_Czec;}\r
-{\f29\fdecor\fcharset2\fprq1{\*\panose 00000000000000000000}WST_Engl;}{\f30\fdecor\fcharset2\fprq1{\*\panose 00000000000000000000}WST_Fren;}{\f31\fdecor\fcharset2\fprq1{\*\panose 00000000000000000000}WST_Germ;}\r
-{\f32\fdecor\fcharset2\fprq1{\*\panose 00000000000000000000}WST_Ital;}{\f33\fdecor\fcharset2\fprq1{\*\panose 00000000000000000000}WST_Span;}{\f34\fdecor\fcharset2\fprq1{\*\panose 00000000000000000000}WST_Swed;}\r
-{\f35\fnil\fcharset2\fprq2{\*\panose 00000000000000000000}Marlett;}{\f36\fmodern\fcharset0\fprq1{\*\panose 020b0609040504020204}Lucida Console;}{\f37\fswiss\fcharset0\fprq2{\*\panose 020b0602030504020204}Lucida Sans Unicode;}\r
-{\f38\fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Verdana;}{\f39\fswiss\fcharset0\fprq2{\*\panose 020b0a04020102020204}Arial Black;}{\f40\fscript\fcharset0\fprq2{\*\panose 030f0702030302020204}Comic Sans MS;}\r
-{\f41\fswiss\fcharset0\fprq2{\*\panose 020b0806030902050204}Impact;}{\f42\froman\fcharset0\fprq2{\*\panose 02040502050405020303}Georgia;}{\f43\fswiss\fcharset0\fprq2{\*\panose 020b0603020102020204}Franklin Gothic Medium;}\r
-{\f44\froman\fcharset0\fprq2{\*\panose 02040502050505030304}Palatino Linotype;}{\f45\fswiss\fcharset0\fprq2{\*\panose 020b0603020202020204}Trebuchet MS;}{\f46\froman\fcharset2\fprq2{\*\panose 05030102010509060703}Webdings;}\r
-{\f47\fscript\fcharset0\fprq2 Estrangelo Edessa;}{\f48\fnil\fcharset0\fprq2 Gautami;}{\f49\fnil\fcharset0\fprq2 Latha;}{\f50\fnil\fcharset0\fprq2 Mangal;}{\f51\fnil\fcharset0\fprq2 MV Boli;}{\f52\fnil\fcharset0\fprq2 Raavi;}\r
-{\f53\fnil\fcharset0\fprq2 Shruti;}{\f54\fnil\fcharset0\fprq2 Tunga;}{\f55\froman\fcharset0\fprq2{\*\panose 010a0502050306030303}Sylfaen;}{\f56\fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Microsoft Sans Serif;}\r
-{\f57\fswiss\fcharset0\fprq2{\*\panose 020b0506020202030204}Arial Narrow;}{\f58\froman\fcharset0\fprq2{\*\panose 02060603020205020403}Rockwell;}{\f59\froman\fcharset0\fprq2{\*\panose 02060903040505020403}Rockwell Extra Bold;}\r
-{\f60\fscript\fcharset0\fprq2{\*\panose 03090702030407020403}Mistral;}{\f61\fdecor\fcharset0\fprq2{\*\panose 04020505051007020d02}Blackadder ITC;}{\f62\fscript\fcharset0\fprq2{\*\panose 03070402050302030203}Bradley Hand ITC;}\r
-{\f63\fswiss\fcharset0\fprq2{\*\panose 020e0705020206020404}Copperplate Gothic Bold;}{\f64\fswiss\fcharset0\fprq2{\*\panose 020e0507020206020404}Copperplate Gothic Light;}{\f65\fdecor\fcharset0\fprq2{\*\panose 04040404050702020202}Curlz MT;}\r
-{\f66\fscript\fcharset0\fprq2{\*\panose 030303020407070d0804}Edwardian Script ITC;}{\f67\froman\fcharset0\fprq2{\*\panose 02090707080505020304}Engravers MT;}{\f68\fswiss\fcharset0\fprq2{\*\panose 020b0805030504020804}Eras Demi ITC;}\r
-{\f69\fswiss\fcharset0\fprq2{\*\panose 020b0402030504020804}Eras Light ITC;}{\f70\fswiss\fcharset0\fprq2{\*\panose 020b0504020202050204}Eurostile;}{\f71\fdecor\fcharset0\fprq2{\*\panose 04060505060202020a04}Felix Titling;}\r
-{\f72\fswiss\fcharset0\fprq2{\*\panose 020b0503020102020204}Franklin Gothic Book;}{\f73\fswiss\fcharset0\fprq2{\*\panose 020b0703020102020204}Franklin Gothic Demi;}{\f74\fswiss\fcharset0\fprq2{\*\panose 020b0606030402020204}Franklin Gothic Medium Cond;}\r
-{\f75\fswiss\fcharset0\fprq2{\*\panose 020b0903020102020204}Franklin Gothic Heavy;}{\f76\fswiss\fcharset0\fprq2{\*\panose 020b0706030402020204}Franklin Gothic Demi Cond;}{\f77\fscript\fcharset0\fprq2{\*\panose 03020402040607040605}French Script MT;}\r
-{\f78\fswiss\fcharset0\fprq2{\*\panose 020b0502020202020204}Century Gothic;}{\f79\fscript\fcharset0\fprq2{\*\panose 03050502040202030202}Kristen ITC;}{\f80\fswiss\fcharset0\fprq2{\*\panose 020b0602030504020204}Lucida Sans;}\r
-{\f81\fswiss\fcharset0\fprq2{\*\panose 020e0502030308020204}Maiandra GD;}{\f82\fdecor\fcharset0\fprq2{\*\panose 04040403030d02020704}Matisse ITC;}{\f83\fscript\fcharset0\fprq2{\*\panose 03070502060502030205}Papyrus;}\r
-{\f84\froman\fcharset0\fprq2{\*\panose 02020502060401020303}Perpetua;}{\f85\fdecor\fcharset0\fprq2{\*\panose 04020404030d07020202}Tempus Sans ITC;}{\f86\fscript\fcharset0\fprq2{\*\panose 03020602050506090804}Vivaldi;}\r
-{\f87\froman\fcharset2\fprq2{\*\panose 05020102010507070707}Wingdings 2;}{\f88\froman\fcharset2\fprq2{\*\panose 05040102010807070707}Wingdings 3;}{\f89\fdecor\fcharset0\fprq2{\*\panose 04090605060d06020702}Jokerman;}\r
-{\f90\fdecor\fcharset0\fprq2{\*\panose 04040403040a02020202}Juice ITC;}{\f91\fmodern\fcharset0\fprq2{\*\panose 02010509020102010303}OCR A Extended;}{\f92\fnil\fcharset2\fprq2{\*\panose 05000000000000000000}MS Reference 1;}\r
-{\f93\fnil\fcharset2\fprq2{\*\panose 00000000000000000000}MS Reference 2;}{\f94\fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}MS Reference Sans Serif;}{\f95\fnil\fcharset2\fprq2{\*\panose 05000500000000000000}MS Reference Specialty;}\r
-{\f96\froman\fcharset2\fprq2{\*\panose 05050102010205020202}MT Extra;}{\f97\fswiss\fcharset0\fprq2{\*\panose 020b0706040902060204}Haettenschweiler;}{\f98\froman\fcharset0\fprq2{\*\panose 02050604050505020204}Bookman Old Style;}\r
-{\f99\fnil\fcharset2\fprq2{\*\panose 01010601010101010101}Monotype Sorts;}{\f100\froman\fcharset0\fprq2{\*\panose 02020404030301010803}Garamond;}{\f101\fnil\fcharset2\fprq2{\*\panose 05000000000000000000}MS Outlook;}\r
-{\f102\froman\fcharset0\fprq2{\*\panose 02020503030404060203}Kartika;}{\f103\fnil\fcharset0\fprq2{\*\panose 01010600010101010101}Vrinda;}{\f104\fswiss\fcharset2\fprq2{\*\panose 020b0603050302020204}WinboardF;}\r
-{\f105\fswiss\fcharset2\fprq2{\*\panose 020b0603050302020204}Chess Mark;}{\f106\fnil\fcharset0\fprq2{\*\panose 02000500000000000000}Superchess;}{\f107\fswiss\fcharset0\fprq2{\*\panose 020b0603050302020204}Tasc Chess Figurine;}\r
-{\f108\fnil\fcharset0\fprq1{\*\panose 02010603010101010101}XIANGQI;}{\f109\fmodern\fcharset128\fprq1{\*\panose 02020609040205080304}MS Mincho;}{\f110\fmodern\fcharset128\fprq1{\*\panose 02020609040205080304}@MS Mincho;}\r
-{\f111\froman\fcharset128\fprq2{\*\panose 02020600040205080304}MS PMincho;}{\f112\froman\fcharset128\fprq2{\*\panose 02020600040205080304}@MS PMincho;}{\f113\fmodern\fcharset128\fprq1{\*\panose 020b0609070205080204}MS Gothic;}\r
-{\f114\fmodern\fcharset128\fprq1{\*\panose 020b0609070205080204}@MS Gothic;}{\f115\fswiss\fcharset128\fprq2{\*\panose 020b0600070205080204}MS PGothic;}{\f116\fswiss\fcharset128\fprq2{\*\panose 020b0600070205080204}@MS PGothic;}\r
-{\f117\fswiss\fcharset128\fprq2{\*\panose 020b0600070205080204}MS UI Gothic;}{\f118\fswiss\fcharset128\fprq2{\*\panose 020b0600070205080204}@MS UI Gothic;}{\f119\fswiss\fcharset129\fprq2{\*\panose 020b0600000101010101}Gulim;}\r
-{\f120\fswiss\fcharset129\fprq2{\*\panose 020b0600000101010101}@Gulim;}{\f121\fmodern\fcharset129\fprq1{\*\panose 020b0609000101010101}GulimChe;}{\f122\fmodern\fcharset129\fprq1{\*\panose 020b0609000101010101}@GulimChe;}\r
-{\f123\fswiss\fcharset129\fprq2{\*\panose 020b0600000101010101}Dotum;}{\f124\fswiss\fcharset129\fprq2{\*\panose 020b0600000101010101}@Dotum;}{\f125\fmodern\fcharset129\fprq1{\*\panose 020b0609000101010101}DotumChe;}\r
-{\f126\fmodern\fcharset129\fprq1{\*\panose 020b0609000101010101}@DotumChe;}{\f127\froman\fcharset129\fprq2{\*\panose 02030600000101010101}Batang;}{\f128\froman\fcharset129\fprq2{\*\panose 02030600000101010101}@Batang;}\r
-{\f129\fmodern\fcharset129\fprq1{\*\panose 02030609000101010101}BatangChe;}{\f130\fmodern\fcharset129\fprq1{\*\panose 02030609000101010101}@BatangChe;}{\f131\froman\fcharset129\fprq2{\*\panose 02030600000101010101}Gungsuh;}\r
-{\f132\froman\fcharset129\fprq2{\*\panose 02030600000101010101}@Gungsuh;}{\f133\fmodern\fcharset129\fprq1{\*\panose 02030609000101010101}GungsuhChe;}{\f134\fmodern\fcharset129\fprq1{\*\panose 02030609000101010101}@GungsuhChe;}\r
-{\f135\fnil\fcharset134\fprq2{\*\panose 02010600030101010101}@SimSun;}{\f136\fmodern\fcharset134\fprq1{\*\panose 02010609030101010101}NSimSun;}{\f137\fmodern\fcharset134\fprq1{\*\panose 02010609030101010101}@NSimSun;}\r
-{\f138\fnil\fcharset134\fprq2{\*\panose 02010600030101010101}SimHei;}{\f139\fnil\fcharset134\fprq2{\*\panose 02010600030101010101}@SimHei;}{\f140\fmodern\fcharset136\fprq1{\*\panose 02020309000000000000}MingLiU;}\r
-{\f141\fmodern\fcharset136\fprq1{\*\panose 02020309000000000000}@MingLiU;}{\f142\froman\fcharset136\fprq2{\*\panose 02020300000000000000}PMingLiU;}{\f143\froman\fcharset136\fprq2{\*\panose 02020300000000000000}@PMingLiU;}\r
-{\f144\froman\fcharset128\fprq1{\*\panose 00000000000000000000}Mincho{\*\falt ??};}{\f145\froman\fcharset0\fprq2{\*\panose 00000000000000000000}Century;}{\f146\froman\fcharset0\fprq2{\*\panose 00000000000000000000}Angsana New;}\r
-{\f147\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Cordia New;}{\f148\froman\fcharset0\fprq2{\*\panose 00000000000000000000}Sendnya;}{\f149\froman\fcharset0\fprq2{\*\panose 00000000000000000000}Estrangella Edessa;}\r
-{\f150\fswiss\fcharset128\fprq2{\*\panose 00000000000000000000}Arial Unicode MS;}{\f151\fswiss\fcharset0\fprq0{\*\panose 00000000000000000000}Univers (WN);}{\f152\froman\fcharset0\fprq0{\*\panose 00000000000000000000}CG Times (WN);}\r
-{\f153\fswiss\fcharset128\fprq2{\*\panose 00000000000000000000}@Arial Unicode MS;}{\f154\froman\fcharset0\fprq2{\*\panose 00000000000000000000}Book Antiqua;}{\f155\fscript\fcharset0\fprq2{\*\panose 00000000000000000000}Monotype Corsiva;}\r
-{\f156\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}CA Chess;}{\f157\fswiss\fcharset2\fprq2{\*\panose 00000000000000000000}ISDiagram;}{\f158\fswiss\fcharset2\fprq2{\*\panose 00000000000000000000}CADiagram;}\r
-{\f159\fswiss\fcharset2\fprq2{\*\panose 00000000000000000000}Chess Alfonso-X;}{\f160\fnil\fcharset0\fprq2{\*\panose 00000000000000000000}Chess Adventurer;}{\f161\fnil\fcharset0\fprq2{\*\panose 00000000000000000000}Chess Cases;}\r
-{\f162\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Chess Marroquin;}{\f163\fswiss\fcharset2\fprq2{\*\panose 00000000000000000000}Chess Condal;}{\f164\fswiss\fcharset2\fprq2{\*\panose 00000000000000000000}Chess Harlequin;}\r
-{\f165\fswiss\fcharset2\fprq2{\*\panose 00000000000000000000}Chess Kingdom;}{\f166\fswiss\fcharset2\fprq2{\*\panose 00000000000000000000}Chess Leipzig;}{\f167\fswiss\fcharset2\fprq2{\*\panose 00000000000000000000}Chess Line;}\r
-{\f168\fnil\fcharset0\fprq2{\*\panose 00000000000000000000}Chess Lucena;}{\f169\fswiss\fcharset2\fprq2{\*\panose 00000000000000000000}Chess Magnetic;}{\f170\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Chess Maya;}\r
-{\f171\fswiss\fcharset2\fprq2{\*\panose 00000000000000000000}Chess Merida Fatx;}{\f172\fswiss\fcharset2\fprq2{\*\panose 00000000000000000000}Chess Merida;}{\f173\fswiss\fcharset2\fprq2{\*\panose 00000000000000000000}Chess Millennia-D;}\r
-{\f174\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Chess Miscel;}{\f175\fswiss\fcharset2\fprq2{\*\panose 00000000000000000000}Chess Motif;}{\f176\fswiss\fcharset2\fprq2{\*\panose 00000000000000000000}Chess Mediaeval;}\r
-{\f177\fnil\fcharset0\fprq2{\*\panose 00000000000000000000}Smart;}{\f178\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Traveller Standard;}{\f179\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Chess;}\r
-{\f180\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Chess Usual;}{\f181\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Chess Utrecht;}{\f182\fnil\fcharset2\fprq2{\*\panose 00000000000000000000}Mathematica1;}\r
-{\f183\froman\fcharset2\fprq2{\*\panose 00000000000000000000}Mathematica1Mono;}{\f184\fnil\fcharset2\fprq2{\*\panose 00000000000000000000}Mathematica2;}{\f185\fnil\fcharset2\fprq2{\*\panose 00000000000000000000}Mathematica2Mono;}\r
-{\f186\fnil\fcharset2\fprq2{\*\panose 00000000000000000000}Mathematica3;}{\f187\fnil\fcharset2\fprq2{\*\panose 00000000000000000000}Mathematica3Mono;}{\f188\fnil\fcharset2\fprq2{\*\panose 00000000000000000000}Mathematica4;}\r
-{\f189\fnil\fcharset2\fprq2{\*\panose 00000000000000000000}Mathematica4Mono;}{\f190\fnil\fcharset2\fprq2{\*\panose 00000000000000000000}Mathematica5;}{\f191\fnil\fcharset2\fprq2{\*\panose 00000000000000000000}Mathematica5Mono;}\r
-{\f192\fnil\fcharset2\fprq2{\*\panose 00000000000000000000}Mathematica6;}{\f193\fnil\fcharset2\fprq2{\*\panose 00000000000000000000}Mathematica6Mono;}{\f194\fnil\fcharset2\fprq2{\*\panose 00000000000000000000}Mathematica7;}\r
-{\f195\fnil\fcharset2\fprq2{\*\panose 00000000000000000000}Mathematica7Mono;}{\f196\fnil\fcharset0\fprq2{\*\panose 00000000000000000000}Bookup;}{\f197\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Chessmaster9000;}\r
-{\f198\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}FigurineCB AriesSP;}{\f199\fnil\fcharset0\fprq1{\*\panose 00000000000000000000}FigurineCB LetterSP;}{\f200\froman\fcharset0\fprq2{\*\panose 00000000000000000000}FigurineCB TimeSP;}\r
-{\f201\fnil\fcharset0\fprq2{\*\panose 00000000000000000000}DiagramTTFritz;}{\f202\fmodern\fcharset2\fprq1{\*\panose 00000000000000000000}FigurineCrrCB;}{\f203\froman\fcharset2\fprq2{\*\panose 00000000000000000000}FigurineTmsCB;}\r
-{\f204\fmodern\fcharset0\fprq1{\*\panose 00000000000000000000}HE_TERMINAL;}{\f205\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Digiface;}{\f206\fnil\fcharset0\fprq2{\*\panose 00000000000000000000}Sydnie;}\r
-{\f207\froman\fcharset177\fprq2{\*\panose 00000000000000000000}Times New Roman (Hebrew);}{\f208\froman\fcharset178\fprq2{\*\panose 00000000000000000000}Times New Roman (Arabic);}\r
-{\f209\froman\fcharset163\fprq2{\*\panose 00000000000000000000}Times New Roman (Vietnamese);}{\f210\fswiss\fcharset177\fprq2{\*\panose 00000000000000000000}Arial (Hebrew);}{\f211\fswiss\fcharset178\fprq2{\*\panose 00000000000000000000}Arial (Arabic);}\r
-{\f212\fswiss\fcharset163\fprq2{\*\panose 00000000000000000000}Arial (Vietnamese);}{\f213\fmodern\fcharset177\fprq1{\*\panose 00000000000000000000}Courier New (Hebrew);}{\f214\fmodern\fcharset178\fprq1{\*\panose 00000000000000000000}Courier New (Arabic);}\r
-{\f215\fmodern\fcharset163\fprq1{\*\panose 00000000000000000000}Courier New (Vietnamese);}{\f216\fswiss\fcharset177\fprq2{\*\panose 00000000000000000000}Helvetica (Hebrew){\*\falt Arial};}\r
-{\f217\fswiss\fcharset178\fprq2{\*\panose 00000000000000000000}Helvetica (Arabic){\*\falt Arial};}{\f218\fswiss\fcharset163\fprq2{\*\panose 00000000000000000000}Helvetica (Vietnamese){\*\falt Arial};}\r
-{\f219\fswiss\fcharset177\fprq2{\*\panose 00000000000000000000}Arial Unicode MS (Hebrew);}{\f220\fswiss\fcharset178\fprq2{\*\panose 00000000000000000000}Arial Unicode MS (Arabic);}\r
-{\f221\fswiss\fcharset163\fprq2{\*\panose 00000000000000000000}Arial Unicode MS (Vietnamese);}{\f222\fswiss\fcharset222\fprq2{\*\panose 00000000000000000000}Arial Unicode MS (Thai);}\r
-{\f223\fswiss\fcharset177\fprq2{\*\panose 00000000000000000000}Tahoma (Hebrew);}{\f224\fswiss\fcharset178\fprq2{\*\panose 00000000000000000000}Tahoma (Arabic);}{\f225\fswiss\fcharset163\fprq2{\*\panose 00000000000000000000}Tahoma (Vietnamese);}\r
-{\f226\fswiss\fcharset222\fprq2{\*\panose 00000000000000000000}Tahoma (Thai);}{\f227\fswiss\fcharset177\fprq2{\*\panose 00000000000000000000}Lucida Sans Unicode (Hebrew);}\r
-{\f228\fswiss\fcharset163\fprq2{\*\panose 00000000000000000000}Verdana (Vietnamese);}{\f229\froman\fcharset163\fprq2{\*\panose 00000000000000000000}Palatino Linotype (Vietnamese);}\r
-{\f230\fswiss\fcharset177\fprq2{\*\panose 00000000000000000000}Microsoft Sans Serif (Hebrew);}{\f231\fswiss\fcharset178\fprq2{\*\panose 00000000000000000000}Microsoft Sans Serif (Arabic);}\r
-{\f232\fswiss\fcharset163\fprq2{\*\panose 00000000000000000000}Microsoft Sans Serif (Vietnames;}{\f233\fswiss\fcharset222\fprq2{\*\panose 00000000000000000000}Microsoft Sans Serif (Thai);}\r
-{\f234\fswiss\fcharset177\fprq2{\*\panose 00000000000000000000}@Arial Unicode MS (Hebrew);}{\f235\fswiss\fcharset178\fprq2{\*\panose 00000000000000000000}@Arial Unicode MS (Arabic);}\r
-{\f236\fswiss\fcharset163\fprq2{\*\panose 00000000000000000000}@Arial Unicode MS (Vietnamese);}{\f237\fswiss\fcharset222\fprq2{\*\panose 00000000000000000000}@Arial Unicode MS (Thai);}\r
-{\f238\fswiss\fcharset238\fprq2{\*\panose 00000000000000000000}Haettenschweiler CE;}{\f239\fswiss\fcharset204\fprq2{\*\panose 00000000000000000000}Haettenschweiler Cyr;}\r
-{\f240\fswiss\fcharset161\fprq2{\*\panose 00000000000000000000}Haettenschweiler Greek;}{\f241\fswiss\fcharset162\fprq2{\*\panose 00000000000000000000}Haettenschweiler Tur;}\r
-{\f242\fswiss\fcharset186\fprq2{\*\panose 00000000000000000000}Haettenschweiler Baltic;}{\f243\fswiss\fcharset204\fprq2{\*\panose 00000000000000000000}CA Chess Cyr;}{\f244\fswiss\fcharset162\fprq2{\*\panose 00000000000000000000}CA Chess Tur;}\r
-{\f245\fmodern\fcharset238\fprq1{\*\panose 00000000000000000000}HE_TERMINAL CE;}{\f246\fmodern\fcharset204\fprq1{\*\panose 00000000000000000000}HE_TERMINAL Cyr;}{\f247\fmodern\fcharset161\fprq1{\*\panose 00000000000000000000}HE_TERMINAL Greek;}\r
-{\f248\fmodern\fcharset162\fprq1{\*\panose 00000000000000000000}HE_TERMINAL Tur;}{\f249\fmodern\fcharset186\fprq1{\*\panose 00000000000000000000}HE_TERMINAL Baltic;}{\f250\fnil\fcharset161\fprq2{\*\panose 00000000000000000000}Sydnie Greek;}\r
-{\f251\fmodern\fcharset128\fprq1{\*\panose 00000000000000000000}Gothic{\*\falt ?????};}{\f252\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}News Gothic MT;}{\f253\fscript\fcharset0\fprq2{\*\panose 00000000000000000000}Lucida Handwriting;}\r
-{\f254\froman\fcharset0\fprq2{\*\panose 00000000000000000000}Calisto MT;}{\f255\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Abadi MT Condensed Light;}{\f256\fdecor\fcharset0\fprq2{\*\panose 00000000000000000000}Westminster;}\r
-{\f257\fmodern\fcharset0\fprq1{\*\panose 00000000000000000000}OCR-A II;}{\f258\fmodern\fcharset0\fprq1{\*\panose 00000000000000000000}OCR B MT;}{\f259\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}QuickType II;}\r
-{\f260\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}QuickType II Condensed;}{\f261\fmodern\fcharset0\fprq1{\*\panose 00000000000000000000}QuickType II Mono;}{\f262\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}QuickType II Pi;}\r
-{\f263\fswiss\fcharset161\fprq2{\*\panose 00000000000000000000}Franklin Gothic Medium Cond Gre;}{\f264\fswiss\fcharset186\fprq2{\*\panose 00000000000000000000}Franklin Gothic Medium Cond Bal;}\r
-{\f265\fswiss\fcharset186\fprq2{\*\panose 00000000000000000000}Franklin Gothic Demi Cond Balti;}{\f266\froman\fcharset238\fprq0{\*\panose 00000000000000000000}?? CE;}{\f267\froman\fcharset162\fprq0{\*\panose 00000000000000000000}?? Tur;}\r
-{\f268\fswiss\fcharset0\fprq2{\*\panose 020b0600000000000000}Shogi;}{\f269\fnil\fcharset134\fprq2{\*\panose 00000000000000000000}SimSun-PUA;}{\f270\fnil\fcharset134\fprq2{\*\panose 00000000000000000000}@SimSun-PUA;}\r
-{\f271\froman\fcharset222\fprq2{\*\panose 00000000000000000000}AngsanaUPC;}{\f272\fswiss\fcharset222\fprq2{\*\panose 00000000000000000000}BrowalliaUPC;}{\f273\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Browallia New;}\r
-{\f274\fswiss\fcharset222\fprq2{\*\panose 00000000000000000000}CordiaUPC;}{\f275\froman\fcharset222\fprq2{\*\panose 00000000000000000000}DilleniaUPC;}{\f276\froman\fcharset222\fprq2{\*\panose 00000000000000000000}EucrosiaUPC;}\r
-{\f277\fswiss\fcharset222\fprq2{\*\panose 00000000000000000000}FreesiaUPC;}{\f278\fswiss\fcharset222\fprq2{\*\panose 00000000000000000000}IrisUPC;}{\f279\froman\fcharset222\fprq2{\*\panose 00000000000000000000}JasmineUPC;}\r
-{\f280\froman\fcharset222\fprq2{\*\panose 00000000000000000000}KodchiangUPC;}{\f281\fswiss\fcharset222\fprq2{\*\panose 00000000000000000000}LilyUPC;}{\f282\fnil\fcharset177\fprq2{\*\panose 00000000000000000000}Aharoni;}\r
-{\f283\fnil\fcharset177\fprq2{\*\panose 00000000000000000000}David;}{\f284\fnil\fcharset177\fprq2{\*\panose 00000000000000000000}David Transparent;}{\f285\fnil\fcharset177\fprq2{\*\panose 00000000000000000000}FrankRuehl;}\r
-{\f286\fnil\fcharset177\fprq2{\*\panose 00000000000000000000}Levenim MT;}{\f287\fnil\fcharset177\fprq2{\*\panose 00000000000000000000}Miriam;}{\f288\fnil\fcharset177\fprq2{\*\panose 00000000000000000000}Miriam Transparent;}\r
-{\f289\fmodern\fcharset177\fprq1{\*\panose 00000000000000000000}Miriam Fixed;}{\f290\fmodern\fcharset177\fprq1{\*\panose 00000000000000000000}Fixed Miriam Transparent;}{\f291\fnil\fcharset177\fprq2{\*\panose 00000000000000000000}Narkisim;}\r
-{\f292\fmodern\fcharset177\fprq1{\*\panose 00000000000000000000}Rod;}{\f293\fmodern\fcharset177\fprq1{\*\panose 00000000000000000000}Rod Transparent;}{\f294\fnil\fcharset178\fprq2{\*\panose 00000000000000000000}Traditional Arabic;}\r
-{\f295\fnil\fcharset178\fprq2{\*\panose 00000000000000000000}Arabic Transparent;}{\f296\fnil\fcharset178\fprq2{\*\panose 00000000000000000000}Andalus;}{\f297\fnil\fcharset178\fprq2{\*\panose 00000000000000000000}Simplified Arabic;}\r
-{\f298\fmodern\fcharset178\fprq1{\*\panose 00000000000000000000}Simplified Arabic Fixed;}{\f299\fscript\fcharset0\fprq2{\*\panose 00000000000000000000}Freestyle Script;}{\f300\fscript\fcharset0\fprq2{\*\panose 00000000000000000000}Pristina;}\r
-{\f301\froman\fcharset0\fprq2{\*\panose 00000000000000000000}Cambria;}{\f302\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Candara;}{\f303\fmodern\fcharset0\fprq1{\*\panose 00000000000000000000}Consolas;}\r
-{\f304\froman\fcharset0\fprq2{\*\panose 00000000000000000000}Constantia;}{\f305\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Corbel;}{\f306\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Segoe UI;}\r
-{\f307\fswiss\fcharset238\fprq2{\*\panose 00000000000000000000}Calibri CE;}{\f308\fswiss\fcharset204\fprq2{\*\panose 00000000000000000000}Calibri Cyr;}{\f309\fswiss\fcharset161\fprq2{\*\panose 00000000000000000000}Calibri Greek;}\r
-{\f310\fswiss\fcharset162\fprq2{\*\panose 00000000000000000000}Calibri Tur;}{\f311\fswiss\fcharset186\fprq2{\*\panose 00000000000000000000}Calibri Baltic;}{\f312\froman\fcharset238\fprq2{\*\panose 00000000000000000000}Cambria Math CE;}\r
-{\f313\froman\fcharset204\fprq2{\*\panose 00000000000000000000}Cambria Math Cyr;}{\f314\froman\fcharset161\fprq2{\*\panose 00000000000000000000}Cambria Math Greek;}{\f315\froman\fcharset162\fprq2{\*\panose 00000000000000000000}Cambria Math Tur;}\r
-{\f316\froman\fcharset186\fprq2{\*\panose 00000000000000000000}Cambria Math Baltic;}{\f317\froman\fcharset238\fprq2{\*\panose 00000000000000000000}Century CE;}{\f318\froman\fcharset204\fprq2{\*\panose 00000000000000000000}Century Cyr;}\r
-{\f319\froman\fcharset161\fprq2{\*\panose 00000000000000000000}Century Greek;}{\f320\froman\fcharset162\fprq2{\*\panose 00000000000000000000}Century Tur;}{\f321\froman\fcharset186\fprq2{\*\panose 00000000000000000000}Century Baltic;}\r
-{\f322\fswiss\fcharset238\fprq2{\*\panose 00000000000000000000}Arial Unicode MS CE;}{\f323\fswiss\fcharset204\fprq2{\*\panose 00000000000000000000}Arial Unicode MS Cyr;}\r
-{\f324\fswiss\fcharset161\fprq2{\*\panose 00000000000000000000}Arial Unicode MS Greek;}{\f325\fswiss\fcharset162\fprq2{\*\panose 00000000000000000000}Arial Unicode MS Tur;}\r
-{\f326\fswiss\fcharset186\fprq2{\*\panose 00000000000000000000}Arial Unicode MS Baltic;}{\f327\fswiss\fcharset238\fprq2{\*\panose 00000000000000000000}@Arial Unicode MS CE;}\r
-{\f328\fswiss\fcharset204\fprq2{\*\panose 00000000000000000000}@Arial Unicode MS Cyr;}{\f329\fswiss\fcharset161\fprq2{\*\panose 00000000000000000000}@Arial Unicode MS Greek;}\r
-{\f330\fswiss\fcharset162\fprq2{\*\panose 00000000000000000000}@Arial Unicode MS Tur;}{\f331\fswiss\fcharset186\fprq2{\*\panose 00000000000000000000}@Arial Unicode MS Baltic;}{\f332\froman\fcharset238\fprq2{\*\panose 00000000000000000000}Book Antiqua CE;}\r
-{\f333\froman\fcharset204\fprq2{\*\panose 00000000000000000000}Book Antiqua Cyr;}{\f334\froman\fcharset161\fprq2{\*\panose 00000000000000000000}Book Antiqua Greek;}{\f335\froman\fcharset162\fprq2{\*\panose 00000000000000000000}Book Antiqua Tur;}\r
-{\f336\froman\fcharset186\fprq2{\*\panose 00000000000000000000}Book Antiqua Baltic;}{\f337\fscript\fcharset238\fprq2{\*\panose 00000000000000000000}Monotype Corsiva CE;}{\f338\fscript\fcharset204\fprq2{\*\panose 00000000000000000000}Monotype Corsiva Cyr;}\r
-{\f339\fscript\fcharset161\fprq2{\*\panose 00000000000000000000}Monotype Corsiva Greek;}{\f340\fscript\fcharset162\fprq2{\*\panose 00000000000000000000}Monotype Corsiva Tur;}\r
-{\f341\fscript\fcharset186\fprq2{\*\panose 00000000000000000000}Monotype Corsiva Baltic;}{\f342\froman\fcharset238\fprq2{\*\panose 00000000000000000000}Cambria CE;}{\f343\froman\fcharset204\fprq2{\*\panose 00000000000000000000}Cambria Cyr;}\r
-{\f344\froman\fcharset161\fprq2{\*\panose 00000000000000000000}Cambria Greek;}{\f345\froman\fcharset162\fprq2{\*\panose 00000000000000000000}Cambria Tur;}{\f346\froman\fcharset186\fprq2{\*\panose 00000000000000000000}Cambria Baltic;}\r
-{\f347\fswiss\fcharset238\fprq2{\*\panose 00000000000000000000}Candara CE;}{\f348\fswiss\fcharset204\fprq2{\*\panose 00000000000000000000}Candara Cyr;}{\f349\fswiss\fcharset161\fprq2{\*\panose 00000000000000000000}Candara Greek;}\r
-{\f350\fswiss\fcharset162\fprq2{\*\panose 00000000000000000000}Candara Tur;}{\f351\fswiss\fcharset186\fprq2{\*\panose 00000000000000000000}Candara Baltic;}{\f352\fmodern\fcharset238\fprq1{\*\panose 00000000000000000000}Consolas CE;}\r
-{\f353\fmodern\fcharset204\fprq1{\*\panose 00000000000000000000}Consolas Cyr;}{\f354\fmodern\fcharset161\fprq1{\*\panose 00000000000000000000}Consolas Greek;}{\f355\fmodern\fcharset162\fprq1{\*\panose 00000000000000000000}Consolas Tur;}\r
-{\f356\fmodern\fcharset186\fprq1{\*\panose 00000000000000000000}Consolas Baltic;}{\f357\froman\fcharset238\fprq2{\*\panose 00000000000000000000}Constantia CE;}{\f358\froman\fcharset204\fprq2{\*\panose 00000000000000000000}Constantia Cyr;}\r
-{\f359\froman\fcharset161\fprq2{\*\panose 00000000000000000000}Constantia Greek;}{\f360\froman\fcharset162\fprq2{\*\panose 00000000000000000000}Constantia Tur;}{\f361\froman\fcharset186\fprq2{\*\panose 00000000000000000000}Constantia Baltic;}\r
-{\f362\fswiss\fcharset238\fprq2{\*\panose 00000000000000000000}Corbel CE;}{\f363\fswiss\fcharset204\fprq2{\*\panose 00000000000000000000}Corbel Cyr;}{\f364\fswiss\fcharset161\fprq2{\*\panose 00000000000000000000}Corbel Greek;}\r
-{\f365\fswiss\fcharset162\fprq2{\*\panose 00000000000000000000}Corbel Tur;}{\f366\fswiss\fcharset186\fprq2{\*\panose 00000000000000000000}Corbel Baltic;}{\f367\fswiss\fcharset238\fprq2{\*\panose 00000000000000000000}Segoe UI CE;}\r
-{\f368\fswiss\fcharset204\fprq2{\*\panose 00000000000000000000}Segoe UI Cyr;}{\f369\fswiss\fcharset161\fprq2{\*\panose 00000000000000000000}Segoe UI Greek;}{\f370\fswiss\fcharset162\fprq2{\*\panose 00000000000000000000}Segoe UI Tur;}\r
-{\f371\fswiss\fcharset186\fprq2{\*\panose 00000000000000000000}Segoe UI Baltic;}{\f372\fnil\fcharset0\fprq2{\*\panose 00000504000000000004}Ultima;}{\f373\froman\fcharset238\fprq2 Times New Roman CE;}{\f374\froman\fcharset204\fprq2 Times New Roman Cyr;}\r
-{\f376\froman\fcharset161\fprq2 Times New Roman Greek;}{\f377\froman\fcharset162\fprq2 Times New Roman Tur;}{\f378\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f379\fswiss\fcharset238\fprq2 Arial CE;}{\f380\fswiss\fcharset204\fprq2 Arial Cyr;}\r
-{\f382\fswiss\fcharset161\fprq2 Arial Greek;}{\f383\fswiss\fcharset162\fprq2 Arial Tur;}{\f384\fswiss\fcharset186\fprq2 Arial Baltic;}{\f385\fmodern\fcharset238\fprq1 Courier New CE;}{\f386\fmodern\fcharset204\fprq1 Courier New Cyr;}\r
-{\f388\fmodern\fcharset161\fprq1 Courier New Greek;}{\f389\fmodern\fcharset162\fprq1 Courier New Tur;}{\f390\fmodern\fcharset186\fprq1 Courier New Baltic;}{\f397\froman\fcharset238\fprq2 Times CE;}{\f398\froman\fcharset204\fprq2 Times Cyr;}\r
-{\f400\froman\fcharset161\fprq2 Times Greek;}{\f401\froman\fcharset162\fprq2 Times Tur;}{\f402\froman\fcharset186\fprq2 Times Baltic;}{\f403\fswiss\fcharset238\fprq2 Helvetica CE{\*\falt Arial};}\r
-{\f404\fswiss\fcharset204\fprq2 Helvetica Cyr{\*\falt Arial};}{\f406\fswiss\fcharset161\fprq2 Helvetica Greek{\*\falt Arial};}{\f407\fswiss\fcharset162\fprq2 Helvetica Tur{\*\falt Arial};}{\f408\fswiss\fcharset186\fprq2 Helvetica Baltic{\*\falt Arial};}\r
-{\f463\fswiss\fcharset238\fprq2 Tahoma CE;}{\f464\fswiss\fcharset204\fprq2 Tahoma Cyr;}{\f466\fswiss\fcharset161\fprq2 Tahoma Greek;}{\f467\fswiss\fcharset162\fprq2 Tahoma Tur;}{\f468\fswiss\fcharset186\fprq2 Tahoma Baltic;}\r
-{\f471\fnil\fcharset0\fprq2 SimSun;}{\f589\fmodern\fcharset238\fprq1 Lucida Console CE;}{\f590\fmodern\fcharset204\fprq1 Lucida Console Cyr;}{\f592\fmodern\fcharset161\fprq1 Lucida Console Greek;}{\f593\fmodern\fcharset162\fprq1 Lucida Console Tur;}\r
-{\f595\fswiss\fcharset238\fprq2 Lucida Sans Unicode CE;}{\f596\fswiss\fcharset204\fprq2 Lucida Sans Unicode Cyr;}{\f598\fswiss\fcharset161\fprq2 Lucida Sans Unicode Greek;}{\f599\fswiss\fcharset162\fprq2 Lucida Sans Unicode Tur;}\r
-{\f601\fswiss\fcharset238\fprq2 Verdana CE;}{\f602\fswiss\fcharset204\fprq2 Verdana Cyr;}{\f604\fswiss\fcharset161\fprq2 Verdana Greek;}{\f605\fswiss\fcharset162\fprq2 Verdana Tur;}{\f606\fswiss\fcharset186\fprq2 Verdana Baltic;}\r
-{\f607\fswiss\fcharset238\fprq2 Arial Black CE;}{\f608\fswiss\fcharset204\fprq2 Arial Black Cyr;}{\f610\fswiss\fcharset161\fprq2 Arial Black Greek;}{\f611\fswiss\fcharset162\fprq2 Arial Black Tur;}{\f612\fswiss\fcharset186\fprq2 Arial Black Baltic;}\r
-{\f613\fscript\fcharset238\fprq2 Comic Sans MS CE;}{\f614\fscript\fcharset204\fprq2 Comic Sans MS Cyr;}{\f616\fscript\fcharset161\fprq2 Comic Sans MS Greek;}{\f617\fscript\fcharset162\fprq2 Comic Sans MS Tur;}\r
-{\f618\fscript\fcharset186\fprq2 Comic Sans MS Baltic;}{\f619\fswiss\fcharset238\fprq2 Impact CE;}{\f620\fswiss\fcharset204\fprq2 Impact Cyr;}{\f622\fswiss\fcharset161\fprq2 Impact Greek;}{\f623\fswiss\fcharset162\fprq2 Impact Tur;}\r
-{\f624\fswiss\fcharset186\fprq2 Impact Baltic;}{\f625\froman\fcharset238\fprq2 Georgia CE;}{\f626\froman\fcharset204\fprq2 Georgia Cyr;}{\f628\froman\fcharset161\fprq2 Georgia Greek;}{\f629\froman\fcharset162\fprq2 Georgia Tur;}\r
-{\f630\froman\fcharset186\fprq2 Georgia Baltic;}{\f631\fswiss\fcharset238\fprq2 Franklin Gothic Medium CE;}{\f632\fswiss\fcharset204\fprq2 Franklin Gothic Medium Cyr;}{\f634\fswiss\fcharset161\fprq2 Franklin Gothic Medium Greek;}\r
-{\f635\fswiss\fcharset162\fprq2 Franklin Gothic Medium Tur;}{\f636\fswiss\fcharset186\fprq2 Franklin Gothic Medium Baltic;}{\f637\froman\fcharset238\fprq2 Palatino Linotype CE;}{\f638\froman\fcharset204\fprq2 Palatino Linotype Cyr;}\r
-{\f640\froman\fcharset161\fprq2 Palatino Linotype Greek;}{\f641\froman\fcharset162\fprq2 Palatino Linotype Tur;}{\f642\froman\fcharset186\fprq2 Palatino Linotype Baltic;}{\f643\fswiss\fcharset238\fprq2 Trebuchet MS CE;}\r
-{\f644\fswiss\fcharset204\fprq2 Trebuchet MS Cyr;}{\f646\fswiss\fcharset161\fprq2 Trebuchet MS Greek;}{\f647\fswiss\fcharset162\fprq2 Trebuchet MS Tur;}{\f648\fswiss\fcharset186\fprq2 Trebuchet MS Baltic;}{\f703\froman\fcharset238\fprq2 Sylfaen CE;}\r
-{\f704\froman\fcharset204\fprq2 Sylfaen Cyr;}{\f706\froman\fcharset161\fprq2 Sylfaen Greek;}{\f707\froman\fcharset162\fprq2 Sylfaen Tur;}{\f708\froman\fcharset186\fprq2 Sylfaen Baltic;}{\f709\fswiss\fcharset238\fprq2 Microsoft Sans Serif CE;}\r
-{\f710\fswiss\fcharset204\fprq2 Microsoft Sans Serif Cyr;}{\f712\fswiss\fcharset161\fprq2 Microsoft Sans Serif Greek;}{\f713\fswiss\fcharset162\fprq2 Microsoft Sans Serif Tur;}{\f714\fswiss\fcharset186\fprq2 Microsoft Sans Serif Baltic;}\r
-{\f715\fswiss\fcharset238\fprq2 Arial Narrow CE;}{\f716\fswiss\fcharset204\fprq2 Arial Narrow Cyr;}{\f718\fswiss\fcharset161\fprq2 Arial Narrow Greek;}{\f719\fswiss\fcharset162\fprq2 Arial Narrow Tur;}{\f720\fswiss\fcharset186\fprq2 Arial Narrow Baltic;}\r
-{\f733\fscript\fcharset238\fprq2 Mistral CE;}{\f734\fscript\fcharset204\fprq2 Mistral Cyr;}{\f736\fscript\fcharset161\fprq2 Mistral Greek;}{\f737\fscript\fcharset162\fprq2 Mistral Tur;}{\f738\fscript\fcharset186\fprq2 Mistral Baltic;}\r
-{\f805\fswiss\fcharset238\fprq2 Franklin Gothic Book CE;}{\f806\fswiss\fcharset204\fprq2 Franklin Gothic Book Cyr;}{\f808\fswiss\fcharset161\fprq2 Franklin Gothic Book Greek;}{\f809\fswiss\fcharset162\fprq2 Franklin Gothic Book Tur;}\r
-{\f810\fswiss\fcharset186\fprq2 Franklin Gothic Book Baltic;}{\f811\fswiss\fcharset238\fprq2 Franklin Gothic Demi CE;}{\f812\fswiss\fcharset204\fprq2 Franklin Gothic Demi Cyr;}{\f814\fswiss\fcharset161\fprq2 Franklin Gothic Demi Greek;}\r
-{\f815\fswiss\fcharset162\fprq2 Franklin Gothic Demi Tur;}{\f816\fswiss\fcharset186\fprq2 Franklin Gothic Demi Baltic;}{\f817\fswiss\fcharset238\fprq2 Franklin Gothic Medium Cond CE;}{\f818\fswiss\fcharset204\fprq2 Franklin Gothic Medium Cond Cyr;}\r
-{\f820\fswiss\fcharset161\fprq2 Franklin Gothic Medium Cond Greek;}{\f821\fswiss\fcharset162\fprq2 Franklin Gothic Medium Cond Tur;}{\f822\fswiss\fcharset186\fprq2 Franklin Gothic Medium Cond Baltic;}\r
-{\f823\fswiss\fcharset238\fprq2 Franklin Gothic Heavy CE;}{\f824\fswiss\fcharset204\fprq2 Franklin Gothic Heavy Cyr;}{\f826\fswiss\fcharset161\fprq2 Franklin Gothic Heavy Greek;}{\f827\fswiss\fcharset162\fprq2 Franklin Gothic Heavy Tur;}\r
-{\f828\fswiss\fcharset186\fprq2 Franklin Gothic Heavy Baltic;}{\f829\fswiss\fcharset238\fprq2 Franklin Gothic Demi Cond CE;}{\f830\fswiss\fcharset204\fprq2 Franklin Gothic Demi Cond Cyr;}{\f832\fswiss\fcharset161\fprq2 Franklin Gothic Demi Cond Greek;}\r
-{\f833\fswiss\fcharset162\fprq2 Franklin Gothic Demi Cond Tur;}{\f834\fswiss\fcharset186\fprq2 Franklin Gothic Demi Cond Baltic;}{\f841\fswiss\fcharset238\fprq2 Century Gothic CE;}{\f842\fswiss\fcharset204\fprq2 Century Gothic Cyr;}\r
-{\f844\fswiss\fcharset161\fprq2 Century Gothic Greek;}{\f845\fswiss\fcharset162\fprq2 Century Gothic Tur;}{\f846\fswiss\fcharset186\fprq2 Century Gothic Baltic;}{\f937\fswiss\fcharset238\fprq2 MS Reference Sans Serif CE;}\r
-{\f938\fswiss\fcharset204\fprq2 MS Reference Sans Serif Cyr;}{\f940\fswiss\fcharset161\fprq2 MS Reference Sans Serif Greek;}{\f941\fswiss\fcharset162\fprq2 MS Reference Sans Serif Tur;}{\f942\fswiss\fcharset186\fprq2 MS Reference Sans Serif Baltic;}\r
-{\f961\froman\fcharset238\fprq2 Bookman Old Style CE;}{\f962\froman\fcharset204\fprq2 Bookman Old Style Cyr;}{\f964\froman\fcharset161\fprq2 Bookman Old Style Greek;}{\f965\froman\fcharset162\fprq2 Bookman Old Style Tur;}\r
-{\f966\froman\fcharset186\fprq2 Bookman Old Style Baltic;}{\f973\froman\fcharset238\fprq2 Garamond CE;}{\f974\froman\fcharset204\fprq2 Garamond Cyr;}{\f976\froman\fcharset161\fprq2 Garamond Greek;}{\f977\froman\fcharset162\fprq2 Garamond Tur;}\r
-{\f978\froman\fcharset186\fprq2 Garamond Baltic;}{\f1013\fnil\fcharset162\fprq2 Superchess Tur;}{\f1029\fmodern\fcharset0\fprq1 MS Mincho;}{\f1027\fmodern\fcharset238\fprq1 MS Mincho CE;}{\f1028\fmodern\fcharset204\fprq1 MS Mincho Cyr;}\r
-{\f1030\fmodern\fcharset161\fprq1 MS Mincho Greek;}{\f1031\fmodern\fcharset162\fprq1 MS Mincho Tur;}{\f1032\fmodern\fcharset186\fprq1 MS Mincho Baltic;}{\f1035\fmodern\fcharset0\fprq1 @MS Mincho;}{\f1033\fmodern\fcharset238\fprq1 @MS Mincho CE;}\r
-{\f1034\fmodern\fcharset204\fprq1 @MS Mincho Cyr;}{\f1036\fmodern\fcharset161\fprq1 @MS Mincho Greek;}{\f1037\fmodern\fcharset162\fprq1 @MS Mincho Tur;}{\f1038\fmodern\fcharset186\fprq1 @MS Mincho Baltic;}{\f1041\froman\fcharset0\fprq2 MS PMincho;}\r
-{\f1039\froman\fcharset238\fprq2 MS PMincho CE;}{\f1040\froman\fcharset204\fprq2 MS PMincho Cyr;}{\f1042\froman\fcharset161\fprq2 MS PMincho Greek;}{\f1043\froman\fcharset162\fprq2 MS PMincho Tur;}{\f1044\froman\fcharset186\fprq2 MS PMincho Baltic;}\r
-{\f1047\froman\fcharset0\fprq2 @MS PMincho;}{\f1045\froman\fcharset238\fprq2 @MS PMincho CE;}{\f1046\froman\fcharset204\fprq2 @MS PMincho Cyr;}{\f1048\froman\fcharset161\fprq2 @MS PMincho Greek;}{\f1049\froman\fcharset162\fprq2 @MS PMincho Tur;}\r
-{\f1050\froman\fcharset186\fprq2 @MS PMincho Baltic;}{\f1053\fmodern\fcharset0\fprq1 MS Gothic;}{\f1051\fmodern\fcharset238\fprq1 MS Gothic CE;}{\f1052\fmodern\fcharset204\fprq1 MS Gothic Cyr;}{\f1054\fmodern\fcharset161\fprq1 MS Gothic Greek;}\r
-{\f1055\fmodern\fcharset162\fprq1 MS Gothic Tur;}{\f1056\fmodern\fcharset186\fprq1 MS Gothic Baltic;}{\f1059\fmodern\fcharset0\fprq1 @MS Gothic;}{\f1057\fmodern\fcharset238\fprq1 @MS Gothic CE;}{\f1058\fmodern\fcharset204\fprq1 @MS Gothic Cyr;}\r
-{\f1060\fmodern\fcharset161\fprq1 @MS Gothic Greek;}{\f1061\fmodern\fcharset162\fprq1 @MS Gothic Tur;}{\f1062\fmodern\fcharset186\fprq1 @MS Gothic Baltic;}{\f1065\fswiss\fcharset0\fprq2 MS PGothic;}{\f1063\fswiss\fcharset238\fprq2 MS PGothic CE;}\r
-{\f1064\fswiss\fcharset204\fprq2 MS PGothic Cyr;}{\f1066\fswiss\fcharset161\fprq2 MS PGothic Greek;}{\f1067\fswiss\fcharset162\fprq2 MS PGothic Tur;}{\f1068\fswiss\fcharset186\fprq2 MS PGothic Baltic;}{\f1071\fswiss\fcharset0\fprq2 @MS PGothic;}\r
-{\f1069\fswiss\fcharset238\fprq2 @MS PGothic CE;}{\f1070\fswiss\fcharset204\fprq2 @MS PGothic Cyr;}{\f1072\fswiss\fcharset161\fprq2 @MS PGothic Greek;}{\f1073\fswiss\fcharset162\fprq2 @MS PGothic Tur;}{\f1074\fswiss\fcharset186\fprq2 @MS PGothic Baltic;}\r
-{\f1077\fswiss\fcharset0\fprq2 MS UI Gothic;}{\f1075\fswiss\fcharset238\fprq2 MS UI Gothic CE;}{\f1076\fswiss\fcharset204\fprq2 MS UI Gothic Cyr;}{\f1078\fswiss\fcharset161\fprq2 MS UI Gothic Greek;}{\f1079\fswiss\fcharset162\fprq2 MS UI Gothic Tur;}\r
-{\f1080\fswiss\fcharset186\fprq2 MS UI Gothic Baltic;}{\f1083\fswiss\fcharset0\fprq2 @MS UI Gothic;}{\f1081\fswiss\fcharset238\fprq2 @MS UI Gothic CE;}{\f1082\fswiss\fcharset204\fprq2 @MS UI Gothic Cyr;}\r
-{\f1084\fswiss\fcharset161\fprq2 @MS UI Gothic Greek;}{\f1085\fswiss\fcharset162\fprq2 @MS UI Gothic Tur;}{\f1086\fswiss\fcharset186\fprq2 @MS UI Gothic Baltic;}{\f1089\fswiss\fcharset0\fprq2 Gulim;}{\f1087\fswiss\fcharset238\fprq2 Gulim CE;}\r
-{\f1088\fswiss\fcharset204\fprq2 Gulim Cyr;}{\f1090\fswiss\fcharset161\fprq2 Gulim Greek;}{\f1091\fswiss\fcharset162\fprq2 Gulim Tur;}{\f1092\fswiss\fcharset186\fprq2 Gulim Baltic;}{\f1095\fswiss\fcharset0\fprq2 @Gulim;}\r
-{\f1093\fswiss\fcharset238\fprq2 @Gulim CE;}{\f1094\fswiss\fcharset204\fprq2 @Gulim Cyr;}{\f1096\fswiss\fcharset161\fprq2 @Gulim Greek;}{\f1097\fswiss\fcharset162\fprq2 @Gulim Tur;}{\f1098\fswiss\fcharset186\fprq2 @Gulim Baltic;}\r
-{\f1101\fmodern\fcharset0\fprq1 GulimChe;}{\f1099\fmodern\fcharset238\fprq1 GulimChe CE;}{\f1100\fmodern\fcharset204\fprq1 GulimChe Cyr;}{\f1102\fmodern\fcharset161\fprq1 GulimChe Greek;}{\f1103\fmodern\fcharset162\fprq1 GulimChe Tur;}\r
-{\f1104\fmodern\fcharset186\fprq1 GulimChe Baltic;}{\f1107\fmodern\fcharset0\fprq1 @GulimChe;}{\f1105\fmodern\fcharset238\fprq1 @GulimChe CE;}{\f1106\fmodern\fcharset204\fprq1 @GulimChe Cyr;}{\f1108\fmodern\fcharset161\fprq1 @GulimChe Greek;}\r
-{\f1109\fmodern\fcharset162\fprq1 @GulimChe Tur;}{\f1110\fmodern\fcharset186\fprq1 @GulimChe Baltic;}{\f1113\fswiss\fcharset0\fprq2 Dotum;}{\f1111\fswiss\fcharset238\fprq2 Dotum CE;}{\f1112\fswiss\fcharset204\fprq2 Dotum Cyr;}\r
-{\f1114\fswiss\fcharset161\fprq2 Dotum Greek;}{\f1115\fswiss\fcharset162\fprq2 Dotum Tur;}{\f1116\fswiss\fcharset186\fprq2 Dotum Baltic;}{\f1119\fswiss\fcharset0\fprq2 @Dotum;}{\f1117\fswiss\fcharset238\fprq2 @Dotum CE;}\r
-{\f1118\fswiss\fcharset204\fprq2 @Dotum Cyr;}{\f1120\fswiss\fcharset161\fprq2 @Dotum Greek;}{\f1121\fswiss\fcharset162\fprq2 @Dotum Tur;}{\f1122\fswiss\fcharset186\fprq2 @Dotum Baltic;}{\f1125\fmodern\fcharset0\fprq1 DotumChe;}\r
-{\f1123\fmodern\fcharset238\fprq1 DotumChe CE;}{\f1124\fmodern\fcharset204\fprq1 DotumChe Cyr;}{\f1126\fmodern\fcharset161\fprq1 DotumChe Greek;}{\f1127\fmodern\fcharset162\fprq1 DotumChe Tur;}{\f1128\fmodern\fcharset186\fprq1 DotumChe Baltic;}\r
-{\f1131\fmodern\fcharset0\fprq1 @DotumChe;}{\f1129\fmodern\fcharset238\fprq1 @DotumChe CE;}{\f1130\fmodern\fcharset204\fprq1 @DotumChe Cyr;}{\f1132\fmodern\fcharset161\fprq1 @DotumChe Greek;}{\f1133\fmodern\fcharset162\fprq1 @DotumChe Tur;}\r
-{\f1134\fmodern\fcharset186\fprq1 @DotumChe Baltic;}{\f1137\froman\fcharset0\fprq2 Batang;}{\f1135\froman\fcharset238\fprq2 Batang CE;}{\f1136\froman\fcharset204\fprq2 Batang Cyr;}{\f1138\froman\fcharset161\fprq2 Batang Greek;}\r
-{\f1139\froman\fcharset162\fprq2 Batang Tur;}{\f1140\froman\fcharset186\fprq2 Batang Baltic;}{\f1143\froman\fcharset0\fprq2 @Batang;}{\f1141\froman\fcharset238\fprq2 @Batang CE;}{\f1142\froman\fcharset204\fprq2 @Batang Cyr;}\r
-{\f1144\froman\fcharset161\fprq2 @Batang Greek;}{\f1145\froman\fcharset162\fprq2 @Batang Tur;}{\f1146\froman\fcharset186\fprq2 @Batang Baltic;}{\f1149\fmodern\fcharset0\fprq1 BatangChe;}{\f1147\fmodern\fcharset238\fprq1 BatangChe CE;}\r
-{\f1148\fmodern\fcharset204\fprq1 BatangChe Cyr;}{\f1150\fmodern\fcharset161\fprq1 BatangChe Greek;}{\f1151\fmodern\fcharset162\fprq1 BatangChe Tur;}{\f1152\fmodern\fcharset186\fprq1 BatangChe Baltic;}{\f1155\fmodern\fcharset0\fprq1 @BatangChe;}\r
-{\f1153\fmodern\fcharset238\fprq1 @BatangChe CE;}{\f1154\fmodern\fcharset204\fprq1 @BatangChe Cyr;}{\f1156\fmodern\fcharset161\fprq1 @BatangChe Greek;}{\f1157\fmodern\fcharset162\fprq1 @BatangChe Tur;}{\f1158\fmodern\fcharset186\fprq1 @BatangChe Baltic;}\r
-{\f1161\froman\fcharset0\fprq2 Gungsuh;}{\f1159\froman\fcharset238\fprq2 Gungsuh CE;}{\f1160\froman\fcharset204\fprq2 Gungsuh Cyr;}{\f1162\froman\fcharset161\fprq2 Gungsuh Greek;}{\f1163\froman\fcharset162\fprq2 Gungsuh Tur;}\r
-{\f1164\froman\fcharset186\fprq2 Gungsuh Baltic;}{\f1167\froman\fcharset0\fprq2 @Gungsuh;}{\f1165\froman\fcharset238\fprq2 @Gungsuh CE;}{\f1166\froman\fcharset204\fprq2 @Gungsuh Cyr;}{\f1168\froman\fcharset161\fprq2 @Gungsuh Greek;}\r
-{\f1169\froman\fcharset162\fprq2 @Gungsuh Tur;}{\f1170\froman\fcharset186\fprq2 @Gungsuh Baltic;}{\f1173\fmodern\fcharset0\fprq1 GungsuhChe;}{\f1171\fmodern\fcharset238\fprq1 GungsuhChe CE;}{\f1172\fmodern\fcharset204\fprq1 GungsuhChe Cyr;}\r
-{\f1174\fmodern\fcharset161\fprq1 GungsuhChe Greek;}{\f1175\fmodern\fcharset162\fprq1 GungsuhChe Tur;}{\f1176\fmodern\fcharset186\fprq1 GungsuhChe Baltic;}{\f1179\fmodern\fcharset0\fprq1 @GungsuhChe;}{\f1177\fmodern\fcharset238\fprq1 @GungsuhChe CE;}\r
-{\f1178\fmodern\fcharset204\fprq1 @GungsuhChe Cyr;}{\f1180\fmodern\fcharset161\fprq1 @GungsuhChe Greek;}{\f1181\fmodern\fcharset162\fprq1 @GungsuhChe Tur;}{\f1182\fmodern\fcharset186\fprq1 @GungsuhChe Baltic;}{\f1185\fnil\fcharset0\fprq2 @SimSun;}\r
-{\f1191\fmodern\fcharset0\fprq1 NSimSun;}{\f1197\fmodern\fcharset0\fprq1 @NSimSun;}{\f1215\fmodern\fcharset0\fprq1 MingLiU;}{\f1221\fmodern\fcharset0\fprq1 @MingLiU;}{\f1227\froman\fcharset0\fprq2 PMingLiU;}{\f1233\froman\fcharset0\fprq2 @PMingLiU;}\r
-{\f1275\fswiss\fcharset0\fprq2 Arial Unicode MS;}{\f1293\fswiss\fcharset0\fprq2 @Arial Unicode MS;}{\f1981\fswiss\fcharset238\fprq2 Shogi CE;}{\f1982\fswiss\fcharset204\fprq2 Shogi Cyr;}{\f1984\fswiss\fcharset161\fprq2 Shogi Greek;}\r
-{\f1985\fswiss\fcharset162\fprq2 Shogi Tur;}{\f1986\fswiss\fcharset186\fprq2 Shogi Baltic;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\r
-\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\stylesheet{\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid \snext0 Normal;}{\s1\li120\sb280\sa120\sl-320\slmult0\nowidctlpar\adjustright \b\f5\cgrid \sbasedon0 \snext26 heading 1;}{\s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\adjustright \b\f5\fs20\cgrid \r
-\sbasedon0 \snext0 heading 2;}{\s3\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid \sbasedon0 \snext0 heading 3;}{\s4\fi-245\li360\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \f11\fs20\cgrid \sbasedon2 \snext4 \r
-heading 4;}{\s5\li120\sb80\sl-240\slmult0\keepn\nowidctlpar\outlinelevel4\adjustright \f5\fs20\ul\cgrid \sbasedon0 \snext0 heading 5;}{\*\cs10 \additive Default Paragraph Font;}{\*\cs15 \additive \f5\fs18\up6\lang1033 \sbasedon10 footnote reference;}{\r
-\s16\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid \sbasedon0 \snext0 footnote text;}{\s17\li360\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid \sbasedon0 \snext0 Normal Indent;}{\s18\fi-240\li600\sb60\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid \snext18 Jli;}{\s19\li120\sb60\sl-240\slmult0\keep\nowidctlpar\tx520\tx920\tx1320\tx1720\tx2120\adjustright \f6\fs16\cgrid \snext19 Ex;}{\s20\li120\sb160\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid \r
-\snext29 Sa1;}{\s21\fi-240\li360\sl-240\slmult0\nowidctlpar\tx360\adjustright \f5\fs20\cgrid \snext22 Lb1;}{\s22\fi-240\li360\sb60\sl-240\slmult0\nowidctlpar\tx360\adjustright \f5\fs20\cgrid \snext22 Lb2;}{\s23\li360\sb60\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid \snext22 Lp1;}{\s24\fi-1800\li1920\sb120\sa40\sl-240\slmult0\nowidctlpar\brdrb\brdrs\brdrw15\brsp20 \brdrbtw\brdrs\brdrw15\brsp20 \tx1920\adjustright \b\f5\fs20\cgrid \snext25 Th;}{\r
-\s25\fi-1800\li1920\sb60\sl-240\slmult0\nowidctlpar\tx1920\adjustright \f5\fs20\cgrid \snext25 Tp;}{\s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid \snext0 Normal 2;}{\s27\li120\sb120\sa120\nowidctlpar\adjustright \f5\fs20\cgrid \snext0 \r
-bitmap;}{\s28\li120\sb120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid \snext29 Sa2;}{\s29\fi-240\li360\sb60\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid \snext29 Jl;}{\s30\li120\sa60\nowidctlpar\adjustright \f151\fs20\cgrid \snext30 \r
-*body;}{\s31\li120\sa60\nowidctlpar\adjustright \b\f151\fs20\cgrid \snext31 *heading;}{\s32\li120\sa60\sl-240\slmult0\nowidctlpar\adjustright \f151\fs20\cgrid \sbasedon30 \snext32 para;}{\s33\fi-280\li400\sa60\nowidctlpar\adjustright \f151\fs20\cgrid \r
-\sbasedon30 \snext33 jump;}{\s34\fi-280\li400\sa60\nowidctlpar\tx400\adjustright \f151\fs20\cgrid \sbasedon30 \snext34 list bullet;}{\s35\fi-280\li600\sa60\nowidctlpar\adjustright \f151\fs20\cgrid \sbasedon30 \snext35 jump indent;}{\r
-\s36\li120\sa60\sl-40\slmult0\nowidctlpar\brdrb\brdrs\brdrw15\brsp20 \brdrbtw\brdrs\brdrw15\brsp20 \adjustright \f151\fs20\cgrid \sbasedon30 \snext36 table rule;}{\s37\fi-280\li400\sa60\nowidctlpar\tqr\tx280\tx400\adjustright \f151\fs20\cgrid \r
-\sbasedon30 \snext37 list number;}{\s38\li120\sb100\sa60\nowidctlpar\adjustright \b\f151\fs20\cgrid \sbasedon31 \snext33 see also;}{\s39\li400\sa60\nowidctlpar\adjustright \f151\fs20\cgrid \sbasedon30 \snext39 para indent;}{\s40\fi-1800\li1920\nowidctlpar\r
-\tx1920\adjustright \b\f151\fs20\cgrid \sbasedon31 \snext36 table head;}{\s41\fi-1800\li1920\sa60\nowidctlpar\tx1920\adjustright \f151\fs20\cgrid \sbasedon30 \snext41 table text;}{\s42\li120\sb120\sa60\nowidctlpar\adjustright \f151\fs20\cgrid \r
-\sbasedon30 \snext35 see also 2;}{\s43\li120\sa60\keep\nowidctlpar\tx520\tx920\tx1320\tx1720\tx2120\adjustright \f6\fs20\cgrid \sbasedon30 \snext43 code;}{\s44\sl-120\slmult0\nowidctlpar\adjustright \f152\fs20\cgrid \snext32 *spacing;}{\s45\sl-120\slmult0\r
-\nowidctlpar\adjustright \f152\fs20\cgrid \sbasedon44 \snext45 s6;}{\s46\qj\li360\nowidctlpar\adjustright \f5\cgrid \sbasedon0 \snext46 Help Text;}{\s47\li115\sb120\sa40\sl-240\slmult0\nowidctlpar\brdrb\brdrs\brdrw15\brsp20 \brdrbtw\brdrs\brdrw15\brsp20 \r
-\adjustright \f11\fs20\cgrid \sbasedon24 \snext25 Th2;}{\s48\li115\sb120\sa40\sl-240\slmult0\nowidctlpar\brdrb\brdrs\brdrw15\brsp20 \brdrbtw\brdrs\brdrw15\brsp20 \adjustright \b\f11\fs16\cgrid \sbasedon24 \snext25 Th3;}{\s49\li115\sb200\sl-240\slmult0\r
-\nowidctlpar\adjustright \f11\fs20\cgrid \sbasedon0 \snext0 Normal 3;}{\s50\fi-1800\li1915\sb120\sa40\sl-240\slmult0\nowidctlpar\brdrb\brdrs\brdrw15\brsp20 \brdrbtw\brdrs\brdrw15\brsp20 \tx1915\adjustright \b\f11\fs20\cgrid \sbasedon0 \snext51 Thh;}{\r
-\s51\fi-1800\li1915\sb60\sl-240\slmult0\nowidctlpar\tx1915\adjustright \f11\fs20\cgrid \sbasedon0 \snext51 Tph;}{\s52\li288\ri-432\sb80\sl-240\slmult0\nowidctlpar\tx288\tx864\tx1440\adjustright \f5\cgrid \sbasedon0 \snext52 unixman1;}{\r
-\s53\li1440\ri-432\sb80\sa240\sl-240\slmult0\nowidctlpar\tx288\tx864\tx1440\adjustright \f5\cgrid \sbasedon0 \snext53 unixman2;}{\s54\li115\ri-432\sb80\sl-240\slmult0\nowidctlpar\tx288\tx864\tx1440\adjustright \f5\cgrid \sbasedon52 \snext54 unixman0;}{\r
-\s55\li288\ri-432\sb80\sa240\sl-240\slmult0\nowidctlpar\tx288\tx864\tx1440\adjustright \f5\cgrid \sbasedon52 \snext55 unixman1a;}{\s56\li115\sa60\sl-240\slmult0\nowidctlpar\adjustright \b\f5\fs20\cgrid \sbasedon2 \snext56 heading 2a;}{\r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid \sbasedon0 \snext57 endnote text;}{\*\cs58 \additive \super \sbasedon10 endnote reference;}{\*\cs59 \additive \ul\cf2 \sbasedon10 Hyperlink;}{\*\cs60 \additive \ul\cf12 \sbasedon10 \r
-FollowedHyperlink;}{\s61\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \cbpat9 \f15\fs20\cgrid \sbasedon0 \snext61 Document Map;}{\s62\li480\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid \sbasedon0 \snext62 Body Text 2;}{\r
-\s63\fi-720\li1440\sb80\sl-240\slmult0\nowidctlpar\adjustright \f2\fs20\cgrid \sbasedon0 \snext63 Body Text Indent 2;}{\s64\li120\sb80\sl-240\slmult0\nowidctlpar\tqc\tx4320\tqr\tx8640\adjustright \f5\fs20\cgrid \sbasedon0 \snext64 header;}{\r
-\s65\li120\sb80\sl-240\slmult0\nowidctlpar\tqc\tx4320\tqr\tx8640\adjustright \f5\fs20\cgrid \sbasedon0 \snext65 footer;}{\s66\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cf11\cgrid \sbasedon0 \snext66 Body Text Indent 3;}}{\*\listtable\r
-{\list\listtemplateid67698703\listsimple{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\'01;}\fi-360\li360\jclisttab\tx360 }{\listname ;}\listid74976790}{\list\listtemplateid67698703\r
-\listsimple{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\'01;}\fi-360\li360\jclisttab\tx360 }{\listname ;}\listid349260549}{\list\listtemplateid67698689\listsimple{\listlevel\r
-\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid470094698}{\list\listtemplateid67698703\listsimple{\listlevel\levelnfc0\r
-\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\'01;}\fi-360\li360\jclisttab\tx360 }{\listname ;}\listid640160996}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\r
-\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid768165129}{\list\listtemplateid67698703\listsimple{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\r
-\levelspace0\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\'01;}\fi-360\li360\jclisttab\tx360 }{\listname ;}\listid781152802}{\list\listtemplateid67698703\listsimple{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0\r
-{\leveltext\'02\'00.;}{\levelnumbers\'01;}\fi-360\li360\jclisttab\tx360 }{\listname ;}\listid903878531}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\r
-\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1002394966}{\list\listtemplateid67698703\listsimple{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\r
-\'02\'00.;}{\levelnumbers\'01;}\fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1021513731}{\list\listtemplateid67698703\listsimple{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\r
-\'01;}\fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1099714113}{\list\listtemplateid67698703\listsimple{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\'01;}\fi-360\li360\r
-\jclisttab\tx360 }{\listname ;}\listid1240552867}{\list\listtemplateid67698703\listsimple{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\'01;}\fi-360\li360\jclisttab\tx360 }{\listname \r
-;}\listid1332292840}{\list\listtemplateid67698703\listsimple{\listlevel\levelnfc0\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\'01;}\fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1358388700}\r
-{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1405952460}\r
-{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid2025940873}\r
-{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\leveljc0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid2044863907}}\r
-{\*\listoverridetable{\listoverride\listid2025940873\listoverridecount0\ls1}{\listoverride\listid1002394966\listoverridecount0\ls2}{\listoverride\listid470094698\listoverridecount0\ls3}{\listoverride\listid1099714113\listoverridecount0\ls4}\r
-{\listoverride\listid1358388700\listoverridecount0\ls5}{\listoverride\listid2044863907\listoverridecount0\ls6}{\listoverride\listid640160996\listoverridecount0\ls7}{\listoverride\listid768165129\listoverridecount0\ls8}{\listoverride\listid903878531\r
-\listoverridecount0\ls9}{\listoverride\listid781152802\listoverridecount0\ls10}{\listoverride\listid1240552867\listoverridecount0\ls11}{\listoverride\listid640160996\listoverridecount0\ls12}{\listoverride\listid349260549\listoverridecount0\ls13}\r
-{\listoverride\listid1021513731\listoverridecount0\ls14}{\listoverride\listid1405952460\listoverridecount0\ls15}{\listoverride\listid1332292840\listoverridecount0\ls16}}{\*\revtbl {Unknown;}{Tim Mann;}}{\info{\title + $ # KWinBoard: Chessboard for Windows}{\author TRIO}\r
-{\operator hgm}{\creatim\yr2009\mo9\dy9\hr14\min34}{\revtim\yr2011\mo6\dy9\hr9\min6}{\printim\yr1997\mo4\dy22\hr23\min5}{\version34}{\edmins860}{\nofpages90}{\nofwords22792}{\nofchars129918}{\*\company DEC SRC}{\nofcharsws159548}{\vern73}}\r
-\margl1417\margr1417\margt1417\margb1417 \widowctrl\endnotes\aendnotes\hyphhotz425\ftnnrlc\aftnnar\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\hyphcaps0\viewkind4\viewscale100 \fet1{\*\aftnsep \pard\plain \li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\chftnsep \r
-\par }}\sectd \linex0\headery709\footery709\colsx709\sectdefaultcl {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl4\r
-\pnlcltr\pnstart1\pnindent720\pnhang{\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}\r
-{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}\pard\plain \s1\li120\sb280\sa120\sl-320\slmult0\nowidctlpar\outlinelevel0\adjustright \b\f5\cgrid {\r
-\cs58\f1\fs20\super +{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super +}{\f1  main}}${\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\super $}{\f1  Contents}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Contents}}K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \r
-\f5\fs20\cgrid {\cs58\f1\super K}{\f1  Contents}}}{\i\f1\fs32 WinBoard}{\f1\fs32 : Chessboard for Windows\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
-\par }\pard\plain \s2\li119\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\f1\cf11 An updated description with the release of version 4.2010xxxx.\r
-\par }\pard \s2\li119\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright {\f1\cf11 \tab \tab \tab \ldblquote For the ultimate WinBoard Experience\rdblquote \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 New features since WinBoard 4.2.7 that are implemented in Allessandro Scotti\rquote s Winboard_x are highlighted in red. }{\f1\cf11 \r
-New features in the WinBoard 4.3.xx series by H.G. Muller are highlighted in green}{\f1\cf2 , that in the unified 4.4 series in blue. }{\f1\cf5 Additions for the 4.5 series are in purple}{\f1\cf11 .}{\f1 \r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Description}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Description}}}{\f1  Description\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\i\f1 WinBoard}{\f1  is a graphical user interface for chess. It displays a chessboa\r
-rd on the screen, accepts moves made with the mouse, and loads and saves game files in standard chess notation. WinBoard serves as a front-end for many different services, including:\r
-\par {\pntext\pard\plain\f3\fs20\lang1033\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard\plain \fi-360\li480\sb80\sl-240\slmult0\nowidctlpar\jclisttab\tx480{\*\pn \pnlvlblt\ilvl0\ls3\pnrnot0\pnf3\pnstart1\pnindent360\pnhang{\pntxtb \'b7}}\ls3\adjustright \r
-\f5\fs20\cgrid {\b\i\f1 Chess engines}{\f1  that run on your PC. You can play a game against an engine, set up arbitrary positions, force variations, or watch a game between two engines. }{\i\f1\cf11 Fairy-Max}{\f1  is supplied with WinBoard }{\f1\cf11 \r
-4.3.14}{\f1 , and over 100 other free chess engines are available separately. Of these, Crafty is the most popular. See }{\f1\uldb Installing Chess Engines}{\v\f1 InstallingChessEngines}{\f1  for instructions on installing additional chess engines.\r
-\par {\pntext\pard\plain\f3\fs20\lang1033\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \fi-360\li480\sb80\sl-240\slmult0\nowidctlpar\jclisttab\tx480{\*\pn \pnlvlblt\ilvl0\ls3\pnrnot0\pnf3\pnstart1\pnindent360\pnhang{\pntxtb \'b7}}\ls3\adjustright {\b\i\f1 \r
-Chess servers}{\b\f1  }{\f1 on the Internet. You can play against other Internet Chess Server (ICS) users, observe games they are playing, review games in the ICS libraries, chat, }{\f1\cf2 analyze observed games with a chess program}{\f1 \r
-, and more. WinBoard can also be used to run an automated computer player on the ICS, but this feature is for advanced users only and is subject to some caveats; see the separate file zippy.README for information.\r
-\par {\pntext\pard\plain\f3\fs20\lang1033\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \fi-360\li480\sb80\sl-240\slmult0\nowidctlpar\jclisttab\tx480{\*\pn \pnlvlblt\ilvl0\ls3\pnrnot0\pnf3\pnstart1\pnindent360\pnhang{\pntxtb \'b7}}\ls3\adjustright {\b\i\f1 \r
-The Web}{\f1  and your own saved games. You can use WinBoard as a helper application to view files in your Web browser or the Explorer. You can use it to keep track of email postal games, browse games off the net, or review games you have saved.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super K}{ Getting Started}}\r
-#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super #}{ GettingStarted}}}{\f1 Getting Started\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 WinBo\r
-ard starts up in one of three major modes: chess engine mode, ICS client mode, or game viewer mode. You cannot change between ICS and other modes while WinBoard is running, but you can access all the game viewer features directly from the other two modes.\r
\r
-You can switch from game viewer mode to chess engine mode by loading an engine through the Load Engine menu dialog, while WinBoard might make the reverse switch spontaneously if a specified engine is not valid. Also, you can start WinBoard several times t\r
-o get multiple chessboard windows running in any combination of modes.\r
-\par }\pard\plain \s20\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
-You will usually run WinBoard by choosing an item from the Windows Start menu that runs it in the mode you want. If you just double-click on WinBoard.exe, you get a startup dialog asking\r
- which mode you want. If you choose chess engine mode, you can then select from the installed engines; if you choose ICS client mode, you can then select from a list of known chess servers. More advanced users can }{\uldb customize}{\v icsNames}{\r
- these lists or type in WinBoard }{\uldb command line options}{\v Options}{ directly.\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 After starting WinBoard, you can make }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\super K}{\f1  move}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  move}}}{\f1 \r
-moves in several different ways. To move by dragging, press the left mouse button while the cursor is on one of your pieces, move the cursor to another square, and releas\r
-e the button. You can also move by clicking the left mouse button once (press and release) over one of your pieces, moving the cursor to another square, and clicking again. You drop new pieces on the board (when applicable) }{\f1\cf2 \r
-by similarly dragging them from the holdings displayed next to the board}{\f1\cf5 . The old way of selecting them from a context menu can still be enabled by an option. In that case,}{\f1 \r
- press the right mouse button over a square to bring up the menu; no menu will come up in modes where dropping a new piece is not permitted. }{\f1\cf5 \r
-Normally pressing the right mouse button will enable you to see the position at the end of the PV given by an active engine as thinking output. Moving the mouse with the right button kept down will allow you to step through this PV.}{\f1\cf2  }{\f1 \r
-You can also make moves by typing them in standard algebraic chess notation. Either a dialog box will pop up for you to type into, or in ICS mode, your typing will be redirected into the ICS interaction window. }{\f1\cf2 \r
-In the dialog box you can also type a move number, to call up the position of the current game after that move in the display, or (in Edit Position mode) type a FEN.\r
-\par }{\f1 When WinBoard}{\i\f1  }{\f1 is iconized, its }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  icon}}#{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  icon}}}{\f1 icon is a white knight if it is White's turn to move, a black knight if it is Black's turn.\r
-\par }{\f1\cf5 Next to \r
-the main window, WinBoard does use many auxiliary windows for dedicated tasks. We mention the Engine-Output window (formerly analysis window) for a better display of the thinking output of engines (which you can then right-click to play out the selected P\r
-V\r
- in the board window), the Game-History window (where the game is displayed in SAN, and where you can double-click a move to call up the corresponding position in the board window), the Evaluation Graph window (where you see a graph of engine scores vs. m\r
-o\r
-ve number, and can call up the corresponding position in the board window by clicking a point on the graph), the Comment popup (where you can right-click variation comments to play them out on the main board, or add and edit comments), the Game-List windo\r
-w (where you see an overview of all games in a game file you loaded, and can select a game for loading by clicking on it, and limit the list to games you are interested in by filtering). These auxiliary windows can be opened or closed as the need arises.\r
-\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\f1 Additional Information\r
-\par }\pard\plain \s29\fi-240\li360\sb60\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\uldb Menus}{\v\f1\uldb Menus}{\f1\uldb \r
-\par Shortcut Buttons}{\v\f1\uldb Buttons}{\f1\uldb \r
-\par Command Line Options}{\v\f1 Options}{\f1 \r
-\par }{\f1\uldb Initialization Files}{\v\f1\uldb Files}{\f1\uldb \r
-\par Installing Chess Engines}{\v\f1\uldb InstallingChessEngines}{\f1\uldb \r
-\par Firewalls}{\v\f1 Firewalls}{\f1 \r
-\par }{\f1\uldb Limitations}{\v\f1 Limitations}{\f1\uldb \r
-\par Authors}{\v\f1 Authors}{\f1 \r
-\par }{\f1\uldb Copyright}{\v\f1 Copyright}{\f1 \r
-\par }{\f1\uldb Frequently Asked Questions}{\v\f1 !ExecFile(FAQ.html)}{\f1 \r
-\par }\pard\plain \s1\li120\sb280\sa120\sl-320\slmult0\nowidctlpar\outlinelevel0\adjustright \b\f5\cgrid {\f1\fs20 \page }{\cs58\f1\fs20\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super \r
-K}{\f1  Menus}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Menus}}${\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\super $}{\f1  Menus}}+{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super +}{\f1  main}}}{\f1\fs20 MENUS\r
-\par }\pard\plain \s29\fi-240\li360\sb60\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\uldb File Menu}{\v\f1 FileMenu}{\f1 \r
-\par }{\f1\uldb Edit Menu}{\v\f1 EditMenu}{\f1 \r
-\par }{\f1\uldb View Menu}{\v\f1 ViewMenu}{\f1 \r
-\par }{\f1\uldb Mode Menu}{\v\f1 ModeMenu}{\f1 \r
-\par }{\f1\uldb Action Menu}{\v\f1 ActionMenu}{\f1 \r
-\par }{\f1\uldb Engine Menu}{\v\f1 EngineMenu}{\f1 \r
-\par }{\f1\uldb Options Menu}{\v\f1 OptionsMenu}{\f1 \r
-\par }{\f1\uldb Help Menu}{\v\f1 HelpMenu}{\f1 \r
-\par }{\f1\uldb ICS Interaction Context Menu}{\v\f1 ICSInteractionContextMenu}{\f1 \r
-\par }\pard\plain \s1\li120\sb280\sa120\sl-320\slmult0\nowidctlpar\outlinelevel0\adjustright \b\f5\cgrid {\f1\fs20 \page }{\cs58\f1\fs20\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super \r
-K}{\f1 File Menu}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1 FileMenu}}${\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\super $}{\f1 File Menu}}+{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super +}{\f1  main}}}{\f1\fs18\up6  }{\f1\fs20 File Menu\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf6 New Game}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 NewGame}}}{\f1\cf6  New Game (former }{\f1 Reset}{\f1\cf6 )\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-Resets WinBoard and the chess engine (if any) to the beginning of a new chess game. In Internet Chess Server mode, clears the current state of WinBoard, then resynchronizes with ICS by sending a }{\b\f1 refresh }{\f1 command. If you want\r
- to stop playing, observing, or examining a game on ICS, use an appropriate command from the }{\f1\uldb Action}{\v\f1 ActionMenu}{\f1  menu, not }{\f1\cf6 New Game}{\f1 .\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf11 New Shuffle Game}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 NewShuffleGame}}}{\f1\cf11  New Shuffle Game\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 Brings you to a dialog box where you can enter the number of an opening setup for shuffle variants like FR\r
-C, or ask for a random number. After pressing OK, a new game is set up, using this position. The chosen position will continue to be used on every subsequent \ldblquote New Game\rdblquote , }{\f1\cf11 \r
-even if you are playing a variant that normally is not shuffled, until you select a new variant through the \ldblquote New Variant\'85\rdblquote  menu.}{\f1\cf6  If you enter \ldblquote -1\rdblquote \r
- for the position number,  new random number is drawn before every game.\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cf11 The type of shuffling that is done in reaction to a given position number obeys restrictions that depend on the selected va\r
-riant. In variants that allow castling, Kings remain on the central files, Rooks in the corners. In games with FRC-style castlings, the King starts between the Rooks, but apart from that they could be anywhere. In games without castling, there are no rest\r
-rictions on King and Rook placement. Pairs of color-bound pieces (such as Bishops) will be placed on oppositely colored squares. In ICS mode this feature has no effect, as the ICS determines the starting position.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf11 New Variant}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 NewVariant}}}{\f1\cf11  New Variant\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 Select a new variant. There are controls to enter a board width, board height and holdings size, but normally you leave them at \lquote -1\rquote \r
-, which means the default value for the selected variant will be used (e.g. 8x8 for normal Chess, 9x10 for xiangqi, 10x8 for capablanca, holdings for 5 \r
-pieces in crazyhouse). You can set a deviating value for each of the three parameters (e.g. to play a crazyhouse version of xiangqi or capablanca you would set the holdings to 6 or 7). If the board width deviates from the default, the game will start with\r
- an empty board. \r
-\par The variant will remain in force until you select a new one; i.e. subsequent \ldblquote New Game\rdblquote  commands will start a new game of the same variant. In ICS mode this command has no effect, as the ICS determines which variant will be played.\r
-\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Load Game}\r
-}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  LoadGame}}}{\f1  Load Game\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-Plays a game from a record file. A popup dialog prompts you for the filename. If the file contains more than one game, a second popup dialog displays a list of games (with information drawn from their PGN tags, if any), and you can select the one you\r
- want.\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 The game file parser will accept PGN (portable game notation), or in fact almost any file that contains moves in algebraic notation. Notation of the form }{\i\f1 P@f7}{\r
-\f1  is accepted for piece-drops in bughouse games; this is a nonstandard extension to PGN. If \r
-the file includes a PGN position (FEN tag), or a WinBoard position diagram bracketed by "[--" and "--]" before the first move, the game starts from that position. Text enclosed in parentheses, square brackets, or curly braces is assumed to be commentary a\r
-nd is displayed in a pop-up window. Any other text in the file is ignored. PGN variations (enclosed in parentheses) }{\f1\cf5 \r
-appear in the comment popup amongst genuine comments; to walk the variation tree, you have to right-click them in this window. This will cause WinBoard to load them as the current line. You can revert to the previous line with the }{\f1\uldb\cf5 Revert}{\r
-\v\f1\cf5 variant }{\f1\cf5  command. (Beware! Currently WinBoard\rquote s PGN parser is limited to 3 levels of nesting in variations.)}{\f1  The nonstandard PGN tag }{\f2 [Variant "varname"]}{\f1  functions similarly to the }{\f1\uldb variant}{\v\f1 \r
-variant }{\f1  command-line option, allowing games in certain chess variants to be loaded. }{\f1\cf5 Note that it has to appear before any FEN tag!}{\f1  There is also a heuristic to recognize chess variants from the }{\f2 Event}{\f1 \r
- tag, by looking for the strings that the Internet Chess Servers put there when saving variant ("wild") games.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Load Position}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  LoadPosition}}}{\f1  Load Position\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sets up a position from a position file. A popup dialog prompts you for the filename. Position files must be in FEN (Forsythe-Edwards notation), or in the format that the }\r
-{\f1\uldb Save Position}{\f1  command writes when }{\f1\uldb oldSaveStyle}{\v\f1 oldSaveStyle}{\f1  is turned on. }{\f1\cf11 \r
-Note that many variants require an extension of the original FEN standard. WinBoard tries to be as universal as possible in understanding FENs when different standards a\r
-re raound, but has to make a choice when writing them. In FRC is uses Shredder-FEN (Haha castling notation) , but it understands KQkq as the outermost Rook, so it also reads X-FEN. In Crazyhouse / Bughouse it appends the holdings immediately behind the bo\r
-a\r
-rd info between brackets [], but on input it also understands bFEN (which puts it behind a slash / as if it were an extra board rank). It uses a tilde ~ behind a piece to indicate it is really a promoted Pawn (like bFEN). In Shogi the holdings are printed\r
- like in Crazyhouse, but promoted pieces are represented by a plus sign + before the letter of the original piece. Letters used for the pieces can be set with the /pieceToCharTable command-line option.}{\f1 \r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Save Game}\r
-}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  SaveGame}}}{\f1  Save Game\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Appends a record of the current game to a \r
-file. A popup dialog prompts you for the filename. If the game did not begin with the standard starting position, the game file includes the starting position used. Game files are saved in the PGN (portable game notation) format, unless the }{\f1\uldb \r
-oldSaveStyle}{\v\f1 oldSaveStyle}{\f1  option is True, in which case they are saved in an older format that is specific to WinBoard}{\i\f1 .}{\f1  Both formats are human-readable, and both can be read back by the Load Game command. Notation of the form }{\r
-\i\f1 P@f7}{\f1  is generated for piece-drops in bughouse games; this is a nonstandard extension to PGN.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Save Position}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  SavePosition}}}{\f1  Save Position\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Appends a diagram of the current position to a file. A popup dialog prompts you for the filename. Positions are saved in FEN (Forsythe-Edwards notation) format, unless the \r
-}{\f1\uldb oldSaveStyle}{\v\f1 oldSaveStyle}{\f1  option is True, in which case they are saved in an older, human-readable format that is specific to WinBoard}{\i\f1 .}{\f1 \r
- Both formats can be read back by the Load Position command; however, currently Load Position can load only the first position in a file.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf11 Save Diagram}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 Save Diagram}}}{\f1\cf11  Save Diagram\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 Writes the current board display as a bitmap file. With this command you can use WinBoard as a diagram generator.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Exit}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Exit}}}{\f1  Exit\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Exits from WinBoard.\r
-\par }\pard\plain \s1\li120\sb280\sa120\sl-320\slmult0\nowidctlpar\outlinelevel0\adjustright \b\f5\cgrid {\f1\fs20 \page }{\cs58\f1\fs20\super K{\footnote\ftnalt \pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\b\f1\super K}\r
-{\f1  Edit Menu}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  EditMenu}}${\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\super $}{\f1  Edit Menu}}+{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super +}{\f1  main}}}{\f1\fs20  Edit Menu\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Copy Ga\r
-me To Clipboard}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  CopyGameToClipboard}}}{\f1  Copy Game To Clipboard\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {Copies the record of the current game to the Windows clipboard in PGN (portable game notation) format.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Copy Position Clipboard}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  CopyPositionToClipboard}}}{\f1  Copy Position To Clipboard\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Places a diagram of the current position (in Forsythe-Edwards notation) into the Windows clipboard.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Paste Game From Clipboard}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  PasteGameFromClipboard}}}{\f1  Paste Game From Clipboard\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {Plays a game from the Windows clipboard.}{\f1  See }{\f1\uldb Load Game}{\v\f1 LoadGame}{\f1  for a discussion of game file format and parser behavior.}{\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Paste Position Clipboard}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  PastePositionFromClipboard}}}{\f1  Paste Position From Clipboard\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sets up a position from the Windows clipboard. Position must be in FEN (Forsythe-Edwards notation). Puts WinBoard into }{\f1\uldb Edit Game}{\v\f1 EditGame}{\f1 \r
- mode if it was not there already.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Edit Game}\r
-}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  EditGame}}}{\f1  Edit Game\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Allows you to make moves for both Black and White, and to change moves after backing up with the }{\f1\uldb Backward}{\v\f1 Backward}{\f1 \r
- command. The clocks do not run, but you can adjust their reading by clicking on them. A left-click subtracts one minute, a right-click adds one minute.\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-In chess engine mode, the chess engine continues to check moves for legality but does not participate in the game. You can bring the chess engine back into the game by selecting }{\f1\uldb Machine White}{\v\f1 MachineWhite}{\f1 , }{\f1\uldb Machine Black}\r
-{\v\f1 MachineBlack}{\f1 , or }{\f1\uldb Two Machines}{\v\f1 TwoMachines}{\f1 .\r
-\par In ICS mode, the moves are not sent to the ICS: Edit Game takes WinBoard out of ICS Client mode and lets you edit games locally. If you want to edit a game on ICS in a way that other ICS users can see, use the ICS }{\b\f1 examine}{\f1 \r
- command or start an ICS match against yourself.\r
-\par }{\f1\cf5 If you edit an existing game locally by playing new moves while not at the end, you will create a new variation. (New moves at the end will simply be appended to the existing game.) WinBoard will then shelve the original variation (\lquote \r
-main line\rquote ) from beyond the point where you played a new move. You can later revert to that new line with the }{\f1\uldb\cf5 Revert}{\f1\cf5  or }{\f1\uldb\cf5 Annotate}{\f1\cf5 \r
- commands. This will discard the variation you just entered, and restores the moves of the ori\r
-ginal main line that you overwrote. This procedure can be applied recursively, so you an make (sub-)variations on variations. Rather than entering variations move by move, you can also recall them from PGN variations in the Comment window, by right-clicki\r
-ng those.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Edit Position}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  EditPosition}}}{\f1  Edit Position\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-Lets you set up an arbitrary board position. Use the left mouse button to drag pieces to new squares, or to delete a piece by dragging it off the board or dragging an empty square on top of it. To drop a new piece on a square, pre\r
-ss the right mouse button over the square. This brings up a menu of pieces. Additional menu choices let you empty the square or clear the board. You can set the side to play next by clicking on the White or Black indicator at the top of the screen. }{\r
-\f1\cf11 The pop-up menu also contains options to \lquote promote\rquote  or \lquote demote\rquote \r
- the piece currently in the square. (In variants like Crazyhouse a piece has a different representation when it is a promoted Pawn rater than an original piece.) This allows you to create some of the n\r
-ot-so-common pieces (e.g. a Unicorn is a promoted King, a Commoner is a demoted King).}{\f1 \r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Selecting Edit Position causes WinBoard}{\i\f1  }{\f1 to discard all remembered moves in the current game.\r
-\par In ICS mode, change made to the position by Edit Position are not sent to th\r
-e ICS: Edit Position takes WinBoard out of ICS Client mode and lets you edit positions locally. If you want to edit positions on ICS in a way that other ICS users can see, use the ICS }{\b\f1 examine}{\f1 \r
- command, or start an ICS match against yourself. (See also }{\f1\uldb ICS Client}{\v\f1 ICSClient}{\f1  above.)\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Edit Tags}\r
-}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  EditTags}}}{\f1  Edit Tags\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Lets you edit the PGN (portable game notation) tags for the current game. After editing, the tags must still conform to the PGN tag syntax:\r
-\par }\pard\plain \s43\li520\sa60\keep\nowidctlpar\tx520\tx920\tx1320\tx1720\tx2120\adjustright \f6\fs20\cgrid {\f2 \line <tag-section> ::= <tag-pair> <tag-section>\line                   <empty>\line <tag-pair>    ::= [ <tag-name> <tag-value> ]\line \r
-<tag-name>    ::= <identifier>\line <tag-value>   ::= <string>\r
-\par }\pard\plain \s20\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 See the PGN Standard for full details. Here is an example:\r
-\par }\pard\plain \s43\li520\sa60\keep\nowidctlpar\tx520\tx920\tx1320\tx1720\tx2120\adjustright \f6\fs20\cgrid {\f2 \line [Event "Portoroz Interzonal"]\line [Site "Portoroz, Yugoslavia"]\line [Date "1958.08.16"]\line [Round "8"]\line [White "Rob\r
-ert J. Fischer"]\line [Black "Bent Larsen"]\line [Result "1-0"]\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-Any characters that do not match this syntax are silently ignored. Note that the PGN standard requires all games to have at least the seven tags shown above. Any that you omit will be filled in by WinBoard with }{\f2 "?"}{\f1  (unknown value) or }{\f2 "-"\r
-}{\f1  (inapplicable value).\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Edit Comment}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  EditComment}}}{\f1  Edit Comment\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Adds or modifies a comment on the current position. Comments are saved by }{\f1\uldb Save Game}{\v\f1 SaveGame}{\f1  and are displayed by }{\f1\uldb Load Game}{\v\f1 \r
-LoadGame}{\f1 , }{\f1\uldb Forward}{\v\f1 Forward}{\f1 , and }{\f1\uldb Backward}{\v\f1 Backward}{\f1 .\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Edit Bookt\r
-}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  EditBook}}}{\f1  Edit Book\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Pops up a window listing the moves available in the GUI book (specified in the }{\f1\uldb Common Engine Settings}{\f1 \r
- dialog) from the currently displayed position, together with their weights and (optionally in braces) learn info. You can then edit this list, e.g. changing the weights or}{\v\f1 Backward}{\f1 \r
- learn info, delete a move (by deleting the line it is on), or even add moves by adding a line. (But be very careful to use the correct format and make sure the move is legal. Invalid lines will result in undefined behavior, which\r
- can include loss of all moves listed below it!) On pressing OK the modified info will be written back to the book, replacing the original book contents for that position. Note that the listed percentages are neither used nor updated when you change weigh\r
-ts; they are just there to aid interpretation of the weights originally in the book.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf11 Enter Username}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 EnterUsername}}}{\f1\cf11  Enter Username\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cf11 Allows you to type the name of the human player, which will appear in the PGN header and in the window title.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Revert}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Revert}}}{\f1  Revert\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If you are examining a game on the ICS, issues the ICS command }{\b\f1 revert}{\f1 . }{\f1\cf2 \r
-In local mode, it reverts to the previous line that was loaded in WinBoard, before you started entering a variation on it in }{\f1\uldb\cf2 Edit Game}{\v\f1\cf2 EditGame}{\f1\cf2  or }{\f1\uldb\cf2 Analyze}{\v\f1\cf2 EditGame}{\f1\cf2  mode.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf5\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super K}{\r
-\f1\cf5  Annotate}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super #}{\f1\cf5  Annotate}}}{\f1\cf5  Annotate\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf5 Similar to the }{\f1\uldb\cf5 Revert}{\f1\cf5  command, but in l\r
-ocal mode it will add the variation you are abandoning as a comment to the move where it first deviated, in PGN variation format (i.e. in parentheses).\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Truncate Game}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  TruncateGame}}}{\f1  Truncate Game\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Discards all remembered moves of the game beyond the current position. Puts WinBoard into }{\f1\uldb Edit Game}{\v\f1 EditGame}{\f1  mode if it was not there already.\r
-\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Backward}}\r
-#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Backward}}}{\f1  Backward\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Steps backward through a series of remembered moves. The }{\b\f1 <}{\f1  button is equivalent to selecting Backward}{\f1\cf2 , as is turning the mouse wheel towards you}{\r
-\f1 . In most modes, Backward only lets you look \r
-back at old positions; it does not retract moves. This is the case if you are playing against a chess engine, playing or observing a game on the ICS, or loading a game. If you select Backward in any of these situations, you will not be allowed to make a d\r
-ifferent move. Use }{\f1\uldb Retract Move}{\v\f1 RetractMove}{\f1  or }{\f1\uldb Edit Game}{\v\f1 EditGame}{\f1  if you want to change past moves.\r
-\par If you are examining a game on the ICS, the behavior of Backward depends on whether WinBoard}{\i\f1  }{\f1 is in }{\f1\uldb Pause}{\v\f1 Pause}{\f1  mode. If Pause mode is off, Backward issues the ICS command}{\b\f1  backward}{\f1 \r
-, which backs up everyone's view of the game and allows you to make a different move. If Pause mode is on, Backward only backs up your local view.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Forward}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Forward}}}{\f1  Forward\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Steps forward through a series of remembered moves (undoing the effect of }{\f1\uldb Backward}{\v\f1\uldb Backward}{\f1 ) or through a game file. The }{\b\f1 >}{\f1 \r
- button is equivalent}{\f1\cf2 , as is turning the mouse wheel away from you}{\f1 .\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If you are examining a game on the ICS, the behavior of Forward depends on whether WinBoard}{\i\f1  }{\f1 is in }{\f1\uldb Pause}{\v\f1 Pause}{\f1 \r
- mode. If Pause mode is off, Forward issues the ICS command}{\b\f1  forward}{\f1 \r
-, which moves everyone's view of the game forward along the current line. If Pause mode is on, Forward only moves your local view forward, and it will not go past the position the game was in when you paused.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Back to Start}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  BacktoStart}}}{\f1  Back to Start\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Jumps backward to the first remembered position in the game. The }{\b\f1 << }{\f1 button is equivalent.\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 In most modes, Back to Start only lets you look back at old positions; it does not retract moves. This is the case if you are playing against a chess engine, playing o\r
-r observing a game on the ICS, or loading a game. If you select Back to Start in any of these situations, you will not be allowed to make a different move. Use }{\f1\uldb Retract Move}{\v\f1 RetractMove}{\f1  or }{\f1\uldb Edit Game}{\v\f1 EditGame}{\f1 \r
- if you want to change past moves; or use }{\f1\uldb New Game}{\v\f1 NewGame}{\f1  to start a new game.\r
-\par If you are examining a game on the ICS, the behavior of Back to Start depends on whether WinBoard}{\i\f1  }{\f1 is in }{\f1\uldb Pause}{\v\f1 Pause}{\f1  mode. If Pause mode is off, Backward issues the ICS command }{\b\f1 backward 999999}{\f1 \r
-, which backs up everyone's view of the game to the start and allows you to make different moves. If Pause mode is on, Back to Start only backs up your local view.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Forwa\r
-rd to End}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  ForwardtoEnd}}}{\f1  Forward to End\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Jumps forward to the last position in the game. The }{\b\f1 >>}{\f1  button is equivalent.\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If you are examining a game on the ICS, the behavior of Forward to End depends on whether WinBoard}{\i\f1  }{\f1 is in }{\f1\uldb Pause}{\v\f1 Pause}{\f1 \r
- mode. If Pause mode is off, Forward to End issues the ICS command }{\b\f1 forward 999999}{\f1 , which moves everyone's view of the game forward to the end of the current line. If Pause mode \r
-is on, Forward to End only moves your local view forward, and it will not go past the position the game was in when you paused.\r
-\par }\pard\plain \s1\li120\sb280\sa120\sl-320\slmult0\nowidctlpar\outlinelevel0\adjustright \b\f5\cgrid {\f1\fs20 \page }{\cs58\f1\fs20\super K{\footnote\ftnalt \pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\b\f1\super K}\r
-{\f1  View Menu}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  ViewMenu}}${\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\super $}{\f1  View Menu}}+{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super +}{\f1  main}}}{\f1\fs20  View Menu\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Flip View}\r
-}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  FlipView}}}{\f1  }{\f1\ul Flip View}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Inverts your view of the chessboard.\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If you are playing a game on the ICS, the board is always orie\r
-nted at the start of the game so that your pawns move from the bottom of the window towards the top. Otherwise, the starting position is determined by the }{\f1\uldb flipView}{\v\f1 flipViewOption}{\f1  command line option.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\ul\cf11 Swap Clocks}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\ul\cf11 SwapClocks}}}{\f1\cf11  }{\f1\ul\cf11 Swap Clocks}{\f1\cf11 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 Interchanges the position of the white and\r
- black clocks on the screen. Intended for manually-operated computer-computer games, where the monitor is standing to the side of the playing board, to make sure that the operator sees the time of his own machine on his side of the table. Note that it is \r
-possible to adjust the clocks in steps of one minute, by left- (decrement) or right-clicking (increment) it with the mouse in \ldblquote Edit Game\rdblquote  mode. (Clicking the clocks in other modes is interpreted as claiming the flag.)\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf6 Show Engine Output}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 Show Engine Output}}}{\f1\cf6  Show Engine Output\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cf6 Open a new window dedicated to showing the thinking output of the engine(s), as controlled by \ldblquote Show Thinking\rdblquote . }{\cf11 \r
-In ICS mode kibitzed info of an opponent engine can appear here as well, under control of the /autoKibitz option. }{\cf5 Right-clicking a line of thinking output will al\r
-low you to step through the PV it contains on the main board, by vertically moving the mouse, keeping the right-button pressed.\r
-\par WinBoard will display lines of thinking output of the same depth ordered by score, (highest score on top), rather than in the or\r
-der the engine produced them. Usually this amounts to the same, as a normal engine search will only find new PV (and emit it as thinking output) when it searches a move with a higher score than the previous variation. But when the engine is in multi-varia\r
-t\r
-ion mode this needs not always be true, and it is more convenient for someone analyzing games to see the moves sorted by score. The order in which the engine found them is only of interest o the engine author, and can still be deduced from the time or nod\r
-e count printed with the line.}{\cf6 \r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf6 Show Move History}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 Show Move History}}}{\f1\cf6  Show Move History\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cf6 Open a new window dedicated to showing the game currently in progress. Double-clicking on a move selects the corresponding position in the board display.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf6 Show Evaluation Graph}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 Show Evaluation Graph}}}{\f1\cf6  Show Evaluation Graph\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cf6 Open a new window dedicated to displaying a graph, representing the development of the engine score(s) from the current game over time. (Needs \ldblquote show Thinking\r
-\rdblquote  to be enabled in order to work). Clicking a point on the graph selects the corresponding position in the board display.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Show Ga\r
-me List}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  ShowGameList}}}{\f1  Show Game List\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Shows or hides the list of games generated by the last }{\f1\uldb Load Game}{\v\f1 LoadGame}{\f1  command.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf2\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf2\super K}{\r
-\f1\cf2  Open Chat Window}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf2\super #}{\f1\cf2  Open Chat Window}}}{\f1\cf2  Open Chat Window\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cf2 Open a new window that in ICS mode can be used to display messages received from ICS tell commands from a specified ICS handle, from a chan\r
-nel (when you set the handle to the channel number), }{\cf5 shouts / c-shouts,}{\cf2  or whispers }{\cf5 / kibitzes}{\cf2  from co-observers of a game (when you set the handle to }{\cf5 \ldblquote \rdblquote shouts, \ldblquote c-shouts\rdblquote , \r
-\ldblquote whisper\rdblquote  or \ldblquote kibitzes\rdblquote }{\cf2 ). You have to press the \ldblquote Change\rdblquote  button in the chat window to activate the entered handle}{\cf5 , or type <Enter>}{\cf2 \r
-. Typing into the bottom field of the window will send tell messages to the handle or channel, or whispers to co-observers. You can open up to }{\cf5 five}{\cf2  chat windows. Messages that are diverted to such a chat windo\r
-w will not appear in the ICS interaction window. }{\cf5 A window dedicated to shouts will also capture c-shouts (if there is no dedicated c-shout box) and \lquote It\rquote \r
- messages, recognizable on the type of brackets used around the shouter name ( [ ], ( ) or < >, respectively).}{\cf6 \r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Type In Move}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  TypeInMove}}}{\f1  Type In Move\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-Pops up a dialog box, into which you can type moves in standard algebraic chess notation. (You can also get this dialog box by simply starting to type over the chessboard, except in ICS mode, where such typing is redirected into the \r
-ICS interaction window.) }{\f1\cf5 Typing a number will have the same effect as stepping forward or backward to the position after that move. In Edit Position mode you can also type a FEN to set up the position.}{\f1 \r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Tags}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Tags}}}{\f1  Tags\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Shows a window with PGN tags of the current game. Currently a duplicate of Edit Tags in the edit menu.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Comments}}\r
-#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Comments}}}{\f1  Comments\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Shows a window with Comments to the current move. Currently a duplicate of Edit Comment in the Edit menu.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Game List Tags}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  GameListTags}}}{\f1  }{\f1\ul Game List Tags}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Lets you select which information is displayed in the Game List window.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\ul\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super K}{ Board Options}\r
-}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super #}{ BoardOptions}}}{\f1\ul Board\r
-\par }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Board Size}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid \r
-{\cs58\f1\super #}{\f1  BoardSizeCmd}}}{\f1  Board Size\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-Determines how large the board will be and what fonts and piece bitmaps will be used. On a Titanic board the piece bitmaps are 129x129 pixels, on Colossal 116x116, Giant 108x108, Huge 95x95, Big 87x87, Large 80x80, Bulky 72x7\r
-2, Medium 64x64, Moderate 58x58, Average 54x54, Middling 49x49, Mediocre 45x45, Small 40x40, Slim 37x37, Petite 33x33, Dinky 29x29, Teeny 25x25, and Tiny 21x21. The smaller boards have no system menu, but you can minimize or close them from the File menu.\r
-\r
-\par }\pard\plain \s20\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 You can also change the board size by dragging the window edges or corners with the mouse. The board will snap to the largest size that fits into the area you outline.\r
-\r
-\par }{\cf11 Note that only sizes Bulky, Middling and to a lesser extent Petite have built-in bitmaps\r
- for the non-FIDE- pieces. Archbishop, Chancellor and the wildcard Lance exist in all sizes from Petite to Bulky, though. In size Moderate, variant shogi uses the traditional Japanese piece representation.}{\f1\cf11 \r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Board Colors}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  BoardColors}}}{\f1  Board Colors\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Lets you change the colors WinBoard is using to draw the board and pieces.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf11 All White}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 AllWhite}}}{\f1\cf11  All White\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 \r
-Uses the representation of the white pieces (a filled-in black outline) also for the black pieces (where you can fill them with another color to distinguish them). If you do not choose a very dark color\r
- for the black pieces, they look very ugly without outline, and using this option can fix that.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf11 Flip Black}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 FlipBlack}}}{\f1\cf11  Flip Black\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 Displays the black pieces upside down (or the white pieces in \ldblquote Flip View\rdblquote ). This is useful in Shogi, when you want to use the traditional Japanese\r
- representation of the pieces.\r
-\par }\pard\plain \s5\li115\sb80\sl-240\slmult0\nowidctlpar\outlinelevel4\adjustright \f5\fs20\ul\cgrid {\b \r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Fonts}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Fonts}}}{\f1  }{\f1\ul Fonts}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-Lets you change the fonts WinBoard is using.  The clock font, message font and coordinates font are specific to each board size.  The tags font, comments font and ICS Interaction font are not dependent on the current size of the board.  The \ldblquote \r
-Revert to Defaults\rdblquote  button will reset the clock font, message font and coordinates font for the current board size, and will set the tags font, message font and Ics Interaction font for all board sizes.\r
-\par }\pard\plain \s1\li120\sb280\sa120\sl-320\slmult0\nowidctlpar\outlinelevel0\adjustright \b\f5\cgrid {\f1\fs20 \page }{\cs58\f1\fs20\super K{\footnote\ftnalt \pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\b\f1\super K}\r
-{\f1  Mode Menu}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  ModeMenu}}${\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\super $}{\f1  Mode Menu}}+{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super +}{\f1  main}}}{\f1\fs20  Mode Menu\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Machine White}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  MachineWhite}}}{\f1  Machine White\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Forces the chess engine to play white.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Machine Black}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  MachineBlack}}}{\f1  Machine Black\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Forces the chess engine to play black.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Two Machines}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  TwoMachines}}}{\f1  Two Machines\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Starts a game between two chess engines.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf11 Machine Both}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 Machine Both}}}{\f1\cf11  Machine Both\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 A single chess engine plays itself. Mainly useful for pseudo-engines, that are in\r
- fact communication links to another machine, where you want to observe a game that is being played. (E.g. the gothic-chess.com server). This command is not implemented yet (version 4.3.14).\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Analysis Mode}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  AnalysisMode}}}{\f1  Analysis Mode\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 In this mode, you can make moves for both sides \r
-on the board. After each move, the chess engine will think about possible replies and display its analysis in a separate window. Some engines allow you to request not merely the score and continuation for the best move, but for several moves (\lquote \r
-multi-PV\rquote ). With such engines the number of moves that is displayed can be altered by right-clicking on the words \lquote fewer\rquote  or \lquote more\rquote \r
- displayed above the engine output. Crafty was the first engine to support analysis, but by now there are many others that support it as well. }{\f1\cf5 With respect to playing variations, the same holds as in }{\f1\uldb\cf5 Edit Game}{\f1\cf5  mode.}{\r
-\f1 \r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cf2 From WinBoard 4.4 on this function can also be invoked in \lquote zippy mode\rquote \r
-, i.e. when you are logged on to an ICS with an engine loaded. In that case it is not your own moves that t\r
-he engine analyzes, but the moves that are played in a game on the ICS that you are observing. You must start observing before you start the analysis mode! See the file zippy.README for how to connect to an ICS and a chess engine running on your local com\r
-puter at the same time. (Basically this amounts to adding the /zp command-line option in addition to all options you would need for connecting to the ICS, as well as those needed for running the chess engine.)\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Analyze\r
- File}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  AnalyzeFile}}}{\f1  Analyze File\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 In this mode, you can load a ga\r
-me from a file, and the chess engine will analyze each move as in Analysis Mode. Crafty was the first engine to support this feature, but by now there are many others that support it as well. }{\f1\cf5 \r
-From WinBoard 4.5.0 on the operation of this feature has been sl\r
-ightly changed: after loading the file, WinBoard will auto-play the moves while the engine is analyzing, and store the results of the analysis. In particular, it captures the score and depth of the last analysis line for every position (so it will appear \r
-as comment in the PGN file when you save the game), and add the PV as a comment on PGN variation format.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Edit Game}\r
-}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  EditGameMode}}}{\f1  Edit Game\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Duplicate of the item in the Edit menu. Note that Edit Gama is WinBoard\rquote s idle mode, and can be used to switch off other, active modes. (E.\r
-g. it it can be used to leave AnalysisMode, stop a game between Two Machines, or leave Edit Position.)\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Edit Position}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  EditPositionMode}}}{\f1  Edit Position\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Duplicate of the item in the Edit menu.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Training}}\r
-#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Training}}}{\f1  Training\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {Training mode lets you interactively guess the moves of a game for one of the player\r
-s. While in Training mode, the navigation buttons are disabled. You guess the next move of the game by playing the move on the board (or using the }{\uldb Type In Move}{\v\uldb TypeInMove}{\r
- command). If the move played matches the next move of the game, the move is accepted and the opponent\rquote s response is autoplayed.  If the move played is incorrect, an error message is displayed. \r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  ICS Client\r
-}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  ICSClient}}}{\f1  ICS Client\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 This is the normal mode when WinBoard is connected to a chess server. If you have moved into Edit Game or Edit Position mode, you can select this option to get out.\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-When you run WinBoard in ICS mode, it starts up a console window in which you can type commands and receive text responses from the chess server. You can use the standard Windows editing keys to edit your command line before \r
-pressing Enter. The console window keeps a history of the last few commands you typed. Press the up-arrow key to go back to a previous command; press the down-arrow key to go forward again to a later command. Press the right mouse button in the output are\r
-a for a }{\f1\uldb context menu}{\v\f1 ICSInteractionContextMenu}{\f1  of editing commands and ICS command shortcuts.\r
-\par Some useful ICS commands include }{\b\f1 who}{\f1  to see who is logged on, }{\b\f1 games}{\f1  to see what games are being played, }{\b\f1 match}{\f1  to challenge another player to a game, }{\b\f1 observe}{\f1  to observe an ongoing game, }{\b\f1 \r
-examine}{\f1  or }{\b\f1 smoves}{\f1  to review a recently completed game, and of course }{\b\f1 help}{\f1 . \r
-\par Whenever you ask to observe an ongoing game, review a completed game, or resume an adjourned game, WinBoard retrieves and parses the list of past moves from the ICS, so you can review them with }{\f1\uldb Forward}{\v\f1 Forward}{\f1  and }{\f1\uldb \r
-Backward}{\v\f1 Backward}{\f1  or save them with }{\f1\uldb Save Game}{\v\f1 SaveGame}{\f1 .\r
-\par }{\f1\cf5 In ICS mode a graph of players seeking games can be displayed in stead of the chess board, when you are idle (i.e. not playing, observing or examini\r
-ng). When this feature is enabled, left-clicking in the board area will switch between board and the seek graph. For details on this, see the }{\f1\uldb\cf5 Seek Graph}{\f1\cf5  command.\r
-\par }{\f1 Some special ICS Client features are activated when you are in }{\b\f1 examine}{\f1  or }{\b\f1 bsetup }{\f1 mode on ICS. See the descriptions of the menu commands }{\f1\uldb Forward}{\v\f1 Forward}{\f1 , }{\f1\uldb Backward}{\v\f1 Backward}{\f1 , }\r
-{\f1\uldb Pause}{\v\f1 Pause}{\f1 , and }{\f1\uldb Stop Examining}{\v\f1 StopExamining}{\f1  below. You can also issue the ICS position-editing commands with the mouse. Move pieces by dragging with the left mouse button, or by le\r
-ft-clicking once on the starting square and once on the ending square. Press the right mouse button over a square for a context menu that lets you drop a new piece, empty the square, or clear the board. Click on the White or Black clock to set the side to\r
\r
-play. You cannot set the side to play or drag pieces to arbitrary squares while examining on ICC, but you can do so in bsetup mode on FICS. You can also make moves by typing them into the ICS window; you may have to do this occasionally if you are playing\r
- a chess variant whose rules WinBoard does not understand. }{\f1\cf5 (But this list is getting shorter, and Fischer Random is not on it anymore; you can enter castling there with the mouse by dragging the King on top of the Rook.)}{\f1 \r
-\par If you are playing a bughouse game on the ICS, a list of the offboard pieces that each player holds is shown in the window title bar, }{\f1\cf2 and graphically in the holdings area next to the board.}{\f1  To drop an offboard piece, }{\f1\cf2 \r
-drag it from the holdings to the board.}{\f1  }{\f1\cf5 (Pressing the right mouse button over an empty square to bring up a context menu will still work if you have set the /dropMenu option.)}{\f1 \r
- To observe your partner's games, start a second copy of WinBoard, log in as a guest, and use the ICS }{\b\f1 follow}{\f1  or }{\b\f1 pfollow}{\f1  command in the new window. }{\f1\cf5 You can also use the }{\f1\uldb\cf5 Background Observe}{\f1\cf5   or }\r
-{\f1\uldb\cf5 Dual Board}{\f1\cf5  features to follow your partner\rquote s game through a single connection on which you are also playing yourself, in the background (peeking at it by pressing the right mouse button), or on side-by-side boards in the \r
-board window.}{\f1 \r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf5\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super K}{\r
-\f1\cf5  Machine Match}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super #}{\f1\cf5  MachineMatch}}}{\f1\cf5  Machines Match\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf5 Starts or stops a match between two chess engines. The number of games in the match will be taken from the \ldblquote default match games\rdblquote \r
- setting in the Options-> Common Engine dialog. When a match is already running, clicking this menu item will cause it to stop after the current game finishes.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Machine Match}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  MachineMatch}}}{\f1  Machine Match\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Starts or stops a match between two chess programs. The number of games will be taken from the}{\f1\cf1  }{\f1\uldb\cf1 defaultMatchGames}{\f1\cf1  }{\f1 \r
-option, which is settable through the }{\f1\uldb\cf1 Common Engine Settings}{\f1  m\r
-enu dialog. When a match was already in progress, using this menu item will cause it to stop after the current game finishes. When a tournament file was specified, the match will be run as a tournament with the parameters taken from that file, and the tou\r
-rnament file will remain valid after stopping, so that you can resume the tournament using this item.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Pause}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Pause}}}{\f1  Pause\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Pauses updates to the board, and if you are playing against a local chess engine, also pauses your clock. To continue, select Pause again, and the display will au\r
-tomatically update to the latest position. The }{\b\f1 P}{\f1  (or }{\b\f1 C}{\f1 ) button is equivalent to selecting Pause.\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If you select Pause when you are playing{\*\bkmkstart WHATSelSavT}{\*\bkmkend WHATSelSavT} {\*\bkmkstart fWHATtopic}against{\*\bkmkend fWHATtopic}\r
- a chess engine and it is not your move, the chess engine\rquote s clock will continue to run and it will eventually m\r
-ake a move, at which point both clocks will stop. Since board updates are paused, however, you will not see the move until you exit from Pause mode (or select }{\f1\uldb Forward}{\v\f1 Forward}{\f1 \r
-). This behavior is meant to simulate adjournment with a sealed move.\r
-\par If you select Pause while you are in }{\b\f1 examine}{\f1 \r
- mode on ICS, you can step backward and forward in the current history of the examined game without affecting the other examiners or observers. Select Pause again to reconnect yourself to the current state of the game on ICS.\r
-\par If you select Pause while you are loading a game, the game stops loading. You can load more moves one at a time by selecting }{\f1\uldb Forward}{\v\f1 Forward}{\f1 , or resume automatic loading by selecting Pause again.\r
-\par }\pard\plain \s1\li120\sb280\sa120\sl-320\slmult0\nowidctlpar\outlinelevel0\adjustright \b\f5\cgrid {\f1\fs20 \page }{\cs58\f1\fs20\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super \r
-K}{\f1  Action Menu}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  ActionMenu}}${\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \r
-\f5\fs20\cgrid {\cs58\f1\super $}{\f1  Action Menu}}+{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super +}{\f1  main}}}{\f1\fs20  Action Menu\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Most of these commands are available in chess server mode only.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Accept}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Accept}}}{\f1  Accept\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Accepts a pending match offer. If there is more than one offer pending, you will have to type in a more specific command instead of using this menu choice.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Decline}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Decline}}}{\f1  Decline\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Declines a pending offer (match, draw, etc.). If there is more than one offer pending, you will have to type in a more specific command instead of using this menu choice.\r
-\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Rematch}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Rematch}}}{\f1  Rematch\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Issues the ICS }{\b\f1 rematch}{\f1  command, which asks for another game against your last opponent with the same time control and rule set.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Call Flag}\r
-}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  CallFlag}}}{\f1  Call Flag\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Calls your opponent's flag, claiming a win on time, or claiming a draw if you are both out of time. You can also call your opponent's flag by clicking on his clock.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Draw}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Draw}}}{\f1  Draw\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Offers a draw to your opponent, accepts a pending draw offer from your opponent, or claims a draw by repetition or the 50-move rule, as appropriate.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Adjourn}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Adjourn}}}{\f1  Adjourn\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Asks your opponent to agree to adjourning the current game, or agrees to a pending adjournment offer from your opponent. You continue an adjourned ICS game by challengin\r
-g the same player again with the ICS }{\b\f1 match}{\f1  command.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Abort}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Abort}}}{\f1  Abort\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-Asks your opponent to agree to abort the current game, or agrees to a pending abort offer from your opponent. An aborted ICS game ends immediately without affecting either player's rating.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Resign}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Resign}}}{\f1  Resign\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Resigns the game to your opponent.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Stop Observing}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  StopObserving}}}{\f1  Stop Observing\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Ends your participation in observing a game, by issuing the ICS }{\b\f1 unobserve}{\f1  command.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Stop Examining}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  StopExamining}}}{\f1  Stop Examining\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Ends your participation in observing a game, by issuing the ICS }{\b\f1 unobserve}{\f1  command.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf5\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super K}{\r
-\f1\cf5  Upload to Examine}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super #}{\f1\cf5  Upload to Examine}}}{\f1\cf5  Upload to Examine\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf5 Starts an examined game on the ICS, and uploads the game currently loaded in WinBoard (by pasting it, or loading from a file) to it.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf6 Adjudicate To White}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 AdjudicateToWhite}}}{\f1\cf6  Adjudicate To White\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 End the current game and stop participating engine. The result will appear in the PGN as a win for white.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf6 Adjudicate To Black}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 AdjudicateToBlack}}}{\f1\cf6  Adjudicate To Black\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 Same as above, but game will appear as a win for black.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf6 Adjudicate Draw}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 AdjudicateDraw}}}{\f1\cf6  Adjudicate Draw\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 Same as above, but game will appear as a draw.\r
-\par }\pard\plain \s1\li120\sb280\sa120\sl-320\slmult0\nowidctlpar\outlinelevel0\adjustright \b\f5\cgrid {\f1\fs20\cf6 \page }{\cs58\f1\fs20\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\super K}{\f1  Engine Menu}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  EngineMenu}}${\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super $}{\f1  Engine Menu}}+{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super +}{\f1  main}}}{\f1\fs20  Engine Menu\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Hint}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Hint}}}{\f1  Edit Engine List\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 This pops up a window where you can edit the list of installe\r
-d engines, e.g. to delete or reorder them, or add options that could not be specified in the Load Engine dialog.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Hint}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Hint}}}{\f1  Load Engine\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Pops up a dialog where you can select or specify an engine, to be loaded (possibly replacing a previously loaded engine). You wi\r
-ll always have to indicate whether you want to load the engine as first or second engine, through the \lquote Load Engine as\rquote \r
- combobox in the lower right. You can even replace engines during a game, without disturbing that game, provided the new engine will not f\r
-orce a switch of variant. (Beware that after loading an engine, WinBoard will always be in Edit Game mode, so if you want the new engine to continue playing or analyzing, you will have to use the Mode menu to tell it such.) When you select an already inst\r
-alled engine from the \lquote Select Engine from List\rquote \r
- combobox, all other fields of the dialog will be ignored. In other cases, you have to specify the engine executable, possible engine arguments (if the engine docs say the engine needs any), and the folder (dir\r
-ectory) where the engine should look for its files (if this cannot be deduced automatically from the specification of the engine executable). Usually it will be enough to use the browse button to locate the engine executable. But you will also have to tel\r
-l WinBoard (with the aid of checkboxes) if the engine is UCI. If \lquote Add to list\rquote \r
- is ticked (which it is by default), the engine will be added to the list of installed engines in your settings file, so that next time you can select it from the combobox. You can also specify a \lquote nickname\rquote \r
-, under which the engine will then appear in that combobox, and even choose to use that nickname for it in PGN files for engine-engine games. The info you supply with the checkboxes whether the engine should use GUI book, or (for\r
- variant engines) automatically switch to the current variant when loaded, will also be included in the list. For obsolete WinBoard engines, that would normally take a long delay to load because WinBoard is waiting for a response they will not give, you c\r
-an tick \lquote WB protocol v1\rquote  to speed up the loading process. The UCCI / USI checkbox is for engines that need a special adapter (which should be configured through the }{\f1\uldb uxiAdapter}{\f1 \r
- option), which in practice is only important for Xiangqi and Shogi engines.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\ul\cf2\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\cf2\super K}{\cf2  }\r
-{\f1\ul\cf2 Engine Settings}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\cf2\super #}{\cf2  }{\f1\ul\cf2 Engine Settings}}}{\f1\ul\cf2  Engine #1 Settings }{\f1\cf2 , }{\f1\ul\cf2 \r
-Engine #2 Settings\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf2 \r
-This pops up a dialog that allows the user to set engine-defined options of the mentioned engine (if it is in use). What is in the dialog is entirely determined by the engine. Generally, any changes you make to the con\r
-trols are only sent to the engine after you press \ldblquote OK\rdblquote \r
-. An exception are engine-defined push buttons; the corresponding signal is sent to the engine immediately when you push those. To see the options of UCI engines, you need a Polyglot adapter that supports the recent WB-protocol extensions.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Hint}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Hint}}}{\f1  Hint\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Displays a move hint from the chess engine.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Book}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Book}}}{\f1  Book\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Displays a list of possible moves from the chess engine\rquote s opening book. The first column gives moves, the second column gives one possible response for each m\r
-ove, and the third column shows the number of lines in the book that include the move from the first column. If you select this option and nothing happens, the engine is out of its book or does not support the book command.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Move Now}}\r
-#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  MoveNow}}}{\f1  Move Now\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Forces the chess engine to move immediately. May not work with all chess engines.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Retract Move}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  RetractMove}}}{\f1  Retract Move\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Retracts your last move.\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 In chess engine mode, you can do this only after the chess engine has replied to your move. If the chess engine is still thinking, use }{\f1\uldb Move Now}{\v\f1 MoveNow}{\r
-\f1  first.\r
-\par In ICS mode, Retract Move issues the command }{\b\f1 takeback 1 }{\f1 or }{\b\f1 takeback 2}{\f1 , depending on whether it is your opponent's move or yours.\r
-\par }\pard\plain \s1\li120\sb280\sa120\sl-320\slmult0\nowidctlpar\outlinelevel0\adjustright \b\f5\cgrid {\f1\fs20 \page }{\cs58\f1\fs20\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super \r
-K}{\f1  Options Menu}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  OptionsMenu}}${\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \r
-\f5\fs20\cgrid {\cs58\f1\super $}{\f1  Options Menu}}+{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super +}{\f1  main}}}{\f1\fs20  Options Menu\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf2\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf2\super K}{\r
-\f1\cf2  }{\f1\ul\cf2 Mute all Sounds}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf2\super #}{\f1\cf2  }{\f1\ul\cf2 MuteAllSounds}}}{\f1\cf2  }{\f1\ul\cf2 Mute all Sounds}{\f1\cf2 \r
-\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf2 Provides a quick way to switch on or off all sounds, without affecting the settings for them.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\ul\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super K}{\r
- General Options}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super #}{ GeneralOptions}}}{\f1\ul General}{\f1 \r
-\par }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Always On Top}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \r
-\f5\fs20\cgrid {\cs58\f1\super #}{\f1  AlwaysOnTop}}}{\f1  Always On Top\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If this option is on, WinBoard sets its chessboard to be a }{\i\f1 topmost}{\f1  window, meaning that it always appears on top of all ordinary windows on the screen.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Always Queen}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  AlwaysQueen}}}{\f1  Always Queen\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If Always Queen is off, WinBoard brings up a dialog\r
- box whenever you move a pawn to the last rank, asking what piece you want to promote it to. If the option is on, your pawns are always promoted to queens. Your opponent can still underpromote, however.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Animate Dragging}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  AnimateDragging}}}{\f1  Animate Dragging\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If Animate Dragging is on while y\r
-ou are dragging a piece with the mouse, an image of the piece follows the mouse cursor. If Animate Dragging is off, there is no visual feedback while you are\r
-\par dragging a piece, but if Animate Moving is on, the move will be animated when it is complete.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Animate Moving}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  AnimateMoving}}}{\f1  Animate Moving\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-If Animate Moving is on, all piece moves are animated.  An image of the piece is shown moving from the old square to the new square when the move is completed (unless the move was already animated by Animate Dragging). If Animate Moving is of\r
-f, a moved piece instantly disappears from its old square and reappears on its new square when the move is complete.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Auto Flag}\r
-}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  AutoflagCmd}}}{\f1  Auto Flag\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If this option is on and one player runs out of time before the other, WinBoard will automatically call his flag, claiming a w\r
-in on time. In ICS mode, Auto Flag will only call your opponent's flag, not yours, and the ICS may award you a draw instead of a win if you have insufficient mating material. On most chess servers, you can now do}{\b\f1  set autoflag 1 }{\f1 \r
-instead and have the server call the flag. In local chess engine mode, WinBoard may call either player's flag and will not take material into account.\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\b\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super K}{ Auto Flip View}}#{\footnote\ftnalt \r
-\pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super #}{ AutoFlipView}}}{\b  Auto Flip View\r
-\par }{If this option is on when you}{\f1  start a game, the board will be automatically oriented so that your pawns move from the bottom of the window towards the top.}{\r
-\par }{\cs58\b\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super K}{ Auto Raise Board}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
-\cs58\super #}{ AutoRaiseBoard}}}{\b  Auto Raise Board\r
-\par }{If this}{\v autoFlipViewOption}{ option is on, whenever a new game begins, the chessboard window will be deiconized (if necessary) and raised to the top of the stack of windows on your screen.\r
-\par }\pard\plain \s2\li120\sb80\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super K}{ Blindfold}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super #}{ BlindfoldCmd}}}{Blindfold\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
-If Blindfold is on, WinBoard displays a blank board. Moves can still be entered with the mouse, either by dragging the (invisible) piece or clicking the starting and ending square. You can also enter your move by typing it on the keyboard}{\f1 .}{\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Highlight Dragging}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  HighlightDragging}}}{\f1  Highlight Dragging\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-If Highlight Dragging is on while you are dragging a piece with the mouse, the starting square and the square that the mouse cursor is over are highlighted. This option works even if Animate Dragging is off. }{\f1\cf5 \r
-Also controls if the option /showTargetSquares, which can cause marking of al squares a piece you \lquote pick up\rquote  can legally move to, can be active.}{\f1 \r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf6 Extended PGN Info}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 ExtendedPGNInfo}}}{\f1\cf6  Extended PGN Info\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 The PGN will contain the engine search depth, score and time for each move where the depth is non-zero, as a comment behind the mo\r
-ve if this option is on. Works only when \ldblquote Show Thinking\rdblquote  is enabled. The recorded time is the time reported by the engine.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf6 Extra Info In Move History}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 ExtraInfoInMoveHistory}}}{\f1\cf6  Extra Info In Move History\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 Same as above, but in move-history window. \r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Highlight Last Move}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  HighlightLastMove}}}{\f1  Highlight Last Move\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If Highlight Last Move is on, after a move is made, the starting and ending squares remain highlighted. In addition, after you use }{\f1\uldb Backward}{\v\f1 Backward}{\f1 \r
- or }{\f1\uldb Back to Start}{\v\f1 BackToStart}{\f1 , the starting and ending squares of the last move to be }{\i\f1 unmade}{\f1  are highlighted.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Periodic Updates}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  PeriodicUpdatesCmd}}}{\f1  Periodic Updates\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If Periodic Upda\r
-tes is on, the Analysis window is updated every two seconds. If not, it is updated only when the best move found changes. The Analysis window currently works only with Crafty, and Periodic Updates may not work with all versions of Crafty.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\pnrnot1\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\revised\super\revauth1\revdttm-1506646559 K}{\f1\revised\revauth1\revdttm-1506646559  Ponder Next Move}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\pnrnot1\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\revised\super\revauth1\revdttm-1506646559 #}{\f1\revised\revauth1\revdttm-1506646559  PonderNextMoveCmd}}}{\f1  Ponder Next Move\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If this option is off, the chess engine will think only when it is on move. If the option is on, the engine will also think while waiting for you to make your move.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Popup Exit Message}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  PopupExitMessageCmd}}}{\f1  Popup Exit Message\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If this option is on, when WinBoard wants to display a message jus\r
-t before exiting, it brings up a modal dialog box and waits for you to click OK before exiting. If the option is off, WinBoard prints exits immediately without showing the message. If }{\f1\uldb debugMode}{\v\f1 debugMode}{\f1 \r
- is on, however, the message will appear in the debug log.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Popup Move Errors}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  PopupMoveErrorsCmd}}}{\f1  Popup Move Errors\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-If this option is off, when you make an error in moving (such as attempting an illegal move or moving the wrong color piece), the error message is displayed in the message area. If the option is on, move errors are displayed in sm\r
-all popup windows like other errors. You can dismiss an error popup either by clicking its OK button or by clicking anywhere on the board, including downclicking to start a move.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Show Bu\r
-tton Bar}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  ShowButtonBarCmd}}}{\f1  Show Button Bar\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If Show Button Bar is on, WinBoard displays on-screen }{\f1\uldb buttons}{\v\f1 BUTTONS}{\f1 \r
- to step forward, backward, or pause the game. If it is off, the buttons are hidden, making the message line wider.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Show Coords}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  ShowCoordsCmd}}}{\f1  Show Coords\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If Show Coords is on, WinBoard displays algebraic coordinates along the board's left and bottom edges. \r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Show Thinking}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  ShowThinkingCmd}}}{\f1  Show Thinking\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If this option is set, WinBoard displays the chess engine\rquote \r
-s current search depth and its notion of the score and best line of play from the current position as it is thinking. The score indicates how many pawns ahead (or if negative, behind) the engi\r
-ne thinks it is. In matches between two machines, the score is prefixed by W or B to indicate whether it is showing White's thinking or Black's.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Test Legality}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  TestLegalityCmd}}}{\f1  Test Legality\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If Test Legality is on, WinBoard tests whether the moves you enter with the mouse or read from\r
- game files are legal, and displays an error if they are not. Turn this option off if you are playing a chess variant that WinBoard does not understand. (Bughouse, suicide, and wild variants where the king may castle after starting on the }{\b\f1 d}{\f1 \r
- file are generally supported with Test Legality on. }{\f1\cf11 \r
-The same holds for variants with non-FIDE pieces, like shatranj, xangqi, shogi, gothic, capablanca, courier, knightmate: WinBoard knows how all pieces occurring in those variants move. Falcon, cylinder and berolina are \r
-only partly supported, though, and the latter two should definitely be played with legality testing off, and falcon uses a wildcard piece for the Falcons, so it considers any move of them legal, but might miss checkmates that involve a Falcon. So you shou\r
-ld not play it with claim verification switched on.}{\f1 )\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf6 Hide Thinking From Human}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 HideThinkingFromHuman}}}{\f1\cf6  Hide Thinking From Human\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 An alternative to suppressing the Thinking Output in the display above the board by switching \ldblquote Show Thinking\rdblquote \r
- off, but doing it in a way that still allows the extended PGN info to be recorded.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf6 Highlight Move With Arrow}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 HighlightMoveWithArrow}}}{\f1\cf6  Highlight Move With Arrow\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 A big, fat arrow is drawn between the start and target field of the last move, so you cannot possibly miss it. \r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf5\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super K}{\r
-\f1\cf5  Display Logos}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super #}{\f1\cf5  DisplayLogos}}}{\f1\cf5  Display Logos\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf5 Controls the display of engine, user or ICS logos above the board, next to the clocks, by switching on or off the option /autoLogo.. \r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Time Control}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  TimeControlCmd}}}{\f1  }{\f1\ul Time Control}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Lets you change the time control to be used in games against a chess engine. }{\f1\cf5 Three}{\f1  types of timing are available.\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 With conventional chess clocks, each player begins with his clock set to the }{\f1\uldb timeControl}{\v\f1 timeControl}{\f1  period. When both players have made }{\r
-\f1\uldb movesPerSession}{\v\f1 movesPerSession}{\f1  moves, a new time control period begins. The time in the new period is added to whatever time the players have left on their clocks.\r
-\par With incremental clocks, each player is given an initial time allotment, and a }{\f1\uldb timeIncrement}{\v\f1 timeIncrement}{\f1 \r
- is added to his clock after every move. The increment may be zero, in which case the entire game must be finished within the initial time allotment.\r
-\par }{\f1\cf5 With fixed time per move, each player gets a certain (maximum) time to make one move, and any left-over time is not carried to subsequent moves.\r
-\par Note that in local modes it is always possible to adjust the clocks during a game by Shift + click on it, where a right-click adds a minute, and a left-click subtracts one.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\ul\cf5\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super K}{ }{\r
-\f1\ul\cf6 Global Settings}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super #}{ }{\f1\ul\cf6 Global Settings}}}{\f1\ul\cf5 Common Engine Settings\r
-\par }{\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 Polyglot Directory}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 PolyglotDirectory}}}{\f1\cf6  Polyglot Directory\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 \r
-If WinBoard knows where to find Polyglot, you can install UCI engines as if they were WinBoard engines, and WinBoard will automatically invoke Polyglot as an adapter to run them.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf6 Hash Size}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 HashSize}}}{\f1\cf6  Hash Size, }{\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 EGTB Path}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 \r
-EGTBPath}}}{\f1\cf6  EGTB Path, }{\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 EGTB Cache Size}}#{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 EGTBCacheSize}}}{\f1\cf6  EGTB Cache Size, }{\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \r
-\f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 Opening Book}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 OpeningBook}}}{\f1\cf6  Opening Book, }{\r
-\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 Number of CPUs}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 Number of CPUs}}}{\f1\cf6  Number of CPUs\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 These are options that UCI engines expect to be specified. }{\f1\cf2 \r
-WinBoard protocol now also allows native WinBoard engines to request similar information, so it might be used for these engines as well. The memory size specified by the WinBoard-protocol \lquote memory\rquote \r
- command is the sum of the hash and EGTB cache sizes. The specified opening book, when enabled through the \lquote Use Book\rquote  check box, will be used as GUI book for engines that d\r
-o not have their own book (as indicated by the check boxes). It must be a book in Polyglot format. }{\f1\cf5 The selection of book moves can be controlled by the setting of \lquote Book Depth\rquote  and \lquote Book Variation\rquote \r
-. The former determines the number of full moves into the ga\r
-me where the book is probed. The latter is a number from 0 to 100 that controls the interpretation of the move weights in the book (100 = ignore weights and select randomly from all listed moves; 0 = always play best move). At 50 the playing frequency exa\r
-ctly follows the book weight.}{\f1\cf6 \r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf5\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super K}{\r
-\f1\cf5  Default Match Games}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super #}{\f1\cf5  DefaultMatchGames}}}{\f1\cf5  Default Match Games\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf5 Sets the number of games that will be played in response to the Mode -> Machine Match menu command.\r
-\par }\pard\plain \s5\sb80\sl-240\slmult0\nowidctlpar\outlinelevel4\adjustright \f5\fs20\ul\cgrid {\b \r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\ul\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super K}{ }{\r
-\f1\ul\cf6 Adjudications}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super #}{ }{\f1\ul\cf6 Adjudications}}}{\f1\ul\cf6 Adjudications\r
-\par }{\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 Ponder Next Move}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 PonderNextMove}}}{\f1\cf6  Ponder Next Move,}{\cs58\f1\cf6\super  K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\super K}{\f1  }{\f1\cf6 Show Thinking}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 ShowThinking}}}{\f1\cf6  Show Thinking, }{\cs58\f1\cf6\super K\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 Hide Thinking From Human}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \r
-\f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 HideThinkingFromHuman}}}{\f1\cf6  Hide Thinking from Human and }{\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\r
-\f1  }{\f1\cf6 Periodic Updates}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 PeriodicUpdates}}}{\f1\cf6  Periodic Updates\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 Duplicates of the controls in the \ldblquote General\rdblquote  option menu.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf6 Adjudicate Draw Moves}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 AdjudicateDrawMoves}}}{\f1\cf6  Adjudicate Draw Moves\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 \r
-Adjudicate a draw after the given number of moves, to prevent games from dragging on forever if two engines in a dead-drawn position, conspire to avoid 50-move draws. This and the folowing options are only active in \ldblquote Two Machines\rdblquote \r
- mode.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf6 Adjudicate Loss Threshold}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 AdjudicateLossThreshold}}}{\f1\cf6  Adjudicate Loss Threshold\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 Adjudicate the game as a loss when both engines agree that the (negative) score is  below the given threshold for the duration of 6 consecutive plies.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf11 Verify Claims}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 VerifyClaims}}}{\f1\cf11  Verify Claims\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 Verify result claims made by engines when they terminate the game. If needed, correct the results to a loss for the engine making the false claim. Needs \ldblquote \r
-Test Legality\rdblquote  to be on in order to work.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf11 Detect Mates}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 DetectMates}}}{\f1\cf11  Detect Mates\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 Let WinBoard detect checkmate and st\r
-alemate, even before the engine gets the chance to claim it. Useful with buggy engines, that exit without a claim, or just hang. Needs \ldblquote Test Legality\rdblquote  to be on in order to work.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf11 Draw If Insufficient Material}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 DrawIfInsufficientMaterial}}}{\f1\cf11  Draw If Insufficient Material\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 If this option is on, WinBoard will recognize\r
- KBKB positions with equally colored Bishops, KBK, KNK, and KK positions as draws, even before the engine can claim them. Needs \ldblquote Test Legality\rdblquote  to be on in order to work.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf11 Adjudicate Trivial Draws}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 AdjudicateTrivialDraws}}}{\f1\cf11  Adjudicate Trivial Draws\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 If this option is on, KBKB (with B on unlike color), KBKN\r
-, KNKN, KNNK, KRKR and KQKQ positions will be adjudicated draw after 6 ply. For KQKQ this is not really sound, and in the future it might be taken out of this option. But as long as tablebase adjudications are not implemented, it seems best to group this \r
-end-game with the trivial draws. Needs \ldblquote Test Legality\rdblquote  to be on in order to work.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf11 N-Move Rule}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 N-MoveRule}}}{\f1\cf11  N-Move Rule\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 Here you can set the number of reversible moves (non-pawn, non-capture) after which WinBoard should adjudicate a game as draw. Engine draw claims are always con\r
-sidered valid after 50 moves (in the context of \ldblquote Verify Claims\rdblquote \r
-), but you can set a different value here to either give the engine more leeway if it wants to play on, or test its claiming capabilities, or set it to a smaller value if you are impatient.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf11 N-Fold Repetition Rule}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 N-FoldRepetitionRule}}}{\f1\cf11  N-Fold Repetition Rule\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 \r
-Here you can set the number of repetitions of the same position that should occur in order for WinBoard to adjudicate the game as draw. Engine draw claims are always considered valid after 3 repetitions (in the context of \ldblquote Verify Claims\r
-\rdblquote ) , but you can set a different value here to either give the engine more leeway if it wants to play on, or test its claiming capabilities, or set it to 2 if you are impatient. (Do not set it to 1!)\r
-\par }\pard\plain \s5\li115\sb80\sl-240\slmult0\nowidctlpar\outlinelevel4\adjustright \f5\fs20\ul\cgrid {\b \r
-\par }{\cs58\b\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super K}{ Tournament Options}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid \r
-{\cs58\super #}{ TournamentOptns}}}{\b Tournament\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Tournament File}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  TournamentFIle}}}{\f1  Tournament file\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 To run a tournament,\r
- WinBoard needs a file to record its progress, so that you can later resume the tournament when it was interrupted, or set other WinBoard instances to work on it in parallel. So when you want to conduct anything more complex than a simple two-player match\r
\r
-with the currently loaded engines, (i.e. when you select a list of participants), you must not leave this field blank. When you enter the name of an existing tournament file, WinBoard will ignore all other input specified in the dialog, and will take it f\r
-r\r
-om that tournament file instead, effectively joining that tournament (switching to match mode as soon as you press OK, starting to play games for it). This could be useful for resuming an interrupted tournament, or increasing the number of games played co\r
-n\r
-currently in a tournament that was already running through other WinBoard instances. Specifying a not-yet-existing file will cause WinBoard to create one with that name, according to the tournament parameters specified in the rest of the dialog, before it\r
- starts the tournament on \lquote OK\rquote \r
-. Provided that you specify participants; without participants no tournament file will be made, but other entered values (e.g. for the file with opening positions) will take effect. WinBoard can be configured to propose a filen\r
-ame derived from date and time with the }{\f1\uldb defaultTourneyName}{\f1 \r
- option, such that it is likely to not yet exist, so that you will start a new tourney every time you OK the dialog without altering the name. Using an existing tournament file can be more          \r
-                                                                                                                                                                                                                                                               \r
\r
-                                                                                                                                                                                         conveniently done by clicking the file icon, when WinBoard is properly\r
- installed (so that the .TRN extension is associated with WinBoard in tourney mode).\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Select Engine}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  SelectEngine}}}{\f1  Select Engine / Tourney participants\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 With the Select Engine combobox you can pick an engine from your list of installed engines in the settings file, to be added to the \r
-tournament. The engines selected so far will be listed in the \lquote Tourney participants\rquote \r
- memo. The latter is a normal text edit, so you can use normal text-editing functions to delete engines you selected by accident, or change their order. Do not type names y\r
-ourself there, because names that do not exactly match one of the names from the combobox will lead to undefined behavior.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Tourney type}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  TourneyType}}}{\f1  Tourney type\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Here you can specify the type of tournament you want. WinBoard\rquote s intrinsic tournament manager support round-robins (t\r
-ype = 0), where each participant plays every other participant, and (multi-)gauntlets, where one (or a few) so-called \lquote gauntlet engines\rquote \r
- play an independent set of opponents. In the latter case, you specify the number of gauntlet engines. E.g. if you specified 10 engine, and tourney type = 2, the first 2 engines each play the remaining 8. Default:0\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Tourney Cycles}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  TourneyCycles}}}{\f1  Number of tourney cycles /}{\cs58\f1\super  K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Games per Pairing}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  GamesPerPairing}}\r
-}{\f1  Games per pairing\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 You can specify tourneys where every two opponents play each other multiple times. Such multiple games can be played in a row, as specified by the \lquote \r
-number of games per pairing\rquote , or by repeating the entire tournament schedule a number of times (specified by the \lquote number of tourney cycles\rquote ). The total number of times two engine meet will be the product of these two. \r
-Games will be counted sequentially through different cycles for the purpose of color assignment or selection of starting positions. E.g. with 3 games per pairing, when engine A played B with w, b, w in the first cycle, it will play b, w, b against B in th\r
-e\r
- second cycle, and the first game in that cycle will be treated exactly as it would be when it was game number 4 of a simple two-player match. Default is 1 cycle; the number of games per pairing is the same as the default number of match games, stored in \r
-your settings file.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Swiss pairing}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  SwissPairing}}}{\f1  Use Swiss pairing engine\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 WinBoard can also run Swiss tournaments, with the aid of an external \lquote pairing engine\rquote \r
- that tells it which engine to play against which, depending on previous results. In this case the pairing engine might atta\r
-ch significance to the order in which you specified the participants, and use it as seeding number (e.g. for systems that use ratings to determine pairing). Rounds are synonymous with tourney cycles in this case, and the number of games per pairing will b\r
-e forced to 1, meaning the actual specification for it (as well as for tourney type) will be ignored. In the standard install, WinBoard is configured (with the aid of the }{\f1\uldb pairingEngine}{\f1 \r
- option) to use a simple pairing engine that comes with it, and implements a non-official, but not all that bad approximation to Swiss. Default: no Swiss.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Sync after Round}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  SyncAfterRound}}}{\f1  Sync after round / }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Sync after Cycle}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  SyncAfterCycle}}}{\r
-\f1  Sync after cycle\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 When multiple instances of WinBoard are used to concurrently run games for the same tourney, the games will be appended to the }{\f1\uldb saveGameFile}{\f1 \r
- in the order they finish, so that rounds or cycles could overlap (one starting before the other finishes). This can be inconvenient if you want to derive partial results from the games file, such as standings after each complete round. The sync opt\r
-ions, when on, will cause WinBoard to refrain from starting games of the next round or cycle before all games of the previous round or cycle are finished, which guarantees correct ordering in the games file. Default: sync after cycle, but not after round.\r
-\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- File with Opening Lines}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  OpeningLines}}}{\f1  File with Opening Lines / Start Positions\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-WinBoard can be requested to let games not start from the standard opening position, but from a position (possibly given as a sequence of moves from yet another position) specified in a file. Indeed, each game o\r
-f a pairing can start from a different position, or with a different given sequence of moves in such a file. The file, and the game in it can be specified with the command-line options }{\f1\uldb loadGameFile}{\f1 , }{\f1\uldb loadPositionFile}{\f1 , }{\r
-\f1\uldb loadGameIndex}{\f1 , }{\f1\uldb loadPositionIndex}{\f1 , or in\r
- the Tournament Options dialog. (At most one of the two files should be given; games in PGN form also specify starting positions as FENs, and thus make the position file redundant, and therefore ignored.) The indexes can be used to specify the sequence nu\r
-mber of the game or position in the file to use for all games. To automatically step through all entities in a file, you have to tick \lquote Step through lines / positions in file\rquote . In this case the \lquote Use each line/position twice\rquote \r
- checkbox controls if you step aft\r
-er one or two games (so that each engine gets to play the position with both black and white). Note that the stepping occurs within a pairing; all pairings of a tourney will start with the first line or position in the file. You can specify that the index\r
- should \lquote rewind\rquote  to 1 after it reaches a certain value. Default: No game or position file will be used. The default index if such a file is used is 1.\r
-\par }\pard\plain \s5\li115\sb80\sl-240\slmult0\nowidctlpar\outlinelevel4\adjustright \f5\fs20\ul\cgrid {\b \r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Load Game}\r
-}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  LoadGameOptns}}}{\f1  }{\f1\ul Load Game}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Lets you change options used while loading games (}{\f1\uldb timeDelay}{\v\f1 timeDelay}{\f1  option).\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Save Game}\r
-}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  SaveGameOptns}}}{\f1  }{\f1\ul Save Game}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Lets you change options used for saving games (}{\f1\uldb autoSaveGames}{\v\f1 autoSaveGames}{\f1 , }{\f1\uldb oldSaveStyle}{\v\f1 oldSaveStyle}{\f1 , and }{\f1\uldb \r
-saveGameFile}{\v\f1 saveGameFile}{\f1  options).\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Game List Options}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  GameListOptions}}}{\f1  }{\f1\ul Game List}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Lets you select which information is displayed in the Game List window.\r
-\par }\pard\plain \s5\li115\sb80\sl-240\slmult0\nowidctlpar\outlinelevel4\adjustright \f5\fs20\ul\cgrid {\b \r
-\par }{\cs58\b\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super K}{ ICS Options}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
-\cs58\super #}{ ICSOptions}}}{\b ICS\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Auto Comment}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  AutoCommentCmd}}}{\f1  Auto Comment\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If Auto C\r
-omment is on, any remarks made on ICS while you are observing or playing a game are recorded as a comment on the current move. This includes remarks made with the ICS commands }{\b\f1 say, tell, whisper, }{\f1 and }{\b\f1 kibitz}{\f1 \r
-. Limitation: remarks that you type yourself are not \r
-\par recognized; WinBoard scans only the output from ICS, not the input you type to it.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Auto Observe}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  AutobsCmd}}}{\f1  Auto Observe\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If Auto Observe is on and you add a player to your }{\b\f1 gnotify}{\f1  list on ICS, WinBoard will automatically observe all of that player's games, unless you are do\r
-ing something else (such as observing or playing a game of your own) when one starts. On most chess servers, you can now do }{\b\f1 follow }{\b\i\f1 player}{\f1  instead, and the server will automatically observe all of }{\b\i\f1 player\rquote s}{\f1 \r
- games.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf5\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super K}{\r
-\f1\cf5  Auto Kibitz}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super #}{\f1\cf5  AutoKibitzCmd}}}{\f1\cf5  Auto Kibitz\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cf5 Auto Kibitz controls how outp\r
-ut of computers playing on an ICS is handled. In many tournaments, computers are obliged to kibitz their thinking output to the ICS, and this option will do that automatically, without the engine having to know it. In addition, such kibitzed output by you\r
-r opponent will be kept out of the console window, and will be diverted to the engine-output window.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Get Move List}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  GetMoveListCmd}}}{\f1  Get Move List\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If Get Move List is on, whenever WinBoard}{\i\f1  }{\f1 receives the first board of a new ICS game (or a different ICS game from the one it is currently \r
-displaying), it retrieves the list of past moves from the server. You can then review the moves with the Forward and Backward commands or save them with Save Game. You might want to turn off this option if you are observing several blitz games at once, to\r
- keep from wasting time and network bandwidth fetching the move lists over and over. If you turn this option on while a game is in progress, WinBoard}{\i\f1  }{\f1 immediately fetches the current move list.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Local Line Editing}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  LocalLineEditing}}}{\f1  Local Line Editing\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If Local Line Editing is }{\b\f1 on}{\f1 , your machine \r
-handles echoing, backspacing, etc., for the characters that you type into the ICS Interaction window. Output is forwarded to the ICS only when you hit Enter.The Enter key produces a newline character, also known as Ctrl+J, \\\r
-n, LF, linefeed, or decimal ASCII code 10. In this mode you can force a control character into the edit buffer by preceding it with Ctrl+Q (\ldblquote quote\rdblquote \r
-); however, the edit buffer will not accept certain control characters even when they are quoted in this way. You can force a control character to be sent immediately to ICS, bypassing the edit buffer, by preceding it with Ctrl+S (\ldblquote send\r
-\rdblquote ).\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 WinBoard keeps a history of lines you recently typed in Local Line Editing mode. You can bring back old lines by pressing the cursor up key in the text entry\r
- box. Press the cursor down key to go back down to newer lines.\r
-\par If Local Line Editing is }{\b\f1 off}{\f1 , all characters are sent to ICS as you type them. The Enter key produces a carriage return character, also known as Ctrl+M, \\r, CR, or decimal ASCII code 13. Use C\r
-trl+Backspace if you need the ASCII DEL character. You can enter any character code by holding down the Alt key and typing its decimal value (always beginning with 0) on the numeric keypad; this is a little-known standard feature of Windows.\r
-\par In both modes, if WinBoard}{\i\f1 \rquote s }{\f1 internal telnet protocol implementation is active, it translates all \\n characters to the standard telnet end-of-line sequence \\r\\n just before sending them out to ICS; see }{\f1\uldb telnetProgram}{\r
-\v\f1 telnetProgram}{\f1 .\r
-\par It is generally not a good idea to turn off this option while connected to ICS. If you are tempted to do so because everything you type is being echoed an extra time, see the paragraph about extra echoes under }{\f1\uldb LIMITATIONS}{\v\f1 LIMITATIONS}{\r
-\f1  below.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Quiet Play\r
-}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  QuietPlayCmd}}}{\f1  Quiet Play\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If Quiet Play is on, WinBoard will automatically issue an ICS }{\b\f1 set shout 0}{\f1  command whenever you start a game and a }{\b\f1 set shout 1}{\f1 \r
- command whenever you finish one. Thus you will not be distracted by shouts from other ICS users while playing.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf5\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super K}{\r
-\f1\cf5  Seek Graph}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super #}{\f1\cf5  SeekGraphCmd}}}{\f1\cf5  Seek Graph, }{\cs58\f1\cf5\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super K}{\f1\cf5  Auto Refresh}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super #}{\f1\cf5 \r
- AutoRefreshCmd}}}{\f1\cf5  Auto Refresh\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cf5 If Seek Graph is on, you can s\r
-ummon up a graphical representation of players seeking a game on the ICS in stead of the chess board, by left-clicking the latter when you are not using it. The requested games are separated out by rating and time control. Rated, unrated and wild games ar\r
-e\r
- displayed in different colors, computers as squares, humans as dots. Hovering the mouse over a dot in the graph will display the details of the corresponding seek ad in the message field above the board. Left-clicking the dot will take up the challenge. \r
-Right-clicking dots will \lquote push them to the back\rquote \r
-, so you can see seek ads that might have been hidden behind it. Right-clicking off dots will refresh the graph, left-clicking off dots will take the graph down ad display the chess board again.\r
-\par In combination\r
- with Auto Refresh, the seek graph will be updated automatically. This is only implemented for the FICS and ICC servers. To make switching on of this option effective might require you to log off and on again to the ICS, as it requires changing ICS settin\r
-gs that are locked during a session.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf5\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super K}{\r
-\f1\cf5  Background Observe}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super #}{\f1\cf5  BackgndobsCmd}}}{\f1\cf5  Background Observe, }{\cs58\f1\cf5\super K{\footnote\ftnalt \r
-\pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super K}{\f1\cf5  Dual Board}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super #}{\r
-\f1\cf5  DualBoardCmd}}}{\f1\cf5  Dual Board\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cf5 \r
-If Background Observe is on, boards sent to you by the ICS when you are playing, but which are not of your game, (but of games you are observing), will not be displayed automatically.\r
- In stead WinBoard will remember the last board it received that way, and display it when you press the right mouse button in stead of the board of your own game. This feature is meant to enable bughouse players a peek at their partner\rquote \r
-s game, without the need to log on to the ICS a second time.\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cf5 \r
-If in addition Dual Board is also on, such background games are even displayed on a second board, side by side with your own game, so that it is always in view. This feature is experimental, and largely undeveloped;\r
- there is no animation of moves on this second board, while the effets are undefined if the board format of the observed game is not the same as that of your own game.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Premove}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  PremoveCmd}}}{\f1  Premove\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {Premove allows you to play a move on the board before you have received your opponent\rquote s move.  This move is highlighted on the board using the }{\uldb Premove Highlight\r
-}{\v\uldb premoveHighlightColor}{ color, and is sent to the ICS as soon as your opponent\rquote s move is received. To cancel a premove, either click twice on the piece that was premoved or premove an illegal move.\r
-\par This group of controls allows you to set the following options: }{\uldb premove}{\v premove}{, }{\uldb premoveWhite}{\v premoveWhite}{, }{\uldb premoveWhiteText}{\v premoveWhiteText}{, }{\uldb premoveBlack}{\v premoveBlack}{, }{\uldb premoveBlackText}{\v \r
-premoveBlackText}{.\r
-\par }\pard\plain \s2\li120\sb80\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\cf5\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\cf5\super K}{\cf5 \r
- One-Click Move}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\cf5\super #}{\cf5  OneClickMoveCmd}}}{\cf5 One-Click Move\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cf5 When One-Click Move is set, }{\v\cf5 icsAlarmTime}{\cf5 \r
-a click on an own piece will immediately move that piece if it only has a single legal move, without waiting for you to click a to-square. Similarly, clicking an opponent piece or empty square will immediately perform the move to th\r
-at square, if only a single legal move to it existed. This is the mouse equivalent of having to type only e4 when you mean e2-e4. Finally, double clicking an own piece (or clicking an already selected piece) will make it execute its only capture, which ca\r
-n save you some time if the target square was far away. Legality testing has to be switched on for this to work.\r
-\par }\pard\plain \s2\li120\sb80\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super K}{ ICS Alarm}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super #}{ ICSAlarm}}}{ICS Alarm\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {When }{\b icsAlarm}{ is set to True, the }{\uldb alarm sound}{\v soundIcsAlarm}{ is played when your clock counts down to }{\uldb icsAlarmTime}{\v icsAlarmTime}{ seconds\r
-.  For ICS games with time controls that include an increment, the alarm will sound each time the clock counts down to the }{\uldb icsAlarmTime}{\v icsAlarmTime}{.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- ICS Interaction Colors}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  ICSInteractionColors}}}{\f1  ICS Interaction Colors\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Lets you change the colors and type styles that WinBoard uses to distinguish betw\r
-een different types of messages in the ICS Interaction window. The types distinguished are: shout, sshout, channel 1 tell, other channel tell, kibitz (or whisper), personal tell (or new message notification), challenge, request (including abort, adjourn, \r
-draw, pause, and takeback), seek, and normal (all other messages).\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf5\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super K}{\r
-\f1\cf5  Startup Chat Boxes}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super #}{\f1\cf5  StartupChatBoxes}}}{\f1\cf5  Startup Chat Boxes\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf5 You can put a semicolon-separated list of ICS handles or channel numbers here, WinBoard will open a chat window for each handle at startup in ICS mode. (See the Open Ch\r
-at Window command.)\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Sounds}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Sounds}}}{\f1  }{\f1\ul Sounds}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Lets you change the sounds that WinBoard plays for various events.\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Move Sound}}#{\footnote\ftnalt \r
-\pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  MoveSound}}}{\f1 \r
-If the Move sound is on, WinBoard alerts you by playing a sound after each of your opponent's moves (or after every move if you are observing a game on the I\r
-nternet Chess Server). The sound is not played after moves you make or moves read from a saved game file. If you turn on the Move sound when using WinBoard with the Internet Chess Server, you will probably want to give the }{\b\f1 set bell 0}{\f1 \r
- command to the ICS. Ot\r
-herwise the ICS will send a bell character after every move (not just yours), causing WinBoard to play the ICS Bell sound too. Alternatively, you could turn off the ICS Bell sound in WinBoard, but that might cause you to miss ICS alerts for other interest\r
-ing events.\r
-\par The other sound events correspond directly to the types of messages that the }{\f1\uldb ICS Interaction Colors}{\v\f1 ICSInteractionColors}{\f1  option knows how to colorize.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Communications}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Communications}}}{\f1  }{\f1\ul Communications}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Lets you change the communication port parameters when the }{\f1\uldb internetChessServerComPort}{\v\f1 internetChessServerComPort}{\f1  option is in use.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Save Settings Now}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  SaveSettings}}}{\f1  }{\f1\ul Save Settings Now}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Save the current option settings to a file, along with the current window sizes and positions, to be automatically reloaded next time WinBoard is run. See }{\f1\uldb \r
-Settings}{\v\f1 Settings}{\f1  for the fine points.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Save Settings on Exit}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  SaveSettingsOnExit}}}{\f1  }{\f1\ul Save Settings on Exit}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If this option is on, the current settings are automatically saved when WinBoard exits, as with Save Settings Now.\r
-\par }\pard\plain \s1\li120\sb280\sa120\sl-320\slmult0\nowidctlpar\outlinelevel0\adjustright \b\f5\cgrid {\f1\fs20 \page }{\cs58\f1\fs20\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super \r
-K}{\f1  Help Menu}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  HelpMenu}}}{\b0\f1\fs18\up6  }{\cs58\f1\fs20\super ${\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super $}{\f1  Help Menu}}+{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super +}{\f1  main}}}{\f1\fs20 \r
- Help Menu\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Help Contents}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  HelpContents}}}{\f1  Help Contents\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Brings up this help file, starting at the Contents page.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Search for Help on}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  SearchHelp}}}{\f1  Help Index\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Brings up this help file, starting at the Index/Find dialog.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- How to Use Help}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  HelpHelp}}}{\f1  How to Use Help\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Brings up the standard help file that explains how to use Windows Help.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- About WinBoard}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  AboutWinBoard}}}{\f1  About WinBoard\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Displays the WinBoard version number.\r
-\par }\pard\plain \s1\li120\sb280\sa120\sl-320\slmult0\nowidctlpar\outlinelevel0\adjustright \b\f5\cgrid {\f1\fs20 \page }{\cs58\f1\fs20\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super \r
-K}{\f1  ICS Interaction Context Menu}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  ICSInteractionContextMenu}}}{\b0\f1\fs18\up6  }{\cs58\f1\fs20\super ${\footnote\ftnalt \r
-\pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super $}{\f1  ICS Interaction Context Menu}}+{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super +}\r
-{\f1  main}}}{\f1\fs20 ICS Interaction Context Menu\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 To see this m\r
-enu, press the right mouse button anywhere in the output (upper) pane of the ICS Interaction window. Pressing the right mouse button in the input (lower) pane gives a standard editing context menu, not described here. Use the }{\b\f1 help}{\f1 \r
- command on ICS to learn what these commands mean.\r
-\par You can customize the lower part of this menu (below the Paste option) by setting the }{\f1\uldb icsMenu}{\v\f1 icsMenu}{\f1  option. The easiest way to accomplish this is to edit your }{\f1\uldb settings file}{\v\f1 settings}{\f1 \r
- with Notepad or another plain text editor. Sorry, there is no graphical user interface for customizing the menu.\r
-\par }{\f1\cf5 Note that the menu will pop up under the mouse pointer on the down-click, and that you can already select an item from it on the up-click. The item that is configured to pop up under the mouse pointer can thus be selected by a \lquote blind\r
-\rquote  static click. If you don\rquote t want that, but rather wants the menu to stay up after the first static click, you should configure an inactive menu item under the pointer.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Copy and Paste}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  CopyAndPaste}}}{\f1  Copy and Paste\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Copies the current selection\r
- to the clipboard, then pastes it to the input box. As a shortcut to this function, you can press the middle mouse button (if you have one), or Shift plus the right mouse button.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Copy}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Copy}}}{\f1  Copy\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Copies the current selection to the clipboard.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Paste}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Paste}}}{\f1  Paste\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Pastes the clipboard contents to the input box.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\pnrnot1\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\revised\super\revauth1\revdttm-1506646559 K}{\f1\revised\revauth1\revdttm-1506646559  Who}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\pnrnot1\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\revised\super\revauth1\revdttm-1506646559 #}{\f1\revised\revauth1\revdttm-1506646559  Who}}}{\f1  Who\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sends the command \ldblquote who\rdblquote }{\b\i\f1  }{\f1 to ICS.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\pnrnot1\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\revised\super\revauth1\revdttm-1506646559 K}{\f1\revised\revauth1\revdttm-1506646559  Players}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\pnrnot1\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\revised\super\revauth1\revdttm-1506646559 #}{\f1\revised\revauth1\revdttm-1506646559  Players}}}{\f1  Players\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sends the command \ldblquote players\rdblquote }{\b\i\f1  }{\f1 to ICS.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\pnrnot1\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\revised\super\revauth1\revdttm-1506646559 K}{\f1\revised\revauth1\revdttm-1506646559  Games}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\pnrnot1\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\revised\super\revauth1\revdttm-1506646559 #}{\f1\revised\revauth1\revdttm-1506646559  Games}}}{\f1  Games\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sends the command \ldblquote games\rdblquote }{\b\i\f1  }{\f1 to ICS.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\pnrnot1\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\revised\super\revauth1\revdttm-1506646559 K}{\f1\revised\revauth1\revdttm-1506646559  Sought}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\pnrnot1\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\revised\super\revauth1\revdttm-1506646559 #}{\f1\revised\revauth1\revdttm-1506646559  Sought}}}{\f1  Sought\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sends the command \ldblquote sought\rdblquote }{\b\i\f1  }{\f1 to ICS.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Tell}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Tell}}}{\f1  Tell (name)\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Inserts \ldblquote tell }{\i\f1 name }{\f1 \rdblquote }{\b\i\f1  }{\f1 into the input box. The string }{\i\f1 name }{\f1 \r
-is the current selection if it is not empty. Otherwise }{\i\f1 name }{\f1 is the word surrounding the mouse position, where a \ldblquote word\rdblquote  is a string of letters, digits, or hyphens (-), such as an ICS user handle or game number.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf5\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\pnrnot1\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\cf5\revised\super\revauth1\revdttm-1506646559 K}{\f1\cf5\revised\revauth1\revdttm-1506646559  }{\f1\cf5 Open Chat Box}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\pnrnot1\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\cf5\revised\super\revauth1\revdttm-1506646559 #}{\f1\cf5\revised\revauth1\revdttm-1506646559  }{\f1\cf5 OpenChatbox}}}{\f1\cf5  Open Chat Box (name)\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf5 Causes WinBoard to open a new Chat Window, with }{\i\f1\cf5 name}{\f1\cf5  in the chat Partner field, where }{\i\f1\cf5 name}{\f1\cf5  is as defined above.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Message}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Message}}}{\f1  Message (name)\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Inserts \ldblquote message }{\i\f1 name }{\f1 \rdblquote }{\b\i\f1  }{\f1 into the input box, where }{\i\f1 name}{\f1  is as defined above.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Finger}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Finger}}}{\f1  Finger (name)\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sends the command \ldblquote finger }{\i\f1 name}{\f1 \rdblquote }{\b\i\f1  }{\f1 to ICS, where }{\i\f1 name}{\f1  is as defined above. \r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Vars}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Vars}}}{\f1  Vars (name)\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sends the command \ldblquote vars }{\i\f1 name}{\f1 \rdblquote }{\b\i\f1  }{\f1 to ICS, where }{\i\f1 name}{\f1  is as defined above. \r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Observe}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Observe}}}{\f1  Observe (name)\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sends the command \ldblquote observe }{\i\f1 name}{\f1 \rdblquote }{\b\i\f1  }{\f1 to ICS, where }{\i\f1 name}{\f1  is as defined above. Here }{\i\f1 name}{\f1 \r
- can be either a user handle or a game number.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Match}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Match}}}{\f1  Match (name)\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sends the command \ldblquote match }{\i\f1 name}{\f1 \rdblquote }{\b\i\f1  }{\f1 to ICS, where }{\i\f1 name}{\f1  is as defined above. \r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\pnrnot1\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\revised\super\revauth1\revdttm-1506646559 K}{\f1\revised\revauth1\revdttm-1506646559  Play}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\pnrnot1\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\revised\super\revauth1\revdttm-1506646559 #}{\f1\revised\revauth1\revdttm-1506646559  Play}}}{\f1  Play (name)\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sends the command \ldblquote play }{\i\f1 name}{\f1 \rdblquote }{\b\i\f1  }{\f1 to ICS, where }{\i\f1 name}{\f1  is as defined above. Here }{\i\f1 name}{\f1 \r
- can be either a user handle or a seek ad number.\r
-\par }\pard\plain \s1\li120\sb280\sa120\sl-320\slmult0\nowidctlpar\outlinelevel0\adjustright \b\f5\cgrid {\f1\fs20 \page }{\cs58\f1\fs20\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super \r
-K}{\f1  Buttons}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Buttons}}${\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\super $}{\f1  Buttons}}+{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super +}{\f1  main}}}{\b0\f1\fs18\up6  }{\f1\fs20 BUTTONS\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Back to Start}}}{\f1  <<\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Same as }{\f1\uldb Back to Start}{\v\f1 BacktoStart}{\f1 .\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Backward}}\r
-}{\f1  <\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Same as }{\f1\uldb Backward}{\v\f1 Backward}{\f1 .\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Pause}}}{\r
-\f1  P\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Same as }{\f1\uldb Pause}{\v\f1 Pause}{\f1 . The button label changes to }{\b\f1 C}{\f1  while WinBoard is pausing.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Forward}}}\r
-{\f1  >\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Same as }{\f1\uldb Forward}{\v\f1 Forward}{\f1 .\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- Forward to End}}}{\f1  >>\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Same as }{\f1\uldb Forward to End}{\v\f1 ForwardtoEnd}{\f1 .\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
-\par }{\cf2 Note that using the mouse wheel has the same effect as using the < or > button.\r
-\par }\pard\plain \s1\li120\sb280\sa120\sl-320\slmult0\nowidctlpar\outlinelevel0\adjustright \b\f5\cgrid {\f1\fs20 \page }{\cs58\f1\fs20\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super \r
-K}{\f1  Command Line Options}}K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Options}}}{\f1\fs20  }{\cs58\f1\fs20\super #{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Options}}}{\f1\fs20  }{\cs58\f1\fs20\super ${\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super $\r
-}{\f1  Command Line Options}}}{\f1\fs20  }{\cs58\f1\fs20\super +{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super +}{\f1  main}}}{\f1\fs20  COMMAND LINE OPTIONS\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 All WinBoard options can be set either on the command line (if you start WinBoard by typing into an MSDOS Prompt box), in the Properties/Shortcut/Target box of a Windows s\r
-hortcut, in a }{\f1\uldb settings file}{\v\f1 settings}{\f1 , or in the Additional Options box of the WinBoard startup dialog. Exactly the same syntax is used in all four places. Most options can also be set from the menus and saved using }{\f1\uldb \r
-Save Settings Now}{\v\f1 SaveSettings}{\f1  or }{\f1\uldb Save Settings on Exit}{\v\f1 SaveSettingsOnExit}{\f1 , so most people will not need to read this section.\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Most options have two names, a long one that is easy to read and a short one that is easy to type. To turn on a boolean (true/false) option }{\i\f1 opt}{\f1 \r
-, you can just give its short name preceded by a minus sign or slash (-}{\i\f1 opt}{\f1  or /}{\i\f1 opt}{\f1 ); to turn one off, prefix the short name by an \ldblquote x\rdblquote  or an extra minus sign (-x}{\i\f1 opt}{\f1  or /-}{\i\f1 opt}{\f1 \r
-). To set any other kind of option, or to set a boolean option using its long name, give the value after the name, separated by a space, colon, or equal sign. (-}{\i\f1 opt}{\f1  23 or /}{\i\f1 option}{\f1 \r
-:true). If a string option contains spaces or special characters, enclose it in double quotes and use the \\ quoting convention of C to name the special characters. Alternatively, you can enclose a string value in curly braces (/opt=\{string\}\r
-), as long as the value does not contain a closing curly brace. If a filename option contains spaces, enclose it in either single or double quotes. In filename options, the \\ character is not treated speciall\r
-y, so use single quotes around the outside of the value if it has double quotes inside (and vice versa).\r
-\par When you start WinBoard, it will pop up the Startup dialog box unless you provide sufficient options on the command line for WinBoard to determine whic\r
-h major mode to be in and what engines to use or chess server to connect to. To bypass this box, you must at minimum give one of the three options }{\f1\uldb /cp}{\v\f1 cp}{\f1 , /}{\f1\uldb ics}{\v\f1 ics}{\f1 , or /}{\f1\uldb ncp}{\v\f1 ncp}{\f1 \r
-.  If you give the /cp option, you must also give the /}{\f1\uldb fcp}{\v\f1 fcp}{\f1  and /}{\f1\uldb scp}{\v\f1 scp}{\f1  options. If you give the /ics option, you must also give the /}{\f1\uldb icshost}{\v\f1 icshost}{\f1  option.\r
-\par }\pard\plain \s29\fi-240\li360\sb60\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\uldb Chess Engine Options}{\v\f1 ChessEngineOptions}{\f1 \r
-\par }{\f1\uldb UCI Engine Support                  !NEW!}{\v\f1 UCIEngineSupport}{\f1 \r
-\par }{\f1\uldb Internet Chess Server Options}{\v\f1 InternetChessServerOptions}{\f1 \r
-\par }{\f1\uldb Load and Save Options}{\v\f1 LoadAndSaveOptions}{\f1 \r
-\par }{\f1\uldb User Interface Options}{\v\f1 UserInterfaceOptions}{\f1 \r
-\par }{\f1\uldb Adjudication Options                   !NEW!}{\v\f1 AdjudicationOptions}{\f1 \r
-\par }{\f1\uldb Other Options}{\v\f1 OtherOptions}{\f1 \r
-\par }\pard\plain \s1\li120\sb280\sa120\sl-320\slmult0\nowidctlpar\outlinelevel0\adjustright \b\f5\cgrid {\f1\fs20 \page }{\cs58\f1\fs20\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super \r
-K}{\f1  Chess Engine Options}}${\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super $}{\f1  Chess Engine Options}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  ChessEngineOptions}}+{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super +}{\f1  main}}}{\f1\fs20  Chess Engine Options\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  cp}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  cp}}}{\f1 /cp}{\b0\f1  or}{\f1  /xcp}{\b0\f1 ,}{\f1  }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  chessProgram}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  chessProgram}}}{\f1 \r
-/chessProgram }{\i\f1 true|false\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If true, puts WinBoard in chess engine mode. In this mode, you can play against a chess program running on your PC or use it as an analysis partner.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  tc}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  tc}}}{\f1 /tc }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  timeControl}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  timeControl}}}{\f1 /timeControl }{\i\f1 \r
-minutes[:seconds]\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Each player begins with his clock set to the timeControl period. Default: 5 minutes. The additional options movesPerSession and timeIncrement are mutually exclusive.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  mps}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  mps}}}{\f1 /mps }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  movesPerSession}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  movesPerSession}}}{\f1 /movesPerSession }{\i\f1 \r
-moves}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 When both players have made movesPerSession moves, a new timeControl period is added to both clocks. Default: 40 moves.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  inc}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  inc}}}{\f1 /inc }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  timeIncrement}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  timeIncrement}}}{\f1 /timeIncrement }{\i\f1 seconds\r
-\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If \r
-this option is specified, movesPerSession is ignored. Instead, after each player's move, timeIncrement seconds are added to his clock. Use -timeIncrement 0 if you want to require the entire game to be played in one timeControl period, with no increment. D\r
-efault: -1, which specifies movesPerSession mode.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  clock }}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  clock }}}{\f1  /clock }{\b0\f1 or }{\f1 /xclock}{\b0\f1 , or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  clockMode}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  clockMode}}}{\f1 \r
- /clockMode }{\i\f1 true|false\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Determines whether or not to display the chess clocks. If clockMode is False, the clocks are not shown, but the side that is to play next is still highlighte\r
-d. Also, unless searchTime is set, the chess engine still keeps track of the clock time and uses it to determine how fast to make its moves.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  st}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  st}}}{\f1  /st }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  searchTime }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  searchTime }}}{\f1  /searchTime }{\i\f1 \r
-minutes[:seconds]}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Tells the chess engine to spend at most the given amount of time searchi\r
-ng for each of its moves. Without this option, the engine chooses its search time based on the number of moves and amount of time remaining until the next time control. Setting this option also sets clockMode to False.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  sd}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  sd}}}{\f1  /depth }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  searchDepth}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  searchDepth}}}{\f1  /searchDepth }{\i\f1 number}{\f1 \r
-\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 T\r
-ells the chess engine to look ahead at most the given number of moves when searching for a move to make. Without this option, the engine chooses its search depth based on the number of moves and amount of time remaining until the next time control. With t\r
-he option, the engine will cut off its search early if it reaches the specified depth.\r
-\par }\pard\plain \s2\li119\sb120\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf11 firstNPS}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 firstNPS}}}{\f1\cf11  /firstNPS }{\i\f1\cf11 number}{\f1\cf11 \r
-\par }\pard \s2\li119\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf11 secondNPS}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 secondNPS}}}{\f1\cf11  /secondNPS }{\i\f1\cf11 number}{\f1\cf11 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 Tells the chess engine to use an internal time standard based on its node count, rather then wall-clock time, to make its time de\r
-cisions. The time in virtual seconds should be obtained by dividing the node count through the given }{\i\f1\cf11 number}{\f1\cf11 \r
-, like the number was a rate in nodes per second. WinBoard will manage the clocks in accordance with this, relying on the number of nodes reported by the engine in its thinking output. If }{\i\f1\cf11 number}{\f1\cf11 \r
- equals zero, it can obviously not be used to convert nodes to seconds, and the time reported by the engine is used to decrement the WinBoard clock. The engine is supposed to report in CPU time it uses, rather t\r
-han wall-clock time in this mode. This option can provide fairer conditions for engine-engine matches on heavily loaded machines, or with very fast games (where the wall clock is too inaccurate). \ldblquote Show Thinking\rdblquote \r
- must be on for this option to work. Not many engines might support this yet!\r
-\par }\pard\plain \s2\li119\sb120\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf11 firstTimeOdds}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 firstTimeOdds}}}{\f1\cf11  /firstTimeOdds }{\i\f1\cf11 factor}{\f1\cf11 \r
-\par }\pard \s2\li119\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf11 secondTimeOdds}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 secondTimeOdds}}}{\f1\cf11  /secondTimeOdds }{\i\f1\cf11 factor}{\f1\cf11 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 Reduces the time given to the mentioned engine by the given }{\i\f1\cf11 factor}{\f1\cf11 \r
-. If pondering is off, the effect is indistinguishable from what would happen if the engine was running on a }{\i\f1\cf11 factor}{\f1\cf11  times slower machine.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\pnrnot1\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\revised\super\revauth1\revdttm-1506646559 K}{\f1\revised\revauth1\revdttm-1506646559  }{\f1\cf11 timeOddsMode}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\pnrnot1\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\revised\super\revauth1\revdttm-1506646559 #}{\f1\revised\revauth1\revdttm-1506646559  }{\f1\cf11 timeOddsMode}}}{\f1\cf11  /timeOddsMode }{\i\f1\cf11 mode\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 \r
-This option determines how the case is handled when both engines have a time-odds handicap. If mode=1, the engine that gets the most time will always get the nominal time, as specified by the time-control options, and its opponent\rquote \r
-s time is normalized similarly. If mode=0, both play with reduced time.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\pnrnot1\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\revised\super\revauth1\revdttm-1506646559 K}{\f1\revised\revauth1\revdttm-1506646559  ponder}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\pnrnot1\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\revised\super\revauth1\revdttm-1506646559 #}{\f1\revised\revauth1\revdttm-1506646559  ponder}}}{\f1  /ponder}{\b0\f1  or }{\f1 /xponder}{\b0\f1 ,}{\f1  }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\pnrnot1\adjustright \f5\fs20\cgrid {\cs58\f1\revised\super\revauth1\revdttm-1506646559 K}{\f1\revised\revauth1\revdttm-1506646559  ponderNextMove}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\pnrnot1\adjustright \f5\fs20\cgrid {\cs58\f1\revised\super\revauth1\revdttm-1506646559 #}{\f1\revised\revauth1\revdttm-1506646559  ponderNextMove}}}{\f1  /ponderNextMove }{\i\f1 true|false\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sets the }{\f1\uldb Ponder Next Move}{\v\f1 ponderNextMoveCmd}{\f1  option. Default: True.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  thinking}}\r
-#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  thinking}}}{\f1  /thinking}{\b0\f1  or }{\f1 /xthinking}{\b0\f1 ,}{\f1  }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \r
-\pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  showThinking}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1 \r
- showThinking}}}{\f1  /showThinking }{\i\f1 true|false\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sets the }{\f1\uldb Show Thinking}{\v\f1 showThinkingCmd}{\f1  option. Default: False.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  periodic }\r
-}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  periodic}}}{\f1  /periodic }{\b0\f1 or }{\f1 /xperiodic}{\b0\f1 , or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  periodicUpdates}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  periodicUpdates}}}{\r
-\f1  /periodicUpdates }{\i\f1 true|false\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sets the }{\f1\uldb Periodic Updates}{\v\f1 periodicUpdatesCmd}{\f1  option. Default: True.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  mg }}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  mg }}}{\f1  /mg }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  matchGames }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  matchGames}}}{\f1  /matchGames }{\i\f1 n\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Automatically runs an }{\b\i\f1 n}{\i\f1 -}{\f1 game match between two chess engines, with alternating colors. If the }{\f1\uldb loadGameFile}{\v\f1 loadGameFile}{\f1  or }\r
-{\f1\uldb loadPositionFile}{\v\f1 loadPositionFile}{\f1  option is set, WinBoard will start each game with the given opening moves or the given position; otherwise, the games will start with the standard initial chess position. If the }{\f1\uldb \r
-saveGameFile}{\v\f1 saveGameFile}{\f1  option is set, a move record for the match will be appended to the specified file. If the }{\f1\uldb savePositionFile}{\v\f1 savePositionFile}{\f1  option is set, the final position reached \r
-in each game of the match will be appended to the specified file. When the match is over, WinBoard will display the match score and exit. Default: 0 (do not run a match).\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  mm }}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  mm }}}{\f1  /mm }{\b0\f1 or }{\f1 /xmm}{\b0\f1 , or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  matchMode }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  matchMode }}}{\f1 \r
- /matchMode }{\i\f1 true|false\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Provided for backward compatibility. If true and matchGames=0, sets matchGames=1.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf11 matchPause}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 matchPause}}}{\f1\cf11  /matchPause }{\i\f1\cf11 number}{\f1\cf11 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 Sets the length of the pause between games in match mode to }{\i\f1\cf11 number}{\f1\cf11 \r
- msec. Default value is 10000, i.e. 10 sec. (If this pause is too short, engines not implementing \lquote ping\rquote  will sometimes send th\r
-e last move of their previous game only when a new game has started, at which time the move is illegal, and causes them to forfeit the game.)\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  fd}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  fd }}}{\f1  /fd }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  firstDirectory}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  firstDirectory}}}{\f1  /firstDirectory }{\i\f1 dir\r
-\line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  sd}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\super #}{\f1  sd }}}{\f1  /sd }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  secondDirectory}}#{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  secondDirectory}}}{\f1  /secondDirectory }{\i\f1 dir}{\cs58\f1\super  }{\f1 \line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf11 fcp }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf11\super #}{\f1\cf11  fcp }}}{\f1  /fcp }{\b0\f1 or}{\f1  }{\r
-\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf11\super K}{\f1\cf11  firstChessProgram }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf11\super #}{\f1\cf11  firstChessProgram }}}{\f1  /firstChessProgram }{\i\f1 command\line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \r
-\f5\fs20\cgrid {\cs58\f1\cf11\super K}{\f1\cf11  scp }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf11\super #}{\f1\cf11  scp }}}{\f1  /scp }{\b0\f1 or}{\f1  }{\cs58\f1\super K\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf11\super K}{\f1\cf11  secondChessProgram }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \r
-\f5\fs20\cgrid {\cs58\f1\cf11\super #}{\f1\cf11  secondChessProgram}{\f1  }}}{\f1  /secondChessProgram }{\i\f1 command}{\cs58\f1\super  }{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-Names of the chess engines and working directories in which they are to be run. The second chess engine is started only in Two Machines (match) mode. These arguments are parsed as filenames; that is, the \\ character is\r
- interpreted literally, not as a C-style escape.\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 The }{\i\f1 dir}{\f1 \r
- argument specifies the initial working directory for the chess engine. It should usually be the directory where the engine and its working files are installed. If }{\i\f1 dir}{\f1  is not an absolute pathname, it \r
-is interpreted relative to the directory from which WinBoard.exe itself was loaded. The }{\i\f1 dir}{\f1  argument is ignored if the chess engine is being run on a remote machine (see firstHost and secondHost below). The default value for }{\i\f1 dir }{\r
-\f1 "", meaning that the chess engine is expected to be installed in the same directory as WinBoard.\r
-\par The }{\i\f1 command}{\f1  argument is actually the command line to the chess engine, so if the engine itself needs command line arguments, you can include them by enclosing }{\i\f1 command}{\f1  in single or double\r
- quotes. If the engine name or an engine argument has a space in it, use single quotes around the whole }{\i\f1 command, }{\f1 \r
-and inside them use double quotes around each item that contains spaces. If the engine name has more than one period in it (for example, }{\f2 QChess1.5.exe}{\f1 ), you must include the "}{\f2 .exe}{\f1 \r
-" extension; otherwise you can leave it out. The default value for }{\i\f1 command}{\f1  is "", which brings up the startup dialog to ask which engines you want.\r
-\par Examples:\r
-\par }\pard\plain \s19\fi-518\li1036\sb60\sl-240\slmult0\keep\nowidctlpar\tx520\tx920\tx1320\tx1720\tx2120\adjustright \f6\fs16\cgrid {\f2 WinBoard /cp /fd="C:\\Program Files\\Crafty" /fcp=WCrafty-15.12.exe /scp=GNUChess\r
-\par WinBoard /cp /fd="C:\\Miracle Games" /fcp='"Miracle Chess.exe" /wow' /scp=GNUChess\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 The basic rule is thus that what is inside the quotes delimiting the argument to /fcp and /scp, all goes to the engine, and is ignored by WinBoard. WinBoard\r
- 4.3.13 and later, however, knows an exception to this: If, within the quotes, the word WBopt appears, everything that follows this word will be interpreted as a WinBoard argument, in stead of being passed to the engine on startup of the latter. (The WBop\r
-t\r
- itself is also not passed to the engine.) This possibility of hiding WinBoard arguments in the engine command is provided in order to create options that follow the engine in a tournament, when a tournament manager like PSWBTM is used to invoke WinBoard.\r
- Because, in order to apply to a given engine, some options need to know if they apply to first or second engine, which might vary during the tournament, options hidden inside the engine command-line can contain \lquote %s\rquote \r
- which will be replaced at the time the option is used by \lquote first\rquote  or \lquote second\rquote , as applicable.\r
-\par Examples:\r
-\par }\pard\plain \s19\fi-518\li1036\sb60\sl-240\slmult0\keep\nowidctlpar\tx520\tx920\tx1320\tx1720\tx2120\adjustright \f6\fs16\cgrid {\f2\cf11 WinBoard /cp /fd="C:\\Engines\\Crafty" /fcp=\rdblquote WCrafty-15.12 WBopt /%sTimeOdds=2\rdblquote  /scp=GNUChess\r
-\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 Meaning that Crafty will have to play with half the time GNUChess will get.\r
-\par }\pard\plain \s19\sb60\sl-240\slmult0\keep\nowidctlpar\tx520\tx920\tx1320\tx1720\tx2120\adjustright \f6\fs16\cgrid {\f2 \r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  fh }}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  fh }}}{\f1  /fh }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  firstHost }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  firstHost }}}{\f1  /firstHost }{\i\f1 host\line }{\r
-\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  sh }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\super #}{\f1  sh }}}{\f1  /sh }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  secondHost }}#{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  secondHost }}}{\f1  /secondHost }{\i\f1 host}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Hosts on which the chess engines are to run. The default for each is "localhost". If you specify another host, WinBoard}{\i\f1  }{\f1 uses }{\f1\uldb rsh}{\v\f1 rsh}{\f1 \r
- to run the chess program there. The /fd and /sd flags do not work in conjunction with the\r
-se flags; if you need a remote chess engine to run somewhere other than your default login directory on the remote machine, you will have to include a "cd" command in the argument to /fcp or /scp.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  initString\r
-}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  initString}}}{\f1  /firstInitString }{\b0\f1 or }{\f1 /initString }{\i\f1 string\line }{\cs58\f1\super K{\footnote\ftnalt \r
-\pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  secondInitString}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1 \r
- secondInitString}}}{\f1  /secondInitString }{\i\f1 string}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 The strings that are sent to initialize the chess engines. Default: "new\\nrandom\\n". The "\\n" sequences represent newlines. You can type "\\\r
-n" on the command line or in a }{\f1\uldb settings file}{\v\f1 settings}{\f1 , and WinBoard will convert it to a newline.\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 All chess engines require the "new" command to start a new game.\r
-\par You can remove the "random" command if you like; including it causes engines that implement this command (e.g. GNU Chess) to randomize their move selection slightly so that it doesn't play the same mo\r
-ves in every game. Even without "random", many engines randomize their choice of moves from their opening book. You can also try adding other commands to the initString; see the applicable engine documentati{\*\bkmkstart _Hlt386545814}o\r
-{\*\bkmkstart _Hlt386567280}{\*\bkmkend _Hlt386545814}n{\*\bkmkend _Hlt386567280} for details. Crafty ignores the "random" command; see its documentation for the commands it accepts.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  initString\r
-}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  initString}}}{\f1  /firstComputerString }{\i\f1 string\line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  secondInitString}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  secondInitString}}\r
-}{\f1  /secondComputerString }{\i\f1 string}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If the chess engine is playing against another computer program (whether locally or on a chess server), by default the command "computer\\n\r
-" is sent to it. Some chess engines change their playing style when they receive this command. If you do not want the engine to know when it is playing another computer, you can set the string to "".\r
-\par }\pard\plain \s66\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cf11\cgrid {Note that the computer string is sent to the engine afte\r
-r most other initialization commands, and is thus ideal for hiding a WinBoard-protocol command in that should be sent only to one engine, when the WinBoard option that normally specifies this command cannot be differentiated by engine, but is always sent \r
-to both engines. E.g. if you want one of the engines to ponder, and the other not. Because it is sent last, it can overrule earlier commands.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  fb }}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  fb }}}{\f1  /fb }{\b0\f1 or }{\f1 /xfb}{\b0\f1 , or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  firstPlaysBlack }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  firstPlaysBlack}}}\r
-{\f1  /firstPlaysBlack }{\i\f1 true|false\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 In games between two chess programs, the firstChessProgram normal\r
-ly plays white. (This is a change from earlier versions of WinBoard.) If this option is True, firstChessProgram plays black. In a multi-game match, this option affects the colors only for the first game; they still alternate in subsequent games.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  reuse}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  reuse}}}{\f1 /reuse}{\cs58\f1\super  }{\b0\f1 or }{\f1 /xreuse}{\b0\f1 , or }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  reuseFirst}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  reuseFirst}}}{\f1 \r
-/reuseFirst}{\i\f1  true|false\line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  reuse2}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  reuse2}}}{\f1 /reuse2}{\cs58\f1\super  }{\b0\f1 or }{\f1 /xreuse2}{\b0\f1 , or }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \r
-\f5\fs20\cgrid {\cs58\f1\super K}{\f1  reuseSecond}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  reuseSecond}}}{\f1 /reuseSecond}{\i\f1  true|false}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If this option is True (the default), WinBoard}{\i\f1  }{\f1 \r
-uses the same chess engine process repeatedly when playing multiple games. If the option is False, WinBoard kills off \r
-the chess engine after every game and starts a fresh one for the next game. Starting a fresh chess engine can be slow, so it is not recommended. However, some chess engines may not work properly when reused, such as versions of Crafty earlier than 12.0.\r
-\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- firstProtocolVersion}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  firstProtocolVersion}}}{\f1 /firstProtocolVersion }{\i\f1 ver\line }{\cs58\f1\super K{\footnote\ftnalt \r
-\pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  secondProtocolVersion}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1 \r
- secondProtocolVersion}}}{\f1 /secondProtocolVersion }{\i\f1 ver}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-This option specifies which version of the chess engine communication protocol to use. By default, version-number is 2. In version 1, the "protover" command is not sent to the engine; since version 1 i\r
-s a subset of version 2, nothing else changes. Other values for version-number are not supported.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf6 firstScoreAbs}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 firstScoreAbs}}}{\f1\cf6 /firstScoreAbs}{\i\f1\cf6  true|false\line }{\cs58\f1\cf6\super K\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 secondScoreAbs}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\super #}{\f1  }{\f1\cf6 secondScoreAbs}}}{\f1\cf6 /secondScoreAbs}{\i\f1\cf6  true|false\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 If this option is true, the score reported by the engine is taken to be that in favor of white, even \r
-when the engine plays black. Important when winboard uses the score for adjudications, or in PGN reporting. This can be a useful option in combination with WBopt in the engine command-line, see under /fcp.}{\cf6 \r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf2\super K}{\f1\cf2 \r
- absoluteAnalysisScore}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf2\super #}{\f1\cf2  absoluteAnalysisScore}}}{\f1 /absoluteAnalysisScore }{\i\f1 true|false\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 When this opti\r
-on is switched on, scores will be reported in the Engine Output window from the white point of view during analysis. When off, and in other modes, it will be reported from the point of view of the side to move. (Note that many engines violate this rule wh\r
-ile pondering!) Default: true.}{\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf2\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf2\super K}{\r
-\f1\cf2  niceEngines}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf2\super #}{\f1\cf2  niceEngines}}}{\f1\cf2 /niceEngines}{\i\f1\cf2  priority\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf2 \r
-This option allows you to lower the priority of the engine processes, so that the generally insatiable hunger for CPU time of chess engines does not interfere so much with smooth operation of WinBoard (\r
-or the rest of your system). Try priority = 10 or even 20 to lower the priority of the engines. Negative values could increase the engine priority, which is not recommended.}{\cf6 \r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf2\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf2\super K}{\r
-\f1\cf2  firstOptions}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf2\super #}{\f1\cf2  firstOptions}}}{\f1\cf2 /firstOptions}{\i\f1\cf2  string\line }{\cs58\f1\cf2\super K\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf2\super K}{\f1\cf2  secondOptions}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\cf2\super #}{\f1\cf2  secondOptions}}}{\f1\cf2 /secondOptions}{\i\f1\cf2  string\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf2 The given string is a comma-separated list of (option name, option value) pairs, like the following example: \ldblquote style=Karpov,blunder rate=0\rdblquote \r
-. If the options announced by the engine at startup through the feature commands of WinBoard protocol matches one of the option names (i.e. \ldblquote style\rdblquote  or \ldblquote blunder rate\rdblquote ), it would be set to the given value (i.e. \r
-\ldblquote Karpov\rdblquote  or 0) through a corresponding option command to the engine. This provided that the type of the value (text or numeric) matches as well.}{\cf6 \r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf2\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf2\super K}{\r
-\f1\cf2  firstNeedsNoncompliantFEN}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf2\super #}{\f1\cf2  firstNeedsNoncompliantFEN}}}{\f1\cf2 /firstNeedsNoncompliantFEN}{\i\f1\cf2  string\r
-\line }{\cs58\f1\cf2\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf2\super K}{\f1\cf2  secondNeedsNoncompliantFEN}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf2\super #}{\f1\cf2  secondNeedsNoncompliantFEN}}}{\f1\cf2 /secondNeedsNoncompliantFEN}{\i\f1\cf2  string\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf2 \r
-The castling rights and e.p. fields of the FEN sent to the mentioned engine with the setboard command will be replaced by the given string. This can for instance be used to run engines that do not understand Chess960 FENs in variant fisch\r
-erandom, to make them at least understand the opening position, through setting the string to \ldblquote KQkq -\rdblquote \r
-. (Note you also have to give the e.p. field!) Other possible applications are to provide work-arounds for engines that want to see castling and e.p. fiel\r
-ds in variants that do not have castling or e.p. (shatranj, courier, xiangqi, shogi) so that WinBoard would normally omit them (string = \ldblquote - -\ldblquote \r
-, or to add variant-specific fields that are not yet supported by WinBoard (e.g. to indicate the number of checks in 3check).\r
-\par }{\r
-\par }\pard\plain \s1\li120\sb280\sa120\sl-320\slmult0\nowidctlpar\outlinelevel0\adjustright \b\f5\cgrid {\f1\fs20 \page }{\cs58\f1\fs20\super +{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super \r
-+}{\f1  main}}K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Tournament Options}}${\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \r
-\f5\fs20\cgrid {\cs58\f1\super $}{\f1  Tournament Options}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  TournamentOptions}}}{\f1\fs20  Tournament Options\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  tf}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  tf}}}{\f1  /tf }{\i\f1 filename}{\f1  }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  tourneyFile}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  tourneyFile}}}{\f1 \r
- /tourneyFile }{\i\f1 filename}{\f1 \r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Specifies the name of the tournament file used in match mode to conduct a multi-player tournament}{\v\f1 ICSLogon}{\f1 \r
-. This file is a special settings file, which stores the description of the tournament (including progress info), through normal options (e.g. for time control, load and save files), and through some special-purpose options listed below.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  tt }}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  tt }}}{\f1  /tt }{\i\f1 number}{\b0\f1  or }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  tourneyType }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  tourneyType }}}{\f1  /tourneyType }{\i\f1 number}{\r
-\f1 \r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Specifies the type of tourney: 0 = round-robin, N>0 = (multi-)gauntlet with N gauntlet engines, -1 = Swiss through external pairing engine}{\v\f1 ICSLogon}{\f1 \r
-. Volatile option, but stored in tourney file.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  cy }}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  cy }}}{\f1  /cy }{\i\f1 number}{\f1  }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  tourneyCycles }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  tourneyCycles }}}{\r
-\f1  /tourneyCycles }{\i\f1 number}{\f1 \r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Specifies the number of cycles in a tourney}{\v\f1 ICSLogon}{\f1 . Volatile option, but stored in tourney file.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- participants }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  participants}}}{\f1  /participants }{\i\f1 list}{\f1 \r
-\par }\pard\plain \s20\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-The list is a multi-line text string that specifies engines occurring in the /firstChesProgramNames list in the settings file by their (implied or explicitly given) nickname, one engine per line. The ment\r
-ioned engines will play in the tourney. Volatile option, but stored in tourney file.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  results }}\r
-#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  results}}}{\f1  /results }{\i\f1 string}{\f1 \r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 The string of +=- characters lists the result of all played games in a toruney. Games currently playing are listed as *, while a space indicates a game \r
-that is not yet played or playing (usually because it was playing, and the aborted). Volatile option, but stored in tourney file.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- defaultTourneyName }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  defaultTourneyName}}}{\f1  /defaultTourneyName }{\i\f1 string}{\f1 \r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Specifies the name of the tournament file WinBoard should propose when the Tournament Options di\r
-alog is opened. Any %y, %M, %d, %h, %m, %s in the string are replaced by the current year, month, day of the month, hours, minutes, seconds of the current time, respectively, as two-digit number. A %Y would be replaced by the year as 4-digit number. Defau\r
-lt: empty string.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- pairingEngine}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  pairingEngine}}}{\f1  /pairingEngine }{\i\f1 filename}{\f1 \r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-Specifies the external program to be used to pair the participants in Swiss tourneys. WinBoard communicates with this engine in the same way as it communicates with Chess engines. The only commands sent to the pairing engine are \ldblquote results }{\r
-\i\f1 N string}{\f1 \rdblquote , where }{\i\f1 N}{\f1  is the number of participants, and }{\i\f1 string}{\f1  the results so far in the format of the results option, and \ldblquote pairing }{\i\f1 N}{\f1 \rdblquote \r
-, where N is the number of the tourney game. To the latter the pairing engine should answer with \ldblquote A-B\rdblquote , where A and B are participant numbers (in the range 1-N). (There should be no reply to the results command.) Default: empty string.\r
-\r
-\par }\pard\plain \s1\li120\sb280\sa120\sl-320\slmult0\nowidctlpar\outlinelevel0\adjustright \b\f5\cgrid {\f1\fs20 \page }{\cs58\f1\fs20\cf6\super +{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\super +}{\f1  main}}K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 UCI Engine Support}}${\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super $}{\f1  }{\f1\cf6 UCI Engine Support}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 UCIEngineSupport}}}{\r
-\f1\fs20\cf6  UCI Engine Support\r
-\par }\pard\plain \s2\li119\sb120\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 \r
-fUCI}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 fUCI}{\f1  }}}{\f1\cf6  /fUCI }{\b0\f1\cf6 or}{\f1\cf6  }{\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 firstIsUCI}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 \r
-firstIsUCI}}}{\f1\cf6  /firstIsUCI}{\i\f1\cf6  true|false}{\f1\cf6 \r
-\par }\pard \s2\li119\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 sUCI}{\f1  }}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 sUCI}{\f1  }}}{\f1\cf6  /sUCI }{\b0\f1\cf6 or}{\f1\cf6  }{\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 secondIsUCI}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 \r
-secondIsUCI}}}{\f1\cf6  /secondIsUCI}{\i\f1\cf6  true|false}{\f1\cf6 \r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 Indicates if the mentioned engine executable file is an UCI engine,}{\v\cf6  ICSLogon}{\cf6 \r
- and should be run with the aid of a protocol adapter rather than directly. The adapterCommand option specifies wchich adapter to use, and which info to pass to it on the command line. In a normal WinBoard install, this will invoke Polyglot.\r
-\par }\pard\plain \s2\li119\sb120\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 \r
-fUCCI}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 fUCCI}{\f1  }}}{\f1\cf6  /fUCCI }{\b0\f1\cf6 or}{\f1\cf6  }{\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 fUSI}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 fUSI}}}{\r
-\f1\cf6  /fUSI\r
-\par }\pard \s2\li119\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 sUCCI}{\f1  }}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 sUCCI}{\f1  }}}{\f1\cf6  /sUCCI }{\b0\f1\cf6 or}{\f1\cf6  }{\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 sUSI}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 sUSI}}}{\r
-\f1\cf6  /sUSI\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 Similar to the fUCI and sUCI options, but invoking a secondary adapter, specified through he uxiAdapter option. Useful in environments where engines of several alien \r
-protocols are around, e.g. for Xiangqi, where UCI and UCCI engines need different adapters.}{\cf6 .\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf6 PolyglotDir}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 PolyglotDir}{\f1  }}}{\f1\cf6  /PolyglotDir }{\i\f1\cf6 filename}{\f1\cf6 \r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 Gives the name of the folder in which Polyglot is installed}{\v\f1\cf6 ICSLogon}{\f1\cf6 .\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf6 adapterCommand}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 adapteCommand}{\f1  }}}{\f1\cf6  /adapterCommand }{\i\f1\cf6 command}{\f1\cf6 \r
-\par }\pard \s2\li119\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 uxiAdapter}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 uxiAdapter}{\f1  }}}{\f1\cf6  /uxiAdapter }{\i\f1\cf6 command}{\f1\cf6 \r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 Specifies the comma\r
-nds to use in stead of the engine command when the fUCI / sUCI (or for uxiAdapter fUCCI and sUCCI) are in force. The command line can contain words of the form %xxx, where xxx is the name of a WinBoard option, such as fcp, fd, cacheSizeEGTB, which will th\r
-e\r
-n automatically be replaced by the value of that option. (For the second engine the leading f or first will automatically be replaced by s or second.) This allows the engine name and directory, as well as other info known to WinBoard, to be passed to the \r
-adapter on its command line}{\v\f1\cf6 ICSLogon}{\f1\cf6 . \r
-\par Default adapterCommand is \{polyglot \endash noini \endash ec \ldblquote %fcp\rdblquote  \endash ed \ldblquote %fd\rdblquote \}\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf6 usePolyglotBook}{\f1  }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 usePolyglotBook}{\f1  }}}{\f1\cf6  /usePolyglotBook }{\i\f1\cf6 true|false}{\f1\cf6 \r
-\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 Specifies if the Polygot book should be used}{\v\f1\cf6 ICSLogon}{\f1\cf6 .\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf6 PolyglotBook}{\f1  }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 PolyglotBook}{\f1  }}}{\f1\cf6  /PolyglotBook }{\i\f1\cf6 filename}{\f1\cf6 \r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 Gives the filename of the opening book that Polyglot should use}{\v\f1\cf6 ICSLogon}{\f1\cf6 .\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf5\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super K}{\r
-\f1\cf5  bookDepth }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super #}{\f1\cf5  bookDepth}}}{\f1\cf5  /bookDepth }{\i\f1\cf5 number}{\f1\cf5 \r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf5 Restricts the use of the GUI book to the first }{\i\f1\cf5 number}{\f1\cf5  full moves of the game.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf5\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super K}{\r
-\f1\cf5  bookVariation }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super #}{\f1\cf5  bookVariation}}}{\f1\cf5  /bookVariation }{\i\f1\cf5 number}{\f1\cf5 \r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf5 Controls the selection of book moves. The default setting of 50 would play the moves with a frequency \r
-proportional to the weight listed in the book. Useful settings vary from 0 (always play best move) to 100 (select completely randomly from all listed moves).\r
-\par }\pard\plain \s2\li119\sb120\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 \r
-fNoOwnBookUCI}{\f1  }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 fNoOwnBookUCI}{\f1  }}}{\f1\cf6  /fNoOwnBookUCI }{\b0\f1\cf6 or}{\f1\cf6  }{\cs58\f1\cf6\super K\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 firstXBook}{\f1  }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\super #}{\f1  }{\f1\cf6 firstXBook}{\f1  }}}{\f1\cf6  /firstXBook }{\b0\f1\cf6 or}{\f1\cf6  }{\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf6 firstHasOwnBookUCI}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 firstHasOwnBookUCI}}}{\f1\cf6  /firstHasOwnBookUCI}{\i\f1\cf6  true|false}{\f1\cf6 \r
-\par }\pard \s2\li119\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 sNoOwnBookUCI}{\f1  }}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 sNoOwnBookUCI}{\f1  }}}{\f1\cf6  /sNoOwnBookUCI }{\b0\f1\cf6 or}{\f1\cf6  }{\cs58\f1\cf6\super K{\footnote\ftnalt \r
-\pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 secondXBook}{\f1  }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}\r
-{\f1  }{\f1\cf6 secondXBook}{\f1  }}}{\f1\cf6  /secondXBook }{\b0\f1\cf6 or}{\f1\cf6  }{\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 \r
-secondHasOwnBookUCI}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 secondHasOwnBookUCI}}}{\f1\cf6  /secondHasOwnBookUCI}{\i\f1\cf6  true|false}{\f1\cf6 \r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 Indicates if the mentioned engine lacks an opening book or not}{\cf6 . }{\cf2 \r
-Engines that have an own opening book will not use the GUI book (as given by /polyglotBook) even if /usePolyglotBook is set to true.}{\cf6 \r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf6 defaultHashSize}{\f1  }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 defaultHashSize}{\f1  }}}{\f1\cf6  /defaultHashSize }{\i\f1\cf6 number}{\f1\cf6 \r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 Sets the size of the hash table to }{\i\f1\cf6 number}{\f1\cf6  MegaBytes}{\v\f1\cf6 ICSLogon}{\f1\cf6 .\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf6 defaultCacheSizeEGTB}{\f1  }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 defaultCacheSizeEGTB}{\f1  }}}{\f1\cf6  /defaultCacheSizeEGTB }{\i\f1\cf6 number}{\r
-\f1\cf6 \r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 Sets the size of the EGTB cache to }{\i\f1\cf6 number}{\f1\cf6  MegaBytes}{\v\f1\cf6 ICSLogon}{\f1\cf6 .\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf6 defaultPathEGTB}{\f1  }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 defaultPathEGTB}{\f1  }}}{\f1\cf6  /defaultPathEGTB }{\i\f1\cf6 filename}{\f1\cf6 \r
-\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 Gives the name of the folder where the end-game tablebases are installed}{\v\f1\cf6 ICSLogon}{\f1\cf6 .\r
-\par }{\r
-\par }\pard\plain \s1\li120\sb280\sa120\sl-320\slmult0\nowidctlpar\outlinelevel0\adjustright \b\f5\cgrid {\f1\fs20 \page }{\cs58\f1\fs20\super +{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super \r
-+}{\f1  main}}K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Internet Chess Server Options}}${\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super $}{\f1  Internet Chess Server Options}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  InternetChessServerOptions}}}{\r
-\f1\fs20  Internet Chess Server Options\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  ics }}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  ics }}}{\f1  /ics }{\b0\f1 or }{\f1 /xics}{\b0\f1 , or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  internetChessServerMode}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  internetCh\r
-essServerMode}}}{\f1  /internetChessServerMode}{\i\f1  true|false}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Connect with an Internet Chess Server to play chess against its other users, observe games they are playing, or review games that have recently finished. See }{\f1\uldb \r
-ICS Client}{\v\f1 ICSClient}{\f1  Default: False.\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 You can create a script file containing ICS commands that WinBoard will type in for you whenever you connect to the ICS. See }{\f1\uldb ICS Logon}{\v\f1 ICSLogon}{\f1 .\r
-\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  icshost }}\r
-#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  icshost }}}{\f1  /icshost }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  internetChessServerHost }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  internetChessServerHost }}}{\f1 \r
- /internetChessServerHost }{\i\f1 hostname}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-The host name or numeric address of the Internet Chess Server to connect to when in ICS mode. The default is the empty string, which causes WinBoard to pop up a menu of known ICS sites. The file ics-address{\*\bkmkstart _Hlt386546221}e\r
-{\*\bkmkend _Hlt386546221}s.txt in the WinBoard distribution gives slightly more information on these sites. It includes their numeric addresses, which you can use if your site does not have a working name server.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  icsport }}\r
-#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  icsport }}}{\f1  /icsport }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  internetChessServerPort }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  internetChessServerPort }}}{\f1 \r
- /internetChessServerPort }{\i\f1 portnumber}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 The port number to use when connecting to a chess server in ICS mode. Default: 5000.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  via }}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  via }}}{\f1 /icshelper }{\i\f1 program}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 An external helper program used to communicate with the chess server. Typically }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  timestamp}}}{\i\f1 timestamp}{\f1  for the ICC (chessclub.com) or }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\super K}{\f1  timeseal}}}{\i\f1 timeseal}{\f1  for FICS (freechess.org, eics.daimi.aau.dk, etc.). This option is shorthand for \ldblquote /useTelnet /telnetProgram }{\i\f1 program}{\f1 \rdblquote }{\b\f1 .\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  telnet}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  telnet}}}{\f1 /telnet}{\b0\f1  or }{\f1 /xtelnet}{\b0\f1 ,}{\f1  }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  useTelnet}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  useTelnet}}}{\f1 \r
-/useTelnet}{\i\f1  true|false}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 This option is poorly named; it should be called }{\b\f1 /useHelper}{\f1 \r
-. If set to True, it instructs WinBoard to use an external helper program to communicate with the ICS, as spe\r
-cified by the telnetProgram option. The external program must be a pure console application that can communicate with WinBoard through pipes; the Windows telnet application is not suitable. If the option is False (the default), WinBoard communicates with \r
-the ICS by opening a Winsock TCP socket and using its own internal implementation of the telnet protocol.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  gateway}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  gateway}}}{\f1 /gateway }{\i\f1 hostname}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If this option is set to a host name, WinBoard uses }{\f1\uldb rsh}{\v\f1 rsh}{\f1  to run the telnetProgram remotely on the given host to communicate with \r
-the Internet Chess Server instead of using its own internal implementation of the telnet protocol. See the }{\f1\uldb FIREWALLS}{\v\f1 FIREWALLS}{\f1  section below for an explanation of when this option is useful.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- telnetProgram}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  telnetProgram}}}{\f1 /telnetProgram }{\i\f1 program}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 This option is poorly named; it should be called }{\b\f1 /helperProgram}{\f1 \r
-. It gives the name of the remote or external helper program to be used with the gateway or useTelnet option. The default is "telnet". The telnet program is invoked with the value of internetChessServer as the first argument and the v\r
-alue of internetChessServerPort as the second argument on its command line.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  icscom }}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  icscom }}}{\f1 /icscom }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  internetChessServerComPort }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  internetChessServerComPort }}}{\f1 \r
-/internetChessServerComPort }{\i\f1 name}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If this option is set, WinBoard communicates with the Internet Chess Server using a serial communication port instead of a network c\r
-onnection. Use this option if your machine is not connected to a network (not even via SLIP or PPP), but you do have Internet access through another machine by dialing in using a modem or by connecting directly to a serial terminal port. Example:\r
-\par }\pard\plain \s19\li120\sb60\sl-240\slmult0\keep\nowidctlpar\tx520\tx920\tx1320\tx1720\tx2120\adjustright \f6\fs16\cgrid {\f2 WinBoard /ics /icscom:com1\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 After you start WinBoard in this way, type whatever modem commands are necessary to dial out to your Internet provider and log in. You may need to turn off }{\f1\uldb \r
-Local Line Editing}{\v\f1 LocalLineEditing}{\f1  on the Options menu while typing commands to the modem, but turn it on again afterwards. Then telnet to the ICS, using a command like "telnet chessclub.com 5000". Important: See the paragraph in the }{\r
-\f1\uldb LIMITATIONS}{\v\f1 LIMITATIONS}{\f1  section below about extra echoes.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- comPortSettings }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  comPortSettings }}}{\f1  /comPortSettings}{\b0\f1  }{\i\f1 \ldblquote dataRate,dataBits,parity,stopBits,flow\r
-\rdblquote \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 This option allows serial port parameters to be set from the command line or a settings file. The values are simply filled in to the }{\f1\uldb Communications}{\v\f1 \r
-Communications}{\f1  dialog.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  icslogon }\r
-}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  icslogon }}}{\f1  /icslogon }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  internetChessServerLogonScript }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  internetChessServerLogonScript }}\r
-}{\f1  /internetChessServerLogonScript }{\i\f1 filename\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 This option lets you change the name used for the }{\f1\uldb ICS Logon}{\v\f1 ICSLogon}{\f1 \r
- file. Default: "ICS.ini". The filename is interpreted relative to WinBoard's installation directory (the directory containing WinBoard.exe).\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  autocomm }\r
-}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  autocomm }}}{\f1  /autocomm }{\b0\f1 or }{\f1 /xautocomm}{\b0\f1 , or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  autoComment }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  autoComment }}}{\f1 \r
- /autoComment}{\i\f1  true|false}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sets the }{\f1\uldb Auto Comment}{\v\f1 AutoCommentCmd}{\f1  option. Default: False.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  autoflag }\r
-}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  autoflag }}}{\f1  /autoflag}{\b0\f1  or }{\f1 /xautoflag}{\b0\f1 ,}{\f1  }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \r
-\pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  autoCallFlag }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1 \r
- autoCallFlag }}}{\f1  /autoCallFlag}{\i\f1  true|false}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sets the }{\f1\uldb Auto Flag}{\v\f1\uldb AutoFlag}{\f1  option. Default: False.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  autobs }}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  autobs }}}{\f1  /autobs}{\b0\f1  or }{\f1 /xautobs}{\b0\f1 ,}{\f1  }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \r
-\pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  autoObserve }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1 \r
- autoObserveCmd }}}{\f1  /autoObserve}{\i\f1  true|false}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sets the }{\f1\uldb Auto Observe}{\v\f1 autoObserveCmd}{\f1  option. Default: False.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf11 autoKibitz}{\f1  }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 autoKibitz}{\f1  }}}{\f1\cf11  /autoKibitz\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 Kibitzes the engines last thinking output (depth, score, time, speed, PV) to the ICS in zippy mode. Show Thinking must be on for this option to work. }{\f1\cf2 \r
-Also diverts similar kibitz information of an opponent engine that is playing you through the ICS to the engine-output window, as if the engine was playing locally.}{\f1\cf11 \r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  moves }}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  moves }}}{\f1  /moves}{\b0\f1  or }{\f1 /xmoves}{\b0\f1 ,}{\f1  }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  getMoveList }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  getMoveList }}}{\f1 \r
- /getMoveList}{\i\f1  true|false}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sets the }{\f1\uldb Get Move List}{\v\f1 getMoveListCmd}{\f1  option. Default: True.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  edit}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  edit}}}{\f1  /edit}{\cs58\f1\super  }{\b0\f1  or }{\f1 /xedit}{\b0\f1 ,}{\f1  }{\b0\f1 or}{\f1  }{\cs58\f1\super K\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  localLineEditing}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\super #}{\f1  localLineEditingOption}}}{\f1  /localLineEditing}{\i\f1  true|false}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sets the }{\f1\uldb Local Line Editing}{\v\f1 localLineEditing}{\f1  option. Default: True.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  quiet }}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  quiet }}}{\f1  /quiet }{\b0\f1 or }{\f1 /xquiet}{\b0\f1 , or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  quietPlay }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  quietPlay }}}{\f1 \r
- /quietPlay}{\i\f1  true|false}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sets the }{\f1\uldb Quiet Play}{\v\f1 quietPlayCmd}{\f1  option. Default: False\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf5\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super K}{\r
-\f1\cf5  seekGraph (option)}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super #}{\f1\cf5  opt_seekGraph }}}{\f1\cf5  /seekGraph }{\i\f1\cf5 true|false}{\b0\f1\cf5 , or }{\r
-\cs58\f1\cf5\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super K}{\f1\cf5  sg (option)}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \r
-\f5\fs20\cgrid {\cs58\f1\cf5\super #}{\f1\cf5  opt_sg}}}{\f1\cf5  /sg\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf5 Enables summoning up of the }{\f1\uldb\cf5 Seek Graph}{\f1\cf5  by left-clicking the board. Default: False\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf5\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super K}{\r
-\f1\cf5  autoRefresh (option)}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super #}{\f1\cf5  opt_autoRefresh }}}{\f1\cf5  /autoRefresh }{\i\f1\cf5 true|false}{\f1\cf5 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf5 Sets the }{\f1\uldb\cf5 Auto Refresh}{\v\f1\cf5 BlindfoldCmd}{\f1\cf5  option of the }{\f1\uldb\cf5 Seek Graph}{\f1\cf5 . Default: False\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf5\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super K}{\r
-\f1\cf5  backgroundObserve (option)}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super #}{\f1\cf5  opt_backgroundObserve }}}{\f1\cf5  /backgroundObserve }{\i\f1\cf5 true|false}{\r
-\f1\cf5 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf5 Sets the }{\f1\uldb\cf5 Background Observe}{\v\f1\cf5 BlindfoldCmd}{\f1\cf5  option for observing other games during play. Default: False\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf5\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super K}{\r
-\f1\cf5  dualBoard (option)}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super #}{\f1\cf5  opt_dualBoard }}}{\f1\cf5  /dualBoard }{\i\f1\cf5 true|false}{\f1\cf5 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf5 Sets the }{\f1\uldb\cf5 Dual Board}{\v\f1\cf5 BlindfoldCmd}{\f1\cf5  option for observing your partner\rquote s bughouse game. Default: False\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- blindfold (option)}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  opt_blindfold }}}{\f1  /blindfold }{\i\f1 true|false}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sets the }{\f1\uldb Blindfold}{\v\f1 BlindfoldCmd}{\f1  option. Default: False\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super K}{ pre}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super #}{ pre}}}{\f1 /pre }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \r
-\f5\fs20\cgrid {\cs58\super K}{ xpre}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super #}{ xpre}}}{\f1 /xpre}{\b0\f1 , or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  premove (option)}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  premove}}}{\f1  /p\r
-remove}{\i\f1  true|false\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sets the }{\f1\uldb Premove}{\v\f1 PremoveCmd}{\f1  option. If set to True, the premove feature is enabled. If set to False, premove is disabled and the other }{\f1\uldb \r
-Premove}{\v\f1 PremoveCmd}{\f1  settings are ignored. Default: False.\r
-\par }\pard\plain \s2\li115\sb120\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super K}{ preWhite}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super #}{ preWhite}}}{\f1 /prewhite }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super K}{ xpreWhite}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super #}{ xpreWhite}}}{\f1 /xprewhite}{\b0\f1 , or }{\cs58\f1\super K\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  premoveWhite}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super \r
-#}{\f1  premoveWhite}}}{\f1  /premoveWhite}{\i\f1  true|false\r
-\par }\pard \s2\li115\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  premoveWhiteText}}#{\footnote\ftnalt \r
-\pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  premoveWhiteText}}}{\f1  /premoveWhiteText}{\i\f1  movetext\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If }{\b\f1 premoveWhite}{\f1  is set to True and you are playing white in an ICS game, the text specified by the }{\b\f1 premoveWhiteText}{\f1 \r
- option is sent to the ICS as soon as the game starts.  These options can be set from the }{\f1\uldb Premove}{\v\f1 PremoveCmd}{\f1  section of the }{\f1\uldb ICS Options}{\v\f1\uldb ICSOptions}{\f1  dialog box. The default for }{\b\f1 premoveWhite}{\f1 \r
- is False.\r
-\par }\pard\plain \s2\li115\sb120\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super K}{ preBlack}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super #}{ preBlack}}}{\f1 /preblack }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super K}{ xpreBlack}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super #}{ xpreBlack}}}{\f1 /xpreblack}{\b0\f1 , or }{\cs58\f1\super K\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  premoveBlack}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super \r
-#}{\f1  premoveBlack}}}{\f1  /premoveBlack}{\i\f1  true|false\r
-\par }\pard \s2\li115\sa120\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  premoveBlackText}}#{\footnote\ftnalt \r
-\pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  premoveBlackText}}}{\f1  /premoveBlackText}{\i\f1  movetext\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If }{\b\f1 premoveBlack}{\f1  is set to True and you are playing black in an ICS game, the text specified by the }{\b\f1 premoveBlackText}{\f1 \r
- option is sent to the ICS as soon as the first move is received from your opponent, even if you make a different premove on the board before the first white move is received. These options can be set from the }{\f1\uldb Premove}{\v\f1 PremoveCmd}{\f1 \r
- section of the }{\f1\uldb ICS Options}{\v\f1\uldb ICSOptions}{\f1  dialog box. The default for }{\b\f1 premoveBlack}{\f1  is False.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf5\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super K}{\r
-\f1\cf5  \'f2neClickMove (option)}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super #}{\f1\cf5  opt_oneClickMove }}}{\f1\cf5  /oneClickMove }{\i\f1\cf5 true|false}{\f1\cf5 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf5 Sets the }{\f1\uldb\cf5 One-ClickMove}{\v\f1\cf5 BlindfoldCmd}{\f1\cf5  option. Default: False\r
-\par }\pard\plain \li115\sb120\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \f5\fs20\cgrid {\cs58\b\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super K}{ alarm}}#{\footnote\ftnalt \r
-\pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super #}{ alarm}}}{\b /alarm }{or}{\b  }{\cs58\b\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
-\cs58\super K}{ xalarm}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super #}{ xalarm}}}{\b /xalarm}{, or }{\cs58\b\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super K}{ icsAlarm}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super #}{ icsAlarm}}}{\b /icsAlarm }{\b\i true|false}{\b \r
-\par }\pard \li115\sa120\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright {\cs58\b\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super K}{ icsAlarmTime}}#{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super #}{ icsAlarmTime}}}{\b /icsAlarmTime }{\b\i milliseconds\r
-\par }\pard \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright {When }{\b icsAlarm}{ is set to True, the }{\uldb alarm sound}{\v soundIcsAlarm}{ is played when your clock counts down to }{\b icsAlarmTime}{\r
- seconds.  For ICS games with time controls that include an increment, the alarm will sound each time the clock counts down to the }{\b icsAlarmTime}{.  The }{\b icsAlarmTime}{ can be set by selecting }{\uldb ICS Alarm}{\v ICSAlarm}{ from the }{\uldb \r
-ICS options}{\v\uldb ICSOptions}{ dialog. The default is 5 seconds.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf2\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf2\super K}{\r
-\f1\cf2  keepAlive }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf2\super #}{\f1\cf2  keepAlive }}}{\f1\cf2  /keepAlive }{\i\f1\cf2 time}{\f1\cf2 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf2 When }{\i\f1\cf2 time}{\f1\cf2  is non-zero, send a \ldblquote date\rdblquote  command every }{\i\f1\cf2 time}{\f1\cf2  minutes after your last move to the ICS, \r
-to prevent it from logging you off. (Do not use frivolously! The ICS operator might ban you.) Default: 0.}{\f1 \r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf5\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super K}{\r
-\f1\cf5  chatBoxes (option)}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super #}{\f1\cf5  opt_chatBoxes }}}{\f1\cf5  /chatBoxes }{\i\f1\cf5 handles}{\f1\cf5 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf5 Sets the list of }{\f1\uldb\cf5 Chat Windows}{\v\f1\cf5 BlindfoldCmd}{\f1\cf5  to be opened at startup. The given string }{\i\f1\cf5 handles}{\f1\cf5 \r
- should be a semicolon-separated list, like \ldblquote shouts;53;Johnny\rdblquote  to open 3 chat boxes, to capture all shouts (including c-shouts and \lquote it\rquote \r
- messages), the traffic on channel 53, and for a player named Johnny. Default: no chat windows.\r
-\par }\pard\plain \s1\li120\sb280\sa120\sl-320\slmult0\nowidctlpar\outlinelevel0\adjustright \b\f5\cgrid {\f1\fs20\cf5 \page }{\cs58\f1\fs20\super +{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\super +}{\f1  main}}K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Load and Save Options}}${\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super $}{\f1  Load and Save Options}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  LoadandSaveOptions}}}{\b0\f1\fs18\up6  }{\r
-\f1\fs20 Load and Save Options\r
-\par }\pard\plain \s2\li115\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  lgf }}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  lgf }}}{\f1  /lgf }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  loadGameFile }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  loadGameFile }}}{\f1  /loadGameFile }{\i\f1 filena\r
-me}{\f1 \line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  lgi }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \r
-\f5\fs20\cgrid {\cs58\f1\super #}{\f1  lgi }}}{\f1  /lgi }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  loadGameIndex }}#{\footnote\ftnalt \r
-\pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  loadGameIndex }}}{\f1  /loadGameIndex }{\i\f1 N}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-If loadGameFile is set, WinBoard reads the specified game file at startup. You can leave out the name of this option and give just the file name, which is handy if you want to configure WinBoard as a game viewer with a bro\r
-wser such as the Windows Explorer or Netscape. The filename is interpreted relative to WinBoard's initial working directory. The filename "-" specifies the standard input. If there is more than one game in the file, WinBoard pops up a menu of the availabl\r
-e games, with entries based on their PGN tags. If loadGameIndex is set to }{\i\f1 N, }{\f1 the menu is suppressed and the }{\i\f1 N}{\f1 th game found in the file is loaded immediately. An index value of \endash \r
-1 will cause automatic stepping through the games in match mode, a value of \endash 2 will use each game twice before stepping to the next.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  td }}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  td }}}{\f1  /td }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  timeDelay }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  timeDelay }}}{\f1  /timeDelay }{\i\f1 seconds}{\f1 \r
-\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Time delay between moves during }{\f1\uldb Load Game}{\v\f1 LoadGame}{\f1 \r
-. Fractional seconds are allowed; try 0.4. A time delay value of -1 tells WinBoard not to step through game files automatically. Default: 1 second.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  sgf }}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  sgf }}}{\f1  /sgf }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  saveGameFile }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  saveGameFile }}}{\f1  /saveGameFile }{\i\f1 \r
-filename}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-If this option is set, WinBoard appends a record of every game played to the specified file. The filename is interpreted relative to WinBoard's initial working directory. The filename "-" specifies the standard output.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  autosave }\r
-}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  autosave }}}{\f1  /autosave}{\b0\f1  or }{\f1 /xautosave}{\b0\f1 ,}{\f1  }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \r
-\pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  autoSaveGames }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1 \r
- autoSaveGames }}}{\f1  /autoSaveGames}{\i\f1  true|false}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If this option is True, at the end of every game WinBoard prompts you for a filename and appends a record of the game to the file you specify. Ignored if saveGameFile is \r
-set. Default: False.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  lpf}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  lpf}}}{\f1  /lpf }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  loadPositionFile }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  loadPositionFile }}}{\f1  /loadPositionFile }{\r
-\i\f1 filename}{\f1 \line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  lpi }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  lpi }}}{\f1  /lpi }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- loadPositionIndex }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  loadPositionIndex }}}{\f1  /loadPositionIndex }{\i\f1 N}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If loadPositionFile is set, WinBoard loads the specified position file at startup. The filename is interpreted relative to WinBoard's initial working directory\r
-. The filename "-" specifies the standard input. If loadPositionIndex is set to }{\i\f1 N}{\f1 , the }{\i\f1 N}{\f1 th position found in the file is loaded; otherwise the first is loaded. An index value of \endash \r
-1 will cause automatic stepping through the positions in math mode, a value of \endash 2 will use each position twice before stepping to the next.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  spf }}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  spf }}}{\f1  /spf }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  savePositionFile }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  savePositionFile }}}{\f1  /savePositionFile }{\r
-\i\f1 filename}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If this option is set, WinBoard appends the final position reached in every game played to the specified file. The filename is interpreted relative to W\r
-inBoard's initial working directory. The file name "-" specifies the standard output.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf6 pgnExtendedInfo}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 pgnExtendedInfo}{\f1  }}}{\f1\cf6  /pgnExtendedInfo }{\i\f1\cf6 true|false}{\f1\cf6 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 If this option is set, WinBoard saves depth, score and time used for each move that the engine found as a comment in the PGN file.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf6 pgnEventHeader}{\f1  }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 pgnEventHeader}{\f1  }}}{\f1\cf6  /pgnEventHeader }{\i\f1\cf6 string}{\f1\cf6 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 Sets the name used in the PGN event tag to }{\i\f1\cf6 string}{\f1\cf6 .\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf6 saveOutOfBookInfo}{\f1  }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 saveOutOfBookInfo}}}{\f1\cf6  /saveOutOfBookInfo }{\i\f1\cf6 true|false}{\f1\cf6 \r
-\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 Include the information on how the engine(s) game out of its opening book in a special \lquote annotator\rquote  tag with the PGN file.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  oldsave }}\r
-#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  oldsave }}}{\f1  /oldsave }{\b0\f1 or }{\f1 /xoldsave}{\b0\f1 , or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  oldSaveStyle }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  oldSaveStyle }}}{\f1 \r
- /oldSaveStyle}{\i\f1  true|false}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-If this option is False (the default), WinBoard saves games in PGN (portable game notation) and positions in FEN (Forsythe-Edwards notation). If the option is True, a save style that is compatible with older versions of WinBoard (a\r
-nd of xboard) is used instead.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  debug}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  debug}}}{\f1  /debug}{\b0\f1  or }{\f1 /xdebug}{\b0\f1 ,}{\f1  }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  debugMode}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  debugMode}}}{\f1 \r
- /debugMode}{\i\f1  true|false}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Writes debugging information to the file \ldblquote WinBoard.debug\rdblquote \r
-, including all commands sent to the chess engine, all output received from it, and all commands sent to ICS. You can \r
-press Ctrl+Alt+F12 to turn this option on or off while WinBoard is running. Each time you turn it on, any existing debug file is overwritten.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf6 debugFile}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 debugFile}{\f1  }}}{\f1\cf6  /debugFile}{\cs58\f1\cf6\super  }{\f1\cf6  }{\i\f1\cf6 filename}{\r
-\f1\cf6  }{\b0\f1\cf6 or}{\f1\cf6  }{\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 nameOfDebugFile}{\f1  }}#{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 nameOfDebugFile}{\f1  }}}{\f1\cf6  /nameOfDebugFile}{\i\f1\cf6  filename}{\f1\cf6 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 Sets the name of the file to which WinBoard saves debug information (including all communication to and from the engines).\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf11 engineDebugOutput}{\f1  }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 engineDebugOutput}{\f1  }}}{\f1\cf11  /engineDebugOutput}{\cs58\f1\cf11\super  }{\r
-\f1\cf11  }{\i\f1\cf11 number}{\f1\cf11 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 Specifies how WinBoard should handle unsolicited output from the engine, with respect to saving it in the debug file. The output is further (hopefully) ignored. If }{\r
-\i\f1\cf11 number}{\f1\cf11 =0, WinBoard refrains from writing such spurious output to the debug file. If}{\i\f1\cf11  number}{\f1\cf11 =1, all engine output is written faithfully to the debug file. If }{\i\f1\cf11  number}{\f1\cf11 \r
-=2, any protocol-violating line is prefixed with a \lquote #\rquote  character, as the engine itself should have done if it wanted to submit info for inclusion in the debug file. }{\f1\cf5 The case }{\i\f1\cf5 number}{\f1\cf5 \r
-=3 is similar, but now marks non-compliant engine output with a more conspicuous prefix.}{\f1\cf11 \r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cf11 This option is provided for the benefit of applications that use the debug fi\r
-le as a source of information, such as the broadcaster of live games TLCV / TLCS. Such applications can be protected from spurious engine output that might otherwise confuse them.\r
-\par }{\r
-\par }\pard\plain \s1\li120\sb280\sa120\sl-320\slmult0\nowidctlpar\outlinelevel0\adjustright \b\f5\cgrid {\f1\fs20 \page }{\cs58\f1\fs20\super +{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super \r
-+}{\f1  main}}K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  User Interface Options}}${\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \r
-\f5\fs20\cgrid {\cs58\f1\super $}{\f1  User Interface Options}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  UserInterfaceOptions}}}{\b0\f1\fs18\up6  }{\f1\fs20 \r
-User Interface Options\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf5\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super K}{\r
-\f1\cf5  language}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super #}{\f1\cf5  language}}}{\f1\cf5  /language}{\i\f1\cf5  filename}{\f1\cf5 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf5 This persistent option lets WinBoard load a \lquote language file\rquote  with the given }{\i\f1\cf5 filename}{\f1\cf5 \r
-, which can contain translation lines of the form \ldblquote english text\rdblquote  === \ldblquote translated text\rdblquote . WinBoard will then perform the indicated substitutions in its menus, dialogs, and displayed messages. If the }{\i\f1\cf5 \r
-filename}{\f1\cf5  does not contain a period, the extension \ldblquote .lng\rdblquote  will be appended to it before use. If a file of the given }{\i\f1\cf5 filename}{\f1\cf5 \r
- does not exist, no translation will take place, which can be used to switch WinBoard back to English. A full Spanish translation is available through the file espa\'f1\r
-ol.lng. More translation are expected to become available soon, and of course you could make your own by changing the translations in an existing one to the language of your choice. Default: no translation.\r
-\par }\pard\plain \s2\li119\sb120\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf2\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf2\super K}{\f1\cf2 \r
- firstLogo}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf2\super #}{\f1\cf2  firstLogo}}}{\f1\cf2  /firstLogo }{\i\f1\cf2 filename}{\f1\cf2 \r
-\par }\pard \s2\li119\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright {\cs58\f1\cf2\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf2\super K}{\f1\cf2  secondLogo}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf2\super #}{\f1\cf2  secondLogo}}}{\f1\cf2  /secondLogo }{\i\f1\cf2 filename}{\f1\cf2 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf2 \r
-The appearance of either of these options causes WinBoard to reserve space for displaying logos on both sides of the clocks. Normally the first logo goes left, the second right, unless the option \lquote swap clocks\rquote  is in effect. The }{\i\f1\cf2 \r
-filename}{\f1\cf2  must refer to a bitmap file (.bmp) containing a logo for the particular player (usually a 130x65 or 100x50 bitmap, which will be scaled to the height of two clock lines.)\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf2\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf2\super K}{\r
-\f1\cf2  autoLogo}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf2\super #}{\f1\cf2  autoLogo}}}{\f1\cf2  /autoLogo}{\i\f1\cf2  true|false}{\f1\cf2 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf2 When true, causes WinBoard to automatically supply\r
- a logo for the first and second chess program, by looking for a file named logo.bmp in the engine directory (as specified by the /fd or /sd option), and then displays it like this file was given as an argument to the /firstLogo or /secondLogo option. In \r
-this mode it will also look in a sub-folder of its installation folder called \ldblquote logos\rdblquote , for finding logos with names corresponding to the ICS (e.g. \ldblquote chessclub.com.bmp\rdblquote \r
-) or to the human user, should they be involved in a game.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf6 hideThinkingFromHuman}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 hideThinkingFromHuman}}}{\f1\cf6  /hideThinkingFromHuman}{\i\f1\cf6  true|false}{\f1\cf6 \r
-\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 \r
-Prevents the engine thinking output to appear in the display, without necessitating to suppress the sending of this information altogether (so it can still appear in the PGN).\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf2\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf2\super K}{\r
-\f1\cf2  noGUI}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf2\super #}{\f1\cf2  noGUI}}}{\f1\cf2  /noGUI\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf2 Suppresses all GUI functions of WinBoard (to speed up automated ultra-fast engine-engine games, which you don\rquote \r
-t want to watch). There will be no board or clock updates, no printing of moves, and no update of the icon on the task bar in this mode.}{\f1 \r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf5\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super K}{\r
-\f1\cf5  pieceNickNames}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super #}{\f1\cf5  pieceNickNames}}}{\f1\cf5  /pieceNickNames }{\i\f1\cf5 string}{\f1\cf5 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf5 A volatile option that allows the user to set al\r
-ternative characters by which the pieces could be recognized in FEN or SAN. Does not affect FEN or SAN output. This can be useful to load games and positions given in other languages. Piece indicators in FEN and SAN are first matched to the letters in the\r
- given }{\i\f1\cf5 string}{\f1\cf5 \r
-; when this match fails, they are matched against the default names. The format of string is the same as that of the /pieceToCharTable option; you can only set a single alternative for each piece. Will only be applied in the variant active when\r
- WinBoard was started up. Default value: no nicknames.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf5\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super K}{\r
-\f1\cf5  colorNickNames}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super #}{\f1\cf5  colorNickNames}}}{\f1\cf5  /colorNickNames }{\i\f1\cf5 string}{\f1\cf5 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf5 \r
-A volatile option that allows the user to set alternative characters by which the side to move could be indicated in FEN. Does not affect FEN output. This can be useful to loa\r
-d positions given in other languages, or for variants using non-compliant color indicators. The color field in a FEN is first matched to the letters in the given }{\i\f1\cf5 string}{\f1\cf5 \r
-; when this match fails, they are matched against the default names. The first character of }{\i\f1\cf5 string}{\f1\cf5  will be recognized as white, the second as black. Default value: no nicknames.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  top}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  top}}}{\f1  /top }{\b0\f1 or }{\f1 /xtop}{\b0\f1 , or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  alwaysOnTop}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  alwaysOnTopOpt}}}{\f1 \r
- /alwaysOnTop}{\i\f1  true|false}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sets the }{\f1\uldb Always On Top}{\v\f1 AlwaysOnTop}{\f1  option. Default: False.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  queen}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  queen}}}{\f1  /queen}{\b0\f1  or }{\f1 /xqueen}{\b0\f1 ,}{\f1  }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  alwaysPromoteToQueen}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1 \r
- alwaysPromoteToQueen}}}{\f1  /alwaysPromoteToQueen}{\i\f1  true|false}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sets the }{\f1\uldb Always Queen}{\v\f1 AlwaysQueen}{\f1  option. Default: False.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  drag}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  drag}}}{\f1 /drag}{\b0\f1  or }{\f1 /xdrag}{\b0\f1 ,}{\f1  }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  animateDragging}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  animateDraggingOpt}\r
-}}{\f1 /animateDragging}{\i\f1  true|false}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sets the }{\f1\uldb Animate Dragging}{\v\f1 animateDragging}{\f1  option. Default: True.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  animate}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  animate}}}{\f1 /animate }{\b0\f1 or }{\f1 /xanimate}{\b0\f1 , or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  animateMoving}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  animateMovingOpt}}}{\r
-\f1 /animateMoving}{\i\f1  true|false}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sets the }{\f1\uldb Animate Moving}{\v\f1 animateMoving}{\f1  option. Default: True.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  flip}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  flip}}}{\f1  /flip }{\b0\f1 or }{\f1 /xflip}{\b0\f1 , or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  flipView}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  flipViewOption}}}{\f1 \r
- /flipView}{\i\f1  true|false}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-If Auto Flip View is not set, or if you are observing but not participating in a game, then the positioning of the board at the start of each game depends on the flipView opti\r
-on.  If flipView is False (the default), the board is positioned so that the white pawns move from the bottom to the top; if True, the black pawns move from the bottom to the top. In any case, the }{\f1\uldb Flip View}{\v\f1 FlipView}{\f1 \r
- menu command can be used to flip the board after the game starts\r
-\par }\pard\plain \li115\sb120\sa60\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\b\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super K}{ autoflip}}#{\footnote\ftnalt \r
-\pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super #}{ autoflip}}}{\b /autoflip}{ or }{\b /xautoflip}{, or }{\cs58\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \r
-\f5\fs20\cgrid {\cs58\super K}{ autoFlipView}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super #}{ autoFlipViewOption}}}{\b /autoFlipView }{\b\i true|false\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sets the }{\f1\uldb Auto Flip View}{\v\f1 AutoFlipView}{\f1  option. Default: True.\r
-\par }\pard\plain \li115\sb120\sa60\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\b\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super K}{ autoraise}}#{\footnote\ftnalt \r
-\pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super #}{ autoraise}}}{\b /autoraise}{ or }{\b /xautoraise}{, or }{\cs58\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \r
-\f5\fs20\cgrid {\cs58\super K}{ autoRaiseBoardOption}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super #}{ autoRaiseBoardOption}}}{\b /autoRaiseBoard }{\b\i true|false\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sets the }{\f1\uldb Auto Raise Board}{\v\f1 AutoFlipView}{\f1  option. Default: True.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  highdrag}}\r
-#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  highdrag}}}{\f1 /highdrag }{\b0\f1 or }{\f1 /xhighdrag}{\b0\f1 , or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  highlightDragging\tab \tab }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1 \r
- highlightDraggingOpt}}}{\f1 /highlightDragging }{\i\f1 true|false}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sets the }{\f1\uldb Highlight Dragging}{\v\f1 highlightDragging}{\f1  option. }{\f1\cf5 Must be on for /showTargetSquares to work.}{\f1  Default: False.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf5\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super K}{\r
-\f1\cf5  showTargetSquares\tab \tab }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super #}{\f1\cf5  showTargetSquaresOpt}}}{\f1\cf5 /showTargetSquares }{\i\f1\cf5 true|false}{\f1\cf5 \r
-\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf5 When set, causes WinBoard to mark all squares the piece you \lquote pick up\rquote \r
- can legally move to with  big fat dot, in different colors for captures and non-captures. }{\f1\uldb\cf5 Highlight Dragging}{\v\f1\cf5 highlightDragging}{\f1\cf5  must be on for this to work. Default: False.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf5\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super K}{\r
-\f1\cf5  dropMenu\tab \tab }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super #}{\f1\cf5  dropMenuOpt}}}{\f1\cf5 /dropMenu }{\i\f1\cf5 true|false}{\f1\cf5 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf5 When set, the right mouse button use\r
-d on the board will call up a context menu, (old behavior) rather than allowing you to walk the latest engine PV (new behavior). Default: False.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  highlight}\r
-}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  highlight}}}{\f1 /highlight }{\b0\f1 or }{\f1 /xhighlight}{\b0\f1 , or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  highlightLastMove}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1 \r
- highlightLastMoveOpt}}}{\f1 /highlightLastMove}{\i\f1  true|false}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sets the }{\f1\uldb Highlight Last Move}{\v\f1 highlightLastMoveOpt}{\f1  option. Default: False.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  popup}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  popup}}}{\f1  /exit}{\b0\f1  or }{\f1 /xexit}{\b0\f1 ,}{\f1  }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  popupMoveErrors}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  popupMoveErrorsOpt}\r
-}}{\f1  /popupExitMessage}{\i\f1  true|false}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sets the }{\f1\uldb Popup Exit Message}{\v\f1 popupExitMessageCmd}{\f1  menu option. Default: False.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  popup}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  popup}}}{\f1  /popup}{\b0\f1  or }{\f1 /xpopup}{\b0\f1 ,}{\f1  }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  popupMoveErrors}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  popupMoveErrorsOpt}\r
-}}{\f1  /popupMoveErrors}{\i\f1  true|false}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sets the }{\f1\uldb Popup Move Errors}{\v\f1 popupMoveErrorsCmd}{\f1  menu option. Default: False.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  coords }}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  coords }}}{\f1  /coords }{\b0\f1 or }{\f1 /xcoords}{\b0\f1 , or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  showCoords}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  showCoords}}}{\f1 \r
- /showCoords}{\i\f1  true|false}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sets the }{\f1\uldb Show Coords}{\v\f1 showCoords}{\f1  option. Default: False.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  legal }}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  legal }}}{\f1  /legal }{\b0\f1 or }{\f1 /xlegal}{\b0\f1 , or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  testLegality }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  testLegality }}}{\f1 \r
- /testLegality}{\i\f1  true|false}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sets the }{\f1\uldb Test Legality}{\v\f1 testLegalityCmd}{\f1  option. Default: True.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  size }}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  size }}}{\f1  /size }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  boardSize }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  boardSize }}}{\f1  /boardSize }{\i\f1 sizename}{\f1 \r
-\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sets the }{\f1\uldb Board Size}{\v\f1 BoardSizeCmd}{\f1 \r
- option. Also chooses which board size any following Font options will affect. The default is the largest size that will fit on your screen.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super K}{ wpc}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super #}{ wpc}}}{\f1 /wpc}{\b0\f1  or }{\cs58\b0\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \r
-\f5\fs20\cgrid {\cs58\f1\super K}{\f1  whitePieceColor}}}{\cs58\f1\super #{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  whitePieceColor}}}{\f1  /whitePieceColor }{\i\f1 color\r
-\line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super K}{ bpc}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
-\cs58\super #}{ bpc}}}{\f1 /bpc }{\b0\f1 or }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  blackPieceColor}}#{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  blackPieceColor}}}{\f1  /blackPieceColor }{\i\f1 color\line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super K}{ lsc}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super #}{ lsc}}}{\f1 /lsc }{\b0\f1 or}{\i\f1  }{\cs58\f1\super K{\footnote\ftnalt \r
-\pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  lightSquareColor}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1 \r
- lightSquareColor}}}{\f1  /lightSquareColor }{\i\f1 color}{\cs58\f1\super  }{\f1 \line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super K}{ dsc}}#{\footnote\ftnalt \r
-\pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super #}{ dsc}}}{\f1 /dsc }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\super K}{\f1  darkSquareColor}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  darkSquareColor}}}{\f1  /darkSquareColor }{\i\f1 color}{\cs58\f1\super  }{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Color specifications for white pieces, black pieces, light squares, and dark squares. Colors can be specified only by red/green/blue intensity, either in hexadecimal (as }{\r
-\i\f1 #rrggbb}{\f1 ) or in decimal (as }{\i\f1 rrr,ggg,bbb}{\f1 \r
-). In the latter format, you must enclose the string in quotation marks if you leave spaces after the commas. The defaults are respectively #FFFFCC, #202020, #C8C365, and #77A26D. Available on the }{\f1\uldb Board Colors}{\v\f1 BoardColors}{\f1 \r
- section of the }{\f1\uldb Board Options}{\v\f1 BoardOptions}{\f1  dialog.\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If you are using a }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  grayscale}\r
-}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  grayscale}}}{\f1  grayscale monitor, try setting the colors to:\r
-\par }\pard\plain \s19\li520\sb60\sl-240\slmult0\keep\nowidctlpar\tx520\tx920\tx1320\tx1720\tx2120\adjustright \f6\fs16\cgrid {\f2\fs20 -whitePieceColor:#FFFFFF\line -blackPieceColor:#000000\line -lightSquareColor:#CCCCCC\line -darkSquareColor:#999999\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super K}{ hsc}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super #}{ hsc}}}{\f1 /hsc }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \r
-\f5\fs20\cgrid {\cs58\f1\super K}{\f1  highlightSquareColor}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  highlightSquareColor}}}{\f1  /highlightSquareColor }{\i\f1 color}{\r
-\cs58\f1\super  }{\f1 \line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super K}{ phc}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \r
-\f5\fs20\cgrid {\cs58\super #}{ phc}}}{\f1 /phc }{\b0\f1 or }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  premoveHighlightColor}}#{\footnote\ftnalt \r
-\pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  premoveHighlightColor}}}{\f1  /premoveHighlightColor }{\i\f1 color}{\cs58\f1\super  }{\f1 \r
-\par }{\b0\f1 Color specifications for the }{\b0\f1\uldb Highlight Last Move}{\b0\v\f1 HighlightLastMove}{\b0\f1  and }{\b0\f1\uldb Premove}{\b0\v\f1 PremoveCmd}{\b0\f1 \r
- options, respectively. Colors can be specified only by red/green/blue intensity, either in hexadecimal (as }{\b0\i\f1 #rrggbb}{\b0\f1 ) or in decimal (as }{\b0\i\f1 rrr,ggg,bbb}{\b0\f1 \r
-). In the latter format, you must enclose the string in quotation marks if you leave spaces after the commas. The defaults are respectively #FFFF00 and #FF0000, respectively.\r
-\par }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  mono }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\super #}{\f1  mono }}}{\f1  /mono}{\b0\f1  or }{\f1 /xmono}{\b0\f1 ,}{\f1  }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  monoMode}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  monoMode}}}{\f1  /monoMode}{\i\f1  true|false}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Determines whether WinBoard displays its pieces and squares in black and white (True) or color (False, the default). Available in the }{\f1\uldb Board Colors}{\v\f1 \r
-BoardColors}{\f1  section of the }{\f1\uldb Board Options}{\v\f1 BoardOptions}{\f1  dialog.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf11 flipBlack}{\f1  }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 flipBlack}{\f1  }}}{\f1\cf11  /flipBlack}{\i\f1\cf11  true|false}{\f1\cf11 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 Determines whether Win\r
-Board displays the black pieces upside down (or the white pieces in Flip View). Useful with Shogi with the traditional Japanese pieces, which are not distinguished by color but by orientation.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf11 allWhite}{\f1  }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 allWhite}{\f1  }}}{\f1\cf11  /allWhite}{\i\f1\cf11  true|false}{\f1\cf11 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 Determines whether the white piece bitm\r
-aps will be used to display black pieces. The white pieces have a dark outline, which the black pieces lack. This makes the latter look vague if the color you give them is not very dark.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf6 renderPiecesWithFont}{\f1  }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 renderPiecesWithFont}{\f1  }}}{\f1\cf6  /renderPiecesWithFont }{\i\f1\cf6 fontname}\r
-{\f1\cf6 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 Uses the named true-type font to re\r
-nder the pieces, rather than the built-in bitmaps. The font must be installed on your computer. If the name starts with a *  it is ignored, allowing you to easily disable a font temporarily in the whinboard.ini file.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf6 fontPieceToCharTable}{\f1  }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 fontPieceToCharTable}{\f1  }}}{\f1\cf6  /fontPieceToCharTable }{\i\f1\cf6 \r
-characterstring}{\f1\cf6 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 \r
-If font-based rendering of the pieces is used, this table specifies which character of the font alphabet should be used for which piece. The format of the character strings is the same as that of the argument of /pieceToCharTable.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf6 fontPieceSize}{\f1  }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 fontPieceSize}{\f1  }}}{\f1\cf6  /fontPieceSize }{\i\f1\cf6 number}{\f1\cf6 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 The number gives the size of the piece, as a percentage of the square size.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super K}{ }{\f1\cf6 \r
-fontPieceBackColorWhite}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super #}{ }{\f1\cf6 fontPieceBackColorWhite}}}{\f1\cf6 /fontPieceBackColorWhite }{\i\f1\cf6 color\line }{\r
-\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super K}{ }{\f1\cf6 fontPieceForeColorWhite}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super #}{ }{\f1\cf6 fontPieceForeColorWhite}}}{\f1\cf6 /fontPieceForeColorWhite }{\i\f1\cf6 color\line }{\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super K}{ }{\f1\cf6 fontPieceBackColorBlack}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super #}{ }{\f1\cf6 fontPieceBackColorBlack}}}{\f1\cf6 \r
-/fontPieceBackColorBlack }{\i\f1\cf6 color\line }{\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super K}{ }{\f1\cf6 fontPieceForeColorBlack}}#{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\super #}{ }{\f1\cf6 fontPieceForeColorBlack}}}{\f1\cf6 /fontPieceForeColorBlack }{\i\f1\cf6 color}{\cs58\f1\cf6\super  }{\f1\cf6 \r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 Color specifications for white pieces, black pieces that are generated with font-based rendering.\r
-\par }\pard\plain \s2\li119\sb120\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 \r
-liteBackTextureFile}{\f1  }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 liteBackTextureFile}{\f1  }}}{\f1\cf6  /liteBackTextureFile }{\i\f1\cf6 filename}{\f1\cf6 \r
-\r
-\par }\pard \s2\li119\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 darkBackTextureFile}{\f1 \r
- }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 darkBackTextureFile}{\f1  }}}{\f1\cf6  /darkBackTextureFile }{\i\f1\cf6 filename}{\f1\cf6 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 The filename indicates a bitmap file that should be used to display the light or dark squares, allowing you to make boards that look like\r
- wood, marble, etc. A filename starting with * is ignored.\r
-\par }\pard\plain \s2\li119\sb120\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 \r
-liteBackTextureMode}{\f1  }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 liteBackTextureMode}{\f1  }}}{\f1\cf6  /liteBackTextureMode }{\i\f1\cf6 number}{\f1\cf6 \r
-\r
-\par }\pard \s2\li119\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 darkBackTextureMode}{\f1 \r
- }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 darkBackTextureMode}{\f1  }}}{\f1\cf6  /darkBackTextureMode }{\i\f1\cf6 number}{\f1\cf6 \r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cf6 The number indicates the way the files given in the background-texture options should be used to fill in the squares.}{\cf6\lang1043\cgrid0  Valid texture mod\r
-es are 1 (default) and 2. In mode 1 the squares are taken from portions of the texture bitmap and copied without further processing. In mode 2, squares can also be rotated, mirrored and so on in order to provide a little more variety to the texture. The o\r
-perations are selected at random so the board will look slightly different every time the program is run.\line }{\cf6 \r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf6 overideLineGap}{\f1  }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 overideLineGap}{\f1  }}}{\f1\cf6  /overideLineGap }{\i\f1\cf6 number}{\f1\cf6 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 The number specifies the width, in pixels, of the grid lines used to separate the squares. If it is very small (like a singl\r
-e pixel), it becomes vey hard to see which squares are highlighted (to indicate the last move), as this highlighting is a color change of these grid lines. Highlighting the moves with an arrow is then recommended.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf6 highlightMovesWithArrow}{\f1  }} #{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 highlightMovesWithArrow}{\f1  }}}{\f1\cf6  /highlightMovesWithArrow }{\r
-\i\f1\cf6 true|false}{\f1\cf6 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 If this option is true, a big, fat arrow is drawn to indicate the last move.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf6 highlightArrowColor}{\f1  }} #{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 highlightArrowColor}{\f1  }}}{\f1\cf6  /highlightArrowColor }{\i\f1\cf6 color}{\r
-\f1\cf6 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 Specifies the color of the arrow that highlights the moves.\r
-\par }\pard\plain \s2\li119\sb120\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 \r
-evalHistoColorWhite}{\f1  }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 evalHistoColorWhite}{\f1  }}}{\f1\cf6  /evalHistoColorWhite }{\i\f1\cf6 color}{\f1\cf6 \r
-\r
-\par }\pard \s2\li119\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 evalHistoColorBlack}{\f1 \r
- }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 evalHistoColorBlack}{\f1  }}}{\f1\cf6  /evalHistoColorBlack }{\i\f1\cf6 color}{\f1\cf6 \r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cf6 Specifies the colors to be used to plot the white and black scores in the evaluation graph}{\cf6\lang1043\cgrid0 .\line }{\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  colorShout\r
-}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  colorShout}}}{\f1  /colorShout}{\i\f1  \ldblquote effects color\rdblquote \line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  colorSShout}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  colorSShout}}}{\f1 \r
- /colorSShout }{\i\f1 \ldblquote effects color\rdblquote \line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  colorChannel1}}#{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  colorChannel1}}}{\f1  /colorChannel1 }{\i\f1 \ldblquote effects color\rdblquote }{\f1 \line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  colorChannel}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  colorChannel}}}{\f1 \r
- /colorChannel }{\i\f1 \ldblquote effects color\rdblquote }{\f1 \line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  colorKibitz}}#{\footnote\ftnalt \r
-\pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  colorKibitz}}}{\f1  /colorKibitz }{\i\f1 \ldblquote effects color\rdblquote }{\f1 \line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  colorTell}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  colorTell}}}{\f1 \r
- /colorTell }{\i\f1 \ldblquote effects color\rdblquote }{\f1 \line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  colorChallenge}}#{\footnote\ftnalt \r
-\pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  colorChallenge}}}{\f1  /colorChallenge }{\i\f1 \ldblquote effects color\rdblquote }{\f1 \line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  colorRequest}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  colorRequest}}}{\f1 \r
- /colorRequest }{\i\f1 \ldblquote effects color\rdblquote }{\f1 \line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  colorSeek}}#{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  colorSeek}}}{\f1  /colorSeek }{\i\f1 \ldblquote effects color\rdblquote }{\f1 \line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  colorNormal}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  colorNormal}}}{\f1 \r
- /colorNormal }{\i\f1 \ldblquote effects color\rdblquote \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Select colors and effects to colorize messages in the ICS Interaction window. The effects may be any combination of }{\b\f1 b}{\f1 old, }{\b\f1 i}{\f1 talic, }{\b\f1 u}{\r
-\f1 nderline, and }{\b\f1 s}{\f1 trikeout. Colors are specified as for squares and pieces. Available on the }{\f1\uldb ICS Interaction Colors}{\v\f1 ICSInteractionColors}{\f1  section of the }{\f1\uldb ICS Options}{\v\f1 ICSOptions}{\f1 \r
- dialog. Limitation: On 256 color displays, Windows chooses the nearest solid color from the system palette, which will not always be close to the color you selected.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- colorBackground}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  colorBackground}}}{\f1  /colorBackground }{\i\f1 color\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sets the background color for the ICS Interaction window. Available on the }{\f1\uldb ICS Interaction Colors}{\v\f1 ICSInteractionColors}{\f1  section of the }{\f1\uldb \r
-ICS Options}{\v\f1 ICSOptions}{\f1  dialog.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  colorize}}\r
-#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  colorize}}}{\f1  /colorize}{\cs58\f1\super  }{\b0\f1 or }{\f1 /xcolorize}{\b0\f1 , or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \r
-\pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  colorizeMessages}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1 \r
- colorizeMessages}}}{\f1  /colorizeMessages}{\i\f1  true|false}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If True, WinBoard colorizes messages in the ICS Interaction window with the colors listed above. Default: True. Available in the }{\f1\uldb ICS Interaction Colors}{\v\f1 \r
-ICSInteractionColors}{\f1  section of the }{\f1\uldb ICS Options}{\v\f1 ICSOptions}{\f1  dialog.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  clockFont}\r
-}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  clockFont}}}{\f1  /clockFont \ldblquote }{\i\f1 fontname:size effects}{\f1 \rdblquote \line }{\cs58\f1\super K{\footnote\ftnalt \r
-\pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  messageFont}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  messageFont\r
-}}}{\f1  /messageFont \ldblquote }{\i\f1 fontname:size effects}{\f1 \rdblquote \line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  coordFont}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  coordFont}}}{\f1  /coordFont \ldblquote }{\i\f1 fontname:size effects}{\f1 \rdblquote \line }{\cs58\f1\super K{\footnote\ftnalt \r
-\pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  tagsFont}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  tagsFont}}}{\r
-\f1  /tagsFont \ldblquote }{\i\f1 fontname:size effects}{\f1 \rdblquote \line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  commentFont}}#{\footnote\ftnalt \r
-\pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  commentFont}}}{\f1  /commentFont \ldblquote }{\i\f1 fontname:size effects}{\f1 \rdblquote \line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  icsFont}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  icsFont}}}{\f1  /icsFont \r
-\ldblquote }{\i\f1 fontname:size effects}{\f1 \rdblquote \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-The fonts used respectively for the clocks, the message display line, rank and file coordinate labels, the Edit Tags dialog, the Edit Comment dialog, and the ICS Interaction window. These options may be given more than once. Each occurrence a\r
-ffects the fonts for the current board size; that is, the size given in the last preceding /boardSize option, if any, or else the default size. The font size may contain a decimal point, and the effects may be any combination of }{\b\f1 b}{\f1 old, }{\r
-\b\f1 i}{\f1 talic, }{\b\f1 u}{\f1 nderline, and }{\b\f1 s}{\f1 trikeout. Example: }{\f2\fs16 /clockFont="Arial:20.0 bi".}{\f1  Available on the }{\f1\uldb Fonts}{\v\f1 Fonts}{\f1  menu.}{\f2\fs16 \r
-\par }\pard\plain \s2\li115\sb120\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  soundShout}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  soundShout}}}{ /soundShout}{\i  sound\line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  soundSShout}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  soundSShout}}}{ /soundSShout }{\i sound\line }{\r
-\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  soundChannel1}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \r
-\f5\fs20\cgrid {\cs58\f1\super #}{\f1  soundChannel1}}}{ /soundChannel1 }{\i sound}{\line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  soundChannel}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  soundChannel}}}{ /soundChannel }{\i sound}{\line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  soundKibitz}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  soundKibitz}}}{ /soundKibitz }{\i sound}{\line }{\r
-\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  soundTell}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\super #}{\f1  soundTell}}}{ /soundTell }{\i sound}{\line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  soundChallenge}}#{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  soundChallenge}}}{ /soundChallenge }{\i sound}{\line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \r
-\f5\fs20\cgrid {\cs58\f1\super K}{\f1  soundRequest}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  soundRequest}}}{ /soundRequest }{\i sound}{\line }{\cs58\f1\super K\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  soundMove}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\r
-\f1  soundMove}}}{ /soundMove }{\i sound}{\cs58\f1\super  }{\line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  soundBell}}#{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  soundBell}}}{ /soundBell }{\i sound}{\cs58\f1\super  }{\r
-\par }\pard \s2\li115\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  soundIcsWin}}#{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  soundIcsWin}}}{\f1  /soundIcsWin }{\i\f1 sound}{\f1 \line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \r
-\f5\fs20\cgrid {\cs58\f1\super K}{\f1  soundIcsLoss}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  soundIcsLoss}}}{\f1  /soundIcsLoss }{\i\f1 sound}{\cs58\f1\super  }{\f1 \r
-\line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  soundIcsDraw}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \r
-\f5\fs20\cgrid {\cs58\f1\super #}{\f1  soundIcsDraw}}}{\f1  /soundIcsDraw }{\i\f1 sound}{\cs58\f1\super  }{\f1 \line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\r
-\f1  soundIcsUnfinished}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  soundIcsUnfinished}}}{\f1  /soundIcsUnfinished }{\i\f1 sound}{\cs58\f1\super  }{\f1 \r
-\par }\pard \s2\li115\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  soundIcsAlarm}}#{\footnote\ftnalt \r
-\pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  soundIcsAlarm}}}{\f1  /soundIcsAlarm }{\i\f1 sound}{\cs58\f1\super  }{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Associate sounds with WinBoard events. Most of the events are the same ones that cause text colorization. In addition, }{\b\f1 soundMove}{\f1 \r
- is played if a chess engine or another player makes a move. }{\b\f1 SoundBell}{\f1  is played if the chess server sends an ASCII BEL character (Ctrl+G). Available on the }{\f1\uldb Sounds}{\v\f1 Sounds}{\f1  menu.\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\b SoundIcsWin}{, }{\b soundIcsLoss}{, }{\b soundIcsDraw}{ and }{\b soundIcsUnfinished}{\r
- are played at the conclusion of an ICS game.  The result of the game determines which sound is played.\r
-\par }{\b SoundIcsAlarm}{ is played when your game clock counts down to }{\uldb icsAlarmTime}{\v\uldb icsAlarmTime}{. \r
-\par }\pard \li120\sb80\sl-240\slmult0\nowidctlpar\jclisttab\tx480\adjustright {\f1 The }{\i\f1 sound}{\f1  argument may be one of the following:\r
-\par {\pntext\pard\plain\f3\fs20\lang1033\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \fi-360\li480\sb80\sl-240\slmult0\nowidctlpar\jclisttab\tx480{\*\pn \pnlvlblt\ilvl0\ls2\pnrnot0\pnf3\pnstart1\pnindent360\pnhang{\pntxtb \'b7}}\ls2\adjustright {\f1 \r
-The name of a }{\f2 .wav}{\f1  file. The filename is interpreted relative to WinBoard's installation directory (the directory containing WinBoard.exe).\r
-\par {\pntext\pard\plain\f3\fs20\lang1033\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \fi-360\li480\sb80\sl-240\slmult0\nowidctlpar\jclisttab\tx480{\*\pn \pnlvlblt\ilvl0\ls2\pnrnot0\pnf3\pnstart1\pnindent360\pnhang{\pntxtb \'b7}}\ls2\adjustright {\f2 $}{\r
-\f1 , indicating the default system sound.\r
-\par {\pntext\pard\plain\f3\fs20\lang1033\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \fi-360\li480\sb80\sl-240\slmult0\nowidctlpar\jclisttab\tx480{\*\pn \pnlvlblt\ilvl0\ls2\pnrnot0\pnf3\pnstart1\pnindent360\pnhang{\pntxtb \'b7}}\ls2\adjustright {\f2 !}{\r
-\f1  followed by the name of a built-in WinBoard wave resource.\r
-\par {\pntext\pard\plain\f3\fs20\lang1033\cgrid \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \fi-360\li480\sb80\sl-240\slmult0\nowidctlpar\jclisttab\tx480{\*\pn \pnlvlblt\ilvl0\ls2\pnrnot0\pnf3\pnstart1\pnindent360\pnhang{\pntxtb \'b7}}\ls2\adjustright {\f2 !}{\r
-\f1  alone, or \ldblquote \rdblquote  (empty string), indicating silence.\r
-\par }\pard \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright {\f1 The default for soundMove and soundBell is }{\f2 $}{\f1 , while the others default to silence.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  icsMenu}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  icsMenu}}}{\f1 /icsMenu=\{}{\i\f1 entries}{\f1 \} }{\b0\f1 or }{\f1 /icsMenu=@}{\i\f1 filename\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 This option lets you customize the right-button }{\f1\uldb context menu}{\v\f1 ICSInteractionContextMenu}{\f1 \r
- that is available in the upper (output) pane of the ICS Interaction window. It consists of a list of menu entries, one per line. If the option value starts with an @ sign, it is the name of a file that contains the entries. Each entry contains either f\r
-our fields separated by commas or the single character }{\f2 "-"}{\f1 . The fields are:\r
-\par {\pntext\pard\plain\f5\fs20\lang1033\cgrid \hich\af5\dbch\af0\loch\f5 1.\tab}}\pard\plain \fi-360\li480\sb80\sl-240\slmult0\nowidctlpar\jclisttab\tx480{\*\pn \pnlvlbody\ilvl0\ls14\pnrnot0\pndec\pnstart1\pnindent360\pnhang{\pntxta .}}\ls14\adjustright \r
-\f5\fs20\cgrid {The menu text. If this field begins with }{\f2 "|"}{, the item begins a new column in the menu and the }{\f2 "|"}{ is not shown. If this field contains an }{\f2 "&"}{, the character after the ampersand is\r
- underlined in the menu and acts as a keyboard shortcut for the item when the menu is displayed. Do not assign the same shortcut key to two different menu items.\r
-\par {\pntext\pard\plain\s26 \f1\fs20\lang1033\cgrid \hich\af1\dbch\af0\loch\f1 2.\tab}}\pard\plain \s26\fi-360\li480\sl-240\slmult0\nowidctlpar\jclisttab\tx480{\*\pn \pnlvlbody\ilvl0\ls14\pnrnot0\pndec\pnstart1\pnindent360\pnhang{\pntxta .}}\ls14\adjustright \r
-\f5\fs20\cgrid {\f1 Text to insert into the input pane. The text cannot include a comma. You can use ICS aliases to get around this limitation.\r
-\par {\pntext\pard\plain\s26 \f1\fs20\lang1033\cgrid \hich\af1\dbch\af0\loch\f1 3.\tab}}\pard \s26\fi-360\li480\sl-240\slmult0\nowidctlpar\jclisttab\tx480{\*\pn \pnlvlbody\ilvl0\ls14\pnrnot0\pndec\pnstart1\pnindent360\pnhang{\pntxta .}}\ls14\adjustright {\f1 \r
-A flag (1 or 0) saying whether to insert a space and }{\i\f1 name }{\f1 (see }{\f1\uldb above}{\v\f1 Tell}{\f1 ) after the text. If you set this flag, you might also want to put "(name)" into the menu text as a memory aid.\r
-\par {\pntext\pard\plain\s26 \f1\fs20\lang1033\cgrid \hich\af1\dbch\af0\loch\f1 4.\tab}}\pard \s26\fi-360\li480\sl-240\slmult0\nowidctlpar\jclisttab\tx480{\*\pn \pnlvlbody\ilvl0\ls14\pnrnot0\pndec\pnstart1\pnindent360\pnhang{\pntxta .}}\ls14\adjustright {\f1 \r
-A flag (1 or 0) saying whether the result should be sent immediately to ICS or left in the input pane for further editing.\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf5 You can now use two special insert texts \ldblquote chat\rdblquote  and \ldblquote none\rdblquote \r
- in the entry definitions. In stead of being sent to the ICS, WinBoard will recognize them as special cases (they are not valid ICS commands anyway). \ldblquote Chat\rdblquote  will open a chat box for the handle you clicked on, \ldblquote none\rdblquote \r
- will define a disabled entry (usually used with an item name of spaces), which you could put in the position of the menu that pops up under your mouse pointer, so there would be no default action when you up-click without moving the mouse first.\r
-\par }{The entry }{\f2 "-"}{ produces a separator line in the menu. The top three menu entries are always }{\b Copy and Paste}{, }{\b Copy}{, and }{\b Paste}{, but you have full control over the rest of the menu.\r
-\par }{\f1 The default menu is:\r
-\par }\pard\plain \s19\li520\sb60\sl-240\slmult0\keep\nowidctlpar\tx520\tx920\tx1320\tx1720\tx2120\adjustright \f6\fs16\cgrid {\f2\fs20 \endash \line &Who,who,0,1\line Playe&rs,players,0,1\line &Games,games,0,1\line &Sought,sought,0,1\line |}{\f2\fs20\cf5 \r
- ,none,0,0\r
-\par Open Chat Box (name),chat,1,0}{\f2\fs20 \r
-\par &Tell (name),tell,1,0\line M&essage (name),message,1,0\line \endash \line &Finger (name),finger,1,1\line &Vars (name),vars,1,1\line &Observe (name),observe,1,1\line &Match (name),match,1,1\line Pl&ay (name),play,1,1\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 There is no graphical user interface to set this option. To change it, edit your }{\f1\uldb settings}{\v\f1 settings}{\f1  file with a plain text editor such as Notepad.\r
-\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  icsNames}}\r
-#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  icsNames}}}{\f1 /icsNames=\{}{\i\f1 names}{\f1 \} }{\b0\f1 or }{\f1 /icsNames=@}{\i\f1 filename\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 This \r
-option lets you customize the drop-down list of ICS names that appears in the WinBoard startup dialog. It consists of a list of strings, one per line. If the option value starts with an @ sign, it is the name of a file that contains the strings. When you \r
-select a string from the drop-down list, WinBoard prepends the text \rdblquote /ics /icsHost=\rdblquote  and adds the result to the command-line options. There is no graphical user interface to set this option. To change it, edit your }{\f1\uldb settings}\r
-{\v\f1 settings}{\f1  file with a plain text editor such as Notepad.\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- firstChessProgramNames}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  firstChessProgramNames}}}{\f1 /firstChessProgramNames=\{}{\i\f1 names}{\f1 \} }{\b0\f1 or }{\f1 \r
-/firstChessProgramNames="@}{\i\f1 filename}{\f1 "\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 This option lets you customize the first drop-down list of chess engine names that appears in the WinBoard startup dialog. It consists of a list of strings, one\r
- per line. If the option value starts with an @ sign, it is the name of a file that contains the strings. When you select a string from the drop-down list, WinBoard prepends the text \rdblquote /cp /firstChessProgram=\rdblquote \r
- and adds the result to the command-line options. \r
-\par \r
-\par There is no graphical user interface to set this option. To change it, edit your }{\f1\uldb settings}{\v\f1 settings}{\f1  file with a plain text editor such as Notepad. Example:\r
-\par }\pard\plain \s19\li520\sb60\sl-240\slmult0\keep\nowidctlpar\tx520\tx920\tx1320\tx1720\tx2120\adjustright \f6\fs16\cgrid {\f2 /firstChessProgramNames=\{GNUChess\line WCrafty-15_11 /fd="C:\\Program Files\\Crafty"\line ArasanX /fd="C:\\Program Files\\Arasan\r
-\\Arasan 4.1"\line "EXchess xb" /fd=C:\\EXchess\line Comet-WB /fd=C:\\Comet\line \}\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- secondChessProgramNames}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  secondChessProgramNames}}}{\f1 /secondChessProgramNames=\{}{\i\f1 names}{\f1 \}}{\b0\f1  or }{\f1 \r
-/secondChessProgramNames="@}{\i\f1 filename}{\f1 "}{\i\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 This option lets you customize the second drop-down list of chess engine names that appears in the W\r
-inBoard startup dialog. It consists of a list of strings, one per line. If the option value starts with an @ sign, it is the name of a file that contains the strings. When you select a string from the drop-down list, WinBoard prepends the text \rdblquote \r
-/cp /secondChessProgram=\rdblquote  and adds the result to the command-line options.\r
-\par \r
-\par There is no graphical user interface to set this option. To change it, edit your }{\f1\uldb settings}{\v\f1 settings}{\f1  file with a plain text editor such as Notepad. Example:\r
-\par }\pard\plain \s19\li520\sb60\sl-240\slmult0\keep\nowidctlpar\tx520\tx920\tx1320\tx1720\tx2120\adjustright \f6\fs16\cgrid {/secondChessProgramNames=\{GNUChess\line WCrafty-15_11 /sd="C:\\\\Program Files\\\\Crafty\\"\line ArasanX /sd="C:\\Program Files\\\r
-Arasan\\Arasan 4.1"\line "EXchess xb" /sd=C:\\EXchess\line Comet-WB /sd=C:\\Comet\line \}}{\f1 \r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- singleEngineList}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  singleEngineList}}}{\f1 /singleEngineList }{\i\f1 true|false\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If this option is set to true, the }{\f1\uldb secondChessProgramNames}{\f1  option will be ignored, and the value of the }{\f1\uldb firstChessProgramNames}{\f1 \r
- option will be used in its place with the required modifications (every option referring to the first engine being replaced by the corresponding one referring to the second).\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- xy coordinates of board}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  xy}}}{\f1 /x=}{\i\f1 xcoord  }{\f1 /y=}{\i\f1 ycoord\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sets the initial location of the board window, giving the screen coordinates of the upper left-hand corner. Both arguments must be given together.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- xywh coordinates of Analysis window}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  xywh}}}{\f1 /analysisX=}{\i\f1 xcoord  }{\f1 /analysisY=}{\i\f1 ycoord}{\f1   /analysisW=}{\r
-\i\f1 width}{\f1   /analysisH=}{\i\f1 height\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf2 These options have been deprecated, as the \r
-analysis window is replaced by the more general engine-output window. They are recognized, but ignored, and no longer saved in the winboard.ini file.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- xywh coordinates of Comment window}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  xywh}}}{\f1 /commentX=}{\i\f1 xcoord  }{\f1 /commentY=}{\i\f1 ycoord}{\f1   /commentW=}{\r
-\i\f1 width}{\f1   /commentH=}{\i\f1 height\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sets the initial location and size of the Comment window, giving the screen coordinates of the upper left-hand corner }{\f1\cf2 (relative to the main window)}{\f1 \r
-, the width, and the height. All four arguments must be given together.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- xywh coordinates of Game List window}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  xywh}}}{\f1 /gameListX=}{\i\f1 xcoord  }{\f1 /gameListY=}{\i\f1 ycoord}{\f1   /gameListW=}{\r
-\i\f1 width}{\f1   /gameListH=}{\i\f1 height\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sets the initial location and size of the Game List window, giving the screen coordinates of the upper left-hand corner }{\f1\cf2 (relative to the main window), }{\f1 \r
-the width, and the height. All four arguments must be given together.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- xywh coordinates of ICS Interaction window}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  xywh}}}{\f1 /icsX=}{\i\f1 xcoord  }{\f1 /icsY=}{\i\f1 ycoord}{\f1   /icsW=}{\i\f1 \r
-width}{\f1   /icsH=}{\i\f1 height\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sets the initial location and size of the ICS Interaction window, giving the screen coordinates of the upper left-hand corner }{\f1\cf2 (relative to the main window)}{\f1 \r
-, the width, and the height. All four arguments must be given together.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- xywh coordinates of Tags window}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  xywh}}}{\f1 /tagsX=}{\i\f1 xcoord  }{\f1 /tagsY=}{\i\f1 ycoord}{\f1   /tagsW=}{\i\f1 width}{\f1 \r
-  /tagsH=}{\i\f1 height\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Sets the initial location and size of the Tags window, giving the screen coordinates of the upper left-hand corner }{\f1\cf2 (relative to the main window)}{\f1 \r
-, the width, and the height. All four arguments must be given together.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- xywh coordinates of Move History window}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  xywh}}}{\f1\cf6 /moveHistoryX=}{\i\f1\cf6 xcoord  }{\f1\cf6 moveHistoryY=}{\i\f1\cf6 \r
-ycoord}{\f1\cf6   /moveHistoryW=}{\i\f1\cf6 width}{\f1\cf6   /moveHistoryH=}{\i\f1\cf6 height\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 Sets the initial location and size of the move-history window, giving the screen coordinates of the upper left-hand corner}{\f1  }{\f1\cf2 (relative to the main window)\r
-}{\f1\cf6 , the width, and the height. All four arguments must be given together.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- xywh coordinates of Evaluation Graph window}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  xywh}}}{\f1\cf6 /evalGraphX=}{\i\f1\cf6 xcoord  }{\f1\cf6 /evalGraphY=}{\i\f1\cf6 \r
-ycoord}{\f1\cf6   /evalGraphW=}{\i\f1\cf6 width}{\f1\cf6   /evalGraphH=}{\i\f1\cf6 height\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 Sets the initial location and size of the evaluation-graph window, giving the screen coordinates of the upper left-hand corner}{\f1  }{\f1\cf2 \r
-(relative to the main window)}{\f1\cf6 , the width, and the height. All four arguments must be given together.\r
-\par }\pard\plain \s2\li119\sb120\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 \r
- xywh coordinates of Engine Output window}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  xywh}}}{\f1\cf6 /engineOutputX=}{\i\f1\cf6 xcoord  }{\f1\cf6 /engineOutputY=}{\r
-\i\f1\cf6 ycoord}{\f1\cf6   \r
-\par }\pard \s2\li119\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright {\f1\cf6   /engineOutputW=}{\i\f1\cf6 width}{\f1\cf6   /engineOutputH=}{\i\f1\cf6 height\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 Sets the initial location and size of the engine-output window, giving the screen coordinates of the upper left-hand corner}{\f1  }{\f1\cf2 \r
-(relative to the main window)}{\f1\cf6 , the width, and the height. All four arguments must be given together.\r
-\par }\pard\plain \s2\li119\sb120\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 \r
-engineOutputUp}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 Window Up}}}{\f1\cf6 /engineOutputUp }{\i\f1\cf6 true|false \r
-\par }\pard \s2\li119\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 evalGraphUp}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 Window Up}}}{\f1\cf6 /evalGraphUp }{\i\f1\cf6 true|false}{\f1\cf6 \r
-\par }\pard \s2\li119\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 moveHistoryUp}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 Window Up}}}{\f1\cf6 /moveHistoryUp }{\i\f1\cf6 true|false\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 If set to True, the corresponding window is displayed, if False, the window is absent.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf6 stickyWindows}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 stickyWindows}}}{\f1\cf6 /stickyWindows }{\i\f1\cf6 true|false\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 Auxiliary windows touching the main window will stay attached to the latter when you move it.\r
-\par }\pard\plain \s2\li119\sb120\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 \r
-autoDisplayComment}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 autoDisplayComment}}}{\f1\cf6 /autoDisplayComment }{\i\f1\cf6 true|false\r
-\par }\pard \s2\li119\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 autoDisplayTags}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 autoDisplayTags}}}{\f1\cf6 /autoDisplayTags }{\i\f1\cf6 true|false\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 \r
-If set to True, these options cause the window with the move comments, and the window with PGN tags, respectively, to pop up automatically when such tags or comments are encountered during the replaying a stored or loaded game.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf6 gameListTags}{\f1  }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 gameListTags}{\f1  }}}{\f1\cf6  /gameListTags }{\i\f1\cf6 string}{\f1\cf6 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 The }{\i\f1\cf6 string}{\f1\cf6 \r
- contains single-character codes specifying the PGN tags that have to be listed for each game in the game-list window, and their order. The meaning of the characters is a=out-of-book info, b=black Elo, e=event, d=date, o=round, p=players, r=result, }{\r
-\f1\cf2 c=result comment, }{\f1\cf6 w=white Elo, s=site, t=time control and v=variant, Default: \ldblquote eprd\rdblquote .\r
-\par }\pard\plain \s1\li120\sb280\sa120\sl-320\slmult0\nowidctlpar\outlinelevel0\adjustright \b\f5\cgrid {\f1\fs20 \page }{\cs58\f1\fs20\cf6\super +{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\super +}{\f1  main}}K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 Adjudication Options}}${\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super $}{\f1  }{\f1\cf6 Adjudication Options}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 AdjudicationOptions}}}{\r
-\b0\f1\fs18\cf6\up6  }{\f1\fs20\cf6 Adjudication Options\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf6 adjudicateLossThreshold}{\f1  }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 adjudicateLossThreshold}{\f1  }}}{\f1\cf6  /adjudicateLossThreshold }{\i\f1\cf6 \r
-scorethreshold}{\f1\cf6 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 If the given value is non-zero, WinBoard adjudicates the game as a lo\r
-ss if both engines agree for a duration of 6 consecutive ply that the score is below the given score threshold for that engine. Make sure the score is interpreted properly by WinBoard, using /firstScoreAbs and /secondScoreAbs if needed.}{\cf6 \r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf6 adjudicateDrawMoves}{\f1  }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 adjudicateDrawMoves}{\f1  }}}{\f1\cf6  /adjudicateDrawMoves }{\i\f1\cf6 number}{\r
-\f1\cf6 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 If the given value is non-zero, WinBoard adjudicates the game as a draw if after the given }{\i\f1\cf6 number}{\f1\cf6  of moves it was not yet decided.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf11 checkMates}{\f1  }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 checkMates}{\f1  }}}{\f1\cf11  /checkMates}{\i\f1\cf11  true|false}{\f1\cf11 \r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 If this option is True, WinBoard detects all checkmates and stalemates, and ends the game as soon as they occur. Legality-testing must be on for this option to work.}\r
-{\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf11 testClaims}{\f1  }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 testClaims}{\f1  }}}{\f1\cf11  /testClaims}{\i\f1\cf11  true|false}{\f1\cf11 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 If this option is True, WinBoard verifies all result claims made by engines, and those who send false claims will forfeit the game because of it. Legal\r
-ity-testing must be on for this option to work.}{\cf11 \r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf11 materialDraws}{\f1  }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 materialDraws}{\f1  }}}{\f1\cf11  /materialDraws}{\i\f1\cf11  true|false}{\f1\cf11 \r
-\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 \r
-If this option is True, WinBoard adjudicates games as draws when there is no sufficient material left to create a checkmate. This applies to KBKB with like bishops, and to KBK, KNK and KK. Legality-testing must be on for this option to work.}{\cf11 \r
-\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf11 trivialDraws}{\f1  }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 trivialDraws}{\f1  }}}{\f1\cf11  /trivialDraws}{\i\f1\cf11  true|false}{\f1\cf11 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 If this option is True, WinBoard adjudicates games as draws that cannot be usualy won without opponent assistance. This applies to KBKB with unlike bishops, and to K\r
-BKN, KNKN, KNNK, KRKR and KQKQ. The draw is called after 6 ply into these end-games, to allow quick mates that can occur in some positions. KQKQ does not really belong in this category, and might be taken out in the future. (When bitbase-based adjudicatio\r
-ns are implemented.) Legality-testing must be on for this option to work.}{\cf11 \r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf11 ruleMoves}{\f1  }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 ruleMoves}{\f1  }}}{\f1\cf11  /ruleMoves }{\i\f1\cf11 number}{\f1\cf11 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 If the given value is non-zero, WinBoard adjudicates the game as a draw after the given }{\i\f1\cf11 number}{\f1\cf11 \r
- of consecutive reversible moves. Engines can claim draws after 50 moves, irrespective of the value of }{\i\f1\cf11 number}{\f1\cf11 .}{\cf11 \r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf11 repeatsToDraw}{\f1  }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 repeatsToDraw}{\f1  }}}{\f1\cf11  /repeatsToDraw }{\i\f1\cf11 number}{\f1\cf11 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 If the given value is non-zero, WinBoard adjudicates the game as a draw if a position is repeated the given }{\i\f1\cf11 number}{\f1\cf11 \r
- of times. Engines can claim draws after 3 repeats, (on the 3rd occurrence, actually), irrespective of the value of }{\i\f1\cf11 number}{\f1\cf11 \r
-. Beware that positions that have different castling or en-passant rights do not count as repeats, WinBoard is fully e.p. and castling aware!}{\cf11 \r
-\par }\pard\plain \s1\li120\sb280\sa120\sl-320\slmult0\nowidctlpar\outlinelevel0\adjustright \b\f5\cgrid {\f1\fs20\cf11 \page }{\cs58\f1\fs20\super +{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\super +}{\f1  main}}K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Other Options}}${\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \r
-\f5\fs20\cgrid {\cs58\f1\super $}{\f1  Other Options}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  OtherOptions}}}{\b0\f1\fs18\up6  }{\f1\fs20 Other Options\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  ncp }}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  ncp }}}{\f1  /ncp}{\b0\f1  or }{\f1 /xncp}{\b0\f1 ,}{\f1  }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \r
-\s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  noChessProgram}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  noChessProgram}}}{\r
-\f1  /noChessProgram}{\i\f1  true|false}{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-If this option is True, WinBoard acts as a passive chessboard; it does not start a chess program or connect to ICS. This option also sets clockMode to False. Default: False.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  mode}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  mode}}}{\f1  /mode}{\b0\f1  or }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  initialMode}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  initialMode}}}{\f1  /initialMode }{\i\f1 modename\r
-\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If this option is given, WinBoard selects the given }{\i\f1 modename}{\f1  from the }{\f1\uldb Mode menu}{\v\f1 ModeMenu }{\f1 \r
-after starting and (if applicable) processing the }{\f1\uldb loadGameFile}{\v\f1 loadGameFile }{\f1 or }{\f1\uldb loadPositionFile}{\v\f1 loadPositionFile }{\f1 \r
-option. Default: "". Other supported values are TwoMachines, AnalyzeFile, Analysis, MachineWhite, MachineBlack, EditGame, EditPosition, and Training.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf11 variant}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  variant}}}{\f1  /variant}{\b0\f1  }{\i\f1  varname}{\f1 \r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
-Activates preliminary, partial support for playing chess variants against a local engine or editing variant games. This flag is not needed in ICS mode. Recognized variant names are:\r
-\par }\pard\plain \s20\li119\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {normal\tab \tab Normal chess\line wildcastle\tab Shuffle chess, king can castle from d file\line nocastle\tab Shuffle chess, no castling allowed\line fischerandom\tab \r
-Fischer Random shuffle chess\line bughouse\tab Bughouse, ICC/FICS rules\line crazyhouse\tab Crazyhouse, ICC/FICS rules\line losers  \tab Lose all pieces or get mated (ICC wild 17)\line suicide\tab Lose all pieces including king (FICS)\line giveaway\tab \r
-Try to have no legal moves (ICC wild 26)\line twokings\tab Weird ICC wild 9\line kriegspiel\tab Opponent's pieces are invisible\line atomic   \tab Capturing piece explodes (ICC wild 27)\line 3check\tab Win by giving check 3 times (ICC wild 25)\r
-\par }\pard\plain \s66\li119\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cf11\cgrid {xiangqi\tab Chinese Chess (on a 9x10 board)\line shogi\tab \tab Japanese Chess (on a 9x9 board, with piece drops) \line capablanca\tab \r
-Capablanca Chess (10x8 board, with Archbishop and Chancellor pieces)\line gothic\tab \tab similar, with a better initial position\line caparandom\tab An FRC-like version of Capablanca Chess (10x8 board) \line janus\tab \tab \r
-A game with two Archbishops (10x8 board)\line shatranj\tab Ancient Arabic Chess, with Elephants and General replacing B and Q.\line courier\tab Medieval intermedite between shatranj and modern Chess (on 12x8 board) \line falcon\tab \tab \r
-A patented Chess variant with two Falcon pieces (10x8) board \line berolina\tab Pawns capture straight ahead, and move diagonal (legality testing off!)\line cylinder\tab Pieces wrap around the board, as if it were a cylinder (legality testing off!) \line \r
-fairy\tab \tab A variant in which all pieces known to WinBoard can participate\line knightmate\tab King moves a Knight, and vice versa\r
-\par }{\cf2 makruk\tab Thai Chess (shatranj-like, pawns promote on 6th rank)\line super\tab \tab Superchess, a shuffle variant with B+N, R+N, K+N and Q+N compound\line great\tab \tab \r
-Great Shatranj, variant without sliders, on 10x8 board (legality testing off!)\line }{\r
-\par }\pard \s66\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright {In the shuffle variants, WinBoard does now shuffle the pieces, although you can still do it by hand using Edit Position. }{\cf0 Some variants are supported only in ICS mode, in\r
-cluding bughouse, and kriegspiel.}{ }{\cf0 The winning/drawing conditions in crazyhouse (off-board interposition on mate) are not fully understood}{\cf2 , but losers, suicide, giveaway, atomic, and 3check this should be OK.}{\cf0  In crazyhouse}{\cf2 \r
-, WinBoard now does keep track of off-board pieces.In shatranj it does implement the baring rule when mate detection is switched on}{. }{\cf2 In xiangqi it does implement the rules for perpetual checking and chasing (in Two-Machines mode).}{\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf5\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super K}{\r
-\f1\cf5  shuffleOpenings}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf5\super #}{\f1\cf5  shuffleOpenings}}}{\f1\cf5  /shuffleOpenings\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf5 This volatile option will cause shufflin\r
-g of all pieces on the back rank, even in variants that normally have a fixed opening setup, according to the setting of the /defaultFrcPosition. It will remain in effect untill you select a new variant. In variants with normal castling, corner Rooks and \r
-King will be exempted from shuffling. Color-bound pieces such as Bishops will be kept on differently colored squares.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf11 boardHeight}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 boardHeight}}}{\f1\cf11  /boardHeight }{\i\f1\cf11 height}{\f1\cf11 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 Allows you to set a non-standard number of board ranks in any variant. If the height is given as \lquote -1\rquote , the default height for the variant is used.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf11 boardWidth}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 boardWidth}}}{\f1\cf11  /boardWidth }{\i\f1\cf11 width}{\f1\cf11 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 Allows you to set a non-standard number of board files in any variant. If the width is given as \lquote -1\rquote \r
-, the default width for the variant is used. Width a non-standard width, the initial position will always be an empty board, as the usual opening array will not fit.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf11 holdingsSize}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 holdingsSize}}}{\f1\cf11  /holdingsSize }{\i\f1\cf11 size}{\f1\cf11 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 Allows you to set a non-standard size for the holdings in any variant. If the size is given as \lquote -1\rquote \r
-, the default holdings size for the variant is used. The first }{\i\f1\cf11 size}{\f1\cf11  piece types will go into the holdings on capture, and you will be able to drop them on the board in stead of making a normal move. If }{\i\f1\cf11 size}{\f1\cf11 \r
- equals 0, there will be no holdings.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf6 defaultFrcPosition}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 defaultFrcPosition}}}{\f1\cf6  /defaultFrcPosition }{\i\f1\cf6 number}{\f1\cf6 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 Specifies the number of the opening position in shuffle games like FRC. A value of \lquote -1\rquote  means the position is randomly generated by WinBoard.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf11 pieceToCharTable}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 pieceToCharTable}}}{\f1\cf11  /pieceToCharTable }{\i\f1\cf11 characterstring}{\f1\cf11 \r
-\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 The characters that are used to represent the piece types WinBoard knows in FEN diagrams and SAN moves. The string argument has to h\r
-ave an even length (or it will be ignored), as white and black pieces have to be given separately (in that order). The last letter for each color will be the King. The letters before that will be PNBRQ and then a whole host of fairy pieces in an order tha\r
-t\r
- has not fully crystallized yet (currently FEACWMOHIJGDVSLU, F=Ferz, Elephant, A=Archbishop, C=Chancellor, W=Wazir, M=Commoner, O=Cannon, H=Nightrider). You should list at least all pieces that occur in the variant you are playing. If you have less than 4\r
-4\r
- characters in the string, the pieces not mentioned will get assigned a period, and you will not be able to distinguish them in FENs. You can also explicitly assign pieces a period, in which case they will not be counted in deciding which captured pieces \r
-can go into the holdings.\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cf11 \r
-A tilde as a piece name does mean this piece is used to represent a promoted Pawn in Crazyhouse-like games, i.e. on capture it turns back onto a Pawn. A + similarly indicate the piece is a Shogi-style promoted piece, that should re\r
-vert to its non-promoted version on capture (rather than to a Pawn).\r
-\par Note that promoted pieces are represented by pieces 11 further in the list.\r
-\par You should not have to use this option often: each variant has its own default setting for the piece representation in FEN, which should be sufficient in normal use.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  rsh }}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  rsh }}}{\f1  /rsh }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  remoteShell }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  remoteShell }}}{\f1  /remoteShell }{\i\f1 shellname}\r
-{\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Name of the command used to run programs remotely. If this option is not given, WinBoard}{\i\f1  }{\f1 uses its own built-in implementation of the Unix }{\i\f1 rcmd}{\f1 \r
- protocol (the protocol used by }{\i\f1 rsh}{\f1 ).\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  ruser }}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  ruser }}}{\f1  /ruser }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  remoteUser }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  remoteUser }}}{\f1  /remoteUser }{\i\f1 username}{\r
-\f1 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 User name on the remote system when running programs with the remoteShell. The default is your local user name.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf11\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\r
-\f1\cf11 userName}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf11 userName}}}{\f1\cf11  /userName }{\i\f1\cf11 username}{\f1\cf11 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 Name under which the Human player will be listed in the PGN file. (Default is the login name on your local computer.)\r
-\par }\pard\plain \s2\li119\sb120\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 \r
-delayBeforeQuit}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 delayBeforeQuit}}}{\f1\cf6  /delayBeforeQuit }{\i\f1\cf6 number}{\f1\cf6 \r
-\par }\pard \s2\li119\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright {\cs58\f1\cf6\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  }{\f1\cf6 delayAfterQuit}}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  }{\f1\cf6 delayAfterQuit}}}{\f1\cf6  /delayAfterQuit }{\i\f1\cf6 number}{\f1\cf6 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf6 These options specify how long WinBoard has to wait before sending a termination signal to rogue engine processes, that do not want to react to the \lquote quit\rquote \r
- command. The second one determines the pause after killing the engine, to make sure it dies.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  ini }}#\r
-{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  ini }}}{\f1  /ini }{\b0\f1 or}{\f1  }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  settingsFile }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  settingsFile }}}{\f1  /settingsFile }{\i\f1 \r
-filename\line }{\cs58\f1\cf2\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf2\super K}{\f1\cf2  saveSettingsFile }}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\cf2\super #}{\f1\cf2  saveSettingsFile }}}{\f1\cf2  /saveSettingsFile }{\i\f1\cf2 filename}{\i\f1 \line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1 at sign}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  atsign }}}{\f1 @ }{\i\f1 file-name\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 See }{\f1\uldb Settings}{\v\f1 Settings}{\f1 .\r
-\par }\pard\plain \s1\li120\sb280\sa120\sl-320\slmult0\nowidctlpar\outlinelevel0\adjustright \b\f5\cgrid {\f1\fs20 \page }{\cs58\f1\fs20\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super \r
-K}{\f1  Initialization files}}K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Files}}${\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \r
-\f5\fs20\cgrid {\cs58\f1\super $}{\f1  Files}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Files}}+{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super +}{\f1  main}}}{\f1\fs20  INITIALIZATION FILES\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  Settings }\r
-}}{\f1\fs18\up6  }{\cs58\f1\super #{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Settings }}}{\f1  Settings\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {When WinBoard starts up, it reads option settings from a file named }{\i winboard.ini }{\r
-in its installation directory (the directory containing winboard.exe). Options in this file have the same format as }{\uldb command line options}{\v Options}{, except that they do not all have to be on a sing\r
-le line. You can put a comment in a settings file by preceding it with a semicolon (}{\f2 ;}{).\r
-\par }\pard\plain \s20\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {The winboard.ini file is read before the command line is processed, so any options you give on the command line override options in the file.\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If WinBoard encounters a /}{\f1\uldb settingsFile}{\v\f1 settingsFile}{\f1  }{\i\f1 filename }{\f1 or }{\f1\uldb @}{\v\f1 atsign}{\i\f1 filename }{\f1 \r
-option while reading settings (whether from the command line or a file), it reads more settings from the given file before reading the next option.\r
-\par The }{\f1\uldb Save Settings Now}{\v\f1 SaveSettings}{\f1  menu command writes the current values of most options to a file. In addition, settings are saved automatically when WinBoard exits if }{\f1\uldb Save Settings on Exit}{\v\f1 SaveSettingsOnExit}{\r
-\f1  is checked. The settings are written to the last file named in a /settingsFile command }{\f1\cf2 that could be s\r
-uccessfully read, or in a /saveSettingsFile command (where no attempt is made to read it at all, making it work even if the mentioned file did not exist yet),}{\f1  if any; otherwise to winboard.ini}{\i\f1 .}{\f1 \r
- The @ option does not affect which file settings are saved to.\r
-\par Warning: Because Save Settings overwrites the last settings file (usually winboard.ini) and only saves a subset of WinBoard's options, you should not add settings of more options to such a file with a text editor. If you do this, your additional options w\r
-ill be lost on the next Save Settings. You can change the values of existing settings freely, using Notepad or any plain text editor. Be careful not to do this while WinBoard is running, however, unless you know that Save Settings on Exit is off. Otherwis\r
-e all your changes will be overwritten and lost when WinBoard exits.\r
-\par }{\f1\cf11 Notice that tournament managers, like PSWBTM, usually call WinBoard with the option not to save settings on exit, so that the entire tournament uses the same settings. So it does make sense to edit \lquote volatile\rquote \r
- options, such as /variant, into the settings file before such a tournament.}{\f1  }{\f1\cf2 Also note that a settings file that contains a /settingsFile or /saveSettingsFile option to redirect later saving to another file effectively protects its own \r
-contents against being overwritten by saving settings.}{\f1 \r
-\par }\pard\plain \s66\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cf11\cgrid {\f1 \r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super K}{\f1  ICS Logon}\r
-}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  ICSLogon}}}{\f1  ICS Logon\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Whenever WinBoard connects to the Internet Chess Server, if it finds a file called }{\i\f1 ICS.ini }{\f1 in its installation directory}{\i\f1 ,}{\f1 \r
- it feeds the file's contents to the ICS as commands. Usually the first two lines of the file should be your ICS user name and password. You can specify a different name instead of }{\i\f1 ICS.ini}{\f1  by using the }{\f1\uldb icslogon}{\v\f1 icslogon}{\r
-\f1  command line option.\r
-\par }\pard\plain \s1\li120\sb280\sa120\sl-320\slmult0\nowidctlpar\outlinelevel0\adjustright \b\f5\cgrid {\f1\fs20 \page }{\cs58\f1\fs20\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super \r
-K}{\f1  Installing Chess Engines}}${\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super $}{\f1  Installing Chess Engines}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\r
-\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  InstallingChessEngines}}+{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super +}{\f1  main}}}{\f1\fs20  INSTALLING CHESS ENGINES\r
-\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\f1 Introduction\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 WinBoard is capable of operating with \r
-many different chess engines. You can play chess against a compatible engine, set up matches between two engines, or (advanced users only) run an automated computer player on an ICS.\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Typically, the main difficulty in installing a new chess engine for use b\r
-y WinBoard comes in getting the engine itself running and setting its options appropriately. The connection to WinBoard is relatively straightforward.\r
-\par WinBoard-compatible chess engines are Win32 command line programs that you can run by hand in an MS-DOS P\r
-rompt box and type human-readable commands to. WinBoard connects to an engine simply by starting the engine up in the background and communicating with it through a pair of pipes. Therefore the basic procedure for installing an engine is:\r
-\par }\pard\plain \s20\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 1. Get a copy of the engine and any supporting files it needs.\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-2. Install and configure the engine as a command-line program by following the instructions that come with it. Try it out by running it from the command line in an MS-DOS Prompt box and make sure it works.\r
-\par 3. Optional, but recommended: Try out the WinBoard plus engine combination by running WinBoard with the proper command line arguments in an MS-DOS Prompt box.\r
-\par 4. Create a shortcut on your desktop or Start menu to run the engine with WinBoard.\r
-\par 5. Optionally edit your WinBoard.ini file to add the engine to the drop-down lists on WinBoard's startup dialog.\r
-\par This document cannot explain steps 1 and 2 in detail for all engines, but we will take you through all five steps in outline, using Crafty as an example.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\f1 Example: Crafty\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 1. Choose a directory to put Crafty in. We'll use }{\f2 C:\\Program Files\\Crafty}{\f1 \r
- in this example. Download your copy of Crafty into this directory from its author's FTP site, }{\f2 ftp://ftp.cis.uab.edu/pub/hyatt}{\f1 . At this writing, you will need at least the following files:\r
-\par }\pard\plain \s19\li520\sb60\sl-240\slmult0\keep\nowidctlpar\tx520\tx920\tx1320\tx1720\tx2120\adjustright \f6\fs16\cgrid {\f2\fs20 read.me\line v15/crafty.doc\line v15/crafty.faq\line v15/wcrafty-15.*.exe}{\f1\fs20 \r
- (where * is replaced by the largest number there)\line }{\f2\fs20 common/start.zip}{\fs20 \line }{\f2\fs20 common/medium.zip}{\fs20  }{\f1\fs20 (or another book).\r
-\par }\pard\plain \s16\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 2. The first three files are documentation that you can read with a text edit\r
-or. Read the read.me file first and follow the instructions carefully. This will take some time. Do not write to the author of WinBoard if you have trouble with the instructions in the Crafty read.me. Try running Crafty from an MS-DOS Prompt box and make \r
-sure it works before you go on.\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 3. Optional, but recommended: In an MS-DOS Prompt box,}{ }{\f2 cd }{\f1 to the directory where WinBoard is installed, typically }{\f2 "C:\\Program Files\\WinBoard"}{\f1 \r
-. Then type the following command line. Use the actual name of the wcrafty file you downloaded, not an }{\f2 *}{\f1 , and if your browser changed the first period to an underscore when you downloaded the file, make that change in the command line too.\r
-\r
-\par }\pard\plain \s63\fi-720\li1440\sb80\sl-240\slmult0\nowidctlpar\adjustright \f2\fs20\cgrid {WinBoard /cp /fcp=WCrafty-15.* /fd="C:\\Program Files\\Crafty" /scp=WCrafty-15.* /sd="C:\\Program Files\\Crafty"\r
-\par }\pard\plain \s16\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 WinBoard should start up, with Crafty running as its chess engine. Check that you can play chess against Crafty.\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 4. To make a shortcut or Start menu entry for Crafty: Right-click on the desktop and select New/Shortcut. Use the Browse button to fin\r
-d your winboard.exe file and get its name into the Command Line box. (It usually will be "C:\\Program Files\\WinBoard\\winboard.exe".) Click in the Command Line box and hit the End key to go to the end. Add the following to the end of the command line, }{\r
-\i\f1 after}{\f1  the closing quotation mark. Use the actual name of the wcrafty file you downloaded, not an }{\f2 *}{\f1 \r
-, and if your browser changed the first period to an underscore when you downloaded the file, make that change in the command line too.\r
-\par }\pard\plain \s63\fi-720\li1440\sb80\sl-240\slmult0\nowidctlpar\adjustright \f2\fs20\cgrid {/cp /fcp=WCrafty-15.* /fd="C:\\Program Files\\Crafty" \line /scp=WCrafty-15.* /sd="C:\\Program Files\\Crafty"\r
-\par }\pard\plain \s62\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 \r
-Press Next, choose a name for the shortcut, and press Finish. You can now use this shortcut to run WinBoard with Crafty. Double-click it to check that it works. You can drag or copy the shortcut into your Start menu if you like.\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 5. To add Crafty as an option in the WinBoard Startup dialog, edit your }{\f1\uldb WinBoard.ini file}{\v\f1 Settings}{\f1 \r
- with Notepad or another plain text editor, carefully following the example shown under }{\f1\uldb /firstChessProgramNames}{\v\f1 firstChessProgramNames}{\f1  above.\r
-\par }\pard\plain \s2\li120\sb120\sa60\sl-240\slmult0\nowidctlpar\outlinelevel1\adjustright \b\f5\fs20\cgrid {\f1 For more information\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 If you would like to run an automated computer player on the ICS, see the separate file }{\f2 zippy.README}{\f1 \r
-. If you would like to write your own engine to interface to WinBoard, see the separate file }{\f2 engine-intf.html}{\f1 \r
-, and join the mailing list mentioned there. Both files are included in the WinBoard distribution. You might also want to get the source code for WinBoard. It is available from the author's Web page, http://www.tim-mann.org/chess.html}{\f2 .}{\f1 \r
-\par }\pard\plain \s1\li120\sb280\sa120\sl-320\slmult0\nowidctlpar\outlinelevel0\adjustright \b\f5\cgrid {\f1\fs20 \page }{\cs58\f1\fs20\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super \r
-K}{\f1  Firewalls}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Firewalls}}${\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \r
-\f5\fs20\cgrid {\cs58\f1\super $}{\f1  Firewalls}}+{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super +}{\f1  main}}}{\f1\fs18\up6  }{\f1\fs20 FIREWALLS\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 By default, "WinBoard /ics"}{\i\f1  }{\f1 \r
-communicates with an Internet Chess Server by opening a TCP socket directly from the machine it is running on to the ICS. If there is a firewall between your machine and the ICS, this won't work. Here are some recipes for getting \r
-around common kinds of firewalls using special options to WinBoard}{\i\f1 .}{\f1  Important: See the paragraph in the }{\f1\uldb LIMITATIONS}{\v\f1 LIMITATIONS}{\f1  section below about extra echoes.\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Suppose that you can't telnet directly to ICS, but you can telnet to a firewall host, log in, a\r
-nd then telnet from there to ICS. Let's say the firewall is called fire.wall.com. Set command-line options as follows: \r
-\par }\pard\plain \s19\li520\sb60\sl-240\slmult0\keep\nowidctlpar\tx520\tx920\tx1320\tx1720\tx2120\adjustright \f6\fs16\cgrid {\f2\fs20 WinBoard -ics -icshost fire.wall.com -icsport 23\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Then when you run WinBoard}{\i\f1  }{\f1 in ICS mode, you will be prompted to log in to the firewall \r
-host. (This works because port 23 is the standard telnet login service.) Do so, then telnet to ICS, using a command like "telnet chessclub.com 5000", or whatever command the firewall provides for telnetting to port 5000.\r
-\par If your firewall lets you telnet (o\r
-r rlogin) to remote hosts, but doesn't let you telnet to port 5000, you will have to find some other host outside the firewall that does let you do this, and hop through it. For instance, suppose you have an account at foo.edu. Follow the recipe above, bu\r
-t instead of typing "telnet chessclub.com 5000" to the firewall, type "telnet foo.edu" (or "rlogin foo.edu"), log in there, and then type "telnet chessclub.com 5000".\r
-\par Exception: chessclub.com itself lets you connect to the chess server on the default telnet port (23), which is what you get if you don\rquote t specify a port to the telnet program. But the other chess servers don\rquote t allow this.\r
-\par Suppose that you can't telnet directly to ICS, but you can use rsh to run programs on a firewall host, and that host can telnet to ICS. Let's say the firewall is called rsh.wall.com. Set command-line options as follows: \r
-\par }\pard\plain \s19\li520\sb60\sl-240\slmult0\keep\nowidctlpar\tx520\tx920\tx1320\tx1720\tx2120\adjustright \f6\fs16\cgrid {\f2\fs20 WinBoard -ics -gateway rsh.wall.com -icshost chessclub.com\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Then when you run WinBoard}{\i\f1  }{\f1 in ICS mode, it will connect to the ICS by using rsh to run the command "telnet chessclub.com 5000" on host rsh.wall.com.\r
-\par ICC timestamp and FICS timeseal do not work through many}{\b\f1  }{\f1 firewalls. You can use them only if your firewall gives a clean TCP connection with a full 8-bit wide path. If your firewall allows you to get out only\r
- by running a special telnet program, you can't use timestamp or timeseal across it. But if you have access to a computer just outside your firewall, and you have much lower netlag when talking to that computer than to the ICS, it might be worthwhile runn\r
-ing timestamp there. Follow the instructions above for hopping through a host outside the firewall (foo.edu in the example), but run timestamp or timeseal on that host instead of telnet.\r
-\par }\pard\plain \s20\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Suppose that you have a SOCKS firewall that requires you to go through\r
- some extra level of authentication, but after that will give you a clean 8-bit wide TCP connection to the chess server. In that case, if you are using timestamp or timeseal, you need to somehow socksify it; if not, you need to socksify WinBoard itself. S\r
-ocksification is beyond the scope of this document, but see the SOCKS Web site at http://www.socks.nec.com/how2socksify.html.\r
-\par }\pard\plain \s1\li120\sb280\sa120\sl-320\slmult0\nowidctlpar\outlinelevel0\adjustright \b\f5\cgrid {\f1\fs20 \page }{\cs58\f1\fs20\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super \r
-K}{\f1  Limitations}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Limitations}}${\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \r
-\f5\fs20\cgrid {\cs58\f1\super $}{\f1  Limitations}}+{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super +}{\f1  main}}}{\f1\fs18\up6  }{\f1\fs20 LIMITATIONS }{\f1\fs20\cf11 \r
-AND NON-LIMITATIONS}{\f1\fs20 \r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 WinBoard}{\i\f1  }{\f1 is a Win32 application. It runs only on Windows NT and Windows 95. It does not work \r
-on Windows 3.11 or earlier, even with the Win32s compatibility package.\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\i\f1 CMail, }{\f1 the companion program to xboard for playing electronic mail correspondence chess, has not been ported to Win32.\r
-\par There is no way for two people running copies of WinBoard}{\i\f1  }{\f1 to play each other without going through the Internet Chess Server.\r
-\par Under some circumstances, your ICS password may be echoed when you log on.\r
-\par If you are connecting to the ICS by running telnet, timestamp, or timeseal on an Internet provider host, you may find th\r
-at each line you type is echoed back an extra time after you hit Enter. You can probably turn this echo off. If your Internet provider is a Unix system, type "}{\f2 stty -echo}{\f1 \r
-" after you log in to the provider but before you run telnet, timestamp, or timeseal. In addition, you may need to type the sequence \ldblquote }{\f2 Ctrl+Q Ctrl+E Enter}{\f1 \ldblquote  after you have finished logging in to ICS. On VMS, type \ldblquote }\r
-{\f2 set terminal /noecho /nowrap}{\f1 \rdblquote , and after you telnet to the ICS, type \ldblquote }{\f2 Ctrl+Q Ctrl+] Enter set mode char Enter Enter}{\f1 \rdblquote . It is a good \r
-idea to turn off the extra remote echo if you can, because otherwise it can get interleaved with output from the ICS and confuse WinBoard's parsing routines. Don\rquote t just turn off }{\f1\uldb Local Line Editing}{\v\f1 localLineEditing}{\f1 \r
- so that you see only the remote echo and not the local one; that will make the interleaving problem worse.\r
-\par The game parser recognizes only algebraic notation (SAN).\r
-\par The }{\f1\uldb ICS logon}{\v\f1 ICSLogon}{\f1  file does not work properly when you connect to ICS through a Unix gateway host by setting }{\f1\uldb icsPort}{\v\f1 icsPort}{\f1  to 23. The Unix login process apparently discards type-ahead.\r
-\par Some WinBoard functions may not work with versions of GNU Chess earlier than 4.0, patchlevel 77. The current version of WinBoard}{\i\f1  }{\f1 works best with Crafty version 15.11 or later.\r
-\par }{\f1\cf11 Many of the following points used to be limitations in WinBoard 4.2.7 and earlier, but are now fixed:\r
-\par The internal move legality tester in WinBoard 4.3.xx does look at the game history, and is fully aware of castling or en passant-capture rights. }{\f1 It permits castling with the king on the }{\b\f1 d}{\f1 \r
- file because this is possible in some "wild 1" games on ICS. The piece-drop menu does not check piece drops in bughouse to see if you actually hold the piece you are trying to drop.}{\f1\cf11 \r
- But this way of dropping pieces should be considered an obsolete feature, now that pieces can be dropped by dragging them from the holdings to the board. }{\f1 Anyway, if you would attempt an illegal move when using a chess engine or the ICS,}{\f1\cf11  \r
-}{\f1 WinBoard will accept the error message that comes back, undo the move, and let you try another.\r
-\par }{\f1\cf11 FEN positions saved by WinBoard}{\i\f1\cf11  }{\f1\cf11 do include correct information about whether castling or en passant are legal, and also handle the 50-move counter.\r
-\par }\pard\plain \s20\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 The mate detector does not understand that non-contact mate is not really mate in bughouse.}{\f1\cf11  }{\f1 The\r
- only problem this causes while playing is minor: a "#" (mate indicator) character will show up after a non-contact mating move in the move list. WinBoard will not assume the game is over at that point,}{\f1\cf11 \r
- not even when the option Detect Mates is on.\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1\cf11 Edit Gam\r
-e mode always uses the rules of the selected variant, which can be a variant that uses piece drops.  You can load and edit games that contain piece drops. The (obsolete) piece menus are not active, but you can perform piece drops by dragging pieces from t\r
-he holdings.\r
-\par Edit Position mode does not allow you to edit the Crazyhouse holdings properly. You cannot drag pieces to the holding, and using the popup menu to put pieces there does not adapt the holding counts and leads to an inconsistent state. Set up Cra\r
-zyhouse positions by loading / pasting a bFEN, from there you can set the holdings.\r
-\par Fischer Random castling is fully understood. You can enter castlings by dragging the King on top of your Rook. You can probably also play Fischer Random successfully on ICS by typing castling moves into the ICS Interaction window.\r
-\par }{\f1 Also see the ToDo file included with the distribution for many other possible bugs, limitations, and ideas for improvement that have been suggested.\r
-\par }\pard\plain \s1\li120\sb280\sa120\sl-320\slmult0\nowidctlpar\outlinelevel0\adjustright \b\f5\cgrid {\f1\fs20 \page }{\cs58\f1\fs20\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super \r
-K}{\f1  Authors}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Authors}}${\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\r
-\cs58\f1\super $}{\f1  Authors}}+{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super +}{\f1  main}}}{\f1\fs18\up6  }{\f1\fs20 AUTHORS AND CONTRIBUTORS\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 WinBoard is partly based on }{\i\f1 xboard}{\f1 , a chessboard program for Unix and the X Window System. Tim Mann has been responsible for all versions of WinBoard,}{\r
-\i\f1  }{\f1 and for xboard versions 1.3 and beyond. }{\f1\cf11 H.G.Muller is responsible for version 4.3.}{\f1 \r
-\par Mark Williams added many features to Wi\r
-nBoard 4.1.0, including copy/paste, premove, icsAlarm, autoFlipView, training mode, auto raise, and blindfold. Hugh Fischer added piece animation to xboard, and Henrik Gram added it to WinBoard. Frank McIngvale contributed many xboard}{\i\f1  }{\f1 \r
-user interface improvements and improved Crafty support. Jochen Wiedmann ported xboard}{\i\f1  }{\f1 to the Amiga, creating }{\i\f1 AmyBoard}{\f1 \r
-, and converted the documentation to texinfo. Elmar Bartel contributed the new piece bitmaps for version 3.2. Evan Welsh wrote }{\i\f1 CMail. }{\f1 John Chanak contributed t\r
-he initial implementation of ICS mode. The default color scheme was adapted from Wayne Christopher's }{\i\f1 XChess }{\f1 program. Chris Sears and Dan Sears wrote the original xboard}{\i\f1 . }{\f1 They were responsible for xboard}{\i\f1  }{\f1 \r
-versions 1.0 through 1.2. }{\f1\cf6 Allessandro Scotti added ma\r
-ny elements to the user interface, including the board textures and font-based rendering, the evaluation-graph, move-history and engine-output window. He was also responsible for adding the UCI support.}{\f1  }{\f1\cf11 \r
-H.G. Muller made WinBoard castling- and e.p.-aware, a\r
-dded variant support with adjustable board sizes, the Crazyhouse holdings, and the fairy pieces. In addition he added most of the adjudication options, made WinBoard ore robust in dealing with buggy and crashing engines, and extended time control with a t\r
-ime-odds and node-count-based modes.}{\f1 \r
-\par Send bug reports to <bug-xboard@gnu.org>. Please run WinBoard with the /debug option and include the output from the resulting WinBoard.debug file in your message.\r
-\par }\pard\plain \s66\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cf11\cgrid {\f1 The WinBoard 4.3.xx line is being developed by H.G. Mull\r
-er independently of the GNU Savannah xboard project. Bug reports on this version, and suggestions for improvements and additions, are best posted in the WinBoard forum, development section (}{\field{\*\fldinst {\f1  HYPERLINK\r
- http://www.open-aurec.com/wbforum) }{\f1 {\*\datafield \r
-00d0c9ea79f9bace118c8200aa004ba90b02000000170000002300000068007400740070003a002f002f007700770077002e006f00700065006e002d00610075007200650063002e0063006f006d002f007700620066006f00720075006d0029000000e0c9ea79f9bace118c8200aa004ba90b460000006800740074007000\r
-3a002f002f007700770077002e006f00700065006e002d00610075007200650063002e0063006f006d002f007700620066006f00720075006d00290000000000000000000000000000000000000000000000000000}}}{\fldrslt {\cs59\ul\cf2 http://www.open-aurec.com/wbforum)}}}{\f1 .\r
-\par }{\f1\cf2 Michel van den Bergh provided the code for reading Polyglot opening books.\r
-\par Arun Persaud worked with H.G. Muller to combine all the features of the never-released WinBoard 4.2.8 of the Savannah project (mainly by Daniel Mehrmann), and th\r
-e never-released 4.3.16 into a unified WinBoard 4.4, which is now available both from the Savannah web site and the WinBoard forum.\r
-\par }\pard\plain \s1\li120\sb280\sa120\sl-320\slmult0\nowidctlpar\outlinelevel0\adjustright \b\f5\cgrid {\f1\fs20 \page }{\cs58\f1\fs20\super K{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super \r
-K}{\f1  Copyright}}#{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super #}{\f1  Copyright}}${\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \r
-\f5\fs20\cgrid {\cs58\f1\super $}{\f1  Copyright}}+{\footnote\ftnalt \pard\plain \s57\li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\cs58\f1\super +}{\f1  main}}}{\f1\fs18\up6  }{\f1\fs20 COPYRIGHT\r
-\par }\pard\plain \s26\li120\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts. \line Enhancements Copyright 1992-2009 Free Software Foundation, Inc.\r
-\par }\pard\plain \li120\sb80\sl-240\slmult0\nowidctlpar\adjustright \f5\fs20\cgrid {\f1 The following terms apply to Digital Equipment Corporation's copyright interest in WinBoard:\r
-\par All Rights Reserved\r
-\par Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without f\r
-ee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Digital not be used in advertising or publicity per\r
-taining to distribution of the software without specific, written prior permission.\r
-\par DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY S\r
-PECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOF\r
-TWARE.\r
-\par The following terms apply to the enhanced version of WinBoard distributed by the Free Software Foundation:\r
-\par This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.\r
-\par This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.\r
-\par You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\r
-\par }}
\ No newline at end of file
diff --git a/winboard/wlayout.c b/winboard/wlayout.c
deleted file mode 100644 (file)
index c308fb3..0000000
+++ /dev/null
@@ -1,201 +0,0 @@
-/*\r
- * Layout management\r
- *\r
- * Author: Alessandro Scotti (Dec 2005)\r
- *\r
- * Copyright 2005 Alessandro Scotti\r
- *\r
- * Enhancements Copyright 2009, 2012, 2013, 2014, 2015, 2016 Free\r
- * Software Foundation, Inc.\r
- *\r
- * ------------------------------------------------------------------------\r
- *\r
- * GNU XBoard is free software: you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation, either version 3 of the License, or (at\r
- * your option) any later version.\r
- *\r
- * GNU XBoard is distributed in the hope that it will be useful, but\r
- * WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
- * General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program. If not, see http://www.gnu.org/licenses/.  *\r
- *\r
- *------------------------------------------------------------------------\r
- ** See the file ChangeLog for a revision history.  */\r
-\r
-#include "config.h"\r
-\r
-#include <windows.h> /* required for all Windows applications */\r
-#include <stdio.h>\r
-#include <stdlib.h>\r
-#include <malloc.h>\r
-#include <commdlg.h>\r
-#include <dlgs.h>\r
-\r
-#include "common.h"\r
-#include "frontend.h"\r
-#include "winboard.h"\r
-\r
-VOID RestoreWindowPlacement( HWND hWnd, WindowPlacement * wp )\r
-{\r
-    if( wp->x != CW_USEDEFAULT || \r
-        wp->y != CW_USEDEFAULT ||\r
-        wp->width != CW_USEDEFAULT || \r
-        wp->height != CW_USEDEFAULT )\r
-    {\r
-       WINDOWPLACEMENT stWP;\r
-\r
-        ZeroMemory( &stWP, sizeof(stWP) );\r
-\r
-       EnsureOnScreen( &wp->x, &wp->y, 0, 0);\r
-\r
-       stWP.length = sizeof(stWP);\r
-       stWP.flags = 0;\r
-       stWP.showCmd = SW_SHOW;\r
-       stWP.ptMaxPosition.x = 0;\r
-        stWP.ptMaxPosition.y = 0;\r
-       stWP.rcNormalPosition.left = wp->x;\r
-       stWP.rcNormalPosition.right = wp->x + wp->width;\r
-       stWP.rcNormalPosition.top = wp->y;\r
-       stWP.rcNormalPosition.bottom = wp->y + wp->height;\r
-\r
-       SetWindowPlacement(hWnd, &stWP);\r
-    }\r
-}\r
-\r
-VOID InitWindowPlacement( WindowPlacement * wp )\r
-{\r
-    wp->visible = TRUE;\r
-    wp->x = CW_USEDEFAULT;\r
-    wp->y = CW_USEDEFAULT;\r
-    wp->width = CW_USEDEFAULT;\r
-    wp->height = CW_USEDEFAULT;\r
-}\r
-\r
-static BOOL IsAttachDistance( int a, int b )\r
-{\r
-    BOOL result = FALSE;\r
-\r
-    if( a == b ) {\r
-        result = TRUE;\r
-    }\r
-\r
-    return result;\r
-}\r
-\r
-static BOOL IsDefaultPlacement( WindowPlacement * wp )\r
-{\r
-    BOOL result = FALSE;\r
-\r
-    if( wp->x == CW_USEDEFAULT || wp->y == CW_USEDEFAULT || wp->width == CW_USEDEFAULT || wp->height == CW_USEDEFAULT ) {\r
-        result = TRUE;\r
-    }\r
-\r
-    return result;\r
-}\r
-\r
-BOOL GetActualPlacement( HWND hWnd, WindowPlacement * wp )\r
-{\r
-    BOOL result = FALSE;\r
-\r
-    if( hWnd != NULL ) {\r
-        WINDOWPLACEMENT stWP;\r
-\r
-        ZeroMemory( &stWP, sizeof(stWP) );\r
-\r
-        stWP.length = sizeof(stWP);\r
-\r
-        GetWindowPlacement( hWnd, &stWP );\r
-\r
-        wp->x = stWP.rcNormalPosition.left;\r
-        wp->y = stWP.rcNormalPosition.top;\r
-        wp->width = stWP.rcNormalPosition.right - stWP.rcNormalPosition.left;\r
-        wp->height = stWP.rcNormalPosition.bottom - stWP.rcNormalPosition.top;\r
-\r
-        result = TRUE;\r
-    }\r
-\r
-    return result;\r
-}\r
-\r
-static BOOL IsAttachedByWindowPlacement( LPRECT lprcMain, WindowPlacement * wp )\r
-{\r
-    BOOL result = FALSE;\r
-\r
-    if( ! IsDefaultPlacement(wp) ) {\r
-        if( IsAttachDistance( lprcMain->right, wp->x ) ||\r
-            IsAttachDistance( lprcMain->bottom, wp->y ) ||\r
-            IsAttachDistance( lprcMain->left, (wp->x + wp->width) ) ||\r
-            IsAttachDistance( lprcMain->top, (wp->y + wp->height) ) )\r
-        {\r
-            result = TRUE;\r
-        }\r
-    }\r
-\r
-    return result;\r
-}\r
-\r
-VOID ReattachAfterMove( LPRECT lprcOldPos, int new_x, int new_y, HWND hWndChild, WindowPlacement * pwpChild )\r
-{\r
-    if( ! IsDefaultPlacement( pwpChild ) ) {\r
-        GetActualPlacement( hWndChild, pwpChild );\r
-\r
-        if( IsAttachedByWindowPlacement( lprcOldPos, pwpChild ) ) {\r
-            /* Get position delta */\r
-            int delta_x = pwpChild->x - lprcOldPos->left;\r
-            int delta_y = pwpChild->y - lprcOldPos->top;\r
-\r
-            /* Adjust placement */\r
-            pwpChild->x = new_x + delta_x;\r
-            pwpChild->y = new_y + delta_y;\r
-\r
-            /* Move window */\r
-            if( hWndChild != NULL ) {\r
-                SetWindowPos( hWndChild, HWND_TOP,\r
-                    pwpChild->x, pwpChild->y,\r
-                    0, 0,\r
-                    SWP_NOZORDER | SWP_NOSIZE );\r
-            }\r
-        }\r
-    }\r
-}\r
-\r
-extern FILE *debugFP;\r
-VOID ReattachAfterSize( LPRECT lprcOldPos, int new_w, int new_h, HWND hWndChild, WindowPlacement * pwpChild )\r
-{\r
-    if( ! IsDefaultPlacement( pwpChild ) ) {\r
-        GetActualPlacement( hWndChild, pwpChild );\r
-\r
-        if( IsAttachedByWindowPlacement( lprcOldPos, pwpChild ) ) {\r
-            /* Get delta of lower right corner */\r
-            int delta_x = new_w - (lprcOldPos->right  - lprcOldPos->left);\r
-            int delta_y = new_h - (lprcOldPos->bottom - lprcOldPos->top);\r
-\r
-            /* Adjust size & placement */\r
-            if(pwpChild->x + pwpChild->width  >= lprcOldPos->right &&\r
-              (pwpChild->x + pwpChild->width  < screenGeometry.right - 5 || delta_x > 0) ) // keep right edge glued to display edge if touching\r
-               pwpChild->width += delta_x;\r
-            if(pwpChild->x + pwpChild->width  >= screenGeometry.right  ) // don't move right edge off screen\r
-               pwpChild->width = screenGeometry.right - pwpChild->x;\r
-            if(pwpChild->y + pwpChild->height >= lprcOldPos->bottom &&\r
-              (pwpChild->y + pwpChild->height < screenGeometry.bottom - 35 || delta_y > 0) ) // keep bottom edge glued to display edge if touching\r
-               pwpChild->height += delta_y;\r
-            if(pwpChild->y + pwpChild->height >= screenGeometry.bottom - 30 ) // don't move bottom edge off screen\r
-               pwpChild->height = screenGeometry.bottom - 30 - pwpChild->y;\r
-            if(pwpChild->x >= lprcOldPos->right)  pwpChild->width  -= delta_x, pwpChild->x += delta_x;\r
-            if(pwpChild->y >= lprcOldPos->bottom) pwpChild->height -= delta_y, pwpChild->y += delta_y;\r
-            if(pwpChild->width  < 30) pwpChild->width = 30;  // force minimum width\r
-            if(pwpChild->height < 50) pwpChild->height = 50; // force minimum height\r
-            /* Move window */\r
-            if( hWndChild != NULL ) {\r
-                SetWindowPos( hWndChild, HWND_TOP,\r
-                    pwpChild->x, pwpChild->y,\r
-                    pwpChild->width, pwpChild->height,\r
-                    SWP_NOZORDER );\r
-            }\r
-        }\r
-    }\r
-}\r
diff --git a/winboard/woptions.c b/winboard/woptions.c
deleted file mode 100644 (file)
index 34e3800..0000000
+++ /dev/null
@@ -1,3205 +0,0 @@
-/*\r
- * woptions.c -- Options dialog box routines for WinBoard\r
- *\r
- * Copyright 2000, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free\r
- * Software Foundation, Inc.\r
- *\r
- * Enhancements Copyright 2005 Alessandro Scotti\r
- *\r
- * ------------------------------------------------------------------------\r
- *\r
- * GNU XBoard is free software: you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation, either version 3 of the License, or (at\r
- * your option) any later version.\r
- *\r
- * GNU XBoard is distributed in the hope that it will be useful, but\r
- * WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
- * General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program. If not, see http://www.gnu.org/licenses/.  *\r
- *\r
- *------------------------------------------------------------------------\r
- ** See the file ChangeLog for a revision history.  */\r
-\r
-#include "config.h"\r
-\r
-#include <windows.h>   /* required for all Windows applications */\r
-#include <stdio.h>\r
-#include <stdlib.h>\r
-#include <shlobj.h>    /* [AS] Requires NT 4.0 or Win95 */\r
-#include <ctype.h>\r
-\r
-#include "common.h"\r
-#include "frontend.h"\r
-#include "winboard.h"\r
-#include "backend.h"\r
-#include "woptions.h"\r
-#include "defaults.h"\r
-#include <richedit.h>\r
-\r
-#if __GNUC__\r
-#include <errno.h>\r
-#include <string.h>\r
-#endif\r
-\r
-#define _(s) T_(s)\r
-#define N_(s) s\r
-\r
-/* Imports from winboard.c */\r
-\r
-extern MyFont *font[NUM_SIZES][NUM_FONTS];\r
-extern HINSTANCE hInst;          /* current instance */\r
-extern HWND hwndMain;            /* root window*/\r
-extern BOOLEAN alwaysOnTop;\r
-extern RECT boardRect;\r
-extern COLORREF lightSquareColor, darkSquareColor, whitePieceColor,\r
-  blackPieceColor, highlightSquareColor, premoveHighlightColor;\r
-extern HPALETTE hPal;\r
-extern BoardSize boardSize;\r
-extern COLORREF consoleBackgroundColor;\r
-extern MyColorizeAttribs colorizeAttribs[]; /* do I need the size? */\r
-extern MyTextAttribs textAttribs[];\r
-extern MySound sounds[];\r
-extern ColorClass currentColorClass;\r
-extern HWND hwndConsole;\r
-extern char *defaultTextAttribs[];\r
-extern HWND commentDialog;\r
-extern HWND moveHistoryDialog;\r
-extern HWND engineOutputDialog;\r
-extern char installDir[];\r
-extern HWND hCommPort;    /* currently open comm port */\r
-extern DCB dcb;\r
-extern BOOLEAN chessProgram;\r
-extern int startedFromPositionFile; /* [HGM] loadPos */\r
-extern int searchTime;\r
-\r
-/* types */\r
-\r
-typedef struct {\r
-  char *label;\r
-  unsigned value;\r
-} ComboData;\r
-\r
-typedef struct {\r
-  char *label;\r
-  char *name;\r
-} SoundComboData;\r
-\r
-/* module prototypes */\r
-\r
-LRESULT CALLBACK GeneralOptions(HWND, UINT, WPARAM, LPARAM);\r
-LRESULT CALLBACK BoardOptions(HWND, UINT, WPARAM, LPARAM);\r
-LRESULT CALLBACK NewVariant(HWND, UINT, WPARAM, LPARAM);\r
-LRESULT CALLBACK IcsOptions(HWND, UINT, WPARAM, LPARAM);\r
-LRESULT CALLBACK FontOptions(HWND, UINT, WPARAM, LPARAM);\r
-LRESULT CALLBACK CommPortOptions(HWND, UINT, WPARAM, LPARAM);\r
-LRESULT CALLBACK LoadOptions(HWND, UINT, WPARAM, LPARAM);\r
-LRESULT CALLBACK SaveOptions(HWND, UINT, WPARAM, LPARAM);\r
-LRESULT CALLBACK TimeControl(HWND, UINT, WPARAM, LPARAM);\r
-VOID ChangeBoardSize(BoardSize newSize);\r
-VOID PaintSampleSquare(\r
-    HWND     hwnd,\r
-    int      ctrlid,\r
-    COLORREF squareColor,\r
-    COLORREF pieceColor,\r
-    COLORREF squareOutlineColor,\r
-    COLORREF pieceDetailColor,\r
-    BOOL     isWhitePiece,\r
-    BOOL     isMono,\r
-    HBITMAP  pieces[3]\r
-    );\r
-VOID PaintColorBlock(HWND hwnd, int ctrlid, COLORREF color);\r
-VOID SetBoardOptionEnables(HWND hDlg);\r
-BoardSize BoardOptionsWhichRadio(HWND hDlg);\r
-BOOL APIENTRY MyCreateFont(HWND hwnd, MyFont *font);\r
-VOID UpdateSampleText(HWND hDlg, int id, MyColorizeAttribs *mca);\r
-LRESULT CALLBACK ColorizeTextDialog(HWND , UINT, WPARAM, LPARAM);\r
-VOID ColorizeTextPopup(HWND hwnd, ColorClass cc);\r
-VOID SetIcsOptionEnables(HWND hDlg);\r
-VOID SetSampleFontText(HWND hwnd, int id, const MyFont *mf);\r
-VOID CopyFont(MyFont *dest, const MyFont *src);\r
-void InitSoundComboData(SoundComboData *scd);\r
-void ResetSoundComboData(SoundComboData *scd);\r
-void InitSoundCombo(HWND hwndCombo, SoundComboData *scd);\r
-int SoundDialogWhichRadio(HWND hDlg);\r
-VOID SoundDialogSetEnables(HWND hDlg, int radio);\r
-char * SoundDialogGetName(HWND hDlg, int radio);\r
-void DisplaySelectedSound(HWND hDlg, HWND hCombo, const char *name);\r
-VOID ParseCommSettings(char *arg, DCB *dcb);\r
-VOID PrintCommSettings(FILE *f, char *name, DCB *dcb);\r
-void InitCombo(HANDLE hwndCombo, ComboData *cd);\r
-void SelectComboValue(HANDLE hwndCombo, ComboData *cd, unsigned value);\r
-VOID SetLoadOptionEnables(HWND hDlg);\r
-VOID SetSaveOptionEnables(HWND hDlg);\r
-VOID SetTimeControlEnables(HWND hDlg);\r
-\r
-char *\r
-InterpretFileName(char *buf, char *homeDir)\r
-{ // [HGM] file name relative to homeDir. (Taken out of SafeOptionsDialog, because it is generally useful)\r
-  char *result = NULL;\r
-  if ((isalpha(buf[0]) && buf[1] == ':') ||\r
-    (buf[0] == '\\' && buf[1] == '\\')) {\r
-    return strdup(buf);\r
-  } else {\r
-    char buf2[MSG_SIZ], buf3[MSG_SIZ];\r
-    char *dummy;\r
-    GetCurrentDirectory(MSG_SIZ, buf3);\r
-    SetCurrentDirectory(homeDir);\r
-    if (GetFullPathName(buf, MSG_SIZ, buf2, &dummy)) {\r
-      result = strdup(buf2);\r
-    } else {\r
-      result = strdup(buf);\r
-    }\r
-    SetCurrentDirectory(buf3);\r
-  }\r
-  return result;\r
-}\r
-\r
-/*---------------------------------------------------------------------------*\\r
- *\r
- * General Options Dialog functions\r
- *\r
-\*---------------------------------------------------------------------------*/\r
-\r
-\r
-LRESULT CALLBACK\r
-GeneralOptionsDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
-{\r
-  static Boolean oldShowCoords;\r
-  static Boolean oldBlindfold;\r
-  static Boolean oldShowButtonBar;\r
-  static Boolean oldAutoLogo;\r
-\r
-  switch (message) {\r
-  case WM_INITDIALOG: /* message: initialize dialog box */\r
-    oldShowCoords = appData.showCoords;\r
-    oldBlindfold  = appData.blindfold;\r
-    oldShowButtonBar = appData.showButtonBar;\r
-    oldAutoLogo  = appData.autoLogo;\r
-\r
-    /* Center the dialog over the application window */\r
-    CenterWindow (hDlg, GetWindow (hDlg, GW_OWNER));\r
-    Translate(hDlg, DLG_GeneralOptions);\r
-\r
-    /* Initialize the dialog items */\r
-#define CHECK_BOX(x,y) CheckDlgButton(hDlg, (x), (BOOL)(y))\r
-\r
-    CHECK_BOX(OPT_AlwaysOnTop, alwaysOnTop);\r
-    CHECK_BOX(OPT_AlwaysQueen, appData.alwaysPromoteToQueen);\r
-    CHECK_BOX(OPT_AnimateDragging, appData.animateDragging);\r
-    CHECK_BOX(OPT_AnimateMoving, appData.animate);\r
-    CHECK_BOX(OPT_AutoFlag, appData.autoCallFlag);\r
-    CHECK_BOX(OPT_AutoFlipView, appData.autoFlipView);\r
-    CHECK_BOX(OPT_AutoRaiseBoard, appData.autoRaiseBoard);\r
-    CHECK_BOX(OPT_Blindfold, appData.blindfold);\r
-    CHECK_BOX(OPT_HighlightDragging, appData.highlightDragging);\r
-    CHECK_BOX(OPT_HighlightLastMove, appData.highlightLastMove);\r
-    CHECK_BOX(OPT_PeriodicUpdates, appData.periodicUpdates);\r
-    CHECK_BOX(OPT_PonderNextMove, appData.ponderNextMove);\r
-    CHECK_BOX(OPT_PopupExitMessage, appData.popupExitMessage);\r
-    CHECK_BOX(OPT_PopupMoveErrors, appData.popupMoveErrors);\r
-    CHECK_BOX(OPT_ShowButtonBar, appData.showButtonBar);\r
-    CHECK_BOX(OPT_ShowCoordinates, appData.showCoords);\r
-    CHECK_BOX(OPT_ShowThinking, appData.showThinking);\r
-    CHECK_BOX(OPT_TestLegality, appData.testLegality);\r
-    CHECK_BOX(OPT_HideThinkFromHuman, appData.hideThinkingFromHuman);\r
-    CHECK_BOX(OPT_SaveExtPGN, appData.saveExtendedInfoInPGN);\r
-    CHECK_BOX(OPT_ExtraInfoInMoveHistory, appData.showEvalInMoveHistory);\r
-    CHECK_BOX(OPT_HighlightMoveArrow, appData.highlightMoveWithArrow);\r
-    CHECK_BOX(OPT_AutoLogo, appData.autoLogo); // [HGM] logo\r
-    CHECK_BOX(OPT_SmartMove, appData.oneClick); // [HGM] one-click\r
-    CHECK_BOX(OPT_AutoTags, appData.autoDisplayTags); // [HGM]\r
-    CHECK_BOX(OPT_AutoComment, appData.autoDisplayComment); // [HGM]\r
-    CHECK_BOX(OPT_Headers, appData.headers); // [HGM]\r
-    CHECK_BOX(OPT_Variations, appData.variations); // [HGM]\r
-    CHECK_BOX(OPT_AutoExtend, appData.autoExtend); // [HGM]\r
-\r
-#undef CHECK_BOX\r
-\r
-    EnableWindow(GetDlgItem(hDlg, OPT_AutoFlag),\r
-                appData.icsActive || !appData.noChessProgram);\r
-    EnableWindow(GetDlgItem(hDlg, OPT_AutoFlipView),\r
-                appData.icsActive || !appData.noChessProgram);\r
-    EnableWindow(GetDlgItem(hDlg, OPT_PonderNextMove),\r
-                !appData.noChessProgram);\r
-    EnableWindow(GetDlgItem(hDlg, OPT_PeriodicUpdates),\r
-                !appData.noChessProgram && !appData.icsActive);\r
-    EnableWindow(GetDlgItem(hDlg, OPT_ShowThinking),\r
-                !appData.noChessProgram);\r
-    return TRUE;\r
-\r
-\r
-  case WM_COMMAND: /* message: received a command */\r
-    switch (LOWORD(wParam)) {\r
-    case IDOK:\r
-      /* Read changed options from the dialog box */\r
-\r
-#define IS_CHECKED(x) (Boolean)IsDlgButtonChecked(hDlg, (x))\r
-\r
-      alwaysOnTop                  = IS_CHECKED(OPT_AlwaysOnTop);\r
-      appData.alwaysPromoteToQueen = IS_CHECKED(OPT_AlwaysQueen);\r
-      appData.animateDragging      = IS_CHECKED(OPT_AnimateDragging);\r
-      appData.animate              = IS_CHECKED(OPT_AnimateMoving);\r
-      appData.autoCallFlag         = IS_CHECKED(OPT_AutoFlag);\r
-      appData.autoFlipView         = IS_CHECKED(OPT_AutoFlipView);\r
-      appData.autoRaiseBoard       = IS_CHECKED(OPT_AutoRaiseBoard);\r
-      appData.blindfold            = IS_CHECKED(OPT_Blindfold);\r
-      appData.highlightDragging    = IS_CHECKED(OPT_HighlightDragging);\r
-      appData.highlightLastMove    = IS_CHECKED(OPT_HighlightLastMove);\r
-      PeriodicUpdatesEvent(          IS_CHECKED(OPT_PeriodicUpdates));\r
-      PonderNextMoveEvent(           IS_CHECKED(OPT_PonderNextMove));\r
-      appData.popupExitMessage     = IS_CHECKED(OPT_PopupExitMessage);\r
-      appData.popupMoveErrors      = IS_CHECKED(OPT_PopupMoveErrors);\r
-      appData.showButtonBar        = IS_CHECKED(OPT_ShowButtonBar);\r
-      appData.showCoords           = IS_CHECKED(OPT_ShowCoordinates);\r
-      // [HGM] thinking: next three moved up\r
-      appData.saveExtendedInfoInPGN= IS_CHECKED(OPT_SaveExtPGN);\r
-      appData.hideThinkingFromHuman= IS_CHECKED(OPT_HideThinkFromHuman);\r
-      appData.showEvalInMoveHistory= IS_CHECKED(OPT_ExtraInfoInMoveHistory);\r
-      appData.showThinking         = IS_CHECKED(OPT_ShowThinking);\r
-      ShowThinkingEvent(); // [HGM] thinking: tests four options\r
-      appData.testLegality         = IS_CHECKED(OPT_TestLegality);\r
-      appData.highlightMoveWithArrow=IS_CHECKED(OPT_HighlightMoveArrow);\r
-      appData.autoLogo             =IS_CHECKED(OPT_AutoLogo); // [HGM] logo\r
-      appData.oneClick             =IS_CHECKED(OPT_SmartMove); // [HGM] one-click\r
-      appData.autoDisplayTags      =IS_CHECKED(OPT_AutoTags); // [HGM]\r
-      appData.autoDisplayComment   =IS_CHECKED(OPT_AutoComment); // [HGM]\r
-      appData.headers              =IS_CHECKED(OPT_Headers); // [HGM]\r
-      appData.variations           =IS_CHECKED(OPT_Variations); // [HGM]\r
-      appData.autoExtend           =IS_CHECKED(OPT_AutoExtend); // [HGM]\r
-\r
-#undef IS_CHECKED\r
-\r
-      SetWindowPos(hwndMain, alwaysOnTop ? HWND_TOPMOST : HWND_NOTOPMOST,\r
-                  0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);\r
-#if AOT_CONSOLE\r
-      if (hwndConsole) {\r
-       SetWindowPos(hwndConsole, alwaysOnTop ? HWND_TOPMOST : HWND_NOTOPMOST,\r
-                    0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);\r
-      }\r
-#endif\r
-      if (!appData.highlightLastMove) {\r
-       ClearHighlights();\r
-       DrawPosition(FALSE, NULL);\r
-      }\r
-      /*\r
-       * for some reason the redraw seems smoother when we invalidate\r
-       * the board rect after the call to EndDialog()\r
-       */\r
-      EndDialog(hDlg, TRUE);\r
-\r
-      if (oldAutoLogo != appData.autoLogo) { // [HGM] logo: remove any logos when we switch autologo off\r
-       if(oldAutoLogo) first.programLogo = second.programLogo = NULL;\r
-       InitDrawingSizes(boardSize, 0);\r
-      } else if (oldShowButtonBar != appData.showButtonBar) {\r
-       InitDrawingSizes(boardSize, 0);\r
-      } else if ((oldShowCoords != appData.showCoords) ||\r
-                (oldBlindfold != appData.blindfold)) {\r
-       InvalidateRect(hwndMain, &boardRect, FALSE);\r
-      }\r
-\r
-      return TRUE;\r
-\r
-    case IDCANCEL:\r
-      EndDialog(hDlg, FALSE);\r
-      return TRUE;\r
-\r
-    }\r
-    break;\r
-  }\r
-  return FALSE;\r
-}\r
-\r
-VOID\r
-GeneralOptionsPopup(HWND hwnd)\r
-{\r
-  FARPROC lpProc;\r
-\r
-  lpProc = MakeProcInstance((FARPROC)GeneralOptionsDialog, hInst);\r
-  DialogBox(hInst, MAKEINTRESOURCE(DLG_GeneralOptions), hwnd,\r
-           (DLGPROC) lpProc);\r
-  FreeProcInstance(lpProc);\r
-}\r
-/*---------------------------------------------------------------------------*\\r
- *\r
- * Board Options Dialog functions\r
- *\r
-\*---------------------------------------------------------------------------*/\r
-\r
-const int SAMPLE_SQ_SIZE = 54;\r
-\r
-VOID\r
-ChangeBoardSize(BoardSize newSize)\r
-{\r
-  if (newSize != boardSize) {\r
-    boardSize = newSize;\r
-    InitDrawingSizes(boardSize, 0);\r
-  }\r
-}\r
-\r
-VOID\r
-PaintSampleSquare(\r
-    HWND     hwnd,\r
-    int      ctrlid,\r
-    COLORREF squareColor,\r
-    COLORREF pieceColor,\r
-    COLORREF squareOutlineColor,\r
-    COLORREF pieceDetailColor,\r
-    BOOL     isWhitePiece,\r
-    BOOL     isMono,\r
-    HBITMAP  pieces[3]\r
-    )\r
-{\r
-  HBRUSH  brushSquare;\r
-  HBRUSH  brushSquareOutline;\r
-  HBRUSH  brushPiece;\r
-  HBRUSH  brushPieceDetail;\r
-  HBRUSH  oldBrushPiece = NULL;\r
-  HBRUSH  oldBrushSquare;\r
-  HBITMAP oldBitmapMem;\r
-  HBITMAP oldBitmapTemp;\r
-  HBITMAP bufferBitmap;\r
-  RECT    rect;\r
-  HDC     hdcScreen, hdcMem, hdcTemp;\r
-  HPEN    pen, oldPen;\r
-  HWND    hCtrl = GetDlgItem(hwnd, ctrlid);\r
-  int     x, y;\r
-\r
-  const int SOLID   = 0;\r
-  const int WHITE   = 1;\r
-  const int OUTLINE = 2;\r
-  const int BORDER  = 4;\r
-\r
-  InvalidateRect(hCtrl, NULL, TRUE);\r
-  UpdateWindow(hCtrl);\r
-  GetClientRect(hCtrl, &rect);\r
-  x = rect.left + (BORDER / 2);\r
-  y = rect.top  + (BORDER / 2);\r
-  hdcScreen = GetDC(hCtrl);\r
-  hdcMem  = CreateCompatibleDC(hdcScreen);\r
-  hdcTemp = CreateCompatibleDC(hdcScreen);\r
-\r
-  bufferBitmap = CreateCompatibleBitmap(hdcScreen, rect.right-rect.left+1,\r
-                                       rect.bottom-rect.top+1);\r
-  oldBitmapMem = SelectObject(hdcMem, bufferBitmap);\r
-  if (!isMono) {\r
-    SelectPalette(hdcMem, hPal, FALSE);\r
-  }\r
-  brushSquare         = CreateSolidBrush(squareColor);\r
-  brushSquareOutline  = CreateSolidBrush(squareOutlineColor);\r
-  brushPiece          = CreateSolidBrush(pieceColor);\r
-  brushPieceDetail    = CreateSolidBrush(pieceDetailColor);\r
-\r
-  /*\r
-   * first draw the rectangle\r
-   */\r
-  pen      = CreatePen(PS_SOLID, BORDER, squareOutlineColor);\r
-  oldPen   = (HPEN)  SelectObject(hdcMem, pen);\r
-  oldBrushSquare = (HBRUSH)SelectObject(hdcMem, brushSquare);\r
-  Rectangle(hdcMem, rect.left, rect.top, rect.right, rect.bottom);\r
-\r
-  /*\r
-   * now draw the piece\r
-   */\r
-  if (isMono) {\r
-    oldBitmapTemp = SelectObject(hdcTemp, pieces[OUTLINE]);\r
-    BitBlt(hdcMem, x, y, SAMPLE_SQ_SIZE, SAMPLE_SQ_SIZE, hdcTemp, 0, 0,\r
-          isWhitePiece ? SRCCOPY : NOTSRCCOPY);\r
-    SelectObject(hdcTemp, oldBitmapTemp);\r
-  } else {\r
-    if (isWhitePiece) {\r
-      oldBitmapTemp = SelectObject(hdcTemp, pieces[WHITE]);\r
-      oldBrushPiece = SelectObject(hdcMem, brushPiece);\r
-      BitBlt(hdcMem, x, y, SAMPLE_SQ_SIZE, SAMPLE_SQ_SIZE,\r
-            hdcTemp, 0, 0, 0x00B8074A);\r
-      /* Use black for outline of white pieces */\r
-      SelectObject(hdcTemp, pieces[OUTLINE]);\r
-      BitBlt(hdcMem, x, y, SAMPLE_SQ_SIZE, SAMPLE_SQ_SIZE,\r
-            hdcTemp, 0, 0, SRCAND);\r
-    } else {\r
-      /* Use square color for details of black pieces */\r
-      oldBitmapTemp = SelectObject(hdcTemp, pieces[SOLID]);\r
-      oldBrushPiece = SelectObject(hdcMem, brushPiece);\r
-      BitBlt(hdcMem, x, y, SAMPLE_SQ_SIZE, SAMPLE_SQ_SIZE,\r
-            hdcTemp, 0, 0, 0x00B8074A);\r
-    }\r
-    SelectObject(hdcMem, oldBrushPiece);\r
-    SelectObject(hdcTemp, oldBitmapTemp);\r
-  }\r
-  /*\r
-   * copy the memory dc to the screen\r
-   */\r
-  SelectObject(hdcMem, bufferBitmap);\r
-  BitBlt(hdcScreen, rect.left, rect.top,\r
-        rect.right - rect.left,\r
-        rect.bottom - rect.top,\r
-        hdcMem, rect.left, rect.top, SRCCOPY);\r
-  SelectObject(hdcMem, oldBitmapMem);\r
-  /*\r
-   * clean up\r
-   */\r
-  SelectObject(hdcMem, oldBrushSquare);\r
-  SelectObject(hdcMem, oldPen);\r
-  DeleteObject(brushPiece);\r
-  DeleteObject(brushPieceDetail);\r
-  DeleteObject(brushSquare);\r
-  DeleteObject(brushSquareOutline);\r
-  DeleteObject(pen);\r
-  DeleteDC(hdcTemp);\r
-  DeleteDC(hdcMem);\r
-  ReleaseDC(hCtrl, hdcScreen);\r
-}\r
-\r
-\r
-VOID\r
-PaintColorBlock(HWND hwnd, int ctrlid, COLORREF color)\r
-{\r
-  HDC    hdc;\r
-  HBRUSH brush, oldBrush;\r
-  RECT   rect;\r
-  HWND   hCtrl = GetDlgItem(hwnd, ctrlid);\r
-\r
-  hdc = GetDC(hCtrl);\r
-  InvalidateRect(hCtrl, NULL, TRUE);\r
-  UpdateWindow(hCtrl);\r
-  GetClientRect(hCtrl, &rect);\r
-  brush = CreateSolidBrush(color);\r
-  oldBrush = (HBRUSH)SelectObject(hdc, brush);\r
-  Rectangle(hdc, rect.left, rect.top, rect.right, rect.bottom);\r
-  SelectObject(hdc, oldBrush);\r
-  DeleteObject(brush);\r
-  ReleaseDC(hCtrl, hdc);\r
-}\r
-\r
-\r
-VOID\r
-SetBoardOptionEnables(HWND hDlg)\r
-{\r
-  if (IsDlgButtonChecked(hDlg, OPT_Monochrome)) {\r
-    ShowWindow(GetDlgItem(hDlg, OPT_LightSquareColor), SW_HIDE);\r
-    ShowWindow(GetDlgItem(hDlg, OPT_DarkSquareColor), SW_HIDE);\r
-    ShowWindow(GetDlgItem(hDlg, OPT_WhitePieceColor), SW_HIDE);\r
-    ShowWindow(GetDlgItem(hDlg, OPT_BlackPieceColor), SW_HIDE);\r
-\r
-    EnableWindow(GetDlgItem(hDlg, OPT_ChooseLightSquareColor), FALSE);\r
-    EnableWindow(GetDlgItem(hDlg, OPT_ChooseDarkSquareColor), FALSE);\r
-    EnableWindow(GetDlgItem(hDlg, OPT_ChooseWhitePieceColor), FALSE);\r
-    EnableWindow(GetDlgItem(hDlg, OPT_ChooseBlackPieceColor), FALSE);\r
-  } else {\r
-    ShowWindow(GetDlgItem(hDlg, OPT_LightSquareColor), SW_SHOW);\r
-    ShowWindow(GetDlgItem(hDlg, OPT_DarkSquareColor), SW_SHOW);\r
-    ShowWindow(GetDlgItem(hDlg, OPT_WhitePieceColor), SW_SHOW);\r
-    ShowWindow(GetDlgItem(hDlg, OPT_BlackPieceColor), SW_SHOW);\r
-\r
-    EnableWindow(GetDlgItem(hDlg, OPT_ChooseLightSquareColor), TRUE);\r
-    EnableWindow(GetDlgItem(hDlg, OPT_ChooseDarkSquareColor), TRUE);\r
-    EnableWindow(GetDlgItem(hDlg, OPT_ChooseWhitePieceColor), TRUE);\r
-    EnableWindow(GetDlgItem(hDlg, OPT_ChooseBlackPieceColor), TRUE);\r
-  }\r
-}\r
-\r
-BoardSize\r
-BoardOptionsWhichRadio(HWND hDlg)\r
-{\r
-  return (IsDlgButtonChecked(hDlg, OPT_SizeTiny) ? SizeTiny :\r
-         (IsDlgButtonChecked(hDlg, OPT_SizeTeeny) ? SizeTeeny :\r
-         (IsDlgButtonChecked(hDlg, OPT_SizeDinky) ? SizeDinky :\r
-         (IsDlgButtonChecked(hDlg, OPT_SizePetite) ? SizePetite :\r
-         (IsDlgButtonChecked(hDlg, OPT_SizeSlim) ? SizeSlim :\r
-         (IsDlgButtonChecked(hDlg, OPT_SizeSmall) ? SizeSmall :\r
-         (IsDlgButtonChecked(hDlg, OPT_SizeMediocre) ? SizeMediocre :\r
-         (IsDlgButtonChecked(hDlg, OPT_SizeMiddling) ? SizeMiddling :\r
-         (IsDlgButtonChecked(hDlg, OPT_SizeAverage) ? SizeAverage :\r
-         (IsDlgButtonChecked(hDlg, OPT_SizeModerate) ? SizeModerate :\r
-         (IsDlgButtonChecked(hDlg, OPT_SizeMedium) ? SizeMedium :\r
-         (IsDlgButtonChecked(hDlg, OPT_SizeBulky) ? SizeBulky :\r
-         (IsDlgButtonChecked(hDlg, OPT_SizeLarge) ? SizeLarge :\r
-         (IsDlgButtonChecked(hDlg, OPT_SizeBig) ? SizeBig :\r
-         (IsDlgButtonChecked(hDlg, OPT_SizeHuge) ? SizeHuge :\r
-         (IsDlgButtonChecked(hDlg, OPT_SizeGiant) ? SizeGiant :\r
-         (IsDlgButtonChecked(hDlg, OPT_SizeColossal) ? SizeColossal :\r
-          SizeTitanic )))))))))))))))));\r
-}\r
-\r
-LRESULT CALLBACK\r
-BoardOptionsDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
-{\r
-  static Boolean  mono, white, flip, fonts, bitmaps, grid;\r
-  static BoardSize size;\r
-  static COLORREF lsc, dsc, wpc, bpc, hsc, phc;\r
-  static HBITMAP pieces[3];\r
-\r
-  switch (message) {\r
-  case WM_INITDIALOG: /* message: initialize dialog box */\r
-    /* Center the dialog over the application window */\r
-    CenterWindow (hDlg, GetWindow (hDlg, GW_OWNER));\r
-    Translate(hDlg, DLG_BoardOptions);\r
-    /* Initialize the dialog items */\r
-    switch (boardSize) {\r
-    case SizeTiny:\r
-      CheckDlgButton(hDlg, OPT_SizeTiny, TRUE);\r
-      break;\r
-    case SizeTeeny:\r
-      CheckDlgButton(hDlg, OPT_SizeTeeny, TRUE);\r
-      break;\r
-    case SizeDinky:\r
-      CheckDlgButton(hDlg, OPT_SizeDinky, TRUE);\r
-      break;\r
-    case SizePetite:\r
-      CheckDlgButton(hDlg, OPT_SizePetite, TRUE);\r
-      break;\r
-    case SizeSlim:\r
-      CheckDlgButton(hDlg, OPT_SizeSlim, TRUE);\r
-      break;\r
-    case SizeSmall:\r
-      CheckDlgButton(hDlg, OPT_SizeSmall, TRUE);\r
-      break;\r
-    case SizeMediocre:\r
-      CheckDlgButton(hDlg, OPT_SizeMediocre, TRUE);\r
-      break;\r
-    case SizeMiddling:\r
-      CheckDlgButton(hDlg, OPT_SizeMiddling, TRUE);\r
-      break;\r
-    case SizeAverage:\r
-      CheckDlgButton(hDlg, OPT_SizeAverage, TRUE);\r
-      break;\r
-    case SizeModerate:\r
-      CheckDlgButton(hDlg, OPT_SizeModerate, TRUE);\r
-      break;\r
-    case SizeMedium:\r
-      CheckDlgButton(hDlg, OPT_SizeMedium, TRUE);\r
-      break;\r
-    case SizeBulky:\r
-      CheckDlgButton(hDlg, OPT_SizeBulky, TRUE);\r
-      break;\r
-    case SizeLarge:\r
-      CheckDlgButton(hDlg, OPT_SizeLarge, TRUE);\r
-      break;\r
-    case SizeBig:\r
-      CheckDlgButton(hDlg, OPT_SizeBig, TRUE);\r
-      break;\r
-    case SizeHuge:\r
-      CheckDlgButton(hDlg, OPT_SizeHuge, TRUE);\r
-      break;\r
-    case SizeGiant:\r
-      CheckDlgButton(hDlg, OPT_SizeGiant, TRUE);\r
-      break;\r
-    case SizeColossal:\r
-      CheckDlgButton(hDlg, OPT_SizeColossal, TRUE);\r
-      break;\r
-    case SizeTitanic:\r
-      CheckDlgButton(hDlg, OPT_SizeTitanic, TRUE);\r
-    default: ; // should not happen, but suppresses warning on pedantic compilers\r
-    }\r
-\r
-    if (appData.monoMode)\r
-      CheckDlgButton(hDlg, OPT_Monochrome, TRUE);\r
-\r
-    if (appData.allWhite)\r
-      CheckDlgButton(hDlg, OPT_AllWhite, TRUE);\r
-\r
-    if (appData.upsideDown)\r
-      CheckDlgButton(hDlg, OPT_UpsideDown, TRUE);\r
-\r
-    if (appData.useBitmaps)\r
-      CheckDlgButton(hDlg, OPT_Bitmaps, TRUE);\r
-\r
-    if (appData.useFont)\r
-      CheckDlgButton(hDlg, OPT_PieceFont, TRUE);\r
-\r
-    if (appData.overrideLineGap >= 0)\r
-      CheckDlgButton(hDlg, OPT_Grid, TRUE);\r
-\r
-    pieces[0] = DoLoadBitmap(hInst, "n", SAMPLE_SQ_SIZE, "s");\r
-    pieces[1] = DoLoadBitmap(hInst, "n", SAMPLE_SQ_SIZE, "w");\r
-    pieces[2] = DoLoadBitmap(hInst, "n", SAMPLE_SQ_SIZE, "o");\r
-\r
-    lsc = lightSquareColor;\r
-    dsc = darkSquareColor;\r
-    fonts = appData.useFont;\r
-    wpc = fonts ? appData.fontBackColorWhite : whitePieceColor;\r
-    bpc = fonts ? appData.fontForeColorBlack : blackPieceColor;\r
-    hsc = highlightSquareColor;\r
-    phc = premoveHighlightColor;\r
-    mono = appData.monoMode;\r
-    white= appData.allWhite;\r
-    flip = appData.upsideDown;\r
-    size = boardSize;\r
-    bitmaps = appData.useBitmaps;\r
-    grid = appData.overrideLineGap >= 0;\r
-\r
-    SetBoardOptionEnables(hDlg);\r
-    return TRUE;\r
-\r
-  case WM_PAINT:\r
-    PaintColorBlock(hDlg, OPT_LightSquareColor, lsc);\r
-    PaintColorBlock(hDlg, OPT_DarkSquareColor,  dsc);\r
-    PaintColorBlock(hDlg, OPT_WhitePieceColor,  wpc);\r
-    PaintColorBlock(hDlg, OPT_BlackPieceColor,  bpc);\r
-    PaintColorBlock(hDlg, OPT_HighlightSquareColor, hsc);\r
-    PaintColorBlock(hDlg, OPT_PremoveHighlightColor, phc);\r
-    PaintSampleSquare(hDlg, OPT_SampleLightSquare, lsc, wpc, hsc, bpc,\r
-       TRUE, mono, pieces);\r
-    PaintSampleSquare(hDlg, OPT_SampleDarkSquare, dsc, bpc, phc, wpc,\r
-       FALSE, mono, pieces);\r
-\r
-    return FALSE;\r
-\r
-  case WM_COMMAND: /* message: received a command */\r
-    switch (LOWORD(wParam)) {\r
-    case IDOK:\r
-      /*\r
-       * if we call EndDialog() after the call to ChangeBoardSize(),\r
-       * then ChangeBoardSize() does not take effect, although the new\r
-       * boardSize is saved. Go figure...\r
-       */\r
-      EndDialog(hDlg, TRUE);\r
-\r
-      size = BoardOptionsWhichRadio(hDlg);\r
-\r
-      /*\r
-       * did any settings change?\r
-       */\r
-      if (size != boardSize) {\r
-       ChangeBoardSize(size);\r
-      }\r
-\r
-      if (bitmaps && !appData.useBitmaps) InitTextures();\r
-\r
-      if ((mono != appData.monoMode) ||\r
-         (lsc  != lightSquareColor) ||\r
-         (dsc  != darkSquareColor) ||\r
-         (wpc  != fonts ? appData.fontBackColorWhite : whitePieceColor) ||\r
-         (bpc  != fonts ? appData.fontForeColorBlack : blackPieceColor) ||\r
-         (hsc  != highlightSquareColor) ||\r
-          (flip != appData.upsideDown) ||\r
-          (white != appData.allWhite) ||\r
-          (fonts != appData.useFont) ||\r
-          (bitmaps != appData.useBitmaps) ||\r
-          (grid != appData.overrideLineGap >= 0) ||\r
-         (phc  != premoveHighlightColor)) {\r
-\r
-         lightSquareColor = lsc;\r
-         darkSquareColor = dsc;\r
-         if(fonts) {\r
-           appData.fontBackColorWhite = wpc;\r
-           appData.fontForeColorBlack = bpc;\r
-         } else {\r
-           whitePieceColor = wpc;\r
-           blackPieceColor = bpc;\r
-         }\r
-         highlightSquareColor = hsc;\r
-         premoveHighlightColor = phc;\r
-         appData.monoMode = mono;\r
-          appData.allWhite = white;\r
-          appData.upsideDown = flip;\r
-          appData.useFont = fonts;\r
-          appData.useBitmaps = bitmaps;\r
-          if(grid != appData.overrideLineGap >= 0) appData.overrideLineGap = grid - 1;\r
-\r
-         InitDrawingColors();\r
-         InitDrawingSizes(boardSize, 0);\r
-         InvalidateRect(hwndMain, &boardRect, FALSE);\r
-      }\r
-      DeleteObject(pieces[0]);\r
-      DeleteObject(pieces[1]);\r
-\r
-      DeleteObject(pieces[2]);\r
-      return TRUE;\r
-\r
-    case IDCANCEL:\r
-      DeleteObject(pieces[0]);\r
-      DeleteObject(pieces[1]);\r
-      DeleteObject(pieces[2]);\r
-      EndDialog(hDlg, FALSE);\r
-      return TRUE;\r
-\r
-    case OPT_ChooseLightSquareColor:\r
-      if (ChangeColor(hDlg, &lsc))\r
-       PaintColorBlock(hDlg, OPT_LightSquareColor, lsc);\r
-       PaintSampleSquare(hDlg, OPT_SampleLightSquare, lsc, wpc, hsc, bpc,\r
-           TRUE, mono, pieces);\r
-      break;\r
-\r
-    case OPT_ChooseDarkSquareColor:\r
-      if (ChangeColor(hDlg, &dsc))\r
-       PaintColorBlock(hDlg, OPT_DarkSquareColor, dsc);\r
-       PaintSampleSquare(hDlg, OPT_SampleDarkSquare, dsc, bpc, phc, wpc,\r
-           FALSE, mono, pieces);\r
-      break;\r
-\r
-    case OPT_ChooseWhitePieceColor:\r
-      if (ChangeColor(hDlg, &wpc))\r
-       PaintColorBlock(hDlg, OPT_WhitePieceColor, wpc);\r
-       PaintSampleSquare(hDlg, OPT_SampleLightSquare, lsc, wpc, hsc, bpc,\r
-           TRUE, mono, pieces);\r
-      break;\r
-\r
-    case OPT_ChooseBlackPieceColor:\r
-      if (ChangeColor(hDlg, &bpc))\r
-       PaintColorBlock(hDlg, OPT_BlackPieceColor, bpc);\r
-       PaintSampleSquare(hDlg, OPT_SampleDarkSquare, dsc, bpc, phc, wpc,\r
-           FALSE, mono, pieces);\r
-      break;\r
-\r
-    case OPT_ChooseHighlightSquareColor:\r
-      if (ChangeColor(hDlg, &hsc))\r
-       PaintColorBlock(hDlg, OPT_HighlightSquareColor, hsc);\r
-       PaintSampleSquare(hDlg, OPT_SampleLightSquare, lsc, wpc, hsc, bpc,\r
-           TRUE, mono, pieces);\r
-      break;\r
-\r
-    case OPT_ChoosePremoveHighlightColor:\r
-      if (ChangeColor(hDlg, &phc))\r
-       PaintColorBlock(hDlg, OPT_PremoveHighlightColor, phc);\r
-       PaintSampleSquare(hDlg, OPT_SampleDarkSquare, dsc, bpc, phc, wpc,\r
-           FALSE, mono, pieces);\r
-      break;\r
-\r
-    case OPT_DefaultBoardColors:\r
-      lsc = ParseColorName(LIGHT_SQUARE_COLOR);\r
-      dsc = ParseColorName(DARK_SQUARE_COLOR);\r
-      wpc = ParseColorName(WHITE_PIECE_COLOR);\r
-      bpc = ParseColorName(BLACK_PIECE_COLOR);\r
-      hsc = ParseColorName(HIGHLIGHT_SQUARE_COLOR);\r
-      phc = ParseColorName(PREMOVE_HIGHLIGHT_COLOR);\r
-      mono = FALSE;\r
-      white= FALSE;\r
-      flip = FALSE;\r
-      CheckDlgButton(hDlg, OPT_Monochrome, FALSE);\r
-      CheckDlgButton(hDlg, OPT_AllWhite,   FALSE);\r
-      CheckDlgButton(hDlg, OPT_UpsideDown, FALSE);\r
-      PaintColorBlock(hDlg, OPT_LightSquareColor, lsc);\r
-      PaintColorBlock(hDlg, OPT_DarkSquareColor,  dsc);\r
-      PaintColorBlock(hDlg, OPT_WhitePieceColor,  wpc);\r
-      PaintColorBlock(hDlg, OPT_BlackPieceColor,  bpc);\r
-      PaintColorBlock(hDlg, OPT_HighlightSquareColor, hsc);\r
-      PaintColorBlock(hDlg, OPT_PremoveHighlightColor, phc);\r
-      SetBoardOptionEnables(hDlg);\r
-      PaintSampleSquare(hDlg, OPT_SampleLightSquare, lsc, wpc, hsc, bpc,\r
-         TRUE, mono, pieces);\r
-      PaintSampleSquare(hDlg, OPT_SampleDarkSquare, dsc, bpc, phc, wpc,\r
-         FALSE, mono, pieces);\r
-      break;\r
-\r
-    case OPT_Monochrome:\r
-      mono = !mono;\r
-      SetBoardOptionEnables(hDlg);\r
-      break;\r
-\r
-    case OPT_AllWhite:\r
-      white = !white;\r
-      break;\r
-\r
-    case OPT_UpsideDown:\r
-      flip = !flip;\r
-      break;\r
-\r
-    case OPT_Bitmaps:\r
-      bitmaps = !bitmaps;\r
-      break;\r
-\r
-    case OPT_PieceFont:\r
-      fonts = !fonts;\r
-      break;\r
-\r
-    case OPT_Grid:\r
-      grid = !grid;\r
-      break;\r
-    }\r
-    break;\r
-  }\r
-  return FALSE;\r
-}\r
-\r
-\r
-VOID\r
-BoardOptionsPopup(HWND hwnd)\r
-{\r
-  FARPROC lpProc = MakeProcInstance((FARPROC)BoardOptionsDialog, hInst);\r
-  DialogBox(hInst, MAKEINTRESOURCE(DLG_BoardOptions), hwnd,\r
-         (DLGPROC) lpProc);\r
-  FreeProcInstance(lpProc);\r
-}\r
-\r
-int radioButton[] = {\r
-    OPT_VariantNormal,\r
-    -1, // Loadable\r
-    OPT_VariantWildcastle,\r
-    OPT_VariantNocastle,\r
-    OPT_VariantFRC,\r
-    OPT_VariantBughouse,\r
-    OPT_VariantCrazyhouse,\r
-    OPT_VariantLosers,\r
-    OPT_VariantSuicide,\r
-    OPT_VariantGiveaway,\r
-    OPT_VariantTwoKings,\r
-    -1, //Kriegspiel\r
-    OPT_VariantAtomic,\r
-    OPT_Variant3Check,\r
-    OPT_VariantShatranj,\r
-    -1,\r
-    -1,\r
-    -1,\r
-    -1,\r
-    -1,\r
-    -1,\r
-    -1,\r
-    -1,\r
-    OPT_VariantShogi,\r
-    -1, // Chu\r
-    OPT_VariantCourier,\r
-    OPT_VariantGothic,\r
-    OPT_VariantCapablanca,\r
-    OPT_VariantKnightmate,\r
-    OPT_VariantFairy,        \r
-    OPT_VariantCylinder,\r
-    OPT_VariantFalcon,\r
-    OPT_VariantCRC,\r
-    OPT_VariantBerolina,\r
-    OPT_VariantJanus,\r
-    OPT_VariantSuper,\r
-    OPT_VariantGreat,\r
-    -1, // Twilight,\r
-    OPT_VariantMakruk,\r
-    OPT_VariantSChess,\r
-    OPT_VariantGrand,\r
-    OPT_VariantSpartan, // Spartan\r
-    OPT_VariantXiangqi,\r
-    OPT_VariantASEAN,\r
-    OPT_VariantLion,\r
-    -2 // sentinel\r
-};\r
-\r
-VariantClass\r
-VariantWhichRadio(HWND hDlg)\r
-{\r
-  int i=0, j;\r
-  *engineVariant = NULLCHAR;\r
-  while((j = radioButton[i++]) != -2) {\r
-       if(j == -1) continue; // no menu button\r
-       if(IsDlgButtonChecked(hDlg, j) &&\r
-          (appData.noChessProgram || strstr(first.variants, VariantName(i-1)))) return (VariantClass) i-1;\r
-  }\r
-  for(i=0; i<15; i++) { // check for engine-defined variants\r
-    if(IsDlgButtonChecked(hDlg, OPT_EngineVariant+i) ) {\r
-       GetDlgItemText(hDlg, OPT_EngineVariant+i, engineVariant, MSG_SIZ); // remember name, so we can resolve it later\r
-       return VariantUnknown;\r
-    }\r
-  }\r
-  return gameInfo.variant; // If no button checked, keep old\r
-}\r
-\r
-void\r
-VariantShowRadio(HWND hDlg)\r
-{\r
-  char c = *engineVariant, *v, *p;\r
-  int i=0, j;\r
-  CheckDlgButton(hDlg, radioButton[gameInfo.variant], TRUE);\r
-  *engineVariant = NULLCHAR; // [HGM] kludge to prevent VariantName will always return engineVariant\r
-  while((j = radioButton[i++]) != -2) {\r
-       if(j == -1) continue; // no menu button\r
-       v = VariantName(i-1); p = strstr(first.variants, v);\r
-       EnableWindow(GetDlgItem(hDlg, j), appData.noChessProgram || p && (!*v || strlen(v) == strlen(p) || p[strlen(v)] == ','));\r
-  }\r
-  *engineVariant = c;\r
-  for(i=0; i<15; i++) { // initialize engine-defined variants\r
-    char *v = EngineDefinedVariant(&first, i); // get name of #i\r
-    if(v) { // there is such a variant\r
-       EnableWindow(GetDlgItem(hDlg, OPT_EngineVariant+i), TRUE);     // and enable the button\r
-       SetDlgItemText(hDlg, OPT_EngineVariant+i, v);                  // put its name on button\r
-    } else EnableWindow(GetDlgItem(hDlg, OPT_EngineVariant+i), FALSE); // no such variant; disable button\r
-  }\r
-}\r
-\r
-LRESULT CALLBACK\r
-NewVariantDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
-{\r
-  static VariantClass v;\r
-  static int n1_ok, n2_ok, n3_ok;\r
-\r
-  switch (message) {\r
-  case WM_INITDIALOG: /* message: initialize dialog box */\r
-    /* Center the dialog over the application window */\r
-    CenterWindow (hDlg, GetWindow (hDlg, GW_OWNER));\r
-    Translate(hDlg, DLG_NewVariant);\r
-\r
-    /* Initialize the dialog items */\r
-    VariantShowRadio(hDlg);\r
-\r
-    SetDlgItemInt( hDlg, IDC_Files, -1, TRUE );\r
-    SendDlgItemMessage( hDlg, IDC_Files, EM_SETSEL, 0, -1 );\r
-\r
-    SetDlgItemInt( hDlg, IDC_Ranks, -1, TRUE );\r
-    SendDlgItemMessage( hDlg, IDC_Ranks, EM_SETSEL, 0, -1 );\r
-\r
-    SetDlgItemInt( hDlg, IDC_Holdings, -1, TRUE );\r
-    SendDlgItemMessage( hDlg, IDC_Ranks, EM_SETSEL, 0, -1 );\r
-\r
-    n1_ok = n2_ok = n3_ok = FALSE;\r
-\r
-    return TRUE;\r
-\r
-  case WM_COMMAND: /* message: received a command */\r
-    switch (LOWORD(wParam)) {\r
-    case IDOK:\r
-      /*\r
-       * if we call EndDialog() after the call to ChangeBoardSize(),\r
-       * then ChangeBoardSize() does not take effect, although the new\r
-       * boardSize is saved. Go figure...\r
-       */\r
-      EndDialog(hDlg, TRUE);\r
-\r
-      v = VariantWhichRadio(hDlg);\r
-      if(!appData.noChessProgram) {\r
-       char *name = VariantName(v), buf[MSG_SIZ];\r
-       if (first.protocolVersion > 1 && StrStr(first.variants, name) == NULL) {\r
-         /* [HGM] in protocol 2 we check if variant is suported by engine */\r
-         snprintf(buf, MSG_SIZ, _("Variant %s not supported by %s"), name, first.tidy);\r
-         DisplayError(buf, 0);\r
-         return TRUE; /* treat as _("Cancel") if first engine does not support it */\r
-       } else\r
-       if (second.initDone && second.protocolVersion > 1 && StrStr(second.variants, name) == NULL) {\r
-         snprintf(buf, MSG_SIZ, _("Warning: second engine (%s) does not support this!"), second.tidy);\r
-         DisplayError(buf, 0);   /* use of second engine is optional; only warn user */\r
-       }\r
-      }\r
-\r
-      gameInfo.variant = v;\r
-      ASSIGN(appData.variant, VariantName(v));\r
-\r
-      appData.NrFiles = (int) GetDlgItemInt(hDlg, IDC_Files, NULL, FALSE );\r
-      appData.NrRanks = (int) GetDlgItemInt(hDlg, IDC_Ranks, NULL, FALSE );\r
-      appData.holdingsSize = (int) GetDlgItemInt(hDlg, IDC_Holdings, NULL, FALSE );\r
-\r
-      if(!n1_ok) appData.NrFiles = -1;\r
-      if(!n2_ok) appData.NrRanks = -1;\r
-      if(!n3_ok) appData.holdingsSize = -1;\r
-\r
-      shuffleOpenings = FALSE; /* [HGM] shuffle: possible shuffle reset when we switch */\r
-      startedFromPositionFile = FALSE; /* [HGM] loadPos: no longer valid in new variant */\r
-      appData.pieceToCharTable = NULL;\r
-      ASSIGN(appData.pieceNickNames, "");\r
-      ASSIGN(appData.colorNickNames, "");\r
-      ASSIGN(appData.men, "");\r
-      Reset(TRUE, TRUE);\r
-\r
-      return TRUE;\r
-\r
-    case IDCANCEL:\r
-      EndDialog(hDlg, FALSE);\r
-      return TRUE;\r
-\r
-    case IDC_Ranks:\r
-    case IDC_Files:\r
-    case IDC_Holdings:\r
-        if( HIWORD(wParam) == EN_CHANGE ) {\r
-\r
-            GetDlgItemInt(hDlg, IDC_Files, &n1_ok, FALSE );\r
-            GetDlgItemInt(hDlg, IDC_Ranks, &n2_ok, FALSE );\r
-            GetDlgItemInt(hDlg, IDC_Holdings, &n3_ok, FALSE );\r
-\r
-            /*EnableWindow( GetDlgItem(hDlg, IDOK), n1_ok && n2_ok && n3_ok ? TRUE : FALSE );*/\r
-        }\r
-        return TRUE;\r
-    }\r
-    break;\r
-  }\r
-  return FALSE;\r
-}\r
-\r
-\r
-VOID\r
-NewVariantPopup(HWND hwnd)\r
-{\r
-  FARPROC lpProc = MakeProcInstance((FARPROC)NewVariantDialog, hInst);\r
-  DialogBox(hInst, MAKEINTRESOURCE(DLG_NewVariant), hwnd,\r
-         (DLGPROC) lpProc);\r
-  FreeProcInstance(lpProc);\r
-}\r
-\r
-/*---------------------------------------------------------------------------*\\r
- *\r
- * ICS Options Dialog functions\r
- *\r
-\*---------------------------------------------------------------------------*/\r
-\r
-BOOL APIENTRY\r
-MyCreateFont(HWND hwnd, MyFont *font)\r
-{\r
-  CHOOSEFONT cf;\r
-  HFONT hf;\r
-\r
-  /* Initialize members of the CHOOSEFONT structure. */\r
-  cf.lStructSize = sizeof(CHOOSEFONT);\r
-  cf.hwndOwner = hwnd;\r
-  cf.hDC = (HDC)NULL;\r
-  cf.lpLogFont = &font->lf;\r
-  cf.iPointSize = 0;\r
-  cf.Flags = CF_SCREENFONTS|/*CF_ANSIONLY|*/CF_INITTOLOGFONTSTRUCT;\r
-  cf.rgbColors = RGB(0,0,0);\r
-  cf.lCustData = 0L;\r
-  cf.lpfnHook = (LPCFHOOKPROC)NULL;\r
-  cf.lpTemplateName = (LPSTR)NULL;\r
-  cf.hInstance = (HINSTANCE) NULL;\r
-  cf.lpszStyle = (LPSTR)NULL;\r
-  cf.nFontType = SCREEN_FONTTYPE;\r
-  cf.nSizeMin = 0;\r
-  cf.nSizeMax = 0;\r
-\r
-  /* Display the CHOOSEFONT common-dialog box. */\r
-  if (!ChooseFont(&cf)) {\r
-    return FALSE;\r
-  }\r
-\r
-  /* Create a logical font based on the user's   */\r
-  /* selection and return a handle identifying   */\r
-  /* that font. */\r
-  hf = CreateFontIndirect(cf.lpLogFont);\r
-  if (hf == NULL) {\r
-    return FALSE;\r
-  }\r
-\r
-  font->hf = hf;\r
-  font->mfp.pointSize = (float) (cf.iPointSize / 10.0);\r
-  font->mfp.bold = (font->lf.lfWeight >= FW_BOLD);\r
-  font->mfp.italic = font->lf.lfItalic;\r
-  font->mfp.underline = font->lf.lfUnderline;\r
-  font->mfp.strikeout = font->lf.lfStrikeOut;\r
-  font->mfp.charset = font->lf.lfCharSet;\r
-  safeStrCpy(font->mfp.faceName, font->lf.lfFaceName, sizeof(font->mfp.faceName)/sizeof(font->mfp.faceName[0]) );\r
-  return TRUE;\r
-}\r
-\r
-\r
-VOID\r
-UpdateSampleText(HWND hDlg, int id, MyColorizeAttribs *mca)\r
-{\r
-  CHARFORMAT cf;\r
-  cf.cbSize = sizeof(CHARFORMAT);\r
-  cf.dwMask =\r
-    CFM_COLOR|CFM_CHARSET|CFM_BOLD|CFM_ITALIC|CFM_UNDERLINE|CFM_STRIKEOUT|CFM_FACE|CFM_SIZE;\r
-  cf.crTextColor = mca->color;\r
-  cf.dwEffects = mca->effects;\r
-  safeStrCpy(cf.szFaceName, font[boardSize][CONSOLE_FONT]->mfp.faceName, sizeof(cf.szFaceName)/sizeof(cf.szFaceName[0]) );\r
-  /*\r
-   * The 20.0 below is in fact documented. yHeight is expressed in twips.\r
-   * A twip is 1/20 of a font's point size. See documentation of CHARFORMAT.\r
-   * --msw\r
-   */\r
-  cf.yHeight = (int)(font[boardSize][CONSOLE_FONT]->mfp.pointSize * 20.0 + 0.5);\r
-  cf.bCharSet = DEFAULT_CHARSET; /* should be ignored anyway */\r
-  cf.bPitchAndFamily = DEFAULT_PITCH|FF_DONTCARE;\r
-  SendDlgItemMessage(hDlg, id, EM_SETCHARFORMAT, SCF_ALL, (LPARAM)&cf);\r
-}\r
-\r
-LRESULT CALLBACK\r
-ColorizeTextDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
-{\r
-  static MyColorizeAttribs mca;\r
-  static ColorClass cc;\r
-  COLORREF background = (COLORREF)0;\r
-\r
-  switch (message) {\r
-  case WM_INITDIALOG:\r
-    cc = (ColorClass)lParam;\r
-    mca = colorizeAttribs[cc];\r
-    /* Center the dialog over the application window */\r
-    CenterWindow (hDlg, GetWindow (hDlg, GW_OWNER));\r
-    Translate(hDlg, DLG_Colorize);\r
-    /* Initialize the dialog items */\r
-    CheckDlgButton(hDlg, OPT_Bold, (mca.effects & CFE_BOLD) != 0);\r
-    CheckDlgButton(hDlg, OPT_Italic, (mca.effects & CFE_ITALIC) != 0);\r
-    CheckDlgButton(hDlg, OPT_Underline, (mca.effects & CFE_UNDERLINE) != 0);\r
-    CheckDlgButton(hDlg, OPT_Strikeout, (mca.effects & CFE_STRIKEOUT) != 0);\r
-\r
-    /* get the current background color from the parent window */\r
-    SendMessage(GetWindow(hDlg, GW_OWNER),WM_COMMAND,\r
-               (WPARAM)WM_USER_GetConsoleBackground,\r
-               (LPARAM)&background);\r
-\r
-    /* set the background color */\r
-    SendDlgItemMessage(hDlg, OPT_Sample, EM_SETBKGNDCOLOR, FALSE, background);\r
-\r
-    SetDlgItemText(hDlg, OPT_Sample, T_(mca.name));\r
-    UpdateSampleText(hDlg, OPT_Sample, &mca);\r
-    return TRUE;\r
-\r
-  case WM_COMMAND: /* message: received a command */\r
-    switch (LOWORD(wParam)) {\r
-    case IDOK:\r
-      /* Read changed options from the dialog box */\r
-      colorizeAttribs[cc] = mca;\r
-      textAttribs[cc].color = mca.color;\r
-      textAttribs[cc].effects = mca.effects;\r
-      Colorize(currentColorClass, TRUE);\r
-      if (cc == ColorNormal) {\r
-       CHARFORMAT cf;\r
-       cf.cbSize = sizeof(CHARFORMAT);\r
-       cf.dwMask = CFM_COLOR;\r
-       cf.crTextColor = mca.color;\r
-       SendDlgItemMessage(hwndConsole, OPT_ConsoleInput,\r
-         EM_SETCHARFORMAT, SCF_ALL, (LPARAM)&cf);\r
-      }\r
-      EndDialog(hDlg, TRUE);\r
-      return TRUE;\r
-\r
-    case IDCANCEL:\r
-      EndDialog(hDlg, FALSE);\r
-      return TRUE;\r
-\r
-    case OPT_ChooseColor:\r
-      ChangeColor(hDlg, &mca.color);\r
-      UpdateSampleText(hDlg, OPT_Sample, &mca);\r
-      return TRUE;\r
-\r
-    default:\r
-      mca.effects =\r
-       (IsDlgButtonChecked(hDlg, OPT_Bold) ? CFE_BOLD : 0) |\r
-       (IsDlgButtonChecked(hDlg, OPT_Italic) ? CFE_ITALIC : 0) |\r
-       (IsDlgButtonChecked(hDlg, OPT_Underline) ? CFE_UNDERLINE : 0) |\r
-       (IsDlgButtonChecked(hDlg, OPT_Strikeout) ? CFE_STRIKEOUT : 0);\r
-      UpdateSampleText(hDlg, OPT_Sample, &mca);\r
-      break;\r
-    }\r
-    break;\r
-  }\r
-  return FALSE;\r
-}\r
-\r
-VOID\r
-ColorizeTextPopup(HWND hwnd, ColorClass cc)\r
-{\r
-  FARPROC lpProc;\r
-\r
-  lpProc = MakeProcInstance((FARPROC)ColorizeTextDialog, hInst);\r
-  DialogBoxParam(hInst, MAKEINTRESOURCE(DLG_Colorize),\r
-    hwnd, (DLGPROC)lpProc, (LPARAM) cc);\r
-  FreeProcInstance(lpProc);\r
-}\r
-\r
-VOID\r
-SetIcsOptionEnables(HWND hDlg)\r
-{\r
-#define ENABLE_DLG_ITEM(x,y) EnableWindow(GetDlgItem(hDlg,(x)), (y))\r
-\r
-  UINT state = IsDlgButtonChecked(hDlg, OPT_Premove);\r
-  ENABLE_DLG_ITEM(OPT_PremoveWhite, state);\r
-  ENABLE_DLG_ITEM(OPT_PremoveWhiteText, state);\r
-  ENABLE_DLG_ITEM(OPT_PremoveBlack, state);\r
-  ENABLE_DLG_ITEM(OPT_PremoveBlackText, state);\r
-\r
-  ENABLE_DLG_ITEM(OPT_IcsAlarmTime, IsDlgButtonChecked(hDlg, OPT_IcsAlarm));\r
-\r
-#undef ENABLE_DLG_ITEM\r
-}\r
-\r
-\r
-LRESULT CALLBACK\r
-IcsOptionsDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
-{\r
-  char buf[MSG_SIZ];\r
-  int number;\r
-  int i;\r
-  static COLORREF cbc;\r
-  static MyColorizeAttribs *mca;\r
-  COLORREF *colorref;\r
-\r
-  switch (message) {\r
-  case WM_INITDIALOG: /* message: initialize dialog box */\r
-\r
-    mca = colorizeAttribs;\r
-\r
-    for (i=0; i < NColorClasses - 1; i++) {\r
-      mca[i].color   = textAttribs[i].color;\r
-      mca[i].effects = textAttribs[i].effects;\r
-    }\r
-    cbc = consoleBackgroundColor;\r
-\r
-    /* Center the dialog over the application window */\r
-    CenterWindow (hDlg, GetWindow (hDlg, GW_OWNER));\r
-    Translate(hDlg, DLG_IcsOptions);\r
-\r
-    /* Initialize the dialog items */\r
-#define CHECK_BOX(x,y) CheckDlgButton(hDlg, (x), (BOOL)(y))\r
-\r
-    CHECK_BOX(OPT_AutoKibitz, appData.autoKibitz);\r
-    CHECK_BOX(OPT_AutoComment, appData.autoComment);\r
-    CHECK_BOX(OPT_AutoObserve, appData.autoObserve);\r
-    CHECK_BOX(OPT_AutoCreate, appData.autoCreateLogon);\r
-    CHECK_BOX(OPT_GetMoveList, appData.getMoveList);\r
-    CHECK_BOX(OPT_LocalLineEditing, appData.localLineEditing);\r
-    CHECK_BOX(OPT_QuietPlay, appData.quietPlay);\r
-    CHECK_BOX(OPT_SeekGraph, appData.seekGraph);\r
-    CHECK_BOX(OPT_AutoRefresh, appData.autoRefresh);\r
-    CHECK_BOX(OPT_BgObserve, appData.bgObserve);\r
-    CHECK_BOX(OPT_DualBoard, appData.dualBoard);\r
-    CHECK_BOX(OPT_SmartMove, appData.oneClick);\r
-    CHECK_BOX(OPT_Premove, appData.premove);\r
-    CHECK_BOX(OPT_PremoveWhite, appData.premoveWhite);\r
-    CHECK_BOX(OPT_PremoveBlack, appData.premoveBlack);\r
-    CHECK_BOX(OPT_IcsAlarm, appData.icsAlarm);\r
-    CHECK_BOX(OPT_DontColorize, !appData.colorize);\r
-\r
-#undef CHECK_BOX\r
-\r
-    snprintf(buf, MSG_SIZ, "%d", appData.icsAlarmTime / 1000);\r
-    SetDlgItemText(hDlg, OPT_IcsAlarmTime, buf);\r
-    SetDlgItemText(hDlg, OPT_PremoveWhiteText, appData.premoveWhiteText);\r
-    SetDlgItemText(hDlg, OPT_PremoveBlackText, appData.premoveBlackText);\r
-    SetDlgItemText(hDlg, OPT_StartupChatBoxes, appData.chatBoxes);\r
-\r
-    SendDlgItemMessage(hDlg, OPT_SampleShout,     EM_SETBKGNDCOLOR, 0, cbc);\r
-    SendDlgItemMessage(hDlg, OPT_SampleSShout,    EM_SETBKGNDCOLOR, 0, cbc);\r
-    SendDlgItemMessage(hDlg, OPT_SampleChannel1,  EM_SETBKGNDCOLOR, 0, cbc);\r
-    SendDlgItemMessage(hDlg, OPT_SampleChannel,   EM_SETBKGNDCOLOR, 0, cbc);\r
-    SendDlgItemMessage(hDlg, OPT_SampleKibitz,    EM_SETBKGNDCOLOR, 0, cbc);\r
-    SendDlgItemMessage(hDlg, OPT_SampleTell,      EM_SETBKGNDCOLOR, 0, cbc);\r
-    SendDlgItemMessage(hDlg, OPT_SampleChallenge, EM_SETBKGNDCOLOR, 0, cbc);\r
-    SendDlgItemMessage(hDlg, OPT_SampleRequest,   EM_SETBKGNDCOLOR, 0, cbc);\r
-    SendDlgItemMessage(hDlg, OPT_SampleSeek,      EM_SETBKGNDCOLOR, 0, cbc);\r
-    SendDlgItemMessage(hDlg, OPT_SampleNormal,    EM_SETBKGNDCOLOR, 0, cbc);\r
-\r
-    SetDlgItemText(hDlg, OPT_SampleShout,     T_(mca[ColorShout].name));\r
-    SetDlgItemText(hDlg, OPT_SampleSShout,    T_(mca[ColorSShout].name));\r
-    SetDlgItemText(hDlg, OPT_SampleChannel1,  T_(mca[ColorChannel1].name));\r
-    SetDlgItemText(hDlg, OPT_SampleChannel,   T_(mca[ColorChannel].name));\r
-    SetDlgItemText(hDlg, OPT_SampleKibitz,    T_(mca[ColorKibitz].name));\r
-    SetDlgItemText(hDlg, OPT_SampleTell,      T_(mca[ColorTell].name));\r
-    SetDlgItemText(hDlg, OPT_SampleChallenge, T_(mca[ColorChallenge].name));\r
-    SetDlgItemText(hDlg, OPT_SampleRequest,   T_(mca[ColorRequest].name));\r
-    SetDlgItemText(hDlg, OPT_SampleSeek,      T_(mca[ColorSeek].name));\r
-    SetDlgItemText(hDlg, OPT_SampleNormal,    T_(mca[ColorNormal].name));\r
-\r
-    UpdateSampleText(hDlg, OPT_SampleShout,     &mca[ColorShout]);\r
-    UpdateSampleText(hDlg, OPT_SampleSShout,    &mca[ColorSShout]);\r
-    UpdateSampleText(hDlg, OPT_SampleChannel1,  &mca[ColorChannel1]);\r
-    UpdateSampleText(hDlg, OPT_SampleChannel,   &mca[ColorChannel]);\r
-    UpdateSampleText(hDlg, OPT_SampleKibitz,    &mca[ColorKibitz]);\r
-    UpdateSampleText(hDlg, OPT_SampleTell,      &mca[ColorTell]);\r
-    UpdateSampleText(hDlg, OPT_SampleChallenge, &mca[ColorChallenge]);\r
-    UpdateSampleText(hDlg, OPT_SampleRequest,   &mca[ColorRequest]);\r
-    UpdateSampleText(hDlg, OPT_SampleSeek,      &mca[ColorSeek]);\r
-    UpdateSampleText(hDlg, OPT_SampleNormal,    &mca[ColorNormal]);\r
-\r
-    SetIcsOptionEnables(hDlg);\r
-    return TRUE;\r
-\r
-  case WM_COMMAND: /* message: received a command */\r
-    switch (LOWORD(wParam)) {\r
-\r
-    case WM_USER_GetConsoleBackground:\r
-      /* the ColorizeTextDialog needs the current background color */\r
-      colorref = (COLORREF *)lParam;\r
-      *colorref = cbc;\r
-      return FALSE;\r
-\r
-    case IDOK:\r
-      /* Read changed options from the dialog box */\r
-      GetDlgItemText(hDlg, OPT_IcsAlarmTime, buf, MSG_SIZ);\r
-      if (sscanf(buf, "%d", &number) != 1 || (number < 0)){\r
-         MessageBox(hDlg, _("Invalid ICS Alarm Time"),\r
-                    _("Option Error"), MB_OK|MB_ICONEXCLAMATION);\r
-         return FALSE;\r
-      }\r
-\r
-#define IS_CHECKED(x) (Boolean)IsDlgButtonChecked(hDlg, (x))\r
-\r
-      appData.icsAlarm         = IS_CHECKED(OPT_IcsAlarm);\r
-      appData.premove          = IS_CHECKED(OPT_Premove);\r
-      appData.premoveWhite     = IS_CHECKED(OPT_PremoveWhite);\r
-      appData.premoveBlack     = IS_CHECKED(OPT_PremoveBlack);\r
-      appData.autoKibitz       = IS_CHECKED(OPT_AutoKibitz);\r
-      appData.autoComment      = IS_CHECKED(OPT_AutoComment);\r
-      appData.autoObserve      = IS_CHECKED(OPT_AutoObserve);\r
-      appData.autoCreateLogon  = IS_CHECKED(OPT_AutoCreate);\r
-      appData.getMoveList      = IS_CHECKED(OPT_GetMoveList);\r
-      appData.localLineEditing = IS_CHECKED(OPT_LocalLineEditing);\r
-      appData.quietPlay        = IS_CHECKED(OPT_QuietPlay);\r
-      appData.seekGraph        = IS_CHECKED(OPT_SeekGraph);\r
-      appData.autoRefresh      = IS_CHECKED(OPT_AutoRefresh);\r
-      appData.bgObserve        = IS_CHECKED(OPT_BgObserve);\r
-      appData.dualBoard        = IS_CHECKED(OPT_DualBoard);\r
-      appData.oneClick         = IS_CHECKED(OPT_SmartMove);\r
-\r
-#undef IS_CHECKED\r
-\r
-      appData.icsAlarmTime = number * 1000;\r
-      GetDlgItemText(hDlg, OPT_PremoveWhiteText, appData.premoveWhiteText, 5);\r
-      GetDlgItemText(hDlg, OPT_PremoveBlackText, appData.premoveBlackText, 5);\r
-      GetDlgItemText(hDlg, OPT_StartupChatBoxes, buf, sizeof(buf));\r
-      buf[sizeof(buf)-1] = NULLCHAR; appData.chatBoxes = StrSave(buf); // memory leak\r
-\r
-      if (appData.localLineEditing) {\r
-       DontEcho();\r
-       EchoOn();\r
-      } else {\r
-       DoEcho();\r
-       EchoOff();\r
-      }\r
-\r
-      appData.colorize =\r
-       (Boolean)!IsDlgButtonChecked(hDlg, OPT_DontColorize);\r
-\r
-    ChangedConsoleFont();\r
-\r
-    if (!appData.colorize) {\r
-       CHARFORMAT cf;\r
-       COLORREF background = ParseColorName(COLOR_BKGD);\r
-       /*\r
-       SetDefaultTextAttribs();\r
-        Colorize(currentColorClass);\r
-       */\r
-       cf.cbSize = sizeof(CHARFORMAT);\r
-       cf.dwMask = CFM_COLOR;\r
-       cf.crTextColor = ParseColorName(COLOR_NORMAL);\r
-\r
-       SendDlgItemMessage(hwndConsole, OPT_ConsoleInput,\r
-         EM_SETCHARFORMAT, SCF_ALL, (LPARAM)&cf);\r
-        SendDlgItemMessage(hwndConsole, OPT_ConsoleText,\r
-         EM_SETBKGNDCOLOR, FALSE, background);\r
-       SendDlgItemMessage(hwndConsole, OPT_ConsoleInput,\r
-         EM_SETBKGNDCOLOR, FALSE, background);\r
-      }\r
-\r
-      if (cbc != consoleBackgroundColor) {\r
-       consoleBackgroundColor = cbc;\r
-       if (appData.colorize) {\r
-         SendDlgItemMessage(hwndConsole, OPT_ConsoleText,\r
-           EM_SETBKGNDCOLOR, FALSE, consoleBackgroundColor);\r
-         SendDlgItemMessage(hwndConsole, OPT_ConsoleInput,\r
-           EM_SETBKGNDCOLOR, FALSE, consoleBackgroundColor);\r
-       }\r
-      }\r
-\r
-      for (i=0; i < NColorClasses - 1; i++) {\r
-       textAttribs[i].color   = mca[i].color;\r
-       textAttribs[i].effects = mca[i].effects;\r
-      }\r
-\r
-      EndDialog(hDlg, TRUE);\r
-      return TRUE;\r
-\r
-    case IDCANCEL:\r
-      EndDialog(hDlg, FALSE);\r
-      return TRUE;\r
-\r
-    case OPT_ChooseShoutColor:\r
-      ColorizeTextPopup(hDlg, ColorShout);\r
-      UpdateSampleText(hDlg, OPT_SampleShout, &mca[ColorShout]);\r
-      break;\r
-\r
-    case OPT_ChooseSShoutColor:\r
-      ColorizeTextPopup(hDlg, ColorSShout);\r
-      UpdateSampleText(hDlg, OPT_SampleSShout, &mca[ColorSShout]);\r
-      break;\r
-\r
-    case OPT_ChooseChannel1Color:\r
-      ColorizeTextPopup(hDlg, ColorChannel1);\r
-      UpdateSampleText(hDlg, OPT_SampleChannel1,\r
-                      &colorizeAttribs[ColorChannel1]);\r
-      break;\r
-\r
-    case OPT_ChooseChannelColor:\r
-      ColorizeTextPopup(hDlg, ColorChannel);\r
-      UpdateSampleText(hDlg, OPT_SampleChannel, &mca[ColorChannel]);\r
-      break;\r
-\r
-    case OPT_ChooseKibitzColor:\r
-      ColorizeTextPopup(hDlg, ColorKibitz);\r
-      UpdateSampleText(hDlg, OPT_SampleKibitz, &mca[ColorKibitz]);\r
-      break;\r
-\r
-    case OPT_ChooseTellColor:\r
-      ColorizeTextPopup(hDlg, ColorTell);\r
-      UpdateSampleText(hDlg, OPT_SampleTell, &mca[ColorTell]);\r
-      break;\r
-\r
-    case OPT_ChooseChallengeColor:\r
-      ColorizeTextPopup(hDlg, ColorChallenge);\r
-      UpdateSampleText(hDlg, OPT_SampleChallenge, &mca[ColorChallenge]);\r
-      break;\r
-\r
-    case OPT_ChooseRequestColor:\r
-      ColorizeTextPopup(hDlg, ColorRequest);\r
-      UpdateSampleText(hDlg, OPT_SampleRequest, &mca[ColorRequest]);\r
-      break;\r
-\r
-    case OPT_ChooseSeekColor:\r
-      ColorizeTextPopup(hDlg, ColorSeek);\r
-      UpdateSampleText(hDlg, OPT_SampleSeek, &mca[ColorSeek]);\r
-      break;\r
-\r
-\r
-\r
-\r
-    case OPT_ChooseNormalColor:\r
-      ColorizeTextPopup(hDlg, ColorNormal);\r
-      UpdateSampleText(hDlg, OPT_SampleNormal, &mca[ColorNormal]);\r
-      break;\r
-\r
-    case OPT_ChooseBackgroundColor:\r
-      if (ChangeColor(hDlg, &cbc)) {\r
-       SendDlgItemMessage(hDlg, OPT_SampleShout,     EM_SETBKGNDCOLOR, 0, cbc);\r
-       SendDlgItemMessage(hDlg, OPT_SampleSShout,    EM_SETBKGNDCOLOR, 0, cbc);\r
-       SendDlgItemMessage(hDlg, OPT_SampleChannel1,  EM_SETBKGNDCOLOR, 0, cbc);\r
-       SendDlgItemMessage(hDlg, OPT_SampleChannel,   EM_SETBKGNDCOLOR, 0, cbc);\r
-       SendDlgItemMessage(hDlg, OPT_SampleKibitz,    EM_SETBKGNDCOLOR, 0, cbc);\r
-       SendDlgItemMessage(hDlg, OPT_SampleTell,      EM_SETBKGNDCOLOR, 0, cbc);\r
-       SendDlgItemMessage(hDlg, OPT_SampleChallenge, EM_SETBKGNDCOLOR, 0, cbc);\r
-       SendDlgItemMessage(hDlg, OPT_SampleRequest,   EM_SETBKGNDCOLOR, 0, cbc);\r
-       SendDlgItemMessage(hDlg, OPT_SampleSeek,      EM_SETBKGNDCOLOR, 0, cbc);\r
-       SendDlgItemMessage(hDlg, OPT_SampleNormal,    EM_SETBKGNDCOLOR, 0, cbc);\r
-      }\r
-      break;\r
-\r
-    case OPT_DefaultColors:\r
-      for (i=0; i < NColorClasses - 1; i++)\r
-       ParseAttribs(&mca[i].color,\r
-                    &mca[i].effects,\r
-                    defaultTextAttribs[i]);\r
-\r
-      cbc = ParseColorName(COLOR_BKGD);\r
-      SendDlgItemMessage(hDlg, OPT_SampleShout,     EM_SETBKGNDCOLOR, 0, cbc);\r
-      SendDlgItemMessage(hDlg, OPT_SampleSShout,    EM_SETBKGNDCOLOR, 0, cbc);\r
-      SendDlgItemMessage(hDlg, OPT_SampleChannel1,  EM_SETBKGNDCOLOR, 0, cbc);\r
-      SendDlgItemMessage(hDlg, OPT_SampleChannel,   EM_SETBKGNDCOLOR, 0, cbc);\r
-      SendDlgItemMessage(hDlg, OPT_SampleKibitz,    EM_SETBKGNDCOLOR, 0, cbc);\r
-      SendDlgItemMessage(hDlg, OPT_SampleTell,      EM_SETBKGNDCOLOR, 0, cbc);\r
-      SendDlgItemMessage(hDlg, OPT_SampleChallenge, EM_SETBKGNDCOLOR, 0, cbc);\r
-      SendDlgItemMessage(hDlg, OPT_SampleRequest,   EM_SETBKGNDCOLOR, 0, cbc);\r
-      SendDlgItemMessage(hDlg, OPT_SampleSeek,      EM_SETBKGNDCOLOR, 0, cbc);\r
-      SendDlgItemMessage(hDlg, OPT_SampleNormal,    EM_SETBKGNDCOLOR, 0, cbc);\r
-\r
-      UpdateSampleText(hDlg, OPT_SampleShout,     &mca[ColorShout]);\r
-      UpdateSampleText(hDlg, OPT_SampleSShout,    &mca[ColorSShout]);\r
-      UpdateSampleText(hDlg, OPT_SampleChannel1,  &mca[ColorChannel1]);\r
-      UpdateSampleText(hDlg, OPT_SampleChannel,   &mca[ColorChannel]);\r
-      UpdateSampleText(hDlg, OPT_SampleKibitz,    &mca[ColorKibitz]);\r
-      UpdateSampleText(hDlg, OPT_SampleTell,      &mca[ColorTell]);\r
-      UpdateSampleText(hDlg, OPT_SampleChallenge, &mca[ColorChallenge]);\r
-      UpdateSampleText(hDlg, OPT_SampleRequest,   &mca[ColorRequest]);\r
-      UpdateSampleText(hDlg, OPT_SampleSeek,      &mca[ColorSeek]);\r
-      UpdateSampleText(hDlg, OPT_SampleNormal,    &mca[ColorNormal]);\r
-      break;\r
-\r
-    default:\r
-      SetIcsOptionEnables(hDlg);\r
-      break;\r
-    }\r
-    break;\r
-  }\r
-  return FALSE;\r
-}\r
-\r
-VOID\r
-IcsOptionsPopup(HWND hwnd)\r
-{\r
-  FARPROC lpProc = MakeProcInstance((FARPROC)IcsOptionsDialog, hInst);\r
-  DialogBox(hInst, MAKEINTRESOURCE(DLG_IcsOptions), hwnd,\r
-           (DLGPROC) lpProc);\r
-  FreeProcInstance(lpProc);\r
-}\r
-\r
-/*---------------------------------------------------------------------------*\\r
- *\r
- * Fonts Dialog functions\r
- *\r
-\*---------------------------------------------------------------------------*/\r
-\r
-char *string; // sorry\r
-\r
-VOID\r
-SetSampleFontText(HWND hwnd, int id, const MyFont *mf)\r
-{\r
-  char buf[MSG_SIZ];\r
-  HWND hControl;\r
-  HDC hdc;\r
-  CHARFORMAT cf;\r
-  SIZE size;\r
-  RECT rectClient, rectFormat;\r
-  HFONT oldFont;\r
-  POINT center;\r
-  int len;\r
-\r
-  len = snprintf(buf, MSG_SIZ, "%.0f pt. %s%s%s\n",\r
-                mf->mfp.pointSize, mf->mfp.faceName,\r
-                mf->mfp.bold ? " bold" : "",\r
-                mf->mfp.italic ? " italic" : "");\r
- if(id != OPT_SamplePieceFont)\r
-  SetDlgItemText(hwnd, id, buf);\r
- else SetDlgItemText(hwnd, id, string);\r
-\r
-  hControl = GetDlgItem(hwnd, id);\r
-  hdc = GetDC(hControl);\r
-  SetMapMode(hdc, MM_TEXT);    /* 1 pixel == 1 logical unit */\r
-  oldFont = SelectObject(hdc, mf->hf);\r
-\r
-  /* get number of logical units necessary to display font name */\r
-  GetTextExtentPoint32(hdc, buf, len, &size);\r
-\r
-  /* calculate formatting rectangle in the rich edit control.\r
-   * May be larger or smaller than the actual control.\r
-   */\r
-  GetClientRect(hControl, &rectClient);\r
-  center.x = (rectClient.left + rectClient.right) / 2;\r
-  center.y = (rectClient.top  + rectClient.bottom) / 2;\r
-  rectFormat.top    = center.y - (size.cy / 2) - 1;\r
-  rectFormat.bottom = center.y + (size.cy / 2) + 1;\r
-  rectFormat.left   = center.x - (size.cx / 2) - 1;\r
-  rectFormat.right  = center.x + (size.cx / 2) + 1;\r
-\r
-  cf.cbSize = sizeof(CHARFORMAT);\r
-  cf.dwMask = CFM_FACE|CFM_SIZE|CFM_CHARSET|CFM_BOLD|CFM_ITALIC;\r
-  cf.dwEffects = 0;\r
-  if (mf->lf.lfWeight == FW_BOLD) cf.dwEffects |= CFE_BOLD;\r
-  if (mf->lf.lfItalic) cf.dwEffects |= CFE_ITALIC;\r
-  safeStrCpy(cf.szFaceName, mf->mfp.faceName, sizeof(cf.szFaceName)/sizeof(cf.szFaceName[0]) );\r
-  /*\r
-   * yHeight is expressed in twips.  A twip is 1/20 of a font's point\r
-   * size. See documentation of CHARFORMAT.  --msw\r
-   */\r
-  cf.yHeight = (int)(mf->mfp.pointSize * 20.0 + 0.5);\r
-  cf.bCharSet = mf->lf.lfCharSet;\r
-  cf.bPitchAndFamily = mf->lf.lfPitchAndFamily;\r
-\r
-  /* format the text in the rich edit control */\r
-  SendMessage(hControl, EM_SETCHARFORMAT, SCF_ALL, (LPARAM) &cf);\r
- if(id != OPT_SamplePieceFont)\r
-  SendMessage(hControl, EM_SETRECT, (WPARAM)0, (LPARAM) &rectFormat);\r
-\r
-  /* clean up */\r
-  SelectObject(hdc, oldFont);\r
-  ReleaseDC(hControl, hdc);\r
-}\r
-\r
-VOID\r
-CopyFont(MyFont *dest, const MyFont *src)\r
-{\r
-  dest->mfp.pointSize = src->mfp.pointSize;\r
-  dest->mfp.bold      = src->mfp.bold;\r
-  dest->mfp.italic    = src->mfp.italic;\r
-  dest->mfp.underline = src->mfp.underline;\r
-  dest->mfp.strikeout = src->mfp.strikeout;\r
-  dest->mfp.charset   = src->mfp.charset;\r
-  safeStrCpy(dest->mfp.faceName, src->mfp.faceName, sizeof(dest->mfp.faceName)/sizeof(dest->mfp.faceName[0]) );\r
-  CreateFontInMF(dest);\r
-}\r
-\r
-\r
-LRESULT CALLBACK\r
-FontOptionsDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
-{\r
-  static MyFont workFont[NUM_FONTS+1];\r
-  static BOOL firstPaint;\r
-  static char pieceText[] = "ABCDEFGHIJKLMNOPQRSTUVWXZabcdefghijklmnopqrstuvwxyz";\r
-  int i;\r
-  RECT rect;\r
-\r
-  switch (message) {\r
-  case WM_INITDIALOG:\r
-\r
-    /* copy the current font settings into a working copy */\r
-    for (i=0; i < NUM_FONTS; i++)\r
-      CopyFont(&workFont[i], font[boardSize][i]);\r
-    strncpy(workFont[NUM_FONTS].mfp.faceName, appData.renderPiecesWithFont, sizeof(workFont[NUM_FONTS].mfp.faceName));\r
-    workFont[NUM_FONTS].mfp.pointSize = 16.;\r
-    workFont[NUM_FONTS].mfp.charset = DEFAULT_CHARSET;\r
-\r
-    Translate(hDlg, DLG_Fonts);\r
-    if (!appData.icsActive)\r
-      EnableWindow(GetDlgItem(hDlg, OPT_ChooseConsoleFont), FALSE);\r
-\r
-    firstPaint = TRUE; /* see rant below */\r
-\r
-    /* If I don't call SetFocus(), the dialog won't respond to the keyboard\r
-     * when first drawn. Why is this the only dialog that behaves this way? Is\r
-     * is the WM_PAINT stuff below?? Sigh...\r
-     */\r
-    SetFocus(GetDlgItem(hDlg, IDOK));\r
-    break;\r
-\r
-  case WM_PAINT:\r
-    /* This should not be necessary. However, if SetSampleFontText() is called\r
-     * in response to WM_INITDIALOG, the strings are not properly centered in\r
-     * the controls when the dialog first appears. I can't figure out why, so\r
-     * this is the workaround.  --msw\r
-     */\r
-    if (firstPaint) {\r
-      SetSampleFontText(hDlg, OPT_SampleClockFont, &workFont[CLOCK_FONT]);\r
-      SetSampleFontText(hDlg, OPT_SampleMessageFont, &workFont[MESSAGE_FONT]);\r
-      SetSampleFontText(hDlg, OPT_SampleCoordFont, &workFont[COORD_FONT]);\r
-      SetSampleFontText(hDlg, OPT_SampleTagFont, &workFont[EDITTAGS_FONT]);\r
-      SetSampleFontText(hDlg, OPT_SampleCommentsFont, &workFont[COMMENT_FONT]);\r
-      SetSampleFontText(hDlg, OPT_SampleConsoleFont, &workFont[CONSOLE_FONT]);\r
-      SetSampleFontText(hDlg, OPT_SampleMoveHistoryFont, &workFont[MOVEHISTORY_FONT]);\r
-      SetSampleFontText(hDlg, OPT_SampleGameListFont, &workFont[GAMELIST_FONT]);\r
-      string = appData.fontToPieceTable;\r
-      SetSampleFontText(hDlg, OPT_SamplePieceFont, &workFont[NUM_FONTS]);\r
-      firstPaint = FALSE;\r
-    }\r
-    break;\r
-\r
-  case WM_COMMAND: /* message: received a command */\r
-    switch (LOWORD(wParam)) {\r
-\r
-    case IDOK:\r
-      /* again, it seems to avoid redraw problems if we call EndDialog first */\r
-      EndDialog(hDlg, FALSE);\r
-\r
-      /* copy modified settings back to the fonts array */\r
-      for (i=0; i < NUM_FONTS; i++)\r
-       CopyFont(font[boardSize][i], &workFont[i]);\r
-\r
-      { // Make new piece-to-char table\r
-       char buf[MSG_SIZ];\r
-       GetDlgItemText(hDlg, OPT_SamplePieceFont, buf, MSG_SIZ);\r
-       ASSIGN(appData.fontToPieceTable, buf);\r
-      }\r
-      ASSIGN(appData.renderPiecesWithFont, workFont[NUM_FONTS].mfp.faceName); // piece font\r
-\r
-      /* a sad necessity due to the original design of having a separate\r
-       * console font, tags font, and comment font for each board size.  IMHO\r
-       * these fonts should not be dependent on the current board size.  I'm\r
-       * running out of time, so I am doing this hack rather than redesign the\r
-       * data structure. Besides, I think if I redesigned the data structure, I\r
-       * might break backwards compatibility with old winboard.ini files.\r
-       * --msw\r
-       */\r
-      for (i=0; i < NUM_SIZES; i++) {\r
-       CopyFont(font[i][EDITTAGS_FONT], &workFont[EDITTAGS_FONT]);\r
-       CopyFont(font[i][CONSOLE_FONT],  &workFont[CONSOLE_FONT]);\r
-       CopyFont(font[i][COMMENT_FONT],  &workFont[COMMENT_FONT]);\r
-       CopyFont(font[i][MOVEHISTORY_FONT],  &workFont[MOVEHISTORY_FONT]);\r
-       CopyFont(font[i][GAMELIST_FONT],  &workFont[GAMELIST_FONT]);\r
-      }\r
-      /* end sad necessity */\r
-\r
-      InitDrawingSizes(boardSize, 0);\r
-      InvalidateRect(hwndMain, NULL, TRUE);\r
-\r
-      if (commentDialog) {\r
-       SendDlgItemMessage(commentDialog, OPT_CommentText,\r
-         WM_SETFONT, (WPARAM)font[boardSize][COMMENT_FONT]->hf,\r
-         MAKELPARAM(TRUE, 0));\r
-       GetClientRect(GetDlgItem(commentDialog, OPT_CommentText), &rect);\r
-       InvalidateRect(commentDialog, &rect, TRUE);\r
-      }\r
-\r
-      if (editTagsDialog) {\r
-       SendDlgItemMessage(editTagsDialog, OPT_TagsText,\r
-         WM_SETFONT, (WPARAM)font[boardSize][EDITTAGS_FONT]->hf,\r
-         MAKELPARAM(TRUE, 0));\r
-       GetClientRect(GetDlgItem(editTagsDialog, OPT_TagsText), &rect);\r
-       InvalidateRect(editTagsDialog, &rect, TRUE);\r
-      }\r
-\r
-      if( moveHistoryDialog != NULL ) {\r
-       SendDlgItemMessage(moveHistoryDialog, IDC_MoveHistory,\r
-         WM_SETFONT, (WPARAM)font[boardSize][MOVEHISTORY_FONT]->hf,\r
-         MAKELPARAM(TRUE, 0));\r
-        SendMessage( moveHistoryDialog, WM_INITDIALOG, 0, 0 );\r
-//     InvalidateRect(editTagsDialog, NULL, TRUE); // [HGM] this ws improperly cloned?\r
-      }\r
-\r
-      if( engineOutputDialog != NULL ) {\r
-       SendDlgItemMessage(engineOutputDialog, IDC_EngineMemo1,\r
-         WM_SETFONT, (WPARAM)font[boardSize][MOVEHISTORY_FONT]->hf,\r
-         MAKELPARAM(TRUE, 0));\r
-       SendDlgItemMessage(engineOutputDialog, IDC_EngineMemo2,\r
-         WM_SETFONT, (WPARAM)font[boardSize][MOVEHISTORY_FONT]->hf,\r
-         MAKELPARAM(TRUE, 0));\r
-      }\r
-\r
-      if (hwndConsole) {\r
-       ChangedConsoleFont();\r
-      }\r
-\r
-      for (i=0; i<NUM_FONTS; i++)\r
-       DeleteObject(&workFont[i].hf);\r
-\r
-      return TRUE;\r
-\r
-    case IDCANCEL:\r
-      for (i=0; i<NUM_FONTS; i++)\r
-       DeleteObject(&workFont[i].hf);\r
-      EndDialog(hDlg, FALSE);\r
-      return TRUE;\r
-\r
-    case OPT_ChooseClockFont:\r
-      MyCreateFont(hDlg, &workFont[CLOCK_FONT]);\r
-      SetSampleFontText(hDlg, OPT_SampleClockFont, &workFont[CLOCK_FONT]);\r
-      break;\r
-\r
-    case OPT_ChooseMessageFont:\r
-      MyCreateFont(hDlg, &workFont[MESSAGE_FONT]);\r
-      SetSampleFontText(hDlg, OPT_SampleMessageFont, &workFont[MESSAGE_FONT]);\r
-      break;\r
-\r
-    case OPT_ChooseCoordFont:\r
-      MyCreateFont(hDlg, &workFont[COORD_FONT]);\r
-      SetSampleFontText(hDlg, OPT_SampleCoordFont, &workFont[COORD_FONT]);\r
-      break;\r
-\r
-    case OPT_ChooseTagFont:\r
-      MyCreateFont(hDlg, &workFont[EDITTAGS_FONT]);\r
-      SetSampleFontText(hDlg, OPT_SampleTagFont, &workFont[EDITTAGS_FONT]);\r
-      break;\r
-\r
-    case OPT_ChooseCommentsFont:\r
-      MyCreateFont(hDlg, &workFont[COMMENT_FONT]);\r
-      SetSampleFontText(hDlg, OPT_SampleCommentsFont, &workFont[COMMENT_FONT]);\r
-      break;\r
-\r
-    case OPT_ChooseConsoleFont:\r
-      MyCreateFont(hDlg, &workFont[CONSOLE_FONT]);\r
-      SetSampleFontText(hDlg, OPT_SampleConsoleFont, &workFont[CONSOLE_FONT]);\r
-      break;\r
-\r
-    case OPT_ChooseMoveHistoryFont:\r
-      MyCreateFont(hDlg, &workFont[MOVEHISTORY_FONT]);\r
-      SetSampleFontText(hDlg, OPT_SampleMoveHistoryFont, &workFont[MOVEHISTORY_FONT]);\r
-      break;\r
-\r
-    case OPT_ChooseGameListFont:\r
-      MyCreateFont(hDlg, &workFont[GAMELIST_FONT]);\r
-      SetSampleFontText(hDlg, OPT_SampleGameListFont, &workFont[GAMELIST_FONT]);\r
-      break;\r
-\r
-    case OPT_ChoosePieceFont:\r
-      MyCreateFont(hDlg, &workFont[NUM_FONTS]);\r
-      string = pieceText;\r
-      SetSampleFontText(hDlg, OPT_SamplePieceFont, &workFont[NUM_FONTS]);\r
-      break;\r
-\r
-    case OPT_DefaultFonts:\r
-      for (i=0; i<NUM_FONTS; i++) {\r
-       DeleteObject(&workFont[i].hf);\r
-       ParseFontName(font[boardSize][i]->def, &workFont[i].mfp);\r
-       CreateFontInMF(&workFont[i]);\r
-      }\r
-      SetSampleFontText(hDlg, OPT_SampleClockFont, &workFont[CLOCK_FONT]);\r
-      SetSampleFontText(hDlg, OPT_SampleMessageFont, &workFont[MESSAGE_FONT]);\r
-      SetSampleFontText(hDlg, OPT_SampleCoordFont, &workFont[COORD_FONT]);\r
-      SetSampleFontText(hDlg, OPT_SampleTagFont, &workFont[EDITTAGS_FONT]);\r
-      SetSampleFontText(hDlg, OPT_SampleCommentsFont, &workFont[COMMENT_FONT]);\r
-      SetSampleFontText(hDlg, OPT_SampleConsoleFont, &workFont[CONSOLE_FONT]);\r
-      SetSampleFontText(hDlg, OPT_SampleMoveHistoryFont, &workFont[MOVEHISTORY_FONT]);\r
-      SetSampleFontText(hDlg, OPT_SampleGameListFont, &workFont[GAMELIST_FONT]);\r
-      break;\r
-    }\r
-  }\r
-  return FALSE;\r
-}\r
-\r
-VOID\r
-FontsOptionsPopup(HWND hwnd)\r
-{\r
-  FARPROC lpProc = MakeProcInstance((FARPROC)FontOptionsDialog, hInst);\r
-  DialogBox(hInst, MAKEINTRESOURCE(DLG_Fonts), hwnd,\r
-         (DLGPROC) lpProc);\r
-  FreeProcInstance(lpProc);\r
-}\r
-\r
-/*---------------------------------------------------------------------------*\\r
- *\r
- * Sounds Dialog functions\r
- *\r
-\*---------------------------------------------------------------------------*/\r
-\r
-\r
-SoundComboData soundComboData[] = {\r
-  {N_("Move"), NULL},\r
-  {N_("Bell"), NULL},\r
-  {N_("Roar"), NULL},\r
-  {N_("ICS Alarm"), NULL},\r
-  {N_("ICS Win"), NULL},\r
-  {N_("ICS Loss"), NULL},\r
-  {N_("ICS Draw"), NULL},\r
-  {N_("ICS Unfinished"), NULL},\r
-  {N_("Shout"), NULL},\r
-  {N_("SShout/CShout"), NULL},\r
-  {N_("Channel 1"), NULL},\r
-  {N_("Channel"), NULL},\r
-  {N_("Kibitz"), NULL},\r
-  {N_("Tell"), NULL},\r
-  {N_("Challenge"), NULL},\r
-  {N_("Request"), NULL},\r
-  {N_("Seek"), NULL},\r
-  {NULL, NULL},\r
-};\r
-\r
-\r
-void\r
-InitSoundComboData(SoundComboData *scd)\r
-{\r
-  SoundClass sc;\r
-  ColorClass cc;\r
-  int index;\r
-\r
-  /* copy current sound settings to combo array */\r
-\r
-  for ( sc = (SoundClass)0; sc < NSoundClasses; sc++) {\r
-    scd[sc].name = strdup(sounds[sc].name);\r
-  }\r
-  for ( cc = (ColorClass)0; cc < NColorClasses - 2; cc++) {\r
-    index = (int)cc + (int)NSoundClasses;\r
-    scd[index].name = strdup(textAttribs[cc].sound.name);\r
-  }\r
-}\r
-\r
-\r
-void\r
-ResetSoundComboData(SoundComboData *scd)\r
-{\r
-  while (scd->label) {\r
-    if (scd->name != NULL) {\r
-      free (scd->name);\r
-      scd->name = NULL;\r
-    }\r
-    scd++;\r
-  }\r
-}\r
-\r
-void\r
-InitSoundCombo(HWND hwndCombo, SoundComboData *scd)\r
-{\r
-  char buf[255];\r
-  DWORD err;\r
-  DWORD cnt = 0;\r
-  SendMessage(hwndCombo, CB_RESETCONTENT, 0, 0);\r
-\r
-  /* send the labels to the combo box */\r
-  while (scd->label) {\r
-    err = SendMessage(hwndCombo, CB_ADDSTRING, 0, (LPARAM) T_(scd->label));\r
-    if (err != cnt++) {\r
-      snprintf(buf, MSG_SIZ,  "InitSoundCombo(): err '%d', cnt '%d'\n",\r
-         (int)err, (int)cnt);\r
-      MessageBox(NULL, buf, NULL, MB_OK);\r
-    }\r
-    scd++;\r
-  }\r
-  SendMessage(hwndCombo, CB_SETCURSEL, (WPARAM) 0, (LPARAM) 0);\r
-}\r
-\r
-int\r
-SoundDialogWhichRadio(HWND hDlg)\r
-{\r
-  if (IsDlgButtonChecked(hDlg, OPT_NoSound)) return OPT_NoSound;\r
-  if (IsDlgButtonChecked(hDlg, OPT_DefaultBeep)) return OPT_DefaultBeep;\r
-  if (IsDlgButtonChecked(hDlg, OPT_BuiltInSound)) return OPT_BuiltInSound;\r
-  if (IsDlgButtonChecked(hDlg, OPT_WavFile)) return OPT_WavFile;\r
-  return -1;\r
-}\r
-\r
-VOID\r
-SoundDialogSetEnables(HWND hDlg, int radio)\r
-{\r
-  EnableWindow(GetDlgItem(hDlg, OPT_BuiltInSoundName),\r
-              radio == OPT_BuiltInSound);\r
-  EnableWindow(GetDlgItem(hDlg, OPT_WavFileName), radio == OPT_WavFile);\r
-  EnableWindow(GetDlgItem(hDlg, OPT_BrowseSound), radio == OPT_WavFile);\r
-}\r
-\r
-char *\r
-SoundDialogGetName(HWND hDlg, int radio)\r
-{\r
-  static char buf[MSG_SIZ], buf2[MSG_SIZ], buf3[MSG_SIZ];\r
-  char *dummy, *ret;\r
-  switch (radio) {\r
-  case OPT_NoSound:\r
-  default:\r
-    return "";\r
-  case OPT_DefaultBeep:\r
-    return "$";\r
-  case OPT_BuiltInSound:\r
-    buf[0] = '!';\r
-    GetDlgItemText(hDlg, OPT_BuiltInSoundName, buf + 1, sizeof(buf) - 1);\r
-    return buf;\r
-  case OPT_WavFile:\r
-    GetDlgItemText(hDlg, OPT_WavFileName, buf, sizeof(buf));\r
-    GetCurrentDirectory(MSG_SIZ, buf3);\r
-    SetCurrentDirectory(installDir);\r
-    if (GetFullPathName(buf, MSG_SIZ, buf2, &dummy)) {\r
-      ret = buf2;\r
-    } else {\r
-      ret = buf;\r
-    }\r
-    SetCurrentDirectory(buf3);\r
-    return ret;\r
-  }\r
-}\r
-\r
-void\r
-DisplaySelectedSound(HWND hDlg, HWND hCombo, const char *name)\r
-{\r
-  int radio;\r
-  /*\r
-   * I think it's best to clear the combo and edit boxes. It looks stupid\r
-   * to have a value from another sound event sitting there grayed out.\r
-   */\r
-  SetDlgItemText(hDlg, OPT_WavFileName, "");\r
-  SendMessage(hCombo, CB_SETCURSEL, (WPARAM) -1, (LPARAM) 0);\r
-\r
-  if (appData.debugMode)\r
-      fprintf(debugFP, "DisplaySelectedSound(,,'%s'):\n", name);\r
-  switch (name[0]) {\r
-  case NULLCHAR:\r
-    radio = OPT_NoSound;\r
-    break;\r
-  case '$':\r
-    if (name[1] == NULLCHAR) {\r
-      radio = OPT_DefaultBeep;\r
-    } else {\r
-      radio = OPT_WavFile;\r
-      SetDlgItemText(hDlg, OPT_WavFileName, name);\r
-    }\r
-    break;\r
-  case '!':\r
-    if (name[1] == NULLCHAR) {\r
-      radio = OPT_NoSound;\r
-    } else {\r
-      radio = OPT_BuiltInSound;\r
-      if (SendMessage(hCombo, CB_SELECTSTRING, (WPARAM) -1,\r
-                     (LPARAM) (name + 1)) == CB_ERR) {\r
-       SendMessage(hCombo, CB_SETCURSEL, (WPARAM) -1, (LPARAM) 0);\r
-       SendMessage(hCombo, WM_SETTEXT, (WPARAM) 0, (LPARAM) (name + 1));\r
-      }\r
-    }\r
-    break;\r
-  default:\r
-    radio = OPT_WavFile;\r
-    SetDlgItemText(hDlg, OPT_WavFileName, name);\r
-    break;\r
-  }\r
-  SoundDialogSetEnables(hDlg, radio);\r
-  CheckRadioButton(hDlg, OPT_NoSound, OPT_WavFile, radio);\r
-}\r
-\r
-\r
-char *builtInSoundNames[] = BUILT_IN_SOUND_NAMES;\r
-\r
-LRESULT CALLBACK\r
-SoundOptionsDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
-{\r
-  static HWND hSoundCombo;\r
-  static DWORD index;\r
-  static HWND hBISN;\r
-  int radio;\r
-  MySound tmp;\r
-  FILE *f;\r
-  char buf[MSG_SIZ];\r
-  char *newName;\r
-  SoundClass sc;\r
-  ColorClass cc;\r
-  SoundComboData *scd;\r
-  int oldMute;\r
-\r
-  switch (message) {\r
-  case WM_INITDIALOG:\r
-    /* Center the dialog over the application window */\r
-    CenterWindow (hDlg, GetWindow (hDlg, GW_OWNER));\r
-    Translate(hDlg, DLG_Sound);\r
-\r
-    /* Initialize the built-in sounds combo */\r
-    hBISN = GetDlgItem(hDlg, OPT_BuiltInSoundName);\r
-     InitComboStrings(hBISN, builtInSoundNames);\r
-\r
-    /* Initialize the  sound events combo */\r
-    index = 0;\r
-    InitSoundComboData(soundComboData);\r
-    hSoundCombo = GetDlgItem(hDlg, CBO_Sounds);\r
-    InitSoundCombo(hSoundCombo, soundComboData);\r
-\r
-    /* update the dialog */\r
-    DisplaySelectedSound(hDlg, hBISN, soundComboData[index].name);\r
-    return TRUE;\r
-\r
-  case WM_COMMAND: /* message: received a command */\r
-\r
-    if (((HWND)lParam == hSoundCombo) &&\r
-       (HIWORD(wParam) == CBN_SELCHANGE)) {\r
-      /*\r
-       * the user has selected a new sound event. We must store the name for\r
-       * the previously selected event, then retrieve the name for the\r
-       * newly selected event and update the dialog.\r
-       */\r
-      radio = SoundDialogWhichRadio(hDlg);\r
-      newName = strdup(SoundDialogGetName(hDlg, radio));\r
-\r
-      if (strcmp(newName, soundComboData[index].name) != 0) {\r
-       free(soundComboData[index].name);\r
-       soundComboData[index].name = newName;\r
-      } else {\r
-       free(newName);\r
-       newName = NULL;\r
-      }\r
-      /* now get the settings for the newly selected event */\r
-      index = SendMessage(hSoundCombo, CB_GETCURSEL, (WPARAM)0, (LPARAM)0);\r
-      DisplaySelectedSound(hDlg, hBISN, soundComboData[index].name);\r
-\r
-      return TRUE;\r
-    }\r
-    switch (LOWORD(wParam)) {\r
-    case IDOK:\r
-      /*\r
-       * save the name for the currently selected sound event\r
-       */\r
-      radio = SoundDialogWhichRadio(hDlg);\r
-      newName = strdup(SoundDialogGetName(hDlg, radio));\r
-\r
-      if (strcmp(soundComboData[index].name, newName) != 0) {\r
-       free(soundComboData[index].name);\r
-       soundComboData[index].name = newName;\r
-      } else {\r
-       free(newName);\r
-       newName = NULL;\r
-      }\r
-\r
-      /* save all the sound names that changed and load the sounds */\r
-\r
-      for ( sc = (SoundClass)0; sc < NSoundClasses; sc++) {\r
-       if (strcmp(soundComboData[sc].name, sounds[sc].name) != 0) {\r
-         free(sounds[sc].name);\r
-         sounds[sc].name = strdup(soundComboData[sc].name);\r
-         MyLoadSound(&sounds[sc]);\r
-       }\r
-      }\r
-      for ( cc = (ColorClass)0; cc < NColorClasses - 2; cc++) {\r
-       index = (int)cc + (int)NSoundClasses;\r
-       if (strcmp(soundComboData[index].name,\r
-                  textAttribs[cc].sound.name) != 0) {\r
-         free(textAttribs[cc].sound.name);\r
-         textAttribs[cc].sound.name = strdup(soundComboData[index].name);\r
-         MyLoadSound(&textAttribs[cc].sound);\r
-       }\r
-      }\r
-\r
-       mute = FALSE; // [HGM] mute: switch sounds automatically on if we select one\r
-      CheckMenuItem(GetMenu(hwndMain),IDM_MuteSounds,MF_BYCOMMAND|MF_UNCHECKED);\r
-      ResetSoundComboData(soundComboData);\r
-      EndDialog(hDlg, TRUE);\r
-      return TRUE;\r
-\r
-    case IDCANCEL:\r
-      ResetSoundComboData(soundComboData);\r
-      EndDialog(hDlg, FALSE);\r
-      return TRUE;\r
-\r
-    case OPT_DefaultSounds:\r
-      /* can't use SetDefaultSounds() because we need to be able to "undo" if\r
-       * user selects "Cancel" later on. So we do it the hard way here.\r
-       */\r
-      scd = &soundComboData[0];\r
-      while (scd->label != NULL) {\r
-       if (scd->name != NULL) free(scd->name);\r
-       scd->name = strdup("");\r
-       scd++;\r
-      }\r
-      free(soundComboData[(int)SoundBell].name);\r
-      soundComboData[(int)SoundBell].name = strdup(SOUND_BELL);\r
-      DisplaySelectedSound(hDlg, hBISN, soundComboData[index].name);\r
-      break;\r
-\r
-    case OPT_PlaySound:\r
-      radio = SoundDialogWhichRadio(hDlg);\r
-      tmp.name = strdup(SoundDialogGetName(hDlg, radio));\r
-      tmp.data = NULL;\r
-      MyLoadSound(&tmp);\r
-       oldMute = mute; mute = FALSE; // [HGM] mute: always sound when user presses play, ignorig mute setting\r
-      MyPlaySound(&tmp);\r
-       mute = oldMute;\r
-      if (tmp.data  != NULL) FreeResource(tmp.data); // technically obsolete fn, but tmp.data is NOT malloc'd mem\r
-      if (tmp.name != NULL) free(tmp.name);\r
-      return TRUE;\r
-\r
-    case OPT_BrowseSound:\r
-      f = OpenFileDialog(hDlg, "rb", NULL, "wav", SOUND_FILT,\r
-       _("Browse for Sound File"), NULL, NULL, buf);\r
-      if (f != NULL) {\r
-       fclose(f);\r
-       SetDlgItemText(hDlg, OPT_WavFileName, buf);\r
-      }\r
-      return TRUE;\r
-\r
-    default:\r
-      radio = SoundDialogWhichRadio(hDlg);\r
-      SoundDialogSetEnables(hDlg, radio);\r
-      break;\r
-    }\r
-    break;\r
-  }\r
-  return FALSE;\r
-}\r
-\r
-\r
-VOID SoundOptionsPopup(HWND hwnd)\r
-{\r
-  FARPROC lpProc;\r
-\r
-  lpProc = MakeProcInstance((FARPROC)SoundOptionsDialog, hInst);\r
-  DialogBox(hInst, MAKEINTRESOURCE(DLG_Sound), hwnd, (DLGPROC)lpProc);\r
-  FreeProcInstance(lpProc);\r
-}\r
-\r
-\r
-/*---------------------------------------------------------------------------*\\r
- *\r
- * Comm Port dialog functions\r
- *\r
-\*---------------------------------------------------------------------------*/\r
-\r
-\r
-#define FLOW_NONE   0\r
-#define FLOW_XOFF   1\r
-#define FLOW_CTS    2\r
-#define FLOW_DSR    3\r
-\r
-#define PORT_NONE\r
-\r
-ComboData cdPort[]     = { {"None", PORT_NONE}, {"COM1", 1}, {"COM2", 2},\r
-                          {"COM3", 3}, {"COM4", 4}, {NULL, 0} };\r
-ComboData cdDataRate[] = { {"110", 110}, {"300", 300}, {"600", 600}, {"1200", 1200},\r
-                          {"2400", 2400}, {"4800", 4800}, {"9600", 9600}, {"19200", 19200},\r
-                          {"38400", 38400}, {NULL, 0} };\r
-ComboData cdDataBits[] = { {"5", 5}, {"6", 6}, {"7", 7}, {"8", 8}, {NULL, 0} };\r
-ComboData cdParity[]   = { {"None", NOPARITY}, {"Odd", ODDPARITY}, {"Even", EVENPARITY},\r
-                          {"Mark", MARKPARITY}, {"Space", SPACEPARITY}, {NULL, 0} };\r
-ComboData cdStopBits[] = { {"1", ONESTOPBIT}, {"1.5", ONE5STOPBITS},\r
-                          {"2", TWOSTOPBITS}, {NULL, 0} };\r
-ComboData cdFlow[]     = { {"None", FLOW_NONE}, {"Xoff/Xon", FLOW_XOFF}, {"CTS", FLOW_CTS},\r
-                          {"DSR", FLOW_DSR}, {NULL, 0} };\r
-\r
-\r
-VOID\r
-ParseCommSettings(char *arg, DCB *dcb)\r
-{\r
-  int dataRate, count;\r
-  char bits[MSG_SIZ], parity[MSG_SIZ], stopBits[MSG_SIZ], flow[MSG_SIZ];\r
-  ComboData *cd;\r
-  count = sscanf(arg, "%d%*[, ]%[^, ]%*[, ]%[^, ]%*[, ]%[^, ]%*[, ]%[^, ]",\r
-    &dataRate, bits, parity, stopBits, flow);\r
-  if (count != 5) goto cant_parse;\r
-  dcb->BaudRate = dataRate;\r
-  cd = cdDataBits;\r
-  while (cd->label != NULL) {\r
-    if (StrCaseCmp(cd->label, bits) == 0) {\r
-      dcb->ByteSize = cd->value;\r
-      break;\r
-    }\r
-    cd++;\r
-  }\r
-  if (cd->label == NULL) goto cant_parse;\r
-  cd = cdParity;\r
-  while (cd->label != NULL) {\r
-    if (StrCaseCmp(cd->label, parity) == 0) {\r
-      dcb->Parity = cd->value;\r
-      break;\r
-    }\r
-    cd++;\r
-  }\r
-  if (cd->label == NULL) goto cant_parse;\r
-  cd = cdStopBits;\r
-  while (cd->label != NULL) {\r
-    if (StrCaseCmp(cd->label, stopBits) == 0) {\r
-      dcb->StopBits = cd->value;\r
-      break;\r
-    }\r
-    cd++;\r
-  }\r
-  cd = cdFlow;\r
-  if (cd->label == NULL) goto cant_parse;\r
-  while (cd->label != NULL) {\r
-    if (StrCaseCmp(cd->label, flow) == 0) {\r
-      switch (cd->value) {\r
-      case FLOW_NONE:\r
-       dcb->fOutX = FALSE;\r
-       dcb->fOutxCtsFlow = FALSE;\r
-       dcb->fOutxDsrFlow = FALSE;\r
-       break;\r
-      case FLOW_CTS:\r
-       dcb->fOutX = FALSE;\r
-       dcb->fOutxCtsFlow = TRUE;\r
-       dcb->fOutxDsrFlow = FALSE;\r
-       break;\r
-      case FLOW_DSR:\r
-       dcb->fOutX = FALSE;\r
-       dcb->fOutxCtsFlow = FALSE;\r
-       dcb->fOutxDsrFlow = TRUE;\r
-       break;\r
-      case FLOW_XOFF:\r
-       dcb->fOutX = TRUE;\r
-       dcb->fOutxCtsFlow = FALSE;\r
-       dcb->fOutxDsrFlow = FALSE;\r
-       break;\r
-      }\r
-      break;\r
-    }\r
-    cd++;\r
-  }\r
-  if (cd->label == NULL) goto cant_parse;\r
-  return;\r
-cant_parse:\r
-    ExitArgError(_("Can't parse com port settings"), arg, TRUE);\r
-}\r
-\r
-\r
-VOID PrintCommSettings(FILE *f, char *name, DCB *dcb)\r
-{\r
-  char *flow = "??", *parity = "??", *stopBits = "??";\r
-  ComboData *cd;\r
-\r
-  cd = cdParity;\r
-  while (cd->label != NULL) {\r
-    if (dcb->Parity == cd->value) {\r
-      parity = cd->label;\r
-      break;\r
-    }\r
-    cd++;\r
-  }\r
-  cd = cdStopBits;\r
-  while (cd->label != NULL) {\r
-    if (dcb->StopBits == cd->value) {\r
-      stopBits = cd->label;\r
-      break;\r
-    }\r
-    cd++;\r
-  }\r
-  if (dcb->fOutX) {\r
-    flow = cdFlow[FLOW_XOFF].label;\r
-  } else if (dcb->fOutxCtsFlow) {\r
-    flow = cdFlow[FLOW_CTS].label;\r
-  } else if (dcb->fOutxDsrFlow) {\r
-    flow = cdFlow[FLOW_DSR].label;\r
-  } else {\r
-    flow = cdFlow[FLOW_NONE].label;\r
-  }\r
-  fprintf(f, "/%s=%d,%d,%s,%s,%s\n", name,\r
-    (int)dcb->BaudRate, dcb->ByteSize, parity, stopBits, flow);\r
-}\r
-\r
-\r
-void\r
-InitCombo(HANDLE hwndCombo, ComboData *cd)\r
-{\r
-  SendMessage(hwndCombo, CB_RESETCONTENT, 0, 0);\r
-\r
-  while (cd->label != NULL) {\r
-    SendMessage(hwndCombo, CB_ADDSTRING, 0, (LPARAM) cd->label);\r
-    cd++;\r
-  }\r
-}\r
-\r
-void\r
-SelectComboValue(HANDLE hwndCombo, ComboData *cd, unsigned value)\r
-{\r
-  int i;\r
-\r
-  i = 0;\r
-  while (cd->label != NULL) {\r
-    if (cd->value == value) {\r
-      SendMessage(hwndCombo, CB_SETCURSEL, (WPARAM) i, (LPARAM) 0);\r
-      return;\r
-    }\r
-    cd++;\r
-    i++;\r
-  }\r
-}\r
-\r
-LRESULT CALLBACK\r
-CommPortOptionsDialog(HWND hDlg, UINT message, WPARAM wParam,  LPARAM lParam)\r
-{\r
-  char buf[MSG_SIZ];\r
-  HANDLE hwndCombo;\r
-  char *p;\r
-  LRESULT index;\r
-  unsigned value;\r
-  int err;\r
-\r
-  switch (message) {\r
-  case WM_INITDIALOG: /* message: initialize dialog box */\r
-    /* Center the dialog over the application window */\r
-    CenterWindow (hDlg, GetWindow(hDlg, GW_OWNER));\r
-    Translate(hDlg, DLG_CommPort);\r
-    /* Initialize the dialog items */\r
-    /* !! There should probably be some synchronization\r
-       in accessing hCommPort and dcb.  Or does modal nature\r
-       of this dialog box do it for us?\r
-       */\r
-    hwndCombo = GetDlgItem(hDlg, OPT_Port);\r
-    InitCombo(hwndCombo, cdPort);\r
-    p = strrchr(appData.icsCommPort, '\\');\r
-    if (p++ == NULL) p = appData.icsCommPort;\r
-    if ((*p == '\0') ||\r
-       (SendMessage(hwndCombo, CB_SELECTSTRING, (WPARAM) -1, (LPARAM) p) == CB_ERR)) {\r
-      SendMessage(hwndCombo, CB_SELECTSTRING, (WPARAM) -1, (LPARAM) "None");\r
-    }\r
-    EnableWindow(hwndCombo, hCommPort == NULL); /*!! don't allow change for now*/\r
-\r
-    hwndCombo = GetDlgItem(hDlg, OPT_DataRate);\r
-    InitCombo(hwndCombo, cdDataRate);\r
-    snprintf(buf, MSG_SIZ, "%u", (int)dcb.BaudRate);\r
-    if (SendMessage(hwndCombo, CB_SELECTSTRING, (WPARAM) -1, (LPARAM) buf) == CB_ERR) {\r
-      SendMessage(hwndCombo, CB_SETCURSEL, (WPARAM) -1, (LPARAM) 0);\r
-      SendMessage(hwndCombo, WM_SETTEXT, (WPARAM) 0, (LPARAM) buf);\r
-    }\r
-\r
-    hwndCombo = GetDlgItem(hDlg, OPT_Bits);\r
-    InitCombo(hwndCombo, cdDataBits);\r
-    SelectComboValue(hwndCombo, cdDataBits, dcb.ByteSize);\r
-\r
-    hwndCombo = GetDlgItem(hDlg, OPT_Parity);\r
-    InitCombo(hwndCombo, cdParity);\r
-    SelectComboValue(hwndCombo, cdParity, dcb.Parity);\r
-\r
-    hwndCombo = GetDlgItem(hDlg, OPT_StopBits);\r
-    InitCombo(hwndCombo, cdStopBits);\r
-    SelectComboValue(hwndCombo, cdStopBits, dcb.StopBits);\r
-\r
-    hwndCombo = GetDlgItem(hDlg, OPT_Flow);\r
-    InitCombo(hwndCombo, cdFlow);\r
-    if (dcb.fOutX) {\r
-      SelectComboValue(hwndCombo, cdFlow, FLOW_XOFF);\r
-    } else if (dcb.fOutxCtsFlow) {\r
-      SelectComboValue(hwndCombo, cdFlow, FLOW_CTS);\r
-    } else if (dcb.fOutxDsrFlow) {\r
-      SelectComboValue(hwndCombo, cdFlow, FLOW_DSR);\r
-    } else {\r
-      SelectComboValue(hwndCombo, cdFlow, FLOW_NONE);\r
-    }\r
-    return TRUE;\r
-\r
-  case WM_COMMAND: /* message: received a command */\r
-    switch (LOWORD(wParam)) {\r
-    case IDOK:\r
-      /* Read changed options from the dialog box */\r
-#ifdef NOTDEF\r
-      /* !! Currently we can't change comm ports in midstream */\r
-      hwndCombo = GetDlgItem(hDlg, OPT_Port);\r
-      index = SendMessage(hwndCombo, CB_GETCURSEL, (WPARAM) 0, (LPARAM) 0);\r
-      if (index == PORT_NONE) {\r
-       appData.icsCommPort = "";\r
-       if (hCommPort != NULL) {\r
-         CloseHandle(hCommPort);\r
-         hCommPort = NULL;\r
-       }\r
-       EndDialog(hDlg, TRUE);\r
-       return TRUE;\r
-      }\r
-      SendMessage(hwndCombo, WM_GETTEXT, (WPARAM) MSG_SIZ, (LPARAM) buf);\r
-      appData.icsCommPort = strdup(buf);\r
-      if (hCommPort != NULL) {\r
-       CloseHandle(hCommPort);\r
-       hCommPort = NULL;\r
-      }\r
-      /* now what?? can't really do this; have to fix up the ChildProc\r
-        and InputSource records for the comm port that we gave to the\r
-        back end. */\r
-#endif /*NOTDEF*/\r
-\r
-      hwndCombo = GetDlgItem(hDlg, OPT_DataRate);\r
-      SendMessage(hwndCombo, WM_GETTEXT, (WPARAM) MSG_SIZ, (LPARAM) buf);\r
-      if (sscanf(buf, "%u", &value) != 1) {\r
-       MessageBox(hDlg, _("Invalid data rate"),\r
-                  _("Option Error"), MB_OK|MB_ICONEXCLAMATION);\r
-       return TRUE;\r
-      }\r
-      dcb.BaudRate = value;\r
-\r
-      hwndCombo = GetDlgItem(hDlg, OPT_Bits);\r
-      index = SendMessage(hwndCombo, CB_GETCURSEL, (WPARAM) 0, (LPARAM) 0);\r
-      dcb.ByteSize = cdDataBits[index].value;\r
-\r
-      hwndCombo = GetDlgItem(hDlg, OPT_Parity);\r
-      index = SendMessage(hwndCombo, CB_GETCURSEL, (WPARAM) 0, (LPARAM) 0);\r
-      dcb.Parity = cdParity[index].value;\r
-\r
-      hwndCombo = GetDlgItem(hDlg, OPT_StopBits);\r
-      index = SendMessage(hwndCombo, CB_GETCURSEL, (WPARAM) 0, (LPARAM) 0);\r
-      dcb.StopBits = cdStopBits[index].value;\r
-\r
-      hwndCombo = GetDlgItem(hDlg, OPT_Flow);\r
-      index = SendMessage(hwndCombo, CB_GETCURSEL, (WPARAM) 0, (LPARAM) 0);\r
-      switch (cdFlow[index].value) {\r
-      case FLOW_NONE:\r
-       dcb.fOutX = FALSE;\r
-       dcb.fOutxCtsFlow = FALSE;\r
-       dcb.fOutxDsrFlow = FALSE;\r
-       break;\r
-      case FLOW_CTS:\r
-       dcb.fOutX = FALSE;\r
-       dcb.fOutxCtsFlow = TRUE;\r
-       dcb.fOutxDsrFlow = FALSE;\r
-       break;\r
-      case FLOW_DSR:\r
-       dcb.fOutX = FALSE;\r
-       dcb.fOutxCtsFlow = FALSE;\r
-       dcb.fOutxDsrFlow = TRUE;\r
-       break;\r
-      case FLOW_XOFF:\r
-       dcb.fOutX = TRUE;\r
-       dcb.fOutxCtsFlow = FALSE;\r
-       dcb.fOutxDsrFlow = FALSE;\r
-       break;\r
-      }\r
-      if (!SetCommState(hCommPort, (LPDCB) &dcb)) {\r
-       err = GetLastError();\r
-       switch(MessageBox(hDlg,\r
-                        "Failed to set comm port state;\r\ninvalid options?",\r
-                        _("Option Error"), MB_ABORTRETRYIGNORE|MB_ICONQUESTION)) {\r
-       case IDABORT:\r
-         DisplayFatalError(_("Failed to set comm port state"), err, 1);\r
-         exit(1);  /*is it ok to do this from here?*/\r
-\r
-       case IDRETRY:\r
-         return TRUE;\r
-\r
-       case IDIGNORE:\r
-         EndDialog(hDlg, TRUE);\r
-         return TRUE;\r
-       }\r
-      }\r
-\r
-      EndDialog(hDlg, TRUE);\r
-      return TRUE;\r
-\r
-    case IDCANCEL:\r
-      EndDialog(hDlg, FALSE);\r
-      return TRUE;\r
-\r
-    default:\r
-      break;\r
-    }\r
-    break;\r
-  }\r
-  return FALSE;\r
-}\r
-\r
-VOID\r
-CommPortOptionsPopup(HWND hwnd)\r
-{\r
-  FARPROC lpProc = MakeProcInstance((FARPROC)CommPortOptionsDialog, hInst);\r
-  DialogBox(hInst, MAKEINTRESOURCE(DLG_CommPort), hwnd, (DLGPROC) lpProc);\r
-  FreeProcInstance(lpProc);\r
-}\r
-\r
-/*---------------------------------------------------------------------------*\\r
- *\r
- * Load Options dialog functions\r
- *\r
-\*---------------------------------------------------------------------------*/\r
-\r
-int\r
-LoadOptionsWhichRadio(HWND hDlg)\r
-{\r
-  return (IsDlgButtonChecked(hDlg, OPT_Exact) ? 1 :\r
-         (IsDlgButtonChecked(hDlg, OPT_Subset) ? 2 :\r
-         (IsDlgButtonChecked(hDlg, OPT_Struct) ? 3 :\r
-         (IsDlgButtonChecked(hDlg, OPT_Material) ? 4 :\r
-         (IsDlgButtonChecked(hDlg, OPT_Range) ? 5 :\r
-         (IsDlgButtonChecked(hDlg, OPT_Difference) ? 6 : -1))))));\r
-}\r
-\r
-VOID\r
-SetLoadOptionEnables(HWND hDlg)\r
-{\r
-  UINT state;\r
-\r
-  state = IsDlgButtonChecked(hDlg, OPT_Autostep);\r
-  EnableWindow(GetDlgItem(hDlg, OPT_ASTimeDelay), state);\r
-  EnableWindow(GetDlgItem(hDlg, OPT_AStext1), state);\r
-}\r
-\r
-LRESULT CALLBACK\r
-LoadOptions(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
-{\r
-  char buf[MSG_SIZ];\r
-  float fnumber;\r
-  int ok;\r
-\r
-  switch (message) {\r
-  case WM_INITDIALOG: /* message: initialize dialog box */\r
-    /* Center the dialog over the application window */\r
-    CenterWindow (hDlg, GetWindow (hDlg, GW_OWNER));\r
-    Translate(hDlg, DLG_LoadOptions);\r
-    /* Initialize the dialog items */\r
-    if (appData.timeDelay >= 0.0) {\r
-      CheckDlgButton(hDlg, OPT_Autostep, TRUE);\r
-      snprintf(buf, MSG_SIZ, "%.2g", appData.timeDelay);\r
-      SetDlgItemText(hDlg, OPT_ASTimeDelay, buf);\r
-    } else {\r
-      CheckDlgButton(hDlg, OPT_Autostep, FALSE);\r
-    }\r
-    SetLoadOptionEnables(hDlg);\r
-    SetDlgItemInt(hDlg, OPT_elo1, appData.eloThreshold1, FALSE);\r
-    SetDlgItemInt(hDlg, OPT_elo2, appData.eloThreshold2, FALSE);\r
-    SetDlgItemInt(hDlg, OPT_date, appData.dateThreshold, FALSE);\r
-    SetDlgItemInt(hDlg, OPT_Stretch, appData.stretch, FALSE);\r
-    CheckDlgButton(hDlg, OPT_Reversed, appData.ignoreColors);\r
-    CheckDlgButton(hDlg, OPT_Mirror, appData.findMirror);\r
-    SetDlgItemText(hDlg, OPT_Counts,  "");\r
-    switch (appData.searchMode) {\r
-    case 1:\r
-      CheckDlgButton(hDlg, OPT_Exact, TRUE);\r
-      break;\r
-    case 2:\r
-      CheckDlgButton(hDlg, OPT_Subset, TRUE);\r
-      break;\r
-    case 3:\r
-      CheckDlgButton(hDlg, OPT_Struct, TRUE);\r
-      break;\r
-    case 4:\r
-      CheckDlgButton(hDlg, OPT_Material, TRUE);\r
-      break;\r
-    case 5:\r
-      CheckDlgButton(hDlg, OPT_Range, TRUE);\r
-      break;\r
-    case 6:\r
-      CheckDlgButton(hDlg, OPT_Difference, TRUE);\r
-      break;\r
-    }\r
-    return TRUE;\r
-\r
-  case WM_COMMAND: /* message: received a command */\r
-    switch (LOWORD(wParam)) {\r
-    case IDOK:\r
-      /* Read changed options from the dialog box */\r
-      if (IsDlgButtonChecked(hDlg, OPT_Autostep)) {\r
-       GetDlgItemText(hDlg, OPT_ASTimeDelay, buf, MSG_SIZ);\r
-       if (sscanf(buf, "%f", &fnumber) != 1) {\r
-         MessageBox(hDlg, _("Invalid load game step rate"),\r
-                    _("Option Error"), MB_OK|MB_ICONEXCLAMATION);\r
-         return FALSE;\r
-       }\r
-       appData.timeDelay = fnumber;\r
-      } else {\r
-       appData.timeDelay = (float) -1.0;\r
-      }\r
-      appData.eloThreshold1 = GetDlgItemInt(hDlg, OPT_elo1, &ok, FALSE);\r
-      appData.eloThreshold2 = GetDlgItemInt(hDlg, OPT_elo2, &ok, FALSE);\r
-      appData.dateThreshold = GetDlgItemInt(hDlg, OPT_date, &ok, FALSE);\r
-      appData.stretch = GetDlgItemInt(hDlg, OPT_Stretch, &ok, FALSE);\r
-      appData.searchMode = LoadOptionsWhichRadio(hDlg);\r
-      appData.ignoreColors = IsDlgButtonChecked(hDlg, OPT_Reversed);\r
-      appData.findMirror   = IsDlgButtonChecked(hDlg, OPT_Mirror);\r
-      GetDlgItemText(hDlg, OPT_Counts, buf, MSG_SIZ);\r
-      appData.minPieces = appData.maxPieces = 0;\r
-      sscanf(buf, "%d-%d", &appData.minPieces, &appData.maxPieces);\r
-      if(appData.maxPieces < appData.minPieces) appData.maxPieces = appData.minPieces;\r
-      EndDialog(hDlg, TRUE);\r
-      return TRUE;\r
-\r
-    case IDCANCEL:\r
-      EndDialog(hDlg, FALSE);\r
-      return TRUE;\r
-\r
-    default:\r
-      SetLoadOptionEnables(hDlg);\r
-      break;\r
-    }\r
-    break;\r
-  }\r
-  return FALSE;\r
-}\r
-\r
-\r
-VOID\r
-LoadOptionsPopup(HWND hwnd)\r
-{\r
-  FARPROC lpProc = MakeProcInstance((FARPROC)LoadOptions, hInst);\r
-  DialogBox(hInst, MAKEINTRESOURCE(DLG_LoadOptions), hwnd, (DLGPROC) lpProc);\r
-  FreeProcInstance(lpProc);\r
-}\r
-\r
-/*---------------------------------------------------------------------------*\\r
- *\r
- * Save Options dialog functions\r
- *\r
-\*---------------------------------------------------------------------------*/\r
-\r
-VOID\r
-SetSaveOptionEnables(HWND hDlg)\r
-{\r
-  UINT state;\r
-\r
-  state = IsDlgButtonChecked(hDlg, OPT_Autosave);\r
-  EnableWindow(GetDlgItem(hDlg, OPT_AVPrompt), state);\r
-  EnableWindow(GetDlgItem(hDlg, OPT_AVToFile), state);\r
-  if (state && !IsDlgButtonChecked(hDlg, OPT_AVPrompt) &&\r
-      !IsDlgButtonChecked(hDlg, OPT_AVToFile)) {\r
-    CheckRadioButton(hDlg, OPT_AVPrompt, OPT_AVToFile, OPT_AVPrompt);\r
-  }\r
-\r
-  state = state && IsDlgButtonChecked(hDlg, OPT_AVToFile);\r
-  EnableWindow(GetDlgItem(hDlg, OPT_AVFilename), state);\r
-  EnableWindow(GetDlgItem(hDlg, OPT_AVBrowse), state);\r
-}\r
-\r
-LRESULT CALLBACK\r
-SaveOptionsDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
-{\r
-  char buf[MSG_SIZ];\r
-  FILE *f;\r
-\r
-  switch (message) {\r
-  case WM_INITDIALOG: /* message: initialize dialog box */\r
-    /* Center the dialog over the application window */\r
-    CenterWindow (hDlg, GetWindow (hDlg, GW_OWNER));\r
-    Translate(hDlg, DLG_SaveOptions);\r
-    /* Initialize the dialog items */\r
-    if (*appData.saveGameFile != NULLCHAR) {\r
-      CheckDlgButton(hDlg, OPT_Autosave, (UINT) TRUE);\r
-      CheckRadioButton(hDlg, OPT_AVPrompt, OPT_AVToFile, OPT_AVToFile);\r
-      SetDlgItemText(hDlg, OPT_AVFilename, appData.saveGameFile);\r
-    } else if (appData.autoSaveGames) {\r
-      CheckDlgButton(hDlg, OPT_Autosave, (UINT) TRUE);\r
-      CheckRadioButton(hDlg, OPT_AVPrompt, OPT_AVToFile, OPT_AVPrompt);\r
-    } else {\r
-      CheckDlgButton(hDlg, OPT_Autosave, (UINT) FALSE);\r
-    }\r
-    if (appData.oldSaveStyle) {\r
-      CheckRadioButton(hDlg, OPT_PGN, OPT_Old, OPT_Old);\r
-    } else {\r
-      CheckRadioButton(hDlg, OPT_PGN, OPT_Old, OPT_PGN);\r
-    }\r
-    CheckDlgButton( hDlg, OPT_OutOfBookInfo, appData.saveOutOfBookInfo );\r
-    SetSaveOptionEnables(hDlg);\r
-    return TRUE;\r
-\r
-  case WM_COMMAND: /* message: received a command */\r
-    switch (LOWORD(wParam)) {\r
-    case IDOK:\r
-      /* Read changed options from the dialog box */\r
-      if (IsDlgButtonChecked(hDlg, OPT_Autosave)) {\r
-       appData.autoSaveGames = TRUE;\r
-       if (IsDlgButtonChecked(hDlg, OPT_AVPrompt)) {\r
-         ASSIGN(appData.saveGameFile, ""); // [HGM] make sure value is ALWAYS in allocated memory\r
-       } else /*if (IsDlgButtonChecked(hDlg, OPT_AVToFile))*/ {\r
-         GetDlgItemText(hDlg, OPT_AVFilename, buf, MSG_SIZ);\r
-         if (*buf == NULLCHAR) {\r
-           MessageBox(hDlg, _("Invalid save game file name"),\r
-                      _("Option Error"), MB_OK|MB_ICONEXCLAMATION);\r
-           return FALSE;\r
-         }\r
-         FREE(appData.saveGameFile);\r
-         appData.saveGameFile = InterpretFileName(buf, homeDir);\r
-       }\r
-      } else {\r
-       appData.autoSaveGames = FALSE;\r
-       ASSIGN(appData.saveGameFile, "");\r
-      }\r
-      appData.oldSaveStyle = IsDlgButtonChecked(hDlg, OPT_Old);\r
-      appData.saveOutOfBookInfo = IsDlgButtonChecked( hDlg, OPT_OutOfBookInfo );\r
-      EndDialog(hDlg, TRUE);\r
-      return TRUE;\r
-\r
-    case IDCANCEL:\r
-      EndDialog(hDlg, FALSE);\r
-      return TRUE;\r
-\r
-    case OPT_AVBrowse:\r
-      f = OpenFileDialog(hDlg, "a", NULL,\r
-                        appData.oldSaveStyle ? "gam" : "pgn",\r
-                        GAME_FILT, _("Browse for Auto Save File"),\r
-                        NULL, NULL, buf);\r
-      if (f != NULL) {\r
-       fclose(f);\r
-       SetDlgItemText(hDlg, OPT_AVFilename, buf);\r
-      }\r
-      break;\r
-\r
-    default:\r
-      SetSaveOptionEnables(hDlg);\r
-      break;\r
-    }\r
-    break;\r
-  }\r
-  return FALSE;\r
-}\r
-\r
-VOID\r
-SaveOptionsPopup(HWND hwnd)\r
-{\r
-  FARPROC lpProc = MakeProcInstance((FARPROC)SaveOptionsDialog, hInst);\r
-  DialogBox(hInst, MAKEINTRESOURCE(DLG_SaveOptions), hwnd, (DLGPROC) lpProc);\r
-  FreeProcInstance(lpProc);\r
-}\r
-\r
-/*---------------------------------------------------------------------------*\\r
- *\r
- * Time Control Options dialog functions\r
- *\r
-\*---------------------------------------------------------------------------*/\r
-\r
-VOID\r
-SetTimeControlEnables(HWND hDlg)\r
-{\r
-  UINT state;\r
-\r
-  state = IsDlgButtonChecked(hDlg, OPT_TCUseMoves)\r
-       + 2*IsDlgButtonChecked(hDlg, OPT_TCUseFixed);\r
-  EnableWindow(GetDlgItem(hDlg, OPT_TCTime), state == 1);\r
-  EnableWindow(GetDlgItem(hDlg, OPT_TCMoves), state == 1);\r
-  EnableWindow(GetDlgItem(hDlg, OPT_TCtext1), state == 1);\r
-  EnableWindow(GetDlgItem(hDlg, OPT_TCtext2), state == 1);\r
-  EnableWindow(GetDlgItem(hDlg, OPT_TCTime2), !state);\r
-  EnableWindow(GetDlgItem(hDlg, OPT_TCInc), !state);\r
-  EnableWindow(GetDlgItem(hDlg, OPT_TCitext1), !state);\r
-  EnableWindow(GetDlgItem(hDlg, OPT_TCitext2), !state);\r
-  EnableWindow(GetDlgItem(hDlg, OPT_TCitext3), !state);\r
-  EnableWindow(GetDlgItem(hDlg, OPT_TCFixed), state == 2);\r
-  EnableWindow(GetDlgItem(hDlg, OPT_TCftext), state == 2);\r
-}\r
-\r
-\r
-LRESULT CALLBACK\r
-TimeControl(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
-{\r
-  char buf[MSG_SIZ], *tc;\r
-  int mps, odds1, odds2, st;\r
-  float increment;\r
-  BOOL ok, ok2;\r
-\r
-  switch (message) {\r
-  case WM_INITDIALOG: /* message: initialize dialog box */\r
-    /* Center the dialog over the application window */\r
-    CenterWindow (hDlg, GetWindow (hDlg, GW_OWNER));\r
-    Translate(hDlg, DLG_TimeControl);\r
-    /* Initialize the dialog items */\r
-    if (/*appData.clockMode &&*/ !appData.icsActive) { // [HGM] even if !clockMode, we could want to set it in tournament dialog\r
-      if (searchTime) {\r
-       CheckRadioButton(hDlg, OPT_TCUseMoves, OPT_TCUseFixed,\r
-                        OPT_TCUseFixed);\r
-       SetDlgItemInt(hDlg, OPT_TCFixed, searchTime, FALSE);\r
-      } else\r
-      if (appData.timeIncrement == -1) {\r
-       CheckRadioButton(hDlg, OPT_TCUseMoves, OPT_TCUseFixed,\r
-                        OPT_TCUseMoves);\r
-       SetDlgItemText(hDlg, OPT_TCTime, appData.timeControl);\r
-       SetDlgItemInt(hDlg, OPT_TCMoves, appData.movesPerSession,\r
-                     FALSE);\r
-       SetDlgItemText(hDlg, OPT_TCTime2, "");\r
-       SetDlgItemText(hDlg, OPT_TCInc, "");\r
-      } else {\r
-       int i = appData.timeIncrement;\r
-       if(i == appData.timeIncrement) snprintf(buf, MSG_SIZ, "%d", i);\r
-       else snprintf(buf, MSG_SIZ, "%4.2f", appData.timeIncrement);\r
-       CheckRadioButton(hDlg, OPT_TCUseMoves, OPT_TCUseFixed,\r
-                        OPT_TCUseInc);\r
-       SetDlgItemText(hDlg, OPT_TCTime, "");\r
-       SetDlgItemText(hDlg, OPT_TCMoves, "");\r
-       SetDlgItemText(hDlg, OPT_TCTime2, appData.timeControl);\r
-       SetDlgItemText(hDlg, OPT_TCInc, buf);\r
-      }\r
-      SetDlgItemInt(hDlg, OPT_TCOdds1, 1, FALSE);\r
-      SetDlgItemInt(hDlg, OPT_TCOdds2, 1, FALSE);\r
-      SetTimeControlEnables(hDlg);\r
-    }\r
-    return TRUE;\r
-\r
-  case WM_COMMAND: /* message: received a command */\r
-    switch (LOWORD(wParam)) {\r
-    case IDOK:\r
-      mps = appData.movesPerSession;\r
-      increment = appData.timeIncrement;\r
-      tc = appData.timeControl;\r
-      st = 0;\r
-      /* Read changed options from the dialog box */\r
-      if (IsDlgButtonChecked(hDlg, OPT_TCUseFixed)) {\r
-       st = GetDlgItemInt(hDlg, OPT_TCFixed, &ok, FALSE);\r
-       if (!ok || st <= 0) {\r
-         MessageBox(hDlg, _("Invalid max time per move"),\r
-                    _("Option Error"), MB_OK|MB_ICONEXCLAMATION);\r
-         return FALSE;\r
-       }\r
-      } else\r
-      if (IsDlgButtonChecked(hDlg, OPT_TCUseMoves)) {\r
-       increment = -1;\r
-       mps = GetDlgItemInt(hDlg, OPT_TCMoves, &ok, FALSE);\r
-       if (!ok || mps <= 0) {\r
-         MessageBox(hDlg, _("Invalid moves per time control"),\r
-                    _("Option Error"), MB_OK|MB_ICONEXCLAMATION);\r
-         return FALSE;\r
-       }\r
-       GetDlgItemText(hDlg, OPT_TCTime, buf, MSG_SIZ);\r
-       if (!ParseTimeControl(buf, increment, mps)) {\r
-         MessageBox(hDlg, _("Invalid minutes per time control"),\r
-                    _("Option Error"), MB_OK|MB_ICONEXCLAMATION);\r
-         return FALSE;\r
-       }\r
-      tc = buf;\r
-      } else {\r
-       GetDlgItemText(hDlg, OPT_TCInc, buf, MSG_SIZ);\r
-       ok = (sscanf(buf, "%f%c", &increment, buf) == 1);\r
-       if (!ok || increment < 0) {\r
-         MessageBox(hDlg, _("Invalid increment"),\r
-                    _("Option Error"), MB_OK|MB_ICONEXCLAMATION);\r
-         return FALSE;\r
-       }\r
-       GetDlgItemText(hDlg, OPT_TCTime2, buf, MSG_SIZ);\r
-       if (!ParseTimeControl(buf, increment, mps)) {\r
-         MessageBox(hDlg, _("Invalid initial time"),\r
-                    _("Option Error"), MB_OK|MB_ICONEXCLAMATION);\r
-         return FALSE;\r
-       }\r
-      tc = buf;\r
-      }\r
-      odds1 = GetDlgItemInt(hDlg, OPT_TCOdds1, &ok, FALSE);\r
-      odds2 = GetDlgItemInt(hDlg, OPT_TCOdds2, &ok2, FALSE);\r
-      if (!ok || !ok2 || odds1 <= 0 || odds2 <= 0) {\r
-         MessageBox(hDlg, _("Invalid time-odds factor"),\r
-                    _("Option Error"), MB_OK|MB_ICONEXCLAMATION);\r
-         return FALSE;\r
-      }\r
-      searchTime = st;\r
-      appData.timeControl = strdup(tc);\r
-      appData.movesPerSession = mps;\r
-      appData.timeIncrement = increment;\r
-      appData.firstTimeOdds  = first.timeOdds  = odds1;\r
-      appData.secondTimeOdds = second.timeOdds = odds2;\r
-      Reset(TRUE, TRUE);\r
-      EndDialog(hDlg, TRUE);\r
-      return TRUE;\r
-\r
-    case IDCANCEL:\r
-      EndDialog(hDlg, FALSE);\r
-      return TRUE;\r
-\r
-    default:\r
-      SetTimeControlEnables(hDlg);\r
-      break;\r
-    }\r
-    break;\r
-  }\r
-  return FALSE;\r
-}\r
-\r
-VOID\r
-TimeControlOptionsPopup(HWND hwnd)\r
-{\r
-  if (gameMode != BeginningOfGame) {\r
-    DisplayError(_("Changing time control during a game is not implemented"), 0);\r
-  } else {\r
-    FARPROC lpProc = MakeProcInstance((FARPROC)TimeControl, hInst);\r
-    DialogBox(hInst, MAKEINTRESOURCE(DLG_TimeControl), hwnd, (DLGPROC) lpProc);\r
-    FreeProcInstance(lpProc);\r
-  }\r
-}\r
-\r
-/*---------------------------------------------------------------------------*\\r
- *\r
- * Engine Options Dialog functions\r
- *\r
-\*---------------------------------------------------------------------------*/\r
-#define CHECK_BOX(x,y) CheckDlgButton(hDlg, (x), (BOOL)(y))\r
-#define IS_CHECKED(x) (Boolean)IsDlgButtonChecked(hDlg, (x))\r
-\r
-#define INT_ABS( n )    ((n) >= 0 ? (n) : -(n))\r
-\r
-LRESULT CALLBACK EnginePlayOptionsDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
-{\r
-  switch (message) {\r
-  case WM_INITDIALOG: /* message: initialize dialog box */\r
-\r
-    /* Center the dialog over the application window */\r
-    CenterWindow (hDlg, GetWindow (hDlg, GW_OWNER));\r
-    Translate(hDlg, DLG_EnginePlayOptions);\r
-\r
-    /* Initialize the dialog items */\r
-    CHECK_BOX(IDC_EpPeriodicUpdates, appData.periodicUpdates);\r
-    CHECK_BOX(IDC_EpPonder, appData.ponderNextMove);\r
-    CHECK_BOX(IDC_EpShowThinking, appData.showThinking);\r
-    CHECK_BOX(IDC_EpHideThinkingHuman, appData.hideThinkingFromHuman);\r
-\r
-    CHECK_BOX(IDC_TestClaims, appData.testClaims);\r
-    CHECK_BOX(IDC_DetectMates, appData.checkMates);\r
-    CHECK_BOX(IDC_MaterialDraws, appData.materialDraws);\r
-    CHECK_BOX(IDC_TrivialDraws, appData.trivialDraws);\r
-\r
-    CHECK_BOX(IDC_ScoreAbs1, appData.firstScoreIsAbsolute);\r
-    CHECK_BOX(IDC_ScoreAbs2, appData.secondScoreIsAbsolute);\r
-\r
-    SetDlgItemInt( hDlg, IDC_EpDrawMoveCount, appData.adjudicateDrawMoves, TRUE );\r
-    SendDlgItemMessage( hDlg, IDC_EpDrawMoveCount, EM_SETSEL, 0, -1 );\r
-\r
-    SetDlgItemInt( hDlg, IDC_EpAdjudicationThreshold, INT_ABS(appData.adjudicateLossThreshold), TRUE );\r
-    SendDlgItemMessage( hDlg, IDC_EpAdjudicationThreshold, EM_SETSEL, 0, -1 );\r
-\r
-    SetDlgItemInt( hDlg, IDC_RuleMoves, appData.ruleMoves, TRUE );\r
-    SendDlgItemMessage( hDlg, IDC_RuleMoves, EM_SETSEL, 0, -1 );\r
-\r
-    SetDlgItemInt( hDlg, IDC_DrawRepeats, INT_ABS(appData.drawRepeats), TRUE );\r
-    SendDlgItemMessage( hDlg, IDC_DrawRepeats, EM_SETSEL, 0, -1 );\r
-\r
-    return TRUE;\r
-\r
-  case WM_COMMAND: /* message: received a command */\r
-    switch (LOWORD(wParam)) {\r
-    case IDOK:\r
-      /* Read changed options from the dialog box */\r
-      PeriodicUpdatesEvent(          IS_CHECKED(IDC_EpPeriodicUpdates));\r
-      PonderNextMoveEvent(           IS_CHECKED(IDC_EpPonder));\r
-      appData.hideThinkingFromHuman= IS_CHECKED(IDC_EpHideThinkingHuman); // [HGM] thinking: moved up\r
-      appData.showThinking   = IS_CHECKED(IDC_EpShowThinking);\r
-      ShowThinkingEvent(); // [HGM] thinking: tests all options that need thinking output\r
-      appData.testClaims    = IS_CHECKED(IDC_TestClaims);\r
-      appData.checkMates    = IS_CHECKED(IDC_DetectMates);\r
-      appData.materialDraws = IS_CHECKED(IDC_MaterialDraws);\r
-      appData.trivialDraws  = IS_CHECKED(IDC_TrivialDraws);\r
-\r
-      appData.adjudicateDrawMoves = GetDlgItemInt(hDlg, IDC_EpDrawMoveCount, NULL, FALSE );\r
-      appData.adjudicateLossThreshold = - (int) GetDlgItemInt(hDlg, IDC_EpAdjudicationThreshold, NULL, FALSE );\r
-      appData.ruleMoves = GetDlgItemInt(hDlg, IDC_RuleMoves, NULL, FALSE );\r
-      appData.drawRepeats = (int) GetDlgItemInt(hDlg, IDC_DrawRepeats, NULL, FALSE );\r
-\r
-      first.scoreIsAbsolute  = appData.firstScoreIsAbsolute  = IS_CHECKED(IDC_ScoreAbs1);\r
-      second.scoreIsAbsolute = appData.secondScoreIsAbsolute = IS_CHECKED(IDC_ScoreAbs2);\r
-\r
-      EndDialog(hDlg, TRUE);\r
-      return TRUE;\r
-\r
-    case IDCANCEL:\r
-      EndDialog(hDlg, FALSE);\r
-      return TRUE;\r
-\r
-    case IDC_EpDrawMoveCount:\r
-    case IDC_EpAdjudicationThreshold:\r
-    case IDC_DrawRepeats:\r
-    case IDC_RuleMoves:\r
-        if( HIWORD(wParam) == EN_CHANGE ) {\r
-            int n1_ok;\r
-            int n2_ok;\r
-            int n3_ok;\r
-            int n4_ok;\r
-\r
-            GetDlgItemInt(hDlg, IDC_EpDrawMoveCount, &n1_ok, FALSE );\r
-            GetDlgItemInt(hDlg, IDC_EpAdjudicationThreshold, &n2_ok, FALSE );\r
-            GetDlgItemInt(hDlg, IDC_RuleMoves, &n3_ok, FALSE );\r
-            GetDlgItemInt(hDlg, IDC_DrawRepeats, &n4_ok, FALSE );\r
-\r
-            EnableWindow( GetDlgItem(hDlg, IDOK), n1_ok && n2_ok && n3_ok && n4_ok ? TRUE : FALSE );\r
-        }\r
-        return TRUE;\r
-    }\r
-    break;\r
-  }\r
-  return FALSE;\r
-}\r
-\r
-VOID EnginePlayOptionsPopup(HWND hwnd)\r
-{\r
-  FARPROC lpProc;\r
-\r
-  lpProc = MakeProcInstance((FARPROC)EnginePlayOptionsDialog, hInst);\r
-  DialogBox(hInst, MAKEINTRESOURCE(DLG_EnginePlayOptions), hwnd, (DLGPROC) lpProc);\r
-  FreeProcInstance(lpProc);\r
-}\r
-\r
-/*---------------------------------------------------------------------------*\\r
- *\r
- * UCI Options Dialog functions\r
- *\r
-\*---------------------------------------------------------------------------*/\r
-INT CALLBACK BrowseCallbackProc(HWND hwnd, \r
-                                UINT uMsg,\r
-                                LPARAM lp, \r
-                                LPARAM pData) \r
-{\r
-    switch(uMsg) \r
-    {\r
-      case BFFM_INITIALIZED: \r
-        SendMessage(hwnd, BFFM_SETSELECTION, TRUE, (LPARAM)pData);\r
-        break;\r
-    }\r
-    return 0;\r
-}\r
-\r
-BOOL BrowseForFolder( const char * title, char * path )\r
-{\r
-    BOOL result = FALSE;\r
-    BROWSEINFO bi;\r
-    LPITEMIDLIST pidl;\r
-\r
-    ZeroMemory( &bi, sizeof(bi) );\r
-\r
-    bi.lpszTitle = title == 0 ? _("Choose Folder") : title;\r
-    bi.ulFlags = BIF_RETURNONLYFSDIRS;\r
-    bi.lpfn = BrowseCallbackProc;\r
-    bi.lParam = (LPARAM) path;\r
-\r
-    pidl = SHBrowseForFolder( &bi );\r
-\r
-    if( pidl != 0 ) {\r
-        IMalloc * imalloc = 0;\r
-\r
-        if( SHGetPathFromIDList( pidl, path ) ) {\r
-            result = TRUE;\r
-        }\r
-\r
-        if( SUCCEEDED( SHGetMalloc ( &imalloc ) ) ) {\r
-            imalloc->lpVtbl->Free(imalloc,pidl);\r
-            imalloc->lpVtbl->Release(imalloc);\r
-        }\r
-    }\r
-\r
-    return result;\r
-}\r
-\r
-int\r
-IsMultiFormat(char *s)\r
-{\r
-  char *p = strchr(s, ':');\r
-  return p && p != s+1;\r
-}\r
-\r
-LRESULT CALLBACK UciOptionsDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
-{\r
-  char buf[MAX_PATH];\r
-  int oldCores;\r
-\r
-  switch (message) {\r
-  case WM_INITDIALOG: /* message: initialize dialog box */\r
-\r
-    /* Center the dialog over the application window */\r
-    CenterWindow (hDlg, GetWindow (hDlg, GW_OWNER));\r
-    Translate(hDlg, DLG_OptionsUCI);\r
-\r
-    /* Initialize the dialog items */\r
-    SetDlgItemText( hDlg, IDC_PolyglotDir, appData.polyglotDir );\r
-    SetDlgItemInt( hDlg, IDC_HashSize, appData.defaultHashSize, TRUE );\r
-    if(appData.defaultPathEGTB[0])\r
-    SetDlgItemText( hDlg, IDC_PathToEGTB, appData.defaultPathEGTB );\r
-    else\r
-    SetDlgItemText( hDlg, IDC_PathToEGTB, appData.egtFormats );\r
-    SetDlgItemInt( hDlg, IDC_SizeOfEGTB, appData.defaultCacheSizeEGTB, TRUE );\r
-    CheckDlgButton( hDlg, IDC_UseBook, (BOOL) appData.usePolyglotBook );\r
-    SetDlgItemText( hDlg, IDC_BookFile, appData.polyglotBook );\r
-    // [HGM] smp: input field for nr of cores:\r
-    SetDlgItemInt( hDlg, IDC_Cores, appData.smpCores, TRUE );\r
-    // [HGM] book: tick boxes for own book use\r
-    CheckDlgButton( hDlg, IDC_OwnBook1, (BOOL) appData.firstHasOwnBookUCI );\r
-    CheckDlgButton( hDlg, IDC_OwnBook2, (BOOL) appData.secondHasOwnBookUCI );\r
-    SetDlgItemInt( hDlg, IDC_BookDep, appData.bookDepth, TRUE );\r
-    SetDlgItemInt( hDlg, IDC_BookStr, appData.bookStrength, TRUE );\r
-    SetDlgItemInt( hDlg, IDC_Games, appData.defaultMatchGames, TRUE );\r
-\r
-    SendDlgItemMessage( hDlg, IDC_PolyglotDir, EM_SETSEL, 0, -1 );\r
-    // [HGM] Yet another ponder duplicate\r
-    CheckDlgButton( hDlg, OPT_PonderNextMove, (BOOL) appData.ponderNextMove );\r
-\r
-    return TRUE;\r
-\r
-  case WM_COMMAND: /* message: received a command */\r
-    switch (LOWORD(wParam)) {\r
-    case IDOK:\r
-      GetDlgItemText( hDlg, IDC_PolyglotDir, buf, sizeof(buf) );\r
-      appData.polyglotDir = strdup(buf);\r
-      appData.defaultHashSize = GetDlgItemInt(hDlg, IDC_HashSize, NULL, FALSE );\r
-      appData.defaultCacheSizeEGTB = GetDlgItemInt(hDlg, IDC_SizeOfEGTB, NULL, FALSE );\r
-      GetDlgItemText( hDlg, IDC_PathToEGTB, buf, sizeof(buf) );\r
-      if(IsMultiFormat(buf)) {\r
-        ASSIGN(appData.egtFormats, buf);\r
-      } else {\r
-        ASSIGN(appData.defaultPathEGTB, buf);\r
-      }\r
-      GetDlgItemText( hDlg, IDC_BookFile, buf, sizeof(buf) );\r
-      appData.polyglotBook = strdup(buf);\r
-      appData.usePolyglotBook = (Boolean) IsDlgButtonChecked( hDlg, IDC_UseBook );\r
-      // [HGM] smp: get nr of cores and ponder:\r
-      oldCores = appData.smpCores;\r
-      appData.smpCores = GetDlgItemInt(hDlg, IDC_Cores, NULL, FALSE );\r
-      if(appData.smpCores != oldCores) NewSettingEvent(FALSE, &(first.maxCores), "cores", appData.smpCores);\r
-      PonderNextMoveEvent((Boolean) IsDlgButtonChecked( hDlg, OPT_PonderNextMove ));\r
-      // [HGM] book: read tick boxes for own book use\r
-      appData.firstHasOwnBookUCI  = (Boolean) IsDlgButtonChecked( hDlg, IDC_OwnBook1 );\r
-      appData.secondHasOwnBookUCI = (Boolean) IsDlgButtonChecked( hDlg, IDC_OwnBook2 );\r
-      appData.bookDepth = GetDlgItemInt(hDlg, IDC_BookDep, NULL, FALSE );\r
-      appData.bookStrength = GetDlgItemInt(hDlg, IDC_BookStr, NULL, FALSE );\r
-      appData.defaultMatchGames = GetDlgItemInt(hDlg, IDC_Games, NULL, FALSE );\r
-\r
-      if(gameMode == BeginningOfGame) Reset(TRUE, TRUE);\r
-      EndDialog(hDlg, TRUE);\r
-      return TRUE;\r
-\r
-    case IDCANCEL:\r
-      EndDialog(hDlg, FALSE);\r
-      return TRUE;\r
-\r
-    case IDC_BrowseForBook:\r
-      {\r
-          char filter[] = {\r
-              'A','l','l',' ','F','i','l','e','s', 0,\r
-              '*','.','*', 0,\r
-              'B','I','N',' ','F','i','l','e','s', 0,\r
-              '*','.','b','i','n', 0,\r
-              0 };\r
-\r
-          OPENFILENAME ofn;\r
-\r
-          safeStrCpy( buf, "" , sizeof( buf)/sizeof( buf[0]) );\r
-\r
-          ZeroMemory( &ofn, sizeof(ofn) );\r
-\r
-          ofn.lStructSize = sizeof(ofn);\r
-          ofn.hwndOwner = hDlg;\r
-          ofn.hInstance = hInst;\r
-          ofn.lpstrFilter = filter;\r
-\r
-          ofn.lpstrFile = buf;\r
-          ofn.nMaxFile = sizeof(buf);\r
-          ofn.lpstrTitle = _("Choose Book");\r
-          ofn.Flags = OFN_FILEMUSTEXIST | OFN_LONGNAMES | OFN_HIDEREADONLY;\r
-\r
-          if( GetOpenFileName( &ofn ) ) {\r
-              SetDlgItemText( hDlg, IDC_BookFile, buf );\r
-          }\r
-      }\r
-      return TRUE;\r
-\r
-    case IDC_BrowseForPolyglotDir:\r
-      if( BrowseForFolder( _("Choose Polyglot Directory"), buf ) ) {\r
-        SetDlgItemText( hDlg, IDC_PolyglotDir, buf );\r
-\r
-        strcat( buf, "\\polyglot.exe" );\r
-\r
-        if( GetFileAttributes(buf) == 0xFFFFFFFF ) {\r
-            MessageBox( hDlg, _("Polyglot was not found in the specified folder!"), "Warning", MB_OK | MB_ICONWARNING );\r
-        }\r
-      }\r
-      return TRUE;\r
-\r
-    case IDC_BrowseForEGTB:\r
-      if( BrowseForFolder( _("Choose EGTB Directory:"), buf ) ) {\r
-        SetDlgItemText( hDlg, IDC_PathToEGTB, buf );\r
-      }\r
-      return TRUE;\r
-\r
-    case IDC_HashSize:\r
-    case IDC_SizeOfEGTB:\r
-        if( HIWORD(wParam) == EN_CHANGE ) {\r
-            int n1_ok;\r
-            int n2_ok;\r
-\r
-            GetDlgItemInt(hDlg, IDC_HashSize, &n1_ok, FALSE );\r
-            GetDlgItemInt(hDlg, IDC_SizeOfEGTB, &n2_ok, FALSE );\r
-\r
-            EnableWindow( GetDlgItem(hDlg, IDOK), n1_ok && n2_ok ? TRUE : FALSE );\r
-        }\r
-        return TRUE;\r
-    }\r
-    break;\r
-  }\r
-  return FALSE;\r
-}\r
-\r
-VOID UciOptionsPopup(HWND hwnd)\r
-{\r
-  FARPROC lpProc;\r
-\r
-  lpProc = MakeProcInstance((FARPROC)UciOptionsDialog, hInst);\r
-  DialogBox(hInst, MAKEINTRESOURCE(DLG_OptionsUCI), hwnd, (DLGPROC) lpProc);\r
-  FreeProcInstance(lpProc);\r
-}\r
diff --git a/winboard/woptions.h b/winboard/woptions.h
deleted file mode 100644 (file)
index 7ee3e3b..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/*\r
- * woptions.h -- Options dialog box routines for WinBoard\r
- *\r
- * Copyright 2000, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free\r
- * Software Foundation, Inc.\r
- *\r
- * Enhancements Copyright 2005 Alessandro Scotti\r
- *\r
- * ------------------------------------------------------------------------\r
- *\r
- * GNU XBoard is free software: you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation, either version 3 of the License, or (at\r
- * your option) any later version.\r
- *\r
- * GNU XBoard is distributed in the hope that it will be useful, but\r
- * WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
- * General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program. If not, see http://www.gnu.org/licenses/.  *\r
- *\r
- *------------------------------------------------------------------------\r
- ** See the file ChangeLog for a revision history.  */\r
-\r
-#include <windows.h>\r
-\r
-VOID GeneralOptionsPopup(HWND hwnd);\r
-VOID BoardOptionsPopup(HWND hwnd);\r
-VOID IcsOptionsPopup(HWND hwnd);\r
-VOID FontsOptionsPopup(HWND hwnd);\r
-VOID SoundOptionsPopup(HWND hwnd);\r
-VOID CommPortOptionsPopup(HWND hwnd);\r
-VOID LoadOptionsPopup(HWND hwnd);\r
-VOID SaveOptionsPopup(HWND hwnd);\r
-VOID TimeControlOptionsPopup(HWND hwnd);\r
-VOID EnginePlayOptionsPopup(HWND hwnd);\r
-VOID UciOptionsPopup(HWND hwnd);\r
-\r
-\r
diff --git a/winboard/wsettings.c b/winboard/wsettings.c
deleted file mode 100644 (file)
index 893d91b..0000000
+++ /dev/null
@@ -1,1030 +0,0 @@
-/*\r
- * woptions.h -- Options dialog box routines for WinBoard\r
- *\r
- * Copyright 2003, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free\r
- * Software Foundation, Inc.\r
- *\r
- * ------------------------------------------------------------------------\r
- *\r
- * GNU XBoard is free software: you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation, either version 3 of the License, or (at\r
- * your option) any later version.\r
- *\r
- * GNU XBoard is distributed in the hope that it will be useful, but\r
- * WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
- * General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program. If not, see http://www.gnu.org/licenses/.  *\r
- *\r
- *------------------------------------------------------------------------\r
- ** See the file ChangeLog for a revision history.  */\r
-\r
-/*\r
- * Engine-settings dialog. The complexity come from an attempt to present the engine-defined options\r
- * in a nicey formatted layout. To this end we first run a back-end pre-formatter, which will distribute\r
- * the controls over two columns (the minimum required, as some are double width). It also takes care of\r
- * grouping options that start with the same word (mainly for "Polyglot ..." options). It assigns relative\r
- * suitability to break points between lines, and in the end decides if and where to break up the list\r
- * for display in multiple (2*N) columns.\r
- * The thus obtained list representing the topology of the layout is then passed to a front-end routine\r
- * that generates the actual dialog box from it.\r
- */\r
-\r
-#include "config.h"\r
-\r
-#include <windows.h>\r
-#include <Windowsx.h>\r
-#include <stdio.h>\r
-#include <string.h>\r
-#include "common.h"\r
-#include "frontend.h"\r
-#include "backend.h"\r
-#include "winboard.h"\r
-#include "backendz.h"\r
-\r
-#define _(s) T_(s)\r
-#define N_(s) s\r
-\r
-int layoutList[2*MAX_OPTIONS];\r
-int checkList[2*MAX_OPTIONS];\r
-int comboList[2*MAX_OPTIONS];\r
-int buttonList[2*MAX_OPTIONS];\r
-int boxList[2*MAX_OPTIONS];\r
-int groupNameList[2*MAX_OPTIONS];\r
-int breaks[MAX_OPTIONS];\r
-int checks, combos, buttons, layout, groups;\r
-char title[MSG_SIZ];\r
-char *engineName, *engineDir, *engineChoice, *engineLine, *nickName, *params;\r
-Boolean isUCI, hasBook, storeVariant, v1, addToList, useNick, isUCCI;\r
-extern Option installOptions[], matchOptions[];\r
-char *engineList[MAXENGINES] = {""}, *engineMnemonic[MAXENGINES] = {""};\r
-void (*okFunc)();\r
-ChessProgramState *activeCps;\r
-Option *activeList;\r
-int InstallOK P((void));\r
-typedef int ButtonCallback(HWND h);\r
-ButtonCallback *comboCallback;\r
-\r
-void\r
-PrintOpt(int i, int right, Option *optionList)\r
-{\r
-    if(i<0) {\r
-       if(!right) fprintf(debugFP, "%30s", "");\r
-    } else {\r
-       Option opt = optionList[i];\r
-       switch(opt.type) {\r
-           case Slider:\r
-           case Spin:\r
-               fprintf(debugFP, "%20.20s [    +/-]", opt.name);\r
-               break;\r
-           case TextBox:\r
-           case FileName:\r
-           case PathName:\r
-               fprintf(debugFP, "%20.20s [______________________________________]", opt.name);\r
-               break;\r
-           case Label:\r
-               fprintf(debugFP, "%41.41s", opt.name);\r
-               break;\r
-           case CheckBox:\r
-               fprintf(debugFP, "[x] %-26.25s", opt.name);\r
-               break;\r
-           case ComboBox:\r
-               fprintf(debugFP, "%20.20s [ COMBO ]", opt.name);\r
-               break;\r
-           case Button:\r
-           case SaveButton:\r
-           case ResetButton:\r
-               fprintf(debugFP, "[ %26.26s ]", opt.name);\r
-           case Message:\r
-           default:\r
-               break;\r
-       }\r
-    }\r
-    fprintf(debugFP, right ? "\n" : " ");\r
-}\r
-\r
-void\r
-CreateOptionDialogTest(int *list, int nr, Option *optionList)\r
-{\r
-    int line;\r
-\r
-    for(line = 0; line < nr; line+=2) {\r
-       PrintOpt(list[line+1], 0, optionList);\r
-       PrintOpt(list[line], 1, optionList);\r
-    }\r
-}\r
-\r
-void\r
-LayoutOptions(int firstOption, int endOption, char *groupName, Option *optionList)\r
-{\r
-    int i, b = strlen(groupName), stop, prefix, right, nextOption, firstButton = buttons;\r
-    Control lastType, nextType=Label;\r
-\r
-    nextOption = firstOption;\r
-    while(nextOption < endOption) {\r
-       checks = combos = 0; stop = 0;\r
-       lastType = Button; // kludge to make sure leading Spin will not be prefixed\r
-       // first separate out buttons for later treatment, and collect consecutive checks and combos\r
-       while(nextOption < endOption && !stop) {\r
-           switch(nextType = optionList[nextOption].type) {\r
-               case CheckBox: checkList[checks++] = nextOption; lastType = CheckBox; break;\r
-               case ComboBox: comboList[combos++] = nextOption; lastType = ComboBox; break;\r
-               case ResetButton:\r
-               case SaveButton:\r
-               case Button:  buttonList[buttons++] = nextOption; lastType = Button; break;\r
-               case TextBox:\r
-               case ListBox:\r
-               case FileName:\r
-               case PathName:\r
-               case Slider:\r
-               case Label:\r
-               case Spin: stop++;\r
-               default:\r
-               case Message: ; // cannot happen\r
-           }\r
-           nextOption++;\r
-       }\r
-       // We now must be at the end, or looking at a spin or textbox (in nextType)\r
-       if(!stop)\r
-           nextType = Button; // kudge to flush remaining checks and combos undistorted\r
-       // Take a new line if a spin follows combos or checks, or when we encounter a textbox\r
-       if((combos+checks || nextType == TextBox || nextType == ListBox || nextType == FileName || nextType == PathName || nextType == Label) && layout&1) {\r
-           layoutList[layout++] = -1;\r
-       }\r
-       // The last check or combo before a spin will be put on the same line as that spin (prefix)\r
-       // and will thus not be grouped with other checks and combos\r
-       prefix = -1;\r
-       if(nextType == Spin && lastType != Button) {\r
-           if(lastType == CheckBox) prefix = checkList[--checks]; else\r
-           if(lastType == ComboBox) prefix = comboList[--combos];\r
-       }\r
-       // if a combo is followed by a textbox, it must stay at the end of the combo/checks list to appear\r
-       // immediately above the textbox, so treat it as check. (A check would automatically be and remain there.)\r
-       if((nextType == TextBox || nextType == ListBox || nextType == FileName || nextType == PathName) && lastType == ComboBox)\r
-           checkList[checks++] = comboList[--combos];\r
-       // Now append the checks behind the (remaining) combos to treat them as one group\r
-       for(i=0; i< checks; i++)\r
-           comboList[combos++] = checkList[i];\r
-       // emit the consecutive checks and combos in two columns\r
-       right = combos/2; // rounded down if odd!\r
-       for(i=0; i<right; i++) {\r
-           breaks[layout/2] = 2;\r
-           layoutList[layout++] = comboList[i];\r
-           layoutList[layout++] = comboList[i + right];\r
-       }\r
-       // An odd check or combo (which could belong to following textBox) will be put in the left column\r
-       // If there was an even number of checks and combos the last one will automatically be in that position\r
-       if(combos&1) {\r
-           layoutList[layout++] = -1;\r
-           layoutList[layout++] = comboList[2*right];\r
-       }\r
-       if(nextType == ListBox) {\r
-           // A listBox will be left-adjusted, and cause rearrangement of the elements before it to the right column\r
-           breaks[layout/2] = lastType == Button ? 0 : 100;\r
-           layoutList[layout++] = -1;\r
-           layoutList[layout++] = nextOption - 1;\r
-           for(i=optionList[nextOption-1].min; i>0; i--) { // extra high text edit\r
-               breaks[layout/2] = -1;\r
-               layoutList[layout++] = -1;\r
-               layoutList[layout++] = -1;\r
-           }\r
-       } else \r
-       if(nextType == TextBox || nextType == FileName || nextType == PathName || nextType == Label) {\r
-           // A textBox is double width, so must be left-adjusted, and the right column remains empty\r
-           breaks[layout/2] = lastType == Button ? 0 : 100;\r
-           layoutList[layout++] = -1;\r
-           layoutList[layout++] = nextOption - 1;\r
-           if(optionList[nextOption-1].min) { // extra high text edit: goes right of existing listbox\r
-               layout -= 2; // remove\r
-               layoutList[layout-2*optionList[nextOption-1].min-2] = nextOption - 1;\r
-           }\r
-       } else if(nextType == Spin) {\r
-           // A spin will go in the next available position (right to left!). If it had to be prefixed with\r
-           // a check or combo, this next position must be to the right, and the prefix goes left to it.\r
-           layoutList[layout++] = nextOption - 1;\r
-           if(prefix >= 0) layoutList[layout++] = prefix;\r
-       }\r
-    }\r
-    // take a new line if needed\r
-    if(layout&1) layoutList[layout++] = -1;\r
-    // emit the buttons belonging in this group; loose buttons are saved for last, to appear at bottom of dialog\r
-    if(b) {\r
-       while(buttons > firstButton)\r
-           layoutList[layout++] = buttonList[--buttons];\r
-       if(layout&1) layoutList[layout++] = -1;\r
-    }\r
-}\r
-\r
-char *\r
-EndMatch(char *s1, char *s2)\r
-{\r
-       char *p, *q;\r
-       p = s1; while(*p) p++;\r
-       q = s2; while(*q) q++;\r
-       while(p > s1 && q > s2 && *p == *q) { p--; q--; }\r
-       if(p[1] == 0) return NULL;\r
-       return p+1;\r
-}\r
-\r
-void\r
-DesignOptionDialog(int nrOpt, Option *optionList)\r
-{\r
-    int k=0, n=0;\r
-    char buf[MSG_SIZ];\r
-\r
-    layout = 0;\r
-    buttons = groups = 0;\r
-    while(k < nrOpt) { // k steps through 'solitary' options\r
-       // look if we hit a group of options having names that start with the same word\r
-       int groupSize = 1, groupNameLength = 50;\r
-       sscanf(optionList[k].name, "%s", buf); // get first word of option name\r
-       while(k + groupSize < nrOpt &&\r
-             strstr(optionList[k+groupSize].name, buf) == optionList[k+groupSize].name) {\r
-               int j;\r
-               for(j=0; j<groupNameLength; j++) // determine common initial part of option names\r
-                   if( optionList[k].name[j] != optionList[k+groupSize].name[j]) break;\r
-               groupNameLength = j;\r
-               groupSize++;\r
-\r
-       }\r
-       if(groupSize > 3) {\r
-               // We found a group to terminates the current section\r
-               LayoutOptions(n, k, "", optionList); // flush all solitary options appearing before the group\r
-               groupNameList[groups] = groupNameLength;\r
-               boxList[groups++] = layout; // group start in even entries\r
-               LayoutOptions(k, k+groupSize, buf, optionList); // flush the group\r
-               boxList[groups++] = layout; // group end in odd entries\r
-               k = n = k + groupSize;\r
-       } else k += groupSize; // small groups are grouped with the solitary options\r
-    }\r
-    if(n != k) LayoutOptions(n, k, "", optionList); // flush remaining solitary options\r
-    // decide if and where we break into two column pairs\r
-\r
-    // Emit buttons and add OK and cancel\r
-//    for(k=0; k<buttons; k++) layoutList[layout++] = buttonList[k];\r
\r
-   // Create the dialog window\r
-    if(appData.debugMode) CreateOptionDialogTest(layoutList, layout, optionList);\r
-//    CreateOptionDialog(layoutList, layout, optionList);\r
-    if(!activeCps) okFunc = optionList[nrOpt].target;\r
-}\r
-\r
-#include <windows.h>\r
-\r
-extern HINSTANCE hInst;\r
-\r
-typedef struct {\r
-    DLGITEMTEMPLATE item;\r
-    WORD code;\r
-    WORD controlType;\r
-    wchar_t d1, data;\r
-    WORD creationData;\r
-} Item;\r
-\r
-struct {\r
-    DLGTEMPLATE header;\r
-    WORD menu;\r
-    WORD winClass;\r
-    wchar_t title[20];\r
-    WORD pointSize;\r
-    wchar_t fontName[14];\r
-    Item control[MAX_OPTIONS];\r
-} template = {\r
-    { DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | DS_SETFONT, 0, 0, 0, 0, 295, 300 },\r
-    0x0000, 0x0000, L"Engine #1 Settings ", 8, L"MS Sans Serif"\r
-};\r
-\r
-char *\r
-AddCR(char *s)\r
-{\r
-    char *p=s, *q;\r
-    int n=0;\r
-    while(p = strchr(p, '\n')) p++, n++; // count linefeeds\r
-    p = q = malloc(strlen(s) + n + 1);\r
-    while(*p++ = *s++) if(p[-1] == '\n') p[-1] = '\r', *p++ = '\n';\r
-    return q;\r
-}\r
-\r
-void\r
-SetOptionValues(HWND hDlg, ChessProgramState *cps, Option *optionList)\r
-// Put all current option values in controls, and write option names next to them\r
-{\r
-    HANDLE hwndCombo;\r
-    int i, k;\r
-    char **choices, *name;\r
-\r
-    for(i=0; i<layout+buttons; i++) {\r
-       int j=layoutList[i];\r
-       if(j == -2) SetDlgItemText( hDlg, 2000+2*i, ". . ." );\r
-       if(j<0) continue;\r
-       name = cps ? optionList[j].name : _(optionList[j].name);\r
-       if(strstr(name, "Polyglot ") == name) name += 9;\r
-       SetDlgItemText( hDlg, 2000+2*i, name );\r
-//if(appData.debugMode) fprintf(debugFP, "# %s = %d\n",optionList[j].name, optionList[j].value );\r
-       switch(optionList[j].type) {\r
-           case Spin:\r
-               SetDlgItemInt( hDlg, 2001+2*i, cps ? optionList[j].value : *(int*)optionList[j].target, TRUE );\r
-               break;\r
-           case TextBox:\r
-           case FileName:\r
-           case PathName:\r
-               name = AddCR(cps ? optionList[j].textValue : *(char**)optionList[j].target); // stupid CR...\r
-               SetDlgItemText( hDlg, 2001+2*i, name);\r
-               free(name);\r
-               break;\r
-           case CheckBox:\r
-               CheckDlgButton( hDlg, 2000+2*i, (cps ? optionList[j].value : *(Boolean*)optionList[j].target) != 0);\r
-               break;\r
-           case ComboBox:\r
-               choices = (char**) optionList[j].textValue;\r
-               hwndCombo = GetDlgItem(hDlg, 2001+2*i);\r
-               SendMessage(hwndCombo, CB_RESETCONTENT, 0, 0);\r
-               for(k=0; k<optionList[j].max; k++) {\r
-                   SendMessage(hwndCombo, CB_ADDSTRING, 0, (LPARAM) choices[k]);\r
-               }\r
-               SendMessage(hwndCombo, CB_SELECTSTRING, (WPARAM) -1, (LPARAM) choices[optionList[j].value]);\r
-               break;\r
-           case ListBox:\r
-               choices = (char**) optionList[j].choice;\r
-               hwndCombo = GetDlgItem(hDlg, 2001+2*i);\r
-               SendMessage(hwndCombo, LB_RESETCONTENT, 0, 0);\r
-               for(k=0; k<optionList[j].max; k++) {\r
-                   SendMessage(hwndCombo, LB_ADDSTRING, 0, (LPARAM) choices[k]);\r
-               }\r
-               break;\r
-           case Button:\r
-           case SaveButton:\r
-           default:\r
-               break;\r
-       }\r
-    }\r
-    SetDlgItemText( hDlg, IDOK, _("OK") );\r
-    SetDlgItemText( hDlg, IDCANCEL, _("Cancel") );\r
-    title[0] &= ~32; // capitalize\r
-    SetWindowText( hDlg, title);\r
-    for(i=0; i<groups; i+=2) {\r
-       int id, p; char buf[MSG_SIZ];\r
-       id = k = boxList[i];\r
-       if(layoutList[k] < 0) k++;\r
-       if(layoutList[k] < 0) continue;\r
-       for(p=0; p<groupNameList[i]; p++) buf[p] = optionList[layoutList[k]].name[p];\r
-       buf[p] = 0;\r
-       SetDlgItemText( hDlg, 2000+2*(id+MAX_OPTIONS), buf );\r
-    }\r
-}\r
-\r
-\r
-int\r
-GetOptionValues(HWND hDlg, ChessProgramState *cps, Option *optionList)\r
-// read out all controls, and if value is altered, remember it and send it to the engine\r
-{\r
-    int i, k, new=0, changed=0, len;\r
-    char **choices, newText[MSG_SIZ], buf[MSG_SIZ], *text;\r
-    BOOL success;\r
-\r
-    for(i=0; i<layout; i++) {\r
-       int j=layoutList[i];\r
-       if(j<0) continue;\r
-       switch(optionList[j].type) {\r
-           case Spin:\r
-               new = GetDlgItemInt( hDlg, 2001+2*i, &success, TRUE );\r
-               if(!success) break;\r
-               if(new < optionList[j].min) new = optionList[j].min;\r
-               if(new > optionList[j].max) new = optionList[j].max;\r
-               if(!cps) { *(int*)optionList[j].target = new; break; }\r
-               changed = 2*(optionList[j].value != new);\r
-               optionList[j].value = new;\r
-               break;\r
-           case TextBox:\r
-           case FileName:\r
-           case PathName:\r
-               if(cps) len = MSG_SIZ - strlen(optionList[j].name) - 9, text = newText;\r
-               else    len = GetWindowTextLength(GetDlgItem(hDlg, 2001+2*i)) + 1, text = (char*) malloc(len);\r
-               success = GetDlgItemText( hDlg, 2001+2*i, text, len );\r
-               if(!success) text[0] = NULLCHAR; // empty string can be valid input\r
-               if(!cps) {\r
-                   char *p;\r
-                   p = (optionList[j].type != FileName ? strdup(text) : InterpretFileName(text, homeDir)); // all files relative to homeDir!\r
-                   FREE(*(char**)optionList[j].target); *(char**)optionList[j].target = p;\r
-                   free(text); text = p;\r
-                   while(*p++ = *text++) if(p[-1] == '\r') p--; // crush CR\r
-                   break;\r
-               }\r
-               changed = strcmp(optionList[j].textValue, newText) != 0;\r
-               safeStrCpy(optionList[j].textValue, newText, MSG_SIZ - (optionList[j].textValue - optionList[j].name) );\r
-               break;\r
-           case CheckBox:\r
-               new = IsDlgButtonChecked( hDlg, 2000+2*i );\r
-               if(!cps) { *(Boolean*)optionList[j].target = new; break; }\r
-               changed = 2*(optionList[j].value != new);\r
-               optionList[j].value = new;\r
-               break;\r
-           case ComboBox:\r
-               choices = (char**) optionList[j].textValue;\r
-               success = GetDlgItemText( hDlg, 2001+2*i, newText, MSG_SIZ );\r
-               if(!success) break;\r
-               new = -1;\r
-               for(k=0; k<optionList[j].max; k++) {\r
-                   if(choices[k] && !strcmp(choices[k], newText)) new = k;\r
-               }\r
-               if(!cps && new > 0) {\r
-                   if(*(char**)optionList[j].target) free(*(char**)optionList[j].target);\r
-                   *(char**)optionList[j].target = strdup(optionList[j].choice[new]);\r
-                   break;\r
-               }\r
-               changed = new >= 0 && (optionList[j].value != new);\r
-               if(changed) optionList[j].value = new;\r
-               break;\r
-           case ListBox:\r
-               if(optionList[j].textValue)\r
-                   *(int*) optionList[j].textValue = SendDlgItemMessage(hDlg, 2001+2*i, LB_GETCURSEL, 0, 0);\r
-           case Button:\r
-           default:\r
-               break; // are treated instantly, so they have been sent already\r
-       }\r
-       if(changed == 2)\r
-         snprintf(buf, MSG_SIZ, "option %s=%d\n", optionList[j].name, new); else\r
-       if(changed == 1)\r
-         snprintf(buf, MSG_SIZ, "option %s=%s\n", optionList[j].name, newText);\r
-       if(changed) SendToProgram(buf, cps);\r
-    }\r
-    if(!cps && okFunc) return ((ButtonCallback*) okFunc)(0);\r
-    return 1;\r
-}\r
-\r
-char *defaultExt[] = { NULL, "pgn", "fen", "exe", "trn", "bin", "log", "ini" };\r
-HWND settingsDlg;\r
-\r
-LRESULT CALLBACK SettingsProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
-{\r
-    char buf[MSG_SIZ];\r
-    int i, j, ext;\r
-\r
-    switch( message )\r
-    {\r
-    case WM_INITDIALOG:\r
-\r
-//        CenterWindow(hDlg, GetWindow(hDlg, GW_OWNER));\r
-       SetOptionValues(hDlg, activeCps, activeList);\r
-       settingsDlg = hDlg;\r
-        SetFocus(GetDlgItem(hDlg, IDCANCEL));\r
-\r
-        break;\r
-\r
-    case WM_COMMAND:\r
-        switch( LOWORD(wParam) ) {\r
-        case IDOK:\r
-           if(!GetOptionValues(hDlg, activeCps, activeList)) return FALSE;\r
-            EndDialog( hDlg, 0 );\r
-           comboCallback = NULL; activeCps = NULL; settingsDlg = NULL;\r
-            return TRUE;\r
-\r
-        case IDCANCEL:\r
-            EndDialog( hDlg, 1 );\r
-           comboCallback = NULL; activeCps = NULL; settingsDlg = NULL;\r
-            return TRUE;\r
-\r
-       default:\r
-           // program-defined push buttons\r
-           i = LOWORD(wParam);\r
-           if( i>=2000 &&  i < 2000+2*(layout+buttons)) {\r
-               j = layoutList[(i - 2000)/2];\r
-               if(j == -2) {\r
-                         char filter[] =\r
-                               "All files\0*.*\0Game files\0*.pgn;*.gam\0Position files\0*.fen;*.epd;*.pos\0"\r
-                               "EXE files\0*.exe;*.jar\0Tournament files (*.trn)\0*.trn\0"\r
-                               "BIN Files\0*.bin\0LOG Files\0*.log\0INI Files\0*.ini\0"\r
-                               "Image files\0*.bmp\0\0";\r
-                         OPENFILENAME ofn;\r
-\r
-                         GetDlgItemText( hDlg, i+3, buf, MSG_SIZ );\r
-\r
-                         ZeroMemory( &ofn, sizeof(ofn) );\r
-\r
-                         ofn.lStructSize = sizeof(ofn);\r
-                         ofn.hwndOwner = hDlg;\r
-                         ofn.hInstance = hInst;\r
-                         ofn.lpstrFilter = filter;\r
-                         ofn.nFilterIndex      = 1L + (ext = activeCps ? 0 : activeList[layoutList[(i-2000)/2+1]].max & 31);\r
-                         ofn.lpstrDefExt       = defaultExt[ext];\r
-                         ofn.lpstrFile = buf;\r
-                         ofn.nMaxFile = sizeof(buf);\r
-                         ofn.lpstrTitle = _("Choose File");\r
-                         ofn.Flags = OFN_FILEMUSTEXIST | OFN_LONGNAMES | OFN_HIDEREADONLY;\r
-\r
-                         if( activeList[layoutList[(i-2000)/2+1]].max & 32 ?\r
-                                                      GetOpenFileName( &ofn ) :\r
-                                                      GetSaveFileName( &ofn ) ) {\r
-                             SetDlgItemText( hDlg, i+3, buf );\r
-                         }\r
-               } else\r
-               if(j == -3) {\r
-                   GetDlgItemText( hDlg, i+3, buf, MSG_SIZ );\r
-                   if( BrowseForFolder( _("Choose Folder:"), buf ) ) {\r
-                       SetDlgItemText( hDlg, i+3, buf );\r
-                   }\r
-               }\r
-               if(j < 0) break;\r
-               if(comboCallback && activeList[j].type == ComboBox && HIWORD(wParam) == CBN_SELCHANGE) {\r
-                   if(j > 5) break; // Yegh! Must solve problem with more than one combobox in dialog\r
-                   (*comboCallback)(hDlg);\r
-                   break;\r
-               } else\r
-               if(activeList[j].type == ListBox && HIWORD(wParam) == /*LBN_SELCHANGE*/ LBN_DBLCLK) {\r
-                   ((ButtonCallback *) activeList[j].target)(hDlg);\r
-                   break;\r
-               } else\r
-               if( activeList[j].type  == SaveButton)\r
-                    GetOptionValues(hDlg, activeCps, activeList);\r
-               else if( activeList[j].type  != Button) break;\r
-               else if( !activeCps ) { (*(ButtonCallback*) activeList[j].target)(hDlg); break; }\r
-               snprintf(buf, MSG_SIZ, "option %s\n", activeList[j].name);\r
-               SendToProgram(buf, activeCps);\r
-           }\r
-           break;\r
-        }\r
-\r
-        break;\r
-    }\r
-\r
-    return FALSE;\r
-}\r
-\r
-void AddControl(int x, int y, int w, int h, int type, int style, int n)\r
-{\r
-    int i;\r
-\r
-    i = template.header.cdit++;\r
-    template.control[i].item.style = style;\r
-    template.control[i].item.dwExtendedStyle = 0;\r
-    template.control[i].item.x = x;\r
-    template.control[i].item.y = y;\r
-    template.control[i].item.cx = w;\r
-    template.control[i].item.cy = h;\r
-    template.control[i].item.id = 2000 + n;\r
-    template.control[i].code = 0xFFFF;\r
-    template.control[i].controlType = type;\r
-    template.control[i].d1 = ' ';\r
-    template.control[i].data = 0;\r
-    template.control[i].creationData = 0;\r
-}\r
-\r
-void AddOption(int x, int y, Control type, int i)\r
-{\r
-    int extra, num = ES_NUMBER;\r
-\r
-    switch(type) {\r
-       case Spin+100:\r
-           num = 0; // needs text control for accepting negative numbers\r
-       case Slider:\r
-       case Spin:\r
-           AddControl(x, y+1, 95, 9, 0x0082, SS_ENDELLIPSIS | WS_VISIBLE | WS_CHILD, i);\r
-           AddControl(x+95, y, 50, 11, 0x0081, ES_AUTOHSCROLL | num | WS_BORDER | WS_VISIBLE | WS_CHILD | WS_TABSTOP, i+1);\r
-           break;\r
-       case TextBox:\r
-           extra = 13*activeList[layoutList[i/2]].min; // when extra high, left-align and put description text above it\r
-           AddControl(x+(extra?50:0), y+1, 95, 9, 0x0082, SS_ENDELLIPSIS | WS_VISIBLE | WS_CHILD, i);\r
-           AddControl(x+(extra?50:95), y+(extra?13:0), extra?105:200, 11+(extra?extra-13:0), 0x0081, ES_AUTOHSCROLL | WS_BORDER | WS_VISIBLE |\r
-                                       WS_CHILD | WS_TABSTOP | (extra ? ES_MULTILINE | ES_WANTRETURN | WS_VSCROLL :0), i+1);\r
-           break;\r
-       case ListBox:\r
-           AddControl(x, y+1, 95, 9, 0x0082, SS_ENDELLIPSIS | WS_VISIBLE | WS_CHILD, i);\r
-           extra = 13*activeList[layoutList[i/2]].min;\r
-           AddControl(x, y+13, 105, 11+extra-13, 0x0083, LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_BORDER | LBS_NOTIFY |\r
-                                                                WS_VISIBLE | WS_CHILD | WS_TABSTOP, i+1);\r
-           break;\r
-       case Label:\r
-           extra = activeList[layoutList[i/2]].value;\r
-           AddControl(x+extra, y+1, 290-extra, 9, 0x0082, SS_ENDELLIPSIS | WS_VISIBLE | WS_CHILD | WS_TABSTOP, i);\r
-           break;\r
-       case FileName:\r
-       case PathName:\r
-           AddControl(x, y+1, 95, 9, 0x0082, SS_ENDELLIPSIS | WS_VISIBLE | WS_CHILD, i);\r
-           AddControl(x+95, y, 180, 11, 0x0081, ES_AUTOHSCROLL | WS_BORDER | WS_VISIBLE | WS_CHILD | WS_TABSTOP, i+1);\r
-           AddControl(x+275, y, 20, 12, 0x0080, BS_PUSHBUTTON | WS_VISIBLE | WS_CHILD | WS_TABSTOP, i-2);\r
-           layoutList[i/2-1] = -2 - (type == PathName);\r
-           break;\r
-       case CheckBox:\r
-           AddControl(x, y, 145, 11, 0x0080, BS_AUTOCHECKBOX | WS_VISIBLE | WS_CHILD | WS_TABSTOP, i);\r
-           break;\r
-       case ComboBox:\r
-           AddControl(x, y+1, 95, 9, 0x0082, SS_ENDELLIPSIS | WS_VISIBLE | WS_CHILD, i);\r
-           AddControl(x+95, y-1, !activeCps && x<10 ? 120 : 50, 500, 0x0085,\r
-                       CBS_AUTOHSCROLL | CBS_DROPDOWN | WS_VISIBLE | WS_CHILD | WS_TABSTOP | WS_VSCROLL, i+1);\r
-           break;\r
-       case Button:\r
-       case ResetButton:\r
-       case SaveButton:\r
-           AddControl(x-2, y, 65, 13, 0x0080, BS_PUSHBUTTON | WS_VISIBLE | WS_CHILD | WS_TABSTOP, i);\r
-       case Message:\r
-       default:\r
-           break;\r
-    }\r
-\r
-}\r
-\r
-void\r
-CreateDialogTemplate(int *layoutList, int nr, Option *optionList)\r
-{\r
-    int i, ii, j, x=1, y=0, maxY=0, buttonRows, breakPoint = 1000, k=0;\r
-\r
-    template.header.cdit = 0;\r
-    template.header.cx = 307;\r
-    buttonRows = (buttons + 1 + 3)/4; // 4 per row, rounded up\r
-    if(nr > 50) {\r
-       breakPoint = (nr+2*buttonRows+1)/2 & ~1;\r
-       template.header.cx = 625;\r
-    }\r
-\r
-    for(ii=0; ii<nr; ii++) {\r
-       i = ii^1; if(i == nr) i = ii; // if two on one line, swap order of treatment, to get good (left to right) tabbing order.\r
-       if(k < groups && ii == boxList[k]) {\r
-           y += 10;\r
-           AddControl(x+2, y+13*(i>>1)-2, 301, 13*(boxList[k+1]-boxList[k]>>1)+8,\r
-                                               0x0082, WS_VISIBLE | WS_CHILD | SS_BLACKFRAME, 2400);\r
-           AddControl(x+60, y+13*(i>>1)-6, 10*groupNameList[k]/3, 10,\r
-                                               0x0082, SS_ENDELLIPSIS | WS_VISIBLE | WS_CHILD, 2*(ii+MAX_OPTIONS));\r
-       }\r
-       j = layoutList[i];\r
-       if(j >= 0) {\r
-           int neg = (optionList[j].type == Spin && optionList[j].min < 0 ? 100 : 0); // flags spin with negative range\r
-           AddOption(x+155-150*(i&1), y+13*(i>>1)+5, optionList[j].type + neg, 2*i);\r
-           // listboxes have the special power to adjust the width of the column they are in\r
-           if(optionList[j].type == ListBox) x -= optionList[j].value, template.header.cx -= optionList[j].value;\r
-       }\r
-       if(k < groups && ii+1 == boxList[k+1]) {\r
-           k += 2; y += 4;\r
-       }\r
-       if(ii+1 >= breakPoint && breaks[ii+1>>1] >= 0) { x += 318; maxY = y+13*(ii+1>>1)+5; y = -13*(ii+1>>1); breakPoint = 1000; }\r
-    }\r
-    // add butons at the bottom of dialog window\r
-    y += 13*(nr>>1)+5;\r
-\r
-    for(i=0; i<buttons; i++) {\r
-       AddControl(x+70*(i%4)+5, y+18*(i/4), 65, 15, 0x0080, BS_PUSHBUTTON | WS_VISIBLE | WS_CHILD | WS_TABSTOP, 2*(nr+i));\r
-       layoutList[nr+i] = buttonList[i];\r
-    }\r
-    AddControl(x+225, y+18*(buttonRows-1), 30, 15, 0x0080, BS_PUSHBUTTON | WS_VISIBLE | WS_CHILD | WS_TABSTOP, IDOK-2000);\r
-    AddControl(x+260, y+18*(buttonRows-1), 40, 15, 0x0080, BS_PUSHBUTTON | WS_VISIBLE | WS_CHILD | WS_TABSTOP, IDCANCEL-2000);\r
-    y += 18*buttonRows; if(y < maxY) y = maxY;\r
-    template.title[8] = optionList == first.option ? '1' :  '2';\r
-    template.header.cy = y+2;\r
-    template.header.style &= ~WS_VSCROLL;\r
-}\r
-\r
-void\r
-EngineOptionsPopup(HWND hwnd, ChessProgramState *cps)\r
-{\r
-    FARPROC lpProc = MakeProcInstance( (FARPROC) SettingsProc, hInst );\r
-\r
-    activeCps = cps; activeList = cps->option;\r
-    snprintf(title, MSG_SIZ, _("%s Engine Settings (%s)"), T_(cps->which), cps->tidy);\r
-    DesignOptionDialog(cps->nrOptions, cps->option);\r
-    CreateDialogTemplate(layoutList, layout, cps->option);\r
-\r
-\r
-    DialogBoxIndirect( hInst, &template.header, hwnd, (DLGPROC)lpProc );\r
-\r
-    FreeProcInstance(lpProc);\r
-\r
-    return;\r
-}\r
-\r
-void\r
-RefreshSettingsDialog (ChessProgramState *cps, int val)\r
-{\r
-    int isUp = (settingsDlg != NULL);\r
-    if(val == 1) {\r
-       if(activeCps == cps && isUp) SetOptionValues(settingsDlg, cps, activeList);\r
-       return;\r
-    }\r
-    if(settingsDlg) EndDialog(settingsDlg, 1);\r
-    comboCallback = NULL; activeCps = NULL; settingsDlg = NULL;\r
-    if(val == 3 || isUp) EngineOptionsPopup(hwndMain, cps);\r
-}\r
-\r
-int EnterGroup P((HWND hDlg));\r
-\r
-static int engineNr, selected;\r
-\r
-int InstallOK()\r
-{\r
-    if(selected >= 0) { ASSIGN(engineLine, engineList[selected]); }\r
-    if(engineLine[0] == '#') { DisplayError(_("Select single engine from the group"), 0); return 0; }\r
-    if(isUCCI) isUCI = 2;\r
-    if(!engineNr) Load(&first, 0); else Load(&second, 1);\r
-    return 1;\r
-}\r
-\r
-Option installOptions[] = {\r
-//  {   0,  0,    0, NULL, (void*) &engineLine, (char*) engineMnemonic, engineList, ComboBox, N_("Select engine from list:") },\r
-  { 195, 14,    0, NULL, (void*) &EnterGroup, (char*) &selected, engineMnemonic, ListBox, N_("Select engine from list:") },\r
-  {   0,  0,    0, NULL, NULL, NULL, NULL, Label, N_("or specify one below:") },\r
-  {   0,  0,    0, NULL, (void*) &nickName, NULL, NULL, TextBox, N_("Nickname (optional):") },\r
-  {   0,  0,    0, NULL, (void*) &useNick, NULL, NULL, CheckBox, N_("Use nickname in PGN tag") },\r
-  {   0,  0, 32+3, NULL, (void*) &engineName, NULL, NULL, FileName, N_("Engine (.exe or .jar):") },\r
-  {   0,  0,    0, NULL, (void*) &params, NULL, NULL, TextBox, N_("command-line parameters:") },\r
-  {   0,  0,    0, NULL, (void*) &wbOptions, NULL, NULL, TextBox, N_("Special WinBoard options:") },\r
-  {   0,  0,    0, NULL, (void*) &engineDir, NULL, NULL, PathName, N_("directory:") },\r
-  {  95,  0,    0, NULL, NULL, NULL, NULL, Label, N_("(Directory will be derived from engine path when left empty)") },\r
-  {   0,  0,    0, NULL, (void*) &addToList, NULL, NULL, CheckBox, N_("Add this engine to the list") },\r
-  {   0,  0,    0, NULL, (void*) &hasBook, NULL, NULL, CheckBox, N_("Must not use GUI book") },\r
-  {   0,  0,    0, NULL, (void*) &storeVariant, NULL, NULL, CheckBox, N_("Force current variant with this engine") },\r
-  {   0,  0,    0, NULL, (void*) &isUCI, NULL, NULL, CheckBox, N_("UCI") },\r
-  {   0,  0,    0, NULL, (void*) &v1, NULL, NULL, CheckBox, N_("WB protocol v1 (skip waiting for features)") },\r
-  {   0,  0,    0, NULL, (void*) &isUCCI, NULL, NULL, CheckBox, N_("UCCI/USI/Arena960 (through /uxiAdapter)") },\r
-  {   0,  1,    0, NULL, (void*) &InstallOK, "", NULL, EndMark , "" }\r
-};\r
-\r
-void\r
-GenericPopup(HWND hwnd, Option *optionList)\r
-{\r
-    FARPROC lpProc = MakeProcInstance( (FARPROC) SettingsProc, hInst );\r
-    int n=0;\r
-\r
-    while(optionList[n].type != EndMark) n++;\r
-    activeCps = NULL; activeList = optionList;\r
-    DesignOptionDialog(n, optionList);\r
-    CreateDialogTemplate(layoutList, layout, optionList);\r
-\r
-    DialogBoxIndirect( hInst, &template.header, hwnd, (DLGPROC)lpProc );\r
-\r
-    FreeProcInstance(lpProc);\r
-\r
-    return;\r
-}\r
-\r
-int\r
-EnterGroup(HWND hDlg)\r
-{\r
-    char buf[MSG_SIZ];\r
-    HANDLE hwndCombo = GetDlgItem(hDlg, 2001+2*1);\r
-    int i = SendDlgItemMessage(hDlg, 2001+2*1, LB_GETCURSEL, 0, 0);\r
-    if(i == 0) buf[0] = NULLCHAR; // back to top level\r
-    else if(engineList[i][0] == '#') safeStrCpy(buf, engineList[i], MSG_SIZ); // group header, open group\r
-    else {\r
-       ASSIGN(engineLine, engineList[i]);\r
-       if(isUCCI) isUCI = 2;\r
-       if(!engineNr) Load(&first, 0); else Load(&second, 1);\r
-       EndDialog( hDlg, 0 );\r
-       return 0; // normal line, select engine\r
-    }\r
-    installOptions[0].max = NamesToList(firstChessProgramNames, engineList, engineMnemonic, buf); // replace list by only the group contents\r
-    SendMessage(hwndCombo, LB_RESETCONTENT, 0, 0);\r
-    SendMessage(hwndCombo, LB_ADDSTRING, 0, (LPARAM) buf);\r
-    for(i=1; i<installOptions[0].max; i++) {\r
-           SendMessage(hwndCombo, LB_ADDSTRING, 0, (LPARAM) engineMnemonic[i]);\r
-    }\r
-//    SendMessage(hwndCombo, CB_SELECTSTRING, (WPARAM) 0, (LPARAM) buf);\r
-    return 0;\r
-}\r
-\r
-void LoadEnginePopUp(HWND hwnd, int nr)\r
-{\r
-    isUCI = isUCCI = storeVariant = v1 = useNick = FALSE; addToList = hasBook = TRUE; // defaults\r
-    engineNr = nr;\r
-    if(engineDir)    free(engineDir);    engineDir = strdup("");\r
-    if(params)       free(params);       params = strdup("");\r
-    if(nickName)     free(nickName);     nickName = strdup("");\r
-    if(engineLine)   free(engineLine);   engineLine = strdup("");\r
-    if(engineName)   free(engineName);   engineName = strdup("");\r
-    ASSIGN(wbOptions, "");\r
-    installOptions[0].max = NamesToList(firstChessProgramNames, engineList, engineMnemonic, ""); // only top level\r
-    snprintf(title, MSG_SIZ, _("Load %s Engine"), nr ? _("second") : _("first"));\r
-\r
-    GenericPopup(hwnd, installOptions);\r
-}\r
-\r
-int PickTheme P((HWND hDlg));\r
-void DeleteTheme P((HWND hDlg));\r
-\r
-int ThemeOK()\r
-{\r
-    if(selected >= 0) { ASSIGN(engineLine, engineList[selected]); }\r
-    if(engineLine[0] == '#') { DisplayError(_("Select single theme from the group"), 0); return 0; }\r
-    LoadTheme();\r
-    return 1;\r
-}\r
-\r
-Option themeOptions[] = {\r
-  { 195, 14,    0, NULL, (void*) &PickTheme, (char*) &selected, engineMnemonic, ListBox, N_("Select theme from list:") },\r
-  {   0,  0,    0, NULL, NULL, NULL, NULL, Label, N_("or specify new theme below:") },\r
-  {   0,  0,    0, NULL, (void*) &nickName, NULL, NULL, TextBox, N_("Theme name:") },\r
-  {   0,  0,    0, NULL, (void*) &appData.useBitmaps, NULL, NULL, CheckBox, N_("Use board textures") },\r
-  {   0,  0, 32+0, NULL, (void*) &appData.liteBackTextureFile, NULL, NULL, FileName, N_("Light-square texture:") },\r
-  {   0,  0, 32+0, NULL, (void*) &appData.darkBackTextureFile, NULL, NULL, FileName, N_("Dark-square texture:") },\r
-  {   0,  0,    3, NULL, (void*) &appData.darkBackTextureMode, "", NULL, Spin, N_("Dark reorientation mode:") },\r
-  {   0,  0,    3, NULL, (void*) &appData.liteBackTextureMode, "", NULL, Spin, N_("Light reorientation mode:") },\r
-  {   0,  0,    0, NULL, (void*) &appData.useBorder, NULL, NULL, CheckBox, N_("Draw border around board") },\r
-  {   0,  0, 32+0, NULL, (void*) &appData.border, NULL, NULL, FileName, N_("Optional border bitmap:") },\r
-  {   0,  0,    0, NULL, NULL, NULL, NULL, Label, N_("        Beware: a specified piece font will prevail over piece bitmaps") },\r
-  {   0,  0,    0, NULL, (void*) &appData.pieceDirectory, NULL, NULL, PathName, N_("Directory with piece bitmaps:") },\r
-  {   0,  0,    0, NULL, (void*) &appData.useFont, NULL, NULL, CheckBox, N_("Use piece font") },\r
-  {   0, 50,  150, NULL, (void*) &appData.fontPieceSize, "", NULL, Spin, N_("Font size (%):") },\r
-  {   0,  0,    0, NULL, (void*) &appData.renderPiecesWithFont, NULL, NULL, TextBox, N_("Font name:") },\r
-  {   0,  0,    0, NULL, (void*) &appData.fontToPieceTable, NULL, NULL, TextBox, N_("Font piece to char:") },\r
-//  {   0,  0,    0, NULL, (void*) &DeleteTheme, NULL, NULL, Button, N_("Up") },\r
-//  {   0,  0,    0, NULL, (void*) &DeleteTheme, NULL, NULL, Button, N_("Down") },\r
-  {   0,  0,    0, NULL, (void*) &DeleteTheme, NULL, NULL, Button, N_("Delete Theme") },\r
-  {   0,  1,    0, NULL, (void*) &ThemeOK, "", NULL, EndMark , "" }\r
-};\r
-\r
-void\r
-DeleteTheme (HWND hDlg)\r
-{\r
-    char *p, *q;\r
-    int i, selected = SendDlgItemMessage(hDlg, 2001+2*1, LB_GETCURSEL, 0, 0);\r
-    HANDLE hwndCombo = GetDlgItem(hDlg, 2001+2*1);\r
-    if(selected < 0) return;\r
-    if(p = strstr(appData.themeNames, engineList[selected])) {\r
-       if(q = strchr(p, '\n')) strcpy(p, q+1);\r
-    }\r
-    themeOptions[0].max = NamesToList(appData.themeNames, engineList, engineMnemonic, ""); // replace list by only the group contents\r
-    SendMessage(hwndCombo, LB_RESETCONTENT, 0, 0);\r
-    SendMessage(hwndCombo, LB_ADDSTRING, 0, (LPARAM) "");\r
-    for(i=1; i<themeOptions[0].max; i++) {\r
-           SendMessage(hwndCombo, LB_ADDSTRING, 0, (LPARAM) engineMnemonic[i]);\r
-    }\r
-}\r
-\r
-int\r
-PickTheme (HWND hDlg)\r
-{\r
-    char buf[MSG_SIZ];\r
-    HANDLE hwndCombo = GetDlgItem(hDlg, 2001+2*1);\r
-    int i = SendDlgItemMessage(hDlg, 2001+2*1, LB_GETCURSEL, 0, 0);\r
-    if(i == 0) buf[0] = NULLCHAR; // back to top level\r
-    else if(engineList[i][0] == '#') safeStrCpy(buf, engineList[i], MSG_SIZ); // group header, open group\r
-    else {\r
-       ASSIGN(engineLine, engineList[i]);\r
-       LoadTheme();\r
-       EndDialog( hDlg, 0 );\r
-       return 0; // normal line, select engine\r
-    }\r
-    themeOptions[0].max = NamesToList(appData.themeNames, engineList, engineMnemonic, buf); // replace list by only the group contents\r
-    SendMessage(hwndCombo, LB_RESETCONTENT, 0, 0);\r
-    SendMessage(hwndCombo, LB_ADDSTRING, 0, (LPARAM) buf);\r
-    for(i=1; i<themeOptions[0].max; i++) {\r
-           SendMessage(hwndCombo, LB_ADDSTRING, 0, (LPARAM) engineMnemonic[i]);\r
-    }\r
-    return 0;\r
-}\r
-\r
-void ThemeOptionsPopup(HWND hwnd)\r
-{\r
-    addToList = TRUE; // defaults\r
-    if(nickName)     free(nickName);     nickName = strdup("");\r
-    if(engineLine)   free(engineLine);   engineLine = strdup("");\r
-    themeOptions[0].max = NamesToList(appData.themeNames, engineList, engineMnemonic, ""); // only top level\r
-    snprintf(title, MSG_SIZ, _("Board themes"));\r
-\r
-    GenericPopup(hwnd, themeOptions);\r
-}\r
-\r
-Boolean autoinc, twice, swiss;\r
-char *tfName;\r
-\r
-int MatchOK()\r
-{\r
-    if(autoinc) appData.loadGameIndex = appData.loadPositionIndex = -(twice + 1); else\r
-    if(!appData.loadGameFile[0]) appData.loadGameIndex = -2*twice; // kludge to pass value of "twice" for use in GUI book\r
-    if(swiss) { appData.defaultMatchGames = 1; appData.tourneyType = -1; }\r
-    if(CreateTourney(tfName) && !matchMode) { // CreateTourney reloads original settings if file already existed\r
-       MatchEvent(2);\r
-       return 1; // close dialog\r
-    }\r
-    return matchMode || !appData.participants[0]; // if we failed to create and are not in playing, forbid popdown if there are participants\r
-}\r
-\r
-void PseudoOK(HWND hDlg)\r
-{\r
-    if(matchMode) return;\r
-    okFunc = 0;\r
-    GetOptionValues(hDlg, activeCps, activeList);\r
-    EndDialog( hDlg, 0 );\r
-    comboCallback = NULL; activeCps = NULL;\r
-\r
-    if(autoinc) appData.loadGameIndex = appData.loadPositionIndex = -(twice + 1); else\r
-    if(!appData.loadGameFile[0]) appData.loadGameIndex = -2*twice; // kludge to pass value of "twice" for use in GUI book\r
-    if(!autoinc && !twice) { // prevent auto-inc being remembered in index value if checkboxes not ticked\r
-       if(appData.loadGameIndex < 0) appData.loadGameIndex = 0;\r
-       if(appData.loadPositionIndex < 0) appData.loadPositionIndex = 0;\r
-    }\r
-    if(swiss) { appData.defaultMatchGames = 1; appData.tourneyType = -1; }\r
-    ASSIGN(appData.tourneyFile, tfName);\r
-}\r
-\r
-char *GetParticipants(HWND hDlg)\r
-{\r
-    int len = GetWindowTextLength(GetDlgItem(hDlg, 2001+2*0)) + 1;\r
-    char *participants,*p, *q;\r
-    if(len < 4) return NULL; // box is empty (enough)\r
-    participants = (char*) malloc(len);\r
-    GetDlgItemText(hDlg, 2001+2*0, participants, len );\r
-    p = q = participants;\r
-    while(*p++ = *q++) if(p[-1] == '\r') p--;\r
-    return participants;\r
-}\r
-\r
-void ReplaceParticipant(HWND hDlg)\r
-{\r
-    char *participants = GetParticipants(hDlg);\r
-    Substitute(participants, TRUE);\r
-}\r
-       \r
-void UpgradeParticipant(HWND hDlg)\r
-{\r
-    char *participants = GetParticipants(hDlg);\r
-    Substitute(participants, FALSE);\r
-}\r
-\r
-void Inspect(HWND hDlg)\r
-{\r
-    FILE *f;\r
-    char name[MSG_SIZ];\r
-    GetDlgItemText(hDlg, 2001+2*33, name, MSG_SIZ );\r
-    if(name[0] && (f = fopen(name, "r")) ) {\r
-       char *saveSaveFile;\r
-       saveSaveFile = appData.saveGameFile; appData.saveGameFile = NULL; // this is a persistent option, protect from change\r
-       ParseArgsFromFile(f);\r
-       autoinc = ((appData.loadPositionFile[0] ? appData.loadGameIndex : appData.loadPositionIndex) < 0);\r
-       twice = ((appData.loadPositionFile[0] ? appData.loadGameIndex : appData.loadPositionIndex) == -2);\r
-       swiss = appData.tourneyType < 0;\r
-       SetOptionValues(hDlg, NULL, activeList);\r
-       FREE(appData.saveGameFile); appData.saveGameFile = saveSaveFile;\r
-    } else DisplayError(_("First you must specify an existing tourney file to clone"), 0);\r
-}\r
-\r
-void TimeControlOptionsPopup P((HWND hDlg));\r
-void UciOptionsPopup P((HWND hDlg));\r
-int AddToTourney P((HWND hDlg));\r
-\r
-Option tourneyOptions[] = {\r
-  { 80,  15,        0, NULL, (void*) &AddToTourney, NULL, engineMnemonic, ListBox, N_("Select Engine:") },\r
-  { 0xD, 15,        0, NULL, (void*) &appData.participants, "", NULL, TextBox, N_("Tourney participants:") },\r
-  { 0,  0,          4, NULL, (void*) &tfName, "", NULL, FileName, N_("Tournament file:") },\r
-  { 30, 0,          0, NULL, NULL, NULL, NULL, Label, N_("If you specify an existing file, the rest of this dialog will be ignored.") },\r
-  { 30, 0,          0, NULL, NULL, NULL, NULL, Label, N_("Otherwise, the file will be created, with the settings you specify below:") },\r
-  { 0,  0,          0, NULL, (void*) &swiss, "", NULL, CheckBox, N_("Use Swiss pairing engine (cycles = rounds)") },\r
-  { 0,  0,         10, NULL, (void*) &appData.tourneyType, "", NULL, Spin, N_("Tourney type (0=RR, 1=gauntlet):") },\r
-  { 0,  0,          0, NULL, (void*) &appData.cycleSync, "", NULL, CheckBox, N_("Sync after cycle") },\r
-  { 0,  1, 1000000000, NULL, (void*) &appData.tourneyCycles, "", NULL, Spin, N_("Number of tourney cycles:") },\r
-  { 0,  0,          0, NULL, (void*) &appData.roundSync, "", NULL, CheckBox, N_("Sync after round") },\r
-  { 0,  1, 1000000000, NULL, (void*) &appData.defaultMatchGames, "", NULL, Spin, N_("Games per Match / Pairing:") },\r
-  { 0,  0,          1, NULL, (void*) &appData.saveGameFile, "", NULL, FileName, N_("File for saving tourney games:") },\r
-  { 0,  0,       32+1, NULL, (void*) &appData.loadGameFile, "", NULL, FileName, N_("Game File with Opening Lines:") },\r
-  { 0, -2, 1000000000, NULL, (void*) &appData.loadGameIndex, "", NULL, Spin, N_("Game Number:") },\r
-  { 0,  0,       32+2, NULL, (void*) &appData.loadPositionFile, "", NULL, FileName, N_("File with Start Positions:") },\r
-  { 0, -2, 1000000000, NULL, (void*) &appData.loadPositionIndex, "", NULL, Spin, N_("Position Number:") },\r
-  { 0,  0,          0, NULL, (void*) &autoinc, "", NULL, CheckBox, N_("Step through lines/positions in file") },\r
-  { 0,  0, 1000000000, NULL, (void*) &appData.rewindIndex, "", NULL, Spin, N_("Rewind after (0 = never):") },\r
-  { 0,  0,          0, NULL, (void*) &twice, "", NULL, CheckBox, N_("Use each line/position twice") },\r
-  { 0,  0,          0, NULL, (void*) &appData.defNoBook, "", NULL, CheckBox, N_("Make all use GUI book by default") },\r
-  { 0,  0, 1000000000, NULL, (void*) &appData.matchPause, "", NULL, Spin, N_("Pause between Games (ms):") },\r
-  { 0,  0,          0, NULL, (void*) &ReplaceParticipant, "", NULL, Button, N_("Replace Engine") },\r
-  { 0,  0,          0, NULL, (void*) &UpgradeParticipant, "", NULL, Button, N_("Upgrade Engine") },\r
-  { 0,  0,          0, NULL, (void*) &TimeControlOptionsPopup, "", NULL, Button, N_("Time Control...") },\r
-  { 0,  0,          0, NULL, (void*) &UciOptionsPopup, "", NULL, Button, N_("Common Engine...") },\r
-  { 0,  0,          0, NULL, (void*) &Inspect, "", NULL, Button, N_("Clone Tourney") },\r
-  { 0,  0,          0, NULL, (void*) &PseudoOK, "", NULL, Button, N_("Continue Later") },\r
-  { 0, 0, 0, NULL, (void*) &MatchOK, "", NULL, EndMark , "" }\r
-};\r
-\r
-int AddToTourney(HWND hDlg)\r
-{\r
-  char buf[MSG_SIZ];\r
-  HANDLE hwndCombo = GetDlgItem(hDlg, 2001+2*1);\r
-  int i = SendDlgItemMessage(hDlg, 2001+2*1, LB_GETCURSEL, 0, 0);\r
-  if(i<0) return 0;\r
-  if(i == 0) buf[0] = NULLCHAR; // back to top level\r
-  else if(engineList[i][0] == '#') safeStrCpy(buf, engineList[i], MSG_SIZ); // group header, open group\r
-  else { // normal line, select engine\r
-    snprintf(buf, MSG_SIZ, "%s\r\n", engineMnemonic[i]);\r
-    SendMessage( GetDlgItem(hDlg, 2001+2*0), EM_SETSEL, 99999, 99999 );\r
-    SendMessage( GetDlgItem(hDlg, 2001+2*0), EM_REPLACESEL, (WPARAM) FALSE, (LPARAM) buf );\r
-    return 0;\r
-  }\r
-  tourneyOptions[0].max = NamesToList(firstChessProgramNames, engineList, engineMnemonic, buf); // replace list by only the group contents\r
-  SendMessage(hwndCombo, LB_RESETCONTENT, 0, 0);\r
-  SendMessage(hwndCombo, LB_ADDSTRING, 0, (LPARAM) buf);\r
-  for(i=1; i<tourneyOptions[0].max; i++) {\r
-    SendMessage(hwndCombo, LB_ADDSTRING, 0, (LPARAM) engineMnemonic[i]);\r
-  }\r
-//  SendMessage(hwndCombo, CB_SELECTSTRING, (WPARAM) 0, (LPARAM) buf);\r
-  return 0;\r
-}\r
-\r
-void TourneyPopup(HWND hwnd)\r
-{\r
-    int n = NamesToList(firstChessProgramNames, engineList, engineMnemonic, "");\r
-    autoinc = appData.loadGameIndex < 0 || appData.loadPositionIndex < 0;\r
-    twice = appData.loadGameIndex == -2 || appData.loadPositionIndex == -2; swiss = appData.tourneyType < 0;\r
-    tourneyOptions[0].max = n;\r
-    snprintf(title, MSG_SIZ, _("Tournament and Match Options"));\r
-    ASSIGN(tfName, appData.tourneyFile[0] ? appData.tourneyFile : MakeName(appData.defName));\r
-\r
-    GenericPopup(hwnd, tourneyOptions);\r
-}\r
diff --git a/winboard/wsnap.c b/winboard/wsnap.c
deleted file mode 100644 (file)
index 683aa15..0000000
+++ /dev/null
@@ -1,270 +0,0 @@
-/*\r
- * Smart "snapping" for window moving and sizing\r
- *\r
- * Author: Alessandro Scotti (Dec 2005)\r
- *\r
- * Copyright 2005 Alessandro Scotti\r
- *\r
- * ------------------------------------------------------------------------\r
- *\r
- * GNU XBoard is free software: you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation, either version 3 of the License, or (at\r
- * your option) any later version.\r
- *\r
- * GNU XBoard is distributed in the hope that it will be useful, but\r
- * WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
- * General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program. If not, see http://www.gnu.org/licenses/.  *\r
- *\r
- *------------------------------------------------------------------------\r
- ** See the file ChangeLog for a revision history.  */\r
-\r
-#include "wsnap.h"\r
-\r
-/* Imports from winboard.c */\r
-extern HINSTANCE hInst;\r
-\r
-extern HWND hwndMain;\r
-extern HWND moveHistoryDialog;\r
-extern HWND evalGraphDialog;\r
-extern HWND engineOutputDialog;\r
-extern HWND gameListDialog;\r
-\r
-static BOOL SnappingEnabled = TRUE;\r
-\r
-static void AddSnapPoint( int * grid, int * grid_len, int value )\r
-{\r
-    int len = *grid_len;\r
-\r
-    if( len < MAX_SNAP_POINTS ) {\r
-        int i;\r
-\r
-        for( i=0; i<len; i++ ) {\r
-            if( grid[i] == value ) {\r
-                return;\r
-            }\r
-        }\r
-\r
-        grid[ len++ ] = value;\r
-\r
-        *grid_len = len;\r
-    }\r
-}\r
-\r
-static void AddSnapRectangle( SnapData * sd, RECT * rc )\r
-{\r
-    AddSnapPoint( sd->x_grid, &sd->x_grid_len, rc->left );\r
-    AddSnapPoint( sd->x_grid, &sd->x_grid_len, rc->right );\r
-\r
-    AddSnapPoint( sd->y_grid, &sd->y_grid_len, rc->top );\r
-    AddSnapPoint( sd->y_grid, &sd->y_grid_len, rc->bottom );\r
-}\r
-\r
-static RECT activeRect, mainRect;\r
-static int side, loc; // code for edge we were dragging, and its latest coordinate\r
-\r
-static void AddSnapWindow( HWND hWndCaller, SnapData * sd, HWND hWndSnapWindow )\r
-{\r
-    if( hWndSnapWindow != NULL && IsWindowVisible(hWndSnapWindow) ) {\r
-        RECT rc;\r
-\r
-        GetWindowRect( hWndSnapWindow, &rc );\r
-       if(hWndSnapWindow == hwndMain) mainRect = rc;\r
-\r
-       if(hWndCaller != hWndSnapWindow) {\r
-            AddSnapRectangle( sd, &rc );\r
-       } else {\r
-           activeRect = rc; // [HGM] glue: remember original geometry of dragged window\r
-       }\r
-    }\r
-}\r
-\r
-static BOOL AdjustToSnapPoint( int * grid, int grid_len, int value, int * snap_size, int * delta )\r
-{\r
-    BOOL result = FALSE;\r
-    int i;\r
-\r
-    for( i=0; i<grid_len; i++ ) {\r
-        int distance = value - grid[i];\r
-\r
-        if( distance < 0 ) distance = -distance;\r
-\r
-        if( distance < *snap_size ) {\r
-            result = TRUE;\r
-            *snap_size = distance;\r
-            *delta = grid[i] - value;\r
-        }\r
-    }\r
-\r
-    return result;\r
-}\r
-\r
-LRESULT OnEnterSizeMove( SnapData * snapData, HWND hWnd, WPARAM wParam, LPARAM lParam )\r
-{\r
-    RECT rc;\r
-\r
-    snapData->x_grid_len = 0;\r
-    snapData->y_grid_len = 0;\r
-    side = 0;\r
-\r
-    /* Add desktop area */\r
-    if( SystemParametersInfo( SPI_GETWORKAREA, 0, &rc, 0 ) ) {\r
-        AddSnapRectangle( snapData, &rc );\r
-    }\r
-\r
-    if( hWnd != hwndMain ) {\r
-        /* Add other windows */\r
-        AddSnapWindow( hWnd, snapData, hwndMain );\r
-        AddSnapWindow( hWnd, snapData, moveHistoryDialog );\r
-        AddSnapWindow( hWnd, snapData, evalGraphDialog );\r
-        AddSnapWindow( hWnd, snapData, engineOutputDialog );\r
-        AddSnapWindow( hWnd, snapData, gameListDialog );\r
-    }\r
-\r
-    return 0;\r
-}\r
-\r
-LRESULT OnMoving( SnapData * snapData, HWND hWnd, WPARAM wParam, LPARAM lParam )\r
-{\r
-    LPRECT lprc = (LPRECT) lParam;\r
-    int delta_x = 0;\r
-    int delta_y = 0;\r
-    int snap_size_x = SNAP_DISTANCE;\r
-    int snap_size_y = SNAP_DISTANCE;\r
-\r
-    if( ! SnappingEnabled ) {\r
-        return FALSE;\r
-    }\r
-\r
-    AdjustToSnapPoint( snapData->x_grid, snapData->x_grid_len, lprc->left, &snap_size_x, &delta_x );\r
-    AdjustToSnapPoint( snapData->x_grid, snapData->x_grid_len, lprc->right, &snap_size_x, &delta_x );\r
-\r
-    AdjustToSnapPoint( snapData->y_grid, snapData->y_grid_len, lprc->top, &snap_size_y, &delta_y );\r
-    AdjustToSnapPoint( snapData->y_grid, snapData->y_grid_len, lprc->bottom, &snap_size_y, &delta_y );\r
-\r
-    OffsetRect( lprc, delta_x, delta_y );\r
-\r
-    return TRUE;\r
-}\r
-\r
-LRESULT OnSizing( SnapData * snapData, HWND hWnd, WPARAM wParam, LPARAM lParam )\r
-{\r
-    LPRECT lprc = (LPRECT) lParam;\r
-    int delta_x = 0;\r
-    int delta_y = 0;\r
-    int snap_size_x = SNAP_DISTANCE;\r
-    int snap_size_y = SNAP_DISTANCE;\r
-\r
-    if( ! SnappingEnabled ) {\r
-        return FALSE;\r
-    }\r
-\r
-    switch( wParam ) {\r
-    case WMSZ_BOTTOM:\r
-        AdjustToSnapPoint( snapData->y_grid, snapData->y_grid_len, lprc->bottom, &snap_size_y, &delta_y );\r
-        lprc->bottom += delta_y; side = 4; loc = lprc->bottom;\r
-        break;\r
-    case WMSZ_BOTTOMLEFT:\r
-        AdjustToSnapPoint( snapData->y_grid, snapData->y_grid_len, lprc->bottom, &snap_size_y, &delta_y );\r
-        lprc->bottom += delta_y;\r
-        AdjustToSnapPoint( snapData->x_grid, snapData->x_grid_len, lprc->left, &snap_size_x, &delta_x );\r
-        lprc->left += delta_x;\r
-        break;\r
-    case WMSZ_BOTTOMRIGHT:\r
-        AdjustToSnapPoint( snapData->y_grid, snapData->y_grid_len, lprc->bottom, &snap_size_y, &delta_y );\r
-        lprc->bottom += delta_y;\r
-        AdjustToSnapPoint( snapData->x_grid, snapData->x_grid_len, lprc->right, &snap_size_x, &delta_x );\r
-        lprc->right += delta_x;\r
-        break;\r
-    case WMSZ_LEFT:\r
-        AdjustToSnapPoint( snapData->x_grid, snapData->x_grid_len, lprc->left, &snap_size_x, &delta_x );\r
-        lprc->left += delta_x; side = 1; loc = lprc->left;\r
-        break;\r
-    case WMSZ_RIGHT:\r
-        AdjustToSnapPoint( snapData->x_grid, snapData->x_grid_len, lprc->right, &snap_size_x, &delta_x );\r
-        lprc->right += delta_x; side = 2; loc = lprc->right;\r
-        break;\r
-    case WMSZ_TOP:\r
-        AdjustToSnapPoint( snapData->y_grid, snapData->y_grid_len, lprc->top, &snap_size_y, &delta_y );\r
-        lprc->top += delta_y; side = 3; loc = lprc->top;\r
-        break;\r
-    case WMSZ_TOPLEFT:\r
-        AdjustToSnapPoint( snapData->y_grid, snapData->y_grid_len, lprc->top, &snap_size_y, &delta_y );\r
-        lprc->top += delta_y;\r
-        AdjustToSnapPoint( snapData->x_grid, snapData->x_grid_len, lprc->left, &snap_size_x, &delta_x );\r
-        lprc->left += delta_x;\r
-        break;\r
-    case WMSZ_TOPRIGHT:\r
-        AdjustToSnapPoint( snapData->y_grid, snapData->y_grid_len, lprc->top, &snap_size_y, &delta_y );\r
-        lprc->top += delta_y;\r
-        AdjustToSnapPoint( snapData->x_grid, snapData->x_grid_len, lprc->right, &snap_size_x, &delta_x );\r
-        lprc->right += delta_x;\r
-        break;\r
-    default:\r
-        return FALSE;\r
-    }\r
-\r
-    return TRUE;\r
-}\r
-\r
-static int Adjust( LONG *data, int new, int old , int vertical)\r
-{\r
-    // protect edges that also touch main window\r
-    if(!vertical && (old == mainRect.left || old == mainRect.right))  return 0;\r
-    if( vertical && (old == mainRect.top  || old == mainRect.bottom)) return 0;\r
-    // if the coordinate was the same as the old, now make it the same as the new edge position\r
-    if(*data == old) { *data = new; return 1; }\r
-    return 0;\r
-}\r
-\r
-static void KeepTouching( int side, int new, int old, HWND hWnd )\r
-{   // if the mentioned window was touching on the moved edge, move its touching edge too\r
-    if( IsWindowVisible(hWnd) ) {\r
-        RECT rc;\r
-       int i = 0;\r
-\r
-        GetWindowRect( hWnd, &rc );\r
-\r
-       switch(side) { // figure out which edge we might need to drag along (if any)\r
-         case 1: i = Adjust(&rc.right,  new, old, 0); break;\r
-         case 2: i = Adjust(&rc.left,   new, old, 0); break;\r
-         case 3: i = Adjust(&rc.bottom, new, old, 1); break;\r
-         case 4: i = Adjust(&rc.top,    new, old, 1); break;\r
-       }\r
-\r
-       if(i) { // the correct edge was touching, and is adjusted\r
-           SetWindowPos(hWnd, HWND_TOP, rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top, SWP_NOZORDER );\r
-       }\r
-    }\r
-}\r
-\r
-LRESULT OnExitSizeMove( SnapData * snapData, HWND hWnd, WPARAM wParam, LPARAM lParam )\r
-{\r
-    if(side && hWnd != hwndMain) { // [HGM] glue: we have been sizing, by dragging an edge\r
-       int *grid = (side > 2 ? snapData->y_grid : snapData->x_grid);\r
-       int i, pos = -1, len = (side > 2 ? snapData->y_grid_len : snapData->x_grid_len);\r
-\r
-       switch(side) {\r
-         case 1: pos = activeRect.left; break;\r
-         case 2: pos = activeRect.right; break;\r
-         case 3: pos = activeRect.top; break;\r
-         case 4: pos = activeRect.bottom; break;\r
-       }\r
-\r
-       for(i=0; i<len; i++) {\r
-           if(grid[i] == pos) break; // the dragged side originally touched another auxiliary window\r
-       }\r
-\r
-       if(i < len) { // we were touching another sticky window: figure out how, and adapt it if needed\r
-               KeepTouching(side, loc, pos, moveHistoryDialog);\r
-               KeepTouching(side, loc, pos, evalGraphDialog);\r
-               KeepTouching(side, loc, pos, engineOutputDialog);\r
-               KeepTouching(side, loc, pos, gameListDialog);\r
-       }\r
-    }\r
-    return 0;\r
-}\r
diff --git a/winboard/wsnap.h b/winboard/wsnap.h
deleted file mode 100644 (file)
index 0b5b117..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*\r
- * Smart "snapping" for window moving and sizing\r
- *\r
- * Author: Alessandro Scotti (Dec 2005)\r
- *\r
- * Copyright 2005 Alessandro Scotti\r
- *\r
- * ------------------------------------------------------------------------\r
- * GNU XBoard is free software: you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation, either version 3 of the License, or (at\r
- * your option) any later version.\r
- *\r
- * GNU XBoard is distributed in the hope that it will be useful, but\r
- * WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
- * General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program. If not, see http://www.gnu.org/licenses/.  *\r
- *\r
- *------------------------------------------------------------------------\r
- ** See the file ChangeLog for a revision history.  */\r
-\r
-#ifndef WSNAP_H_\r
-#define WSNAP_H_\r
-\r
-#include <windows.h>\r
-\r
-#define MAX_SNAP_POINTS     12\r
-\r
-#define SNAP_DISTANCE       4\r
-\r
-typedef struct {\r
-    int x_grid[ MAX_SNAP_POINTS ];\r
-    int x_grid_len;\r
-    int y_grid[ MAX_SNAP_POINTS ];\r
-    int y_grid_len;\r
-} SnapData;\r
-\r
-LRESULT OnEnterSizeMove( SnapData * snapData, HWND hWnd, WPARAM wParam, LPARAM lParam );\r
-LRESULT OnMoving( SnapData * snapData, HWND hWnd, WPARAM wParam, LPARAM lParam );\r
-LRESULT OnSizing( SnapData * snapData, HWND hWnd, WPARAM wParam, LPARAM lParam );\r
-LRESULT OnExitSizeMove( SnapData * snapData, HWND hWnd, WPARAM wParam, LPARAM lParam );\r
-\r
-#endif // WSNAP_H_\r
diff --git a/winboard/wsockerr.c b/winboard/wsockerr.c
deleted file mode 100644 (file)
index fad3fe6..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-/*\r
- * wsockerr.c\r
- *\r
- * Copyright 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free Software Foundation, Inc.\r
- * ------------------------------------------------------------------------\r
- *\r
- * GNU XBoard is free software: you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation, either version 3 of the License, or (at\r
- * your option) any later version.\r
- *\r
- * GNU XBoard is distributed in the hope that it will be useful, but\r
- * WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
- * General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program. If not, see http://www.gnu.org/licenses/.  *\r
- *\r
- *------------------------------------------------------------------------\r
- ** See the file ChangeLog for a revision history.  */\r
-\r
-/* Windows sockets error map */\r
-/* These messages ought to be in the Windows message catalog! */\r
-\r
-#include <windows.h>\r
-#include <winsock.h>\r
-#include "wsockerr.h"\r
-\r
-ErrorMap errmap[] =\r
-{ {WSAEINTR, "Interrupted system call"},\r
-  {WSAEBADF, "Bad file number"},\r
-  {WSAEACCES, "Permission denied"},\r
-  {WSAEFAULT, "Bad address"},\r
-  {WSAEINVAL, "Invalid argument"},\r
-  {WSAEMFILE, "Too many open files"},\r
-  {WSAEWOULDBLOCK, "Operation would block"},\r
-  {WSAEINPROGRESS, "Operation now in progress"},\r
-  {WSAEALREADY, "Operation already in progress"},\r
-  {WSAENOTSOCK, "Socket operation on non-socket"},\r
-  {WSAEMSGSIZE, "Message too long"},\r
-  {WSAEPROTOTYPE, "Protocol wrong type for socket"},\r
-  {WSAENOPROTOOPT, "Protocol not available"},\r
-  {WSAEPROTONOSUPPORT, "Protocol not supported"},\r
-  {WSAESOCKTNOSUPPORT, "Socket type not supported"},\r
-  {WSAEOPNOTSUPP, "Operation not supported on socket"},\r
-  {WSAEPFNOSUPPORT, "Protocol family not supported"},\r
-  {WSAEAFNOSUPPORT, "Address family not supported by protocol family"},\r
-  {WSAEADDRINUSE, "Address already in use"},\r
-  {WSAEADDRNOTAVAIL, "Can't assign requested address"},\r
-  {WSAENETDOWN, "Network is down"},\r
-  {WSAENETUNREACH, "Network is unreachable"},\r
-  {WSAENETRESET, "Network dropped connection on reset"},\r
-  {WSAECONNABORTED, "Software caused connection abort"},\r
-  {WSAECONNRESET, "Connection reset by peer"},\r
-  {WSAENOBUFS, "No buffer space available"},\r
-  {WSAEISCONN, "Socket is already connected"},\r
-  {WSAENOTCONN, "Socket is not connected"},\r
-  {WSAESHUTDOWN, "Can't send after socket shutdown"},\r
-  {WSAETOOMANYREFS, "Too many references: can't splice"},\r
-  {WSAETIMEDOUT, "Connection timed out"},\r
-  {WSAECONNREFUSED, "Connection refused"},\r
-  {WSAELOOP, "Too many levels of symbolic links"},\r
-  {WSAENAMETOOLONG, "File name too long"},\r
-  {WSAEHOSTDOWN, "Host is down"},\r
-  {WSAEHOSTUNREACH, "No route to host"},\r
-  {WSAENOTEMPTY, "Directory not empty"},\r
-  {WSAEPROCLIM, "Too many processes"},\r
-  {WSAEUSERS, "Too many users"},\r
-  {WSAEDQUOT, "Disc quota exceeded"},\r
-  {WSAESTALE, "Stale NFS file handle"},\r
-  {WSAEREMOTE, "Too many levels of remote in path"},\r
-  {WSAEDISCON, "Undocumented Winsock error code WSAEDISCON"},\r
-  {WSASYSNOTREADY, "Winsock subsystem unusable"},\r
-  {WSAVERNOTSUPPORTED, "Required Winsock version is not supported"},\r
-  {WSANOTINITIALISED, "Winsock not initialized"},\r
-  {WSAHOST_NOT_FOUND, "Host name not found by name server (authoritative)"},\r
-  {WSATRY_AGAIN, "Host name not found by name server (nonauthoritative), or name server failure"},\r
-  {WSANO_RECOVERY, "Nonrecoverable name server error"},\r
-  {WSANO_DATA, "Host name has no address data of required type"},\r
-  {0, NULL}\r
-};\r
diff --git a/winboard/wsockerr.h b/winboard/wsockerr.h
deleted file mode 100644 (file)
index d9e5e79..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-/*\r
- * wsockerr.h\r
- *\r
- * Copyright 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free Software Foundation, Inc.\r
- * ------------------------------------------------------------------------\r
- *\r
- * GNU XBoard is free software: you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation, either version 3 of the License, or (at\r
- * your option) any later version.\r
- *\r
- * GNU XBoard is distributed in the hope that it will be useful, but\r
- * WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
- * General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program. If not, see http://www.gnu.org/licenses/.  *\r
- *\r
- *------------------------------------------------------------------------\r
- ** See the file ChangeLog for a revision history.  */\r
-\r
-/* Windows sockets error map */\r
-/* These messages ought to be in the Windows message catalog! */\r
-\r
-typedef struct {\r
-    int err;\r
-    char* msg;\r
-} ErrorMap;\r
-\r
-extern ErrorMap errmap[];\r
-\r
diff --git a/xaw/.dirstamp b/xaw/.dirstamp
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/xaw/xboard.c b/xaw/xboard.c
deleted file mode 100644 (file)
index 4fb562a..0000000
+++ /dev/null
@@ -1,2555 +0,0 @@
-/*
- * xboard.c -- X front end for XBoard
- *
- * Copyright 1991 by Digital Equipment Corporation, Maynard,
- * Massachusetts.
- *
- * Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006,
- * 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free
- * Software Foundation, Inc.
- *
- * The following terms apply to Digital Equipment Corporation's copyright
- * interest in XBoard:
- * ------------------------------------------------------------------------
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notice appear in all copies and that
- * both that copyright notice and this permission notice appear in
- * supporting documentation, and that the name of Digital not be
- * used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- *
- * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- * ------------------------------------------------------------------------
- *
- * The following terms apply to the enhanced version of XBoard
- * distributed by the Free Software Foundation:
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-#define HIGHDRAG 1
-
-#include "config.h"
-
-#include <stdio.h>
-#include <ctype.h>
-#include <signal.h>
-#include <errno.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <pwd.h>
-#include <math.h>
-#include <cairo/cairo.h>
-#include <cairo/cairo-xlib.h>
-
-#if !OMIT_SOCKETS
-# if HAVE_SYS_SOCKET_H
-#  include <sys/socket.h>
-#  include <netinet/in.h>
-#  include <netdb.h>
-# else /* not HAVE_SYS_SOCKET_H */
-#  if HAVE_LAN_SOCKET_H
-#   include <lan/socket.h>
-#   include <lan/in.h>
-#   include <lan/netdb.h>
-#  else /* not HAVE_LAN_SOCKET_H */
-#   define OMIT_SOCKETS 1
-#  endif /* not HAVE_LAN_SOCKET_H */
-# endif /* not HAVE_SYS_SOCKET_H */
-#endif /* !OMIT_SOCKETS */
-
-#if STDC_HEADERS
-# include <stdlib.h>
-# include <string.h>
-#else /* not STDC_HEADERS */
-extern char *getenv();
-# if HAVE_STRING_H
-#  include <string.h>
-# else /* not HAVE_STRING_H */
-#  include <strings.h>
-# endif /* not HAVE_STRING_H */
-#endif /* not STDC_HEADERS */
-
-#if HAVE_SYS_FCNTL_H
-# include <sys/fcntl.h>
-#else /* not HAVE_SYS_FCNTL_H */
-# if HAVE_FCNTL_H
-#  include <fcntl.h>
-# endif /* HAVE_FCNTL_H */
-#endif /* not HAVE_SYS_FCNTL_H */
-
-#if HAVE_SYS_SYSTEMINFO_H
-# include <sys/systeminfo.h>
-#endif /* HAVE_SYS_SYSTEMINFO_H */
-
-#if TIME_WITH_SYS_TIME
-# include <sys/time.h>
-# include <time.h>
-#else
-# if HAVE_SYS_TIME_H
-#  include <sys/time.h>
-# else
-#  include <time.h>
-# endif
-#endif
-
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
-#if HAVE_SYS_WAIT_H
-# include <sys/wait.h>
-#endif
-
-#if HAVE_DIRENT_H
-# include <dirent.h>
-# define NAMLEN(dirent) strlen((dirent)->d_name)
-# define HAVE_DIR_STRUCT
-#else
-# define dirent direct
-# define NAMLEN(dirent) (dirent)->d_namlen
-# if HAVE_SYS_NDIR_H
-#  include <sys/ndir.h>
-#  define HAVE_DIR_STRUCT
-# endif
-# if HAVE_SYS_DIR_H
-#  include <sys/dir.h>
-#  define HAVE_DIR_STRUCT
-# endif
-# if HAVE_NDIR_H
-#  include <ndir.h>
-#  define HAVE_DIR_STRUCT
-# endif
-#endif
-
-#if ENABLE_NLS
-#include <locale.h>
-#endif
-
-#include <X11/keysym.h>
-#include <X11/Intrinsic.h>
-#include <X11/StringDefs.h>
-#include <X11/Shell.h>
-#include <X11/cursorfont.h>
-#include <X11/Xatom.h>
-#include <X11/Xmu/Atoms.h>
-#if USE_XAW3D
-#include <X11/Xaw3d/Dialog.h>
-#include <X11/Xaw3d/Form.h>
-#include <X11/Xaw3d/List.h>
-#include <X11/Xaw3d/Label.h>
-#include <X11/Xaw3d/SimpleMenu.h>
-#include <X11/Xaw3d/SmeBSB.h>
-#include <X11/Xaw3d/SmeLine.h>
-#include <X11/Xaw3d/Box.h>
-#include <X11/Xaw3d/MenuButton.h>
-#include <X11/Xaw3d/Text.h>
-#include <X11/Xaw3d/AsciiText.h>
-#else
-#include <X11/Xaw/Dialog.h>
-#include <X11/Xaw/Form.h>
-#include <X11/Xaw/List.h>
-#include <X11/Xaw/Label.h>
-#include <X11/Xaw/SimpleMenu.h>
-#include <X11/Xaw/SmeBSB.h>
-#include <X11/Xaw/SmeLine.h>
-#include <X11/Xaw/Box.h>
-#include <X11/Xaw/MenuButton.h>
-#include <X11/Xaw/Text.h>
-#include <X11/Xaw/AsciiText.h>
-#endif
-
-// [HGM] bitmaps: put before incuding the bitmaps / pixmaps, to know how many piece types there are.
-#include "common.h"
-
-#include "bitmaps/icon_white.bm"
-#include "bitmaps/icon_black.bm"
-#include "bitmaps/checkmark.bm"
-
-#include "frontend.h"
-#include "backend.h"
-#include "backendz.h"
-#include "moves.h"
-#include "xboard.h"
-#include "childio.h"
-#include "xgamelist.h"
-#include "xhistory.h"
-#include "menus.h"
-#include "board.h"
-#include "dialogs.h"
-#include "engineoutput.h"
-#include "usystem.h"
-#include "gettext.h"
-#include "draw.h"
-
-#define SLASH '/'
-
-#ifdef __EMX__
-#ifndef HAVE_USLEEP
-#define HAVE_USLEEP
-#endif
-#define usleep(t)   _sleep2(((t)+500)/1000)
-#endif
-
-#ifdef ENABLE_NLS
-# define  _(s) gettext (s)
-# define N_(s) gettext_noop (s)
-#else
-# define  _(s) (s)
-# define N_(s)  s
-#endif
-
-int main P((int argc, char **argv));
-RETSIGTYPE CmailSigHandler P((int sig));
-RETSIGTYPE IntSigHandler P((int sig));
-RETSIGTYPE TermSizeSigHandler P((int sig));
-Widget CreateMenuBar P((Menu *mb, int boardWidth));
-#if ENABLE_NLS
-char *InsertPxlSize P((char *pattern, int targetPxlSize));
-XFontSet CreateFontSet P((char *base_fnt_lst));
-#else
-char *FindFont P((char *pattern, int targetPxlSize));
-#endif
-void ReadBitmap P((Pixmap *pm, String name, unsigned char bits[],
-                  u_int wreq, u_int hreq));
-void EventProc P((Widget widget, caddr_t unused, XEvent *event));
-void DelayedDrag P((void));
-static void MoveTypeInProc P((Widget widget, caddr_t unused, XEvent *event));
-void HandlePV P((Widget w, XEvent * event,
-                    String * params, Cardinal * nParams));
-void DrawPositionProc P((Widget w, XEvent *event,
-                    String *prms, Cardinal *nprms));
-void CommentClick P((Widget w, XEvent * event,
-                  String * params, Cardinal * nParams));
-void ICSInputBoxPopUp P((void));
-void SelectCommand P((Widget w, XtPointer client_data, XtPointer call_data));
-void KeyBindingProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void QuitWrapper P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-static void EnterKeyProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-static void UpKeyProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-static void DownKeyProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void TempBackwardProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void TempForwardProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-Boolean TempBackwardActive = False;
-void ManInner P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void DisplayMove P((int moveNumber));
-void update_ics_width P(());
-int CopyMemoProc P(());
-static int FindLogo P((char *place, char *name, char *buf));
-
-/*
-* XBoard depends on Xt R4 or higher
-*/
-int xtVersion = XtSpecificationRelease;
-
-int xScreen;
-Display *xDisplay;
-Window xBoardWindow;
-Pixel lowTimeWarningColor, dialogColor, buttonColor; // used in widgets
-Pixmap iconPixmap, wIconPixmap, bIconPixmap, xMarkPixmap;
-Widget shellWidget, formWidget, boardWidget, titleWidget, dropMenu, menuBarWidget;
-Option *optList; // contains all widgets of main window
-#if ENABLE_NLS
-XFontSet fontSet, clockFontSet;
-#else
-Font clockFontID;
-XFontStruct *clockFontStruct;
-#endif
-Font coordFontID, countFontID;
-XFontStruct *coordFontStruct, *countFontStruct;
-XtAppContext appContext;
-char *layoutName;
-
-char installDir[] = "."; // [HGM] UCI: needed for UCI; probably needs run-time initializtion
-
-Position commentX = -1, commentY = -1;
-Dimension commentW, commentH;
-typedef unsigned int BoardSize;
-BoardSize boardSize;
-Boolean chessProgram;
-
-int  minX, minY; // [HGM] placement: volatile limits on upper-left corner
-int smallLayout = 0, tinyLayout = 0,
-  marginW, marginH, // [HGM] for run-time resizing
-  fromX = -1, fromY = -1, toX, toY, commentUp = False,
-  errorExitStatus = -1, defaultLineGap;
-Dimension textHeight;
-Pixel timerForegroundPixel, timerBackgroundPixel;
-Pixel buttonForegroundPixel, buttonBackgroundPixel;
-char *chessDir, *programName, *programVersion;
-Boolean alwaysOnTop = False;
-char *icsTextMenuString;
-char *icsNames;
-char *firstChessProgramNames;
-char *secondChessProgramNames;
-
-WindowPlacement wpMain;
-WindowPlacement wpConsole;
-WindowPlacement wpComment;
-WindowPlacement wpMoveHistory;
-WindowPlacement wpEvalGraph;
-WindowPlacement wpEngineOutput;
-WindowPlacement wpGameList;
-WindowPlacement wpTags;
-WindowPlacement wpDualBoard;
-
-
-/* This magic number is the number of intermediate frames used
-   in each half of the animation. For short moves it's reduced
-   by 1. The total number of frames will be factor * 2 + 1.  */
-#define kFactor           4
-
-SizeDefaults sizeDefaults[] = SIZE_DEFAULTS;
-
-typedef struct {
-    char piece;
-    char* widget;
-} DropMenuEnables;
-
-DropMenuEnables dmEnables[] = {
-    { 'P', "Pawn" },
-    { 'N', "Knight" },
-    { 'B', "Bishop" },
-    { 'R', "Rook" },
-    { 'Q', "Queen" }
-};
-
-Arg shellArgs[] = {
-    { XtNwidth, 0 },
-    { XtNheight, 0 },
-    { XtNminWidth, 0 },
-    { XtNminHeight, 0 },
-    { XtNmaxWidth, 0 },
-    { XtNmaxHeight, 0 }
-};
-
-XtResource clientResources[] = {
-    { "flashCount", "flashCount", XtRInt, sizeof(int),
-       XtOffset(AppDataPtr, flashCount), XtRImmediate,
-       (XtPointer) FLASH_COUNT  },
-};
-
-XrmOptionDescRec shellOptions[] = {
-    { "-flashCount", "flashCount", XrmoptionSepArg, NULL },
-    { "-flash", "flashCount", XrmoptionNoArg, "3" },
-    { "-xflash", "flashCount", XrmoptionNoArg, "0" },
-};
-
-XtActionsRec boardActions[] = {
-    { "DrawPosition", DrawPositionProc },
-    { "HandlePV", HandlePV },
-    { "SelectPV", SelectPV },
-    { "StopPV", StopPV },
-    { "MenuItem", KeyBindingProc }, // [HGM] generic handler for key bindings
-    { "QuitProc", QuitWrapper },
-    { "ManProc", ManInner },
-    { "TempBackwardProc", TempBackwardProc },
-    { "TempForwardProc", TempForwardProc },
-    { "CommentClick", (XtActionProc) CommentClick },
-    { "GenericPopDown", (XtActionProc) GenericPopDown },
-    { "ErrorPopDown", (XtActionProc) ErrorPopDown },
-    { "CopyMemoProc", (XtActionProc) CopyMemoProc },
-    { "SelectMove", (XtActionProc) SelectMoveX },
-    { "LoadSelectedProc", LoadSelectedProc },
-    { "SetFilterProc", SetFilterProc },
-    { "TypeInProc", TypeInProc },
-    { "EnterKeyProc", EnterKeyProc },
-    { "UpKeyProc", UpKeyProc },
-    { "DownKeyProc", DownKeyProc },
-    { "WheelProc", WheelProc },
-    { "TabProc", TabProc },
-};
-
-char globalTranslations[] =
-  ":Meta<Key>Next: MenuItem(LoadNextGameProc) \n \
-   :Meta<Key>Prior: MenuItem(LoadPrevGameProc) \n \
-   :Ctrl<Key>Down: LoadSelectedProc(3) \n \
-   :Ctrl<Key>Up: LoadSelectedProc(-3) \n \
-   :Shift<Key>Next: MenuItem(LoadNextPositionProc) \n \
-   :Shift<Key>Prior: MenuItem(LoadPrevPositionProc) \n \
-   :<Key>Pause: MenuItem(Mode.Pause) \n \
-   :Ctrl<Key>d: MenuItem(DebugProc) \n \
-   :Meta Ctrl<Key>F12: MenuItem(DebugProc) \n \
-   :<Key>Left: MenuItem(Edit.Backward) \n \
-   :<Key>Right: MenuItem(Edit.Forward) \n \
-   :Ctrl<Key>P: MenuItem(PonderNextMove) \n "
-#ifndef OPTIONSDIALOG
-    "\
-   :Ctrl<Key>Q: MenuItem(AlwaysQueenProc) \n \
-   :Ctrl<Key>F: MenuItem(AutoflagProc) \n \
-   :Ctrl<Key>A: MenuItem(AnimateMovingProc) \n \
-   :Ctrl<Key>L: MenuItem(TestLegalityProc) \n \
-   :Ctrl<Key>H: MenuItem(HideThinkingProc) \n "
-#endif
-   "\
-   :<KeyDown>Return: TempBackwardProc() \n \
-   :<KeyUp>Return: TempForwardProc() \n";
-
-char ICSInputTranslations[] =
-    "<Key>Up: UpKeyProc() \n "
-    "<Key>Down: DownKeyProc() \n "
-    "<Key>Return: EnterKeyProc() \n";
-
-// [HGM] vari: another hideous kludge: call extend-end first so we can be sure select-start works,
-//             as the widget is destroyed before the up-click can call extend-end
-char commentTranslations[] = "<Btn3Down>: extend-end(PRIMARY) select-start() CommentClick() \n";
-
-String xboardResources[] = {
-    "*Error*translations: #override\\n <Key>Return: ErrorPopDown()",
-    NULL
-  };
-
-
-/* Max possible square size */
-#define MAXSQSIZE 256
-
-/* Arrange to catch delete-window events */
-Atom wm_delete_window;
-void
-CatchDeleteWindow (Widget w, String procname)
-{
-  char buf[MSG_SIZ];
-  XSetWMProtocols(xDisplay, XtWindow(w), &wm_delete_window, 1);
-  snprintf(buf, sizeof(buf), "<Message>WM_PROTOCOLS: %s() \n", procname);
-  XtAugmentTranslations(w, XtParseTranslationTable(buf));
-}
-
-void
-BoardToTop ()
-{
-  Arg args[16];
-  XtSetArg(args[0], XtNiconic, False);
-  XtSetValues(shellWidget, args, 1);
-
-  XtPopup(shellWidget, XtGrabNone); /* Raise if lowered  */
-}
-
-//---------------------------------------------------------------------------------------------------------
-// some symbol definitions to provide the proper (= XBoard) context for the code in args.h
-#define XBOARD True
-#define JAWS_ARGS
-#define CW_USEDEFAULT (1<<31)
-#define ICS_TEXT_MENU_SIZE 90
-#define DEBUG_FILE "xboard.debug"
-#define SetCurrentDirectory chdir
-#define GetCurrentDirectory(SIZE, NAME) getcwd(NAME, SIZE)
-#define OPTCHAR "-"
-#define SEPCHAR " "
-
-// The option definition and parsing code common to XBoard and WinBoard is collected in this file
-#include "args.h"
-
-// front-end part of option handling
-
-// [HGM] This platform-dependent table provides the location for storing the color info
-extern char *crWhite, * crBlack;
-
-void *
-colorVariable[] = {
-  &appData.whitePieceColor,
-  &appData.blackPieceColor,
-  &appData.lightSquareColor,
-  &appData.darkSquareColor,
-  &appData.highlightSquareColor,
-  &appData.premoveHighlightColor,
-  &appData.lowTimeWarningColor,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  &crWhite,
-  &crBlack,
-  NULL
-};
-
-// [HGM] font: keep a font for each square size, even non-stndard ones
-#define NUM_SIZES 18
-#define MAX_SIZE 130
-Boolean fontIsSet[NUM_FONTS], fontValid[NUM_FONTS][MAX_SIZE];
-char *fontTable[NUM_FONTS][MAX_SIZE];
-
-void
-ParseFont (char *name, int number)
-{ // in XBoard, only 2 of the fonts are currently implemented, and we just copy their name
-  int size;
-  if(sscanf(name, "size%d:", &size)) {
-    // [HGM] font: font is meant for specific boardSize (likely from settings file);
-    //       defer processing it until we know if it matches our board size
-    if(strstr(name, "-*-") &&        // only pay attention to things that look like X-fonts
-       size >= 0 && size<MAX_SIZE) { // for now, fixed limit
-       fontTable[number][size] = strdup(strchr(name, ':')+1);
-       fontValid[number][size] = True;
-    }
-    return;
-  }
-  switch(number) {
-    case 0: // CLOCK_FONT
-       appData.clockFont = strdup(name);
-      break;
-    case 1: // MESSAGE_FONT
-       appData.font = strdup(name);
-      break;
-    case 2: // COORD_FONT
-       appData.coordFont = strdup(name);
-      break;
-    default:
-      return;
-  }
-  fontIsSet[number] = True; // [HGM] font: indicate a font was specified (not from settings file)
-}
-
-void
-SetFontDefaults ()
-{ // only 2 fonts currently
-  appData.clockFont = CLOCK_FONT_NAME;
-  appData.coordFont = COORD_FONT_NAME;
-  appData.font  =   DEFAULT_FONT_NAME;
-}
-
-void
-CreateFonts ()
-{ // no-op, until we identify the code for this already in XBoard and move it here
-}
-
-void
-ParseColor (int n, char *name)
-{ // in XBoard, just copy the color-name string
-  if(colorVariable[n] && *name == '#') *(char**)colorVariable[n] = strdup(name);
-}
-
-char *
-Col2Text (int n)
-{
-    return *(char**)colorVariable[n];
-}
-
-void
-ParseTextAttribs (ColorClass cc, char *s)
-{
-    (&appData.colorShout)[cc] = strdup(s);
-}
-
-void
-ParseBoardSize (void *addr, char *name)
-{
-    appData.boardSize = strdup(name);
-}
-
-void
-LoadAllSounds ()
-{ // In XBoard the sound-playing program takes care of obtaining the actual sound
-}
-
-void
-SetCommPortDefaults ()
-{ // for now, this is a no-op, as the corresponding option does not exist in XBoard
-}
-
-// [HGM] args: these three cases taken out to stay in front-end
-void
-SaveFontArg (FILE *f, ArgDescriptor *ad)
-{
-  char *name;
-  int i, n = (int)(intptr_t)ad->argLoc;
-  switch(n) {
-    case 0: // CLOCK_FONT
-       name = appData.clockFont;
-      break;
-    case 1: // MESSAGE_FONT
-       name = appData.font;
-      break;
-    case 2: // COORD_FONT
-       name = appData.coordFont;
-      break;
-    default:
-      return;
-  }
-  for(i=0; i<NUM_SIZES; i++) // [HGM] font: current font becomes standard for current size
-    if(sizeDefaults[i].squareSize == squareSize) { // only for standard sizes!
-       fontTable[n][squareSize] = strdup(name);
-       fontValid[n][squareSize] = True;
-       break;
-  }
-  for(i=0; i<MAX_SIZE; i++) if(fontValid[n][i]) // [HGM] font: store all standard fonts
-    fprintf(f, OPTCHAR "%s" SEPCHAR "\"size%d:%s\"\n", ad->argName, i, fontTable[n][i]);
-}
-
-void
-ExportSounds ()
-{ // nothing to do, as the sounds are at all times represented by their text-string names already
-}
-
-void
-SaveAttribsArg (FILE *f, ArgDescriptor *ad)
-{      // here the "argLoc" defines a table index. It could have contained the 'ta' pointer itself, though
-       fprintf(f, OPTCHAR "%s" SEPCHAR "%s\n", ad->argName, (&appData.colorShout)[(int)(intptr_t)ad->argLoc]);
-}
-
-void
-SaveColor (FILE *f, ArgDescriptor *ad)
-{      // in WinBoard the color is an int and has to be converted to text. In X it would be a string already?
-       if(colorVariable[(int)(intptr_t)ad->argLoc])
-       fprintf(f, OPTCHAR "%s" SEPCHAR "%s\n", ad->argName, *(char**)colorVariable[(int)(intptr_t)ad->argLoc]);
-}
-
-void
-SaveBoardSize (FILE *f, char *name, void *addr)
-{ // wrapper to shield back-end from BoardSize & sizeInfo
-  fprintf(f, OPTCHAR "%s" SEPCHAR "%s\n", name, appData.boardSize);
-}
-
-void
-ParseCommPortSettings (char *s)
-{ // no such option in XBoard (yet)
-}
-
-int frameX, frameY;
-
-void
-GetActualPlacement (Widget wg, WindowPlacement *wp)
-{
-  XWindowAttributes winAt;
-  Window win, dummy;
-  int rx, ry;
-
-  if(!wg) return;
-
-  win = XtWindow(wg);
-  XGetWindowAttributes(xDisplay, win, &winAt); // this works, where XtGetValues on XtNx, XtNy does not!
-  XTranslateCoordinates (xDisplay, win, winAt.root, -winAt.border_width, -winAt.border_width, &rx, &ry, &dummy);
-  wp->x = rx - winAt.x;
-  wp->y = ry - winAt.y;
-  wp->height = winAt.height;
-  wp->width = winAt.width;
-  frameX = winAt.x; frameY = winAt.y; // remember to decide if windows touch
-}
-
-void
-GetPlacement (DialogClass dlg, WindowPlacement *wp)
-{ // wrapper to shield back-end from widget type
-  if(shellUp[dlg]) GetActualPlacement(shells[dlg], wp);
-}
-
-void
-GetWindowCoords ()
-{ // wrapper to shield use of window handles from back-end (make addressible by number?)
-  // In XBoard this will have to wait until awareness of window parameters is implemented
-  GetActualPlacement(shellWidget, &wpMain);
-  if(shellUp[EngOutDlg]) GetActualPlacement(shells[EngOutDlg], &wpEngineOutput);
-  if(shellUp[HistoryDlg]) GetActualPlacement(shells[HistoryDlg], &wpMoveHistory);
-  if(shellUp[EvalGraphDlg]) GetActualPlacement(shells[EvalGraphDlg], &wpEvalGraph);
-  if(shellUp[GameListDlg]) GetActualPlacement(shells[GameListDlg], &wpGameList);
-  if(shellUp[CommentDlg]) GetActualPlacement(shells[CommentDlg], &wpComment);
-  if(shellUp[TagsDlg]) GetActualPlacement(shells[TagsDlg], &wpTags);
-}
-
-void
-PrintCommPortSettings (FILE *f, char *name)
-{ // This option does not exist in XBoard
-}
-
-void
-EnsureOnScreen (int *x, int *y, int minX, int minY)
-{
-  return;
-}
-
-int
-MainWindowUp ()
-{ // [HGM] args: allows testing if main window is realized from back-end
-  return xBoardWindow != 0;
-}
-
-void
-PopUpStartupDialog ()
-{  // start menu not implemented in XBoard
-}
-
-char *
-ConvertToLine (int argc, char **argv)
-{
-  static char line[128*1024], buf[1024];
-  int i;
-
-  line[0] = NULLCHAR;
-  for(i=1; i<argc; i++)
-    {
-      if( (strchr(argv[i], ' ') || strchr(argv[i], '\n') ||strchr(argv[i], '\t') || argv[i][0] == NULLCHAR)
-         && argv[i][0] != '{' )
-       snprintf(buf, sizeof(buf)/sizeof(buf[0]), "{%s} ", argv[i]);
-      else
-       snprintf(buf, sizeof(buf)/sizeof(buf[0]), "%s ", argv[i]);
-      strncat(line, buf, 128*1024 - strlen(line) - 1 );
-    }
-
-  line[strlen(line)-1] = NULLCHAR;
-  return line;
-}
-
-//--------------------------------------------------------------------------------------------
-
-void
-ResizeBoardWindow (int w, int h, int inhibit)
-{
-    w += marginW + 1; // [HGM] not sure why the +1 is (sometimes) needed...
-    h += marginH;
-    shellArgs[0].value = w;
-    shellArgs[1].value = h;
-    shellArgs[4].value = shellArgs[2].value = w;
-    shellArgs[5].value = shellArgs[3].value = h;
-    XtSetValues(shellWidget, &shellArgs[0], inhibit ? 6 : 2);
-
-    XSync(xDisplay, False);
-}
-
-static int
-MakeOneColor (char *name, Pixel *color)
-{
-    XrmValue vFrom, vTo;
-    if (!appData.monoMode) {
-       vFrom.addr = (caddr_t) name;
-       vFrom.size = strlen(name);
-       XtConvert(shellWidget, XtRString, &vFrom, XtRPixel, &vTo);
-       if (vTo.addr == NULL) {
-         appData.monoMode = True;
-         return True;
-       } else {
-         *color = *(Pixel *) vTo.addr;
-       }
-    }
-    return False;
-}
-
-int
-MakeColors ()
-{   // [HGM] taken out of main(), so it can be called from BoardOptions dialog
-    int forceMono = False;
-
-    if (appData.lowTimeWarning)
-       forceMono |= MakeOneColor(appData.lowTimeWarningColor, &lowTimeWarningColor);
-    if(appData.dialogColor[0]) MakeOneColor(appData.dialogColor, &dialogColor);
-    if(appData.buttonColor[0]) MakeOneColor(appData.buttonColor, &buttonColor);
-
-    return forceMono;
-}
-
-void
-InitializeFonts (int clockFontPxlSize, int coordFontPxlSize, int fontPxlSize)
-{   // detervtomine what fonts to use, and create them
-    XrmValue vTo;
-    XrmDatabase xdb;
-
-    if(!fontIsSet[CLOCK_FONT] && fontValid[CLOCK_FONT][squareSize])
-       appData.clockFont = fontTable[CLOCK_FONT][squareSize];
-    if(!fontIsSet[MESSAGE_FONT] && fontValid[MESSAGE_FONT][squareSize])
-       appData.font = fontTable[MESSAGE_FONT][squareSize];
-    if(!fontIsSet[COORD_FONT] && fontValid[COORD_FONT][squareSize])
-       appData.coordFont = fontTable[COORD_FONT][squareSize];
-
-#if ENABLE_NLS
-    appData.font = InsertPxlSize(appData.font, fontPxlSize);
-    appData.clockFont = InsertPxlSize(appData.clockFont, clockFontPxlSize);
-    appData.coordFont = InsertPxlSize(appData.coordFont, coordFontPxlSize);
-    fontSet = CreateFontSet(appData.font);
-    clockFontSet = CreateFontSet(appData.clockFont);
-    {
-      /* For the coordFont, use the 0th font of the fontset. */
-      XFontSet coordFontSet = CreateFontSet(appData.coordFont);
-      XFontStruct **font_struct_list;
-      XFontSetExtents *fontSize;
-      char **font_name_list;
-      XFontsOfFontSet(coordFontSet, &font_struct_list, &font_name_list);
-      coordFontID = XLoadFont(xDisplay, font_name_list[0]);
-      coordFontStruct = XQueryFont(xDisplay, coordFontID);
-      fontSize = XExtentsOfFontSet(fontSet); // [HGM] figure out how much vertical space font takes
-      textHeight = fontSize->max_logical_extent.height + 5; // add borderWidth
-    }
-#else
-    appData.font = FindFont(appData.font, fontPxlSize);
-    appData.clockFont = FindFont(appData.clockFont, clockFontPxlSize);
-    appData.coordFont = FindFont(appData.coordFont, coordFontPxlSize);
-    clockFontID = XLoadFont(xDisplay, appData.clockFont);
-    clockFontStruct = XQueryFont(xDisplay, clockFontID);
-    coordFontID = XLoadFont(xDisplay, appData.coordFont);
-    coordFontStruct = XQueryFont(xDisplay, coordFontID);
-    // textHeight in !NLS mode!
-#endif
-    countFontID = coordFontID;  // [HGM] holdings
-    countFontStruct = coordFontStruct;
-
-    xdb = XtDatabase(xDisplay);
-#if ENABLE_NLS
-    XrmPutLineResource(&xdb, "*international: True");
-    vTo.size = sizeof(XFontSet);
-    vTo.addr = (XtPointer) &fontSet;
-    XrmPutResource(&xdb, "*fontSet", XtRFontSet, &vTo);
-#else
-    XrmPutStringResource(&xdb, "*font", appData.font);
-#endif
-}
-
-char *
-PrintArg (ArgType t)
-{
-  char *p="";
-  switch(t) {
-    case ArgZ:
-    case ArgInt:      p = " N"; break;
-    case ArgString:   p = " STR"; break;
-    case ArgBoolean:  p = " TF"; break;
-    case ArgSettingsFilename:
-    case ArgBackupSettingsFile:
-    case ArgFilename: p = " FILE"; break;
-    case ArgX:        p = " Nx"; break;
-    case ArgY:        p = " Ny"; break;
-    case ArgAttribs:  p = " TEXTCOL"; break;
-    case ArgColor:    p = " COL"; break;
-    case ArgFont:     p = " FONT"; break;
-    case ArgBoardSize: p = " SIZE"; break;
-    case ArgFloat: p = " FLOAT"; break;
-    case ArgTrue:
-    case ArgFalse:
-    case ArgTwo:
-    case ArgNone:
-    case ArgCommSettings:
-    case ArgMaster:
-    case ArgInstall:
-      break;
-  }
-  return p;
-}
-
-char *
-GenerateGlobalTranslationTable (void)
-{
-  /* go through all menu items and extract the keyboard shortcuts, so that X11 can load them */
-  char *output[2];
-
-  int i,j,n=0;
-  MenuItem *mi;
-
-  output[0] = strdup(""); // build keystrokes with and wo mod keys separately
-  output[1] = strdup(""); // so the more specific can preceed the other
-
-  /* loop over all menu entries */
-  for( i=0; menuBar[i-n].mi || !n++; i++)
-    {
-      mi = menuBar[i+n].mi; // kludge to access 'noMenu' behind sentinel
-      for(j=0; mi[j].proc; j++)
-       {
-         if (mi[j].accel)
-           {
-             int ctrl  = 0;
-             int shift = 0;
-             int alt   = 0;
-
-             char *key,*test, *mods;
-
-             /* check for Ctrl/Alt */
-             if( strstr(mi[j].accel, "<Ctrl>")  ) ctrl  = 1;
-             if( strstr(mi[j].accel, "<Shift>") ) shift = 1;
-             if( strstr(mi[j].accel, "<Alt>")   ) alt   = 1;
-
-             /* remove all <...> */
-             test = strrchr(mi[j].accel, '>');
-             if ( test==NULL )
-               key = strdup(mi[j].accel);
-             else
-               key = strdup(++test); // remove ">"
-
-             /* instead of shift X11 uses the uppercase letter directly*/
-             if (shift && strlen(key)==1 )
-               {
-                 *key  = toupper(*key);
-                 shift = 0;
-               }
-
-             /* handle some special cases which have different names in X11 */
-             if ( strncmp(key, "Page_Down", 9) == 0 )
-               {
-                 free(key);
-                 key=strdup("Next");
-               }
-             else if ( strncmp(key, "Page_Up", 7) == 0 )
-               {
-                 free(key);
-                 key=strdup("Prior");
-               };
-
-             /* create string of mods */
-             if (ctrl)
-               mods = strdup("Ctrl ");
-             else
-               mods = strdup("");
-
-             if(alt)
-               {
-                 mods = realloc(mods, strlen(mods) + strlen("Meta ")+1);
-                 strncat(mods, "Meta ", 5);
-               };
-
-             if(shift)
-               {
-                 mods = realloc(mods, strlen(mods) + strlen("Shift ")+1);
-                 strncat(mods, "Shift ", 6);
-               };
-
-             // remove trailing space
-             if( isspace(mods[strlen(mods)-1]) )
-               mods[strlen(mods)-1]='\0';
-
-             /* get the name for the callback, we can use MenuItem() here that will call KeyBindingProc */
-             char *name = malloc(MSG_SIZ);
-             if(n) snprintf(name, MSG_SIZ, "%s", mi[j].ref);
-             else  snprintf(name, MSG_SIZ, "%s.%s", menuBar[i].ref, mi[j].ref);
-
-             char *buffer = malloc(MSG_SIZ);
-             snprintf(buffer, MSG_SIZ, ":%s<Key>%s: MenuItem(%s) \n ", mods, key, name);
-
-             /* add string to the output */
-             output[shift|alt|ctrl] = realloc(output[shift|alt|ctrl], strlen(output[shift|alt|ctrl]) + strlen(buffer)+1);
-             strncat(output[shift|alt|ctrl], buffer, strlen(buffer));
-
-             /* clean up */
-             free(key);
-             free(buffer);
-             free(name);
-             free(mods);
-           }
-       }
-    }
-  output[1] = realloc(output[1], strlen(output[1]) + strlen(output[0])+1);
-  strncat(output[1], output[0], strlen(output[0]));
-  free(output[0]);
-  return output[1];
-}
-
-
-void
-PrintOptions ()
-{
-  char buf[MSG_SIZ];
-  int len=0;
-  ArgDescriptor *q, *p = argDescriptors+5;
-  printf("\nXBoard accepts the following options:\n"
-         "(N = integer, TF = true or false, STR = text string, FILE = filename,\n"
-         " Nx, Ny = relative coordinates, COL = color, FONT = X-font spec,\n"
-         " SIZE = board-size spec(s)\n"
-         " Within parentheses are short forms, or options to set to true or false.\n"
-         " Persistent options (saved in the settings file) are marked with *)\n\n");
-  while(p->argName) {
-    if(p->argType == ArgCommSettings) { p++; continue; } // XBoard has no comm port
-    snprintf(buf+len, MSG_SIZ, "-%s%s", p->argName, PrintArg(p->argType));
-    if(p->save) strcat(buf+len, "*");
-    for(q=p+1; q->argLoc == p->argLoc; q++) {
-      if(q->argName[0] == '-') continue;
-      strcat(buf+len, q == p+1 ? " (" : " ");
-      sprintf(buf+strlen(buf), "-%s%s", q->argName, PrintArg(q->argType));
-    }
-    if(q != p+1) strcat(buf+len, ")");
-    len = strlen(buf);
-    if(len > 39) len = 0, printf("%s\n", buf); else while(len < 39) buf[len++] = ' ';
-    p = q;
-  }
-  if(len) buf[len] = NULLCHAR, printf("%s\n", buf);
-}
-
-void
-SlaveResize (Option *opt)
-{
-}
-
-int
-main (int argc, char **argv)
-{
-    int i, clockFontPxlSize, coordFontPxlSize, fontPxlSize;
-    XSetWindowAttributes window_attributes;
-    Arg args[16];
-    Dimension boardWidth, boardHeight, w, h;
-    char *p;
-    int forceMono = False;
-
-    extern Option chatOptions[]; // FIXME: adapt Chat window, removing ICS pane and Hide button
-    chatOptions[6].type = chatOptions[10].type = Skip;
-
-    srandom(time(0)); // [HGM] book: make random truly random
-
-    setbuf(stdout, NULL);
-    setbuf(stderr, NULL);
-    debugFP = stderr;
-
-    if(argc > 1 && (!strcmp(argv[1], "-v" ) || !strcmp(argv[1], "--version" ))) {
-      printf("%s version %s\n\n  configure options: %s\n", PACKAGE_NAME, PACKAGE_VERSION, CONFIGURE_OPTIONS);
-       exit(0);
-    }
-
-    if(argc > 1 && !strcmp(argv[1], "--help" )) {
-       PrintOptions();
-       exit(0);
-    }
-
-    if(argc > 1 && !strcmp(argv[1], "--show-config")) { // [HGM] install: called to print config info
-       typedef struct {char *name, *value; } Config;
-       static Config configList[] = {
-         { "Datadir", DATADIR },
-         { "Sysconfdir", SYSCONFDIR },
-         { NULL }
-       };
-       int i;
-
-       for(i=0; configList[i].name; i++) {
-           if(argc > 2 && strcmp(argv[2], configList[i].name)) continue;
-           if(argc > 2) printf("%s", configList[i].value);
-           else printf("%-12s: %s\n", configList[i].name, configList[i].value);
-       }
-       exit(0);
-    }
-
-    programName = strrchr(argv[0], '/');
-    if (programName == NULL)
-      programName = argv[0];
-    else
-      programName++;
-
-#ifdef ENABLE_NLS
-    XtSetLanguageProc(NULL, NULL, NULL);
-    if (appData.debugMode) {
-      fprintf(debugFP, "locale = %s\n", setlocale(LC_ALL, NULL));
-    }
-
-    bindtextdomain(PACKAGE, LOCALEDIR);
-    textdomain(PACKAGE);
-#endif
-
-    appData.boardSize = "";
-    InitAppData(ConvertToLine(argc, argv));
-    p = getenv("HOME");
-    if (p == NULL) p = "/tmp";
-    i = strlen(p) + strlen("/.xboardXXXXXx.pgn") + 1;
-    gameCopyFilename = (char*) malloc(i);
-    gamePasteFilename = (char*) malloc(i);
-    snprintf(gameCopyFilename,i, "%s/.xboard%05uc.pgn", p, getpid());
-    snprintf(gamePasteFilename,i, "%s/.xboard%05up.pgn", p, getpid());
-
-    { // [HGM] initstring: kludge to fix bad bug. expand '\n' characters in init string and computer string.
-       static char buf[MSG_SIZ];
-       EscapeExpand(buf, appData.firstInitString);
-       appData.firstInitString = strdup(buf);
-       EscapeExpand(buf, appData.secondInitString);
-       appData.secondInitString = strdup(buf);
-       EscapeExpand(buf, appData.firstComputerString);
-       appData.firstComputerString = strdup(buf);
-       EscapeExpand(buf, appData.secondComputerString);
-       appData.secondComputerString = strdup(buf);
-    }
-
-    if ((chessDir = (char *) getenv("CHESSDIR")) == NULL) {
-       chessDir = ".";
-    } else {
-       if (chdir(chessDir) != 0) {
-           fprintf(stderr, _("%s: can't cd to CHESSDIR: "), programName);
-           perror(chessDir);
-           exit(1);
-       }
-    }
-
-    if (appData.debugMode && appData.nameOfDebugFile && strcmp(appData.nameOfDebugFile, "stderr")) {
-       /* [DM] debug info to file [HGM] make the filename a command-line option, and allow it to remain stderr */
-        if ((debugFP = fopen(appData.nameOfDebugFile, "w")) == NULL)  {
-           printf(_("Failed to open file '%s'\n"), appData.nameOfDebugFile);
-           exit(errno);
-        }
-        setbuf(debugFP, NULL);
-    }
-
-    /* [HGM,HR] make sure board size is acceptable */
-    if(appData.NrFiles > BOARD_FILES ||
-       appData.NrRanks > BOARD_RANKS   )
-        DisplayFatalError(_("Recompile with larger BOARD_RANKS or BOARD_FILES to support this size"), 0, 2);
-
-#if !HIGHDRAG
-    /* This feature does not work; animation needs a rewrite */
-    appData.highlightDragging = FALSE;
-#endif
-    InitBackEnd1();
-
-       gameInfo.variant = StringToVariant(appData.variant);
-       InitPosition(FALSE);
-
-    shellWidget =
-      XtAppInitialize(&appContext, "XBoard", shellOptions,
-                     XtNumber(shellOptions),
-                     &argc, argv, xboardResources, NULL, 0);
-
-    XtGetApplicationResources(shellWidget, (XtPointer) &appData,
-                             clientResources, XtNumber(clientResources),
-                             NULL, 0);
-
-    xDisplay = XtDisplay(shellWidget);
-    xScreen = DefaultScreen(xDisplay);
-    wm_delete_window = XInternAtom(xDisplay, "WM_DELETE_WINDOW", True);
-
-    /*
-     * determine size, based on supplied or remembered -size, or screen size
-     */
-    if (isdigit(appData.boardSize[0])) {
-        i = sscanf(appData.boardSize, "%d,%d,%d,%d,%d,%d,%d", &squareSize,
-                  &lineGap, &clockFontPxlSize, &coordFontPxlSize,
-                  &fontPxlSize, &smallLayout, &tinyLayout);
-        if (i == 0) {
-           fprintf(stderr, _("%s: bad boardSize syntax %s\n"),
-                   programName, appData.boardSize);
-           exit(2);
-       }
-       if(BOARD_WIDTH > 8)
-           squareSize = (squareSize*8 + BOARD_WIDTH/2)/BOARD_WIDTH; // scale height
-       if (i < 7) {
-           /* Find some defaults; use the nearest known size */
-           SizeDefaults *szd, *nearest;
-           int distance = 99999;
-           nearest = szd = sizeDefaults;
-           while (szd->name != NULL) {
-               if (abs(szd->squareSize - squareSize) < distance) {
-                   nearest = szd;
-                   distance = abs(szd->squareSize - squareSize);
-                   if (distance == 0) break;
-               }
-               szd++;
-           }
-           if (i < 2) lineGap = nearest->lineGap;
-           if (i < 3) clockFontPxlSize = nearest->clockFontPxlSize;
-           if (i < 4) coordFontPxlSize = nearest->coordFontPxlSize;
-           if (i < 5) fontPxlSize = nearest->fontPxlSize;
-           if (i < 6) smallLayout = nearest->smallLayout;
-           if (i < 7) tinyLayout = nearest->tinyLayout;
-       }
-    } else {
-        SizeDefaults *szd = sizeDefaults;
-        if (*appData.boardSize == NULLCHAR) {
-           while (DisplayWidth(xDisplay, xScreen)  < (szd->minScreenSize*BOARD_WIDTH  + 4)/8 ||
-                  DisplayHeight(xDisplay, xScreen) < (szd->minScreenSize*BOARD_HEIGHT + 4)/8) {
-             szd++;
-           }
-           if (szd->name == NULL) szd--;
-           appData.boardSize = strdup(szd->name); // [HGM] settings: remember name for saving settings
-       } else {
-           while (szd->name != NULL &&
-                  StrCaseCmp(szd->name, appData.boardSize) != 0) szd++;
-           if (szd->name == NULL) {
-               fprintf(stderr, _("%s: unrecognized boardSize name %s\n"),
-                       programName, appData.boardSize);
-               exit(2);
-           }
-       }
-       squareSize = szd->squareSize;
-       lineGap = szd->lineGap;
-       clockFontPxlSize = szd->clockFontPxlSize;
-       coordFontPxlSize = szd->coordFontPxlSize;
-       fontPxlSize = szd->fontPxlSize;
-       smallLayout = szd->smallLayout;
-       tinyLayout = szd->tinyLayout;
-       // [HGM] font: use defaults from settings file if available and not overruled
-    }
-
-    defaultLineGap = lineGap;
-    if(appData.overrideLineGap >= 0) lineGap = appData.overrideLineGap;
-
-    /* [HR] height treated separately (hacked) */
-    boardWidth = lineGap + BOARD_WIDTH * (squareSize + lineGap);
-    boardHeight = lineGap + BOARD_HEIGHT * (squareSize + lineGap);
-
-    /*
-     * Determine what fonts to use.
-     */
-    InitializeFonts(clockFontPxlSize, coordFontPxlSize, fontPxlSize);
-
-    /*
-     * Detect if there are not enough colors available and adapt.
-     */
-    if (DefaultDepth(xDisplay, xScreen) <= 2) {
-      appData.monoMode = True;
-    }
-
-    forceMono = MakeColors();
-
-    if (forceMono) {
-      fprintf(stderr, _("%s: too few colors available; trying monochrome mode\n"),
-             programName);
-       appData.monoMode = True;
-    }
-
-    if (appData.monoMode && appData.debugMode) {
-       fprintf(stderr, _("white pixel = 0x%lx, black pixel = 0x%lx\n"),
-               (unsigned long) XWhitePixel(xDisplay, xScreen),
-               (unsigned long) XBlackPixel(xDisplay, xScreen));
-    }
-
-    ParseIcsTextColors();
-
-    XtAppAddActions(appContext, boardActions, XtNumber(boardActions));
-
-    /*
-     * widget hierarchy
-     */
-    if (tinyLayout) {
-       layoutName = "tinyLayout";
-    } else if (smallLayout) {
-       layoutName = "smallLayout";
-    } else {
-       layoutName = "normalLayout";
-    }
-
-    optList = BoardPopUp(squareSize, lineGap, (void*)
-#if ENABLE_NLS
-                                               &clockFontSet);
-#else
-                                               clockFontStruct);
-#endif
-    InitDrawingHandle(optList + W_BOARD);
-    currBoard        = &optList[W_BOARD];
-    boardWidget      = optList[W_BOARD].handle;
-    menuBarWidget    = optList[W_MENU].handle;
-    dropMenu         = optList[W_DROP].handle;
-    titleWidget = optList[optList[W_TITLE].type != Skip ? W_TITLE : W_SMALL].handle;
-    formWidget  = XtParent(boardWidget);
-    XtSetArg(args[0], XtNbackground, &timerBackgroundPixel);
-    XtSetArg(args[1], XtNforeground, &timerForegroundPixel);
-    XtGetValues(optList[W_WHITE].handle, args, 2);
-    if (appData.showButtonBar) { // can't we use timer pixels for this? (Or better yet, just black & white?)
-      XtSetArg(args[0], XtNbackground, &buttonBackgroundPixel);
-      XtSetArg(args[1], XtNforeground, &buttonForegroundPixel);
-      XtGetValues(optList[W_PAUSE].handle, args, 2);
-    }
-
-    xBoardWindow = XtWindow(boardWidget);
-
-    // [HGM] it seems the layout code ends here, but perhaps the color stuff is size independent and would
-    //       not need to go into InitDrawingSizes().
-
-    /*
-     * Create X checkmark bitmap and initialize option menu checks.
-     */
-    ReadBitmap(&xMarkPixmap, "checkmark.bm",
-              checkmark_bits, checkmark_width, checkmark_height);
-    InitMenuMarkers();
-
-    /*
-     * Create an icon.
-     */
-    ReadBitmap(&wIconPixmap, "icon_white.bm",
-              icon_white_bits, icon_white_width, icon_white_height);
-    ReadBitmap(&bIconPixmap, "icon_black.bm",
-              icon_black_bits, icon_black_width, icon_black_height);
-    iconPixmap = wIconPixmap;
-    i = 0;
-    XtSetArg(args[i], XtNiconPixmap, iconPixmap);  i++;
-    XtSetValues(shellWidget, args, i);
-
-    /*
-     * Create a cursor for the board widget.
-     */
-    window_attributes.cursor = XCreateFontCursor(xDisplay, XC_hand2);
-    XChangeWindowAttributes(xDisplay, xBoardWindow,
-                           CWCursor, &window_attributes);
-
-    /*
-     * Inhibit shell resizing.
-     */
-    shellArgs[0].value = (XtArgVal) &w;
-    shellArgs[1].value = (XtArgVal) &h;
-    XtGetValues(shellWidget, shellArgs, 2);
-    shellArgs[4].value = shellArgs[2].value = w;
-    shellArgs[5].value = shellArgs[3].value = h;
-//    XtSetValues(shellWidget, &shellArgs[2], 4);
-    marginW =  w - boardWidth; // [HGM] needed to set new shellWidget size when we resize board
-    marginH =  h - boardHeight;
-
-    CatchDeleteWindow(shellWidget, "QuitProc");
-
-    CreateAnyPieces(1);
-    CreateGrid();
-
-    if(appData.logoSize)
-    {   // locate and read user logo
-       char buf[MSG_SIZ], name[MSG_SIZ];
-       snprintf(name, MSG_SIZ, "/home/%s", UserName());
-       if(!FindLogo(name, ".logo", buf))
-           FindLogo(appData.logoDir, name + 6, buf);
-       ASSIGN(userLogo, buf);
-    }
-
-    if (appData.animate || appData.animateDragging)
-      CreateAnimVars();
-
-
-    char *TranslationsTableMenus=GenerateGlobalTranslationTable ();
-
-    XtAugmentTranslations(formWidget,
-                         XtParseTranslationTable(globalTranslations));
-    XtAugmentTranslations(formWidget,
-                         XtParseTranslationTable(TranslationsTableMenus));
-
-    XtAddEventHandler(formWidget, KeyPressMask, False,
-                     (XtEventHandler) MoveTypeInProc, NULL);
-    XtAddEventHandler(shellWidget, StructureNotifyMask, False,
-                     (XtEventHandler) EventProc, NULL);
-
-    /* [AS] Restore layout */
-    if( wpMoveHistory.visible ) {
-      HistoryPopUp();
-    }
-
-    if( wpEvalGraph.visible )
-      {
-       EvalGraphPopUp();
-      };
-
-    if( wpEngineOutput.visible ) {
-      EngineOutputPopUp();
-    }
-
-    gameInfo.boardWidth = 0; // [HGM] pieces: kludge to ensure InitPosition() calls InitDrawingSizes()
-    InitPosition(TRUE);
-
-    InitBackEnd2();
-
-    if (errorExitStatus == -1) {
-       if (appData.icsActive) {
-           /* We now wait until we see "login:" from the ICS before
-              sending the logon script (problems with timestamp otherwise) */
-           /*ICSInitScript();*/
-           if (appData.icsInputBox) ICSInputBoxPopUp();
-       }
-
-    #ifdef SIGWINCH
-    signal(SIGWINCH, TermSizeSigHandler);
-    #endif
-       signal(SIGINT, IntSigHandler);
-       signal(SIGTERM, IntSigHandler);
-       if (*appData.cmailGameName != NULLCHAR) {
-           signal(SIGUSR1, CmailSigHandler);
-       }
-    }
-
-    UpdateLogos(TRUE);
-//    XtSetKeyboardFocus(shellWidget, formWidget);
-    XSetInputFocus(xDisplay, XtWindow(formWidget), RevertToPointerRoot, CurrentTime);
-
-    XtAppMainLoop(appContext);
-    if (appData.debugMode) fclose(debugFP); // [DM] debug
-    return 0;
-}
-
-void
-DoEvents ()
-{
-    XtInputMask m;
-    while((m = XtAppPending(appContext))) XtAppProcessEvent(appContext, m);
-}
-
-RETSIGTYPE
-TermSizeSigHandler (int sig)
-{
-    update_ics_width();
-}
-
-RETSIGTYPE
-IntSigHandler (int sig)
-{
-    ExitEvent(sig);
-}
-
-RETSIGTYPE
-CmailSigHandler (int sig)
-{
-    int dummy = 0;
-    int error;
-
-    signal(SIGUSR1, SIG_IGN);  /* suspend handler     */
-
-    /* Activate call-back function CmailSigHandlerCallBack()             */
-    OutputToProcess(cmailPR, (char *)(&dummy), sizeof(int), &error);
-
-    signal(SIGUSR1, CmailSigHandler); /* re-activate handler */
-}
-
-void
-CmailSigHandlerCallBack (InputSourceRef isr, VOIDSTAR closure, char *message, int count, int error)
-{
-    BoardToTop();
-    ReloadCmailMsgEvent(TRUE); /* Reload cmail msg  */
-}
-/**** end signal code ****/
-
-
-#define Abs(n) ((n)<0 ? -(n) : (n))
-
-#ifdef ENABLE_NLS
-char *
-InsertPxlSize (char *pattern, int targetPxlSize)
-{
-    char *base_fnt_lst, strInt[12], *p, *q;
-    int alternatives, i, len, strIntLen;
-
-    /*
-     * Replace the "*" (if present) in the pixel-size slot of each
-     * alternative with the targetPxlSize.
-     */
-    p = pattern;
-    alternatives = 1;
-    while ((p = strchr(p, ',')) != NULL) {
-      alternatives++;
-      p++;
-    }
-    snprintf(strInt, sizeof(strInt), "%d", targetPxlSize);
-    strIntLen = strlen(strInt);
-    base_fnt_lst = calloc(1, strlen(pattern) + strIntLen * alternatives + 1);
-
-    p = pattern;
-    q = base_fnt_lst;
-    while (alternatives--) {
-      char *comma = strchr(p, ',');
-      for (i=0; i<14; i++) {
-       char *hyphen = strchr(p, '-');
-       if (!hyphen) break;
-       if (comma && hyphen > comma) break;
-       len = hyphen + 1 - p;
-       if (i == 7 && *p == '*' && len == 2) {
-         p += len;
-         memcpy(q, strInt, strIntLen);
-         q += strIntLen;
-         *q++ = '-';
-       } else {
-         memcpy(q, p, len);
-         p += len;
-         q += len;
-       }
-      }
-      if (!comma) break;
-      len = comma + 1 - p;
-      memcpy(q, p, len);
-      p += len;
-      q += len;
-    }
-    strcpy(q, p);
-
-    return base_fnt_lst;
-}
-
-XFontSet
-CreateFontSet (char *base_fnt_lst)
-{
-    XFontSet fntSet;
-    char **missing_list;
-    int missing_count;
-    char *def_string;
-
-    fntSet = XCreateFontSet(xDisplay, base_fnt_lst,
-                           &missing_list, &missing_count, &def_string);
-    if (appData.debugMode) {
-      int i, count;
-      XFontStruct **font_struct_list;
-      char **font_name_list;
-      fprintf(debugFP, "Requested font set for list %s\n", base_fnt_lst);
-      if (fntSet) {
-       fprintf(debugFP, " got list %s, locale %s\n",
-               XBaseFontNameListOfFontSet(fntSet),
-               XLocaleOfFontSet(fntSet));
-       count = XFontsOfFontSet(fntSet, &font_struct_list, &font_name_list);
-       for (i = 0; i < count; i++) {
-         fprintf(debugFP, " got charset %s\n", font_name_list[i]);
-       }
-      }
-      for (i = 0; i < missing_count; i++) {
-       fprintf(debugFP, " missing charset %s\n", missing_list[i]);
-      }
-    }
-    if (fntSet == NULL) {
-      fprintf(stderr, _("Unable to create font set for %s.\n"), base_fnt_lst);
-      exit(2);
-    }
-    return fntSet;
-}
-#else // not ENABLE_NLS
-/*
- * Find a font that matches "pattern" that is as close as
- * possible to the targetPxlSize.  Prefer fonts that are k
- * pixels smaller to fonts that are k pixels larger.  The
- * pattern must be in the X Consortium standard format,
- * e.g. "-*-helvetica-bold-r-normal--*-*-*-*-*-*-*-*".
- * The return value should be freed with XtFree when no
- * longer needed.
- */
-char *
-FindFont (char *pattern, int targetPxlSize)
-{
-    char **fonts, *p, *best, *scalable, *scalableTail;
-    int i, j, nfonts, minerr, err, pxlSize;
-
-    fonts = XListFonts(xDisplay, pattern, 999999, &nfonts);
-    if (nfonts < 1) {
-       fprintf(stderr, _("%s: no fonts match pattern %s\n"),
-               programName, pattern);
-       exit(2);
-    }
-
-    best = fonts[0];
-    scalable = NULL;
-    minerr = 999999;
-    for (i=0; i<nfonts; i++) {
-       j = 0;
-       p = fonts[i];
-       if (*p != '-') continue;
-       while (j < 7) {
-           if (*p == NULLCHAR) break;
-           if (*p++ == '-') j++;
-       }
-       if (j < 7) continue;
-       pxlSize = atoi(p);
-       if (pxlSize == 0) {
-           scalable = fonts[i];
-           scalableTail = p;
-       } else {
-           err = pxlSize - targetPxlSize;
-           if (Abs(err) < Abs(minerr) ||
-               (minerr > 0 && err < 0 && -err == minerr)) {
-               best = fonts[i];
-               minerr = err;
-           }
-       }
-    }
-    if (scalable && Abs(minerr) > appData.fontSizeTolerance) {
-        /* If the error is too big and there is a scalable font,
-          use the scalable font. */
-        int headlen = scalableTail - scalable;
-        p = (char *) XtMalloc(strlen(scalable) + 10);
-       while (isdigit(*scalableTail)) scalableTail++;
-       sprintf(p, "%.*s%d%s", headlen, scalable, targetPxlSize, scalableTail);
-    } else {
-        p = (char *) XtMalloc(strlen(best) + 2);
-        safeStrCpy(p, best, strlen(best)+1 );
-    }
-    if (appData.debugMode) {
-        fprintf(debugFP, "resolved %s at pixel size %d\n  to %s\n",
-               pattern, targetPxlSize, p);
-    }
-    XFreeFontNames(fonts);
-    return p;
-}
-#endif
-
-void
-ReadBitmap (Pixmap *pm, String name, unsigned char bits[], u_int wreq, u_int hreq)
-{
-    if (bits != NULL) {
-       *pm = XCreateBitmapFromData(xDisplay, xBoardWindow, (char *) bits,
-                                   wreq, hreq);
-    }
-}
-
-void
-MarkMenuItem (char *menuRef, int state)
-{
-    MenuItem *item = MenuNameToItem(menuRef);
-
-    if(item) {
-       Arg args[2];
-       XtSetArg(args[0], XtNleftBitmap, state ? xMarkPixmap : None);
-       XtSetValues(item->handle, args, 1);
-    }
-}
-
-void
-EnableNamedMenuItem (char *menuRef, int state)
-{
-    MenuItem *item = MenuNameToItem(menuRef);
-
-    if(item) XtSetSensitive(item->handle, state);
-}
-
-void
-EnableButtonBar (int state)
-{
-    XtSetSensitive(optList[W_BUTTON].handle, state);
-}
-
-
-void
-SetMenuEnables (Enables *enab)
-{
-  while (enab->name != NULL) {
-    EnableNamedMenuItem(enab->name, enab->value);
-    enab++;
-  }
-}
-
-void
-KeyBindingProc (Widget w, XEvent *event, String *prms, Cardinal *nprms)
-{   // [HGM] new method of key binding: specify MenuItem(FlipView) in stead of FlipViewProc in translation string
-    MenuItem *item;
-    if(*nprms == 0) return;
-    item = MenuNameToItem(prms[0]);
-    if(item) ((MenuProc *) item->proc) ();
-}
-
-void
-SetupDropMenu ()
-{
-    int i, j, count;
-    char label[32];
-    Arg args[16];
-    Widget entry;
-    char* p;
-
-    for (i=0; i<sizeof(dmEnables)/sizeof(DropMenuEnables); i++) {
-       entry = XtNameToWidget(dropMenu, dmEnables[i].widget);
-       p = strchr(gameMode == IcsPlayingWhite ? white_holding : black_holding,
-                  dmEnables[i].piece);
-       XtSetSensitive(entry, p != NULL || !appData.testLegality
-                      /*!!temp:*/ || (gameInfo.variant == VariantCrazyhouse
-                                      && !appData.icsActive));
-       count = 0;
-       while (p && *p++ == dmEnables[i].piece) count++;
-       snprintf(label, sizeof(label), "%s  %d", dmEnables[i].widget, count);
-       j = 0;
-       XtSetArg(args[j], XtNlabel, label); j++;
-       XtSetValues(entry, args, j);
-    }
-}
-
-static void
-do_flash_delay (unsigned long msec)
-{
-    TimeDelay(msec);
-}
-
-void
-FlashDelay (int flash_delay)
-{
-       XSync(xDisplay, False);
-       if(flash_delay) do_flash_delay(flash_delay);
-}
-
-double
-Fraction (int x, int start, int stop)
-{
-   double f = ((double) x - start)/(stop - start);
-   if(f > 1.) f = 1.; else if(f < 0.) f = 0.;
-   return f;
-}
-
-static WindowPlacement wpNew;
-
-void
-CoDrag (Widget sh, WindowPlacement *wp)
-{
-    Arg args[16];
-    int j=0, touch=0, fudge = 2;
-    GetActualPlacement(sh, wp);
-    if(abs(wpMain.x + wpMain.width + 2*frameX - wp->x)         < fudge) touch = 1; else // right touch
-    if(abs(wp->x + wp->width + 2*frameX - wpMain.x)            < fudge) touch = 2; else // left touch
-    if(abs(wpMain.y + wpMain.height + frameX + frameY - wp->y) < fudge) touch = 3; else // bottom touch
-    if(abs(wp->y + wp->height + frameX + frameY - wpMain.y)    < fudge) touch = 4;      // top touch
-    if(!touch ) return; // only windows that touch co-move
-    if(touch < 3 && wpNew.height != wpMain.height) { // left or right and height changed
-       int heightInc = wpNew.height - wpMain.height;
-       double fracTop = Fraction(wp->y, wpMain.y, wpMain.y + wpMain.height + frameX + frameY);
-       double fracBot = Fraction(wp->y + wp->height + frameX + frameY + 1, wpMain.y, wpMain.y + wpMain.height + frameX + frameY);
-       wp->y += fracTop * heightInc;
-       heightInc = (int) (fracBot * heightInc) - (int) (fracTop * heightInc);
-       if(heightInc) XtSetArg(args[j], XtNheight, wp->height + heightInc), j++;
-    } else if(touch > 2 && wpNew.width != wpMain.width) { // top or bottom and width changed
-       int widthInc = wpNew.width - wpMain.width;
-       double fracLeft = Fraction(wp->x, wpMain.x, wpMain.x + wpMain.width + 2*frameX);
-       double fracRght = Fraction(wp->x + wp->width + 2*frameX + 1, wpMain.x, wpMain.x + wpMain.width + 2*frameX);
-       wp->y += fracLeft * widthInc;
-       widthInc = (int) (fracRght * widthInc) - (int) (fracLeft * widthInc);
-       if(widthInc) XtSetArg(args[j], XtNwidth, wp->width + widthInc), j++;
-    }
-    wp->x += wpNew.x - wpMain.x;
-    wp->y += wpNew.y - wpMain.y;
-    if(touch == 1) wp->x += wpNew.width - wpMain.width; else
-    if(touch == 3) wp->y += wpNew.height - wpMain.height;
-    XtSetArg(args[j], XtNx, wp->x); j++;
-    XtSetArg(args[j], XtNy, wp->y); j++;
-    XtSetValues(sh, args, j);
-}
-
-void
-ReSize (WindowPlacement *wp)
-{
-       int sqx, sqy, w, h;
-       if(wp->width == wpMain.width && wp->height == wpMain.height) return; // not sized
-       sqx = (wp->width  - lineGap - marginW) / BOARD_WIDTH - lineGap;
-       sqy = (wp->height - lineGap - marginH) / BOARD_HEIGHT - lineGap;
-       if(sqy < sqx) sqx = sqy;
-       if(sqx != squareSize) {
-           squareSize = sqx; // adopt new square size
-           CreatePNGPieces(); // make newly scaled pieces
-           InitDrawingSizes(0, 0); // creates grid etc.
-       } else ResizeBoardWindow(BOARD_WIDTH * (squareSize + lineGap) + lineGap, BOARD_HEIGHT * (squareSize + lineGap) + lineGap, 0);
-       w = BOARD_WIDTH * (squareSize + lineGap) + lineGap;
-       h = BOARD_HEIGHT * (squareSize + lineGap) + lineGap;
-       if(optList[W_BOARD].max   > w) optList[W_BOARD].max = w;
-       if(optList[W_BOARD].value > h) optList[W_BOARD].value = h;
-}
-
-static XtIntervalId delayedDragID = 0;
-
-void
-DragProc ()
-{
-       static int busy;
-       if(busy) return;
-
-       busy = 1;
-       GetActualPlacement(shellWidget, &wpNew);
-       if(wpNew.x == wpMain.x && wpNew.y == wpMain.y && // not moved
-          wpNew.width == wpMain.width && wpNew.height == wpMain.height) { // not sized
-           busy = 0; return; // false alarm
-       }
-       ReSize(&wpNew);
-       if(shellUp[EngOutDlg]) CoDrag(shells[EngOutDlg], &wpEngineOutput);
-       if(shellUp[HistoryDlg]) CoDrag(shells[HistoryDlg], &wpMoveHistory);
-       if(shellUp[EvalGraphDlg]) CoDrag(shells[EvalGraphDlg], &wpEvalGraph);
-       if(shellUp[GameListDlg]) CoDrag(shells[GameListDlg], &wpGameList);
-       wpMain = wpNew;
-       DrawPosition(True, NULL);
-       delayedDragID = 0; // now drag executed, make sure next DelayedDrag will not cancel timer event (which could now be used by other)
-       busy = 0;
-}
-
-
-void
-DelayedDrag ()
-{
-    if(delayedDragID) XtRemoveTimeOut(delayedDragID); // cancel pending
-    delayedDragID =
-      XtAppAddTimeOut(appContext, 200, (XtTimerCallbackProc) DragProc, (XtPointer) 0); // and schedule new one 50 msec later
-}
-
-void
-EventProc (Widget widget, caddr_t unused, XEvent *event)
-{
-    if(XtIsRealized(widget) && event->type == ConfigureNotify || appData.useStickyWindows)
-       DelayedDrag(); // as long as events keep coming in faster than 50 msec, they destroy each other
-}
-
-/*
- * event handler for redrawing the board
- */
-void
-DrawPositionProc (Widget w, XEvent *event, String *prms, Cardinal *nprms)
-{
-    DrawPosition(True, NULL);
-}
-
-
-void
-HandlePV (Widget w, XEvent * event, String * params, Cardinal * nParams)
-{   // [HGM] pv: walk PV
-    MovePV(event->xmotion.x, event->xmotion.y, lineGap + BOARD_HEIGHT * (squareSize + lineGap));
-}
-
-extern int savedIndex;  /* gross that this is global */
-
-void
-CommentClick (Widget w, XEvent * event, String * params, Cardinal * nParams)
-{
-       String val;
-       XawTextPosition index, dummy;
-       Arg arg;
-
-       XawTextGetSelectionPos(w, &index, &dummy);
-       XtSetArg(arg, XtNstring, &val);
-       XtGetValues(w, &arg, 1);
-       ReplaceComment(savedIndex, val);
-       if(savedIndex != currentMove) ToNrEvent(savedIndex);
-       LoadVariation( index, val ); // [HGM] also does the actual moving to it, now
-}
-
-
-/* Disable all user input other than deleting the window */
-static int frozen = 0;
-
-void
-FreezeUI ()
-{
-  if (frozen) return;
-  /* Grab by a widget that doesn't accept input */
-  XtAddGrab(optList[W_MESSG].handle, TRUE, FALSE);
-  frozen = 1;
-}
-
-/* Undo a FreezeUI */
-void
-ThawUI ()
-{
-  if (!frozen) return;
-  XtRemoveGrab(optList[W_MESSG].handle);
-  frozen = 0;
-}
-
-void
-ModeHighlight ()
-{
-    Arg args[16];
-    static int oldPausing = FALSE;
-    static GameMode oldMode = (GameMode) -1;
-    char *wname;
-
-    if (!boardWidget || !XtIsRealized(boardWidget)) return;
-
-    if (pausing != oldPausing) {
-       oldPausing = pausing;
-       MarkMenuItem("Mode.Pause", pausing);
-
-       if (appData.showButtonBar) {
-         /* Always toggle, don't set.  Previous code messes up when
-            invoked while the button is pressed, as releasing it
-            toggles the state again. */
-         {
-           Pixel oldbg, oldfg;
-           XtSetArg(args[0], XtNbackground, &oldbg);
-           XtSetArg(args[1], XtNforeground, &oldfg);
-           XtGetValues(optList[W_PAUSE].handle,
-                       args, 2);
-           XtSetArg(args[0], XtNbackground, oldfg);
-           XtSetArg(args[1], XtNforeground, oldbg);
-         }
-         XtSetValues(optList[W_PAUSE].handle, args, 2);
-       }
-    }
-
-    wname = ModeToWidgetName(oldMode);
-    if (wname != NULL) {
-       MarkMenuItem(wname, False);
-    }
-    wname = ModeToWidgetName(gameMode);
-    if (wname != NULL) {
-       MarkMenuItem(wname, True);
-    }
-    if(oldMode == TwoMachinesPlay) EnableNamedMenuItem("Mode.MachineMatch", True);
-    MarkMenuItem("Mode.MachineMatch", matchMode && matchGame < appData.matchGames);
-    oldMode = gameMode;
-
-    /* Maybe all the enables should be handled here, not just this one */
-    EnableNamedMenuItem("Mode.Training", gameMode == Training || gameMode == PlayFromGameFile);
-
-    DisplayLogos(&optList[W_WHITE-1], &optList[W_BLACK+1]);
-}
-
-
-/*
- * Button/menu procedures
- */
-
-/* this variable is shared between CopyPositionProc and SendPositionSelection */
-char *selected_fen_position=NULL;
-
-Boolean
-SendPositionSelection (Widget w, Atom *selection, Atom *target,
-                      Atom *type_return, XtPointer *value_return,
-                      unsigned long *length_return, int *format_return)
-{
-  char *selection_tmp;
-
-//  if (!selected_fen_position) return False; /* should never happen */
-  if (*target == XA_STRING || *target == XA_UTF8_STRING(xDisplay)){
-   if (!selected_fen_position) { // since it never happens, we use it for indicating a game is being sent
-    FILE* f = fopen(gameCopyFilename, "r"); // This code, taken from SendGameSelection, now merges the two
-    long len;
-    size_t count;
-    if (f == NULL) return False;
-    fseek(f, 0, 2);
-    len = ftell(f);
-    rewind(f);
-    selection_tmp = XtMalloc(len + 1);
-    count = fread(selection_tmp, 1, len, f);
-    fclose(f);
-    if (len != count) {
-      XtFree(selection_tmp);
-      return False;
-    }
-    selection_tmp[len] = NULLCHAR;
-   } else {
-    /* note: since no XtSelectionDoneProc was registered, Xt will
-     * automatically call XtFree on the value returned.  So have to
-     * make a copy of it allocated with XtMalloc */
-    selection_tmp= XtMalloc(strlen(selected_fen_position)+16);
-    safeStrCpy(selection_tmp, selected_fen_position, strlen(selected_fen_position)+16 );
-   }
-
-    *value_return=selection_tmp;
-    *length_return=strlen(selection_tmp);
-    *type_return=*target;
-    *format_return = 8; /* bits per byte */
-    return True;
-  } else if (*target == XA_TARGETS(xDisplay)) {
-    Atom *targets_tmp = (Atom *) XtMalloc(2 * sizeof(Atom));
-    targets_tmp[0] = XA_UTF8_STRING(xDisplay);
-    targets_tmp[1] = XA_STRING;
-    *value_return = targets_tmp;
-    *type_return = XA_ATOM;
-    *length_return = 2;
-#if 0
-    // This code leads to a read of value_return out of bounds on 64-bit systems.
-    // Other code which I have seen always sets *format_return to 32 independent of
-    // sizeof(Atom) without adjusting *length_return. For instance see TextConvertSelection()
-    // at http://cgit.freedesktop.org/xorg/lib/libXaw/tree/src/Text.c -- BJ
-    *format_return = 8 * sizeof(Atom);
-    if (*format_return > 32) {
-      *length_return *= *format_return / 32;
-      *format_return = 32;
-    }
-#else
-    *format_return = 32;
-#endif
-    return True;
-  } else {
-    return False;
-  }
-}
-
-/* note: when called from menu all parameters are NULL, so no clue what the
- * Widget which was clicked on was, or what the click event was
- */
-void
-CopySomething (char *src)
-{
-    selected_fen_position = src;
-    /*
-     * Set both PRIMARY (the selection) and CLIPBOARD, since we don't
-     * have a notion of a position that is selected but not copied.
-     * See http://www.freedesktop.org/wiki/Specifications/ClipboardsWiki
-     */
-    XtOwnSelection(menuBarWidget, XA_PRIMARY,
-                  CurrentTime,
-                  SendPositionSelection,
-                  NULL/* lose_ownership_proc */ ,
-                  NULL/* transfer_done_proc */);
-    XtOwnSelection(menuBarWidget, XA_CLIPBOARD(xDisplay),
-                  CurrentTime,
-                  SendPositionSelection,
-                  NULL/* lose_ownership_proc */ ,
-                  NULL/* transfer_done_proc */);
-}
-
-/* function called when the data to Paste is ready */
-static void
-PastePositionCB (Widget w, XtPointer client_data, Atom *selection,
-                Atom *type, XtPointer value, unsigned long *len, int *format)
-{
-  char *fenstr=value;
-  if (value==NULL || *len==0) return; /* nothing had been selected to copy */
-  fenstr[*len]='\0'; /* normally this string is terminated, but be safe */
-  EditPositionPasteFEN(fenstr);
-  XtFree(value);
-}
-
-/* called when Paste Position button is pressed,
- * all parameters will be NULL */
-void
-PastePositionProc ()
-{
-    XtGetSelectionValue(menuBarWidget,
-      appData.pasteSelection ? XA_PRIMARY: XA_CLIPBOARD(xDisplay), XA_STRING,
-      /* (XtSelectionCallbackProc) */ PastePositionCB,
-      NULL, /* client_data passed to PastePositionCB */
-
-      /* better to use the time field from the event that triggered the
-       * call to this function, but that isn't trivial to get
-       */
-      CurrentTime
-    );
-    return;
-}
-
-/* note: when called from menu all parameters are NULL, so no clue what the
- * Widget which was clicked on was, or what the click event was
- */
-/* function called when the data to Paste is ready */
-static void
-PasteGameCB (Widget w, XtPointer client_data, Atom *selection,
-            Atom *type, XtPointer value, unsigned long *len, int *format)
-{
-  FILE* f;
-  int flip = appData.flipView;
-  if (value == NULL || *len == 0) {
-    return; /* nothing had been selected to copy */
-  }
-  f = fopen(gamePasteFilename, "w");
-  if (f == NULL) {
-    DisplayError(_("Can't open temp file"), errno);
-    return;
-  }
-  fwrite(value, 1, *len, f);
-  fclose(f);
-  XtFree(value);
-  if(!appData.autoFlipView) appData.flipView = flipView;
-  LoadGameFromFile(gamePasteFilename, 0, gamePasteFilename, TRUE);
-  appData.flipView = flip;
-}
-
-/* called when Paste Game button is pressed,
- * all parameters will be NULL */
-void
-PasteGameProc ()
-{
-    XtGetSelectionValue(menuBarWidget,
-      appData.pasteSelection ? XA_PRIMARY: XA_CLIPBOARD(xDisplay), XA_STRING,
-      /* (XtSelectionCallbackProc) */ PasteGameCB,
-      NULL, /* client_data passed to PasteGameCB */
-
-      /* better to use the time field from the event that triggered the
-       * call to this function, but that isn't trivial to get
-       */
-      CurrentTime
-    );
-    return;
-}
-
-
-void
-QuitWrapper (Widget w, XEvent *event, String *prms, Cardinal *nprms)
-{
-    QuitProc();
-}
-
-int
-ShiftKeys ()
-{   // bassic primitive for determining if modifier keys are pressed
-    long int codes[] = { XK_Meta_L, XK_Meta_R, XK_Control_L, XK_Control_R, XK_Shift_L, XK_Shift_R };
-    char keys[32];
-    int i,j,  k=0;
-    XQueryKeymap(xDisplay,keys);
-    for(i=0; i<6; i++) {
-       k <<= 1;
-       j = XKeysymToKeycode(xDisplay, codes[i]);
-       k += ( (keys[j>>3]&1<<(j&7)) != 0 );
-    }
-    return k;
-}
-
-static void
-MoveTypeInProc (Widget widget, caddr_t unused, XEvent *event)
-{
-    char buf[10];
-    KeySym sym;
-    int n = XLookupString(&(event->xkey), buf, 10, &sym, NULL);
-    if ( n == 1 && *buf >= 32 // printable
-        && !(ShiftKeys() & 0x3C) // no Alt, Ctrl
-       ) BoxAutoPopUp (buf);
-}
-
-static void
-UpKeyProc (Widget w, XEvent *event, String *prms, Cardinal *nprms)
-{   // [HGM] input: let up-arrow recall previous line from history
-    IcsKey(1);
-}
-
-static void
-DownKeyProc (Widget w, XEvent *event, String *prms, Cardinal *nprms)
-{   // [HGM] input: let down-arrow recall next line from history
-    IcsKey(-1);
-}
-
-static void
-EnterKeyProc (Widget w, XEvent *event, String *prms, Cardinal *nprms)
-{
-    IcsKey(0);
-}
-
-void
-TempBackwardProc (Widget w, XEvent *event, String *prms, Cardinal *nprms)
-{
-       if (!TempBackwardActive) {
-               TempBackwardActive = True;
-               BackwardEvent();
-       }
-}
-
-void
-TempForwardProc (Widget w, XEvent *event, String *prms, Cardinal *nprms)
-{
-       /* Check to see if triggered by a key release event for a repeating key.
-        * If so the next queued event will be a key press of the same key at the same time */
-       if (XEventsQueued(xDisplay, QueuedAfterReading)) {
-               XEvent next;
-               XPeekEvent(xDisplay, &next);
-               if (next.type == KeyPress && next.xkey.time == event->xkey.time &&
-                       next.xkey.keycode == event->xkey.keycode)
-                               return;
-       }
-    ForwardEvent();
-       TempBackwardActive = False;
-}
-
-void
-ManInner (Widget w, XEvent *event, String *prms, Cardinal *nprms)
-{   // called as key binding
-    char buf[MSG_SIZ];
-    String name;
-    if (nprms && *nprms > 0)
-      name = prms[0];
-    else
-      name = "xboard";
-    snprintf(buf, sizeof(buf), "xterm -e man %s &", name);
-    system(buf);
-}
-
-void
-ManProc ()
-{   // called from menu
-    ManInner(NULL, NULL, NULL, NULL);
-}
-
-void
-InfoProc ()
-{
-    char buf[MSG_SIZ];
-    snprintf(buf, sizeof(buf), "xterm -e info --directory %s --directory . -f %s &",
-             INFODIR, INFOFILE);
-    system(buf);
-}
-
-void
-SetWindowTitle (char *text, char *title, char *icon)
-{
-    Arg args[16];
-    int i;
-    if (appData.titleInWindow) {
-       i = 0;
-       XtSetArg(args[i], XtNlabel, text);   i++;
-       XtSetValues(titleWidget, args, i);
-    }
-    i = 0;
-    XtSetArg(args[i], XtNiconName, (XtArgVal) icon);    i++;
-    XtSetArg(args[i], XtNtitle, (XtArgVal) title);      i++;
-    XtSetValues(shellWidget, args, i);
-    XSync(xDisplay, False);
-}
-
-
-static int
-NullXErrorCheck (Display *dpy, XErrorEvent *error_event)
-{
-    return 0;
-}
-
-void
-DisplayIcsInteractionTitle (String message)
-{
-  if (oldICSInteractionTitle == NULL) {
-    /* Magic to find the old window title, adapted from vim */
-    char *wina = getenv("WINDOWID");
-    if (wina != NULL) {
-      Window win = (Window) atoi(wina);
-      Window root, parent, *children;
-      unsigned int nchildren;
-      int (*oldHandler)() = XSetErrorHandler(NullXErrorCheck);
-      for (;;) {
-       if (XFetchName(xDisplay, win, &oldICSInteractionTitle)) break;
-       if (!XQueryTree(xDisplay, win, &root, &parent,
-                       &children, &nchildren)) break;
-       if (children) XFree((void *)children);
-       if (parent == root || parent == 0) break;
-       win = parent;
-      }
-      XSetErrorHandler(oldHandler);
-    }
-    if (oldICSInteractionTitle == NULL) {
-      oldICSInteractionTitle = "xterm";
-    }
-  }
-  printf("\033]0;%s\007", message);
-  fflush(stdout);
-}
-
-
-XtIntervalId delayedEventTimerXID = 0;
-DelayedEventCallback delayedEventCallback = 0;
-
-void
-FireDelayedEvent ()
-{
-    delayedEventTimerXID = 0;
-    delayedEventCallback();
-}
-
-void
-ScheduleDelayedEvent (DelayedEventCallback cb, long millisec)
-{
-    if(delayedEventTimerXID && delayedEventCallback == cb)
-       // [HGM] alive: replace, rather than add or flush identical event
-       XtRemoveTimeOut(delayedEventTimerXID);
-    delayedEventCallback = cb;
-    delayedEventTimerXID =
-      XtAppAddTimeOut(appContext, millisec,
-                     (XtTimerCallbackProc) FireDelayedEvent, (XtPointer) 0);
-}
-
-DelayedEventCallback
-GetDelayedEvent ()
-{
-  if (delayedEventTimerXID) {
-    return delayedEventCallback;
-  } else {
-    return NULL;
-  }
-}
-
-void
-CancelDelayedEvent ()
-{
-  if (delayedEventTimerXID) {
-    XtRemoveTimeOut(delayedEventTimerXID);
-    delayedEventTimerXID = 0;
-  }
-}
-
-XtIntervalId loadGameTimerXID = 0;
-
-int
-LoadGameTimerRunning ()
-{
-    return loadGameTimerXID != 0;
-}
-
-int
-StopLoadGameTimer ()
-{
-    if (loadGameTimerXID != 0) {
-       XtRemoveTimeOut(loadGameTimerXID);
-       loadGameTimerXID = 0;
-       return TRUE;
-    } else {
-       return FALSE;
-    }
-}
-
-void
-LoadGameTimerCallback (XtPointer arg, XtIntervalId *id)
-{
-    loadGameTimerXID = 0;
-    AutoPlayGameLoop();
-}
-
-void
-StartLoadGameTimer (long millisec)
-{
-    loadGameTimerXID =
-      XtAppAddTimeOut(appContext, millisec,
-                     (XtTimerCallbackProc) LoadGameTimerCallback,
-                     (XtPointer) 0);
-}
-
-XtIntervalId analysisClockXID = 0;
-
-void
-AnalysisClockCallback (XtPointer arg, XtIntervalId *id)
-{
-    if (gameMode == AnalyzeMode || gameMode == AnalyzeFile
-         || appData.icsEngineAnalyze) { // [DM]
-       AnalysisPeriodicEvent(0);
-       StartAnalysisClock();
-    }
-}
-
-void
-StartAnalysisClock ()
-{
-    analysisClockXID =
-      XtAppAddTimeOut(appContext, 2000,
-                     (XtTimerCallbackProc) AnalysisClockCallback,
-                     (XtPointer) 0);
-}
-
-XtIntervalId clockTimerXID = 0;
-
-int
-ClockTimerRunning ()
-{
-    return clockTimerXID != 0;
-}
-
-int
-StopClockTimer ()
-{
-    if (clockTimerXID != 0) {
-       XtRemoveTimeOut(clockTimerXID);
-       clockTimerXID = 0;
-       return TRUE;
-    } else {
-       return FALSE;
-    }
-}
-
-void
-ClockTimerCallback (XtPointer arg, XtIntervalId *id)
-{
-    clockTimerXID = 0;
-    DecrementClocks();
-}
-
-void
-StartClockTimer (long millisec)
-{
-    clockTimerXID =
-      XtAppAddTimeOut(appContext, millisec,
-                     (XtTimerCallbackProc) ClockTimerCallback,
-                     (XtPointer) 0);
-}
-
-void
-DisplayTimerLabel (Option *opt, char *color, long timer, int highlight)
-{
-    char buf[MSG_SIZ];
-    Arg args[16];
-    Widget w = (Widget) opt->handle;
-
-    /* check for low time warning */
-    Pixel foregroundOrWarningColor = timerForegroundPixel;
-
-    if (timer > 0 &&
-        appData.lowTimeWarning &&
-        (timer / 1000) < appData.icsAlarmTime)
-      foregroundOrWarningColor = lowTimeWarningColor;
-
-    if (appData.clockMode) {
-      snprintf(buf, MSG_SIZ, "%s:%s%s", color, appData.logoSize && !partnerUp ? "\n" : " ", TimeString(timer));
-      XtSetArg(args[0], XtNlabel, buf);
-    } else {
-      snprintf(buf, MSG_SIZ, "%s  ", color);
-      XtSetArg(args[0], XtNlabel, buf);
-    }
-
-    if (highlight) {
-
-       XtSetArg(args[1], XtNbackground, foregroundOrWarningColor);
-       XtSetArg(args[2], XtNforeground, timerBackgroundPixel);
-    } else {
-       XtSetArg(args[1], XtNbackground, timerBackgroundPixel);
-       XtSetArg(args[2], XtNforeground, foregroundOrWarningColor);
-    }
-
-    XtSetValues(w, args, 3);
-}
-
-static Pixmap *clockIcons[] = { &wIconPixmap, &bIconPixmap };
-
-void
-SetClockIcon (int color)
-{
-    Arg args[16];
-    Pixmap pm = *clockIcons[color];
-    if (iconPixmap != pm) {
-       iconPixmap = pm;
-       XtSetArg(args[0], XtNiconPixmap, iconPixmap);
-       XtSetValues(shellWidget, args, 1);
-    }
-}
-
-#define INPUT_SOURCE_BUF_SIZE 8192
-
-typedef struct {
-    CPKind kind;
-    int fd;
-    int lineByLine;
-    char *unused;
-    InputCallback func;
-    XtInputId xid;
-    char buf[INPUT_SOURCE_BUF_SIZE];
-    VOIDSTAR closure;
-} InputSource;
-
-void
-DoInputCallback (caddr_t closure, int *source, XtInputId *xid)
-{
-    InputSource *is = (InputSource *) closure;
-    int count;
-    int error;
-    char *p, *q;
-
-    if (is->lineByLine) {
-       count = read(is->fd, is->unused,
-                    INPUT_SOURCE_BUF_SIZE - (is->unused - is->buf));
-       if (count <= 0) {
-           (is->func)(is, is->closure, is->buf, count, count ? errno : 0);
-           return;
-       }
-       is->unused += count;
-       p = is->buf;
-       while (p < is->unused) {
-           q = memchr(p, '\n', is->unused - p);
-           if (q == NULL) break;
-           q++;
-           (is->func)(is, is->closure, p, q - p, 0);
-           p = q;
-       }
-       q = is->buf;
-       while (p < is->unused) {
-           *q++ = *p++;
-       }
-       is->unused = q;
-    } else {
-       count = read(is->fd, is->buf, INPUT_SOURCE_BUF_SIZE);
-       if (count == -1)
-         error = errno;
-       else
-         error = 0;
-       (is->func)(is, is->closure, is->buf, count, error);
-    }
-}
-
-InputSourceRef
-AddInputSource (ProcRef pr, int lineByLine, InputCallback func, VOIDSTAR closure)
-{
-    InputSource *is;
-    ChildProc *cp = (ChildProc *) pr;
-
-    is = (InputSource *) calloc(1, sizeof(InputSource));
-    is->lineByLine = lineByLine;
-    is->func = func;
-    if (pr == NoProc) {
-       is->kind = CPReal;
-       is->fd = fileno(stdin);
-    } else {
-       is->kind = cp->kind;
-       is->fd = cp->fdFrom;
-    }
-    if (lineByLine) {
-       is->unused = is->buf;
-    }
-
-    is->xid = XtAppAddInput(appContext, is->fd,
-                           (XtPointer) (XtInputReadMask),
-                           (XtInputCallbackProc) DoInputCallback,
-                           (XtPointer) is);
-    is->closure = closure;
-    return (InputSourceRef) is;
-}
-
-void
-RemoveInputSource (InputSourceRef isr)
-{
-    InputSource *is = (InputSource *) isr;
-
-    if (is->xid == 0) return;
-    XtRemoveInput(is->xid);
-    is->xid = 0;
-}
-
-#ifndef HAVE_USLEEP
-
-static Boolean frameWaiting;
-
-static RETSIGTYPE
-FrameAlarm (int sig)
-{
-  frameWaiting = False;
-  /* In case System-V style signals.  Needed?? */
-  signal(SIGALRM, FrameAlarm);
-}
-
-void
-FrameDelay (int time)
-{
-  struct itimerval delay;
-
-  XSync(xDisplay, False);
-
-  if (time > 0) {
-    frameWaiting = True;
-    signal(SIGALRM, FrameAlarm);
-    delay.it_interval.tv_sec =
-      delay.it_value.tv_sec = time / 1000;
-    delay.it_interval.tv_usec =
-      delay.it_value.tv_usec = (time % 1000) * 1000;
-    setitimer(ITIMER_REAL, &delay, NULL);
-    while (frameWaiting) pause();
-    delay.it_interval.tv_sec = delay.it_value.tv_sec = 0;
-    delay.it_interval.tv_usec = delay.it_value.tv_usec = 0;
-    setitimer(ITIMER_REAL, &delay, NULL);
-  }
-}
-
-#else
-
-void
-FrameDelay (int time)
-{
-  XSync(xDisplay, False);
-  if (time > 0)
-    usleep(time * 1000);
-}
-
-#endif
-
-static int
-FindLogo (char *place, char *name, char *buf)
-{   // check if file exists in given place
-    FILE *f;
-    if(!place) return 0;
-    snprintf(buf, MSG_SIZ, "%s/%s.png", place, name);
-    if(*place && strcmp(place, ".") && (f = fopen(buf, "r")) ) {
-       fclose(f);
-       return 1;
-    }
-    return 0;
-}
-
-static void
-LoadLogo (ChessProgramState *cps, int n, Boolean ics)
-{
-    char buf[MSG_SIZ], *logoName = buf;
-    if(appData.logo[n][0]) {
-       logoName = appData.logo[n];
-    } else if(appData.autoLogo) {
-       if(ics) { // [HGM] logo: in ICS mode second can be used for ICS
-           sprintf(buf, "%s/%s.png", appData.logoDir, appData.icsHost);
-       } else { // engine; cascade
-           if(!FindLogo(appData.logoDir, cps->tidy, buf) &&   // first try user log folder
-              !FindLogo(appData.directory[n], "logo", buf) && // then engine directory
-              !FindLogo("/usr/local/share/games/plugins/logos", cps->tidy, buf) ) // then system folders
-               FindLogo("/usr/share/games/plugins/logos", cps->tidy, buf);
-       }
-    }
-    if(logoName[0])
-       { ASSIGN(cps->programLogo, logoName); }
-}
-
-void
-UpdateLogos (int displ)
-{
-    if(optList[W_WHITE-1].handle == NULL) return;
-    LoadLogo(&first, 0, 0);
-    LoadLogo(&second, 1, appData.icsActive);
-    if(displ) DisplayLogos(&optList[W_WHITE-1], &optList[W_BLACK+1]);
-    return;
-}
-
diff --git a/xaw/xboard.h b/xaw/xboard.h
deleted file mode 100644 (file)
index 467c230..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- * xboard.h -- Parameter definitions for X front end
- *
- * Copyright 1991 by Digital Equipment Corporation, Maynard,
- * Massachusetts.
- *
- * Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006,
- * 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free
- * Software Foundation, Inc.
- *
- * The following terms apply to Digital Equipment Corporation's copyright
- * interest in XBoard:
- * ------------------------------------------------------------------------
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notice appear in all copies and that
- * both that copyright notice and this permission notice appear in
- * supporting documentation, and that the name of Digital not be
- * used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- *
- * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- * ------------------------------------------------------------------------
- *
- * The following terms apply to the enhanced version of XBoard
- * distributed by the Free Software Foundation:
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-#include <stdio.h>
-
-#define ICS_LOGON    ".icsrc"
-#define MANPAGE      "xboard.6"
-#if ENABLE_NLS
-#define CLOCK_FONT_NAME \
-  "-*-helvetica-bold-r-normal--*-*-*-*-*-*-*-*," \
-  "-misc-fixed-bold-r-normal--*-*-*-*-*-*-*-*," \
-  "-*-*-*-*-*-*-*-*-*-*-*-*-*-*"
-#define COORD_FONT_NAME \
-  "-*-helvetica-bold-r-normal--*-*-*-*-*-*-*-*," \
-  "-misc-fixed-bold-r-normal--*-*-*-*-*-*-*-*," \
-  "-*-*-*-*-*-*-*-*-*-*-*-*-*-*"
-#define DEFAULT_FONT_NAME \
-  "-*-helvetica-medium-r-normal--*-*-*-*-*-*-*-*," \
-  "-misc-fixed-medium-r-normal--*-*-*-*-*-*-*-*," \
-  "-*-*-*-*-*-*-*-*-*-*-*-*-*-*"
-#else
-#define CLOCK_FONT_NAME         "-*-helvetica-bold-r-normal--*-*-*-*-*-*-*-*"
-#define COORD_FONT_NAME         "-*-helvetica-bold-r-normal--*-*-*-*-*-*-*-*"
-#define DEFAULT_FONT_NAME       "-*-helvetica-medium-r-normal--*-*-*-*-*-*-*-*"
-#endif
-#define COLOR_SHOUT             "green"
-#define COLOR_SSHOUT            "green,black,1"
-#define COLOR_CHANNEL1          "cyan"
-#define COLOR_CHANNEL           "cyan,black,1"
-#define COLOR_KIBITZ            "magenta,black,1"
-#define COLOR_TELL              "yellow,black,1"
-#define COLOR_CHALLENGE         "red,black,1"
-#define COLOR_REQUEST           "red"
-#define COLOR_SEEK              "blue"
-#define COLOR_NORMAL            "default"
-#define COLOR_LOWTIMEWARNING    "red"
-
-typedef struct {
-    char *name;
-    int squareSize;
-    int lineGap;
-    int clockFontPxlSize;
-    int coordFontPxlSize;
-    int fontPxlSize;
-    int smallLayout;
-    int tinyLayout;
-    int minScreenSize;
-} SizeDefaults;
-
-#define SIZE_DEFAULTS \
-{ { "Titanic",  129, 4, 34, 14, 14, 0, 0, 1200 }, \
-  { "Colossal", 116, 4, 34, 14, 14, 0, 0, 1200 }, \
-  { "Giant",    108, 3, 34, 14, 14, 0, 0, 1024 }, \
-  { "Huge",     95, 3, 34, 14, 14, 0, 0, 1024 }, \
-  { "Big",      87, 3, 34, 14, 14, 0, 0, 864 }, \
-  { "Large",    80, 3, 34, 14, 14, 0, 0, 864 }, \
-  { "Bulky",    72, 3, 34, 12, 14, 0, 0, 864 }, \
-  { "Medium",   64, 3, 34, 12, 14, 1, 0, 768 }, \
-  { "Moderate", 58, 3, 34, 12, 14, 1, 0, 768 }, \
-  { "Average",  54, 2, 30, 11, 12, 1, 0, 600 }, \
-  { "Middling", 49, 2, 24, 10, 12, 1, 0, 600 }, \
-  { "Mediocre", 45, 2, 20, 10, 12, 1, 0, 600 }, \
-  { "Small",    40, 2, 20, 10, 12, 1, 0, 480 }, \
-  { "Slim",     37, 2, 20, 10, 12, 1, 0, 480 }, \
-  { "Petite",   33, 1, 15, 9,  11, 1, 0, 480 }, \
-  { "Dinky",    29, 1, 15, 9,  11, 1, 0, 480 }, \
-  { "Teeny",    25, 1, 12, 8,  11, 1, 1, 480 }, \
-  { "Tiny",     21, 1, 12, 8,  11, 1, 1, 0 }, \
-  {   NULL,      0, 0,  0, 0,   0, 0, 0, 0 } }
-
-#define BORDER_X_OFFSET 3
-#define BORDER_Y_OFFSET 27
-#define FIRST_CHESS_PROGRAM    "fairymax"
-#define SECOND_CHESS_PROGRAM   ""
-#define FIRST_DIRECTORY         "."
-#define SECOND_DIRECTORY        "."
-#define SOUND_BELL              ""
-#define ICS_NAMES               ""
-#define FCP_NAMES               ""
-#define SCP_NAMES               ""
-#define ICS_TEXT_MENU_DEFAULT   ""
-#define SETTINGS_FILE           SYSCONFDIR"/xboard.conf"
-#define COLOR_BKGD              "white"
-
-void NewTagsPopup P((char *text, char *msg));
-int AppendText P((Option *opt, char *s));
-void NewCommentPopup P((char *title, char *text, int index));
-void CatchDeleteWindow(Widget w, String procname);
-void GenericPopDown P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void InitDrawingSizes P((int i, int j));
-void SendToICS P((char *buf));
-void SendToProgram P((char *message, ChessProgramState *cps));
-void SetFocus(Widget w, XtPointer data, XEvent *event, Boolean *b); // from xoptions.c
-void TypeInProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-Widget CreateMenuItem P((Widget menu, char *msg, XtCallbackProc CB, int n));
-void WheelProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void TabProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-void GenericMenu P((Widget w, XEvent *event, String *prms, Cardinal *nprms));
-
-// from xengineoutput.c
-void SelectPV P((Widget w, XEvent * event, String * params, Cardinal * nParams));
-void StopPV P((Widget w, XEvent * event, String * params, Cardinal * nParams));
-
-extern char memoTranslations[];
-
-
-extern Widget shells[];
-extern int dialogError;
-extern Widget formWidget, shellWidget, boardWidget, menuBarWidget;
-extern Display *xDisplay;
-extern Window xBoardWindow;
-extern int squareSize;
-extern Pixmap xMarkPixmap, wIconPixmap, bIconPixmap;
-extern char *layoutName;
-extern Pixel timerForegroundPixel, timerBackgroundPixel, dialogColor, buttonColor;
-extern int searchTime;
-extern Atom wm_delete_window;
-extern int squareSize, lineGap, defaultLineGap, useImages, useImageSqs;
-extern int startedFromPositionFile;
-extern char *icsTextMenuString;
-extern char ICSInputTranslations[];
-extern char *selected_fen_position;
-extern GC coordGC;
-extern Dimension textHeight; // of message widget in board window
-extern int savedIndex;
-
-
-#define TOPLEVEL 1 /* preference item; 1 = make popup windows toplevel */
diff --git a/xaw/xengineoutput.c b/xaw/xengineoutput.c
deleted file mode 100644 (file)
index 50adedf..0000000
+++ /dev/null
@@ -1,302 +0,0 @@
-/*
- * Engine output (PV)
- *
- * Author: Alessandro Scotti (Dec 2005)
- *
- * Copyright 2005 Alessandro Scotti
- *
- * Enhancements Copyright 2009, 2010, 2011, 2012, 2013,
- * 2014, 2015, 2016 Free Software Foundation, Inc.
- *
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.
- *
- * ------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-#include "config.h"
-
-#include <stdio.h>
-#include <ctype.h>
-#include <errno.h>
-#include <sys/types.h>
-
-#if STDC_HEADERS
-# include <stdlib.h>
-# include <string.h>
-#else /* not STDC_HEADERS */
-extern char *getenv();
-# if HAVE_STRING_H
-#  include <string.h>
-# else /* not HAVE_STRING_H */
-#  include <strings.h>
-# endif /* not HAVE_STRING_H */
-#endif /* not STDC_HEADERS */
-
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
-#include <X11/Intrinsic.h>
-#include <X11/StringDefs.h>
-#include <X11/Shell.h>
-#include <X11/Xaw/Dialog.h>
-#include <X11/Xaw/Form.h>
-#include <X11/Xaw/List.h>
-#include <X11/Xaw/Label.h>
-#include <X11/Xaw/SimpleMenu.h>
-#include <X11/Xaw/SmeBSB.h>
-#include <X11/Xaw/SmeLine.h>
-#include <X11/Xaw/Box.h>
-#include <X11/Xaw/Paned.h>
-#include <X11/Xaw/MenuButton.h>
-#include <X11/cursorfont.h>
-#include <X11/Xaw/Text.h>
-#include <X11/Xaw/AsciiText.h>
-#include <X11/Xaw/Viewport.h>
-#include <X11/Xatom.h>
-#include <X11/Xmu/Atoms.h>
-
-#include "common.h"
-#include "frontend.h"
-#include "backend.h"
-#include "dialogs.h"
-#include "xboard.h"
-#include "engineoutput.h"
-#include "gettext.h"
-
-#ifdef ENABLE_NLS
-# define  _(s) gettext (s)
-# define N_(s) gettext_noop (s)
-#else
-# define  _(s) (s)
-# define N_(s)  s
-#endif
-
-// [HGM] bitmaps of some ICONS used in the engine-outut window
-
-static unsigned char CLEAR_14[28];
-
-static unsigned char WHITE_14[] = {
-0xe0, 0x01, 0x18, 0x06, 0x04, 0x08, 0x02, 0x10, 0x02, 0x10, 0x01, 0x20, 0x01, 0x20,
-0x01, 0x20, 0x01, 0x20, 0x02, 0x10, 0x02, 0x10, 0x04, 0x08, 0x18, 0x06, 0xe0, 0x01
-};
-
-static unsigned char BLACK_14[] = {
-0xe0, 0x01, 0xf8, 0x07, 0xfc, 0x0f, 0xfe, 0x1f, 0xfe, 0x1f, 0xff, 0x3f, 0xff, 0x3f,
-0xff, 0x3f, 0xff, 0x3f, 0xfe, 0x1f, 0xfe, 0x1f, 0xfc, 0x0f, 0xf8, 0x07, 0xe0, 0x01
-};
-
-static unsigned char ANALYZE_14[] = {
-0x80, 0x03, 0x60, 0x0c, 0x10, 0x10, 0x90, 0x10, 0xc8, 0x20, 0x08, 0x20, 0x08, 0x20,
-0x10, 0x10, 0x10, 0x10, 0x68, 0x0c, 0x94, 0x03, 0x0a, 0x00, 0x07, 0x00, 0x00, 0x00
-};
-
-static unsigned char THINK_14[] = {
-0xe0, 0x00, 0x18, 0x03, 0x44, 0x04, 0x42, 0x08, 0x42, 0x08, 0x41, 0x10, 0xe1, 0x13,
-0x41, 0x10, 0x02, 0x08, 0x02, 0x08, 0x04, 0x04, 0x18, 0x03, 0xe0, 0x00, 0x00, 0x00
-};
-
-static unsigned char PONDER_14[] = {
-0x30, 0x03, 0x8c, 0x0c, 0x02, 0x10, 0x01, 0x08, 0x01, 0x10, 0x06, 0x20, 0x04, 0x20,
-0x02, 0x10, 0x04, 0x0c, 0xc8, 0x04, 0x34, 0x03, 0x0e, 0x00, 0x01, 0x00, 0x00, 0x00
-};
-
-static unsigned char UNKNOWN_14[] = {
-0xe0, 0x01, 0x58, 0x07, 0xac, 0x0a, 0x56, 0x15, 0xaa, 0x1a, 0x55, 0x35, 0xab, 0x2a,
-0x55, 0x35, 0xab, 0x2a, 0x56, 0x15, 0xaa, 0x1a, 0x54, 0x0d, 0xb8, 0x06, 0xe0, 0x01
-};
-
-
-
-/* Module variables */
-static int currentPV;
-static Pixmap icons[8]; // [HGM] this front-end array translates back-end icon indicator to handle
-static Widget memoWidget;
-
-
-static void
-ReadIcon (unsigned char pixData[], int iconNr, Widget w)
-{
-    icons[iconNr] = XCreateBitmapFromData(xDisplay, XtWindow(w), (char*) pixData, 14, 14);
-}
-
-void
-InitEngineOutput (Option *opt, Option *memo2)
-{      // front-end, because it must have access to the pixmaps
-       Widget w = opt->handle;
-       memoWidget = memo2->handle;
-
-        ReadIcon(WHITE_14,   nColorWhite, w);
-        ReadIcon(BLACK_14,   nColorBlack, w);
-        ReadIcon(UNKNOWN_14, nColorUnknown, w);
-
-        ReadIcon(CLEAR_14,   nClear, w);
-        ReadIcon(PONDER_14,  nPondering, w);
-        ReadIcon(THINK_14,   nThinking, w);
-        ReadIcon(ANALYZE_14, nAnalyzing, w);
-}
-
-void
-DrawWidgetIcon (Option *opt, int nIcon)
-{   // as we are already in X front-end, so do X-stuff here
-    Arg arg;
-    XtSetArg(arg, XtNleftBitmap, (XtArgVal) icons[nIcon]);
-    XtSetValues(opt->handle, &arg, 1);
-}
-
-void
-InsertIntoMemo (int which, char * text, int where)
-{
-       XawTextBlock t;
-       Widget edit;
-
-       /* the backend adds \r\n, which is needed for winboard,
-        * for xboard we delete them again over here */
-       if(t.ptr = strchr(text, '\r')) *t.ptr = ' ';
-
-       t.ptr = text; t.firstPos = 0; t.length = strlen(text); t.format = XawFmt8Bit;
-       edit = XtNameToWidget(shells[EngOutDlg], which ? "*paneB.text" : "*paneA.text");
-       XawTextReplace(edit, where, where, &t);
-       if(where < highTextStart[which]) { // [HGM] multiPVdisplay: move highlighting
-           int len = strlen(text);
-           highTextStart[which] += len; highTextEnd[which] += len;
-           XawTextSetSelection( edit, highTextStart[which], highTextEnd[which] );
-       }
-}
-
-//--------------------------------- PV walking ---------------------------------------
-
-char memoTranslations[] =
-":Ctrl<Key>c: CopyMemoProc() \n \
-<Btn3Motion>: HandlePV() \n \
-Shift<Btn3Down>: select-start() extend-end(PRIMARY) SelectPV(1) \n \
-Any<Btn3Down>: select-start() extend-end(PRIMARY) SelectPV(0) \n \
-<Btn3Up>: StopPV() \n";
-
-void
-SelectPV (Widget w, XEvent * event, String * params, Cardinal * nParams)
-{      // [HGM] pv: translate click to PV line, and load it for display
-       String val;
-       int start, end;
-       XawTextPosition index, dummy;
-       int x, y;
-       Arg arg;
-
-       x = event->xmotion.x; y = event->xmotion.y;
-       currentPV = (w != memoWidget);
-       XawTextGetSelectionPos(w, &index, &dummy);
-       XtSetArg(arg, XtNstring, &val);
-       XtGetValues(w, &arg, 1);
-       shiftKey = strcmp(params[0], "0");
-       if(LoadMultiPV(x, y, val, index, &start, &end, currentPV)) {
-           XawTextSetSelection( w, start, end );
-           highTextStart[currentPV] = start; highTextEnd[currentPV] = end;
-       }
-}
-
-void
-StopPV (Widget w, XEvent * event, String * params, Cardinal * nParams)
-{      // [HGM] pv: on right-button release, stop displaying PV
-        XawTextUnsetSelection( w );
-        highTextStart[currentPV] = highTextEnd[currentPV] = 0;
-        UnLoadPV();
-        XtCallActionProc(w, "beginning-of-file", event, NULL, 0);
-}
-
-//------------------------- Ctrl-C copying of memo texts ---------------------------
-
-// Awfull code: first read our own primary selection into selected_fen_position,
-//              and then transfer ownership of this to the clipboard, so that the
-//              copy-position callback can fetch it there when somebody pastes it
-// Worst of all is that I only added it because I did not know how to copy primary:
-// my laptop has no middle button. Ctrl-C might not be needed at all... [HGM]
-
-// cloned from CopyPositionProc. Abuse selected_fen_position to hold selection
-
-Boolean SendPositionSelection(Widget w, Atom *selection, Atom *target,
-                Atom *type_return, XtPointer *value_return,
-                unsigned long *length_return, int *format_return); // from xboard.c
-
-static void
-MemoCB (Widget w, XtPointer client_data, Atom *selection,
-       Atom *type, XtPointer value, unsigned long *len, int *format)
-{
-  if (value==NULL || *len==0) return; /* nothing had been selected to copy */
-  selected_fen_position = value;
-  selected_fen_position[*len]='\0'; /* normally this string is terminated, but be safe */
-    XtOwnSelection(menuBarWidget, XA_CLIPBOARD(xDisplay),
-                  CurrentTime,
-                  SendPositionSelection,
-                  NULL/* lose_ownership_proc */ ,
-                  NULL/* transfer_done_proc */);
-}
-
-void
-CopyMemoProc (Widget w, XEvent *event, String *prms, Cardinal *nprms)
-{
-    if(appData.pasteSelection) return;
-    if (selected_fen_position) free(selected_fen_position);
-    XtGetSelectionValue(menuBarWidget,
-      XA_PRIMARY, XA_STRING,
-      /* (XtSelectionCallbackProc) */ MemoCB,
-      NULL, /* client_data passed to PastePositionCB */
-
-      /* better to use the time field from the event that triggered the
-       * call to this function, but that isn't trivial to get
-       */
-      CurrentTime
-    );
-}
-
-//------------------------------- pane switching -----------------------------------
-
-void
-ResizeWindowControls (int mode)
-{   // another hideous kludge: to have only a single pane, we resize the
-    // second to 5 pixels (which makes it too small to display anything)
-    Widget form1, form2;
-    Arg args[16];
-    int j;
-    Dimension ew_height, tmp;
-    Widget shell = shells[EngOutDlg];
-
-    form1 = XtNameToWidget(shell, "*paneA");
-    form2 = XtNameToWidget(shell, "*paneB");
-
-    j = 0;
-    XtSetArg(args[j], XtNheight, (XtArgVal) &ew_height); j++;
-    XtGetValues(form1, args, j);
-    j = 0;
-    XtSetArg(args[j], XtNheight, (XtArgVal) &tmp); j++;
-    XtGetValues(form2, args, j);
-    ew_height += tmp; // total height
-
-    if(mode==0) {
-       j = 0;
-       XtSetArg(args[j], XtNheight, (XtArgVal) 5); j++;
-       XtSetValues(form2, args, j);
-       j = 0;
-       XtSetArg(args[j], XtNheight, (XtArgVal) (ew_height-5)); j++;
-       XtSetValues(form1, args, j);
-    } else {
-       j = 0;
-       XtSetArg(args[j], XtNheight, (XtArgVal) (ew_height/2)); j++;
-       XtSetValues(form1, args, j);
-       j = 0;
-       XtSetArg(args[j], XtNheight, (XtArgVal) (ew_height/2)); j++;
-       XtSetValues(form2, args, j);
-    }
-}
diff --git a/xaw/xgamelist.c b/xaw/xgamelist.c
deleted file mode 100644 (file)
index 312b6d0..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * xgamelist.c -- Game list window, part of X front end for XBoard
- *
- * Copyright 1995, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free Software Foundation, Inc.
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-#include "config.h"
-
-#include <stdio.h>
-#include <ctype.h>
-#include <errno.h>
-#include <sys/types.h>
-
-#if STDC_HEADERS
-# include <stdlib.h>
-# include <string.h>
-#else /* not STDC_HEADERS */
-extern char *getenv();
-# if HAVE_STRING_H
-#  include <string.h>
-# else /* not HAVE_STRING_H */
-#  include <strings.h>
-# endif /* not HAVE_STRING_H */
-#endif /* not STDC_HEADERS */
-
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
-#include <X11/Intrinsic.h>
-#include <X11/StringDefs.h>
-#include <X11/Shell.h>
-#include <X11/cursorfont.h>
-#if USE_XAW3D
-#include <X11/Xaw3d/Dialog.h>
-#include <X11/Xaw3d/Form.h>
-#include <X11/Xaw3d/List.h>
-#include <X11/Xaw3d/Label.h>
-#include <X11/Xaw3d/SimpleMenu.h>
-#include <X11/Xaw3d/SmeBSB.h>
-#include <X11/Xaw3d/SmeLine.h>
-#include <X11/Xaw3d/Box.h>
-#include <X11/Xaw3d/MenuButton.h>
-#include <X11/Xaw3d/Text.h>
-#include <X11/Xaw3d/AsciiText.h>
-#include <X11/Xaw3d/Viewport.h>
-#else
-#include <X11/Xaw/Dialog.h>
-#include <X11/Xaw/Form.h>
-#include <X11/Xaw/List.h>
-#include <X11/Xaw/Label.h>
-#include <X11/Xaw/SimpleMenu.h>
-#include <X11/Xaw/SmeBSB.h>
-#include <X11/Xaw/SmeLine.h>
-#include <X11/Xaw/Box.h>
-#include <X11/Xaw/MenuButton.h>
-#include <X11/Xaw/Text.h>
-#include <X11/Xaw/AsciiText.h>
-#include <X11/Xaw/Viewport.h>
-#endif
-
-#include "common.h"
-#include "backend.h"
-#include "xboard.h"
-#include "xgamelist.h"
-#include "dialogs.h"
-
-
-char gameListTranslations[] =
-  "<Btn4Down>: WheelProc(-3) \n \
-   <Btn5Down>: WheelProc(3) \n \
-   <Btn1Down>: LoadSelectedProc(100) Set() \n \
-   <Btn1Up>(2): LoadSelectedProc(0) \n \
-   <Key>Home: LoadSelectedProc(-2) \n \
-   <Key>End: LoadSelectedProc(2) \n \
-   Ctrl<Key>Up: LoadSelectedProc(-3) \n \
-   Ctrl<Key>Down: LoadSelectedProc(3) \n \
-   <Key>Up: LoadSelectedProc(-1) \n \
-   <Key>Down: LoadSelectedProc(1) \n \
-   <Key>Left: LoadSelectedProc(-1) \n \
-   <Key>Right: LoadSelectedProc(1) \n \
-   <Key>Prior: LoadSelectedProc(-4) \n \
-   <Key>Next: LoadSelectedProc(4) \n \
-   <Key>Return: LoadSelectedProc(0) \n";
-char filterTranslations[] =
-  "<Key>Return: SetFilterProc() \n";
-
-
-void
-LoadSelectedProc (Widget w, XEvent *event, String *prms, Cardinal *nprms)
-{
-    if(GameListClicks(atoi(prms[0]))) return; // if no game loaded, no focus transfer
-    XSync(xDisplay, False);
-    XSetInputFocus(xDisplay, XtWindow(boardWidget), RevertToPointerRoot, CurrentTime);
-}
-
-void
-SetFilterProc (Widget w, XEvent *event, String *prms, Cardinal *nprms)
-{
-    SetFilter();
-}
diff --git a/xaw/xgamelist.h b/xaw/xgamelist.h
deleted file mode 100644 (file)
index fe8db75..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * xgamelist.h -- Game list window, part of X front end for XBoard
- *
- * Copyright 1995, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free Software Foundation, Inc.
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-#ifndef XB_XGAMELIST
-#define XB_XGAMELIST
-
-void LoadSelectedProc P((Widget w, XEvent *event,
-                        String *prms, Cardinal *nprms));
-void SetFilterProc P((Widget w, XEvent *event,
-                        String *prms, Cardinal *nprms));
-
-#endif /* XB_XGAMELIST */
diff --git a/xaw/xhistory.c b/xaw/xhistory.c
deleted file mode 100644 (file)
index 6aa79f2..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * New (WinBoard-style) Move history for XBoard
- *
- * Copyright 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free Software Foundation, Inc.
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.
- *
- * ------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-#include "config.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <X11/Intrinsic.h>
-#include <X11/StringDefs.h>
-#include <X11/Shell.h>
-#include <X11/Xaw/Dialog.h>
-#include <X11/Xaw/Form.h>
-#include <X11/Xaw/List.h>
-#include <X11/Xaw/Label.h>
-#include <X11/Xaw/SimpleMenu.h>
-#include <X11/Xaw/SmeBSB.h>
-#include <X11/Xaw/SmeLine.h>
-#include <X11/Xaw/Box.h>
-#include <X11/Xaw/Paned.h>
-#include <X11/Xaw/MenuButton.h>
-#include <X11/cursorfont.h>
-#include <X11/Xaw/Text.h>
-#include <X11/Xaw/AsciiText.h>
-#include <X11/Xaw/Viewport.h>
-#include <X11/Xatom.h>
-#include <X11/Xmu/Atoms.h>
-
-#include "common.h"
-#include "frontend.h"
-#include "backend.h"
-#include "xhistory.h"
-#include "xboard.h"
-#include "dialogs.h"
-#include "gettext.h"
-
-#ifdef ENABLE_NLS
-# define  _(s) gettext (s)
-# define N_(s) gettext_noop (s)
-#else
-# define  _(s) (s)
-# define N_(s)  s
-#endif
-
-// templates for calls into back-end (= history.c; should be moved to history.h header shared with it!)
-void RefreshMemoContent P((void));
-void MemoContentUpdated P((void));
-void FindMoveByCharIndex P(( int char_index ));
-
-// variables in xoptions.c
-extern Option historyOptions[];
-
-// ------------- low-level front-end actions called by MoveHistory back-end -----------------
-
-// the bold argument says 0 = normal, 1 = bold typeface
-// the colorNr argument says 0 = font-default, 1 = gray
-void
-ScrollToCursor (Option *opt, int caretPos)
-{
-    Arg args[10];
-    char *s;
-    int len;
-    GetWidgetText(opt, &s);
-    len = strlen(s);
-    if(caretPos < 0 || caretPos > len) caretPos = len;
-    if(caretPos > len-30) { // scroll to end, which causes no flicker
-      static XEvent event;
-      XtCallActionProc(opt->handle, "end-of-file", &event, NULL, 0);
-      return;
-    }
-    // the following leads to a very annoying flicker, even when no scrolling is done at all.
-    XtSetArg(args[0], XtNinsertPosition, caretPos); // this triggers scrolling in Xaw
-    XtSetArg(args[1], XtNdisplayCaret, False);
-    XtSetValues(opt->handle, args, 2);
-}
-
-
-// ------------------------------ callbacks --------------------------
-
-char *historyText;
-char historyTranslations[] =
-"<Btn3Down>: select-start() \n \
-<Btn3Up>: extend-end(PRIMARY) SelectMove() \n";
-
-void
-SelectMoveX (Widget w, XEvent * event, String * params, Cardinal * nParams)
-{
-       XawTextPosition index, dummy;
-
-       XawTextGetSelectionPos(w, &index, &dummy);
-       FindMoveByCharIndex( index ); // [HGM] also does the actual moving to it, now
-}
diff --git a/xaw/xhistory.h b/xaw/xhistory.h
deleted file mode 100644 (file)
index e32caea..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * xhistory.h -- Eval graph window, part of X front end for XBoard
- *
- * Copyright 1995, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free Software Foundation, Inc.
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-#ifndef XB_XHISTLIST
-#define XB_XHISTLIST
-
-void HistoryShowProc P((void));
-Boolean MoveHistoryIsUp P((void));
-void SelectMoveX P((Widget w, XEvent * event, String * params, Cardinal * nParams));
-
-#endif /* XB_XHISTLIST */
diff --git a/xaw/xoptions.c b/xaw/xoptions.c
deleted file mode 100644 (file)
index 1c0a897..0000000
+++ /dev/null
@@ -1,1453 +0,0 @@
-/*
- * xoptions.c -- Move list window, part of X front end for XBoard
- *
- * Copyright 2000, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free Software Foundation, Inc.
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-// [HGM] this file is the counterpart of woptions.c, containing xboard popup menus
-// similar to those of WinBoard, to set the most common options interactively.
-
-#include "config.h"
-
-#include <stdio.h>
-#include <ctype.h>
-#include <errno.h>
-#include <sys/types.h>
-
-#if STDC_HEADERS
-# include <stdlib.h>
-# include <string.h>
-#else /* not STDC_HEADERS */
-extern char *getenv();
-# if HAVE_STRING_H
-#  include <string.h>
-# else /* not HAVE_STRING_H */
-#  include <strings.h>
-# endif /* not HAVE_STRING_H */
-#endif /* not STDC_HEADERS */
-
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-#include <stdint.h>
-
-#include <X11/Intrinsic.h>
-#include <X11/StringDefs.h>
-#include <X11/Shell.h>
-#include <X11/Xatom.h>
-#include <X11/Xaw/Dialog.h>
-#include <X11/Xaw/Form.h>
-#include <X11/Xaw/List.h>
-#include <X11/Xaw/Label.h>
-#include <X11/Xaw/SimpleMenu.h>
-#include <X11/Xaw/SmeBSB.h>
-#include <X11/Xaw/SmeLine.h>
-#include <X11/Xaw/Box.h>
-#include <X11/Xaw/Paned.h>
-#include <X11/Xaw/MenuButton.h>
-#include <X11/cursorfont.h>
-#include <X11/Xaw/Text.h>
-#include <X11/Xaw/AsciiText.h>
-#include <X11/Xaw/Viewport.h>
-#include <X11/Xaw/Toggle.h>
-#include <X11/Xaw/Scrollbar.h>
-
-#include <cairo/cairo.h>
-#include <cairo/cairo-xlib.h>
-
-#include "common.h"
-#include "backend.h"
-#include "xboard.h"
-#include "dialogs.h"
-#include "menus.h"
-#include "gettext.h"
-
-#ifdef ENABLE_NLS
-# define  _(s) gettext (s)
-# define N_(s) gettext_noop (s)
-#else
-# define  _(s) (s)
-# define N_(s)  s
-#endif
-
-// [HGM] the following code for makng menu popups was cloned from the FileNamePopUp routines
-
-static Widget previous = NULL;
-static Option *currentOption;
-
-void
-UnCaret ()
-{
-    Arg args[2];
-
-    if(previous) {
-       XtSetArg(args[0], XtNdisplayCaret, False);
-       XtSetValues(previous, args, 1);
-    }
-    previous = NULL;
-}
-
-void
-SetFocus (Widget w, XtPointer data, XEvent *event, Boolean *b)
-{
-    Arg args[2];
-    char *s;
-    int j;
-
-    UnCaret();
-    XtSetArg(args[0], XtNstring, &s);
-    XtGetValues(w, args, 1);
-    j = 1;
-    XtSetArg(args[0], XtNdisplayCaret, True);
-    if(!strchr(s, '\n') && strlen(s) < 80) XtSetArg(args[1], XtNinsertPosition, strlen(s)), j++;
-    XtSetValues(w, args, j);
-    XtSetKeyboardFocus((Widget) data, w);
-    previous = w;
-}
-
-void
-BoardFocus ()
-{
-    XtSetKeyboardFocus(shellWidget, formWidget);
-}
-
-//--------------------------- Engine-specific options menu ----------------------------------
-
-int dialogError;
-Option *dialogOptions[NrOfDialogs];
-
-static Arg layoutArgs[] = {
-    { XtNborderWidth, 0 },
-    { XtNdefaultDistance, 0 },
-};
-
-static Arg formArgs[] = {
-    { XtNborderWidth, 0 },
-    { XtNresizable, (XtArgVal) True },
-};
-
-void
-CursorAtEnd (Option *opt)
-{
-}
-
-void
-GetWidgetText (Option *opt, char **buf)
-{
-    Arg arg;
-    XtSetArg(arg, XtNstring, buf);
-    XtGetValues(opt->handle, &arg, 1);
-}
-
-void
-SetWidgetText (Option *opt, char *buf, int n)
-{
-    Arg arg;
-    XtSetArg(arg, XtNstring, buf);
-    XtSetValues(opt->handle, &arg, 1);
-    if(n >= 0) SetFocus(opt->handle, shells[n], NULL, False);
-}
-
-void
-GetWidgetState (Option *opt, int *state)
-{
-    Arg arg;
-    XtSetArg(arg, XtNstate, state);
-    XtGetValues(opt->handle, &arg, 1);
-}
-
-void
-SetWidgetState (Option *opt, int state)
-{
-    Arg arg;
-    XtSetArg(arg, XtNstate, state);
-    XtSetValues(opt->handle, &arg, 1);
-}
-
-void
-WidgetEcho (Option *opt, int state)
-{
-}
-
-void
-SetWidgetLabel (Option *opt, char *buf)
-{
-    Arg arg;
-    XtSetArg(arg, XtNlabel, (XtArgVal) buf);
-    XtSetValues(opt->handle, &arg, 1);
-}
-
-void
-SetComboChoice (Option *opt, int n)
-{
-    SetWidgetText(opt, opt->choice[n], MasterDlg);
-}
-
-void
-SetDialogTitle (DialogClass dlg, char *title)
-{
-    Arg args[16];
-    XtSetArg(args[0], XtNtitle, title);
-    XtSetValues(shells[dlg], args, 1);
-}
-
-void
-LoadListBox (Option *opt, char *emptyText, int n1, int n2)
-{
-    static char *dummyList[2];
-    dummyList[0] = emptyText; // empty listboxes tend to crash X, so display user-supplied warning string instead
-    XawListChange(opt->handle, *(char**)opt->target ? opt->target : dummyList, 0, 0, True);
-//printf("listbox data = %x\n", opt->target);
-}
-
-int
-ReadScroll (Option *opt, float *top, float *bottom)
-{   // retreives fractions of top and bottom of thumb
-    Arg args[16];
-    Widget w = XtParent(opt->handle); // viewport
-    Widget v = XtNameToWidget(w, "vertical");
-    int j=0;
-    float h;
-    if(!v) return FALSE; // no scroll bar
-    XtSetArg(args[j], XtNshown, &h); j++;
-    XtSetArg(args[j], XtNtopOfThumb, top); j++;
-    XtGetValues(v, args, j);
-    *bottom = *top + h;
-    return TRUE;
-}
-
-void
-SetScroll (Option *opt, float f)
-{   // sets top of thumb to given fraction
-    static char *params[3] = { "", "Continuous", "Proportional" };
-    static XEvent event;
-    Widget w = XtParent(opt->handle); // viewport
-    Widget v = XtNameToWidget(w, "vertical");
-    if(!v) return; // no scroll bar
-    XtCallActionProc(v, "StartScroll", &event, params+1, 1);
-    XawScrollbarSetThumb(v, f, -1.0);
-    XtCallActionProc(v, "NotifyThumb", &event, params, 0);
-//    XtCallActionProc(v, "NotifyScroll", &event, params+2, 1);
-    XtCallActionProc(v, "EndScroll", &event, params, 0);
-}
-
-void
-HighlightListBoxItem (Option *opt, int nr)
-{
-    XawListHighlight(opt->handle, nr);
-}
-
-void
-HighlightWithScroll (Option *opt, int sel, int max)
-{
-    float top, bottom, f, g;
-    HighlightListBoxItem(opt, sel);
-    if(!ReadScroll(opt, &top, &bottom)) return; // no scroll bar
-    bottom = bottom*max - 1.f;
-    f = g = top;
-    top *= max;
-    if(sel > (top + 3*bottom)/4) f = (sel - 0.75f*(bottom-top))/max; else
-    if(sel < (3*top + bottom)/4) f = (sel - 0.25f*(bottom-top))/max;
-    if(f < 0.f) f = 0.; if(f + 1.f/max > 1.f) f = 1. - 1./max;
-    if(f != g) SetScroll(opt, f);
-}
-
-int
-SelectedListBoxItem (Option *opt)
-{
-    XawListReturnStruct *rs;
-    rs = XawListShowCurrent(opt->handle);
-    return rs->list_index;
-}
-
-void
-SetTextColor (char **cnames, int fg, int bg, int attr)
-{ // this is not possible in Xaw
-}
-
-void
-AppendColorized (Option *opt, char *message, int count)
-{
-  if(!opt->handle) return;
-  AppendText(opt, message);
-}
-
-void
-ApplyFont (Option *opt, char *font)
-{ // dummy
-}
-
-void
-Show (Option *opt, int hide)
-{
-    static Dimension h;
-    Arg args[16];
-    Dimension v;
-    int j=0;
-return; // FIXME: it would be nice if the Chat window did have an ICS pane we could hide behind
-//printf("Show(%d) %x\n", hide, opt->handle);
-    if(!opt->handle) return;
-    if(hide) { // make sure original size is saved
-      XtSetArg(args[j], XtNheight, &v); j++;
-      XtGetValues(opt->handle, args, j);
-      if(v != 1) h = v;
-    }
-printf("h = %d\n",h);
-    j = 0;
-    XtSetArg(args[j], XtNheight, hide ? 1 : h); j++;
-    XtSetValues(opt->handle, args, j);
-}
-
-void
-HighlightText (Option *opt, int start, int end, Boolean on)
-{
-    if(on)
-       XawTextSetSelection( opt->handle, start, end ); // for lack of a better method, use selection for highighting
-    else
-       XawTextSetSelection( opt->handle, 0, 0 );
-}
-
-void
-FocusOnWidget (Option *opt, DialogClass dlg)
-{
-    UnCaret();
-    XtSetKeyboardFocus(shells[dlg], opt->handle);
-}
-
-void
-SetIconName (DialogClass dlg, char *name)
-{
-       Arg args[16];
-       int j = 0;
-       XtSetArg(args[j], XtNiconName, (XtArgVal) name);  j++;
-//     XtSetArg(args[j], XtNtitle, (XtArgVal) name);  j++;
-       XtSetValues(shells[dlg], args, j);
-}
-
-static void
-LabelCallback (Widget ww, XtPointer client_data, XEvent *event, Boolean *b)
-{   // called on ButtonPress in label widgets with attached user handler (clocks!)
-    int s, data = (intptr_t) client_data;
-    Option *opt = dialogOptions[data >> 8] + (s = data & 255);
-
-    if(((XButtonEvent*)event)->button != Button1) s = -s;
-    ((ButtonCallback*) opt->target) (s);
-}
-
-static void
-CheckCallback (Widget ww, XtPointer client_data, XEvent *event, Boolean *b)
-{
-    int s, data = (intptr_t) client_data;
-    Option *opt = dialogOptions[data >> 8] + (data & 255);
-
-    GetWidgetState(opt, &s);
-    SetWidgetState(opt, !s);
-}
-
-static void
-SpinCallback (Widget w, XtPointer client_data, XtPointer call_data)
-{
-    String name, val;
-    Arg args[16];
-    char buf[MSG_SIZ], *p;
-    int j = 0; // Initialisation is necessary because the text value may be non-numeric causing the scanf conversion to fail
-    int data = (intptr_t) client_data;
-    Option *opt = dialogOptions[data >> 8] + (data & 255);
-
-    XtSetArg(args[0], XtNlabel, &name);
-    XtGetValues(w, args, 1);
-
-    GetWidgetText(opt, &val);
-    sscanf(val, "%d", &j);
-    if (strcmp(name, _("browse")) == 0) {
-       char *q=val, *r;
-       for(r = ""; *q; q++) if(*q == '.') r = q; else if(*q == '/') r = ""; // last dot after last slash
-       if(!strcmp(r, "") && !currentCps && opt->type == FileName && opt->textValue)
-               r = opt->textValue;
-       Browse(data>>8, opt->name, NULL, r, opt->type == PathName, "", &p, (FILE**) opt);
-       return;
-    } else
-    if (strcmp(name, "+") == 0) {
-       if(++j > opt->max) return;
-    } else
-    if (strcmp(name, "-") == 0) {
-       if(--j < opt->min) return;
-    } else return;
-    snprintf(buf, MSG_SIZ,  "%d", j);
-    SetWidgetText(opt, buf, shellUp[TransientDlg] ? TransientDlg : MasterDlg);
-}
-
-static void
-ComboSelect (Widget w, caddr_t addr, caddr_t index) // callback for all combo items
-{
-    Arg args[16];
-    Option *opt = dialogOptions[((intptr_t)addr)>>24]; // applicable option list
-    int i = ((intptr_t)addr)>>16 & 255; // option number
-    int j = 0xFFFF & (intptr_t) addr;
-
-    values[i] = j; // store selected value in Option struct, for retrieval at OK
-
-    if(opt[i].type == Graph || opt[i].min & COMBO_CALLBACK && (!currentCps || shellUp[BrowserDlg])) {
-       ((ButtonCallback*) opt[i].target)(i);
-       return;
-    }
-
-    if(opt[i].min & NO_GETTEXT)
-      XtSetArg(args[0], XtNlabel, ((char**)opt[i].choice)[j]);
-    else
-      XtSetArg(args[0], XtNlabel, _(((char**)opt[i].choice)[j]));
-
-    XtSetValues(opt[i].handle, args, 1);
-}
-
-Widget
-CreateMenuItem (Widget menu, char *msg, XtCallbackProc CB, int n)
-{
-    int j=0;
-    Widget entry;
-    Arg args[16];
-    XtSetArg(args[j], XtNleftMargin, 20);   j++;
-    XtSetArg(args[j], XtNrightMargin, 20);  j++;
-    if(!strcmp(msg, "----")) { XtCreateManagedWidget(msg, smeLineObjectClass, menu, args, j); return NULL; }
-    XtSetArg(args[j], XtNlabel, msg);
-    entry = XtCreateManagedWidget("item", smeBSBObjectClass, menu, args, j+1);
-    XtAddCallback(entry, XtNcallback, CB, (caddr_t)(intptr_t) n);
-    return entry;
-}
-
-char *
-format_accel (char *input)
-{
-  char *output;
-  char *key,*test;
-
-  output = strdup("");
-
-  if( strstr(input, "<Ctrl>") )
-    {
-      output = realloc(output, strlen(output) + strlen(_("Ctrl"))+2);
-      strncat(output, _("Ctrl"), strlen(_("Ctrl")) +1);
-      strncat(output, "+", 1);
-    };
-  if( strstr(input, "<Alt>") )
-    {
-      output = realloc(output, strlen(output) + strlen(_("Alt"))+2);
-      strncat(output, _("Alt"), strlen(_("Alt")) +1);
-      strncat(output, "+", 1);
-    };
-  if( strstr(input, "<Shift>") )
-    {
-      output = realloc(output, strlen(output) + strlen(_("Shift"))+2);
-      strncat(output, _("Shift"), strlen(_("Shift")) +1);
-      strncat(output, "+", 1);
-    };
-
-  test = strrchr(input, '>');
-  if ( test==NULL )
-    key = strdup(input);
-  else
-    key = strdup(++test); // remove ">"
-  if(strlen(key) == 1) key[0] = ToUpper(key[0]);
-
-  output = realloc(output, strlen(output) + strlen(_(key))+2);
-  strncat(output, _(key), strlen(_(key)) +1);
-
-  free(key);
-  return output;
-}
-
-int
-pixlen (char *s)
-{
-#if 0
-    int dummy;
-    XCharStruct overall;
-    XTextExtents(messageFontStruct, s, strlen(s), &dummy, &dummy, &dummy, &overall);
-    return overall.width;
-#else
-    float tot = 0;
-    while(*s) switch(*s++) {
-       case '.': tot += 0.45; break;
-       case ' ': tot += 0.55; break;
-       case 'i': tot += 0.45; break;
-       case 'l': tot += 0.45; break;
-       case 'j': tot += 0.45; break;
-       case 'f': tot += 0.45; break;
-       case 'I': tot += 0.45; break;
-       case 't': tot += 0.45; break;
-       case 'k': tot += 0.83; break;
-       case 's': tot += 0.83; break;
-       case 'x': tot += 0.83; break;
-       case 'z': tot += 0.83; break;
-       case 'r': tot += 0.55; break;
-       case 'w': tot += 1.3; break;
-       case 'm': tot += 1.3; break;
-       case 'A': tot += 1.3; break;
-       case 'C': tot += 1.3; break;
-       case 'D': tot += 1.3; break;
-       case 'G': tot += 1.3; break;
-       case 'H': tot += 1.3; break;
-       case 'N': tot += 1.3; break;
-       case 'V': tot += 1.3; break;
-       case 'X': tot += 1.3; break;
-       case 'Y': tot += 1.3; break;
-       case 'Z': tot += 1.3; break;
-       case 'M': tot += 1.6; break;
-       case 'W': tot += 1.6; break;
-       case 'B': tot += 1.1; break;
-       case 'E': tot += 1.1; break;
-       case 'F': tot += 1.1; break;
-       case 'K': tot += 1.1; break;
-       case 'P': tot += 1.1; break;
-       case 'R': tot += 1.1; break;
-       case 'S': tot += 1.1; break;
-       case 'O': tot += 1.4; break;
-       case 'Q': tot += 1.4; break;
-       default:  tot++;
-    }
-    return tot;
-#endif
-}
-
-static Widget
-CreateComboPopup (Widget parent, Option *opt, int n, int fromList, int def)
-{   // fromList determines if the item texts are taken from a list of strings, or from a menu table
-    int i;
-    Widget menu, entry;
-    Arg arg;
-    MenuItem *mb = (MenuItem *) opt->choice;
-    char **list = (char **) opt->choice;
-    int maxlength=0, menuLen[1000];
-
-
-    if(list[0] == NULL) return NULL; // avoid empty menus, as they cause crash
-    menu = XtCreatePopupShell(opt->name, simpleMenuWidgetClass, parent, NULL, 0);
-
-    if(!fromList)
-      for (i=0; mb[i].string; i++) if(mb[i].accel) {
-       int len = pixlen(_(mb[i].string));
-       menuLen[i] = len;
-       if (maxlength < len )
-         maxlength = len;
-      }
-
-    for (i=0; 1; i++)
-      {
-       char *msg = fromList ? list[i] : mb[i].string;
-       char *label=NULL;
-
-       if(!msg) break;
-
-       if(!fromList && mb[i].accel)
-         {
-           char *menuname = opt->min & NO_GETTEXT ? msg : _(msg);
-           char *accel = format_accel(mb[i].accel);
-           size_t len;
-//         int fill = maxlength - strlen(menuname) +2+strlen(accel);
-           int fill = (maxlength - menuLen[i] + 3)*1.8;
-
-           len = strlen(menuname)+fill+strlen(accel)+1;
-           label = malloc(len);
-
-           snprintf(label,len,"%s%*s%s",menuname,fill," ",accel);
-           free(accel);
-         }
-       else
-         label = strdup(opt->min & NO_GETTEXT ? msg : _(msg));
-
-       entry = CreateMenuItem(menu, label, (XtCallbackProc) ComboSelect, (n<<16)+i);
-       if(!fromList) mb[i].handle = (void*) entry; // save item ID, for enabling / checkmarking
-       if(i==def) {
-           XtSetArg(arg, XtNpopupOnEntry, entry);
-           XtSetValues(menu, &arg, 1);
-       }
-       free(label);
-      }
-      return menu;
-}
-
-char moveTypeInTranslations[] =
-    "<Key>Return: TypeInProc(1) \n"
-    "<Key>Escape: TypeInProc(0) \n";
-extern char filterTranslations[];
-extern char gameListTranslations[];
-extern char memoTranslations[];
-
-
-char *translationTable[] = { // beware: order is essential!
-   historyTranslations, commentTranslations, moveTypeInTranslations, ICSInputTranslations,
-   filterTranslations, gameListTranslations, memoTranslations
-};
-
-void
-AddHandler (Option *opt, DialogClass dlg, int nr)
-{
-    XtOverrideTranslations(opt->handle, XtParseTranslationTable(translationTable[nr]));
-}
-
-//----------------------------Generic dialog --------------------------------------------
-
-// cloned from Engine Settings dialog (and later merged with it)
-
-Widget shells[NrOfDialogs];
-DialogClass parents[NrOfDialogs];
-WindowPlacement *wp[NrOfDialogs] = { // Beware! Order must correspond to DialogClass enum
-    NULL, &wpComment, &wpTags, NULL, NULL, NULL, NULL, &wpMoveHistory, &wpGameList, &wpEngineOutput, &wpEvalGraph,
-    NULL, NULL, NULL, NULL, /*&wpMain*/ NULL
-};
-
-int
-DialogExists (DialogClass n)
-{   // accessor for use in back-end
-    return shells[n] != NULL;
-}
-
-void
-RaiseWindow (DialogClass dlg)
-{
-    static XEvent xev;
-    Window root = RootWindow(xDisplay, DefaultScreen(xDisplay));
-    Atom atom = XInternAtom (xDisplay, "_NET_ACTIVE_WINDOW", False);
-
-    xev.xclient.type = ClientMessage;
-    xev.xclient.serial = 0;
-    xev.xclient.send_event = True;
-    xev.xclient.display = xDisplay;
-    xev.xclient.window = XtWindow(shells[dlg]);
-    xev.xclient.message_type = atom;
-    xev.xclient.format = 32;
-    xev.xclient.data.l[0] = 1;
-    xev.xclient.data.l[1] = CurrentTime;
-
-    XSendEvent (xDisplay,
-          root, False,
-          SubstructureRedirectMask | SubstructureNotifyMask,
-          &xev);
-
-    XFlush(xDisplay);
-    XSync(xDisplay, False);
-}
-
-int
-PopDown (DialogClass n)
-{   // pops down any dialog created by GenericPopUp (or returns False if it wasn't up), unmarks any associated marked menu
-    int j;
-    Arg args[10];
-    Dimension windowH, windowW; Position windowX, windowY;
-    if (!shellUp[n] || !shells[n]) return 0;
-    if(n && wp[n]) { // remember position
-       j = 0;
-       XtSetArg(args[j], XtNx, &windowX); j++;
-       XtSetArg(args[j], XtNy, &windowY); j++;
-       XtSetArg(args[j], XtNheight, &windowH); j++;
-       XtSetArg(args[j], XtNwidth, &windowW); j++;
-       XtGetValues(shells[n], args, j);
-       wp[n]->x = windowX;
-       wp[n]->x = windowY;
-       wp[n]->width  = windowW;
-       wp[n]->height = windowH;
-    }
-    previous = NULL;
-    XtPopdown(shells[n]);
-    shellUp[n]--; // count rather than clear
-    if(n == 0 || n >= PromoDlg) XtDestroyWidget(shells[n]), shells[n] = NULL;
-    if(marked[n]) {
-       MarkMenuItem(marked[n], False);
-       marked[n] = NULL;
-    }
-    if(!n && n != BrowserDlg) currentCps = NULL; // if an Engine Settings dialog was up, we must be popping it down now
-    currentOption = dialogOptions[TransientDlg]; // just in case a transient dialog was up (to allow its check and combo callbacks to work)
-    RaiseWindow(parents[n]);
-    if(parents[n] == BoardWindow) XtSetKeyboardFocus(shellWidget, formWidget);
-    return 1;
-}
-
-void
-GenericPopDown (Widget w, XEvent *event, String *prms, Cardinal *nprms)
-{   // to cause popdown through a translation (Delete Window button!)
-    int dlg = atoi(prms[0]);
-    Widget sh = shells[dlg];
-    if(shellUp[BrowserDlg] && dlg != BrowserDlg || dialogError || dlg == MasterDlg && shellUp[TransientDlg])
-       return; // prevent closing dialog when it has an open file-browse or transient daughter
-    shells[dlg] = w;
-    PopDown(dlg);
-    shells[dlg] = sh; // restore
-}
-
-int
-AppendText (Option *opt, char *s)
-{
-    XawTextBlock t;
-    char *v;
-    int len;
-    GetWidgetText(opt, &v);
-    len = strlen(v);
-    t.ptr = s; t.firstPos = 0; t.length = strlen(s); t.format = XawFmt8Bit;
-    XawTextReplace(opt->handle, len, len, &t);
-    return len;
-}
-
-void
-SetColor (char *colorName, Option *box)
-{       // sets the color of a widget
-       Arg args[5];
-       Pixel buttonColor;
-       XrmValue vFrom, vTo;
-       if (!appData.monoMode) {
-           vFrom.addr = (caddr_t) colorName;
-           vFrom.size = strlen(colorName);
-           XtConvert(shellWidget, XtRString, &vFrom, XtRPixel, &vTo);
-           if (vTo.addr == NULL) {
-               buttonColor = (Pixel) -1;
-           } else {
-               buttonColor = *(Pixel *) vTo.addr;
-           }
-       } else buttonColor = timerBackgroundPixel;
-       XtSetArg(args[0], XtNbackground, buttonColor);;
-       XtSetValues(box->handle, args, 1);
-}
-
-void
-ColorChanged (Widget w, XtPointer data, XEvent *event, Boolean *b)
-{   // for detecting a typed change in color
-    char buf[10];
-    if ( (XLookupString(&(event->xkey), buf, 2, NULL, NULL) == 1) && *buf == '\r' )
-       RefreshColor((int)(intptr_t) data, 0);
-}
-
-static void
-GraphEventProc(Widget widget, caddr_t client_data, XEvent *event)
-{   // handle expose and mouse events on Graph widget
-    Dimension w, h;
-    Arg args[16];
-    int j, button=10, f=1, sizing=0;
-    Option *opt, *graph = (Option *) client_data;
-    PointerCallback *userHandler = graph->target;
-
-    if (!XtIsRealized(widget)) return;
-
-    switch(event->type) {
-       case Expose: // make handling of expose events generic, just copying from memory buffer (->choice) to display (->textValue)
-           /* Get window size */
-           j = 0;
-           XtSetArg(args[j], XtNwidth, &w); j++;
-           XtSetArg(args[j], XtNheight, &h); j++;
-           XtGetValues(widget, args, j);
-
-           if(w < graph->max || w > graph->max + 1 || h != graph->value) { // use width fudge of 1 pixel
-               if(((XExposeEvent*)event)->count >= 0) { // suppress sizing on expose for ordered redraw in response to sizing.
-                   sizing = 1;
-                   graph->max = w; graph->value = h; // note: old values are kept if we we don't exceed width fudge
-               }
-           } else w = graph->max;
-
-           if(sizing && ((XExposeEvent*)event)->count > 0) { graph->max = 0; return; } // don't bother if further exposure is pending during resize
-           if(!graph->textValue || sizing) { // create surfaces of new size for display widget
-               if(graph->textValue) cairo_surface_destroy((cairo_surface_t *)graph->textValue);
-               graph->textValue = (char*) cairo_xlib_surface_create(xDisplay, XtWindow(widget), DefaultVisual(xDisplay, 0), w, h);
-           }
-           if(sizing) { // the memory buffer was already created in GenericPopup(),
-                        // to give drawing routines opportunity to use it before first expose event
-                        // (which are only processed when main gets to the event loop, so after all init!)
-                        // so only change when size is no longer good
-               cairo_t *cr;
-               if(graph->choice) cairo_surface_destroy((cairo_surface_t *) graph->choice);
-               graph->choice = (char**) cairo_image_surface_create (CAIRO_FORMAT_ARGB32, w, h);
-               // paint white, to prevent weirdness when people maximize window and drag pieces over space next to board
-               cr = cairo_create ((cairo_surface_t *) graph->choice);
-               cairo_rectangle (cr, 0, 0, w, h);
-               cairo_set_source_rgba(cr, 1.0, 1.0, 1.0, 1.0);
-               cairo_fill(cr);
-               cairo_destroy (cr);
-               break;
-           }
-           w = ((XExposeEvent*)event)->width;
-           if(((XExposeEvent*)event)->x + w > graph->max) w--; // cut off fudge pixel
-           if(w) ExposeRedraw(graph, ((XExposeEvent*)event)->x, ((XExposeEvent*)event)->y, w, ((XExposeEvent*)event)->height);
-           return;
-       case MotionNotify:
-           f = 0;
-           w = ((XButtonEvent*)event)->x; h = ((XButtonEvent*)event)->y;
-           break;
-       case ButtonRelease:
-           f = -1; // release indicated by negative button numbers
-       case ButtonPress:
-           w = ((XButtonEvent*)event)->x; h = ((XButtonEvent*)event)->y;
-           switch(((XButtonEvent*)event)->button) {
-               case Button1: button = 1; break;
-               case Button2: button = 2; break;
-               case Button3: button = 3; break;
-               case Button4: button = 4; break;
-               case Button5: button = 5; break;
-           }
-    }
-    button *= f;
-    opt = userHandler(button, w, h);
-    if(opt) { // user callback specifies a context menu; pop it up
-       XUngrabPointer(xDisplay, CurrentTime);
-       XtCallActionProc(widget, "XawPositionSimpleMenu", event, &(opt->name), 1);
-       XtPopupSpringLoaded(opt->handle);
-    }
-    XSync(xDisplay, False);
-}
-
-void
-GraphExpose (Option *opt, int x, int y, int w, int h)
-{
-  XExposeEvent e;
-  if(!opt->handle) return;
-  e.x = x; e.y = y; e.width = w; e.height = h; e.count = -1; e.type = Expose; // count = -1: kludge to suppress sizing
-  GraphEventProc(opt->handle, (caddr_t) opt, (XEvent *) &e); // fake expose event
-}
-
-static void
-GenericCallback (Widget w, XtPointer client_data, XtPointer call_data)
-{   // all Buttons in a dialog (including OK, cancel) invoke this
-    String name;
-    Arg args[16];
-    char buf[MSG_SIZ];
-    int data = (intptr_t) client_data;
-    DialogClass dlg;
-    Widget sh = XtParent(XtParent(XtParent(w))), oldSh;
-
-    currentOption = dialogOptions[dlg=data>>16]; data &= 0xFFFF;
-    oldSh = shells[dlg]; shells[dlg] = sh; // bow to reality
-    if (data == 30000) { // cancel
-        PopDown(dlg);
-    } else
-    if (data == 30001) { // save buttons imply OK
-        if(GenericReadout(currentOption, -1)) PopDown(dlg); // calls OK-proc after full readout, but no popdown if it returns false
-    } else
-
-    if(currentCps && dlg != BrowserDlg) {
-       XtSetArg(args[0], XtNlabel, &name);
-       XtGetValues(w, args, 1);
-       if(currentOption[data].type == SaveButton) GenericReadout(currentOption, -1);
-       snprintf(buf, MSG_SIZ,  "option %s\n", name);
-       SendToProgram(buf, currentCps);
-    } else ((ButtonCallback*) currentOption[data].target)(data);
-
-    shells[dlg] = oldSh; // in case of multiple instances, restore previous (as this one could be popped down now)
-}
-
-void
-TabProc (Widget w, XEvent *event, String *prms, Cardinal *nprms)
-{   // for transfering focus to the next text-edit
-    Option *opt;
-    for(opt = currentOption; opt->type != EndMark; opt++) {
-       if(opt->handle == w) {
-           while(++opt) {
-               if(opt->type == EndMark) opt = currentOption; // wrap
-               if(opt->handle == w) return; // full circle
-               if(opt->type == TextBox || opt->type == Spin || opt->type == Fractional || opt->type == FileName || opt->type == PathName) {
-                   SetFocus(opt->handle, XtParent(XtParent(XtParent(w))), NULL, 0);
-                   return;
-               }
-           }
-       }
-    }
-}
-
-void
-WheelProc (Widget w, XEvent *event, String *prms, Cardinal *nprms)
-{   // for scrolling a widget seen through a viewport with the mouse wheel (ListBox!)
-    int j=0, n = atoi(prms[0]);
-    static char *params[3] = { "", "Continuous", "Proportional" };
-    Arg args[16];
-    float h, top;
-    Widget v;
-    if(!n) { // transient dialogs also use this for list-selection callback
-       n = prms[1][0]-'0';
-       Option *opt=dialogOptions[prms[2][0]-'A'] + n;
-       if(opt->textValue) ((ListBoxCallback*) opt->textValue)(n, SelectedListBoxItem(opt));
-       return;
-    }
-    v = XtNameToWidget(XtParent(w), "vertical");
-    if(!v) return;
-    XtSetArg(args[j], XtNshown, &h); j++;
-    XtSetArg(args[j], XtNtopOfThumb, &top); j++;
-    XtGetValues(v, args, j);
-    top += 0.1f*h*n; if(top < 0.f) top = 0.;
-    XtCallActionProc(v, "StartScroll", event, params+1, 1);
-    XawScrollbarSetThumb(v, top, -1.0);
-    XtCallActionProc(v, "NotifyThumb", event, params, 0);
-//    XtCallActionProc(w, "NotifyScroll", event, params+2, 1);
-    XtCallActionProc(v, "EndScroll", event, params, 0);
-}
-
-static char *oneLiner  =
-   "<Key>Return: redraw-display() \n \
-    <Key>Tab: TabProc() \n ";
-static char scrollTranslations[] =
-   "<Btn1Up>(2): WheelProc(0 0 A) \n \
-    <Btn4Down>: WheelProc(-1) \n \
-    <Btn5Down>: WheelProc(1) \n ";
-
-static void
-SqueezeIntoBox (Option *opt, int nr, int width)
-{   // size buttons in bar to fit, clipping button names where necessary
-    int i, wtot = 0;
-    Dimension widths[20], oldWidths[20];
-    Arg arg;
-    for(i=1; i<nr; i++) {
-       XtSetArg(arg, XtNwidth, &widths[i]);
-       XtGetValues(opt[i].handle, &arg, 1);
-       wtot +=  oldWidths[i] = widths[i];
-    }
-    opt->min = wtot;
-    if(width <= 0) return;
-    while(wtot > width) {
-       int wmax=0, imax=0;
-       for(i=1; i<nr; i++) if(widths[i] > wmax) wmax = widths[imax=i];
-       widths[imax]--;
-       wtot--;
-    }
-    for(i=1; i<nr; i++) if(widths[i] != oldWidths[i]) {
-       XtSetArg(arg, XtNwidth, widths[i]);
-       XtSetValues(opt[i].handle, &arg, 1);
-    }
-    opt->min = wtot;
-}
-
-int
-SetPositionAndSize (Arg *args, Widget leftNeigbor, Widget topNeigbor, int b, int w, int h, int chaining)
-{   // sizing and positioning most widgets have in common
-    int j = 0;
-    // first position the widget w.r.t. earlier ones
-    if(chaining & 1) { // same row: position w.r.t. last (on current row) and lastrow
-       XtSetArg(args[j], XtNfromVert, topNeigbor); j++;
-       XtSetArg(args[j], XtNfromHoriz, leftNeigbor); j++;
-    } else // otherwise it goes at left margin (which is default), below the previous element
-       XtSetArg(args[j], XtNfromVert, leftNeigbor),  j++;
-    // arrange chaining ('2'-bit indicates top and bottom chain the same)
-    if((chaining & 14) == 6) XtSetArg(args[j], XtNtop,    XtChainBottom), j++;
-    if((chaining & 14) == 10) XtSetArg(args[j], XtNbottom, XtChainTop ), j++;
-    if(chaining & 4) XtSetArg(args[j], XtNbottom, XtChainBottom ), j++;
-    if(chaining & 8) XtSetArg(args[j], XtNtop,    XtChainTop), j++;
-    if(chaining & 0x10) XtSetArg(args[j], XtNright, XtChainRight), j++;
-    if(chaining & 0x20) XtSetArg(args[j], XtNleft,  XtChainRight), j++;
-    if(chaining & 0x40) XtSetArg(args[j], XtNright, XtChainLeft ), j++;
-    if(chaining & 0x80) XtSetArg(args[j], XtNleft,  XtChainLeft ), j++;
-    // set size (if given)
-    if(w) XtSetArg(args[j], XtNwidth, w), j++;
-    if(h) XtSetArg(args[j], XtNheight, h),  j++;
-    // color
-    if(!appData.monoMode) {
-       if(!b && appData.dialogColor[0]) XtSetArg(args[j], XtNbackground, dialogColor),  j++;
-       if(b == 3 && appData.buttonColor[0]) XtSetArg(args[j], XtNbackground, buttonColor),  j++;
-    }
-    if(b == 3) b = 1;
-    // border
-    XtSetArg(args[j], XtNborderWidth, b);  j++;
-    return j;
-}
-
-int
-GenericPopUp (Option *option, char *title, DialogClass dlgNr, DialogClass parent, int modal, int top)
-{
-    Arg args[24];
-    Widget popup, layout, dialog=NULL, edit=NULL, form,  last, b_ok, b_cancel, previousPane = NULL, textField = NULL, oldForm, oldLastRow, oldForeLast;
-    Window root, child;
-    int x, y, i, j, height=999, width=1, h, c, w, shrink=FALSE, stack = 0, box, chain;
-    int win_x, win_y, maxWidth, maxTextWidth;
-    unsigned int mask;
-    char def[MSG_SIZ], *msg, engineDlg = (currentCps != NULL && dlgNr != BrowserDlg);
-    static char pane[6] = "paneX";
-    Widget texts[100], forelast = NULL, anchor, widest, lastrow = NULL, browse = NULL;
-    Dimension bWidth = 50;
-
-    if(dlgNr < PromoDlg && shellUp[dlgNr]) return 0; // already up
-    if(dlgNr && dlgNr < PromoDlg && shells[dlgNr]) { // reusable, and used before (but popped down)
-       XtPopup(shells[dlgNr], XtGrabNone);
-       shellUp[dlgNr] = True;
-       return 0;
-    }
-    if(dlgNr == TransientDlg && parent == BoardWindow && shellUp[MasterDlg]) parent = MasterDlg; // MasterDlg can always take role of main window
-
-    dialogOptions[dlgNr] = option; // make available to callback
-    // post currentOption globally, so Spin and Combo callbacks can already use it
-    // WARNING: this kludge does not work for persistent dialogs, so that these cannot have spin or combo controls!
-    currentOption = option;
-
-    if(engineDlg) { // Settings popup for engine: format through heuristic
-       int n = currentCps->nrOptions;
-       if(n > 50) width = 4; else if(n>24) width = 2; else width = 1;
-       height = n / width + 1;
-       if(n && (currentOption[n-1].type == Button || currentOption[n-1].type == SaveButton)) currentOption[n].min = SAME_ROW; // OK on same line
-       currentOption[n].type = EndMark; currentOption[n].target = NULL; // delimit list by callback-less end mark
-    }
-     i = 0;
-    XtSetArg(args[i], XtNresizable, True); i++;
-    shells[BoardWindow] = shellWidget; parents[dlgNr] = parent;
-
-    if(dlgNr == BoardWindow) popup = shellWidget; else
-    popup = shells[dlgNr] =
-      XtCreatePopupShell(title, !top || !appData.topLevel ? transientShellWidgetClass : topLevelShellWidgetClass,
-                                                           shells[parent], args, i);
-
-    layout =
-      XtCreateManagedWidget(layoutName, formWidgetClass, popup,
-                           layoutArgs, XtNumber(layoutArgs));
-    if(!appData.monoMode && appData.dialogColor[0]) XtSetArg(args[0], XtNbackground, dialogColor);
-    XtSetValues(layout, args, 1);
-
-  for(c=0; c<width; c++) {
-    pane[4] = 'A'+c;
-    form =
-      XtCreateManagedWidget(pane, formWidgetClass, layout,
-                           formArgs, XtNumber(formArgs));
-    j=0;
-    XtSetArg(args[j], stack ? XtNfromVert : XtNfromHoriz, previousPane);  j++;
-    if(!appData.monoMode && appData.dialogColor[0]) XtSetArg(args[j], XtNbackground, dialogColor),  j++;
-    XtSetValues(form, args, j);
-    lastrow = forelast = NULL;
-    previousPane = form;
-
-    last = widest = NULL; anchor = lastrow;
-    for(h=0; h<height || c == width-1; h++) {
-       i = h + c*height;
-       if(option[i].type == EndMark) break;
-       if(option[i].type == Skip) continue;
-       lastrow = forelast;
-       forelast = last;
-       switch(option[i].type) {
-         case Fractional:
-           snprintf(def, MSG_SIZ,  "%.2f", *(float*)option[i].target);
-           option[i].value = *(float*)option[i].target;
-           goto tBox;
-         case Spin:
-           if(!engineDlg) option[i].value = *(int*)option[i].target;
-           snprintf(def, MSG_SIZ,  "%d", option[i].value);
-         case TextBox:
-         case FileName:
-         case PathName:
-          tBox:
-           if(option[i].name[0]) { // prefixed by label with option name
-               j = SetPositionAndSize(args, last, lastrow, 0 /* border */,
-                                      0 /* w */, textHeight /* h */, 0xC0 /* chain to left edge */);
-               XtSetArg(args[j], XtNjustify, XtJustifyLeft);  j++;
-               XtSetArg(args[j], XtNlabel, _(option[i].name));  j++;
-               texts[h] = dialog = XtCreateManagedWidget(option[i].name, labelWidgetClass, form, args, j);
-           } else texts[h] = dialog = NULL; // kludge to position from left margin
-           w = option[i].type == Spin || option[i].type == Fractional ? 70 : option[i].max ? option[i].max : 205;
-           if(option[i].type == FileName || option[i].type == PathName) w -= 55;
-           if(squareSize > 33) w += (squareSize - 33)/2;
-           j = SetPositionAndSize(args, dialog, last, 1 /* border */,
-                                  w /* w */, option[i].type == TextBox ? option[i].value : 0 /* h */, 0x91 /* chain full width */);
-           if(option[i].type == TextBox) { // decorations for multi-line text-edits
-               if(option[i].min & T_VSCRL) { XtSetArg(args[j], XtNscrollVertical, XawtextScrollAlways);  j++; }
-               if(option[i].min & T_HSCRL) { XtSetArg(args[j], XtNscrollHorizontal, XawtextScrollAlways);  j++; }
-               if(option[i].min & T_FILL)  { XtSetArg(args[j], XtNautoFill, True);  j++; }
-               if(option[i].min & T_WRAP)  { XtSetArg(args[j], XtNwrap, XawtextWrapWord); j++; }
-               if(option[i].min & T_TOP)   { XtSetArg(args[j], XtNtop, XtChainTop); j++;
-                   if(!option[i].value) {    XtSetArg(args[j], XtNbottom, XtChainTop); j++;
-                                             XtSetValues(dialog, args+j-2, 2);
-                   }
-               }
-           } else shrink = TRUE;
-           XtSetArg(args[j], XtNeditType, XawtextEdit);  j++;
-           XtSetArg(args[j], XtNuseStringInPlace, False);  j++;
-           XtSetArg(args[j], XtNdisplayCaret, False);  j++;
-           XtSetArg(args[j], XtNresizable, True);  j++;
-           XtSetArg(args[j], XtNinsertPosition, 9999);  j++;
-           XtSetArg(args[j], XtNstring, option[i].type==Spin || option[i].type==Fractional ? def :
-                               engineDlg ? option[i].textValue : *(char**)option[i].target);  j++;
-           edit = last;
-           option[i].handle = (void*)
-               (textField = last = XtCreateManagedWidget("text", asciiTextWidgetClass, form, args, j));
-           XtAddEventHandler(last, ButtonPressMask, False, SetFocus, (XtPointer) popup); // gets focus on mouse click
-           if(option[i].min == 0 || option[i].type != TextBox)
-               XtOverrideTranslations(last, XtParseTranslationTable(oneLiner)); // standard handler for <Enter> and <Tab>
-
-           if(option[i].type == TextBox || option[i].type == Fractional) break;
-
-           // add increment and decrement controls for spin
-           if(option[i].type == FileName || option[i].type == PathName) {
-               msg = _("browse"); w = 0; // automatically scale to width of text
-               j = textHeight ? textHeight : 0;
-           } else {
-               w = 20; msg = "+"; j = textHeight/2; // spin button
-           }
-           j = SetPositionAndSize(args, last, edit, 3 /* border */,
-                                  w /* w */, j /* h */, 0x31 /* chain to right edge */);
-           edit = XtCreateManagedWidget(msg, commandWidgetClass, form, args, j);
-           XtAddCallback(edit, XtNcallback, SpinCallback, (XtPointer)(intptr_t) i + 256*dlgNr);
-           if(w == 0) browse = edit;
-
-           if(option[i].type != Spin) break;
-
-           j = SetPositionAndSize(args, last, edit, 3 /* border */,
-                                  20 /* w */, textHeight/2 /* h */, 0x31 /* chain to right edge */);
-           XtSetArg(args[j], XtNvertDistance, -1);  j++;
-           last = XtCreateManagedWidget("-", commandWidgetClass, form, args, j);
-           XtAddCallback(last, XtNcallback, SpinCallback, (XtPointer)(intptr_t) i + 256*dlgNr);
-           break;
-         case CheckBox:
-           if(!engineDlg) option[i].value = *(Boolean*)option[i].target; // where checkbox callback uses it
-           j = SetPositionAndSize(args, last, lastrow, 1 /* border */,
-                                  textHeight/2 /* w */, textHeight/2 /* h */, 0xC0 /* chain both to left edge */);
-           XtSetArg(args[j], XtNvertDistance, (textHeight+2)/4 + 3);  j++;
-           XtSetArg(args[j], XtNstate, option[i].value);  j++;
-           lastrow  = last;
-           option[i].handle = (void*)
-               (last = XtCreateManagedWidget(" ", toggleWidgetClass, form, args, j));
-           j = SetPositionAndSize(args, last, lastrow, 0 /* border */,
-                                  option[i].max /* w */, textHeight /* h */, 0xC1 /* chain */);
-           XtSetArg(args[j], XtNjustify, XtJustifyLeft);  j++;
-           XtSetArg(args[j], XtNlabel, _(option[i].name));  j++;
-           last = XtCreateManagedWidget("label", commandWidgetClass, form, args, j);
-           // make clicking the text toggle checkbox
-           XtAddEventHandler(last, ButtonPressMask, False, CheckCallback, (XtPointer)(intptr_t) i + 256*dlgNr);
-           shrink = TRUE; // following buttons must get text height
-           break;
-         case Icon:
-         case Label:
-           msg = option[i].name;
-           if(!msg) break;
-           chain = option[i].min;
-           if(chain & SAME_ROW) forelast = lastrow; else shrink = FALSE;
-           j = SetPositionAndSize(args, last, lastrow, (chain & 2) != 0 /* border */,
-                                  option[i].max /* w */, shrink ? textHeight : 0 /* h */, chain | 2 /* chain */);
-#if ENABLE_NLS
-           if(option[i].choice) XtSetArg(args[j], XtNfontSet, *(XFontSet*)option[i].choice), j++;
-#else
-           if(option[i].choice) XtSetArg(args[j], XtNfont, (XFontStruct*)option[i].choice), j++;
-#endif
-           XtSetArg(args[j], XtNresizable, False);  j++;
-           XtSetArg(args[j], XtNjustify, XtJustifyLeft);  j++;
-           XtSetArg(args[j], XtNlabel, _(msg));  j++;
-           option[i].handle = (void*) (last = XtCreateManagedWidget("label", labelWidgetClass, form, args, j));
-           if(option[i].target) // allow user to specify event handler for button presses
-               XtAddEventHandler(last, ButtonPressMask, False, LabelCallback, (XtPointer)(intptr_t) i + 256*dlgNr);
-           break;
-         case SaveButton:
-         case Button:
-           if(option[i].min & SAME_ROW) {
-               chain = 0x31; // 0011.0001 = both left and right side to right edge
-               forelast = lastrow;
-           } else chain = 0, shrink = FALSE;
-           j = SetPositionAndSize(args, last, lastrow, 3 /* border */,
-                                  option[i].max /* w */, shrink ? textHeight : 0 /* h */, option[i].min & 0xE | chain /* chain */);
-           XtSetArg(args[j], XtNlabel, _(option[i].name));  j++;
-           if(option[i].textValue && *option[i].textValue == '#') { // special for buttons of New Variant dialog
-               char *p = NULL, *v, n = option[i].value;
-               if(n >= 0) v = VariantName(n), p = strstr(first.variants, v);
-               XtSetArg(args[j], XtNsensitive, option[i].value >= 0 && (appData.noChessProgram
-                                        || p && (!*v || strlen(p) == strlen(v) || p[strlen(v)] == ','))); j++;
-               XtSetArg(args[j], XtNborderWidth, (gameInfo.variant == option[i].value)+1); j++;
-           }
-           option[i].handle = (void*)
-               (dialog = last = XtCreateManagedWidget(option[i].name, commandWidgetClass, form, args, j));
-           if(option[i].choice && ((char*)option[i].choice)[0] == '#' && !engineDlg) { // for the color picker default-reset
-               SetColor( *(char**) option[i-1].target, &option[i]);
-               XtAddEventHandler(option[i-1].handle, KeyReleaseMask, False, ColorChanged, (XtPointer)(intptr_t) i-1);
-           }
-           XtAddCallback(last, XtNcallback, GenericCallback, (XtPointer)(intptr_t) i + (dlgNr<<16)); // invokes user callback
-           if(option[i].textValue && *option[i].textValue == '#') SetColor( option[i].textValue, &option[i]); // for new-variant buttons
-           break;
-         case ComboBox:
-           j = SetPositionAndSize(args, last, lastrow, 0 /* border */,
-                                  0 /* w */, textHeight /* h */, 0xC0 /* chain both sides to left edge */);
-           XtSetArg(args[j], XtNjustify, XtJustifyLeft);  j++;
-           XtSetArg(args[j], XtNlabel, _(option[i].name));  j++;
-           texts[h] = dialog = XtCreateManagedWidget(option[i].name, labelWidgetClass, form, args, j);
-
-           if(option[i].min & COMBO_CALLBACK) msg = _(option[i].name); else {
-             if(!engineDlg) SetCurrentComboSelection(option+i);
-             msg=_(((char**)option[i].choice)[option[i].value]);
-           }
-
-           j = SetPositionAndSize(args, dialog, last, (option[i].min & 2) == 0 /* border */,
-                                  option[i].max && !engineDlg ? option[i].max : 100 /* w */,
-                                  textHeight /* h */, 0x91 /* chain */); // same row as its label!
-           XtSetArg(args[j], XtNmenuName, XtNewString(option[i].name));  j++;
-           XtSetArg(args[j], XtNlabel, msg);  j++;
-           shrink = TRUE;
-           option[i].handle = (void*)
-               (last = XtCreateManagedWidget(" ", menuButtonWidgetClass, form, args, j));
-           CreateComboPopup(last, option + i, i + 256*dlgNr, TRUE, -1);
-           values[i] = option[i].value;
-           break;
-         case ListBox:
-           // Listbox goes in viewport, as needed for game list
-           if(option[i].min & SAME_ROW) forelast = lastrow;
-           j = SetPositionAndSize(args, last, lastrow, 1 /* border */,
-                                  option[i].max /* w */, option[i].value /* h */, option[i].min /* chain */);
-           XtSetArg(args[j], XtNresizable, False);  j++;
-           XtSetArg(args[j], XtNallowVert, True); j++; // scoll direction
-           last =
-             XtCreateManagedWidget("viewport", viewportWidgetClass, form, args, j);
-           j = 0; // now list itself
-           XtSetArg(args[j], XtNdefaultColumns, 1);  j++;
-           XtSetArg(args[j], XtNforceColumns, True);  j++;
-           XtSetArg(args[j], XtNverticalList, True);  j++;
-           option[i].handle = (void*)
-               (edit = XtCreateManagedWidget("list", listWidgetClass, last, args, j));
-           XawListChange(option[i].handle, option[i].target, 0, 0, True);
-           XawListHighlight(option[i].handle, 0);
-           scrollTranslations[25] = '0' + i;
-           scrollTranslations[27] = 'A' + dlgNr;
-           XtOverrideTranslations(edit, XtParseTranslationTable(scrollTranslations)); // for mouse-wheel
-           break;
-         case Graph:
-           j = SetPositionAndSize(args, last, lastrow, 0 /* border */,
-                                  option[i].max /* w */, option[i].value /* h */, option[i].min /* chain */);
-           option[i].handle = (void*)
-               (last = XtCreateManagedWidget("graph", widgetClass, form, args, j));
-           XtAddEventHandler(last, ExposureMask | ButtonPressMask | ButtonReleaseMask | PointerMotionMask, False,
-                     (XtEventHandler) GraphEventProc, &option[i]); // mandatory user-supplied expose handler
-           if(option[i].min & SAME_ROW) last = forelast, forelast = lastrow;
-           option[i].choice = (char**) cairo_image_surface_create (CAIRO_FORMAT_ARGB32, option[i].max, option[i].value); // image buffer
-           break;
-         case PopUp: // note: used only after Graph, so 'last' refers to the Graph widget
-           option[i].handle = (void*) CreateComboPopup(last, option + i, i + 256*dlgNr, TRUE, option[i].value);
-           break;
-         case BarBegin:
-         case BoxBegin:
-           if(option[i].min & SAME_ROW) forelast = lastrow;
-           j = SetPositionAndSize(args, last, lastrow, 0 /* border */,
-                                  0 /* w */, 0 /* h */, option[i].min /* chain */);
-           XtSetArg(args[j], XtNorientation, XtorientHorizontal);  j++;
-           XtSetArg(args[j], XtNvSpace, 0);                        j++;
-           option[box=i].handle = (void*)
-               (last = XtCreateWidget("box", boxWidgetClass, form, args, j));
-           oldForm = form; form = last; oldLastRow = lastrow; oldForeLast = forelast;
-           lastrow = NULL; last = NULL;
-           break;
-         case DropDown:
-           j = SetPositionAndSize(args, last, lastrow, 0 /* border */,
-                                  0 /* w */, 0 /* h */, 1 /* chain (always on same row) */);
-           forelast = lastrow;
-           msg = _(option[i].name); // write name on the menu button
-           if(msg) { if(*msg == '_') msg++; else if(msg[1] == '_') { // kludge to remove GTK shortkut-key indicators
-               static char buf[MSG_SIZ];
-               strncpy(buf, msg, MSG_SIZ); msg = buf + 1;
-               *msg = *buf;
-           }}
-           XtSetArg(args[j], XtNmenuName, XtNewString(option[i].name));  j++;
-           XtSetArg(args[j], XtNlabel, msg);  j++;
-           option[i].handle = (void*)
-               (last = XtCreateManagedWidget(option[i].name, menuButtonWidgetClass, form, args, j));
-           option[i].textValue = (char*) CreateComboPopup(last, option + i, i + 256*dlgNr, FALSE, -1);
-           break;
-         case BarEnd:
-         case BoxEnd:
-           XtManageChildren(&form, 1);
-           SqueezeIntoBox(&option[box], i-box, option[box].max);
-           if(option[i].target) ((ButtonCallback*)option[i].target)(box); // callback that can make sizing decisions
-           last = form; lastrow = oldLastRow; form = oldForm; forelast = oldForeLast;
-           break;
-         case Break:
-           if(c) break;
-           width++;
-           height = i+1;
-           stack = !(option[i].min & SAME_ROW);
-           break;
-       default:
-           printf("GenericPopUp: unexpected case in switch.\n");
-           break;
-       }
-    }
-
-    // make an attempt to align all spins and textbox controls
-    maxWidth = maxTextWidth = 0;
-    if(browse != NULL) {
-       j=0;
-       XtSetArg(args[j], XtNwidth, &bWidth);  j++;
-       XtGetValues(browse, args, j);
-    }
-    for(h=0; h<height || c == width-1; h++) {
-       i = h + c*height;
-       if(option[i].type == EndMark) break;
-       if(option[i].type == Spin || option[i].type == TextBox || option[i].type == ComboBox
-                                 || option[i].type == PathName || option[i].type == FileName) {
-           Dimension w;
-           if(!texts[h]) continue;
-           j=0;
-           XtSetArg(args[j], XtNwidth, &w);  j++;
-           XtGetValues(texts[h], args, j);
-           if(option[i].type == Spin) {
-               if(w > maxWidth) maxWidth = w;
-               widest = texts[h];
-           } else {
-               if(w > maxTextWidth) maxTextWidth = w;
-               if(!widest) widest = texts[h];
-           }
-       }
-    }
-    if(maxTextWidth + 110 < maxWidth)
-        maxTextWidth = maxWidth - 110;
-    else maxWidth = maxTextWidth + 110;
-    for(h=0; h<height || c == width-1; h++) {
-       i = h + c*height;
-       if(option[i].type == EndMark) break;
-       if(!texts[h]) continue; // Note: texts[h] can be undefined (giving errors in valgrind), but then both if's below will be false.
-       j=0;
-       if(option[i].type == Spin) {
-           XtSetArg(args[j], XtNwidth, maxWidth);  j++;
-           XtSetValues(texts[h], args, j);
-       } else
-       if(option[i].type == TextBox || option[i].type == ComboBox || option[i].type == PathName || option[i].type == FileName) {
-           XtSetArg(args[j], XtNwidth, maxTextWidth);  j++;
-           XtSetValues(texts[h], args, j);
-           if(bWidth != 50 && (option[i].type == FileName || option[i].type == PathName)) {
-               int tWidth = (option[i].max ? option[i].max : 205) - 5 - bWidth;
-               j = 0;
-               XtSetArg(args[j], XtNwidth, tWidth);  j++;
-               XtSetValues(option[i].handle, args, j);
-           }
-       }
-    }
-  }
-
-    if(option[i].min & SAME_ROW) { // even when OK suppressed this EndMark bit can request chaining of last row to bottom
-       for(j=i-1; option[j+1].min & SAME_ROW; j--) {
-           XtSetArg(args[0], XtNtop, XtChainBottom);
-           XtSetArg(args[1], XtNbottom, XtChainBottom);
-           XtSetValues(option[j].handle, args, 2);
-       }
-       if((option[j].type == TextBox || option[j].type == ListBox) && option[j].name[0] == NULLCHAR) {
-           Widget w = option[j].handle;
-           if(option[j].type == ListBox) w = XtParent(w); // for listbox we must chain viewport
-           XtSetArg(args[0], XtNbottom, XtChainBottom);
-           XtSetValues(w, args, 1);
-       }
-       lastrow = forelast;
-    } else shrink = FALSE, lastrow = last, last = widest ? widest : dialog;
-    j = SetPositionAndSize(args, last, anchor ? anchor : lastrow, 3 /* border */,
-                          0 /* w */, shrink ? textHeight : 0 /* h */, 0x37 /* chain: right, bottom and use both neighbors */);
-
-  if(!(option[i].min & NO_OK)) {
-    option[i].handle = b_ok = XtCreateManagedWidget(_("OK"), commandWidgetClass, form, args, j);
-    XtAddCallback(b_ok, XtNcallback, GenericCallback, (XtPointer)(intptr_t) (30001 + (dlgNr<<16)));
-    if(!(option[i].min & NO_CANCEL)) {
-      XtSetArg(args[1], XtNfromHoriz, b_ok); // overwrites!
-      b_cancel = XtCreateManagedWidget(_("Cancel"), commandWidgetClass, form, args, j);
-      XtAddCallback(b_cancel, XtNcallback, GenericCallback, (XtPointer)(intptr_t) (30000 + (dlgNr<<16)));
-    }
-  }
-
-    XtRealizeWidget(popup);
-    if(dlgNr != BoardWindow) { // assign close button, and position w.r.t. pointer, if not main window
-       XSetWMProtocols(xDisplay, XtWindow(popup), &wm_delete_window, 1);
-       snprintf(def, MSG_SIZ, "<Message>WM_PROTOCOLS: GenericPopDown(\"%d\") \n", dlgNr);
-       XtAugmentTranslations(popup, XtParseTranslationTable(def));
-       XQueryPointer(xDisplay, xBoardWindow, &root, &child,
-                       &x, &y, &win_x, &win_y, &mask);
-
-       XtSetArg(args[0], XtNx, x - 10);
-       XtSetArg(args[1], XtNy, y - 30);
-       XtSetValues(popup, args, 2);
-    }
-    XtPopup(popup, modal ? XtGrabExclusive : XtGrabNone);
-    shellUp[dlgNr]++; // count rather than flag
-    previous = NULL;
-    if(textField) SetFocus(textField, popup, (XEvent*) NULL, False);
-    if(dlgNr && wp[dlgNr]) { // if persistent window-info available, reposition
-       j = 0;
-       if(wp[dlgNr]->width > 0 && wp[dlgNr]->height > 0) {
-         XtSetArg(args[j], XtNheight, (Dimension) (wp[dlgNr]->height));  j++;
-         XtSetArg(args[j], XtNwidth,  (Dimension) (wp[dlgNr]->width));  j++;
-       }
-       if(wp[dlgNr]->x > 0 && wp[dlgNr]->y > 0) {
-         XtSetArg(args[j], XtNx, (Position) (wp[dlgNr]->x));  j++;
-         XtSetArg(args[j], XtNy, (Position) (wp[dlgNr]->y));  j++;
-       }
-       if(j) XtSetValues(popup, args, j);
-    }
-    RaiseWindow(dlgNr);
-    return 1; // tells caller he must do initialization (e.g. add specific event handlers)
-}
-
-
-/* function called when the data to Paste is ready */
-static void
-SendTextCB (Widget w, XtPointer client_data, Atom *selection,
-           Atom *type, XtPointer value, unsigned long *len, int *format)
-{
-  char buf[MSG_SIZ], *p = (char*) textOptions[(int)(intptr_t) client_data].choice, *name = (char*) value, *q;
-  if (value==NULL || *len==0) return; /* nothing selected, abort */
-  name[*len]='\0';
-  strncpy(buf, p, MSG_SIZ);
-  q = strstr(p, "$name");
-  snprintf(buf + (q-p), MSG_SIZ -(q-p), "%s%s", name, q+5);
-  SendString(buf);
-  XtFree(value);
-}
-
-void
-SendText (int n)
-{
-    char *p = (char*) textOptions[n].choice;
-    if(strstr(p, "$name")) {
-       XtGetSelectionValue(menuBarWidget,
-         XA_PRIMARY, XA_STRING,
-         /* (XtSelectionCallbackProc) */ SendTextCB,
-         (XtPointer) (intptr_t) n, /* client_data passed to PastePositionCB */
-         CurrentTime
-       );
-    } else SendString(p);
-}
-
-void
-SetInsertPos (Option *opt, int pos)
-{
-    Arg args[16];
-    if(pos == 999999) { // this kludge to indicate end in GTK is fatal in Xaw
-      char *s;
-      GetWidgetText(opt, &s);
-      pos = strlen(s) - 1;
-    }
-    XtSetArg(args[0], XtNinsertPosition, pos);
-    XtSetValues(opt->handle, args, 1);
-//    SetFocus(opt->handle, shells[InputBoxDlg], NULL, False); // No idea why this does not work, and the following is needed:
-//    XSetInputFocus(xDisplay, XtWindow(opt->handle), RevertToPointerRoot, CurrentTime);
-}
-
-void
-TypeInProc (Widget w, XEvent *event, String *prms, Cardinal *nprms)
-{   // can be used as handler for any text edit in any dialog (from GenericPopUp, that is)
-    int n = prms[0][0] - '0';
-    Widget sh = XtParent(XtParent(XtParent(w))); // popup shell
-    extern int hidden;
-    hidden = 0;
-
-    if(n<2) { // Enter or Esc typed from primed text widget: treat as if dialog OK or cancel button hit.
-       int dlgNr; // figure out what the dialog number is by comparing shells (because we must pass it :( )
-       for(dlgNr=0; dlgNr<NrOfDialogs; dlgNr++) if(shellUp[dlgNr] && shells[dlgNr] == sh)
-           GenericCallback (w, (XtPointer)(intptr_t) (30000 + n + (dlgNr<<16)), NULL);
-    }
-}
-
-void
-HardSetFocus (Option *opt, DialogClass dlg)
-{
-    XSetInputFocus(xDisplay, XtWindow(opt->handle), RevertToPointerRoot, CurrentTime);
-}
-
-void
-FileNamePopUpWrapper (char *label, char *def, char *filter, FileProc proc, Boolean pathFlag, char *openMode, char **openName, FILE **openFP)
-{
-    Browse(BoardWindow, label, (def[0] ? def : NULL), filter, False, openMode, openName, openFP);
-}
-
-void
-LockBoardSize (int after)
-{
-}
diff --git a/xboard-config.desktop b/xboard-config.desktop
deleted file mode 100644 (file)
index 4161511..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-[Desktop Entry]
-Name=Xboard
-Name[af]=X-bord
-Name[ar]=Xboard
-Name[bg]=Xboard
-Name[bn]=এক্সবোর্ড
-Name[cs]=Xboard
-Name[da]=Xboard
-Name[de]=Xboard
-Name[el]=Xboard
-Name[es]=Xboard
-Name[et]=Xboard
-Name[fi]=XBoard
-Name[fr]=XBoard
-Name[gl]=Xboard
-Name[hi]=एक्सबोर्ड
-Name[hr]=Xboard
-Name[hu]=XBoard
-Name[it]=XBoard
-Name[ja]=Xboard
-Name[km]=XBoard
-Name[ko]=X보드
-Name[lt]=Xboard
-Name[mr]=Xबोर्ड
-Name[nb]=Xboard
-Name[nl]=Xboard
-Name[pa]=Xboard
-Name[pl]=Xboard
-Name[pt]=Xboard
-Name[pt_BR]=Xboard
-Name[ru]=Xboard
-Name[sk]=Xboard
-Name[sv]=Xboard
-Name[ta]=பெயர்(எக்ஸ்போர்ட்.டெஸ்க்டாப்): எக்ஸ்போர்ட்
-Name[th]=Xboard
-Name[tr]=XBoard
-Name[uk]=Xboard
-Name[vi]=XBoard
-Name[xh]=Ibhodi ye-X
-Name[zh_CN]=X 国际象棋
-Name[zh_TW]=Xboard 國際象棋
-Name[zu]=I-Xboard
-Comment=Start preconfigured XBoard
-GenericName=X-windows chess board
-Type=Application
-Categories=Game;BoardGame;
-Exec=xboard -opt %f
-Icon=xboard
-NoDisplay=true
-Terminal=false
-MimeType=application/x-xboard-opt;
-
diff --git a/xboard-fen-viewer.desktop b/xboard-fen-viewer.desktop
deleted file mode 100644 (file)
index 275792a..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-[Desktop Entry]
-Name=Xboard
-Name[af]=X-bord
-Name[ar]=Xboard
-Name[bg]=Xboard
-Name[bn]=এক্সবোর্ড
-Name[cs]=Xboard
-Name[da]=Xboard
-Name[de]=Xboard
-Name[el]=Xboard
-Name[es]=Xboard
-Name[et]=Xboard
-Name[fi]=XBoard
-Name[fr]=XBoard
-Name[gl]=Xboard
-Name[hi]=एक्सबोर्ड
-Name[hr]=Xboard
-Name[hu]=XBoard
-Name[it]=XBoard
-Name[ja]=Xboard
-Name[km]=XBoard
-Name[ko]=X보드
-Name[lt]=Xboard
-Name[mr]=Xबोर्ड
-Name[nb]=Xboard
-Name[nl]=Xboard
-Name[pa]=Xboard
-Name[pl]=Xboard
-Name[pt]=Xboard
-Name[pt_BR]=Xboard
-Name[ru]=Xboard
-Name[sk]=Xboard
-Name[sv]=Xboard
-Name[ta]=பெயர்(எக்ஸ்போர்ட்.டெஸ்க்டாப்): எக்ஸ்போர்ட்
-Name[th]=Xboard
-Name[tr]=XBoard
-Name[uk]=Xboard
-Name[vi]=XBoard
-Name[xh]=Ibhodi ye-X
-Name[zh_CN]=X 国际象棋
-Name[zh_TW]=Xboard 國際象棋
-Name[zu]=I-Xboard
-Comment=XBoard FEN display
-GenericName=X-windows chess board
-Type=Application
-Categories=Game;BoardGame;
-Exec=xboard -ncp -lpf %f
-Icon=xboard
-NoDisplay=true
-Terminal=false
-MimeType=application/x-chess-fen;
-
diff --git a/xboard-pgn-viewer.desktop b/xboard-pgn-viewer.desktop
deleted file mode 100644 (file)
index 9c8ce54..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-[Desktop Entry]
-Name=Xboard
-Name[af]=X-bord
-Name[ar]=Xboard
-Name[bg]=Xboard
-Name[bn]=এক্সবোর্ড
-Name[cs]=Xboard
-Name[da]=Xboard
-Name[de]=Xboard
-Name[el]=Xboard
-Name[es]=Xboard
-Name[et]=Xboard
-Name[fi]=XBoard
-Name[fr]=XBoard
-Name[gl]=Xboard
-Name[hi]=एक्सबोर्ड
-Name[hr]=Xboard
-Name[hu]=XBoard
-Name[it]=XBoard
-Name[ja]=Xboard
-Name[km]=XBoard
-Name[ko]=X보드
-Name[lt]=Xboard
-Name[mr]=Xबोर्ड
-Name[nb]=Xboard
-Name[nl]=Xboard
-Name[pa]=Xboard
-Name[pl]=Xboard
-Name[pt]=Xboard
-Name[pt_BR]=Xboard
-Name[ru]=Xboard
-Name[sk]=Xboard
-Name[sv]=Xboard
-Name[ta]=பெயர்(எக்ஸ்போர்ட்.டெஸ்க்டாப்): எக்ஸ்போர்ட்
-Name[th]=Xboard
-Name[tr]=XBoard
-Name[uk]=Xboard
-Name[vi]=XBoard
-Name[xh]=Ibhodi ye-X
-Name[zh_CN]=X 国际象棋
-Name[zh_TW]=Xboard 國際象棋
-Name[zu]=I-Xboard
-Comment=Run XBoard as PGN viewer
-GenericName=X-windows chess board
-Type=Application
-Categories=Game;BoardGame;
-Exec=xboard -viewer -lgf %f
-Icon=xboard
-NoDisplay=true
-Terminal=false
-MimeType=application/x-chess-pgn;
-
diff --git a/xboard-tourney.desktop b/xboard-tourney.desktop
deleted file mode 100644 (file)
index 7dcde0e..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-[Desktop Entry]
-Name=Xboard
-Name[af]=X-bord
-Name[ar]=Xboard
-Name[bg]=Xboard
-Name[bn]=এক্সবোর্ড
-Name[cs]=Xboard
-Name[da]=Xboard
-Name[de]=Xboard
-Name[el]=Xboard
-Name[es]=Xboard
-Name[et]=Xboard
-Name[fi]=XBoard
-Name[fr]=XBoard
-Name[gl]=Xboard
-Name[hi]=एक्सबोर्ड
-Name[hr]=Xboard
-Name[hu]=XBoard
-Name[it]=XBoard
-Name[ja]=Xboard
-Name[km]=XBoard
-Name[ko]=X보드
-Name[lt]=Xboard
-Name[mr]=Xबोर्ड
-Name[nb]=Xboard
-Name[nl]=Xboard
-Name[pa]=Xboard
-Name[pl]=Xboard
-Name[pt]=Xboard
-Name[pt_BR]=Xboard
-Name[ru]=Xboard
-Name[sk]=Xboard
-Name[sv]=Xboard
-Name[ta]=பெயர்(எக்ஸ்போர்ட்.டெஸ்க்டாப்): எக்ஸ்போர்ட்
-Name[th]=Xboard
-Name[tr]=XBoard
-Name[uk]=Xboard
-Name[vi]=XBoard
-Name[xh]=Ibhodi ye-X
-Name[zh_CN]=X 国际象棋
-Name[zh_TW]=Xboard 國際象棋
-Name[zu]=I-Xboard
-Comment=Resume XBoard chess tourney
-GenericName=X-windows chess board
-Type=Application
-Categories=Game;BoardGame;
-Exec=xboard -mm -tf %f
-Icon=xboard
-NoDisplay=true
-Terminal=false
-MimeType=application/x-xboard-trn;
-
diff --git a/xboard.conf b/xboard.conf
deleted file mode 100644 (file)
index 1457551..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-;
-; xboard 4.8 Save Settings file
-;
-; This file contains the system-wide settings of XBoard, in so far they
-; deviate from the compiled-in defaults, and are not settable through menus,
-; to comfort users that have no history of xboard usage.
-; You can edit the values of options that are already set in this file,
-; or add other options that you think are convenient as defaults for all users.
-; This file is not automatically overwritten, because it redefines the
-; -saveSettingsFile to .xboardrc in the user's home directory, so that
-; user settings will be saved in a place the user has write access to.
-;
-; Looks
-;
--size 49
--internetChessServerInputBox false
--titleInWindow false
--showButtonBar true
--moveHistoryUp false
--evalGraphUp false
--engineOutputUp false
--monoMode false
--flashCount 0
--flashRate 5
--fontSizeTolerance 4
--useBoardTexture true
--liteBackTextureFile  "~~/themes/textures/wood_l.png"
--darkBackTextureFile  "~~/themes/textures/wood_d.png"
--overrideLineGap 1
--highlightMoveWithArrow true
--recentEngines 4
--gameListW 500
--gameListH 300
--evalGraphW 300
--evalGraphH 150
--stickyWindows false
-;
-; Behavior
-;
--sweepPromotions true
--pieceMenu false
--showTargetSquares true
--seekGraph true
--soundProgram "aplay -q"
--soundDirectory "~~/sounds"
--soundTell phone.wav
--soundChallenge gong.wav
--soundMove woodthunk.wav
--soundRoar roar.wav
--soundIcsAlarm penalty.wav
--pasteSelection false
--keepLineBreaksICS false
--timeDelay 1
--autoDisplayComment true
--autoDisplayTags true
--lowTimeWarning false
--icsAlarm false
--icsAlarmTime 5000
--msLoginDelay 0
--delayBeforeQuit 0
--delayAfterQuit 0
--defaultTourneyName "Tourney_%y%M%d_%h%m.trn"
--variations true
--appendPV true
--memoHeaders true
--autoInstall "ALL"
-;
-; PGN format & Game List
-;
--pgnExtendedInfo true
--saveOutOfBookInfo true
--gameListTags "eprd"
-;
-; Engines & adjudicatons in engine-engine games
-;
--firstChessProgram fairymax
--firstChessProgramNames {fairymax
-"Fruit 2.1" -fcp fruit -fUCI
-"Crafty" -fcp crafty
-"GNU Chess" -fcp gnuchess
-}
--niceEngines 0
--polyglotDir ""
--adapterCommand 'polyglot -noini -ec "%fcp" -ed "%fd" -uci NalimovCache=%defaultCacheSizeEGTB -pg ShowTbHits=true'
--defaultPathEGTB ""
--egtFormats "syzygy:/EGT/Syzygy,scorpio:/EGT/bitbases"
--testClaims true
--checkMates true
--materialDraws true
--trivialDraws false
-;
-; preconfigure some ICS nams, for use with -is option
-;
--icsNames {"fics" -icshost freechess.org -icshelper timeseal
-"icc" -icshost chessclub.com -icshelper timestamp
-"kc" -icshost alanimus.com -icshelper timeseal
-}
-;
-; Configure the ICS text menu
-;
--icsMenu {Give me;ptell Please give me $input;
-Avoid;ptell Please don't let him get $input;
-Q;$add a Queen $input;
-R;$add a Rook $input;
-B;$add a Bishop $input;
-N;$add a Knight $input;
-P;$add a Pawn $input;
-Dead;ptell I will be checkmated;
-MultiLine;
-set open 0
-set seek 0
-set tell 1;
-Kill;ptell I will checkmate him!;
-Who;who;
-Finger (name);finger $name;
-Players;players;
-Vars (name);vars $name;
-Games;games;
-Observe (name);observe $name;
-Sought;sought;
-Match (name);match $name;
-Tell (name);tell $name $input;
-Play (name);play $name;
-Message (name);message $name $input;
-Copy;$copy;
-Open Chat Box (name);$chat;
-}
-;
-; pre-define some themes
-;
--themeNames {"native" -ubt false -pid "" -trueColors false -flipBlack false -overrideLineGap -1
-"classic" -ubt false -lsc #c8c365 -dsc #77a26d -pid "" -wpc #ffffcc -bpc #202020 -hsc #ffff00 -phc #ff0000 -overrideLineGap -1 -flipBlack false
-"wood" -ubt true -lbtf ~~/themes/textures/wood_l.png -dbtf ~~/themes/textures/wood_d.png -pid ""  -hsc #ffff00 -phc #ff0000 -overrideLineGap 1
-"diagram" -ubt true -lbtf "" -dbtf ~~/themes/textures/hatch.png -lsc #ffffff -wpc #ffffff -bpc #000000 -pid "" -hsc #808080 -phc #808080 -trueColors false -overrideLineGap 1
-"icy" -ubt false -lsc #ffffff -dsc #80ffff -pid "" -wpc #f1f8f8 -bpc #202020 -hsc #0000ff -phc #ff0000
-# ORIENTAL THEMES
-"shogi" -ubt true  -lbtf ~~/themes/textures/wood_d.png -dbtf ~~/themes/textures/wood_d.png -pid ~~/themes/shogi -trueColors true -hsc #ffff00 -phc #0080ff -overrideLineGap 1
-"xiangqi" -ubt true  -lbtf ~~/themes/textures/xqboard-9x10.png -dbtf ~~/themes/textures/xqboard-9x10.png -pid ~~/themes/xiangqi -trueColors true -hsc #ffff00 -phc #ff0000 -overrideLineGap 0
-"chu shogi" -ubt false -lsc #ff8040 -dsc #ff8040 -pid ~~/themes/chu -trueColors true -hsc #0000ff -phc #00ff00
-# end
-}
-;
-; Anouncement to make at startup
-;
--startupMessage {Right-clicking menu item or
-dialog text pops up help on it}
-;
-; Save user settings.
-; Must be last in file to make user options prevail over system-wide settings!
-;
--saveSettingsOnExit true
--saveSettingsFile "~/.xboardrc"
--settingsFile "~/.xboardrc"
-
diff --git a/xboard.desktop b/xboard.desktop
deleted file mode 100644 (file)
index 3787d8f..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-[Desktop Entry]
-Name=Xboard
-Name[af]=X-bord
-Name[ar]=Xboard
-Name[bg]=Xboard
-Name[bn]=এক্সবোর্ড
-Name[cs]=Xboard
-Name[da]=Xboard
-Name[de]=Xboard
-Name[el]=Xboard
-Name[es]=Xboard
-Name[et]=Xboard
-Name[fi]=XBoard
-Name[fr]=XBoard
-Name[gl]=Xboard
-Name[hi]=एक्सबोर्ड
-Name[hr]=Xboard
-Name[hu]=XBoard
-Name[it]=XBoard
-Name[ja]=Xboard
-Name[km]=XBoard
-Name[ko]=X보드
-Name[lt]=Xboard
-Name[mr]=Xबोर्ड
-Name[nb]=Xboard
-Name[nl]=Xboard
-Name[pa]=Xboard
-Name[pl]=Xboard
-Name[pt]=Xboard
-Name[pt_BR]=Xboard
-Name[ru]=Xboard
-Name[sk]=Xboard
-Name[sv]=Xboard
-Name[ta]=பெயர்(எக்ஸ்போர்ட்.டெஸ்க்டாப்): எக்ஸ்போர்ட்
-Name[th]=Xboard
-Name[tr]=XBoard
-Name[uk]=Xboard
-Name[vi]=XBoard
-Name[xh]=Ibhodi ye-X
-Name[zh_CN]=X 国际象棋
-Name[zh_TW]=Xboard 國際象棋
-Name[zu]=I-Xboard
-Comment=Chess Game
-Comment[af]=Skaak Speletjie
-Comment[ar]=لعبة الشطرنج
-Comment[bg]=Шах
-Comment[bn]=দাবা
-Comment[bs]=Igra šaha
-Comment[ca]=Joc d'escacs
-Comment[cs]=Šachy
-Comment[cy]=Gêm Gwyddbwyll
-Comment[da]=Skakspil
-Comment[de]=Schachspiel
-Comment[el]=Παιχνίδι Σκάκι
-Comment[es]=Juego de ajedrez
-Comment[et]=Male
-Comment[fi]=Shakkipeli
-Comment[fr]=Jeu d'échecs
-Comment[gl]=Xogo de Xadrez
-Comment[he]=משחק שחמט
-Comment[hi]=शतरंज का खेल
-Comment[hr]=Šah
-Comment[hu]=sakk
-Comment[id]=Permainan Catur
-Comment[it]=Gioco di scacchi
-Comment[ja]=チェスゲーム
-Comment[ka]=ჭადრაკი
-Comment[km]=ល្បែង\200bអុក
-Comment[ko]=체스 게임
-Comment[lo]=ເກມຫມາກລຸກ
-Comment[lt]=Šachmatai
-Comment[mk]=Шаховска игра
-Comment[mr]=बुद्धिबळाचा खेळ
-Comment[nb]=Sjakkspill
-Comment[nl]=Schaakspel
-Comment[pa]=ਸਤਰੰਜ਼ ਖੇਡ
-Comment[pl]=Szachy
-Comment[pt]=Jogo de Xadrez
-Comment[pt_BR]=Jogo de Xadrez
-Comment[ro]=Un joc de șah
-Comment[ru]=Шахматы
-Comment[sk]=Šach
-Comment[sl]=Igra šaha
-Comment[sr]=Шах
-Comment[sr@Latn]=Шах
-Comment[sv]=Schackspel
-Comment[ta]=இனப்பெயர்(எக்ஸ்போர்ட்.டெஸ்க்டாப்): சதுரங்க விளையாட்டு
-Comment[th]=เกมหมากรุก
-Comment[tr]=Satranç oyunu
-Comment[uk]=Шахи
-Comment[vi]=Cờ
-Comment[wa]=Djeu d' echeks
-Comment[xh]=Umdlalo we Chess
-Comment[zh_CN]=国际象棋游戏
-Comment[zh_TW]=棋類遊戲
-Comment[zu]=Umdlalo we-Chess
-GenericName=Chess Game
-GenericName[af]=Skaak Speletjie
-GenericName[ar]=لعبة الشطرنج
-GenericName[bg]=Шах
-GenericName[bn]=দাবা
-GenericName[bs]=Igra šaha
-GenericName[ca]=Joc d'escacs
-GenericName[cs]=Šachy
-GenericName[cy]=Gêm Gwyddbwyll
-GenericName[da]=Skakspil
-GenericName[de]=Schachspiel
-GenericName[el]=Παιχνίδι Σκάκι
-GenericName[es]=Juego de ajedrez
-GenericName[et]=Male
-GenericName[fi]=Shakkipeli
-GenericName[fr]=Jeu d'échecs
-GenericName[gl]=Xogo de Xadrez
-GenericName[he]=משחק שחמט
-GenericName[hi]=शतरंज का खेल
-GenericName[hr]=Šah
-GenericName[hu]=sakk
-GenericName[id]=Permainan Catur
-GenericName[it]=Gioco di scacchi
-GenericName[ja]=チェスゲーム
-GenericName[ka]=ჭადრაკი
-GenericName[km]=ល្បែង\200bអុក
-GenericName[ko]=체스 게임
-GenericName[lo]=ເກມຫມາກລຸກ
-GenericName[lt]=Šachmatai
-GenericName[mk]=Шаховска игра
-GenericName[mr]=बुद्धिबळाचा खेळ
-GenericName[nb]=Sjakkspill
-GenericName[nl]=Schaakspel
-GenericName[pa]=ਸਤਰੰਜ਼ ਖੇਡ
-GenericName[pl]=Szachy
-GenericName[pt]=Jogo de Xadrez
-GenericName[pt_BR]=Jogo de Xadrez
-GenericName[ro]=Un joc de șah
-GenericName[ru]=Шахматы
-GenericName[sk]=Šach
-GenericName[sl]=Igra šaha
-GenericName[sr]=Шах
-GenericName[sr@Latn]=Шах
-GenericName[sv]=Schackspel
-GenericName[ta]=இனப்பெயர்(எக்ஸ்போர்ட்.டெஸ்க்டாப்): சதுரங்க விளையாட்டு
-GenericName[th]=เกมหมากรุก
-GenericName[tr]=Satranç oyunu
-GenericName[uk]=Шахи
-GenericName[vi]=Cờ
-GenericName[wa]=Djeu d' echeks
-GenericName[xh]=Umdlalo we Chess
-GenericName[zh_CN]=国际象棋游戏
-GenericName[zh_TW]=棋類遊戲
-GenericName[zu]=Umdlalo we-Chess
-Type=Application
-Categories=Game;BoardGame;
-Exec=xboard
-Icon=xboard
diff --git a/xboard.png b/xboard.png
deleted file mode 100644 (file)
index e43fbc2..0000000
Binary files a/xboard.png and /dev/null differ
diff --git a/xboard.svg b/xboard.svg
deleted file mode 100644 (file)
index ad46b53..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="100"
-   height="100"
-   id="svg2833"
-   sodipodi:version="0.32"
-   inkscape:version="0.48+devel r10321 custom"
-   version="1.0"
-   sodipodi:docname="xboard.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape"
-   inkscape:export-filename="/home/arun/src/Prog/xboard/xboard.png"
-   inkscape:export-xdpi="250"
-   inkscape:export-ydpi="250">
-  <defs
-     id="defs2835">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 526.18109 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="744.09448 : 526.18109 : 1"
-       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
-       id="perspective2841" />
-    <inkscape:perspective
-       id="perspective2851"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2873"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2916"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective2959"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective3002"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective3045"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-    <inkscape:perspective
-       id="perspective3513"
-       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
-       inkscape:vp_z="1 : 0.5 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_x="0 : 0.5 : 1"
-       sodipodi:type="inkscape:persp3d" />
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="0.29609665"
-     inkscape:cx="875.69075"
-     inkscape:cy="-115.80754"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="1280"
-     inkscape:window-height="970"
-     inkscape:window-x="0"
-     inkscape:window-y="0"
-     inkscape:window-maximized="1" />
-  <metadata
-     id="metadata2838">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(-67.582896,-53.165653)">
-    <path
-       style="fill:#ffffff;fill-opacity:1;stroke-width:1px"
-       d="m 113.3125,57.03125 c -1.58577,0.04984 -2.47509,1.487318 -3.5,2.46875 -0.67425,1.053857 -1.79438,1.924061 -2.42634,3.101938 -0.66164,1.000438 -1.44813,1.916003 -2.04241,2.960562 -0.77581,-0.736287 -1.5167,-1.737923 -2.3088,-2.585687 -1.68921,-1.843027 -3.529616,-3.581198 -5.544084,-5.034224 C 95.924903,57.140856 93.811249,56.942081 92.34375,58 c -0.705358,0.525182 -1.077546,1.282967 -1.266435,2.133179 -0.644907,2.735748 0.389956,5.45886 0.666349,8.165785 0.153383,1.531519 -0.393901,3.017942 -1.319454,4.220971 -0.648672,1.002459 -1.365462,1.79159 -2.08046,2.761315 -0.628636,0.847135 -1.569787,1.710173 -2.015539,2.775879 -2.089075,4.09356 -1.871767,8.916378 -3.853144,13.053658 -1.21144,2.49413 -2.853735,4.758245 -4.220907,7.173947 -2.28335,3.742686 -4.417045,7.626506 -5.675835,11.847246 -0.885032,3.20694 -1.169709,6.78592 0.296675,9.86802 0.740297,1.63405 2.143463,2.84502 3.519423,3.93235 2.212122,1.46632 5.001,1.75376 7.582546,1.36535 1.337649,0.29703 1.788538,2.09594 3.179281,2.3273 2.185246,0.97054 5.015582,0.29912 6.4455,-1.61812 2.725921,-3.08545 5.512519,-6.11428 7.96075,-9.41313 0.30098,-0.47037 0.88758,-0.9495 1.36069,-1.2795 2.54755,-1.72484 5.25185,-3.21929 7.92056,-4.75175 2.45898,-1.353 4.92337,-2.6962 7.375,-4.0625 -0.88134,3.52057 -2.61218,6.75257 -4.75622,9.6591 -1.34305,1.96589 -2.88061,3.7878 -4.27503,5.7159 -0.30772,0.45344 -0.9191,1.01833 -1.19403,1.49441 -2.75019,3.25539 -5.82797,6.2564 -8.05799,9.89992 -1.766243,3.23248 -3.197805,6.75137 -3.572545,10.44754 -0.199035,1.68785 0.09318,3.63042 1.480815,4.72063 1.776203,0.96391 3.90212,0.61125 5.84989,0.69226 6.16331,0.009 12.32903,-0.15703 18.49386,-0.12976 9.73786,-0.0338 19.47531,0.0779 29.2125,0.15625 2.34335,-0.0534 4.70793,0.0698 7.03512,-0.22638 1.29796,-0.21264 2.73177,-0.51497 3.75127,-1.32131 1.35286,-1.95305 0.96934,-4.46326 1.00111,-6.70856 0.0184,-7.26977 -0.73271,-14.51736 -1.81234,-21.69885 -0.96574,-6.49991 -2.22332,-12.97783 -4.11502,-19.276845 -1.44816,-4.679041 -3.27629,-9.264721 -5.63514,-13.549305 -0.89947,-1.71364 -1.93586,-3.377532 -3.09375,-4.9375 -1.30263,-1.588892 -2.77656,-3.083553 -4.28951,-4.498066 -2.15889,-2.116759 -4.40365,-4.205399 -6.80424,-6.001934 -2.33759,-1.133695 -4.72609,-2.18408 -7.25929,-2.798516 -2.76515,-0.823184 -5.76367,-1.405269 -8.33446,-2.545234 -0.81963,-0.596818 -1.10029,-1.612707 -1.71396,-2.446456 -1.24808,-2.13748 -2.53758,-4.401456 -4.66104,-5.741044 -0.65197,-0.341889 -1.429,-0.455514 -2.15625,-0.375 z"
-       id="path16"
-       inkscape:connector-curvature="0" />
-    <path
-       style="stroke-width:1px"
-       d="m 105.23203,67.719809 c 2.52182,-1.891358 5.04364,-8.82637 8.19591,-9.456822 3.78274,-0.630453 5.04365,7.565464 8.19592,8.826369 5.04364,1.891369 10.08729,1.891369 15.13095,5.043643 15.76137,10.087286 20.80501,29.631391 23.32683,46.653681 1.26092,6.93501 1.89137,13.87001 1.89137,20.80502 0,1.89137 0.51112,5.56512 -0.63045,6.935 -2.01805,2.42166 -11.3482,1.26092 -14.50048,1.26092 0,0 -29.20073,0 -37.82732,0 -8.62659,0 -12.493001,1.82522 -11.348188,-5.04364 2.642478,-15.85482 21.435468,-22.69638 22.065928,-39.08822 -5.67409,4.41318 -12.60911,6.30455 -17.65275,10.71774 -3.782725,3.15227 -6.934999,9.45682 -10.717737,11.97864 -2.521821,1.26091 -5.043642,0 -6.304548,-2.52182 -6.304548,1.89137 -12.609107,-2.52182 -11.978644,-9.45682 0.630453,-8.19593 6.304549,-14.500476 10.087275,-21.435488 2.521822,-4.413179 1.891369,-8.826369 3.782738,-13.239549 1.260905,-3.152284 4.413179,-5.043643 5.674095,-8.195917 1.891359,-2.521821 -2.521821,-10.087285 0.630453,-12.609107 3.152274,-2.521821 10.717738,6.304548 11.978648,8.82637 z m 13.23956,3.152274 c 1.89136,3.782737 5.67409,3.152285 8.82637,5.043643 4.41319,1.260916 7.56548,5.043643 10.71775,8.195917 9.45684,11.978654 13.87002,30.892307 13.87002,46.023227 0,5.6741 -1.26091,14.50048 6.30455,14.50048 0,-20.80503 -1.89136,-44.762326 -15.76138,-61.784613 -5.04364,-6.304558 -15.13094,-13.870012 -23.95731,-11.978654 z m -32.783672,50.436417 1.891369,0.63045 1.891368,-6.30454 -0.630463,0 z m -4.41318,-6.30455 c 3.152274,-0.63045 4.41318,-5.67409 0.630453,-5.67409 -3.152274,0 -3.782737,6.30455 -0.630453,5.67409 z m 38.457762,-13.87001 1.26091,0 1.89137,-6.935012 c -2.52183,1.260906 -3.15228,4.413191 -3.15228,6.935012 z M 93.253382,89.785738 94.514288,86.633464 c 3.782737,0.630453 5.674092,-1.260905 5.043642,-5.043643 l 3.15227,-0.630452 0,-0.630453 C 97.036109,79.068 91.992466,84.111643 93.253382,89.785738 z m 5.043643,-13.870012 c 1.260905,0 3.152275,0 4.413175,-0.630453 11.97866,-3.782727 -3.15227,-6.304548 -4.413175,0.630453 z"
-       id="BlackKnight"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cccccssszsccccccccsccccsccccccccsssccccccccccccc" />
-  </g>
-</svg>
diff --git a/xboard.texi b/xboard.texi
deleted file mode 100644 (file)
index 9c4c125..0000000
+++ /dev/null
@@ -1,5038 +0,0 @@
-\input texinfo @c -*-texinfo-*-
-@c %**start of header
-@setfilename xboard.info
-@settitle XBoard
-@c %**end of header
-
-@include version.texi
-
-@ifinfo
-@format
-INFO-DIR-SECTION Games
-START-INFO-DIR-ENTRY
-* xboard: (xboard).         An X Window System graphical chessboard.
-END-INFO-DIR-ENTRY
-@end format
-@end ifinfo
-
-@titlepage
-@title XBoard
-
-@page
-@vskip 0pt plus 1filll
-@include copyright.texi
-
-@end titlepage
-@ifset man
-.TH xboard 6 "$Date: " "GNU"
-.SH NAME
-.PP
-xboard @- X graphical user interface for chess
-.SH SYNOPSIS
-.PP
-.B xboard [options]
-.br
-.B xboard -ics -icshost hostname [options]
-.br
-.B xboard -ncp [options]
-.br
-.B |pxboard
-.br
-.B cmail [options]
-@end ifset
-
-@node Top
-@top Introduction
-@cindex introduction
-
-@ifset man
-.SH DESCRIPTION
-@end ifset
-
-XBoard is a graphical chessboard that can serve as a
-user interface to chess engines (such as GNU Chess), the
-Internet Chess Servers,
-electronic mail correspondence chess, or your own collection of saved games.
-
-This manual documents version @value{VERSION} of XBoard.
-
-@menu
-* Major modes::     The main things XBoard can do.
-* Basic operation:: Mouse and keyboard functions.
-* Menus::           Menus, buttons, and keys.
-* Options::         Command options supported by XBoard.
-* Chess Servers::   Using XBoard with an Internet Chess Server (ICS).
-* Firewalls::       Connecting to a chess server through a firewall.
-* Environment::     Environment variables.
-* Limitations::     Known limitations and/or bugs.
-* Problems::        How and where to report any problems you run into.
-* Contributors::    People who have helped developing XBoard.
-* CMail::           Using XBoard for electronic correspondence chess.
-* Other programs::  Other programs you can use with XBoard.
-@ifnottex
-* Copyright::       Copyright notice for this manual.
-@end ifnottex
-* Copying::         The GNU General Public License.
-
-* Index::           Index of concepts and symbol names.
-@end menu
-
-@node Major modes
-@chapter Major modes
-@cindex Major modes
-
-XBoard always runs in one of four major modes.  You select the
-major mode from the command line when you start up XBoard.
-
-@table @asis
-@item xboard [options]
-As an interface to GNU Chess or another chess engine running on your
-machine, XBoard lets you play a game against the machine,
-set up arbitrary positions, force variations, watch a game between two
-chess engines, interactively analyze your stored games or set up and
-analyze arbitrary positions.
-To run engines that use the UCI standard XBoard will draw upon
-the Polyglot adapter fully transparently, but you will need to have
-the polyglot package installed for this to work.
-@item xboard -ics -icshost hostname [options]
-As Internet Chess Server (ICS) interface, XBoard
-lets you play against other ICS users, observe games
-they are playing, or review games that have recently finished.  Most
-of the ICS "wild" chess variants are supported, including bughouse.
-@item xboard -ncp [options]
-XBoard can also be used simply
-as an electronic chessboard to play through games. It will read and
-write game files and allow you to play through variations
-manually. You can use it to browse games off the net or review games
-you have saved.  These features are also available in the other modes.
-@item |pxboard
-If you want to pipe games into XBoard, use the supplied shell
-script @file{pxboard}.  For example, from the news reader @file{xrn},
-find a message with one or more games in it, click the Save button,
-and type @samp{|pxboard} as the file name.
-@item cmail [options]
-As an interface to electronic mail correspondence chess, XBoard
-works with the cmail program. See @ref{CMail} below for
-instructions.
-@end table
-
-@node Basic operation
-@chapter Basic operation
-@cindex Basic operation
-
-To move a piece, you can drag it with the left mouse button, or you
-can click the left mouse button once on the piece, then once more on
-the destination square. To under-promote a Pawn you can drag it backwards
-until it morphs into the piece you want to promote to, after which you
-drag that forward to the promotion square.
-Or after selecting the pawn with a first click you can then click
-the promotion square and move the mouse while keeping the button down
-until the piece that you want appears in the promotion square.
-To castle you move the King to its destination or, in Chess960,
-on top of the Rook you want to castle with.
-In crazyhouse, bughouse or shogi you can
-drag and drop pieces to the board from the holdings squares 
-displayed next to the board.
-
-Old behavior, where right-clicking a square brings up a menu
-where you can select what piece to drop on it can still be 
-selected through the @samp{Drop Menu} option.
-Only in Edit Position mode right and middle clicking a square is still used to
-put a piece on it, and the piece to drop is selected by sweeping
-the mouse vertically with the button held down.
-
-The default function of the right mouse button in other modes is 
-to display the position the chess program thinks it will end up in.
-While moving the mouse vertically with this button pressed 
-XBoard will step through the principal variation to show how 
-this position will be reached.
-Lines of play displayed in the engine-output window,
-or PGN variations in the comment window can similarly
-be played out on the board, by right-clicking on them.
-Only in Analysis mode, when you walk along a PV, 
-releasing the mouse button might forward the game upto that point,
-like you entered all previous PV moves.
-As the display of the PV in that case starts after the first move
-a simple right-click will play the move the engine indicates.
-
-In Analysis mode you can also make a move by grabbing the piece
-with a double-click of the left mouse button
-(or while keeping the @kbd{Ctrl} key pressed).
-In this case the move you enter will not be played,
-but will be excluded from the analysis of the current position.
-(Or included if it was already excluded; it is a toggle.)
-This only works for engines that support this feature.
-
-When connected to an ICS, it is possible to call up a graphical
-representation of players seeking a game in stead of the chess board,
-when the latter is not in use
-(i.e. when you are not playing or observing).
-Left-clicking the display area will switch between this 'seek graph'
-and the chess board.
-Hovering the mouse pointer over a dot will show the details of the
-seek ad in the message field above the board.
-Left-clicking the dot will challenge that player.
-Right-clicking a dot will 'push it to the back',
-to reveal any dots that were hidden behind it.
-Right-clicking off dots will refresh the graph.
-
-Most other XBoard commands are available from the menu bar. The most
-frequently used commands also have shortcut keys or on-screen buttons.
-These shortcut keystrokes are mostly non-printable characters.
-Typing a letter or digit while the board window has focus
-will bring up a type-in box with the typed letter already in it.
-You can use that to type a move in situations where it is your
-turn to enter a move,
-type a move number to call up the position after that move
-in the display,
-or, in Edit Position mode, type a FEN.
-Some rarely used parameters can only be set through options on the
-command line used to invoke XBoard.
-
-XBoard uses a settings file, in which it can remember any changes to
-the settings that are made through menus or command-line options,
-so they will still apply when you restart XBoard for another session.
-The settings can be saved into this file automatically when XBoard exits,
-or on explicit request of the user.
-Note that the board window can be sized by the user, but that this
-will not affect the size of the clocks above it, and won't be remembered
-in the settings file.
-To persistently change the size of the clocks, use the @code{size}
-command-line option when starting XBoard.
-The default name for the settings file is /etc/xboard/xboard.conf,
-but in a standard install this file is only used as a master settings
-file that determines the system-wide default settings,
-and defers reading and writing of user settings to a user-specific
-file like ~/.xboardrc in the user's home directory.
-
-When XBoard is iconized, its graphical icon is a white knight if
-it is White's turn to move, a black knight if it is Black's turn.
-
-@node Menus
-@chapter Menus, buttons, and keys
-@cindex Menus
-
-@menu
-* File Menu::       Accessing external games and positions.
-* Edit Menu::       Altering games, positions, PGN tags or comments.
-* View Menu::       Controlling XBoard's shape and looks.
-* Mode Menu::       Selecting XBoard's mode.
-* Action Menu::     Talking to the chess engine or ICS opponents.
-* Engine Menu::     Controlling settings and actions of the engine(s).
-* Options Menu::    User preferences.
-* Help Menu::       Getting help.
-* Keys::            Other shortcut keys.
-@end menu
-
-@node File Menu
-@section File Menu
-@cindex File Menu
-@cindex Menu, File
-@table @asis
-@item New Game
-@cindex New Game, Menu Item
-Resets XBoard and the chess engine to the beginning of a new chess
-game. The @kbd{Ctrl-N} key is a keyboard equivalent. In Internet Chess
-Server mode, clears the current state of XBoard, then
-resynchronizes with the ICS by sending a refresh command. If you want to
-stop playing, observing, or examining an ICS game, use an
-appropriate command from the Action menu, not @samp{New Game}.
-@xref{Action Menu}.
-@item New Shuffle Game
-@cindex New Shuffle Game, Menu Item
-Similar to @samp{New Game}, but allows you to specify a particular initial position 
-(according to a standardized numbering system)
-in chess variants which use randomized opening positions (e.g. Chess960).
-@item shuffle
-@cindex shuffle, Menu Item
-Ticking @samp{shuffle} will cause the current variant to be played
-with shuffled initial position.
-Shuffling will preserve the possibility to castle in the way allowed by the variant.
-@item Fischer castling
-@cindex Fischer castling, menu item
-Ticking @samp{Fischer castling} will allow castling with Kings and Rooks
-that did not start in their normal place, as in Chess960.
-@item Start-position number
-@itemx randomize
-@itemx pick fixed
-@cindex randomize, Menu Item
-@cindex pick fixed, Menu Item
-@cindex Start-position number, Menu Item
-The @samp{Start-position number} selects a particular start position
-from all allowed shufflings, which will then be used for every new game.
-Setting this to -1 (which can be done by pressing the @samp{randomize} button)
-will cause a fresh random position to be picked for every new game.
-Pressing the @samp{pick fixed} button causes @samp{Start-position number}
-to be set to a random value, to be used for all subsequent games. 
-@item New Variant
-@cindex New variant, Menu Item
-Allows you to select a new chess variant in non-ICS mode. 
-(In ICS play, the ICS is responsible for deciding which variant will be played,
-and XBoard adapts automatically.)  The shifted @kbd{Alt+V} key is a 
-keyboard equivalent. If you play with an engine, the engine must
-be able to play the selected variant, or the corresponding choice will be disabled.
-XBoard supports all major variants, such as xiangqi, shogi, chess, chess960,
-makruk, Capablanca Chess, shatranj, crazyhouse, bughouse.
-
-You can overrule the default board format of the selected variant,
-(e.g. to play suicide chess on a 6 x 6 board),
-in this dialog, but normally you would not do that, 
-and leave them at '-1', which means 'default' for the chosen variant.
-@item Load Game
-@cindex Load Game, Menu Item
-Plays a game from a record file. The @kbd{Ctrl-O} key is a keyboard equivalent.
-A pop-up dialog prompts you for the file name. If the file contains more
-than one game, a second pop-up dialog
-displays a list of games (with information drawn from their PGN tags, if
-any), and you can select the one you want. Alternatively, you can load the
-Nth game in the file directly, by typing the number @kbd{N} after the
-file name, separated by a space.
-
-The game-file parser will accept PGN (portable game notation),
-or in fact almost any file that contains moves in algebraic
-notation. 
-Notation of the form @samp{P@@f7}
-is accepted for piece-drops in bughouse games;
-this is a nonstandard extension to PGN.
-If the file includes a PGN position (FEN tag), or an old-style
-XBoard position diagram bracketed by @samp{[--} and @samp{--]}
-before the first move, the game starts from that position. Text
-enclosed in parentheses, square brackets, or curly braces is assumed to
-be commentary and is displayed in a pop-up window. Any other
-text in the file is ignored. PGN variations (enclosed in
-parentheses) also are treated as comments;
-however, if you rights-click them in the comment window,
-XBoard will shelve the current line, and load the the selected variation,
-so you can step through it.
-You can later revert to the previous line with the @samp{Revert} command.
-This way you can walk quite complex varation trees with XBoard.
-The nonstandard PGN tag [Variant "varname"] functions similarly to
-the -variant command-line option (see below), allowing games in certain chess
-variants to be loaded.  
-Note that it must appear before any FEN tag for XBoard to recognize
-variant FENs appropriately.
-There is also a heuristic to 
-recognize chess variants from the Event tag, by looking for the strings
-that the Internet Chess Servers put there when saving variant ("wild") games.
-@item Load Position
-@cindex Load Position, Menu Item
-Sets up a position from a position file.  A pop-up dialog prompts
-you for the file name.  The shifted @kbd{Ctrl-O} key is a keyboard 
-equivalent. If the file contains more than one saved
-position, and you want to load the Nth one, type the number N
-after the file name, separated by a space. Position files must
-be in FEN (Forsythe-Edwards notation), or in the format that the
-Save Position command writes when oldSaveStyle is turned on.
-@item Load Next Position
-@cindex Load Next Position, Menu Item
-Loads the next position from the last position file you loaded.
-The shifted @kbd{PgDn} key is a keyboard equivalent.
-@item Load Previous Position
-@cindex Load Previous Position, Menu Item
-Loads the previous position from the last position file you
-loaded. The shifted @kbd{PgUp} key is a keyboard equivalent.
-Not available if the last position was loaded from a pipe.
-@item Save Game
-@cindex Save Game, Menu Item
-Appends a record of the current game to a file.
-The @kbd{Ctrl-S} key is a keyboard equivalent.
-A pop-up dialog
-prompts you for the file name. If the game did not begin with
-the standard starting position, the game file includes the
-starting position used. Games are saved in the PGN (portable
-game notation) format, unless the oldSaveStyle option is true,
-in which case they are saved in an older format that is specific
-to XBoard. Both formats are human-readable, and both can be
-read back by the @samp{Load Game} command.
-Notation of the form @samp{P@@f7}
-is accepted for piece-drops in bughouse games;
-this is a nonstandard extension to PGN.
-@item Save Position
-@cindex Save Position, Menu Item
-Appends a diagram of the current position to a file.
-The shifted @kbd{Ctrl+S} key is a keyboard equivalent. 
-A pop-up dialog prompts you for the file name. Positions are saved in
-FEN (Forsythe-Edwards notation) format unless the @code{oldSaveStyle}
-option is true, in which case they are saved in an older,
-human-readable format that is specific to XBoard. Both formats
-can be read back by the @samp{Load Position} command.
-@item Save Selected Games
-@cindex Save Selected Games
-Will cause all games selected for display in the current Game List
-to be appended to a file of the user's choice.
-@item Save Games as Book
-@cindex Save Games as Book, Menu Item
-Creates an opening book from the currently loaded game file,
-incorporating only the games currently selected in the Game List.
-The book will be saved on the file specified in the @samp{Common Engine}
-options dialog.
-The value of @samp{Book Depth} specified in that same dialog will 
-be used to determine how many moves of each game will be added to
-the internal book buffer.
-This command can take a long time to process,
-and the size of the buffer is currently limited.
-At the end the buffer will be saved as a Polyglot book,
-but the buffer will not be cleared,
-so that you can continue adding games from other game files.
-@item Mail Move
-@itemx Reload CMail Message
-@cindex Mail Move, Menu Item
-@cindex Reload CMail Message, Menu Item
-See @ref{CMail}.
-@item Exit
-@cindex Exit, Menu Item
-Exits from XBoard. The @kbd{Ctrl-Q} key is a keyboard equivalent.
-@end table
-
-@node Edit Menu
-@section Edit Menu
-@cindex Menu, Edit
-@cindex Edit Menu
-@table @asis
-@item Copy Game
-@cindex Copy Game, Menu Item
-Copies a record of the current game to an internal clipboard in PGN
-format and sets the X selection to the game text. The @kbd{Ctrl-C} 
-key is a keyboard equivalent. The game can be
-pasted to another application (such as a text editor or another copy
-of XBoard) using that application's paste command.  In many X
-applications, such as xterm and emacs, the middle mouse button can be
-used for pasting; in XBoard, you must use the Paste Game command.
-@item Copy Position
-@cindex Copy Position, Menu Item
-Copies the current position to an internal clipboard in FEN format and
-sets the X selection to the position text. The shifted @kbd{Ctrl-C} key 
-is a keyboard equivalent.  The position can be pasted
-to another application (such as a text editor or another copy of
-XBoard) using that application's paste command.  In many X
-applications, such as xterm and emacs, the middle mouse button can be
-used for pasting; in XBoard, you must use the Paste Position command.
-@item Copy Game List
-@cindex Copy Game List, Menu Item
-Copies the current game list to the clipboard,
-and sets the X selection to this text.
-A format of comma-separated double-quoted strings is used,
-including all tags,
-so it can be easily imported into spread-sheet programs.
-@item Paste Game
-@cindex Paste Game, Menu Item
-Interprets the current X selection as a game record and loads it, as
-with Load Game. The @kbd{Ctrl-V} key is a keyboard equivalent.
-@item Paste Position
-@cindex Paste Position, Menu Item
-Interprets the current X selection as a FEN position and loads it, as
-with Load Position. The shifted @kbd{Ctrl-V} key is a keyboard equivalent.
-@item Edit Game
-@cindex Edit Game, Menu Item
-Allows you to make moves for both Black and White, and to change
-moves after backing up with the @samp{Backward} command. The clocks do
-not run. The @kbd{Ctrl-E} key is a keyboard equivalent.
-
-In chess engine mode, the chess engine continues to check moves for legality
-but does not participate in the game. You can bring the chess engine
-into the game by selecting @samp{Machine White}, @samp{Machine Black},
-or @samp{Two Machines}.
-
-In ICS mode, the moves are not sent to the ICS: @samp{Edit Game} takes
-XBoard out of ICS Client mode and lets you edit games locally.
-If you want to edit games on ICS in a way that other ICS users
-can see, use the ICS @kbd{examine} command or start an ICS match
-against yourself.
-@item Edit Position
-@cindex Edit Position, Menu Item
-Lets you set up an arbitrary board position.
-The shifted @kbd{Ctrl-E} key is a keyboard equivalent.
-Use mouse button 1 to drag pieces to new squares, or to delete a piece
-by dragging it off the board or dragging an empty square on top of it.
-When you do this keeping the @kbd{Ctrl} key pressed,
-or start dragging with a double-click,
-you will move a copy of the piece, leaving the piece itself where it was.
-In variants where pieces can promote (such as Shogi),
-left-clicking an already selected piece promotes or demotes it.
-To drop a new piece on a square, press mouse button 2 or 3 over the
-square.
-This puts a white or black pawn in the square, respectively,
-but you can change that to any other piece type by dragging the
-mouse down before you release the button.
-You will then see the piece on the originally clicked square
-cycle through the available pieces
-(including those of opposite color),
-and can release the button when you see the piece you want.
-(Note you can swap the function of button 2 and 3 by pressing
-the shift key, and that there is an option @code{monoMouse}
-to combine al functions in one button, which then acts as
-button 3 over an empty square, and as button 1 over a piece.)
-To alter the side to move, you can click the clock 
-(the words White and Black above the board)
-of the side you want to give the move to.
-To clear the board you can click the clock of the side that
-already has the move (which is highlighted in black).
-If you repeat this the board will cycle from empty to a
-@code{pallette board} containing every piece once to the initial
-position to the one before clearing.
-The quickest way to set up a position is usually to start
-with the pallette board, and move the pieces to were you
-want them, duplicating them where necessary by using the
-@kbd{Ctrl} key, dragging those you don't want off board,
-and use static button 2 or 3 clicks to place the Pawns.
-The old behavior with a piece menu can still be configured
-with the aid of the @code{pieceMenu} option.
-Dragging empty squares off board can create boards with
-holes (inaccessible black squares) in them.
-Selecting @samp{Edit Position} causes XBoard to discard
-all remembered moves in the current game.
-
-In ICS mode, changes made to the position by @samp{Edit Position} are
-not sent to the ICS: @samp{Edit Position} takes XBoard out of
-@samp{ICS Client} mode and lets you edit positions locally. If you want to
-edit positions on ICS in a way that other ICS users can see, use
-the ICS @kbd{examine} command, or start an ICS match against yourself.
-(See also the ICS Client topic above.)
-@item Edit Tags
-@cindex Edit Tags, Menu Item
-Lets you edit the PGN (portable game notation)
-tags for the current game. After editing, the tags must still conform to
-the PGN tag syntax:
-
-@example
-<tag-section> ::= <tag-pair> <tag-section>
-                        <empty>
-<tag-pair> ::= [ <tag-name> <tag-value> ]
-<tag-name> ::= <identifier>
-<tag-value> ::= <string>
-@end example
-@noindent
-See the PGN Standard for full details. Here is an example:
-
-@example
-[Event "Portoroz Interzonal"]
-[Site "Portoroz, Yugoslavia"]
-[Date "1958.08.16"]
-[Round "8"]
-[White "Robert J. Fischer"]
-[Black "Bent Larsen"]
-[Result "1-0"]
-@end example
-@noindent
-Any characters that do not match this syntax are silently ignored. Note that
-the PGN standard requires all games to have at least the seven tags shown
-above. Any that you omit will be filled in by XBoard
-with @samp{?} (unknown value), or @samp{-} (inapplicable value).
-@item Edit Comment
-@cindex Edit Comment, Menu Item
-Adds or modifies a comment on the current position. Comments are
-saved by @samp{Save Game} and are displayed by @samp{Load Game},
-PGN variations will also be printed in this window,
-and can be promoted to main line by right-clicking them.
-@samp{Forward}, and @samp{Backward}.
-@item Edit Book
-@cindex Edit Book, Menu Item
-Pops up a window listing the moves available in the GUI book 
-(specified in the @samp{Common Engine Settings} dialog) 
-from the currently displayed position, 
-together with their weights and (optionally in braces) learn info. 
-You can then edit this list, and the new list will be stored
-back into the book when you press 'save changes'.
-When you press the button 'add next move', and play a move
-on the board, that move will be added to the list with weight 1.
-Note that the listed percentages are neither used, nor updated when 
-you change the weights; they are just there as an optical aid.
-When you right-click a move in the list it will be played.
-@item Revert
-@itemx Annotate
-@cindex Revert, Menu Item
-@cindex Annotate, Menu Item
-If you are examining an ICS game and Pause mode is off,
-Revert issues the ICS command @samp{revert}.
-In local mode, when you were editing or analyzing a game, 
-and the @code{-variations} command-line option is switched on,
-you can start a new variation by holding the Shift key down while
-entering a move not at the end of the game.
-Variations can also become the currently displayed line by
-clicking a PGN variation displayed in the Comment window.
-This can be applied recursively, 
-so that you can analyze variations on variations; 
-each time you create a new variation by entering an alternative move
-with Shift pressed, or select a new one from the Comment window,
-the current variation will be shelved. 
-@samp{Revert} allows you to return to the most recently shelved variation.
-The difference between @samp{Revert} and @samp{Annotate}
-is that with the latter,
-the variation you are now abandoning will be added as a comment 
-(in PGN variation syntax, i.e. between parentheses)
-to the original move where you deviated, for later recalling.
-The @kbd{Home} key is a keyboard equivalent to @samp{Revert}.
-@item Truncate Game
-@cindex Truncate Game, Menu Item
-Discards all remembered moves of the game beyond the current
-position. Puts XBoard into @samp{Edit Game} mode if it was not there
-already.
-The @kbd{End} key is a keyboard equivalent.
-@item Backward
-@itemx <
-@cindex Backward, Menu Item
-@cindex <, Button
-Steps backward through a series of remembered moves.
-The @samp{[<]} button and the @kbd{Alt+LeftArrow} key are equivalents,
-as is turning the mouse wheel towards you.
-In addition, pressing the ??? key steps back one move, and releasing
-it steps forward again.
-
-In most modes, @samp{Backward} only lets you look back at old positions;
-it does not retract moves. This is the case if you are playing against
-a chess engine, playing or observing a game on an ICS, or loading a game.
-If you select @samp{Backward} in any of these situations, you will not
-be allowed to make a different move. Use @samp{Retract Move} or
-@samp{Edit Game} if you want to change past moves.
-
-If you are examining an ICS game, the behavior of @samp{Backward}
-depends on whether XBoard is in Pause mode. If Pause mode is
-off, @samp{Backward} issues the ICS backward command, which backs up
-everyone's view of the game and allows you to make a different
-move. If Pause mode is on, @samp{Backward} only backs up your local
-view.
-@item Forward
-@itemx >
-@cindex Forward, Menu Item
-@cindex >, Button
-Steps forward through a series of remembered moves (undoing the
-effect of @samp{Backward}) or forward through a game file. The
-@samp{[>]} button and the @kbd{Alt+RightArrow} key are equivalents,
-as is turning the mouse wheel away from you.
-
-If you are examining an ICS game, the behavior of Forward
-depends on whether XBoard is in Pause mode. If Pause mode is
-off, @samp{Forward} issues the ICS forward command, which moves
-everyone's view of the game forward along the current line. If
-Pause mode is on, @samp{Forward} only moves your local view forward,
-and it will not go past the position that the game was in when
-you paused.
-@item Back to Start
-@itemx <<
-@cindex Back to Start, Menu Item
-@cindex <<, Button
-Jumps backward to the first remembered position in the game.
-The @samp{[<<]} button and the @kbd{Alt+Home} key are equivalents.
-
-In most modes, Back to Start only lets you look back at old
-positions; it does not retract moves. This is the case if you
-are playing against a local chess engine, playing or observing a game on
-a chess server, or loading a game. If you select @samp{Back to Start} in any
-of these situations, you will not be allowed to make different
-moves. Use @samp{Retract Move} or @samp{Edit Game} if you want to change past
-moves; or use Reset to start a new game.
-
-If you are examining an ICS game, the behavior of @samp{Back to
-Start} depends on whether XBoard is in Pause mode. If Pause mode
-is off, @samp{Back to Start} issues the ICS @samp{backward 999999}
-command, which backs up everyone's view of the game to the start and
-allows you to make different moves. If Pause mode is on, @samp{Back
-to Start} only backs up your local view.
-@item Forward to End
-@itemx >>
-@cindex Forward to End, Menu Item
-@cindex >>, Button
-Jumps forward to the last remembered position in the game. The
-@samp{[>>]} button and the @kbd{Alt+End} key are equivalents.
-
-If you are examining an ICS game, the behavior of @samp{Forward to
-End} depends on whether XBoard is in Pause mode. If Pause mode
-is off, @samp{Forward to End} issues the ICS @samp{forward 999999}
-command, which moves everyone's view of the game forward to the end of
-the current line. If Pause mode is on, @samp{Forward to End} only moves
-your local view forward, and it will not go past the position
-that the game was in when you paused.
-@end table
-
-@node View Menu
-@section View Menu
-@cindex Menu, View
-@cindex View Menu
-@table @asis
-@item Flip View
-@cindex Flip View, Menu Item
-Inverts your view of the chess board for the duration of the
-current game. Starting a new game returns the board to normal.
-The @kbd{F2} key is a keyboard equivalent.
-@item Show Engine Output
-@cindex Show Engine Output, Menu Item
-Shows or hides a window in which the thinking output of any loaded engines
-is displayed. The shifted @kbd{Alt+O} key is a keyboard equivalent.
-XBoard will display lines of thinking output of the same depth ordered by score, 
-(highest score on top), rather than in the order the engine produced them. 
-Usually this amounts to the same, as a normal engine search will only find new PV 
-(and emit it as thinking output) 
-when it searches a move with a higher score than the previous variation. 
-But when the engine is in multi-variation mode this needs not always be true, 
-and it is more convenient for someone analyzing games to see the moves sorted by score. 
-The order in which the engine found them is only of interest to the engine author, 
-and can still be deduced from the time or node count printed with the line.
-Right-clicking a line in this window, and then moving the mouse vertically with the
-right button kept down, will make XBoard play through the PV listed there.
-The use of the board window as 'variation board' will normally end when
-you release the right button,
-or when the opponent plays a move.
-But beware: in Analysis mode, moves thus played out might be added to the game,
-depending on the setting of the option 'Play moves of clicked PV',
-when you initiate the click left of the PV in the score area.
-The Engine-Output pane for each engine will contain a header displaying the
-multi-PV status and a list of excluded moves in Analysis mode,
-which are also responsive to right-clicking:
-Clicking the words 'fewer' or 'more' will alter the number of variations
-shown at each depth, through the engine's MultiPV option,
-while clicking in between those and moving the mouse horizontally adjust
-the option 'Multi-PV Margin'. (In so far the engines support those.)
-@item Show Move History
-@cindex Show Move History, Menu Item
-Shows or hides a list of moves of the current game.
-The shifted @kbd{Alt+H} key is a keyboard equivalent.
-This list allows you to move the display to any earlier position in the game
-by clicking on the corresponding move.
-@item Show Evaluation Graph
-@cindex Show Evaluation Graph, Menu Item
-Shows or hides a window which displays a graph of how the engine score(s)
-evolved as a function of the move number. 
-The shifted @kbd{Alt+E} key is a keyboard equivalent.
-The title bar shows the score (and search depth at which it was obtained)
-of the currently displayed position numerically.
-Clicking on the graph will bring
-the corresponding position in the board display.
-A button 3 click will toggle the display mode between plain and differential
-(showing the difference in score between successive half moves).
-Using the mouse wheel over the window will change the scale of the
-low-score region (from -1 to +1).
-@item Show Game List
-@cindex Show Game List, Menu Item
-Shows or hides the list of games generated by the last @samp{Load Game}
-command. The shifted @kbd{Alt+G} key is a keyboard equivalent.
-The line describing each game is built from a selection of the PGN tags.
-Which tags contribute, and in what order, can be changed by the @samp{Game list tags}
-menu dialog, which can be popped up through the @samp{Tags} button below the Game List.
-Display can be restricted to a sub-set of the games meeting certain criteria.
-A text entry below the game list allows you to type a text that the game lines
-must contain in order to be displayed.
-Games can also be selected based on their Elo PGN tag,
-as set in the @samp{Load Game Options} dialog, which can be popped up through the
-@samp{Thresholds} button below the Game List.
-Finally they can be selected based on containing a position similar to the one
-currently displayed in the main window, by pressing the 'Position' button below
-the Game List, (which searches the entire list for the position), or the 'Narrow'
-button (which only searches the already-selected games).
-What counts as similar enough to be selected can also be set in the
-@samp{Load Game Options} dialog, and ranges from an exact match to just the
-same material.
-@item Tags
-@cindex Tags, Menu Item
-Pops up a window which shows the PGN (portable game notation)
-tags for the current game. 
-For now this is a duplicate of the @samp{Edit Tags} item in the @samp{Edit} menu.
-@item Comments
-@cindex Comments, Menu Item
-Pops up a window which shows any comments to or variations on the current move.
-For now this is a duplicate of the @samp{Edit Comment} item in the @samp{Edit} menu.
-@item ICS Input Box
-@cindex ICS Input Box, Menu Item
-If this option is set in ICS mode,
-XBoard
-creates an extra window that you can use for typing in ICS commands.
-The input box is especially useful if you want to type in something long or do
-some editing on your input, because output from ICS doesn't get mixed
-in with your typing as it would in the main terminal window.
-@item ICS/Chat Console
-@cindex ICS Chat/Console, Menu Item
-This menu item opens a window in which you can interact with the ICS,
-so you don't have to use the messy xterm from which you launched XBoard
-for that.
-The window has a text entry at the bottom where you can type your
-commands and messages unhindered by the stream of ICS output.
-The latter will be displayed in a large pane above the input field,
-the ICS Console.
-Up and down arrow keys can be used to recall previous input lines.
-Typing an <Esc> character in the input field transfers focus back
-to the board window (so you could operate the menus there
-through accelerator keys).
-Typing a printable character in the board window transfers focus
-back to the input field of the @samp{ICS Chat/Console} window.
-@item Chats
-@cindex Chats
-There is a row of buttons at the top of the @samp{ICS Chat/Console} dialog,
-which can be used to navigate between upto 5 'chats'
-with other ICS users (or channels).
-These will switch the window to 'chat mode',
-where the ICS output pane is vertically split to divert messages from
-a specific user or ICS channel to the lower half.
-Lines typed in the input field will then be interpreted as messages
-to be sent to that user or channel,
-(automatically prefixed with the apporpriate ICS command and user name)
-rather than as commands to the ICS.
-Chats will keep collecting ICS output intended for them even when not displayed,
-and their buttons will turn orange to alert the user there has been activity.
-Typing <Tab> in the input field will switch to another active chat,
-giving priority to those with content you have not seen yet.
-@item New Chat
-@cindex New Chat, Menu Item
-Buttons for chats currently not assigned to a user or channel
-will carry the text @samp{New Chat}, and pressing them will
-switch to chat mode, enabling you to enter the user name or channel number
-you want to use it for.
-Typing Ctrl-N in the input field is a keyboard equivalent.
-@item Chat partner
-@cindex Chat partner, Menu Item
-To (re-)assign a chat, write the name of your chat partner, the channel number,
-or the words 'shouts', 'whispers', 'cshouts' in the @samp{Chat partner} text entry
-(ending with <Enter>!).
-Typing Ctrl-O in the input field at the bottom of the window will
-open a chat with the person that last sent you a 'tell' that was printed
-in the ICS Console output pane.
-The @samp{ICS text menu} can contain a button @samp{Open Chat (name)}
-that can be used to open a chat with as partner the word/number you
-right-clicked in the output pane to pop up this menu. 
-@item End Chat
-@cindex End Chat, Menu Item
-This button, only visible when the chat pane is open,
-will clear the @samp{Chat partner} field, so that the chat can be
-assigned to a new user or channel.
-Typing Ctrl-E in the input field is a keyboard equivalent.
-@item Hide
-@cindex Hide, Menu Item
-This button, only visible when the chat pane is open,
-will close the latter, so you can use the input field
-to give commands to the ICS again.
-Typing Ctrl-H in the input field is a keyboard equivalent.
-@item ICS text menu
-@cindex ICS text menu, Menu Item
-Brings up a menu that is user-configurable through the @code{icsMenu} option.
-Buttons in this menu can sent pre-configured commands directly to the ICS,
-or can put partial commands in the input field of the @samp{ICS Chat/Console}
-window, so that you can complete those with some text of your own before
-sending them to the ICS by pressing Enter.
-This menu item can also be popped up by right-clicking in the text memos
-of the ICS Chat/Console window.
-In that case the word that was clicked can be incorporated in the message
-sent to the ICS. E.g. to challenge a player whose name you click for a game,
-or prepare for sending him a message through a 'tell' commands.
-@item Board
-@cindex Board, Menu Item
-Summons a dialog where you can customize the look of the chess board.
-@item White Piece Color
-@itemx Black Piece Color
-@itemx Light Square Color
-@itemx Dark Square Color
-@itemx Highlight Color
-@itemx Premove Highlight Color
-@cindex Piece Color, Menu Item
-@cindex Square Color, Menu Item
-@cindex Highlight Color, Menu Item
-These items set the color of pieces, board squares and move highlights
-(borders or arrow).
-Square colors are only used when the @samp{Use Board Textures} option is off,
-the piece colors only when @samp{Use piece bitmaps with their own colors} is off.
-You can type the color as hexadecimally encoded RGB value preceded by '#',
-or adjust it through the R, G, B and D buttons to make it redder, greener, bluer
-or darker.
-A sample of the adjusted color will be displayed behind its text description;
-pressing this colored button restores the default value for the color.
-@item Flip Pieces Shogi Style
-@cindex Flip Pieces Shogi Style, Menu Item
-With this option on XBoard will swap white and black pieces,
-when you flip the view of the board to make white play downward.
-This should be used with piece themes that do not distinguish sides by color,
-but by orientation.
-@item Mono Mode
-@cindex Mono Mode, Menu Item
-This option sets XBoard to pure black-and-white display
-(no grey scales, and thus no anti-aliasing).
-@item Logo Size
-@cindex Logo Size, Menu Item
-Specifies the width of the engine logos displayed next to the clocks, in pixels.
-Setting it to 0 suppresses the display of such logos.
-The height of the logo will be half its width.
-In the GTK build of XBoard any non-zero value is equivalent,
-and the logos are always sized to 1/4 of the board width.
-@item Line Gap
-@cindex Line Gap, Menu Item
-This option specifies the width of the grid lines that separate the squares,
-which change color on highlighting the move.
-Setting it to 0 suppresses these lines, which in general looks better,
-but hides the square-border highlights,
-so that you would have to rely on other forms of highlighting.
-Setting the value to -1 makes XBoard choose a width by itself,
-depending on the square size.
-@item Use Board Textures
-@itemx Light-Squares Texture File
-@itemx Dark-Squares Texture File
-@cindex Use Board Texture, Menu Item
-@cindex Texture Files, Menu Item
-When the option @samp{Use Board Textures} is set,
-the squares will not be drawn as evenly colored surfaces,
-but will be cut from a texture image, as specified by the
-@samp{Texture Files}.
-Separate images can be used for light and dark squares.
-XBoard will try to cut the squares out of the texture image
-with as little overlap as possible, so they all look different.
-The name of the texture file can contain a size hint,
-e.g. @code{xqboard-9x10.png}, alerting XBoard to the fact that
-it contains a whole-board image, out of which squares have to
-be cut in register with the nominal sub-division.
-@item Use external piece bitmaps with their own color
-@cindex Draw pieces with their own colors, Menu Item
-When this option is on XBoard will ignore the piece-color settings,
-and draw the piece images in their original colors.
-The piece-color settings would only work well for evenly colored
-pieces, such as the default theme.
-@item Directory with Pieces Images
-@cindex Piece-Image Directory, Menu Item
-When a directory is specified here, XBoard will first look for
-piece images (SVG or PNG files) in that directory,
-and fall back on the image from the default theme only for
-images it cannot find there.
-An image file called White/BlackTile in the directory will be prefered
-as fall-back for missing pieces over the default image, however.
-@item Selectable themes
-@itemx New name for current theme
-@cindex Board Themes, Menu Item
-@cindex Theme name, Menu Item
-When a theme name is specified while pressing 'OK',
-the combination of settings specified in the dialog
-will be stored in XBoard's list of themes,
-which will be saved with the other options in the settings file
-(as the @code{themeNames} option).
-This name will then appear in the selection listbox next time
-you open the dialog,
-so that you can recall the entire combination of settings
-by double-clicking it.
-
-
-Here you can specify the directory from which piece images should be taken,
-when you don't want to use the built-in piece images
-(see @code{pieceImageDirectory} option),
-external images to be used for the board squares
-(@code{liteBackTextureFile} and @code{darkBackTextureFile} options),
-and square and piece colors for the default pieces.
-The current combination of these settings can be assigned a 'theme' name
-by typing one in the text entry in the lower-left of the dialog,
-and closing the latter with OK.
-It will then appear in the themes listbox next time you open the dialog,
-where you can recall the complete settings combination with a double-click.
-@item Fonts
-@cindex Fonts, Menu Item
-Pops up a dialog where you can set the fonts used in the main elements of various windows.
-Pango font names can be typed for each window type,
-and behind each text entry there are buttons to adjust the point size,
-and toggle the 'bold' or 'italic' attributes of the font.
-@item Game List Tags
-@cindex Game List Tags, Menu Item
-a duplicate of the Game List dialog in the Options menu.
-@end table
-
-@node Mode Menu
-@section Mode Menu
-@cindex Menu, Mode
-@cindex Mode Menu
-@table @asis
-@item Machine White
-@cindex Machine White, Menu Item
-Tells the chess engine to play White. 
-The @kbd{Ctrl-W} key is a keyboard equivalent.
-@item Machine Black
-@cindex Machine Black, Menu Item
-Tells the chess engine to play Black.
-The @kbd{Ctrl-B} key is a keyboard equivalent.
-@item Two Machines
-@cindex Two Machines, Menu Item
-Plays a game between two chess engines.
-The @kbd{Ctrl-T} key is a keyboard equivalent.
-@item Analysis Mode
-@cindex Analysis Mode, Menu Item
-@cindex null move
-@cindex move exclusion
-XBoard tells the chess engine to start analyzing the current game/position
-and shows you the analysis as you move pieces around.
-The @kbd{Ctrl-A} key is a keyboard equivalent.
-Note: Some chess engines do not support Analysis mode.
-
-To set up a position to analyze, you do the following:
-
-1. Set up the position by any means. (E.g. using @samp{Edit Position}
-mode, pasing a FEN or loading a game and stepping to the position.)
-
-2. Select Analysis Mode from the Mode Menu to start the analysis.
-
-You can now play legal moves to create follow-up positions for the
-engine to analyze, while the moves will be remembered as a stored game,
-and then step backward through this game to take the moves back.
-Note that you can also click on the clocks to set the opposite
-side to move (adding a so-called @samp{null move} to the game).
-
-You can also tell the engine to exclude some moves from analysis.
-(Engines that do not support the exclude-moves feature will
-ignore this, however.)
-The general way to do this is to play the move you want to exclude
-starting with a double click on the piece.
-When you use drag-drop moving, the piece you grab with a double click
-will also remain on its square, to show you that you are not really
-making the move, but just forbid it from the current position.
-Playing a thus excluded move a second time will include it again.
-Excluded moves will be listed as text in a header line in the
-Engine Output window, and you can also re-include them by
-right-clicking them there.
-This header line will also contain the words 'best' and 'tail';
-right-clicking those will exclude the currently best move,
-or all moves not explicitly listed in the header line.
-Once you leave the current position all memory of excluded
-moves will be lost when you return there.
-
-
-Selecting this menu item while already in @samp{Analysis Mode} will
-toggle the participation of the second engine in the analysis.
-The output of this engine will then be shown in the lower pane
-of the Engine Output window.
-The analysis function can also be used when observing games on an ICS
-with an engine loaded (zippy mode); the engine then will analyze
-the positions as they occur in the observed game.
-
-@item Analyze Game
-@cindex Analyze Game, Menu Item
-This option subjects the currently loaded game to automatic
-analysis by the loaded engine.
-The @kbd{Ctrl-G} key is a keyboard equivalent.
-XBoard will start auto-playing the game from the currently displayed position,
-while the engine is analyzing the current position.
-The game will be annotated with the results of these analyses.
-In particlar, the score and depth will be added as a comment,
-and the PV will be added as a variation.
-
-Normally the analysis would stop after reaching the end of the game.
-But when a game is loaded from a multi-game file
-while @samp{Analyze Game} was already switched on,
-the analysis will continue with the next game in the file
-until the end of the file is reached (or you switch to another mode).
-
-The time the engine spends on analyzing each move can be controlled
-through the command-line option @samp{-timeDelay},
-which can also be set from the @samp{Load Game Options} menu dialog.
-Note: Some chess engines do not support Analysis mode.
-@item Edit Game
-Duplicate of the item in the Edit menu.
-Note that @samp{Edit Game} is the idle mode of XBoard, and can be used
-to get you out of other modes. E.g. to stop analyzing, stop a game
-between two engines or stop editing a position.
-@item Edit Position
-Duplicate of the item in the Edit menu.
-@item Training
-@cindex Training, Menu Item
-Training mode lets you interactively guess the moves of a game for one
-of the players. You guess the next move of the game by playing the
-move on the board. If the move played matches the next move of the
-game, the move is accepted and the opponent's response is auto-played.
-If the move played is incorrect, an error message is displayed.  You
-can select this mode only while loading a game (that is, after
-selecting @samp{Load Game} from the File menu).  While XBoard is in 
-@samp{Training} mode, the navigation buttons are disabled.
-@item ICS Client
-@cindex ICS Client, Menu Item
-This is the normal mode when XBoard
-is connected to a chess server.  If you have moved into
-Edit Game or Edit Position mode, you can select this option to get out.
-
-To use xboard in ICS mode, run it in the foreground with the -ics
-option, and use the terminal you started it from to type commands and
-receive text responses from the chess server.  See
-@ref{Chess Servers} below for more information.
-
-XBoard activates some special position/game editing features when you
-use the @kbd{examine} or @kbd{bsetup} commands on ICS and you have
-@samp{ICS Client} selected on the Mode menu.  First, you can issue the
-ICS position-editing commands with the mouse.  Move pieces by dragging
-with mouse button 1.  To drop a new piece on a square, press mouse
-button 2 or 3 over the square.  This brings up a menu of white pieces
-(button 2) or black pieces (button 3).  Additional menu choices let
-you empty the square or clear the board.  Click on the White or Black
-clock to set the side to play.  You cannot set the side to play or
-drag pieces to arbitrary squares while examining on ICC, but you can
-do so in @kbd{bsetup} mode on FICS.  In addition, the menu commands
-@samp{Forward}, @samp{Backward}, @samp{Pause}, and @samp{Stop Examining}
-have special functions in this mode; see below.
-@item Machine Match
-@cindex Machine match, Menu Item
-Starts a match between two chess programs,
-with a number of games and other parameters set through
-the @samp{Tournament Options} menu dialog.
-When a match is already running, selecting this item will make
-XBoard drop out of match mode after the current game finishes.
-@item Pause
-@cindex Pause, Menu Item
-Pauses updates to the board, and if you are playing against a chess engine,
-also pauses your clock. To continue, select @samp{Pause} again, and the
-display will automatically update to the latest position.
-The @samp{P} button and keyboard @kbd{Pause} key are equivalents.
-
-If you select Pause when you are playing against a chess engine and
-it is not your move, the chess engine's clock
-will continue to run and it will eventually make a move, at which point
-both clocks will stop. Since board updates are paused, however,
-you will not see the move until you exit from Pause mode (or select Forward).
-This behavior is meant to simulate adjournment with a sealed move.
-
-If you select Pause while you are observing or examining a game on a
-chess server, you can step backward and forward in the current history
-of the examined game without affecting the other observers and
-examiners, and without having your display jump forward to the latest
-position each time a move is made. Select Pause again to reconnect
-yourself to the current state of the game on ICS.
-
-If you select @samp{Pause} while you are loading a game, the game stops
-loading. You can load more moves manually by selecting @samp{Forward}, or
-resume automatic loading by selecting @samp{Pause} again.
-@end table
-
-@node Action Menu
-@section Action Menu
-@cindex Menu, Action
-@cindex Action, Menu
-@table @asis
-@item Accept
-@cindex Accept, Menu Item
-Accepts a pending match offer. 
-The @kbd{F3} key is a keyboard equivalent.
-If there is more than one offer
-pending, you will have to type in a more specific command
-instead of using this menu choice.
-@item Decline
-@cindex Decline, Menu Item
-Declines a pending offer (match, draw, adjourn, etc.).
-The @kbd{F4} key is a keyboard equivalent. If there
-is more than one offer pending, you will have to type in a more
-specific command instead of using this menu choice.
-@item Call Flag
-@cindex Call Flag, Menu Item
-Calls your opponent's flag, claiming a win on time, or claiming
-a draw if you are both out of time. 
-The @kbd{F5} key is a keyboard equivalent.
-You can also call your
-opponent's flag by clicking on his clock.
-@item Draw
-@cindex Draw, Menu Item
-Offers a draw to your opponent, accepts a pending draw offer
-from your opponent, or claims a draw by repetition or the 50-move
-rule, as appropriate. The @kbd{F6} key is a keyboard equivalent.
-@item Adjourn
-@cindex Adjourn, Menu Item
-Asks your opponent to agree to adjourning the current game, or
-agrees to a pending adjournment offer from your opponent.
-The @kbd{F7} key is a keyboard equivalent.
-@item Abort
-@cindex Abort, Menu Item
-Asks your opponent to agree to aborting the current game, or
-agrees to a pending abort offer from your opponent.
-The @kbd{F8} key is a keyboard equivalent. An aborted
-game ends immediately without affecting either player's rating.
-@item Resign
-@cindex Resign, Menu Item
-Resigns the game to your opponent. The @kbd{F9} key is a
-keyboard equivalent.
-@item Stop Observing
-@cindex Stop Observing, Menu Item
-Ends your participation in observing a game, by issuing the ICS
-observe command with no arguments. ICS mode only.
-The @kbd{F10} key is a keyboard equivalent.
-@item Stop Examining
-@cindex Stop Examining, Menu Item
-Ends your participation in examining a game, by issuing the ICS
-unexamine command. ICS mode only.
-The @kbd{F11} key is a keyboard equivalent.
-@item Upload to Examine
-@cindex Upload to Examine, Menu Item
-Create an examined game of the proper variant on the ICS,
-and send the game there that is currenty loaded in XBoard
-(e.g. through pasting or loading from file).
-You must be connected to an ICS for this to work.
-@item Adjudicate to White
-@itemx Adjudicate to Black
-@itemx Adjudicate Draw
-@cindex Adjudicate to White, Menu Item
-@cindex Adjudicate to Black, Menu Item
-@cindex Adjudicate Draw, Menu Item
-Terminate an ongoing game in Two-Machines mode (including match mode),
-with as result a win for white, for black, or a draw, respectively.
-The PGN file of the game will accompany the result string
-by the comment "user adjudication".
-@end table
-
-@node Engine Menu
-@section Engine Menu
-@cindex Engine Menu
-@cindex Menu, Engine
-@table @asis
-@item Edit Engine List
-@cindex Edit Engine List, Menu Item
-Opens a window that shows the list of engines registered for use
-by XBoard, together with the options that would be used with them
-when you would select them from the @samp{Load Engine} dialogs.
-You can then edit this list, e.g. for re-ordering the engines,
-or adding uncommon options needed by this engine
-(e.g. to cure non-compliant behavior).
-
-By editing you can also organize the engines into collapsible groups.
-By sandwiching a number of engine lines between lines "# NAME" and "# end",
-the thus enclosed engines will not initially appear in engine listboxes
-of other dialogs, but only the single line "# NAME"
-(where NAME can be an arbitrary text) will appear in their place.
-Selecting that line will then show the enclosed engines in the listbox,
-which recursively can contain other groups.
-The line with the group name will still present as a header,
-and selecting that line will collapse the group again,
-and makes the listbox go back to displaying the surrounding group.
-@item Load New 1st Engine
-@itemx Load New 2nd Engine
-@cindex Load New Engine, Menu Item
-Pops up a dialog where you can select or specify an engine to be loaded.
-You can even replace engines during a game, without disturbing that game.
-(Beware that after loading an engine, XBoard will always be in Edit Game mode, 
-so you will have to tell the new engine what to do before it does anything!)
-@table @asis
-@item Select engine from list
-@cindex Select engine, Menu Item
-The listbox shows the engines registered for use with XBoard before.
-(This means XBoard has information on the engine type, whether it plays book etc.
-in the engine list stored in its settings file.)
-Double-clicking an engine here will load it and close the dialog.
-The list can also contain groups, indicated by a starting '#' sign.
-Double-clicking such a group will 'open' it,
-and show the group contents in the listbox instead of the total list,
-with the group name as header.
-Double-clicking the header will 'close' the group again.
-@item Nickname
-@itemx Use nickname in PGN player tags of engine-engine games
-@cindex Nickname, Menu Item
-When a @samp{Nickname} is specified, the engine will appear under this name
-in the @samp{Select Engine} listbox.
-Otherwise the name there will be a tidied version of the engine command.
-The user can specify if the nickname is also to be used in PGN tags;
-normally the name engines report theselves would be used there.
-@item Engine Command
-@cindex Engine Command, Menu Item
-The command needed to start the engine from the command line.
-For compliantly installed engine this is usually just a single word,
-the name of the engine package (e.g. 'crafty' or 'stockfish').
-Some engines need additional parameters on the command line.
-For engines that are not in a place where the system would expect them
-a full pathname can be specified, and usually the browse button
-for this oprion is the easiest way to obtain that.
-@item Engine Directory
-@cindex Engine Directory, Menu Item
-Compliant engines could run from any directory,
-and by default this option is proposed as '.', the current directory.
-If a (path)name is specified here, XBoard will start the engine
-in that directory.
-If you make the field empty, it will try to derive the directory
-from the engine command (if that was a path name).
-@item UCI
-@cindex UCI, Menu Item
-When the @samp{UCI} checkbox is ticked XBoard will assume
-the engine is of UCI type, and will invoke the corresponding adapter
-(as specified in the @code{adapterCommand} option stored in its
-settings file)to use it.
-By default this adapter is Polyglot,
-which must be installed from a separate package!
-@item USI/UCCI
-@cindex USI/UCCI, Menu Item
-Ticking this checkbox informs XBoard that the engine is of USI or UCCI type
-(as Shogi or Xiangqi engines often are).
-This makes XBoard invoke an adapter to run the engines,
-as specified by the @code{uxiAdapter} option stored in its settings file.
-The UCI2WB program is an adapter that can handle both these engine types,
-as well as UCI.
-@item WB protocol v1
-@cindex WB protocol v1, Menu Item
-Ticking this checkbox informs XBoard the engine is using an old version (1)
-of the communication protocol, so that it won't respond to a request
-to interrogate its properties.
-XBoard then won't even try that, saving you a wait of several seconds
-each time the engine is started.
-Do not use this on state-of-the-art engines,
-as it would prevent XBoard from interrogating its capabilities,
-so that many of its features might not work!
-@item Must not use GUI book
-@cindex Use GUI book, Menu Item
-By default XBoard assumes engines are responsible for their own opening book,
-but unticking this option makes XBoard consult its own book
-(as per @samp{Opening-Book Filename}) on behalf of the engine.
-@item Add this engine to the list
-@cindex Add engine, Menu Item
-By default XBoard would add the engine you specified,
-with all the given options to its list of registered engines
-(kept in its settings file), when you press 'OK'.
-Next time you could then simply select it from the listbox,
-or use the command "xboard -fe NICKNAME" to start XBoard with the
-engine and accompanying options.
-New engines are always added at the end of the existing list,
-or, when you have opened a group in the @samp{Select Engine} listbox,
-at the end of that group.
-But can be re-ordered later with the aid
-of the @samp{Edit Engine List} menu item.
-When you untick this checkbox before pressing 'OK'
-the engine will be loaded, but will not be added to the engine list.
-@item Force current variant with this engine
-@cindex Force variant with engine, Menu Item
-Ticking this option will make XBoard automatically start the engine
-in the current variant, even when XBoard was set for a different
-variant when you loaded the engine.
-Useful when the engine plays multiple variants,
-and you specifically want to play one different from its primary one.
-@end table
-
-@item Engine #1 Settings
-@itemx Engine #2 Settings
-@cindex Engine #N Settings, Menu Item
-Pop up a menu dialog to alter the settings specific to the applicable engine.
-For each parameter the engine allows to be set,
-a control element will appear in this dialog that can be used to alter the value.
-Depending on the type of parameter (text string, number, multiple choice,
-on/off switch, instantaneous signal) the appropriate control will appear,
-with a description next to it.
-XBoard has no idea what these values mean; it just passes them on to the engine.
-How this dialog looks is completely determined by the engine,
-and XBoard just passes it on to the user.
-Many engines do not have any parameters that can be set by the user,
-and in that case the dialog will be empty (except for the OK and cancel buttons).
-UCI engines usually have many parameters. (But these are only visible with
-a sufficiently modern version of the Polyglot adapter needed to run UCI engines,
-e.g. Polyglot 2.0.1.) For native XBoard engines this is less common.
-
-@item Common Settings
-@cindex Common Settings, Menu Item
-Pops up a menu dialog where you can set some engine parameters common to most engines,
-such as hash-table size, tablebase cache size, maximum number of processors
-that SMP engines can use.
-The shifted @kbd{Alt+U} key is a keyboard equivalent.
-Older XBoard/WinBoard engines might not respond to these settings,
-but UCI engines always should.
-@item Maximum Number of CPUs per Engine
-@cindex Max. Number of CPUs, Menu Item
-Specifies the number of search threads any engine can maximally use.
-Do not set it to a number larger than the number of cores your computer has.
-(Or half of it when you want two engines to run simultaneously,
-as in a Two-Machines game with @samp{Ponder Next Move} on.)
-@item Polyglot Directory
-@item Hash-Table Size
-@cindex Hash-Table Size
-Specifies the maximum amount of memory (RAM) each engine is allowed to use
-for storing info on positions it already searched,
-so it would not have to search them again.
-Do not set it so that it is more than half
-(or if you use two engines, more than a quarter)
-of the memory your computer has,
-or it would slow the engines down by an extreme amount.
-@item EGTB Path
-@cindex EGTB Path, Menu Item
-Sets the value of the @code{egtFormats} option, which specifies
-where on your computer the files for End-Game Tables are stored.
-It must be a comma-separated list of path names,
-the path for each EGT flavor prefixed with the name of the latter
-and a colon. E.g. "nalimov:/home/egt/dtm,syzygy:/home/egt/dtz50".
-The path names after the colon will be sent to the engines
-that say they can use the corresponding EGT flavor.
-@item EGTB Cache Size
-@cindex EGTB Cache Size, Menu Item
-Specifies the amount of memory the engine should use to
-buffer end-game information.
-Together with the @samp{Hash-Table Size} this determines how
-much memory the engine is allowed to use in total.
-@item Use GUI Book
-@itemx Opening-Book Filename
-@cindex Use GUI Book, Menu Item
-@cindex Opening-Book Filename, Menu Item
-The @samp{Opening-Book Filename} specifies an opening book
-in Polyglot format (usually a .bin file),
-from which XBoard can play moves on behalf of the engine.
-This is also the book file on which the @samp{Edit Book}
-and @samp{Save Games as Book} menu items operate.
-A checkbox @samp{Use GUI Book} can be used to temporarily
-disable the book without losing the setting.
-(This does not prevent editing or saving games on it!)
-@item Book Depth
-@itemx Book Variety
-@cindex Book Depth, Menu Item
-@cindex Book Variety, Menu Item
-The way moves are selected from the book can be controlled by two options.
-@samp{Book Depth} controls for how deep into the game the book
-will be consulted (measured in full moves).
-@samp{Book Variety} controls the likelihood of playing weaker moves.
-When the variety is set to 50, moves will be played with the probability
-specified in the book.
-When set to 0, only the move(s) with the highest probability will be played.
-When set to 100, all listed moves will be played with equal pobability.
-Other settings interpolate between that.
-@item Engine #1 Has Own Book
-@itemx Engine #2 Has Own Book
-@cindex Engine Has Own Book
-These checkboxes control on a per-engine basis
-whether XBoard will consult the opening book for them.
-If ticked, XBoard will never play moves from its GUI book,
-giving the engine the opportunity to use its own.
-These options are automatically set whenever you load an engine,
-based on the setting of @samp{Must not use GUI book}
-when you installed that through the @samp{Load Engine} menu dialog.
-@item Hint
-@cindex Hint, Menu Item
-Displays a move hint from the chess engine.
-@item Book
-@cindex Book, Menu Item
-Displays a list of possible moves from the chess engine's opening
-book.  The exact format depends on what chess engine you are using.
-With GNU Chess 4, the first column gives moves, the second column
-gives one possible response for each move, and the third column shows
-the number of lines in the book that include the move from the first
-column. If you select this option and nothing happens, the chess
-engine is out of its book or does not support this feature.
-@item Move Now
-@cindex Move Now, Menu Item
-Forces the chess engine to move immediately. Chess engine mode only.
-The @kbd{Ctrl-M} key is a keyboard equivalent.
-Many engines won't respond to this.
-@item Retract Move
-@cindex Retract Move, Menu Item
-Retracts your last move. In chess engine mode, you can do this only
-after the chess engine has replied to your move; if the chess engine is still
-thinking, use @samp{Move Now} first. In ICS mode, @samp{Retract Move}
-issues the command @samp{takeback 1} or @samp{takeback 2}
-depending on whether it is your opponent's move or yours.
-The @kbd{Ctrl-X} key is a keyboard equivalent.
-@item Recently Used Engines
-@cindex Recently Used Engines, In Menu
-At the bottom of the engine menu there can be a list of names
-of engines that you recently loaded through the Load Engine menu dialog
-in previous sessions.
-Clicking on such a name will load that engine as first engine,
-so you won't have to search for it in your list of installed engines,
-if that is very long.
-The maximum number of displayed engine names is set by the
-@code{recentEngines} command-line option.
-@end table
-
-@node Options Menu
-@section Options Menu
-@cindex Menu, Options
-@cindex Options Menu
-@section General Options
-@cindex General Options, Menu Item
-The following items to set option values appear in the dialog
-summoned by the general Options menu item.
-@table @asis
-@item Absolute Analysis Scores
-@cindex Absolute Analysis Scores, Menu Item
-Controls if scores on the Engine Output window during analysis
-will be printed from the white or the side-to-move point-of-view.
-@item Almost Always Queen
-@cindex Almost Always Queen, Menu Item
-If this option is on, 7th-rank pawns automatically change into
-Queens when you pick them up,
-and when you drag them to the promotion square and release them there,
-they will promote to that.
-But when you drag such a pawn backwards first,
-its identity will start to cycle through the other available pieces.
-This will continue until you start to move it forward;
-at which point the identity of the piece will be fixed,
-so that you can safely put it down on the promotion square.
-If this option is off, what happens depends on the
-option @code{alwaysPromoteToQueen},
-which would force promotion to Queen when true.
-Otherwise XBoard would bring up a dialog
-box whenever you move a pawn to the last rank, asking what piece
-you want to promote to.
-@item Animate Dragging
-@cindex Animate Dragging, Menu Item
-If Animate Dragging is on, while you are dragging a piece with the
-mouse, an image of the piece follows the mouse cursor.
-If Animate Dragging is off, there is no visual feedback while you are
-dragging a piece, but if Animate Moving is on, the move will be
-animated when it is complete. 
-@item Animate Moving
-@cindex Animate Moving, Menu Item
-If Animate Moving is on, all piece moves are animated.  An image of the
-piece is shown moving from the old square to the new square when the
-move is completed (unless the move was already animated by Animate Dragging).
-If Animate Moving is off, a moved piece instantly disappears from its
-old square and reappears on its new square when the move is complete.
-The shifted @kbd{Ctrl-A} key is a keyboard equivalent.
-@item Auto Flag
-@cindex Auto Flag, Menu Item
-If this option is on and one player runs out of time
-before the other,
-XBoard
-will automatically call his flag, claiming a win on time.
-The shifted @kbd{Ctrl-F} key is a keyboard equivalent.
-In ICS mode, Auto Flag will only call your opponent's flag, not yours,
-and the ICS may award you a draw instead of a win if you have
-insufficient mating material.  In local chess engine mode,
-XBoard
-may call either player's flag.
-@item Auto Flip View
-@cindex Auto Flip View, Menu Item
-If the Auto Flip View option is on when you start a game, the board
-will be automatically oriented so that your pawns move from the bottom
-of the window towards the top.
-
-If you are playing a game on an ICS, the board is always
-oriented at the start of the game so that your pawns move from
-the bottom of the window towards the top. Otherwise, the starting
-orientation is determined by the @code{flipView} command line option;
-if it is false (the default), White's pawns move from bottom to top
-at the start of each game; if it is true, Black's pawns move from
-bottom to top. @xref{User interface options}.
-@item Blindfold
-@cindex Blindfold, Menu Item
-If this option is on, XBoard displays the board as usual but does
-not display pieces or move highlights.  You can still move in the
-usual way (with the mouse or by typing moves in ICS mode), even though
-the pieces are invisible.
-@item Drop Menu
-@cindex Drop Menu, Menu Item
-Controls if right-clicking the board in crazyhouse / bughouse
-will pop up a menu to drop a piece on the clicked square
-(old, deprecated behavior)
-or allow you to step through an engine PV
-(new, recommended behavior).
-@item Enable Variation Trees
-@cindex Enable Variation Trees, Menu Item
-If this option is on, playing a move in Edit Game or Analyze mode
-while keeping the Shift key pressed will start a new variation.
-You can then recall the previous line through the @samp{Revert} menu item.
-When off, playing a move will truncate the game and append the move
-irreversibly.
-@item Headers in Engine Output Window
-@cindex Headers in Engine Output Window, Menu Item
-Controls the presence of column headers above the variations and
-associated information printed by the engine, on which you can issue
-button 3 clicks to open or close the columns.
-Available columns are search depth, score, node count, time used,
-tablebase hits, search speed and selective search depth.
-@item Hide Thinking
-@cindex Hide Thinking, Menu Item
-If this option is off, the chess engine's notion of the score and best
-line of play from the current position is displayed as it is
-thinking. The score indicates how many pawns ahead (or if negative,
-behind) the chess engine thinks it is. In matches between two
-machines, the score is prefixed by @samp{W} or @samp{B} to indicate
-whether it is showing White's thinking or Black's, and only the thinking
-of the engine that is on move is shown.
-The shifted @kbd{Ctrl-H} key is a keyboard equivalent.
-@item Highlight Last Move
-@cindex Highlight Last Move, Menu Item
-If Highlight Last Move is on, after a move is made, the starting and
-ending squares remain highlighted. In addition, after you use Backward
-or Back to Start, the starting and ending squares of the last move to
-be unmade are highlighted.
-@item Highlight with Arrow
-@cindex Highlight with Arrow, Menu Item
-Causes the highlighting described in Highlight Last Move to be done
-by drawing an arrow between the highlighted squares,
-so that it is visible even when the width of the grid lines is set to zero.
-@item One-Click Moving
-@cindex One-Click Moving, Menu Item
-If this option is on, XBoard does not wait for you to click both the
-from- and the to-square, or drag the piece, but performs a move as soon
-as it is uniqely specified.
-This applies to clicking an own piece that only has a single legal move,
-clicking an empty square or opponent piece where only one of your pieces
-can move (or capture) to.
-Furthermore, a double-click on a piece that can only make a single capture
-will cause that capture to be made.
-Promoting a Pawn by clicking its to-square will suppress the promotion
-popup or other methods for selecting an under-promotion, 
-and make it promote to Queen.
-@item Periodic Updates
-@cindex Periodic Updates, Menu Item
-If this option is off (or if
-you are using a chess engine that does not support periodic updates),
-the analysis window
-will only be updated when the analysis changes. If this option is
-on, the Analysis Window will be updated every two seconds.
-@item Play Move(s) of Clicked PV
-@cindex Play Move(s) of Clicked PV, Menu Item
-If this option is on, right-clicking on the first move of a PV
-or on the data fields left of it in the Engine Output window
-during Analyze mode will cause the first move of that PV to be played.
-You could also play more than one (or no) PV move by moving the mouse
-to engage in the PV walk such a right-click will start,
-to seek out another position along the PV where you want to continue
-the analysis, before releasing the mouse button.
-Clicking on later moves of the PV only temporarily show the moves
-for as long you keep the mouse button down,
-without adding them to the game.
-@item Ponder Next Move
-@cindex Ponder Next Move, Menu Item
-If this option is off, the chess engine will think only when it is on
-move.  If the option is on, the engine will also think while waiting
-for you to make your move.
-The shifted @kbd{Ctrl-P} key is a keyboard equivalent.
-@item Popup Exit Message
-@cindex Popup Exit Message, Menu Item
-If this option is on, when XBoard wants to display a message just
-before exiting, it brings up a modal dialog box and waits for you to
-click OK before exiting.  If the option is off, XBoard prints the
-message to standard error (the terminal) and exits immediately.
-@item Popup Move Errors
-@cindex Popup Move Errors, Menu Item
-If this option is off, when you make an error in moving (such as
-attempting an illegal move or moving the wrong color piece), the
-error message is displayed in the message area.  If the option is
-on, move errors are displayed in small pop-up windows like other errors.
-You can dismiss an error pop-up either by clicking its OK button or by
-clicking anywhere on the board, including down-clicking to start a move.
-@item Scores in Move List
-@cindex Scores in Move List, Menu Item
-If this option is on, XBoard will display the depth and score
-of engine moves in the Move List, in the format of a PGN comment.
-@item Show Coords
-@cindex Show Coords, Menu Item
-If this option is on, XBoard displays algebraic coordinates
-along the board's left and bottom edges.
-@item Show Target Squares
-@cindex Show Target Squares, Menu Item
-If this option is on, all squares a piece that is 'picked up' with the mouse
-can legally move to are highighted with a fat colored dot in
-yellow (non-captures) or red (captures).
-Special moves might have other colors
-(e.g. magenta for promotion, cyan for a partial move).
-Legality testing must be on for XBoard to know how the piece moves,
-but with legality testing off some engines would offer this information.
-@item Sticky Windows
-@cindex Sticky Windows, Menu Item
-Controls whether the auxiliary windows such as Engine Output, Move History
-and Evaluation Graph should keep touching XBoard's main window when
-you move the latter.
-@item Test Legality
-@cindex Test Legality, Menu Item
-If this option is on, XBoard tests whether the moves you try to make
-with the mouse are legal and refuses to let you make an illegal move.
-The shifted @kbd{Ctrl-L} key is a keyboard equivalent.
-Moves loaded from a file with @samp{Load Game} are also checked.  If
-the option is off, all moves are accepted, but if a local chess engine
-or the ICS is active, they will still reject illegal moves.  Turning
-off this option is useful if you are playing a chess variant with
-rules that XBoard does not understand.  (Bughouse, suicide, and wild
-variants where the king may castle after starting on the d file are
-generally supported with Test Legality on.)
-@item Top-Level Dialogs
-@cindex Top-Level Dialogs, Menu Item
-Controls whether the auxiliary windows will appear as icons in the
-task bar and independently controllable, or whether they open and
-minimize all together with the main window.
-@item Flash Moves
-@itemx Flash Rate
-@cindex Flash Moves, Menu Item
-@cindex Flash Rate, Menu Item
-If this option is non-zero, whenever a move is completed, 
-the moved piece flashes the specified number of times.
-The flash-rate setting determines how rapidly this flashing occurs.
-@item Animation Speed
-@cindex Animation Speed, Menu Item
-Determines the duration (in msec) of an animation step,
-when @samp{Animate Moving} is swiched on.
-@item Zoom factor in Evaluation Graph
-@cindex Zoom factor in Evaluation Graph, Menu Item
-Sets the value of the @code{evalZoom} option,
-indicating the factor by which the score interval (-1,1) should be
-blown up on the vertical axis of the Evaluation Graph.
-@end table
-@section Time Control
-@cindex Time Control, Menu Item
-Pops up a sub-menu where you can set the time-control parameters interactively.
-The shifted @kbd{Alt+T} key is a keyboard equivalent.
-@table @asis
-@item classical
-@cindex classical, Menu Item
-Selects classical TC,
-where the game is devided into sessions of a certain number of moves,
-and after each session the start time is again added to the clocks.
-@item incremental
-@cindex incremental, Menu Item
-Selects a TC mode where the game will start with a base time on the clocks,
-and after every move an 'increment' will be added to it.
-@item fixed max
-@cindex fixed max, Menu Item
-Selects a TC mode where you have to make each move within a given time,
-and any left-over time is not carried over to the next move.
-@item Divide entered times by 60
-@cindex Divide entered times by 60, Menu Item
-To allow entering of sub-minute initial time or sub-second increment,
-you can tick this checkbox.
-The initial time can then be entered in seconds,
-and the increment in units of 1/60 second.
-@item Moves per session
-@cindex Moves per session, Menu Item
-Sets the duration of a session for classical time control.
-@item Initial time
-@cindex Initial time, Menu Item
-Time initially on the clock in classical or incremental time controls.
-In classical time controls this time will also be added to the clock
-at the start of ach new session.
-@item Increment or max
-@cindex Increment or max, Menu Item
-Time to be added to the clock after every move in incremental TC mode.
-Fore 'fixed maximum' TC mode, the clock will be set to this time
-before every move, irrespective of how much was left on that clock.
-@item Time-Odds factors
-@cindex Time-Odds factors, Menu Item
-When these options are set to 1 the clocks of the players will be set
-according to the other specified TC parameters.
-Players can be given unequal times by specifying a time-odds factor
-for one of them (or a different factor for both of them).
-Any time received by that player will then be divided by that factor.
-@end table
-
-@section Adjudications
-@cindex Adjudications, Menu Item
-Pops up a sub-menu where you can enable or disable various adjudications
-that XBoard can perform in engine-engine games.
-The shifted @kbd{Alt+J} key is a keyboard equivalent.
-@table @asis
-@item Detect all Mates
-@cindex Detect all Mates, Menu Item
-When this option is set
-XBoard will terminate the game on checkmate or stalemate,
-even if the engines would not do so.
-Only works when @samp{Test Legality} is on.
-@item Verify Engine Result Claims
-@cindex Verify Engine Result Claims, Menu Item
-When this option is set
-XBoard will verify engine result claims,
-(forfeiting engines that make false claims),
-rather than naively beleiving the engine.
-Only works when @samp{Test Legality} is on.
-@item Draw if Insufficient Mating Material
-@cindex Draw if Insufficient Mating Material, Menu Item
-When this option is set
-XBoard will terminate games with a draw result
-when so little material is left
-that checkmate is not longer possible.
-In normal Chess this applies to KK, KNK, KBK
-and some positions with multiple Bishops all on the same
-square shade.
-Only works when @samp{Test Legality} is on.
-@item Adjudicate Trivial Draws
-@cindex Adjudicate Trivial Draws, Menu Item
-When this option is set
-XBoard will terminate games with a draw result
-in positions that could only be won against an idiot.
-In normal Chess this applies to KNNK, KRKR, KBKN, KNKN,
-and KBKB with Bishops on different square shades.
-KQKQ will also be adjudicated a draw (possibly unjustly so).
-Only works when @samp{Test Legality} is on.
-@item N-Move Rule
-@cindex N-Move Rule, Menu Item
-When this option is set to a value differnt from zero
-XBoard will terminate games with a draw result
-after the specified number of reversible moves
-(i.e. without captures or pawn pushes) is made.
-@item N-fold Repeats
-@cindex N-fold Repeats, Menu Item
-When this option is set to a value larger than 1,
-XBoard will terminate games with a draw result when
-the same position has occurred the specified number of times.
-@item Draw after N Moves Total
-@cindex Draw after N Moves Total, Menu Item
-When this option is set to a value different from zero,
-XBoard will terminate games with a draw result
-after that many moves have been played.
-Useful in automated engine-engine matches,
-to prevent one game between stubborn engines will soak up
-all your computer time.
-@item Win / Loss Threshold
-@cindex Win / Loss Threshold, Menu Item
-When this option is set to a value different from zero,
-XBoard will terminate games as a win when both engines
-agree the score is above the specified value
-(interpreted as centi-Pawn)
-for three successive moves.
-@item Negate Score of Engine #1
-@itemx Negate Score of Engine #2
-@cindex Negate Score of Engine, Menu Item
-These options should be used with engines
-that report scores from the white point of view,
-rather than the side-to-move POV as XBoard would otherwise
-assume when adjudicating games based on the engine score.
-When the engine is installed with the extra option
-@code{firstScoreIsAbs} true in the engine list
-the option would be automatically set when the engine is
-loaded throuhgh the Engine menu,
-or with the @code{fe} or @code{se} command-line option.
-@end table
-
-@section ICS Options
-@cindex ICS Options, Menu Item
-Pops up a menu dialog where options can be set that affect
-playing against an Internet Chess Server.
-@table @asis
-@item Auto-Kibitz
-@cindex Auto-Kibitz, Menu Item
-Setting this option when playing with or aginst a chess program on an ICS
-will cause the last line of thinking output of the engine before its move
-to be sent to the ICS in a kibitz command.
-In addition, any kibitz message received through the ICS from
-an opponent chess program will be diverted to the engine-output window,
-(and suppressed in the console),
-where you can play through its PV by right-clicking it.
-@item Auto-Comment
-@cindex Auto-Comment, Menu Item
-If this option is on, any remarks made on ICS while you are observing or
-playing a game are recorded as a comment on the current move.  This includes
-remarks made with the ICS commands @kbd{say}, @kbd{tell}, @kbd{whisper},
-and @kbd{kibitz}.
-Limitation: remarks that you type yourself are not recognized;
-XBoard scans only the output from ICS, not the input you type to it.
-@item Auto-Observe
-@cindex Auto-Observe, Menu Item
-If this option is on and you add a player to your @code{gnotify}
-list on ICS, XBoard will automatically observe all of that
-player's games, unless you are doing something else (such as
-observing or playing a game of your own) when one starts.
-The games are displayed 
-from the point of view of the player on your gnotify list; that is, his
-pawns move from the bottom of the window towards the top.
-Exceptions:  If both players in a game are on your gnotify list, if
-your ICS 
-@code{highlight}
-variable is set to 0, or if the ICS you are using does not 
-properly support observing from Black's point of view,
-you will see the game from White's point of view.
-@item Auto-Raise Board
-@cindex Auto Raise Board, Menu Item
-If this option is on, whenever a new game begins, the chessboard window
-is deiconized (if necessary) and raised to the top of the stack of windows.
-@item Auto Save
-@cindex Auto Save, Menu Item
-If this option is true, at the end of every game XBoard prompts
-you for a file name and appends a record of the game to the file
-you specify. 
-Disabled if the @code{saveGameFile} command-line
-option is set, as in that case all games are saved to the specified file.
-@xref{Load and Save options}.
-@item Background Observe while Playing
-@cindex Background Observe while Playing, Menu Item
-Setting this option will make XBoard suppress display of any boards
-from observed games while you are playing.
-Instead the last such board will be remembered,
-and shown to you when you right-click the board.
-This allows you to peek at your bughouse partner's game when you want,
-without disturbing your own game too much.
-@item Dual Board for Background-Observed Game
-@cindex Dual Board for Background-Observed Game, Menu Item
-Setting this option in combination with @samp{Background Observe}
-will display boards of observed games while you are playing
-on a second board next to that of your own game.
-@item Get Move List
-@cindex Get Move List, Menu Item
-If this option is on, whenever XBoard
-receives the first board of a new ICS game (or a different game from
-the one it is currently displaying), it
-retrieves the list of past moves from the ICS.
-You can then review the moves with the @samp{Forward} and @samp{Backward}
-commands
-or save them with @samp{Save Game}.  You might want to
-turn off this option if you are observing several blitz games at once,
-to keep from wasting time and network bandwidth fetching the move lists over
-and over.
-When you turn this option on from the menu, XBoard
-immediately fetches the move list of the current game (if any).
-@item Quiet Play
-@cindex Quiet Play, Menu Item
-If this option is on, XBoard will automatically issue an ICS
-@kbd{set shout 0}
-command whenever you start a game and a
-@kbd{set shout 1}
-command whenever you finish one.  Thus, you will not be distracted
-by shouts from other ICS users while playing.
-@item Seek Graph
-@cindex Seek Graph, Menu Item
-Setting this option will cause XBoard to display an graph of
-currently active seek ads when you left-click the board
-while idle and logged on to an ICS.
-@item Auto-Refresh Seek Graph
-@cindex Auto-Refresh Seek Graph, Menu Item
-In combination with the @samp{Seek Graph} option this
-will cause automatic update of the seek graph while it is up.
-This only works on FICS and ICC,
-and requires a lot of bandwidth on a busy server.
-@item Auto-InputBox PopUp
-@cindex Auto-InputBox PopUp, Menu Item
-Controls whether the ICS Input Box will pop up automatically when
-you type a printable character to the board window in ICS mode.
-@item Quit After Game
-@cindex Quit After Game, Menu Item
-Controls whether XBoard will automatically disconnect from the ICS
-and close when the game currently in progress finishes.
-@item Premove
-@itemx Premove for White
-@itemx Premove for Black
-@itemx First White Move
-@itemx First Black Move
-@cindex Premove, Menu Item
-@cindex Premove for White, Menu Item
-@cindex Premove for Black, Menu Item
-@cindex First White Move, Menu Item
-@cindex First Black Move, Menu Item
-If the @samp{Premove} option is on while playing a game on an ICS,
-you can register your next planned move before it is your turn.
-Move the piece with
-the mouse in the ordinary way, and the starting and ending squares
-will be highlighted with a special color (red by default).  When it is
-your turn, if your registered move is legal, XBoard will send it to
-ICS immediately; if not, it will be ignored and you can make a
-different move.  If you change your mind about your premove, either
-make a different move, or double-click on any piece to cancel the move
-entirely.
-
-You can also enter premoves for the first white and black moves
-of the game.
-@item Alarm
-@itemx Alarm Time
-@cindex Alarm, Menu Item
-@cindex Alarm Time, Menu Item
-When this option is on, an alarm sound is played when your clock
-counts down to the @samp{Alarm Time} in an ICS game.
-(By default, the time is 5 seconds, but you can specify other values
-with the Alarm Time spin control.) 
-For games with time controls that include an increment, the
-alarm will sound each time the clock counts down to the icsAlarmTime.
-By default, the alarm sound is the terminal bell, but on some systems
-you can change it to a sound file using the soundIcsAlarm option; see
-below.
-@item Colorize Messages
-@cindex Colorize Messages, Menu Item
-Ticking this options causes various types of ICS messages do be
-displayed with different foreground or background colors in the console.
-The colors can be individually selected for each type,
-through the accompanying text edits.
-@item -icsMenu string
-@cindex icsMenu, option
-The string defines buttons for the @samp{ICS text menu}.
-Each button definition consists of two semi-colon-terminated pieces of text,
-the first giving the label to be written on the button,
-the second the text that should be sent to the ICS when that button is pressed.
-This second part (the 'message') can contain linefeeds, so that you can send
-multiple ICS commands with one button.
-Some message in the text, all starting with a $-sign, are treated special.
-When the message contains '$input', it will not be sent directly to the ICS,
-but will be put in the input field of the @samp{ICS Chat/Console},
-with the text cursor at the indicated place, so you can addsome text to
-the message before sending it off.
-If such a message starts with '$add' it will be placed behind any text
-that is already present in the input field, otherwise this field will
-be cleared first.
-The word '$name' occurring in the message will be replaced by the word
-that was clicked (through button 3) in the ICS Chat/Console.
-There are two special messages: '$chat' will open a new chat with
-the clicked word in the chat-partner field,
-while '$copy' will copy the text that is currently-selected
-in the ICS Console to the clipboard.
-An example of a text menu as it might occur in your settings file
-(where you could edit it):
-
-@example
--icsMenu @{copy;$copy;
-list players;who;
-list games;games;
-finger (player);finger $name;
-bullet (player);match $name 1 1 r;
-blitz (player);match $name 5 1 r;
-rapid (player);match $name 30 0 r;
-open chat (player);$chat;
-tell (player);tell $name $input;
-ask pieces;ptell Please give me a $input;
-P;$add Pawn $input;
-N;$add Knight $input;
-B;$add Bishop $input;
-R;$add Rook $input;
-Q;$add Queen $input;
-@}
-@end example
-@end table
-
-@section Tournament Options
-@cindex Tournament Options, Menu Item
-Summons a dialog where you can set options important for playing automatic 
-matches between two or more chess programs 
-(e.g. by using the @samp{Machine Match} menu item in the @samp{Mode} menu).
-@table @asis
-@item Tournament file
-@cindex Tournament file, Menu item
-To run a tournament, XBoard needs a file to record its progress, 
-so it can resume the tourney when it is interrupted.
-When you want to conduct anything more complex than a simple 
-two-player match with the currently loaded engines, 
-(i.e. when you select a list of participants), 
-you must not leave this field blank. 
-When you enter the name of an existing tournament file, 
-XBoard will ignore all other input specified in the dialog, 
-and will take the corresponding info from that tournament file.
-This resumes an interrupted tournament, or adds another XBoard
-agent playing games for it to those that are already doing so.
-Specifying a not-yet-existing file will cause XBoard to create it, 
-according to the tournament parameters specified in the rest of the dialog, 
-before it starts the tournament on ‘OK’. 
-Provided that you specify participants; 
-without participants no tournament file will be made, but other entered values 
-(e.g. for the file with opening positions) will take effect. 
-Default: configured by the @code{defaultTourneyName} option.
-@item Sync after round
-@itemx Sync after cycle
-@cindex Sync after round, Menu Item
-@cindex Sync after cycle, Menu Item
-The sync options, when on, will cause WinBoard to refrain from starting games 
-of the next round or cycle before all games of the previous round or cycle are finished.
-This guarantees correct ordering in the games file,
-even when multiple XBoard instances are concurrently playing games for the same tourney.
-Default: sync after cycle, but not after round.
-@item Select Engine
-@itemx Tourney participants
-@cindex Select Engine, Menu Item
-@cindex Tourney participants, Menu Item
-From the Select Engine listbox you can pick an engine from your list 
-of engines registered in the settings file, to be added to the tournament.
-The engines selected so far will be listed in the ‘Tourney participants’ memo. 
-The latter is a normal text edit, so you can use normal text-editing functions 
-to delete engines you selected accidentally, or change their order. 
-Typing names here yourself is not recommended, because names that do not exactly match 
-one of the names from the selection listbox will lead to undefined behavior.
-@item Tourney type
-@cindex Tourney type, Menu Item
-Here you can specify the type of tournament you want. 
-XBoard’s intrinsic tournament manager support round-robins (type = 0), 
-where each participant plays every other participant, and (multi-)gauntlets, 
-where one (or a few) so-called ‘gauntlet engines’ play an independent set of opponents. 
-In the latter case, you specify the number of gauntlet engines. 
-E.g. if you specified 10 engines, and tourney type = 2, 
-the first 2 engines each play the remaining 8. 
-A value of -1 instructs XBoard to play Swiss; for this to work an external
-pairing engine must be specified through the @code{pairingEngine} option.
-Each Swiss round will be considered a tourney cycle in that case.
-Default:0
-@item Number of tourney cycles
-@itemx Default number of Games
-@cindex Number of tourney cycles, Menu Item
-@cindex Default number of Games, Menu Item
-You can specify tourneys where every two opponents play each other multiple times. 
-Such multiple games can be played in a row, 
-as specified by the ‘number of games per pairing’, 
-or by repeating the entire tournament schedule a number of times 
-(specified by the ‘number of tourney cycles’). 
-The total number of times two engines meet will be the product of these two. 
-Default is 1 cycle;
-the number of games per pairing is the same as the default number of match games, 
-stored in your settings file through the @code{defaultMatchGames} option.
-@item Save Tourney Games
-@cindex Save Tourney Games, Menu Item
-File where the tournament games are saved
-(duplicate of the item in the @samp{Save Game Options}).
-@item Game File with Opening Lines
-@itemx File with Start Positions
-@itemx Game Number
-@itemx Position Number
-@itemx Rewind Index after
-@cindex Game File with Opening Lines, Menu Item
-@cindex File with Start Positions, Menu Item
-@cindex Game Number, Menu Item
-@cindex Position Number, Menu Item
-@cindex Rewind Index after, Menu Item
-These items optionally specify the file with move sequences or board positions the tourney 
-games should start from.
-The corresponding numbers specify the number of the game or position in the file.
-Here a value -1 means automatic stepping through all games on the file,
--2 automatic stepping every two games.
-The Rewind-Index parameter causes a stepping index to reset to one after reaching
-a specified value.
-A setting of -2 for the game number will also be effective in a tournament without
-specifying a game file, but playing from the GUI book instead.
-In this case the first (odd) games will randomly select from the book,
-but the second (even) games will select the same moves from the book as the previous game.
-(Note this leads to the same opening only if both engines use the GUI book!)
-Default: No game or position file will be used. The default index if such a file is used is 1.
-@item Disable own engine books be default
-@cindex Disable own engine books be default, Menu Item
-Setting this option reverses the default situation for use of the GUI opening book
-in tournaments from what it normally is, namely not using it.
-So unless the engine is installed with an option to explicitly specify it should
-not use the GUI book (i.e. @code{-firstHasOwnBookUCI true}),
-it will be made to use the GUI book.
-@item Replace Engine
-@itemx Upgrade Engine
-@cindex Replace Engine, Menu Item
-@cindex Upgrade Engine, Menu Item
-With these two buttons you can alter the participants of an already running tournament.
-After opening the Match Options dialog on an XBoard that is playing for the tourney,
-you will see all the tourney parameters in the dialog fields.
-You can then replace the name of one engine by that of another
-by editing the @samp{participants} field.
-(But preserve the order of the others!)
-Pressing the button after that will cause the substitution.
-With the @samp{Upgrade Engine} button the substitution will only affect future games.
-With @samp{Replace Engine} all games the substituted engine has already played will
-be invalidated, and they will be replayed with the substitute engine.
-In this latter case the engine must not be playing when you do this,
-but otherwise there is no need to pause the tournament play
-for making a substitution.
-@item Clone Tourney
-@cindex CloneTourney, Menu Item
-Pressing this button after you have specified an existing tournament file
-will copy the contents of the latter to the dialog,
-and then puts the originally proposed name for the tourney file back.
-You can then run a tourney with the same parameters
-(possibly after changing the proposed name of the tourney file for the new tourney)
-by pressing 'OK'.
-@item Continue Later
-@cindex Continue Later, Menu Item
-Pressing the @samp{Continue Later} button confirms the current value of all
-items in the dialog and closes it,
-but will not automatically start the tournament.
-This allows you to return to the dialog later without losing the settings you
-already entered, to adjust paramenters through other menu dialogs.
-(The @samp{Common Engine Setting}, @samp{Time Control} and @samp{General Options}
-dialogs can be accessed without closing the @samp{Tournament Options} dialog
-through the respective buttons at the bottom of the latter.)
-@end table
-
-@section Load Game Options
-@cindex Load Game Options, Menu Item
-Summons a dialog where you can set options that control loading of games.
-@table @asis
-@item Auto-Display Tags
-@cindex Auto-Display Tags, Menu Item
-Setting this option causes a window to pop up on loading a game,
-displaying the PGN Tags for that game.
-@item Auto-Display Comment
-@cindex Auto-Display Comment, Menu Item
-Setting this option causes a window to pop up whenever there
-is a comment to (or variation on) the currently displayed move.
-@item Auto-Play speed of loaded games
-@cindex Auto-Play speed, Menu Item
-This option sets the number of seconds between moves
-when a newly loaded game is auto-playing.
-A decimal fraction on the number is understood.
-Setting it to -1 disables auto-play, staying in the start position
-of the game after the loading completes.
-Setting it to 0 will instantly move to the final position of the game.
-The @samp{Auto-Play speed} is also used to determine the
-analysis time for each move during @samp{Analyze Game}.
-Note that auto-playing (including game analysis) can be stopped at any
-time through the @samp{P} button above the board.
-@item options to use in game-viewer mode
-@cindex Game-Viewer options, Menu Item
-Specifies the options automatically set when XBoard is invoked
-with the option @code{-viewer} on its command line,
-as will happen when it is started in response to clicking a PGN game file.
-The default setting would start XBoard without engine
-(due to the @code{-ncp} option),
-but if you want it to automatically start with your favorite engine,
-and automatically start analyzing, you could include the necessary
-options for that here (e.g. @code{-fe <engine> -initialMode analysis}).
-@item Thresholds for position filtering in game list
-@cindex Thresholds for game selection, Menu Item
-The following options can be set to limit the display of games
-in the @samp{Game List} window to a sub-set,
-meeting the specified criteria.
-@item Elo of strongest player at least
-@item Elo of weakest player at least
-@cindex Elo limits, Menu Item
-Games with an Elo tag specifying a lower rating for the mentioned player
-will not be diplayed in the @samp{Game List}. 
-@item No games before year
-@cindex Date limit, Menu item
-Games with a Date tag before the specified year
-will not be diplayed in the @samp{Game List}. 
-@item Final nr of pieces
-@cindex Final number of pieces, Menu Item
-A single number or a range (like 8-10) can be entered here,
-and will cause only games where the number of men in the final
-position is in the given range
-will be diplayed in the @samp{Game List}. 
-@item Minimum nr consecutive positions
-@cindex Consecutive positions, Menu Item
-Specifies for how many consecutive positions the more fuzzy
-position-matching criteria have to be satisfied
-in order to count as a match.
-@item Search mode
-@itemx find position
-@cindex Search mode, Menu Item
-@cindex find position, Menu Item
-XBoard can select games for display in the @samp{Game List}
-based on whether (in addition to the conditions on the PGN tags)
-they contain a position that matches the
-position currently displayed on the board,
-by pressing the @samp{find position}
-or @samp{narrow} buttons in the @samp{Game List} window.
-The @samp{Search mode} setting determines what counts as match.
-You can search for an exact match, 
-a position that has all shown material in the same place, 
-but might contain additional material,
-a position that has all Pawns in the same place,
-but can have the shown material anywhere,
-a position that        can have all shown material anywhere,
-or a position that has material between certain limits anywhere.
-For the latter you have to place the material that must minimally be present
-in the four lowest ranks of the board,
-and optional additional material in the four highest ranks of the board.
-You can request the optional material to be balanced,
-i.e. equal for white and black.
-@item narrow
-@cindex narrow, Menu Item
-The @samp{narrow} button is similar in fuction to the @samp{find position} button,
-but only searches in the already selected games,
-rather than the complete game file,
-and can thus be used to refine a search based on multiple criteria.
-@item Also match reversed colors
-@itemx Also match left-right flipped position
-@cindex Match reversed colors, Menu Item
-@cindex Match left-right flipped position, Menu Item
-When looking for matching positions rather than by material,
-these settings determine whether mirror images 
-(in case of a vertical flip in combination with color reversal)
-will be also considered a match.
-The left-right flipping is only useful after all castling rights
-have expired (or in Xiangqi).
-@end table
-
-@section Save Game Options
-@cindex Save Game Options, Menu Item
-Summons a dialog where you can specify whether XBoard should
-automatically save files of games when they finish,
-and where and how to do that.
-@table @asis
-@item Auto-Save Games
-@cindex Auto-Save Games, Menu Item
-When set XBoard will automatically save games on a file as they finish.
-(Not when you abort them by pressing @samp{New Game}, though!)
-It will either prompt you for a filename,
-or use the file specified  by the @code{saveGameFile} option.
-@item Own Games Only
-@cindex Own Games Only, Menu Item
-Setting this option will exclude games by others observed on an
-Internet Chess Server from automatic saving.
-@item Save Games on File
-@cindex Save Games on File, Menu Item
-Name of the file on which games should be saved automatically.
-Games are always appended to the file,
-and will never overwrite anything.
-@item Save Final Position on File
-@cindex Save Final Position on File, Menu Item
-When a name is defined, the final position of each game
-is appended to the mentioned file.
-@item PGN Event Header
-@cindex PGN Event Header, Menu Item
-Specifies the name of the event used in the PGN event tag
-of new games that you create.
-@item Old Save Style
-@cindex Old Save Style, Menu Item
-Saves games in an obsolete and now long forgotten format,
-rather than as PGN. Never use this for orthodox Chess!
-@item Include Number Tag in tourney PGN
-@cindex Include Number Tag in tourney PGN, Menu Item
-When on this option will cause the non-standard 'Number' tag
-to be written in any game saved in PGN format.
-It will contain the unique number of the game in the tourney.
-(As opposed to the 'Round' tag, which can be shared by many games.)
-@item Save Score/Depth Info in PGN
-@cindex Save Score/Depth in PGN, Menu Item
-When on this option will cause the score and depth at which it was
-calculated by an engine, and (when available) thinking time
-to be saved with the move as a comment to the move,
-in the format @{score/depth time@}.
-Here 'score'is in pawn units from the point of view of the player
-that made the move, with two digits behind the decimal Pawn.
-'Time' is in seconds, or min:sec.
-@item Save Out-of-Book Info in PGN
-@cindex Save Out-of-Book Info in PGN, Menu Item
-When on this option causes the score of the first move
-the engine made after coming out of book in an 'Annotator' PGN tag.
-@end table
-
-@section Game List
-@cindex Game List Tags, Menu Item
-Pops up a dialog where you can select the PGN tags that should appear
-on the lines in the @samp{Game List}, and their order.
-
-@section Sound Options
-@cindex Sound Options, Menu Item
-Summons a dialog where you can specify the sounds that should accompany
-various events that can occur in XBoard.
-Most events are only relevant to ICS play, 
-but the move sound is an important exception.
-For each event listed in the dialog, 
-you can select a standard sound from a menu.
-@table @asis
-@item Sound Program
-@cindex Sound Program, Menu Item
-Specifies the command XBoard should invoke to play sounds.
-The specified text will be suffixed by the name of the sound file,
-and then run as a command.
-@item Sounds Directory
-@cindex Sounds Directory, Menu Item
-Specifies the directory where XBoard will look for files with
-the names of the standard sounds.
-@item User WAV File
-@cindex User WAV File, Menu Item
-When we type a filename here, it can be assigned to the events
-by selecting @samp{Above WAV File} from the drop downs.
-@item Try-Out Sound
-@itemx Play
-@cindex Try-Out Sound, Menu Item
-The 'event' triggering the Try-Out sound is pressing
-of the @samp{Play} button behind it.
-This allows you to judge the sounds.
-@end table
-
-@section Save Settings Now
-@cindex Save Settings Now, Menu Item
-Selecting this menu item causes the current XBoard settings to be
-written to the settings file, (.xboardrc in your home directory),
-so they will also apply in future sessions.
-Note that some settings are 'volatile', and are not saved,
-because XBoard considers it too unlikely that you want those to apply
-next time.
-In particular this applies to the Chess program, and all options
-giving information on those Chess programs (such as their directory,
-if they have their own opening book, if they are UCI or native XBoard),
-or the variant you are playing.
-Such options would still be understood when they appear in the settings
-file in case they were put there with the aid of a text editor, but they
-would disappear from the file as soon as you save the settings.
-
-Note that XBoard no longer pays attention to options values specified
-in the .Xresources file.
-(Specifying key bindings there will still work, though.)
-To alter the default of volatile options, you can use the following method:
-Rename your ~/.xboardrc settings file (to ~/.yboardrc, say), and create
-a new file ~/.xboardrc, which only contains the options
-
-@example
--settingsFile  ~/.yboardrc
--saveSettingsFile  ~/.yboardrc
-@end example
-
-@noindent
-This will cause your settings to be saved on ~/.yboardrc in the future,
-so that ~/.xboardrc is no longer overwritten.
-You can then safely specify volatile options in ~/.xboardrc, either
-before or after the settingsFile options.
-Note that when you specify persistent options after the settingsFile options
-in this ~/.xboardrc, you will essentially turn them into volatile options
-with the specified value as default, because that value will overrule
-the value loaded from the settings file (being read later).
-
-@section Save Settings on Exit
-@cindex Save Settings on Exit, Menu Item
-Setting this option has no immediate effect, but causes the settings
-to be saved when you quit XBoard. What happens then is otherwise 
-identical to what happens when you use select "Save Settings Now",
-see there.
-
-@node Help Menu
-@section Help Menu
-@cindex Menu, Help
-@cindex Help Menu
-@table @asis
-@item Info XBoard
-@cindex Info XBoard, Menu Item
-Displays the XBoard documentation in info format.  For this feature to
-work, you must have the GNU info program installed on your system, and
-the file @file{xboard.info} must either be present in the current
-working directory, or have been installed by the @samp{make install}
-command when you built XBoard.
-@item Man XBoard
-@cindex Man XBoard, Menu Item
-Displays the XBoard documentation in man page format.
-The @kbd{F1} key is a keyboard equivalent.  For this
-feature to work, the file @file{xboard.6} must have been installed by
-the @samp{make install} command when you built XBoard, and the
-directory it was placed in must be on the search path for your
-system's @samp{man} command.
-@item About XBoard
-@cindex About XBoard, Menu Item
-Shows the current XBoard version number.
-@end table
-
-@node Keys
-@section Other Shortcut Keys
-@cindex Keys
-@cindex Shortcut keys
-@table @asis
-@item Show Last Move
-@cindex Show Last Move, Shortcut Key
-By hitting @kbd{Enter} the last move will be re-animated.
-@item Load Next Game
-@cindex Load Next Game, Menu Item
-Loads the next game from the last game record file you loaded.
-The @kbd{Alt+PgDn} key triggers this action.
-@item Load Previous Game
-@cindex Load Previous Game, Menu Item
-Loads the previous game from the last game record file you
-loaded.  The @kbd{Alt+PgUp} key triggers this action.
-Not available if the last game was loaded from a pipe.
-@item Reload Same Game
-@cindex Reload Same Game, Menu Item
-Reloads the last game you loaded.
-Not available if the last game was loaded from a pipe.
-Currently no keystroke is assigned to this ReloadGameProc.
-@item Reload Same Position
-@cindex Reload Same Position, Menu Item
-Reloads the last position you loaded.
-Not available if the last position was loaded from a pipe.
-Currently no keystroke is assigned to this ReloadPositionProc.
-@end table
-
-In the Xaw build of XBoard you can add or remove shortcut keys
-using the X resources @code{paneA.translations}.
-Here is an example of what could go into your
-@file{.Xdefaults} file:
-
-@example
-XBoard*paneA.translations: \
-  Shift<Key>?: MenuItem(Help.About) \n\
-  Ctrl<Key>y: MenuItem(Action.Accept) \n\
-  Ctrl<Key>n: MenuItem(Action.Decline) \n\
-  Ctrl<Key>i: MenuItem(Nothing)
-@end example
-@noindent
-So the key should always be bound to the action 'MenuItem',
-with the (hierarchical) name of the menu item as argument.
-There are a few actions available for which no menu item exists:
-Binding a key to @code{Nothing} makes it do nothing, thus removing
-it as a shortcut key. Other such functions that can be bound to keys
-are:
-
-@example
-AboutGame, DebugProc (switches the -debug option on or off),
-LoadNextGame, LoadPrevGame, ReloadGame, ReloadPosition.
-@end example
-
-@node Options
-@chapter Options
-@cindex Options
-@cindex Options
-
-This section documents the command-line options to XBoard.  You can
-set these options in two ways: by typing them on the shell command
-line you use to start XBoard, or by editing the settings file
-(usually ~/.xboardrc) to alter the value of the setting that was
-saved there.  Some of the options
-cannot be changed while XBoard is running; others set the initial
-state of items that can be changed with the @ref{Options} menu.
-
-Most of the options have both a long name and a short name. To turn a
-boolean option on or off from the command line, either give its long
-name followed by the value true or false
-(@samp{-longOptionName true}), or give just the short name to turn the
-option on (@samp{-opt}), or the short name preceded by @samp{x} to
-turn the option off (@samp{-xopt}). For options that take strings or
-numbers as values, you can use the long or short option names
-interchangeably.
-
-@menu
-* Chess engine options::        Controlling the chess engine.
-* UCI + WB Engine Settings::    Setting some very common engine parameters
-* Tournament options::          Running tournaments and matches between engines.
-* ICS options::                 Connecting to and using ICS.
-* Load and Save options::       Input/output options.
-* User interface options::      Look and feel options.
-* Adjudication Options::        Control adjudication of engine-engine games.
-* Install options::             Maintaining and extending the XBoard install.
-* Other options::               Miscellaneous.
-@end menu
-
-@node Chess engine options
-@section Chess Engine Options
-@cindex options, Chess engine
-@cindex Chess engine options
-@table @asis
-@item -tc or -timeControl minutes[:seconds]
-@cindex tc, option
-@cindex timeControl, option
-Each player begins with his clock set to the @code{timeControl} period.
-Default: 5 minutes.
-The additional options @code{movesPerSession} and @code{timeIncrement}
-are mutually exclusive.  
-@item -mps or -movesPerSession moves
-@cindex mps, option
-@cindex movesPerSession, option
-When both players have made @code{movesPerSession} moves, a
-new @code{timeControl} period is added to both clocks.  Default: 40 moves.
-@item -inc or -timeIncrement seconds
-@cindex inc, option
-@cindex timeIncrement, option
-If this option is specified, @code{movesPerSession} is ignored.
-Instead, after each player's move, @code{timeIncrement} seconds are
-added to his clock.  
-Use @samp{-inc 0} if you want to require the entire
-game to be played in one @code{timeControl} period, with no increment.
-Default: -1, which specifies @code{movesPerSession} mode.
-@item -clock/-xclock or -clockMode true/false
-@cindex clock, option
-@cindex clockMode, option
-Determines whether or not to display the chess clocks. If clockMode is
-false, the clocks are not shown, but the side that is to play next
-is still highlighted. Also, unless @code{searchTime}
-is set, the chess engine still keeps track of the clock time and uses it to
-determine how fast to make its moves.
-@item -st or -searchTime minutes[:seconds]
-@cindex st, option
-@cindex searchTime, option
-Tells the chess engine to spend at most the given amount of time
-searching for each of its moves. Without this option, the chess engine
-chooses its search time based on the number of moves and amount
-of time remaining until the next time control.
-Setting this option also sets clockMode to false.
-@item -depth or -searchDepth number
-@cindex sd, option
-@cindex searchDepth, option
-Tells the chess engine to look ahead at most the given number of moves
-when searching for a move to make. Without this option, the chess
-engine chooses its search depth based on the number of moves and
-amount of time remaining until the next time control.  With the option,
-the engine will cut off its search early if it reaches the specified depth.
-@item -firstNPS number
-@itemx -secondNPS number
-@cindex firstNPS, option
-@cindex secondNPS, option
-Tells the chess engine to use an internal time standard based on its node count, 
-rather then wall-clock time, to make its timing decisions. 
-The time in virtual seconds should be obtained by dividing the node count 
-through the given number, like the number was a rate in nodes per second. 
-Xboard will manage the clocks in accordance with this, relying on the number 
-of nodes reported by the engine in its thinking output. If the given number equals zero, 
-it can obviously not be used to convert nodes to seconds, and the time reported 
-by the engine is used to decrement the XBoard clock in stead. The engine is supposed to 
-report in CPU time it uses, rather than wall-clock time, in this mode. This option 
-can provide fairer conditions for engine-engine matches on heavily loaded machines, 
-or with very fast games (where the wall clock is too inaccurate). 
-@code{showThinking} must be on for this option to work. Default: -1 (off).
-Not many engines might support this yet!
-@item -firstTimeOdds factor
-@itemx -secondTimeOdds factor
-@cindex firstTimeOdds, option
-@cindex secondTimeOdds, option
-Reduces the time given to the mentioned engine by the given factor. 
-If pondering is off, the effect is indistinguishable from what would happen 
-if the engine was running on an n-times slower machine. Default: 1.
-@item -timeOddsMode mode
-@cindex timeOddsMode, option
-This option determines how the case is handled where both engines have a time-odds handicap. 
-If mode=1, the engine that gets the most time will always get the nominal time, 
-as specified by the time-control options, and its opponent's time is renormalized accordingly. 
-If mode=0, both play with reduced time. Default: 0.
-@item -hideThinkingFromHuman true/false
-Controls the Hide Thinking option. @xref{Options Menu}. Default: true.
-(Replaces the Show-Thinking option of older xboard versions.)
-@item -thinking/-xthinking or -showThinking true/false
-@cindex thinking, option
-@cindex showThinking, option
-Forces the engine to send thinking output to xboard. 
-Used to be the only way to control if thinking output was displayed 
-in older xboard versions,
-but as the thinking output in xboard 4.3 is also used for several other
-purposes (adjudication, storing in PGN file) the display of it is now controlled
-by the new option Hide Thinking. @xref{Options Menu}. Default: false.
-(But if xboard needs the thinking output for some purpose,
-it makes the engine send it despite the setting of this option.)
-@item -ponder/-xponder or -ponderNextMove true/false
-@cindex ponder, option
-@cindex ponderNextMove, option
-Sets the Ponder Next Move menu option. @xref{Options Menu}. Default: true.
-@item -smpCores number
-Specifies the maximum number of CPUs an SMP engine is allowed to use.
-Only works for engines that support the XBoard/WinBoard-protocol cores feature.
-@item -mg or -matchGames n
-@cindex mg, option
-@cindex matchGames, option
-Automatically runs an n-game match between two chess engines,
-with alternating colors.
-If the @code{loadGameFile} or @code{loadPositionFile} option is set,
-XBoard
-starts each game with the given opening moves or the given position;
-otherwise, the games start with the standard initial chess position.
-If the @code{saveGameFile} option is set, a move record for the
-match is appended to the specified file. If the @code{savePositionFile}
-option is set, the final position reached in each game of the match is appended
-to the specified file. When the match is over, XBoard
-displays the match score and exits. Default: 0 (do not run a match).
-@item -mm/-xmm or -matchMode true/false
-@cindex mm, option
-@cindex matchMode, option
-Setting @code{matchMode} to true is equivalent to setting
-@code{matchGames} to 1.
-@item -sameColorGames n
-@cindex sameColorGames, option
-Automatically runs an n-game match between two chess engines,
-without alternating colors.
-Otherwise the same applies as for the @samp{-matchGames} option,
-over which it takes precedence if both are specified. (See there.)
-Default: 0 (do not run a match).
-@item -epd
-@cindex epd, option
-This option puts XBoard in a special mode for solving EPD test-suites,
-for the entire duration of the session.
-In this mode games are aborted after a single move,
-and that move will be compared with the best-move or avoid-move
-from the EPD position description from which the 'game' was started.
-Playing a best move counts as a win, playing an avoid move as a loss,
-and playing any other move counts as a draw.
-This option should be used in combination with match mode,
-and an EPD file of starting positions with an auto-incrementing index.
-Color assignment will be such that the first engine plays all moves,
-and the second engine will be never involved.
-The results for individual positions,
-as well as the time used for solving them,
-will be reported in the lower pane of the Engine Output window.
-@item -fcp or -firstChessProgram program
-@itemx -scp or -secondChessProgram program
-@cindex fcp, option
-@cindex firstChessProgram, option
-@cindex scp, option
-@cindex secondChessProgram, option
-Name of first and second chess engine, respectively.
-A second chess engine is started only in Two Machines (match) mode,
-or in Analyze mode with two engines.
-The second engine is by default the same as the first.
-Default for the first engine: @file{fairymax}.
-@item -fe or -firstEngine nickname
-@itemx -se or -secondEngine nickname
-@cindex se, option
-@cindex secondEngine, option
-@cindex fe, option
-@cindex firstEngine, option
-This is an alternative to the @code{fcp} and @code{scp} options
-for specifying the first and second engine,
-for engines that were already registered (using the @samp{Load Engine} dialog)
-in XBoard's settings file.
-It will not only retrieve the real name of the engine,
-but also all options configured with it.
-(E.g. if it is UCI, whether it should use book.)
-@item -fb/-xfb or -firstPlaysBlack true/false
-@cindex fb, option
-@cindex firstPlaysBlack, option
-In games between two chess engines, firstChessProgram normally plays
-white.  If this option is true, firstChessProgram plays black.  In a
-multi-game match, this option affects the colors only for the first
-game; they still alternate in subsequent games.
-@item -fh or -firstHost host
-@itemx -sh or -secondHost host
-@cindex fh, option
-@cindex firstHost, option
-@cindex sh, option
-@cindex secondHost, option
-Hosts on which the chess engines are to run. The default for
-each is @file{localhost}. If you specify another host, XBoard
-uses @file{rsh} to run the chess engine there. (You can substitute a
-different remote shell program for rsh using the @code{remoteShell}
-option described below.)
-@item -fd or -firstDirectory dir
-@itemx -sd or -secondDirectory dir
-@cindex fd, option
-@cindex firstDirectory, option
-@cindex sd, option
-@cindex secondDirectory, option
-Working directories in which the chess engines are to be run.
-The default is "", which means to run the chess engine
-in the same working directory as XBoard
-itself.  (See the CHESSDIR environment variable.)
-This option is effective only when the chess engine is being run
-on the local host; it does not work if the engine is run remotely
-using the -fh or -sh option.
-@item -initString string or -firstInitString
-@itemx -secondInitString string
-@cindex initString, option
-@cindex firstInitString, option
-@cindex secondInitString, option
-The string that is sent to initialize each chess engine for a new game.
-Default:
-
-@example
-new
-random
-@end example
-@noindent
-Setting this option from the command line is tricky, because you must
-type in real newline characters, including one at the very end.
-In most shells you can do this by
-entering a @samp{\} character followed by a newline. 
-Using the character sequence @samp{\n} in the string should work too, though.
-
-If you change this option, don't remove the @samp{new} 
-command; it is required by all chess engines to
-start a new game.
-
-You can remove the @samp{random} command if you like; including it
-causes GNU Chess 4 to randomize its move selection slightly so that it
-doesn't play the same moves in every game.  Even without
-@samp{random}, GNU Chess 4 randomizes its choice of moves from its
-opening book.  Many other chess engines ignore this command entirely
-and always (or never) randomize.
-
-You can also try adding other commands to the initString; see the
-documentation of the chess engine you are using for details.
-@item -firstComputerString string
-@itemx -secondComputerString string
-@cindex firstComputerString, option
-@cindex secondComputerString, option
-The string that is sent to the chess engine if its opponent is another
-computer chess engine.  The default is @samp{computer\n}.  Probably the
-only useful alternative is the empty string (@samp{}), which keeps the
-engine from knowing that it is playing another computer.
-@item -reuse/-xreuse or -reuseFirst true/false
-@itemx -reuse2/-xreuse2 or -reuseSecond true/false
-@cindex reuse, option
-@cindex reuseFirst, option
-@cindex reuse2, option
-@cindex reuseSecond, option
-If the option is false,
-XBoard kills off the chess engine after every game and starts
-it again for the next game.  
-If the option is true (the default), 
-XBoard starts the chess engine only once
-and uses it repeatedly to play multiple games.
-Some old chess engines may not work properly when
-reuse is turned on, but otherwise games will start faster if it is left on.
-@item -firstProtocolVersion version-number
-@itemx -secondProtocolVersion version-number
-@cindex firstProtocolVersion, option
-@cindex secondProtocolVersion, option
-This option specifies which version of the chess engine communication
-protocol to use.  By default, version-number is 2.  In version 1, the
-"protover" command is not sent to the engine; since version 1 is a
-subset of version 2, nothing else changes.  Other values for
-version-number are not supported.
-@item -firstScoreAbs true/false
-@itemx -secondScoreAbs true/false
-@cindex firstScoreAbs, option
-@cindex secondScoreAbs, option
-If this option is set, the score reported by the engine is taken to be 
-that in favor of white, even when the engine plays black. 
-Important when XBoard uses the score for adjudications, or in PGN reporting. 
-@item -niceEngines priority
-@cindex niceEngines, option
-This option allows you to lower the priority of the engine processes, 
-so that the generally insatiable hunger for CPU time of chess engines does not interfere so much 
-with smooth operation of XBoard (or the rest of your system). 
-Negative values could increase the engine priority, which is not recommended.
-@item -firstOptions string
-@itemx -secondOptions string
-@cindex firstOptions, option
-@cindex secondOptions, option
-The given string is a comma-separated list of (option name=option value) pairs, 
-like the following example: "style=Karpov,blunder rate=0". 
-If an option announced by the engine at startup through the feature commands of the XBoard/WinBoard protocol 
-matches one of the option names (i.e. "style" or "blunder rate"), 
-it would be set to the given value (i.e. "Karpov" or 0) 
-through a corresponding option command to the engine. 
-This provided that the type of the value (text or numeric) matches as well.
-@item -firstNeedsNoncompliantFEN string
-@itemx -secondNeedsNoncompliantFEN string
-@cindex firstNeedsNoncompliantFEN, option
-@cindex secondNeedsNoncompliantFEN, option
-The castling rights and e.p. fields of the FEN sent to the mentioned engine 
-with the setboard command will be replaced by the given string. This can for 
-instance be used to run engines that do not understand Chess960 FENs in 
-variant fischerandom, to make them at least understand the opening position, 
-through setting the string to "KQkq -". (Note you also have to give the e.p. field!) 
-Other possible applications are to provide work-arounds for engines that want to see 
-castling and e.p. fields in variants that do not have castling or e.p. 
-(shatranj, courier, xiangqi, shogi) so that XBoard would normally omit them 
-(string = "- -"), or to add variant-specific fields that are not yet supported by XBoard 
-(e.g. to indicate the number of checks in 3check).
-@item -shuffleOpenings
-@cindex shuffleOpenings, option
-Forces shuffling of the opening setup in variants that normally have a fixed initial position.
-Shufflings are symmetric for black and white, and exempt King and Rooks in variants
-with normal castling.
-Remains in force until a new variant is selected.
-@item -fischerCastling
-@cindex fischerCastling, option
-Specifies Fischer castling (as in Chess960) should be enabled in variants
-that normally would not have it.
-Remains in force until a new variant is selected.
-@end table
-
-@node UCI + WB Engine Settings
-@section UCI + WB Engine Settings
-@cindex Engine Settings
-@cindex Settings, Engine
-@table @asis
-@item -fUCI or -firstIsUCI true/false
-@itemx -sUCI or -secondIsUCI true/false
-@cindex fUCI, option
-@cindex sUCI, option
-@cindex firstIsUCI, option
-@cindex secondIsUCI, option
-Indicates if the mentioned engine executable file is a UCI engine, 
-and should be run with the aid of the Polyglot adapter rather than directly. 
-Xboard will then pass the other UCI options and engine name to Polyglot 
-on its command line, according to the option @code{adapterCommand}.
-@item -fUCCI
-@itemx -sUCCI
-@itemx -fUSI
-@itemx -sUSI
-@cindex fUCCI, option
-@cindex sUCCI, option
-@cindex fUSI, option
-@cindex sUSI, option
-Options similar to @code{fUCI} and @code{sUCI}, except that they
-use the indicated engine with the protocol adapter specified in
-the @samp{uxiAdapter} option.
-This can then be configured for running a UCCI or USI adapter,
-as the need arises.
-@item -adapterCommand string
-@cindex adapterCommand, option
-The string contains the command that should be issued by XBoard
-to start an engine that is accompanied by the @code{fUCI} option.
-Any identifier following a percent sign in the command (e.g. %fcp)
-will be considered the name of an XBoard option, and be replaced
-by the value of that option at the time the engine is started.
-For starting the second engine, any leading "f" or "first" in
-the option name will first be replaced by "s" or "second",
-before finding its value.
-Default: 'polyglot -noini -ec "%fcp" -ed "%fd"'
-@item -uxiAdapter string
-@cindex uxiAdapter, option
-Similar to @code{adapterCommand}, but used for engines accompanied
-by the @code{fUCCI} or @code{fUSI} option, so you can configure
-XBoard to be ready to handle more than one flavor of non-native protocols.
-Default: ""
-@item -polyglotDir filename
-@cindex polyglotDir, option
-Gives the name of the directory in which the Polyglot adapter for UCI engines resides.
-Default: "".
-@item -usePolyglotBook true/false
-@cindex usePolyglotBook, option
-Specifies if the Polyglot book should be used as GUI book.
-@item -polyglotBook filename
-@cindex polyglotBook, option
-Gives the filename of the opening book.
-The book is only used when the @code{usePolyglotBook} option is set to true,
-and the option @code{firstHasOwnBookUCI} or @code{secondHasOwnBookUCI} 
-applying to the engine is set to false.
-The engine will be kept in force mode as long as the current position is in book, 
-and XBoard will select the book moves for it. Default: "".
-@item -fNoOwnBookUCI or -firstXBook or -firstHasOwnBookUCI true/false
-@itemx -sNoOwnBookUCI or -secondXBook or -secondHasOwnBookUCI true/false
-@cindex fNoOwnBookUCI, option
-@cindex sNoOwnBookUCI, option
-@cindex firstHasOwnBookUCI, option
-@cindex secondHasOwnBookUCI, option
-@cindex firstXBook, option
-@cindex secondXBook, option
-Indicates if the mentioned engine has its own opening book it should play from,
-rather than using the external book through XBoard. 
-Default: depends on setting of the option @code{discourageOwnBooks}.
-@item -discourageOwnBooks true/false
-@cindex discourageOwnBooks, option
-When set, newly loaded engines will be assumed to use the GUI book, 
-unless they explicitly specify differently.
-Otherwise they will be assumed to not use the GUI book,
-unless the specify differently (e.g. with @code{firstXBook}).
-Default: false.
-@item -bookDepth n
-@cindex bookDepth, option
-Limits the use of the GUI book to the first n moves of each side.
-Default: 12.
-@item -bookVariation n
-@cindex bookVariation, option
-A value n from 0 to 100 tunes the choice of moves from the GUI books
-from totally random to best-only. Default: 50
-@item -mcBookMode
-@cindex mcBookMode, option
-When this volatile option is specified, the probing algorithm of the
-GUI book is altered to always select the move that is most under-represented
-based on its performance.
-When all moves are played in approximately the right proportion,
-a book miss will be reported, to give the engine opportunity to
-explore a new move.
-In addition score of the moves will be kept track of during the session
-in a book buffer.
-By playing an match in this mode, a book will be built from scratch.
-The only output are the saved games, which can be converted to an
-actual book later, with the @samp{Save Games as Book} command.
-The latter command can also be used to pre-fill the book buffer
-before adding new games based on the probing algorithm.
-@item -fn string or -firstPgnName string
-@itemx -sn string or -secondPgnName string
-@cindex firstPgnName, option
-@cindex secondPgnName, option
-@cindex fn, option
-@cindex sn, option
-Indicates the name that should be used for the engine in PGN tags of
-engine-engine games.
-Intended to allow you to install versions of the same engine with different settings, 
-and still distinguish them.
-Default: "". 
-@item -defaultHashSize n
-@cindex defaultHashSize, option
-Sets the size of the hash table to n MegaBytes. Together with the EGTB cache size 
-this number is also used to calculate the memory setting of XBoard/WinBoard engines, 
-for those that support the memory feature of the XBoard/WinBoard protocol. Default: 64.
-@item -defaultCacheSizeEGTB n
-@cindex defaultCacheSizeEGTB, option
-Sets the size of the EGTB cache to n MegaBytes. Together with the hash-table size 
-this number is also used to calculate the memory setting of XBoard/WinBoard engines, 
-for those that support the memory feature of the XBoard/WinBoard protocol. Default: 4.
-@item -defaultPathEGTB filename
-@cindex defaultPathEGTB, option
-Gives the name of the directory where the end-game tablebases are installed, for UCI engines.
-Default: "/usr/local/share/egtb".
-@item -egtFormats string
-@cindex egtFormats, option
-Specifies which end-game tables are installed on the computer, and where. 
-The argument is a comma-separated list of format specifications, 
-each specification consisting of a format name, a colon, and a directory path name, 
-e.g. "nalimov:/usr/local/share/egtb". 
-If the name part matches that of a format that the engine requests through a feature command, 
-xboard will relay the path name for this format to the engine through an egtpath command. 
-One egtpath command for each matching format will be sent. 
-Popular formats are "nalimov" and "gaviota" DTM tablebases,
-syzygy DTZ tablebases and "scorpio" bitbases.
-Default: "".
-@item -firstChessProgramNames=@{names@}
-@cindex firstChessProgramNames, option
-This option lets you customize the listbox with chess-engine names 
-that appears in the @samp{Load Engine} and @samp{Tournament Options} dialog. 
-It consists of a list of strings, one per line. 
-When an engine is loaded, the corresponding line is prefixed with "-fcp ",
-and processed like it appeared on the command line.
-That means that apart from the engine command,
-it can contain any number of XBoard options you want to use with this engine.
-(Commonly used options here are -fd, -firstXBook, -fUCI, -variant.)
-
-The value of this option is gradually built as you load new engines
-through the @samp{Load Engine} menu dialog, with @samp{Add to list} ticked. 
-To change it in other ways, (e.g. deleting engines),
-use the menu item @samp{Edit Engine List} in the @samp{Engine} menu.
-@end table
-
-@node Tournament options
-@section Tournament options
-@cindex Tournament Options
-@cindex Options, Tournament
-@table @asis
-@item -defaultMatchGames n
-@cindex defaultMatchGames, option
-Sets the number of games that will be used for a match between two engines
-started from the menu to n. Also used as games per pairing in other tournament
-formats.  Default: 10.
-@item -matchPause n
-@cindex matchPause, option
-Specifies the duration of the pause between two games of a match or tournament
-between engines as n milliseconds.
-Especially engines that do not support ping need this option, 
-to prevent that the move they are thinking on when an opponent unexpectedly
-resigns will be counted for the next game, (leading to illegal moves there).
-Default: 10000.
-@item -tf filename or -tourneyFile filename
-@cindex tf, option
-@cindex tourneyFile, option
-Specifies the name of the tournament file used in match mode 
-to conduct a multi-player tournament. 
-This file is a special settings file, 
-which stores the description of the tournament (including progress info), 
-through normal options (e.g. for time control, load and save files), 
-and through some special-purpose options listed below.
-@item -tt number or -tourneyType number
-@cindex tt, option
-@cindex tourneyType, option
-Specifies the type of tourney: 0 = round-robin, 
-N>0 = (multi-)gauntlet with N gauntlet engines, 
--1 = Swiss through external pairing engine. 
-Volatile option, but stored in tourney file.
-@item -cy number or -tourneyCycles number
-@cindex cy, option
-@cindex tourneyCycles, option
-Specifies the number of cycles in a tourney. 
-Volatile option, but stored in tourney file.
-@item -participants list
-@cindex participants, option
-The list is a multi-line text string that specifies engines 
-occurring in the @code{firstChesProgramNames} list 
-in the settings file by their (implied or explicitly given) nicknames, 
-one engine per line. 
-The mentioned engines will play in the tourney. 
-Volatile option, but stored in tourney file.
-@item -results string
-@cindex results, option
-The string of +=- characters lists the result of all played games in a tourney. 
-Games currently playing are listed as *, 
-while a space indicates a game that is not yet played. 
-Volatile option, but stored in tourney file.
-@item -defaultTourneyName string
-@cindex defaultTourneyName, option
-Specifies the name of the tournament file XBoard should propose 
-when the @samp{Match Options} dialog is opened. 
-Any %y, %M, %d, %h, %m, %s in the string are replaced by the current 
-year, month, day of the month, hours, minutes, seconds of the current time, 
-respectively, as two-digit number. 
-A %Y would be replaced by the year as 4-digit number. Default: empty string.
-@item -pairingEngine filename
-@cindex pairingEngine, option
-Specifies the external program to be used to pair the participants in Swiss tourneys. 
-XBoard communicates with this engine in the same way as it communicates with Chess engines. 
-The only commands sent to the pairing engine are “results N string”, 
-(where N is the number of participants, 
-and string the results so far in the format of the results option), 
-and “pairing N”, (where N is the number of the tourney game). 
-To the latter the pairing engine should answer with “A-B”, 
-where A and B are participant numbers (in the range 1-N). 
-(There should be no reply to the results command.) Default: empty string.
-@item -afterGame string
-@itemx -afterTourney string
-@cindex afterGame, option
-@cindex afterTourney, option
-When non-empty, the given string will be executed as a system command 
-after each tournament game, or after the tourney completes, respectively.
-This can be used, for example, to autmatically run a cross-table generator
-on the PGN file where games are saved, to update the tourney standings.
-Default: ""
-@item -syncAfterRound true/false
-@itemx -syncAfterCycle true/false
-@cindex syncAfterRound, option
-@cindex syncAfterCycle, option
-Controls whether different instances of XBoard concurrently running the 
-same tournament will wait for each other.
-Defaults: sync after cycle, but not after round.
-@item -seedBase number
-@cindex seedBase, option
-Used to store the seed of the pseudo-random-number generator in the
-tourneyFile, so that separate instances of XBoard working on the same
-tourney can take coherent 'random' decisions, such as picking an
-opening for a given game number.
-@end table
-
-@node ICS options
-@section ICS options
-@cindex ICS options
-@cindex Options, ICS
-@table @asis
-@item -ics/-xics or -internetChessServerMode true/false
-@cindex ics, option
-@cindex internetChessServerMode, option
-Connect with an Internet Chess Server to play chess against its
-other users, observe games they are playing, or review games
-that have recently finished. Default: false.
-@item -icshost or -internetChessServerHost host
-@cindex icshost, option
-@cindex internetChessServerHost, option
-The Internet host name or address of the chess server to connect
-to when in ICS mode. Default: @code{chessclub.com}.
-Another popular chess server to try is @code{freechess.org}.
-If your site doesn't have a working Internet name server, try
-specifying the host address in numeric form. 
-You may also need
-to specify the numeric address when using the icshelper option
-with timestamp or timeseal (see below).
-@item -icsport or -internetChessServerPort port-number
-@cindex icsport, option
-@cindex internetChessServerPort, option
-The port number to use when connecting to a chess server in ICS
-mode. Default: 5000.
-@item -icshelper or -internetChessServerHelper prog-name
-@cindex icshelper, option
-@cindex internetChessServerHelper, option
-An external helper program used to communicate with the chess server.
-You would set it to "timestamp" for ICC (chessclub.com) or
-"timeseal" for FICS (freechess.org), after
-obtaining the correct version of timestamp or timeseal for your
-computer.  See "help timestamp" on ICC and "help timeseal" on FICS.
-This option is shorthand for @code{-useTelnet -telnetProgram program}.
-@item -telnet/-xtelnet or -useTelnet true/false
-@cindex telnet, option
-@cindex useTelnet, option
-This option is poorly named; it should be called useHelper.
-If set to true, it instructs XBoard to run an external
-program to communicate with the Internet Chess Server. 
-The program to use is given by the telnetProgram option.
-If the option is
-false (the default), XBoard opens a TCP socket and uses its own
-internal implementation of the telnet protocol to communicate with the
-ICS. @xref{Firewalls}.
-@item -telnetProgram prog-name
-@cindex telnetProgram, option
-This option is poorly named; it should be called helperProgram.
-It gives the name of the telnet program to be used with
-the @code{gateway} and @code{useTelnet} options.  The default is
-@file{telnet}. The telnet program is invoked with the value of
-@code{internetChessServerHost} as its first argument and the value
-of @code{internetChessServerPort} as its second argument.
-@xref{Firewalls}.
-@item -gateway host-name
-@cindex gateway, option
-If this option is set to a host name, XBoard communicates with the
-Internet Chess Server by using @file{rsh} to run
-the @code{telnetProgram} on the given host,
-instead of using its own internal implementation
-of the telnet protocol. You can substitute a different remote shell
-program for @file{rsh} using the @code{remoteShell} option described below.
-@xref{Firewalls}.
-@item -internetChessServerCommPort or -icscomm dev-name
-@cindex internetChessServerCommPort, option
-@cindex icscomm, option
-If this option is set, XBoard communicates with the ICS through
-the given character I/O device instead of opening a TCP connection.
-Use this option if your system does not have any kind of
-Internet connection itself (not even a SLIP or PPP connection),
-but you do have dial-up access (or a hardwired terminal line) to
-an Internet service provider from which you can telnet to the ICS.
-
-The support for this option in XBoard is minimal. You need to
-set all communication parameters and tty modes before you enter
-XBoard.
-
-Use a script something like this:
-
-@example
-stty raw -echo 9600 > /dev/tty00
-xboard -ics -icscomm /dev/tty00
-@end example
-
-Here replace @samp{/dev/tty00} with the name of the device that your
-modem is connected to. You might have to add several more
-options to these stty commands. See the man pages for @file{stty}
-and @code{tty} if you run into problems. Also, on many systems stty
-works on its standard input instead of standard output, so you
-have to use @samp{<} instead of @samp{>}.
-
-If you are using linux, try starting with the script below.
-Change it as necessary for your installation.
-
-@example
-#!/bin/sh -f
-# configure modem and fire up XBoard
-
-# configure modem
-(
-  stty 2400 ; stty raw ; stty hupcl ; stty -clocal
-  stty ignbrk ; stty ignpar ; stty ixon ; stty ixoff
-  stty -iexten ; stty -echo
-) < /dev/modem
-xboard -ics -icscomm /dev/modem
-@end example
-@noindent
-After you start XBoard in this way, type whatever commands are
-necessary to dial out to your Internet provider and log in.
-Then telnet to ICS, using a command like
-@kbd{telnet chessclub.com 5000}.
-Important: See the paragraph below about extra echoes, 
-in @ref{Limitations}.
-@item -icslogon or -internetChessServerLogonScript file-name
-@cindex icslogon, option
-@cindex internetChessServerLogonScript, option
-@cindex .icsrc
-Whenever XBoard connects to the Internet Chess Server,
-if it finds a file with the name given in this option, it feeds the
-file's contents to the ICS as commands. The default file name
-is @file{.icsrc}.
-Usually the first two lines of the file should be
-your ICS user name and password.
-The file can be either in $CHESSDIR, in XBoard's working
-directory if CHESSDIR is not set, or in your home directory.
-@item -msLoginDelay delay
-@cindex msLoginDelay, option
-If you experience trouble logging on to an ICS when using the
-@code{-icslogon} option, inserting some delay between characters
-of the logon script may help. This option adds @code{delay}
-milliseconds of delay between characters. Good values to try
-are 100 and 250.
-@item -icsinput/-xicsinput or -internetChessServerInputBox true/false
-@cindex icsinput, option
-@cindex internetChessServerInputBox, option
-Sets the ICS Input Box menu option. @xref{Mode Menu}. Default: false.
-@item -autocomm/-xautocomm or -autoComment true/false
-@cindex autocomm, option
-@cindex autoComment, option
-Sets the Auto Comment menu option. @xref{Options Menu}. Default: false.
-@item -autoflag/-xautoflag or -autoCallFlag true/false
-@cindex autoflag, option
-@cindex autoCallFlag, option
-Sets the Auto Flag menu option.  @xref{Options Menu}. Default: false.
-@item -autobs/-xautobs or -autoObserve true/false
-@cindex autobs, option
-@cindex autoObserve, option
-Sets the Auto Observe menu option.  @xref{Options Menu}. Default: false.
-@item -autoKibitz
-@cindex autoKibitz, option
-Enables kibitzing of the engines last thinking output (depth, score, time, speed, PV) 
-before it moved
-to the ICS, in zippy mode. The option @code{showThinking} must be switched on for 
-this option to work.
-Also diverts similar kibitz information of an opponent engine that is playing you 
-through the ICS to the engine-output window, as if the engine was playing locally.
-@item -seekGraph true/false or -sg
-@cindex seekGraph, option
-@cindex sg, option
-Enables displaying of the seek graph by left-clicking the board when
-you are logged on to an ICS and currently idle.
-The seek graph show all players currently seeking games on the ICS,
-plotted according to their rating and the time control of the game they seek,
-in three different colors (for rated, unrated and wild games).
-Computer ads are displayed as squares, human ads are dots.
-Default: false.
-@item -autoRefresh true/false
-@cindex autoRefresh, option
-Enables automatic updating of the seek graph,
-by having the ICS send a running update of all newly placed
-and removed seek ads.
-This consumes a substantial amount of communication bandwidth,
-and is only supported for FICS and ICC.
-Default: false.
-@item -backgroundObserve true/false
-@cindex backgroundObserve, option
-When true, boards sent to you by the ICS from other games while you are playing
-(e.g. because you are observing them)
-will not be automatically displayed.
-Only a summary of time left and material of both players will appear
-in the message field above the board.
-XBoard will remember the last board it has received this way,
-and will display it instead of the position in your own game
-when you press the right mouse button.
-No other information is stored on such games observed in the background;
-you cannot save such a game later, or step through its moves.
-This feature is provided solely for the benefit of bughouse players,
-to enable them to peek at their partner's game without the need
-to logon twice.
-Default: false.
-@item -dualBoard true/false
-@cindex dualBoard, option
-In combination with -backgroundObserve true, this option will display
-the board of the background game side by side with that of your own game,
-so you can have it in view permanently.
-Any board or holdings info coming in will be displayed on the secondary
-board immediately.
-This feature is still experimental and largely unfinished.
-There is no animation or highlighting of moves on the secondary board.
-Default: false.
-@item -disguisePromotedPieces true/false
-@cindex disguisePromotedPieces, option
-When set promoted Pawns in crazyhouse/bughouse are displayed identical
-to primordial pieces of the same type, rather than distinguishable.
-Default: true.
-@item -moves/-xmoves or -getMoveList true/false
-@cindex moves, option
-@cindex getMoveList, option
-Sets the Get Move List menu option.  @xref{Options Menu}.  Default: true.
-@item -alarm/-xalarm or -icsAlarm true/false
-@cindex alarm, option
-@cindex icsAlarm, option
-Sets the ICS Alarm menu option.  @xref{Options Menu}. Default: true.
-@item -icsAlarmTime ms
-@cindex icsAlarmTime, option
-Sets the time in milliseconds for the ICS Alarm menu option.
-@xref{Options Menu}. Default: 5000.
-@item lowTimeWarning true/false
-@cindex lowTimeWarning, option
-Controls a color change of the board as a warning your time is running out.
-@xref{Options Menu}. Default: false.
-@item -pre/-xpre \fRor\fB -premove true/false
-@cindex pre, option
-@cindex premove, option
-Sets the Premove menu option. @xref{Options Menu}. Default: true.
-@item -prewhite/-xprewhite or -premoveWhite
-@itemx -preblack/-xpreblack or -premoveBlack
-@itemx -premoveWhiteText string
-@itemx -premoveBlackText string
-@cindex prewhite, option
-@cindex premoveWhite, option
-@cindex preblack, option
-@cindex premoveBlack, option
-@cindex premoveWhiteText, option
-@cindex premoveBlackText, option
-Set the menu options for specifying the first move for either color. 
-@xref{Options Menu}. Defaults: false and empty strings, so no pre-moves.
-@item -quiet/-xquiet or -quietPlay true/false
-@cindex quiet, option
-@cindex quietPlay, option
-Sets the Quiet Play menu option.  @xref{Options Menu}.  Default: false.
-@item -colorizeMessages or -colorize/-xcolorize
-@cindex Colors
-@cindex colorize, option
-@cindex colorizeMessages, option
-Setting colorizeMessages
-to true tells XBoard to colorize the messages received from
-the ICS.  Colorization works only if your xterm 
-supports ISO 6429 escape sequences for changing text colors.
-Default: true.
-@item -colorShout foreground,background,bold
-@itemx -colorSShout foreground,background,bold
-@itemx -colorCShout foreground,background,bold
-@itemx -colorChannel1 foreground,background,bold
-@itemx -colorChannel foreground,background,bold
-@itemx -colorKibitz foreground,background,bold
-@itemx -colorTell foreground,background,bold
-@itemx -colorChallege foreground,background,bold
-@itemx -colorRequest foreground,background,bold
-@itemx -colorSeek foreground,background,bold
-@itemx -colorNormal foreground,background,bold
-@cindex Colors
-@cindex colorShout, option
-@cindex colorSShout, option
-@cindex colorCShout, option
-@cindex colorChannel1, option
-@cindex colorChannel, option
-@cindex colorKibitz, option
-@cindex colorTell, option
-@cindex colorChallenge, option
-@cindex colorRequest, option
-@cindex colorSeek, option
-@cindex colorNormal, option
-These options set the colors used when colorizing ICS messages.
-All ICS messages are grouped into one of these categories:
-shout, sshout, channel 1, other channel, kibitz, tell, challenge, 
-request (including abort, adjourn, draw, pause, and takeback), or
-normal (all other messages).  
-
-Each foreground or background argument can be one of the following:
-black, red, green, yellow, blue, magenta, cyan, white, or default.
-Here ``default'' means the default foreground or background color of
-your xterm.  Bold can be 1 or 0.  If background is omitted, ``default''
-is assumed; if bold is omitted, 0 is assumed.
-
-@item -soundProgram progname
-@cindex soundProgram, option
-@cindex Sounds
-If this option is set to a sound-playing program that is installed and
-working on your system, XBoard can play sound files when certain
-events occur, listed below.  The default program name is "play".  If
-any of the sound options is set to "$", the event rings the terminal
-bell by sending a ^G character to standard output, instead of playing
-a sound file.  If an option is set to the empty string "", no sound is
-played for that event.
-@item -soundDirectory directoryname
-@cindex soundDirectory, option
-@cindex Sounds
-This option specifies where XBoard will look for sound files,
-when these are not given as an absolute path name.
-@item -soundShout filename
-@itemx -soundSShout filename
-@itemx -soundCShout filename
-@itemx -soundChannel filename
-@itemx -soundChannel1 filename
-@itemx -soundKibitz filename
-@itemx -soundTell filename
-@itemx -soundChallenge filename
-@itemx -soundRequest filename
-@itemx -soundSeek filename
-@cindex soundShout, option
-@cindex soundSShout, option
-@cindex soundCShout, option
-@cindex soundChannel, option
-@cindex soundChannel1, option
-@cindex soundKibitz, option
-@cindex soundTell, option
-@cindex soundChallenge, option
-@cindex soundRequest, option
-@cindex soundSeek, option
-These sounds are triggered in the same way as the colorization events
-described above.  They all default to "", no sound.  They are played
-only if the colorizeMessages is on.
-CShout is synonymous with SShout.
-@item -soundMove filename
-@cindex soundMove, option
-This sound is played when a player other than yourself makes a move.
-Default: "$".
-@item -soundRoar filename
-@cindex soundRoar, option
-This sound is played when a Lion makes a hit-and-run or double capture/
-Default: "" (no sound).
-@item -soundIcsAlarm filename
-@cindex soundIcsAlarm, option
-This sound is used by the ICS Alarm menu option.  Default: "$".
-@item -soundIcsWin filename
-@cindex soundIcsWin, option
-This sound is played when you win an ICS game.  Default: "" (no sound).
-@item -soundIcsLoss filename
-@cindex soundIcsLoss, option
-This sound is played when you lose an ICS game.  Default: "" (no sound).
-@item -soundIcsDraw filename
-@cindex soundIcsDraw, option
-This sound is played when you draw an ICS game.  Default: "" (no sound).
-@item -soundIcsUnfinished filename
-@cindex soundIcsUnfinished, option
-This sound is played when an ICS game that you are participating in is
-aborted, adjourned, or otherwise ends inconclusively.  Default: "" (no
-sound).
-@end table
-
-@node Load and Save options
-@section Load and Save options
-@cindex Options, Load and Save
-@cindex Load and Save options
-@table @asis
-@item -lgf or -loadGameFile file
-@itemx -lgi or -loadGameIndex index
-@cindex lgf, option
-@cindex loadGameFile, option
-@cindex lgi, option
-@cindex loadGameIndex, option
-If the @code{loadGameFile} option is set, XBoard loads the specified
-game file at startup. The file name @file{-} specifies the standard
-input. If there is more than one game in the file, XBoard
-pops up a menu of the available games, with entries based on their PGN 
-(Portable Game Notation) tags.
-If the @code{loadGameIndex} option is set to @samp{N}, the menu is suppressed
-and the N th game found in the file is loaded immediately.
-The menu is also suppressed if @code{matchMode} is enabled or if the game file
-is a pipe; in these cases the first game in the file is loaded immediately.
-Use the @file{pxboard} shell script provided with XBoard if you
-want to pipe in files containing multiple games and still see the menu.
-If the loadGameIndex specifies an index -1, this triggers auto-increment
-of the index in @code{matchMode}, which means that after every game the
-index is incremented by one, causing each game of the match to be played
-from the next game in the file. Similarly, specifying an index value of -2
-causes the index to be incremented every two games, so that each game
-in the file is used twice (with reversed colors).
-The @code{rewindIndex} option causes the index to be reset to the
-first game of the file when it has reached a specified value.
-@item -rewindIndex n
-Causes a position file or game file to be rewound to its beginning after n
-positions or games in auto-increment @code{matchMode}. 
-See @code{loadPositionIndex} and @code{loadGameIndex}.
-default: 0 (no rewind).
-@item -td or -timeDelay seconds
-@cindex td, option
-@cindex timeDelay, option
-Time delay between moves during @samp{Load Game} or @samp{Analyze File}. 
-Fractional seconds are allowed; try @samp{-td 0.4}. 
-A time delay value of -1 tells
-XBoard not to step through game files automatically. Default: 1 second.
-@item -sgf or -saveGameFile file
-@cindex sgf, option
-@cindex saveGameFile, option
-If this option is set, XBoard appends a record of every game
-played to the specified file. The file name @file{-} specifies the
-standard output.
-@item -autosave/-xautosave or -autoSaveGames true/false
-@cindex autosave, option
-@cindex autoSaveGames, option
-Sets the Auto Save menu option.  @xref{Options Menu}.  Default: false.
-Ignored if @code{saveGameFile} is set.
-@item -onlyOwnGames true/false
-@cindex onlyOwnGames, option
-Suppresses auto-saving of ICS observed games. Default: false.
-@item -lpf or -loadPositionFile file
-@itemx -lpi or -loadPositionIndex index
-@cindex lpf, option
-@cindex loadPositionFile, option
-@cindex lpi, option
-@cindex loadPositionIndex, option
-If the @code{loadPositionFile} option is set, XBoard loads the
-specified position file at startup. The file name @file{-} specifies the
-standard input. If the @code{loadPositionIndex} option is set to N,
-the Nth position found in the file is loaded; otherwise the
-first position is loaded.
-If the loadPositionIndex specifies an index -1, this triggers auto-increment
-of the index in @code{matchMode}, which means that after every game the
-index is incremented by one, causing each game of the match to be played
-from the next position in the file. Similarly, specifying an index value of -2
-causes the index to be incremented every two games, so that each position
-in the file is used twice (with the engines playing opposite colors).
-The @code{rewindIndex} option causes the index to be reset to the
-first position of the file when it has reached a specified value.
-@item -spf or -savePositionFile file
-@cindex spf, option
-@cindex savePositionFile, option
-If this option is set, XBoard appends the final position reached
-in every game played to the specified file. The file name @file{-}
-specifies the standard output.
-@item -positionDir directory
-@cindex positionDir, option
-Specifies the directory where file browsing should start when using
-the @samp{Load Position} menu item.
-@item -pgnExtendedInfo true/false
-@cindex pgnExtendedInfo, option
-If this option is set, XBoard saves depth, score and time used for each 
-move that the engine found as a comment in the PGN file.
-Default: false.
-@item -pgnEventHeader string
-@cindex pgnEventHeader, option
-Sets the name used in the PGN event tag to string. 
-Default: "Computer Chess Game".
-@item -pgnNumberTag true/false
-@cindex pgnNumberTag, option
-Include the (unique) sequence number of a tournament game into the saved
-PGN file as a 'number' tag.
-Default: false.
-@item -saveOutOfBookInfo true/false
-@cindex saveOutOfBookInfo, option
-Include the information on how the engine(s) game out of its opening book 
-in a special 'annotator' tag with the PGN file.
-Default: true.
-@item -oldsave/-xoldsave or -oldSaveStyle true/false
-@cindex oldsave, option
-@cindex oldSaveStyle, option
-Sets the Old Save Style menu option.  @xref{Options Menu}.  Default: false.
-@item -gameListTags string
-@cindex gameListTags, option
-The character string lists the PGN tags that should be printed in the
-Game List, and their order. The meaning of the codes is e=event,
-s=site, d=date, o=round, p=players, r=result, w=white Elo, b=black Elo,
-t=time control, v=variant, a=out-of-book info, c=result comment.
-Default: "eprd"
-@item -ini or -settingsFile filename
-@itemx -saveSettingsFile filename
-@itemx @@filename
-@cindex saveSettingsFile, option
-@cindex SettingsFile, option
-@cindex init, option
-@cindex at sign, option
-When XBoard encounters an option -settingsFile (or -ini for short),
-or @@filename, it tries to read the mentioned file,
-and substitutes the contents of it (presumaby more command-line options)
-in place of the option.
-In the case of -ini or -settingsFile, the name of a successfully read
-settings file is also remembered as the file to use for saving settings
-(automatically on exit, or on user command).
-An option of the form @@filename does not affect saving.
-The option -saveSettingsFile does specify a name of the file to use
-for saving, without reading any options from it, and is thus also effective
-when the file did not exist yet.
-So the settings will be saved to the file specified in the last
--saveSettingsFile or succesfull -settingsFile / -ini command,
-if any, and in /etc/xboard/xboard.conf otherwise.
-Usualy the latter is only accessible for the system administrator, though, 
-and will be used to contain system-wide default settings, amongst which
-a -saveSettingsFile and -settingsFile options to specify a settings file
-accessible to the individual user, such as ~/.xboardrc in the user's
-home directory.
-@item -saveSettingsOnExit true/false
-@cindex saveSettingsOnExit, option
-Controls saving of options on the settings file.  @xref{Options Menu}.
-Default: true.
-@end table
-
-@node User interface options
-@section User interface options
-@cindex User interface options
-@cindex Options, User interface
-@table @asis
-@item -noGUI
-@cindex noGUI, option
-Suppresses all GUI functions of XBoard 
-(to speed up automated ultra-fast engine-engine games, which you don't want to watch). 
-There will be no board or clock updates, no printing of moves, 
-and no update of the icon on the task bar in this mode.
-@item -logoSize N
-@cindex logoSize, option
-This option controls the drawing of player logos next to the clocks.
-The integer N specifies the width of the logo in pixels;
-the logo height will always be half the width.
-When N = 0, no logos will be diplayed.
-Default: 0.
-@item -firstLogo imagefile
-@itemx -secondLogo imagefile
-@cindex firstLogo, option
-@cindex secondLogo, option
-Specify the images to be used as player logos when @code{logoSize}
-is non-zero, next to the white and black clocks, respectively.
-@item -autoLogo true/false
-@itemx -logoDir filename
-@cindex autoLogo, option
-@cindex logoDir, option
-When @code{autoLogo} is set, XBoard will search for a PNG image file
-with the name of the engine or ICS in the directory specified
-by @code{logoDir}.
-For a human player it will look for a file <username>.png in this
-directory, but only when ~/.logo.png does not provide one.
-@item -recentEngines number
-@itemx -recentEngineList list
-@cindex recentEngines, option
-@cindex recentEngineList, option
-When the number is larger than zero, it determines how many recently
-used engines will be appended at the bottom of the @samp{Engines} menu.
-The engines will be saved in your settings file as the option
-@code{recentEngineList}, by their nicknames,
-and the most recently used one will always be sorted to the top.
-If the list after that is longer than the specified number,
-the last one is discarded.
-Changes in the list will only become visible the next session,
-provided you saved the settings.
-Default: 6.
-@item -oneClickMove true/false
-@cindex oneClickMove, option
-When set, this option allows you to enter moves by only clicking the to-
-or from-square, when only a single legal move to or from that square
-is possible.
-Double-clicking a piece (or clicking an already selected piece)
-will instruct that piece to make the only capture it can legally do.
-Default: false.
-@item -monoMouse true/false
-@cindex monoMouse, option
-When set button 1 clicks on empty squares in Edit Position mode
-will be interpreted as button 3 clicks, so they place a piece.
-Default: false.
-@item -movesound/-xmovesound or -ringBellAfterMoves true/false
-@cindex movesound, option
-@cindex bell, option
-@cindex ringBellAfterMoves, option
-Sets the Move Sound menu option.  @xref{Options Menu}.  Default: false.
-For compatibility with old XBoard versions, -bell/-xbell are also 
-accepted as abbreviations for this option.
-@item -analysisBell N
-@cindex analysisBell, option
-When N is non-zero, the Move Sound will be played whenever a new
-PV arrives in analysis mode after more than N seconds of analysis.
-Default: 0.
-@item -exit/-xexit or -popupExitMessage true/false
-@cindex exit, option
-@cindex popupExitMessage, option
-Sets the Popup Exit Message menu option.  @xref{Options Menu}. Default: true.
-@item -popup/-xpopup or -popupMoveErrors true/false
-@cindex popup, option
-@cindex popupMoveErrors, option
-Sets the Popup Move Errors menu option.  @xref{Options Menu}. Default: false.
-@item -queen/-xqueen or -alwaysPromoteToQueen true/false
-@cindex queen, option
-@cindex alwaysPromoteToQueen, option
-Sets the Always Queen menu option.  @xref{Options Menu}.  Default: false.
-@item -sweepPromotions true/false
-@cindex sweepPromotion, option
-Sets the @samp{Almost Always Promote to Queen} menu option.  
-@xref{Options Menu}.  Default: false.
-@item -legal/-xlegal or -testLegality true/false
-@cindex legal, option
-@cindex testLegality, option
-Sets the Test Legality menu option.  @xref{Options Menu}.  Default: true.
-@item -size or -boardSize (sizeName | n1,n2,n3,n4,n5,n6,n7)
-@cindex size, option
-@cindex boardSize, option
-@cindex board size
-Determines how large the board will be, by selecting the pixel size
-of the pieces and setting a few related parameters.
-The sizeName can be one of: Titanic, giving 129x129 pixel pieces,
-Colossal 116x116, Giant 108x108, Huge 95x95, Big 87x87, Large 80x80, Bulky 72x72,
-Medium 64x64, Moderate 58x58, Average 54x54, Middling 49x49, Mediocre
-45x45, Small 40x40, Slim 37x37, Petite 33x33, Dinky 29x29, Teeny 25x25,
-or Tiny 21x21.
-Xboard installs with a set of scalable (svg) piece images,
-which it scales to any of the requested sizes.
-The square size can further be continuously scaled by sizing the board window,
-but this only adapts the size of the pieces,
-and has no effect on the width of the grid lines or the font choice
-(both of which would depend on he selected boardSize).
-The default depends on the size of your screen; it is approximately the
-largest size that will fit without clipping.
-
-You can select other sizes or vary other layout parameters by providing
-a list of comma-separated values (with no spaces) as the argument.
-You do not need to provide all the values; for any you omit from the
-end of the list, defaults are taken from the nearest built-in size.
-The value @code{n1} gives the piece size, @code{n2} the width of the
-black border
-between squares, @code{n3} the desired size for the 
-clockFont, @code{n4} the desired size for the coordFont,
-@code{n5} the desired size for the messageFont,
-@code{n6} the smallLayout flag (0 or 1), 
-and @code{n7} the tinyLayout flag (0 or 1).  
-All dimensions are in pixels.
-If the border between squares is eliminated (0 width), the various
-highlight options will not work, as there is nowhere to draw the highlight.
-If smallLayout is 1 and @code{titleInWindow} is true, 
-the window layout is rearranged to make more room for the title.
-If tinyLayout is 1, the labels on the menu bar are abbreviated
-to one character each and the buttons in the button bar are made narrower.
-@item -overrideLineGap n
-@cindex overrideLineGap, option
-When n >= 0, this forces the width of the black border between squares
-to n pixels for any board size. Mostly used to suppress the grid
-entirely by setting n = 0, e.g. in xiangqi or just getting a prettier
-picture. When n < 0 this the size-dependent width of the grid lines
-is used. Default: -1.
-@item -coords/-xcoords or -showCoords true/false
-@cindex coords, option
-@cindex showCoords, option
-Sets the Show Coords menu option.  @xref{Options Menu}.  Default: false.
-The @code{coordFont} option specifies what font to use.
-@item -autoraise/-xautoraise or -autoRaiseBoard true/false
-@cindex autoraise, option
-@cindex autoRaiseBoard, option
-Sets the Auto Raise Board menu option.  @xref{Options Menu}.  Default: true.
-@item -autoflip/-xautoflip or -autoFlipView true/false
-@cindex autoflip, option
-@cindex autoFlipView, option
-Sets the Auto Flip View menu option.  @xref{Options Menu}.  Default: true.
-@item -flip/-xflip or -flipView true/false
-@cindex flip, option
-@cindex flipView, option
-If Auto Flip View is not set, or if you are observing but not participating
-in a game, then the positioning of the board at the start of each game
-depends on the flipView option.  If flipView is false (the default),
-the board is positioned so that the white pawns move from the bottom to the
-top; if true, the black pawns move from the bottom to the top.
-In any case, the Flip menu option (see @ref{Options Menu})
-can be used to flip the board after
-the game starts.
-@item -title/-xtitle or -titleInWindow true/false
-@cindex title, option
-@cindex titleInWindow, option
-If this option is true, XBoard displays player names (for ICS
-games) and game file names (for @samp{Load Game}) inside its main
-window. If the option is false (the default), this information is
-displayed only in the window banner. You probably won't want to
-set this option unless the information is not showing up in the
-banner, as happens with a few X window managers.
-@item -buttons/-xbuttons or -showButtonBar True/False
-@cindex buttons, option
-@cindex showButtonBar, option
-If this option is False, xboard omits the [<<] [<] [P] [>] [>>] button
-bar from the window, allowing the message line to be wider.  You can
-still get the functions of these buttons using the menus or their keyboard
-shortcuts.  Default: true.
-@item -evalZoom factor
-@cindex evalZoom, option
-The score interval (-1,1) is blown up on the vertical axis of
-the Evaluation Graph by the given factor.
-Default: 1
-@item -evalThreshold n
-@cindex evalThreshold, option
-Score below n (centiPawn) are plotted as 0 in the Evaluation Graph.
-Default: 25
-@item -mono/-xmono or -monoMode true/false
-@cindex mono, option
-@cindex monoMode, option
-Determines whether XBoard displays its pieces and squares with
-two colors (true) or four (false). You shouldn't have to
-specify @code{monoMode}; XBoard will determine if it is necessary.
-@item -showTargetSquares true/false
-@cindex showTargetSquares, option
-Determines whether XBoard can highlight the squares a piece has
-legal moves to, when you grab that piece with the mouse.
-Default: false.
-@item -flashCount count
-@itemx -flashRate rate
-@itemx -flash/-xflash
-@cindex flashCount, option
-@cindex flashRate, option
-@cindex flash, option
-@cindex xflash, option
-These options enable flashing of pieces when they
-land on their destination square.
-@code{flashCount}
-tells XBoard how many times to flash a piece after it
-lands on its destination square.
-@code{flashRate}
-controls the rate of flashing (flashes/sec).
-Abbreviations:
-@code{flash}
-sets flashCount to 3.
-@code{xflash}
-sets flashCount to 0.
-Defaults:  flashCount=0 (no flashing), flashRate=5.
-@item -highlight/-xhighlight or -highlightLastMove true/false
-@cindex highlight, option
-@cindex highlightLastMove, option
-Sets the Highlight Last Move menu option. @xref{Options Menu}. Default: false.
-@item -highlightMoveWithArrow true/false
-@cindex highlight Arrow, option
-@cindex highlightMoveWithArrow, option
-Sets the Highlight with Arrow menu option. @xref{Options Menu}. Default: false.
-@item -blind/-xblind or -blindfold true/false
-@cindex blind, option
-@cindex blindfold, option
-Sets the Blindfold menu option.  @xref{Options Menu}.  Default: false.
-@item -periodic/-xperiodic or -periodicUpdates true/false
-@cindex periodic, option
-@cindex periodicUpdates, option
-Controls updating of current move andnode counts in analysis mode. Default: true.
-@item -fSAN
-@itemx -sSAN
-@cindex fSAN, option
-@cindex sSAN, option
-Causes the PV in thinking output of the mentioned engine to be converted 
-to SAN before it is further processed.
-Warning: this might lose engine output not understood by the parser,
-and uses a lot of CPU power.
-Default: the PV is displayed exactly as the engine produced it.
-@item -showEvalInMoveHistory true/false
-@cindex showEvalInMoveHistory, option
-Controls whether the evaluation scores and search depth of engine moves
-are displayed with the move in the move-history window.
-Default: true.
-@item -clockFont font
-@cindex clockFont, option
-@cindex Font, clock
-The font used for the clocks. If the option value is a pattern
-that does not specify the font size, XBoard tries to choose an
-appropriate font for the board size being used.
-Default Xaw: -*-helvetica-bold-r-normal--*-*-*-*-*-*-*-*.
-Default GTK: Sans Bold %d.
-@item -coordFont font
-@cindex coordFont, option
-@cindex Font, coordinates
-The font used for rank and file coordinate labels if @code{showCoords}
-is true. If the option value is a pattern that does not specify
-the font size, XBoard tries to choose an appropriate font for
-the board size being used.
-Default Xaw: -*-helvetica-bold-r-normal--*-*-*-*-*-*-*-*.
-Default GTK: Sans Bold %d.
-@item -messageFont font
-@cindex messageFont, option
-@cindex Font, message
-The font used for popup dialogs, menus, etc.
-If the option value is a pattern that does not specify
-the font size, XBoard tries to choose an appropriate font for
-the board size being used.
-Default Xaw: -*-helvetica-medium-r-normal--*-*-*-*-*-*-*-*.
-Default GTK: Sans Bold %d
-@item -tagsFont font
-@cindex tagsFont, option
-@cindex Font, tags
-The font used in the Edit Tags dialog.
-If the option value contains %d, XBoard will replace it by
-an appropriate font for the board size being used.
-(Only used in GTK build.)
-Default: Sans Normal %d.
-@item -commentFont font
-@cindex commentFont, option
-@cindex Font, comment
-The font used in the Edit Comment dialog.
-If the option value contains %d, XBoard will replace it by
-an appropriate font for the board size being used.
-(Only used in GTK build.)
-Default: Sans Normal %d.
-@item -icsFont font
-@cindex icsFont, option
-@cindex Font, ics
-The font used to display ICS output in the ICS  Chat window.
-As ICS output often contains tables aligned by spaces,
-a mono-space font is recommended here.
-If the option value contains %d, XBoard will replace it by
-an appropriate font for the board size being used.
-(Only used in GTK build.)
-Default: Monospace Normal %d.
-@item -moveHistoryFont font
-@cindex moveHistoryFont, option
-@cindex Font, moveHistory
-The font used in Move History and Engine Output windows.
-As these windows display mainly moves,
-one could use a figurine font here.
-If the option value contains %d, XBoard will replace it by
-an appropriate font for the board size being used.
-(Only used in GTK build.)
-Default: Sans Normal %d.
-@item -gameListFont font
-@cindex gameListFont, option
-@cindex Font, gameList
-The font used in the listbox of the Game List window.
-If the option value contains %d, XBoard will replace it by
-an appropriate font for the board size being used.
-(Only used in GTK build.)
-Default: Sans Bold %d.
-@item -fontSizeTolerance tol
-@cindex fontSizeTolerance, option
-In the font selection algorithm, a nonscalable font will be preferred
-over a scalable font if the nonscalable font's size differs
-by @code{tol} pixels
-or less from the desired size.  A value of -1 will force
-a scalable font to always be used if available; a value of 0 will
-use a nonscalable font only if it is exactly the right size; 
-a large value (say 1000) will force a nonscalable font to always be
-used if available.  Default: 4.
-@item -pid or -pieceImageDirectory dir
-@cindex pid, option
-@cindex pieceImageDirectory, option
-This options control what piece images xboard uses.
-XBoard will look in the specified directory for an image in png
-or svg format for every piece type, with names like BlackQueen.svg,
-WhiteKnight.svg etc.
-When neither of these is found (or no valid directory is specified)
-XBoard will first ty to use an image White/BlackTile.svg in that same
-directory, and if that is not present either
-use the svg piece that was installed with it
-(from the source-tree directory @samp{svg}).
-Both svg and png images will be scaled by XBoard to the required size,
-but the png pieces lose much in quality when scaled too much.
-Default: "".
-@item -inscriptions utf8string
-@cindex inscriptions, option
-The positions in the utf8string correspond to XBoard's piece types,
-and for each type a glyph can be defined.
-This glyph will then be rendered on top of the image for the piece.
-This is useful in combination with the White/BlackTile.svg images,
-which could be the image of a blank Shogi tile, for writing the
-kanji piece name on top of it on the fly.
-Default: "".
-
-@item -whitePieceColor color
-@itemx -blackPieceColor color
-@itemx -lightSquareColor color
-@itemx -darkSquareColor color
-@itemx -highlightSquareColor color
-@itemx -preoveHighlightColor color
-@itemx -lowTimeWarningColor color
-@cindex Colors
-@cindex whitePieceColor, option
-@cindex blackPieceColor, option
-@cindex lightSquareColor, option
-@cindex darkSquareColor, option
-@cindex highlightSquareColor, option
-@cindex premoveHighlightColor, option
-@cindex lowTimeWarningColor, option
-Colors to use for the pieces, squares, and square highlights.
-Defaults:
-
-@example
--whitePieceColor       #FFFFCC
--blackPieceColor       #202020
--lightSquareColor      #C8C365
--darkSquareColor       #77A26D
--highlightSquareColor  #FFFF00
--premoveHighlightColor #FF0000
--lowTimeWarningColor   #FF0000
-@end example
-
-On a grayscale monitor you might prefer:
-
-@example
--whitePieceColor       gray100
--blackPieceColor       gray0
--lightSquareColor      gray80
--darkSquareColor       gray60
--highlightSquareColor  gray100
--premoveHighlightColor gray70
--lowTimeWarningColor   gray70
-@end example
-
-The PieceColor options only work properly if the image files
-defining the pieces were pure black & white
-(possibly anti-aliased to produce gray scales
-and semi-transparancy),
-like the pieces images that come with the install.
-Their effect on colored pieces is undefined.
-The SquareColor option only have an effect
-when no board textures are used.
-@item -trueColors true/false
-@cindex trueColors, option
-When set, this option suppresses the effect  of the
-PieceColor options mentioned above.
-This is recommended for images that are already colored.
-@item -useBoardTexture true/false
-@itemx -liteBackTextureFile filename
-@itemx -darkBackTextureFile filename
-@cindex useBoardTexture, option
-@cindex liteBackTextureFile, option
-@cindex darkBackTextureFile, option
-Indicate the png image files to be used for drawing the board squares, 
-and if they should be used rather than using simple colors.
-The algorithm for cutting squares out of a given bitmap is such that
-the picture is perfectly reproduced when a bitmap the size of
-the complete board is given.
-If the filename ends in "-NxM.png", with integer N and M,
-it is assumed to contain a bitmap of a complete board of N files
-and M ranks, and XBoard will scale it to exactly match the
-current square size.
-If N=M=0 it scales the entire bitmap to the size of the board,
-irrespective of the number of files and ranks of the latter.
-Without any -NxM suffix textures are only blown up by an integer
-factor when they are smaller than the square size, or,
-when the name starts with "xq", too small to cover the
-complete Xiangqi board.
-Default: false and ""
-@item -drag/-xdrag or -animateDragging true/false
-@cindex drag, option
-@cindex animateDragging, option
-Sets the Animate Dragging menu option. @xref{Options Menu}.  Default: true.
-@item -animate/-xanimate or -animateMoving true/false
-@cindex animate, option
-@cindex animateMoving, option
-Sets the Animate Moving menu option. @xref{Options Menu}.  Default: true.
-@item -animateSpeed n
-@cindex -animateSpeed, option
-Number of milliseconds delay between each animation frame when Animate
-Moves is on.
-@item -autoDisplayComment true/false
-@itemx -autoDisplayTags true/false
-@cindex -autoDisplayComment, option
-@cindex -autoDisplayTags, option
-If set to true, these options cause the window with the move comments,
-and the window with PGN tags, respectively, to pop up automatically when
-such tags or comments are encountered during the replaying a stored or
-loaded game.  Default: true.
-@item -pasteSelection true/false
-@cindex -pasteSelection, option
-If this option is set to true, the Paste Position and Paste Game
-options paste from the currently selected text.  If false, they paste
-from the clipboard.  Default: false.
-@item -autoCopyPV true|false
-@cindex autoCopyPV, option
-When this option is set, the position displayed on the board when
-you terminate a PV walk 
-(initiated by a right-click on board or engine-output window)
-will be automatically put on the clipboard as FEN.
-Default: false.
-@item -dropMenu true|false
-@cindex dropMenu, option
-This option allows you to emulate old behavior, 
-where the right mouse button brings up the (now deprecated) drop menu 
-rather than displaying the position at the end of the principal variation. 
-Default: False.
-@item -pieceMenu true|false
-@cindex pieceMenu, option
-This option allows you to emulate old behavior, 
-where the right mouse button brings up the (now deprecated) piece menu
-in Edit Position mode.
-From this menu you can select the piece to put on the square you
-clicked to bring up the menu,
-or select items such as @kbd{clear board}.
-You can also @kbd{promote} or @kbd{demote} a clicked piece to convert
-it into an unorthodox piece that is not directly in the menu,
-or give the move to @kbd{black} or @kbd{white}.
-@item -variations true|false
-@cindex variations, option
-When this option is on, you can start new variations in Edit Game or
-Analyze mode by holding the Shift key down while entering a move.
-When it is off, the Shift key will be ignored.
-Default: False.
-@item -appendPV true|false
-@cindex appendPV, option
-When this option is on, a button 3 click left of a PV in the Engine
-Output window will play the first move of that PV in Analyze mode,
-or as many moves as you walk through it by moving the mouse.
-Default: False.
-@item -absoluteAnalysisScores true|false
-@cindex absoluteAnalysisScores, option
-When true, scores on the Engine Output window during analysis
-will be printed from the white point-of-view, rather than the
-side-to-move point-of-view.
-Default: False.
-@item -scoreWhite true|false
-@cindex scoreWhite, option
-When true, scores will always be printed from the white point-of-view, 
-rather than the side-to-move point-of-view.
-Default: False.
-@item -memoHeaders true|false
-@cindex memoHeaders, option
-When true, column headers will be displayed in the Engine Output window
-for the depth, score, time and nodes data.
-A button 3 click on these headers will hide or show the corresponding data.
-(Not intended for dynamic use, as already printed data of the current search
-will not be affected!)
-Defaul: False.
-@end table
-
-@node Adjudication Options
-@section Adjudication Options
-@cindex Options, adjudication
-@table @asis
-@item -adjudicateLossThreshold n
-@cindex adjudicateLossThreshold, option
-If the given value is non-zero, XBoard adjudicates the game as a loss 
-if both engines agree for a duration of 6 consecutive ply that the score 
-is below the given score threshold for that engine. Make sure the score 
-is interpreted properly by XBoard, 
-using @code{-firstScoreAbs} and @code{-secondScoreAbs} if needed. 
-Default: 0 (no adjudication)
-@item -adjudicateDrawMoves n
-@cindex adjudicateDrawMoves, option
-If the given value is non-zero, XBoard adjudicates the game as a draw 
-if after the given number of moves it was not yet decided. Default: 0 (no adjudication)
-@item -checkMates true/false
-@cindex checkMates, option
-If this option is set, XBoard detects all checkmates and stalemates, 
-and ends the game as soon as they occur. 
-Legality-testing must be switched on for this option to work.
-Default: true
-@item -testClaims true/false
-@cindex testClaims, option
-If this option is set, XBoard verifies all result claims made by engines, 
-and those who send false claims will forfeit the game because of it. 
-Legality-testing must be switched on for this option to work. Default: true
-@item -materialDraws true/false
-@cindex materialDraws, option
-If this option is set, XBoard adjudicates games as draws when there is 
-no sufficient material left to inflict a checkmate. 
-This applies to KBKB with like bishops (any number, actually), and to KBK, KNK and KK. 
-Legality-testing must be switched on for this option to work. Default: true
-@item -trivialDraws true/false
-@cindex trivialDraws, option
-If this option is set, XBoard adjudicates games as draws that cannot be 
-usually won without opponent cooperation. This applies to KBKB with unlike bishops, 
-and to KBKN, KNKN, KNNK, KRKR and KQKQ. The draw is called after 6 ply into these end-games, 
-to allow quick mates that can occur in some exceptional positions to be found by the engines. 
-KQKQ does not really belong in this category, and might be taken out in the future. 
-(When bitbase-based adjudications are implemented.) 
-Legality-testing must be on for this option to work. Default: false
-@item -ruleMoves n
-@cindex ruleMoves, option
-If the given value is non-zero, XBoard adjudicates the game as a draw after the given 
-number of consecutive reversible moves. Engine draw claims are always accepted after 50 moves, 
-irrespective of the given value of n.
-@item -repeatsToDraw n
-If the given value is non-zero, xboard adjudicates the game as a draw if a position 
-is repeated the given number of times. Engines draw claims are always accepted after 3 repeats, 
-(on the 3rd occurrence, actually), irrespective of the value of n. 
-Beware that positions that have different castling or en-passant rights do not count 
-as repeats, XBoard is fully e.p. and castling aware!
-@end table
-
-@node Install options
-@section Install options
-@cindex Options, install
-@table @asis
-@item --show-config parameter
-@cindex show-config, option
-When called with this option, XBoard will close immediately after printing the
-value of the indicated configuration parameter, or, when no parameter was given,
-after printing a list of all such parameters.
-Currently the only valid values for parameter are Datadir and Sysconfdir.
-This option can be used by install scripts for board themes
-to figure out where the currently active XBoard stores its data.
-@item -date timestamp
-@itemx -saveDate timestamp
-@cindex date, option
-@cindex saveDate, option
-These options specify an epoch as an integer number.
-The @code{saveDate} option is written by XBoard in the settings file every time the
-settings are saved, with the current time, so that later runs of XBoard can know this.
-The @code{date} option can be included in settings files to indicate when lines
-following it were added to those files.
-Some options will be ignored if the epoch specified by the latest @code{date} option
-predates the -saveDate setting (implying they must have been seen before).
-@item -autoInstall list
-@cindex autoInstall, option
-When the list is set to a non-empty string, XBoard will scan the
-operating system's plugin directory for engines supporting UCI
-and XBoard protocol at startup.
-When it finds an engine that was installed after it last saved
-its settings, a line to launch that engine (as per specs in
-the plugin file) is appended to the -firstChessProgramNames
-list of installed engines.
-In the future it will be possible to use the autoInstall list to limit
-this automatic adding of engines based on the chess variant they play.
-@item -addMasterOption string
-@cindex addMasterOption, option
-Adds the mentioned string as an additional line of XBoard's master settings file,
-after adding a line with a @code{date} option to timestamp it.
-Intended to add options of the 'install' type (see below) to the master file,
-which will then be processed by any XBoard that has not seen them since
-it last saved its settings.
-@item -autoClose
-@cindex autoClose, option
-The presence of this option cause XBoard to close immediately after processing
-all its options (from settings file and command line).
-Typically used from install scripts together with options that change XBoard's
-settings files, so that XBoard can be run in batch mode rather than interactively.
-@item -installEngine string
-@cindex installEngine, option
-Adds the given string as an additional line to the value of the
-@code{firstChessProgramNames} option when the -saveDate setting preceeds the -date setting.
-Intended for adding to the master settings file with the aid of -addMasterOption
-in the install script of engines, as a method for broadcasting the presence
-of a new engine to all users,
-which would then see it automatically registered with XBoard.
-Made obsolete by the advent of the plugin standard (see the @code{autoInstall} option),
-which broadcasts such presence in a non-XBoard-specific way
-by dropping *.eng files in a certain system directory.
-@item -installTheme string
-@cindex installTheme, option
-Adds the given string as an additional line to the value of the
--themeNames option when the -saveDate setting preceeds the -date setting.
-Intended for adding to the master settings file with the aid of -addMasterOption
-in the install script of board graphics themes,
-as a method for broadcasting the availability of a new theme to all users,
-who would then see the theme appear automatically in the listbox in the
-View Board menu dialog next time they run XBoard.
-@end table
-
-@node Other options
-@section Other options
-@cindex Options, miscellaneous
-@table @asis
-@item -ncp/-xncp or -noChessProgram true/false
-@cindex ncp, option
-@cindex noChessProgram, option
-If this option is true, XBoard acts as a passive chessboard; it
-does not start a chess engine at all. Turning on this option
-also turns off clockMode. Default: false.
-@item -viewer
-@itemx -viewerOptions string
-@cindex viewer, option
-@cindex viewerOptions, option
-Presence of the volatile option @code{viewer} on the command line
-will cause the value of the persistent option @code{viewerOptions}
-as stored in the settings file to be appended to the command line.
-The @code{view} option will be used by desktop associations with
-game or position file types, so that @code{viewerOptions} can be
-used to configure the exact mode XBoard will start in when it
-should act on such a file (e.g. in -ncp mode, or analyzing
-with your favorite engine). The options are also automatically
-appended when Board is invoked with a single argument not being
-an option name, which is then assumed to be the name of a
-@code{loadGameFile} or (when the name ends in .fen) a
-@code{loadPositionFile}.
-Default: "-ncp -engineOutputUp false -saveSettingsOnExit false".
-@item -tourneyOptions string
-@cindex tourneyOptions, option
-When XBoard is invoked with a single argument that is a file
-with .trn extension, it will assume this argument to be the value
-of a @code{tourneyFile} option,
-and append the value of the persistent option @code{tourneyOptions}
-as stored in the settings file to the command line.
-Thus the value of @code{tourneyOptions} can be
-used to configure XBoard to automatically start running a
-tournament when it should act on such a file.
-Default: "-ncp -mm -saveSettingsOnExit false".
-@item -mode or -initialMode modename
-@cindex mode, option
-@cindex initalMode, option
-If this option is given, XBoard selects the given modename
-from the Mode menu after starting and (if applicable) processing the
-loadGameFile or loadPositionFile option. Default: "" (no selection). 
-Other supported values are 
-MachineWhite, MachineBlack, TwoMachines, Analysis, 
-AnalyzeFile, EditGame, EditPosition, and Training.
-@item -variant varname
-@cindex variant, option
-Activates  (sometimes partial) support for playing chess variants
-against a local engine or editing variant games.  This flag is not
-needed in ICS mode.  Recognized variant names are:
-
-@example
-normal        Normal chess
-wildcastle    Shuffle chess, king can castle from d file
-nocastle      Shuffle chess, no castling allowed
-fischerandom  Fischer Random shuffle chess
-bughouse      Bughouse, ICC/FICS rules
-crazyhouse    Crazyhouse, ICC/FICS rules
-losers        Lose all pieces or get mated (ICC wild 17)
-suicide       Lose all pieces including king (FICS)
-giveaway      Try to have no legal moves (ICC wild 26)
-twokings      Weird ICC wild 9
-kriegspiel    Opponent's pieces are invisible
-atomic        Capturing piece explodes (ICC wild 27)
-3check        Win by giving check 3 times (ICC wild 25)
-shatranj      An ancient precursor of chess (ICC wild 28)
-xiangqi       Chinese Chess (on a 9x10 board)
-shogi         Japanese Chess (on a 9x9 board & piece drops) 
-capablanca    Capablanca Chess (10x8 board, with Archbishop 
-              and Chancellor pieces)
-gothic        similar, with a better initial position
-caparandom    An FRC-like version of Capablanca Chess (10x8) 
-janus         A game with two Archbishops (10x8 board)
-courier       Medieval intermediate between shatranj and 
-              modern Chess (on 12x8 board) 
-falcon        Patented 10x8 variant with two Falcon pieces
-berolina      Pawns capture straight ahead, and move diagonally 
-cylinder      Pieces wrap around the board edge
-knightmate    King moves as Knight, and vice versa 
-super         Superchess (shuffle variant with 4 exo-pieces)
-makruk        Thai Chess (shatranj-like, P promotes on 6th rank)
-asean         ASEAN Chess (a modernized version of Makruk)
-spartan       Spartan Chess (black has unorthodox pieces)
-great         Great Shatranj, a 10x8 variant without sliders
-grand         Grand Chess, on 10x10 with Capablanca pieces
-lion          Mighty-Lion Chess, with a multi-capturing Lion
-elven         Eleven Chess, with Lion and crowned sliders on 10x10
-chu           Chu Shogi, historic 12x12 variant with 2x46 pieces
-fairy         A catchall variant in which all piece types 
-              known to XBoard can participate (8x8)
-unknown       Catchall for other unknown variants
-@end example
-
-In the shuffle variants, XBoard does shuffle the pieces, although
-you can still do it by hand using Edit Position.  Some variants are
-supported only in ICS mode, including bughouse, and
-kriegspiel.
-Berolina and cylinder chess are only partially supported,
-and can only be played with legality testing off.
-
-Apart from these standard variants, engines can define variants
-of arbitrary names, briefing XBoard transparently on the rules
-for piece movement, board size and initial setup,
-so that they work nearly as well as fully-supported standard variants.
-(But obviously only while using that engine.)
-The user might have to alter the adjudication settings for some
-variants, however. E.g. it makes no sense to adjudicate a draw
-after 50 reversible moves in variants that have a 64-move rule,
-or no similar rule at all.
-
-Default: "normal". Except when the first engine gave an explicit list
-of variants it supports, and 'normal' is not amongst those.
-In that case the first variant the engine mentioned it did play will
-be chosen.
-@item -boardHeight N
-@cindex boardHeight, option
-Allows you to set a non-standard number of board ranks in any variant. 
-If the height is given as -1, the default height for the variant is used.
-Default: -1
-@item -boardWidth N
-@cindex boardWidth, option
-Allows you to set a non-standard number of board files in any variant. 
-If the width is given as -1, the default width for the variant is used. 
-With a non-standard width, the initial position will always be an empty board, 
-as the usual opening array will not fit.
-Default: -1
-@item -holdingsSize N
-@cindex holdingsSize, option
-Allows you to set a non-standard size for the holdings in any variant. 
-If the size is given as -1, the default holdings size for the variant is used. 
-The first N piece types will go into the holdings on capture, and you will be 
-able to drop them on the board in stead of making a normal move. If size equals 0, 
-there will be no holdings.
-Default: -1
-@item -defaultFrcPosition N
-@cindex defaultFrcPosition, option
-Specifies the number of the opening position in shuffle games like Chess960. 
-A value of -1 means the position is randomly generated by XBoard
-at the beginning of every game.
-Default: -1
-@item -pieceToCharTable string
-@cindex pieceToCharTable, option
-The characters that are used to represent the piece types XBoard knows in FEN 
-diagrams and SAN moves.
-You should not have to use this option often: each variant has its own default 
-setting for the piece representation in FEN, which should be sufficient in normal use.
-The string argument has to specify an even number of pieces 
-(or it will be ignored), as white and black pieces have to be given separately 
-(in that order). The last letter for each color will be the King. 
-The letters before that will be PNBRQ and then a whole host of fairy pieces 
-in an order that has not fully crystallized yet (currently FEACWMOHIJGDVLSU, 
-F=Ferz, Elephant, A=Archbishop, C=Chancellor, W=Wazir, M=Commoner, O=Cannon, 
-H=Nightrider). You should list at least all pieces that occur in the variant 
-you are playing. If you have fewer characters in the string than XBoard has
-pieces, the pieces not mentioned will get assigned a period,
-and will not be usable in the variant.
-You can also explicitly assign pieces a period, in which case they 
-will not be counted in deciding which captured pieces can go into the holdings.
-A tilde '~' as a piece name does mean this piece is used to represent a promoted 
-Pawn in crazyhouse-like games, i.e. on capture it turns back to a Pawn. 
-A '+' similarly indicates the piece is a shogi-style promoted piece, that should 
-revert to its non-promoted version on capture (rather than to a Pawn).
-By default the second 11 pieces known to XBoard are the promoted forms of the first 11.
-A piece specified by the character combination ^ plus letter will be assumed
-to be the promoted form of the piece indicated by that letter,
-and get a '+' assigned.
-To get around the limitation of the alphabet,
-piece IDs can also be 'dressed letters', i.e. a single letter
-(upper case for white, lower case for black)
-followed by a single quote or an exclamation point.
-Default: "" (meaning the default for the variant is used).
-@item -pieceNickNames string
-@cindex pieceNickNames, option
-The characters in the string are interpreted the same way as in the
-@code{pieceToCharTable} option. But on input, piece-ID letters are
-first looked up in the nicknames, and only if not defined there,
-in the normal pieceToCharTable. This allows you to have two letters
-designate the same piece, (e.g. N as an alternative to H for Horse
-in Xiangqi), to make reading of non-compliant notations easier.
-Default: ""
-@item -colorNickNames string
-@cindex colorNickNames, option
-The side-to-move field in a FEN will be first matched against the letters
-in the string (first character for white, second for black),
-before it is matched to the regular 'w' and 'b'.
-This makes it easier to read non-compliant FENs,
-which, say, use 'r' for white.
-Default: ""
-@item -debug/-xdebug or -debugMode true/false
-@cindex debug, option
-@cindex debugMode, option
-Turns on debugging printout.
-@item -debugFile filename or -nameOfDebugFile filename
-@cindex debugFile, option
-@cindex nameOfDebugFile, option
-Sets the name of the file to which XBoard saves debug information 
-(including all communication to and from the engines).
-A @kbd{%d} in the given file name (e.g. game%d.debug) will be replaced
-by the unique sequence number of a tournament game,
-so that the debug output of each game will be written on a separate file.
-@item -engineDebugOutput number
-@cindex engineDebugOutput, option
-Specifies how XBoard should handle unsolicited output from the engine, 
-with respect to saving it in the debug file. 
-The output is further (hopefully) ignored. 
-If number=0, XBoard refrains from writing such spurious output to the debug file. 
-If number=1, all engine output is written faithfully to the debug file. 
-If number=2, any protocol-violating line is prefixed with a '#' character, 
-as the engine itself should have done if it wanted to submit info for inclusion in the debug file.
-This option is provided for the benefit of applications that use the debug file 
-as a source of information, such as the broadcaster of live games TLCV / TLCS. 
-Such applications can be protected from spurious engine output that might otherwise confuse them.
-@item -rsh or -remoteShell shell-name
-@cindex rsh, option
-@cindex remoteShell, option
-Name of the command used to run programs remotely. The default
-is @file{rsh} or @file{remsh}, determined when XBoard is
-configured and compiled.
-@item -ruser or -remoteUser user-name
-@cindex ruser, option
-@cindex remoteUser, option
-User name on the remote system when running programs with the
-@code{remoteShell}. The default is your local user name.
-@item -userName username
-@cindex userName, option
-Name under which the Human player will be listed in the PGN file. 
-Default is the login name on your local computer.
-@item -delayBeforeQuit number
-@itemx -delayAfterQuit number
-@cindex delayBeforeQuit, option
-@cindex delayAfterQuit, option
-These options order pauses before and after sending the "quit" command to an engine that must be terminated.
-The pause between quit and the previous command is specified in milliseconds.
-The pause after quit is used to schedule a kill signal to be sent to the engine process after the
-number of specified seconds plus one.
-This signal is a different one as the terminiation signal described in the protocol specs
-which engines can suppress or ignore, and which is sent directly after the "quit" command.
-Setting @code{delayAfterQuit} to -1 will suppress sending of the kill signal.
-Default: 0
-@item -searchMode n
-@cindex searchMode, option
-The integer n encodes the mode for the @samp{find position} function.
-Default: 1 (= Exact position match)
-@item -eloThresholdBoth elo
-@itemx -eloThresholdAny elo
-@cindex eloThresholdBoth, option
-@cindex eloThresholdAny, option
-Defines a lower limit for the Elo rating, which has to be surpassed
-before a game will be considered when searching for a board position.
-Default: 0
-@item -dateThreshold year
-@cindex dateThreshold, option
-Only games not played before the given year will be considered when
-searching for a board position
-
-
-@end table
-
-@node Chess Servers
-@chapter Chess Servers
-@cindex ICS
-@cindex ICS, addresses
-@cindex Internet Chess Server
-An @dfn{Internet Chess Server}, or @dfn{ICS}, is a place on the
-Internet where people can get together to play chess, watch other
-people's games, or just chat.  You can use either @code{telnet} or a
-client program like XBoard to connect to the server.  There are
-thousands of registered users on the different ICS hosts, and it is
-not unusual to meet 200 on both chessclub.com and freechess.org.
-
-Most people can just type @kbd{xboard -ics} to start XBoard as an ICS
-client.  Invoking XBoard in this way connects you to the Internet
-Chess Club (ICC), a commercial ICS.  You can log in there as a guest
-even if you do not have a paid account.  To connect to the largest
-Free ICS (FICS), use the command @kbd{xboard -ics -icshost freechess.org}
-instead, or substitute a different host name to connect to your
-favorite ICS.
-For a full description of command-line options that control 
-the connection to ICS and change the default values of ICS options, see
-@ref{ICS options}.  
-
-While you are running XBoard as an ICS client,
-you use the terminal window that you started XBoard from
-as a place to type in commands and read information that is
-not available on the chessboard.
-
-The first time you need to use the terminal is to enter your login name
-and password, if you are a registered player. (You don't need to do
-this manually; the @code{icsLogon} option can do it for you.
-@pxref{ICS options}.)  If you are not registered, 
-enter @kbd{g} as your name, and the server will pick a
-unique guest name for you.
-
-Some useful ICS commands
-include
-@table @kbd
-@item help <topic>
-@cindex help, ICS command
-to get help on the given <topic>. To get a list of possible topics type
-@dfn{help} without topic.  Try the help command before you ask other
-people on the server for help.
-
-For example @kbd{help register} tells you how to become a registered
-ICS player.
-@item who <flags>
-@cindex who, ICS command
-to see a list of people who are logged on.  Administrators
-(people you should talk to if you have a problem) are marked
-with the character @samp{*}, an asterisk. The <flags> allow you to
-display only selected players: For example, @kbd{who of} shows a
-list of players who are interested in playing but do not have
-an opponent.
-@item games
-@cindex games, ICS command
-to see what games are being played
-@item match <player> [<mins>] [<inc>]
-to challenge another player to a game. Both opponents get <mins> minutes
-for the game, and <inc> seconds will be added after each move.
-If another player challenges you, the server asks if you want to
-accept the challenge; use the @kbd{accept} or @kbd{decline} commands
-to answer.
-@item accept
-@itemx decline
-@cindex accept, ICS command
-@cindex decline, ICS command
-to accept or decline another player's offer. 
-The offer may be to start a new game, or to agree to a 
-@kbd{draw}, @kbd{adjourn} or @kbd{abort} the current game. @xref{Action Menu}.
-
-If you have more than one pending offer (for example, if more than one player
-is challenging you, or if your opponent offers both a draw and to adjourn the
-game), you have to supply additional information, by typing something
-like @kbd{accept <player>}, @kbd{accept draw}, or @kbd{draw}.
-@item draw
-@itemx adjourn
-@itemx abort
-@cindex draw, ICS command
-@cindex adjourn, ICS command
-@cindex abort, ICS command
-asks your opponent to terminate a game by mutual agreement. Adjourned
-games can be continued later. 
-Your opponent can either @kbd{decline} your offer or accept it (by typing the
-same command or typing @kbd{accept}).  In some cases these commands work
-immediately, without asking your opponent to agree.  For example, you can
-abort the game unilaterally if your opponent is out of time, and you can claim
-a draw by repetition or the 50-move rule if available simply by typing 
-@kbd{draw}.
-@item finger <player>
-@cindex finger, ICS command
-to get information about the given <player>. (Default: yourself.)
-@item vars
-@cindex vars, ICS command
-to get a list of personal settings
-@item set <var> <value>
-@cindex set, ICS command
-to modify these settings
-@item observe <player>
-@cindex observe, ICS command
-to observe an ongoing game of the given <player>.
-@item examine
-@itemx oldmoves
-@cindex examine, ICS command
-@cindex oldmoves, ICS command
-to review a recently completed game
-@end table
-
-Some special XBoard features are activated when you are
-in examine mode on ICS.  See the descriptions of the menu commands
-@samp{Forward}, @samp{Backward}, @samp{Pause}, @samp{ICS Client}, 
-and @samp{Stop Examining} on the @ref{Edit Menu}, @ref{Mode Menu}, and
-@ref{Action Menu}.
-
-@node Firewalls
-@chapter Firewalls
-By default, XBoard communicates with an Internet Chess Server
-by opening a TCP socket directly from the machine it is running on
-to the ICS. If there is a firewall between your machine and the ICS,
-this won't work. Here are some recipes for getting around common
-kinds of firewalls using special options to XBoard.
-Important: See the paragraph in the below about extra echoes, in
-@ref{Limitations}.
-
-Suppose that you can't telnet directly to ICS, but you can telnet
-to a firewall host, log in, and then telnet from there to ICS.
-Let's say the firewall is called @samp{firewall.example.com}. Set
-command-line options as follows:
-
-@example
-xboard -ics -icshost firewall.example.com -icsport 23
-@end example
-@noindent
-Then when you run XBoard in ICS mode, you will be prompted
-to log in to the firewall host. This works because port 23 is the
-standard telnet login service. Do so, then telnet to ICS, using a
-command like @samp{telnet chessclub.com 5000}, or whatever command
-the firewall provides for telnetting to port 5000.
-
-If your firewall lets you telnet (or rlogin) to remote hosts but
-doesn't let you telnet to port 5000, you may be able to connect to the
-chess server on port 23 instead, which is the port the telnet program
-uses by default.  Some chess servers support this (including
-chessclub.com and freechess.org), while some do not.
-
-If your chess server does not allow connections on port 23 and your
-firewall does not allow you to connect to other ports, you may be able
-to connect by hopping through another host outside the firewall that
-you have an account on.  For instance, suppose you have a shell
-account at @samp{foo.edu}. Follow the recipe above, but instead of
-typing @samp{telnet chessclub.com 5000} to the firewall, type
-@samp{telnet foo.edu} (or @samp{rlogin foo.edu}), log in there, and
-then type @samp{telnet chessclub.com 5000}.
-
-Suppose that you can't telnet directly to ICS, but you can use rsh
-to run programs on a firewall host, and that host can telnet to ICS.
-Let's say the firewall is called @samp{rsh.example.com}. Set
-command-line options as follows:
-
-@example
-xboard -ics -gateway rsh.example.com -icshost chessclub.com
-@end example
-
-@noindent
-Then when you run XBoard in ICS mode, it will connect to
-the ICS by using @file{rsh} to run the command
-@samp{telnet chessclub.com 5000} on host @samp{rsh.example.com}.
-
-Suppose that you can telnet anywhere you want, but you have to
-run a special program called @file{ptelnet} to do so.
-
-First, we'll consider the easy case, in which
-@samp{ptelnet chessclub.com 5000} gets you to the chess server.
-In this case set command line options as follows:
-
-@example
-xboard -ics -telnet -telnetProgram ptelnet
-@end example
-
-@noindent
-Then when you run XBoard in ICS mode, it will issue the
-command @samp{ptelnet chessclub.com 5000} to connect to the ICS.
-
-Next, suppose that @samp{ptelnet chessclub.com 5000} doesn't work;
-that is, your @file{ptelnet} program doesn't let you connect to
-alternative ports. As noted above, your chess server may allow you to
-connect on port 23 instead.  In that case, just add the option
-@samp{-icsport ""} to the above command.
-But if your chess server doesn't let you connect on port 23, you will have
-to find some other host outside the firewall and hop through it. For
-instance, suppose you have a shell account at @samp{foo.edu}. Set
-command line options as follows:
-
-@example
-xboard -ics -telnet -telnetProgram ptelnet -icshost foo.edu -icsport ""
-@end example
-
-@noindent
-Then when you run XBoard in ICS mode, it will issue the
-command @samp{ptelnet foo.edu} to connect to your account at
-@samp{foo.edu}. Log in there, then type @samp{telnet chessclub.com 5000}.
-
-ICC timestamp and FICS timeseal do not work through some
-firewalls.  You can use them only if your firewall gives a clean TCP
-connection with a full 8-bit wide path.  If your firewall allows you
-to get out only by running a special telnet program, you can't use
-timestamp or timeseal across it.  But if you have access to a
-computer just outside your firewall, and you have much lower netlag
-when talking to that computer than to the ICS, it might be worthwhile
-running timestamp there.  Follow the instructions above for hopping
-through a host outside the firewall (foo.edu in the example),
-but run timestamp or timeseal on that host instead of telnet.
-
-Suppose that you have a SOCKS firewall that will give you a clean
-8-bit wide TCP connection to the chess server, but only after you
-authenticate yourself via the SOCKS protocol.  In that case, you could
-make a socksified version of XBoard and run that.  If you are using
-timestamp or timeseal, you will to socksify it, not XBoard; this may
-be difficult seeing that ICC and FICS do not provide source code for
-these programs.  Socksification is beyond the scope of this document,
-but see the SOCKS Web site at http://www.socks.permeo.com/.
-If you are missing SOCKS, try http://www.funbureau.com/.
-
-@node Environment
-@chapter Environment variables
-@cindex Environment variables
-@cindex CHESSDIR
-Game and position files are found in a directory named by the
-@code{CHESSDIR} environment variable. If this variable is not set, the
-current working directory is used. If @code{CHESSDIR} is set,
-XBoard actually changes its working directory to
-@code{$CHESSDIR}, so any files written by the chess engine
-will be placed there too.
-
-@node Limitations
-@chapter Limitations and known bugs
-@cindex Limitations
-@cindex Bugs
-There is no way for two people running copies of XBoard to play
-each other without going through an Internet Chess Server.
-
-Under some circumstances, your ICS password may be echoed when you log on.
-
-If you are connecting to the ICS by running telnet on an Internet
-provider or firewall host, you may find that each line you type is
-echoed back an extra time after you hit @key{Enter}. If your Internet
-provider is a Unix system, you can probably turn its echo off by
-typing @kbd{stty -echo} after you log in, and/or typing
-@key{^E}@key{Enter} (Ctrl+E followed by the Enter key) to the telnet
-program after you have logged into ICS.  It is a good idea to do this
-if you can, because the extra echo can occasionally confuse XBoard's
-parsing routines.
-
-The game parser recognizes only algebraic notation.
-
-Many of the following points used to be limitations in XBoard 4.2.7 and earlier, 
-but are now fixed:
-The internal move legality tester in XBoard 4.3.xx does look at the game history, 
-and is fully aware of castling or en-passant-capture rights. It permits castling with 
-the king on the d file because this is possible in some "wild 1" games on ICS. 
-The piece-drop menu does not check piece drops in bughouse to see if you actually hold 
-the piece you are trying to drop. But this way of dropping pieces should be considered 
-an obsolete feature, now that pieces can be dropped by dragging them from the holdings 
-to the board. Anyway, if you would attempt an illegal move when using a chess engine or the ICS, 
-XBoard will accept the error message that comes back, undo the move, and let you try another.
-FEN positions saved by XBoard do include correct information about whether castling or 
-en passant are legal, and also handle the 50-move counter.
-The mate detector does not understand that non-contact mate is not really mate in bughouse. 
-The only problem this causes while playing is minor: a "#" (mate indicator) character will 
-show up after a non-contact mating move in the move list. XBoard will not assume the game 
-is over at that point, not even when the option Detect Mates is on.
-Edit Game mode always uses the rules of the selected variant, 
-which can be a variant that uses piece drops.  
-You can load and edit games that contain piece drops. 
-The (obsolete) piece menus are not active, 
-but you can perform piece drops by dragging pieces from the holdings.
-Fischer Random castling is fully understood. 
-You can enter castlings by dragging the King on top of your Rook. 
-You can probably also play Fischer Random successfully on ICS by typing 
-castling moves into the ICS Interaction window.
-
-The menus may not work if your keyboard is in Caps Lock or Num Lock mode.
-This seems to be a problem with the Athena menu widget,
-not an XBoard bug.
-
-Also see the ToDo file included with the distribution for many other
-possible bugs, limitations, and ideas for improvement that have been
-suggested.
-@node Problems
-@chapter Reporting problems
-@cindex Bugs
-@cindex Bug reports
-@cindex Reporting bugs
-@cindex Problems
-@cindex Reporting problems
-
-You can report bugs and problems with XBoard using
-the bug tracker at @code{https://savannah.gnu.org/projects/xboard/}
-or by sending mail to @code{<bug-xboard@@gnu.org>}.  It can also
-be useful to report or discuss bugs in the WinBoard Forum at
-@code{http://www.open-aurec.com/wbforum/}, 
-WinBoard development section.
-
-Please use the @file{script} program to start a typescript, run 
-XBoard with the @samp{-debug} option, and include the typescript
-output in your message.
-Also tell us what kind of machine and what operating system version
-you are using.  The command @samp{uname -a} will often tell you this.
-
-If you improve XBoard, please send a message about your changes,
-and we will get in touch with you about merging them in
-to the main line of development.
-
-@node Contributors
-@chapter Authors and contributors
-@cindex Authors
-@cindex Contributors
-
-Chris Sears and Dan Sears wrote the original XBoard.  They were
-responsible for versions 1.0 through 1.2.  The color scheme was taken
-from Wayne Christopher's @code{XChess} program.
-
-Tim Mann was primarily responsible for XBoard versions 1.3 through
-4.2.7, and for WinBoard (a port of XBoard to Microsoft Win32) from its
-inception through version 4.2.7.
-
-John Chanak contributed the initial implementation of ICS mode.  Evan
-Welsh wrote @code{CMail}, and Patrick Surry helped in designing,
-testing, and documenting it.  Elmar Bartel contributed the new piece
-bitmaps introduced in version 3.2.  Jochen Wiedmann converted the
-documentation to texinfo.  Frank McIngvale added click/click moving,
-the Analysis modes, piece flashing, ZIICS import, and ICS text
-colorization to XBoard.  Hugh Fisher added animated piece movement to
-XBoard, and Henrik Gram added it to WinBoard.  Mark Williams
-contributed the initial (WinBoard-only) implementation of many new
-features added to both XBoard and WinBoard in version 4.1.0, including
-copy/paste, premove, icsAlarm, autoFlipView, training mode, auto
-raise, and blindfold.  Ben Nye contributed X copy/paste code for
-XBoard.
-
-In a fork from version 4.2.7, Alessandro Scotti added many elements to
-the user interface of WinBoard, including the board textures and
-font-based rendering, the evaluation-graph, move-history and
-engine-output window.  He was also responsible for adding the UCI
-support.
-
-H. G. Muller continued this fork of the project, producing version
-4.3.  He made WinBoard castling- and e.p.-aware, added variant support
-with adjustable board sizes, the crazyhouse holdings, and the fairy
-pieces.  In addition he added most of the adjudication options, made
-WinBoard more robust in dealing with buggy and crashing engines, and
-extended time control with a time-odds and node-count-based modes.
-Most of the options that initially were WinBoard only have now been
-back-ported to XBoard.
-
-Michel van den Bergh provided the code for reading Polyglot opening books.
-
-Meanwhile, some work continued on the GNU XBoard project maintained at
-savannah.gnu.org, but version 4.2.8 was never released.  Daniel
-Mehrmann was responsible for much of this work.
-
-Most recently, Arun Persaud worked with H. G. Muller to merge all
-the features of the never-released XBoard/WinBoard 4.2.8 of the GNU
-XBoard project and the never-released 4.3.16 from H. G.'s fork into a
-unified XBoard/WinBoard 4.4, which is now available both from the
-savannah.gnu.org web site and the WinBoard forum.
-
-@node CMail
-@chapter CMail
-@cindex cmail
-The @file{cmail} program can help you play chess by email with opponents of
-your choice using XBoard as an interface.
-
-You will usually run @file{cmail} without giving any options.
-
-@menu
-* CMail options::    Invoking CMail.
-* CMail game::       Starting a CMail game.
-* CMail answer::     Answering a move.
-* CMail multi::      Multiple games in one message.
-* CMail completion:: Completing a game.
-* CMail trouble::    Known CMail problems.
-@end menu
-
-@node CMail options
-@section CMail options
-@table @asis
-@item -h
-Displays @file{cmail} usage information.
-@item -c
-Shows the conditions of the GNU General Public License.
-@xref{Copying}.
-@item -w
-Shows the warranty notice of the GNU General Public License.
-@xref{Copying}.
-@item -v
-@itemx -xv
-Provides or inhibits verbose output from @file{cmail} and XBoard,
-useful for debugging. The
-@code{-xv}
-form also inhibits the cmail introduction message.
-@item -mail
-@itemx -xmail
-Invokes or inhibits the sending of a mail message containing the move.
-@item -xboard
-@itemx -xxboard
-Invokes or inhibits the running of XBoard on the game file.
-@item -reuse
-@itemx -xreuse
-Invokes or inhibits the reuse of an existing XBoard to display the
-current game.
-@item -remail
-Resends the last mail message for that game. This inhibits running
-XBoard.
-@item -game <name>
-The name of the game to be processed.
-@item -wgames <number>
-@itemx -bgames <number>
-@itemx -games <number>
-Number of games to start as White, as Black or in total. Default is 1 as
-white and none as black. If only one color is specified then none of the
-other color is assumed. If no color is specified then equal numbers of
-White and Black games are started, with the extra game being as White if an
-odd number of total games is specified.
-@item -me <short name>
-@itemx -opp <short name>
-A one-word alias for yourself or your opponent.
-@item -wname <full name>
-@itemx -bname <full name>
-@itemx -myname <full name>
-@itemx -oppname <full name>
-The full name of White, Black, yourself or your opponent.
-@item -wna <net address>
-@itemx -bna <net address>
-@itemx -na <net address>
-@itemx -oppna <net address>
-The email address of White, Black, yourself or your opponent.
-@item -dir <directory>
-The directory in which @file{cmail} keeps its files. This defaults to the
-environment variable @code{$CMAIL_DIR} or failing that, @code{$CHESSDIR},
-@file{$HOME/Chess} or @file{~/Chess}. It will be created if it does not exist.
-@item -arcdir <directory>
-The directory in which @file{cmail} archives completed games. Defaults to
-the environment variable @code{$CMAIL_ARCDIR} or, in its absence, the same
-directory as cmail keeps its working files (above).
-@item -mailprog <mail program>
-The program used by cmail to send email messages. This defaults to the
-environment variable @code{$CMAIL_MAILPROG} or failing that
-@file{/usr/ucb/Mail}, @file{/usr/ucb/mail} or @file{Mail}. You will need
-to set this variable if none of the above paths fit your system.
-@item -logFile <file>
-A file in which to dump verbose debugging messages that are invoked with
-the @samp{-v}
-option.
-@item -event <event>
-The PGN Event tag (default @samp{Email correspondence game}).
-@item -site <site>
-The PGN Site tag (default @samp{NET}).
-@item -round <round>
-The PGN Round tag (default @samp{-}, not applicable).
-@item -mode <mode>
-The PGN Mode tag (default @samp{EM}, Electronic Mail).
-@item Other options
-Any option flags not listed above are passed through to XBoard.
-Invoking XBoard through CMail changes the default values of two XBoard
-options: The default value for @samp{-noChessProgram} is changed to
-true; that is, by default no chess engine is started.  The default
-value for @samp{-timeDelay} is changed to 0; that is, by default
-XBoard immediately goes to the end of the game as played so far,
-rather than stepping through the moves one by one.  You can still set
-these options to whatever values you prefer by supplying them on
-CMail's command line.  @xref{Options}.
-@end table
-
-@node CMail game
-@section Starting a CMail Game
-Type @file{cmail} from a shell to start a game as white. After an opening
-message, you will be prompted for a game name, which is optional---if you
-simply press @key{Enter}, the game name will take the form
-@samp{you-VS-opponent}. You will next be prompted for the short name
-of your opponent. If you haven't played this person before, you will also
-be prompted for his/her email address. @file{cmail} will then invoke
-XBoard in the background. Make your first move and select
-@samp{Mail Move} from the @samp{File} menu. @xref{File Menu}. If all is well,
-@file{cmail} will mail a copy of the move to your opponent. If you select
-@samp{Exit} without having selected @samp{Mail Move} then no move will be
-made.
-
-@node CMail answer
-@section Answering a Move
-When you receive a message from an opponent containing a move in one of
-your games, simply pipe the message through @file{cmail}. In some mailers
-this is as simple as typing @kbd{| cmail} when viewing the message, while in
-others you may have to save the message to a file and do @kbd{cmail < file}
-at the command line. In either case @file{cmail} will display the game using
-XBoard. If you didn't exit XBoard when you made your first move
-then @file{cmail} will do its best to use the existing XBoard instead
-of starting a new one. As before, simply make a move and select
-@samp{Mail Move} from the @samp{File} menu. @xref{File Menu}. @file{cmail}
-will try to use the
-XBoard that was most recently used to display the current game. This
-means that many games can be in progress simultaneously, each with its own
-active XBoard.
-
-If you want to look at the history or explore a variation, go ahead, but
-you must return to the current position before XBoard will allow you
-to mail a move. If you edit the game's history you must select
-@samp{Reload Same Game} from the @samp{File} menu to get back to the original
-position, then make the move you want and select @samp{Mail Move}.
-As before, if you decide you aren't ready to make a move just yet you can
-either select @samp{Exit} without sending a move or just leave
-XBoard running until you are ready.
-
-@node CMail multi
-@section Multi-Game Messages
-
-It is possible to have a @file{cmail} message carry more than one game.
-This feature was implemented to handle IECG (International Email Chess
-Group) matches, where a match consists of one game as white and one as black,
-with moves transmitted simultaneously. In case there are more general uses,
-@file{cmail} itself places no limit on the number of black/white games
-contained in a message; however, XBoard does.
-
-@node CMail completion
-@section Completing a Game
-Because XBoard can detect checkmate and stalemate, @file{cmail}
-handles game termination sensibly. As well as resignation, the
-@samp{Action} menu allows draws to be offered and accepted for
-@file{cmail} games.
-
-For multi-game messages, only unfinished and just-finished games will be
-included in email messages. When all the games are finished, they are
-archived in the user's archive directory, and similarly in the opponent's
-when he or she pipes the final message through @file{cmail}. The archive
-file name includes the date the game was started.
-
-@node CMail trouble
-@section Known CMail Problems
-It's possible that a strange conjunction of conditions may occasionally
-mean that @file{cmail} has trouble reactivating an existing
-XBoard. If this should happen, simply trying it again should work.
-If not, remove the file that stores the XBoard's PID
-(@file{game.pid}) or use the @samp{-xreuse} option to force
-@file{cmail} to start a new XBoard.
-
-Versions of @file{cmail} after 2.16 no longer understand the old file format
-that XBoard used to use and so cannot be used to correspond with
-anyone using an older version.
-
-Versions of @file{cmail} older than 2.11 do not handle multi-game messages,
-so multi-game correspondence is not possible with opponents using an older
-version.
-
-@node Other programs
-@chapter Other programs you can use with XBoard
-@cindex Other programs
-
-Here are some other programs you can use with XBoard
-
-@menu
-* GNU Chess::        The GNU Chess engine.
-* Fairy-Max::        The Fairy-Max chess engine.
-* HoiChess::         The HoiChess chess engine.
-* Crafty::           The Crafty chess engine.
-@end menu
-
-@node GNU Chess
-@section GNU Chess
-
-The GNU Chess engine is available from:
-
-ftp://ftp.gnu.org/gnu/gnuchess/
-
-You can use XBoard to play a game against GNU Chess, or to
-interface GNU Chess to an ICS.
-
-@node Fairy-Max
-@section Fairy-Max
-
-Fairy-Max is a derivative from the once World's smallest Chess program micro-Max,
-which measures only about 100 lines of source code.
-The main difference with micro-Max is that Fairy-Max loads its move-generator
-tables from a file, so that the rules for piece movement can be easily configured
-to implement unorthodox pieces.
-Fairy-Max can therefore play a large number of variants, normal Chess being one of those.
-In addition it plays Knightmate, Capablanca and Gothic Chess, Shatranj, Courier Chess,
-Cylinder chess, Berolina Chess, while the user can easily define new variants.
-It can be obtained from:
-
-http://home.hccnet.nl/h.g.muller/dwnldpage.html
-
-@node HoiChess
-@section HoiChess
-
-HoiChess is a not-so-very-strong Chess engine, which comes with a derivative HoiXiangqi,
-able to play Chinese Chess. It can be obtained from the standard Linux repositories
-through:
-
-sudo apt-get install hoichess
-
-@node Crafty
-@section Crafty
-
-Crafty is a chess engine written by Bob Hyatt.
-You can use XBoard to play a game against Crafty, hook Crafty up
-to an ICS, or use Crafty to interactively analyze games and positions
-for you.
-
-Crafty is a strong, rapidly evolving chess program. This rapid
-pace of development is good, because it means Crafty is always
-getting better.  This can sometimes cause problems with
-backwards compatibility, but usually the latest version of Crafty
-will work well with the latest version of XBoard.
-Crafty can be obtained from its author's FTP site:
-ftp://ftp.cis.uab.edu/hyatt/.
-
-To use Crafty with XBoard, give the -fcp and -fd options as follows, where
-<crafty's directory> is the directory in which you installed Crafty
-and placed its book and other support files.
-
-@ifnottex
-@node Copyright
-@unnumbered Copyright
-@include copyright.texi
-@end ifnottex
-
-@node Copying
-@unnumbered GNU GENERAL PUBLIC LICENSE
-@include gpl.texinfo
-
-@c noman
-@node Index
-@unnumbered Index
-
-@printindex cp
-@contents
-@c end noman
-
-@bye
diff --git a/xboard.xml b/xboard.xml
deleted file mode 100644 (file)
index 46ab574..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-<?xml version="1.0"?>
-<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
-  <mime-type type="application/x-chess-pgn">
-    <comment>PGN chess game notation</comment>
-    <comment xml:lang="ara">تدوينة لعبة الشطرنج PGN</comment>
-    <comment xml:lang="be">Zaciem ab šachmatnaj partyi PGN</comment>
-    <comment xml:lang="be@latin">Zaciem ab šachmatnaj partyi PGN</comment>
-    <comment xml:lang="bg">Игра шах — PGN</comment>
-    <comment xml:lang="ca">notació de joc d'escacs PGN</comment>
-    <comment xml:lang="cs">Šachová notace PGN</comment>
-    <comment xml:lang="da">PGN-skakspilsnotation</comment>
-    <comment xml:lang="de">PGN-Schachspielnotation</comment>
-    <comment xml:lang="en_GB">PGN chess game notation</comment>
-    <comment xml:lang="es">Notación de partida de ajedrez PGN</comment>
-    <comment xml:lang="eu">PGN xake jokoaren notazioa</comment>
-    <comment xml:lang="fi">PGN-šakkipelinotaatio</comment>
-    <comment xml:lang="fr">notation de jeu d'échecs PGN</comment>
-    <comment xml:lang="ga">nodaireacht chluiche ficheall PGN</comment>
-    <comment xml:lang="hu">PGN sakkfeljegyzés</comment>
-    <comment xml:lang="id">Notasi permainan catur PGN</comment>
-    <comment xml:lang="it">Notazione partita a scacchi PGN</comment>
-    <comment xml:lang="ja">PGN チェスゲーム記録</comment>
-    <comment xml:lang="kk">PGN шахмат ойыны</comment>
-    <comment xml:lang="ko">PGN 체스게임 기보</comment>
-    <comment xml:lang="lt">PGN šachmatų žaidimo žymėjimas</comment>
-    <comment xml:lang="lv">PGN šaha spēles notācija</comment>
-    <comment xml:lang="nb">PGN sjakkspillnotasjon</comment>
-    <comment xml:lang="nl">PGN-schaakspelnotatie</comment>
-    <comment xml:lang="nn">PGN-sjakkspelnotasjon</comment>
-    <comment xml:lang="pl">Plik PGN notacji gry w szachy</comment>
-    <comment xml:lang="pt_BR">Notação de jogo de xadrez PGN</comment>
-    <comment xml:lang="ro">Notație joc șah PGN</comment>
-    <comment xml:lang="ru">шахматная партия PGN</comment>
-    <comment xml:lang="sq">Njoftim loje shahu PGN</comment>
-    <comment xml:lang="sv">PGN-schackpartinotation</comment>
-    <comment xml:lang="uk">запис гри у шахи PGN</comment>
-    <comment xml:lang="vi">Cách ghi lượt chơi cờ PGN</comment>
-    <comment xml:lang="zh_CN">PGN 象棋游戏注记</comment>
-    <generic-icon name="application-x-chess-pgn"/>
-    <glob pattern="*.pgn"/>
-    <sub-class-of type="text/plain"/>
-    <magic priority="50">
-      <match value="[Event " type="string" offset="0"/>
-    </magic>
-  </mime-type>
-  <mime-type type="application/x-chess-fen">
-    <comment>PGN chess position</comment>
-    <generic-icon name="text-x-generic"/>
-    <glob pattern="*.fen"/>
-    <sub-class-of type="text/plain"/>
-  </mime-type>
-  <mime-type type="application/x-xboard-trn">
-    <comment>XBoard tournament</comment>
-    <generic-icon name="application-x-xboard-trn"/>
-    <glob pattern="*.trn"/>
-    <sub-class-of type="text/plain"/>
-    <magic priority="50">
-      <match value="-participants {" type="string" offset="0"/>
-    </magic>
-  </mime-type>
-  <mime-type type="application/x-xboard-opt">
-    <comment>XBoard options</comment>
-    <generic-icon name="application-x-xboard-opt"/>
-    <glob pattern="*.xop"/>
-    <sub-class-of type="text/plain"/>
-  </mime-type>
-</mime-info>
diff --git a/xboard2.h b/xboard2.h
deleted file mode 100644 (file)
index a3c8f22..0000000
--- a/xboard2.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * xboard2.h -- Move list window, part of X front end for XBoard
- *
- * Copyright 2012, 2013, 2014, 2015, 2016 Free Software Foundation, Inc.
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-void SendToProgram P((char *message, ChessProgramState *cps));
-void SendToICS P((char *buf));
-void InitDrawingSizes P((int i, int j));
-
-extern int searchTime;
-extern int squareSize, lineGap, defaultLineGap;
-extern int startedFromPositionFile;
-extern char *icsTextMenuString;
-extern int hi2X, hi2Y;
-extern char dataDir[];
diff --git a/zippy.README b/zippy.README
deleted file mode 100644 (file)
index 065fb74..0000000
+++ /dev/null
@@ -1,422 +0,0 @@
-Zippy README file
-For version xboard/WinBoard 4.2.4 and later only
------------------------------------------------------
-
-Zippy is a program that lets GNU Chess act as a computer player on an
-Internet Chess Server.  It also works with Crafty.  Zippy is
-unsupported, experimental code.
-
-Zippy is based on XBoard, a graphical interface to GNU Chess and to
-the ICS for the X Window system on Unix.  Zippy consists of exactly
-the same code as XBoard, plus one extra module that ties together the
-otherwise-separate functions of talking to GNU Chess and talking to
-the ICS.  Zippy is included in the XBoard distribution.
-
-There is also a version of Zippy that is based on WinBoard, a port of
-XBoard to Win32 (Microsoft Windows NT and Windows 95).  WinBoard does
-*not* run on Windows 3.1 or 3.11, not even with Win32s.  In versions
-3.5 and later, the Zippy code is included in WinBoard.exe.
-
-If you use Zippy, I ask you to do the following:
-
-- Don't expect fast response if you send me mail about problems.  It
-might take weeks for me to get back to you, or I might answer right
-away.  Try to solve problems yourself before you mail me about them.
-Try asking someone who is actively running a Zippy-based player on ICC
-or FICS for help getting started.  Mail me only if you get stuck.
-
-- Be honest.  Tell the admins of whatever ICS you use that your player
-is a computer, so that it gets put onto the computer list, and follow
-the ICS computer policies.  On ICC these are in "help computer"; read
-this file and abide by what it says.
-
-- If you want to interface some other chess program to ICS, feel free
-to start with this code.  Some documentation is in the file
-engine-intf.html in the distribution.
-
-- Please do not use the -zt flag to have your program shout Zippy the
-Pinhead sayings (or other things that my Zippy shouts).  One pinhead
-per server is plenty, and I'd like to keep the franchise.  Feel free
-to use -zt to have your program shout some other kind of sayings if
-you like.  Some of the jokes that Zippy shouts on ICC came from
-ftp://ftp.cco.caltech.edu/pub/humor.  The poetry came from Project
-Gutenberg; try http://www.cs.cmu.edu/Web/booktitles.html as a starting
-point.  You might find other suitable material at these sites.  Prose
-tends to work poorly because it is dull when shouted in isolated
-250-character chunks.
-
-       --Tim Mann
-         http://www.tim-mann.org/chess.html
-
-* * *
-
-Unix: To build the Zippy version of xboard, on most systems just do:
-       configure --enable-zippy
-       make
-
-Windows: WinBoard.exe (versions 3.5 and later) includes the Zippy
-code.  There is no longer a distinct WinZippy.exe.
-
-In both xboard and WinBoard, the Zippy features are off by default.
-You can activate them with two new resources/command line options, and
-you can fine-tune them with some new environment variables, all
-described below.
-
-You will probably want to make a shell script or Windows .BAT file
-that sets the environment variables you want to use and invokes Zippy
-with the right command line options for your situation.  Some examples
-are at the bottom of this file.
-
-If you have problems building or running Zippy, see the rest of the
-xboard documentation: INSTALL documents the configure program, while
-READ_ME and xboard.man (or xboard.txt) document xboard itself, and
-WinBoard.hlp documents WinBoard.  FAQ answers some frequently asked
-questions.  The file engine-intf.html contains some information about
-the interface between xboard/WinBoard and GNU Chess (or other chess
-engines).
-
-===========
-NEW OPTIONS
-===========
-
-  -zippyPlay True/False or -zp/-xzp
-       If zippyPlay is set to True, when xboard is in -ics mode, it
-       will interface a chess engine to the ICS instead of letting you
-       play.  You must also set -ics when you use this mode.
-
-       In zippyPlay mode, xboard blindly issues an accept command for
-       every (well, almost every, see below) challenge it gets,
-       without remembering anything about the challenge afterwards.
-       This means that often it will get several challenges very
-       close together and try to accept them all!  ICS gives an error
-       message for every accept command after the one that actually
-       starts a match, but xboard just happily ignores the message.
-       xboard doesn't actually start the chess engine playing until
-       the first board image comes in from ICS.
-
-       The getMoveList option controls how adjourned games are
-       continued.  If it is True (the default), xboard fetches the
-       move list from ICS and feeds it into the chess program before
-       having the program start play.  If False, xboard feeds the
-       current position into the chess program and has it start from
-       there.  The latter option gets the program going sooner, but
-       can cause problems with detection of en passant legality,
-       castling legality (if a king or rook has moved and then
-       returned to its home square), draw by repetition, and draw by
-       the 50 move rule.
-
-       In zippyPlay mode, colorization in the ICS interaction window,
-       and the sounds corresponding to colors in that window, do not
-       work.  zippyPassword and related features (see below) capture
-       the tells, etc., before they can be matched by the color/sound
-       code.
-
-  -zippyTalk True/False or -zt/-xzt
-       If zippyTalk is set to True and xboard is in -ics mode:
-
-       (1) It will reply to anything said to it with a saying (if
-       there is a file of sayings in its working directory).  This
-       includes channel tells and shouts where its name is mentioned.
-       Some things it says to opponents in specific situations will
-       also be made Zippy-ish; you might want to change that.  See
-       zippyLines below for the file format.
-
-       (2) If a player XXX in your notify list logs on, xboard sends
-       the command "greet XXX" to ICS and tells XXX something from
-       its sayings file.  You can alias this to whatever you like.
-       If XXX is censoring you, he is automatically removed from your
-       notify list.
-
-       (3) If a player XXX in your notify list logs off, xboard sends
-       the command "farewell XXX" to ICS.  You can alias this to
-       whatever you like.  Note that the player is already gone, so
-       telling him something is futile.
-
-       If zippyTalk is on, colorization in the ICS interaction
-       window, and the sounds corresponding to colors in that window,
-       do not work.  The reply feature captures the tells, etc.,
-       before they can be matched by the color/sound code.
-
-  In both -zp and -zt modes, if admin X spoofs Zippy, Zippy sends the
-  command "spoofedby X" to ICS.  You can alias this to something if you
-  want; otherwise it will produce a harmless error message.
-
-  -zippyPinhead string
-       In zippyTalk mode, if user XXX shouts anything containing
-       this string, xboard sends the command "insult XXX" to ICS.
-       You can alias "insult" to whatever you like.  This feature is
-       disabled if the option is not set.
-
-  -zippyPassword string
-       If someone does an ICS "tell" to xboard that begins with this
-       password, it will type the same string back as a command with
-       the password stripped off.  For example, if the password is
-       !%%! and xboard sees the string "Darooha tells you: !%%!shout
-       Hi there", it will type the command "shout Hi there" to the
-       ICS.  This feature is disabled if the option is not set.
-
-  -zippyPassword2 string
-       If someone does an ICS "tell" to xboard that begins with this
-       password, it will send the same string directly to the chess
-        engine with the password stripped off.  This feature is
-        disabled if the option is not set.  Use with caution.
-
-  -zippyWrongPassword string
-       This is a joke feature.  If player XXX does an ICS "tell" to
-        xboard that begins with this password, it will send the
-        command "wrong XXX" to ICS.  ICS does not define a "wrong"
-        command, but you can alias it to whatever you like.  The
-        feature is supposed to be used after you've changed the
-        zippyPassword, so that people who knew the old password get a
-        funny message.  Disabled if not set.
-
-  -zippyUseI True/False or -zui/-xzui
-       If this option is true, Zippy's shouts use the "i" command with
-       funny verbs; otherwise they use the "shout" command.  Default
-       is true.  The variable is automatically set to false if the "i"
-       command is disabled on ICS by the admins.
-
-  -zippyLines filename
-       Name of the file Zippy looks in for sayings when -zt is set.
-       Default: yow.lines.  File format: There must be a single ^
-       character or null character (control-@, ASCII code \000) after
-       each saying.  Sayings can have newlines in them; Zippy will
-       remove them.  Sayings can be at most about 250 characters;
-       longer ones will be ignored.  The first saying in the file is
-       never used; you should put a comment there.  If you have only
-       one or two sayings in your file, Zippy may get into a loop
-       trying to choose one.  Zippy chooses a saying by seeking to a
-       random character position in the file, skipping ahead to the
-       *next* null character, and printing the saying that starts
-       there.  If it hits end of file without finding a new saying,
-       it tries again.  Yes, this is a dumb algorithm.
-
-  -zippyAcceptOnly string
-        Normally, Zippy automatically accepts challenges from all
-       opponents.  If this option is set to an ICS login name, Zippy
-       will auto-accept challenges only from that opponent.  Set the
-       option to an invalid name like "0" if you don't want Zippy to
-       auto-accept any challenges.  You can still accept challenges
-       manually.  Setting this option also suppresses the
-       zippyGameEnd feature described below.  Default: not set.
-
-  -zippyNoplayCrafty True/False or -znc/-xznc
-       If this option is set to True, if Zippy's opponent kibitzes
-       "Hello from Crafty" within the first couple of moves, Zippy
-       will abort the game and add the opponent to his noplay list.
-        Default: False.
-
-  -zippyGameStart string
-       At the start of each game Zippy plays (including resuming from
-       adjournment), it sends this string to ICS, followed by a newline.
-       If the option is not set, nothing is sent.
-
-  -zippyGameEnd string
-       At the end of each game, Zippy sends this string to ICS,
-        followed by a newline.  If you do not set this option, the
-        string "gameend" is sent.  This is not a legal ICS command,
-        but you can alias it to whatever you like, or you can leave
-        it undefined, which will cause ICS to print a harmless error
-        message after each game.  If you want to send more than one
-        command at the end of the game, on ICC you can alias gameend
-        to a "multi" command (see the ICC help files), but on FICS that
-        does not work.  Instead, use the -zippyGameEnd option to have
-        a string of several commands sent, with newlines in between.
-        For example, you could give WinBoard the command line option
-          -zippyGameEnd=\"say thanks\\nseek 5 0\\nseek 2 12\\n\"
-        Note the extra backslashes: these are essential, because the
-        shell will strip them from the command before passing it to
-        XBoard, and XBoard needs to see the quotes (which would
-        otherwise be stripped by the shell as well), because only within
-        quotes it will recognize the \n as a linefeed.
-
-  -zippyAdjourn True/False or -zadj/-xzadj
-       Zippy will allow its opponent to adjourn if this option is
-       set to true.  Default: False.
-
-  -zippyAbort True/False or -zab/-xzab
-       Zippy will allow its opponent to abort if this option is
-       set to true.  Default: False.
-
-  -zippyVariants string
-       Zippy will decline to play chess variants unless their names
-       (as given in engine-intf.html) are listed in this option.
-       Default: "normal".  Example: "suicide,losers,bughouse,normal".
-
-       Obviously, zippyVariants other than "normal" will work only
-       if your chess engine can play those variants.  GNU Chess
-       certainly cannot, but there are some suicide and bughouse
-       engines available.  While playing bughouse, Zippy passes
-       certain extra information on to the engine; see
-       engine-intf.html.
-
-  -zippyBughouse int
-        This option controls how Zippy handles bughouse partner
-        requests.  If zippyBughouse is set to 0, Zippy will decline
-        any offers of partnership and tell the offerer that it cannot
-        play bughouse.  If zippyBughouse is set to 1, Zippy will
-        decline offers, but you can make Zippy your partner by having
-        *it* offer *you* partnership (by using zippyPassword or typing
-        directly into its window).  If zippyBughouse is set to 2,
-        Zippy will accept all offers of partnership, even if it
-        already has a partner.  zippyBughouse must be at least 1 for
-        partner tells to be relayed to the engine with the ptell
-        command.
-
-  -zippyMaxGames int
-  -zippyReplayTimeout
-        If zippyMaxGames > 0, Zippy will play at most the given number
-       of consecutive games against the same opponent.  Thereafter,
-       Zippy will decline all challenges from that opponent (with an
-       explanatory tell) until either someone else has played or
-       zippyReplayTimeout seconds have elapsed.  Defaults:
-       zippyMaxGames=0, zippyReplayTimeout=120.
-
-       Note: If you use these options and you have Zippy doing seeks,
-       be sure to include the "m" flag in the ICS seek command.  If
-       you use "seek m", when a player responds to the seek, the ICS
-       gives Zippy a challenge that it can either accept or decline.
-       If you use a seek without the "m" flag, the ICS immediately
-       starts a game between Zippy and the first opponent to respond,
-       giving Zippy no choice about whether to accept or decline.
-
-  -zippyShortGame int
-        If zippyShortGame > 0, Zippy will decline all challenges
-       from an opponent that terminated a game before the given number
-       of ply (with an explanatory tell) until either someone else has
-       played or zippyReplayTimeout seconds have elapsed. Do not set
-       the number of moves to large; the number of ply during which
-       opponents can abort a game without rating change would be a
-       good setting. Default: zippyShortGame=0.
-
-=====================
-ENVIRONMENT VARIABLES
-=====================
-
-  For backward compatibility with version 4.0.2 and earlier only, most
-  of the command line options listed above can also be set as
-  environment variables.  For boolean options, use 0 for false, 1 for
-  true in the corresponding environment variable.  The following
-  environment variables are supported.:
-
-    ZIPPYPINHEAD, ZIPPYPASSWORD, ZIPPYPASSWORD2, ZIPPYWRONGPASSWORD,
-    ZIPPYUSEI, ZIPPYLINES, ZIPPYACCEPTONLY, ZIPPYNOPLAYCRAFTY,
-    ZIPPYGAMESTART, ZIPPYGAMEEND, ZIPPYADJOURN, ZIPPYABORT,
-    ZIPPYVARIANTS, ZIPPYBUGHOUSE
-
-  Warnings: (1) If both the command line option and the corresponding
-  environment variable are set, the environment variable takes
-  precedence!  (2) Some of the environment variables have names that
-  are too long for Solaris 2.5's /bin/csh.  Use the command line
-  options instead.  (3) Newer options DO NOT have environment
-  variables.  If you don't see it in the list above, it doesn't exist.
-  (4) In the future the environment variables may go away entirely.
-  It would be a good idea to stop using them now and switch to the
-  command line options.
-
-You may also want to customize other things by editing zippy.c and
-recompiling the program.
-
-=====================
-ICS VARIABLE SETTINGS
-=====================
-
-You need to do the following settings on ICS:
-
-    set highlight 0  <-- I'm not sure this is still needed
-    set oldmatch 0
-    set examine 0
-
-If you want to use the zippyPassword remote-control feature, it's a
-good idea to do the following, so that commands you give Zippy won't
-be truncated because the ICS wrapped a "tell" to a new line:
-
-    set wrap 0       <-- on ICC, or
-    set width 255    <-- on FICS
-
-You will probably want to turn on server-side autoflagging too:
-
-    set autoflag 1
-
-======
-SIMULS
-======
-
-It has been discovered that Zippy can play simuls on ICC (but not on
-FICS).  If you arrange for Zippy to send the ICC command "simulize" in
-the -zippyGameStart string, it will accept additional games while
-playing.  Zippy will use the same engine for every game, so whenever
-it switches opponents, the engine's state will be reset with the "new"
-command.  This will of course weaken its play, so don't enable simuls
-if you want your engine to have the highest possible rating.
-
-Zippy was never designed to work with simuls; it just works by
-accident, and it hasn't been tested much.  So please report any bugs
-you notice, but don't expect them to be fixed rapidly.
-
-Be sure to use xboard/WinBoard 4.2.4 or later for simuls, because some
-obscure bugs are fixed in that version that affect starting a game in
-the middle (as with resuming from adjournments or switching opponents
-in a simul).
-
-As noted under -zippyPlay above, you should have -getMoveList on to
-ensure that the engine knows the game history after switching boards
-and thus handles draw by repetition and by the 50-move rule correctly.
-It should, however, also work to turn off this option to speed things
-up and reduce network bandwidth, if you don't mind the engine
-occasionally failing to see draw possibilities.  Unfortunately,
-though, with Crafty 18.3 (and probably other versions too) as the
-engine, users trying this have experienced Crafty crashes.  This looks
-to me like a Crafty bug, but I wasn't able to reproduce it, so it
-remains a mystery.
-
-
-========
-EXAMPLES
-========
-
-Here are some small example command lines.  You may want to use more
-options; see the man page, info file, or help file, and perhaps the
-FAQ file too.  You may want to put the command line into a Unix shell
-script or Windows .BAT file, which is simply a text file of commands.
-On Unix, turn on execute permission for the file (chmod a+x file); on
-Windows, give it the extension .BAT.  You can then run it just like an
-ordinary program.  Please do not ask me questions about how to make a
-shell script or .BAT file; these are not functions of xboard/WinBoard,
-but basic operating system features that you can learn about from
-introductory books, friends, teachers, or the online help for your
-system.  The examples below should be more than enough to get you
-started.
-
-Unix command lines:
-
-# xboard + GNU Chess on chessclub.com
-xboard -zp -ics -icshost chessclub.com -icshelper timestamp \
-    -zippyPassword beer
-
-# xboard + GNU Chess on freechess.org
-xboard -zp -ics -icshost freechess.org -icshelper timeseal \
-
-# xboard + Crafty on chessclub.com
-xboard -zp -ics -icshost chessclub.com \
-    -fd /home/crafty -fcp crafty -icshelper timestamp \
-    -zippyPassword beer
-
-# xboard + Crafty on freechess.org
-xboard -zp -ics -icshost freechess.org -autoflag \
-    -fd /home/crafty -fcp crafty -icshelper timeseal \
-    -zippyPassword beer
-
-Windows command lines:
-
-REM WinBoard + GNU Chess on chessclub.com
-WinBoard -zp -ics -icshost chessclub.com -fcp GNUChess -icshelper timestamp -zippyPassword beer
-
-REM WinBoard + GNU Chess on freechess.org
-WinBoard -zp -ics -icshost freechess.org -fcp GNUChess -icshelper timeseal -zippyPassword beer
-
-REM WinBoard + Crafty on chessclub.com
-WinBoard -zp -ics -icshost chessclub.com -fd C:\Crafty -fcp WCrafty -icshelper timestamp -zippyPassword beer
-
-REM WinBoard + Crafty on freechess.org
-WinBoard -zp -ics -icshost freechess.org -fd C:\Crafty -fcp WCrafty -icshelper timestamp -zippyPassword beer
diff --git a/zippy.c b/zippy.c
deleted file mode 100644 (file)
index 247240d..0000000
--- a/zippy.c
+++ /dev/null
@@ -1,1144 +0,0 @@
-/*
- * zippy.c -- Implements Zippy the Pinhead chess player on ICS in XBoard
- *
- * Copyright 1991 by Digital Equipment Corporation, Maynard,
- * Massachusetts.
- *
- * Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006,
- * 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free Software Foundation, Inc.
- *
- * Enhancements Copyright 2005 Alessandro Scotti
- *
- * The following terms apply to Digital Equipment Corporation's copyright
- * interest in XBoard:
- * ------------------------------------------------------------------------
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notice appear in all copies and that
- * both that copyright notice and this permission notice appear in
- * supporting documentation, and that the name of Digital not be
- * used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- *
- * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- * ------------------------------------------------------------------------
- *
- * The following terms apply to the enhanced version of XBoard
- * distributed by the Free Software Foundation:
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-#include "config.h"
-
-#include <stdio.h>
-#include <errno.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <ctype.h>
-
-#if STDC_HEADERS
-# include <stdlib.h>
-# include <string.h>
-#else /* not STDC_HEADERS */
-extern char *getenv();
-# if HAVE_STRING_H
-#  include <string.h>
-# else /* not HAVE_STRING_H */
-#  include <strings.h>
-# endif /* not HAVE_STRING_H */
-#endif /* not STDC_HEADERS */
-
-#if TIME_WITH_SYS_TIME
-# include <sys/time.h>
-# include <time.h>
-#else
-# if HAVE_SYS_TIME_H
-#  include <sys/time.h>
-# else
-#  include <time.h>
-# endif
-#endif
-#define HI "hlelo "
-
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
-#include "common.h"
-#include "zippy.h"
-#include "frontend.h"
-#include "backend.h"
-#include "backendz.h"
-
-char *SendMoveToBookUser P((int nr, ChessProgramState *cps, int initial)); // [HGM] book
-void HandleMachineMove P((char *message, ChessProgramState *cps));
-
-static char zippyPartner[MSG_SIZ];
-static char zippyLastOpp[MSG_SIZ];
-static char zippyOffender[MSG_SIZ]; // [HGM] aborter
-static int zippyConsecGames;
-static time_t zippyLastGameEnd;
-
-extern void mysrandom(unsigned int seed);
-extern int myrandom(void);
-
-void
-ZippyInit ()
-{
-    char *p;
-
-    /* Get name of Zippy lines file */
-    p = getenv("ZIPPYLINES");
-    if (p != NULL) {
-      appData.zippyLines = p;
-    }
-
-    /* Get word that Zippy thinks is insulting */
-    p = getenv("ZIPPYPINHEAD");
-    if (p != NULL) {
-      appData.zippyPinhead = p;
-    }
-
-    /* What password is used for remote control? */
-    p = getenv("ZIPPYPASSWORD");
-    if (p != NULL) {
-      appData.zippyPassword = p;
-    }
-
-    /* What password is used for remote commands to gnuchess? */
-    p = getenv("ZIPPYPASSWORD2");
-    if (p != NULL) {
-      appData.zippyPassword2 = p;
-    }
-
-    /* Joke feature for people who try an old password */
-    p = getenv("ZIPPYWRONGPASSWORD");
-    if (p != NULL) {
-      appData.zippyWrongPassword = p;
-    }
-
-    /* While testing, I want to accept challenges from only one person
-       (namely, my "anonymous" account), so I set an environment
-       variable ZIPPYACCEPTONLY. */
-    p = getenv("ZIPPYACCEPTONLY");
-    if ( p != NULL ) {
-      appData.zippyAcceptOnly = p;
-    }
-
-    /* Should Zippy use "i" command? */
-    /* Defaults to 1=true */
-    p = getenv("ZIPPYUSEI");
-    if (p != NULL) {
-      appData.zippyUseI = atoi(p);
-    }
-
-    /* How does Zippy handle bughouse partnering? */
-    /* 0=say we can't play, 1=manual partnering, 2=auto partnering */
-    p = getenv("ZIPPYBUGHOUSE");
-    if (p != NULL) {
-      appData.zippyBughouse = atoi(p);
-    }
-
-    /* Does Zippy abort games with Crafty? */
-    /* Defaults to 0=false */
-    p = getenv("ZIPPYNOPLAYCRAFTY");
-    if (p != NULL) {
-      appData.zippyNoplayCrafty = atoi(p);
-    }
-
-    /* What ICS command does Zippy send at game end?  Default: "gameend". */
-    p = getenv("ZIPPYGAMEEND");
-    if (p != NULL) {
-      appData.zippyGameEnd = p;
-    }
-
-    /* What ICS command does Zippy send at game start?  Default: none. */
-    p = getenv("ZIPPYGAMESTART");
-    if (p != NULL) {
-      appData.zippyGameStart = p;
-    }
-
-    /* Should Zippy accept adjourns? */
-    /* Defaults to 0=false */
-    p = getenv("ZIPPYADJOURN");
-    if (p != NULL) {
-      appData.zippyAdjourn = atoi(p);
-    }
-
-    /* Should Zippy accept aborts? */
-    /* Defaults to 0=false */
-    p = getenv("ZIPPYABORT");
-    if (p != NULL) {
-      appData.zippyAbort = atoi(p);
-    }
-
-    /* Should Zippy play chess variants (besides bughouse)? */
-    p = getenv("ZIPPYVARIANTS");
-    if (p != NULL) {
-      appData.zippyVariants = p;
-    }
-    ASSIGN(first.variants, appData.zippyVariants);
-
-    srandom(time(NULL));
-}
-
-/*
- * Routines to implement Zippy talking
- */
-
-
-char *swifties[] = {
-    "i acclaims:", "i admonishes:", "i advertises:", "i advises:",
-    "i advocates:", "i affirms:", "i alleges:", "i anathematizes:",
-    "i animadverts:", "i announces:", "i apostrophizes:",
-    "i appeals:", "i applauds:", "i approves:", "i argues:",
-    "i articulates:", "i asserts:", "i asseverates:", "i attests:",
-    "i avers:", "i avows:", "i baas:", "i babbles:", "i banters:",
-    "i barks:", "i bawls:", "i bays:", "i begs:", "i belches:",
-    "i bellows:", "i belts out:", "i berates:", "i beshrews:",
-    "i blabbers:", "i blabs:", "i blares:", "i blasphemes:",
-    "i blasts:", "i blathers:", "i bleats:", "i blithers:",
-    "i blubbers:", "i blurts out:", "i blusters:", "i boasts:",
-    "i brags:", "i brays:", "i broadcasts:", "i burbles:",
-    "i buzzes:", "i cachinnates:", "i cackles:", "i caterwauls:",
-    "i calumniates:", "i caws:", "i censures:", "i chants:",
-    "i chatters:", "i cheeps:", "i cheers:", "i chides:", "i chins:",
-    "i chirps:", "i chortles:", "i chuckles:", "i claims:",
-    "i clamors:", "i clucks:", "i commands:", "i commends:",
-    "i comments:", "i commiserates:", "i communicates:",
-    "i complains:", "i concludes:", "i confabulates:", "i confesses:",
-    "i coos:", "i coughs:", "i counsels:", "i cries:", "i croaks:",
-    "i crows:", "i curses:", "i daydreams:", "i debates:",
-    "i declaims:", "i declares:", "i delivers:", "i denounces:",
-    "i deposes:", "i directs:", "i discloses:", "i disparages:",
-    "i discourses:", "i divulges:", "i documents:", "i drawls:",
-    "i dreams:", "i drivels:", "i drones:", "i effuses:",
-    /*"i ejaculates:",*/ "i elucidates:", "i emotes:", "i endorses:",
-    "i enthuses:", "i entreats:", "i enunciates:", "i eulogizes:",
-    "i exclaims:", "i execrates:", "i exhorts:", "i expatiates:",
-    "i explains:", "i explicates:", "i explodes:", "i exposes:",
-    "i exposits:", "i expostulates: ",
-    "i expounds:", "i expresses:", "i extols:",
-    "i exults:", "i fantasizes:", "i fibs:", "i filibusters:",
-    "i flatters:", "i flutes:", "i fools:", "i free-associates:",
-    "i fulminates:", "i gabbles:", "i gabs:", "i gasps:",
-    "i giggles:", "i gossips:", "i gripes:", "i groans:", "i growls:",
-    "i grunts:", "i guesses:", "i guffaws:", "i gushes:", "i hails:",
-    "i hallucinates:", "i harangues:", "i harmonizes:", "i hectors:",
-    "i hints:", "i hisses:", "i hollers:", "i honks:", "i hoots:",
-    "i hosannas:", "i howls:", "i hums:", "i hypothecates:",
-    "i hypothesizes:", "i imagines:", "i implies:", "i implores:",
-    "i imprecates:", "i indicates:", "i infers:",
-    "i informs everyone:",  "i instructs:", "i interjects:",
-    "i interposes:", "i intimates:", "i intones:", "i introspects:",
-    "i inveighs:", "i jabbers:", "i japes:", "i jests:", "i jibes:",
-    "i jives:", "i jokes:", "i joshes:", "i keens:", "i laments:",
-    "i lauds:", "i laughs:", "i lectures:", "i lies:", "i lilts:",
-    "i lisps:", "i maintains:", "i maledicts:", "i maunders:",
-    "i meows:", "i mewls:", "i mimes:", "i minces:", "i moans:",
-    "i moos:", "i mourns:", "i mouths:", "i mumbles:", "i murmurs:",
-    "i muses:", "i mutters:", "i nags:", "i natters:", "i neighs:",
-    "i notes:", "i nuncupates:", "i objurgates:", "i observes:",
-    "i offers:", "i oinks:", "i opines:", "i orates:", "i orders:",
-    "i panegyrizes:", "i pantomimes:", "i pants:", "i peals:",
-    "i peeps:", "i perorates:", "i persuades:", "i petitions:",
-    "i phonates:", "i pipes up:", "i pitches:", "i pleads:",
-    "i points out:", "i pontificates:", "i postulates:", "i praises:",
-    "i prates:", "i prattles:", "i preaches:", "i prescribes:",
-    "i prevaricates:", "i proclaims:", "i projects:", "i pronounces:",
-    "i proposes:", "i proscribes:", "i quacks:", "i queries:",
-    "i questions:", "i quips:", "i quotes:", "i rages:", "i rambles:",
-    "i rants:", "i raps:", "i rasps:", "i rattles:", "i raves:",
-    "i reacts:", "i recites:", "i recommends:", "i records:",
-    "i reiterates:", "i rejoins:", "i releases:", "i remarks:",
-    "i reminisces:", "i remonstrates:", "i repeats:", "i replies:",
-    "i reports:", "i reprimands:", "i reproaches:", "i reproves:",
-    "i resounds:", "i responds:", "i retorts:", "i reveals:",
-    "i reviles:", "i roars:", "i rumbles:", "i sanctions:",
-    "i satirizes:", "i sauces:", "i scolds:", "i screams:",
-    "i screeches:", "i semaphores:", "i sends:", "i sermonizes:",
-    "i shrieks:", "i sibilates:", "i sighs:", "i signals:",
-    "i signifies:", "i signs:", "i sings:", "i slurs:", "i snaps:",
-    "i snarls:", "i sneezes:", "i snickers:", "i sniggers:",
-    "i snivels:", "i snores:", "i snorts:", "i sobs:",
-    "i soliloquizes:", "i sounds off:", "i sounds out:", "i speaks:",
-    "i spews:", "i spits out:", "i splutters:", "i spoofs:",
-    "i spouts:", "i sputters:", "i squalls:", "i squawks:",
-    "i squeaks:", "i squeals:", "i stammers:", "i states:",
-    "i stresses:", "i stutters:", "i submits:", "i suggests:",
-    "i summarizes:", "i sums up:", "i swears:", "i talks:",
-    "i tattles:", "i teases:", "i telegraphs:", "i testifies:",
-    "i threatens:", "i thunders:", "i titters:", "i tongue-lashes:",
-    "i toots:", "i transcribes:", "i transmits:", "i trills:",
-    "i trumpets:", "i twaddles:", "i tweets:", "i twitters:",
-    "i types:", "i upbraids:", "i urges:", "i utters:", "i ventures:",
-    "i vibrates:", "i vilifies:", "i vituperates:", "i vocalizes:",
-    "i vociferates:", "i voices:", "i waffles:", "i wails:",
-    "i warbles:", "i warns:", "i weeps:", "i wheezes:", "i whimpers:",
-    "i whines:", "i whinnies:", "i whistles:", "i wisecracks:",
-    "i witnesses:", "i woofs:", "i writes:", "i yammers:", "i yawps:",
-    "i yells:", "i yelps:", "i yodels:", "i yowls:", "i zings:",
-};
-
-#define MAX_SPEECH 250
-
-void
-Speak (char *how, char *whom)
-{
-    static FILE *zipfile = NULL;
-    static struct stat zipstat;
-    char zipbuf[MAX_SPEECH + 1];
-    static time_t lastShout = 0;
-    time_t now;
-    char  *p;
-    int c, speechlen;
-
-    if (strcmp(how, "shout") == 0) {
-       now = time((time_t *) NULL);
-       if (now - lastShout < 1*60) return;
-       lastShout = now;
-       if (appData.zippyUseI) {
-           how = swifties[(unsigned) random() %
-                          (sizeof(swifties)/sizeof(char *))];
-       }
-    }
-
-    if (zipfile == NULL) {
-       zipfile = fopen(appData.zippyLines, "r");
-       if (zipfile == NULL) {
-           DisplayFatalError("Can't open Zippy lines file", errno, 1);
-           return;
-       }
-       fstat(fileno(zipfile), &zipstat);
-    }
-
-    for (;;) {
-       fseek(zipfile, (unsigned) random() % zipstat.st_size, 0);
-       do {
-         c = getc(zipfile);
-       } while (c != NULLCHAR && c != '^' && c != EOF);
-       if (c == EOF) continue;
-       while ((c = getc(zipfile)) == '\n') ;
-       if (c == EOF) continue;
-       break;
-    }
-
-    /* Don't use ics_prefix; we need to let FICS expand the alias i -> it,
-       but use the real command "i" on ICC */
-    safeStrCpy(zipbuf, how, sizeof(zipbuf)/sizeof(zipbuf[0]));
-    strcat(zipbuf, " ");
-    if (whom != NULL) {
-       strcat(zipbuf, whom);
-       strcat(zipbuf, " ");
-    }
-    speechlen = strlen(zipbuf);
-    p = zipbuf + speechlen;
-
-    while (++speechlen < MAX_SPEECH) {
-       if (c == NULLCHAR || c == '^') {
-           *p++ = '\n';
-           *p = '\0';
-           SendToICS(zipbuf);
-           return;
-       } else if (c == '\n') {
-           *p++ = ' ';
-           do {
-               c = getc(zipfile);
-           } while (c == ' ');
-       } else if (c == EOF) {
-           break;
-       } else {
-           *p++ = c;
-           c = getc(zipfile);
-       }
-    }
-    /* Tried to say something too long, or junk at the end of the
-       file.  Try something else. */
-    Speak(how, whom);  /* tail recursion */
-}
-
-int
-ZippyCalled (char *str)
-{
-    return ics_handle[0] != NULLCHAR && StrCaseStr(str, ics_handle) != NULL;
-}
-
-static char opp_name[128][32];
-static int num_opps=0;
-
-extern ColorClass curColor;
-
-static void
-SetCurColor (ColorClass color)
-{
-    curColor = color;
-}
-
-static void
-ColorizeEx (ColorClass color, int cont)
-{
-    if( appData.colorize ) {
-        Colorize( color, cont );
-        SetCurColor( color );
-    }
-}
-
-int
-ZippyControl (char *buf, int *i)
-{
-    char *player, *p;
-    char reply[MSG_SIZ];
-
-    /* Possibly reject Crafty as opponent */
-    if (appData.zippyPlay && appData.zippyNoplayCrafty && forwardMostMove < 4
-       && looking_at(buf, i, "* kibitzes: Hello from Crafty"))
-    {
-        player = StripHighlightAndTitle(star_match[0]);
-       if ((gameMode == IcsPlayingWhite &&
-            StrCaseCmp(player, gameInfo.black) == 0) ||
-           (gameMode == IcsPlayingBlack &&
-            StrCaseCmp(player, gameInfo.white) == 0)) {
-
-         snprintf(reply, MSG_SIZ, "%ssay This computer does not play Crafty clones\n%sabort\n%s+noplay %s\n",
-                 ics_prefix, ics_prefix, ics_prefix, player);
-         SendToICS(reply);
-       }
-       return TRUE;
-    }
-
-    /* If this is a computer, save the name.  Then later, once the */
-    /* game is really started, we will send the "computer" notice to */
-    /* the engine.  */
-    if (appData.zippyPlay &&
-       looking_at(buf, i, "* is in the computer list")) {
-       int i;
-       for (i=0;i<num_opps;i++)
-         if (!strcmp(opp_name[i],star_match[0])) break;
-       if (i >= num_opps) safeStrCpy(opp_name[num_opps++],star_match[0], sizeof(opp_name[num_opps])/sizeof(opp_name[num_opps][0]));
-    }
-    if (appData.zippyPlay && looking_at(buf, i, "* * is a computer *")) {
-       int i;
-       for (i=0;i<num_opps;i++)
-         if (!strcmp(opp_name[i],star_match[1])) break;
-       if (i >= num_opps) safeStrCpy(opp_name[num_opps++],star_match[1], sizeof(opp_name[num_opps])/sizeof(opp_name[num_opps][0]));
-    }
-
-    /* Tells and says */
-    if (appData.zippyPlay &&
-       (looking_at(buf, i, "* offers to be your bughouse partner") ||
-        looking_at(buf, i, "* tells you: [automatic message] I chose you"))) {
-       player = StripHighlightAndTitle(star_match[0]);
-       if (appData.zippyBughouse > 1 && first.initDone) {
-           snprintf(reply, MSG_SIZ,"%spartner %s\n", ics_prefix, player);
-           SendToICS(reply);
-           if (strcmp(zippyPartner, player) != 0) {
-             safeStrCpy(zippyPartner, player, sizeof(zippyPartner)/sizeof(zippyPartner[0]));
-             SendToProgram(reply + strlen(ics_prefix), &first);
-           }
-       } else if (appData.zippyBughouse > 0) {
-           snprintf(reply, MSG_SIZ, "%sdecline %s\n", ics_prefix, player);
-           SendToICS(reply);
-       } else {
-         snprintf(reply, MSG_SIZ, "%stell %s This computer cannot play bughouse\n",
-                   ics_prefix, player);
-           SendToICS(reply);
-       }
-       return TRUE;
-    }
-
-    if (appData.zippyPlay && appData.zippyBughouse && first.initDone &&
-       looking_at(buf, i, "* agrees to be your partner")) {
-       player = StripHighlightAndTitle(star_match[0]);
-       snprintf(reply, MSG_SIZ, "partner %s\n", player);
-       if (strcmp(zippyPartner, player) != 0) {
-         safeStrCpy(zippyPartner, player, sizeof(zippyPartner)/sizeof(zippyPartner[0]));
-         SendToProgram(reply, &first);
-       }
-       return TRUE;
-    }
-
-    if (appData.zippyPlay && appData.zippyBughouse && first.initDone &&
-       (looking_at(buf, i, "are no longer *'s partner") ||
-        looking_at(buf, i,
-                   "* tells you: [automatic message] I'm no longer your"))) {
-       player = StripHighlightAndTitle(star_match[0]);
-       if (strcmp(zippyPartner, player) == 0) {
-           zippyPartner[0] = NULLCHAR;
-           SendToProgram("partner\n", &first);
-       }
-       return TRUE;
-    }
-
-    if (appData.zippyPlay && appData.zippyBughouse && first.initDone &&
-       (looking_at(buf, i, "no longer have a bughouse partner") ||
-        looking_at(buf, i, "partner has disconnected") ||
-        looking_at(buf, i, "partner has just chosen a new partner"))) {
-      zippyPartner[0] = NULLCHAR;
-      SendToProgram("partner\n", &first);
-      return TRUE;
-    }
-
-    if (appData.zippyPlay && appData.zippyBughouse && first.initDone &&
-       looking_at(buf, i, "* (your partner) tells you: *")) {
-       /* This pattern works on FICS but not ICC */
-       player = StripHighlightAndTitle(star_match[0]);
-       if (strcmp(zippyPartner, player) != 0) {
-         safeStrCpy(zippyPartner, player, sizeof(zippyPartner)/sizeof(zippyPartner[0]));
-         snprintf(reply, MSG_SIZ, "partner %s\n", player);
-         SendToProgram(reply, &first);
-       }
-       snprintf(reply, MSG_SIZ, "ptell %s\n", star_match[1]);
-       SendToProgram(reply, &first);
-       return TRUE;
-    }
-
-    if (looking_at(buf, i, "* tells you: *") ||
-       looking_at(buf, i, "* says: *"))
-    {
-       player = StripHighlightAndTitle(star_match[0]);
-       if (appData.zippyPassword[0] != NULLCHAR &&
-           strncmp(star_match[1], appData.zippyPassword,
-                   strlen(appData.zippyPassword)) == 0) {
-           p = star_match[1] + strlen(appData.zippyPassword);
-           while (*p == ' ') p++;
-           SendToICS(p);
-           SendToICS("\n");
-       } else if (appData.zippyPassword2[0] != NULLCHAR && first.initDone &&
-           strncmp(star_match[1], appData.zippyPassword2,
-                   strlen(appData.zippyPassword2)) == 0) {
-           p = star_match[1] + strlen(appData.zippyPassword2);
-           while (*p == ' ') p++;
-           SendToProgram(p, &first);
-           SendToProgram("\n", &first);
-       } else if (appData.zippyWrongPassword[0] != NULLCHAR &&
-           strncmp(star_match[1], appData.zippyWrongPassword,
-                   strlen(appData.zippyWrongPassword)) == 0) {
-           p = star_match[1] + strlen(appData.zippyWrongPassword);
-           while (*p == ' ') p++;
-           snprintf(reply, MSG_SIZ, "wrong %s\n", player);
-           SendToICS(reply);
-       } else if (appData.zippyBughouse && first.initDone &&
-                  strcmp(player, zippyPartner) == 0) {
-           SendToProgram("ptell ", &first);
-           SendToProgram(star_match[1], &first);
-           SendToProgram("\n", &first);
-       } else if (strncmp(star_match[1], HI, 6) == 0) {
-           extern char* programVersion;
-           snprintf(reply, MSG_SIZ, "%stell %s %s\n",
-                   ics_prefix, player, programVersion);
-           SendToICS(reply);
-       } else if (strncmp(star_match[1], "W0W!! ", 6) == 0) {
-           extern char* programVersion;
-           snprintf(reply, MSG_SIZ, "%stell %s %s\n", ics_prefix,
-                   player, programVersion);
-           SendToICS(reply);
-       } else if (appData.zippyTalk && (((unsigned) random() % 10) < 9)) {
-           if (strcmp(player, ics_handle) != 0) {
-               Speak("tell", player);
-           }
-       }
-
-        ColorizeEx( ColorTell, FALSE );
-
-       return TRUE;
-    }
-
-    if( appData.colorize && looking_at(buf, i, "* (*) seeking") ) {
-       ColorizeEx(ColorSeek, FALSE);
-        return FALSE;
-    }
-
-    if (looking_at(buf, i, "* spoofs you:")) {
-        player = StripHighlightAndTitle(star_match[0]);
-        snprintf(reply, MSG_SIZ, "spoofedby %s\n", player);
-        SendToICS(reply);
-    }
-
-    return FALSE;
-}
-
-int
-ZippyConverse(char *buf, int *i)
-{
-    static char lastgreet[MSG_SIZ];
-    char reply[MSG_SIZ];
-    int oldi;
-
-    /* Shouts and emotes */
-    if (looking_at(buf, i, "--> * *") ||
-       looking_at(buf, i, "* shouts: *"))
-    {
-      if (appData.zippyTalk) {
-       char *player = StripHighlightAndTitle(star_match[0]);
-       if (strcmp(player, ics_handle) == 0) {
-           return TRUE;
-       } else if (appData.zippyPinhead[0] != NULLCHAR &&
-                  StrCaseStr(star_match[1], appData.zippyPinhead) != NULL) {
-         snprintf(reply, MSG_SIZ, "insult %s\n", player);
-           SendToICS(reply);
-       } else if (ZippyCalled(star_match[1])) {
-           Speak("shout", NULL);
-       }
-      }
-
-      ColorizeEx(ColorShout, FALSE);
-
-      return TRUE;
-    }
-
-    if (looking_at(buf, i, "* kibitzes: *")) {
-      if (appData.zippyTalk && ((unsigned) random() % 10) < 9) {
-       char *player = StripHighlightAndTitle(star_match[0]);
-       if (strcmp(player, ics_handle) != 0) {
-           Speak("kibitz", NULL);
-       }
-      }
-
-      ColorizeEx(ColorKibitz, FALSE);
-
-      return TRUE;
-    }
-
-    if (looking_at(buf, i, "* whispers: *")) {
-      if (appData.zippyTalk && ((unsigned) random() % 10) < 9) {
-       char *player = StripHighlightAndTitle(star_match[0]);
-       if (strcmp(player, ics_handle) != 0) {
-           Speak("whisper", NULL);
-       }
-      }
-
-      ColorizeEx(ColorKibitz, FALSE);
-
-      return TRUE;
-    }
-
-    /* Messages */
-    if ((looking_at(buf, i, ". * (*:*): *") && isdigit(star_match[1][0])) ||
-        looking_at(buf, i, ". * at *:*: *")) {
-      if (appData.zippyTalk) {
-       FILE *f;
-       char *player = StripHighlightAndTitle(star_match[0]);
-
-       if (strcmp(player, ics_handle) != 0) {
-           if (((unsigned) random() % 10) < 9)
-             Speak("message", player);
-           f = fopen("zippy.messagelog", "a");
-           fprintf(f, "%s (%s:%s): %s\n", player,
-                   star_match[1], star_match[2], star_match[3]);
-           fclose(f);
-       }
-      }
-      return TRUE;
-    }
-
-    /* Channel tells */
-    oldi = *i;
-    if (looking_at(buf, i, "*(*: *")) {
-       char *channel;
-       if (star_match[0][0] == NULLCHAR  ||
-           strchr(star_match[0], ' ') ||
-           strchr(star_match[1], ' ')) {
-           /* Oops, did not want to match this; probably a message */
-           *i = oldi;
-           return FALSE;
-       }
-       if (appData.zippyTalk) {
-         channel = strrchr(star_match[1], '(');
-         if (channel == NULL) {
-           channel = star_match[1];
-         } else {
-           channel++;
-         }
-         channel[strlen(channel)-1] = NULLCHAR;
-
-         /* Tell to the channel only if someone mentions our name */
-         if (ZippyCalled(star_match[2])) {
-           Speak("tell", channel);
-         }
-
-          ColorizeEx( atoi(channel) == 1 ? ColorChannel1 : ColorChannel, FALSE );
-       }
-       return TRUE;
-    }
-
-    if (!appData.zippyTalk) return FALSE;
-
-    if ((looking_at(buf, i, "You have * message") &&
-        atoi(star_match[0]) != 0) ||
-       looking_at(buf, i, "* has left a message for you") ||
-       looking_at(buf, i, "* just sent you a message")) {
-      snprintf(reply, MSG_SIZ, "%smessages\n%sclearmessages *\n",
-               ics_prefix, ics_prefix);
-       SendToICS(reply);
-       return TRUE;
-    }
-
-    if (looking_at(buf, i, "Notification: * has arrived")) {
-       if (((unsigned) random() % 3) == 0) {
-           char *player = StripHighlightAndTitle(star_match[0]);
-           safeStrCpy(lastgreet, player, sizeof(lastgreet)/sizeof(lastgreet[0]));
-           snprintf(reply, MSG_SIZ, "greet %s\n", player);
-           SendToICS(reply);
-           Speak("tell", player);
-       }
-    }
-
-    if (looking_at(buf, i, "Notification: * has departed")) {
-       if (((unsigned) random() % 3) == 0) {
-           char *player = StripHighlightAndTitle(star_match[0]);
-           snprintf(reply, MSG_SIZ, "farewell %s\n", player);
-           SendToICS(reply);
-       }
-    }
-
-    if (looking_at(buf, i, "Not sent -- * is censoring you")) {
-       char *player = StripHighlightAndTitle(star_match[0]);
-       if (strcmp(player, lastgreet) == 0) {
-         snprintf(reply, MSG_SIZ, "%s-notify %s\n", ics_prefix, player);
-           SendToICS(reply);
-       }
-    }
-
-    if (looking_at(buf, i, "command is currently turned off")) {
-       appData.zippyUseI = 0;
-    }
-
-    return FALSE;
-}
-
-void
-ZippyGameStart (char *white, char* black)
-{
-    if (!first.initDone) {
-      /* Game is starting prematurely.  We can't deal with this */
-      SendToICS(ics_prefix);
-      SendToICS("abort\n");
-      SendToICS(ics_prefix);
-      SendToICS("say Sorry, the chess program is not initialized yet.\n");
-      return;
-    }
-
-    if (appData.zippyGameStart[0] != NULLCHAR) {
-      SendToICS(appData.zippyGameStart);
-      SendToICS("\n");
-    }
-}
-
-void
-ZippyGameEnd (ChessMove result, char *resultDetails)
-{
-    if (appData.zippyAcceptOnly[0] == NULLCHAR &&
-       appData.zippyGameEnd[0] != NULLCHAR) {
-      SendToICS(appData.zippyGameEnd);
-      SendToICS("\n");
-    }
-    zippyLastGameEnd = time(0);
-    if(forwardMostMove < appData.zippyShortGame)
-      safeStrCpy(zippyOffender, zippyLastOpp, sizeof(zippyOffender)/sizeof(zippyOffender[0]));
-    else
-      zippyOffender[0] = 0; // [HGM] aborter
-}
-
-/*
- * Routines to implement Zippy playing chess
- */
-
-void
-ZippyHandleChallenge (char *srated, char *swild, char *sbase, char *sincrement, char *opponent)
-{
-    char buf[MSG_SIZ];
-    int i=0;
-    VariantClass variant;
-    char *varname;
-
-    variant = StringToVariant(swild);
-    varname = VariantName(variant);
-
-    /* [DM] If icsAnalyzeEngine active we don't accept automatic games */
-    if (appData.icsActive && appData.icsEngineAnalyze) return;
-
-    /* If desired, you can insert more code here to decline matches
-       based on rated, variant, base, and increment, but it is
-       easier to use the ICS formula feature instead. */
-
-    if (variant == VariantLoadable) {
-      snprintf(buf, MSG_SIZ,
-        "%stell %s This computer can't play wild type %s\n%sdecline %s\n",
-               ics_prefix, opponent, swild, ics_prefix, opponent);
-       SendToICS(buf);
-       return;
-    }
-    if (StrStr(appData.zippyVariants, varname) == NULL ||
-              ((i=first.protocolVersion) != 1 && StrStr(first.variants, varname) == NULL) /* [HGM] zippyvar */
-                                                          ) {
-      snprintf(buf, MSG_SIZ,
-        "%stell %s This computer can't play %s [%s], only %s\n%sdecline %s\n",
-               ics_prefix, opponent, swild, varname,
-                i ? first.variants : appData.zippyVariants,                               /* [HGM] zippyvar */
-               ics_prefix, opponent);
-       SendToICS(buf);
-       return;
-    }
-
-    /* Are we blocking match requests from all but one person? */
-    if (appData.zippyAcceptOnly[0] != NULLCHAR &&
-       StrCaseCmp(opponent, appData.zippyAcceptOnly)) {
-        /* Yes, and this isn't him.  Ignore challenge. */
-       return;
-    }
-
-    /* Too many consecutive games with same opponent?  If so, make him
-       wait until someone else has played or a timeout has elapsed. */
-    if (appData.zippyMaxGames &&
-       strcmp(opponent, zippyLastOpp) == 0 &&
-       zippyConsecGames >= appData.zippyMaxGames &&
-       difftime(time(0), zippyLastGameEnd) < appData.zippyReplayTimeout) {
-      snprintf(buf, MSG_SIZ,  "%stell %s Sorry, you have just played %d consecutive games against %s.  To give others a chance, please wait %d seconds or until someone else has played.\n%sdecline %s\n",
-             ics_prefix, opponent, zippyConsecGames, ics_handle,
-             appData.zippyReplayTimeout, ics_prefix, opponent);
-      SendToICS(buf);
-      return;
-    }
-
-    /* [HGM] aborter: opponent is cheater that aborts games he doesn't like on first move. Make him wait */
-    if (strcmp(opponent, zippyOffender) == 0 &&
-       difftime(time(0), zippyLastGameEnd) < appData.zippyReplayTimeout) {
-      snprintf(buf, MSG_SIZ,  "%stell %s Sorry, your previous game against %s was rather short. "
-                  " It will wait %d seconds to see if a tougher opponent comes along.\n%sdecline %s\n",
-             ics_prefix, opponent, ics_handle,
-             appData.zippyReplayTimeout, ics_prefix, opponent);
-      SendToICS(buf);
-      return;
-    }
-
-    /* Engine not yet initialized or still thinking about last game? */
-    if (!first.initDone || first.lastPing != first.lastPong) {
-      snprintf(buf, MSG_SIZ,  "%stell %s I'm not quite ready for a new game yet; try again soon.\n%sdecline %s\n",
-             ics_prefix, opponent, ics_prefix, opponent);
-      SendToICS(buf);
-      return;
-    }
-
-    snprintf(buf, MSG_SIZ, "%saccept %s\n", ics_prefix, opponent);
-    SendToICS(buf);
-    if (appData.zippyTalk) {
-      Speak("tell", opponent);
-    }
-}
-
-
-/* Accept matches */
-int
-ZippyMatch (char *buf, int *i)
-{
-    if (looking_at(buf, i, "* * match * * requested with * (*)")) {
-
-       ZippyHandleChallenge(star_match[0], star_match[1],
-                            star_match[2], star_match[3],
-                            StripHighlightAndTitle(star_match[4]));
-       return TRUE;
-    }
-
-    /* Old FICS 0-increment form */
-    if (looking_at(buf, i, "* * match * requested with * (*)")) {
-
-       ZippyHandleChallenge(star_match[0], star_match[1],
-                            star_match[2], "0",
-                            StripHighlightAndTitle(star_match[3]));
-       return TRUE;
-    }
-
-    if (looking_at(buf, i,
-                  "* has made an alternate proposal of * * match * *.")) {
-
-       ZippyHandleChallenge(star_match[1], star_match[2],
-                            star_match[3], star_match[4],
-                            StripHighlightAndTitle(star_match[0]));
-       return TRUE;
-    }
-
-    /* FICS wild/nonstandard forms */
-    if (looking_at(buf, i, "Challenge: * (*) *(*) * * * * Loaded from *")) {
-       /* note: star_match[2] can include "[white] " or "[black] "
-          before our own name. */
-       if(star_match[8] == NULL || star_match[8][0] == 0) // [HGM] chessd: open-source ICS has file on next line
-            ZippyHandleChallenge(star_match[4], star_match[5],
-                            star_match[6], star_match[7],                           StripHighlightAndTitle(star_match[0]));
-       else ZippyHandleChallenge(star_match[4], star_match[8],
-                            star_match[6], star_match[7],
-                            StripHighlightAndTitle(star_match[0]));
-       return TRUE;
-    }
-
-    if (looking_at(buf, i,
-                  "Challenge: * (*) *(*) * * * * : * * Loaded from *")) {
-       /* note: star_match[2] can include "[white] " or "[black] "
-          before our own name. */
-       ZippyHandleChallenge(star_match[4], star_match[10],
-                            star_match[8], star_match[9],
-                            StripHighlightAndTitle(star_match[0]));
-       return TRUE;
-    }
-
-    /* Regular forms */
-    if (looking_at(buf, i, "Challenge: * (*) *(*) * * * * : * *") |
-       looking_at(buf, i, "Challenge: * (*) *(*) * * * * * *")) {
-       /* note: star_match[2] can include "[white] " or "[black] "
-          before our own name. */
-       ZippyHandleChallenge(star_match[4], star_match[5],
-                            star_match[8], star_match[9],
-                            StripHighlightAndTitle(star_match[0]));
-       return TRUE;
-    }
-
-    if (looking_at(buf, i, "Challenge: * (*) *(*) * * * *")) {
-       /* note: star_match[2] can include "[white] " or "[black] "
-          before our own name. */
-       ZippyHandleChallenge(star_match[4], star_match[5],
-                            star_match[6], star_match[7],
-                            StripHighlightAndTitle(star_match[0]));
-       return TRUE;
-    }
-
-
-        if (looking_at(buf, i, "Your opponent offers you a draw") ||
-            looking_at(buf, i, "* offers you a draw")) {
-            if (first.sendDrawOffers && first.initDone) {
-                SendToProgram("draw\n", &first);
-            }
-            return TRUE;
-        }
-
-    if (looking_at(buf, i, "requests that the game be aborted") ||
-        looking_at(buf, i, "would like to abort")) {
-       if (appData.zippyAbort ||
-           (gameMode == IcsPlayingWhite && whiteTimeRemaining < 0) ||
-           (gameMode == IcsPlayingBlack && blackTimeRemaining < 0)) {
-           SendToICS(ics_prefix);
-           SendToICS("abort\n");
-       } else {
-           SendToICS(ics_prefix);
-           if (appData.zippyTalk)
-             SendToICS("say Whoa no!  I am having FUN!!\n");
-           else
-             SendToICS("say Sorry, this computer doesn't accept aborts.\n");
-       }
-       return TRUE;
-    }
-
-    if (looking_at(buf, i, "requests adjournment") ||
-       looking_at(buf, i, "would like to adjourn")) {
-      if (appData.zippyAdjourn) {
-       SendToICS(ics_prefix);
-       SendToICS("adjourn\n");
-      } else {
-       SendToICS(ics_prefix);
-       if (appData.zippyTalk)
-         SendToICS("say Whoa no!  I am having FUN playing NOW!!\n");
-       else
-         SendToICS("say Sorry, this computer doesn't accept adjourns.\n");
-      }
-      return TRUE;
-    }
-
-    return FALSE;
-}
-
-/* Initialize chess program with data from the first board
- * of a new or resumed game.
- */
-void
-ZippyFirstBoard (int moveNum, int basetime, int increment)
-{
-    char buf[MSG_SIZ];
-    int w, b;
-    char *opp = (gameMode==IcsPlayingWhite ? gameInfo.black : gameInfo.white);
-    Boolean sentPos = FALSE;
-    char *bookHit = NULL; // [HGM] book
-
-    if (!first.initDone) {
-      /* Game is starting prematurely.  We can't deal with this */
-      SendToICS(ics_prefix);
-      SendToICS("abort\n");
-      SendToICS(ics_prefix);
-      SendToICS("say Sorry, the chess program is not initialized yet.\n");
-      return;
-    }
-
-    /* Send the variant command if needed */
-    if (gameInfo.variant != VariantNormal) {
-      snprintf(buf, MSG_SIZ,  "variant %s\n", VariantName(gameInfo.variant));
-      SendToProgram(buf, &first);
-    }
-
-    if ((startedFromSetupPosition && moveNum == 0) ||
-       (!appData.getMoveList && moveNum > 0)) {
-      SendToProgram("force\n", &first);
-      SendBoard(&first, moveNum);
-      sentPos = TRUE;
-    }
-
-    snprintf(buf, MSG_SIZ,  "level 0 %d %d\n", basetime, increment);
-    SendToProgram(buf, &first);
-
-    /* Count consecutive games from one opponent */
-    if (strcmp(opp, zippyLastOpp) == 0) {
-      zippyConsecGames++;
-    } else {
-      zippyConsecGames = 1;
-      safeStrCpy(zippyLastOpp, opp, sizeof(zippyLastOpp)/sizeof(zippyLastOpp[0]));
-    }
-
-    /* Send the "computer" command if the opponent is in the list
-       we've been gathering. */
-    for (w=0; w<num_opps; w++) {
-       if (!strcmp(opp_name[w], opp)) {
-           SendToProgram(first.computerString, &first);
-           break;
-       }
-    }
-
-    /* Ratings might be < 0 which means "we haven't seen a ratings
-       message from ICS." Send 0 in that case */
-    w = (gameInfo.whiteRating >= 0) ? gameInfo.whiteRating : 0;
-    b = (gameInfo.blackRating >= 0) ? gameInfo.blackRating : 0;
-
-    firstMove = FALSE;
-    if (gameMode == IcsPlayingWhite) {
-        if (first.sendName) {
-         snprintf(buf, MSG_SIZ,  "name %s\n", gameInfo.black);
-         SendToProgram(buf, &first);
-       }
-       safeStrCpy(ics_handle, gameInfo.white, MSG_SIZ);
-       snprintf(buf, MSG_SIZ,  "rating %d %d\n", w, b);
-       SendToProgram(buf, &first);
-       if (sentPos) {
-           /* Position sent above, engine is in force mode */
-           if (WhiteOnMove(moveNum)) {
-             /* Engine is on move now */
-             if (first.sendTime) {
-               if (first.useColors) {
-                 SendToProgram("black\n", &first); /*gnu kludge*/
-                 SendTimeRemaining(&first, TRUE);
-                 SendToProgram("white\n", &first);
-               } else {
-                 SendTimeRemaining(&first, TRUE);
-               }
-             }
-             bookHit = SendMoveToBookUser(forwardMostMove-1, &first, TRUE); // [HGM] book: send go or retrieve book move
-           } else {
-               /* Engine's opponent is on move now */
-               if (first.usePlayother) {
-                 if (first.sendTime) {
-                   SendTimeRemaining(&first, TRUE);
-                 }
-                 SendToProgram("playother\n", &first);
-               } else {
-                 /* Need to send a "go" after opponent moves */
-                 firstMove = TRUE;
-               }
-           }
-       } else {
-           /* Position not sent above, move list might be sent later */
-           if (moveNum == 0) {
-               /* No move list coming; at start of game */
-             if (first.sendTime) {
-               if (first.useColors) {
-                 SendToProgram("black\n", &first); /*gnu kludge*/
-                 SendTimeRemaining(&first, TRUE);
-                 SendToProgram("white\n", &first);
-               } else {
-                 SendTimeRemaining(&first, TRUE);
-               }
-             }
-//           SendToProgram("go\n", &first);
-             bookHit = SendMoveToBookUser(forwardMostMove-1, &first, TRUE); // [HGM] book: send go or retrieve book move
-           }
-       }
-    } else if (gameMode == IcsPlayingBlack) {
-        if (first.sendName) {
-         snprintf(buf, MSG_SIZ,  "name %s\n", gameInfo.white);
-         SendToProgram(buf, &first);
-       }
-       safeStrCpy(ics_handle, gameInfo.black, MSG_SIZ);
-       snprintf(buf, MSG_SIZ,  "rating %d %d\n", b, w);
-       SendToProgram(buf, &first);
-       if (sentPos) {
-           /* Position sent above, engine is in force mode */
-           if (!WhiteOnMove(moveNum)) {
-               /* Engine is on move now */
-             if (first.sendTime) {
-               if (first.useColors) {
-                 SendToProgram("white\n", &first); /*gnu kludge*/
-                 SendTimeRemaining(&first, FALSE);
-                 SendToProgram("black\n", &first);
-               } else {
-                 SendTimeRemaining(&first, FALSE);
-               }
-             }
-//           SendToProgram("go\n", &first);
-             bookHit = SendMoveToBookUser(forwardMostMove-1, &first, TRUE); // [HGM] book: send go or retrieve book move
-           } else {
-               /* Engine's opponent is on move now */
-               if (first.usePlayother) {
-                 if (first.sendTime) {
-                   SendTimeRemaining(&first, FALSE);
-                 }
-                 SendToProgram("playother\n", &first);
-               } else {
-                 /* Need to send a "go" after opponent moves */
-                 firstMove = TRUE;
-               }
-           }
-       } else {
-           /* Position not sent above, move list might be sent later */
-           /* Nothing needs to be done here */
-       }
-    }
-
-    if(bookHit) { // [HGM] book: simulate book reply
-       static char bookMove[MSG_SIZ]; // a bit generous?
-
-       programStats.depth = programStats.nodes = programStats.time =
-       programStats.score = programStats.got_only_move = 0;
-       sprintf(programStats.movelist, "%s (xbook)", bookHit);
-
-       safeStrCpy(bookMove, "move ", sizeof(bookMove)/sizeof(bookMove[0]));
-       strcat(bookMove, bookHit);
-       HandleMachineMove(bookMove, &first);
-    }
-}
-
-
-void
-ZippyHoldings (char *white_holding, char *black_holding, char *new_piece)
-{
-    char buf[MSG_SIZ];
-    if (gameMode != IcsPlayingBlack && gameMode != IcsPlayingWhite) return;
-    snprintf(buf, MSG_SIZ,  "holding [%s] [%s] %s\n",
-           white_holding, black_holding, new_piece);
-    SendToProgram(buf, &first);
-}
diff --git a/zippy.h b/zippy.h
deleted file mode 100644 (file)
index 656547c..0000000
--- a/zippy.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * zippy.h -- Interface to zippy.c module in XBoard
- *
- * Copyright 1991 by Digital Equipment Corporation, Maynard,
- * Massachusetts.
- *
- * Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006,
- * 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free Software Foundation, Inc.
- *
- * Enhancements Copyright 2005 Alessandro Scotti
- *
- * The following terms apply to Digital Equipment Corporation's copyright
- * interest in XBoard:
- * ------------------------------------------------------------------------
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted,
- * provided that the above copyright notice appear in all copies and that
- * both that copyright notice and this permission notice appear in
- * supporting documentation, and that the name of Digital not be
- * used in advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- *
- * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- * ------------------------------------------------------------------------
- *
- * The following terms apply to the enhanced version of XBoard
- * distributed by the Free Software Foundation:
- * ------------------------------------------------------------------------
- *
- * GNU XBoard is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or (at
- * your option) any later version.
- *
- * GNU XBoard is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/.  *
- *
- *------------------------------------------------------------------------
- ** See the file ChangeLog for a revision history.  */
-
-void ZippyInit P((void));
-int ZippyControl P((char *buf, int *i));
-int ZippyConverse P((char *buf, int *i));
-void ZippyGameStart P((char *white, char *black));
-int ZippyMatch P((char *buf, int *i));
-void ZippyFirstBoard P((int moveNum, int basetime, int increment));
-void ZippyGameEnd P((ChessMove result, char *resultDetails));
-void ZippyHoldings P((char *white_holding, char *black_holding,
-                     char *new_piece));
diff --git a/zippy.lines b/zippy.lines
deleted file mode 100644 (file)
index 60fc8b4..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-This is a sample zippy.lines file for xboard/WinBoard 4.0.4 or later.
-Text before the first caret, like this text, is a comment.
-^
-Here is the first saying.  Sayings are separated by caret characters,
-like the character that appears on the next line.
-^
-Here is the second saying.
-^
-Here is saying #3.  Note you don't need newlines before the caret characters.^
-Here is saying #4 -- note that it's okay for a saying
-to extend across more than one line.  The line breaks are ignored.
-^Saying #5: You don't need newlines after the caret characters either,
-but don't put two carets in a row.
-^
-Our sixth bit of wisdom is that you can use ASCII NUL characters
-(character code \000) instead of carets, but carets are easier to deal with
-in most text editors.  In version 4.0.3 and earlier, carets did not work;
-only NULs were allowed.
-^
-The seventh thing you should remember is that any saying more than 250
-characters long will not be used.  Therefore, because this saying is
-more than 250 characters long, it will never be used.  This is an
-extra sentence to make the saying more than 250 characters long so
-that the previous sentence will be true.
-^
-The eighth item to know is that when you are testing, you had better have
-several valid sayings in your file; for various reasons, having too few
-sayings can cause Zippy to get into an endless loop, or to be very slow.
-^
-As the ninth and final saying, let me add that you need a caret
-at the end of the file; any junk after the last caret is ignored.
-^
-